6 SUBROUTINE cotwo(PCSP, PF2, PIA, PDS, PGAMMT, &
7 PFZERO, PEPSO, PANMAX, PGMEST, PGC, PDMAX, &
8 PAN, PGS, PRD, PLAITOP, PLAI )
59 USE modd_co2v_par
, ONLY : xrdcf, xairtoh2o, xco2toh2o, xcondstmin
60 USE modd_isba_par
, ONLY : xdenom_min
75 REAL,
DIMENSION(:),
INTENT(IN):: PCSP, PF2, PIA, PDS,PGAMMT
85 REAL,
DIMENSION(:),
INTENT(IN) :: PFZERO, PEPSO, PANMAX, PGMEST, PGC, PDMAX, PLAITOP, PLAI
101 REAL,
DIMENSION(:),
INTENT(OUT) :: PAN, PGS, PRD
110 REAL,
DIMENSION(SIZE(PAN)) :: ZFMIN, ZDRAP, ZF, ZWORK
116 REAL,
DIMENSION(SIZE(PAN)) :: ZCSP, ZCI, ZCMIN, ZAMIN
126 REAL,
DIMENSION(SIZE(PAN)) :: ZAM, ZEPS, ZLEF, ZAGR, ZAG
136 REAL,
DIMENSION(SIZE(PAN)) :: ZGSC, ZGS
142 REAL(KIND=JPRB) :: ZHOOK_HANDLE
159 zwork(jj) = max(pgc(jj)+pgmest(jj),xdenom_min)
162 zfmin(jj) = pgc(jj)/zwork(jj)
164 zfmin(jj) = min(zfmin(jj),pfzero(jj))
166 zfmin(jj) = max(zfmin(jj),xdenom_min)
170 IF (pdmax(jj).NE.0.)
THEN 171 zdrap(jj)=min(1.0,pds(jj)/pdmax(jj))
175 zf(jj) = pfzero(jj)*(1.0-zdrap(jj)) + zfmin(jj)*zdrap(jj)
177 zcsp(jj) = max(pcsp(jj),pgammt(jj)+1.e-6)
181 zci(jj) = zcsp(jj)*(zf(jj)+(1.0-zf(jj))*pgammt(jj)/zcsp(jj))
185 zcmin(jj) = (pgc(jj)*zcsp(jj) + pgmest(jj)*pgammt(jj))/zwork(jj)
189 zamin(jj) = pgmest(jj)*(zcmin(jj)-pgammt(jj))
196 zam(jj) = pgmest(jj)*(zci(jj)-pgammt(jj))
198 zam(jj) = -zam(jj)/panmax(jj)
199 zam(jj) = panmax(jj)*(1.0 - exp(zam(jj)))
200 zam(jj) = max(zam(jj),zamin(jj))
207 prd(jj) = zam(jj)*xrdcf/plai(jj)*exp(-0.2*plaitop(jj))
211 zeps(jj) = pepso(jj)*(zci(jj) - pgammt(jj))/(zci(jj) + 2.0*pgammt(jj))
213 IF (zam(jj)/=0.)
THEN 214 pan(jj) = (zam(jj) + prd(jj))*( 1.0 - exp(-zeps(jj)*pia(jj) &
215 /(zam(jj) + prd(jj))) ) - prd(jj)
219 pan(jj) = max(-prd(jj),pan(jj))
222 IF (zam(jj)/=0.)
THEN 223 zagr(jj) = (pan(jj) + prd(jj))/(zam(jj) + prd(jj))
228 zag(jj) = pan(jj) - zamin(jj)*zdrap(jj)*zagr(jj) + &
229 prd(jj)*(1.0-zagr(jj))
245 zgsc(jj) = zag(jj)/(zcsp(jj) - zci(jj))
246 zgsc(jj) = max( xcondstmin, zgsc(jj))
247 zgsc(jj) = zgsc(jj) + xairtoh2o*zlef(jj)*( (zcsp(jj) + &
248 zci(jj))/(2.0*(zcsp(jj) - zci(jj))) )
252 zgs(jj) = 1.6*zgsc(jj)
258 zlef(jj) = zgs(jj)*pds(jj)
271 pgs(:) = xco2toh2o*zgsc(:) + pgc(:)
276 pgs(:) = pgs(:) * min(1.0,pf2(:)/xdenom_min)
subroutine cotwo(PCSP, PF2, PIA, PDS, PGAMMT, PFZERO, PEPSO, PANMAX, PGMEST, PGC, PDMAX, PAN, PGS, PRD, PLAITOP, PLAI)