wiki:DevelopmentActivities/ORCHIDEE-DOFOCO

Version 19 (modified by jryder, 12 years ago) (diff)

--

RADIATION

APPROACH

The two stream radiation transfer model of Pinty et al is implemented in ORCHIDEE. This routine uses leaf scatter and canopy structure to calculate the radiation transfer and as a result albedo can be calculated

ROUTINES CHANGED

  • stomate.f90: Added the variables sinang and lai_eff to history files, added the subroutine stomate_canopy_structure and the subroutine effective_lai
  • condveg.f90: Added the subroutine condveg_2_stream, two_stream_solver and the functions gamma, bhrT1, etc.
  • intersurf.f90: Added lai_eff and sinang to the definition of the history files
  • sechiba.f90: Added lai_eff and sinang to history files

TO DO

  • Add snow
  • Discretize the scheme
  • change the dimensions of the variable albedo to store direct, diffuse, VIS and NIR
  • Check the cause of the one day mismatch in between LAI and LAI_eff
  • clean code, why is laieff and singang written in both stomate and sechiba?

TESTS

  • The old albedo scheme from the svn 1.9.5.2 code was compared against the old albedo scheme from the code of ORCHIDEE in which changes were made. Both old schemes resulted in the same numerical result



ALLOCATION

APPROACH

The functional allocation introduced in OCN is being moved into ORCHIDEE v1.9.5.2. Functional allocation respects allometric relationships between foliage, wood and root C allocation

ROUTINES CHANGED

  • stomate_alloc.f90
  • stomate_npp.f90
  • stomate_resp.f90
  • stomate.f90
  • stomate_io.f90
  • stomate_constants.f90
  • stomate_data.f90
  • sechiba.f90
  • diffuco.f90
  • intersurf.f90

TO DO

INITIALIZE & CONSISTENCY

  • Adjust stomate_data.f90 (put OCN in 1.9.5.2). Current sapling initialization is not consistent with the rest of the allometric allocation.
  • Check fcn_root(j) and fcn_wood(j) in a constantes files, define for all plant parts (needed to calculate resp and in npp), define as fcn(j,k) where j = nvm and k = ipart. This is ok for stomate_resp. check whether this would be OK for stomate_npp
  • Calculate rue_longterm in stomate_season.f90
  • In Sonke's code ! fraction of GPP which is lost as growth respiration is defined as REAL(r_std), SAVE :: frac_growthresp in 1.9.5.2 it is defined as a PARAMETER.
  • Check the values of limit_cn

LABILE & RESERVE POOL

  • Check 'use_reserve' sometimes it is a value, sometimes it looks like a flag (its value is set to 1) in stomate_alloc.f90
  • Add labile carbon pool to history file (intersurf.f90, stomate_lpj.f90)
  • Check where lab_fac comes from in stomate_resp.f90
  • Check how the labile pool is treated in 1.9.5.2 (in the old scheme -> affects the comparison of 1.9.5.2 with and without allometric-based allocation)
  • Check negative NPP spikes (side effect of issues with the labile and reserve pool?)

RUE

  • Lai is optimised for mean annual radiation use efficiency and the C costs for producing the canopy. The cost-benefit ratio is optimised when the marginal gain / marginal cost = 1 Investing 1gC in the canopy comes at a total cost that is composed by the C required for the canopy in addition to the roots and the sapwood to support the canopy. The total cost (C) is thus calculated as C: LAI * ( (1/tau_leaf)/sla + (one_year/tau_root)*LF/sla + (one_year/tau_sap)*height/(sla*KF)). The marginal cost for one unit of LAI is then dC/dLAI : (1/tau_leaf)/sla + (1/tau_root)*LF/sla + (1/tau_sap)*height/(sla*KF). Where, tau_leaf is given by ::leaflife_tab in years, tau-root by ::tau_root_d in days and tau_sap by ::tau_sap in days. LF is unitless, KF is expressed in meters and sla in m2.gC-1. The unit of dC/dLAI is thus gC.m-2 but all turnover times need to be expressed on an annual scale. Investing 1gC in the canopy enables the plant to assimilate more carbon. The gain (G) can be approximated by using the 'radiation use efficiency' as follows: RUE * one_year ( 1. - exp (-0.5 * LAI )). Where, 0.5 is the extinction factor that accounts for the fact the lower parts of the canopy receive less light. Note that RUE has a particular definition and is calculated as the ratio of GPP over the fraction of radiation absorbed by the canopy. Hence the unit of RUE is gC.m-2.day-1. The marginal gain of one unit of LAI is dG/dLAI: 0.5 * one_year * RUE exp (-0.5 * LAI). Subsequently, the optimal LAI is estimated as LAI_opt = -2. * log(2*(dC/dt)/RUE*one_year) ??Why was it not considered a cost when the leaves life longer than one year i.e. MIN(1.,leaflife_tab) in the original code - THINK ABOUT THIS!!
  • Check what will happen if Cl_target is reached? Seems that the current routines keeps allocating C to the canopy.

