SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
prep_isba.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 prep_isba (DTCO, ICP, IG, I, UG, U, USS, &
7  hprogram,hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
8 ! #################################################################################
9 !
10 !!**** *PREP_ISBA* - Prepares ISBA fields
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !!** METHOD
16 !! ------
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !!
22 !! AUTHOR
23 !! ------
24 !! V. Masson
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 01/2004
29 !! Modified by P. Le Moigne (11/2004): AGS fields
30 !! Modified by B. Decharme (2008) : Floodplains
31 !! Modified by B. Decharme (01/2009): Consistency with Arpege deep soil
32 !! temperature
33 !! Modified by B. Decharme (03/2009): Consistency with Arpege permanent
34 !! snow/ice treatment
35 !! A.L. Gibelin 04/2009 : BIOMASS and RESP_BIOMASS arrays
36 !! A.L. Gibelin 06/2009 : Soil carbon variables for CNT option
37 !! Modified by S. Riette (06/2009): PREP_ISBA_CANOPY has no more arg.
38 !! Modified by S. Riette (04/2010): ecmwf ice content is computed during
39 !! grib reading (no longer here)
40 !! B. Decharme (10/2012): coherence between soil temp and liquid/solid water with DIF
41 !! bug in biomass prognostic fields calculation
42 !! B. Decharme (06/2013): XPSNV_A for EBA snow scheme not allocated
43 !! M. Lafaysse (04/2014) : LSNOW_PREP_PERM
44 !! B. Decharme (04/2013): Good computation for coherence between soil temp and
45 !! liquid/solid water with DIF (results don't change)
46 !! if lglacier in input file, do not initialize again
47 !! P. Samuelsson (10/2014): MEB
48 !!------------------------------------------------------------------
49 !
50 !
51 !
52 !
53 !
54 !
55 !
57 USE modd_isba_canopy_n, ONLY : isba_canopy_t
58 USE modd_isba_grid_n, ONLY : isba_grid_t
59 USE modd_isba_n, ONLY : isba_t
61 USE modd_surf_atm_n, ONLY : surf_atm_t
63 !
64 USE modi_prep_hor_isba_field
65 USE modi_prep_ver_isba
66 USE modi_prep_output_grid
67 USE modi_get_luout
68 USE modi_prep_isba_canopy
69 !
70 USE modd_read_namelist, ONLY : lnam_read
71 USE modd_surf_atm, ONLY : lvertshift
72 USE modd_data_cover_par, ONLY : nvt_snow
73 !
74 !
75 USE modd_deepsoil, ONLY : lphysdomc
76 USE modd_csts, ONLY : xtt, xg, xlmtt
77 USE modd_snow_par, ONLY : xemissn
78 USE modd_isba_par, ONLY : xwgmin
79 !
80 USE modd_co2v_par, ONLY : xanfminit
81 USE modd_surf_par, ONLY : xundef
82 USE modd_prep, ONLY : xzs_ls
83 
84 USE modd_prep_snow, ONLY : lsnow_prep_perm
85 !
87 USE modn_prep_isba_snow, ONLY : lswemax, xswemax
88 !
89 USE modi_vegtype_to_patch
90 USE modi_prep_perm_snow
91 USE modi_init_snow_lw
92 USE modi_averaged_albedo_emis_isba
93 USE modi_prep_hor_isba_cc_field
95 !
96 !
97 USE yomhook ,ONLY : lhook, dr_hook
98 USE parkind1 ,ONLY : jprb
99 !
100 USE modi_clean_prep_output_grid
101 !
102 IMPLICIT NONE
103 !
104 !* 0.1 declarations of arguments
105 !
106 !
107 TYPE(data_cover_t), INTENT(INOUT) :: dtco
108 TYPE(isba_canopy_t), INTENT(INOUT) :: icp
109 TYPE(isba_grid_t), INTENT(INOUT) :: ig
110 TYPE(isba_t), INTENT(INOUT) :: i
111 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
112 TYPE(surf_atm_t), INTENT(INOUT) :: u
113 TYPE(surf_atm_sso_t), INTENT(INOUT) :: uss
114 !
115  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! program calling surf. schemes
116  CHARACTER(LEN=28), INTENT(IN) :: hatmfile ! name of the Atmospheric file
117  CHARACTER(LEN=6), INTENT(IN) :: hatmfiletype! type of the Atmospheric file
118  CHARACTER(LEN=28), INTENT(IN) :: hpgdfile ! name of the Atmospheric file
119  CHARACTER(LEN=6), INTENT(IN) :: hpgdfiletype! type of the Atmospheric file
120 !
121 !* 0.2 declarations of local variables
122 !
123 INTEGER :: iluout, ini
124 INTEGER :: jp, jl, jj
125 INTEGER :: isnow ! patch number where permanent snow is
126 REAL :: zwork, zlog, zwtot, zmatpot, zwl
127 !
128 REAL, DIMENSION(1) :: zsw_bands ! middle wavelength of each band
129 REAL, DIMENSION(SIZE(I%XLAI,1),SIZE(I%XLAI,2)) :: zdir_alb ! direct albedo for each band
130 REAL, DIMENSION(SIZE(I%XLAI,1),SIZE(I%XLAI,2)) :: zsca_alb ! diffuse albedo for each band
131 REAL, DIMENSION(SIZE(I%XLAI,1)) :: zemis ! emissivity
132 REAL, DIMENSION(SIZE(I%XLAI,1)) :: zzenith ! solar zenithal angle
133 REAL, DIMENSION(SIZE(I%XLAI,1)) :: ztsurf ! surface effective temperature
134 !
135 LOGICAL :: gpermsnow
136 LOGICAL :: gtemp2wgi
137 LOGICAL :: gwg
138 LOGICAL :: gwgi
139 LOGICAL :: gtg
140 !
141 REAL :: smax
142 !
143 INTEGER :: isize_lmeb_patch
144 !
145 REAL(KIND=JPRB) :: zhook_handle
146 !
147 !-------------------------------------------------------------------------------------
148 !
149 IF (lhook) CALL dr_hook('PREP_ISBA',0,zhook_handle)
150 !
151 !* 1. Default of configuration
152 !
153 gpermsnow = .true.
154 gwg = .true.
155 gwgi = .true.
156 gtg = .true.
157 !
158 isize_lmeb_patch=count(i%LMEB_PATCH(:))
159 !
160 !* 1.1 Default
161 !
162  CALL get_luout(hprogram,iluout)
163 !
164  CALL prep_output_grid(ug, u, &
165  iluout,ig%CGRID,ig%XGRID_PAR,ig%XLAT,ig%XLON)
166 !
167 !-------------------------------------------------------------------------------------
168 !
169 !* 2. Reading and horizontal interpolations
170 !
171 !
172 !* 2.0 Large scale orography
173 !
174  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
175  hprogram,'ZS ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
176 !
177 !* 2.1 Soil Water reservoirs
178 !
179  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
180  hprogram,'WG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gwg)
181 !
182 !* 2.2 Soil ice reservoirs
183 !
184  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
185  hprogram,'WGI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gwgi)
186 !
187 !* 2.3 Leaves interception water reservoir
188 !
189  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
190  hprogram,'WR ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
191 !
192 !* 2.4 Temperature profile
193 !
194  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
195  hprogram,'TG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gtg)
196 !
197 !* 2.5 Snow variables
198 !
199  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
200  hprogram,'SN_VEG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,gpermsnow)
201 !
202 !* 2.6 LAI
203 !
204  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
205  hprogram,'LAI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
206 !
207 !* 2.7 GLACIER
208 !
209 IF(i%LGLACIER)THEN
210  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
211  hprogram,'ICE_STO',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
212 ENDIF
213 !
214 !* 2.8 Canopy vegetation temperature and interception reservoirs and air variables
215 !
216 IF(isize_lmeb_patch>0)THEN
217  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
218  hprogram,'TV ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
219  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
220  hprogram,'TL ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
221  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
222  hprogram,'WRL ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
223  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
224  hprogram,'WRLI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
225  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
226  hprogram,'WRVN ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
227  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
228  hprogram,'TC ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
229  CALL prep_hor_isba_field(dtco, ig, i, ug, u, uss, &
230  hprogram,'QC ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
231 ENDIF
232 !
233 !-------------------------------------------------------------------------------------
234 !
235 !* 3. Physical limitation:
236 !
237 ! No ice for force restore third layer:
238 IF (i%CISBA == '3-L') THEN
239  DO jp=1,i%NPATCH
240  WHERE(i%XWG(:,3,jp) /= xundef)
241  i%XWG(:,3,jp) = min(i%XWG(:,3,jp)+i%XWGI(:,3,jp),i%XWSAT(:,3))
242  i%XWGI(:,3,jp) = 0.
243  END WHERE
244  ENDDO
245 ENDIF
246 !
247 ! Total water content should not exceed saturation:
248 DO jp=1,i%NPATCH
249  WHERE(i%XWG(:,:,jp) /= xundef .AND. (i%XWG(:,:,jp) + i%XWGI(:,:,jp)) > i%XWSAT(:,:) )
250  i%XWGI(:,:,jp) = i%XWSAT(:,:) - i%XWG(:,:,jp)
251  END WHERE
252 ENDDO
253 !
254 !-------------------------------------------------------------------------------------
255 !
256 !* 3. Vertical interpolations of all variables
257 !
258 IF(lvertshift)THEN
259  CALL prep_ver_isba(i)
260 ENDIF
261 !
262 DEALLOCATE(xzs_ls)
263 !-------------------------------------------------------------------------------------
264 !
265 !* 4. Treatment of permanent snow
266 !
267 IF (gpermsnow.AND.lsnow_prep_perm) THEN
268  isnow = vegtype_to_patch(nvt_snow,i%NPATCH)
269  CALL prep_perm_snow(i, &
270  i%TSNOW,i%XTG(:,:,isnow),i%XVEGTYPE_PATCH(:,:,isnow),isnow)
271 ENDIF
272 !
273  CALL init_snow_lw(xemissn,i%TSNOW)
274 !
275 IF (lphysdomc) THEN
276  i%TSNOW%WSNOW(:,:,:)=0.
277 ENDIF
278 !-------------------------------------------------------------------------------------
279 !
280 !* 4.b Possibility for setting an upper limit on the initial snow water equivalent field
281 IF (lswemax) THEN
282  smax = maxval(i%TSNOW%WSNOW(:,:,:))
283  WRITE(*,*) ' MAX(Snow content (kg/m2)): ', smax
284  WRITE(*,*) ' Set MAX to', xswemax, '(kg/m2)'
285  i%TSNOW%WSNOW(:,:,:) = min(i%TSNOW%WSNOW(:,:,:),xswemax)
286  smax = maxval(i%TSNOW%WSNOW(:,:,:))
287  WRITE(*,*) ' MAX(Snow content (kg/m2)): ', smax
288 ENDIF
289 !
290 !-------------------------------------------------------------------------------------
291 !
292 !* 5. coherence between soil temperature and liquid/solid water
293 !
294 gtemp2wgi=(gwg.OR.gwgi.OR.gtg)
295 !
296 IF (i%CISBA == 'DIF'.AND.gtemp2wgi) THEN
297  ini=SIZE(i%XWSAT,1)
298  DO jp=1,i%NPATCH
299  DO jl=1,i%NGROUND_LAYER
300  DO jj=1,ini
301  IF(i%XWG(jj,jl,jp)/=xundef)THEN
302 !
303 ! total soil moisture
304  zwtot = i%XWG(jj,jl,jp)+i%XWGI(jj,jl,jp)
305  zwtot = min(zwtot,i%XWSAT(jj,jl))
306 !
307 ! total matric potential
308 ! psi=mpotsat*(w/wsat)**(-bcoef)
309  zwork = zwtot/i%XWSAT(jj,jl)
310  zlog = i%XBCOEF(jj,jl)*log(zwork)
311  zmatpot = i%XMPOTSAT(jj,jl)*exp(-zlog)
312 !
313 ! soil liquid water content computation
314 ! w=wsat*(psi/mpotsat)**(-1/bcoef)
315  zmatpot = min(i%XMPOTSAT(jj,jl),xlmtt*(i%XTG(jj,jl,jp)-xtt)/(xg*i%XTG(jj,jl,jp)))
316  zwork = max(1.0,zmatpot/i%XMPOTSAT(jj,jl))
317  zlog = log(zwork)
318  zwl = i%XWSAT(jj,jl)*exp(-zlog/i%XBCOEF(jj,jl))
319  zwl = max(zwl,xwgmin)
320  i%XWG(jj,jl,jp) = min(zwl,zwtot )
321 !
322 ! soil ice computation
323  i%XWGI(jj,jl,jp) = max(0.0,zwtot-i%XWG(jj,jl,jp))
324 !
325 ! supress numerical artefact
326  IF(i%XTG(jj,jl,jp)>=xtt)THEN
327  i%XWG (jj,jl,jp) = min(i%XWG(jj,jl,jp)+i%XWGI(jj,jl,jp),i%XWSAT(jj,jl))
328  i%XWGI(jj,jl,jp) = 0.0
329  ENDIF
330 !
331  ENDIF
332  ENDDO
333  ENDDO
334  ENDDO
335 ENDIF
336 !
337 !-------------------------------------------------------------------------------------
338 !
339 !* 6. Half prognostic fields
340 ! The only variable used from the AVERAGED_ALBEDO_EMIS_ISBA call
341 ! is XTSRAD_NAT. All other variables are treated as dummies.
342 !
343 ALLOCATE(i%XRESA(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
344 i%XRESA = 100.
345 !
346 ALLOCATE(i%XTSRAD_NAT(SIZE(i%XLAI,1)))
347 zzenith(:)=0.
348 zsw_bands(:)=0.
349 !
350 ALLOCATE(i%XALBNIR(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
351 ALLOCATE(i%XALBVIS(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
352 ALLOCATE(i%XALBUV(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
353 i%XALBNIR = 0.0
354 i%XALBVIS = 0.0
355 i%XALBUV = 0.0
356 !
357 ALLOCATE(i%XALBNIR_SOIL(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
358 ALLOCATE(i%XALBVIS_SOIL(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
359 ALLOCATE(i%XALBUV_SOIL(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
360  CALL soil_albedo(i%CALBEDO, i%XWSAT(:,1),i%XWG(:,1,:), &
361  i%XALBVIS_DRY,i%XALBNIR_DRY,i%XALBUV_DRY, &
362  i%XALBVIS_WET,i%XALBNIR_WET,i%XALBUV_WET, &
363  i%XALBVIS_SOIL,i%XALBNIR_SOIL,i%XALBUV_SOIL )
364 !
365 ALLOCATE(i%XPSN (SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
366 ALLOCATE(i%XPSNG (SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
367 ALLOCATE(i%XPSNV (SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
368 ALLOCATE(i%XPSNV_A(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
369 i%XPSN = 0.0
370 i%XPSNG = 0.0
371 i%XPSNV = 0.0
372 i%XPSNV_A = 0.0
373 ALLOCATE(i%XDIR_ALB_WITH_SNOW(SIZE(i%XLAI,1),1,SIZE(i%XLAI,2)))
374 ALLOCATE(i%XSCA_ALB_WITH_SNOW(SIZE(i%XLAI,1),1,SIZE(i%XLAI,2)))
375 i%XDIR_ALB_WITH_SNOW = 0.0
376 i%XSCA_ALB_WITH_SNOW = 0.0
377  CALL averaged_albedo_emis_isba(i, &
378  .false., i%CALBEDO, zzenith, &
379  i%XVEG,i%XZ0,i%XLAI, &
380  i%LMEB_PATCH,i%XGNDLITTER,i%XZ0LITTER,i%XLAIGV, &
381  i%XH_VEG, i%XTV, &
382  i%XTG(:,1,:),i%XPATCH, zsw_bands, &
383  i%XALBNIR_VEG,i%XALBVIS_VEG,i%XALBUV_VEG, &
384  i%XALBNIR_SOIL,i%XALBVIS_SOIL,i%XALBUV_SOIL, &
385  i%XEMIS, &
386  i%TSNOW, &
387  i%XALBNIR,i%XALBVIS,i%XALBUV, &
388  zdir_alb, zsca_alb, &
389  zemis,i%XTSRAD_NAT,ztsurf )
390 DEALLOCATE(i%XPSN)
391 DEALLOCATE(i%XPSNG)
392 DEALLOCATE(i%XPSNV)
393 DEALLOCATE(i%XPSNV_A)
394 DEALLOCATE(i%XDIR_ALB_WITH_SNOW)
395 DEALLOCATE(i%XSCA_ALB_WITH_SNOW)
396 !
397 !-------------------------------------------------------------------------------------
398 !
399 !* 7. Isba-Ags prognostic fields
400 !
401 IF (i%CPHOTO /= 'NON') THEN
402 !
403  ALLOCATE(i%XAN(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
404  i%XAN = 0.
405 !
406  ALLOCATE(i%XANDAY(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
407  i%XANDAY = 0.
408 !
409  ALLOCATE(i%XANFM(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
410  i%XANFM = xanfminit
411 !
412  ALLOCATE(i%XLE(SIZE(i%XLAI,1),SIZE(i%XLAI,2)))
413  i%XLE = 0.
414 !
415  ALLOCATE(i%XRESP_BIOMASS(SIZE(i%XLAI,1),i%NNBIOMASS,SIZE(i%XLAI,2)))
416  i%XRESP_BIOMASS(:,:,:) = 0.
417 !
418 ENDIF
419 !
420 IF (i%CPHOTO == 'AGS' .OR. i%CPHOTO == 'AST') THEN
421 !
422  ALLOCATE(i%XBIOMASS(SIZE(i%XLAI,1),i%NNBIOMASS,SIZE(i%XLAI,2)))
423  i%XBIOMASS(:,:,:) = 0.
424 !
425 ELSEIF (i%CPHOTO == 'LAI' .OR. i%CPHOTO == 'LST') THEN
426 !
427  ALLOCATE(i%XBIOMASS(SIZE(i%XLAI,1),i%NNBIOMASS,SIZE(i%XLAI,2)))
428  WHERE(i%XLAI(:,:)/=xundef)
429  i%XBIOMASS(:,1,:) = i%XLAI(:,:) * i%XBSLAI(:,:)
430  ELSEWHERE
431  i%XBIOMASS(:,1,:) = 0.0
432  ENDWHERE
433 !
434 ELSEIF (i%CPHOTO == 'NIT' .OR. i%CPHOTO == 'NCB') THEN
435 !
436  CALL prep_hor_isba_cc_field(dtco, u, &
437  ig, i, &
438  hprogram,'BIOMASS ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
439 !
440 ENDIF
441 !
442 !-------------------------------------------------------------------------------------
443 !
444 !* 8. Isba-CC prognostic fields
445 !
446 IF (i%CRESPSL == 'CNT') THEN
447 !
448 !* 8.1 Litter
449 !
450  CALL prep_hor_isba_cc_field(dtco, u, &
451  ig, i, &
452  hprogram,'LITTER ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
453 !
454 !* 8.2 Soil carbon
455 !
456  CALL prep_hor_isba_cc_field(dtco, u, &
457  ig, i, &
458  hprogram,'SOILCARB',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
459 !
460 !* 8.2 lignin
461 !
462  CALL prep_hor_isba_cc_field(dtco, u, &
463  ig, i, &
464  hprogram,'LIGNIN ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype)
465 !
466 ENDIF
467 !
468 !-------------------------------------------------------------------------------------
470 !-------------------------------------------------------------------------------------
471 !
472 !* 10. Preparation of canopy air variables
473 !
474 !
475 i%LCANOPY = lisba_canopy
476 IF (i%LCANOPY) CALL prep_isba_canopy(icp, ig)
477 !
478 IF (lhook) CALL dr_hook('PREP_ISBA',1,zhook_handle)
479 !
480 !-------------------------------------------------------------------------------------
481 !
482 END SUBROUTINE prep_isba
subroutine clean_prep_output_grid
subroutine prep_ver_isba(I)
subroutine init_snow_lw(PEMISSN, TPSNOW)
Definition: init_snow_lw.F90:6
subroutine prep_hor_isba_field(DTCO, IG, I, UG, U, USS, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, OKEY)
integer function vegtype_to_patch(IVEGTYPE, INPATCH)
subroutine prep_isba(DTCO, ICP, IG, I, UG, U, USS, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
Definition: prep_isba.F90:6
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine prep_hor_isba_cc_field(DTCO, U, IG, I, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE)
subroutine prep_perm_snow(I, TPSNOW, PTG, PPERM_SNOW_FRAC, KSNOW)
subroutine prep_isba_canopy(ICP, IG)
subroutine prep_output_grid(UG, U, KLUOUT, HGRID, PGRID_PAR, PLAT, PLON)
subroutine averaged_albedo_emis_isba(I, OFLOOD, HALBEDO, PZENITH, PVEG, PZ0, PLAI, OMEB_PATCH, PGNDLITTER, PZ0LITTER, PLAIGV, PH_VEG, PTV, PTG1, PPATCH, PSW_BANDS, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PEMIS_ECO, TPSNOW, PALBNIR_ECO, PALBVIS_ECO, PALBUV_ECO, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, PDIR_SW, PSCA_SW)