Version 44 (modified by bguenet, 11 years ago) (diff) |
---|
Vuichard's page on MergeOCN
This page describes the work of inclusion of the N cycle in the trunk of ORCHIDEE based on the work of S. Zaehle.
It is based on two versions of OCN. The "original" one as given by S. Zaehle in 2009 (rev 19, source:branches/orchidee-N@19) and the one modified by B. Guenet, N. Viovy which corresponds to the head of the same branch (source:branches/orchidee-N).
We first aim to implement the N-cycle in a version closed to the trunk version of ORCHIDEE but that accounts for the re-formulation of the aloccation (making use of labile C pool of reserve) as done by S. Luyssaert in the DOFOCO branch.
To do so, we started from a "hybrid" version where the sechiba component is from the trunk version of ORCHIDEE and the stomate component is from the DOFOCO branch. The work of integration of the N specifities has started from this version that is stored here : source:branches/orchidee-N
Here below, are described the differences in between the original code of OCN and the papers that have been used as a reference by S. Zaehle and the questions raised by N. Vuichard when checking the code of OCN.
All the papers of reference are stored on the cloud, here.
Comments are welcome in order to confirm bugs or to correct points that you think misinterpreted. I propose that each person has a color code for identifying him/her:
- Guenet
- Viovy
- Peylin
- Maignan
SOM decomposition - Routine : som_dynamics
- fraction from passive to slow pool. OCN contains the version of Century published in 1993 while the ORCHIDEE is more based on the publication of 1987. The fraction towards the passive pool of the carbon flow that goes out of the slow pool is set to 0.03 in Parton 1987, instead of 0.003-0.009*clay_fraction in Parton, 1993. Soenke kept the parametrization of 1987. There is no clear motivation on the reason why.
- Guenet
Soenke probably just added nitrogen on the CENTURY version that was already present in ORCHIDEE and did not totally updated CENTURY. I did not see reason to not update.
N flows in soil - Routine : nitrogen_dynamics
- Calculation of the anaerobic balloon. Nitrification and denitrification are varying (oppositely) depending of the anaerobic condition in soils as done in Li et al., 2000. This is done by using a variable named anvf (for ANaerobic Volumetric Fraction). In Li et al. (2000), anvf is calculated using the oxygen diffusion coefficient (Ds) which makes use of the air-filled porosity (afps). In OCN, the calculation of afps is defined with the following equation but not used later in the calculation of Ds. (See, here)
d_ox(:) = 1.73664 * ( 0.15 * (exp(-(soilhum_av(:)**3.)/0.44)-exp(-1./0.44))) * & (1.+0.007*tsoil_av(:))
So, in OCN, diffusion is not function of afps/afps_max ratio but accounts for soilhum and soil temperature according to Monteith & Unsworth, 1990.
We keep here the original formulation of Li et al., 2000
- Guenet
- Calculation of the oxygen partial pressure. For both the calculation of the gradient of oxygen partial pressure (d(pO2)/dz) and the change in oxygen partial pressure (d(pO2)/dt), we need dz, the depth over which one makes the calculation. It is not clear to me which depth one should use. For information, OCN used z_decomp (see here)
Exemple: I look at this point (Bertrand)
- Calculation of the oxygen partial pressure (2). Still in the calculation of the change in oxygen partial pressure (d(pO2)/dt) in OCN, it seems that "dz" term (z_decomp) is missing in the following equation (see here) when we compare with the reference formulation (Li et al., 2000, Eq. 4 of Table 2)
- Guenet
- Conversion Respiration to O2 pressure. The conversion factor here used for converting the respiration term in O2 pressure accounts for the air-filled porosity (see Li et al., 2000 eq. 3 table 2). In OCN, afps_max is used instead of afps. We keep the original formulation
- Guenet
- Calculation of the anaerobic balloon - anvf. The two constants a and b are not specified in Li et al., 2000. OCN uses a=0.85 and b=1 without mention to any publication (see here). As mention in the code of OCN these parameters have been estimated temporarily and need to be tuned. Might be good to find the values used in DNDC...
- Guenet
- Ammonium adsorption. It is based on Li et al. 1992, JGR, Table 4 using NH4 defined as the NH4+ concentration in the soil liquid, gN kg-1 soil (p. 9774) but Zhang et al. (2000) use also the same equation but in this paper NH4+ is defined as the [NH4+] in a soil layer in kgN ha-1. In OCN, NH4 seems defined as molNH4 m-3 of water (see, here). It would be good to clarify this by checking what looks like the equation depending of the units we use.
- Guenet
- Ammonium adsorption (2). Li et al. (1992) defines FIXNH4 as the proportion of adsorbed NH4+. One may assume that consequently the NH4+ that is not adsorbed is NH4+ x (1-FIXNH4) and that we want to consider this quantity for possible nitrification, transformation to ammonia, .... But in OCN, we do not multiply the state variable (SV) representing NH4+ by (1-FixNH4) but by (1-FixNH4/(1+FixNH4)) (see, here). This tends to assume that FixNH4 represents the ratio adsorped NH4+ to non-adsorped because FixNH4/(1+FixNH4) = (NH4adsorp/NH4non_adsorp)/((NH4non_adsorp+NH4adsorp)/NH4_non_adsorp) = NH4adsorp / NH4tot. This needs to be clarified ...
- Guenet
- Nitrification rate. The equation for the nitrification rate comes from Schmid et al., 2001, Nutr. Cycl. Agro (eq.1) but the environmental factors used are from Zhang (2002) who used an other equation, especially for Temperature effect on nitrification. I don't know how this can be mixed together ? This seems particularly inappropriate because the default fraction of N-NH4 which is converted to N-NO3 appears equal to 2 day-1 (a factor "2" in the equation, see here). In Schmid et al., the nitrification rate at 20 ◦C and field capacity (knitrif,20) was set to 0.2 d−1 (10 times less...)
- Guenet
- NO production from chemodenitrification. This is based on Kesik et al., 2005, Biogeosciences but Kesik et al. used NO2 concentration and not NO3 production as it is done in OCN. In parallel, there is a modification of a multiplicative constant from 300 (Kesik) to 30 (OCN). See the line in the code of OCN here. I don't know how this is reliable ?
- Guenet
- NO production and N2O production. In OCN, NO production and N2O production are deduced from the NO3 production based on the calculation of the nitrification rate (see above). See the line in the code of OCN here. I don't know if this is correct ?
- Guenet
- Relative growth rate of Nox denitrifiers. One uses a parameter defined as the Half Saturation of N oxydes (kgN/m3) from Table 4 of Li et al., 2000. It is set to 0.083 in Li et al. and OCN uses the value 0.087. We keep the original value. It is also not clear if the unit of this parameter are kgN per m3 of soil or per m3 of solution. In OCN, when converting from (kgN m-3) to (gN m-2) we multiply by "dpu_cste*mx_eau_eau" (see here. I don't know if this is correct. If it is per m3 of solution one should at least consider that soil is not necessary at the field capacity (ie. dpu_cste*mx_eau_eau*soilhum).
- Guenet
- Relative growth rate of Nox denitrifiers (2). In OCN, the term mu_nox(max) is missing in the equation that defines the relative growth rate of total denitrifiers (see eq. 2 of Table 4 of Li et al., 2000). See here. In addition, in OCN, the Relative growth rate of Nox denitrifiers is ranged between 0.0005*som(:,iactive,m,icarbon) and 0.25 * som(:,iactive,m,icarbon)). No clear justification. This is not kept so far.
- NO3 consumption by denitrification. This is based on Eq. 4 Table 4 of Li et al., 2000. In OCN (here), multiplication by 0.1 of the NO3 consumption. There is no justification. This is not kept so far.
- Guenet
- denitrifier bacterial population change. This is based on Eq. 3 of Table 4 Li et al. (2000). In OCN, there is only the denitrifier bact population change that is defined, not the population itself. And the bacterial population change is used in place of the bacterial population in the calculation of the production of NO3, NOx, N2O by denitrification. here. I don't know how it may work.
- Guenet
- Vmax of nitrogen uptake by plants. In OCN, the same values are used both for uptake of NH4+ and NO3-. See p. 3 of the SM of Zaehle & Friend, 2010: "As a first approximation average values for vmax, kNmin and KNmin are assumed for all PFTs (Table S1), and for both ammonium and nitrate". However based on the two papers of Kronzucker et al. (1995, 1996), it seems that vmax should be much higher for NH4+ than for NO3- . We still use the same here for both NH4+ and NO3- as in OCN.
- Vmax of nitrogen uptake by plants (2). I can not relate the value of vmax in OCN expressed in (umol (g DryWeight_root)-1 h-1) (vmax=3 here) to the one reported in Table S1 of Zaehle & Friend, 2010 (vmax=5.14 ugN (g-1C) d-1). The use of the conv_fac conversion factor used in OCN (here) should help to convert (umol (g dryWeight_root)-1 h-1) in (gN (g-1C) tstep-1). conv_fac is defined as 24. * dt / 2. / 1000000. * 14 with:
- 24 conversion of hour to day
- dt conversion of day to dt
- 1/2 conversion of g(dryWeight) to gC
- 1000000. conversion of ug to g
- 14 conversion of umol to ugN
- Vmax of nitrogen uptake by plants (3). I think there is an error in the conversion factor conv_fac (here) from (gDW)-1 to (gC)-1. When expressed per gC of root, the N uptake should be twice more than the one expressed per gDW of root, not twice less. So one should multiply by 2., not divide by 2. And so vmax should be equal to 2016 ug (gC)-1 d-1 (not 504).
- N uptake by plants. See eq. (8) p. 3 of SM of Zaehle & Friend, 2010. In OCN, there was a multiplicative factor "2" that I can not explain (see here). It may partly compensate (half compensation) the error mentioned above about conv_fac.
- Coefficient K_N_min. It corresponds to the [NH4+] (resp. [NO3-]) for which the Nuptake equals vmax/2. Kronzucker, 1995 reports values that range between 20 and 40 umol for NH4+ uptake. OCN seems to use 30 umol for both NH4+ and NO3-, because the value used in the code of OCN expressed in (gN m-2) is 0.84 (see here). In addition, in Kronzucker, 1995 and 1996, the concentrations are always expressed in umol. There is no clear reference about the standard volume it is related to. I assumed it is litter.
- Conversion factor from (umol per litter) to (gN m-2) for K_N_min. I assumed conv_fac_concent equals to 14 * 1e3 * 1e-6 * 2 with
- 14 : molar mass for N (gN mol-1)
- 103 : conversion factor (dm3 to m3)
- 10-6 : conversion factor (ug to g)
- 2 : m3 per m2 of soil
- Coefficient low_K_N_min. See eq. 8 of SM of Zaehle et al. (2010) and Table S1. In table S1, it is defined as the "Rate of N uptake not associated with Michaelis- Menten Kinetics" and the given value is 0.05 (-). It is mentioned also (unitless) but to my opinion it should have the same unit that 1/K_N_min or 1/N_min, so ((gN m-2)-1). So far, I cannot relate the value of low_K_N_min (0.05) to any reference, especially Kronzucker (1996). If I refer to Figure 4 of Kronzucker showing the NH4+ influx as a function of NH4+ concentration, the slope of the relationship could be used to define Vmax*low_K_N_min.
- For a concentration of NH4+ of 50 mmol, the influx equals 35 umol g-1 h-1.
- For a concentration of NH4+ of 20 mmol, the influx equals 17 umol g-1 h-1. So the slope can be written as
- slope = 10-3 * (35 - 17) / (50 - 20) = 10-3 * 18 / 30 = 0.0006 g-1 h-1 and consequently
- low_K_N_min = slope / Vmax = 0.0006 / 3 = 0.0002 (umol)-1
Using the Conversion factor from (umol per litter) to (gN m-2) conv_fac_concent = 14 * 1e3 * 1e-6 * 2, one should get low_K_N_min = 0.0002 / ( 14 * 1e3 * 1e-6 * 2 ) = 0.007 ((gN m-2)-1) The value of 0.007 does not match with the one in OCN (0.05, (see here)). This needs to be clarified
- N uptake by plants (2). In eq. 8 of SM of Zaehle et al. (2010) I think there is an error. It should not be (Nmin X KNmin) but (Nmin + KNmin). The source code of OCN is correct (see here).
- Loss of NH4 due to volatilisation of NH3. See Li et al. 1992, JGR, Table 4. It's used the current dissociation of [NH3] to [NH4+] (see Table 4 and Appendix A of Zhang et al. 2002):
log(K_NH4) - log(K_H20) = log(NH4/NH3) + pH
See also formula in "DISSOCIATION CONSTANTS OF INORGANIC ACIDS AND BASES" pdf file, where we have the definition and values of- pK_H2O = -log(K_H2O) = 14
- pk_NH4 = -log(K_NH4) = 9.25
In OCN, one makes use of frac_nh3, that is assumed to be the NH3/NH4 ratio. It is defined here as:
frac_nh3(:) = 10.0**(4.25-pH(:)) / (1. + 10.0**(4.25-pH(:)))I have several interrogations about the equation and value used in OCN. But I have also concerns about the formulation of Li et al. ...
- The formulation of Li et al. doesn't match with the formulas in "DISSOCIATION CONSTANTS OF INORGANIC ACIDS AND BASES" (here) or with the formulas of http://www.onlinebiochemistry.com/obj-512/Chap4-StudNotes.html. To my opinion, one should replace log(K_NH4+) by log(K_NH3) in the formulation of Li et al. With the relationship pKa + pKb = pKwater (where a and b are acid and base) this leads to [NH4+]/[NH3] = 10(pK_NH4 - pH) = 10(9.25 - pH)
- Wether I'm right or not about a., I don't understand the value used in OCN (4.25). It should be either 4.75 or 9.25 but 4.25 looks strange
- OCN used a formulation for [NH3]/[NH4+] of the type: X/(1+X) with X=[NH3]/[NH4+].
This leads to X/(1+X)=([NH3]/[NH4+])/(([NH4+]/[NH4+])+([NH3]/[NH4+])) or X/(1+X) = [NH3] / ( [NH3] + [NH4+] ) This means that the value stored in soil_n_min(:,:,iammonium) corresponds to the total N of both [NH4+] and [NH3]. This makes sense to my opinion, but I wonder if one should not account for this partitioning between [NH4+] and [NH3] in other processes. To check.
- The X value should relate to [NH3]/[NH4+] but to my opinion the X value used in the equation in OCN corresponds to [NH4+]/[NH3]. Is this a bug ?
In conclusion, I propose the formulation
frac_nh3(:) = 10.0**(pH(:)-pk_NH4) / (1. + 10.0**(pH(:)-pk_NH4))
- Reduction of the ammonia volatilization. See here. This seems a patch added to OCN in order to (as mentioned in OCN) reduced emissions at low concentration (problem of only one soil layer). This is not activated yet but it is kept as a comment.
- Emission of geseous species. In OCN (here for instance), one used formulations of the type
emission = d_ox(:) * soil_n_min(:,m,inox) * (0.13-0.079*clay(:)) * dt / z_decomp
It should have the units of d_ox * soil_n_min * dt / z_decomp
or so, m2 day-1 * gN m-2 * day / m = gN / m which is not homogeneous with the unit expected (gN m-2)
To my opinion, one should not use soil_n_min (gN m-2) but a volumetric concentration (gN m-3), but I'm not clear what is the appropriate volume to consider (volume of soil, air-filled porosity, ...)
- Update pools of nitrogen in the soil. See here. To my opinion, for a better consistency, I would recommand to consider the leaching separately when calculating the ammonium and nitrate budget. Leaching is calculated from sechiba. It might be better to remove leaching at the top of the routine especially due to the later calculation of NH4+ and NO3- concentration that will vary with the soil water content. Let's imagine that from one time step to another, the change in soil water content is only due to leaching. We don't want that the NH4+ and NO3- concentration vary from one time step to the other. The best way to avoid this is to remove first the leaching from the NH4+ and NO3- pools. This is not done yet.
- Guenet
- Additional general comments. From my reading of the code of OCN, it appears that there are at least 3 processes/calculations for which we really need to be careful:
- The use of the anaerobic balloon. We need to check if the fraction anvf is used in the relevant equations or not.
- The use of reference depth especially for the calculation of the different emissions. Is z_decomp the most appropriate reference depth ? How this depth should be related to the depth of the soil we consider in the N-related processes (and the parameter dpu_cste ?
- The way we calculate concentrations in OCN. Are those concentrations always defined per volume of solution or not ? If os, are we sure that we account for the current water content in the soil (by using shumdiag for instance) ?