Skip to content

Commit

Permalink
Merge pull request #530 from rgknox/parameter-update-flhs
Browse files Browse the repository at this point in the history
Parameter file updates: fire, logging, hydro, seeds and fates_scalar
  • Loading branch information
rgknox authored May 31, 2019
2 parents 552e9de + d259955 commit dbc56ea
Show file tree
Hide file tree
Showing 11 changed files with 641 additions and 617 deletions.
22 changes: 8 additions & 14 deletions biogeochem/EDPhysiologyMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ module EDPhysiologyMod
use FatesGlobals , only : fates_log
use FatesGlobals , only : endrun => fates_endrun
use EDParamsMod , only : fates_mortality_disturbance_fraction
use EDLoggingMortalityMod , only : logging_export_frac
!use EDParamsMod , only : logging_export_frac
use EDParamsMod , only : q10_mr
use EDParamsMod , only : q10_froz
use EDParamsMod , only : logging_export_frac

use FatesPlantHydraulicsMod , only : AccumulateMortalityWaterStorage

Expand Down Expand Up @@ -986,12 +987,12 @@ subroutine seeds_in( currentSite, cp_pnt )

do p = 1,numpft
currentPatch%seeds_in(p) = currentPatch%seeds_in(p) + &
EDPftvarcon_inst%seed_rain(p) !KgC/m2/year
EDPftvarcon_inst%seed_suppl(p) !KgC/m2/year
currentSite%seed_rain_flux(p) = currentSite%seed_rain_flux(p) + &
EDPftvarcon_inst%seed_rain(p) * currentPatch%area/AREA !KgC/m2/year
EDPftvarcon_inst%seed_suppl(p) * currentPatch%area/AREA !KgC/m2/year

currentSite%flux_in = currentSite%flux_in + &
EDPftvarcon_inst%seed_rain(p) * currentPatch%area * hlm_freq_day
EDPftvarcon_inst%seed_suppl(p) * currentPatch%area * hlm_freq_day

enddo

Expand Down Expand Up @@ -1430,28 +1431,21 @@ subroutine fragmentation_scaler( currentPatch, bc_in)
real(r8) :: catanf ! hyperbolic temperature function from CENTURY
real(r8) :: catanf_30 ! hyperbolic temperature function from CENTURY
real(r8) :: t1 ! temperature argument
real(r8) :: Q10 ! temperature dependence
real(r8) :: froz_q10 ! separate q10 for frozen soil respiration rates.
! default to same as above zero rates
!----------------------------------------------------------------------

catanf(t1) = 11.75_r8 +(29.7_r8 / pi) * atan( pi * 0.031_r8 * ( t1 - 15.4_r8 ))
catanf_30 = catanf(30._r8)

ifp = currentPatch%patchno

! set "froz_q10" parameter
froz_q10 = FatesSynchronizedParamsInst%froz_q10
Q10 = FatesSynchronizedParamsInst%Q10

