Skip to content

Commit 82498d5

Browse files
authored
Merge pull request #514 from rgknox/consolidated-pft-file
consolidation of parameter files
2 parents c7fa7c2 + 518c862 commit 82498d5

File tree

8 files changed

+633
-3819
lines changed

8 files changed

+633
-3819
lines changed

main/EDMainMod.F90

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ module EDMainMod
4040
use EDtypesMod , only : ed_site_type
4141
use EDtypesMod , only : ed_patch_type
4242
use EDtypesMod , only : ed_cohort_type
43-
use EDTypesMod , only : do_ed_phenology
4443
use EDTypesMod , only : AREA
4544
use FatesConstantsMod , only : itrue,ifalse
4645
use FatesConstantsMod , only : primaryforest, secondaryforest
@@ -135,11 +134,15 @@ subroutine ed_ecosystem_dynamics(currentSite, bc_in)
135134

136135

137136
call ed_total_balance_check(currentSite, 0)
138-
139-
if (do_ed_phenology) then
137+
138+
! We do not allow phenology while in ST3 mode either, it is hypothetically
139+
! possible to allow this, but we have not plugged in the litter fluxes
140+
! of flushing or turning over leaves for non-dynamics runs
141+
if (hlm_use_ed_st3.eq.ifalse) then
140142
call phenology(currentSite, bc_in )
141143
end if
142144

145+
143146
if (hlm_use_ed_st3.eq.ifalse) then ! Bypass if ST3
144147
call fire_model(currentSite, bc_in)
145148

@@ -346,7 +349,6 @@ subroutine ed_integrate_state_variables(currentSite, bc_in )
346349

347350
currentSite%flux_in = currentSite%flux_in + currentCohort%npp_acc * currentCohort%n
348351

349-
350352
leaf_c = currentCohort%prt%GetState(leaf_organ, all_carbon_elements)
351353
currentCohort%treelai = tree_lai(leaf_c, currentCohort%pft, currentCohort%c_area, currentCohort%n, &
352354
currentCohort%canopy_layer, currentPatch%canopy_layer_tlai, &
@@ -356,7 +358,8 @@ subroutine ed_integrate_state_variables(currentSite, bc_in )
356358
currentPatch%canopy_layer_tlai, currentCohort%treelai,currentCohort%vcmax25top,6 )
357359

358360

359-
! Conducte Maintenance Turnover (parteh)
361+
! Conduct Maintenance Turnover (parteh)
362+
360363
call currentCohort%prt%CheckMassConservation(ft,3)
361364
call PRTMaintTurnover(currentCohort%prt,ft,currentSite%is_drought)
362365
call currentCohort%prt%CheckMassConservation(ft,4)

main/EDTypesMod.F90

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,6 @@ module EDTypesMod
8080
! its leaves and should not be trying to allocate
8181
! towards any growth.
8282

83-
! Switches that turn on/off ED dynamics process (names are self explanatory)
84-
! IMPORTANT NOTE!!! THESE SWITCHES ARE EXPERIMENTAL.
85-
! THEY SHOULD CORRECTLY TURN OFF OR ON THE PROCESS, BUT.. THERE ARE VARIOUS
86-
! ASPECTS REGARDING DIAGNOSING RATES AND HOW THEY ARE REPORTED WHEN THESE
87-
! PROCESSES ARE OFF THAT NEED TO BE DISCUSSED AND CONSIDERED.
88-
! TO-DO: THESE SHOULD BE PARAMETERS IN THE FILE OR NAMELIST - ADDING THESE
89-
! WAS OUTSIDE THE SCOPE OF THE VERY LARGE CHANGESET WHERE THESE WERE FIRST
90-
! INTRODUCED (RGK 03-2017)
91-
92-
logical, parameter :: do_ed_phenology = .true.
93-
94-
9583
! Flag to turn on/off salinity effects on the effective "btran"
9684
! btran stress function.
9785

