7 hphoto, ksize_nature_p, kr_nature_p, pvegtype_patch, &
8 pco2, pgmes, pgc, pdmax, pabc, ppoi, panmax, &
9 pfzero, pepso, pgamm, pqdgamm, pqdgmes, &
10 pt1gmes, pt2gmes, pamax, pqdamax, &
11 pt1amax, pt2amax, pah, pbh, &
12 ptau_wood, pincrease, pturnover )
65 USE yomhook
,ONLY : lhook, dr_hook
66 USE parkind1
,ONLY : jprb
74 TYPE(isba_t
),
INTENT(INOUT) :: i
76 CHARACTER(LEN=3),
INTENT(IN) :: hphoto
77 INTEGER,
DIMENSION(:),
INTENT(IN) :: ksize_nature_p
78 INTEGER,
DIMENSION(:,:),
INTENT(IN) :: kr_nature_p
79 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pvegtype_patch
80 REAL,
DIMENSION(:),
INTENT(IN) :: pco2
81 REAL,
DIMENSION(:,:),
INTENT(IN) :: pgmes
82 REAL,
DIMENSION(:,:),
INTENT(IN) :: pgc
83 REAL,
DIMENSION(:,:),
INTENT(IN) :: pdmax
84 REAL,
DIMENSION(:),
INTENT(OUT) :: pabc
85 REAL,
DIMENSION(:),
INTENT(OUT) :: ppoi
86 REAL,
DIMENSION(:,:),
INTENT(OUT) :: panmax
87 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pfzero
88 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pepso
89 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pgamm
90 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pqdgamm
91 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pqdgmes
92 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pt1gmes
93 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pt2gmes
94 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pamax
95 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pqdamax
96 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pt1amax
97 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pt2amax
98 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pah
99 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pbh
100 REAL,
DIMENSION(:,:),
INTENT(OUT) :: ptau_wood
101 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: pincrease
102 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: pturnover
107 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zp_vegtype_patch
108 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_gmes
109 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_co2
110 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_gc
111 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_dmax
112 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_anmax
113 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_fzero
114 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_epso
115 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_gamm
116 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_qdgamm
117 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_qdgmes
118 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_t1gmes
119 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_t2gmes
120 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_amax
121 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_qdamax
122 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_t1amax
123 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_t2amax
124 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_ah
125 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_bh
126 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_tau_wood
127 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zp_increase
128 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zp_turnover
129 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_abc
130 REAL,
DIMENSION(:),
ALLOCATABLE :: zp_poi
136 REAL(KIND=JPRB) :: zhook_handle
138 IF (lhook) CALL dr_hook(
'CO2_INIT_N',0,zhook_handle)
140 ilu =
SIZE(pvegtype_patch,1)
141 ipatch =
SIZE(pvegtype_patch,3)
142 inbiomass =
SIZE(pincrease,2)
146 IF (ksize_nature_p(jp) == 0 ) cycle
148 IF (maxval(pgmes(:,jp)).NE.xundef .OR. minval(pgmes(:,jp)).NE.xundef)
THEN
153 hphoto, zp_vegtype_patch,zp_gmes,zp_co2,zp_gc, &
154 zp_dmax,zp_abc,zp_poi,zp_anmax,zp_fzero, &
155 zp_epso,zp_gamm,zp_qdgamm,zp_qdgmes,zp_t1gmes, &
156 zp_t2gmes,zp_amax,zp_qdamax,zp_t1amax, &
157 zp_t2amax,zp_ah,zp_bh,zp_tau_wood )
169 IF (lhook) CALL dr_hook(
'CO2_INIT_N',1,zhook_handle)
174 INTEGER,
INTENT(IN) :: ksize, kpatch
175 INTEGER,
DIMENSION(:),
INTENT(IN) :: kmask
178 REAL(KIND=JPRB) :: zhook_handle
180 IF (lhook) CALL dr_hook(
'PACK_CO2_INIT',0,zhook_handle)
181 ALLOCATE(zp_vegtype_patch(ksize,nvegtype))
182 ALLOCATE(zp_gmes(ksize))
183 ALLOCATE(zp_co2(ksize))
184 ALLOCATE(zp_gc(ksize))
185 ALLOCATE(zp_dmax(ksize))
186 ALLOCATE(zp_anmax(ksize))
187 ALLOCATE(zp_fzero(ksize))
188 ALLOCATE(zp_epso(ksize))
189 ALLOCATE(zp_gamm(ksize))
190 ALLOCATE(zp_qdgamm(ksize))
191 ALLOCATE(zp_qdgmes(ksize))
192 ALLOCATE(zp_t1gmes(ksize))
193 ALLOCATE(zp_t2gmes(ksize))
194 ALLOCATE(zp_amax(ksize))
195 ALLOCATE(zp_qdamax(ksize))
196 ALLOCATE(zp_t1amax(ksize))
197 ALLOCATE(zp_t2amax(ksize))
198 ALLOCATE(zp_ah(ksize))
199 ALLOCATE(zp_bh(ksize))
200 ALLOCATE(zp_tau_wood(ksize))
201 ALLOCATE(zp_increase(ksize,inbiomass))
202 ALLOCATE(zp_turnover(ksize,inbiomass))
205 ALLOCATE(zp_abc(
SIZE(pabc)))
206 ALLOCATE(zp_poi(
SIZE(ppoi)))
212 zp_vegtype_patch(jj,:) = pvegtype_patch(ji,:,kpatch)
213 zp_gmes(jj) = pgmes(ji,kpatch)
214 zp_co2(jj) = pco2(ji)
215 zp_gc(jj) = pgc(ji,kpatch)
216 zp_dmax(jj) = pdmax(ji,kpatch)
218 IF (lhook) CALL dr_hook(
'PACK_CO2_INIT',1,zhook_handle)
224 INTEGER,
INTENT(IN) :: ksize, kpatch
225 INTEGER,
DIMENSION(:),
INTENT(IN) :: kmask
228 REAL(KIND=JPRB) :: zhook_handle
230 IF (lhook) CALL dr_hook(
'UNPACK_CO2_INIT',0,zhook_handle)
231 panmax(:,kpatch) = xundef
232 pfzero(:,kpatch) = xundef
233 pepso(:,kpatch) = xundef
234 pgamm(:,kpatch) = xundef
235 pqdgamm(:,kpatch) = xundef
236 pqdgmes(:,kpatch) = xundef
237 pt1gmes(:,kpatch) = xundef
238 pt2gmes(:,kpatch) = xundef
239 pamax(:,kpatch) = xundef
240 pqdamax(:,kpatch) = xundef
241 pt1amax(:,kpatch) = xundef
242 pt2amax(:,kpatch) = xundef
243 pah(:,kpatch) = xundef
244 pbh(:,kpatch) = xundef
245 ptau_wood(:,kpatch) = xundef
246 pincrease(:,:,kpatch) = xundef
247 pturnover(:,:,kpatch) = xundef
251 panmax(ji, kpatch) = zp_anmax(jj)
252 pfzero(ji, kpatch) = zp_fzero(jj)
253 pepso(ji, kpatch) = zp_epso(jj)
254 pgamm(ji, kpatch) = zp_gamm(jj)
255 pqdgamm(ji, kpatch) = zp_qdgamm(jj)
256 pqdgmes(ji, kpatch) = zp_qdgmes(jj)
257 pt1gmes(ji, kpatch) = zp_t1gmes(jj)
258 pt2gmes(ji, kpatch) = zp_t2gmes(jj)
259 pamax(ji, kpatch) = zp_amax(jj)
260 pqdamax(ji, kpatch) = zp_qdamax(jj)
261 pt1amax(ji, kpatch) = zp_t1amax(jj)
262 pt2amax(ji, kpatch) = zp_t2amax(jj)
263 pah(ji, kpatch) = zp_ah(jj)
264 pbh(ji, kpatch) = zp_bh(jj)
265 ptau_wood(ji, kpatch) = zp_tau_wood(jj)
266 pincrease(ji, :, kpatch) = zp_increase(jj, :)
267 pturnover(ji, :, kpatch) = zp_turnover(jj, :)
275 DEALLOCATE(zp_vegtype_patch)
280 DEALLOCATE(zp_anmax )
281 DEALLOCATE(zp_fzero )
284 DEALLOCATE(zp_qdgamm )
285 DEALLOCATE(zp_qdgmes )
286 DEALLOCATE(zp_t1gmes )
287 DEALLOCATE(zp_t2gmes )
289 DEALLOCATE(zp_qdamax )
290 DEALLOCATE(zp_t1amax )
291 DEALLOCATE(zp_t2amax )
294 DEALLOCATE(zp_tau_wood )
295 DEALLOCATE(zp_increase )
296 DEALLOCATE(zp_turnover )
299 IF (lhook) CALL dr_hook(
'UNPACK_CO2_INIT',1,zhook_handle)
subroutine unpack_co2_init(KMASK, KSIZE, KPATCH)
subroutine cotwoinit_n(I, HPHOTO, PVEGTYPE, PGMES, PCO2, PGC, PDMAX, PABC, PPOI, PANMAX, PFZERO, PEPSO, PGAMM, PQDGAMM, PQDGMES, PT1GMES, PT2GMES, PAMAX, PQDAMAX, PT1AMAX, PT2AMAX, PAH, PBH, PTAU_WOOD)
subroutine co2_init_n(I, HPHOTO, KSIZE_NATURE_P, KR_NATURE_P, PVEGTYPE_PATCH, PCO2, PGMES, PGC, PDMAX, PABC, PPOI, PANMAX, PFZERO, PEPSO, PGAMM, PQDGAMM, PQDGMES, PT1GMES, PT2GMES, PAMAX, PQDAMAX, PT1AMAX, PT2AMAX, PAH, PBH, PTAU_WOOD, PINCREASE, PTURNOVER)
subroutine pack_co2_init(KMASK, KSIZE, KPATCH)