From c0bf3a166a8d5f965750030eba693cb00d9e8aa6 Mon Sep 17 00:00:00 2001 From: wwieder Date: Mon, 18 Mar 2024 06:26:08 -0600 Subject: [PATCH 01/33] BNF usermods --- .../BNF/BNF_Bon/include_user_mods | 1 + .../usermods_dirs/BNF/BNF_Bon/shell_commands | 10 +++ .../usermods_dirs/BNF/BNF_Bon/user_nl_clm | 22 ++++++ .../BNF/BNF_Bon/user_nl_datm_streams | 71 +++++++++++++++++++ .../BNF/BNF_Har/include_user_mods | 1 + .../usermods_dirs/BNF/BNF_Har/shell_commands | 10 +++ .../usermods_dirs/BNF/BNF_Har/user_nl_clm | 23 ++++++ .../BNF/BNF_Har/user_nl_datm_streams | 71 +++++++++++++++++++ .../BNF/BNF_Man/include_user_mods | 1 + .../usermods_dirs/BNF/BNF_Man/shell_commands | 10 +++ .../usermods_dirs/BNF/BNF_Man/user_nl_clm | 22 ++++++ .../BNF/BNF_Man/user_nl_datm_streams | 71 +++++++++++++++++++ .../usermods_dirs/BNF/defaults/shell_commands | 18 +++++ 13 files changed, 331 insertions(+) create mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods create mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands create mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm create mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams create mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods create mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/shell_commands create mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm create mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams create mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods create mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/shell_commands create mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm create mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams create mode 100644 cime_config/usermods_dirs/BNF/defaults/shell_commands diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods b/cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands b/cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands new file mode 100644 index 0000000000..18bc60ee38 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands @@ -0,0 +1,10 @@ + +# Change below line if you move the subset data directory + +./xmlchange CLM_USRDAT_DIR=/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon + +./xmlchange PTS_LON=212.25 + +./xmlchange PTS_LAT=64.75 + +./xmlchange CLM_USRDAT_NAME='BNF_Bon' diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm b/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm new file mode 100644 index 0000000000..ce0cb8fddb --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm @@ -0,0 +1,22 @@ +!---------------------------------------------------------------------------------- +! Users should add all user specific namelist changes below in the form of +! namelist_var = new_namelist_value +! +! EXCEPTIONS: +! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting +! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting +! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting +! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting +! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting +! Set co2_ppmv with CCSM_CO2_PPMV option +! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options +! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases +! (includes $inst_string for multi-ensemble cases) +! or with CLM_FORCE_COLDSTART to do a cold start +! or set it with an explicit filename here. +! Set maxpatch_glc with GLC_NEC option +! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable +!---------------------------------------------------------------------------------- + +flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets +fsurdat = '$CLM_USRDAT_DIR/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_BNF_Bon_c221108.nc' diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams b/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams new file mode 100644 index 0000000000..dbd7b81f92 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams @@ -0,0 +1,71 @@ +!------------------------------------------------------------------------ +! This file is used to modify datm.streams.xml generated in $RUNDIR +! Entries should have the form +! :<= new stream_value> +! The following are accepted values for an assume streamname of foo +! foo:meshfile = character string +! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) +! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) +! foo:taxmode = one of [cycle, extend, limit] +! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] +! foo:readmode = single (only suported mode right now) +! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] +! foo:dtlimit = real (1.5 is default) +! foo:year_first = integer +! foo:year_last = integer +! foo:year_align = integer +! foo:vectors = one of [none,u:v] +! foo:lev_dimname: = one of [null,name of level dimenion name] +! foo:offset = integer +! As an example: +! foo:year_first = 1950 +! would change the stream year_first stream_entry to 1950 for the foo stream block +! NOTE: multi-line inputs are enabled by adding a \ at the end of the line +! As an emaple: +! foo:datafiles=foo1,foo2, \ +! foo3 +! Will yield the following new entry for datafiles in stream foo +! +! foo1 +! foo2 +! foo3 +! +!----------------------------------------------------------------------- +!CLM_USRDAT.BNF_Bon:offset = -48600 +!CLM_USRDAT.BNF_Bon:dtlimit = 30 +!CLM_USRDAT.BNF_Bon:year_first = 1850 +!CLM_USRDAT.BNF_Bon:year_align = 1850 +!CLM_USRDAT.BNF_Bon:year_last = 1869 + +CLM_USRDAT.BNF_Bon:datavars = \ + PRECTmms Faxa_precn, \ + FSDS Faxa_swdn, \ + ZBOT Sa_z, \ + TBOT Sa_tbot, \ + WIND Sa_wind, \ + QATM Sa_shum, \ + PSRF Sa_pbot, \ + FLDS Faxa_lwdn + +CLM_USRDAT.BNF_Bon:datafiles = \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1850.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1851.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1852.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1853.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1854.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1855.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1856.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1857.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1858.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1859.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1860.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1861.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1862.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1863.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1864.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1865.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1866.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1867.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1868.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1869.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1870.nc diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods b/cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/shell_commands b/cime_config/usermods_dirs/BNF/BNF_Har/shell_commands new file mode 100644 index 0000000000..04d998473f --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Har/shell_commands @@ -0,0 +1,10 @@ + +# Change below line if you move the subset data directory + +./xmlchange CLM_USRDAT_DIR=/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har + +./xmlchange PTS_LON=287.75 + +./xmlchange PTS_LAT=42.75 + +./xmlchange CLM_USRDAT_NAME='BNF_Har' diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm b/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm new file mode 100644 index 0000000000..33c4a27486 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm @@ -0,0 +1,23 @@ +!---------------------------------------------------------------------------------- +! Users should add all user specific namelist changes below in the form of +! namelist_var = new_namelist_value +! +! EXCEPTIONS: +! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting +! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting +! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting +! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting +! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting +! Set co2_ppmv with CCSM_CO2_PPMV option +! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options +! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases +! (includes $inst_string for multi-ensemble cases) +! or with CLM_FORCE_COLDSTART to do a cold start +! or set it with an explicit filename here. +! Set maxpatch_glc with GLC_NEC option +! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable +!---------------------------------------------------------------------------------- + +flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets +fsurdat = '$CLM_USRDAT_DIR/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_BNF_Har_c221109.nc' + diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams b/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams new file mode 100644 index 0000000000..583fe0eb3c --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams @@ -0,0 +1,71 @@ +!------------------------------------------------------------------------ +! This file is used to modify datm.streams.xml generated in $RUNDIR +! Entries should have the form +! :<= new stream_value> +! The following are accepted values for an assume streamname of foo +! foo:meshfile = character string +! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) +! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) +! foo:taxmode = one of [cycle, extend, limit] +! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] +! foo:readmode = single (only suported mode right now) +! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] +! foo:dtlimit = real (1.5 is default) +! foo:year_first = integer +! foo:year_last = integer +! foo:year_align = integer +! foo:vectors = one of [none,u:v] +! foo:lev_dimname: = one of [null,name of level dimenion name] +! foo:offset = integer +! As an example: +! foo:year_first = 1950 +! would change the stream year_first stream_entry to 1950 for the foo stream block +! NOTE: multi-line inputs are enabled by adding a \ at the end of the line +! As an emaple: +! foo:datafiles=foo1,foo2, \ +! foo3 +! Will yield the following new entry for datafiles in stream foo +! +! foo1 +! foo2 +! foo3 +! +!----------------------------------------------------------------------- +!CLM_USRDAT.BNF_Har:offset = -48600 +!CLM_USRDAT.BNF_Har:dtlimit = 30 +!CLM_USRDAT.BNF_Har:year_first = 1850 +!CLM_USRDAT.BNF_Har:year_align = 1850 +!CLM_USRDAT.BNF_Har:year_last = 1869 + +CLM_USRDAT.BNF_Har:datavars = \ + PRECTmms Faxa_precn, \ + FSDS Faxa_swdn, \ + ZBOT Sa_z, \ + TBOT Sa_tbot, \ + WIND Sa_wind, \ + QATM Sa_shum, \ + PSRF Sa_pbot, \ + FLDS Faxa_lwdn + +CLM_USRDAT.BNF_Har:datafiles = \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1850.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1851.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1852.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1853.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1854.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1855.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1856.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1857.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1858.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1859.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1860.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1861.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1862.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1863.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1864.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1865.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1866.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1867.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1868.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1869.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1870.nc diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods b/cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods new file mode 100644 index 0000000000..b152996d95 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods @@ -0,0 +1 @@ +../defaults diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/shell_commands b/cime_config/usermods_dirs/BNF/BNF_Man/shell_commands new file mode 100644 index 0000000000..72529f64d5 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Man/shell_commands @@ -0,0 +1,10 @@ + +# Change below line if you move the subset data directory + +./xmlchange CLM_USRDAT_DIR=/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man + +./xmlchange PTS_LON=299.75 + +./xmlchange PTS_LAT=-3.25 + +./xmlchange CLM_USRDAT_NAME='BNF_Man' diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm b/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm new file mode 100644 index 0000000000..5d5ec2dd03 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm @@ -0,0 +1,22 @@ +!---------------------------------------------------------------------------------- +! Users should add all user specific namelist changes below in the form of +! namelist_var = new_namelist_value +! +! EXCEPTIONS: +! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting +! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting +! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting +! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting +! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting +! Set co2_ppmv with CCSM_CO2_PPMV option +! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options +! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases +! (includes $inst_string for multi-ensemble cases) +! or with CLM_FORCE_COLDSTART to do a cold start +! or set it with an explicit filename here. +! Set maxpatch_glc with GLC_NEC option +! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable +!---------------------------------------------------------------------------------- + +flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets +fsurdat = '$CLM_USRDAT_DIR/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_BNF_Man_c221109.nc' diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams b/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams new file mode 100644 index 0000000000..4a9786ef07 --- /dev/null +++ b/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams @@ -0,0 +1,71 @@ +!------------------------------------------------------------------------ +! This file is used to modify datm.streams.xml generated in $RUNDIR +! Entries should have the form +! :<= new stream_value> +! The following are accepted values for an assume streamname of foo +! foo:meshfile = character string +! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) +! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) +! foo:taxmode = one of [cycle, extend, limit] +! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] +! foo:readmode = single (only suported mode right now) +! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] +! foo:dtlimit = real (1.5 is default) +! foo:year_first = integer +! foo:year_last = integer +! foo:year_align = integer +! foo:vectors = one of [none,u:v] +! foo:lev_dimname: = one of [null,name of level dimenion name] +! foo:offset = integer +! As an example: +! foo:year_first = 1950 +! would change the stream year_first stream_entry to 1950 for the foo stream block +! NOTE: multi-line inputs are enabled by adding a \ at the end of the line +! As an emaple: +! foo:datafiles=foo1,foo2, \ +! foo3 +! Will yield the following new entry for datafiles in stream foo +! +! foo1 +! foo2 +! foo3 +! +!----------------------------------------------------------------------- +!CLM_USRDAT.BNF_Man:offset = -48600 +!CLM_USRDAT.BNF_Man:dtlimit = 30 +!CLM_USRDAT.BNF_Man:year_first = 1850 +!CLM_USRDAT.BNF_Man:year_align = 1850 +!CLM_USRDAT.BNF_Man:year_last = 1869 + +CLM_USRDAT.BNF_Man:datavars = \ + PRECTmms Faxa_precn, \ + FSDS Faxa_swdn, \ + ZBOT Sa_z, \ + TBOT Sa_tbot, \ + WIND Sa_wind, \ + QATM Sa_shum, \ + PSRF Sa_pbot, \ + FLDS Faxa_lwdn + +CLM_USRDAT.BNF_Man:datafiles = \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1850.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1851.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1852.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1853.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1854.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1855.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1856.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1857.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1858.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1859.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1860.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1861.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1862.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1863.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1864.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1865.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1866.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1867.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1868.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1869.nc, \ + /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1870.nc diff --git a/cime_config/usermods_dirs/BNF/defaults/shell_commands b/cime_config/usermods_dirs/BNF/defaults/shell_commands new file mode 100644 index 0000000000..c9319f85bc --- /dev/null +++ b/cime_config/usermods_dirs/BNF/defaults/shell_commands @@ -0,0 +1,18 @@ + +# Change below line if you move the subset data directory +./xmlchange MPILIB=mpi-serial +./xmlchange DIN_LOC_ROOT_CLMFORC='/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN' +./xmlchange STOP_OPTION=nyears +./xmlchange CONTINUE_RUN=FALSE + +# Explicitly set PIO Type to NETCDF since this is a single processor case (should already be set this way) +./xmlchange PIO_TYPENAME=netcdf +./xmlchange DATM_YR_ALIGN=1851,DATM_YR_END=1870,DATM_YR_START=1851 +./xmlchange PIO_REARRANGER_LND=1 +# Set up a simulation from cold start +./xmlchange CLM_FORCE_COLDSTART=on +./xmlchange CLM_ACCELERATED_SPINUP=on +./xmlchange STOP_N=100 +./xmlchange REST_N=100 +./xmlchange RUN_STARTDATE=0001-01-01 +./xmlchange RESUBMIT=1 From e381e9d991b2ca47af5be0a9b55199a5b6e92fa8 Mon Sep 17 00:00:00 2001 From: wwieder Date: Thu, 7 Nov 2024 14:35:55 -0700 Subject: [PATCH 02/33] alternative nfix temperature cost function --- src/biogeochem/CNFUNMod.F90 | 153 ++++++++++++++++++++++++++++++++++-- src/main/pftconMod.F90 | 18 +++++ 2 files changed, 163 insertions(+), 8 deletions(-) diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index a6614fe4b9..65524a6ba5 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -26,7 +26,7 @@ module CNFUNMod use pftconMod , only : pftcon, npcropmin use decompMod , only : bounds_type use clm_varctl , only : use_nitrif_denitrif,use_flexiblecn - use CNSharedParamsMod , only : use_matrixcn + use CNSharedParamsMod , only : use_matrixcn use abortutils , only : endrun use CNVegstateType , only : cnveg_state_type use CNVegCarbonStateType , only : cnveg_carbonstate_type @@ -290,7 +290,8 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& real(r8) :: litterfall_n(bounds%begp:bounds%endp) ! N loss based on the leafc to litter (gN/m2) real(r8) :: litterfall_n_step(bounds%begp:bounds%endp,1:nstp) ! N loss based on the leafc to litter (gN/m2) real(r8) :: litterfall_c_step(bounds%begp:bounds%endp,1:nstp) ! N loss based on the leafc to litter (gN/m2) - real(r8) :: tc_soisno(bounds%begc:bounds%endc,1:nlevdecomp) ! Soil temperature (degrees Celsius) + real(r8) :: tc_soisno(bounds%begc:bounds%endc,1:nlevdecomp) ! Soil temperature (degrees Celsius) + real(r8) :: tc_soila10(bounds%begc:bounds%endc) ! 10 day running mean Soil temperature (degrees Celsius) real(r8) :: npp_remaining(bounds%begp:bounds%endp,1:nstp) ! A temporary variable for npp_remaining(gC/m2) real(r8) :: n_passive_step(bounds%begp:bounds%endp,1:nstp) ! N taken up by transpiration at substep(gN/m2) real(r8) :: n_passive_acc(bounds%begp:bounds%endp) ! N acquired by passive uptake (gN/m2) @@ -467,6 +468,18 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& real(r8) :: total_c_spent_retrans real(r8) :: total_c_accounted_retrans + ! Nfix parameters from Bytnerowicz et al. (2022), + ! TODO, remove now that these have been put on parameter files + ! Temperate (and boreal) + !real(r8) :: nfix_tmin = -2.04_r8 + !real(r8) :: nfix_topt = 32.10_r8 + !real(r8) :: nfix_tmax = 43.98_r8 + ! Tropical parameters + !real(r8) :: nfix_tmin = 7.04_r8 ! Minimum temperature for tropical Nfix + !real(r8) :: nfix_topt = 33.22_r8 ! Optimum temperature for tropical Nfix + !real(r8) :: nfix_tmax = 45.35_r8 ! Max temperature for tropical N fix + + !------end of not_use_nitrif_denitrif------! !-------------------------------------------------------------------- @@ -507,6 +520,9 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& b_fix => pftcon%b_fix , & ! Input: A BNF parameter c_fix => pftcon%c_fix , & ! Input: A BNF parameter s_fix => pftcon%s_fix , & ! Input: A BNF parameter + nfix_tmin => pftcon%nfix_tmin , & ! Input: A BNF parameter + nfix_topt => pftcon%nfix_topt , & ! Input: A BNF parameter + nfix_tmax => pftcon%nfix_tmax , & ! Input: A BNF parameter akc_active => pftcon%akc_active , & ! Input: A mycorrhizal uptake ! parameter akn_active => pftcon%akn_active , & ! Input: A mycorrhizal uptake @@ -706,6 +722,8 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& ! liquid water (kg/m2) (new) (-nlevsno+1:nlevgrnd) t_soisno => temperature_inst%t_soisno_col , & ! Input: [real(r8) (:,:)] ! soil temperature (Kelvin) (-nlevsno+1:nlevgrnd) + soila10 => temperature_inst%soila10_col , & ! Input: [real(r8) (:) ] + ! col 10-day running mean of the 12cm soil layer temperature (K) crootfr => soilstate_inst%crootfr_patch & ! Input: [real(r8) (:,:)] ! fraction of roots for carbon in each soil layer (nlevgrnd) ) @@ -1041,9 +1059,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& npp_to_nonmyc_nh4(:) = 0.0_r8 npp_to_fixation(:) = 0.0_r8 npp_to_retrans(:) = 0.0_r8 - - - + unmetDemand = .TRUE. plant_ndemand_pool_step(p,istp) = plant_ndemand_pool(p) * permyc(p,istp) npp_remaining(p,istp) = availc_pool(p) * permyc(p,istp) @@ -1051,16 +1067,32 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& ! if (plant_ndemand_pool_step(p,istp) .gt. 0._r8) then ! ! plant_ndemand_pool_step > 0.0 - + do j = 1, nlevdecomp tc_soisno(c,j) = t_soisno(c,j) - tfrz + ! running mean soil temperature only calculated for single soil layer + tc_soila10(c) = soila10(c) - tfrz + if(pftcon%c3psn(patch%itype(p)).eq.1)then fixer=1 else fixer=0 endif - costNit(j,icostFix) = fun_cost_fix(fixer,a_fix(ivt(p)),b_fix(ivt(p))& - ,c_fix(ivt(p)) ,big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) + ! TODO, make this a name list change determining which equation to use + ! This calls the Houlton function. + ! costNit(j,icostFix) = fun_cost_fix(fixer,a_fix(ivt(p)),b_fix(ivt(p))& + ! ,c_fix(ivt(p)) ,big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) + + ! Bytnerowicz no acclimation calculation + costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, nfix_tmin(ivt(p))& + ,nfix_topt(ivt(p)), nfix_tmax(ivt(p)), big_cost,crootfr(p,j)& + ,s_fix(ivt(p)), tc_soisno(c,j)) + + + ! Bytnerowicz acclimation calculation + !costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_Acc(fixer,nfix_tmin,nfix_topt& + !,nfix_tmax ,big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soila10(c)) + end do cost_fix(p,1:nlevdecomp) = costNit(:,icostFix) @@ -1608,6 +1640,111 @@ real(r8) function fun_cost_fix(fixer,a_fix,b_fix,c_fix,big_cost,crootfr,s_fix, t end if ! ends up with the fixer or non-fixer decision end function fun_cost_fix + + +!========================================================================================= + real(r8) function fun_cost_fix_Bytnerowicz_noAcc(fixer,nfix_tmin,nfix_topt,nfix_tmax,big_cost,crootfr,s_fix, tc_soisno) + +! Description: +! Calculate the cost of fixing N by nodules. +! Code Description: +! This code is written to CTSM5.1 by Will Wieder 11/17/2022, modified for CLM6 11/01/2024 + + implicit none +!-------------------------------------------------------------------------- +! Function result. +!-------------------------------------------------------------------------- +! real(r8) , intent(out) :: cost_of_n !!! cost of fixing N (kgC/kgN) +!-------------------------------------------------------------------------- + integer, intent(in) :: fixer ! flag indicating if plant is a fixer + ! 1=yes, otherwise no. + real(r8), intent(in) :: nfix_tmin ! As in Bytnerowicz et al. (2022) + real(r8), intent(in) :: nfix_topt ! As in Bytnerowicz et al. (2022) + real(r8), intent(in) :: nfix_tmax ! As in Bytnerowicz et al. (2022) + real(r8), intent(in) :: big_cost ! an arbitrary large cost (gC/gN) + real(r8), intent(in) :: crootfr ! fraction of roots for carbon that are in this layer + real(r8), intent(in) :: s_fix ! Inverts Houlton et al. 2008 and constrains between 7.5 and 12.5 + real(r8), intent(in) :: tc_soisno ! soil temperature (degrees Celsius) + + if (fixer == 1 .and. crootfr > 1.e-6_r8 .and. tc_soisno > nfix_tmin .and. tc_soisno < nfix_tmax) then + fun_cost_fix_Bytnerowicz_noAcc = (-1*s_fix) / ( ((nfix_tmax-tc_soisno)/(nfix_tmax-nfix_topt))*& + ( ((tc_soisno-nfix_tmin)/(nfix_topt-nfix_tmin))**& + ((nfix_topt- nfix_tmin)/(nfix_tmax-nfix_topt)) ) ) + + else + fun_cost_fix_Bytnerowicz_noAcc = big_cost + end if ! ends up with the fixer or non-fixer decision + + end function fun_cost_fix_Bytnerowicz_noAcc +!========================================================================================= + +! TODO, likely just remove the acclimation fuction, as it seems pretty complicated and didn't change point-scale results +!========================================================================================= + real(r8) function fun_cost_fix_Bytnerowicz_Acc(fixer,nfix_tmin,nfix_topt,nfix_tmax,big_cost,crootfr,s_fix,tc_soisno,tc_soila10) + +! Description: +! Calculate the cost of fixing N by nodules. +! Code Description: +! This code is written to CTSM5.1 by Will Wieder 11/17/2022 + + implicit none +!-------------------------------------------------------------------------- +! Function result. +!-------------------------------------------------------------------------- +! real(r8) , intent(out) :: cost_of_n !!! cost of fixing N (kgC/kgN) +!-------------------------------------------------------------------------- + integer, intent(in) :: fixer ! flag indicating if plant is a fixer + ! 1=yes, otherwise no. + real(r8), intent(inout) :: nfix_tmin ! As in Bytnerowicz et al. (2022) + real(r8), intent(inout) :: nfix_topt ! As in Bytnerowicz et al. (2022) + real(r8), intent(inout) :: nfix_tmax ! As in Bytnerowicz et al. (2022) + real(r8), intent(in) :: big_cost ! an arbitrary large cost (gC/gN) + real(r8), intent(in) :: crootfr ! fraction of roots for carbon that are in this layer + real(r8), intent(in) :: s_fix ! Inverts Houlton et al. 2008 and constrains between 7.5 and 12.5 + real(r8), intent(in) :: tc_soila10 ! 10 day running mean soil temperature, 12 cm (degrees Celsius) + real(r8), intent(in) :: tc_soisno ! soil temperature (degrees Celsius) + + ! Temperate temperature function + !if (tc_soila10 < 18.5_r8) then + ! nfix_tmin = -2.04_r8 + ! nfix_topt = 32.10_r8 + ! nfix_tmax = 43.98_r8 + !else if (tc_soila10 >= 18.5_r8 .and. tc_soila10 < 28.5_r8) then + ! nfix_tmin = 0.697_r8 * tc_soila10 - 14.93_r8 + ! nfix_topt = 0.047_r8 * tc_soila10 + 31.24_r8 + ! nfix_tmax = 0.009_r8 * tc_soila10 + 43.82_r8 + !else + ! nfix_tmin = 4.93_r8 + ! nfix_topt = 32.58_r8 + ! nfix_tmax = 44.08_r8 + !end if + !Tropical temperature function !Tmax never changes! + nfix_tmax = 45.35_r8 + if (tc_soila10 < 18.5_r8) then + nfix_tmin = 2.37_r8 !parameter not the same as in noACC + nfix_topt = 30.34_r8 + else if (tc_soila10 >= 18.5_r8 .and. tc_soila10 < 28.5_r8) then + nfix_tmin = 0.932_r8 * tc_soila10 - 14.87_r8 + nfix_topt = 0.574_r8 * tc_soila10 + 19.72_r8 + else if (tc_soila10 >= 28.5_r8) then + nfix_tmin = 11.69_r8 + nfix_topt = 36.08_r8 + end if + + if (fixer == 1 .and. crootfr > 1.e-6_r8 .and. tc_soisno > nfix_tmin .and. tc_soisno < nfix_tmax) then + fun_cost_fix_Bytnerowicz_Acc = (-1*s_fix) / ( ((nfix_tmax-tc_soisno)/(nfix_tmax-nfix_topt))*& + ( ((tc_soisno-nfix_tmin)/(nfix_topt-nfix_tmin))**& + ((nfix_topt- nfix_tmin)/(nfix_tmax-nfix_topt)) ) ) + + !fun_cost_fix = (-1*s_fix) * 1.0_r8 / (1.25_r8* (exp(a_fix + b_fix * tc_soila10 * (1._r8 - 0.5_r8 * tc_soila10 / c_fix)) )) + else + fun_cost_fix_Bytnerowicz_Acc = big_cost + end if ! ends up with the fixer or non-fixer decision + + end function fun_cost_fix_Bytnerowicz_Acc +!========================================================================================= + + !========================================================================================= real(r8) function fun_cost_active(sminn_layer,big_cost,kc_active,kn_active,rootc_dens,crootfr,smallValue) diff --git a/src/main/pftconMod.F90 b/src/main/pftconMod.F90 index b987879c03..977a6f03e0 100644 --- a/src/main/pftconMod.F90 +++ b/src/main/pftconMod.F90 @@ -268,6 +268,9 @@ module pftconMod real(r8), allocatable :: b_fix (:) ! A BNF parameter real(r8), allocatable :: c_fix (:) ! A BNF parameter real(r8), allocatable :: s_fix (:) ! A BNF parameter + real(r8), allocatable :: nfix_tmin (:) ! A BNF parameter + real(r8), allocatable :: nfix_topt (:) ! A BNF parameter + real(r8), allocatable :: nfix_tmax (:) ! A BNF parameter real(r8), allocatable :: akc_active (:) ! A mycorrhizal uptake parameter real(r8), allocatable :: akn_active (:) ! A mycorrhizal uptake parameter real(r8), allocatable :: ekc_active (:) ! A mycorrhizal uptake parameter @@ -485,6 +488,9 @@ subroutine InitAllocate (this) allocate( this%b_fix (0:mxpft) ) allocate( this%c_fix (0:mxpft) ) allocate( this%s_fix (0:mxpft) ) + allocate( this%nfix_tmin (0:mxpft) ) + allocate( this%nfix_topt (0:mxpft) ) + allocate( this%nfix_tmax (0:mxpft) ) allocate( this%akc_active (0:mxpft) ) allocate( this%akn_active (0:mxpft) ) allocate( this%ekc_active (0:mxpft) ) @@ -880,6 +886,15 @@ subroutine InitRead(this) call ncd_io('s_fix', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) + call ncd_io('nfix_tmin', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) + if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) + + call ncd_io('nfix_topt', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) + if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) + + call ncd_io('nfix_tmax', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) + if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) + call ncd_io('akc_active', this%akc_active, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) @@ -1575,6 +1590,9 @@ subroutine Clean(this) deallocate( this%b_fix) deallocate( this%c_fix) deallocate( this%s_fix) + deallocate( this%nfix_tmin) + deallocate( this%nfix_topt) + deallocate( this%nfix_tmax) deallocate( this%akc_active) deallocate( this%akn_active) deallocate( this%ekc_active) From 88d5b0f0d7d5adf036d4661009a89f654bcd9cd8 Mon Sep 17 00:00:00 2001 From: wwieder Date: Tue, 12 Nov 2024 13:10:44 -0700 Subject: [PATCH 03/33] cleanup and print errors --- src/biogeochem/CNFUNMod.F90 | 147 +++++++++--------------------------- src/main/pftconMod.F90 | 6 +- 2 files changed, 39 insertions(+), 114 deletions(-) diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index 65524a6ba5..7665a2fbca 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -291,7 +291,6 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& real(r8) :: litterfall_n_step(bounds%begp:bounds%endp,1:nstp) ! N loss based on the leafc to litter (gN/m2) real(r8) :: litterfall_c_step(bounds%begp:bounds%endp,1:nstp) ! N loss based on the leafc to litter (gN/m2) real(r8) :: tc_soisno(bounds%begc:bounds%endc,1:nlevdecomp) ! Soil temperature (degrees Celsius) - real(r8) :: tc_soila10(bounds%begc:bounds%endc) ! 10 day running mean Soil temperature (degrees Celsius) real(r8) :: npp_remaining(bounds%begp:bounds%endp,1:nstp) ! A temporary variable for npp_remaining(gC/m2) real(r8) :: n_passive_step(bounds%begp:bounds%endp,1:nstp) ! N taken up by transpiration at substep(gN/m2) real(r8) :: n_passive_acc(bounds%begp:bounds%endp) ! N acquired by passive uptake (gN/m2) @@ -468,19 +467,9 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& real(r8) :: total_c_spent_retrans real(r8) :: total_c_accounted_retrans - ! Nfix parameters from Bytnerowicz et al. (2022), - ! TODO, remove now that these have been put on parameter files - ! Temperate (and boreal) !real(r8) :: nfix_tmin = -2.04_r8 !real(r8) :: nfix_topt = 32.10_r8 !real(r8) :: nfix_tmax = 43.98_r8 - ! Tropical parameters - !real(r8) :: nfix_tmin = 7.04_r8 ! Minimum temperature for tropical Nfix - !real(r8) :: nfix_topt = 33.22_r8 ! Optimum temperature for tropical Nfix - !real(r8) :: nfix_tmax = 45.35_r8 ! Max temperature for tropical N fix - - - !------end of not_use_nitrif_denitrif------! !-------------------------------------------------------------------- !------------ @@ -501,6 +490,8 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& integer :: icost ! a local index integer :: fixer ! 0 = non-fixer, 1 ! =fixer + !TODO, make namelist option + integer :: nfix_method = 2 ! 1 = Houlton, 2 = Bytnerowicz logical :: unmetDemand ! True while there ! is still demand for N logical :: local_use_flexibleCN ! local version of use_flexCN @@ -510,7 +501,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& !-------------------------------------------------------------------- !--------------------------------- - associate(ivt => patch%itype , & ! Input: [integer (:) ] p + associate(ivt => patch%itype , & ! Input: [integer (:) ] p leafcn => pftcon%leafcn , & ! Input: leaf C:N (gC/gN) season_decid => pftcon%season_decid , & ! Input: binary flag for seasonal ! -deciduous leaf habit (0 or 1) @@ -538,10 +529,10 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& perecm => pftcon%perecm , & ! Input: The fraction of ECM ! -associated PFT grperc => pftcon%grperc , & ! Input: growth percentage - fun_cn_flex_a => pftcon%fun_cn_flex_a , & ! Parameter a of FUN-flexcn link code (def 5) - fun_cn_flex_b => pftcon%fun_cn_flex_b , & ! Parameter b of FUN-flexcn link code (def 200) - fun_cn_flex_c => pftcon%fun_cn_flex_c , & ! Parameter b of FUN-flexcn link code (def 80) - FUN_fracfixers => pftcon%FUN_fracfixers , & ! Fraction of C that can be used for fixation. + fun_cn_flex_a => pftcon%fun_cn_flex_a , & ! Parameter a of FUN-flexcn link code (def 5) + fun_cn_flex_b => pftcon%fun_cn_flex_b , & ! Parameter b of FUN-flexcn link code (def 200) + fun_cn_flex_c => pftcon%fun_cn_flex_c , & ! Parameter b of FUN-flexcn link code (def 80) + FUN_fracfixers => pftcon%FUN_fracfixers , & ! Fraction of C that can be used for fixation. leafcn_offset => cnveg_state_inst%leafcn_offset_patch , & ! Output: ! [real(r8) (:)] Leaf C:N used by FUN plantCN => cnveg_state_inst%plantCN_patch , & ! Output: [real(r8) (:)] Plant @@ -722,8 +713,6 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& ! liquid water (kg/m2) (new) (-nlevsno+1:nlevgrnd) t_soisno => temperature_inst%t_soisno_col , & ! Input: [real(r8) (:,:)] ! soil temperature (Kelvin) (-nlevsno+1:nlevgrnd) - soila10 => temperature_inst%soila10_col , & ! Input: [real(r8) (:) ] - ! col 10-day running mean of the 12cm soil layer temperature (K) crootfr => soilstate_inst%crootfr_patch & ! Input: [real(r8) (:,:)] ! fraction of roots for carbon in each soil layer (nlevgrnd) ) @@ -1070,45 +1059,48 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& do j = 1, nlevdecomp tc_soisno(c,j) = t_soisno(c,j) - tfrz - ! running mean soil temperature only calculated for single soil layer - tc_soila10(c) = soila10(c) - tfrz if(pftcon%c3psn(patch%itype(p)).eq.1)then fixer=1 else fixer=0 endif - ! TODO, make this a name list change determining which equation to use - ! This calls the Houlton function. - ! costNit(j,icostFix) = fun_cost_fix(fixer,a_fix(ivt(p)),b_fix(ivt(p))& - ! ,c_fix(ivt(p)) ,big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) - - ! Bytnerowicz no acclimation calculation - costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, nfix_tmin(ivt(p))& - ,nfix_topt(ivt(p)), nfix_tmax(ivt(p)), big_cost,crootfr(p,j)& - ,s_fix(ivt(p)), tc_soisno(c,j)) + ! TODO, make this a name list change determining which equation to use + if (nfix_method == 1) then + ! This calls the Houlton function. + costNit(j,icostFix) = fun_cost_fix(fixer,& + a_fix(ivt(p)),b_fix(ivt(p)),c_fix(ivt(p)),& + big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) + elseif (nfix_method == 2) then + ! Bytnerowicz no acclimation calculation + + ! Hardwiring the parameters works + !costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer,& + ! nfix_tmin, nfix_topt, nfix_tmax& + ! ,big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) + + ! Debug print statements + !write(iulog,*) "tmin, topt, tmax =", nfix_tmin(ivt(p)),nfix_topt(ivt(p)),nfix_tmax(ivt(p)) + !write(iulog,*) "a_fix, b_fix, c_fix =", a_fix(ivt(p)),b_fix(ivt(p)),c_fix(ivt(p)) + costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, & + nfix_tmin(ivt(p)),nfix_topt(ivt(p)),nfix_tmax(ivt(p)), & + big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) - ! Bytnerowicz acclimation calculation - !costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_Acc(fixer,nfix_tmin,nfix_topt& - !,nfix_tmax ,big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soila10(c)) + endif end do cost_fix(p,1:nlevdecomp) = costNit(:,icostFix) !-------------------------------------------------------------------- - !------------ ! If passive uptake is insufficient, consider fixation, ! mycorrhizal ! non-mycorrhizal, storage, and retranslocation. !-------------------------------------------------------------------- - !------------ !-------------------------------------------------------------------- - !------------ ! Costs of active uptake. !-------------------------------------------------------------------- - !------------ !------Mycorrhizal Uptake Cost-----------------! do j = 1,nlevdecomp rootc_dens_step = rootc_dens(p,j) * permyc(p,istp) @@ -1658,19 +1650,19 @@ real(r8) function fun_cost_fix_Bytnerowicz_noAcc(fixer,nfix_tmin,nfix_topt,nfix_ !-------------------------------------------------------------------------- integer, intent(in) :: fixer ! flag indicating if plant is a fixer ! 1=yes, otherwise no. - real(r8), intent(in) :: nfix_tmin ! As in Bytnerowicz et al. (2022) - real(r8), intent(in) :: nfix_topt ! As in Bytnerowicz et al. (2022) - real(r8), intent(in) :: nfix_tmax ! As in Bytnerowicz et al. (2022) + real(r8), intent(in) :: nfix_tmin ! As in Bytnerowicz et al. (2022) + real(r8), intent(in) :: nfix_topt ! As in Bytnerowicz et al. (2022) + real(r8), intent(in) :: nfix_tmax ! As in Bytnerowicz et al. (2022) real(r8), intent(in) :: big_cost ! an arbitrary large cost (gC/gN) real(r8), intent(in) :: crootfr ! fraction of roots for carbon that are in this layer - real(r8), intent(in) :: s_fix ! Inverts Houlton et al. 2008 and constrains between 7.5 and 12.5 + real(r8), intent(in) :: s_fix ! Inverts the temperature function for a cost function real(r8), intent(in) :: tc_soisno ! soil temperature (degrees Celsius) if (fixer == 1 .and. crootfr > 1.e-6_r8 .and. tc_soisno > nfix_tmin .and. tc_soisno < nfix_tmax) then - fun_cost_fix_Bytnerowicz_noAcc = (-1*s_fix) / ( ((nfix_tmax-tc_soisno)/(nfix_tmax-nfix_topt))*& - ( ((tc_soisno-nfix_tmin)/(nfix_topt-nfix_tmin))**& - ((nfix_topt- nfix_tmin)/(nfix_tmax-nfix_topt)) ) ) - + fun_cost_fix_Bytnerowicz_noAcc = (-1*s_fix) * 1._r8 / ( ((nfix_tmax-tc_soisno)/(nfix_tmax-nfix_topt))*& + ( ((tc_soisno-nfix_tmin)/(nfix_topt-nfix_tmin))**& + ((nfix_topt- nfix_tmin)/(nfix_tmax-nfix_topt)) ) ) + fun_cost_fix_Bytnerowicz_noAcc = min(fun_cost_fix_Bytnerowicz_noAcc,big_cost) else fun_cost_fix_Bytnerowicz_noAcc = big_cost end if ! ends up with the fixer or non-fixer decision @@ -1678,73 +1670,6 @@ real(r8) function fun_cost_fix_Bytnerowicz_noAcc(fixer,nfix_tmin,nfix_topt,nfix_ end function fun_cost_fix_Bytnerowicz_noAcc !========================================================================================= -! TODO, likely just remove the acclimation fuction, as it seems pretty complicated and didn't change point-scale results -!========================================================================================= - real(r8) function fun_cost_fix_Bytnerowicz_Acc(fixer,nfix_tmin,nfix_topt,nfix_tmax,big_cost,crootfr,s_fix,tc_soisno,tc_soila10) - -! Description: -! Calculate the cost of fixing N by nodules. -! Code Description: -! This code is written to CTSM5.1 by Will Wieder 11/17/2022 - - implicit none -!-------------------------------------------------------------------------- -! Function result. -!-------------------------------------------------------------------------- -! real(r8) , intent(out) :: cost_of_n !!! cost of fixing N (kgC/kgN) -!-------------------------------------------------------------------------- - integer, intent(in) :: fixer ! flag indicating if plant is a fixer - ! 1=yes, otherwise no. - real(r8), intent(inout) :: nfix_tmin ! As in Bytnerowicz et al. (2022) - real(r8), intent(inout) :: nfix_topt ! As in Bytnerowicz et al. (2022) - real(r8), intent(inout) :: nfix_tmax ! As in Bytnerowicz et al. (2022) - real(r8), intent(in) :: big_cost ! an arbitrary large cost (gC/gN) - real(r8), intent(in) :: crootfr ! fraction of roots for carbon that are in this layer - real(r8), intent(in) :: s_fix ! Inverts Houlton et al. 2008 and constrains between 7.5 and 12.5 - real(r8), intent(in) :: tc_soila10 ! 10 day running mean soil temperature, 12 cm (degrees Celsius) - real(r8), intent(in) :: tc_soisno ! soil temperature (degrees Celsius) - - ! Temperate temperature function - !if (tc_soila10 < 18.5_r8) then - ! nfix_tmin = -2.04_r8 - ! nfix_topt = 32.10_r8 - ! nfix_tmax = 43.98_r8 - !else if (tc_soila10 >= 18.5_r8 .and. tc_soila10 < 28.5_r8) then - ! nfix_tmin = 0.697_r8 * tc_soila10 - 14.93_r8 - ! nfix_topt = 0.047_r8 * tc_soila10 + 31.24_r8 - ! nfix_tmax = 0.009_r8 * tc_soila10 + 43.82_r8 - !else - ! nfix_tmin = 4.93_r8 - ! nfix_topt = 32.58_r8 - ! nfix_tmax = 44.08_r8 - !end if - !Tropical temperature function !Tmax never changes! - nfix_tmax = 45.35_r8 - if (tc_soila10 < 18.5_r8) then - nfix_tmin = 2.37_r8 !parameter not the same as in noACC - nfix_topt = 30.34_r8 - else if (tc_soila10 >= 18.5_r8 .and. tc_soila10 < 28.5_r8) then - nfix_tmin = 0.932_r8 * tc_soila10 - 14.87_r8 - nfix_topt = 0.574_r8 * tc_soila10 + 19.72_r8 - else if (tc_soila10 >= 28.5_r8) then - nfix_tmin = 11.69_r8 - nfix_topt = 36.08_r8 - end if - - if (fixer == 1 .and. crootfr > 1.e-6_r8 .and. tc_soisno > nfix_tmin .and. tc_soisno < nfix_tmax) then - fun_cost_fix_Bytnerowicz_Acc = (-1*s_fix) / ( ((nfix_tmax-tc_soisno)/(nfix_tmax-nfix_topt))*& - ( ((tc_soisno-nfix_tmin)/(nfix_topt-nfix_tmin))**& - ((nfix_topt- nfix_tmin)/(nfix_tmax-nfix_topt)) ) ) - - !fun_cost_fix = (-1*s_fix) * 1.0_r8 / (1.25_r8* (exp(a_fix + b_fix * tc_soila10 * (1._r8 - 0.5_r8 * tc_soila10 / c_fix)) )) - else - fun_cost_fix_Bytnerowicz_Acc = big_cost - end if ! ends up with the fixer or non-fixer decision - - end function fun_cost_fix_Bytnerowicz_Acc -!========================================================================================= - - !========================================================================================= real(r8) function fun_cost_active(sminn_layer,big_cost,kc_active,kn_active,rootc_dens,crootfr,smallValue) diff --git a/src/main/pftconMod.F90 b/src/main/pftconMod.F90 index 977a6f03e0..19165b24be 100644 --- a/src/main/pftconMod.F90 +++ b/src/main/pftconMod.F90 @@ -886,13 +886,13 @@ subroutine InitRead(this) call ncd_io('s_fix', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) - call ncd_io('nfix_tmin', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) + call ncd_io('nfix_tmin', this%nfix_tmin, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) - call ncd_io('nfix_topt', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) + call ncd_io('nfix_topt', this%nfix_topt, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) - call ncd_io('nfix_tmax', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) + call ncd_io('nfix_tmax', this%nfix_tmax, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) call ncd_io('akc_active', this%akc_active, 'read', ncid, readvar=readv, posNOTonfile=.true.) From ac081217a4c8e37ec7c3afbf0e6391b42d9eba08 Mon Sep 17 00:00:00 2001 From: wwieder Date: Tue, 12 Nov 2024 16:35:13 -0700 Subject: [PATCH 04/33] remove print statements --- src/biogeochem/CNFUNMod.F90 | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index 7665a2fbca..25fb2f79c0 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -467,9 +467,6 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& real(r8) :: total_c_spent_retrans real(r8) :: total_c_accounted_retrans - !real(r8) :: nfix_tmin = -2.04_r8 - !real(r8) :: nfix_topt = 32.10_r8 - !real(r8) :: nfix_tmax = 43.98_r8 !------end of not_use_nitrif_denitrif------! !-------------------------------------------------------------------- !------------ @@ -1074,15 +1071,6 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) elseif (nfix_method == 2) then ! Bytnerowicz no acclimation calculation - - ! Hardwiring the parameters works - !costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer,& - ! nfix_tmin, nfix_topt, nfix_tmax& - ! ,big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) - - ! Debug print statements - !write(iulog,*) "tmin, topt, tmax =", nfix_tmin(ivt(p)),nfix_topt(ivt(p)),nfix_tmax(ivt(p)) - !write(iulog,*) "a_fix, b_fix, c_fix =", a_fix(ivt(p)),b_fix(ivt(p)),c_fix(ivt(p)) costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, & nfix_tmin(ivt(p)),nfix_topt(ivt(p)),nfix_tmax(ivt(p)), & big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) From dedd1349dfb32388bf0e66d0bc04dc3079d7c8b1 Mon Sep 17 00:00:00 2001 From: wwieder Date: Thu, 14 Nov 2024 17:49:11 -0700 Subject: [PATCH 05/33] removing BNF usermod_dirs --- .../BNF/BNF_Bon/include_user_mods | 1 - .../usermods_dirs/BNF/BNF_Bon/shell_commands | 10 --- .../usermods_dirs/BNF/BNF_Bon/user_nl_clm | 22 ------ .../BNF/BNF_Bon/user_nl_datm_streams | 71 ------------------- .../BNF/BNF_Har/include_user_mods | 1 - .../usermods_dirs/BNF/BNF_Har/shell_commands | 10 --- .../usermods_dirs/BNF/BNF_Har/user_nl_clm | 23 ------ .../BNF/BNF_Har/user_nl_datm_streams | 71 ------------------- .../BNF/BNF_Man/include_user_mods | 1 - .../usermods_dirs/BNF/BNF_Man/shell_commands | 10 --- .../usermods_dirs/BNF/BNF_Man/user_nl_clm | 22 ------ .../BNF/BNF_Man/user_nl_datm_streams | 71 ------------------- .../usermods_dirs/BNF/defaults/shell_commands | 18 ----- 13 files changed, 331 deletions(-) delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/shell_commands delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/shell_commands delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm delete mode 100644 cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams delete mode 100644 cime_config/usermods_dirs/BNF/defaults/shell_commands diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods b/cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods deleted file mode 100644 index b152996d95..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Bon/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../defaults diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands b/cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands deleted file mode 100644 index 18bc60ee38..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Bon/shell_commands +++ /dev/null @@ -1,10 +0,0 @@ - -# Change below line if you move the subset data directory - -./xmlchange CLM_USRDAT_DIR=/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon - -./xmlchange PTS_LON=212.25 - -./xmlchange PTS_LAT=64.75 - -./xmlchange CLM_USRDAT_NAME='BNF_Bon' diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm b/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm deleted file mode 100644 index ce0cb8fddb..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_clm +++ /dev/null @@ -1,22 +0,0 @@ -!---------------------------------------------------------------------------------- -! Users should add all user specific namelist changes below in the form of -! namelist_var = new_namelist_value -! -! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting -! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting -! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting -! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting -! Set co2_ppmv with CCSM_CO2_PPMV option -! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options -! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases -! (includes $inst_string for multi-ensemble cases) -! or with CLM_FORCE_COLDSTART to do a cold start -! or set it with an explicit filename here. -! Set maxpatch_glc with GLC_NEC option -! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable -!---------------------------------------------------------------------------------- - -flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets -fsurdat = '$CLM_USRDAT_DIR/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_BNF_Bon_c221108.nc' diff --git a/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams b/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams deleted file mode 100644 index dbd7b81f92..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Bon/user_nl_datm_streams +++ /dev/null @@ -1,71 +0,0 @@ -!------------------------------------------------------------------------ -! This file is used to modify datm.streams.xml generated in $RUNDIR -! Entries should have the form -! :<= new stream_value> -! The following are accepted values for an assume streamname of foo -! foo:meshfile = character string -! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) -! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) -! foo:taxmode = one of [cycle, extend, limit] -! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] -! foo:readmode = single (only suported mode right now) -! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] -! foo:dtlimit = real (1.5 is default) -! foo:year_first = integer -! foo:year_last = integer -! foo:year_align = integer -! foo:vectors = one of [none,u:v] -! foo:lev_dimname: = one of [null,name of level dimenion name] -! foo:offset = integer -! As an example: -! foo:year_first = 1950 -! would change the stream year_first stream_entry to 1950 for the foo stream block -! NOTE: multi-line inputs are enabled by adding a \ at the end of the line -! As an emaple: -! foo:datafiles=foo1,foo2, \ -! foo3 -! Will yield the following new entry for datafiles in stream foo -! -! foo1 -! foo2 -! foo3 -! -!----------------------------------------------------------------------- -!CLM_USRDAT.BNF_Bon:offset = -48600 -!CLM_USRDAT.BNF_Bon:dtlimit = 30 -!CLM_USRDAT.BNF_Bon:year_first = 1850 -!CLM_USRDAT.BNF_Bon:year_align = 1850 -!CLM_USRDAT.BNF_Bon:year_last = 1869 - -CLM_USRDAT.BNF_Bon:datavars = \ - PRECTmms Faxa_precn, \ - FSDS Faxa_swdn, \ - ZBOT Sa_z, \ - TBOT Sa_tbot, \ - WIND Sa_wind, \ - QATM Sa_shum, \ - PSRF Sa_pbot, \ - FLDS Faxa_lwdn - -CLM_USRDAT.BNF_Bon:datafiles = \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1850.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1851.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1852.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1853.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1854.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1855.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1856.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1857.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1858.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1859.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1860.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1861.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1862.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1863.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1864.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1865.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1866.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1867.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1868.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1869.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Bon/CLM1PT_data/1870.nc diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods b/cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods deleted file mode 100644 index b152996d95..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Har/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../defaults diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/shell_commands b/cime_config/usermods_dirs/BNF/BNF_Har/shell_commands deleted file mode 100644 index 04d998473f..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Har/shell_commands +++ /dev/null @@ -1,10 +0,0 @@ - -# Change below line if you move the subset data directory - -./xmlchange CLM_USRDAT_DIR=/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har - -./xmlchange PTS_LON=287.75 - -./xmlchange PTS_LAT=42.75 - -./xmlchange CLM_USRDAT_NAME='BNF_Har' diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm b/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm deleted file mode 100644 index 33c4a27486..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_clm +++ /dev/null @@ -1,23 +0,0 @@ -!---------------------------------------------------------------------------------- -! Users should add all user specific namelist changes below in the form of -! namelist_var = new_namelist_value -! -! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting -! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting -! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting -! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting -! Set co2_ppmv with CCSM_CO2_PPMV option -! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options -! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases -! (includes $inst_string for multi-ensemble cases) -! or with CLM_FORCE_COLDSTART to do a cold start -! or set it with an explicit filename here. -! Set maxpatch_glc with GLC_NEC option -! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable -!---------------------------------------------------------------------------------- - -flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets -fsurdat = '$CLM_USRDAT_DIR/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_BNF_Har_c221109.nc' - diff --git a/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams b/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams deleted file mode 100644 index 583fe0eb3c..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Har/user_nl_datm_streams +++ /dev/null @@ -1,71 +0,0 @@ -!------------------------------------------------------------------------ -! This file is used to modify datm.streams.xml generated in $RUNDIR -! Entries should have the form -! :<= new stream_value> -! The following are accepted values for an assume streamname of foo -! foo:meshfile = character string -! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) -! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) -! foo:taxmode = one of [cycle, extend, limit] -! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] -! foo:readmode = single (only suported mode right now) -! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] -! foo:dtlimit = real (1.5 is default) -! foo:year_first = integer -! foo:year_last = integer -! foo:year_align = integer -! foo:vectors = one of [none,u:v] -! foo:lev_dimname: = one of [null,name of level dimenion name] -! foo:offset = integer -! As an example: -! foo:year_first = 1950 -! would change the stream year_first stream_entry to 1950 for the foo stream block -! NOTE: multi-line inputs are enabled by adding a \ at the end of the line -! As an emaple: -! foo:datafiles=foo1,foo2, \ -! foo3 -! Will yield the following new entry for datafiles in stream foo -! -! foo1 -! foo2 -! foo3 -! -!----------------------------------------------------------------------- -!CLM_USRDAT.BNF_Har:offset = -48600 -!CLM_USRDAT.BNF_Har:dtlimit = 30 -!CLM_USRDAT.BNF_Har:year_first = 1850 -!CLM_USRDAT.BNF_Har:year_align = 1850 -!CLM_USRDAT.BNF_Har:year_last = 1869 - -CLM_USRDAT.BNF_Har:datavars = \ - PRECTmms Faxa_precn, \ - FSDS Faxa_swdn, \ - ZBOT Sa_z, \ - TBOT Sa_tbot, \ - WIND Sa_wind, \ - QATM Sa_shum, \ - PSRF Sa_pbot, \ - FLDS Faxa_lwdn - -CLM_USRDAT.BNF_Har:datafiles = \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1850.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1851.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1852.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1853.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1854.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1855.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1856.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1857.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1858.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1859.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1860.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1861.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1862.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1863.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1864.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1865.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1866.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1867.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1868.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1869.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Har/CLM1PT_data/1870.nc diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods b/cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods deleted file mode 100644 index b152996d95..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Man/include_user_mods +++ /dev/null @@ -1 +0,0 @@ -../defaults diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/shell_commands b/cime_config/usermods_dirs/BNF/BNF_Man/shell_commands deleted file mode 100644 index 72529f64d5..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Man/shell_commands +++ /dev/null @@ -1,10 +0,0 @@ - -# Change below line if you move the subset data directory - -./xmlchange CLM_USRDAT_DIR=/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man - -./xmlchange PTS_LON=299.75 - -./xmlchange PTS_LAT=-3.25 - -./xmlchange CLM_USRDAT_NAME='BNF_Man' diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm b/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm deleted file mode 100644 index 5d5ec2dd03..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_clm +++ /dev/null @@ -1,22 +0,0 @@ -!---------------------------------------------------------------------------------- -! Users should add all user specific namelist changes below in the form of -! namelist_var = new_namelist_value -! -! EXCEPTIONS: -! Set use_cndv by the compset you use and the CLM_BLDNML_OPTS -dynamic_vegetation setting -! Set use_vichydro by the compset you use and the CLM_BLDNML_OPTS -vichydro setting -! Set use_cn by the compset you use and CLM_BLDNML_OPTS -bgc setting -! Set use_crop by the compset you use and CLM_BLDNML_OPTS -crop setting -! Set spinup_state by the CLM_BLDNML_OPTS -bgc_spinup setting -! Set co2_ppmv with CCSM_CO2_PPMV option -! Set fatmlndfrc with LND_DOMAIN_PATH/LND_DOMAIN_FILE options -! Set finidat with RUN_REFCASE/RUN_REFDATE/RUN_REFTOD options for hybrid or branch cases -! (includes $inst_string for multi-ensemble cases) -! or with CLM_FORCE_COLDSTART to do a cold start -! or set it with an explicit filename here. -! Set maxpatch_glc with GLC_NEC option -! Set glc_do_dynglacier with GLC_TWO_WAY_COUPLING env variable -!---------------------------------------------------------------------------------- - -flanduse_timeseries = ' ' ! This isn't needed for a non transient case, but will be once we start using transient compsets -fsurdat = '$CLM_USRDAT_DIR/surfdata_0.9x1.25_hist_16pfts_Irrig_CMIP6_simyr2000_BNF_Man_c221109.nc' diff --git a/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams b/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams deleted file mode 100644 index 4a9786ef07..0000000000 --- a/cime_config/usermods_dirs/BNF/BNF_Man/user_nl_datm_streams +++ /dev/null @@ -1,71 +0,0 @@ -!------------------------------------------------------------------------ -! This file is used to modify datm.streams.xml generated in $RUNDIR -! Entries should have the form -! :<= new stream_value> -! The following are accepted values for an assume streamname of foo -! foo:meshfile = character string -! foo:datafiles = comma separated string of full pathnames (e.g. file1,file2,file3...) -! foo:datavars = comma separated string of field pairs (e.g. foo foobar,foo2 foobar2...) -! foo:taxmode = one of [cycle, extend, limit] -! foo:tintalgo = one of [lower,upper,nearest,linear,coszen] -! foo:readmode = single (only suported mode right now) -! foo:mapalgo = one of [bilinear,redist,nn,consf,consd,none] -! foo:dtlimit = real (1.5 is default) -! foo:year_first = integer -! foo:year_last = integer -! foo:year_align = integer -! foo:vectors = one of [none,u:v] -! foo:lev_dimname: = one of [null,name of level dimenion name] -! foo:offset = integer -! As an example: -! foo:year_first = 1950 -! would change the stream year_first stream_entry to 1950 for the foo stream block -! NOTE: multi-line inputs are enabled by adding a \ at the end of the line -! As an emaple: -! foo:datafiles=foo1,foo2, \ -! foo3 -! Will yield the following new entry for datafiles in stream foo -! -! foo1 -! foo2 -! foo3 -! -!----------------------------------------------------------------------- -!CLM_USRDAT.BNF_Man:offset = -48600 -!CLM_USRDAT.BNF_Man:dtlimit = 30 -!CLM_USRDAT.BNF_Man:year_first = 1850 -!CLM_USRDAT.BNF_Man:year_align = 1850 -!CLM_USRDAT.BNF_Man:year_last = 1869 - -CLM_USRDAT.BNF_Man:datavars = \ - PRECTmms Faxa_precn, \ - FSDS Faxa_swdn, \ - ZBOT Sa_z, \ - TBOT Sa_tbot, \ - WIND Sa_wind, \ - QATM Sa_shum, \ - PSRF Sa_pbot, \ - FLDS Faxa_lwdn - -CLM_USRDAT.BNF_Man:datafiles = \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1850.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1851.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1852.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1853.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1854.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1855.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1856.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1857.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1858.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1859.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1860.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1861.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1862.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1863.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1864.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1865.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1866.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1867.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1868.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1869.nc, \ - /glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN/BNF_Man/CLM1PT_data/1870.nc diff --git a/cime_config/usermods_dirs/BNF/defaults/shell_commands b/cime_config/usermods_dirs/BNF/defaults/shell_commands deleted file mode 100644 index c9319f85bc..0000000000 --- a/cime_config/usermods_dirs/BNF/defaults/shell_commands +++ /dev/null @@ -1,18 +0,0 @@ - -# Change below line if you move the subset data directory -./xmlchange MPILIB=mpi-serial -./xmlchange DIN_LOC_ROOT_CLMFORC='/glade/campaign/cgd/tss/people/wwieder/inputdata/BNFMIP_forcing_from_OCN' -./xmlchange STOP_OPTION=nyears -./xmlchange CONTINUE_RUN=FALSE - -# Explicitly set PIO Type to NETCDF since this is a single processor case (should already be set this way) -./xmlchange PIO_TYPENAME=netcdf -./xmlchange DATM_YR_ALIGN=1851,DATM_YR_END=1870,DATM_YR_START=1851 -./xmlchange PIO_REARRANGER_LND=1 -# Set up a simulation from cold start -./xmlchange CLM_FORCE_COLDSTART=on -./xmlchange CLM_ACCELERATED_SPINUP=on -./xmlchange STOP_N=100 -./xmlchange REST_N=100 -./xmlchange RUN_STARTDATE=0001-01-01 -./xmlchange RESUBMIT=1 From f147be3a4c3306ccb177ddb8ade0fa7b065f2b3f Mon Sep 17 00:00:00 2001 From: Gregory Lemieux Date: Fri, 15 Nov 2024 10:45:53 -0700 Subject: [PATCH 06/33] Revert "fix typo in fates hydro user_nl_clm" This reverts commit 97d1657754c75fedd6482d4d71b773859029be5d. --- .../testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm index 318a34dfec..15dcf6de1a 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm @@ -2,7 +2,7 @@ hist_mfilt = 365 hist_nhtfrq = -24 hist_empty_htapes = .true. use_fates_planthydro= .true. -fates_paramfile = '$CASEROOT/fates_params_hydrograsstempfix.nc' +fates_paramfile = '$CASEROOT/fates_params_hydrograsstempfix.n' hist_fincl1 = 'FATES_ERRH2O_SZPF', 'FATES_TRAN_SZPF', 'FATES_SAPFLOW_SZPF', 'FATES_ITERH1_SZPF','FATES_ABSROOT_H2O_SZPF', 'FATES_TRANSROOT_H2O_SZPF','FATES_STEM_H2O_SZPF','FATES_LEAF_H2O_SZPF', From ea475c135f13f3ca7e35e7f1650e1a345f3d2c6b Mon Sep 17 00:00:00 2001 From: Gregory Lemieux Date: Fri, 15 Nov 2024 10:46:16 -0700 Subject: [PATCH 07/33] Revert "add shell call to generate fates hydro parameter file on the fly" This reverts commit f2f75351febd4a413b0788dae256443fe5734510. --- .../testmods_dirs/clm/FatesColdHydro/shell_commands | 8 -------- .../testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm | 1 - 2 files changed, 9 deletions(-) delete mode 100644 cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/shell_commands diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/shell_commands b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/shell_commands deleted file mode 100644 index e629e7ca34..0000000000 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/shell_commands +++ /dev/null @@ -1,8 +0,0 @@ -SRCDIR=`./xmlquery SRCROOT --value` -CASEDIR=`./xmlquery CASEROOT --value` -FATESDIR=$SRCDIR/src/fates -FATESPARAMFILE=$CASEDIR/fates_params_hydrograsstempfix.nc - -ncgen -o $FATESPARAMFILE $FATESDIR/parameter_files/fates_params_default.cdl - -$FATESDIR/tools/modify_fates_paramfile.py --O --fin $FATESPARAMFILE --fout $FATESPARAMFILE --var fates_allom_smode --val 1 --allpfts diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm index 15dcf6de1a..f0bdb388eb 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdHydro/user_nl_clm @@ -2,7 +2,6 @@ hist_mfilt = 365 hist_nhtfrq = -24 hist_empty_htapes = .true. use_fates_planthydro= .true. -fates_paramfile = '$CASEROOT/fates_params_hydrograsstempfix.n' hist_fincl1 = 'FATES_ERRH2O_SZPF', 'FATES_TRAN_SZPF', 'FATES_SAPFLOW_SZPF', 'FATES_ITERH1_SZPF','FATES_ABSROOT_H2O_SZPF', 'FATES_TRANSROOT_H2O_SZPF','FATES_STEM_H2O_SZPF','FATES_LEAF_H2O_SZPF', From ac5a615cea45ecc3af1c2c29705a00f873a782e2 Mon Sep 17 00:00:00 2001 From: Gregory Lemieux Date: Mon, 18 Nov 2024 10:42:42 -0800 Subject: [PATCH 08/33] update fates tag to sci.1.80.1_api.37.0.0 This tag includes the fix to NGEET/fates#1254 and will allow the current default fates parameter file to be used in fates hydro tests --- .gitmodules | 2 +- src/fates | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 225f2f75ac..7429d412bc 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,7 +28,7 @@ [submodule "fates"] path = src/fates url = https://github.com/NGEET/fates -fxtag = sci.1.79.3_api.37.0.0 +fxtag = sci.1.80.1_api.37.0.0 fxrequired = AlwaysRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/NCAR/fates-release diff --git a/src/fates b/src/fates index e3e7d2cd86..08f2410fd2 160000 --- a/src/fates +++ b/src/fates @@ -1 +1 @@ -Subproject commit e3e7d2cd86a66f8ca0e8f6dc4a823246a2bdb95b +Subproject commit 08f2410fd2a9e04920eedb4cc2d51a09f68127ec From 67117dade4e881c2b3333c187de4c1ec3bd5deba Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 19 Nov 2024 12:21:38 -0700 Subject: [PATCH 09/33] Update parameter files with the new nfix fields on them --- bld/namelist_files/namelist_defaults_ctsm.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index 54d3afd5c1..4975088bf6 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -544,10 +544,10 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -lnd/clm2/paramdata/ctsm60_params.c241017.nc -lnd/clm2/paramdata/ctsm51_params.c241017.nc -lnd/clm2/paramdata/clm50_params.c241017.nc -lnd/clm2/paramdata/clm45_params.c241017.nc +lnd/clm2/paramdata/ctsm60_params_nfix.c241101.nc +lnd/clm2/paramdata/ctsm60_params_nfix.c241101.nc +lnd/clm2/paramdata/clm50_params_nfix.c241119.nc +lnd/clm2/paramdata/clm45_params_nfix.c241119.nc From 9d9337bf9ce1355c3fb6d68c11eea445085004a6 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 19 Nov 2024 16:31:47 -0700 Subject: [PATCH 10/33] fix (namelist): Change paramfiles to name without nfix in the name, and update ctsm60 file so that it is based on the previous one with the nfix fields just added to the end --- bld/namelist_files/namelist_defaults_ctsm.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index 4975088bf6..7d1f29fb28 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -544,10 +544,10 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -lnd/clm2/paramdata/ctsm60_params_nfix.c241101.nc -lnd/clm2/paramdata/ctsm60_params_nfix.c241101.nc -lnd/clm2/paramdata/clm50_params_nfix.c241119.nc -lnd/clm2/paramdata/clm45_params_nfix.c241119.nc +lnd/clm2/paramdata/ctsm60_params.c241119.nc +lnd/clm2/paramdata/ctsm60_params.c241119.nc +lnd/clm2/paramdata/clm50_params.c241119.nc +lnd/clm2/paramdata/clm45_params.c241119.nc From 80a32ba244e36e6b4ba52feab953418571de4f9f Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Fri, 6 Dec 2024 12:10:45 -0700 Subject: [PATCH 11/33] Move nfix_method from a hardwired variable to the namelist --- bld/CLMBuildNamelist.pm | 8 +++++++- bld/namelist_files/namelist_defaults_ctsm.xml | 2 ++ .../namelist_definition_ctsm.xml | 5 +++++ src/biogeochem/CNFUNMod.F90 | 19 +++++++++---------- src/main/clm_varctl.F90 | 2 ++ src/main/controlMod.F90 | 3 +++ 6 files changed, 28 insertions(+), 11 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index cfdb4e9278..33a8baebbc 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -3381,7 +3381,7 @@ sub setup_logic_mineral_nitrogen_dynamics { # my ($opts, $nl_flags, $definition, $defaults, $nl) = @_; - my @vars = ( "freelivfix_slope_wet", "freelivfix_intercept" ); + my @vars = ( "freelivfix_slope_wet", "freelivfix_intercept", "nfix_method" ); if ( &value_is_true($nl_flags->{'use_cn'}) && &value_is_true($nl->get_value('use_fun')) ) { foreach my $var ( @vars ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, @@ -3394,6 +3394,12 @@ sub setup_logic_mineral_nitrogen_dynamics { } } } + + my $var = $nl->get_value('nfix_method'); + if ( $var ne "'Houlton'" && $var ne "'Bytnerowicz'" ) { + $log->fatal_error("$var is incorrect entry for the namelist variable nfix_method; expected Houlton or Bytnerowicz"); + } + } diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index 7d1f29fb28..8674482851 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -2024,6 +2024,8 @@ lnd/clm2/surfdata_esmf/NEON/ctsm5.3.0/surfdata_1x1_NEON_TOOL_hist_2000_78pfts_c2 0.0117d00 0.0006d00 +Houlton + 0.83d-06 diff --git a/bld/namelist_files/namelist_definition_ctsm.xml b/bld/namelist_files/namelist_definition_ctsm.xml index 351cdc5c80..0f92a28f5d 100644 --- a/bld/namelist_files/namelist_definition_ctsm.xml +++ b/bld/namelist_files/namelist_definition_ctsm.xml @@ -388,6 +388,11 @@ Slope of free living Nitrogen fixation with annual ET Intercept of free living Nitrogen fixation with zero annual ET + +Choice of nfix parameterization + + If TRUE use the undercanopy stability term used with CLM4.5 (Sakaguchi&Zeng, 2008) diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index 25fb2f79c0..b2f9a15470 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -206,7 +206,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& use clm_time_manager, only : get_step_size_real, get_curr_date use clm_varpar , only : nlevdecomp use clm_varcon , only : secspday, smallValue, fun_period, tfrz, dzsoi_decomp, spval - use clm_varctl , only : use_nitrif_denitrif + use clm_varctl , only : use_nitrif_denitrif, nfix_method use PatchType , only : patch use subgridAveMod , only : p2c use pftconMod , only : npcropmin @@ -487,8 +487,6 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& integer :: icost ! a local index integer :: fixer ! 0 = non-fixer, 1 ! =fixer - !TODO, make namelist option - integer :: nfix_method = 2 ! 1 = Houlton, 2 = Bytnerowicz logical :: unmetDemand ! True while there ! is still demand for N logical :: local_use_flexibleCN ! local version of use_flexCN @@ -496,6 +494,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& ! fixers, 2 for non fixers. This will become redundant with the ! 'fixer' parameter if it works. + character(len=32) :: subname = 'CNFUN' !-------------------------------------------------------------------- !--------------------------------- associate(ivt => patch%itype , & ! Input: [integer (:) ] p @@ -1063,19 +1062,19 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& fixer=0 endif - ! TODO, make this a name list change determining which equation to use - if (nfix_method == 1) then - ! This calls the Houlton function. + select case (nfix_method) + case ('Houlton') costNit(j,icostFix) = fun_cost_fix(fixer,& a_fix(ivt(p)),b_fix(ivt(p)),c_fix(ivt(p)),& big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) - elseif (nfix_method == 2) then - ! Bytnerowicz no acclimation calculation + case ('Bytnerowicz') ! no acclimation calculation costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, & nfix_tmin(ivt(p)),nfix_topt(ivt(p)),nfix_tmax(ivt(p)), & big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) - - endif + case default + write(iulog,*) subname//' ERROR: unknown nfix_method value: ', nfix_method + call endrun(msg=errMsg(sourcefile, __LINE__)) + end select end do cost_fix(p,1:nlevdecomp) = costNit(:,icostFix) diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index 9539060200..0989400961 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -227,6 +227,8 @@ module clm_varctl ! real(r8), public :: nfix_timeconst = -1.2345_r8 + character(len=25), public :: nfix_method ! choice of nfix parameterization + !---------------------------------------------------------- ! Physics !---------------------------------------------------------- diff --git a/src/main/controlMod.F90 b/src/main/controlMod.F90 index 3f5c58ac0e..61c56f5201 100644 --- a/src/main/controlMod.F90 +++ b/src/main/controlMod.F90 @@ -257,6 +257,8 @@ subroutine control_init(dtime) CNratio_floating, lnc_opt, reduce_dayl_factor, vcmax_opt, & CN_evergreen_phenology_opt, carbon_resp_opt + namelist /clm_nitrogen/ nfix_method + namelist /clm_inparm/ use_soil_moisture_streams ! excess ice flag @@ -882,6 +884,7 @@ subroutine control_spmd() call mpi_bcast (use_c13_timeseries, 1, MPI_LOGICAL, 0, mpicom, ier) call mpi_bcast (atm_c13_filename, len(atm_c13_filename), MPI_CHARACTER, 0, mpicom, ier) call mpi_bcast (use_fun, 1, MPI_LOGICAL, 0, mpicom, ier) + call mpi_bcast (nfix_method, len(nfix_method), MPI_CHARACTER, 0, mpicom, ier) end if call mpi_bcast (perchroot, 1, MPI_LOGICAL, 0, mpicom, ier) From 74131679607b1ab873ba9c0d96773e69d386a2d5 Mon Sep 17 00:00:00 2001 From: Gregory Lemieux Date: Fri, 13 Dec 2024 10:39:59 -0800 Subject: [PATCH 12/33] update fates tag to sci.1.80.4_api.37.0.0 --- .gitmodules | 2 +- src/fates | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 7429d412bc..d743e6db81 100644 --- a/.gitmodules +++ b/.gitmodules @@ -28,7 +28,7 @@ [submodule "fates"] path = src/fates url = https://github.com/NGEET/fates -fxtag = sci.1.80.1_api.37.0.0 +fxtag = sci.1.80.4_api.37.0.0 fxrequired = AlwaysRequired # Standard Fork to compare to with "git fleximod test" to ensure personal forks aren't committed fxDONOTUSEurl = https://github.com/NCAR/fates-release diff --git a/src/fates b/src/fates index 08f2410fd2..296e1d6a45 160000 --- a/src/fates +++ b/src/fates @@ -1 +1 @@ -Subproject commit 08f2410fd2a9e04920eedb4cc2d51a09f68127ec +Subproject commit 296e1d6a45f05a800073d376286d0537d2290e96 From 9b0be8000a2699dfe2ff5df07411b22ec7375fbe Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Fri, 13 Dec 2024 16:59:34 -0700 Subject: [PATCH 13/33] Add if statement to CLMBuildNamelist for correct trigger of error --- bld/CLMBuildNamelist.pm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 33a8baebbc..6eddf05896 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -3395,9 +3395,11 @@ sub setup_logic_mineral_nitrogen_dynamics { } } - my $var = $nl->get_value('nfix_method'); - if ( $var ne "'Houlton'" && $var ne "'Bytnerowicz'" ) { - $log->fatal_error("$var is incorrect entry for the namelist variable nfix_method; expected Houlton or Bytnerowicz"); + if ( &value_is_true($nl_flags->{'use_cn'}) && &value_is_true($nl->get_value('use_fun')) ) { + my $var = $nl->get_value('nfix_method'); + if ( $var ne "'Houlton'" && $var ne "'Bytnerowicz'" ) { + $log->fatal_error("$var is incorrect entry for the namelist variable nfix_method; expected Houlton or Bytnerowicz"); + } } } From d420b69daea1e98d04250b1cb61cb80619ca45c5 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Fri, 20 Dec 2024 11:55:23 -0700 Subject: [PATCH 14/33] Update paramfiles for ciso_cwd_hr and cn30 testmods --- cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm | 2 +- .../clm/clm60_monthly_matrixcn_soilCN30/user_nl_clm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm index edeb0fce21..8a1e5bb216 100644 --- a/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm @@ -1,2 +1,2 @@ -paramfile = '$DIN_LOC_ROOT/lnd/clm2/paramdata/ctsm51_ciso_cwd_hr_params.c241017.nc' +paramfile = '$DIN_LOC_ROOT/lnd/clm2/paramdata/ctsm60_ciso_cwd_hr_params.c241119.nc' hist_fincl1 = 'CWDC_HR','C13_CWDC_HR','C14_CWDC_HR','CWD_HR_L2','CWD_HR_L2_vr','CWD_HR_L3','CWD_HR_L3_vr' diff --git a/cime_config/testdefs/testmods_dirs/clm/clm60_monthly_matrixcn_soilCN30/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/clm60_monthly_matrixcn_soilCN30/user_nl_clm index b1d856797d..d982aea0f0 100644 --- a/cime_config/testdefs/testmods_dirs/clm/clm60_monthly_matrixcn_soilCN30/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/clm60_monthly_matrixcn_soilCN30/user_nl_clm @@ -1,2 +1,2 @@ use_soil_matrixcn = .true. -paramfile = '$DIN_LOC_ROOT/lnd/clm2/paramdata/ctsm60_params_cn30.c241017.nc' +paramfile = '$DIN_LOC_ROOT/lnd/clm2/paramdata/ctsm60_params_cn30.c241119.nc' From 49490c7a1bcb444cb4af3d404704e10fa1160f55 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Fri, 20 Dec 2024 12:06:25 -0700 Subject: [PATCH 15/33] Updated ChangeLog/ChangeSum --- doc/ChangeLog | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++ doc/ChangeSum | 1 + 2 files changed, 85 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index cc415555ba..75d2c32902 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,88 @@ =============================================================== +Tag name: ctsm5.3.017 +Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Fri 20 Dec 2024 11:31:36 AM MST +One-line Summary: Merge b4b-dev + +Purpose and description of changes +---------------------------------- + + #2869 Update temperature cost function for symbiotic Nfix in FUN + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? +(Details of any changes will be given in the "Answer changes" section below.) + + [Put an [X] in the box for any configuration with significant answer changes.] + +[ ] clm6_0 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed +---------- +List of CTSM issues fixed (include CTSM Issue # and description) [one per line]: + Resolves #2869 + +Notes of particular relevance for users +--------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New namelist variable: nfix_method + +Changes made to namelist defaults (e.g., changed parameter values): + nfix_method default: Houlton + other available option: Bytnerowicz + + +Testing summary: +---------------- + + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + build-namelist tests (if CLMBuildNamelist.pm has changed): + + derecho - PASS + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + derecho ----- OK + izumi ------- machine unavailable + + +Answer changes +-------------- + +Changes answers relative to baseline: No, but read caveat. + + Summarize any changes to answers, i.e., + - what code configurations: tests with ciso_cwd_hr testmods + - what platforms/compilers: all + - nature of change: irrelevant + + Explanation: + "diff ctsm60_ciso_cwd_hr_params.c241119.asc ctsm60_params.c241119.asc" + differ ONLY in the value of ceta. The previous paramfile for ciso_cwd_hr + showed additional diffs, likely due to problems that we have seen before + when generating new paramfiles. The ciso_cwd_hr tests would not have shown + diffs had the previous paramfile been correct, so I only mention the diffs + here for the record. + + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2869 + +=============================================================== +=============================================================== Tag name: ctsm5.3.016 Originator(s): jedwards and erik (Erik Kluzek,UCAR/TSS,303-497-1326) Date: Thu 19 Dec 2024 04:23:39 PM MST diff --git a/doc/ChangeSum b/doc/ChangeSum index 2c0cec5d21..4da8e2f29d 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.3.017 slevis 12/20/2024 Merge b4b-dev ctsm5.3.016 erik 12/19/2024 Rpointer files for restart now have the simulation date in the filename ctsm5.3.015 erik 12/18/2024 Update cdeps with cam7 nextsw cday changes ctsm5.3.014 erik 12/03/2024 Bring in several fixes for testing in the previous cesm3_0_beta03/04 tags From f30e9f276326bbc1c33fd46a0054e014e3a85079 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Mon, 23 Dec 2024 11:04:12 -0700 Subject: [PATCH 16/33] Remove obsolete clm5_1 entry --- bld/namelist_files/namelist_defaults_ctsm.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index eee2ee247a..cee72ca5cf 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -525,7 +525,6 @@ attributes from the config_cache.xml file (with keys converted to upper-case). for the CLM2 data in the CESM distribution --> lnd/clm2/paramdata/ctsm60_params.c241119.nc -lnd/clm2/paramdata/ctsm60_params.c241119.nc lnd/clm2/paramdata/clm50_params.c241119.nc lnd/clm2/paramdata/clm45_params.c241119.nc From 5e27db76738202ce636185f5f1a02b811731fc11 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Mon, 23 Dec 2024 11:30:44 -0700 Subject: [PATCH 17/33] Error-check clean-up from Erik's code review --- bld/CLMBuildNamelist.pm | 7 ------- src/biogeochem/CNFUNMod.F90 | 8 +++----- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 13db95e734..2a2d14eb69 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -3409,13 +3409,6 @@ sub setup_logic_mineral_nitrogen_dynamics { } } - if ( &value_is_true($nl_flags->{'use_cn'}) && &value_is_true($nl->get_value('use_fun')) ) { - my $var = $nl->get_value('nfix_method'); - if ( $var ne "'Houlton'" && $var ne "'Bytnerowicz'" ) { - $log->fatal_error("$var is incorrect entry for the namelist variable nfix_method; expected Houlton or Bytnerowicz"); - } - } - } diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index b2f9a15470..0b3382f041 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -92,7 +92,6 @@ subroutine readParams ( ncid ) type(file_desc_t),intent(inout) :: ncid ! pio netCDF file id ! ! !LOCAL VARIABLES: - character(len=32) :: subname = 'CNFUNParamsType' character(len=100) :: errCode = '-Error reading in parameters file:' logical :: readv ! has variable been read in or not real(r8) :: tempr ! temporary to read in parameter @@ -135,7 +134,6 @@ subroutine CNFUNInit (bounds,cnveg_state_inst,cnveg_carbonstate_inst,cnveg_nitro integer :: nstep ! time step number integer :: nstep_fun ! Number of ! atmospheric timesteps between calls to FUN - character(len=32) :: subname = 'CNFUNInit' !-------------------------------------------------------------------- !--- @@ -494,7 +492,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& ! fixers, 2 for non fixers. This will become redundant with the ! 'fixer' parameter if it works. - character(len=32) :: subname = 'CNFUN' + character(len=100) :: errCode !-------------------------------------------------------------------- !--------------------------------- associate(ivt => patch%itype , & ! Input: [integer (:) ] p @@ -1072,8 +1070,8 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& nfix_tmin(ivt(p)),nfix_topt(ivt(p)),nfix_tmax(ivt(p)), & big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) case default - write(iulog,*) subname//' ERROR: unknown nfix_method value: ', nfix_method - call endrun(msg=errMsg(sourcefile, __LINE__)) + errCode = ' ERROR: unknown nfix_method value: ' // nfix_method + call endrun( msg=trim(errCode) // errMsg(sourcefile, __LINE__)) end select end do From 83e27f79788a858c57111db078bdfc2bb04252b4 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Mon, 23 Dec 2024 12:06:04 -0700 Subject: [PATCH 18/33] Move nfix_t* param-read from pftconMod (public) to CNFUNMod (local) --- src/biogeochem/CNFUNMod.F90 | 23 +++++++++++++++++++---- src/main/pftconMod.F90 | 18 ------------------ 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index 0b3382f041..af29d26c74 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -54,6 +54,9 @@ module CNFUNMod type, private :: params_type real(r8) :: ndays_off ! number of days to complete leaf offset + real(r8), allocatable :: nfix_tmin(:) ! A BNF parameter + real(r8), allocatable :: nfix_topt(:) ! A BNF parameter + real(r8), allocatable :: nfix_tmax(:) ! A BNF parameter end type params_type ! @@ -86,6 +89,7 @@ subroutine readParams ( ncid ) ! ! !USES: use ncdio_pio , only : file_desc_t,ncd_io + use clm_varpar, only : mxpft ! !ARGUMENTS: implicit none @@ -106,6 +110,20 @@ subroutine readParams ( ncid ) if ( .not. readv ) call endrun( msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) params_inst%ndays_off=tempr + allocate(params_inst%nfix_tmin(mxpft)) + tString='nfix_tmin' + call ncd_io(trim(tString), params_inst%nfix_tmin(:), 'read', ncid, readvar=readv) + if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) + + allocate(params_inst%nfix_topt(mxpft)) + tString='nfix_topt' + call ncd_io(trim(tString), params_inst%nfix_topt(:), 'read', ncid, readvar=readv) + if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) + + allocate(params_inst%nfix_tmax(mxpft)) + tString='nfix_tmax' + call ncd_io(trim(tString), params_inst%nfix_tmax(:), 'read', ncid, readvar=readv) + if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) end subroutine readParams @@ -505,9 +523,6 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& b_fix => pftcon%b_fix , & ! Input: A BNF parameter c_fix => pftcon%c_fix , & ! Input: A BNF parameter s_fix => pftcon%s_fix , & ! Input: A BNF parameter - nfix_tmin => pftcon%nfix_tmin , & ! Input: A BNF parameter - nfix_topt => pftcon%nfix_topt , & ! Input: A BNF parameter - nfix_tmax => pftcon%nfix_tmax , & ! Input: A BNF parameter akc_active => pftcon%akc_active , & ! Input: A mycorrhizal uptake ! parameter akn_active => pftcon%akn_active , & ! Input: A mycorrhizal uptake @@ -1067,7 +1082,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) case ('Bytnerowicz') ! no acclimation calculation costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, & - nfix_tmin(ivt(p)),nfix_topt(ivt(p)),nfix_tmax(ivt(p)), & + params_inst%nfix_tmin(ivt(p)), params_inst%nfix_topt(ivt(p)), params_inst%nfix_tmax(ivt(p)), & big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) case default errCode = ' ERROR: unknown nfix_method value: ' // nfix_method diff --git a/src/main/pftconMod.F90 b/src/main/pftconMod.F90 index 19165b24be..b987879c03 100644 --- a/src/main/pftconMod.F90 +++ b/src/main/pftconMod.F90 @@ -268,9 +268,6 @@ module pftconMod real(r8), allocatable :: b_fix (:) ! A BNF parameter real(r8), allocatable :: c_fix (:) ! A BNF parameter real(r8), allocatable :: s_fix (:) ! A BNF parameter - real(r8), allocatable :: nfix_tmin (:) ! A BNF parameter - real(r8), allocatable :: nfix_topt (:) ! A BNF parameter - real(r8), allocatable :: nfix_tmax (:) ! A BNF parameter real(r8), allocatable :: akc_active (:) ! A mycorrhizal uptake parameter real(r8), allocatable :: akn_active (:) ! A mycorrhizal uptake parameter real(r8), allocatable :: ekc_active (:) ! A mycorrhizal uptake parameter @@ -488,9 +485,6 @@ subroutine InitAllocate (this) allocate( this%b_fix (0:mxpft) ) allocate( this%c_fix (0:mxpft) ) allocate( this%s_fix (0:mxpft) ) - allocate( this%nfix_tmin (0:mxpft) ) - allocate( this%nfix_topt (0:mxpft) ) - allocate( this%nfix_tmax (0:mxpft) ) allocate( this%akc_active (0:mxpft) ) allocate( this%akn_active (0:mxpft) ) allocate( this%ekc_active (0:mxpft) ) @@ -886,15 +880,6 @@ subroutine InitRead(this) call ncd_io('s_fix', this%s_fix, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) - call ncd_io('nfix_tmin', this%nfix_tmin, 'read', ncid, readvar=readv, posNOTonfile=.true.) - if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) - - call ncd_io('nfix_topt', this%nfix_topt, 'read', ncid, readvar=readv, posNOTonfile=.true.) - if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) - - call ncd_io('nfix_tmax', this%nfix_tmax, 'read', ncid, readvar=readv, posNOTonfile=.true.) - if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) - call ncd_io('akc_active', this%akc_active, 'read', ncid, readvar=readv, posNOTonfile=.true.) if ( .not. readv ) call endrun(msg=' ERROR: error in reading in pft data'//errMsg(sourcefile, __LINE__)) @@ -1590,9 +1575,6 @@ subroutine Clean(this) deallocate( this%b_fix) deallocate( this%c_fix) deallocate( this%s_fix) - deallocate( this%nfix_tmin) - deallocate( this%nfix_topt) - deallocate( this%nfix_tmax) deallocate( this%akc_active) deallocate( this%akn_active) deallocate( this%ekc_active) From c3d9ecc13577c092ff9e32ea0a4acb80e2d6df12 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Tue, 24 Dec 2024 13:32:44 -0700 Subject: [PATCH 19/33] Move namelist read for nfix_method to CNFUNMod based on Erik's review --- bld/CLMBuildNamelist.pm | 1 + .../namelist_definition_ctsm.xml | 4 +- src/biogeochem/CNFUNMod.F90 | 61 ++++++++++++++++++- src/main/clm_varctl.F90 | 2 - src/main/controlMod.F90 | 5 +- 5 files changed, 65 insertions(+), 8 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 2a2d14eb69..ab0aab0cc5 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -5209,6 +5209,7 @@ sub write_output_files { } push @groups, "clm_humanindex_inparm"; push @groups, "cnmresp_inparm"; + push @groups, "cnfun_inparm"; push @groups, "photosyns_inparm"; push @groups, "cnfire_inparm"; push @groups, "cn_general"; diff --git a/bld/namelist_files/namelist_definition_ctsm.xml b/bld/namelist_files/namelist_definition_ctsm.xml index 3f63ccaa72..ac61b86852 100644 --- a/bld/namelist_files/namelist_definition_ctsm.xml +++ b/bld/namelist_files/namelist_definition_ctsm.xml @@ -388,8 +388,8 @@ Slope of free living Nitrogen fixation with annual ET Intercept of free living Nitrogen fixation with zero annual ET - + Choice of nfix parameterization diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index af29d26c74..b66083db2f 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -48,10 +48,13 @@ module CNFUNMod private ! ! !PUBLIC MEMBER FUNCTIONS: + public :: CNFUNReadNML ! Read in namelist variables public:: readParams ! Read in parameters needed for FUN public:: CNFUNInit ! FUN calculation initialization public:: CNFUN ! Run FUN + character(len=25) :: nfix_method ! choice of nfix parameterization + type, private :: params_type real(r8) :: ndays_off ! number of days to complete leaf offset real(r8), allocatable :: nfix_tmin(:) ! A BNF parameter @@ -85,6 +88,62 @@ module CNFUNMod contains !-------------------------------------------------------------------- !--- + subroutine CNFUNReadNML(NLFilename) + ! + ! !DESCRIPTION: + ! Read in namelist variables + ! + ! !USES: + use fileutils , only : getavu, relavu, opnfil + use shr_nl_mod , only : shr_nl_find_group_name + use spmdMod , only : masterproc, mpicom + use shr_mpi_mod, only : shr_mpi_bcast + use clm_varctl , only : iulog + use spmdMod , only : MPI_CHARACTER + ! + ! !ARGUMENTS: + character(len=*), intent(in) :: NLFilename ! Namelist filename + ! + ! !LOCAL VARIABLES: + integer :: ierr ! error code + integer :: unitn ! unit for namelist file + + character(len=*), parameter :: nmlname = 'cnfun_inparm' + !----------------------------------------------------------------------- + + namelist /cnfun_inparm/ nfix_method + + ! Initialize options to default values, in case they are not specified in + ! the namelist + + if (masterproc) then + unitn = getavu() + write(iulog,*) 'Read in '//nmlname//' namelist' + call opnfil (NLFilename, unitn, 'F') + call shr_nl_find_group_name(unitn, nmlname, status=ierr) + if (ierr == 0) then + read(unitn, nml=cnfun_inparm, iostat=ierr) + if (ierr /= 0) then + call endrun(msg="ERROR reading "//nmlname//"namelist"//errmsg(sourcefile, __LINE__)) + end if + else + call endrun(msg="ERROR finding "//nmlname//"namelist"//errmsg(sourcefile, __LINE__)) + end if + call relavu( unitn ) + end if + + call mpi_bcast (nfix_method, len(nfix_method), MPI_CHARACTER, 0, mpicom, ierr) + + if (masterproc) then + write(iulog,*) ' ' + write(iulog,*) nmlname//' settings:' + write(iulog,nml=cnfun_inparm) + write(iulog,*) ' ' + end if + + end subroutine CNFUNReadNML + + !----------------------------------------------------------------------- subroutine readParams ( ncid ) ! ! !USES: @@ -222,7 +281,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& use clm_time_manager, only : get_step_size_real, get_curr_date use clm_varpar , only : nlevdecomp use clm_varcon , only : secspday, smallValue, fun_period, tfrz, dzsoi_decomp, spval - use clm_varctl , only : use_nitrif_denitrif, nfix_method + use clm_varctl , only : use_nitrif_denitrif use PatchType , only : patch use subgridAveMod , only : p2c use pftconMod , only : npcropmin diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index 0989400961..9539060200 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -227,8 +227,6 @@ module clm_varctl ! real(r8), public :: nfix_timeconst = -1.2345_r8 - character(len=25), public :: nfix_method ! choice of nfix parameterization - !---------------------------------------------------------- ! Physics !---------------------------------------------------------- diff --git a/src/main/controlMod.F90 b/src/main/controlMod.F90 index 61c56f5201..e8121519aa 100644 --- a/src/main/controlMod.F90 +++ b/src/main/controlMod.F90 @@ -119,6 +119,7 @@ subroutine control_init(dtime) ! ! !USES: use CNMRespMod , only : CNMRespReadNML + use CNFUNMod , only : CNFUNReadNML use CNNDynamicsMod , only : CNNDynamicsReadNML use CNPhenologyMod , only : CNPhenologyReadNML use landunit_varcon , only : max_lunit @@ -257,8 +258,6 @@ subroutine control_init(dtime) CNratio_floating, lnc_opt, reduce_dayl_factor, vcmax_opt, & CN_evergreen_phenology_opt, carbon_resp_opt - namelist /clm_nitrogen/ nfix_method - namelist /clm_inparm/ use_soil_moisture_streams ! excess ice flag @@ -598,6 +597,7 @@ subroutine control_init(dtime) if ( use_fun ) then call CNMRespReadNML( NLFilename ) + call CNFUNReadNML( NLFilename ) end if call soilHydReadNML( NLFilename ) @@ -884,7 +884,6 @@ subroutine control_spmd() call mpi_bcast (use_c13_timeseries, 1, MPI_LOGICAL, 0, mpicom, ier) call mpi_bcast (atm_c13_filename, len(atm_c13_filename), MPI_CHARACTER, 0, mpicom, ier) call mpi_bcast (use_fun, 1, MPI_LOGICAL, 0, mpicom, ier) - call mpi_bcast (nfix_method, len(nfix_method), MPI_CHARACTER, 0, mpicom, ier) end if call mpi_bcast (perchroot, 1, MPI_LOGICAL, 0, mpicom, ier) From a73a961147e621b456c9e9eb543ad83220438e30 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Tue, 24 Dec 2024 13:52:48 -0700 Subject: [PATCH 20/33] Simplify equation based on Erik's review --- src/biogeochem/CNFUNMod.F90 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index b66083db2f..a379b45a90 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -1718,9 +1718,9 @@ real(r8) function fun_cost_fix_Bytnerowicz_noAcc(fixer,nfix_tmin,nfix_topt,nfix_ real(r8), intent(in) :: tc_soisno ! soil temperature (degrees Celsius) if (fixer == 1 .and. crootfr > 1.e-6_r8 .and. tc_soisno > nfix_tmin .and. tc_soisno < nfix_tmax) then - fun_cost_fix_Bytnerowicz_noAcc = (-1*s_fix) * 1._r8 / ( ((nfix_tmax-tc_soisno)/(nfix_tmax-nfix_topt))*& - ( ((tc_soisno-nfix_tmin)/(nfix_topt-nfix_tmin))**& - ((nfix_topt- nfix_tmin)/(nfix_tmax-nfix_topt)) ) ) + fun_cost_fix_Bytnerowicz_noAcc = (-s_fix) / ( ((nfix_tmax-tc_soisno)/(nfix_tmax-nfix_topt))*& + ( ((tc_soisno-nfix_tmin)/(nfix_topt-nfix_tmin))**& + ((nfix_topt- nfix_tmin)/(nfix_tmax-nfix_topt)) ) ) fun_cost_fix_Bytnerowicz_noAcc = min(fun_cost_fix_Bytnerowicz_noAcc,big_cost) else fun_cost_fix_Bytnerowicz_noAcc = big_cost From b603c685bb32affd2177df02f2eafac6e9558123 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Tue, 24 Dec 2024 16:03:58 -0700 Subject: [PATCH 21/33] Final ChangeLog/ChangeSum --- doc/ChangeLog | 4 ++-- doc/ChangeSum | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 75d2c32902..ed6892a285 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,7 +1,7 @@ =============================================================== Tag name: ctsm5.3.017 Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) -Date: Fri 20 Dec 2024 11:31:36 AM MST +Date: Tue 24 Dec 2024 03:43:01 PM MST One-line Summary: Merge b4b-dev Purpose and description of changes @@ -54,7 +54,7 @@ Testing summary: regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): derecho ----- OK - izumi ------- machine unavailable + izumi ------- machine seems problematic at the moment Answer changes diff --git a/doc/ChangeSum b/doc/ChangeSum index 4da8e2f29d..60d46392ff 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,6 +1,6 @@ Tag Who Date Summary ============================================================================================================================ - ctsm5.3.017 slevis 12/20/2024 Merge b4b-dev + ctsm5.3.017 slevis 12/24/2024 Merge b4b-dev ctsm5.3.016 erik 12/19/2024 Rpointer files for restart now have the simulation date in the filename ctsm5.3.015 erik 12/18/2024 Update cdeps with cam7 nextsw cday changes ctsm5.3.014 erik 12/03/2024 Bring in several fixes for testing in the previous cesm3_0_beta03/04 tags From 6603ed2ac813b0a5151df7d1aeb16f570f1764c3 Mon Sep 17 00:00:00 2001 From: Gregory Lemieux Date: Thu, 2 Jan 2025 14:42:42 -0800 Subject: [PATCH 22/33] add PVT test issue #2919 to expected failures --- cime_config/testdefs/ExpectedTestFails.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index ea25c74f64..e88cb36954 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -556,6 +556,13 @@ + + + FAIL + #2919 + + + From 1c81c988a7869f272af3bde0e876a483253bd3a6 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Mon, 6 Jan 2025 17:29:13 -0700 Subject: [PATCH 23/33] Bug fix for izumi nag tests to pass --- src/biogeochem/CNFUNMod.F90 | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/biogeochem/CNFUNMod.F90 b/src/biogeochem/CNFUNMod.F90 index a379b45a90..0af5efe580 100644 --- a/src/biogeochem/CNFUNMod.F90 +++ b/src/biogeochem/CNFUNMod.F90 @@ -169,17 +169,17 @@ subroutine readParams ( ncid ) if ( .not. readv ) call endrun( msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) params_inst%ndays_off=tempr - allocate(params_inst%nfix_tmin(mxpft)) + allocate(params_inst%nfix_tmin(0:mxpft)) tString='nfix_tmin' call ncd_io(trim(tString), params_inst%nfix_tmin(:), 'read', ncid, readvar=readv) if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) - allocate(params_inst%nfix_topt(mxpft)) + allocate(params_inst%nfix_topt(0:mxpft)) tString='nfix_topt' call ncd_io(trim(tString), params_inst%nfix_topt(:), 'read', ncid, readvar=readv) if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) - allocate(params_inst%nfix_tmax(mxpft)) + allocate(params_inst%nfix_tmax(0:mxpft)) tString='nfix_tmax' call ncd_io(trim(tString), params_inst%nfix_tmax(:), 'read', ncid, readvar=readv) if ( .not. readv ) call endrun(msg=trim(errCode)//trim(tString)//errMsg(sourcefile, __LINE__)) @@ -535,7 +535,7 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& real(r8) :: total_N_resistance ! C to of N for whole soil -leaf ! pathway real(r8) :: free_RT_frac=0.0_r8 !fraction of N retranslocation which is automatic/free. - ! SHould be made into a PFT parameter. + ! Should be made into a PFT parameter. real(r8) :: paid_for_n_retrans real(r8) :: free_n_retrans @@ -1136,13 +1136,13 @@ subroutine CNFUN(bounds,num_soilc, filter_soilc,num_soilp& select case (nfix_method) case ('Houlton') - costNit(j,icostFix) = fun_cost_fix(fixer,& - a_fix(ivt(p)),b_fix(ivt(p)),c_fix(ivt(p)),& - big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) + costNit(j,icostFix) = fun_cost_fix(fixer, & + a_fix(ivt(p)), b_fix(ivt(p)), c_fix(ivt(p)), & + big_cost, crootfr(p,j), s_fix(ivt(p)), tc_soisno(c,j)) case ('Bytnerowicz') ! no acclimation calculation - costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, & - params_inst%nfix_tmin(ivt(p)), params_inst%nfix_topt(ivt(p)), params_inst%nfix_tmax(ivt(p)), & - big_cost,crootfr(p,j),s_fix(ivt(p)),tc_soisno(c,j)) + costNit(j,icostFix) = fun_cost_fix_Bytnerowicz_noAcc(fixer, & + params_inst%nfix_tmin(ivt(p)), params_inst%nfix_topt(ivt(p)), params_inst%nfix_tmax(ivt(p)), & + big_cost,crootfr(p,j), s_fix(ivt(p)), tc_soisno(c,j)) case default errCode = ' ERROR: unknown nfix_method value: ' // nfix_method call endrun( msg=trim(errCode) // errMsg(sourcefile, __LINE__)) From c67acd5eca6d88dadbc351d13feb2298418d4407 Mon Sep 17 00:00:00 2001 From: Gregory Lemieux Date: Tue, 7 Jan 2025 10:33:52 -0800 Subject: [PATCH 24/33] update changelog --- doc/ChangeLog | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++ doc/ChangeSum | 1 + 2 files changed, 76 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index ed6892a285..e9d3b799e1 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,79 @@ =============================================================== +Tag name: ctsm5.3.018 +Originator(s): glemieux (Gregory Lemieux, LBNL, glemieux@lbl.gov) +Date: Tue Jan 7 10:22:51 MST 2025 +One-line Summary: FATES hydro test update + +Purpose and description of changes +---------------------------------- + +This minor update reverts a temporary work around for FATES hydro system tests. +The FATES tag is updated to capture the FATES-side fix to the issue that predicated +the temporary testing workaround. + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? +(Details of any changes will be given in the "Answer changes" section below.) + + [Put an [X] in the box for any configuration with significant answer changes.] + +[ ] clm6_0 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed +---------- +List of CTSM issues fixed (include CTSM Issue # and description) [one per line]: + + #2878 - Remove fates_allom_smode shell_command update in FatesColdHydro testmod + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + FATES hydro tests will no long build a custom parameter file on the fly + The one FATES PVT test has been added to expected failure per #2919 + +Testing summary: regular + fates +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + derecho ----- OK + izumi ------- OK (see #2924) + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + derecho ----- OK + izumi ------- OK + + +Answer changes +-------------- + +Changes answers relative to baseline: Yes, but only for aux_clm fates testmods + + The FATES tag update includes a number of science and bug fix updates since the + last fates tag update, which results in non-B4B changes. These have been reviewed + and differ as expected. + +Other details +------------- +List any git submodules updated (cime, rtm, mosart, cism, fates, etc.): + fates: sci.1.79.3_api.37.0.0 -> sci.1.80.4_api.37.0.0 + +Pull Requests that document the changes (include PR ids): +(https://github.com/ESCOMP/ctsm/pull) + https://github.com/ESCOMP/CTSM/pull/2882 + +=============================================================== +=============================================================== Tag name: ctsm5.3.017 Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) Date: Tue 24 Dec 2024 03:43:01 PM MST diff --git a/doc/ChangeSum b/doc/ChangeSum index 60d46392ff..8784bbd5ea 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.3.018 glemieux 01/07/2025 FATES hydro test update ctsm5.3.017 slevis 12/24/2024 Merge b4b-dev ctsm5.3.016 erik 12/19/2024 Rpointer files for restart now have the simulation date in the filename ctsm5.3.015 erik 12/18/2024 Update cdeps with cam7 nextsw cday changes From 136970d9fe4e1ce3dcfc3733d91174914685dcc7 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Tue, 7 Jan 2025 16:24:37 -0700 Subject: [PATCH 25/33] Update change files to point to the tags of the two tmp branch tags that were made --- doc/ChangeLog | 6 +++--- doc/ChangeSum | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index e9d3b799e1..c6eb6974db 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,7 +1,7 @@ =============================================================== -Tag name: ctsm5.3.018 +Tag name: tmp-241219.n02.ctsm5.3.016 Originator(s): glemieux (Gregory Lemieux, LBNL, glemieux@lbl.gov) -Date: Tue Jan 7 10:22:51 MST 2025 +Date: Tue 07 Jan 2025 04:23:28 PM MST One-line Summary: FATES hydro test update Purpose and description of changes @@ -74,7 +74,7 @@ Pull Requests that document the changes (include PR ids): =============================================================== =============================================================== -Tag name: ctsm5.3.017 +Tag name: tmp-241219.n01.ctsm5.3.016 Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) Date: Tue 24 Dec 2024 03:43:01 PM MST One-line Summary: Merge b4b-dev diff --git a/doc/ChangeSum b/doc/ChangeSum index 8784bbd5ea..f3fdf4e96d 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,7 +1,7 @@ Tag Who Date Summary ============================================================================================================================ - ctsm5.3.018 glemieux 01/07/2025 FATES hydro test update - ctsm5.3.017 slevis 12/24/2024 Merge b4b-dev +tmp-241219.n02.ctsm5.3.016 01/07/2025 FATES hydro test update +tmp-241219.n01.ctsm5.3.016 12/24/2024 Merge b4b-dev ctsm5.3.016 erik 12/19/2024 Rpointer files for restart now have the simulation date in the filename ctsm5.3.015 erik 12/18/2024 Update cdeps with cam7 nextsw cday changes ctsm5.3.014 erik 12/03/2024 Bring in several fixes for testing in the previous cesm3_0_beta03/04 tags From e58aab50a4a586c0ce14bf78d385ab36466ab124 Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 8 Jan 2025 10:53:47 -0700 Subject: [PATCH 26/33] Update timestamp in change files --- doc/ChangeLog | 2 +- doc/ChangeSum | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index c6eb6974db..8e2b20acc1 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,7 +1,7 @@ =============================================================== Tag name: tmp-241219.n02.ctsm5.3.016 Originator(s): glemieux (Gregory Lemieux, LBNL, glemieux@lbl.gov) -Date: Tue 07 Jan 2025 04:23:28 PM MST +Date: Wed 08 Jan 2025 10:52:49 AM MST One-line Summary: FATES hydro test update Purpose and description of changes diff --git a/doc/ChangeSum b/doc/ChangeSum index f3fdf4e96d..2c0706055b 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,6 +1,6 @@ Tag Who Date Summary ============================================================================================================================ -tmp-241219.n02.ctsm5.3.016 01/07/2025 FATES hydro test update +tmp-241219.n02.ctsm5.3.016 01/08/2025 FATES hydro test update tmp-241219.n01.ctsm5.3.016 12/24/2024 Merge b4b-dev ctsm5.3.016 erik 12/19/2024 Rpointer files for restart now have the simulation date in the filename ctsm5.3.015 erik 12/18/2024 Update cdeps with cam7 nextsw cday changes From e97f9d40c14ec2854cc4a39549c23ed945d1510c Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Wed, 8 Jan 2025 12:30:56 -0700 Subject: [PATCH 27/33] Add flexCN_FUN_BNF test and corresponding testmods --- cime_config/testdefs/testlist_clm.xml | 9 +++++++++ .../testmods_dirs/clm/flexCN_FUN_BNF/include_user_mods | 1 + .../testmods_dirs/clm/flexCN_FUN_BNF/user_nl_clm | 2 ++ 3 files changed, 12 insertions(+) create mode 100644 cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/include_user_mods create mode 100644 cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/user_nl_clm diff --git a/cime_config/testdefs/testlist_clm.xml b/cime_config/testdefs/testlist_clm.xml index ed6aaba0b1..200468cf53 100644 --- a/cime_config/testdefs/testlist_clm.xml +++ b/cime_config/testdefs/testlist_clm.xml @@ -1317,6 +1317,15 @@ + + + + + + + + + diff --git a/cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/include_user_mods b/cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/include_user_mods new file mode 100644 index 0000000000..4fbf11b334 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/include_user_mods @@ -0,0 +1 @@ +../flexCN_FUN diff --git a/cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/user_nl_clm new file mode 100644 index 0000000000..8084f982e1 --- /dev/null +++ b/cime_config/testdefs/testmods_dirs/clm/flexCN_FUN_BNF/user_nl_clm @@ -0,0 +1,2 @@ + nfix_method = 'Bytnerowicz' + From 126e0265b9f14c7ce844d0fa7642d13a6f41e5a8 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Wed, 8 Jan 2025 12:39:00 -0700 Subject: [PATCH 28/33] Correct the phase_name for an expected failure --- cime_config/testdefs/ExpectedTestFails.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cime_config/testdefs/ExpectedTestFails.xml b/cime_config/testdefs/ExpectedTestFails.xml index e88cb36954..79ead77c74 100644 --- a/cime_config/testdefs/ExpectedTestFails.xml +++ b/cime_config/testdefs/ExpectedTestFails.xml @@ -114,7 +114,7 @@ - + FAIL #1733 From f1d1febe6c4ecb6781bc944c44c4561088928ecc Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Wed, 8 Jan 2025 18:41:51 -0700 Subject: [PATCH 29/33] Updated ChangeLog/ChangeSum --- doc/ChangeLog | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++ doc/ChangeSum | 5 ++-- 2 files changed, 73 insertions(+), 2 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 8e2b20acc1..fffcc6bca5 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,74 @@ =============================================================== +Tag name: tmp-241219.n03.ctsm5.3.016 +Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Wed 08 Jan 2025 06:09:41 PM MST +One-line Summary: Bug fix for izumi nag tests to pass + +Purpose and description of changes +---------------------------------- + + Allocation statements should have been (0:mxpft) instead of (mxpft). + I introduced the bug in a small refactor requested in #2917. + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? +(Details of any changes will be given in the "Answer changes" section below.) + + [Put an [X] in the box for any configuration with significant answer changes.] + +[ ] clm6_0 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed +---------- +List of CTSM issues fixed (include CTSM Issue # and description) [one per line]: +Fixes #2924 + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + Added tests that I should have added in the tmp-241219.n01.ctsm5.3.016 tag: + ERP_D_Ld5_P48x1.f10_f10_mg37.I2000Clm50BgcCru.izumi_nag.clm-flexCN_FUN_BNF + ERP_D_Ld5_P48x1.f10_f10_mg37.I2000Clm50BgcCru.derecho_intel.clm-flexCN_FUN_BNF + +Testing summary: +---------------- + [PASS means all tests PASS; OK means tests PASS other than expected fails.] + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + derecho ----- OK + izumi ------- OK + +If the tag used for baseline comparisons was NOT the previous tag, note that here: + derecho used tmp-241219.n02.ctsm5.3.016 + izumi used ctsm5.3.016 because it was the best available baseline + +Answer changes +-------------- + +Changes answers relative to baseline: No but read caveat. + + Summarize any changes to answers, i.e., + - what code configurations: a few Fates cases + - what platforms/compilers: izumi; only because I compared to ctsm5.3.016 + - nature of change: same as in the tmp-241219.n02.ctsm5.3.016 tag + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2925 + +=============================================================== +=============================================================== Tag name: tmp-241219.n02.ctsm5.3.016 Originator(s): glemieux (Gregory Lemieux, LBNL, glemieux@lbl.gov) Date: Wed 08 Jan 2025 10:52:49 AM MST diff --git a/doc/ChangeSum b/doc/ChangeSum index 2c0706055b..2a34c4cce3 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,7 +1,8 @@ Tag Who Date Summary ============================================================================================================================ -tmp-241219.n02.ctsm5.3.016 01/08/2025 FATES hydro test update -tmp-241219.n01.ctsm5.3.016 12/24/2024 Merge b4b-dev +tmp-241219.n03.ctsm5.3.016 01/09/2025 Bug fix for izumi nag tests to pass (slevis) +tmp-241219.n02.ctsm5.3.016 01/08/2025 FATES hydro test update (glemieux) +tmp-241219.n01.ctsm5.3.016 12/24/2024 Merge b4b-dev (slevis) ctsm5.3.016 erik 12/19/2024 Rpointer files for restart now have the simulation date in the filename ctsm5.3.015 erik 12/18/2024 Update cdeps with cam7 nextsw cday changes ctsm5.3.014 erik 12/03/2024 Bring in several fixes for testing in the previous cesm3_0_beta03/04 tags From bcd684b4e95cda1ac47ee6a118002849fad65c95 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 9 Jan 2025 11:45:46 -0700 Subject: [PATCH 30/33] Finalize ChangeLog --- doc/ChangeLog | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index fffcc6bca5..95477f1d61 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,12 +1,11 @@ =============================================================== Tag name: tmp-241219.n03.ctsm5.3.016 Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) -Date: Wed 08 Jan 2025 06:09:41 PM MST +Date: Thu 09 Jan 2025 11:39:37 AM MST One-line Summary: Bug fix for izumi nag tests to pass Purpose and description of changes ---------------------------------- - Allocation statements should have been (0:mxpft) instead of (mxpft). I introduced the bug in a small refactor requested in #2917. @@ -30,7 +29,7 @@ Does this tag change answers significantly for any of the following physics conf Bugs fixed ---------- List of CTSM issues fixed (include CTSM Issue # and description) [one per line]: -Fixes #2924 + Fixes #2924 Notes of particular relevance for developers: --------------------------------------------- @@ -49,7 +48,7 @@ Testing summary: izumi ------- OK If the tag used for baseline comparisons was NOT the previous tag, note that here: - derecho used tmp-241219.n02.ctsm5.3.016 + derecho used tmp-241219.n02.ctsm5.3.016 (i.e. the previous tag) izumi used ctsm5.3.016 because it was the best available baseline Answer changes @@ -62,6 +61,11 @@ Changes answers relative to baseline: No but read caveat. - what platforms/compilers: izumi; only because I compared to ctsm5.3.016 - nature of change: same as in the tmp-241219.n02.ctsm5.3.016 tag + Note: Also on izumi I see the following failure in all the tests that 'failed to initialize' + that I had to go back to build and run, whether with ./case.build or ./create_test. For example: + FAIL ERP_D_Ld5_P48x1.f10_f10_mg37.I2000Clm50BgcCru.izumi_nag.clm-noFUN_flexCN BASELINE ctsm5.3.016: ERROR CPRNC failed to open files + I am aware that others have also seen this behavior. + Other details ------------- Pull Requests that document the changes (include PR ids): From 2d8f71d7d321490f84ca716207c1a3b5dd48b07e Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 9 Jan 2025 12:40:56 -0700 Subject: [PATCH 31/33] Update ChangeSum --- doc/ChangeSum | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/ChangeSum b/doc/ChangeSum index 2a34c4cce3..545a02ff25 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.3.017 slevis 01/09/2025 Merge tmp-241219 branch to master tmp-241219.n03.ctsm5.3.016 01/09/2025 Bug fix for izumi nag tests to pass (slevis) tmp-241219.n02.ctsm5.3.016 01/08/2025 FATES hydro test update (glemieux) tmp-241219.n01.ctsm5.3.016 12/24/2024 Merge b4b-dev (slevis) From c12709b3f0f23aed147cf0ea901533c3a4563c45 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 9 Jan 2025 13:05:22 -0700 Subject: [PATCH 32/33] Update ChageLog --- doc/ChangeLog | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index 95477f1d61..aad4b50ac1 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,82 @@ =============================================================== +Tag name: ctsm5.3.017 +Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Thu 09 Jan 2025 11:56:43 AM MST +One-line Summary: Merge tmp-241219 branch to master + +Purpose and description of changes +---------------------------------- + +Includes three tmp-241219 tags: + tmp-241219.n01.ctsm5.3.016 Merge b4b-dev: + nfix_method options Houlton (default), Bytnerowicz (option) + tmp-241219.n02.ctsm5.3.016 FATES hydro test update + tmp-241219.n03.ctsm5.3.016 Bug fix for izumi nag tests to pass (b4b unless using Bytnerowicz) + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +Does this tag change answers significantly for any of the following physics configurations? +(Details of any changes will be given in the "Answer changes" section below.) + + [Put an [X] in the box for any configuration with significant answer changes.] + +[ ] clm6_0 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed +---------- +List of CTSM issues fixed (include CTSM Issue # and description) [one per line]: + Each separate tag documents this information below. + +Notes of particular relevance for users +--------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + nfix_method as explained in tmp-241219.n01.ctsm5.3.016 tag below. + +Notes of particular relevance for developers: +--------------------------------------------- +Changes to tests or testing: + New tests as documented in tmp-241219.n03.ctsm5.3.016 tag below. + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + derecho ----- OK (baseline linked to tmp-241219.n03.ctsm5.3.016) + izumi ------- OK (baseline linked to tmp-241219.n03.ctsm5.3.016) + + fates tests: + derecho ----- No new testing; last baseline is fates-sci.1.80.4_api.37.0.0-tmp-241219.n02.ctsm5.3.016 + izumi ------- No new testing; see tmp-241219.n02.ctsm5.3.016 tag below + +Answer changes +-------------- + +Changes answers relative to baseline: Yes, only for aux_clm fates testmods + + Same comment as in tmp-241219.n02.ctsm5.3.016 tag: + The FATES tag update includes a number of science and bug fix updates since the + last fates tag update, which results in non-B4B changes. These have been reviewed + and differ as expected. + +Other details +------------- +List any git submodules updated (cime, rtm, mosart, cism, fates, etc.): + fates updated to sci.1.80.4_api.37.0.0 + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2928 + +=============================================================== +=============================================================== Tag name: tmp-241219.n03.ctsm5.3.016 Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) Date: Thu 09 Jan 2025 11:39:37 AM MST From 5c2bc3f69f89e1938aa4161463a1e5da5d3e7cff Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 9 Jan 2025 15:07:41 -0700 Subject: [PATCH 33/33] Small update to ChangeLog --- doc/ChangeLog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index aad4b50ac1..1b37b4be63 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -67,6 +67,8 @@ Changes answers relative to baseline: Yes, only for aux_clm fates testmods last fates tag update, which results in non-B4B changes. These have been reviewed and differ as expected. + Also, see caveat in Answer changes for tag tmp-241219.n01.ctsm5.3.016. + Other details ------------- List any git submodules updated (cime, rtm, mosart, cism, fates, etc.):