main/FatesHistoryInterfaceMod.F90

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1887,51 +1887,50 @@ subroutine update_history_dyn(this,nc,nsites,sites)
18871887
hio_npp_stor_si_scpf(io_si,scpf) = hio_npp_stor_si_scpf(io_si,scpf) + &
18881888
store_c_net_alloc*n_perm2
18891889

1890-
! Woody State Variables (basal area and number density and mortality)
1890+
! Woody State Variables (basal area growth increment)
18911891
if (EDPftvarcon_inst%woody(ft) == 1) then
1892-
1893-
hio_m1_si_scpf(io_si,scpf) = hio_m1_si_scpf(io_si,scpf) + ccohort%bmort*ccohort%n
1894-
hio_m2_si_scpf(io_si,scpf) = hio_m2_si_scpf(io_si,scpf) + ccohort%hmort*ccohort%n
1895-
hio_m3_si_scpf(io_si,scpf) = hio_m3_si_scpf(io_si,scpf) + ccohort%cmort*ccohort%n
1896-
hio_m7_si_scpf(io_si,scpf) = hio_m7_si_scpf(io_si,scpf) + &
1897-
(ccohort%lmort_direct+ccohort%lmort_collateral+ccohort%lmort_infra) * ccohort%n
1898-
hio_m8_si_scpf(io_si,scpf) = hio_m8_si_scpf(io_si,scpf) + ccohort%frmort*ccohort%n
1899-
1900-
hio_m1_si_scls(io_si,scls) = hio_m1_si_scls(io_si,scls) + ccohort%bmort*ccohort%n
1901-
hio_m2_si_scls(io_si,scls) = hio_m2_si_scls(io_si,scls) + ccohort%hmort*ccohort%n
1902-
hio_m3_si_scls(io_si,scls) = hio_m3_si_scls(io_si,scls) + ccohort%cmort*ccohort%n
1903-
hio_m7_si_scls(io_si,scls) = hio_m7_si_scls(io_si,scls) + &
1904-
(ccohort%lmort_direct+ccohort%lmort_collateral+ccohort%lmort_infra) * ccohort%n
1905-
hio_m8_si_scls(io_si,scls) = hio_m8_si_scls(io_si,scls) + &
1906-
ccohort%frmort*ccohort%n
1907-
1908-
!C13 discrimination
1909-
if(gpp_cached + ccohort%gpp_acc_hold > 0.0_r8)then
1910-
1911-
hio_c13disc_si_scpf(io_si,scpf) = ((hio_c13disc_si_scpf(io_si,scpf) * gpp_cached) + &
1912-
(ccohort%c13disc_acc * ccohort%gpp_acc_hold)) / (gpp_cached + ccohort%gpp_acc_hold)
1913-
else
1914-
hio_c13disc_si_scpf(io_si,scpf) = 0.0_r8
1915-
endif
1916-
1917-
19181892

19191893
! basal area [m2/ha]
19201894
hio_ba_si_scpf(io_si,scpf) = hio_ba_si_scpf(io_si,scpf) + &
19211895
0.25_r8*3.14159_r8*((dbh/100.0_r8)**2.0_r8)*ccohort%n
1896+
19221897
! also by size class only
19231898
hio_ba_si_scls(io_si,scls) = hio_ba_si_scls(io_si,scls) + &
19241899
0.25_r8*3.14159_r8*((dbh/100.0_r8)**2.0_r8)*ccohort%n
1925-
1926-
! number density [/ha]
1927-
hio_nplant_si_scpf(io_si,scpf) = hio_nplant_si_scpf(io_si,scpf) + ccohort%n
1928-
1900+
19291901
! growth increment
19301902
hio_ddbh_si_scpf(io_si,scpf) = hio_ddbh_si_scpf(io_si,scpf) + &
19311903
ccohort%ddbhdt*ccohort%n
19321904

19331905
end if
19341906

