From 7ca7a3de1a90824ee8a9422521bd8a3c8856c976 Mon Sep 17 00:00:00 2001 From: BinLi-NOAA Date: Tue, 16 Feb 2021 11:19:31 -0500 Subject: [PATCH] Update CDEPS to latest ESCOMP/CDEPS master and add variables for optional flux calculation (#10) --- CMakeLists.txt | 2 +- cime_config/testdefs/testlist_cdeps.xml | 14 +- datm/atm_comp_nuopc.F90 | 5 - datm/cime_config/buildnml | 6 +- datm/cime_config/config_component.xml | 75 ++++------ datm/cime_config/namelist_definition_datm.xml | 12 +- datm/cime_config/stream_definition_datm.xml | 132 +++++++++--------- datm/datm_datamode_cfsr_mod.F90 | 70 +++++++++- dice/cime_config/buildnml | 13 +- dice/cime_config/namelist_definition_dice.xml | 13 +- dlnd/cime_config/buildnml | 5 +- doc/source/streams.rst | 14 +- docn/cime_config/buildnml | 1 - docn/cime_config/namelist_definition_docn.xml | 8 +- drof/cime_config/buildnml | 3 +- dwav/cime_config/buildnml | 3 +- 16 files changed, 204 insertions(+), 172 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e764ab3c0..1996e85258 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,4 +99,4 @@ foreach(DEPS streams dshr cdeps_share FoX_dom FoX_wxml FoX_sax FoX_common FoX_ut COMPONENT Library) install(EXPORT ${DEPS} DESTINATION lib/cmake) -endforeach(COMP) +endforeach(DEPS) diff --git a/cime_config/testdefs/testlist_cdeps.xml b/cime_config/testdefs/testlist_cdeps.xml index e49889d719..72f019c6ca 100644 --- a/cime_config/testdefs/testlist_cdeps.xml +++ b/cime_config/testdefs/testlist_cdeps.xml @@ -1,7 +1,7 @@ - + @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ - + @@ -25,7 +25,7 @@ - + @@ -33,7 +33,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -49,7 +49,7 @@ - + diff --git a/datm/atm_comp_nuopc.F90 b/datm/atm_comp_nuopc.F90 index a446e10e6c..6c69e9f25a 100644 --- a/datm/atm_comp_nuopc.F90 +++ b/datm/atm_comp_nuopc.F90 @@ -64,11 +64,6 @@ module atm_comp_nuopc use datm_datamode_era5_mod , only : datm_datamode_era5_advance use datm_datamode_era5_mod , only : datm_datamode_era5_restart_write use datm_datamode_era5_mod , only : datm_datamode_era5_restart_read - use datm_datamode_cfsr_mod , only : datm_datamode_cfsr_advertise - use datm_datamode_cfsr_mod , only : datm_datamode_cfsr_init_pointers - use datm_datamode_cfsr_mod , only : datm_datamode_cfsr_advance - use datm_datamode_cfsr_mod , only : datm_datamode_cfsr_restart_write - use datm_datamode_cfsr_mod , only : datm_datamode_cfsr_restart_read use datm_datamode_cfsr_mod , only : datm_datamode_cfsr_advertise use datm_datamode_cfsr_mod , only : datm_datamode_cfsr_init_pointers diff --git a/datm/cime_config/buildnml b/datm/cime_config/buildnml index ebfde5be81..2652745212 100755 --- a/datm/cime_config/buildnml +++ b/datm/cime_config/buildnml @@ -74,8 +74,10 @@ def _create_namelists(case, confdir, inst_string, infile, nmlgen, data_list_path config['datm_co2_tseries'] = datm_co2_tseries config['datm_presaero'] = datm_presaero config['cime_model'] = get_model() - config['scol_mode'] = 'true' if case.get_value('PTS_MODE') else 'false' - config['create_mesh'] = 'true' if case.get_value("ATM_DOMAIN_MESH") == 'create_mesh' else 'false' + if case.get_value('PTS_MODE'): + config['mode'] = 'single_column' + else: + config['mode'] = case.get_value("ATM_DOMAIN_MESH") nmlgen.init_defaults(infile, config) diff --git a/datm/cime_config/config_component.xml b/datm/cime_config/config_component.xml index 59f5aef4be..d5639c3fbe 100644 --- a/datm/cime_config/config_component.xml +++ b/datm/cime_config/config_component.xml @@ -159,46 +159,7 @@ case name used to determine stream filenames when DATM_MODE is CPLHIST - - integer - - -999 - run_component_datm - env_run.xml - - Simulation year corresponding to DATM_CPLHIST_YR_START (only used - when DATM_MODE is CPLHIST). A common usage is to set this to - RUN_STARTDATE. With this setting, the forcing in the first year of - the run will be the forcing of year DATM_CPLHIST_YR_START. Another - use case is to align the calendar of transient forcing with the - model calendar. For example, setting - DATM_CPLHIST_YR_ALIGN=DATM_CPLHIST_YR_START will lead to the - forcing calendar being the same as the model calendar. The forcing - for a given model year would be the forcing of the same year. This - would be appropriate in transient runs where the model calendar is - setup to span the same year range as the forcing data. - - - - - integer - - -999 - run_component_datm - env_run.xml - starting year to loop data over (only used when DATM_MODE is CPLHIST) - - - - integer - - -999 - run_component_datm - env_run.xml - ending year to loop data over (only used when DATM_MODE is CPLHIST) - - - + integer 1 @@ -209,26 +170,38 @@ 1895 1901 1901 - $DATM_CLMNCEP_YR_START + $DATM_YR_START 1895 1901 1901 - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_START + $DATM_YR_START + $DATM_YR_START + $DATM_YR_START 1 1 - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_START + $DATM_YR_START + $DATM_YR_START + $DATM_YR_START + $DATM_YR_START run_component_datm env_run.xml - year align + + Simulation year corresponding to DATM_YR_START. A common usage + is to set this to RUN_STARTDATE. With this setting, the forcing + in the first year of the run will be the forcing of year + DATM_YR_START. Another use case is to align the calendar + of transient forcing with the model calendar. For example, + setting DATM_YR_ALIGN=DATM_YR_START will lead to + the forcing calendar being the same as the model calendar. The + forcing for a given model year would be the forcing of the same + year. This would be appropriate in transient runs where the + model calendar is setup to span the same year range as the + forcing data. + - + integer 2004 @@ -270,7 +243,7 @@ starting year to loop data over - + integer 2004 diff --git a/datm/cime_config/namelist_definition_datm.xml b/datm/cime_config/namelist_definition_datm.xml index a8c420889b..eaaf9290df 100644 --- a/datm/cime_config/namelist_definition_datm.xml +++ b/datm/cime_config/namelist_definition_datm.xml @@ -133,8 +133,8 @@ $ATM_DOMAIN_MESH - null - null + null + null @@ -148,8 +148,8 @@ $ATM_DOMAIN_MESH - $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE - $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE + $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE + $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE @@ -163,8 +163,8 @@ null - $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE - $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE + $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE + $ATM_DOMAIN_PATH/$ATM_DOMAIN_FILE diff --git a/datm/cime_config/stream_definition_datm.xml b/datm/cime_config/stream_definition_datm.xml index d7a957bc37..24af2bacd8 100644 --- a/datm/cime_config/stream_definition_datm.xml +++ b/datm/cime_config/stream_definition_datm.xml @@ -214,9 +214,9 @@ nn null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 coszen @@ -246,9 +246,9 @@ nn null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 nearest @@ -282,9 +282,9 @@ nn null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 linear @@ -317,9 +317,9 @@ bilinear null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 coszen @@ -348,9 +348,9 @@ bilinear null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 nearest @@ -383,9 +383,9 @@ nn null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 linear @@ -419,9 +419,9 @@ nn null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 coszen @@ -451,9 +451,9 @@ nn null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 nearest @@ -486,9 +486,9 @@ nn null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 linear @@ -522,7 +522,7 @@ nn null - $DATM_CLMNCEP_YR_ALIGN + $DATM_YR_ALIGN 2000 2004 0 @@ -554,7 +554,7 @@ nn null - $DATM_CLMNCEP_YR_ALIGN + $DATM_YR_ALIGN 2000 2004 0 @@ -589,7 +589,7 @@ nn null - $DATM_CLMNCEP_YR_ALIGN + $DATM_YR_ALIGN 2000 2004 0 @@ -624,9 +624,9 @@ redist null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 coszen @@ -655,9 +655,9 @@ redist null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 nearest @@ -690,9 +690,9 @@ redist null - $DATM_CLMNCEP_YR_ALIGN - $DATM_CLMNCEP_YR_START - $DATM_CLMNCEP_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 linear @@ -734,7 +734,7 @@ none null - $DATM_CLMNCEP_YR_ALIGN + $DATM_YR_ALIGN 1993 1993 0 @@ -774,7 +774,7 @@ none null - $DATM_CLMNCEP_YR_ALIGN + $DATM_YR_ALIGN 1992 1992 0 @@ -829,7 +829,7 @@ none null - $DATM_CLMNCEP_YR_ALIGN + $DATM_YR_ALIGN 0001 0002 0 @@ -3427,7 +3427,7 @@ $ATM_DOMAIN_MESH - $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x3h.%ym.nc + $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x3h.%ym.nc a2x3h_Sa_topo Sa_topo @@ -3438,9 +3438,9 @@ nn null - $DATM_CPLHIST_YR_ALIGN - $DATM_CPLHIST_YR_START - $DATM_CPLHIST_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 nearest @@ -3458,7 +3458,7 @@ $ATM_DOMAIN_MESH - $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x1d.%ym.nc + $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x1d.%ym.nc a2x1d_Faxa_bcphiwet Faxa_bcphiwet @@ -3482,9 +3482,9 @@ nn null - $DATM_CPLHIST_YR_ALIGN - $DATM_CPLHIST_YR_START - $DATM_CPLHIST_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 0 nearest @@ -3503,7 +3503,7 @@ $ATM_DOMAIN_MESH - $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x1hi.%ym.nc + $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x1hi.%ym.nc a2x1hi_Faxa_swndr Faxa_swndr @@ -3517,9 +3517,9 @@ nn null - $DATM_CPLHIST_YR_ALIGN - $DATM_CPLHIST_YR_START - $DATM_CPLHIST_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 2700 nearest @@ -3538,7 +3538,7 @@ $ATM_DOMAIN_MESH - $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x3h.%ym.nc + $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x3h.%ym.nc a2x3h_Faxa_rainc Faxa_rainc @@ -3553,9 +3553,9 @@ nn null - $DATM_CPLHIST_YR_ALIGN - $DATM_CPLHIST_YR_START - $DATM_CPLHIST_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 900 nearest @@ -3574,7 +3574,7 @@ $ATM_DOMAIN_MESH - $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x3h.%ym.nc + $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x3h.%ym.nc a2x3h_Sa_z Sa_z @@ -3593,9 +3593,9 @@ nn null - $DATM_CPLHIST_YR_ALIGN - $DATM_CPLHIST_YR_START - $DATM_CPLHIST_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 900 linear @@ -3614,7 +3614,7 @@ $ATM_DOMAIN_MESH - $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x1h.%ym.nc + $DATM_CPLHIST_DIR/$DATM_CPLHIST_CASE.cpl.ha2x1h.%ym.nc a2x1h_Sa_u Sa_u @@ -3626,9 +3626,9 @@ nn null - $DATM_CPLHIST_YR_ALIGN - $DATM_CPLHIST_YR_START - $DATM_CPLHIST_YR_END + $DATM_YR_ALIGN + $DATM_YR_START + $DATM_YR_END 900 linear diff --git a/datm/datm_datamode_cfsr_mod.F90 b/datm/datm_datamode_cfsr_mod.F90 index 2b0efb8490..d762353252 100644 --- a/datm/datm_datamode_cfsr_mod.F90 +++ b/datm/datm_datamode_cfsr_mod.F90 @@ -21,6 +21,7 @@ module datm_datamode_cfsr_mod public :: datm_datamode_cfsr_advance public :: datm_datamode_cfsr_restart_write public :: datm_datamode_cfsr_restart_read +! private :: datm_eSat ! determine saturation vapor pressure ! export state data real(r8), pointer :: Sa_z(:) => null() @@ -29,9 +30,14 @@ module datm_datamode_cfsr_mod real(r8), pointer :: Sa_tbot(:) => null() real(r8), pointer :: Sa_shum(:) => null() real(r8), pointer :: Sa_pbot(:) => null() + real(r8), pointer :: Sa_u10m(:) => null() + real(r8), pointer :: Sa_v10m(:) => null() + real(r8), pointer :: Sa_t2m(:) => null() + real(r8), pointer :: Sa_q2m(:) => null() + real(r8), pointer :: Sa_pslv(:) => null() real(r8), pointer :: Faxa_lwdn(:) => null() real(r8), pointer :: Faxa_rain(:) => null() - real(r8), pointer :: Faxa_snow(:) => null() + real(r8), pointer :: Faxa_snow(:) => null() real(r8), pointer :: Faxa_swndr(:) => null() real(r8), pointer :: Faxa_swndf(:) => null() real(r8), pointer :: Faxa_swvdr(:) => null() @@ -78,6 +84,11 @@ subroutine datm_datamode_cfsr_advertise(exportState, fldsexport, & call dshr_fldList_add(fldsExport, 'Sa_tbot' ) call dshr_fldList_add(fldsExport, 'Sa_pbot' ) call dshr_fldList_add(fldsExport, 'Sa_shum' ) + call dshr_fldList_add(fldsExport, 'Sa_u10m' ) + call dshr_fldList_add(fldsExport, 'Sa_v10m' ) + call dshr_fldList_add(fldsExport, 'Sa_t2m' ) + call dshr_fldList_add(fldsExport, 'Sa_q2m' ) + call dshr_fldList_add(fldsExport, 'Sa_pslv' ) call dshr_fldList_add(fldsExport, 'Faxa_rain' ) call dshr_fldList_add(fldsExport, 'Faxa_snow' ) call dshr_fldList_add(fldsExport, 'Faxa_swndr' ) @@ -113,6 +124,7 @@ subroutine datm_datamode_cfsr_init_pointers(exportState, sdat, rc) ! initialize pointers for module level stream arrays call shr_strdata_get_stream_pointer( sdat, 'Sa_mask' , strm_mask , rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return + ! get export state pointers call dshr_state_getfldptr(exportState, 'Sa_z' , fldptr1=Sa_z , rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return @@ -126,9 +138,19 @@ subroutine datm_datamode_cfsr_init_pointers(exportState, sdat, rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return call dshr_state_getfldptr(exportState, 'Sa_shum' , fldptr1=Sa_shum , rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return + call dshr_state_getfldptr(exportState, 'Sa_u10m' , fldptr1=Sa_u10m , rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + call dshr_state_getfldptr(exportState, 'Sa_v10m' , fldptr1=Sa_v10m , rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + call dshr_state_getfldptr(exportState, 'Sa_t2m' , fldptr1=Sa_t2m , rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + call dshr_state_getfldptr(exportState, 'Sa_q2m' , fldptr1=Sa_q2m , rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return + call dshr_state_getfldptr(exportState, 'Sa_pslv' , fldptr1=Sa_pslv , rc=rc) + if (ChkErr(rc,__LINE__,u_FILE_u)) return call dshr_state_getfldptr(exportState, 'Faxa_rain' , fldptr1=Faxa_rain , rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return - call dshr_state_getfldptr(exportState, 'Faxa_snow' , fldptr1=Faxa_snow , rc=rc) + call dshr_state_getfldptr(exportState, 'Faxa_snow' , fldptr1=Faxa_snow, rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return call dshr_state_getfldptr(exportState, 'Faxa_swvdr' , fldptr1=Faxa_swvdr , rc=rc) if (ChkErr(rc,__LINE__,u_FILE_u)) return @@ -187,6 +209,13 @@ subroutine datm_datamode_cfsr_advance(exportstate, masterproc, logunit, mpicom, end if do n = 1, lsize + !--- bottom layer height --- +! Sa_z(n) = 10.0_r8 + + !--- calculate wind speed --- +! if (associated(Sa_wspd)) then +! Sa_wspd(n) = sqrt(Sa_u(n)*Sa_u(n)+Sa_v(n)*Sa_v(n)) +! end if !--- temperature --- if (tbotmax < 50.0_r8) Sa_tbot(n) = Sa_tbot(n) + tkFrz @@ -196,9 +225,44 @@ subroutine datm_datamode_cfsr_advance(exportstate, masterproc, logunit, mpicom, end do !---------------------------------------------------------- - ! unit conversions (temporal resolution is 6-hourly) + ! unit conversions (temporal resolution is hourly) !---------------------------------------------------------- + ! convert J/m^2 to W/m^2 + !Faxa_lwdn(:) = Faxa_lwdn(:)/3600.0_r8 +! Faxa_lwdn(:) = Faxa_lwdn(:)/21600.0_r8 +! if (associated(Faxa_lwnet)) then +! Faxa_lwnet(:) = Faxa_lwnet(:)/3600.0_r8 +! end if +! Faxa_swdn(:) = Faxa_swdn(:)/3600.0_r8 +! Faxa_swdn(:) = Faxa_swdn(:)/21600.0_r8 + !Faxa_swvdr(:) = Faxa_swvdr(:)/3600.0_r8 + !Faxa_swndr(:) = Faxa_swndr(:)/3600.0_r8 + !Faxa_swvdf(:) = Faxa_swvdf(:)/3600.0_r8 + !Faxa_swndf(:) = Faxa_swndf(:)/3600.0_r8 +! Faxa_swvdr(:) = Faxa_swvdr(:)/21600.0_r8 +! Faxa_swndr(:) = Faxa_swndr(:)/21600.0_r8 +! Faxa_swvdf(:) = Faxa_swvdf(:)/21600.0_r8 +! Faxa_swndf(:) = Faxa_swndf(:)/21600.0_r8 +! Faxa_swnet(:) = Faxa_swnet(:)/3600.0_r8 +! Faxa_sen(:) = Faxa_sen(:)/3600.0_r8 +! Faxa_lat(:) = Faxa_lat(:)/3600.0_r8 + + ! convert m to kg/m^2/s + !Faxa_rain(:) = Faxa_rain(:)/3600.0_r8*rhofw +! Faxa_rain(:) = Faxa_rain(:)/21600.0_r8*rhofw +! Faxa_rainc(:) = Faxa_rainc(:)/3600.0_r8*rhofw +! Faxa_rainl(:) = Faxa_rainl(:)/3600.0_r8*rhofw +! Faxa_snowc(:) = Faxa_snowc(:)/3600.0_r8*rhofw + !Faxa_snow(:) = Faxa_snow(:)/3600.0_r8*rhofw +! Faxa_snow(:) = Faxa_snow(:)/21600.0_r8*rhofw + + ! convert N/m^2 s to N/m^2 +! Faxa_taux(:) = Faxa_taux(:)/3600.0_r8 +! Faxa_tauy(:) = Faxa_tauy(:)/3600.0_r8 +! Faxa_taux(:) = Faxa_taux(:)/21600.0_r8 +! Faxa_tauy(:) = Faxa_tauy(:)/21600.0_r8 + end subroutine datm_datamode_cfsr_advance !=============================================================================== diff --git a/dice/cime_config/buildnml b/dice/cime_config/buildnml index 7b925d5b4e..aca70e45e2 100755 --- a/dice/cime_config/buildnml +++ b/dice/cime_config/buildnml @@ -63,10 +63,15 @@ def _create_namelists(case, confdir, inst_string, infile, nmlgen, data_list_path config = {} config['ice_grid'] = ice_grid config['dice_mode'] = dice_mode - config['scol_mode'] = 'true' if case.get_value('PTS_MODE') else 'false' - config['create_mesh'] = 'true' if case.get_value("ICE_DOMAIN_MESH") == 'create_mesh' else 'false' - scol_mode = True if case.get_value('PTS_MODE') else False - config['set_model_maskfile'] = 'true' if scol_mode or (ice_nx==atm_nx and ice_ny==atm_ny) else 'false' + config['set_model_maskfile'] = 'false' + if case.get_value('PTS_MODE'): + config['mode'] = 'single_column' + config['set_model_maskfile'] = 'true' + else: + config['mode'] = case.get_value("ICE_DOMAIN_MESH") + + if (ice_nx==atm_nx and ice_ny==atm_ny): + config['set_model_maskfile'] = 'true' # Initialize nmlgen nmlgen.init_defaults(infile, config) diff --git a/dice/cime_config/namelist_definition_dice.xml b/dice/cime_config/namelist_definition_dice.xml index fe18d508a5..7f375bfc19 100644 --- a/dice/cime_config/namelist_definition_dice.xml +++ b/dice/cime_config/namelist_definition_dice.xml @@ -54,8 +54,8 @@ file specifying model mesh $ICE_DOMAIN_MESH - null - null + null + null @@ -68,10 +68,7 @@ file specifying model mask if not obtained from input model mesh - $ICE_DOMAIN_MESH - $ICE_DOMAIN_PATH/$ICE_DOMAIN_FILE - $ICE_DOMAIN_PATH/$ICE_DOMAIN_FILE - $ICE_DOMAIN_PATH/$ICE_DOMAIN_FILE + $MASK_MESH @@ -83,8 +80,8 @@ file specifying if model mesh is to be created at runtime null - $ICE_DOMAIN_PATH/$ICE_DOMAIN_FILE - $ICE_DOMAIN_PATH/$ICE_DOMAIN_FILE + $ICE_DOMAIN_PATH/$ICE_DOMAIN_FILE + $ICE_DOMAIN_PATH/$ICE_DOMAIN_FILE diff --git a/dlnd/cime_config/buildnml b/dlnd/cime_config/buildnml index e6176e3bdd..6676577842 100755 --- a/dlnd/cime_config/buildnml +++ b/dlnd/cime_config/buildnml @@ -62,9 +62,8 @@ def _create_namelists(case, confdir, inst_string, infile, nmlgen, data_list_path config['dlnd_mode'] = dlnd_mode config['create_mesh'] = 'true' if case.get_value("LND_DOMAIN_MESH") == 'create_mesh' else 'false' - # Do not allow single column mode for drof - scol_mode = True if case.get_value('PTS_MODE') else False - expect(not scol_mode, + # Do not allow single column mode for dlnd + expect(not case.get_value('PTS_MODE'), "for DLND, single column mode is not allowed") # Initialize nmlgen diff --git a/doc/source/streams.rst b/doc/source/streams.rst index c2f7d9073f..743f31b65f 100644 --- a/doc/source/streams.rst +++ b/doc/source/streams.rst @@ -219,15 +219,15 @@ where: over the forcing data for 1901-1920, and then run the model for years 1901-2010 using the forcing data from 1901-2010. To do this, initially set:: - ./xmlchange DATM_CLMNCEP_YR_ALIGN=1901 - ./xmlchange DATM_CLMNCEP_YR_START=1901 - ./xmlchange DATM_CLMNCEP_YR_END=1920 + ./xmlchange DATM_YR_ALIGN=1901 + ./xmlchange DATM_YR_START=1901 + ./xmlchange DATM_YR_END=1920 When the model has completed year 1900, set:: - ./xmlchange DATM_CLMNCEP_YR_ALIGN=1901 - ./xmlchange DATM_CLMNCEP_YR_START=1901 - ./xmlchange DATM_CLMNCEP_YR_END=2010 + ./xmlchange DATM_YR_ALIGN=1901 + ./xmlchange DATM_YR_START=1901 + ./xmlchange DATM_YR_END=2010 With this setup, the correlation between model run year and forcing year looks like this:: @@ -235,7 +235,7 @@ where: RUN Year : 1850 ... 1860 1861 ... 1870 ... 1880 1881 ... 1890 ... 1900 1901 ... 2010 FORCE Year : 1910 ... 1920 1901 ... 1910 ... 1920 1901 ... 1910 ... 1920 1901 ... 2010 - Setting ``DATM_CLMNCEP_YR_ALIGN`` to 1901 tells the code that you want + Setting ``DATM_YR_ALIGN`` to 1901 tells the code that you want to align model year 1901 with forcing data year 1901, and then it calculates what the forcing year should be if the model starts in year 1850. diff --git a/docn/cime_config/buildnml b/docn/cime_config/buildnml index e76b8d0c19..16066f7a31 100755 --- a/docn/cime_config/buildnml +++ b/docn/cime_config/buildnml @@ -69,7 +69,6 @@ def _create_namelists(case, confdir, inst_string, infile, nmlgen, data_list_path config['docn_mode'] = docn_mode config['create_mesh'] = 'true' if case.get_value("OCN_DOMAIN_MESH") == 'create_mesh' else 'false' config['aqua_planet'] = 'true' if 'aquap' in docn_mode else 'false' - scol_mode = True if case.get_value('PTS_MODE') else False nmlgen.init_defaults(infile, config) diff --git a/docn/cime_config/namelist_definition_docn.xml b/docn/cime_config/namelist_definition_docn.xml index cd7af94c07..aa5a050f51 100644 --- a/docn/cime_config/namelist_definition_docn.xml +++ b/docn/cime_config/namelist_definition_docn.xml @@ -119,8 +119,8 @@ $OCN_DOMAIN_MESH - null - null + null + null @@ -148,8 +148,8 @@ null - $OCN_DOMAIN_PATH/$OCN_DOMAIN_FILE - $OCN_DOMAIN_PATH/$OCN_DOMAIN_FILE + $OCN_DOMAIN_PATH/$OCN_DOMAIN_FILE + $OCN_DOMAIN_PATH/$OCN_DOMAIN_FILE diff --git a/drof/cime_config/buildnml b/drof/cime_config/buildnml index 316b469068..f7d5675041 100755 --- a/drof/cime_config/buildnml +++ b/drof/cime_config/buildnml @@ -63,8 +63,7 @@ def _create_namelists(case, confdir, inst_string, infile, nmlgen, data_list_path config['create_mesh'] = 'true' if case.get_value("ROF_DOMAIN_MESH") == 'create_mesh' else 'false' # Do not allow single column mode for drof - scol_mode = True if case.get_value('PTS_MODE') else False - expect(not scol_mode, + expect(not case.get_value('PTS_MODE'), "for, DROF single column mode is not allowed") # Initialize nmlgen diff --git a/dwav/cime_config/buildnml b/dwav/cime_config/buildnml index 88e4b19cda..5f9f508c85 100755 --- a/dwav/cime_config/buildnml +++ b/dwav/cime_config/buildnml @@ -61,8 +61,7 @@ def _create_namelists(case, confdir, inst_string, infile, nmlgen, data_list_path config['dwav_mode'] = dwav_mode # do not allow single column mode for dwav - scol_mode = True if case.get_value('PTS_MODE') else False - expect(not scol_mode, + expect(not case.get_value('PTS_MODE'), "for, DWAV single column mode is not allowed") # Initialize nmlgen