Changes between Version 220 and Version 221 of DevelopmentActivities/ORCHIDEE-DOFOCO


Ignore:
Timestamp:
2019-11-21T09:12:42+01:00 (4 years ago)
Author:
mmcgrath
Comment:

Making some updates and clarifications

Legend:

Unmodified
Added
Removed
Modified
  • DevelopmentActivities/ORCHIDEE-DOFOCO

    v220 v221  
    22[[PageOutline]] 
    33 
    4 ORCHIDEE-CN-CAN is based on the trunk as it is in 2019, the ORCHIDEE-CN branch in 2016 and some key functionality of ORCHIDEE-CAN (aka ORCHIDEE-DOFOCO on the svn server). The committed version can be considered a light version of ORCHIDEE because some of the available functionality has not yet committed (for example, the DGVM). Nevertheless, this light version is believed to contain all functionality that affects the parameterization of the core of the model. The functionality that is not yet included depends on vegetation growth, soil hydrology or the energy budget but does not affect these processes at the pixel level. 
     4ORCHIDEE-CN-CAN is a combination of three code bases: the trunk as it is in 2019, the ORCHIDEE-CN branch in 2016 and some key functionality of ORCHIDEE-CAN (aka ORCHIDEE-DOFOCO on the svn server). The committed version can be considered a light version of ORCHIDEE because some of the available functionality has not yet committed (for example, the DGVM). Nevertheless, this light version is believed to contain all functionality that affects the parameterization of the core of the model. The functionality that is not yet included depends on vegetation growth, soil hydrology or the energy budget but does not affect these processes at the pixel level. 
    55* The available functionality is described in more detail below 
    66* Missing functionalities compared to the trunk: DGVM, IPCC woodharvest, prescribed LAI, and fire disturbances  
     
    1111 
    1212== What is the future of the version? ==    
    13 Now that the AR6v1 is stable, a robust well tested version of ORCHIDEE has been tagged. This gives the ORCHIDEE-team the opportunity to prepare for the future by making a series of far reaching changes to the code. The first ambition is to add CN into AR6v0 to obtain AR6v1. In parallel we will start testing and discussing AR6v2 before making this the trunk for both coupled and off-line simulations. The basis of AR6v2 is the current ORCHIDEE trunk (AR6v0) into which CN and CAN functionality is merged. At this stage key functionality from other branches may be merged as well (to be discussed in tandem with the fair use policy). In addition to the recent improvements to the trunk, the new trunk (AR6v2) should have an increased functionality (see below), increased internal consistency (see below, for example albedo and photosynthesis) and some long awaited fixes (see below, for example tot_bare_soil).   
     13Now that the AR6v1 is stable, a robust well tested version of ORCHIDEE has been tagged. This gives the ORCHIDEE-team the opportunity to prepare for the future by making a series of far reaching changes to the code. The first ambition is to add CN into AR6v0 to obtain Tag 3.0 before the end of 2019. In parallel, ORCHIDEE-CN-CAN has been merged with the TRUNK during the year of 2019 to prepare for Tag 4.0.  We will continue testing and discussing Tag 4.0 before making this the trunk for both coupled and off-line simulations. The basis of Tag 4.0 is the current ORCHIDEE trunk (the version to become Tag 3.0) into which CAN functionality is merged. At this stage key functionality from other branches may be merged as well (to be discussed in tandem with the fair use policy). In addition to the recent improvements to the trunk, the new trunk (Tag 4.0) should have an increased functionality (see below), increased internal consistency (see below, for example albedo and photosynthesis) and some long awaited fixes (see below, for example tot_bare_soil).   
    1414    
    1515== How can I contribute to this version? == 
    16 Given the large number of code changes, there is no guarantee that the current version of AR6v2 will run flawless for all set-ups and possible combinations of flags currently being used by ORCHIDEE users and developers.  
    17 * All users and developers are invited to install AR6v2 and set-up their favourite simulation. Use one of the attached run.defs as a starting point for your favourite set-up. Report on the outcome of your tests during the ORCHIDEE meetings. 
    18 * All developers are invited to contribute bug fixes, and code for improved functionality to AR6v2. 
    19 * Adjust the interface such that AR6v2 can be coupled to the latest version of LMDz and can be used for regional simulations with WRF. 
     16Given the large number of code changes, there is no guarantee that the current version of ORCHIDEE-CN-CAN (future Tag 4.0 of the TRUNK) will run flawless for all set-ups and possible combinations of flags currently being used by ORCHIDEE users and developers.  
     17* All users and developers are invited to install future Tag 4.0 and set-up their favourite simulation. Use the run.def in config/ORCHIDEE_OL/OOL_SEC_STO_FG2/ as a starting point, or play with the Python script in config/ORCHIDEE_OL/MAKE_RUN_DEF directory for your favourite set-up (see below). Report on the outcome of your tests during the ORCHIDEE meetings. 
     18* All developers are invited to contribute bug fixes, and code for improved functionality to Tag 4.0. 
     19* Adjust the interface such that Tag 4.0 can be coupled to the latest version of LMDz and can be used for regional simulations with WRF. 
    2020 
    2121== How do I run this version? == 
     
    6767then it is possible you have not added the required lines in stomate.card, stomate.driver, sechiba.card, and sechiba.driver. This error arises because the .xml files, when they have been copied to the working directory, cannot have values like "_AUTO_" in them.  libIGCM is supposed to replace such values, which exist in the template .xml files in modeles/ORCHIDEE/src_xml/, when it copies files from the run directory to the working directory.  If there is something missing in the .driver files, this replacement doesn't happen and XIOS throws the parsing error above. 
    6868 
    69 If the models keeps recompiling XIOS the following may help. To avoid this and reduce compiling time, change the following line in the Makefile from  
     69If the models keeps recompiling XIOS (which has been known to happen on obelix) the following may help. To avoid this and reduce compiling time, change the following line in the Makefile from  
    7070{{{ 
    7171with_xios : xios ioipsl driver_xios verif 
     
    7979== Functionalities (alphabetical order) == 
    8080=== Age classes === 
    81 Age 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. Age classes are independent of the number of diameter classes. Using age classes adds a lot of details in 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 a low albedo, a high roughness, ... 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, ...  
    82  
    83 Age classes were defined as separate PFTs and if wanted different age classes of the same PFT could be run with different parameters. This option has not been tested yet because it is expected to result in discontinuities when the biomass is moved from one age class to another. The number of age classes is fixed but for each PFT it can be decided whether age classes are used or not. This adds a lot of flexibility to the model. ORCHIDEE-CAN, for example, has been run with 64 PFTs, using age classes for European forest and using no age classes for all forests outside the domain of interest. Setting-up a simulation with age classes will require some thinking when setting-up the run.def. A python-script was written to create this kind of run.def. Increasing the number of PFTs has important consequences for the speed of the model and the memory use. Because a single run can contain PFTs with and PFTs without age classes, processing of the simulation output needs to account for the relationship between PFTs of the same species but a different age class. 
    84  
    85 Note that it doesn’t make sense to use age classes when running site level simulation, or ignoring land cover change. Not using age classes will make post processing of the simulation results considerable easier. 
     81Age 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 signficiantly as well.  
     82 
     83Age classes are defined as separate PFTs.  Different age classes of the same PFT could therefore be, in principle, run with different parameters. This option has not been tested yet because it is expected to result in discontinuities when the biomass is moved from one age class to another. The number of age classes is fixed for the whole simulation, but for each PFT it can be decided whether age classes are used or not. In other words, if the user chooses four age classes for the simulation, each PFT can have either 1 or 4 age classes.  This adds a lot of flexibility to the model. ORCHIDEE-CAN, for example, has been run with 64 PFTs, using age classes for European forest and using no age classes for all forests outside the domain of interest. Setting-up a simulation with age classes will require some thinking when creating the run.def. A Python-script was written to create this kind of run.def. Increasing the number of PFTs has important consequences for the speed of the model and the memory use, although ORCHIDEE-CAN does make extensive use of "CYCLE" statements to avoid calculations where no biomass is present. Because a single run can contain PFTs with and PFTs without age classes, processing of the simulation output needs to account for the relationship between PFTs of the same species but a different age class. 
     84 
     85Note that it doesn’t make sense to use age classes when running site level simulation, or ignoring land cover change. Not using age classes will make post processing of the simulation results considerably easier. 
    8686 
    8787The number of age classes is defined by the parameter '''NAGEC'''. Setting this parameter to 1 is a good start unless you have a special interest in using age classes. When NAGEC is set to more than 1, '''PFT_TO_MTC'''', '''AGEC_GROUP''' and '''PFT_NAME''' will all need to be carefully defined. See the attached run.def for a functional example. See below for some principles:  
    8888* NAGEC = 4 
    89 * Assume we want to use four age classes for all forests. We will end-up with 37 PFTs, the 1 for bare soil, C3 grass, C4 grass, C3 crop and C4 crop and 4 times 8 for the 8 forest PFTs. Thus NVM = 37 
    90 * Because we still use the 13 default MTC we can use the default maps. Let the model know how many MTCs it should find on the maps: NVMAP=13 
    91 * If you want to use IMPOSE_VEG=y then only vegetation should be added to the youngest age class. ORCHIDEE will update the vegetation fractions during the simulations 
     89* Assume we want to use four age classes for all forests. We will end-up with 37 PFTs: one each for bare soil, C3 grass, C4 grass, C3 crop and C4 crop and 4 times 8 for the 8 forest PFTs. Thus NVM = 37 
     90* Because we still use the 13 default MTCs we can use the default maps. Let the model know how many MTCs it should find on the maps: NVMAP=13 
     91* If you want to use IMPOSE_VEG=y then vegetation should only be placed in the youngest age class. ORCHIDEE will update the vegetation fractions during the simulations 
    9292{{{ 
    9393SECHIBA_VEG_01=0.0769230769231