if ( .not. use_century_tfunc ) then
!calculate rate constant scalar for soil temperature,assuming that the base rate constants
!are assigned for non-moisture limiting conditions at 25C.
if (bc_in%t_veg24_pa(ifp) >= tfrz) then
t_scalar = Q10**((bc_in%t_veg24_pa(ifp)-(tfrz+25._r8))/10._r8)
t_scalar = q10_mr**((bc_in%t_veg24_pa(ifp)-(tfrz+25._r8))/10._r8)
! Q10**((t_soisno(c,j)-(tfrz+25._r8))/10._r8)
else
t_scalar = (Q10**(-25._r8/10._r8))*(froz_q10**((bc_in%t_veg24_pa(ifp)-tfrz)/10._r8))
t_scalar = (q10_mr**(-25._r8/10._r8))*(q10_froz**((bc_in%t_veg24_pa(ifp)-tfrz)/10._r8))
!Q10**(-25._r8/10._r8))*(froz_q10**((t_soisno(c,j)-tfrz)/10._r8)
endif
else
Expand Down
10 changes: 3 additions & 7 deletions biogeophys/FatesPlantHydraulicsMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ module FatesPlantHydraulicsMod
use FatesConstantsMod, only : g_per_kg

use EDParamsMod , only : hydr_kmax_rsurf1
! use EDParamsMod , only : hydr_kmax_rsurf2
use EDParamsMod , only : hydr_kmax_rsurf2

use EDTypesMod , only : ed_site_type
use EDTypesMod , only : ed_patch_type
use EDTypesMod , only : ed_cohort_type
Expand Down Expand Up @@ -886,10 +886,6 @@ subroutine UpdateWaterDepTreeHydrCond(currentSite,ccohort,nlevsoi_hyd,bc_in)
! which is equiv to [kg m-1 s-1 MPa-1]
real(r8) :: kmax_root_surf ! maximum conducitivity for unit root surface (kg water/m2 root area/Mpa/s)

! (RGK 4-2019) THE FOLLOWING SHOULD BE ADDED TO THE PARAMETER FILE IN NEXT GROUPING
real(r8), parameter :: hydr_kmax_rsurf2 = 0.0001_r8 ! kg water/m2 root area/Mpa/s


ccohort_hydr => ccohort%co_hydr
csite_hydr => currentSite%si_hydr
k = 1 !only for the first soil shell
Expand Down Expand Up @@ -1743,7 +1739,7 @@ subroutine UpdateSizeDepRhizVolLenCon(currentSite, bc_in)
enddo !cohort
cPatch => cPatch%older
enddo !patch

csite_hydr%l_aroot_1D = sum( csite_hydr%l_aroot_layer(:))

! update outer radii of column-level rhizosphere shells (same across patches and cohorts)
Expand Down
11 changes: 6 additions & 5 deletions biogeophys/FatesPlantRespPhotosynthMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ module FATESPlantRespPhotosynthMod
use EDTypesMod, only : nclmax
use EDTypesMod, only : max_nleafage
use EDTypesMod, only : do_fates_salinity
use EDParamsMod, only : q10_mr
use PRTGenericMod, only : prt_carbon_allom_hyp
use PRTGenericMod, only : prt_cnp_flex_allom_hyp
use PRTGenericMod, only : all_carbon_elements
Expand Down Expand Up @@ -246,8 +247,8 @@ subroutine FatesPlantRespPhotosynthDrive (nsites, sites,bc_in,bc_out,dtime)
c3psn => EDPftvarcon_inst%c3psn , &
slatop => EDPftvarcon_inst%slatop , & ! specific leaf area at top of canopy,
! projected area basis [m^2/gC]
woody => EDPftvarcon_inst%woody , & ! Is vegetation woody or not?
q10 => FatesSynchronizedParamsInst%Q10 )
woody => EDPftvarcon_inst%woody) ! Is vegetation woody or not?


bbbopt(0) = ED_val_bbopt_c4
bbbopt(1) = ED_val_bbopt_c3
Expand Down Expand Up @@ -640,7 +641,7 @@ subroutine FatesPlantRespPhotosynthDrive (nsites, sites,bc_in,bc_out,dtime)
! Live stem MR (kgC/plant/s) (above ground sapwood)
! ------------------------------------------------------------------
if (woody(ft) == 1) then
tcwood = q10**((bc_in(s)%t_veg_pa(ifp)-tfrz - 20.0_r8)/10.0_r8)
tcwood = q10_mr**((bc_in(s)%t_veg_pa(ifp)-tfrz - 20.0_r8)/10.0_r8)
! kgC/s = kgN * kgC/kgN/s
currentCohort%livestem_mr = live_stem_n * ED_val_base_mr_20 * tcwood * maintresp_reduction_factor
else
Expand All @@ -652,7 +653,7 @@ subroutine FatesPlantRespPhotosynthDrive (nsites, sites,bc_in,bc_out,dtime)
! ------------------------------------------------------------------
currentCohort%froot_mr = 0._r8
do j = 1,bc_in(s)%nlevsoil
tcsoi = q10**((bc_in(s)%t_soisno_sl(j)-tfrz - 20.0_r8)/10.0_r8)
tcsoi = q10_mr**((bc_in(s)%t_soisno_sl(j)-tfrz - 20.0_r8)/10.0_r8)
currentCohort%froot_mr = currentCohort%froot_mr + &
fnrt_n * ED_val_base_mr_20 * tcsoi * currentPatch%rootfr_ft(ft,j) * maintresp_reduction_factor
enddo
Expand All @@ -663,7 +664,7 @@ subroutine FatesPlantRespPhotosynthDrive (nsites, sites,bc_in,bc_out,dtime)
currentCohort%livecroot_mr = 0._r8
do j = 1,bc_in(s)%nlevsoil
! Soil temperature used to adjust base rate of MR
tcsoi = q10**((bc_in(s)%t_soisno_sl(j)-tfrz - 20.0_r8)/10.0_r8)
tcsoi = q10_mr**((bc_in(s)%t_soisno_sl(j)-tfrz - 20.0_r8)/10.0_r8)
currentCohort%livecroot_mr = currentCohort%livecroot_mr + &
live_croot_n * ED_val_base_mr_20 * tcsoi * &
currentPatch%rootfr_ft(ft,j) * maintresp_reduction_factor
Expand Down
36 changes: 18 additions & 18 deletions fire/SFParamsMod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -35,26 +35,26 @@ module SFParamsMod
real(r8),protected :: SF_val_mid_moisture_Coeff(NFSC)
real(r8),protected :: SF_val_mid_moisture_Slope(NFSC)