1907+
hio_m1_si_scpf(io_si,scpf) = hio_m1_si_scpf(io_si,scpf) + ccohort%bmort*ccohort%n
1908+
hio_m2_si_scpf(io_si,scpf) = hio_m2_si_scpf(io_si,scpf) + ccohort%hmort*ccohort%n
1909+
hio_m3_si_scpf(io_si,scpf) = hio_m3_si_scpf(io_si,scpf) + ccohort%cmort*ccohort%n
1910+
hio_m7_si_scpf(io_si,scpf) = hio_m7_si_scpf(io_si,scpf) + &
1911+
(ccohort%lmort_direct+ccohort%lmort_collateral+ccohort%lmort_infra) * ccohort%n
1912+
hio_m8_si_scpf(io_si,scpf) = hio_m8_si_scpf(io_si,scpf) + ccohort%frmort*ccohort%n
1913+
1914+
hio_m1_si_scls(io_si,scls) = hio_m1_si_scls(io_si,scls) + ccohort%bmort*ccohort%n
1915+
hio_m2_si_scls(io_si,scls) = hio_m2_si_scls(io_si,scls) + ccohort%hmort*ccohort%n
1916+
hio_m3_si_scls(io_si,scls) = hio_m3_si_scls(io_si,scls) + ccohort%cmort*ccohort%n
1917+
hio_m7_si_scls(io_si,scls) = hio_m7_si_scls(io_si,scls) + &
1918+
(ccohort%lmort_direct+ccohort%lmort_collateral+ccohort%lmort_infra) * ccohort%n
1919+
hio_m8_si_scls(io_si,scls) = hio_m8_si_scls(io_si,scls) + &
1920+
ccohort%frmort*ccohort%n
1921+
1922+
!C13 discrimination
1923+
if(gpp_cached + ccohort%gpp_acc_hold > 0.0_r8)then
1924+
hio_c13disc_si_scpf(io_si,scpf) = ((hio_c13disc_si_scpf(io_si,scpf) * gpp_cached) + &
1925+
(ccohort%c13disc_acc * ccohort%gpp_acc_hold)) / (gpp_cached + ccohort%gpp_acc_hold)
1926+
else
1927+
hio_c13disc_si_scpf(io_si,scpf) = 0.0_r8
1928+
endif
1929+
1930+
! number density [/ha]
1931+
hio_nplant_si_scpf(io_si,scpf) = hio_nplant_si_scpf(io_si,scpf) + ccohort%n
1932+
1933+
19351934
hio_agb_si_scls(io_si,scls) = hio_agb_si_scls(io_si,scls) + &
19361935
total_c * ccohort%n * EDPftvarcon_inst%allom_agb_frac(ccohort%pft) * AREA_INV
19371936

@@ -3206,6 +3205,12 @@ subroutine update_history_hydraulics(this,nc,nsites,sites,dt_tstep)
32063205
if(hlm_use_ed_st3.eq.ifalse) then
32073206
do scpf=1,nlevsclass*numpft
32083207
if( abs(hio_nplant_si_scpf(io_si, scpf)-ncohort_scpf(scpf)) > 1.0E-8_r8 ) then
3208+
write(fates_log(),*) 'numpft:',numpft
3209+
write(fates_log(),*) 'nlevsclass:',nlevsclass
3210+
write(fates_log(),*) 'scpf:',scpf
3211+
write(fates_log(),*) 'io_si:',io_si
3212+
write(fates_log(),*) 'hio_nplant_si_scpf:',hio_nplant_si_scpf(io_si, scpf)
3213+
write(fates_log(),*) 'ncohort_scpf:',ncohort_scpf(scpf)
32093214
write(fates_log(),*) 'nplant check on hio_nplant_si_scpf fails during hydraulics history updates'
32103215
call endrun(msg=errMsg(sourcefile, __LINE__))
32113216
end if

