wiki:DevelopmentActivities/ORCHIDEE-DOFOCO

Version 24 (modified by luyssaert, 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
  • stomate_prescribe.f90
  • sechiba.f90
  • diffuco.f90
  • intersurf.f90

TO DO

POSSIBLE TICKETS

  • Stomate_prescribe calculates the number of individuals. Immediately after doing so, it checks whether the total crown areas equals veget_max (the definition of veget_max), however, it is unlikely that this condition will be satisfied. Subsequently the code calculates ind as a function of veget_max. It would be a lot more elegant if this solution could be calculated right away. Check if an analytical solution can be found.

INITIALIZE & CONSISTENCY

  • 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 where lab_fac comes from in stomate_resp.f90
  • 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 (done but needs to be checked)
  • 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.
  • The variable ::use_reserve, seems to be consistently used as a flag in the allometric based allocation. However, in the resource-based allocation it is consistently used as a C stock (gC m-2). The value is set in stomate_alloc.f90 and used in stomate_npp.f90.
  • Unexpectedly, the resource based scheme (which should simply reproduce the previous scheme) now has a seasonal cycle for ilabile (The previous scheme does not). However, it does not seem to affect the outcome and it clearly is on purpose as stomate_npp.f90 contains several lines of code dealing with ilabile in the resource based scheme.

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)