SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
pack_isba_patchn.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6 SUBROUTINE pack_isba_patch_n (AG, IG, I, PKI, &
7  kmask,ksize,kpatch)
8 !##############################################
9 !
10 !
11 !!**** *PACK_ISBA_PATCH_n * - packs ISBA variables
12 !!
13 !! PURPOSE
14 !! -------
15 !
16 !!** METHOD
17 !! ------
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !!
23 !! AUTHOR
24 !! ------
25 !! V. Masson and A. boone
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 01/2004
30 !! B. Decharme 2008 floodplains
31 !! B. Decharme 01/2009 Good dim for XP_TG
32 !! A.L. Gibelin 04/2009 : BIOMASS and RESP_BIOMASS arrays
33 !! A.L. Gibelin 04/2009 : TAU_WOOD for NCB option
34 !! A.L. Gibelin 05/2009 : Add carbon spinup
35 !! A.L. Gibelin 06/2009 : Soil carbon variables for CNT option
36 !! A.L. Gibelin 07/2009 : Suppress RDK and transform GPP as a diagnostic
37 !! A.L. Gibelin 07/2009 : Suppress PPST and PPSTF as outputs
38 !! B. Decharme 04/2013 : DIF lateral subsurface drainage
39 !! water table / surface coupling
40 !! P Samuelsson 10/2014 : MEB
41 !! P Samuelsson 10/2014 : Additional snow albedos
42 !!
43 !!------------------------------------------------------------------
44 !
45 !
46 USE modd_agri_n, ONLY : agri_t
47 USE modd_isba_grid_n, ONLY : isba_grid_t
48 USE modd_isba_n, ONLY : isba_t
49 USE modd_pack_isba, ONLY : pack_isba_t
50 !
51 USE modd_data_cover_par, ONLY : nvegtype
52 !
53 USE modd_treedrag, ONLY : ltreedrag
54 USE modd_agri, ONLY : lagrip
55 
56 
57 !
58 USE modd_csts, ONLY : xlvtt, xlstt, xcpd
59 !
60 USE modi_abor1_sfx
61 !
62 USE yomhook ,ONLY : lhook, dr_hook
63 USE parkind1 ,ONLY : jprb
64 !
65 IMPLICIT NONE
66 !
67 !
68 TYPE(agri_t), INTENT(INOUT) :: ag
69 TYPE(isba_grid_t), INTENT(INOUT) :: ig
70 TYPE(isba_t), INTENT(INOUT) :: i
71 TYPE(pack_isba_t), INTENT(INOUT) :: pki
72 !
73 INTEGER, INTENT(IN) :: ksize, kpatch
74 INTEGER, DIMENSION(:), INTENT(IN) :: kmask
75 !
76 INTEGER :: isize_lsimple, isize_l0, isize_tsimple, isize_t0, isize_simple, &
77  isize_ground, isize_vegtype, isize_tg, isize_snow, isize_alb, &
78  isize_2, isize_biomass, isize_soilcarb, isize_littlevs, &
79  isize_litter, isize_0, isize_00,isize_000, isize_01, &
80  isize_nsimple, isize_n0
81 !
82 INTEGER :: jj, ji, jk, jl
83 REAL(KIND=JPRB) :: zhook_handle
84 !
85 !------------------------------------------------------------------------
86 IF (lhook) CALL dr_hook('PACK_ISBA_PATCH_N',0,zhook_handle)
87 !
88 ALLOCATE(pki%LBLOCK_SIMPLE(ksize,pki%NSIZE_LSIMPLE))
89 ALLOCATE(pki%LBLOCK_0(0,pki%NSIZE_L0))
90 ALLOCATE(pki%NBLOCK_SIMPLE(ksize,pki%NSIZE_NSIMPLE))
91 ALLOCATE(pki%NBLOCK_0(0,pki%NSIZE_N0))
92 ALLOCATE(pki%TBLOCK_SIMPLE(ksize,pki%NSIZE_TSIMPLE))
93 ALLOCATE(pki%TBLOCK_0(0,pki%NSIZE_T0))
94 ALLOCATE(pki%XBLOCK_SIMPLE(ksize,pki%NSIZE_SIMPLE))
95 ALLOCATE(pki%XBLOCK_GROUND(ksize,i%NGROUND_LAYER,pki%NSIZE_GROUND))
96 ALLOCATE(pki%XBLOCK_VEGTYPE(ksize,nvegtype,pki%NSIZE_VEGTYPE))
97 ALLOCATE(pki%XBLOCK_TG(ksize,SIZE(i%XTG,2),pki%NSIZE_TG))
98 ALLOCATE(pki%XBLOCK_SNOW(ksize,i%TSNOW%NLAYER,pki%NSIZE_SNOW))
99 ALLOCATE(pki%XBLOCK_ALB(ksize,SIZE(i%XDIR_ALB_WITH_SNOW,2),pki%NSIZE_ALB))
100 ALLOCATE(pki%XBLOCK_2(ksize,2,pki%NSIZE_2))
101 ALLOCATE(pki%XBLOCK_BIOMASS(ksize,i%NNBIOMASS,pki%NSIZE_BIOMASS))
102 ALLOCATE(pki%XBLOCK_SOILCARB(ksize,i%NNSOILCARB,pki%NSIZE_SOILCARB))
103 ALLOCATE(pki%XBLOCK_LITTLEVS(ksize,i%NNLITTLEVS,pki%NSIZE_LITTLEVS))
104 ALLOCATE(pki%XBLOCK_LITTER(ksize,i%NNLITTER,i%NNLITTLEVS,pki%NSIZE_LITTER))
105 ALLOCATE(pki%XBLOCK_0(0,pki%NSIZE_0))
106 ALLOCATE(pki%XBLOCK_00(0,0,pki%NSIZE_00))
107 ALLOCATE(pki%XBLOCK_000(0,0,0,pki%NSIZE_000))
108 ALLOCATE(pki%XBLOCK_01(0,1,pki%NSIZE_01))
109 !
110 isize_lsimple=0
111 isize_l0=0
112 isize_nsimple=0
113 isize_n0=0
114 isize_tsimple=0
115 isize_t0=0
116 isize_simple=0
117 isize_ground=0
118 isize_vegtype=0
119 isize_tg=0
120 isize_snow=0
121 isize_alb=0
122 isize_2=0
123 isize_biomass=0
124 isize_litter=0
125 isize_soilcarb=0
126 isize_littlevs=0
127 isize_0=0
128 isize_00=0
129 isize_000=0
130 isize_01=0
131 !
132 isize_simple = isize_simple + 1
133 pki%XP_Z0_O_Z0H => pki%XBLOCK_SIMPLE(:,isize_simple)
134 isize_simple = isize_simple + 1
135 pki%XP_EMIS => pki%XBLOCK_SIMPLE(:,isize_simple)
136 isize_simple = isize_simple + 1
137 pki%XP_ALBNIR => pki%XBLOCK_SIMPLE(:,isize_simple)
138 isize_simple = isize_simple + 1
139 pki%XP_ALBVIS => pki%XBLOCK_SIMPLE(:,isize_simple)
140 isize_simple = isize_simple + 1
141 pki%XP_ALBUV => pki%XBLOCK_SIMPLE(:,isize_simple)
142 isize_simple = isize_simple + 1
143 pki%XP_ALBNIR_VEG => pki%XBLOCK_SIMPLE(:,isize_simple)
144 isize_simple = isize_simple + 1
145 pki%XP_ALBVIS_VEG => pki%XBLOCK_SIMPLE(:,isize_simple)
146 isize_simple = isize_simple + 1
147 pki%XP_ALBUV_VEG => pki%XBLOCK_SIMPLE(:,isize_simple)
148 isize_simple = isize_simple + 1
149 pki%XP_ALBNIR_SOIL => pki%XBLOCK_SIMPLE(:,isize_simple)
150 isize_simple = isize_simple + 1
151 pki%XP_ALBVIS_SOIL => pki%XBLOCK_SIMPLE(:,isize_simple)
152 isize_simple = isize_simple + 1
153 pki%XP_ALBUV_SOIL => pki%XBLOCK_SIMPLE(:,isize_simple)
154 isize_simple = isize_simple + 1
155 pki%XP_Z0 => pki%XBLOCK_SIMPLE(:,isize_simple)
156 isize_simple = isize_simple + 1
157 pki%XP_WRMAX_CF => pki%XBLOCK_SIMPLE(:,isize_simple)
158 isize_simple = isize_simple + 1
159 pki%XP_GAMMA => pki%XBLOCK_SIMPLE(:,isize_simple)
160 isize_simple = isize_simple + 1
161 pki%XP_CV => pki%XBLOCK_SIMPLE(:,isize_simple)
162 isize_simple = isize_simple + 1
163 pki%XP_RGL => pki%XBLOCK_SIMPLE(:,isize_simple)
164 isize_simple = isize_simple + 1
165 pki%XP_RUNOFFD => pki%XBLOCK_SIMPLE(:,isize_simple)
166 isize_simple = isize_simple + 1
167 pki%XP_Z0EFFIP => pki%XBLOCK_SIMPLE(:,isize_simple)
168 isize_simple = isize_simple + 1
169 pki%XP_Z0EFFIM => pki%XBLOCK_SIMPLE(:,isize_simple)
170 isize_simple = isize_simple + 1
171 pki%XP_Z0EFFJP => pki%XBLOCK_SIMPLE(:,isize_simple)
172 isize_simple = isize_simple + 1
173 pki%XP_Z0EFFJM => pki%XBLOCK_SIMPLE(:,isize_simple)
174 isize_simple = isize_simple + 1
175 pki%XP_WR => pki%XBLOCK_SIMPLE(:,isize_simple)
176 isize_simple = isize_simple + 1
177 pki%XP_LAI => pki%XBLOCK_SIMPLE(:,isize_simple)
178 isize_simple = isize_simple + 1
179 pki%XP_RESA => pki%XBLOCK_SIMPLE(:,isize_simple)
180 isize_simple = isize_simple + 1
181 pki%XP_CPS => pki%XBLOCK_SIMPLE(:,isize_simple)
182 isize_simple = isize_simple + 1
183 pki%XP_LVTT => pki%XBLOCK_SIMPLE(:,isize_simple)
184 isize_simple = isize_simple + 1
185 pki%XP_LSTT => pki%XBLOCK_SIMPLE(:,isize_simple)
186 isize_simple = isize_simple + 1
187 pki%XP_VEG => pki%XBLOCK_SIMPLE(:,isize_simple)
188 isize_simple = isize_simple + 1
189 pki%XP_SNOWALB => pki%XBLOCK_SIMPLE(:,isize_simple)
190 isize_simple = isize_simple + 1
191 pki%XP_LE => pki%XBLOCK_SIMPLE(:,isize_simple)
192 isize_simple = isize_simple + 1
193 pki%XP_PSN => pki%XBLOCK_SIMPLE(:,isize_simple)
194 isize_simple = isize_simple + 1
195 pki%XP_PSNG => pki%XBLOCK_SIMPLE(:,isize_simple)
196 isize_simple = isize_simple + 1
197 pki%XP_PSNV => pki%XBLOCK_SIMPLE(:,isize_simple)
198 isize_simple = isize_simple + 1
199 pki%XP_ALBNIR_DRY => pki%XBLOCK_SIMPLE(:,isize_simple)
200 isize_simple = isize_simple + 1
201 pki%XP_ALBVIS_DRY => pki%XBLOCK_SIMPLE(:,isize_simple)
202 isize_simple = isize_simple + 1
203 pki%XP_ALBUV_DRY => pki%XBLOCK_SIMPLE(:,isize_simple)
204 isize_simple = isize_simple + 1
205 pki%XP_ALBNIR_WET => pki%XBLOCK_SIMPLE(:,isize_simple)
206 isize_simple = isize_simple + 1
207 pki%XP_ALBVIS_WET => pki%XBLOCK_SIMPLE(:,isize_simple)
208 isize_simple = isize_simple + 1
209 pki%XP_ALBUV_WET => pki%XBLOCK_SIMPLE(:,isize_simple)
210 isize_simple = isize_simple + 1
211 pki%XP_RUNOFFB => pki%XBLOCK_SIMPLE(:,isize_simple)
212 isize_simple = isize_simple + 1
213 pki%XP_WDRAIN => pki%XBLOCK_SIMPLE(:,isize_simple)
214 isize_simple = isize_simple + 1
215 pki%XP_TAUICE => pki%XBLOCK_SIMPLE(:,isize_simple)
216 isize_simple = isize_simple + 1
217 pki%XP_Z0REL => pki%XBLOCK_SIMPLE(:,isize_simple)
218 isize_simple = isize_simple + 1
219 pki%XP_AOSIP => pki%XBLOCK_SIMPLE(:,isize_simple)
220 isize_simple = isize_simple + 1
221 pki%XP_AOSIM => pki%XBLOCK_SIMPLE(:,isize_simple)
222 isize_simple = isize_simple + 1
223 pki%XP_AOSJP => pki%XBLOCK_SIMPLE(:,isize_simple)
224 isize_simple = isize_simple + 1
225 pki%XP_AOSJM => pki%XBLOCK_SIMPLE(:,isize_simple)
226 isize_simple = isize_simple + 1
227 pki%XP_HO2IP => pki%XBLOCK_SIMPLE(:,isize_simple)
228 isize_simple = isize_simple + 1
229 pki%XP_HO2IM => pki%XBLOCK_SIMPLE(:,isize_simple)
230 isize_simple = isize_simple + 1
231 pki%XP_HO2JP => pki%XBLOCK_SIMPLE(:,isize_simple)
232 isize_simple = isize_simple + 1
233 pki%XP_HO2JM => pki%XBLOCK_SIMPLE(:,isize_simple)
234 isize_simple = isize_simple + 1
235 pki%XP_SSO_SLOPE => pki%XBLOCK_SIMPLE(:,isize_simple)
236 isize_simple = isize_simple + 1
237 pki%XP_GAMMAT => pki%XBLOCK_SIMPLE(:,isize_simple)
238 isize_simple = isize_simple + 1
239 pki%XP_TDEEP => pki%XBLOCK_SIMPLE(:,isize_simple)
240 isize_simple = isize_simple + 1
241 pki%XP_LAT => pki%XBLOCK_SIMPLE(:,isize_simple)
242 isize_simple = isize_simple + 1
243 pki%XP_LON => pki%XBLOCK_SIMPLE(:,isize_simple)
244 !
245 isize_ground = isize_ground + 1
246 pki%XP_CLAY => pki%XBLOCK_GROUND(:,:,isize_ground)
247 isize_ground = isize_ground + 1
248 pki%XP_SAND => pki%XBLOCK_GROUND(:,:,isize_ground)
249 isize_ground = isize_ground + 1
250 pki%XP_WFC => pki%XBLOCK_GROUND(:,:,isize_ground)
251 isize_ground = isize_ground + 1
252 pki%XP_WWILT => pki%XBLOCK_GROUND(:,:,isize_ground)
253 isize_ground = isize_ground + 1
254 pki%XP_WSAT => pki%XBLOCK_GROUND(:,:,isize_ground)
255 isize_ground = isize_ground + 1
256 pki%XP_CONDSAT => pki%XBLOCK_GROUND(:,:,isize_ground)
257 isize_ground = isize_ground + 1
258 pki%XP_DG => pki%XBLOCK_GROUND(:,:,isize_ground)
259 isize_ground = isize_ground + 1
260 pki%XP_WG => pki%XBLOCK_GROUND(:,:,isize_ground)
261 isize_ground = isize_ground + 1
262 pki%XP_WGI => pki%XBLOCK_GROUND(:,:,isize_ground)
263 !
264 isize_simple = isize_simple + 1
265 pki%XP_KSAT_ICE => pki%XBLOCK_SIMPLE(:,isize_simple)
266 isize_simple = isize_simple + 1
267 pki%XP_D_ICE => pki%XBLOCK_SIMPLE(:,isize_simple)
268 !
269 isize_vegtype = isize_vegtype + 1
270 pki%XP_VEGTYPE_PATCH => pki%XBLOCK_VEGTYPE(:,:,isize_vegtype)
271 !
272 isize_tg = isize_tg + 1
273 pki%XP_TG => pki%XBLOCK_TG(:,:,isize_tg)
274 !
275 isize_snow = isize_snow + 1
276 pki%XP_SNOWSWE => pki%XBLOCK_SNOW(:,:,isize_snow)
277 isize_snow = isize_snow + 1
278 pki%XP_SNOWRHO => pki%XBLOCK_SNOW(:,:,isize_snow)
279 !
280 isize_alb = isize_alb + 1
281 pki%XP_DIR_ALB_WITH_SNOW=> pki%XBLOCK_ALB(:,:,isize_alb)
282 isize_alb = isize_alb + 1
283 pki%XP_SCA_ALB_WITH_SNOW=> pki%XBLOCK_ALB(:,:,isize_alb)
284 !
285 isize_simple = isize_simple + 1
286 pki%XP_FFLOOD => pki%XBLOCK_SIMPLE(:,isize_simple)
287 isize_simple = isize_simple + 1
288 pki%XP_PIFLOOD => pki%XBLOCK_SIMPLE(:,isize_simple)
289 isize_simple = isize_simple + 1
290 pki%XP_FF => pki%XBLOCK_SIMPLE(:,isize_simple)
291 isize_simple = isize_simple + 1
292 pki%XP_FFG => pki%XBLOCK_SIMPLE(:,isize_simple)
293 isize_simple = isize_simple + 1
294 pki%XP_FFV => pki%XBLOCK_SIMPLE(:,isize_simple)
295 isize_simple = isize_simple + 1
296 pki%XP_FFROZEN => pki%XBLOCK_SIMPLE(:,isize_simple)
297 isize_simple = isize_simple + 1
298 pki%XP_ALBF => pki%XBLOCK_SIMPLE(:,isize_simple)
299 isize_simple = isize_simple + 1
300 pki%XP_EMISF => pki%XBLOCK_SIMPLE(:,isize_simple)
301 isize_simple = isize_simple + 1
302 pki%XP_FSAT => pki%XBLOCK_SIMPLE(:,isize_simple)
303 !
304 IF(i%TSNOW%SCHEME=='EBA') THEN
305  isize_simple = isize_simple + 1
306  pki%XP_PSNV_A => pki%XBLOCK_SIMPLE(:,isize_simple)
307 ELSE
308  isize_0 = isize_0 + 1
309  pki%XP_PSNV_A => pki%XBLOCK_0(:,isize_0)
310 ENDIF
311 !
312 IF (i%TSNOW%SCHEME=='3-L' .OR. i%TSNOW%SCHEME=='CRO') THEN
313  isize_snow = isize_snow + 1
314  pki%XP_SNOWHEAT => pki%XBLOCK_SNOW(:,:,isize_snow)
315  isize_simple = isize_simple + 1
316  pki%XP_SNOWEMIS => pki%XBLOCK_SIMPLE(:,isize_simple)
317  isize_snow = isize_snow + 1
318  pki%XP_SNOWAGE => pki%XBLOCK_SNOW(:,:,isize_snow)
319  isize_simple = isize_simple + 1
320  pki%XP_SNOWALBVIS => pki%XBLOCK_SIMPLE(:,isize_simple)
321  isize_simple = isize_simple + 1
322  pki%XP_SNOWALBNIR => pki%XBLOCK_SIMPLE(:,isize_simple)
323  isize_simple = isize_simple + 1
324  pki%XP_SNOWALBFIR => pki%XBLOCK_SIMPLE(:,isize_simple)
325 ELSE
326  isize_00 = isize_00 + 1
327  pki%XP_SNOWHEAT => pki%XBLOCK_00(:,:,isize_00)
328  isize_0 = isize_0 + 1
329  pki%XP_SNOWEMIS => pki%XBLOCK_0(:,isize_0)
330  isize_00 = isize_00 + 1
331  pki%XP_SNOWAGE => pki%XBLOCK_00(:,:,isize_00)
332  isize_0 = isize_0 + 1
333  pki%XP_SNOWALBVIS => pki%XBLOCK_0(:,isize_0)
334  isize_0 = isize_0 + 1
335  pki%XP_SNOWALBNIR => pki%XBLOCK_0(:,isize_0)
336  isize_0 = isize_0 + 1
337  pki%XP_SNOWALBFIR => pki%XBLOCK_0(:,isize_0)
338 END IF
339 !
340 IF(i%TSNOW%SCHEME=='CRO') THEN
341  isize_snow = isize_snow + 1
342  pki%XP_SNOWGRAN1 => pki%XBLOCK_SNOW(:,:,isize_snow)
343  isize_snow = isize_snow + 1
344  pki%XP_SNOWGRAN2 => pki%XBLOCK_SNOW(:,:,isize_snow)
345  isize_snow = isize_snow + 1
346  pki%XP_SNOWHIST => pki%XBLOCK_SNOW(:,:,isize_snow)
347 ELSE
348  isize_00 = isize_00 + 1
349  pki%XP_SNOWGRAN1 => pki%XBLOCK_00(:,:,isize_00)
350  isize_00 = isize_00 + 1
351  pki%XP_SNOWGRAN2 => pki%XBLOCK_00(:,:,isize_00)
352  isize_00 = isize_00 + 1
353  pki%XP_SNOWHIST => pki%XBLOCK_00(:,:,isize_00)
354 END IF
355 !
356 IF(i%LGLACIER)THEN
357  isize_simple = isize_simple + 1
358  pki%XP_ICE_STO=> pki%XBLOCK_SIMPLE(:,isize_simple)
359 ELSE
360  isize_0 = isize_0 + 1
361  pki%XP_ICE_STO=> pki%XBLOCK_0(:,isize_0)
362 ENDIF
363 !
364 IF (i%CSCOND=='PL98'.OR.i%CISBA=='DIF') THEN
365  isize_ground = isize_ground + 1
366  pki%XP_HCAPSOIL => pki%XBLOCK_GROUND(:,:,isize_ground)
367  isize_ground = isize_ground + 1
368  pki%XP_CONDDRY => pki%XBLOCK_GROUND(:,:,isize_ground)
369  isize_ground = isize_ground + 1
370  pki%XP_CONDSLD => pki%XBLOCK_GROUND(:,:,isize_ground)
371 ELSE
372  isize_01 = isize_01 + 1
373  pki%XP_HCAPSOIL => pki%XBLOCK_01(:,:,isize_01)
374  isize_01 = isize_01 + 1
375  pki%XP_CONDDRY => pki%XBLOCK_01(:,:,isize_01)
376  isize_01 = isize_01 + 1
377  pki%XP_CONDSLD => pki%XBLOCK_01(:,:,isize_01)
378 END IF
379 !
380 IF (i%CISBA=='2-L' .OR. i%CISBA=='3-L') THEN
381  isize_simple = isize_simple + 1
382  pki%XP_C4B => pki%XBLOCK_SIMPLE(:,isize_simple)
383  isize_simple = isize_simple + 1
384  pki%XP_ACOEF => pki%XBLOCK_SIMPLE(:,isize_simple)
385  isize_simple = isize_simple + 1
386  pki%XP_PCOEF => pki%XBLOCK_SIMPLE(:,isize_simple)
387  isize_simple = isize_simple + 1
388  pki%XP_CGSAT => pki%XBLOCK_SIMPLE(:,isize_simple)
389  isize_simple = isize_simple + 1
390  pki%XP_C1SAT => pki%XBLOCK_SIMPLE(:,isize_simple)
391  isize_simple = isize_simple + 1
392  pki%XP_C2REF => pki%XBLOCK_SIMPLE(:,isize_simple)
393  isize_simple = isize_simple + 1
394  pki%XP_C4REF => pki%XBLOCK_SIMPLE(:,isize_simple)
395  isize_2 = isize_2 + 1
396  pki%XP_C3 => pki%XBLOCK_2(:,:,isize_2)
397 ELSE
398  isize_0 = isize_0 + 1
399  pki%XP_C4B => pki%XBLOCK_0(:,isize_0)
400  isize_0 = isize_0 + 1
401  pki%XP_ACOEF => pki%XBLOCK_0(:,isize_0)
402  isize_0 = isize_0 + 1
403  pki%XP_PCOEF => pki%XBLOCK_0(:,isize_0)
404  isize_0 = isize_0 + 1
405  pki%XP_CGSAT => pki%XBLOCK_0(:,isize_0)
406  isize_0 = isize_0 + 1
407  pki%XP_C1SAT => pki%XBLOCK_0(:,isize_0)
408  isize_0 = isize_0 + 1
409  pki%XP_C2REF => pki%XBLOCK_0(:,isize_0)
410  isize_0 = isize_0 + 1
411  pki%XP_C4REF => pki%XBLOCK_0(:,isize_0)
412  isize_00 = isize_00 + 1
413  pki%XP_C3 => pki%XBLOCK_00(:,:,isize_00)
414 END IF
415 !
416 isize_ground = isize_ground + 1
417 pki%XP_MPOTSAT => pki%XBLOCK_GROUND(:,:,isize_ground)
418 isize_ground = isize_ground + 1
419 pki%XP_BCOEF => pki%XBLOCK_GROUND(:,:,isize_ground)
420 !
421 IF (i%CISBA=='DIF') THEN
422 !
423  isize_ground = isize_ground + 1
424  pki%XP_ROOTFRAC => pki%XBLOCK_GROUND(:,:,isize_ground)
425  isize_ground = isize_ground + 1
426  pki%XP_DZG => pki%XBLOCK_GROUND(:,:,isize_ground)
427  isize_ground = isize_ground + 1
428  pki%XP_DZDIF => pki%XBLOCK_GROUND(:,:,isize_ground)
429  isize_ground = isize_ground + 1
430  pki%XP_SOILWGHT => pki%XBLOCK_GROUND(:,:,isize_ground)
431 !
432  isize_nsimple = isize_nsimple + 1
433  pki%NK_WG_LAYER => pki%NBLOCK_SIMPLE(:,isize_nsimple)
434 !
435  isize_simple = isize_simple + 1
436  pki%XP_FWTD=> pki%XBLOCK_SIMPLE(:,isize_simple)
437  isize_simple = isize_simple + 1
438  pki%XP_WTD=> pki%XBLOCK_SIMPLE(:,isize_simple)
439 !
440 ELSE
441 !
442  isize_01 = isize_01 + 1
443  pki%XP_ROOTFRAC => pki%XBLOCK_01(:,:,isize_01)
444  isize_01 = isize_01 + 1
445  pki%XP_DZG => pki%XBLOCK_01(:,:,isize_01)
446  isize_01 = isize_01 + 1
447  pki%XP_DZDIF => pki%XBLOCK_01(:,:,isize_01)
448  isize_01 = isize_01 + 1
449  pki%XP_SOILWGHT => pki%XBLOCK_01(:,:,isize_01)
450 !
451  isize_n0 = isize_n0 + 1
452  pki%NK_WG_LAYER => pki%NBLOCK_0(:,isize_n0)
453 !
454  isize_0 = isize_0 + 1
455  pki%XP_FWTD=> pki%XBLOCK_0(:,isize_0)
456  isize_0 = isize_0 + 1
457  pki%XP_WTD=> pki%XBLOCK_0(:,isize_0)
458 !
459 END IF
460 !
461 IF (i%CISBA=='DIF'.AND.i%CRUNOFF=='SGH') THEN
462 !
463  isize_ground = isize_ground + 1
464  pki%XP_TOPQS => pki%XBLOCK_GROUND(:,:,isize_ground)
465 !
466 ELSE
467 !
468  isize_01 = isize_01 + 1
469  pki%XP_TOPQS => pki%XBLOCK_01(:,:,isize_01)
470 !
471 END IF
472 !
473 IF (i%LTR_ML) THEN
474  isize_simple = isize_simple + 1
475  pki%XP_FAPARC => pki%XBLOCK_SIMPLE(:,isize_simple)
476  isize_simple = isize_simple + 1
477  pki%XP_FAPIRC => pki%XBLOCK_SIMPLE(:,isize_simple)
478  isize_simple = isize_simple + 1
479  pki%XP_LAI_EFFC => pki%XBLOCK_SIMPLE(:,isize_simple)
480  isize_simple = isize_simple + 1
481  pki%XP_MUS => pki%XBLOCK_SIMPLE(:,isize_simple)
482 ELSE
483  isize_0 = isize_0 + 1
484  pki%XP_FAPARC => pki%XBLOCK_0(:,isize_0)
485  isize_0 = isize_0 + 1
486  pki%XP_FAPIRC => pki%XBLOCK_0(:,isize_0)
487  isize_0 = isize_0 + 1
488  pki%XP_LAI_EFFC => pki%XBLOCK_0(:,isize_0)
489  isize_0 = isize_0 + 1
490  pki%XP_MUS => pki%XBLOCK_0(:,isize_0)
491 ENDIF
492 !
493 IF (i%CPHOTO=='NON') THEN
494  isize_simple = isize_simple + 1
495  pki%XP_RSMIN => pki%XBLOCK_SIMPLE(:,isize_simple)
496 ELSE
497  isize_0 = isize_0 + 1
498  pki%XP_RSMIN => pki%XBLOCK_0(:,isize_0)
499 END IF
500 !
501 IF (i%CPHOTO/='NON' .OR. i%LMEB_PATCH(kpatch)) THEN
502  isize_simple = isize_simple + 1
503  pki%XP_BSLAI => pki%XBLOCK_SIMPLE(:,isize_simple)
504 ELSE
505  isize_0 = isize_0 + 1
506  pki%XP_BSLAI => pki%XBLOCK_0(:,isize_0)
507 ENDIF
508 !
509 IF (i%CPHOTO/='NON'.OR.ltreedrag) THEN
510  isize_simple = isize_simple + 1
511  pki%XP_H_TREE => pki%XBLOCK_SIMPLE(:,isize_simple)
512 ELSE
513  isize_0 = isize_0 + 1
514  pki%XP_H_TREE => pki%XBLOCK_0(:,isize_0)
515 ENDIF
516 !
517 IF (i%CPHOTO/='NON') THEN
518  isize_simple = isize_simple + 1
519  pki%XP_LAIMIN => pki%XBLOCK_SIMPLE(:,isize_simple)
520  isize_simple = isize_simple + 1
521  pki%XP_SEFOLD => pki%XBLOCK_SIMPLE(:,isize_simple)
522  isize_simple = isize_simple + 1
523  pki%XP_ANF => pki%XBLOCK_SIMPLE(:,isize_simple)
524  isize_simple = isize_simple + 1
525  pki%XP_ANMAX => pki%XBLOCK_SIMPLE(:,isize_simple)
526  isize_simple = isize_simple + 1
527  pki%XP_FZERO => pki%XBLOCK_SIMPLE(:,isize_simple)
528  isize_simple = isize_simple + 1
529  pki%XP_EPSO => pki%XBLOCK_SIMPLE(:,isize_simple)
530  isize_simple = isize_simple + 1
531  pki%XP_GAMM => pki%XBLOCK_SIMPLE(:,isize_simple)
532  isize_simple = isize_simple + 1
533  pki%XP_QDGAMM => pki%XBLOCK_SIMPLE(:,isize_simple)
534  isize_simple = isize_simple + 1
535  pki%XP_GMES => pki%XBLOCK_SIMPLE(:,isize_simple)
536  isize_simple = isize_simple + 1
537  pki%XP_RE25 => pki%XBLOCK_SIMPLE(:,isize_simple)
538  isize_simple = isize_simple + 1
539  pki%XP_QDGMES => pki%XBLOCK_SIMPLE(:,isize_simple)
540  isize_simple = isize_simple + 1
541  pki%XP_T1GMES => pki%XBLOCK_SIMPLE(:,isize_simple)
542  isize_simple = isize_simple + 1
543  pki%XP_T2GMES => pki%XBLOCK_SIMPLE(:,isize_simple)
544  isize_simple = isize_simple + 1
545  pki%XP_AMAX => pki%XBLOCK_SIMPLE(:,isize_simple)
546  isize_simple = isize_simple + 1
547  pki%XP_QDAMAX => pki%XBLOCK_SIMPLE(:,isize_simple)
548  isize_simple = isize_simple + 1
549  pki%XP_T1AMAX => pki%XBLOCK_SIMPLE(:,isize_simple)
550  isize_simple = isize_simple + 1
551  pki%XP_T2AMAX => pki%XBLOCK_SIMPLE(:,isize_simple)
552  isize_simple = isize_simple + 1
553  pki%XP_AN => pki%XBLOCK_SIMPLE(:,isize_simple)
554  isize_simple = isize_simple + 1
555  pki%XP_ANDAY => pki%XBLOCK_SIMPLE(:,isize_simple)
556  isize_simple = isize_simple + 1
557  pki%XP_ANFM => pki%XBLOCK_SIMPLE(:,isize_simple)
558  isize_simple = isize_simple + 1
559  pki%XP_GC => pki%XBLOCK_SIMPLE(:,isize_simple)
560  isize_biomass = isize_biomass + 1
561  pki%XP_BIOMASS => pki%XBLOCK_BIOMASS(:,:,isize_biomass)
562  isize_biomass = isize_biomass + 1
563  pki%XP_RESP_BIOMASS => pki%XBLOCK_BIOMASS(:,:,isize_biomass)
564 ELSE
565  isize_0 = isize_0 + 1
566  pki%XP_LAIMIN => pki%XBLOCK_0(:,isize_0)
567  isize_0 = isize_0 + 1
568  pki%XP_SEFOLD => pki%XBLOCK_0(:,isize_0)
569  isize_0 = isize_0 + 1
570  pki%XP_ANF => pki%XBLOCK_0(:,isize_0)
571  isize_0 = isize_0 + 1
572  pki%XP_ANMAX => pki%XBLOCK_0(:,isize_0)
573  isize_0 = isize_0 + 1
574  pki%XP_FZERO => pki%XBLOCK_0(:,isize_0)
575  isize_0 = isize_0 + 1
576  pki%XP_EPSO => pki%XBLOCK_0(:,isize_0)
577  isize_0 = isize_0 + 1
578  pki%XP_GAMM => pki%XBLOCK_0(:,isize_0)
579  isize_0 = isize_0 + 1
580  pki%XP_QDGAMM => pki%XBLOCK_0(:,isize_0)
581  isize_0 = isize_0 + 1
582  pki%XP_GMES => pki%XBLOCK_0(:,isize_0)
583  isize_0 = isize_0 + 1
584  pki%XP_RE25 => pki%XBLOCK_0(:,isize_0)
585  isize_0 = isize_0 + 1
586  pki%XP_QDGMES => pki%XBLOCK_0(:,isize_0)
587  isize_0 = isize_0 + 1
588  pki%XP_T1GMES => pki%XBLOCK_0(:,isize_0)
589  isize_0 = isize_0 + 1
590  pki%XP_T2GMES => pki%XBLOCK_0(:,isize_0)
591  isize_0 = isize_0 + 1
592  pki%XP_AMAX => pki%XBLOCK_0(:,isize_0)
593  isize_0 = isize_0 + 1
594  pki%XP_QDAMAX => pki%XBLOCK_0(:,isize_0)
595  isize_0 = isize_0 + 1
596  pki%XP_T1AMAX => pki%XBLOCK_0(:,isize_0)
597  isize_0 = isize_0 + 1
598  pki%XP_T2AMAX => pki%XBLOCK_0(:,isize_0)
599  isize_0 = isize_0 + 1
600  pki%XP_AN => pki%XBLOCK_0(:,isize_0)
601  isize_0 = isize_0 + 1
602  pki%XP_ANDAY => pki%XBLOCK_0(:,isize_0)
603  isize_0 = isize_0 + 1
604  pki%XP_ANFM => pki%XBLOCK_0(:,isize_0)
605  isize_0 = isize_0 + 1
606  pki%XP_GC => pki%XBLOCK_0(:,isize_0)
607  isize_00 = isize_00 + 1
608  pki%XP_BIOMASS => pki%XBLOCK_00(:,:,isize_00)
609  isize_00 = isize_00 + 1
610  pki%XP_RESP_BIOMASS => pki%XBLOCK_00(:,:,isize_00)
611 END IF
612 !
613 IF (i%CPHOTO=='AST' .OR. i%CPHOTO=='LST' .OR. i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
614  isize_lsimple = isize_lsimple + 1
615  pki%LP_STRESS => pki%LBLOCK_SIMPLE(:,isize_lsimple)
616  isize_simple = isize_simple + 1
617  pki%XP_F2I => pki%XBLOCK_SIMPLE(:,isize_simple)
618  isize_simple = isize_simple + 1
619  pki%XP_AH => pki%XBLOCK_SIMPLE(:,isize_simple)
620  isize_simple = isize_simple + 1
621  pki%XP_BH => pki%XBLOCK_SIMPLE(:,isize_simple)
622  isize_simple = isize_simple + 1
623  pki%XP_DMAX => pki%XBLOCK_SIMPLE(:,isize_simple)
624 ELSE
625  isize_l0 = isize_l0 + 1
626  pki%LP_STRESS => pki%LBLOCK_0(:,isize_l0)
627  isize_0 = isize_0 + 1
628  pki%XP_F2I => pki%XBLOCK_0(:,isize_0)
629  isize_0 = isize_0 + 1
630  pki%XP_AH => pki%XBLOCK_0(:,isize_0)
631  isize_0 = isize_0 + 1
632  pki%XP_BH => pki%XBLOCK_0(:,isize_0)
633  isize_0 = isize_0 + 1
634  pki%XP_DMAX => pki%XBLOCK_0(:,isize_0)
635 END IF
636 !
637 IF (i%CPHOTO=='LAI' .OR. i%CPHOTO=='LST' .OR. i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
638  isize_tsimple = isize_tsimple + 1
639  pki%TP_SEED => pki%TBLOCK_SIMPLE(:,isize_tsimple)
640  isize_tsimple = isize_tsimple + 1
641  pki%TP_REAP => pki%TBLOCK_SIMPLE(:,isize_tsimple)
642  isize_simple = isize_simple + 1
643  pki%XP_IRRIG => pki%XBLOCK_SIMPLE(:,isize_simple)
644  isize_simple = isize_simple + 1
645  pki%XP_WATSUP => pki%XBLOCK_SIMPLE(:,isize_simple)
646  IF (lagrip) THEN
647  isize_lsimple = isize_lsimple + 1
648  pki%XP_LIRRIDAY => pki%LBLOCK_SIMPLE(:,isize_lsimple)
649  isize_simple = isize_simple + 1
650  pki%XP_THRESHOLD => pki%XBLOCK_SIMPLE(:,isize_simple)
651  isize_lsimple = isize_lsimple + 1
652  pki%XP_LIRRIGATE => pki%LBLOCK_SIMPLE(:,isize_lsimple)
653  ELSE
654  isize_l0 = isize_l0 + 1
655  pki%XP_LIRRIDAY => pki%LBLOCK_0(:,isize_l0)
656  isize_0 = isize_0 + 1
657  pki%XP_THRESHOLD => pki%XBLOCK_0(:,isize_0)
658  isize_l0 = isize_l0 + 1
659  pki%XP_LIRRIGATE => pki%LBLOCK_0(:,isize_l0)
660  ENDIF
661 ELSE
662  isize_t0 = isize_t0 + 1
663  pki%TP_SEED => pki%TBLOCK_0(:,isize_t0)
664  isize_t0 = isize_t0 + 1
665  pki%TP_REAP => pki%TBLOCK_0(:,isize_t0)
666  isize_0 = isize_0 + 1
667  pki%XP_IRRIG => pki%XBLOCK_0(:,isize_0)
668  isize_0 = isize_0 + 1
669  pki%XP_WATSUP => pki%XBLOCK_0(:,isize_0)
670  isize_l0 = isize_l0 + 1
671  pki%XP_LIRRIDAY => pki%LBLOCK_0(:,isize_l0)
672  isize_0 = isize_0 + 1
673  pki%XP_THRESHOLD => pki%XBLOCK_0(:,isize_0)
674  isize_l0 = isize_l0 + 1
675  pki%XP_LIRRIGATE => pki%LBLOCK_0(:,isize_l0)
676 ENDIF
677 !
678 IF(i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
679  isize_simple = isize_simple + 1
680  pki%XP_CE_NITRO => pki%XBLOCK_SIMPLE(:,isize_simple)
681  isize_simple = isize_simple + 1
682  pki%XP_CF_NITRO => pki%XBLOCK_SIMPLE(:,isize_simple)
683  isize_simple = isize_simple + 1
684  pki%XP_CNA_NITRO => pki%XBLOCK_SIMPLE(:,isize_simple)
685  isize_simple = isize_simple + 1
686  pki%XP_BSLAI_NITRO => pki%XBLOCK_SIMPLE(:,isize_simple)
687 ELSE
688  isize_0 = isize_0 + 1
689  pki%XP_CE_NITRO => pki%XBLOCK_0(:,isize_0)
690  isize_0 = isize_0 + 1
691  pki%XP_CF_NITRO => pki%XBLOCK_0(:,isize_0)
692  isize_0 = isize_0 + 1
693  pki%XP_CNA_NITRO => pki%XBLOCK_0(:,isize_0)
694  isize_0 = isize_0 + 1
695  pki%XP_BSLAI_NITRO => pki%XBLOCK_0(:,isize_0)
696 END IF
697 !
698 IF (i%CPHOTO=='NCB') THEN
699  isize_biomass = isize_biomass + 1
700  pki%XP_INCREASE => pki%XBLOCK_BIOMASS(:,:,isize_biomass)
701  isize_simple = isize_simple + 1
702  pki%XP_TAU_WOOD => pki%XBLOCK_SIMPLE(:,isize_simple)
703 ELSE
704  isize_00 = isize_00 + 1
705  pki%XP_INCREASE => pki%XBLOCK_00(:,:,isize_00)
706  isize_0 = isize_0 + 1
707  pki%XP_TAU_WOOD => pki%XBLOCK_0(:,isize_0)
708 ENDIF
709 !
710 IF (i%CRESPSL=='CNT') THEN
711  isize_litter = isize_litter + 1
712  pki%XP_LITTER => pki%XBLOCK_LITTER(:,:,:,isize_litter)
713  isize_soilcarb = isize_soilcarb + 1
714  pki%XP_SOILCARB => pki%XBLOCK_SOILCARB(:,:,isize_soilcarb)
715  isize_littlevs = isize_littlevs + 1
716  pki%XP_LIGNIN_STRUC => pki%XBLOCK_LITTLEVS(:,:,isize_littlevs)
717  isize_biomass = isize_biomass + 1
718  pki%XP_TURNOVER => pki%XBLOCK_BIOMASS(:,:,isize_biomass)
719 ELSE
720  isize_000 = isize_000 + 1
721  pki%XP_LITTER => pki%XBLOCK_000(:,:,:,isize_000)
722  isize_00 = isize_00 + 1
723  pki%XP_SOILCARB => pki%XBLOCK_00(:,:,isize_00)
724  isize_00 = isize_00 + 1
725  pki%XP_LIGNIN_STRUC => pki%XBLOCK_00(:,:,isize_00)
726  isize_00 = isize_00 + 1
727  pki%XP_TURNOVER => pki%XBLOCK_00(:,:,isize_00)
728 END IF
729 !
730 IF (i%CRAIN=='SGH')THEN
731  isize_simple = isize_simple + 1
732  pki%XP_MUF=> pki%XBLOCK_SIMPLE(:,isize_simple)
733 ELSE
734  isize_0 = isize_0 + 1
735  pki%XP_MUF=> pki%XBLOCK_0(:,isize_0)
736 ENDIF
737 !
738 ! MEB STUFF START
739 !
740 ! Note that here the understory ground vegetation (GV) that was part of the original
741 ! MEB development has been eliminated. The reason is to avoid a composite
742 ! of vegetation and soil. Thus, most varibales with old extension V
743 ! (representing canopy vegetation) are now unassociated. Instead, the classical ISBA
744 ! variables (e.g. RGL, GAMMA, ...) will represent a composite vegetation in the
745 ! MEB case. We still keep the GV-variables in the system for future needs.
746 ! Code is commented with "nogv" in appropriate places.
747 !
748 IF (i%LMEB_PATCH(kpatch))THEN
749 !
750  isize_simple = isize_simple + 1
751  pki%XP_WRL => pki%XBLOCK_SIMPLE(:,isize_simple)
752  isize_simple = isize_simple + 1
753  pki%XP_WRLI => pki%XBLOCK_SIMPLE(:,isize_simple)
754  isize_simple = isize_simple + 1
755  pki%XP_WRVN => pki%XBLOCK_SIMPLE(:,isize_simple)
756  isize_simple = isize_simple + 1
757  pki%XP_TV => pki%XBLOCK_SIMPLE(:,isize_simple)
758  isize_simple = isize_simple + 1
759  pki%XP_TL => pki%XBLOCK_SIMPLE(:,isize_simple)
760  isize_simple = isize_simple + 1
761  pki%XP_TC => pki%XBLOCK_SIMPLE(:,isize_simple)
762  isize_simple = isize_simple + 1
763  pki%XP_QC => pki%XBLOCK_SIMPLE(:,isize_simple)
764 !nogv ISIZE_SIMPLE = ISIZE_SIMPLE + 1
765 !nogv XP_RSMINV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE)
766  isize_simple = isize_simple + 1
767  pki%XP_H_VEG => pki%XBLOCK_SIMPLE(:,isize_simple)
768 !nogv ISIZE_SIMPLE = ISIZE_SIMPLE + 1
769 !nogv XP_RGLV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE)
770 !nogv ISIZE_SIMPLE = ISIZE_SIMPLE + 1
771 !nogv XP_GAMMAV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE)
772 !nogv ISIZE_SIMPLE = ISIZE_SIMPLE + 1
773 !nogv XP_WRMAX_CFV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE)
774 !nogv ISIZE_SIMPLE = ISIZE_SIMPLE + 1
775 !nogv XP_LAIV => XBLOCK_SIMPLE(:,ISIZE_SIMPLE)
776 !nogv ISIZE_SIMPLE = ISIZE_SIMPLE + 1
777 !nogv XP_Z0V => XBLOCK_SIMPLE(:,ISIZE_SIMPLE)
778  isize_simple = isize_simple + 1
779  pki%XP_GNDLITTER => pki%XBLOCK_SIMPLE(:,isize_simple)
780  isize_simple = isize_simple + 1
781  pki%XP_Z0LITTER => pki%XBLOCK_SIMPLE(:,isize_simple)
782 !
783 !nogv ISIZE_GROUND = ISIZE_GROUND + 1
784 !nogv XP_ROOTFRACV => XBLOCK_GROUND(:,:,ISIZE_GROUND)
785 ELSE
786  isize_0 = isize_0 + 1
787  pki%XP_WRL => pki%XBLOCK_0(:,isize_0)
788  isize_0 = isize_0 + 1
789  pki%XP_WRLI => pki%XBLOCK_0(:,isize_0)
790  isize_0 = isize_0 + 1
791  pki%XP_WRVN => pki%XBLOCK_0(:,isize_0)
792  isize_0 = isize_0 + 1
793  pki%XP_TV => pki%XBLOCK_0(:,isize_0)
794  isize_0 = isize_0 + 1
795  pki%XP_TL => pki%XBLOCK_0(:,isize_0)
796  isize_0 = isize_0 + 1
797  pki%XP_TC => pki%XBLOCK_0(:,isize_0)
798  isize_0 = isize_0 + 1
799  pki%XP_QC => pki%XBLOCK_0(:,isize_0)
800 !nogv ISIZE_0 = ISIZE_0 + 1
801 !nogv XP_RSMINV => XBLOCK_0(:,ISIZE_0)
802  isize_0 = isize_0 + 1
803  pki%XP_H_VEG => pki%XBLOCK_0(:,isize_0)
804 !nogv ISIZE_0 = ISIZE_0 + 1
805 !nogv XP_RGLV => XBLOCK_0(:,ISIZE_0)
806 !nogv ISIZE_0 = ISIZE_0 + 1
807 !nogv XP_GAMMAV => XBLOCK_0(:,ISIZE_0)
808 !nogv ISIZE_0 = ISIZE_0 + 1
809 !nogv XP_WRMAX_CFV => XBLOCK_0(:,ISIZE_0)
810 !nogv ISIZE_0 = ISIZE_0 + 1
811 !nogv XP_LAIV => XBLOCK_0(:,ISIZE_0)
812 !nogv ISIZE_0 = ISIZE_0 + 1
813 !nogv XP_Z0V => XBLOCK_0(:,ISIZE_0)
814  isize_0 = isize_0 + 1
815  pki%XP_GNDLITTER => pki%XBLOCK_0(:,isize_0)
816  isize_0 = isize_0 + 1
817  pki%XP_Z0LITTER => pki%XBLOCK_0(:,isize_0)
818 !
819 !nogv ISIZE_01 = ISIZE_01 + 1
820 !nogv XP_ROOTFRACV => XBLOCK_01(:,:,ISIZE_01)
821 ENDIF
822 isize_0 = isize_0 + 1
823 pki%XP_RSMINV => pki%XBLOCK_0(:,isize_0)
824 isize_0 = isize_0 + 1
825 pki%XP_RGLV => pki%XBLOCK_0(:,isize_0)
826 isize_0 = isize_0 + 1
827 pki%XP_GAMMAV => pki%XBLOCK_0(:,isize_0)
828 isize_0 = isize_0 + 1
829 pki%XP_WRMAX_CFV => pki%XBLOCK_0(:,isize_0)
830 isize_0 = isize_0 + 1
831 pki%XP_LAIV => pki%XBLOCK_0(:,isize_0)
832 isize_0 = isize_0 + 1
833 pki%XP_Z0V => pki%XBLOCK_0(:,isize_0)
834 isize_01 = isize_01 + 1
835 pki%XP_ROOTFRACV => pki%XBLOCK_01(:,:,isize_01)
836 ! MEB STUFF END
837 !
838 !
839 IF (isize_simple.GT.pki%NSIZE_SIMPLE) &
840  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_SIMPLE / NUMBER OF FIELDS")
841 IF (isize_ground.GT.pki%NSIZE_GROUND) &
842  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_GROUND / NUMBER OF FIELDS")
843 IF (isize_vegtype.GT.pki%NSIZE_VEGTYPE) &
844  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_VEGTYPE / NUMBER OF FIELDS")
845 IF (isize_tg.GT.pki%NSIZE_TG) &
846  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_TG / NUMBER OF FIELDS")
847 IF (isize_snow.GT.pki%NSIZE_SNOW) &
848  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_SNOW / NUMBER OF FIELDS")
849 IF (isize_alb.GT.pki%NSIZE_ALB) &
850  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_ALB / NUMBER OF FIELDS")
851 IF (isize_0.GT.pki%NSIZE_0) &
852  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_0 / NUMBER OF FIELDS")
853 IF (isize_00.GT.pki%NSIZE_00) &
854  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_00 / NUMBER OF FIELDS")
855 IF (isize_01.GT.pki%NSIZE_01) &
856  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_01 / NUMBER OF FIELDS")
857 IF (isize_2.GT.pki%NSIZE_2) &
858  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_2 / NUMBER OF FIELDS")
859 IF (isize_biomass.GT.pki%NSIZE_BIOMASS) &
860  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_BIOMASS / NUMBER OF FIELDS")
861 IF (isize_litter.GT.pki%NSIZE_LITTER) &
862  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_LITTER / NUMBER OF FIELDS")
863 IF (isize_soilcarb.GT.pki%NSIZE_SOILCARB) &
864  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_SOILCARB / NUMBER OF FIELDS")
865 IF (isize_littlevs.GT.pki%NSIZE_LITTLEVS) &
866  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_LITTLEVS / NUMBER OF FIELDS")
867 IF (isize_000.GT.pki%NSIZE_000) &
868  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_000 / NUMBER OF FIELDS")
869 IF (isize_tsimple.GT.pki%NSIZE_TSIMPLE) &
870  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_TSIMPLE / NUMBER OF FIELDS")
871 IF (isize_t0.GT.pki%NSIZE_T0) &
872  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_T0 / NUMBER OF FIELDS")
873 IF (isize_lsimple.GT.pki%NSIZE_LSIMPLE) &
874  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_LSIMPLE / NUMBER OF FIELDS")
875 IF (isize_l0.GT.pki%NSIZE_L0) &
876  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_L0 / NUMBER OF FIELDS")
877 IF (isize_n0.GT.pki%NSIZE_N0) &
878  CALL abor1_sfx("PACK_ISBA_PATCH_n: PROBLEM DEFINING SIZE_N0 / NUMBER OF FIELDS")
879 !
880 !------------------------------------------------------------------------
881 !
882 IF (i%NPATCH==1) THEN
883  !
884  pki%XP_Z0_O_Z0H (:) = i%XZ0_O_Z0H (:, 1)
885  pki%XP_EMIS (:) = i%XEMIS (:, 1)
886  pki%XP_ALBNIR (:) = i%XALBNIR (:, 1)
887  pki%XP_ALBVIS (:) = i%XALBVIS (:, 1)
888  pki%XP_ALBUV (:) = i%XALBUV (:, 1)
889  pki%XP_ALBNIR_VEG (:) = i%XALBNIR_VEG (:, 1)
890  pki%XP_ALBVIS_VEG (:) = i%XALBVIS_VEG (:, 1)
891  pki%XP_ALBUV_VEG (:) = i%XALBUV_VEG (:, 1)
892  pki%XP_ALBNIR_SOIL (:) = i%XALBNIR_SOIL (:, 1)
893  pki%XP_ALBVIS_SOIL (:) = i%XALBVIS_SOIL (:, 1)
894  pki%XP_ALBUV_SOIL (:) = i%XALBUV_SOIL (:, 1)
895  pki%XP_Z0 (:) = i%XZ0 (:, 1)
896  pki%XP_WRMAX_CF (:) = i%XWRMAX_CF (:, 1)
897  pki%XP_GAMMA (:) = i%XGAMMA (:, 1)
898  pki%XP_CV (:) = i%XCV (:, 1)
899  pki%XP_RGL (:) = i%XRGL (:, 1)
900  pki%XP_RUNOFFD (:) = i%XRUNOFFD (:, 1)
901  pki%XP_Z0EFFIP (:) = i%XZ0EFFIP (:, 1)
902  pki%XP_Z0EFFIM (:) = i%XZ0EFFIM (:, 1)
903  pki%XP_Z0EFFJP (:) = i%XZ0EFFJP (:, 1)
904  pki%XP_Z0EFFJM (:) = i%XZ0EFFJM (:, 1)
905  pki%XP_WR (:) = i%XWR (:, 1)
906  pki%XP_LAI (:) = i%XLAI (:, 1)
907  pki%XP_RESA (:) = i%XRESA (:, 1)
908  pki%XP_CPS (:) = i%XPCPS (:, 1)
909  pki%XP_LVTT (:) = i%XPLVTT (:, 1)
910  pki%XP_LSTT (:) = i%XPLSTT (:, 1)
911  pki%XP_VEG (:) = i%XVEG (:, 1)
912  pki%XP_SNOWALB (:) = i%TSNOW%ALB (:, 1)
913  pki%XP_LE (:) = i%XLE (:, 1)
914  pki%XP_PSN (:) = i%XPSN (:, 1)
915  pki%XP_PSNG (:) = i%XPSNG (:, 1)
916  pki%XP_PSNV (:) = i%XPSNV (:, 1)
917  pki%XP_ALBNIR_DRY (:) = i%XALBNIR_DRY (:)
918  pki%XP_ALBVIS_DRY (:) = i%XALBVIS_DRY (:)
919  pki%XP_ALBUV_DRY (:) = i%XALBUV_DRY (:)
920  pki%XP_ALBNIR_WET (:) = i%XALBNIR_WET (:)
921  pki%XP_ALBVIS_WET (:) = i%XALBVIS_WET (:)
922  pki%XP_ALBUV_WET (:) = i%XALBUV_WET (:)
923  pki%XP_RUNOFFB (:) = i%XRUNOFFB (:)
924  pki%XP_WDRAIN (:) = i%XWDRAIN (:)
925  pki%XP_TAUICE (:) = i%XTAUICE (:)
926  pki%XP_Z0REL (:) = i%XZ0REL (:)
927  pki%XP_AOSIP (:) = i%XAOSIP (:)
928  pki%XP_AOSIM (:) = i%XAOSIM (:)
929  pki%XP_AOSJP (:) = i%XAOSJP (:)
930  pki%XP_AOSJM (:) = i%XAOSJM (:)
931  pki%XP_HO2IP (:) = i%XHO2IP (:)
932  pki%XP_HO2IM (:) = i%XHO2IM (:)
933  pki%XP_HO2JP (:) = i%XHO2JP (:)
934  pki%XP_HO2JM (:) = i%XHO2JM (:)
935  pki%XP_SSO_SLOPE (:) = i%XSSO_SLOPE (:)
936  pki%XP_GAMMAT (:) = i%XGAMMAT (:)
937  pki%XP_TDEEP (:) = i%XTDEEP (:)
938  pki%XP_LAT (:) = ig%XLAT (:)
939  pki%XP_LON (:) = ig%XLON (:)
940  !
941  pki%XP_CLAY (:,:) = i%XCLAY (:, :)
942  pki%XP_SAND (:,:) = i%XSAND (:, :)
943  pki%XP_WFC (:, :) = i%XWFC (:, :)
944  pki%XP_WWILT (:, :) = i%XWWILT (:, :)
945  pki%XP_WSAT (:, :) = i%XWSAT (:, :)
946  pki%XP_CONDSAT (:, :) = i%XCONDSAT (:, :, 1)
947  pki%XP_DG (:, :) = i%XDG (:, :, 1)
948  pki%XP_WG (:, :) = i%XWG (:, :, 1)
949  pki%XP_WGI (:, :) = i%XWGI (:, :, 1)
950  pki%XP_MPOTSAT (:, :) = i%XMPOTSAT (:, :)
951  pki%XP_BCOEF (:, :) = i%XBCOEF (:, :)
952  !
953  pki%XP_KSAT_ICE (:) = i%XKSAT_ICE (:, 1)
954  pki%XP_D_ICE (:) = i%XD_ICE (:, 1)
955  !
956  pki%XP_VEGTYPE_PATCH(:, :) = i%XVEGTYPE_PATCH(:, :, 1)
957  !
958  pki%XP_TG (:, :) = i%XTG (:, :, 1)
959  !
960  pki%XP_SNOWSWE (:, :) = i%TSNOW%WSNOW (:, :, 1)
961  pki%XP_SNOWRHO (:, :) = i%TSNOW%RHO (:, :, 1)
962  !
963  pki%XP_DIR_ALB_WITH_SNOW (:,:)= i%XDIR_ALB_WITH_SNOW(:, :, 1)
964  pki%XP_SCA_ALB_WITH_SNOW (:,:)= i%XSCA_ALB_WITH_SNOW(:, :, 1)
965  !
966  pki%XP_FSAT(:)=i%XFSAT(:)
967  !
968  IF(i%LFLOOD)THEN
969  pki%XP_FFLOOD (:)=i%XFFLOOD (:)
970  pki%XP_PIFLOOD (:)=i%XPIFLOOD (:)
971  pki%XP_FF (:)=i%XFF (:, 1)
972  pki%XP_FFG (:)=i%XFFG (:, 1)
973  pki%XP_FFV (:)=i%XFFV (:, 1)
974  pki%XP_FFROZEN (:)=i%XFFROZEN (:, 1)
975  pki%XP_ALBF (:)=i%XALBF (:, 1)
976  pki%XP_EMISF (:)=i%XEMISF (:, 1)
977  ELSE
978  pki%XP_FFLOOD (:)= 0.0
979  pki%XP_PIFLOOD (:)= 0.0
980  pki%XP_FF (:)= 0.0
981  pki%XP_FFG (:)= 0.0
982  pki%XP_FFV (:)= 0.0
983  pki%XP_FFROZEN (:)= 0.0
984  pki%XP_ALBF (:)= 0.0
985  pki%XP_EMISF (:)= 0.0
986  ENDIF
987  !
988  IF(i%TSNOW%SCHEME=='EBA') THEN
989  pki%XP_PSNV_A (:) = i%XPSNV_A(:, 1)
990  ENDIF
991  !
992  IF (i%TSNOW%SCHEME=='3-L' .OR. i%TSNOW%SCHEME=='CRO') THEN
993  pki%XP_SNOWHEAT (:,:) = i%TSNOW%HEAT (:,:,1)
994  pki%XP_SNOWAGE (:,:) = i%TSNOW%AGE (:,:,1)
995  pki%XP_SNOWALBVIS (:) = i%TSNOW%ALBVIS (:, 1)
996  pki%XP_SNOWALBNIR (:) = i%TSNOW%ALBNIR (:, 1)
997  pki%XP_SNOWALBFIR (:) = i%TSNOW%ALBFIR (:, 1)
998  END IF
999  !
1000  IF(i%TSNOW%SCHEME=='CRO') THEN
1001  pki%XP_SNOWGRAN1 (:,:) = i%TSNOW%GRAN1 (:,:,1)
1002  pki%XP_SNOWGRAN2 (:,:) = i%TSNOW%GRAN2 (:,:,1)
1003  pki%XP_SNOWHIST (:,:) = i%TSNOW%HIST (:,:,1)
1004  END IF
1005  !
1006  IF(i%LGLACIER)THEN
1007  pki%XP_ICE_STO (:)= i%XICE_STO (:,1)
1008  ENDIF
1009  !
1010  IF (i%CSCOND=='PL98'.OR.i%CISBA=='DIF') THEN
1011  pki%XP_HCAPSOIL(:, :) = i%XHCAPSOIL (:, :)
1012  pki%XP_CONDDRY (:, :) = i%XCONDDRY (:, :)
1013  pki%XP_CONDSLD (:, :) = i%XCONDSLD (:, :)
1014  END IF
1015  !
1016  IF (i%CISBA=='2-L' .OR. i%CISBA=='3-L') THEN
1017  pki%XP_C4B (:) = i%XC4B (:)
1018  pki%XP_ACOEF (:) = i%XACOEF (:)
1019  pki%XP_PCOEF (:) = i%XPCOEF (:)
1020  pki%XP_CGSAT (:) = i%XCGSAT (:)
1021  pki%XP_C1SAT (:) = i%XC1SAT (:, 1)
1022  pki%XP_C2REF (:) = i%XC2REF (:, 1)
1023  pki%XP_C4REF (:) = i%XC4REF (:, 1)
1024  pki%XP_C3 (:,:) = i%XC3 (:,:,1)
1025  END IF
1026  !
1027  IF (i%CISBA=='DIF') THEN
1028  pki%XP_ROOTFRAC (:, :) = i%XROOTFRAC (:, :, 1)
1029  pki%XP_DZG (:, :) = i%XDZG (:, :, 1)
1030  pki%XP_DZDIF (:, :) = i%XDZDIF (:, :, 1)
1031  pki%XP_SOILWGHT (:, :) = i%XSOILWGHT (:, :, 1)
1032  pki%NK_WG_LAYER (: ) = i%NWG_LAYER (:, 1)
1033  pki%XP_FWTD (: ) = i%XFWTD (:)
1034  pki%XP_WTD (: ) = i%XWTD (:)
1035  END IF
1036  !
1037  IF (i%CISBA=='DIF'.AND.i%CRUNOFF=='SGH') THEN
1038  pki%XP_TOPQS (:, :) = i%XTOPQS (:, :, 1)
1039  END IF
1040  !
1041  IF (i%LTR_ML) THEN
1042  pki%XP_FAPARC (:) = i%XFAPARC (:, 1)
1043  pki%XP_FAPIRC (:) = i%XFAPIRC (:, 1)
1044  pki%XP_LAI_EFFC (:) = i%XLAI_EFFC (:, 1)
1045  pki%XP_MUS (:) = i%XMUS (:, 1)
1046  ENDIF
1047  !
1048  IF (i%CPHOTO=='NON') THEN
1049  pki%XP_RSMIN (:) = i%XRSMIN (:, 1)
1050  END IF
1051 !
1052 ! For multi-energy balance (MEB):
1053 !
1054 ! Note that here the understory ground vegetation (GV) that was part of the original
1055 ! MEB development has been eliminated. The reason is to avoid a composite
1056 ! of vegetation and soil. Thus, most varibales with old extension V
1057 ! (representing canopy vegetation) are now unassociated. Instead, the classical ISBA
1058 ! variables (e.g. RGL, GAMMA, ...) will represent a composite vegetation in the
1059 ! MEB case. We still keep the GV-variables in the system for future needs.
1060 ! Code is commented with "nogv" in appropriate places.
1061 !
1062  IF(i%LMEB_PATCH(1))THEN
1063 !
1064  pki%XP_WRL (:) = i%XWRL (:, 1)
1065  pki%XP_WRLI (:) = i%XWRLI (:, 1)
1066  pki%XP_WRVN (:) = i%XWRVN (:, 1)
1067  pki%XP_TV (:) = i%XTV (:, 1)
1068  pki%XP_TL (:) = i%XTL (:, 1)
1069  pki%XP_TC (:) = i%XTC (:, 1)
1070  pki%XP_QC (:) = i%XQC (:, 1)
1071 !
1072 ! Please note that secondary Ecoclimap parameters, i.e. those
1073 ! with postfix GV, are given to the corresponing original ISBA physiography
1074 ! parameters in the case of LMEB_PATCH/OMEB=true. And the original ISBA
1075 ! physiography parameters are given to the canopy vegetation parameters.
1076 ! E.g. XLAI -> XP_LAIV and XLAIGV -> XP_LAI
1077 !
1078 !nogv IF (CISBA=='DIF') THEN
1079 !nogv XP_ROOTFRACV = XP_ROOTFRAC
1080 !nogv XP_ROOTFRAC (:, :) = XROOTFRACGV (:, :, 1)
1081 !nogv END IF
1082 !nogv IF (CPHOTO=='NON') THEN
1083 !nogv XP_RSMINV = XP_RSMIN
1084 !nogv XP_RSMIN (:) = XRSMINGV (:, 1)
1085 !nogv END IF
1086 !
1087 !nogv XP_RGLV (:) = XRGL (:, 1)
1088 !nogv XP_GAMMAV (:) = XGAMMA (:, 1)
1089 !nogv XP_WRMAX_CFV (:) = XWRMAX_CF (:, 1)
1090 !nogv XP_LAIV (:) = XLAI (:, 1)
1091 !nogv XP_Z0V (:) = XZ0 (:, 1)
1092  pki%XP_H_VEG (:) = i%XH_VEG (:, 1)
1093 !
1094 !nogv XP_VEG (:) = XGNDLITTER (:, 1)
1095 !nogv XP_RGL (:) = XRGLGV (:, 1)
1096 !nogv XP_GAMMA (:) = XGAMMAGV (:, 1)
1097 !nogv XP_WRMAX_CF (:) = XWRMAX_CFGV (:, 1)
1098 !nogv XP_LAI (:) = XLAIGV (:, 1)
1099 !nogv XP_Z0 (:) = XZ0LITTER (:, 1)
1100  pki%XP_GNDLITTER (:) = i%XGNDLITTER (:, 1)
1101  pki%XP_Z0LITTER (:) = i%XZ0LITTER (:, 1)
1102 
1103  ENDIF
1104 !
1105  IF(i%CPHOTO/='NON' .OR. i%LMEB_PATCH(1))THEN
1106  pki%XP_BSLAI (:) = i%XBSLAI (:, 1)
1107  ENDIF
1108 !
1109  IF (i%CPHOTO/='NON') THEN
1110  pki%XP_LAIMIN (:) = i%XLAIMIN (:, 1)
1111  pki%XP_SEFOLD (:) = i%XSEFOLD (:, 1)
1112  pki%XP_H_TREE (:) = i%XH_TREE (:, 1)
1113  pki%XP_ANMAX (:) = i%XANMAX (:, 1)
1114  pki%XP_FZERO (:) = i%XFZERO (:, 1)
1115  pki%XP_EPSO (:) = i%XEPSO (:, 1)
1116  pki%XP_GAMM (:) = i%XGAMM (:, 1)
1117  pki%XP_QDGAMM (:) = i%XQDGAMM (:, 1)
1118  pki%XP_GMES (:) = i%XGMES (:, 1)
1119  pki%XP_RE25 (:) = i%XRE25 (:, 1)
1120  pki%XP_QDGMES (:) = i%XQDGMES (:, 1)
1121  pki%XP_T1GMES (:) = i%XT1GMES (:, 1)
1122  pki%XP_T2GMES (:) = i%XT2GMES (:, 1)
1123  pki%XP_AMAX (:) = i%XAMAX (:, 1)
1124  pki%XP_QDAMAX (:) = i%XQDAMAX (:, 1)
1125  pki%XP_T1AMAX (:) = i%XT1AMAX (:, 1)
1126  pki%XP_T2AMAX (:) = i%XT2AMAX (:, 1)
1127  pki%XP_AN (:) = i%XAN (:, 1)
1128  pki%XP_ANDAY (:) = i%XANDAY (:, 1)
1129  pki%XP_ANFM (:) = i%XANFM (:, 1)
1130  pki%XP_GC (:) = i%XGC (:, 1)
1131  pki%XP_BIOMASS (:,:) = i%XBIOMASS (:,:,1)
1132  pki%XP_RESP_BIOMASS (:,:) = i%XRESP_BIOMASS (:,:,1)
1133  END IF
1134  !
1135  IF (i%CPHOTO=='AST' .OR. i%CPHOTO=='LST' .OR. i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
1136  pki%LP_STRESS (:) = i%LSTRESS (:, 1)
1137  pki%XP_F2I (:) = i%XF2I (:, 1)
1138  pki%XP_AH (:) = i%XAH (:, 1)
1139  pki%XP_BH (:) = i%XBH (:, 1)
1140  pki%XP_DMAX (:) = i%XDMAX (:, 1)
1141  END IF
1142  !
1143  IF(i%CPHOTO=='LAI' .OR. i%CPHOTO=='LST' .OR. i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
1144  pki%TP_SEED (:) = i%TSEED (:,1)
1145  pki%TP_REAP (:) = i%TREAP (:,1)
1146  pki%XP_IRRIG (:) = i%XIRRIG (:,1)
1147  pki%XP_WATSUP (:) = i%XWATSUP (:,1)
1148  IF (lagrip) THEN
1149  pki%XP_LIRRIDAY (:) = ag%LIRRIDAY (:,1)
1150  pki%XP_THRESHOLD(:) = ag%XTHRESHOLDSPT(:,1)
1151  pki%XP_LIRRIGATE(:) = ag%LIRRIGATE (:,1)
1152  END IF
1153  ENDIF
1154  !
1155  IF(i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
1156  pki%XP_CE_NITRO (:) = i%XCE_NITRO (:,1)
1157  pki%XP_CF_NITRO (:) = i%XCF_NITRO (:,1)
1158  pki%XP_CNA_NITRO (:) = i%XCNA_NITRO (:,1)
1159  pki%XP_BSLAI_NITRO (:) = i%XBSLAI_NITRO (:,1)
1160  END IF
1161  !
1162  IF (i%CPHOTO=='NCB') THEN
1163  pki%XP_INCREASE (:,:) = i%XINCREASE (:,:,1)
1164  pki%XP_TAU_WOOD (:) = i%XTAU_WOOD (:,1)
1165  END IF
1166  !
1167  IF (i%CRESPSL=='CNT') THEN
1168  pki%XP_LITTER (:,:,:) = i%XLITTER (:,:,:,1)
1169  pki%XP_SOILCARB (:,:) = i%XSOILCARB (:,:,1)
1170  pki%XP_LIGNIN_STRUC (:,:) = i%XLIGNIN_STRUC (:,:,1)
1171  pki%XP_TURNOVER (:,:) = i%XTURNOVER (:,:,1)
1172  END IF
1173  !
1174  IF (i%CRAIN=='SGH') THEN
1175  pki%XP_MUF(:)=i%XMUF(:)
1176  ENDIF
1177 !
1178 !------------------------------------------------------------------------
1179 ELSE
1180 !------------------------------------------------------------------------
1181 !
1182  DO jj=1,ksize
1183  ji = kmask(jj)
1184  pki%XP_Z0_O_Z0H (jj) = i%XZ0_O_Z0H (ji, kpatch)
1185  pki%XP_EMIS (jj) = i%XEMIS (ji, kpatch)
1186  pki%XP_ALBNIR (jj) = i%XALBNIR (ji, kpatch)
1187  pki%XP_ALBVIS (jj) = i%XALBVIS (ji, kpatch)
1188  pki%XP_ALBUV (jj) = i%XALBUV (ji, kpatch)
1189  pki%XP_ALBNIR_VEG (jj) = i%XALBNIR_VEG (ji, kpatch)
1190  pki%XP_ALBVIS_VEG (jj) = i%XALBVIS_VEG (ji, kpatch)
1191  pki%XP_ALBUV_VEG (jj) = i%XALBUV_VEG (ji, kpatch)
1192  pki%XP_ALBNIR_SOIL (jj) = i%XALBNIR_SOIL (ji, kpatch)
1193  pki%XP_ALBVIS_SOIL (jj) = i%XALBVIS_SOIL (ji, kpatch)
1194  pki%XP_ALBUV_SOIL (jj) = i%XALBUV_SOIL (ji, kpatch)
1195  pki%XP_Z0 (jj) = i%XZ0 (ji, kpatch)
1196  pki%XP_WRMAX_CF (jj) = i%XWRMAX_CF (ji, kpatch)
1197  pki%XP_GAMMA (jj) = i%XGAMMA (ji, kpatch)
1198  pki%XP_CV (jj) = i%XCV (ji, kpatch)
1199  pki%XP_RGL (jj) = i%XRGL (ji, kpatch)
1200  pki%XP_RUNOFFD (jj) = i%XRUNOFFD (ji, kpatch)
1201  pki%XP_Z0EFFIP (jj) = i%XZ0EFFIP (ji, kpatch)
1202  pki%XP_Z0EFFIM (jj) = i%XZ0EFFIM (ji, kpatch)
1203  pki%XP_Z0EFFJP (jj) = i%XZ0EFFJP (ji, kpatch)
1204  pki%XP_Z0EFFJM (jj) = i%XZ0EFFJM (ji, kpatch)
1205  pki%XP_WR (jj) = i%XWR (ji, kpatch)
1206  pki%XP_LAI (jj) = i%XLAI (ji, kpatch)
1207  pki%XP_RESA (jj) = i%XRESA (ji, kpatch)
1208  pki%XP_CPS (jj) = i%XPCPS (ji, kpatch)
1209  pki%XP_LVTT (jj) = i%XPLVTT (ji, kpatch)
1210  pki%XP_LSTT (jj) = i%XPLSTT (ji, kpatch)
1211  pki%XP_VEG (jj) = i%XVEG (ji, kpatch)
1212  pki%XP_SNOWALB (jj) = i%TSNOW%ALB (ji, kpatch)
1213  pki%XP_LE (jj) = i%XLE (ji, kpatch)
1214  pki%XP_PSN (jj) = i%XPSN (ji, kpatch)
1215  pki%XP_PSNG (jj) = i%XPSNG (ji, kpatch)
1216  pki%XP_PSNV (jj) = i%XPSNV (ji, kpatch)
1217  pki%XP_ALBNIR_DRY (jj) = i%XALBNIR_DRY (ji)
1218  pki%XP_ALBVIS_DRY (jj) = i%XALBVIS_DRY (ji)
1219  pki%XP_ALBUV_DRY (jj) = i%XALBUV_DRY (ji)
1220  pki%XP_ALBNIR_WET (jj) = i%XALBNIR_WET (ji)
1221  pki%XP_ALBVIS_WET (jj) = i%XALBVIS_WET (ji)
1222  pki%XP_ALBUV_WET (jj) = i%XALBUV_WET (ji)
1223  pki%XP_RUNOFFB (jj) = i%XRUNOFFB (ji)
1224  pki%XP_WDRAIN (jj) = i%XWDRAIN (ji)
1225  pki%XP_TAUICE (jj) = i%XTAUICE (ji)
1226  pki%XP_Z0REL (jj) = i%XZ0REL (ji)
1227  pki%XP_AOSIP (jj) = i%XAOSIP (ji)
1228  pki%XP_AOSIM (jj) = i%XAOSIM (ji)
1229  pki%XP_AOSJP (jj) = i%XAOSJP (ji)
1230  pki%XP_AOSJM (jj) = i%XAOSJM (ji)
1231  pki%XP_HO2IP (jj) = i%XHO2IP (ji)
1232  pki%XP_HO2IM (jj) = i%XHO2IM (ji)
1233  pki%XP_HO2JP (jj) = i%XHO2JP (ji)
1234  pki%XP_HO2JM (jj) = i%XHO2JM (ji)
1235  pki%XP_SSO_SLOPE (jj) = i%XSSO_SLOPE (ji)
1236  pki%XP_GAMMAT (jj) = i%XGAMMAT (ji)
1237  pki%XP_TDEEP (jj) = i%XTDEEP (ji)
1238  pki%XP_LAT (jj) = ig%XLAT (ji)
1239  pki%XP_LON (jj) = ig%XLON (ji)
1240  pki%XP_FSAT (jj) = i%XFSAT (ji)
1241  ENDDO
1242  !
1243  DO jk=1,i%NGROUND_LAYER
1244  DO jj=1,ksize
1245  ji = kmask(jj)
1246  pki%XP_CLAY (jj,jk) = i%XCLAY (ji, jk)
1247  pki%XP_SAND (jj,jk) = i%XSAND (ji, jk)
1248  pki%XP_WFC (jj,jk) = i%XWFC (ji, jk)
1249  pki%XP_WWILT (jj,jk) = i%XWWILT (ji, jk)
1250  pki%XP_WSAT (jj,jk) = i%XWSAT (ji, jk)
1251  pki%XP_CONDSAT (jj,jk) = i%XCONDSAT (ji, jk, kpatch)
1252  pki%XP_DG (jj,jk) = i%XDG (ji, jk, kpatch)
1253  pki%XP_WG (jj,jk) = i%XWG (ji, jk, kpatch)
1254  pki%XP_WGI (jj,jk) = i%XWGI (ji, jk, kpatch)
1255  pki%XP_MPOTSAT (jj, jk) = i%XMPOTSAT (ji, jk)
1256  pki%XP_BCOEF (jj, jk) = i%XBCOEF (ji, jk)
1257  ENDDO
1258  ENDDO
1259  !
1260  DO jj=1,ksize
1261  ji = kmask(jj)
1262  pki%XP_KSAT_ICE(jj) = i%XKSAT_ICE(ji,kpatch)
1263  pki%XP_D_ICE (jj) = i%XD_ICE (ji,kpatch)
1264  END DO
1265  !
1266  DO jk=1,nvegtype
1267  DO jj=1,ksize
1268  ji = kmask(jj)
1269  pki%XP_VEGTYPE_PATCH(jj,jk) = i%XVEGTYPE_PATCH(ji, jk, kpatch)
1270  ENDDO
1271  ENDDO
1272  !
1273  DO jk=1,SIZE(i%XTG,2)
1274  DO jj=1,ksize
1275  ji = kmask(jj)
1276  pki%XP_TG (jj,jk) = i%XTG (ji, jk, kpatch)
1277  ENDDO
1278  ENDDO
1279  !
1280  DO jk=1,i%TSNOW%NLAYER
1281  DO jj=1,ksize
1282  ji = kmask(jj)
1283  pki%XP_SNOWSWE (jj,jk) = i%TSNOW%WSNOW (ji, jk, kpatch)
1284  pki%XP_SNOWRHO (jj,jk) = i%TSNOW%RHO (ji, jk, kpatch)
1285  ENDDO
1286  ENDDO
1287  !
1288  DO jk=1,SIZE(pki%XP_DIR_ALB_WITH_SNOW,2)
1289  DO jj=1,ksize
1290  ji = kmask(jj)
1291  pki%XP_DIR_ALB_WITH_SNOW (jj,jk)= i%XDIR_ALB_WITH_SNOW(ji,jk,kpatch)
1292  pki%XP_SCA_ALB_WITH_SNOW (jj,jk)= i%XSCA_ALB_WITH_SNOW(ji,jk,kpatch)
1293  ENDDO
1294  ENDDO
1295  !
1296  IF (i%LFLOOD)THEN
1297  DO jj=1,ksize
1298  ji = kmask(jj)
1299  pki%XP_FFLOOD (jj)=i%XFFLOOD (ji)
1300  pki%XP_PIFLOOD (jj)=i%XPIFLOOD (ji)
1301  pki%XP_FF (jj)=i%XFF (ji,kpatch)
1302  pki%XP_FFG (jj)=i%XFFG (ji,kpatch)
1303  pki%XP_FFV (jj)=i%XFFV (ji,kpatch)
1304  pki%XP_FFROZEN (jj)=i%XFFROZEN (ji,kpatch)
1305  pki%XP_ALBF (jj)=i%XALBF (ji,kpatch)
1306  pki%XP_EMISF (jj)=i%XEMISF (ji,kpatch)
1307  END DO
1308  ELSE
1309  pki%XP_FFLOOD (:) = 0.0
1310  pki%XP_PIFLOOD (:) = 0.0
1311  pki%XP_FF (:) = 0.0
1312  pki%XP_FFG (:) = 0.0
1313  pki%XP_FFROZEN (:) = 0.0
1314  pki%XP_FFV (:) = 0.0
1315  pki%XP_ALBF (:) = 0.0
1316  pki%XP_EMISF (:) = 0.0
1317  ENDIF
1318 !
1319  IF(i%TSNOW%SCHEME=='EBA') THEN
1320  DO jj=1,ksize
1321  ji = kmask(jj)
1322  pki%XP_PSNV_A (jj) = i%XPSNV_A(ji, kpatch)
1323  END DO
1324  END IF
1325  !
1326  IF (i%TSNOW%SCHEME=='3-L' .OR. i%TSNOW%SCHEME=='CRO') THEN
1327  DO jk=1,SIZE(pki%XP_SNOWHEAT,2)
1328  DO jj=1,ksize
1329  ji = kmask(jj)
1330  pki%XP_SNOWHEAT (jj, jk) = i%TSNOW%HEAT (ji, jk, kpatch)
1331  pki%XP_SNOWAGE (jj, jk) = i%TSNOW%AGE (ji, jk, kpatch)
1332  ENDDO
1333  END DO
1334  DO jj=1,ksize
1335  ji = kmask(jj)
1336  pki%XP_SNOWALBVIS (jj) = i%TSNOW%ALBVIS (ji, kpatch)
1337  pki%XP_SNOWALBNIR (jj) = i%TSNOW%ALBNIR (ji, kpatch)
1338  pki%XP_SNOWALBFIR (jj) = i%TSNOW%ALBFIR (ji, kpatch)
1339  ENDDO
1340  END IF
1341  !
1342  IF (i%TSNOW%SCHEME=='CRO') THEN
1343  DO jk=1,SIZE(pki%XP_SNOWGRAN1,2)
1344  DO jj=1,ksize
1345  ji = kmask(jj)
1346  pki%XP_SNOWGRAN1 (jj, jk) = i%TSNOW%GRAN1 (ji, jk, kpatch)
1347  pki%XP_SNOWGRAN2 (jj, jk) = i%TSNOW%GRAN2 (ji, jk, kpatch)
1348  pki%XP_SNOWHIST (jj, jk) = i%TSNOW%HIST (ji, jk, kpatch)
1349  ENDDO
1350  END DO
1351  END IF
1352  !
1353  IF(i%LGLACIER)THEN
1354  DO jj=1,ksize
1355  ji = kmask(jj)
1356  pki%XP_ICE_STO(jj) = i%XICE_STO (ji,kpatch)
1357  ENDDO
1358  ENDIF
1359  !
1360  IF (i%CSCOND=='PL98'.OR.i%CISBA=='DIF') THEN
1361  DO jk=1,SIZE(i%XHCAPSOIL,2)
1362  DO jj=1,ksize
1363  ji = kmask(jj)
1364  pki%XP_HCAPSOIL (jj, jk) = i%XHCAPSOIL (ji, jk)
1365  pki%XP_CONDDRY (jj, jk) = i%XCONDDRY (ji, jk)
1366  pki%XP_CONDSLD (jj, jk) = i%XCONDSLD (ji, jk)
1367  ENDDO
1368  ENDDO
1369  END IF
1370  !
1371  IF (i%CISBA=='2-L' .OR. i%CISBA=='3-L') THEN
1372  DO jj=1,ksize
1373  ji = kmask(jj)
1374  pki%XP_C4B (jj) = i%XC4B (ji)
1375  pki%XP_ACOEF (jj) = i%XACOEF (ji)
1376  pki%XP_PCOEF (jj) = i%XPCOEF (ji)
1377  pki%XP_CGSAT (jj) = i%XCGSAT (ji)
1378  pki%XP_C1SAT (jj) = i%XC1SAT (ji, kpatch)
1379  pki%XP_C2REF (jj) = i%XC2REF (ji, kpatch)
1380  pki%XP_C4REF (jj) = i%XC4REF (ji, kpatch)
1381  ENDDO
1382  !
1383  DO jk=1,SIZE(i%XC3,2)
1384  DO jj=1,ksize
1385  ji = kmask(jj)
1386  pki%XP_C3 (jj,jk) = i%XC3 (ji, jk, kpatch)
1387  ENDDO
1388  ENDDO
1389  END IF
1390  !
1391  DO jk=1,SIZE(i%XBCOEF,2)
1392  DO jj=1,ksize
1393  ji = kmask(jj)
1394  pki%XP_MPOTSAT (jj, jk) = i%XMPOTSAT (ji, jk)
1395  pki%XP_BCOEF (jj, jk) = i%XBCOEF (ji, jk)
1396  ENDDO
1397  ENDDO
1398  !
1399  IF (i%CISBA=='DIF') THEN
1400  DO jk=1,SIZE(i%XROOTFRAC,2)
1401  DO jj=1,ksize
1402  ji = kmask(jj)
1403  pki%XP_ROOTFRAC (jj, jk) = i%XROOTFRAC (ji, jk, kpatch)
1404  pki%XP_DZG (jj, jk) = i%XDZG (ji, jk, kpatch)
1405  pki%XP_DZDIF (jj, jk) = i%XDZDIF (ji, jk, kpatch)
1406  pki%XP_SOILWGHT (jj, jk) = i%XSOILWGHT (ji, jk, kpatch)
1407  ENDDO
1408  ENDDO
1409  DO jj=1,ksize
1410  ji = kmask(jj)
1411  pki%NK_WG_LAYER (jj) = i%NWG_LAYER (ji,kpatch)
1412  pki%XP_FWTD (jj) = i%XFWTD (ji)
1413  pki%XP_WTD (jj) = i%XWTD (ji)
1414  ENDDO
1415  ENDIF
1416  !
1417  IF (i%CISBA=='DIF'.AND.i%CRUNOFF=='SGH') THEN
1418  DO jk=1,SIZE(i%XROOTFRAC,2)
1419  DO jj=1,ksize
1420  ji = kmask(jj)
1421  pki%XP_TOPQS (jj, jk) = i%XTOPQS (ji, jk, kpatch)
1422  ENDDO
1423  ENDDO
1424  END IF
1425  !
1426  IF (i%LTR_ML) THEN
1427  DO jj=1,ksize
1428  ji = kmask(jj)
1429  pki%XP_FAPARC (jj) = i%XFAPARC (ji, kpatch)
1430  pki%XP_FAPIRC (jj) = i%XFAPIRC (ji, kpatch)
1431  pki%XP_LAI_EFFC (jj) = i%XLAI_EFFC (ji, kpatch)
1432  pki%XP_MUS (jj) = i%XMUS (ji, kpatch)
1433  ENDDO
1434  ENDIF
1435  !
1436  IF (i%CPHOTO=='NON') THEN
1437  DO jj=1,ksize
1438  ji = kmask(jj)
1439  pki%XP_RSMIN (jj) = i%XRSMIN (ji, kpatch)
1440  END DO
1441  END IF
1442  !
1443  IF(i%LMEB_PATCH(kpatch))THEN
1444 !
1445  DO jj=1,ksize
1446  ji = kmask(jj)
1447  pki%XP_WRL (jj) = i%XWRL (ji, kpatch)
1448  pki%XP_WRLI (jj) = i%XWRLI (ji, kpatch)
1449  pki%XP_WRVN (jj) = i%XWRVN (ji, kpatch)
1450  pki%XP_TV (jj) = i%XTV (ji, kpatch)
1451  pki%XP_TL (jj) = i%XTL (ji, kpatch)
1452  pki%XP_TC (jj) = i%XTC (ji, kpatch)
1453  pki%XP_QC (jj) = i%XQC (ji, kpatch)
1454  ENDDO
1455 !
1456 ! Please note that secondary Ecoclimap parameters, i.e. those
1457 ! with postfix GV, are given to the corresponing original ISBA physiography
1458 ! parameters in the case of LMEB_PATCH/OMEB=true. And the original ISBA
1459 ! physiography parameters are given to the canopy vegetation parameters.
1460 ! E.g. XLAI -> XP_LAIV and XLAIGV -> XP_LAI
1461 !
1462 !nogv IF (CISBA=='DIF') THEN
1463 !nogv XP_ROOTFRACV = XP_ROOTFRAC
1464 !nogv DO JK=1,SIZE(XROOTFRAC,2)
1465 !nogv DO JJ=1,KSIZE
1466 !nogv JI = KMASK(JJ)
1467 !nogv XP_ROOTFRAC (JJ, JK) = XROOTFRACGV (JI, JK, KPATCH)
1468 !nogv ENDDO
1469 !nogv ENDDO
1470 !nogv END IF
1471 !
1472 !nogv IF (CPHOTO=='NON') THEN
1473 !nogv XP_RSMINV = XP_RSMIN
1474 !nogv DO JJ=1,KSIZE
1475 !nogv JI = KMASK(JJ)
1476 !nogv XP_RSMIN (JJ) = XRSMINGV (JI, KPATCH)
1477 !nogv END DO
1478 !nogv END IF
1479 !
1480  DO jj=1,ksize
1481  ji = kmask(jj)
1482  pki%XP_H_VEG (jj) = i%XH_VEG (ji, kpatch)
1483 !nogv XP_RGLV (JJ) = XRGL (JI, KPATCH)
1484 !nogv XP_GAMMAV (JJ) = XGAMMA (JI, KPATCH)
1485 !nogv XP_WRMAX_CFV (JJ) = XWRMAX_CF (JI, KPATCH)
1486 !nogv XP_LAIV (JJ) = XLAI (JI, KPATCH)
1487 !nogv XP_Z0V (JJ) = XZ0 (JI, KPATCH)
1488 !
1489 !nogv XP_VEG (JJ) = XGNDLITTER (JI, KPATCH)
1490 !nogv XP_RGL (JJ) = XRGLGV (JI, KPATCH)
1491 !nogv XP_GAMMA (JJ) = XGAMMAGV (JI, KPATCH)
1492 !nogv XP_WRMAX_CF (JJ) = XWRMAX_CFGV (JI, KPATCH)
1493 !nogv XP_LAI (JJ) = XLAIGV (JI, KPATCH)
1494 !nogv XP_Z0 (JJ) = XZ0LITTER (JI, KPATCH)
1495  pki%XP_GNDLITTER (jj) = i%XGNDLITTER (ji, kpatch)
1496  pki%XP_Z0LITTER (jj) = i%XZ0LITTER (ji, kpatch)
1497  ENDDO
1498  ENDIF
1499 !
1500  IF(i%CPHOTO/='NON' .OR. i%LMEB_PATCH(kpatch))THEN
1501  DO jj=1,ksize
1502  ji = kmask(jj)
1503  pki%XP_BSLAI (jj) = i%XBSLAI (ji, kpatch)
1504  ENDDO
1505  ENDIF
1506 !
1507  IF (i%CPHOTO/='NON') THEN
1508  DO jj=1,ksize
1509  ji = kmask(jj)
1510  pki%XP_LAIMIN (jj) = i%XLAIMIN (ji, kpatch)
1511  pki%XP_SEFOLD (jj) = i%XSEFOLD (ji, kpatch)
1512  pki%XP_H_TREE (jj) = i%XH_TREE (ji, kpatch)
1513  pki%XP_ANMAX (jj) = i%XANMAX (ji, kpatch)
1514  pki%XP_FZERO (jj) = i%XFZERO (ji, kpatch)
1515  pki%XP_EPSO (jj) = i%XEPSO (ji, kpatch)
1516  pki%XP_GAMM (jj) = i%XGAMM (ji, kpatch)
1517  pki%XP_QDGAMM (jj) = i%XQDGAMM (ji, kpatch)
1518  pki%XP_GMES (jj) = i%XGMES (ji, kpatch)
1519  pki%XP_RE25 (jj) = i%XRE25 (ji, kpatch)
1520  pki%XP_QDGMES (jj) = i%XQDGMES (ji, kpatch)
1521  pki%XP_T1GMES (jj) = i%XT1GMES (ji, kpatch)
1522  pki%XP_T2GMES (jj) = i%XT2GMES (ji, kpatch)
1523  pki%XP_AMAX (jj) = i%XAMAX (ji, kpatch)
1524  pki%XP_QDAMAX (jj) = i%XQDAMAX (ji, kpatch)
1525  pki%XP_T1AMAX (jj) = i%XT1AMAX (ji, kpatch)
1526  pki%XP_T2AMAX (jj) = i%XT2AMAX (ji, kpatch)
1527  pki%XP_AN (jj) = i%XAN (ji, kpatch)
1528  pki%XP_ANDAY (jj) = i%XANDAY (ji, kpatch)
1529  pki%XP_ANFM (jj) = i%XANFM (ji, kpatch)
1530  pki%XP_GC (jj) = i%XGC (ji, kpatch)
1531  ENDDO
1532  DO jk=1,SIZE(i%XBIOMASS,2)
1533  DO jj=1,ksize
1534  ji = kmask(jj)
1535  pki%XP_BIOMASS (jj,jk) = i%XBIOMASS (ji,jk,kpatch)
1536  pki%XP_RESP_BIOMASS (jj,jk) = i%XRESP_BIOMASS (ji,jk,kpatch)
1537  ENDDO
1538  END DO
1539  END IF
1540  !
1541  IF (i%CPHOTO=='AST' .OR. i%CPHOTO=='LST' .OR. i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
1542  DO jj=1,ksize
1543  ji = kmask(jj)
1544  pki%LP_STRESS (jj) = i%LSTRESS (ji, kpatch)
1545  pki%XP_F2I (jj) = i%XF2I (ji, kpatch)
1546  pki%XP_AH (jj) = i%XAH (ji, kpatch)
1547  pki%XP_BH (jj) = i%XBH (ji, kpatch)
1548  pki%XP_DMAX (jj) = i%XDMAX (ji, kpatch)
1549  END DO
1550  END IF
1551  !
1552  IF(i%CPHOTO=='LAI' .OR. i%CPHOTO=='LST' .OR. i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
1553  DO jj=1,ksize
1554  ji = kmask(jj)
1555  pki%TP_SEED (jj) = i%TSEED (ji,kpatch)
1556  pki%TP_REAP (jj) = i%TREAP (ji,kpatch)
1557  pki%XP_IRRIG (jj) = i%XIRRIG (ji,kpatch)
1558  pki%XP_WATSUP (jj) = i%XWATSUP (ji,kpatch)
1559  ENDDO
1560  IF (lagrip) THEN
1561  DO jj=1,ksize
1562  ji = kmask(jj)
1563  pki%XP_LIRRIDAY (jj) = ag%LIRRIDAY (ji,kpatch)
1564  pki%XP_THRESHOLD(jj) = ag%XTHRESHOLDSPT(ji,kpatch)
1565  pki%XP_LIRRIGATE(jj) = ag%LIRRIGATE (ji,kpatch)
1566  ENDDO
1567  ENDIF
1568  ENDIF
1569  !
1570  IF(i%CPHOTO=='NIT' .OR. i%CPHOTO=='NCB') THEN
1571  DO jj=1,ksize
1572  ji = kmask(jj)
1573  pki%XP_CE_NITRO (jj) = i%XCE_NITRO (ji,kpatch)
1574  pki%XP_CF_NITRO (jj) = i%XCF_NITRO (ji,kpatch)
1575  pki%XP_CNA_NITRO (jj) = i%XCNA_NITRO (ji,kpatch)
1576  pki%XP_BSLAI_NITRO (jj) = i%XBSLAI_NITRO (ji,kpatch)
1577  END DO
1578  END IF
1579  !
1580  IF (i%CPHOTO=='NCB') THEN
1581  DO jk=1,SIZE(i%XINCREASE,2)
1582  DO jj=1,ksize
1583  ji = kmask(jj)
1584  pki%XP_INCREASE (jj,jk) = i%XINCREASE (ji,jk,kpatch)
1585  ENDDO
1586  END DO
1587  DO jj=1,ksize
1588  ji = kmask(jj)
1589  pki%XP_TAU_WOOD (jj) = i%XTAU_WOOD (ji,kpatch)
1590  END DO
1591  END IF
1592  !
1593  IF (i%CRESPSL=='CNT') THEN
1594  DO jl=1,SIZE(pki%XP_LITTER,3)
1595  DO jk=1,SIZE(pki%XP_LITTER,2)
1596  DO jj=1,ksize
1597  ji = kmask(jj)
1598  pki%XP_LITTER (jj,jk,jl) = i%XLITTER (ji,jk,jl,kpatch)
1599  ENDDO
1600  ENDDO
1601  ENDDO
1602  DO jk=1,SIZE(pki%XP_SOILCARB,2)
1603  DO jj=1,ksize
1604  ji = kmask(jj)
1605  pki%XP_SOILCARB (jj,jk) = i%XSOILCARB (ji,jk,kpatch)
1606  ENDDO
1607  ENDDO
1608  DO jk=1,SIZE(pki%XP_LIGNIN_STRUC,2)
1609  DO jj=1,ksize
1610  ji = kmask(jj)
1611  pki%XP_LIGNIN_STRUC (jj,jk) = i%XLIGNIN_STRUC (ji,jk,kpatch)
1612  ENDDO
1613  ENDDO
1614  DO jk=1,SIZE(pki%XP_TURNOVER,2)
1615  DO jj=1,ksize
1616  ji = kmask(jj)
1617  pki%XP_TURNOVER (jj,jk) = i%XTURNOVER (ji,jk,kpatch)
1618  ENDDO
1619  ENDDO
1620  END IF
1621 !
1622  IF (i%CRAIN=='SGH')THEN
1623  DO jj=1,ksize
1624  ji = kmask(jj)
1625  pki%XP_MUF(jj) = i%XMUF(ji)
1626  END DO
1627  ENDIF
1628 !
1629 !------------------------------------------------------------------------
1630 END IF
1631 IF (lhook) CALL dr_hook('PACK_ISBA_PATCH_N',1,zhook_handle)
1632 !------------------------------------------------------------------------
1633 END SUBROUTINE pack_isba_patch_n
subroutine pack_isba_patch_n(AG, IG, I, PKI, KMASK, KSIZE, KPATCH)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6