From 8a6bd78a5b72c30b3586303511026610078a7b25 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Fri, 22 Sep 2023 11:14:15 -0400 Subject: [PATCH 01/30] Update external pointer for fates, better name of experimental branch --- Externals_CLM.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Externals_CLM.cfg b/Externals_CLM.cfg index 35f8d1740a..0c6fc55262 100644 --- a/Externals_CLM.cfg +++ b/Externals_CLM.cfg @@ -1,8 +1,8 @@ [fates] local_path = src/fates protocol = git -repo_url = https://github.com/rgknox/fates -branch = two-stream-clean +repo_url = https://github.com/NGEET/fates +branch = unsupported_sp_calibration required = True [externals_description] From adfb459b4836b1231f315a744d59b6cc16c727ce Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Thu, 2 Nov 2023 16:32:38 -0400 Subject: [PATCH 02/30] added some comments --- src/main/clm_varctl.F90 | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index 95c800504b..b596a999a6 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -308,6 +308,15 @@ module clm_varctl logical, public :: use_fates_inventory_init = .false. ! true => initialize fates from inventory logical, public :: use_fates_fixed_biogeog = .false. ! true => use fixed biogeography mode logical, public :: use_fates_nocomp = .false. ! true => use no comopetition mode + + ! History density level + ! fates can produce history at either the daily timescale (dynamics) + ! and the model step timescale. It can also generate output on the extra dimension + ! Performing this output can be expensive, so we allow different history density + ! levels + + logical, public :: fates_hist_dense_level = 1 ! + character(len=256), public :: fates_inventory_ctrl_filename = '' ! filename for inventory control ! FATES SP AND FATES BGC are MUTUTALLY EXCLUSIVE, THEY CAN'T BOTH BE ON From 5aafde9d0d69e33410d6242e79b5e39172eeb413 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Fri, 3 Nov 2023 10:34:53 -0400 Subject: [PATCH 03/30] updates to crossreffing namelist history vars and allocated history vars --- src/main/histFileMod.F90 | 2 +- src/utils/clmfates_interfaceMod.F90 | 65 +++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/src/main/histFileMod.F90 b/src/main/histFileMod.F90 index c72117b090..f1d45a2cdd 100644 --- a/src/main/histFileMod.F90 +++ b/src/main/histFileMod.F90 @@ -179,7 +179,7 @@ module histFileMod private :: hist_set_snow_field_2d ! Set values in history field dimensioned by levsno private :: list_index ! Find index of field in exclude list private :: set_hist_filename ! Determine history dataset filenames - private :: getname ! Retrieve name portion of input "inname" + public :: getname ! Retrieve name portion of input "inname" (PUBLIC FOR FATES) private :: getflag ! Retrieve flag private :: next_history_pointer_index ! Latest index into raw history data (clmptr_r*) arrays private :: max_nFields ! The max number of fields on any tape diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index c9b1c9a5e7..a30250040b 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -263,6 +263,7 @@ module CLMFatesInterfaceMod public :: CLMFatesGlobals1 public :: CLMFatesGlobals2 + public :: CrossRefHistoryFields contains @@ -542,6 +543,70 @@ subroutine CLMFatesGlobals2() return end subroutine CLMFatesGlobals2 + ! =================================================================================== + + subroutine CrossRefHistoryFields + + ! This routine only needs to be called on the masterproc. + ! Here we cross reference the CLM history master + ! list and make sure that all fields that start + ! with fates have been allocated. If it has + ! not, then we give a more constructive error + ! message than what is possible in PIO. The user + ! most likely needs to increase the history density + ! level + + use histFileMod, only: getname + use histFileMod, only: fincl, hist_fincl1 + use histFileMod, only: max_tapes, max_flds + + integer :: t ! iterator index for history tapes + integer :: f ! iterator index for registered history field names + integer :: nh ! iterator index for fates registered history + logical :: found ! if true, than the history field is either + ! not part of the fates set, or was found in + ! the fates set + character(len=64) :: fincl_name + + do t = 1,max_tapes + + f = 1 + search_fields: do while (f < max_flds .and. fincl(f,t) /= ' ') + + ! This fincl array might not be ready by the time + ! this is called + fincl_name = getname(fincl(f,t)) + + if(scan(fincl_name,'FATES_'))then + found = .false. + do_fates_hist: do nh = 1,fates_hist%num_history_vars + if(trim(fates_hist%hvars(nh)%vname) == & + trim(fincl_name)) then + found=.true. + exit do_fates_hist + end if + end do do_fates_hist + + if(.not.found)then + write(iulog,*) 'the history field: ',trim(fincl_name) + write(iulog,*) 'was requested in the namelist, but was' + write(iulog,*) 'not found in the list of fates_hist%hvars.' + write(iulog,*) 'Most likely, this is because this history variable' + write(iulog,*) 'was specified in the user namelist, but the user' + write(iulog,*) 'specified a FATES history output density level' + write(iulog,*) 'that does not contain that variable in its valid set.' + write(iulog,*) 'You may have to increase the namelist setting: fates_hist_dens_level' + write(iulog,*) 'current fates_hist_dens_level: ',hlm_hist_dens_level + call endrun(msg=errMsg(sourcefile, __LINE__)) + end if + end if + f = f + 1 + end do search_fields + end do + + end subroutine CrossRefHistoryFields + + ! =================================================================================== subroutine CLMFatesTimesteps() From 0e0c6c15a1638f1bfb7c5deb7280b2a61e5ab54f Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Mon, 6 Nov 2023 13:28:43 -0500 Subject: [PATCH 04/30] changed nl argument to text --- src/main/clm_varctl.F90 | 12 +++++++++--- src/utils/clmfates_interfaceMod.F90 | 7 +++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index 7c5537d698..4f0665339f 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -309,13 +309,19 @@ module clm_varctl logical, public :: use_fates_fixed_biogeog = .false. ! true => use fixed biogeography mode logical, public :: use_fates_nocomp = .false. ! true => use no comopetition mode - ! History density level + ! FATES history density level ! fates can produce history at either the daily timescale (dynamics) ! and the model step timescale. It can also generate output on the extra dimension ! Performing this output can be expensive, so we allow different history density - ! levels + ! levels. + ! The first index is output at the model timescale + ! The second index is output at the dynamics (daily) timescale + ! 0 - no output + ! 1 - include only column level means + ! 2 - include only output with only 1 additional dimension + ! 3 - include all multiplexed dimensions - logical, public :: fates_hist_dense_level = 1 ! + character(len=2), public :: fates_hist_dense_level = '11' character(len=256), public :: fates_inventory_ctrl_filename = '' ! filename for inventory control diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index a30250040b..82f49211bf 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -65,6 +65,7 @@ module CLMFatesInterfaceMod use clm_varctl , only : fates_inventory_ctrl_filename use clm_varctl , only : use_nitrif_denitrif use clm_varctl , only : use_lch4 + use clm_varctl , only : fates_hist_dense_level use clm_varcon , only : tfrz use clm_varcon , only : spval use clm_varcon , only : denice @@ -391,6 +392,8 @@ subroutine CLMFatesGlobals2() call set_fates_ctrlparms('parteh_mode',ival=fates_parteh_mode) call set_fates_ctrlparms('seeddisp_cadence',ival=fates_seeddisp_cadence) + call set_fates_ctrlparms('hist_dense_level',cval=fates_hist_dense_level) + ! CTSM-FATES is not fully coupled (yet) ! So lets tell fates to use the RD competition mechanism ! which has fewer boundary conditions (simpler) @@ -595,8 +598,8 @@ subroutine CrossRefHistoryFields write(iulog,*) 'was specified in the user namelist, but the user' write(iulog,*) 'specified a FATES history output density level' write(iulog,*) 'that does not contain that variable in its valid set.' - write(iulog,*) 'You may have to increase the namelist setting: fates_hist_dens_level' - write(iulog,*) 'current fates_hist_dens_level: ',hlm_hist_dens_level + write(iulog,*) 'You may have to increase the namelist setting: fates_hist_dense_level' + write(iulog,*) 'current fates_hist_dens_level: ',hlm_hist_dense_level call endrun(msg=errMsg(sourcefile, __LINE__)) end if end if From 4bbe6fa0b584876cbdc90c2c55106a1d0514e3a2 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Thu, 30 Nov 2023 12:47:35 -0500 Subject: [PATCH 05/30] changed hist dense namelist to integer --- src/main/clm_varctl.F90 | 2 +- src/main/controlMod.F90 | 4 ++-- src/utils/clmfates_interfaceMod.F90 | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index 4f0665339f..7ba6a05b64 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -321,7 +321,7 @@ module clm_varctl ! 2 - include only output with only 1 additional dimension ! 3 - include all multiplexed dimensions - character(len=2), public :: fates_hist_dense_level = '11' + integer, dimension(2), public :: fates_hist_dense_level = (/1,1/) character(len=256), public :: fates_inventory_ctrl_filename = '' ! filename for inventory control diff --git a/src/main/controlMod.F90 b/src/main/controlMod.F90 index 5937e55b04..e80b68de32 100644 --- a/src/main/controlMod.F90 +++ b/src/main/controlMod.F90 @@ -232,7 +232,7 @@ subroutine control_init(dtime) fates_inventory_ctrl_filename, & fates_parteh_mode, & fates_seeddisp_cadence, & - use_fates_tree_damage + use_fates_tree_damage, fates_hist_dense_level ! Ozone vegetation stress method namelist / clm_inparm / o3_veg_stress_method @@ -487,7 +487,7 @@ subroutine control_init(dtime) call endrun(msg=' ERROR: C13 and C14 dynamics are not compatible with FATES.'//& errMsg(sourcefile, __LINE__)) end if - + else ! These do default to false anyway, but this emphasizes they diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index 29f76ba86d..43cf249ff5 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -392,7 +392,8 @@ subroutine CLMFatesGlobals2() call set_fates_ctrlparms('parteh_mode',ival=fates_parteh_mode) call set_fates_ctrlparms('seeddisp_cadence',ival=fates_seeddisp_cadence) - call set_fates_ctrlparms('hist_dense_level',cval=fates_hist_dense_level) + call set_fates_ctrlparms('hist_hifrq_dense_level',ival=fates_hist_dense_level(1)) + call set_fates_ctrlparms('hist_dynam_dense_level',ival=fates_hist_dense_level(2)) ! CTSM-FATES is not fully coupled (yet) ! So lets tell fates to use the RD competition mechanism From 4ea5c21c139b3b79256c2abcdb03099b5cd10342 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Thu, 25 Jan 2024 12:22:18 -0500 Subject: [PATCH 06/30] fates history density work --- bld/CLMBuildNamelist.pm | 6 ++- bld/namelist_files/namelist_defaults_ctsm.xml | 2 +- .../namelist_definition_ctsm.xml | 13 +++++ src/main/clm_varctl.F90 | 1 - src/utils/clmfates_interfaceMod.F90 | 49 +++++++++++++------ 5 files changed, 51 insertions(+), 20 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 17c46f9bef..efa96a7f39 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -784,7 +784,8 @@ sub setup_cmdl_fates_mode { my @list = ( "fates_spitfire_mode", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", "use_fates_cohort_age_tracking","use_fates_inventory_init","use_fates_fixed_biogeog", "use_fates_nocomp","use_fates_sp","fates_inventory_ctrl_filename","use_fates_logging", - "fates_parteh_mode","use_fates_tree_damage","fates_seeddisp_cadence","use_fates_luh","fluh_timeseries" ); + "fates_parteh_mode","use_fates_tree_damage","fates_hist_dense_level","fates_seeddisp_cadence", + "use_fates_luh","fluh_timeseries" ); # dis-allow fates specific namelist items with non-fates runs foreach my $var ( @list ) { if ( defined($nl->get_value($var)) ) { @@ -4391,7 +4392,8 @@ sub setup_logic_fates { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'fates_paramfile', 'phys'=>$nl_flags->{'phys'}); my @list = ( "fates_spitfire_mode", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", "use_fates_inventory_init","use_fates_fixed_biogeog","use_fates_nocomp","fates_seeddisp_cadence", - "use_fates_logging","fates_parteh_mode", "use_fates_cohort_age_tracking","use_fates_tree_damage","use_fates_luh" ); + "use_fates_logging","fates_parteh_mode", "use_fates_cohort_age_tracking","use_fates_tree_damage", + "use_fates_luh","fates_hist_dense_level" ); foreach my $var ( @list ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'use_fates'=>$nl_flags->{'use_fates'}, 'use_fates_sp'=>$nl_flags->{'use_fates_sp'} ); diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index 456d99ac2a..074a1e325e 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -2769,7 +2769,7 @@ use_crop=".true.">lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa1 .false. 1 0 - +1,1 .true. .false. .true. diff --git a/bld/namelist_files/namelist_definition_ctsm.xml b/bld/namelist_files/namelist_definition_ctsm.xml index 3e3735b903..2f6b5bd1e3 100644 --- a/bld/namelist_files/namelist_definition_ctsm.xml +++ b/bld/namelist_files/namelist_definition_ctsm.xml @@ -777,6 +777,19 @@ Full pathname to the inventory initialization control file. (Only relevant if FATES is on). + + Setting for what types of FATES history to be allocate and + calculated at the dynamics timestep (1st integer) and the + model timestep (2nd integer). This must be consistent with + hist_fincl*, ie output variables must not be listed if the + output level is not enabled. + 0 = no fates history variables are calculated or allocated + 1 = only time x space (3d) fates history variables allowed + 2 = multiplexed dimensioned fates history is also allowed + (Only relevant if FATES is on) + + diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index 07c309b8cc..ad37d0a224 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -330,7 +330,6 @@ module clm_varctl logical, public :: use_fates_luh = .false. ! true => use FATES landuse data mode character(len=256), public :: fluh_timeseries = '' ! filename for fates landuse timeseries data - character(len=256), public :: fates_inventory_ctrl_filename = '' ! filename for inventory control ! FATES SP AND FATES BGC are MUTUTALLY EXCLUSIVE, THEY CAN'T BOTH BE ON diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index 53bfd6b9ba..ef91662f53 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -134,7 +134,7 @@ module CLMFatesInterfaceMod use FatesParametersInterface, only : fates_parameters_type use FatesInterfaceMod , only : DetermineGridCellNeighbors - + use FatesIOVariableKindMod, only : group_dyna_simple, group_dyna_complx use FatesHistoryInterfaceMod, only : fates_hist use FatesRestartInterfaceMod, only : fates_restart_interface_type @@ -1191,9 +1191,9 @@ subroutine dynamics_driv(this, nc, bounds_clump, & ! Flush arrays to values defined by %flushval (see registry entry in ! subroutine define_history_vars() ! --------------------------------------------------------------------------------- - call fates_hist%flush_hvars(nc,upfreq_in=1) + call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_simple) - call fates_hist%flush_hvars(nc,upfreq_in=5) + call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_complx) ! --------------------------------------------------------------------------------- ! Part II: Call the FATES model now that input boundary conditions have been @@ -1968,11 +1968,20 @@ subroutine restart( this, bounds_proc, ncid, flag, waterdiagnosticbulk_inst, & ! ------------------------------------------------------------------------ ! Update history IO fields that depend on ecosystem dynamics ! ------------------------------------------------------------------------ - call fates_hist%flush_hvars(nc,upfreq_in=1) - do s = 1,this%fates(nc)%nsites - call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & - upfreq_in=1) - end do + if(fates_hist_dense_level(2)>0) then + call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_simple) + do s = 1,this%fates(nc)%nsites + call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & + upfreq_in=group_dyna_simple) + end do + if(fates_hist_dense_level(2)>1) then + call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_complx) + do s = 1,this%fates(nc)%nsites + call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & + upfreq_in=group_dyna_complx) + end do + end if + end if call fates_hist%update_history_dyn( nc, & this%fates(nc)%nsites, & this%fates(nc)%sites, & @@ -2152,18 +2161,25 @@ subroutine init_coldstart(this, waterstatebulk_inst, waterdiagnosticbulk_inst, & ! ------------------------------------------------------------------------ ! Update history IO fields that depend on ecosystem dynamics ! ------------------------------------------------------------------------ - call fates_hist%flush_hvars(nc,upfreq_in=1) - do s = 1,this%fates(nc)%nsites - call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & - upfreq_in=1) - end do - call fates_hist%update_history_dyn( nc, & + if(fates_hist_dense_level(2)>0) then + call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_simple) + do s = 1,this%fates(nc)%nsites + call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & + upfreq_in=group_dyna_simple) + end do + if(fates_hist_dense_level(2)>1) then + call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_complx) + do s = 1,this%fates(nc)%nsites + call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & + upfreq_in=group_dyna_complx) + end do + end if + end if + call fates_hist%update_history_dyn( nc, & this%fates(nc)%nsites, & this%fates(nc)%sites, & this%fates(nc)%bc_in) - - end if end do !$OMP END PARALLEL DO @@ -2970,6 +2986,7 @@ subroutine wrap_update_hifrq_hist(this, bounds_clump, & this%fates(nc)%nsites, & this%fates(nc)%sites, & this%fates(nc)%bc_in, & + this%fates(nc)%bc_out, & dtime) end associate From a826ce94fad9a0c24470e422205c8324ce8e00b5 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Fri, 26 Jan 2024 10:36:03 -0700 Subject: [PATCH 07/30] Changed default namelist density to level 2, which preserves b4b --- bld/namelist_files/namelist_defaults_ctsm.xml | 2 +- src/utils/clmfates_interfaceMod.F90 | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index 074a1e325e..a033f35d26 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -2769,7 +2769,7 @@ use_crop=".true.">lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa1 .false. 1 0 -1,1 +2,2 .true. .false. .true. diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index ef91662f53..dc80be5c32 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -408,6 +408,7 @@ subroutine CLMFatesGlobals2() call set_fates_ctrlparms('parteh_mode',ival=fates_parteh_mode) call set_fates_ctrlparms('seeddisp_cadence',ival=fates_seeddisp_cadence) + call set_fates_ctrlparms('hist_hifrq_dense_level',ival=fates_hist_dense_level(1)) call set_fates_ctrlparms('hist_dynam_dense_level',ival=fates_hist_dense_level(2)) From cd289a1c7d62ac7da8b3b8bae5bcab97ac295254 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Tue, 30 Jan 2024 10:38:53 -0700 Subject: [PATCH 08/30] bcasting fates history density level --- src/main/controlMod.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/controlMod.F90 b/src/main/controlMod.F90 index 89608c9667..37381e92f3 100644 --- a/src/main/controlMod.F90 +++ b/src/main/controlMod.F90 @@ -790,6 +790,7 @@ subroutine control_spmd() call mpi_bcast (fluh_timeseries, len(fluh_timeseries) , MPI_CHARACTER, 0, mpicom, ier) call mpi_bcast (fates_parteh_mode, 1, MPI_INTEGER, 0, mpicom, ier) call mpi_bcast (fates_seeddisp_cadence, 1, MPI_INTEGER, 0, mpicom, ier) + call mpi_bcast (fates_hist_dense_level, 2, MPI_INTEGER, 0, mpicom, ier) ! flexibleCN nitrogen model call mpi_bcast (use_flexibleCN, 1, MPI_LOGICAL, 0, mpicom, ier) From 63d251248c34a9c8c7516a87e86e6d87ac9e8c17 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Wed, 31 Jan 2024 10:15:20 -0700 Subject: [PATCH 09/30] Setting fates hist density default to 2 until we roll out new tests --- src/main/clm_varctl.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index ad37d0a224..4e1286b25f 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -326,7 +326,7 @@ module clm_varctl ! 2 - include only output with only 1 additional dimension ! 3 - include all multiplexed dimensions - integer, dimension(2), public :: fates_hist_dense_level = (/1,1/) + integer, dimension(2), public :: fates_hist_dense_level = (/2,2/) logical, public :: use_fates_luh = .false. ! true => use FATES landuse data mode character(len=256), public :: fluh_timeseries = '' ! filename for fates landuse timeseries data From 204d6d043ad048eeef69ad4c91661edb5dc1cec6 Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Thu, 1 Feb 2024 11:20:15 -0700 Subject: [PATCH 10/30] New history fields for coupler history verification (default inactive) --- src/biogeophys/Wateratm2lndType.F90 | 5 ++ src/main/atm2lndType.F90 | 101 ++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) diff --git a/src/biogeophys/Wateratm2lndType.F90 b/src/biogeophys/Wateratm2lndType.F90 index 44fe39e58d..18e92c78f7 100644 --- a/src/biogeophys/Wateratm2lndType.F90 +++ b/src/biogeophys/Wateratm2lndType.F90 @@ -171,6 +171,11 @@ subroutine InitHistory(this, bounds) avgflag='A', long_name=this%info%lname('atmospheric specific humidity (downscaled to columns in glacier regions)'), & ptr_col=this%forc_q_downscaled_col, default='inactive') + this%forc_q_not_downscaled_grc(begg:endg) = spval + call hist_addfld1d (fname=this%info%fname('QBOT_NOT_DOWNSCALED'), units='kg/kg', & + avgflag='A', long_name=this%info%lname('atmospheric specific humidity (pre-downscaling)'), & + ptr_lnd=this%forc_q_not_downscaled_grc, default='inactive') + this%forc_flood_grc(begg:endg) = spval call hist_addfld1d (fname=this%info%fname('QFLOOD'), units='mm/s', & avgflag='A', long_name=this%info%lname('runoff from river flooding'), & diff --git a/src/main/atm2lndType.F90 b/src/main/atm2lndType.F90 index 53013caf24..9dfe7bd92c 100644 --- a/src/main/atm2lndType.F90 +++ b/src/main/atm2lndType.F90 @@ -530,6 +530,7 @@ subroutine InitHistory(this, bounds) integer :: begg, endg integer :: begc, endc integer :: begp, endp + real(r8), pointer :: data1dptr(:) ! temp. pointer for slicing larger arrays !--------------------------------------------------------------------- begg = bounds%begg; endg= bounds%endg @@ -545,6 +546,16 @@ subroutine InitHistory(this, bounds) avgflag='A', long_name='atmospheric wind velocity magnitude', & ptr_gcell=this%forc_wind_grc, default = 'inactive') + this%forc_u_grc(begg:endg) = spval + call hist_addfld1d (fname='UWIND', units='m/s', & + avgflag='A', long_name='atmospheric U wind velocity magnitude', & + ptr_lnd=this%forc_u_grc, default = 'inactive') + + this%forc_v_grc(begg:endg) = spval + call hist_addfld1d (fname='VWIND', units='m/s', & + avgflag='A', long_name='atmospheric V wind velocity magnitude', & + ptr_lnd=this%forc_v_grc, default = 'inactive') + this%forc_hgt_grc(begg:endg) = spval call hist_addfld1d (fname='ZBOT', units='m', & avgflag='A', long_name='atmospheric reference height', & @@ -602,6 +613,11 @@ subroutine InitHistory(this, bounds) avgflag='A', long_name='atmospheric pressure at surface (downscaled to columns in glacier regions)', & ptr_col=this%forc_pbot_downscaled_col, default='inactive') + this%forc_pbot_not_downscaled_grc(begg:endg) = spval + call hist_addfld1d (fname='PBOT_NOT_DOWNSCALED', units='Pa', & + avgflag='A', long_name='atmospheric pressure at surface (pre-downscaling)', & + ptr_gcell=this%forc_pbot_not_downscaled_grc, default = 'inactive') + this%forc_lwrad_downscaled_col(begc:endc) = spval call hist_addfld1d (fname='FLDS', units='W/m^2', & avgflag='A', long_name='atmospheric longwave radiation (downscaled to columns in glacier regions)', & @@ -610,6 +626,11 @@ subroutine InitHistory(this, bounds) avgflag='A', long_name='atmospheric longwave radiation (downscaled to columns in glacier regions)', & ptr_col=this%forc_lwrad_downscaled_col, default='inactive') + this%forc_lwrad_not_downscaled_grc(begg:endg) = spval + call hist_addfld1d (fname='FLDS_NOT_DOWNSCALED', units='W/m^2', & + avgflag='A', long_name='atmospheric longwave radiation (pre-downscaling)', & + ptr_gcell=this%forc_lwrad_not_downscaled_grc, default = 'inactive') + call hist_addfld1d (fname='FLDS_ICE', units='W/m^2', & avgflag='A', & long_name='atmospheric longwave radiation (downscaled to columns in glacier regions) (ice landunits only)', & @@ -621,6 +642,86 @@ subroutine InitHistory(this, bounds) avgflag='A', long_name='atmospheric air potential temperature (downscaled to columns in glacier regions)', & ptr_col=this%forc_th_downscaled_col) + this%forc_th_not_downscaled_grc(begg:endg) = spval + call hist_addfld1d (fname='Thair_from_atm', units='K', & + avgflag='A', long_name='atmospheric air potential temperature (pre-downscaling)', & + ptr_gcell=this%forc_th_not_downscaled_grc, default = 'inactive') + + this%forc_rho_not_downscaled_grc(begg:endg) = spval + call hist_addfld1d (fname='Rho_from_atm', units='kg/m^3', & + avgflag='A', long_name='atmospheric density (pre-downscaling)', & + ptr_gcell=this%forc_rho_not_downscaled_grc, default = 'inactive') + + this%forc_aer_grc(begg:endg,:) = spval + data1dptr => this%forc_aer_grc(begg:endg,1) + call hist_addfld1d (fname='BCPHIDRY', units='kg/m^2/s', & + avgflag='A', long_name='black carbon deposition (phidry) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,2) + call hist_addfld1d (fname='BCPHODRY', units='kg/m^2/s', & + avgflag='A', long_name='black carbon deposition (phodry) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,3) + call hist_addfld1d (fname='BCPHIWET', units='kg/m^2/s', & + avgflag='A', long_name='black carbon deposition (phiwet) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,4) + call hist_addfld1d (fname='OCPHIDRY', units='kg/m^2/s', & + avgflag='A', long_name='organic carbon deposition (phidry) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,5) + call hist_addfld1d (fname='OCPHODRY', units='kg/m^2/s', & + avgflag='A', long_name='black carbon deposition (phodry) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,6) + call hist_addfld1d (fname='OCPHIWET', units='kg/m^2/s', & + avgflag='A', long_name='organic carbon deposition (phiwet) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,7) + call hist_addfld1d (fname='DSTWET1', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (wet1) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,8) + call hist_addfld1d (fname='DSTDRY1', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (dry1) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,9) + call hist_addfld1d (fname='DSTWET2', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (wet2) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,10) + call hist_addfld1d (fname='DSTDRY2', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (dry2) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,11) + call hist_addfld1d (fname='DSTWET3', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (wet3) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,12) + call hist_addfld1d (fname='DSTDRY3', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (dry3) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,13) + call hist_addfld1d (fname='DSTWET4', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (wet4) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') + + data1dptr => this%forc_aer_grc(begg:endg,14) + call hist_addfld1d (fname='DSTDRY4', units='kg/m^2/s', & + avgflag='A', long_name='dust deposition (dry4) from atmosphere', & + ptr_gcell=data1dptr, default = 'inactive') ! Time averaged quantities this%fsi24_patch(begp:endp) = spval From ebb9f3e2a30085a89f93556d08c3d353b0bda1ab Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Thu, 1 Feb 2024 12:44:57 -0700 Subject: [PATCH 11/30] New parameter file and namelist values for clm5_1 --- bld/namelist_files/namelist_defaults_ctsm.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index d5d8bc08eb..bea8f56427 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -441,7 +441,9 @@ attributes from the config_cache.xml file (with keys converted to upper-case). 1.e9 SwensonLawrence2012 + Jordan1991 +Sturm1997 -lnd/clm2/paramdata/ctsm51_params.c240105.nc +/glade/campaign/cgd/tss/people/oleson/modify_param/ctsm51_params.c240201.nc lnd/clm2/paramdata/clm50_params.c240105.nc lnd/clm2/paramdata/clm45_params.c240105.nc @@ -1625,7 +1627,8 @@ use_crop=".true.">lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa1 mid_latitude_winter sahara .false. -.false. +.false. +.true. .true. .false. From 923d05d1d1f96406e14e16f92e4e5243e82f526e Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Thu, 1 Feb 2024 13:15:19 -0700 Subject: [PATCH 12/30] Remove flg_snoage_scl in SNICAR such that xdrdt can have an effect --- src/biogeophys/SnowSnicarMod.F90 | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/biogeophys/SnowSnicarMod.F90 b/src/biogeophys/SnowSnicarMod.F90 index 5bc1c61edb..f6d41bd6a0 100644 --- a/src/biogeophys/SnowSnicarMod.F90 +++ b/src/biogeophys/SnowSnicarMod.F90 @@ -81,9 +81,6 @@ module SnowSnicarMod real(r8), parameter :: tim_cns_dst_rmv = 2.2E-8_r8 ! time constant for removal of dust in snow on sea-ice ! [s-1] (50% mass removal/year) - ! scaling of the snow aging rate (tuning option): - logical :: flg_snoage_scl = .false. ! flag for scaling the snow aging rate by some arbitrary factor - ! snow and aerosol Mie parameters: ! (arrays declared here, but are set in iniTimeConst) ! (idx_Mie_snw_mx is number of snow radii with defined parameters (i.e. from 30um to 1500um)) @@ -1656,13 +1653,10 @@ subroutine SnowAge_grain(bounds, & dr = dr + dr_wet ! - !********** 3. SNOWAGE SCALING (TURNED OFF BY DEFAULT) ************* + !********** 3. SNOWAGE SCALING ************* ! ! Multiply rate of change of effective radius by some constant, xdrdt - if (flg_snoage_scl) then - dr = dr*params_inst%xdrdt - endif - + dr = dr*params_inst%xdrdt ! !********** 4. INCREMENT EFFECTIVE RADIUS, ACCOUNTING FOR: *********** From 0dd297af5997fd3686280587bbc9f5205d7148a1 Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Thu, 1 Feb 2024 13:17:53 -0700 Subject: [PATCH 13/30] Remove snicar_snobc_intmix from EXPERIMENTAL endrun (allow it to be true) --- src/main/controlMod.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/controlMod.F90 b/src/main/controlMod.F90 index d95c0e28e0..dc533209c6 100644 --- a/src/main/controlMod.F90 +++ b/src/main/controlMod.F90 @@ -629,7 +629,7 @@ subroutine control_init(dtime) snicar_solarspec /= 'mid_latitude_winter' .or. & snicar_dust_optics /= 'sahara' .or. & snicar_numrad_snw /= 5 .or. & - snicar_snobc_intmix .or. snicar_snodst_intmix .or. & + snicar_snodst_intmix .or. & .not. snicar_use_aerosol .or. & do_sno_oc) then call endrun(msg=' ERROR: You have selected an option that is EXPERIMENTAL, UNSUPPORTED, and UNTESTED. For guidance see namelist_defaults_ctsm.xml'//& From 0178f403c7d99def07401c634d26233f31ca8548 Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Tue, 6 Feb 2024 11:21:29 -0700 Subject: [PATCH 14/30] Remove snicar_snobc_intmix from CLMBuildNamelist.pm warning --- bld/CLMBuildNamelist.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index dae7b5f7f0..98ababdd58 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -2036,7 +2036,7 @@ sub setup_logic_snicar_methods { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, 'do_sno_oc' ); # Error checking in loop - my %supportedSettings = ( 'snicar_solarspec' => "'mid_latitude_winter'", 'snicar_dust_optics' => "'sahara'", 'snicar_numrad_snw' => '5', 'snicar_snobc_intmix' => '.false.', 'snicar_snodst_intmix' => '.false.', 'snicar_use_aerosol' => '.true.', 'do_sno_oc' => '.false.' ); + my %supportedSettings = ( 'snicar_solarspec' => "'mid_latitude_winter'", 'snicar_dust_optics' => "'sahara'", 'snicar_numrad_snw' => '5', 'snicar_snodst_intmix' => '.false.', 'snicar_use_aerosol' => '.true.', 'do_sno_oc' => '.false.' ); keys %supportedSettings; while ( my ($key, $val) = each %supportedSettings ) { my $var = $nl->get_value($key); From 55f496dae893554a15477f6ef0d624f64dfaf4f1 Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Thu, 8 Feb 2024 08:31:57 -0700 Subject: [PATCH 15/30] Rework logic for snicar_snobc_intmix and snicar_snodst_intmix --- bld/CLMBuildNamelist.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index 98ababdd58..96b7aea796 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -2054,13 +2054,13 @@ sub setup_logic_snicar_methods { $log->warning("$key1=$val1a and $val1b are supported; $var1 is EXPERIMENTAL, UNSUPPORTED, and UNTESTED!"); } - # snicar_snobc_intmix and snicar_snodst_intmix cannot both be true + # snicar_snobc_intmix and snicar_snodst_intmix cannot both be true, however, they can both be false my $key1 = 'snicar_snobc_intmix'; my $key2 = 'snicar_snodst_intmix'; my $var1 = $nl->get_value($key1); my $var2 = $nl->get_value($key2); - my $val1 = $supportedSettings{$key1}; # supported value for this option - if (($var1 eq $var2) && ($var1 ne $val1)) { + my $val2 = $supportedSettings{$key2}; # supported value for this option + if (($var1 eq $var2) && ($var2 ne $val2)) { $log->warning("$key1 = $var1 and $key2 = $var2 do not work together!"); } } From cfdb29dc6dbe11648a4cb4ced796c612ac2c89e5 Mon Sep 17 00:00:00 2001 From: Keith Oleson Date: Thu, 8 Feb 2024 08:34:43 -0700 Subject: [PATCH 16/30] Move snow5d_thresh_for_onset to parameter files --- bld/namelist_files/namelist_defaults_ctsm.xml | 6 +++--- .../testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm | 2 +- src/biogeochem/CNPhenologyMod.F90 | 7 +++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index bea8f56427..a1229c2175 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -486,9 +486,9 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -/glade/campaign/cgd/tss/people/oleson/modify_param/ctsm51_params.c240201.nc -lnd/clm2/paramdata/clm50_params.c240105.nc -lnd/clm2/paramdata/clm45_params.c240105.nc +/glade/campaign/cgd/tss/people/oleson/modify_param/ctsm51_params.c240208.nc +/glade/campaign/cgd/tss/people/oleson/modify_param/clm50_params.c240208.nc +/glade/campaign/cgd/tss/people/oleson/modify_param/clm45_params.c240208.nc 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 4e073859be..2b8f437246 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.c240105.nc' +paramfile = '/glade/campaign/cgd/tss/people/oleson/modify_param/ctsm51_ciso_cwd_hr_params.c240208.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/src/biogeochem/CNPhenologyMod.F90 b/src/biogeochem/CNPhenologyMod.F90 index 05041527a7..fffb19bc46 100644 --- a/src/biogeochem/CNPhenologyMod.F90 +++ b/src/biogeochem/CNPhenologyMod.F90 @@ -97,6 +97,7 @@ module CNPhenologyMod real(r8) :: soilpsi_off ! critical soil water potential for leaf offset real(r8) :: lwtop ! live wood turnover proportion (annual fraction) real(r8) :: phenology_soil_depth ! soil depth used for measuring states for phenology triggers + real(r8) :: snow5d_thresh_for_onset ! 5-day snow depth threshold for leaf onset end type params_type type(params_type) :: params_inst @@ -280,6 +281,7 @@ subroutine CNPhenologySetParams( ) params_inst%soilpsi_off = -0.8 ! MPa params_inst%lwtop = 0.7_r8 ! Fraction params_inst%phenology_soil_depth = 0.08_r8 ! m + params_inst%snow5d_thresh_for_onset = 0.2_r8 ! m end subroutine CNPhenologySetParams !----------------------------------------------------------------------- @@ -313,6 +315,7 @@ subroutine readParams ( ncid ) call readNcdioScalar(ncid, 'soilpsi_off', subname, params_inst%soilpsi_off) call readNcdioScalar(ncid, 'lwtop_ann', subname, params_inst%lwtop) call readNcdioScalar(ncid, 'phenology_soil_depth', subname, params_inst%phenology_soil_depth) + call readNcdioScalar(ncid, 'snow5d_thresh_for_onset', subname, params_inst%snow5d_thresh_for_onset) end subroutine readParams @@ -1136,7 +1139,6 @@ function SeasonalDecidOnset( onset_gdd, onset_gddflag, soilt, soila10, t_a5min, logical :: do_onset ! Flag if onset should happen (return value) ! ! !LOCAL VARIABLES: - real(r8), parameter :: snow5d_thresh_for_onset = 0.1_r8 ! 5-day snow depth threshold for leaf onset real(r8), parameter :: min_critical_daylength_onset = 39300._r8/2._r8 ! Minimum daylength for onset to happen ! NOTE above: The 39300/2(19650) value is what we've ! tested with, we are concerned that changing @@ -1192,7 +1194,8 @@ function SeasonalDecidOnset( onset_gdd, onset_gddflag, soilt, soila10, t_a5min, else if (season_decid_temperate == 0 .and. onset_gddflag == 1.0_r8 .and. & soila10 > SHR_CONST_TKFRZ .and. & t_a5min > SHR_CONST_TKFRZ .and. ws_flag==1.0_r8 .and. & - dayl>min_critical_daylength_onset .and. snow_5daymin_critical_daylength_onset .and. & + snow_5day Date: Tue, 13 Feb 2024 14:09:44 -0700 Subject: [PATCH 17/30] update allvars --- .../clm/FatesColdAllVars/user_nl_clm | 122 ++++++++---------- 1 file changed, 51 insertions(+), 71 deletions(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm index 7f5ece27c8..3b8e9a12cc 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm @@ -4,74 +4,54 @@ hist_nhtfrq = -24 hist_empty_htapes = .false. fates_spitfire_mode = 1 hist_ndens = 1 -hist_fincl1 = 'FATES_CROWNAREA_PF', 'FATES_CANOPYCROWNAREA_PF', -'FATES_NCL_AP', 'FATES_NPATCH_AP', 'FATES_VEGC_AP', -'FATES_SECONDARY_FOREST_FRACTION', 'FATES_WOOD_PRODUCT', -'FATES_SECONDARY_FOREST_VEGC', 'FATES_SECONDAREA_ANTHRODIST_AP', -'FATES_SECONDAREA_DIST_AP', 'FATES_STOMATAL_COND_AP', 'FATES_LBLAYER_COND_AP', -'FATES_NPP_AP', 'FATES_GPP_AP', 'FATES_PARSUN_Z_CLLL', 'FATES_PARSHA_Z_CLLL', -'FATES_PARSUN_Z_CLLLPF', 'FATES_PARSHA_Z_CLLLPF', 'FATES_PARSUN_Z_CL', -'FATES_PARSHA_Z_CL', 'FATES_LAISUN_Z_CLLL', 'FATES_LAISHA_Z_CLLL', -'FATES_LAISUN_Z_CLLLPF', 'FATES_LAISHA_Z_CLLLPF', 'FATES_LAISUN_TOP_CL', -'FATES_LAISHA_TOP_CL', 'FATES_FABD_SUN_CLLLPF', 'FATES_FABD_SHA_CLLLPF', -'FATES_FABI_SUN_CLLLPF', 'FATES_FABI_SHA_CLLLPF', 'FATES_FABD_SUN_CLLL', -'FATES_FABD_SHA_CLLL', 'FATES_FABI_SUN_CLLL', 'FATES_FABI_SHA_CLLL', -'FATES_PARPROF_DIR_CLLLPF', 'FATES_PARPROF_DIF_CLLLPF', -'FATES_FABD_SUN_TOPLF_CL', -'FATES_FABD_SHA_TOPLF_CL', 'FATES_FABI_SUN_TOPLF_CL', 'FATES_FABI_SHA_TOPLF_CL', -'FATES_NET_C_UPTAKE_CLLL', 'FATES_CROWNAREA_CLLL', 'FATES_NPLANT_CANOPY_SZAP', -'FATES_NPLANT_USTORY_SZAP', 'FATES_DDBH_CANOPY_SZAP', 'FATES_DDBH_USTORY_SZAP', -'FATES_MORTALITY_CANOPY_SZAP', 'FATES_MORTALITY_USTORY_SZAP', -'FATES_NPLANT_SZAPPF', 'FATES_NPP_APPF', 'FATES_VEGC_APPF', 'FATES_GPP_SZPF', -'FATES_GPP_CANOPY_SZPF', 'FATES_AUTORESP_CANOPY_SZPF', 'FATES_GPP_USTORY_SZPF', -'FATES_AUTORESP_USTORY_SZPF', 'FATES_NPP_SZPF', 'FATES_LEAF_ALLOC_SZPF', -'FATES_SEED_ALLOC_SZPF', 'FATES_FROOT_ALLOC_SZPF', 'FATES_BGSAPWOOD_ALLOC_SZPF', -'FATES_BGSTRUCT_ALLOC_SZPF', 'FATES_AGSAPWOOD_ALLOC_SZPF', -'FATES_AGSTRUCT_ALLOC_SZPF', 'FATES_STORE_ALLOC_SZPF', 'FATES_DDBH_SZPF', -'FATES_GROWTHFLUX_SZPF', 'FATES_GROWTHFLUX_FUSION_SZPF', -'FATES_DDBH_CANOPY_SZPF', 'FATES_DDBH_USTORY_SZPF', 'FATES_BASALAREA_SZPF', -'FATES_VEGC_ABOVEGROUND_SZPF', 'FATES_NPLANT_SZPF', 'FATES_NPLANT_ACPF', -'FATES_MORTALITY_BACKGROUND_SZPF', 'FATES_MORTALITY_HYDRAULIC_SZPF', -'FATES_MORTALITY_CSTARV_SZPF', 'FATES_MORTALITY_IMPACT_SZPF', -'FATES_MORTALITY_FIRE_SZPF', 'FATES_MORTALITY_CROWNSCORCH_SZPF', -'FATES_MORTALITY_CAMBIALBURN_SZPF', 'FATES_MORTALITY_TERMINATION_SZPF', -'FATES_MORTALITY_LOGGING_SZPF', 'FATES_MORTALITY_FREEZING_SZPF', -'FATES_MORTALITY_SENESCENCE_SZPF', 'FATES_MORTALITY_AGESCEN_SZPF', -'FATES_MORTALITY_AGESCEN_ACPF', 'FATES_MORTALITY_CANOPY_SZPF', -'FATES_STOREC_CANOPY_SZPF', 'FATES_LEAFC_CANOPY_SZPF', -'FATES_NPLANT_CANOPY_SZPF', 'FATES_MORTALITY_USTORY_SZPF', -'FATES_STOREC_USTORY_SZPF', 'FATES_LEAFC_USTORY_SZPF', -'FATES_NPLANT_USTORY_SZPF', 'FATES_CWD_ABOVEGROUND_DC', -'FATES_CWD_BELOWGROUND_DC', 'FATES_CWD_ABOVEGROUND_IN_DC', -'FATES_CWD_BELOWGROUND_IN_DC', 'FATES_CWD_ABOVEGROUND_OUT_DC', -'FATES_CWD_BELOWGROUND_OUT_DC', 'FATES_AUTORESP_SZPF', 'FATES_GROWAR_SZPF', -'FATES_MAINTAR_SZPF', 'FATES_RDARK_SZPF', 'FATES_AGSAPMAINTAR_SZPF', -'FATES_BGSAPMAINTAR_SZPF', 'FATES_FROOTMAINTAR_SZPF', -'FATES_YESTCANLEV_CANOPY_SZ', 'FATES_YESTCANLEV_USTORY_SZ', -'FATES_VEGC_SZ', 'FATES_DEMOTION_RATE_SZ', 'FATES_PROMOTION_RATE_SZ', -'FATES_SAI_CANOPY_SZ', 'FATES_SAI_USTORY_SZ', 'FATES_NPP_CANOPY_SZ', -'FATES_NPP_USTORY_SZ', 'FATES_TRIMMING_CANOPY_SZ', 'FATES_TRIMMING_USTORY_SZ', -'FATES_CROWNAREA_CANOPY_SZ', 'FATES_CROWNAREA_USTORY_SZ', -'FATES_LEAFCTURN_CANOPY_SZ', 'FATES_FROOTCTURN_CANOPY_SZ', -'FATES_STORECTURN_CANOPY_SZ', 'FATES_STRUCTCTURN_CANOPY_SZ', -'FATES_SAPWOODCTURN_CANOPY_SZ', 'FATES_SEED_PROD_CANOPY_SZ', -'FATES_LEAF_ALLOC_CANOPY_SZ', 'FATES_FROOT_ALLOC_CANOPY_SZ', -'FATES_SAPWOOD_ALLOC_CANOPY_SZ', 'FATES_STRUCT_ALLOC_CANOPY_SZ', -'FATES_SEED_ALLOC_CANOPY_SZ', 'FATES_STORE_ALLOC_CANOPY_SZ', -'FATES_RDARK_CANOPY_SZ', 'FATES_LSTEMMAINTAR_CANOPY_SZ', -'FATES_CROOTMAINTAR_CANOPY_SZ', 'FATES_FROOTMAINTAR_CANOPY_SZ', -'FATES_GROWAR_CANOPY_SZ', 'FATES_MAINTAR_CANOPY_SZ', -'FATES_LEAFCTURN_USTORY_SZ', 'FATES_FROOTCTURN_USTORY_SZ', -'FATES_STORECTURN_USTORY_SZ', 'FATES_STRUCTCTURN_USTORY_SZ', -'FATES_SAPWOODCTURN_USTORY_SZ', 'FATES_SEED_PROD_USTORY_SZ', -'FATES_LEAF_ALLOC_USTORY_SZ', 'FATES_FROOT_ALLOC_USTORY_SZ', -'FATES_SAPWOOD_ALLOC_USTORY_SZ', 'FATES_STRUCT_ALLOC_USTORY_SZ', -'FATES_SEED_ALLOC_USTORY_SZ', 'FATES_STORE_ALLOC_USTORY_SZ', -'FATES_RDARK_USTORY_SZ', 'FATES_LSTEMMAINTAR_USTORY_SZ', -'FATES_CROOTMAINTAR_USTORY_SZ', 'FATES_FROOTMAINTAR_USTORY_SZ', -'FATES_GROWAR_USTORY_SZ', 'FATES_MAINTAR_USTORY_SZ', 'FATES_VEGC_SZPF', -'FATES_LEAFC_SZPF', 'FATES_FROOTC_SZPF', 'FATES_SAPWOODC_SZPF', -'FATES_STOREC_SZPF', 'FATES_REPROC_SZPF', 'FATES_DROUGHT_STATUS_PF', -'FATES_DAYSINCE_DROUGHTLEAFOFF_PF', 'FATES_DAYSINCE_DROUGHTLEAFON_PF', -'FATES_MEANLIQVOL_DROUGHTPHEN_PF', 'FATES_MEANSMP_DROUGHTPHEN_PF', -'FATES_ELONG_FACTOR_PF' +hist_fincl1 = 'FATES_TLONGTERM', +'FATES_TGROWTH','FATES_SEEDS_IN_GRIDCELL_PF','FATES_SEEDS_OUT_GRIDCELL_PF','FATES_NCL_AP', +'FATES_NPATCH_AP','FATES_VEGC_AP','FATES_SECONDAREA_ANTHRODIST_AP','FATES_SECONDAREA_DIST_AP', +'FATES_FUEL_AMOUNT_APFC','FATES_STOREC_TF_USTORY_SZPF','FATES_STOREC_TF_CANOPY_SZPF', +'FATES_CROWNAREA_CLLL','FATES_ABOVEGROUND_MORT_SZPF', +'FATES_ABOVEGROUND_PROD_SZPF','FATES_NPLANT_SZAP','FATES_NPLANT_CANOPY_SZAP', +'FATES_NPLANT_USTORY_SZAP','FATES_DDBH_CANOPY_SZAP','FATES_DDBH_USTORY_SZAP', +'FATES_MORTALITY_CANOPY_SZAP','FATES_MORTALITY_USTORY_SZAP','FATES_NPLANT_SZAPPF', +'FATES_NPP_APPF','FATES_VEGC_APPF','FATES_SCORCH_HEIGHT_APPF','FATES_GPP_SZPF', +'FATES_GPP_CANOPY_SZPF','FATES_AUTORESP_CANOPY_SZPF','FATES_GPP_USTORY_SZPF', +'FATES_AUTORESP_USTORY_SZPF','FATES_NPP_SZPF','FATES_LEAF_ALLOC_SZPF', +'FATES_SEED_ALLOC_SZPF','FATES_FROOT_ALLOC_SZPF','FATES_BGSAPWOOD_ALLOC_SZPF', +'FATES_BGSTRUCT_ALLOC_SZPF','FATES_AGSAPWOOD_ALLOC_SZPF','FATES_AGSTRUCT_ALLOC_SZPF', +'FATES_STORE_ALLOC_SZPF','FATES_DDBH_SZPF','FATES_GROWTHFLUX_SZPF','FATES_GROWTHFLUX_FUSION_SZPF', +'FATES_DDBH_CANOPY_SZPF','FATES_DDBH_USTORY_SZPF','FATES_BASALAREA_SZPF','FATES_VEGC_ABOVEGROUND_SZPF', +'FATES_NPLANT_SZPF','FATES_NPLANT_ACPF','FATES_MORTALITY_BACKGROUND_SZPF','FATES_MORTALITY_HYDRAULIC_SZPF', +'FATES_MORTALITY_CSTARV_SZPF','FATES_MORTALITY_IMPACT_SZPF','FATES_MORTALITY_FIRE_SZPF', +'FATES_MORTALITY_CROWNSCORCH_SZPF','FATES_MORTALITY_CAMBIALBURN_SZPF','FATES_MORTALITY_TERMINATION_SZPF', +'FATES_MORTALITY_LOGGING_SZPF','FATES_MORTALITY_FREEZING_SZPF','FATES_MORTALITY_SENESCENCE_SZPF', +'FATES_MORTALITY_AGESCEN_SZPF','FATES_MORTALITY_AGESCEN_ACPF','FATES_MORTALITY_CANOPY_SZPF', +'FATES_M3_MORTALITY_CANOPY_SZPF','FATES_M3_MORTALITY_USTORY_SZPF','FATES_C13DISC_SZPF', +'FATES_STOREC_CANOPY_SZPF','FATES_LEAFC_CANOPY_SZPF','FATES_LAI_CANOPY_SZPF','FATES_CROWNAREA_CANOPY_SZPF', +'FATES_CROWNAREA_USTORY_SZPF','FATES_NPLANT_CANOPY_SZPF','FATES_MORTALITY_USTORY_SZPF','FATES_STOREC_USTORY_SZPF', +'FATES_LEAFC_USTORY_SZPF','FATES_LAI_USTORY_SZPF','FATES_NPLANT_USTORY_SZPF','FATES_CWD_ABOVEGROUND_DC', +'FATES_CWD_BELOWGROUND_DC','FATES_CWD_ABOVEGROUND_IN_DC','FATES_CWD_BELOWGROUND_IN_DC', +'FATES_CWD_ABOVEGROUND_OUT_DC','FATES_CWD_BELOWGROUND_OUT_DC','FATES_YESTCANLEV_CANOPY_SZ', +'FATES_YESTCANLEV_USTORY_SZ','FATES_VEGC_SZ','FATES_DEMOTION_RATE_SZ','FATES_PROMOTION_RATE_SZ', +'FATES_SAI_CANOPY_SZ','FATES_M3_MORTALITY_CANOPY_SZ','FATES_M3_MORTALITY_USTORY_SZ','FATES_SAI_USTORY_SZ', +'FATES_NPP_CANOPY_SZ','FATES_NPP_USTORY_SZ','FATES_TRIMMING_CANOPY_SZ','FATES_TRIMMING_USTORY_SZ', +'FATES_CROWNAREA_CANOPY_SZ','FATES_CROWNAREA_USTORY_SZ','FATES_LEAFCTURN_CANOPY_SZ','FATES_FROOTCTURN_CANOPY_SZ', +'FATES_STORECTURN_CANOPY_SZ','FATES_STRUCTCTURN_CANOPY_SZ','FATES_SAPWOODCTURN_CANOPY_SZ','FATES_SEED_PROD_CANOPY_SZ', +'FATES_LEAF_ALLOC_CANOPY_SZ','FATES_FROOT_ALLOC_CANOPY_SZ','FATES_SAPWOOD_ALLOC_CANOPY_SZ','FATES_STRUCT_ALLOC_CANOPY_SZ', +'FATES_SEED_ALLOC_CANOPY_SZ','FATES_STORE_ALLOC_CANOPY_SZ','FATES_LEAFCTURN_USTORY_SZ','FATES_FROOTCTURN_USTORY_SZ', +'FATES_STORECTURN_USTORY_SZ','FATES_STRUCTCTURN_USTORY_SZ','FATES_SAPWOODCTURN_USTORY_SZ', +'FATES_SEED_PROD_USTORY_SZ','FATES_LEAF_ALLOC_USTORY_SZ','FATES_FROOT_ALLOC_USTORY_SZ','FATES_SAPWOOD_ALLOC_USTORY_SZ', +'FATES_STRUCT_ALLOC_USTORY_SZ','FATES_SEED_ALLOC_USTORY_SZ','FATES_STORE_ALLOC_USTORY_SZ','FATES_CROWNAREA_CANOPY_CD', +'FATES_CROWNAREA_USTORY_CD','FATES_NPLANT_CDPF','FATES_NPLANT_CANOPY_CDPF','FATES_NPLANT_USTORY_CDPF', +'FATES_M3_CDPF','FATES_M11_SZPF','FATES_M11_CDPF','FATES_MORTALITY_CDPF','FATES_M3_MORTALITY_CANOPY_CDPF', +'FATES_M3_MORTALITY_USTORY_CDPF','FATES_M11_MORTALITY_CANOPY_CDPF','FATES_M11_MORTALITY_USTORY_CDPF', +'FATES_MORTALITY_CANOPY_CDPF','FATES_MORTALITY_USTORY_CDPF','FATES_DDBH_CDPF','FATES_DDBH_CANOPY_CDPF', +'FATES_DDBH_USTORY_CDPF','FATES_VEGC_SZPF','FATES_LEAFC_SZPF','FATES_FROOTC_SZPF','FATES_SAPWOODC_SZPF', +'FATES_STOREC_SZPF','FATES_REPROC_SZPF','FATES_NPP_AP','FATES_GPP_AP','FATES_RDARK_USTORY_SZ', +'FATES_LSTEMMAINTAR_USTORY_SZ','FATES_CROOTMAINTAR_USTORY_SZ','FATES_FROOTMAINTAR_USTORY_SZ','FATES_GROWAR_USTORY_SZ', +'FATES_MAINTAR_USTORY_SZ','FATES_RDARK_CANOPY_SZ','FATES_CROOTMAINTAR_CANOPY_SZ','FATES_FROOTMAINTAR_CANOPY_SZ', +'FATES_GROWAR_CANOPY_SZ','FATES_MAINTAR_CANOPY_SZ','FATES_LSTEMMAINTAR_CANOPY_SZ','FATES_AUTORESP_SZPF', +'FATES_GROWAR_SZPF','FATES_MAINTAR_SZPF','FATES_RDARK_SZPF','FATES_AGSAPMAINTAR_SZPF','FATES_BGSAPMAINTAR_SZPF', +'FATES_FROOTMAINTAR_SZPF','FATES_PARSUN_CLLL','FATES_PARSHA_CLLL','FATES_PARSUN_CLLLPF','FATES_PARSHA_CLLLPF', +'FATES_PARSUN_CL','FATES_PARSHA_CL','FATES_LAISUN_CLLL','FATES_LAISHA_CLLL','FATES_LAISUN_CLLLPF', +'FATES_LAISHA_CLLLPF','FATES_PARPROF_DIR_CLLLPF','FATES_PARPROF_DIF_CLLLPF','FATES_LAISUN_CL','FATES_LAISHA_CL', +'FATES_PARPROF_DIR_CLLL','FATES_PARPROF_DIF_CLLL','FATES_NET_C_UPTAKE_CLLL','FATES_CROWNFRAC_CLLLPF', +'FATES_LBLAYER_COND_AP','FATES_STOMATAL_COND_AP' From a22a01b50a562890f69e270ecf72b969765f4b19 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Wed, 28 Feb 2024 12:39:02 -0500 Subject: [PATCH 18/30] Updated namelist naming convention: from density to dimension for fates_history_dimlevel --- bld/CLMBuildNamelist.pm | 4 ++-- bld/namelist_files/namelist_defaults_ctsm.xml | 2 +- .../namelist_definition_ctsm.xml | 2 +- src/main/clm_varctl.F90 | 11 +++++----- src/main/controlMod.F90 | 4 ++-- src/utils/clmfates_interfaceMod.F90 | 20 +++++++++---------- 6 files changed, 21 insertions(+), 22 deletions(-) diff --git a/bld/CLMBuildNamelist.pm b/bld/CLMBuildNamelist.pm index b946200c35..78db55fcd4 100755 --- a/bld/CLMBuildNamelist.pm +++ b/bld/CLMBuildNamelist.pm @@ -784,7 +784,7 @@ sub setup_cmdl_fates_mode { my @list = ( "fates_spitfire_mode", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", "use_fates_cohort_age_tracking","use_fates_inventory_init","use_fates_fixed_biogeog", "use_fates_nocomp","use_fates_sp","fates_inventory_ctrl_filename","use_fates_logging", - "fates_parteh_mode","use_fates_tree_damage","fates_hist_dense_level","fates_seeddisp_cadence", + "fates_parteh_mode","use_fates_tree_damage","fates_history_dimlevel","fates_seeddisp_cadence", "use_fates_luh","fluh_timeseries" ); # dis-allow fates specific namelist items with non-fates runs foreach my $var ( @list ) { @@ -4417,7 +4417,7 @@ sub setup_logic_fates { my @list = ( "fates_spitfire_mode", "use_fates_planthydro", "use_fates_ed_st3", "use_fates_ed_prescribed_phys", "use_fates_inventory_init","use_fates_fixed_biogeog","use_fates_nocomp","fates_seeddisp_cadence", "use_fates_logging","fates_parteh_mode", "use_fates_cohort_age_tracking","use_fates_tree_damage", - "use_fates_luh","fates_hist_dense_level" ); + "use_fates_luh","fates_history_dimlevel" ); foreach my $var ( @list ) { add_default($opts, $nl_flags->{'inputdata_rootdir'}, $definition, $defaults, $nl, $var, 'use_fates'=>$nl_flags->{'use_fates'}, 'use_fates_sp'=>$nl_flags->{'use_fates_sp'} ); diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index cf953a7b82..cb9b43cfe1 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -2771,7 +2771,7 @@ use_crop=".true.">lnd/clm2/surfdata_map/ctsm5.1.dev052/landuse.timeseries_mpasa1 .false. 1 0 -2,2 +2,2 .true. .false. .true. diff --git a/bld/namelist_files/namelist_definition_ctsm.xml b/bld/namelist_files/namelist_definition_ctsm.xml index 2f6b5bd1e3..c29de327c7 100644 --- a/bld/namelist_files/namelist_definition_ctsm.xml +++ b/bld/namelist_files/namelist_definition_ctsm.xml @@ -777,7 +777,7 @@ Full pathname to the inventory initialization control file. (Only relevant if FATES is on). - Setting for what types of FATES history to be allocate and calculated at the dynamics timestep (1st integer) and the diff --git a/src/main/clm_varctl.F90 b/src/main/clm_varctl.F90 index 4e1286b25f..e932fdc6fb 100644 --- a/src/main/clm_varctl.F90 +++ b/src/main/clm_varctl.F90 @@ -314,19 +314,18 @@ module clm_varctl logical, public :: use_fates_fixed_biogeog = .false. ! true => use fixed biogeography mode logical, public :: use_fates_nocomp = .false. ! true => use no comopetition mode - ! FATES history density level + ! FATES history dimension level ! fates can produce history at either the daily timescale (dynamics) ! and the model step timescale. It can also generate output on the extra dimension - ! Performing this output can be expensive, so we allow different history density + ! Performing this output can be expensive, so we allow different history dimension ! levels. ! The first index is output at the model timescale ! The second index is output at the dynamics (daily) timescale ! 0 - no output - ! 1 - include only column level means - ! 2 - include only output with only 1 additional dimension - ! 3 - include all multiplexed dimensions + ! 1 - include only column level means (3D) + ! 2 - include output that includes the 4th dimension - integer, dimension(2), public :: fates_hist_dense_level = (/2,2/) + integer, dimension(2), public :: fates_history_dimlevel = (/2,2/) logical, public :: use_fates_luh = .false. ! true => use FATES landuse data mode character(len=256), public :: fluh_timeseries = '' ! filename for fates landuse timeseries data diff --git a/src/main/controlMod.F90 b/src/main/controlMod.F90 index 37381e92f3..5e382fc395 100644 --- a/src/main/controlMod.F90 +++ b/src/main/controlMod.F90 @@ -235,7 +235,7 @@ subroutine control_init(dtime) fates_inventory_ctrl_filename, & fates_parteh_mode, & fates_seeddisp_cadence, & - use_fates_tree_damage, fates_hist_dense_level + use_fates_tree_damage, fates_history_dimlevel ! Ozone vegetation stress method namelist / clm_inparm / o3_veg_stress_method @@ -790,7 +790,7 @@ subroutine control_spmd() call mpi_bcast (fluh_timeseries, len(fluh_timeseries) , MPI_CHARACTER, 0, mpicom, ier) call mpi_bcast (fates_parteh_mode, 1, MPI_INTEGER, 0, mpicom, ier) call mpi_bcast (fates_seeddisp_cadence, 1, MPI_INTEGER, 0, mpicom, ier) - call mpi_bcast (fates_hist_dense_level, 2, MPI_INTEGER, 0, mpicom, ier) + call mpi_bcast (fates_history_dimlevel, 2, MPI_INTEGER, 0, mpicom, ier) ! flexibleCN nitrogen model call mpi_bcast (use_flexibleCN, 1, MPI_LOGICAL, 0, mpicom, ier) diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index dc80be5c32..e28ebcc52f 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -64,7 +64,7 @@ module CLMFatesInterfaceMod use clm_varctl , only : fates_inventory_ctrl_filename use clm_varctl , only : use_nitrif_denitrif use clm_varctl , only : use_lch4 - use clm_varctl , only : fates_hist_dense_level + use clm_varctl , only : fates_history_dimlevel use clm_varcon , only : tfrz use clm_varcon , only : spval use clm_varcon , only : denice @@ -409,8 +409,8 @@ subroutine CLMFatesGlobals2() call set_fates_ctrlparms('seeddisp_cadence',ival=fates_seeddisp_cadence) - call set_fates_ctrlparms('hist_hifrq_dense_level',ival=fates_hist_dense_level(1)) - call set_fates_ctrlparms('hist_dynam_dense_level',ival=fates_hist_dense_level(2)) + call set_fates_ctrlparms('hist_hifrq_dimlevel',ival=fates_history_dimlevel(1)) + call set_fates_ctrlparms('hist_dynam_dimlevel',ival=fates_history_dimlevel(2)) ! CTSM-FATES is not fully coupled (yet) ! So lets tell fates to use the RD competition mechanism @@ -643,10 +643,10 @@ subroutine CrossRefHistoryFields write(iulog,*) 'not found in the list of fates_hist%hvars.' write(iulog,*) 'Most likely, this is because this history variable' write(iulog,*) 'was specified in the user namelist, but the user' - write(iulog,*) 'specified a FATES history output density level' + write(iulog,*) 'specified a FATES history output dimension level' write(iulog,*) 'that does not contain that variable in its valid set.' - write(iulog,*) 'You may have to increase the namelist setting: fates_hist_dense_level' - write(iulog,*) 'current fates_hist_dens_level: ',fates_hist_dense_level + write(iulog,*) 'You may have to increase the namelist setting: fates_history_dimlevel' + write(iulog,*) 'current fates_history_dimlevel: ',fates_history_dimlevel(:) call endrun(msg=errMsg(sourcefile, __LINE__)) end if end if @@ -1969,13 +1969,13 @@ subroutine restart( this, bounds_proc, ncid, flag, waterdiagnosticbulk_inst, & ! ------------------------------------------------------------------------ ! Update history IO fields that depend on ecosystem dynamics ! ------------------------------------------------------------------------ - if(fates_hist_dense_level(2)>0) then + if(fates_history_dimlevel(2)>0) then call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_simple) do s = 1,this%fates(nc)%nsites call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & upfreq_in=group_dyna_simple) end do - if(fates_hist_dense_level(2)>1) then + if(fates_history_dimlevel(2)>1) then call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_complx) do s = 1,this%fates(nc)%nsites call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & @@ -2162,13 +2162,13 @@ subroutine init_coldstart(this, waterstatebulk_inst, waterdiagnosticbulk_inst, & ! ------------------------------------------------------------------------ ! Update history IO fields that depend on ecosystem dynamics ! ------------------------------------------------------------------------ - if(fates_hist_dense_level(2)>0) then + if(fates_history_dimlevel(2)>0) then call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_simple) do s = 1,this%fates(nc)%nsites call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & upfreq_in=group_dyna_simple) end do - if(fates_hist_dense_level(2)>1) then + if(fates_history_dimlevel(2)>1) then call fates_hist%flush_hvars(nc,upfreq_in=group_dyna_complx) do s = 1,this%fates(nc)%nsites call fates_hist%zero_site_hvars(this%fates(nc)%sites(s), & From b8cdb9070b1b31252fb2346afa695e6894130c4e Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Tue, 5 Mar 2024 15:16:32 -0700 Subject: [PATCH 19/30] updating external --- Externals_CLM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals_CLM.cfg b/Externals_CLM.cfg index a6fae66356..df122d2c12 100644 --- a/Externals_CLM.cfg +++ b/Externals_CLM.cfg @@ -2,7 +2,7 @@ local_path = src/fates protocol = git repo_url = https://github.com/NGEET/fates -tag = sci.1.71.0_api.33.0.0 +tag = sci.1.72.0_api.33.0.0 required = True [externals_description] From 02149337be8b67c440a0cfcfb390962abb5f2d32 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Wed, 6 Mar 2024 16:11:26 -0700 Subject: [PATCH 20/30] Update param file paths --- bld/namelist_files/namelist_defaults_ctsm.xml | 6 +++--- .../testdefs/testmods_dirs/clm/ciso_cwd_hr/user_nl_clm | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_ctsm.xml b/bld/namelist_files/namelist_defaults_ctsm.xml index a1229c2175..250275b348 100644 --- a/bld/namelist_files/namelist_defaults_ctsm.xml +++ b/bld/namelist_files/namelist_defaults_ctsm.xml @@ -486,9 +486,9 @@ attributes from the config_cache.xml file (with keys converted to upper-case). -/glade/campaign/cgd/tss/people/oleson/modify_param/ctsm51_params.c240208.nc -/glade/campaign/cgd/tss/people/oleson/modify_param/clm50_params.c240208.nc -/glade/campaign/cgd/tss/people/oleson/modify_param/clm45_params.c240208.nc +/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/ctsm51_params.c240208.nc +/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/clm50_params.c240208.nc +/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/clm45_params.c240208.nc 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 2b8f437246..1d0be15d59 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 = '/glade/campaign/cgd/tss/people/oleson/modify_param/ctsm51_ciso_cwd_hr_params.c240208.nc' +paramfile = '/glade/campaign/cesm/cesmdata/inputdata/lnd/clm2/paramdata/ctsm51_ciso_cwd_hr_params.c240208.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' From 5ce3241673f746c0f886056b033bfcce060ac797 Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Thu, 7 Mar 2024 09:51:55 -0700 Subject: [PATCH 21/30] subtle updates to namelist reading and testing --- .../testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm | 2 ++ src/main/controlMod.F90 | 3 ++- src/utils/clmfates_interfaceMod.F90 | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm index 3b8e9a12cc..a426c775b0 100644 --- a/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm +++ b/cime_config/testdefs/testmods_dirs/clm/FatesColdAllVars/user_nl_clm @@ -3,6 +3,8 @@ hist_mfilt = 365 hist_nhtfrq = -24 hist_empty_htapes = .false. fates_spitfire_mode = 1 +fates_history_dimlevel = 2,2 +use_fates_tree_damage = .true. hist_ndens = 1 hist_fincl1 = 'FATES_TLONGTERM', 'FATES_TGROWTH','FATES_SEEDS_IN_GRIDCELL_PF','FATES_SEEDS_OUT_GRIDCELL_PF','FATES_NCL_AP', diff --git a/src/main/controlMod.F90 b/src/main/controlMod.F90 index 7332b8d019..723153b5f2 100644 --- a/src/main/controlMod.F90 +++ b/src/main/controlMod.F90 @@ -235,7 +235,8 @@ subroutine control_init(dtime) fates_inventory_ctrl_filename, & fates_parteh_mode, & fates_seeddisp_cadence, & - use_fates_tree_damage, fates_history_dimlevel + use_fates_tree_damage, & + fates_history_dimlevel ! Ozone vegetation stress method namelist / clm_inparm / o3_veg_stress_method diff --git a/src/utils/clmfates_interfaceMod.F90 b/src/utils/clmfates_interfaceMod.F90 index bfa32bdb4b..fcd5cb5230 100644 --- a/src/utils/clmfates_interfaceMod.F90 +++ b/src/utils/clmfates_interfaceMod.F90 @@ -647,6 +647,10 @@ subroutine CrossRefHistoryFields write(iulog,*) 'that does not contain that variable in its valid set.' write(iulog,*) 'You may have to increase the namelist setting: fates_history_dimlevel' write(iulog,*) 'current fates_history_dimlevel: ',fates_history_dimlevel(:) + !uncomment if you want to list all fates history variables in registry + !do_fates_hist2: do nh = 1,fates_hist%num_history_vars() + ! write(iulog,*) trim(fates_hist%hvars(nh)%vname) + !end do do_fates_hist2 call endrun(msg=errMsg(sourcefile, __LINE__)) end if end if From 280385ccc5740fac16f1efbfb28ed4d8c8611bc2 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 7 Mar 2024 12:30:43 -0700 Subject: [PATCH 22/30] Draft ChangeLog/ChangeSum files --- doc/ChangeLog | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++ doc/ChangeSum | 3 +- 2 files changed, 91 insertions(+), 1 deletion(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 30058a80b4..4dc62242cf 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,93 @@ =============================================================== +Tag name: ctsm5.1.dev173 +Originator(s): olyson (Keith Oleson,UCAR/TSS) +Date: Thu 07 Mar 2024 12:07:43 PM MST +One-line Summary: Improve vegetation health at high latitudes + +Purpose and description of changes +---------------------------------- + +The corresponding changes: + +Remove snicar_snobc_intmix from EXPERIMENTAL endrun (allow it to be true) +Remove flg_snoage_scl in SNICAR such that xdrdt can have an effect (fixes #2298 ) +New parameter file and namelist values for clm5_1: + +- snow_thermal_cond_method = Sturm1997 (default for clm5_1) +- snicar_snobc_intmix = .true. (default for clm5_1) +- ctsm51_params.c240201.nc is the new CTSM parameter file (changes: froot_leaf(11:12)=1.2, FUN_fracfixers(11:12)=1, xdrdt=5, scvng_fct_mlt_sf=0.5, snw_rds_refrz=1500, fresh_snw_rds_max=400) +- New history fields for coupler history verification (default off) +- Add snow5d_thresh_for_onset to parameter file, set to 0.2 for clm51 and 0.1 (unchanged) for clm50 and clm45. + + +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.] + +[X] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed +---------- +CTSM issues fixed (include CTSM Issue #): +Fixes #2298 +Fixes LMWG_dev discussion #3 + + +Notes of particular relevance for users +--------------------------------------- +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + New namelist defaults including new parameter files: + ctsm51_params.c240208.nc + clm50_params.c240208.nc + clm45_params.c240208.nc + ctsm51_ciso_cwd_hr_params.c240208.nc + + +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 ----- + izumi ------- + + any other testing (give details below): + Keith Oleson replicated simulation in LMWG_dev issue #51 as bfb when snow5d_thresh_for_onset on ctsm51_ciso_cwd_hr_params.c240208.nc + was set to original value of 0.1. + +Answer changes +-------------- + +Changes answers relative to baseline: YES + + Summarize any changes to answers, i.e., + - what code configurations: clm51 + - what platforms/compilers: all + - nature of change: new climate + + See LMWG_dev discussion #3 and simulations discussed therein, + including (though possibly not limited to) LMWG_dev issues #51, 52, 54, 57. + +Other details +------------- +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/2348 + +=============================================================== +=============================================================== Tag name: ctsm5.1.dev171 Originator(s): olyson (Keith Oleson,UCAR/TSS) Date: Mon 04 Mar 2024 10:33:55 AM MST diff --git a/doc/ChangeSum b/doc/ChangeSum index 32b60a502f..d1a3ff1a5f 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,6 +1,7 @@ Tag Who Date Summary ============================================================================================================================ - ctsm5.1.dev171 slevis 03/01/2024 Set initial t_soisno=272 for soils and 274K for urban road + ctsm5.1.dev173 olyson 03/07/2024 Improve vegetation health at high latitudes + ctsm5.1.dev171 olyson 03/01/2024 Set initial t_soisno=272 for soils and 274K for urban road ctsm5.1.dev170 samrabin 02/28/2024 Add hillslope hydrology ctsm5.1.dev169 samrabin 02/22/2024 Merge b4b-dev ctsm5.1.dev168 slevis 02/16/2024 Remove a source of negative snocan in CanopyFluxesMod From 89b037b58006282c7b02ae9a60febd201303a1f8 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 7 Mar 2024 14:30:07 -0700 Subject: [PATCH 23/30] Corrections/updates to ChangeLog --- doc/ChangeLog | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 4dc62242cf..380580df86 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -15,7 +15,7 @@ New parameter file and namelist values for clm5_1: - snow_thermal_cond_method = Sturm1997 (default for clm5_1) - snicar_snobc_intmix = .true. (default for clm5_1) -- ctsm51_params.c240201.nc is the new CTSM parameter file (changes: froot_leaf(11:12)=1.2, FUN_fracfixers(11:12)=1, xdrdt=5, scvng_fct_mlt_sf=0.5, snw_rds_refrz=1500, fresh_snw_rds_max=400) +- ctsm51_params.c240208.nc is the new CTSM parameter file (changes: froot_leaf(11:12)=1.2, FUN_fracfixers(11:12)=1, xdrdt=5, scvng_fct_mlt_sf=0.5, snw_rds_refrz=1500, fresh_snw_rds_max=400) - New history fields for coupler history verification (default off) - Add snow5d_thresh_for_onset to parameter file, set to 0.2 for clm51 and 0.1 (unchanged) for clm50 and clm45. @@ -65,8 +65,9 @@ Testing summary: izumi ------- any other testing (give details below): - Keith Oleson replicated simulation in LMWG_dev issue #51 as bfb when snow5d_thresh_for_onset on ctsm51_ciso_cwd_hr_params.c240208.nc - was set to original value of 0.1. + Keith Oleson replicated simulation in LMWG_dev issue #51 as bfb when + snow5d_thresh_for_onset on ctsm51_ciso_cwd_hr_params.c240208.nc was set + to original value of 0.1. Answer changes -------------- @@ -76,11 +77,15 @@ Changes answers relative to baseline: YES Summarize any changes to answers, i.e., - what code configurations: clm51 - what platforms/compilers: all - - nature of change: new climate + - nature of change: new climate at high latitudes See LMWG_dev discussion #3 and simulations discussed therein, including (though possibly not limited to) LMWG_dev issues #51, 52, 54, 57. + slevis will add this tag with the label "SIGNIFICANT" to the + Answer-changing-tags wiki: + https://github.com/ESCOMP/CTSM/wiki/Answer-changing-tags + Other details ------------- Pull Requests that document the changes (include PR ids): From 1f2de041aa1a2c9c1b9413395926934237737cec Mon Sep 17 00:00:00 2001 From: Ryan Knox Date: Wed, 13 Mar 2024 10:54:09 -0600 Subject: [PATCH 24/30] Updated change logs and externals for history dim level --- Externals_CLM.cfg | 2 +- doc/ChangeLog | 58 +++++++++++++++++++++++++++++++++++++++++++++++ doc/ChangeSum | 1 + 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/Externals_CLM.cfg b/Externals_CLM.cfg index 97e76ea4c2..69d13ca73b 100644 --- a/Externals_CLM.cfg +++ b/Externals_CLM.cfg @@ -2,7 +2,7 @@ local_path = src/fates protocol = git repo_url = https://github.com/rgknox/fates -branch = history-density +tag = sci.1.72.2_api.34.0.0 required = True [externals_description] diff --git a/doc/ChangeLog b/doc/ChangeLog index 30058a80b4..f29f055025 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,62 @@ =============================================================== +Tag name: ctsm5.1.dev173 +Originator(s): rgknox (Ryan Knox,LAWRENCE BERKELEY NATIONAL LABORATORY) +Date: Wed 13 Mar 2024 10:42:26 AM MDT +One-line Summary: New FATES namelist variable, fates_history_dimlevel + +Purpose and description of changes +---------------------------------- +This set of changes introduces a new namelist setting that allows more control over fates history diagnostics. This setting, fates_history_dimlevel accepts two integers, comma-delimited, from 0-2. The first specifies the history output dimension level for high-frequency output (ie model timestep) and the second is for output at the dynamics timestep. A value of 0 indicates no history variables should be processed. A value of 1 indicates that only site-level mean values should be processed. A value of 2 indicates that all variables, including those that use an extra dimension should be processed. This is different from adding and excluding history variable names from the namelist, in that these settings not only omit variables from the output file, but they prevent their allocations and calculations all together. Processing history diagnostics in FATES takes a non-trivial amount of time. + + +Significant changes to scientifically-supported configurations +-------------------------------------------------------------- + +These changes have no non-trivial impacts on any scientific configurations, this is a refactor. + +Bugs fixed +---------- + +No bugs fixed, feature addition only. + +Notes of particular relevance for users +--------------------------------------- + +Users should be aware of the new namelist setting fates_history_dimlevel. Omitting this setting will default to a level of "2" which enables all output and should maintain existing model behavior. + +Substantial timing or memory changes: The FATES model is somewhere on the order of 10% faster for level 0 and 1, versus 2, for large gridded runs with non satellite phenology, on derecho. + + +Notes of particular relevance for developers: +--------------------------------------------- + +None of note. + + +Testing summary: +---------------- + + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): + + derecho ----- OK + izumi ------- OK + + fates tests: (give name of baseline if different from CTSM tagname, normally fates baselines are fates--) + derecho ----- OK + izumi ------- OK + + +If the tag used for baseline comparisons was NOT the previous tag, note that here: (used ctsm5.1.dev172) + + +Answer changes +-------------- + +Answer changes for FATES tests were detected. All diffs were small enough to be consistent with order of operations changes, with the exception of some variables that were updated to have ignore values used for non-vegetated patches instead of zero. + + +=============================================================== +=============================================================== Tag name: ctsm5.1.dev171 Originator(s): olyson (Keith Oleson,UCAR/TSS) Date: Mon 04 Mar 2024 10:33:55 AM MST diff --git a/doc/ChangeSum b/doc/ChangeSum index 32b60a502f..a81856c8c5 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.1.dev173 rgknox 03/13/2024 New FATES namelist variable: fates_history_dimlevel ctsm5.1.dev171 slevis 03/01/2024 Set initial t_soisno=272 for soils and 274K for urban road ctsm5.1.dev170 samrabin 02/28/2024 Add hillslope hydrology ctsm5.1.dev169 samrabin 02/22/2024 Merge b4b-dev From de193123a0877ef025170f631fecbc5835761aca Mon Sep 17 00:00:00 2001 From: Erik Kluzek Date: Wed, 13 Mar 2024 16:47:00 -0600 Subject: [PATCH 25/30] Update Changelog date, add some notes about python and build-namelist testing --- doc/ChangeLog | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index f29bc95abc..2615593353 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,7 +1,7 @@ =============================================================== Tag name: ctsm5.1.dev173 Originator(s): rgknox (Ryan Knox,LAWRENCE BERKELEY NATIONAL LABORATORY) -Date: Wed 13 Mar 2024 10:42:26 AM MDT +Date: Wed 13 Mar 2024 04:46:37 PM MDT One-line Summary: New FATES namelist variable, fates_history_dimlevel Purpose and description of changes @@ -36,6 +36,14 @@ None of note. Testing summary: ---------------- + build-namelist tests (if CLMBuildNamelist.pm has changed): + + derecho - OK (64 fates tests differ) + + python testing (if python code has changed; see instructions in python/README.md; document testing done): + + derecho - PASS + regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): derecho ----- OK From c628466945ced8c3718d48d9c050e146bbf50622 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 14 Mar 2024 17:00:02 -0600 Subject: [PATCH 26/30] Update to ChangeLog concerning test-suite results --- doc/ChangeLog | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 9f8757d5ee..fbaa87f2dd 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,7 +1,7 @@ =============================================================== Tag name: ctsm5.1.dev174 Originator(s): olyson (Keith Oleson,UCAR/TSS) -Date: Wed 13 Mar 2024 05:28:05 PM MDT +Date: Thu 14 Mar 2024 04:56:37 PM MDT One-line Summary: Improve vegetation health at high latitudes Purpose and description of changes @@ -43,6 +43,8 @@ CTSM issues fixed (include CTSM Issue #): Fixes #2298 Fixes LMWG_dev discussion #3 +New bug discovered or introduced: +Relevant post appears in #2348 on 2024/3/14 Notes of particular relevance for users --------------------------------------- @@ -61,8 +63,8 @@ Testing summary: regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - derecho ----- - izumi ------- + derecho ----- OK + izumi ------- OK any other testing (give details below): Keith Oleson replicated simulation in LMWG_dev issue #51 as bfb when From 4036dff788f11054ed3931c4c771efbdee38a5a1 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 14 Mar 2024 17:03:50 -0600 Subject: [PATCH 27/30] Update ChangeSum date of tag --- doc/ChangeSum | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/ChangeSum b/doc/ChangeSum index 49afdeb03f..24a0b4c50d 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,6 +1,6 @@ Tag Who Date Summary ============================================================================================================================ - ctsm5.1.dev174 olyson 03/14/2024 Improve vegetation health at high latitudes + ctsm5.1.dev174 olyson 03/15/2024 Improve vegetation health at high latitudes ctsm5.1.dev173 rgknox 03/13/2024 New FATES namelist variable: fates_history_dimlevel ctsm5.1.dev172 erik 03/12/2024 Merge b4b-dev ctsm5.1.dev171 olyson 03/01/2024 Set initial t_soisno=272 for soils and 274K for urban road From 0886f3e89041228fb4c8129178264a44d0da3160 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 14 Mar 2024 17:05:42 -0600 Subject: [PATCH 28/30] Correction to last commit --- doc/ChangeSum | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/ChangeSum b/doc/ChangeSum index 24a0b4c50d..49afdeb03f 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,6 +1,6 @@ Tag Who Date Summary ============================================================================================================================ - ctsm5.1.dev174 olyson 03/15/2024 Improve vegetation health at high latitudes + ctsm5.1.dev174 olyson 03/14/2024 Improve vegetation health at high latitudes ctsm5.1.dev173 rgknox 03/13/2024 New FATES namelist variable: fates_history_dimlevel ctsm5.1.dev172 erik 03/12/2024 Merge b4b-dev ctsm5.1.dev171 olyson 03/01/2024 Set initial t_soisno=272 for soils and 274K for urban road From f64ba14e5a3da3c478b4dc28affcde986c9797a8 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 21 Mar 2024 15:00:15 -0600 Subject: [PATCH 29/30] Draft ChangeLog/ChangeSum --- doc/ChangeLog | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++ doc/ChangeSum | 1 + 2 files changed, 90 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index fbaa87f2dd..51401e1a38 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,4 +1,93 @@ =============================================================== +Tag name: ctsm5.1.dev175 +Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) +Date: Thu 21 Mar 2024 02:52:15 PM MDT +One-line Summary: merge-b4bdev-20240321 + +Purpose and description of changes +---------------------------------- + + slevis to complete + +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.] + +[ ] clm5_1 + +[ ] clm5_0 + +[ ] ctsm5_0-nwp + +[ ] clm4_5 + + +Bugs fixed +---------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +CTSM issues fixed (include CTSM Issue #): + slevis to complete + +Known bugs introduced in this tag (include issue #): + +Notes of particular relevance for users +--------------------------------------- +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +Caveats for users (e.g., need to interpolate initial conditions): + slevis to complete + +Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): + +Changes made to namelist defaults (e.g., changed parameter values): + +Changes to the datasets (e.g., parameter, surface or initial files): + +Substantial timing or memory changes: +[e.g., check PFS test in the test suite and look at timings, if you +expect possible significant timing changes] + + +Notes of particular relevance for developers: +--------------------------------------------- +NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide +[Remove any lines that don't apply. Remove entire section if nothing applies.] + +Caveats for developers (e.g., code that is duplicated that requires double maintenance): + slevis to complete + +Changes to tests or testing: + + +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 ----- + izumi ------- + +Answer changes +-------------- +Changes answers relative to baseline: NO + +Other details +------------- +List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): + slevis to complete + +Pull Requests that document the changes (include PR ids): + https://github.com/ESCOMP/ctsm/pull/???? + +=============================================================== +=============================================================== Tag name: ctsm5.1.dev174 Originator(s): olyson (Keith Oleson,UCAR/TSS) Date: Thu 14 Mar 2024 04:56:37 PM MDT diff --git a/doc/ChangeSum b/doc/ChangeSum index 49afdeb03f..e8c32d90a8 100644 --- a/doc/ChangeSum +++ b/doc/ChangeSum @@ -1,5 +1,6 @@ Tag Who Date Summary ============================================================================================================================ + ctsm5.1.dev175 slevis 03/21/2024 merge-b4bdev-20240321 ctsm5.1.dev174 olyson 03/14/2024 Improve vegetation health at high latitudes ctsm5.1.dev173 rgknox 03/13/2024 New FATES namelist variable: fates_history_dimlevel ctsm5.1.dev172 erik 03/12/2024 Merge b4b-dev From 109c44448a0b54d84ed3cbab866c9e58f93417f1 Mon Sep 17 00:00:00 2001 From: Samuel Levis Date: Thu, 21 Mar 2024 17:50:30 -0600 Subject: [PATCH 30/30] Updated ChangeLog --- doc/ChangeLog | 52 ++++++++++++--------------------------------------- 1 file changed, 12 insertions(+), 40 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 51401e1a38..f822c5a72e 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,13 +1,18 @@ =============================================================== Tag name: ctsm5.1.dev175 Originator(s): slevis (Samuel Levis,UCAR/TSS,303-665-1310) -Date: Thu 21 Mar 2024 02:52:15 PM MDT +Date: Thu 21 Mar 2024 05:49:04 PM MDT One-line Summary: merge-b4bdev-20240321 Purpose and description of changes ---------------------------------- - slevis to complete +Merge master 20240313 #2421 (Update of externals to what's expected in cesm2_3_beta17) +Fix for cray compiler format issue #2391 +Remove LILAC references to mct #2374 +Refactoring of neon_site into tower_site and neon_site #2363 +Fix misplaced stopf in CNDriverMod.F90 #2358 +Update some PE layouts on Derecho #2429 Significant changes to scientifically-supported configurations -------------------------------------------------------------- @@ -28,41 +33,8 @@ Does this tag change answers significantly for any of the following physics conf Bugs fixed ---------- -[Remove any lines that don't apply. Remove entire section if nothing applies.] - CTSM issues fixed (include CTSM Issue #): - slevis to complete - -Known bugs introduced in this tag (include issue #): - -Notes of particular relevance for users ---------------------------------------- -[Remove any lines that don't apply. Remove entire section if nothing applies.] - -Caveats for users (e.g., need to interpolate initial conditions): - slevis to complete - -Changes to CTSM's user interface (e.g., new/renamed XML or namelist variables): - -Changes made to namelist defaults (e.g., changed parameter values): - -Changes to the datasets (e.g., parameter, surface or initial files): - -Substantial timing or memory changes: -[e.g., check PFS test in the test suite and look at timings, if you -expect possible significant timing changes] - - -Notes of particular relevance for developers: ---------------------------------------------- -NOTE: Be sure to review the steps in README.CHECKLIST.master_tags as well as the coding style in the Developers Guide -[Remove any lines that don't apply. Remove entire section if nothing applies.] - -Caveats for developers (e.g., code that is duplicated that requires double maintenance): - slevis to complete - -Changes to tests or testing: - + Listed in Purpose and Description above Testing summary: ---------------- @@ -71,8 +43,8 @@ Testing summary: regular tests (aux_clm: https://github.com/ESCOMP/CTSM/wiki/System-Testing-Guide#pre-merge-system-testing): - derecho ----- - izumi ------- + derecho ----- OK + izumi ------- OK Answer changes -------------- @@ -81,10 +53,10 @@ Changes answers relative to baseline: NO Other details ------------- List any externals directories updated (cime, rtm, mosart, cism, fates, etc.): - slevis to complete + See #2421 for update of externals to what's expected in cesm2_3_beta17 Pull Requests that document the changes (include PR ids): - https://github.com/ESCOMP/ctsm/pull/???? + https://github.com/ESCOMP/ctsm/pull/2431 =============================================================== ===============================================================