main/FatesRestartInterfaceMod.F90

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ module FatesRestartInterfaceMod
9696
integer, private :: ir_canopy_trim_co
9797
integer, private :: ir_size_class_lasttimestep_co
9898
integer, private :: ir_dbh_co
99+
integer, private :: ir_g_sb_laweight_co
99100
integer, private :: ir_height_co
100101
integer, private :: ir_laimemory_co
101102
integer, private :: ir_nplant_co
@@ -804,6 +805,10 @@ subroutine define_restart_vars(this, initialize_variables)
804805
units='0/1', flushval = flushone, &
805806
hlms='CLM:ALM', initialize=initialize_variables, ivar=ivar, index = ir_isnew_co )
806807

808+
call this%set_restart_var(vname='fates_gsblaweight',vtype=cohort_r8, &
809+
long_name='ed cohort - leaf-area weighted total stomatal+blayer conductance', &
810+
units='[m/s]*[m2]', flushval = flushzero, &
811+
hlms='CLM:ALM', initialize=initialize_variables, ivar=ivar, index = ir_g_sb_laweight_co)
807812

808813
! Mixed dimension variables using the cohort vector
809814
! -----------------------------------------------------------------------------------
@@ -1468,6 +1473,7 @@ subroutine set_restart_vectors(this,nc,nsites,sites)
14681473
rio_canopy_trim_co => this%rvars(ir_canopy_trim_co)%r81d, &
14691474
rio_size_class_lasttimestep => this%rvars(ir_size_class_lasttimestep_co)%int1d, &
14701475
rio_dbh_co => this%rvars(ir_dbh_co)%r81d, &
1476+
rio_g_sb_laweight_co => this%rvars(ir_g_sb_laweight_co)%r81d, &
14711477
rio_height_co => this%rvars(ir_height_co)%r81d, &
14721478
rio_laimemory_co => this%rvars(ir_laimemory_co)%r81d, &
14731479
rio_nplant_co => this%rvars(ir_nplant_co)%r81d, &
@@ -1654,6 +1660,7 @@ subroutine set_restart_vectors(this,nc,nsites,sites)
16541660
rio_dbh_co(io_idx_co) = ccohort%dbh
16551661
rio_height_co(io_idx_co) = ccohort%hite
16561662
rio_laimemory_co(io_idx_co) = ccohort%laimemory
1663+
rio_g_sb_laweight_co(io_idx_co)= ccohort%g_sb_laweight
16571664

16581665
rio_nplant_co(io_idx_co) = ccohort%n
16591666
rio_gpp_acc_co(io_idx_co) = ccohort%gpp_acc
@@ -2179,6 +2186,7 @@ subroutine get_restart_vectors(this, nc, nsites, sites)
21792186
rio_canopy_trim_co => this%rvars(ir_canopy_trim_co)%r81d, &
21802187
rio_size_class_lasttimestep => this%rvars(ir_size_class_lasttimestep_co)%int1d, &
21812188
rio_dbh_co => this%rvars(ir_dbh_co)%r81d, &
2189+
rio_g_sb_laweight_co => this%rvars(ir_g_sb_laweight_co)%r81d, &
21822190
rio_height_co => this%rvars(ir_height_co)%r81d, &
21832191
rio_laimemory_co => this%rvars(ir_laimemory_co)%r81d, &
21842192
rio_nplant_co => this%rvars(ir_nplant_co)%r81d, &
@@ -2326,6 +2334,7 @@ subroutine get_restart_vectors(this, nc, nsites, sites)
23262334
ccohort%canopy_trim = rio_canopy_trim_co(io_idx_co)
23272335
ccohort%size_class_lasttimestep = rio_size_class_lasttimestep(io_idx_co)
23282336
ccohort%dbh = rio_dbh_co(io_idx_co)
2337+
ccohort%g_sb_laweight= rio_g_sb_laweight_co(io_idx_co)
23292338
ccohort%hite = rio_height_co(io_idx_co)
23302339
ccohort%laimemory = rio_laimemory_co(io_idx_co)
23312340
ccohort%n = rio_nplant_co(io_idx_co)

0 commit comments

Comments
 (0)