Skip to content

Commit

Permalink
add FATES seed regeneration model switch to namelist
Browse files Browse the repository at this point in the history
This commit facilitates moving this switch from the FATES parameter file
to the namelist
  • Loading branch information
glemieux committed Dec 10, 2024
1 parent 049112d commit a11994c
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 2 deletions.
4 changes: 2 additions & 2 deletions bld/CLMBuildNamelist.pm
Original file line number Diff line number Diff line change
Expand Up @@ -810,7 +810,7 @@ sub setup_cmdl_fates_mode {
"fates_parteh_mode","use_fates_tree_damage","fates_seeddisp_cadence","use_fates_luh","fluh_timeseries",
"flandusepftdat","use_fates_potentialveg","use_fates_lupft","fates_history_dimlevel",
"use_fates_daylength_factor", "use_fates_photosynth_acclimation","fates_stomatal_assimilation",
"fates_cstarvation_model"
"fates_cstarvation_model", "fates_regeneration_model"
);

# dis-allow fates specific namelist items with non-fates runs
Expand Down Expand Up @@ -4707,7 +4707,7 @@ sub setup_logic_fates {
"use_fates_inventory_init","fates_seeddisp_cadence","fates_history_dimlevel",
"fates_harvest_mode","fates_parteh_mode", "use_fates_cohort_age_tracking","use_fates_tree_damage",
"use_fates_daylength_factor", "use_fates_photosynth_acclimation","fates_stomatal_assimilation",
"fates_cstarvation_model"
"fates_cstarvation_model", "fates_regeneration_model"
);

foreach my $var ( @list ) {
Expand Down
1 change: 1 addition & 0 deletions bld/namelist_files/namelist_defaults_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2391,6 +2391,7 @@ lnd/clm2/surfdata_esmf/NEON/ctsm5.3.0/surfdata_1x1_NEON_TOOL_hist_2000_78pfts_c2
<fates_harvest_mode use_fates=".true.">no_harvest</fates_harvest_mode>
<fates_stomatal_assimilation use_fates=".true.">net</fates_stomatal_assimilation>
<fates_cstarvation_model use_fates=".true.">linear</fates_cstarvation_model>
<fates_regeneration_model use_fates=".true.">default</fates_regeneration_model>
<use_fates_planthydro use_fates=".true.">.false.</use_fates_planthydro>
<use_fates_tree_damage use_fates=".true.">.false.</use_fates_tree_damage>
<use_fates_cohort_age_tracking use_fates=".true.">.false.</use_fates_cohort_age_tracking>
Expand Down
9 changes: 9 additions & 0 deletions bld/namelist_files/namelist_definition_ctsm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,15 @@ Allowed values are:
This option is older than the luhdata options and may be depricated at some point in the future.
</entry>

<entry id="fates_regeneration_model" type="char*256" category="physics"
group="clm_inparm" valid_values="default, trs, trs_no_seed_dyn" value="default">
Set the FATES seed regeneration model
Valid values:
default: default scheme
trs: Tree Recruitment Scheme (Hanbury-Brown et al., 2022)
trs_no_seed_dyn: Tree Recruitment Scheme (Hanbury-Brown et al., 2022) without seed dynamics
</entry>

<entry id="fates_cstarvation_model" type="char*256" category="physics"
group="clm_inparm" valid_values="linear, exponential" value="linear">
Set the FATES carbon starvation model
Expand Down
1 change: 1 addition & 0 deletions src/main/clm_varctl.F90
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@ module clm_varctl
character(len=256), public :: fates_harvest_mode = '' ! five different harvest modes; see namelist definition
character(len=256), public :: fates_stomatal_assimilation = '' ! net or gross assimilation modes
character(len=256), public :: fates_cstarvation_model = '' ! linear or exponential function
character(len=256), public :: fates_regeneration_model = '' ! default, TRS, or TRS without seed dynamics
logical, public :: use_fates_planthydro = .false. ! true => turn on fates hydro
logical, public :: use_fates_cohort_age_tracking = .false. ! true => turn on cohort age tracking
logical, public :: use_fates_ed_st3 = .false. ! true => static stand structure
Expand Down
3 changes: 3 additions & 0 deletions src/main/controlMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ subroutine control_init(dtime)
fates_inventory_ctrl_filename, &
fates_stomatal_assimilation, &
fates_cstarvation_model, &
fates_regeneration_model, &
fates_parteh_mode, &
fates_seeddisp_cadence, &
use_fates_tree_damage, &
Expand Down Expand Up @@ -805,6 +806,7 @@ subroutine control_spmd()
call mpi_bcast (fates_harvest_mode, len(fates_harvest_mode) , MPI_CHARACTER, 0, mpicom, ier)
call mpi_bcast (fates_stomatal_assimilation, len(fates_stomatal_assimilation) , MPI_CHARACTER, 0, mpicom, ier)
call mpi_bcast (fates_cstarvation_model, len(fates_cstarvation_model) , MPI_CHARACTER, 0, mpicom, ier)
call mpi_bcast (fates_regeneration_model, len(fates_regeneration_model) , MPI_CHARACTER, 0, mpicom, ier)
call mpi_bcast (use_fates_planthydro, 1, MPI_LOGICAL, 0, mpicom, ier)
call mpi_bcast (use_fates_tree_damage, 1, MPI_LOGICAL, 0, mpicom, ier)
call mpi_bcast (use_fates_cohort_age_tracking, 1, MPI_LOGICAL, 0, mpicom, ier)
Expand Down Expand Up @@ -1210,6 +1212,7 @@ subroutine control_print ()
write(iulog, *) ' fates_harvest_mode = ', fates_harvest_mode
write(iulog, *) ' fates_stomatal_assimilation = ', fates_stomatal_assimilation
write(iulog, *) ' fates_cstarvation_model = ', fates_cstarvation_model
write(iulog, *) ' fates_regeneration_model = ', fates_regeneration_model
write(iulog, *) ' fates_paramfile = ', fates_paramfile
write(iulog, *) ' fates_parteh_mode = ', fates_parteh_mode
write(iulog, *) ' use_fates_planthydro = ', use_fates_planthydro
Expand Down
9 changes: 9 additions & 0 deletions src/utils/clmfates_interfaceMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -560,6 +560,15 @@ subroutine CLMFatesGlobals2()
end if
call set_fates_ctrlparms('mort_cstarvation_model',ival=pass_cstarvation_model)

if (trim(fates_regeneration_model) == 'default') then
pass_regeneration_model = 1
else if (trim(fates_regeneration_model) == 'trs') then
pass_regeneration_model = 2
else if (trim(fates_regeneration_model) == 'trs_no_seed_dyn') then
pass_regeneration_model = 3
end if
call set_fates_ctrlparms('regeneration_model',ival=pass_regeneration_model)

! FATES logging and harvest modes
pass_logging = 0
pass_lu_harvest = 0
Expand Down

0 comments on commit a11994c

Please sign in to comment.