Changes between Version 80 and Version 81 of DevelopmentActivities/ORCHIDEE-DOFOCO


Ignore:
Timestamp:
2016-05-16T13:45:10+02:00 (8 years ago)
Author:
luyssaert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DevelopmentActivities/ORCHIDEE-DOFOCO

    v80 v81  
    77 
    88== STATUS == 
    9 === 10.12.2015 === 
    10 - Checked out svn 2978. Compiled and set-up single-pixel, and multiple-pixels. 
    11 - [NOT solved] svn 2978: the compiler had problems finding a library file for forcesoil. I removed forcesoil.exe and teststomate.exe from ../modeles/ORCHIDEE/makeorchidee_fcm so it compiles. 
    12 - [solved] No LAI for PFT 12 and 13 (impose_veg = y). 
    13  
    14 === 22.12.2015 === 
    15 - Checked out svn 2978 twice (ORCHIDEE.NITROGEN and ORCHIDEE.MERGE). The nitrogen set-up is the reference for all the merges. Set-up 3 test runs: a single pixel run, a run over 4 pixels with 4 processors and a global run. The global run failed (see issues 22.12.2015). The SBG output for both installations was identical after 10 years. The SRF output differed by 10-5 to 10-8 for the C-fluxes for the 4 pixels and 10-6 to 10-9 for the single pixel run. This appears as a minor issue but it suggests that the 1+1 problem has not been solved. 
    16 - [NOT solved] the land mask of the nitrogen map does not seem to match the land mask of the PFT map. In the single and multiple-pixel test cases impose_veget=y and thus the PFT map was not used. Switching on the PFT map for a global grid results in the following error. FATAL ERROR FROM ROUTINE slowproc_ninput . No information for a point . Fatal error from ORCHIDEE. STOP in ipslerr_p with code. 
    17 - [NOT solved] two identical installations of the revision 2978 do not result in identical output for SRF. The SRF output differed by 10-5 to 10-8 for the C-fluxes for the 4 pixels and 10-6 to 10-9 for the single pixel run. This appears as a minor issue but it suggests that the 1+1 problem has not been solved. Interestingly GPP in stomate is identical. GPP in SRF is among the variables with shows small differences. 
    18 - [solved] the function get_printlev does not work. Only printlev is read and used. printlev_loc is not working. Tried to debug but without success. This function contains about 5 lines of code so finding the problem shouldn't be too difficult. 
    19  
    20 === 27.12.2015 === 
    21 - Merged stomate_prescribe 
     9=== 16.05.2016 === 
     10- Revision 3442 has a more or less complete version of stomate (LCC is still missing but this routine does not affect the parameterisation of the model). 
     11- [NOT solved] Most PFTs (except the crops) don't grow but don't die either (an issue with N-availability?) 
     12- The mass balance has been closed for all the activated stomate routines (Also fo FOREST_MANAGED_FORCED = 2).  
     13- [NOT solved] Need to test mass balance closure for FOREST_MANAGED_FORCED  = 3 (Coppice) and FOREST_MANAGED_FORCED  = 4 (Short Rotation Coppice).  
     14- [NOT solved] Need to re-activate the independent mass balance check for stomate and write it to the history file (request from IPSL) 
     15 
     16=== 12.05.2016 === 
     17- The routines with stomate_resp, stomate_soilcarbon and stomate_litter has been merged in rev3421. The mass balance was not closed in the original files from ORCHIDEE-N in particular for the routing nitrogen dynamic. 
     18- [solved] With FOREST_MANAGED_FORCED > 1 the model crash after 24 years because of a mass balance error in stomate_natural_mortality. When FOREST_MANAGED_FORCED =1 the model runs fine for 50 years. 
     19 
     20=== 02.05.2016 === 
     21- Revision 3398. Added forestry, litter raking and anthropogenic mortality.    
     22- no new issues were found when testing the code.  
     23- [NOT solved] When moving from age class 2 to age class 3 several PFTs show a sudden jump in LAI. Needs to be looked at. May be one of the variables does not get correctly reset or calculated when moving the information from one to the next PFT. It was noticed just now but, if a bug, it was probably introduced at the time the age classes were introduced. No obvious link with forestry. 
     24 
     25=== 29.04.2016 === 
     26- Revision 3397. Added two-way albedo 
     27- [NOT solved] problems with 'snow_frac', feeding into values for the snow albedo greater than 1, and crashes shortly afterwards. Variable that is causing the problem appears to be 'frac_snow_veg',  in the subroutine 'albedo_two_stream'. This is a variable that is calculated in 'calculate_snow_albedo' subroutine and passed up to 'albedo_two_stream', and from there to condveg. The only place that it is calculated is 'calculate_snow_albedo'. In this particular model run it is zero for all PFTs. However in a later loop over all PFTs (within 'albedo_two_stream') the value of 'frac_snow_veg' strangely deviates from zero, which causes incremental  increases in the albedo, until eventually the model crashes. When I define a local variable for this PFT loop, 'frac_snow_veg_loc' (just within 'albedo_two_stream') the model does not crash. This is rather a clumsy solution, but it is strange that 'frac_snow_veg' does not retain its value during the loop. 
     28 
     29=== 22.04.2016 === 
     30- Revision 3382. Added age classes and the subroutine age_class_distr that moves the biomass between age classes. Adjusted the internal consistency checks for better testing. Created a new run.def to be used with the age classes. 
     31- No new issues were found when updating the code. The code compiles and was run for 50 years over a single pixel containing all PFTs. 
     32 
     33=== 19.04.2016 === 
     34- Revision 3374. Added natural mortality and the mortality_clean which is the routine that deals with the diameter classes within a stand. 
     35- [solved] The code crashes after 39 years with a sudden appearance of a very negative biomass. The code to keep the diameter classes monotonically increasing is not yet implemented (next step). 
     36 
     37=== 08.04.2016 === 
     38- Revision 3348. Replaced ::begin_leaves, ::allow_initpheno and ::senescence by a variable called ::plant_status. This variable contains the different phenological and growth phases of the plant. The biggest advantage of the new approach is that the variable plant_status can only have one value (=status) at a time and is therefore always consistent contrary to the old approach were conflicts between the 3 variables were possible. 
     39- [solved] The code crashes after 4 years because a mass balance closure error with labile N in crops. 
     40 
     41=== 01.04.2016 === 
     42- Revision 3337. Merged the turnover code and the mass balance is closed.  
     43- [solved] The code crashes after 8 years because the biomass in de different diameter classes is not monotonically increasing. At that point the biomass is very negative. The code should crash on the fact that the biomass is very negative - this is checked at the end of each routine in stomate. In CAN we have dedicated routines to deal with those issues. Those routines have not been merged/activated yet. For the moment we do not kill PFTs so we may have a run-away turnover but it could as well be a bug. It is expected that the problem will become more pronounced and easier to find) when all biomass-subroutines are activated. 
     44- [solved] There is no leaf on-set for the deciduous trees. Sapwood is simply consumed. 
     45- [solved] Crops grow for just one year. Crops do not get planted in year 2. 
     46 
     47=== 11.03.2016 === 
     48- Revision 3264. All changes were put into its own branch called ORCHIDEE-CN-CAN and the branch is up to date with r3238 of ORCHIDEE-CN. This branch can now be used to start working in parallel on different parts of the code.  
     49- No new issues were found when establishing the branch and updating the code 
     50 
     51=== 18.02.2016 === 
     52- Merged the laieff code and made the link between stomate and sechiba 
     53- [NOT solved] LAI is still passed around. According to the DOFOCO philosophy it should be calculated from biomass when needed. This should be checked. Difficulty is that the option to read the LAI map needs to be maintained. Probably best to convert LAI in biomass and pass biomass raound in line with the rest of the code. 
     54- [NOT solved] veget is now calculated from laieff. It needs to be checked whether this is always the case. Not sure about that. 
     55- [NOT solved] canopy structure is declared in sechiba and calculated in stomate. The output files are also written in stomate so for the moment it has not been tested whether it is correctly passed to sechiba. 
     56 
     57=== 03.02.2016 === 
     58- Both evergreens and deciduous allocate C and N. 
     59- [solved] No nitrogen allocation for deciduous trees 
     60- [solved] Added a patch for allow_initpheno in stomate_phenology to make the model work with turnover. This patch should be removed as soon as turnover is activated. The patch is marked with +++PATCH+++ 
     61- [NOT solved] We end up with rather large residuals in ordinary allocation. This is something new and unwanted. The code itself should be OK so most likely this is the result of a bug somewhere else in the code (no idea where) or a problem due to the parameter settings. The numerical approximation makes use of ::s and ::step. That is probably where the problem is really happening. A temporary fix was implemented. 
     62- [NOT solved] The code runs with ncirc=3 but the output needs to be adjusted to reflect the different diameter classes. 
     63- [solved] Phenology now uses a battery of variables: allow_phenology, begin_leaves, senescence, ... these variables can be in conflict with each other. The code could be simplified and made more robust by merging all this information is a single variable,for example; pheno_status. The value of that variable could be iallowpheno, ibeginleaf, igrowth, isenescent, idormancy. That way the plant can only have one condition at a time and inconsistencies would no longer be possible. 
     64- [NOT solved] Phenology seems to work but is far from realistic. 
     65 
     66=== 03.02.2016 === 
     67- A very basic version of the model (i.e., prescribe, phenology, allocation and all of sechiba) runs for 10 year (end of test) on a single pixel for all PFTs (without crops). The mass balance is closed for N and C and the different biomass variables are synchronized. 
     68- [solved] The evergreen PFTs respond as expected, the deciduous PFTs allocate C but do not allocate N.  
     69 
     70=== 27.01.2016 === 
     71- [solved] Fixed the crashes in stomate_growth_fun_alloc.f90. Mass balance is now closed for carbon and nitrogen and biomass and circ_class_biomass are synchronized for carbon. Need a longer test to check whether nitrogen is also in sync.  
     72- [solved] it needs to be tested whether stomate_allocation.f90 correctly synchronizes biomass and circ_class_biomass for nitrogen. The code crashes before N gets allocated so it can not be tested for the moment. 
     73- [solved] lai is an input variable in diffuco_trans_co2 in ORCHIDEE-CN but is calculated in sechiba in ORCHIDEE-CAN. For the moment no lai is passed to diffuco and so the model crashes on photosynthesis. 
     74- [NOT solved] in the first time step lai is prescribed (8, 4, ...), lai is not capped in ORCHIDEE-CAN so this should be checked and removed. 
     75 
     76=== 12.01.2016 === 
     77- Merged stomate_phenology 
    2278- Checked for mass balance closure for carbon and nitrogen 
    23 - Re-introduced circ_class_biomass and circ_class_n. These variables are defined in sechiba because they are use by both stomate and sechiba.f90 
    24 - [solved] Tried to make use of get_printlev (constantes.f90) as a more clean and consistent substitute for the ld_flags that were used for debugging in ORCHIDEE-CAN. get_printlev does not work. 
    25 - [solved] The code crashes in stomate_growth_fun_alloc.f90 where qm_dia is calculated. All values are zero. 
     79- Removed the effect of water stress from this code in line with the current implementation of the hydraulic architecture 
     80- Fixed a nitrogen accounting issue 
     81- Used get_printlev (constantes.f90) as a more clean and consistent substitute for the ld_flags that were used for debugging in ORCHIDEE-CAN. 
     82- [solved] The code crashes in stomate_growth_fun_alloc.f90. 
     83- [NOT solved] waterstress is implemented through the hydraulic architecture. The way the model accounts for waterstress needs to be checked as several options were coded but never really used and tested. 
    2684 
    2785=== 06.01.2016 === 
     
    3593- [solved] The code for the dynamic N-cycle seems to be incomplete (the if-loop only accounts for one case for other cases variables may become undefined). This section was marked with +++CHECK+++. 
    3694 
    37 === 12.01.2016 === 
    38 - Merged stomate_phenology 
     95=== 27.12.2015 === 
     96- Merged stomate_prescribe 
    3997- Checked for mass balance closure for carbon and nitrogen 
    40 - Removed the effect of water stress from this code in line with the current implementation of the hydraulic architecture 
    41 - Fixed a nitrogen accounting issue 
    42 - Used get_printlev (constantes.f90) as a more clean and consistent substitute for the ld_flags that were used for debugging in ORCHIDEE-CAN. 
    43 - [solved] The code crashes in stomate_growth_fun_alloc.f90. 
    44 - [NOT solved] waterstress is implemented through the hydraulic architecture. The way the model accounts for waterstress needs to be checked as several options were coded but never really used and tested. 
    45  
    46 === 27.01.2016 === 
    47 - [solved] Fixed the crashes in stomate_growth_fun_alloc.f90. Mass balance is now closed for carbon and nitrogen and biomass and circ_class_biomass are synchronized for carbon. Need a longer test to check whether nitrogen is also in sync.  
    48 - [solved] it needs to be tested whether stomate_allocation.f90 correctly synchronizes biomass and circ_class_biomass for nitrogen. The code crashes before N gets allocated so it can not be tested for the moment. 
    49 - [solved] lai is an input variable in diffuco_trans_co2 in ORCHIDEE-CN but is calculated in sechiba in ORCHIDEE-CAN. For the moment no lai is passed to diffuco and so the model crashes on photosynthesis. 
    50 - [NOT solved] in the first time step lai is prescribed (8, 4, ...), lai is not capped in ORCHIDEE-CAN so this should be checked and removed. 
    51  
    52 === 03.02.2016 === 
    53 - A very basic version of the model (i.e., prescribe, phenology, allocation and all of sechiba) runs for 10 year (end of test) on a single pixel for all PFTs (without crops). The mass balance is closed for N and C and the different biomass variables are synchronized. 
    54 - [solved] The evergreen PFTs respond as expected, the deciduous PFTs allocate C but do not allocate N.  
    55  
    56 === 03.02.2016 === 
    57 - Both evergreens and deciduous allocate C and N. 
    58 - [solved] No nitrogen allocation for deciduous trees 
    59 - [solved] Added a patch for allow_initpheno in stomate_phenology to make the model work with turnover. This patch should be removed as soon as turnover is activated. The patch is marked with +++PATCH+++ 
    60 - [NOT solved] We end up with rather large residuals in ordinary allocation. This is something new and unwanted. The code itself should be OK so most likely this is the result of a bug somewhere else in the code (no idea where) or a problem due to the parameter settings. The numerical approximation makes use of ::s and ::step. That is probably where the problem is really happening. A temporary fix was implemented. 
    61 - [NOT solved] The code runs with ncirc=3 but the output needs to be adjusted to reflect the different diameter classes. 
    62 - [solved] Phenology now uses a battery of variables: allow_phenology, begin_leaves, senescence, ... these variables can be in conflict with each other. The code could be simplified and made more robust by merging all this information is a single variable,for example; pheno_status. The value of that variable could be iallowpheno, ibeginleaf, igrowth, isenescent, idormancy. That way the plant can only have one condition at a time and inconsistencies would no longer be possible. 
    63 - [NOT solved] Phenology seems to work but is far from realistic. 
    64   
    65 === 18.02.2016 === 
    66 - Merged the laieff code and made the link between stomate and sechiba 
    67 - [NOT solved] LAI is still passed around. According to the DOFOCO philosophy it should be calculated from biomass when needed. This should be checked. Difficulty is that the option to read the LAI map needs to be maintained. Probably best to convert LAI in biomass and pass biomass raound in line with the rest of the code. 
    68 - [NOT solved] veget is now calculated from laieff. It needs to be checked whether this is always the case. Not sure about that. 
    69 - [NOT solved] canopy structure is declared in sechiba and calculated in stomate. The output files are also written in stomate so for the moment it has not been tested whether it is correctly passed to sechiba. 
    70  
    71 === 11.03.2016 === 
    72 - Revision 3264. All changes were put into its own branch called ORCHIDEE-CN-CAN and the branch is up to date with r3238 of ORCHIDEE-CN. This branch can now be used to start working in parallel on different parts of the code.  
    73 - No new issues were found when establishing the branch and updating the code 
    74  
    75 === 01.04.2016 === 
    76 - Revision 3337. Merged the turnover code and the mass balance is closed.  
    77 - [solved] The code crashes after 8 years because the biomass in de different diameter classes is not monotonically increasing. At that point the biomass is very negative. The code should crash on the fact that the biomass is very negative - this is checked at the end of each routine in stomate. In CAN we have dedicated routines to deal with those issues. Those routines have not been merged/activated yet. For the moment we do not kill PFTs so we may have a run-away turnover but it could as well be a bug. It is expected that the problem will become more pronounced and easier to find) when all biomass-subroutines are activated. 
    78 - [solved] There is no leaf on-set for the deciduous trees. Sapwood is simply consumed. 
    79 - [solved] Crops grow for just one year. Crops do not get planted in year 2. 
    80  
    81 === 08.04.2016 === 
    82 - Revision 3348. Replaced ::begin_leaves, ::allow_initpheno and ::senescence by a variable called ::plant_status. This variable contains the different phenological and growth phases of the plant. The biggest advantage of the new approach is that the variable plant_status can only have one value (=status) at a time and is therefore always consistent contrary to the old approach were conflicts between the 3 variables were possible. 
    83 - [solved] The code crashes after 4 years because a mass balance closure error with labile N in crops. 
    84  
    85 === 19.04.2016 === 
    86 - Revision 3374. Added natural mortality and the mortality_clean which is the routine that deals with the diameter classes within a stand. 
    87 - [solved] The code crashes after 39 years with a sudden appearance of a very negative biomass. The code to keep the diameter classes monotonically increasing is not yet implemented (next step). 
    88  
    89 === 22.04.2016 === 
    90 - Revision 3382. Added age classes and the subroutine age_class_distr that moves the biomass between age classes. Adjusted the internal consistency checks for better testing. Created a new run.def to be used with the age classes. 
    91 - No new issues were found when updating the code. The code compiles and was run for 50 years over a single pixel containing all PFTs. 
    92  
    93 === 29.04.2016 === 
    94 - Revision 3397. Added two-way albedo 
    95 - [NOT solved] problems with 'snow_frac', feeding into values for the snow albedo greater than 1, and crashes shortly afterwards. Variable that is causing the problem appears to be 'frac_snow_veg',  in the subroutine 'albedo_two_stream'. This is a variable that is calculated in 'calculate_snow_albedo' subroutine and passed up to 'albedo_two_stream', and from there to condveg. The only place that it is calculated is 'calculate_snow_albedo'. In this particular model run it is zero for all PFTs. However in a later loop over all PFTs (within 'albedo_two_stream') the value of 'frac_snow_veg' strangely deviates from zero, which causes incremental  increases in the albedo, until eventually the model crashes. When I define a local variable for this PFT loop, 'frac_snow_veg_loc' (just within 'albedo_two_stream') the model does not crash. This is rather a clumsy solution, but it is strange that 'frac_snow_veg' does not retain its value during the loop. 
    96  
    97 === 02.05.2016 === 
    98 - Revision 3398. Added forestry, litter raking and anthropogenic mortality.    
    99 - no new issues were found when testing the code.  
    100 - [NOT solved] When moving from age class 2 to age class 3 several PFTs show a sudden jump in LAI. Needs to be looked at. May be one of the variables does not get correctly reset or calculated when moving the information from one to the next PFT. It was noticed just now but, if a bug, it was probably introduced at the time the age classes were introduced. No obvious link with forestry. 
    101  
    102 === 12.05.2016 === 
    103 - The routines with stomate_resp, stomate_soilcarbon and stomate_litter has been merged in rev3421. The mass balance was not closed in the original files from ORCHIDEE-N in particular for the routing nitrogen dynamic. 
    104 - [solved] With FOREST_MANAGED_FORCED > 1 the model crash after 24 years because of a mass balance error in stomate_natural_mortality. When FOREST_MANAGED_FORCED =1 the model runs fine for 50 years. 
    105  
    106 === 16.05.2016 === 
    107 - Revision 3442 has a more or less complete version of stomate (LCC is still missing but this routine does not affect the parameterisation of the model). 
    108 - [NOT solved] Most PFTs (except the crops) don't grow but don't die either (an issue with N-availability?) 
    109 - The mass balance has been closed for all the activated stomate routines (Also fo FOREST_MANAGED_FORCED = 2).  
    110 - [NOT solved] Need to test mass balance closure for FOREST_MANAGED_FORCED  = 3 (Coppice) and FOREST_MANAGED_FORCED  = 4 (Short Rotation Coppice).  
    111 - [NOT solved] Need to re-activate the independent mass balance check for stomate and write it to the history file (request from IPSL) 
    112  
     98- Re-introduced circ_class_biomass and circ_class_n. These variables are defined in sechiba because they are use by both stomate and sechiba.f90 
     99- [solved] Tried to make use of get_printlev (constantes.f90) as a more clean and consistent substitute for the ld_flags that were used for debugging in ORCHIDEE-CAN. get_printlev does not work. 
     100- [solved] The code crashes in stomate_growth_fun_alloc.f90 where qm_dia is calculated. All values are zero. 
     101 
     102=== 22.12.2015 === 
     103- Checked out svn 2978 twice (ORCHIDEE.NITROGEN and ORCHIDEE.MERGE). The nitrogen set-up is the reference for all the merges. Set-up 3 test runs: a single pixel run, a run over 4 pixels with 4 processors and a global run. The global run failed (see issues 22.12.2015). The SBG output for both installations was identical after 10 years. The SRF output differed by 10-5 to 10-8 for the C-fluxes for the 4 pixels and 10-6 to 10-9 for the single pixel run. This appears as a minor issue but it suggests that the 1+1 problem has not been solved. 
     104- [NOT solved] the land mask of the nitrogen map does not seem to match the land mask of the PFT map. In the single and multiple-pixel test cases impose_veget=y and thus the PFT map was not used. Switching on the PFT map for a global grid results in the following error. FATAL ERROR FROM ROUTINE slowproc_ninput . No information for a point . Fatal error from ORCHIDEE. STOP in ipslerr_p with code. 
     105- [NOT solved] two identical installations of the revision 2978 do not result in identical output for SRF. The SRF output differed by 10-5 to 10-8 for the C-fluxes for the 4 pixels and 10-6 to 10-9 for the single pixel run. This appears as a minor issue but it suggests that the 1+1 problem has not been solved. Interestingly GPP in stomate is identical. GPP in SRF is among the variables with shows small differences. 
     106- [solved] the function get_printlev does not work. Only printlev is read and used. printlev_loc is not working. Tried to debug but without success. This function contains about 5 lines of code so finding the problem shouldn't be too difficult. 
     107 
     108=== 10.12.2015 === 
     109- Checked out svn 2978. Compiled and set-up single-pixel, and multiple-pixels. 
     110- [NOT solved] svn 2978: the compiler had problems finding a library file for forcesoil. I removed forcesoil.exe and teststomate.exe from ../modeles/ORCHIDEE/makeorchidee_fcm so it compiles. 
     111- [solved] No LAI for PFT 12 and 13 (impose_veg = y). 
    113112 
    114113