REST

  • Check the values of GPP and NPP (much lower with the new scheme)
  • Add the calculated height to the history files
  • Check whether a spin-up works

CAUTION

  • Both resource and allometric allocation make use of the variable pipe_tune2 and pipe_tune3. In 1.9.5.2 these variables are set to 40 and 0.5 respectively. In OCN the values are 55 and 0.65 respectively. Use the appropriate values depending on the tests.

TESTS

  • TEST 1: The old allocation scheme (flag STOMATE_FUNCTIONAL_ALLOCATION is not available) in the tag 1.9.5.2 (rev 712) was run for: (1) one pixel (52-53N, 6-7E), (2) 2 years, (3) without restart file, (4) with NCC forcing and (5) for all forest PFTs on a single pixel. The configuration can be found at home/users/sluys/MY_1_9_5_2/config/ORCHIDEE_OL/MYDEBUG1.
  • TEST 2: The old allocation scheme (flag STOMATE_FUNCTIONAL_ALLOCATION = n) in the adjusted 1.9.5.2 (rev 712) code was run for: (1) one pixel (52-53N, 6-7E), (2) 2 years, (3) without restart file, (4) with NCC forcing and (5) for all forest PFTs on a single pixel. The configuration can be found at home/users/sluys/MY_DEBUG/config/ORCHIDEE_OL/MYDEBUG2.
  • TEST 3: The new allocation scheme (flag STOMATE_FUNCTIONAL_ALLOCATION = y) in the adjusted 1.9.5.2 (rev 712) code was run for: (1) one pixel (52-53N, 6-7E), (2) 10 years, (3) without restart file, (4) with NCC forcing and (5) for all forest PFTs on a single pixel. The configuration can be found at home/users/sluys/MMY_DEBUG/config/ORCHIDEE_OL/MYDEBUG3.
  • Conclusion TEST 1 vs TEST 2: the outcome was different (OL2/MYDEBUG1/output.txt) but should have been the same. Checked ediff for config.card, stomate.card, sechiba.card, orchidee_ol.card, driver.def, stomate.def and sechiba.def: no differences except for the job name. On day 1 all variables are similat except for CO2FLUX (although the fluxes listed in the history files are the same!)
  • Conclusion TEST 3: the new allocation is stable over 10 years for PFT's 2 to 8. PFT 9 dies after 3 years but keeps its heartwood biomass for several more years (100 g C m-2). For all PFT's, NPP shows some very negative spikes for a single day (-10 gC m-2). Leaf_M and Root_M decreases with time for several PFT's.
  • Conclusion TEST 2 vs TEST 3: new allocation has substantial less NPP due to substantial higher Ra. Ra of the old scheme is very low (25%) compared to the new scheme which is closer to (40%).



ENERGY BUDGET

APPROACH

The aim of this development is to improve the simulation of the energy balance in Orchidee through the implementation of a multi-layer energy balance model that retains implicit coupling with the atmospheric model and with the sub-surface hydrology scheme. The scheme is described in full in the working document 'Towards a multi-layer representation of the energy balance in a land surface model' (contact: James Ryder).

ROUTINES TO BE CHANGED

  • enerbil.f90: Re-write to describe new calculation scheme but with the preservation of existing input and output variables
  • diffuco.f90: Re-write to calculate diffusion co-efficients in new scheme
  • intersurf.f90: Addition of new coupling co-efficients for description of transport between the surface and the LMDz atmospheric model

Attachments (8)