@@ -133,7 +133,7 @@ function pmodel( kphio, beta, kc_jmax, ppfd, co2, tc, vpd, patm, tc_home, c4, me
133133 real :: fact_jmaxlim ! Jmax limitation factor (unitless)
134134
135135 ! local variables for Jmax limitation following Nick Smith's method
136- real :: omega, omega_star, jmax_over_vcmax, jmax_prime
136+ real :: omega, omega_star, tc_ref, jmax_over_vcmax, jmax_prime
137137
138138 real , parameter :: theta = 0.85 ! used only for smith19 setup
139139 real , parameter :: c_cost = 0.05336251 ! used only for smith19 setup
@@ -263,19 +263,23 @@ function pmodel( kphio, beta, kc_jmax, ppfd, co2, tc, vpd, patm, tc_home, c4, me
263263 omega = calc_omega( theta = theta, c_cost = c_cost, m = out_optchi% mj ) ! Eq. S4
264264 omega_star = 1.0 + omega - sqrt ( (1.0 + omega)** 2 - (4.0 * theta * omega) ) ! Eq. 18
265265
266- ! calculate Vcmax-star, which corresponds to Vcmax at a reference temperature 'tc_home '
266+ ! calculate Vcmax-star, which corresponds to Vcmax at a reference temperature 'tc_ref '
267267 vcmax_star = kphio * ppfd * out_optchi% mjoc * omega_star / (8.0 * theta) ! Eq. 19
268+
269+ ! tc_ref is the optimum temperature in K, assumed to be the temperature at which Vcmax* is operating.
270+ ! tc_ref is estimated based on its relationship to growth temperature following Kattge & Knorr 2007
271+ tc_ref = 0.44 * tc + 24.92
268272
269273 ! calculated acclimated Vcmax at prevailing growth temperatures
270- ftemp_inst_vcmax = calc_ftemp_inst_vcmax( tc, tc )
274+ ftemp_inst_vcmax = calc_ftemp_inst_vcmax( tc, tc, tc_ref = tc_ref )
271275 vcmax = vcmax_star * ftemp_inst_vcmax ! Eq. 20
272276
273277 ! calculate Jmax
274278 jmax_over_vcmax = (8.0 * theta * omega) / (out_optchi% mjoc * omega_star) ! Eq. 15 / Eq. 19
275279 jmax_prime = jmax_over_vcmax * vcmax
276280
277281 ! light use efficiency
278- lue = c_molmass * kphio * out_optchi% mj * omega_star / (8.0 * theta)
282+ lue = c_molmass * kphio * out_optchi% mj * omega_star / (8.0 * theta) ! treat theta as a calibratable parameter
279283
280284 else if (method_jmaxlim==" none" ) then
281285
@@ -303,7 +307,7 @@ function pmodel( kphio, beta, kc_jmax, ppfd, co2, tc, vpd, patm, tc_home, c4, me
303307 ! Corrolary preditions (This is prelimirary!)
304308 !- ----------------------------------------------------------------------
305309 ! Vcmax25 (vcmax normalized to 25 deg C)
306- ftemp_inst_vcmax = calc_ftemp_inst_vcmax(tc, tc)
310+ ftemp_inst_vcmax = calc_ftemp_inst_vcmax( tc, tc, tc_ref = 25.0 )
307311 vcmax25 = vcmax / ftemp_inst_vcmax
308312
309313 ! ! Dark respiration at growth temperature
@@ -328,7 +332,7 @@ function pmodel( kphio, beta, kc_jmax, ppfd, co2, tc, vpd, patm, tc_home, c4, me
328332 ! (-) * (-) * (mol m-2 s-1) / (-)
329333 end if
330334 ! for normalization using temperature response from Duursma et al., 2015, implemented in plantecophys R package
331- ftemp_inst_jmax = calc_ftemp_inst_jmax(tc, tc, tc_home)
335+ ftemp_inst_jmax = calc_ftemp_inst_jmax(tc, tc, tc_home, tc_ref = 25.0 )
332336 jmax25 = jmax / ftemp_inst_jmax
333337 end if
334338
@@ -892,14 +896,15 @@ function calc_ftemp_inst_rd( tc ) result( fr )
892896 end function calc_ftemp_inst_rd
893897
894898
895- function calc_ftemp_inst_vcmax ( tc_leaf , tc_growth ) result( fv )
899+ function calc_ftemp_inst_vcmax ( tc_leaf , tc_growth , tc_ref ) result( fv )
896900 !- ----------------------------------------------------------------------
897901 ! Calculates the instantaneous temperature response factor for Vcmax.
898902 !
899903 ! Arguments:
900904 ! tc_leaf: Instantaneous leaf temperature (°C)
901905 ! tc_growth: Growth temperature, 30-day mean damped temperature (°C)
902906 ! tc_home: Long-term mean maximum temperature of the warmest month (°C)
907+ ! tc_ref: Reference temperature (°C), is 'to' in Nick's set it to 25 °C (=298.15 K in other cals)
903908 !
904909 ! Returns:
905910 ! fv: Instantaneous temperature response factor (unitless)
@@ -911,9 +916,10 @@ function calc_ftemp_inst_vcmax( tc_leaf, tc_growth ) result( fv )
911916 ! Function arguments
912917 real , intent (in ) :: tc_leaf
913918 real , intent (in ) :: tc_growth
919+ real , intent (in ) :: tc_ref
914920
915921 ! Local variables
916- real :: tc_ref, tk_ref, tk_leaf, dent, fva, fvb
922+ real :: tk_ref, tk_leaf, dent, fva, fvb
917923 real :: Ha, Hd
918924
919925 ! Output variable
@@ -923,7 +929,6 @@ function calc_ftemp_inst_vcmax( tc_leaf, tc_growth ) result( fv )
923929 Ha = (42.6 + 1.14 * tc_growth) * 1.0e3 ! activation energy (J/mol)
924930 Hd = 200000.0 ! deactivation energy (J/mol)
925931 ! kR ! kR is universal gas constant (J/mol/K)
926- tc_ref = 25.0 ! reference temperature (deg C)
927932
928933 tk_ref = tc_ref + 273.15 ! to Kelvin
929934 tk_leaf = tc_leaf + 273.15 ! to Kelvin
@@ -937,14 +942,15 @@ function calc_ftemp_inst_vcmax( tc_leaf, tc_growth ) result( fv )
937942 end function calc_ftemp_inst_vcmax
938943
939944
940- function calc_ftemp_inst_jmax ( tc_leaf , tc_growth , tc_home ) result( fv )
945+ function calc_ftemp_inst_jmax ( tc_leaf , tc_growth , tc_home , tc_ref ) result( fv )
941946 !- ----------------------------------------------------------------------
942947 ! Calculates the instantaneous temperature response factor for Jmax.
943948 !
944949 ! Arguments:
945950 ! tc_leaf: Instantaneous leaf temperature (°C)
946951 ! tc_growth: Growth temperature, 30-day mean damped temperature (°C)
947952 ! tc_home: Long-term mean maximum temperature of the warmest month (°C)
953+ ! tc_ref: Reference temperature (°C), is 'to' in Nick's set it to 25 °C (=298.15 K in other cals)
948954 !
949955 ! Returns:
950956 ! fv: Instantaneous temperature response factor (unitless)
@@ -957,9 +963,10 @@ function calc_ftemp_inst_jmax( tc_leaf, tc_growth, tc_home ) result( fv )
957963 real , intent (in ) :: tc_leaf
958964 real , intent (in ) :: tc_growth
959965 real , intent (in ) :: tc_home
966+ real , intent (in ) :: tc_ref
960967
961968 ! Local variables
962- real :: tc_ref, tk_ref, tk_leaf, dent, fva, fvb
969+ real :: tk_ref, tk_leaf, dent, fva, fvb
963970 real :: Hd, Ha
964971
965972 ! Output variable
@@ -969,7 +976,6 @@ function calc_ftemp_inst_jmax( tc_leaf, tc_growth, tc_home ) result( fv )
969976 Ha = 40710.0 ! J/mol (constant activation energy for Jmax)
970977 Hd = 200000.0 ! deactivation energy (J/mol)
971978 ! kR ! kR is universal gas constant (J/mol/K)
972- tc_ref = 25.0 ! reference temperature (deg C)
973979
974980 tk_ref = tc_ref + 273.15 ! to Kelvin
975981 tk_leaf = tc_leaf + 273.15 ! to Kelvin
0 commit comments