Changes between Version 25 and Version 26 of Documentation/TrunkFunctionality4


Ignore:
Timestamp:
2020-03-09T20:03:39+01:00 (4 years ago)
Author:
luyssaert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/TrunkFunctionality4

    v25 v26  
    203203 
    204204 
    205 ++++ CONTINUE CHECKING +++++ 
    206  
    207  
    208  
    209 === Land cover change (with age classes) (CHECK) === 
    210 Land cover change now accounts for age classes. It is controlled by the flags '''land_cover_change''' and '''veget_update'''. Set '''land_cover_change''' = n and '''veget_update''' = 0Y if land cover change should be disabled. The wood pool and its subsequent fluxes were moved from the land cover change routine to a separate routine. Furthermore, land cover change also deals with the change of biological land uses to non biological land uses (of which the most important change is probably urbanization). If urbanization happens, all the carbon an nitrogen are stored in a series of variables '''burried_xxx''' where xxx stands for a different pool, e.g., litter, soil, .... Burried_xxx are cumulative variables thus increasing over time. There is a place holder in sapiens_lcchange.90 to also develop the release of the buried carbon and nitrogen following de-urbanization (see ticket #616).  The series of the burried_xxx variables are not yet written to an output file but this could be easily added. 
     205=== Land cover change (with age classes) (r6614) === 
     206Land cover change now accounts for age classes. It is controlled by '''veget_update'''. Set '''veget_update''' = 0Y if land cover change should be disabled. The wood pool and its subsequent fluxes were moved from the land cover change routine to a separate routine. Furthermore, land cover change also deals with the change of biological land uses to non biological land uses (of which the most important change is probably urbanization). If urbanization happens, all the carbon an nitrogen are stored in a series of variables '''burried_xxx''' where xxx stands for a different pool, e.g., litter, soil, .... Burried_xxx are cumulative variables thus increasing over time . There is a place holder in sapiens_lcchange.90 to also develop the release of the buried carbon and nitrogen following de-urbanization (see ticket #616). The series of the burried_xxx variables are not yet written to an output file but this could be easily added (they are already defined in the xml files). 
    211207 
    212208An interesting parameter is '''min_vegfrac'''. When reading in a land cover map, PFTs with a fraction below min_vegfrac are removed. Likewise the fraction cover of a PFT after a land cover change should not be less than min_vegfrac either. This requirement seems to have been solely established to avoid ending up with too many PFTs with very small fractions. Because the the non-biological and biological fraction covers of each pixel should sum up to one, removing even these very small fractions implies that these fractions need to be added to one of the remaining PFTs. First it is tried to add the fraction to the bare soil (this will only be accepted if the new fraction of the bare soil exceeds min_vegfrac), then the code tries to allocate the residual fraction to the largest vegetated fraction. If age classes are used this should be the largest vegetated fraction in the first age class of a PFT. If all of the above failed, the residual fraction is added to frac_nobio irrespective of whether frac_nobio exceeds min_vegfrac. Everytime this happens, the failure to meet the min_vegfrac criterion is registered in the variable '''failed_vegfrac'''. This variable is not yet added to an output file.  
     
    214210Note that the min_vegfrac criterion could be the reason of why very small land cover changes occur. Another consequence is that the land cover fractions in the model are not exactly the same as those read in from the maps. Deviations should remain small and should not accumulate over time. Assume that in y0 the fraction of PFT2 = 0. In y1 the map tells us the fraction is half of min_vegfrac. The model will keep the PFT fraction to zero. The model and the map will no longer be in line with each other. In y2 the map tells us the fraction is twice min_vegfrac. The model will now accept the change. The model and the map will be in line with each other. 
    215211 
    216 === Litter decomposition (CHECK) === 
    217  
     212=== Litter decomposition (r6614) === 
    218213After large-scale dieback events (with a closed n-cycle, i.e., impose_cn = n), so much soil mineral N becomes immobilized to decompose litter that too little N is left for plant regrowth. To address this, we implicitly represent the action of fungivores, which eat the decomposing fungi and release N for the plants and increase N turnover rates. We set aside a fraction of qd (stomate_litter.f90) which becomes available for plant uptake in nitrogen_dynamics. This fraction is calculated and is at its maximum when the litter pool is large compared to the biomass pool. The fraction is at its lowest when the living biomass is high compared to the litter biomass. The implemented principle mimics a Lokta-Volta dynamic where the predator are the fungivores and the prey the fungi. The share of the N contained in the decomposing fungi that is released as an excrement from the fungivores ranges between 0 and 1 and is calculated. 
    219214 
     
    228223}}} 
    229224 
     225 
    230226=== Litter raking (r6614) === 
    231 Tree 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 
    232  
    233 === Mortality (CHECK) === 
    234 ORCHIDEE-CN-CAN distinguished 3 types of natural mortality. The first two options are similar to those in previous version of ORCHIDEE and are set by the flag '''constant_mortality'''. If '''constant_mortality''' = y, the background mortality of a forests is calculated as a constant, prescribed fraction. In ORCHIDEE-CN-CAN, this fraction is given by '''residence_time''' (see also forest management).  If '''constant_mortality''' = n, the background mortality of a forest is a function of its net primary production (npp). If npp decreases, mortality will increase.  
    235  
    236 Both options have been developed, tested and can be used in ORCHIDEE-CN-CAN. However, because of the introduction of self-thinning (the third type of natural mortality) in ORCHIDEE-CN-CAN, '''constant_mortality''' = y soon became the default setting. In ORCHIDEE-CN-CAN, the total mortality is the maximum of the background mortality and the mortality from self-thinning. Only if self-thinning is absent or too low, background mortality will play a role. This approach implies that when '''constant_mortality''' = y is used in combination with self-thinning, background mortality will only play a role in the first years to decade before self-thinning starts. Despite its limited use, it represents an essential process: owing to background mortality, the number of individuals decreases, the remaining individuals grow faster and thus manage to reach self-thinning in a reasonable amount of time. It needs to be tested how the interplay between background mortality and self-thinning will work out when '''constant_mortality''' = n is used. 
     227Tree 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 trunk 4 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 
     228 
     229 
     230=== Mortality (r6614) === 
     231ORCHIDEE trunk 4 distinguished 3 types of natural mortality. The first two options are similar to those in previous version of ORCHIDEE and are set by the flag '''constant_mortality'''. If '''constant_mortality''' = y, the background mortality of a forests is calculated as a constant, prescribed fraction. In ORCHIDEE trunk 4, this fraction is given by '''residence_time''' (see also forest management).  If '''constant_mortality''' = n, the background mortality of a forest is a function of its net primary production (npp). If npp decreases, mortality will increase.  
     232 
     233Both options have been developed but only '''constant_mortality''' = y has been tested in ORCHIDEE trunk 4. However, because of the introduction of self-thinning (the third type of natural mortality) in ORCHIDEE trunk 4, '''constant_mortality''' = y became the default setting. In ORCHIDEE-CN-CAN, the total mortality is the maximum of the background mortality and the mortality from self-thinning. Only if self-thinning is absent or too low, background mortality will play a role. This approach implies that when '''constant_mortality''' = y is used in combination with self-thinning, background mortality will only play a role in the first years to decade before self-thinning starts (the latest calculations of RDI - see Prescribe - the role of the background mortality has further decreased). Despite its limited use, it represents an essential process: owing to background mortality, the number of individuals decreases, the remaining individuals grow faster and thus manage to reach self-thinning in a reasonable amount of time. It needs to be tested how the interplay between background mortality and self-thinning will work out when '''constant_mortality''' = n is used. 
    237234 
    238235ORCHIDEE trunk 4 calculates the number of individuals and uses this as a criterion to initiate a stand replacing disturbance. This approach, guided by the self-thinning relationship, avoids the need for a stand-level turnover time. ORCHIDEE-CN, and ORCHIDEE-CNP still make use of stand-level turnover. Note that the meaning of residence_time is very different between the CAN branch and the trunk.  In the trunk biomass has no age and thus the residence time accounts for all forest dynamics including self-thinning, pests, diseases and windthrow. In the CAN branch, biomass does have an age and self-thinning is explicitly accounted for, hence, the residence time should be much higher as it only accounts for pest, diseases and windthrow. Even the latter is not exact because as long as those disturbances are small scale they are probably accounted for in the parametrization of self-thinning. 
    239236 
    240237=== Nitrogen cycle (CHECK) === 
    241 ORCHIDEE-CN-CAN strictly follows ORCHIDEE-CN where it concerns the implementation of the N-cycle. Following mass balance problems caused by negative N mineralization and followed by negative immobilization, the code has been slightly adjusted to ensure mass balance closure. First the flag '''stomate_ok_ncycle''' needs to be set to y, to run the model with a N-cycle. Subsequently the parameter '''impose_cn''' is used to control the N-cycle calculations. If set to y, C/N ratios are calculated but whenever N appears to be limiting, it is taken from the atmosphere to satisfy this need. This is the preferred setting when testing/developing the code without a proper spin-up. N-limitation will only be accounted for when setting impose_cn = n. With this setting the N-cycle is closed (checked when checking for mass balance closure) it requires a spin-up to produce reasonable results. 
     238ORCHIDEE trunk 4 strictly follows ORCHIDEE trunk 3 where it concerns the implementation of the N-cycle. Following mass balance problems caused by negative N mineralization and followed by negative immobilization, the code has been slightly adjusted to ensure mass balance closure. First the flag '''stomate_ok_ncycle''' needs to be set to y, to run the model with a N-cycle. Subsequently the parameter '''impose_cn''' is used to control the N-cycle calculations. If set to y, C/N ratios are calculated but whenever N appears to be limiting, it is taken from the atmosphere to satisfy this need. This is the preferred setting when testing/developing the code without a proper spin-up. N-limitation will only be accounted for when setting impose_cn = n. With this setting the N-cycle is closed (checked when checking for mass balance closure) it requires a spin-up to produce reasonable results. 
    242239 
    243240The paths of the N-inputs from atmospheric N-deposition, fertilization, and biological nitrogen fixation ('''Nammonium_FILE''', '''Nnitrate_FILE''', '''Nfert_FILE''' , '''NManure_FILE''' and '''Nbnf_FILE''') are set in the stomate.card. Moreover, the N inputs you wish to include in your simulation can be specified in the run.def. If set to NONE, the given N input files will not be read.  
     
    265262INPUT_SUFFIX_YEAR = n 
    266263}}} 
     264 
    267265 
    268266=== Parameter files (r6614) === 
     
    278276* orchidee_pft.def with 64 PFTs demonstrates how MTCs, PFTs, species and age classes can all be combined in a single set-up. The species parameters are limited to the European domain, the MTCs are used outside of Europe. In Europe 4 age classes are distinguished, outside of Europe a single age is used. This is the set-up that was used in Naudts et al 2016 and Luyssaert et al 2018. 
    279277 
    280 === Phenology (forced) (CHECK) === 
    281 The pft-specific parameter '''always_init''' controls whether the phenology depends on the reserves (set to .FALSE.) or is forced (set to .TRUE.). Note that a forced phenology (thus always_init = .TRUE.) has no ecophysiological basis, it is a numerical approach to stabilize the vegetation cover. A stable vegetation cover is particularly welcome in coupled simulations but likley hides real vegetation dynamics (especially under future climate conditions) or problems in other routines or parameter settings. If a PFT keeps dying in an area where it is currently present, this would hint at a problem with the current model/parameters. If a PFT keeps dying under future conditions, it may be a real response (depending on the PFT). If forced phenology is used, plants will develop an initial canopy in phenology irrespective of whether the plant had sufficient carbon and nitrogen reserves and for evergreen species irrespective of whether the canopy was viable at all. This setting basically overcomes a mortality event at the expense of taking up carbon and nitrogen from the atmosphere. When used in combination with impose_cn = n, an inconsistency is introduced: impose_cn = n reflect the desire to close the nitrogen cycle, always_init = y opens a backdoor in the nitrogen cycle.  
    282  
    283 From 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. 
     278 
     279=== Phenology (r6614) === 
     280The pft-specific parameter '''always_init''' controls whether the phenology depends on the reserves (set to .FALSE.) or is forced (set to .TRUE.). Note that a forced phenology (thus always_init = .TRUE.) has no ecophysiological basis, it is a numerical approach to stabilize the vegetation cover. A stable vegetation cover is particularly welcome in coupled simulations but likely hides real vegetation dynamics (especially under future climate conditions) or problems in other routines or parameter settings. If a PFT keeps dying in an area where it is currently present, this would hint at a problem with the current model/parameters. If a PFT keeps dying under future conditions, it may be a real response (depending on the PFT). If forced phenology is used, plants will develop an initial canopy in phenology irrespective of whether the plant had sufficient carbon and nitrogen reserves and for evergreen species irrespective of whether the canopy was viable at all. This setting basically overcomes a mortality event at the expense of taking up carbon and nitrogen from the atmosphere. When used in combination with impose_cn = n, an inconsistency is introduced: impose_cn = n reflect the desire to close the nitrogen cycle, always_init = y opens a backdoor in the nitrogen cycle.  
     281 
     282From a conceptual point of view, ORCHIDEE trunk 4 is all about vegetation dynamics and thus instabilities in the vegetation cover. In ORCHIDEE trunk 4 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. ORCHIDEE trunk 4 was developed to work with always_init = .FALSE. so this has become the default value, contrary to previous versions of the trunk where always_init = .TRUE. is the default. 
    284283 
    285284