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


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

--

Legend:

Unmodified
Added
Removed
Modified
  • DevelopmentActivities/ORCHIDEE-DOFOCO

    v79 v80  
    99=== 10.12.2015 === 
    1010- 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). 
    1113 
    1214=== 22.12.2015 === 
    1315- 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. 
    1419 
    1520=== 27.12.2015 === 
     
    1722- Checked for mass balance closure for carbon and nitrogen 
    1823- 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 
    19 - 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 for me. 
    20 - The code crashes in stomate_growth_fun_alloc.f90 where qm_dia is calculated. All values are zero. 
     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. 
    2126 
    2227=== 06.01.2016 === 
     
    2530- Re-introduced circ_class_biomass and circ_class_n. 
    2631- Used get_printlev (constantes.f90) as a more clean and consistent substitute for the ld_flags that were used for debugging in ORCHIDEE-CAN. 
    27 - The code crashes in stomate_growth_fun_alloc.f90 where qm_dia is calculated. All values are zero. 
     32- [solved] The code crashes in stomate_growth_fun_alloc.f90 where qm_dia is calculated. All values are zero. 
     33- [NOT solved] The code still makes use of biomass and circ_class_biomass. Both were kept because in the initial implementation the labile and reserve pool were not defined at the circumference level. While merging phenology I found my myself working on code that distributed the reserves over the circumference classes. If this is consistently done throughout stomate there is no reason to keep biomass (and ind). This would also overcome the need to sync biomass vs circ_class_biomass and ind vs circ_class_ind. 
     34- [NOT solved] the Nitrogen version of the code makes use of Nsupport when impose_cn is TRUE. The function of the variable seems identical to atm_to_bm (which replaces co2_to_bm and n_to_bm) so Nsupport is no longer used. Confirm whether this is acceptable. 
     35- [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+++. 
    2836 
    2937=== 12.01.2016 === 
     
    3341- Fixed a nitrogen accounting issue 
    3442- Used get_printlev (constantes.f90) as a more clean and consistent substitute for the ld_flags that were used for debugging in ORCHIDEE-CAN. 
    35 - The code crashes in stomate_growth_fun_alloc.f90. 
     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. 
    3645 
    3746=== 27.01.2016 === 
    38 - 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.  
    39  
    40 === 03.02.2016 === 
    41 - 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. 
    42 - The evergreen PFTs respond as expected, the deciduous PFTs allocate C but do not allocate N.  
    43  
    44 === 03.02.2016 === 
    45 - Both evergreens and deciduous allocate C and N. 
    46   
    47 === 18.02.2016 === 
    48 - Merged the laieff code and made the link between stomate and sechiba 
    49  
    50 === 11.03.2016 === 
    51 - 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.  
    52  
    53 === 01.04.2016 === 
    54 - Revision 3337. Merged the turnover code and the mass balance is closed.  
    55  
    56 === 08.04.2016 === 
    57 - 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. 
    58  
    59 === 19.04.2016 === 
    60 - Revision 3374. Added natural mortality and the mortality_clean which is the routine that deals with the diameter classes within a stand. 
    61  
    62 === 22.04.2016 === 
    63 - 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. 
    64  
    65 === 29.04.2016 === 
    66 - Revision 3397. Added two-way albedo 
    67  
    68 === 02.05.2016 === 
    69 - Revision 3398. Added forestry, litter raking and anthropogenic mortality.    
    70  
    71  
    72 == ISSUES == 
    73 === 10.12.2015 === 
    74 - [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. 
    75 - [solved] No LAI for PFT 12 and 13 (impose_veg = y). 
    76  
    77 === 22.12.2015 === 
    78 - [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. 
    79 - [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. 
    80 - [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. 
    81  
    82 === 06.01.2016 === 
    83 - [NOT solved] the code still makes use of biomass and circ_class_biomass. Both were kept because in the initial implementation the labile and reserve pool were not defined at the circumference level. While merging phenology I found my myself working on code that distributed the reserves over the circumference classes. If this is consistently done throughout stomate there is no reason to keep biomass (and ind). This would also overcome the need to sync biomass vs circ_class_biomass and ind vs circ_class_ind. 
    84 - [NOT solved] the Nitrogen version of the code makes use of Nsupport when impose_cn is TRUE. The function of the variable seems identical to atm_to_bm (which replaces co2_to_bm and n_to_bm) so Nsupport is no longer used. Confirm whether this is acceptable. 
    85 - [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+++. 
    86  
    87 === 12.01.2016 === 
    88 - [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. 
    89  
    90 === 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.  
    9148- [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. 
    9249- [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. 
     
    9451 
    9552=== 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. 
    9658- [solved] No nitrogen allocation for deciduous trees 
    9759- [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+++ 
     
    10062- [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. 
    10163- [NOT solved] Phenology seems to work but is far from realistic. 
    102  
     64  
    10365=== 18.02.2016 === 
     66- Merged the laieff code and made the link between stomate and sechiba 
    10467- [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. 
    10568- [NOT solved] veget is now calculated from laieff. It needs to be checked whether this is always the case. Not sure about that. 
    106 - [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.  
    107    
     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 
    10871=== 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.  
    10973- No new issues were found when establishing the branch and updating the code 
    11074 
    11175=== 01.04.2016 === 
     76- Revision 3337. Merged the turnover code and the mass balance is closed.  
    11277- [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. 
    11378- [solved] There is no leaf on-set for the deciduous trees. Sapwood is simply consumed. 
     
    11580 
    11681=== 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. 
    11783- [solved] The code crashes after 4 years because a mass balance closure error with labile N in crops. 
    11884 
    11985=== 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. 
    12087- [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). 
    12188 
    122 === 22.04.2016 ===  
    123 - 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.  
     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. 
    12492 
    12593=== 29.04.2016 === 
    126 - [NOT solved] problems with 'snow_frac', feeding into values for the snow albedo greater than 1, and crashes shortly afterwards  
    127  
    128 - 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'. 
    129  
    130 - 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. 
     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. 
    13196 
    13297=== 02.05.2016 === 
     98- Revision 3398. Added forestry, litter raking and anthropogenic mortality.    
    13399- no new issues were found when testing the code.  
    134100- [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. 
    135101 
    136102=== 12.05.2016 === 
    137 - The routines with stomate_resp, stomate_soilcarbon and stomate_litter has been merged in rev3421. The mass balance was not close the original files from ORCHIDEE-N in particular for the routing nitrogen dynamic. 
    138 - 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. 
     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 
    139113 
    140114