7 hphoto, hisba, klu, kvegtype, kground_layer, kpatch, &
8 pvegtype, plai, pveg, pz0, pemis, pdg, pd_ice, &
9 prsmin, pgamma, pwrmax_cf, prgl, pcv, &
10 pz0_o_z0h, palbnir_veg, palbvis_veg, palbuv_veg, &
11 ph_tree, pre25, plaimin, pbslai, psefold, &
12 pgmes, pgc, pf2i, pdmax, ostress, &
13 pce_nitro, pcf_nitro, pcna_nitro, &
14 ptseed, ptreap, pwatsup, pirrig, &
15 prootfrac, kwg_layer, pdroot, pdg2, &
16 pgndlitter,prglgv,pgammagv,prsmingv, &
17 prootfracgv,pwrmax_cfgv,plaigv,pz0litter,ph_veg )
55 USE yomhook
,ONLY : lhook, dr_hook
56 USE parkind1
,ONLY : jprb
61 TYPE(isba_t
),
INTENT(INOUT) :: i
63 INTEGER :: isize_lmeb_patch
65 CHARACTER(LEN=3),
INTENT(IN) :: hphoto
66 CHARACTER(LEN=3),
INTENT(IN) :: hisba
68 INTEGER,
INTENT(IN) :: klu
69 INTEGER,
INTENT(IN) :: kvegtype
70 INTEGER,
INTENT(IN) :: kground_layer
71 INTEGER,
INTENT(IN) :: kpatch
73 REAL,
DIMENSION(:,:),
POINTER :: pvegtype
75 REAL,
DIMENSION(:,:),
POINTER :: plai
76 REAL,
DIMENSION(:,:),
POINTER :: pveg
77 REAL,
DIMENSION(:,:),
POINTER :: pz0
78 REAL,
DIMENSION(:,:),
POINTER :: pemis
80 REAL,
DIMENSION(:,:,:),
POINTER :: pdg
81 REAL,
DIMENSION(:,:) ,
POINTER :: pd_ice
83 REAL,
DIMENSION(:,:),
POINTER :: prsmin
84 REAL,
DIMENSION(:,:),
POINTER :: pgamma
85 REAL,
DIMENSION(:,:),
POINTER :: pwrmax_cf
86 REAL,
DIMENSION(:,:),
POINTER :: prgl
87 REAL,
DIMENSION(:,:),
POINTER :: pcv
88 REAL,
DIMENSION(:,:),
POINTER :: pz0_o_z0h
89 REAL,
DIMENSION(:,:),
POINTER :: palbnir_veg
90 REAL,
DIMENSION(:,:),
POINTER :: palbvis_veg
91 REAL,
DIMENSION(:,:),
POINTER :: palbuv_veg
93 REAL,
DIMENSION(:,:),
POINTER :: ph_tree
94 REAL,
DIMENSION(:,:),
POINTER :: pre25
95 REAL,
DIMENSION(:,:),
POINTER :: plaimin
96 REAL,
DIMENSION(:,:),
POINTER :: pbslai
97 REAL,
DIMENSION(:,:),
POINTER :: psefold
98 REAL,
DIMENSION(:,:),
POINTER :: pgmes
99 REAL,
DIMENSION(:,:),
POINTER :: pgc
100 REAL,
DIMENSION(:,:),
POINTER :: pf2i
101 REAL,
DIMENSION(:,:),
POINTER :: pdmax
102 LOGICAL,
DIMENSION(:,:),
POINTER :: ostress
103 REAL,
DIMENSION(:,:),
POINTER :: pce_nitro
104 REAL,
DIMENSION(:,:),
POINTER :: pcf_nitro
105 REAL,
DIMENSION(:,:),
POINTER :: pcna_nitro
107 TYPE(date_time),
DIMENSION(:,:),
POINTER :: ptseed
108 TYPE(date_time),
DIMENSION(:,:),
POINTER :: ptreap
109 REAL,
DIMENSION(:,:),
POINTER :: pwatsup
110 REAL,
DIMENSION(:,:),
POINTER :: pirrig
112 REAL,
DIMENSION(:,:,:),
POINTER :: prootfrac
113 INTEGER,
DIMENSION(:,:),
POINTER :: kwg_layer
114 REAL,
DIMENSION(:,:),
POINTER :: pdroot
115 REAL,
DIMENSION(:,:),
POINTER :: pdg2
117 REAL,
DIMENSION(:,:),
POINTER :: pgndlitter
118 REAL,
DIMENSION(:,:),
POINTER :: prglgv
119 REAL,
DIMENSION(:,:),
POINTER :: pgammagv
120 REAL,
DIMENSION(:,:),
POINTER :: prsmingv
121 REAL,
DIMENSION(:,:,:),
POINTER :: prootfracgv
122 REAL,
DIMENSION(:,:),
POINTER :: pwrmax_cfgv
123 REAL,
DIMENSION(:,:),
POINTER :: plaigv
124 REAL,
DIMENSION(:,:),
POINTER :: pz0litter
125 REAL,
DIMENSION(:,:),
POINTER :: ph_veg
127 REAL(KIND=JPRB) :: zhook_handle
133 IF (lhook) CALL dr_hook(
'ALLOCATE_PHYSIO',0,zhook_handle)
135 isize_lmeb_patch=count(i%LMEB_PATCH(:))
137 ALLOCATE(pvegtype(klu,kvegtype ))
139 ALLOCATE(plai(klu,kpatch ))
140 ALLOCATE(pveg(klu,kpatch ))
141 ALLOCATE(pz0(klu,kpatch ))
142 ALLOCATE(pemis(klu,kpatch ))
144 ALLOCATE(pdg(klu,kground_layer,kpatch))
145 ALLOCATE(pd_ice(klu,kpatch ))
147 ALLOCATE(prsmin(klu,kpatch ))
148 ALLOCATE(pgamma(klu,kpatch ))
149 ALLOCATE(pwrmax_cf(klu,kpatch ))
150 ALLOCATE(prgl(klu,kpatch ))
151 ALLOCATE(pcv(klu,kpatch ))
152 ALLOCATE(pz0_o_z0h(klu,kpatch ))
153 ALLOCATE(palbnir_veg(klu,kpatch ))
154 ALLOCATE(palbvis_veg(klu,kpatch ))
155 ALLOCATE(palbuv_veg(klu,kpatch ))
157 IF (isize_lmeb_patch>0 .OR. hphoto/=
'NON')
THEN
158 ALLOCATE(pbslai(klu,kpatch ))
160 ALLOCATE(pbslai(0,0))
164 IF (hphoto/=
'NON'.OR.ltreedrag)
THEN
165 ALLOCATE(ph_tree(klu,kpatch ))
167 ALLOCATE(ph_tree(0,0 ))
170 IF (hphoto/=
'NON')
THEN
171 ALLOCATE(pre25(klu,kpatch ))
172 ALLOCATE(plaimin(klu,kpatch ))
173 ALLOCATE(psefold(klu,kpatch ))
174 ALLOCATE(pgmes(klu,kpatch ))
175 ALLOCATE(pgc(klu,kpatch ))
176 ALLOCATE(pdmax(klu,kpatch ))
177 IF (hphoto/=
'AGS' .AND. hphoto/=
'LAI')
THEN
178 ALLOCATE(pf2i(klu,kpatch ))
179 ALLOCATE(ostress(klu,kpatch ))
180 IF (hphoto==
'NIT' .OR. hphoto==
'NCB')
THEN
181 ALLOCATE(pce_nitro(klu,kpatch ))
182 ALLOCATE(pcf_nitro(klu,kpatch ))
183 ALLOCATE(pcna_nitro(klu,kpatch ))
185 ALLOCATE(pce_nitro(0,0))
186 ALLOCATE(pcf_nitro(0,0))
187 ALLOCATE(pcna_nitro(0,0))
192 ALLOCATE(ostress(0,0))
193 ALLOCATE(pce_nitro(0,0))
194 ALLOCATE(pcf_nitro(0,0))
195 ALLOCATE(pcna_nitro(0,0))
199 ALLOCATE(plaimin(0,0))
200 ALLOCATE(psefold(0,0))
205 ALLOCATE(ostress(0,0))
206 ALLOCATE(pce_nitro(0,0))
207 ALLOCATE(pcf_nitro(0,0))
208 ALLOCATE(pcna_nitro(0,0))
213 IF (hphoto ==
'LAI' .OR. hphoto ==
'LST' .OR. hphoto ==
'NIT' .OR. hphoto ==
'NCB')
THEN
214 ALLOCATE(ptseed(klu,kpatch ))
215 ALLOCATE(ptreap(klu,kpatch ))
216 ALLOCATE(pwatsup(klu,kpatch ))
217 ALLOCATE(pirrig(klu,kpatch ))
219 ALLOCATE(ptseed(0,0))
220 ALLOCATE(ptreap(0,0))
221 ALLOCATE(pwatsup(0,0))
222 ALLOCATE(pirrig(0,0))
228 ALLOCATE(prootfrac(klu,kground_layer,kpatch))
229 ALLOCATE(kwg_layer(klu,kpatch))
230 ALLOCATE(pdroot(klu,kpatch))
231 ALLOCATE(pdg2(klu,kpatch))
233 ALLOCATE(prootfrac(0,0,0))
234 ALLOCATE(kwg_layer(0,0) )
235 ALLOCATE(pdroot(0,0) )
239 ALLOCATE(pgndlitter(klu,kpatch))
240 ALLOCATE(prglgv(klu,kpatch))
241 ALLOCATE(pgammagv(klu,kpatch))
242 ALLOCATE(prsmingv(klu,kpatch))
243 ALLOCATE(prootfracgv(klu,kground_layer,kpatch))
244 ALLOCATE(pwrmax_cfgv(klu,kpatch))
245 ALLOCATE(plaigv(klu,kpatch))
246 ALLOCATE(pz0litter(klu,kpatch))
247 ALLOCATE(ph_veg(klu,kpatch))
249 IF (lhook) CALL dr_hook(
'ALLOCATE_PHYSIO',1,zhook_handle)
subroutine allocate_physio(I, HPHOTO, HISBA, KLU, KVEGTYPE, KGROUND_LAYER, KPATCH, PVEGTYPE, PLAI, PVEG, PZ0, PEMIS, PDG, PD_ICE, PRSMIN, PGAMMA, PWRMAX_CF, PRGL, PCV, PZ0_O_Z0H, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PH_TREE, PRE25, PLAIMIN, PBSLAI, PSEFOLD, PGMES, PGC, PF2I, PDMAX, OSTRESS, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PTSEED, PTREAP, PWATSUP, PIRRIG, PROOTFRAC, KWG_LAYER, PDROOT, PDG2, PGNDLITTER, PRGLGV, PGAMMAGV, PRSMINGV, PROOTFRACGV, PWRMAX_CFGV, PLAIGV, PZ0LITTER, PH_VEG)