character(len=param_string_length),parameter :: SF_name_fdi_a = "fates_fdi_a"
character(len=param_string_length),parameter :: SF_name_fdi_b = "fates_fdi_b"
character(len=param_string_length),parameter :: SF_name_fdi_alpha = "fates_fdi_alpha"
character(len=param_string_length),parameter :: SF_name_miner_total = "fates_miner_total"
character(len=param_string_length),parameter :: SF_name_fuel_energy = "fates_fuel_energy"
character(len=param_string_length),parameter :: SF_name_part_dens = "fates_part_dens"
character(len=param_string_length),parameter :: SF_name_miner_damp = "fates_miner_damp"
character(len=param_string_length),parameter :: SF_name_max_durat = "fates_max_durat"
character(len=param_string_length),parameter :: SF_name_durat_slope = "fates_durat_slope"
character(len=param_string_length),parameter :: SF_name_drying_ratio = "fates_drying_ratio"
character(len=param_string_length),parameter :: SF_name_fdi_a = "fates_fire_fdi_a"
character(len=param_string_length),parameter :: SF_name_fdi_b = "fates_fire_fdi_b"
character(len=param_string_length),parameter :: SF_name_fdi_alpha = "fates_fire_fdi_alpha"
character(len=param_string_length),parameter :: SF_name_miner_total = "fates_fire_miner_total"
character(len=param_string_length),parameter :: SF_name_fuel_energy = "fates_fire_fuel_energy"
character(len=param_string_length),parameter :: SF_name_part_dens = "fates_fire_part_dens"
character(len=param_string_length),parameter :: SF_name_miner_damp = "fates_fire_miner_damp"
character(len=param_string_length),parameter :: SF_name_max_durat = "fates_fire_max_durat"
character(len=param_string_length),parameter :: SF_name_durat_slope = "fates_fire_durat_slope"
character(len=param_string_length),parameter :: SF_name_drying_ratio = "fates_fire_drying_ratio"
character(len=param_string_length),parameter :: SF_name_CWD_frac = "fates_CWD_frac"
character(len=param_string_length),parameter :: SF_name_max_decomp = "fates_max_decomp"
character(len=param_string_length),parameter :: SF_name_SAV = "fates_SAV"
character(len=param_string_length),parameter :: SF_name_FBD = "fates_FBD"
character(len=param_string_length),parameter :: SF_name_min_moisture = "fates_min_moisture"
character(len=param_string_length),parameter :: SF_name_mid_moisture = "fates_mid_moisture"
character(len=param_string_length),parameter :: SF_name_low_moisture_Coeff = "fates_low_moisture_Coeff"
character(len=param_string_length),parameter :: SF_name_low_moisture_Slope = "fates_low_moisture_Slope"
character(len=param_string_length),parameter :: SF_name_mid_moisture_Coeff = "fates_mid_moisture_Coeff"
character(len=param_string_length),parameter :: SF_name_mid_moisture_Slope = "fates_mid_moisture_Slope"
character(len=param_string_length),parameter :: SF_name_SAV = "fates_fire_SAV"
character(len=param_string_length),parameter :: SF_name_FBD = "fates_fire_FBD"
character(len=param_string_length),parameter :: SF_name_min_moisture = "fates_fire_min_moisture"
character(len=param_string_length),parameter :: SF_name_mid_moisture = "fates_fire_mid_moisture"
character(len=param_string_length),parameter :: SF_name_low_moisture_Coeff = "fates_fire_low_moisture_Coeff"
character(len=param_string_length),parameter :: SF_name_low_moisture_Slope = "fates_fire_low_moisture_Slope"
character(len=param_string_length),parameter :: SF_name_mid_moisture_Coeff = "fates_fire_mid_moisture_Coeff"
character(len=param_string_length),parameter :: SF_name_mid_moisture_Slope = "fates_fire_mid_moisture_Slope"

public :: SpitFireRegisterParams
public :: SpitFireReceiveParams
Expand Down
Loading

0 comments on commit dbc56ea

Please sign in to comment.