Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new and fixed parameters for nutrients, phenology, seeds, fire and age-mortality #595

Merged
merged 30 commits into from
Jan 4, 2020
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
73c1880
Added ECA parameters to the default parameter file.
rgknox Nov 26, 2019
8260afb
Added new eca entries to parameter file
rgknox Nov 26, 2019
0cc3cb3
Updated parameter file metadata for branch and seed turnover, as well…
rgknox Nov 26, 2019
19ae640
Updated names and metadata for seed decay and germination parameters
rgknox Nov 26, 2019
eaf8cb8
Added parameter for active fire flag.
rgknox Nov 26, 2019
53817e0
Added non-woody cold-size and stem drop parameters for phenology
rgknox Nov 26, 2019
d84a19a
ran the parameter ordering script on the default file.
rgknox Nov 26, 2019
3af6ab2
Added parameter definitions for prescribed N/P uptake
rgknox Nov 26, 2019
dfd6297
Moved active_crown_fire to a scalar parameter.
rgknox Dec 13, 2019
face185
Fixed comment that had turnover timescale instead of rate
rgknox Dec 13, 2019
b0f666a
Added the read-in calls on nfix1 and nfix2, even though they aren't u…
rgknox Dec 13, 2019
446e939
bug fixes on new parameter dimensions
rgknox Dec 14, 2019
6e90589
Updated active_crown_fire flag to logical
rgknox Dec 16, 2019
ab4db72
removed initialization of fates_fire_flag, fixed comment.
rgknox Dec 16, 2019
2264782
[Size and age dependent mortality parameters into default param file ]
Dec 16, 2019
c6be3dd
Merge pull request #8 from rgknox/parameters-eca-phen-fire-w-tage
rgknox Dec 16, 2019
46e51ec
Minor formatting updates to default parameter file, updated sorting t…
rgknox Dec 16, 2019
b080b80
tweaked some age parameter metadata and naming conventions
rgknox Dec 16, 2019
a121a65
fixed omission of name change of fates_cohort_size_fusion_tol
rgknox Dec 16, 2019
2dadd0e
definition for nearzero
rgknox Dec 16, 2019
fb8db54
Updated name of fates_cohort_size_fusion_tol in EDParamsMod.
rgknox Dec 17, 2019
26ab287
Added cg strikes parameter to the default file
rgknox Dec 18, 2019
1ddcbc3
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
5633ce9
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
ceb94db
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
24824f5
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
ce4c4f8
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
1358282
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
37f5735
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
25ff0f6
Update parameter_files/fates_params_default.cdl
rgknox Dec 18, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions biogeochem/EDPhysiologyMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1231,16 +1231,16 @@ subroutine SeedDecay( litt )

! default value from Liscke and Loffler 2006 ; making this a PFT-specific parameter
! decays the seed pool according to exponential model
! seed_decay_turnover is in yr-1
! seed_decay_rate is in yr-1
! seed_decay is kg/day
! Assume that decay rates are same for all chemical species

do pft = 1,numpft
litt%seed_decay(pft) = litt%seed(pft) * &
EDPftvarcon_inst%seed_decay_turnover(pft)*years_per_day
EDPftvarcon_inst%seed_decay_rate(pft)*years_per_day

litt%seed_germ_decay(pft) = litt%seed_germ(pft) * &
EDPftvarcon_inst%seed_decay_turnover(pft)*years_per_day
EDPftvarcon_inst%seed_decay_rate(pft)*years_per_day

enddo

Expand Down Expand Up @@ -1274,14 +1274,14 @@ subroutine SeedGermination( litt, cold_stat, drought_stat )

!----------------------------------------------------------------------

! germination_timescale is being pulled to PFT parameter; units are 1/yr
! germination_rate is being pulled to PFT parameter; units are 1/yr
! thus the mortality rate of seed -> recruit (in units of carbon)
! is seed_decay_turnover(p)/germination_timescale(p)
! is seed_decay_rate(p)/germination_rate(p)
! and thus the mortality rate (in units of individuals) is the product of
! that times the ratio of (hypothetical) seed mass to recruit biomass

