61 USE modd_data_cover_par
, ONLY :
66 USE modd_data_cover_par
, ONLY : nvegtype_ecosg, nvegtype, nvt_c3, nvt_c3w, nvt_c3s, nvt_c4, nvt_irr, &
67 nvt_trog, nvt_tebd, nvt_bone, nvt_trbe, nvt_trbd, &
68 nvt_tebe, nvt_tene, nvt_bobd, nvt_bond, nvt_shrb, nvt_gras
70 USE modd_co2v_par
, ONLY : xtopt, xfzero1, xfzero2, xfzerotrop, xepso, xgamm, xqdgamm, &
71 xqdgmes, xt1gmes, xt2gmes, xamax, itransfert_esg, &
72 xqdamax, xt1amax, xt2amax, xah, xbh, &
73 xdspopt, xiaopt, xaw, xbw, xmco2, xmc, xtau_wood
93 REAL,
DIMENSION(:),
INTENT(IN) :: PCO2
104 REAL,
DIMENSION(SIZE(PK%XANMAX)) :: ZGS, ZGAMMT, ZTOPT, ZANMAX, ZGMEST
114 REAL,
DIMENSION(SIZE(PK%XANMAX)) :: ZCO2INIT3, ZCO2INIT4, ZCO2INIT5,
119 REAL,
DIMENSION(SIZE(PK%XDMAX)) :: ZDMAX
120 REAL,
DIMENSION(SIZE(PK%XDMAX)) :: ZWORK
123 REAL(KIND=JPRB) :: ZHOOK_HANDLE
167 IF (jclass==nvt_c4 .OR. jclass==nvt_irr .OR. jclass==nvt_trog)
THEN 172 IF(io%LAGRI_TO_GRASS.AND.(jclass==nvt_c4 .OR. jclass==nvt_irr)) ico2type
179 ztopt(:) = ztopt(:) + xtopt(ico2type) * pk%XVEGTYPE_PATCH(:,jclass
180 IF((jclass==nvt_tebd) .OR. (jclass==nvt_bone) .OR.
183 pk%XFZERO (:) = pk%XFZERO (:) + ((xaw - log(pek%XGMES(:)*1000.0))/xbw
184 ELSE IF (jclass==nvt_trbe)
THEN 185 pk%XFZERO (:) = pk%XFZERO (:) + xfzerotrop(irad) * pk%XVEGTYPE_PATCH
187 pk%XFZERO (:) = pk%XFZERO (:) + xfzero2(ico2type) * pk%XVEGTYPE_PATCH
190 pk%XEPSO (:) = pk%XEPSO (:) + xepso(ico2type) * pk%XVEGTYPE_PATCH(
202 IF(io%LAGRI_TO_GRASS.AND.(jclass==nvt_c3 .OR. jclass==nvt_c3w .OR. jclass
209 IF (nvegtype==nvegtype_ecosg)
THEN 210 pk%XTAU_WOOD(:) = pk%XTAU_WOOD(:) + xtau_wood(itransfert_esg(iclass)
213 pk%XTAU_WOOD(:) = pk%XTAU_WOOD(:) + xtau_wood(iclass) * pk%XVEGTYPE_PATCH
219 pk%XQDGAMM(:)=log(pk%XQDGAMM(:))
220 pk%XQDGMES(:)=log(pk%XQDGMES(:))
221 pk%XQDAMAX(:)=log(pk%XQDAMAX(:))
232 zwork(:) = (0.1*(ztopt(:)-25.0)) * pk%XQDGAMM(:)
233 zgammt(:) = pk%XGAMM(:)*exp(zwork(:))
237 zwork(:) = (0.1*(ztopt(:)-25.0)) * pk%XQDAMAX(:)
238 zanmax(:) = ( pk%XAMAX(:)*exp(zwork(:)) ) &
239 /( (1.0+exp(0.3*(pk%XT1AMAX(:)-ztopt(:))))* &
240 (1.0+exp(0.3*(ztopt(:)-pk%XT2AMAX(:)))) )
244 zwork(:) = (0.1*(ztopt(:)-25.0)) * pk%XQDGMES(:)
245 zgmest(:) = ( pek%XGMES(:)*exp(zwork(:)) ) &
246 /( (1.0+exp(0.3*(pk%XT1GMES(:)-ztopt(:))))* &
247 (1.0+exp(0.3*(ztopt(:)-pk%XT2GMES(:)))) )
252 zco2init3(:) = xdspopt
253 zco2init4(:) = xiaopt
263 zgmest(:) = zgmest(:)*zco2init5(:)
267 IF(io%CPHOTO/=
'NON')
THEN 268 zdmax(:) = exp((log(zgmest(:)*1000.)-pk%XAH(:))/pk%XBH(:))/1000.
270 zdmax(:) = pk%XDMAX(:)
278 zanmax(:)=zanmax(:)/1.2
279 zepso(:)=pk%XEPSO(:)/1.2
280 zgammt(:)=zgammt(:)*xmco2/
xmd*1e-6
282 CALL cotwo(pco2, zco2init5, zco2init4, zco2init3, zgammt, &
283 pk%XFZERO(:), zepso, zanmax, zgmest, pek%XGC, zdmax, &
284 pk%XANMAX(:), zgs, zrdk, zco2init2, zco2init1 )
subroutine cotwoinit_n(IO, S, PK, PEK, PCO2)
subroutine cotwo(PCSP, PF2, PIA, PDS, PGAMMT, PFZERO, PEPSO, PANMAX, PGMEST, PGC, PDMAX, PAN, PGS, PRD, PLAITOP, PLAI)