89 double MaxRate = 0.15;
99 double min_ammonium = 0.03;
101 double rel_wc[4], avg_rel_wc, avgfc, avgstemp;
102 double absoluteMaxRate;
112 if (*ammonium < min_ammonium) {
114 fprintf(stdout,
"CANNOT NITRIFY, ammonium too small\n");
125 grams_soil = (layers->
bulkd[0]*layers->
width[0] +
129 nh4_conc = *ammonium/grams_soil*1.0E6;
132 fprintf(stdout,
"ammonium = %10.4lf\n", *ammonium);
133 fprintf(stdout,
"nh4_conc = %10.4lf\n", nh4_conc);
143 for (ilyr = 1; ilyr < 3; ilyr ++) {
144 rel_wc[ilyr] = (layers->
swc[ilyr]/(layers->
width[ilyr]) -
147 if (rel_wc[ilyr] < 0.0) {
149 }
else if (rel_wc[ilyr] > 1.0) {
152 rel_wc[ilyr] *= layers->
width[ilyr];
154 avg_rel_wc = (rel_wc[1] + rel_wc[2]) /
157 if (avg_rel_wc < 1.0) {
158 fNwfps = 1.0/(1.0 + 30.0 * exp(-9.0 * avg_rel_wc));
163 avgwfps = (layers->
wfps[1]*layers->
width[1] +
167 fprintf(stdout,
"avgwfps = %6.2lf\n", avgwfps);
175 fNwfps = (0.0 - 1.0) / (1.0 - avgfc) * (avgwfps - 1.0) + 0.0;
214 fprintf(stdout,
"%6s %6s %6s %6s\n",
"fNwfps",
"fNsoilt",
"fNph",
216 fprintf(stdout,
"%6.4lf %6.4lf %6.4lf %6.4lf\n", fNwfps, fNsoilt, fNph,
220 base_flux = 0.1/10000.0;
221 abiotic =
max(fNwfps * fNsoilt, sitepar->
Ncoeff);
222 absoluteMaxRate =
min(0.4, *ammonium * MaxRate);
223 *nh4_2_no3 = absoluteMaxRate * fNph * abiotic * *nreduce +
226 if ((*ammonium - *nh4_2_no3) > min_ammonium) {
227 *ammonium -= *nh4_2_no3;
229 *nh4_2_no3 =
min(*nh4_2_no3, *ammonium - min_ammonium);
230 *ammonium = min_ammonium;
double soiltavg[MAXLYR]
Definition: soilwater.h:142
double f_arctangent(double x, double A[])
Definition: pi_funcs.c:71
double fieldc[MAXLYR]
Definition: soilwater.h:76
double pH[MAXLYR]
Definition: soilwater.h:85
double swclimit[MAXLYR]
Definition: soilwater.h:83
#define min(a, b)
Definition: diffusiv.c:66
double bulkd[MAXLYR]
Definition: soilwater.h:75
void wfps(LAYERPAR_SPT layers)
Definition: wfps.c:50
double f_exponential(double x, double A[])
Definition: pi_funcs.c:88
double width[MAXLYR]
Definition: soilwater.h:71
double Ncoeff
Definition: soilwater.h:124
double f_gen_poisson_density(double x, double A[])
Definition: pi_funcs.c:151
#define max(a, b)
Definition: diffusiv.c:67
double wfps[MAXLYR]
Definition: soilwater.h:92
double swc[MAXLYR]
Definition: soilwater.h:89