do pft = 1,numpft
litt%seed_germ_in(pft) = min(litt%seed(pft) * EDPftvarcon_inst%germination_timescale(pft), &
litt%seed_germ_in(pft) = min(litt%seed(pft) * EDPftvarcon_inst%germination_rate(pft), &
max_germination)*years_per_day

!set the germination only under the growing season...c.xu
Expand Down
36 changes: 33 additions & 3 deletions main/EDParamsMod.F90
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
module EDParamsMod

!
! module that deals with reading the ED parameter file
!

use FatesConstantsMod, only : r8 => fates_r8
use FatesConstantsMod, only : nearzero
use FatesParametersInterface, only : param_string_length
use FatesGlobals , only : fates_log
use FatesGlobals , only : endrun => fates_endrun
Expand Down Expand Up @@ -42,6 +44,13 @@ module EDParamsMod
real(r8),protected, public :: ED_val_patch_fusion_tol
real(r8),protected, public :: ED_val_canopy_closure_thresh ! site-level canopy closure point where trees take on forest (narrow) versus savannah (wide) crown allometry


logical,protected, public :: active_crown_fire ! flag, 1=active crown fire 0=no active crown fire
character(len=param_string_length),parameter :: fates_name_active_crown_fire = "fates_fire_active_crown_fire"

real(r8), protected, public :: cg_strikes ! fraction of cloud to ground lightning strikes (0-1)
character(len=param_string_length),parameter :: fates_name_cg_strikes="fates_fire_cg_strikes"

real(r8),protected,public :: q10_mr ! Q10 for respiration rate (for soil fragmenation and plant respiration) (unitless)
real(r8),protected,public :: q10_froz ! Q10 for frozen-soil respiration rates (for soil fragmentation) (unitless)

Expand All @@ -50,6 +59,7 @@ module EDParamsMod
real(r8),protected,allocatable,public :: ED_val_history_ageclass_bin_edges(:)
real(r8),protected,allocatable,public :: ED_val_history_height_bin_edges(:)


character(len=param_string_length),parameter,public :: ED_name_mort_disturb_frac = "fates_mort_disturb_frac"
character(len=param_string_length),parameter,public :: ED_name_comp_excln = "fates_comp_excln"
character(len=param_string_length),parameter,public :: ED_name_init_litter = "fates_init_litter"
Expand All @@ -69,10 +79,13 @@ module EDParamsMod
character(len=param_string_length),parameter,public :: ED_name_phen_mindayson= "fates_phen_mindayson"
character(len=param_string_length),parameter,public :: ED_name_phen_ncolddayslim= "fates_phen_ncolddayslim"
character(len=param_string_length),parameter,public :: ED_name_phen_coldtemp= "fates_phen_coldtemp"
character(len=param_string_length),parameter,public :: ED_name_cohort_fusion_tol= "fates_cohort_fusion_tol"
character(len=param_string_length),parameter,public :: ED_name_cohort_fusion_tol= "fates_cohort_size_fusion_tol"
character(len=param_string_length),parameter,public :: ED_name_patch_fusion_tol= "fates_patch_fusion_tol"
character(len=param_string_length),parameter,public :: ED_name_canopy_closure_thresh= "fates_canopy_closure_thresh"

! Resistance to active crown fire


character(len=param_string_length),parameter :: fates_name_q10_mr="fates_q10_mr"
character(len=param_string_length),parameter :: fates_name_q10_froz="fates_q10_froz"

Expand Down Expand Up @@ -170,7 +183,6 @@ subroutine FatesParamsInit()
ED_val_cohort_fusion_tol = nan
ED_val_patch_fusion_tol = nan
ED_val_canopy_closure_thresh = nan

hydr_kmax_rsurf1 = nan
hydr_kmax_rsurf2 = nan

Expand Down Expand Up @@ -333,6 +345,12 @@ subroutine FatesRegisterParams(fates_params)
call fates_params%RegisterParameter(name=ED_name_history_height_bin_edges, dimension_shape=dimension_shape_1d, &
dimension_names=dim_names_height)

call fates_params%RegisterParameter(name=fates_name_active_crown_fire, dimension_shape=dimension_shape_scalar, &
dimension_names=dim_names_scalar)

call fates_params%RegisterParameter(name=fates_name_cg_strikes, dimension_shape=dimension_shape_scalar, &
dimension_names=dim_names_scalar)

end subroutine FatesRegisterParams


Expand All @@ -345,6 +363,9 @@ subroutine FatesReceiveParams(fates_params)

class(fates_parameters_type), intent(inout) :: fates_params

real(r8) :: active_crown_fire_real !Local temp to transfer real data in file


call fates_params%RetreiveParameter(name=ED_name_mort_disturb_frac, &
data=fates_mortality_disturbance_fraction)

Expand Down Expand Up @@ -456,6 +477,13 @@ subroutine FatesReceiveParams(fates_params)
call fates_params%RetreiveParameter(name=fates_name_q10_froz, &
data=q10_froz)

call fates_params%RetreiveParameter(name=fates_name_active_crown_fire, &
data=active_crown_fire_real)
active_crown_fire = (abs(active_crown_fire_real-1.0_r8)<nearzero)

call fates_params%RetreiveParameter(name=fates_name_cg_strikes, &
data=cg_strikes)

! parameters that are arrays of size defined within the params file and thus need allocating as well
call fates_params%RetreiveParameterAllocate(name=ED_name_history_sizeclass_bin_edges, &
data=ED_val_history_sizeclass_bin_edges)
Expand All @@ -465,7 +493,7 @@ subroutine FatesReceiveParams(fates_params)

call fates_params%RetreiveParameterAllocate(name=ED_name_history_height_bin_edges, &
data=ED_val_history_height_bin_edges)


end subroutine FatesReceiveParams

Expand Down Expand Up @@ -517,6 +545,8 @@ subroutine FatesReportParams(is_master)
write(fates_log(),fmt0) 'logging_dbhmax_infra = ',logging_dbhmax_infra
write(fates_log(),fmt0) 'q10_mr = ',q10_mr
write(fates_log(),fmt0) 'q10_froz = ',q10_froz
write(fates_log(),fmt0) 'cg_strikes = ',cg_strikes
write(fates_log(),'(a,L)') 'active_crown_fire = ',active_crown_fire
write(fates_log(),*) '------------------------------------------------------'

end if
Expand Down
Loading