Opened 3 years ago

Closed 2 weeks ago

#753 closed defect (fixed)

Check age classes

Reported by: luyssaert Owned by: luyssaert
Priority: critical Milestone: Work on forest disturbances and management
Component: Biogeochemical processes Version: trunc
Keywords: Cc:

Description

The results of configurations without LCC should be identical irrespective of whether 1 or x age classes are used. A test run with r6980 showed this is no longer the case. When the vegetation is moved to the next age class, for example, GPP between two setups diverges quickly (7N, 81W, PFT2). Suggesting that one or several (new) variables are not properly handled or not handled at all in age_class_distr.

Change History (8)

comment:1 Changed 2 years ago by luyssaert

A conflict in slowproc that prevented using age classes in combination with impose_veg is fixed in r7333

comment:2 Changed 20 months ago by luyssaert

  • Owner changed from somebody to luyssaert
  • Status changed from new to accepted

comment:3 Changed 19 months ago by jjeong

The same problem was observed with r7536, 1N 59W, PFT3: Diameter decreased and IND increased when age changed from age1 to age2, which did not happen without age class. This stemmed from that lstress_fac is not moved so recruitment is calculated maximum with age2.


Printed variables in stomate_prescribe.f90 without age class

We are calling stomate_prescribe.f90 for sapling recruitment in PFT

0 3
0 Density of stem 0.683279479178339
0 Mean seasonal transmitted light used in stomate_prescribe.f90 (ivm,ipts,nlevel
0 s_tot) 3 1 10
0 10 1.00021016535762
0 9 1.00021016535762
0 8 0.753268309090018
0 7 0.459064701011401
0 6 0.263385988964993
0 5 0.163530114598119
0 4 0.111529136957455
0 3 8.411678289400436E-002
0 2 6.791003804610461E-002
0 1 4.834454242356064E-002
0 lstress_fac from CN-CAN is 4.83445424235606 (%)
0 PFT, 3
0 canopy cover (LAI), 0.000000000000000E+000
0 used canopy_gap (%) is, 4.83445424235606
0 Original ind is, 6832.79479178339
0 new_ind is, 0.966891048471212


Printed variables in stomate_prescribe.f90 with age class

0 We are calling stomate_prescribe.f90 for sapling recruitment in PFT
0 7
0 Density of stem 0.683279474336626
0 Mean seasonal transmitted light used in stomate_prescribe.f90 (ivm,ipts,nlevel
0 s_tot) 7 1 10
0 10 1.00000000000000
0 9 1.00000000000000
0 8 1.00000000000000
0 7 1.00000000000000
0 6 1.00000000000000
0 5 1.00000000000000
0 4 1.00000000000000
0 3 1.00000000000000
0 2 1.00000000000000
0 1 1.00000000000000
0 lstress_fac from CN-CAN is 100.000000000000 (%)
0 PFT, 7
0 canopy cover (LAI), 0.000000000000000E+000
0 used canopy_gap (%) is, 100.000000000000
0 Original ind is, 6832.79474336626
0 new_ind is, 20.0000002000000

Note that lstress_fac is 1 for the below block and new_ind is much higher in the end.

comment:4 Changed 18 months ago by luyssaert

This issue is solved in r7554 by adding the variable light_tran_to_level_season in the subroutine age_class_distr

comment:5 Changed 18 months ago by jjeong

Even after the fix in r7554 there still are differences between simulation with age classes and without age classes.
Also in the simulations with off the recruitment, the differences are less but still, there are.

comment:6 Changed 17 months ago by luyssaert

r7615 decreases the difference in the restart files between a run with and a run without age classes. For variables such as TOTAL_M_c the difference is a few grams after 100 years. Some difference start as 10e-15 (the last digit differs). It is unclear yet whether these small differences propagate through time or whether there are variables missing from the restart file. Needs to be further investigated.

comment:7 Changed 7 months ago by jgipsl

  • Milestone changed from ORCHIDEE 4.3 to Forest disturbances and management

comment:8 Changed 2 weeks ago by luyssaert

  • Resolution set to fixed
  • Status changed from accepted to closed

RELEVANT FOR TRUSTING.
If a setup with one age is restartable and the setup with 4 age classes is restartable, then AGE1 and AGE4 should be identical for a simulation:

  • without land cover change (the assumption underlying this test is only valid if veget_max does not change)
  • without disturbances (the assumption underlying this test is only valid if veget_max does not change)
  • With HACK_AGE_CLASS_CALC = y (default = n). Differences come from the merge_biomass routine in age_class_distr. This routine has an excellent precision but the outcome is not identical bit-by-bit. Moving the biomass into the new pft rather than calculating with merge_biomass results in identical restart files for one and four age classes.

r8178 meets this criteria. The code has been tested globally for 200 years.

Note: See TracTickets for help on using tickets.