54 USE yomhook
,ONLY : lhook, dr_hook
55 USE parkind1
,ONLY : jprb
60 TYPE(isba_t
),
INTENT(INOUT) :: i
63 INTEGER,
INTENT(IN) :: kpatch
65 REAL(KIND=JPRB) :: zhook_handle
67 IF (lhook) CALL dr_hook(
'PACK_ISBA_PATCH_GET_SIZE_N',0,zhook_handle)
95 IF (i%TSNOW%SCHEME==
'EBA')
THEN
96 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+1
98 pki%NSIZE_0=pki%NSIZE_0+1
101 IF (i%TSNOW%SCHEME==
'3-L' .OR. i%TSNOW%SCHEME==
'CRO')
THEN
102 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+4
103 pki%NSIZE_SNOW=pki%NSIZE_SNOW+2
105 pki%NSIZE_0=pki%NSIZE_0+4
106 pki%NSIZE_00=pki%NSIZE_00+2
109 IF(i%TSNOW%SCHEME==
'CRO')
THEN
110 pki%NSIZE_SNOW=pki%NSIZE_SNOW+3
112 pki%NSIZE_00=pki%NSIZE_00+3
116 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+1
118 pki%NSIZE_0=pki%NSIZE_0+1
121 IF (i%CSCOND==
'PL98'.OR.i%CISBA==
'DIF')
THEN
122 pki%NSIZE_GROUND=pki%NSIZE_GROUND+3
124 pki%NSIZE_01=pki%NSIZE_01+3
127 IF (i%CISBA==
'2-L' .OR. i%CISBA==
'3-L')
THEN
128 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+7
129 pki%NSIZE_2=pki%NSIZE_2+1
131 pki%NSIZE_0=pki%NSIZE_0+7
132 pki%NSIZE_00=pki%NSIZE_00+1
135 IF (i%CISBA==
'DIF')
THEN
136 pki%NSIZE_GROUND=pki%NSIZE_GROUND+4
137 pki%NSIZE_NSIMPLE=pki%NSIZE_NSIMPLE+1
138 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+2
140 pki%NSIZE_01=pki%NSIZE_01+4
141 pki%NSIZE_N0=pki%NSIZE_N0+1
142 pki%NSIZE_0=pki%NSIZE_0+2
145 IF (i%CISBA==
'DIF'.AND.i%CRUNOFF==
'SGH')
THEN
146 pki%NSIZE_GROUND=pki%NSIZE_GROUND+1
148 pki%NSIZE_01=pki%NSIZE_01+1
152 pki%NSIZE_SIMPLE = pki%NSIZE_SIMPLE+4
154 pki%NSIZE_0 = pki%NSIZE_0+4
157 IF (i%CPHOTO==
'NON')
THEN
158 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+1
160 pki%NSIZE_0 = pki%NSIZE_0+1
163 IF (i%CPHOTO/=
'NON'.OR.ltreedrag)
THEN
164 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+1
166 pki%NSIZE_0 = pki%NSIZE_0+1
169 IF (i%CPHOTO/=
'NON')
THEN
170 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+22
171 pki%NSIZE_BIOMASS=pki%NSIZE_BIOMASS+2
173 pki%NSIZE_0=pki%NSIZE_0+22
174 pki%NSIZE_00=pki%NSIZE_00+2
177 IF (i%CPHOTO==
'AST' .OR. i%CPHOTO==
'LST' .OR. i%CPHOTO==
'NIT' .OR. i%CPHOTO==
'NCB')
THEN
178 pki%NSIZE_LSIMPLE=pki%NSIZE_LSIMPLE+1
179 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+4
181 pki%NSIZE_L0=pki%NSIZE_L0+1
182 pki%NSIZE_0=pki%NSIZE_0+4
185 IF (i%CPHOTO==
'LAI' .OR. i%CPHOTO==
'LST' .OR. i%CPHOTO==
'NIT' .OR. i%CPHOTO==
'NCB')
THEN
186 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+2
187 pki%NSIZE_TSIMPLE=pki%NSIZE_TSIMPLE+2
189 pki%NSIZE_LSIMPLE=pki%NSIZE_LSIMPLE+2
190 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+1
192 pki%NSIZE_L0=pki%NSIZE_L0+2
193 pki%NSIZE_0=pki%NSIZE_0+1
196 pki%NSIZE_L0=pki%NSIZE_L0+2
197 pki%NSIZE_0=pki%NSIZE_0+3
198 pki%NSIZE_T0=pki%NSIZE_T0+2
201 IF(i%CPHOTO==
'NIT' .OR. i%CPHOTO==
'NCB')
THEN
202 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+4
204 pki%NSIZE_0=pki%NSIZE_0+4
207 IF (i%CPHOTO==
'NCB')
THEN
208 pki%NSIZE_BIOMASS=pki%NSIZE_BIOMASS+1
209 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+1
211 pki%NSIZE_00=pki%NSIZE_00+1
212 pki%NSIZE_0=pki%NSIZE_0+1
215 IF (i%CRESPSL==
'CNT')
THEN
216 pki%NSIZE_LITTER=pki%NSIZE_LITTER+1
217 pki%NSIZE_SOILCARB=pki%NSIZE_SOILCARB+1
218 pki%NSIZE_LITTLEVS=pki%NSIZE_LITTLEVS+1
219 pki%NSIZE_BIOMASS=pki%NSIZE_BIOMASS+1
221 pki%NSIZE_000=pki%NSIZE_000+1
222 pki%NSIZE_00=pki%NSIZE_00+3
225 IF (i%CRAIN==
'SGH')
THEN
226 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+1
228 pki%NSIZE_0=pki%NSIZE_0+1
231 IF (i%LMEB_PATCH(kpatch))
THEN
232 pki%NSIZE_SIMPLE=pki%NSIZE_SIMPLE+12
235 pki%NSIZE_0=pki%NSIZE_0+12
239 pki%NSIZE_0=pki%NSIZE_0+7
240 pki%NSIZE_01=pki%NSIZE_01+1
243 IF (lhook) CALL dr_hook(
'PACK_ISBA_PATCH_GET_SIZE_N',1,zhook_handle)
subroutine pack_isba_patch_get_size_n(I, PKI, KPATCH)