From 18c160a8c09d51adeca8a590b2dd20723eaf0196 Mon Sep 17 00:00:00 2001 From: anton-seaice Date: Fri, 6 Dec 2024 16:23:32 +1100 Subject: [PATCH] Update to CDEPS 1.0.59 and get upstream fix for correct pointer file in dshr --- CDEPS/CDEPS | 2 +- CDEPS/CMakeLists.txt | 4 +- .../datm_datamode_jra55do_mod.F90 | 39 +----------- CDEPS/patches/atm_comp_nuopc.F90.patch | 61 +++++++++---------- 4 files changed, 35 insertions(+), 71 deletions(-) diff --git a/CDEPS/CDEPS b/CDEPS/CDEPS index 3c70fc8..8197f05 160000 --- a/CDEPS/CDEPS +++ b/CDEPS/CDEPS @@ -1 +1 @@ -Subproject commit 3c70fc852aac65ea46c79d727b42d30d97a4a0e0 +Subproject commit 8197f05ef2549d3c53e4050c9821a683e2728bab diff --git a/CDEPS/CMakeLists.txt b/CDEPS/CMakeLists.txt index 68a90f7..16d7f10 100644 --- a/CDEPS/CMakeLists.txt +++ b/CDEPS/CMakeLists.txt @@ -14,9 +14,9 @@ target_sources(OM3_cdeps_common PRIVATE CDEPS/streams/dshr_stream_mod.F90 CDEPS/streams/dshr_tinterp_mod.F90 + CDEPS/dshr/dshr_mod.F90 CDEPS/dshr/dshr_dfield_mod.F90 CDEPS/dshr/dshr_fldlist_mod.F90 - CDEPS/dshr/dshr_mod.F90 ) ## DATM @@ -52,6 +52,8 @@ target_sources(OM3_cdeps_docn PRIVATE CDEPS/docn/docn_datamode_aquaplanet_mod.F90 CDEPS/docn/docn_datamode_copyall_mod.F90 CDEPS/docn/docn_datamode_cplhist_mod.F90 + CDEPS/docn/docn_datamode_multilev_mod.F90 + CDEPS/docn/docn_datamode_multilev_dom_mod.F90 CDEPS/docn/docn_datamode_iaf_mod.F90 CDEPS/docn/docn_datamode_som_mod.F90 CDEPS/docn/docn_import_data_mod.F90 diff --git a/CDEPS/extra_sources/datm_datamode_jra55do_mod.F90 b/CDEPS/extra_sources/datm_datamode_jra55do_mod.F90 index 2d6acad..d97837b 100644 --- a/CDEPS/extra_sources/datm_datamode_jra55do_mod.F90 +++ b/CDEPS/extra_sources/datm_datamode_jra55do_mod.F90 @@ -10,7 +10,6 @@ module datm_datamode_jra55do_mod use shr_const_mod , only : shr_const_tkfrz, shr_const_pi, shr_const_rdair use dshr_strdata_mod , only : shr_strdata_get_stream_pointer, shr_strdata_type use dshr_methods_mod , only : dshr_state_getfldptr, dshr_fldbun_getfldptr, dshr_fldbun_regrid, chkerr - use dshr_mod , only : dshr_restart_read, dshr_restart_write use dshr_strdata_mod , only : shr_strdata_type use dshr_fldlist_mod , only : fldlist_type, dshr_fldlist_add @@ -20,8 +19,7 @@ module datm_datamode_jra55do_mod public :: datm_datamode_jra55do_advertise public :: datm_datamode_jra55do_init_pointers public :: datm_datamode_jra55do_advance - public :: datm_datamode_jra55do_restart_write - public :: datm_datamode_jra55do_restart_read + ! export state pointers real(r8), pointer :: Sa_z(:) => null() @@ -283,39 +281,4 @@ subroutine datm_datamode_jra55do_advance(exportstate, target_ymd, target_tod, mo end subroutine datm_datamode_jra55do_advance - !=============================================================================== - subroutine datm_datamode_jra55do_restart_write(case_name, inst_suffix, ymd, tod, & - logunit, my_task, sdat) - - ! input/output variables - character(len=*) , intent(in) :: case_name - character(len=*) , intent(in) :: inst_suffix - integer , intent(in) :: ymd ! model date - integer , intent(in) :: tod ! model sec into model date - integer , intent(in) :: logunit - integer , intent(in) :: my_task - type(shr_strdata_type) , intent(inout) :: sdat - !------------------------------------------------------------------------------- - - call dshr_restart_write(rpfile, case_name, 'datm', inst_suffix, ymd, tod, & - logunit, my_task, sdat) - - end subroutine datm_datamode_jra55do_restart_write - - !=============================================================================== - subroutine datm_datamode_jra55do_restart_read(rest_filem, inst_suffix, logunit, my_task, mpicom, sdat) - - ! input/output arguments - character(len=*) , intent(inout) :: rest_filem - character(len=*) , intent(in) :: inst_suffix - integer , intent(in) :: logunit - integer , intent(in) :: my_task - integer , intent(in) :: mpicom - type(shr_strdata_type) , intent(inout) :: sdat - !------------------------------------------------------------------------------- - - call dshr_restart_read(rest_filem, rpfile, inst_suffix, nullstr, logunit, my_task, mpicom, sdat) - - end subroutine datm_datamode_jra55do_restart_read - end module datm_datamode_jra55do_mod diff --git a/CDEPS/patches/atm_comp_nuopc.F90.patch b/CDEPS/patches/atm_comp_nuopc.F90.patch index 1e176df..3e8dd23 100644 --- a/CDEPS/patches/atm_comp_nuopc.F90.patch +++ b/CDEPS/patches/atm_comp_nuopc.F90.patch @@ -1,27 +1,27 @@ ---- CDEPS/datm/atm_comp_nuopc.F90 2023-08-31 10:49:23.508874000 +1000 -+++ extra_sources/atm_comp_nuopc.F90 2023-08-31 10:48:55.428272000 +1000 -@@ -52,6 +52,12 @@ - use datm_datamode_jra_mod , only : datm_datamode_jra_restart_write - use datm_datamode_jra_mod , only : datm_datamode_jra_restart_read +diff --git a/datm/atm_comp_nuopc.F90 b/datm/atm_comp_nuopc.F90 +index b74e0d3..bb31c22 100644 +--- a/datm/atm_comp_nuopc.F90 ++++ b/datm/atm_comp_nuopc.F90 +@@ -48,6 +48,10 @@ module cdeps_datm_comp + use datm_datamode_jra_mod , only : datm_datamode_jra_init_pointers + use datm_datamode_jra_mod , only : datm_datamode_jra_advance + use datm_datamode_jra55do_mod , only : datm_datamode_jra55do_advertise + use datm_datamode_jra55do_mod , only : datm_datamode_jra55do_init_pointers + use datm_datamode_jra55do_mod , only : datm_datamode_jra55do_advance -+ use datm_datamode_jra55do_mod , only : datm_datamode_jra55do_restart_write -+ use datm_datamode_jra55do_mod , only : datm_datamode_jra55do_restart_read + use datm_datamode_clmncep_mod , only : datm_datamode_clmncep_advertise use datm_datamode_clmncep_mod , only : datm_datamode_clmncep_init_pointers use datm_datamode_clmncep_mod , only : datm_datamode_clmncep_advance -@@ -342,6 +348,7 @@ +@@ -357,6 +361,7 @@ contains if ( trim(datamode) == 'CORE2_NYF' .or. & trim(datamode) == 'CORE2_IAF' .or. & trim(datamode) == 'CORE_IAF_JRA' .or. & -+ trim(datamode) == 'JRA55do'.or. & ++ trim(datamode) == 'JRA55do' .or. & trim(datamode) == 'CLMNCEP' .or. & trim(datamode) == 'CPLHIST' .or. & trim(datamode) == 'GEFS' .or. & -@@ -361,6 +368,10 @@ +@@ -377,6 +382,10 @@ contains call datm_datamode_jra_advertise(exportState, fldsExport, flds_scalar_name, & flds_co2, flds_wiso, flds_presaero, flds_presndep, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return @@ -32,7 +32,7 @@ case ('CLMNCEP') call datm_datamode_clmncep_advertise(exportState, fldsExport, flds_scalar_name, & flds_co2, flds_wiso, flds_presaero, flds_presndep, flds_preso3, rc) -@@ -606,6 +617,9 @@ +@@ -627,6 +636,9 @@ contains case('CORE_IAF_JRA') call datm_datamode_jra_init_pointers(exportState, sdat, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return @@ -42,16 +42,16 @@ case('CLMNCEP') call datm_datamode_clmncep_init_pointers(importState, exportState, sdat, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return -@@ -630,6 +644,8 @@ - call datm_datamode_core2_restart_read(restfilm, inst_suffix, logunit, my_task, mpicom, sdat) - case('CORE_IAF_JRA') - call datm_datamode_jra_restart_read(restfilm, inst_suffix, logunit, my_task, mpicom, sdat) -+ case('JRA55do') -+ call datm_datamode_jra55do_restart_read(restfilm, inst_suffix, logunit, my_task, mpicom, sdat) - case('CLMNCEP') - call datm_datamode_clmncep_restart_read(restfilm, inst_suffix, logunit, my_task, mpicom, sdat) - case('CPLHIST') -@@ -677,6 +693,9 @@ +@@ -652,7 +664,7 @@ contains + call shr_get_rpointer_name(gcomp, 'atm', target_ymd, target_tod, rpfile, 'read', rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + select case (trim(datamode)) +- case('CORE2_NYF','CORE2_IAF','CORE_IAF_JRA','CLMNCEP','CPLHIST','ERA5','GEFS','CFSR','SIMPLE') ++ case('CORE2_NYF','CORE2_IAF','CORE_IAF_JRA','JRA55do','CLMNCEP','CPLHIST','ERA5','GEFS','CFSR','SIMPLE') + call dshr_restart_read(restfilm, rpfile, logunit, my_task, mpicom, sdat, rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + case default +@@ -694,6 +706,9 @@ contains case('CORE_IAF_JRA') call datm_datamode_jra_advance(exportstate, target_ymd, target_tod, sdat%model_calendar, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return @@ -61,13 +61,12 @@ case('CLMNCEP') call datm_datamode_clmncep_advance(mainproc, logunit, mpicom, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return -@@ -705,6 +724,9 @@ - case('CORE_IAF_JRA') - call datm_datamode_jra_restart_write(case_name, inst_suffix, target_ymd, target_tod, & - logunit, my_task, sdat) -+ case('JRA55do') -+ call datm_datamode_jra55do_restart_write(case_name, inst_suffix, target_ymd, target_tod, & -+ logunit, my_task, sdat) - case('CLMNCEP') - call datm_datamode_clmncep_restart_write(case_name, inst_suffix, target_ymd, target_tod, & - logunit, my_task, sdat) +@@ -722,7 +737,7 @@ contains + call shr_get_rpointer_name(gcomp, 'atm', target_ymd, target_tod, rpfile, 'write', rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + select case (trim(datamode)) +- case('CORE2_NYF','CORE2_IAF','CORE_IAF_JRA','CLMNCEP','CPLHIST','ERA5','GEFS','CFSR','SIMPLE') ++ case('CORE2_NYF','CORE2_IAF','CORE_IAF_JRA','JRA55do','CLMNCEP','CPLHIST','ERA5','GEFS','CFSR','SIMPLE') + call dshr_restart_write(rpfile, case_name, 'datm', inst_suffix, target_ymd, target_tod, logunit, & + my_task, sdat, rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return