Opened 10 months ago

Last modified 6 months ago

#927 new enhancement

Revise stand structure, recruitment and forest management

Reported by: luyssaert Owned by: somebody
Priority: major Milestone: Work on forest disturbances and management
Component: Anthropogenic processes Version: trunc
Keywords: Cc:

Description

There are many interactions between stand structure, recruitment, and forest management in the ORCHIDEE code. As part of MIP, the code and its parameters are being revised to better match forest ecosystem models such as EFISCEN-Space, SIME, PICUS and GOTILWA.

Tasks:
(a) use a more flexible parameterization for rdi_target;
(b) parameterize rdi_target for all forest PFTs for both managed and unmanaged forests;
(c) make the diameter distribution (circ_class_distr) a function of the mean diameter of the stand;
(d) integrate the dynamic circ_class_distr with the age class and land cover change functionality (work to be done in the merge_biomass subroutine);
(e) make the recruitment dynamics more realistic; and
(f) introduce an rdi_target for continuous cover forestry.

These series of tasks were combined in a single ticket because of the many interactions between them. When committing it would de difficult to assign the commit to a specific task.

Change History (2)

comment:1 Changed 10 months ago by luyssaert

r8018 includes the following code changes:

  • A more flexible parameterization for rdi_target (hack_polynomial_rdi). This is currently implemented as a hack such that the results of the default model settings are not affected. The polynomial function should become the default after further testing. See to do (a));
  • The diameter distribution (circ_class_distr) is now a function of the mean diameter of the stand;
  • The recruitment dynamics are now a function of stand density which results in a more realistic behavior. Further refinements are suggested in #888.
  • A fix for a rare mass balance problem in the function cc_to_biomass
  • Additional error checking in stomate_growth_fun_all that was used to find and fix the mass balance problem in cc_to_bm.

r8027 includes the following changes:

  • The method used to calculate recruitment can now be controlled through HACK_RECRUITMENT. This is a temporary hack that will be removed once the new recruitment scheme is parameterized. The hack was introduced because in r8018 the code was updated but the recruitment parameters were not. This resulted in NaN and thus a crash.
  • qm_init was moved out of stomate and into stomate_prescribe. The hack (hack_qmd_init) that bypasses a problem related to the initialization has been removed.

TO DO:
(a) parameterize rdi_target for all forest PFTs for more management systems (even aged, unevenaged, coppice, src, unmanaged and all relevant PFTs);
(b) integrate the dynamic circ_class_distr with the age class and land cover change functionality (work to be done in the merge_biomass subroutine). Should the merge result in a unimodal distribution or should we allow for a bimodal (which is possible with the Weibull function);
(c) Do we keep circ_class_dist in stomate.f90. YES but it should be made PFT_dependent (cf. recruitment).
(d) Stomate_lpj.f90 add rdi_target for coppice and src to the history files. A CHECK was added at the appropriate location in the code.

TO CHECK:
(e) Sapiens_kill.f90. Do we need to recalculate the distribution for second coppice?
(f) The dynamics of the Weibull can be justified by recruitment. For extreme disturbances, the sudden change in the Weibull would basically replace recruitment. Do we still need recruitment?
(g) Keep recruitment as a driver for the dynamics in the Weibull -> to be checked/tested.
(h) Why is st_dist = weibull -> This way killing is always proportional. Is that we really want?

Last edited 10 months ago by luyssaert (previous) (diff)

comment:2 Changed 6 months ago by luyssaert

r8231 includes the following code changes:

  • Removed HACK_POLYNOMIAL_RDI, HACK_RECRUITMENT, HACK_WEIBULL_DIST
  • Accepted the polynomial rdi, new recruitemnt and the weibull distribution as the default settings.
  • Added unevenaged forest management
  • Calculates the polynomial RDI trajectories from a few key parameters

PROGRESS
(a) parameterize rdi_target for all forest PFTs for more management systems (even aged, unevenaged, coppice, src, unmanaged and all relevant PFTs);
-> Main purpose of this commit.

(d) Stomate_lpj.f90 add rdi_target for coppice and src to the history files. A CHECK was added at the appropriate location in the code.
-> Addressed in this commit.

(h) Why is st_dist = weibull -> This way killing is always proportional. Is that we really want?
-> st_dist = weibull is only used for self-thinning. In the absence of more detailed on information on which trees die preferably during self-thinning, this is a fair assumption.

TO DO:
(b) integrate the dynamic circ_class_distr with the age class and land cover change functionality (work to be done in the merge_biomass subroutine). This is a blocking issue in Milestone 4.2. A separate ticket was created #951

(c) Do we keep circ_class_dist in stomate.f90. This is a minor issue of code cleaning. A separate ticket was created #950

TO CHECK:
(e) Sapiens_kill.f90. Do we need to recalculate the distribution for second coppice?
(f) The dynamics of the Weibull can be justified by recruitment. For extreme disturbances, the sudden change in the Weibull would basically replace recruitment. Do we still need recruitment? We want to keep recruitment separated as much as possible from the Weibull.
(g) We want to keep recruitment as a driver for the dynamics in the Weibull -> checked/tested whether this is the case.

Last edited 6 months ago by luyssaert (previous) (diff)
Note: See TracTickets for help on using tickets.