202 const double AP = 101325;
203 const double P = AP / 1e3;
205 const double Q10 = 2;
209 double InterCellularCO2 ;
211 double Vtn , Vtd , VT ;
212 double Rtn , Rtd , RT ;
213 double b0 , b1 , b2 ;
216 double Quada , Quadb , Quadc ;
219 double Gs , miC = 0.0 ;
220 double diff, OldAssim = 0.0, Tol = 0.1;
231 Csurface = (Ca * 1e-6) * AP ;
233 InterCellularCO2 = Csurface * 0.4;
235 KQ10 = pow(Q10,((Tl - 25.0) / 10.0));
245 Vtn = vmax * pow(2,((Tl-25.0)/10.0));
246 Vtd = ( 1 + exp(0.3 * (lowerT-Tl)) ) * (1 + exp( 0.3*(Tl-upperT) ));
251 Rtn = Rd * pow(2 , (Tl-25)/10 ) ;
252 Rtd = 1 + exp( 1.3 * (Tl-55) ) ;
256 b0 = VT * alpha * Qp ;
257 b1 = VT + alpha * Qp ;
261 M1 = (b1 + sqrt(b1*b1 - (4 * b0 * b2)))/(2*b2) ;
262 M2 = (b1 - sqrt(b1*b1 - (4 * b0 * b2)))/(2*b2) ;
273 while(iterCounter < 50)
276 kT_IC_P = kT * (InterCellularCO2 / P*1000);
281 a2 = (Quadb - sqrt(Quadb*Quadb - (4 * Quada * Quadc))) / (2 * Quadc);
285 if(ws == 0) Assim *= StomaWS;
288 csurfaceppm = Csurface * 10 ;
291 Gs =
ballBerry(Assim,csurfaceppm, Tl, RH, bb0, bb1) ;
292 if(ws == 1) Gs *= StomaWS;
294 InterCellularCO2 = Csurface - (Assim * 1e-6 * 1.6 * AP) / (Gs * 0.001);
296 if(InterCellularCO2 < 0)
297 InterCellularCO2 = 1e-5;
299 if(iterCounter == 0){
302 IntCO2 = InterCellularCO2;
305 diff = OldAssim -
Assim;
306 if(diff < 0) diff = -diff;
342 miC = (InterCellularCO2 / AP) * 1e6 ;
double GrossAssim
Definition: c4photo.h:15
double Assim
Definition: c4photo.h:12
double Gs
Definition: c4photo.h:13
double ballBerry(double Amu, double Cappm, double Temp, double RelH, double beta0, double beta1)
Definition: c4photo.c:106