Changes between Version 2 and Version 3 of Documentation/TrunkFunctionality


Ignore:
Timestamp:
2020-03-06T14:51:18+01:00 (4 years ago)
Author:
luyssaert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/TrunkFunctionality

    v2 v3  
    11[[PageOutline]] 
    2 == ORCHIDEE TRUNK (r6613) == 
    3 ORCHIDEE TRUNK r6613 is a combination of three code bases: ORCHIDEE 3 as it was in February 2020, ORCHIDEE-CN as it was in 2016 and the key functionality of ORCHIDEE-CAN as it was in 2019. The committed version can be considered a light version of what is typically expected from the ORCHIDEE trunk because some of the available functionality has not yet been committed (for example, the DGVM). 
     2== ORCHIDEE TRUNK (r6614) == 
     3ORCHIDEE TRUNK r6614 is a combination of three code bases: ORCHIDEE 3 as it was in February 2020, ORCHIDEE-CN as it was in 2016 and the key functionality of ORCHIDEE-CAN as it was in 2019. The committed version can be considered a light version of what is typically expected from the ORCHIDEE trunk because some of the available functionality has not yet been committed (for example, the DGVM). 
    44 
    55Consider the model as two parts: 1) core processes that affect fluxes and pools on the per square meter level, and 2) perirpheric processes that involve everything else.  In this picture, the light version is believed to contain all core processes and the functionality that is not yet included thus depends on core processes like vegetation growth, soil hydrology or the energy budget, but it does not affect these processes at the pixel level. 
     
    77* Missing functionalities compared to ORCHIDEE-CN: none  
    88* Missing functionalities compared to ORCHIDEE-CAN: none 
    9 * Coupling: ORCHIDEE TRUNK r6613 has been coupled with LMDZ TRUNK r1399 resulting in LMDzOR v6.4. Given that several key variables for the coupling (for example, albedo and roughness are now dynamic and more heterogeneous due to the use of age classes) have changed in ORCHIDEE TRUNK r6613 and it is therefore expected that lots of testing will be required to come to satisfying results. 
     9* Coupling: ORCHIDEE TRUNK r6614 has been coupled with LMDZ TRUNK r1399 resulting in LMDzOR v6.4. Given that several key variables for the coupling (for example, albedo and roughness are now dynamic and more heterogeneous due to the use of age classes) have changed in ORCHIDEE TRUNK r6614 and it is therefore expected that lots of testing will be required to come to satisfying results. 
    1010 
    1111== Functionalities (alphabetical order) == 
    1212 
    13 === Age classes (r6613) === 
     13=== Age classes (r6614) === 
    1414Age classes were introduced to better handle heterogeneity at the landscape level. The feature allows us to distinguish between different successional stages of the same PFT (e.g., a newly grown forest vs. a mature forest). Age classes are independent of the number of diameter classes. Using age classes adds a lot of details to both the biophysics and the biogeochemistry following natural disturbances, forest management and land cover change. If half of a grassland is afforested with a PFT that already exists in the pixel, previous versions of ORCHIDEE will combine this newly forest land and the existing forest in a single PFT. This will result in, for example, a low albedo, a high roughness, and other properties.  When age classes are used, the newly afforested and the existing forest will end up in separate PFTs. One will have a high albedo, the other a low albedo, and other properties may differ significantly as well. In CAN with age classes, PFTs are only merged if the youngest age class for a PFT already has biomass. 
    1515 
     
    6565}}} 
    6666 
    67 === Albedo (r6613) === 
     67=== Albedo (r6614) === 
    6868ORCHIDEE-CN-CAN makes use of a two stream radiative transfer scheme through the canopy, extended to multiple canopy levels (https://doi.org/10.5194/gmd-2016-280). The scheme is based on Pinty et al 2006. This approach accounts not only for the leaf mass but also for the vertical and horizontal distribution of the leaf mass (=canopy structure), calculating an effective LAI based on the solar angle. Light from collimated (black sky) and diffuse (white sky) sources are used, and both are weighted equally as information about this partitioning is not yet available in forcing data.  In ORCHIDEE-CN-CAN the same scheme is used to simulate the reflected, transmitted and absorbed light, of which the absorbed light as a function of canopy level is passed to the photosynthesis routines and used in place of the exponential LAI layering found in older versions of the TRUNK (see the section Photosynthesis). This implies that albedo and photosynthesis are now fully consistent as well as the light reaching the forest floor (the latter is used in for example recruitment). ORCHIDEE-CN-CAN cannot revert to previous approaches for calculating albedo. 
    6969  
     
    8080The snow albedo could be either prescribed (in condveg_init.f90) or calculated following Chalita and Treut (1994) '''do_new_snow_albedo = n ''' or calculated following CLM3 '''do_new_snow_albedo = y'''. The difference between the latter two methods has not been tested yet. The CLM method was added to CN-CAN, the Chalita and Treut method was added in parallel to the runk. When merging both versions we ended up with two options. 
    8181 
    82 === Allocation (r6613) === 
     82=== Allocation (r6614) === 
    8383ORCHIDEE-CN-CAN uses the allometric allocation as developed in O-CN. In ORCHIDEE-CAN the approach was adjusted to work for more than one diameter class. Since it was developed this allocation has been used in ORCHIDEE-CN and ORCHIDEE-CNP. In those branches only a single diameter class was used. Except for the way the reserves and labile pools are calculated (incl. the pseudo sugar loading), the allocation scheme remained rather similar between the aforementioned versions. The model is, however, very sensitive to the way the reserves and labile pools are calculated. The allocation makes use of a labile pool for which the activity is calculated based on the temperature. This sensitivity is important at the start and the end of the growing seasons when temperatures may be low. As such the model addresses the sink/source discussion initiated by Körner. Whereas this approach resulted in an acceptable interannual variability in for example NPP in ORCHIDEE-CAN, adding N seems to have dampen the interannual variability a lot/too much. This dampening was observed in ORCHIDEE-CN  and ORCHIDEE-CN-CAN. IN ORCHIDEE-CNP the temperature relationship was removed (hence NPP and GPP are strictly coupled) because the interannual variability became unrealistic.  
    8484 
     
    8989Previously there was a functional link between C and N-allocation and the hydraulic architecture of a plant because both approaches used the same parameter k_root. In DOFOCO k_root described the conductivity of the fine roots and the soil. In ORCHIDEE-CN-CAN this joined conductivity has been split in a fine root conductivity and a soil to root conductivity. Allocation should make use of both conductivities but soil to root conductivity cannot be easily calculated when needed in the allocation. This is subject to future developments. Accounting for the soil to root conductivity in the allocation would imply an adaptation of plant growth to its environment.   
    9090 
    91 === Anthropogenic species change (r6613) === 
     91=== Anthropogenic species change (r6614) === 
    9292Following a disturbance (which could be a clear cut), tree species changes and forest management change can be prescribed or read from a map in ORCHIDEE-CN-CAN. Set '''ok_change_species''' = y, '''read_species_change_map''' = y, and '''read_desired_fm_map''' = y and specify the paths of those maps in the COMP/stomate.card. A example of such a configuration can be found in config/ORCHIDEE_OL/OOL_SEC_STO_FG5. This functionality replaces the DGVM in areas where humans rather than nature govern species distribution, for example, Europe. Note that there are some constraints on the possible species changes. If the forest is unmanaged (fm=1), the code assumes that nature will determine the species rather than humans. Anthropogenic species change has not been developed to work together with land cover change. For the moment it is one or the other. When testing this functionality read_species_change_map and/or read_desired_fm_map could be set to n. The new forest management strategy can then be simply prescribed by setting the parameter '''fm_change_force''' to one of the four fm strategies. Likewise the new species can be prescribed by setting the parameter '''species_change_force''' to the desired PFT number. 
    9393 
    94 === Bare soil (r6613) === 
     94=== Bare soil (r6614) === 
    9595The flag '''ok_bare_soil_new''' controls how the bare soil is perceived and calculated. If set to FALSE the total bare soil is still calculated as a function of veget. When a deciduous PFT sheds its leaves, the gaps in the forest will contribute to bare soil fraction in the grid. Although this approach was introduced a long time ago to get acceptable evaporation estimates from forest, the approach also resulted in using the albedo of deserts as the background albedo of forest gaps. The new albedo scheme (see Albedo and Background albedo) considers a specific background albedo for each PFT and calculates the albedo of the PFT including the canopy gaps. Moving gaps to the bare soil is no longer needed. So, if '''ok_bare_soil_new''' is set to TRUE, canopy gaps no longer contribute to the bare soil. It needs to be tested what will happen with the evaporation in the single-layer model. The multi-layer energy budget should be able to correctly deal with the gaps in the canopy because the diffusivity will increase when the canopy is becoming sparser. 
    9696 
    9797At present the default settings combine the new albedo scheme with the single layer energy budget (enerbil) and '''ok_bare_soil_new''' = n. The consequences of this combination of settings should be evaluated against observations. 
    9898 
    99 === Bark beetles (r6613) === 
     99=== Bark beetles (r6614) === 
    100100The bark beetle module was developed such that it interacts with the windthrow module. If you want to activate it use the flag OK_PEST=y in the run.def. To specify which PFT may be affected by bark beetles use BEETLE_PFT_xxx= TRUE where XXX is the pft you interested in. Note that for the moment bark beetles in ORCHIDEE is parameterized only to work with Picea abies. 
    101101 
    102 === C13 (r6613) === 
     102=== C13 (r6614) === 
    103103The concentration of C13 in the leaves can be calculated by setting '''ok_c13''' to y in the run.def. This calculation follows Farquhar's approach and is currently limited to the fractionation in the leaves. Following changes to the recalculation of GPP under plant water stress the calculation of Ci is no longer accurate. This may have broken the functionality to calculate C13. Needs to be tested. 
    104104 
    105 === Configurations (r6613) === 
     105=== Configurations (r6614) === 
    106106The model comes with the following configuration set-ups (config/ORCHIDEE_OL): 
    107107* SPINUP: used for single pixel FLUXNET runs. 
     
    117117* FORCESOIL: Not maintained for ORCHIDEE-CN-CAN. Will be added back once forcesoil.exe has been restored. 
    118118 
    119 === Consistency checks (r6613) === 
     119=== Consistency checks (r6614) === 
    120120The code distinguishes between three options to check for mass and surface conservation. These options are controlled by the parameter '''err_act'''. Always use err_act = 3 when developing and testing the code. Note that in addition to checking for mass balance closure ORCHIDEE-CN-CAN will also check for the conservation of veget_max and frac_nobio. This is useful to make sure no surface area is lost when moving biomass from one PFT to another following natural disturbances, forest management, land cover changes and when using age classes. In some parts of the code, for example, modules that deal with disturbances, it is assumed that the tallest trees are stored in the last diameter class. When the difference in diameter between diameter classes becomes very small, this assumption could be violated. Therefore, the diameter classes are sorted to enforce the assumed order and where needed the order is checked. 
    121121* err_act = 1 is recommended when running global long-term simulations. Under this option, mass balance closure is checked for all biogeochemical processes but only at the highest level thus stomate.f90 and stomate_lpj.f90. Although the mass balance checks are not very expensive in terms of computer time, skipping the numerous lower level checks is expected to save some time. Under this option the total mass balance error is only written to the history file. No information is provided in which subroutine the problem occurred. 
     
    126126Makes use of sapiens_planting and sapiens_harvest. Harvest goes into harvest_pool (just like wood) and its decomposition is accounted for in the fluxes from the product use pool. 
    127127 
    128 === CWRR vs Choinel (r6613) === 
     128=== CWRR vs Choinel (r6614) === 
    129129ORCHIDEE-CN-CAN was developed and tested with CWRR. The Choinel code is removed from ORCHIDEE-CN-CAN. The hydrological schemes were not touched during the development of ORCHIDEE-CN-CAN. The hydraulic architecture in ORCHIDEE-CN-CAN relies on CWRR. 
    130130 
     
    142142The above declaration implies that 9/15th of the trees will always be in the smallest diameter class, 5/15th will be in the medium class and 1 tree out of 15 will be in the largest diameter class. These ratios are kept throughout the simulations and the boundaries of the diameter classes are adjusted to respect this constraint. Consequently, an even-aged stand will be simulated with three diameter classes where the diameter of the first class may be, for example, 20.3 cm, the diameter of the second class 20.4 cm and the diameter of the third class 20.5 cm. The same code and set-up allows to simulate, in the same simulation, an uneven-aged stand for the same PFT but in a different pixel with, for example, the smallest diameter 7 cm, the medium diameter 25 cm and the largest diameter 45 cm. 
    143143 
    144 === Forced clear cut (r6613) === 
     144=== Forced clear cut (r6614) === 
    145145'''OK_CLEARCUT''' is a flag used to force ORCHIDEE-CN-CAN to clearcut a forest after one year of simulation. This flag is set to TRUE in order to start a new stand at the beginning of the FIN step in ENSEMBLE runs. It helps us to control the stand age at the end of the HIST step. If you want to use this flag for other purposes, do not forget that a clearcut means that the majority of the living biomass is removed (circ_class_biomass for sapwood and heartwood), but the other pools are transferred in the litter pool (leaf, branches, fruit, fine root). Note that if '''OK_CLEARCUT''' is used, the model will clearcut at the end of every year. The typical set-up should be: 300 years of spin-up with '''OK_CLEARCUT''' set to FALSE, 1 year with '''OK_CLEARCUT''' set to TRUE, a simulation with the length similar to the age of the forest with '''OK_CLEARCUT''' set to FALSE.  
    146146 
     
    177177 
    178178 
    179 === Harvest (r6613) === 
     179=== Harvest (r6614) === 
    180180All biomass harvest is recorded in a harvest variable '''harvest_pool''', this variable also stores the mass and dimensions of the harvest/mortality (absolute numbers thus accounting for the pixel area!). Related variables were introduced: '''harvest_type''', '''harvest_cut''', and '''harvest_area'''. Wood product pools and fluxes from wood and biomass decomposition are calculated in a separate module dedicated to wood use. The dimension of the wood use pools were externalized and can be changed to better address regional differences when aiming for regional simulations. The default 1, 10 and 100 year pools were replaced by 2, 17 and 50 years which is closer to the reality for Europe. For most parts of the world a 100 year wood pool is very optimistic.  
    181181 
     
    207207}}} 
    208208 
    209 === Litter raking (r6613) === 
     209=== Litter raking (r6614) === 
    210210Tree litter was collected from the forest and used in the winter in stables instead of straw. In spring the litter and manure was spread on the croplands. This lateral flow of C and N between PFTS in the same pixel can be accounted for in ORCHIDEE-CN-CAN by setting '''use_litter_raking''' = y. If litter raking is to be used, the model will search for annual maps. The path of these maps needs to be specified in COMP/stomate.card. Litter raking maps were prepared for Europe. Unless liter raking is your research topic set '''use_litter_raking''' = n. An example of to set up the model to make use of the historical litter raking maps can be found in config/ORCHIDEE_OL/OOL_SEC_STO_FG4 
    211211 
     
    245245}}} 
    246246 
    247 === Parameter files (r6613) === 
     247=== Parameter files (r6614) === 
    248248A model run now requires three different parameter files: run.def, orchidee.def and orchidee_pft.def. LibIGCM reads these files in COMP/orchidee_ol.card.  
    249249* The run.def contains all the information for the driver. This is also the file where the default global domain can be reduced (LIMIT_N, LIMIT_S, LIMIT_E and LIMIT_W). When the same experiment is to run in off-line and coupled mode, only the run.def should be changed. 
     
    262262From a conceptual point of view, CN-CAN is all about vegetation dynamics and thus instabilities in the vegetation cover. In CN-CAN there are two processes that can deal with dying PFts including evergreens PFTs. First, ok_recruitment could used. If ok_recruitment = .TRUE. a decrease in the canopy cover will result in more light reaching the forest floor which in turn should trigger recruitment of -for the moment- the same PFT. Generation can take over from each other without loosing the canopy cover entirely. Second, if there are insufficient reserves to grow no leaves, there will be no or insufficient gpp, the carbon reserves will be consumed by respiration processes, the plants will be killed, the biomass transferred to the litter pools and the same or another PFT (see section on species change) will be replanted. CN-CAN was developed to work with always_init = .FALSE. so this has become the default value, contrary to the trunk where always_init = .TRUE. is the default. 
    263263 
    264 === Photosynthesis (r6613) === 
     264=== Photosynthesis (r6614) === 
    265265Photosynthesis is calculated as in ORCHIDEE-CAN, and ORCHIDEE-CN but the way the canopy levels are defined has changed. The reason of this change is in the albedo and energy budget for which physical layers are required. For this reason the space between the bottom and the top of the canopy is divided into x layers. x is set by the parameter '''nlevels_photo'''. Applications with ORCHIDEE-CAN used nlevels_photo = 10. This values was retained in ORCHIDEE-CN-CAN. Contrary to ORCHIDEE-CN and previous versions of ORCHIDEE where each canopy layer contained 0.5 units of LAI, in ORCHIDEE-CN-CAN, each canopy layer will have the same depth (in m) but will contain a different amount of LAI because tree canopies are assumed spherical. 
    266266 
     
    290290The regulation is smoothened by setting boundaries to avoid sudden decreases in GPP (which are not apparent in the data). Smoothing is taken care of in stomate_vmax.f90. If the plant has less carbon in its labile and carbres pools than wanted, the NUE is upregulated. Up regulation is also capped to avoid crazy NUE values and high frequency changes between up and downregulation. Up and downregulation are done in stomate_vmax.f90. The parameters than control the smoothing are '''sugar_load_min''' and '''sugar_load_max''' and can be set in the run.def. 
    291291 
    292 === Recruitment (r6613) === 
     292=== Recruitment (r6614) === 
    293293When stands grow old the tree density decreases and under certain conditions the LAI can no longer cover the ground area. When this happens productivity will start to decrease. In nature the decrease in LAI comes with an increase in the amount of light reaching the forest floor which enables seedlings to grow and to restore the LAI. This process is known as recruitment. Note that in managed forest and forest with a lot of stand replacing disturbances (for example, fire) the forest may never reach the stage where the canopy sufficiently opens up to enable recruitment. 
    294294 
     
    297297Recruitment has been developed, tested and validated for tropical forests. There is no reason why it shouldn't work for other forests. Initial test for temperate regions show that it works there as well. Also forest productivity at higher ages seems relatively sensitive to recruitment. At present recruitment was introduced at the PFT level. It probably makes more sense to link it to the management strategy than to the PFT. This needs to be checked. 
    298298 
    299 === River routing (r6613) === 
     299=== River routing (r6614) === 
    300300The river routing code was not touched during the development of ORCHIDEE-CN-CAN. This functionality works has not been evaluated yet for ORCHIDEE-CN-CAN, although it technically runs. Unless rivers are your main interest, set '''river_routing''' to n. The functionality still has problem when combined with the zoomed grids because pixels far away from the zoom become so big that some rivers can no longer reach the sea.  
    301301 
    302 === run.def (r6613) === 
     302=== run.def (r6614) === 
    303303The format of the run.def has been modified to use the same structure for both coupled and off-line runs.  The run.def is split between its driver settings (written in run.def), general items which control the ORCHIDEE model (in the orchidee.def file), and PFT-dependent parameters (in the orchidee_pft.def file). A script is now included with the config/ORCHIDEE_OL directory called MAKE_RUN_DEF. This scripts generates different orchidee_pfts.def files. Default model configurations (and thus different orchidee.def files) can be found in config/ORCHIDEE_OL. 
    304304 
     
    365365}}} 
    366366 
    367 === Specific leaf area (r6613) === 
     367=== Specific leaf area (r6614) === 
    368368Similar to ORCHIDEE-CN, ORCHIDEE-CN-CAN users can choose to use a constant specific leaf area (SLA) or a dynamic (SLA) by setting the flag '''dyn_sla'''. SLA is a fundamental parameter in the allocation scheme and it is well established that SLA is dynamic in nature especially during leaf onset. Nevertheless, the effect of this flag is much more limited than one could expect based on the perceived importance of sla. 
    369369 
    370 === Spin-up (r6613) === 
     370=== Spin-up (r6614) === 
    371371The analytical spin-up works with ORCHIDEE-CN-CAN. To ensure growth at the onset of the analytic spin-up for all PFTs initial values are needed for the SOM pools, and that is  irrespective of whether IMPOSE_CN is y or n. The initial pools are set in stomate_io.f90, and they can be specified in the run.def by: 
    372372{{{ 
     
    400400* NCO commands could be used to hack into the restart file. This could be powerful when stomate is used and one wants to restart the model after a spin-up but also want that the forest starts growing the first year of the simulation. In that case circ_class_biomass and circ_class_n should be set to zero. This approach is straightforward when no age classes are used. When age classes are used many more variables need to be moved to the correct PFT to avoid conflicts.      
    401401 
    402 === Sechiba vs stomate (r6613) === 
     402=== Sechiba vs stomate (r6614) === 
    403403ORCHIDEE-CN-CAN strengthened the links between sechiba and stomate. As in previous versions, stomate makes use of variables calculated in sechiba but in ORCHIDEE-CAN and ORCHIDEE-CN-CAN, sechiba requires information from stomate to work properly. It is possible to prescribe the canopy structure and thus only run sechiba. Set '''lai_map''' = y, the data for a canopy structure map need to come from an ORCHIDEE-CN-CAN run with stomate. All the required information is stored in the sechiba restart file to enable restarting the model without stomate. 
    404404 
    405 === Wind throw (r6613) === 
     405=== Wind throw (r6614) === 
    406406The calculation of wind storm damage can be activated by setting '''ok_windthrow''' to y in the orchidee.def. This module calculates the critical wind speed of a stand taking stand and soil properties into account. If the stand is managed, the damaged trees are salvaged logged. If the stand is unmanaged the damaged  trees are left on-site to decompose. The default setting for ok_windthrow is n. The damaged fractions of the stands are replanted and moved to the first age class (if more than 1 age class is used).