1. The modularisation of code used by nitrogen and phosphorus routines
There are aspects which the nutrient cycles have in common, for example root uptake kinetics, stoichiometric considerations, etc. To avoid the risks of introducing inconsistencies and reduce redundant code, I introduced the following subroutines. All subroutines are in stomate_phosphorus.f90.
1.1 root_conductivity
This subroutine calculates the uptake capacity of N & P per mass root according to the uptake kinetics of ammonia and nitrate used in OCN (Zaehle & Friend, 2010).
1.2 f_XY_plant
This subroutine calculates the scaling functions based on the stoichiometric ratio of labile plant tissue (reserve, labile and leaf) which are used to scale root uptake, biological N2 fixation, and biochemical mineralization. It currently supports scaling functions based on the P-to-N ratio, N-to-C ratio and P-to-C ratio. All other combinations will cause a 'STOP', but could be easily implemented if needed.
2. The analytical spinup of the biogeochemical cycles [OUTDATED]
[OUTDATE INFORMATION HERE] ===One should do a sequential spinup as described in the the howto run the model section. The code takes care about the rest.=== [OUTDATE INFORMATION HERE] It is a bit tricky to figure out how to equilibrate the biogeochemical cycles in an efficient way. This OUTDATED site deals with the simulation setup: https://forge.ipsl.fr/orchidee/wiki/DevelopmentActivities/ORCHIDEE-CNP/spinup
Here I just list modifications I use currently. This might change.
Avoid that immobilisation demand exceeds mineral nutrient supply
During the an analytic spinup cycle the immobilisation demand can exceed the mineral nutrient supply (soil_n_min or soil_p_min). In such a case, we have to add artificially the needed amount of nutrients to the supply. Every time it is needed to add nutrients we do it during spinup.
Attachments (1)
- CNP_longterm.png (46.6 KB) - added by dgoll 9 years ago.
Download all attachments as: .zip