SURFEX v8.1
General documentation of Surfex
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, UG, U, USS, GCP, SB, IG, IO, S, NK, NP, NPE, &
7  HPROGRAM,HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,YDCTL)
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 !! P. Marguinaud10/2014, Support for a 2-part PREP
49 !!------------------------------------------------------------------
50 !
53 USE modd_surf_atm_n, ONLY : surf_atm_t
54 USE modd_sso_n, ONLY : sso_t
56 !
57 USE modd_canopy_n, ONLY : canopy_t
58 USE modd_sfx_grid_n, ONLY : grid_t
62 !
65 !
66 USE modd_data_cover_par, ONLY : nvt_snow
67 USE modd_snow_par, ONLY : xemissn
68 USE modd_isba_par, ONLY : xwgmin
69 USE modd_co2v_par, ONLY : xanfminit
70 USE modd_surf_par, ONLY : xundef
71 !
72 USE modd_read_namelist, ONLY : lnam_read
73 USE modd_surf_atm, ONLY : lvertshift
74 !
75 USE modd_deepsoil, ONLY : lphysdomc
76 USE modd_csts, ONLY : xtt, xg, xlmtt
77 USE modd_prep, ONLY : xzs_ls
78 
80 !
81 USE mode_prep_ctl, ONLY : prep_ctl
82 !
83 USE modi_prep_hor_isba_field
84 USE modi_prep_ver_isba
85 USE modi_prep_output_grid
86 USE modi_get_luout
87 USE modi_prep_sbl
88 USE modi_vegtype_to_patch
89 !
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
94 USE modi_soil_albedo
95 !
96 USE modi_clean_prep_output_grid
97 !
98 USE yomhook ,ONLY : lhook, dr_hook
99 USE parkind1 ,ONLY : jprb
100 !
101 IMPLICIT NONE
102 !
103 !* 0.1 declarations of arguments
104 !
105 !
106 TYPE(data_cover_t), INTENT(INOUT) :: DTCO
107 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
108 TYPE(surf_atm_t), INTENT(INOUT) :: U
109 TYPE(sso_t), INTENT(INOUT) :: USS
110 TYPE(grid_conf_proj_t),INTENT(INOUT) :: GCP
111 !
112 TYPE(canopy_t), INTENT(INOUT) :: SB
113 TYPE(grid_t), INTENT(INOUT) :: IG
114 TYPE(isba_options_t), INTENT(INOUT) :: IO
115 TYPE(isba_s_t), INTENT(INOUT) :: S
116 TYPE(isba_nk_t), INTENT(INOUT) :: NK
117 TYPE(isba_np_t), INTENT(INOUT) :: NP
118 TYPE(isba_npe_t), INTENT(INOUT) :: NPE
119 !
120 type(prep_ctl), INTENT(INOUT) :: ydctl
121 !
122  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
123  CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! name of the Atmospheric file
124  CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file
125  CHARACTER(LEN=28), INTENT(IN) :: HPGDFILE ! name of the Atmospheric file
126  CHARACTER(LEN=6), INTENT(IN) :: HPGDFILETYPE! type of the Atmospheric file
127 !
128 !* 0.2 declarations of local variables
129 !
130 TYPE(isba_k_t), POINTER :: KK
131 TYPE(isba_p_t), POINTER :: PK
132 TYPE(isba_pe_t), POINTER :: PEK
133 !
134 INTEGER :: ILUOUT, INI
135 INTEGER :: JP, JL, JJ
136 REAL :: ZWORK, ZLOG, ZWTOT, ZMATPOT, ZWL
137 !
138 REAL, DIMENSION(1) :: ZSW_BANDS ! middle wavelength of each band
139 REAL, DIMENSION(U%NSIZE_NATURE,IO%NPATCH) :: ZDIR_ALB, ZTG1 ! direct albedo for each band
140 REAL, DIMENSION(U%NSIZE_NATURE,IO%NPATCH) :: ZSCA_ALB ! diffuse albedo for each band
141 REAL, DIMENSION(U%NSIZE_NATURE) :: ZEMIS ! emissivity
142 REAL, DIMENSION(U%NSIZE_NATURE) :: ZZENITH ! solar zenithal angle
143 REAL, DIMENSION(U%NSIZE_NATURE) :: ZTSURF ! surface effective temperature
144 !
145 LOGICAL :: GPERMSNOW
146 LOGICAL :: GTEMP2WGI
147 LOGICAL :: GWG
148 LOGICAL :: GWGI
149 LOGICAL :: GTG
150 !
151 REAL :: SMAX
152 !
153 INTEGER :: ISIZE_LMEB_PATCH, ISNOW
154 !
155 REAL(KIND=JPRB) :: ZHOOK_HANDLE
156 !
157 !-------------------------------------------------------------------------------------
158 !
159 IF (lhook) CALL dr_hook('PREP_ISBA',0,zhook_handle)
160 !
161 !* 1. Default of configuration
162 !
163 gpermsnow = .true.
164 gwg = .true.
165 gwgi = .true.
166 gtg = .true.
167 !
168 isize_lmeb_patch=count(io%LMEB_PATCH(:))
169 !
170 !* 1.1 Default
171 !
172  CALL get_luout(hprogram,iluout)
173 !
174  CALL prep_output_grid(ug%G, ig, u%NSIZE_FULL, iluout)
175 !
176 !-------------------------------------------------------------------------------------
177 !
178 !* 2. Reading and horizontal interpolations
179 !
180 !
181 !* 2.0 Large scale orography
182 !
183  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
184  hprogram,'ZS ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
185 !
186 !* 2.1 Soil Water reservoirs
187 !
188  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
189  hprogram,'WG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl,gwg)
190 !
191 !* 2.2 Soil ice reservoirs
192 !
193  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
194  hprogram,'WGI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl,gwgi)
195 !
196 !* 2.3 Leaves interception water reservoir
197 !
198  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
199  hprogram,'WR ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
200 !
201 !* 2.4 Temperature profile
202 !
203  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
204  hprogram,'TG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl,gtg)
205 !
206 !* 2.5 Snow variables
207 !
208  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
209  hprogram,'SN_VEG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl,gpermsnow)
210 !
211 !* 2.6 LAI
212 !
213  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
214  hprogram,'LAI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
215 !
216 !* 2.7 GLACIER
217 !
218 IF(io%LGLACIER)THEN
219  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
220  hprogram,'ICE_STO',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
221 ENDIF
222 !
223 !* 2.8 Canopy vegetation temperature and interception reservoirs and air variables
224 !
225 IF(isize_lmeb_patch>0)THEN
226  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
227  hprogram,'TV ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
228  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
229  hprogram,'TL ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
230  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
231  hprogram,'WRL ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
232  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
233  hprogram,'WRLI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
234  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
235  hprogram,'WRVN ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
236  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
237  hprogram,'TC ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
238  CALL prep_hor_isba_field(dtco, ug, u, uss, gcp, ig, io, s, nk, np, npe, s%TTIME, &
239  hprogram,'QC ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
240 ENDIF
241 !
242 !* 7. Isba-Ags prognostic fields
243 !
244 IF (io%CPHOTO == 'NIT' .OR. io%CPHOTO == 'NCB') THEN
245  CALL prep_hor_isba_cc_field(dtco, u, gcp, SIZE(ig%XLAT), io, s, nk, np, npe, &
246  hprogram,'BIOMASS ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
247 ENDIF
248 !
249 !* 8. Isba-CC prognostic fields
250 !
251 IF (io%CPHOTO/='NON' .AND. io%CRESPSL == 'CNT') THEN
252  !
253  !* 8.1 Litter
254  !
255  CALL prep_hor_isba_cc_field(dtco, u, gcp, SIZE(ig%XLAT), io, s, nk, np, npe, &
256  hprogram,'LITTER ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
257  !
258  !* 8.2 Soil carbon
259  !
260  CALL prep_hor_isba_cc_field(dtco, u, gcp, SIZE(ig%XLAT), io, s, nk, np, npe, &
261  hprogram,'SOILCARB',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
262  !
263  !* 8.2 lignin
264  !
265  CALL prep_hor_isba_cc_field(dtco, u, gcp, SIZE(ig%XLAT), io, s, nk, np, npe, &
266  hprogram,'LIGNIN ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,ydctl)
267 ENDIF
268 !
270 
271 IF (ydctl%LPART6) THEN
272 !-------------------------------------------------------------------------------------
273 !
274 !* 3. Physical limitation:
275 !
276  DO jp=1,io%NPATCH
277  pek => npe%AL(jp)
278  kk => nk%AL(jp)
279  !
280  ! No ice for force restore third layer:
281  IF (io%CISBA == '3-L') THEN
282  !
283  WHERE(pek%XWG(:,3) /= xundef)
284  pek%XWG(:,3) = min(pek%XWG(:,3)+ pek%XWGI(:,3),kk%XWSAT(:,3))
285  pek%XWGI(:,3) = 0.
286  END WHERE
287  ENDIF
288  !
289  ! Total water content should not exceed saturation:
290  WHERE(pek%XWG(:,:) /= xundef .AND. (pek%XWG(:,:) + pek%XWGI(:,:)) > kk%XWSAT(:,:) )
291  pek%XWGI(:,:) = kk%XWSAT(:,:) - pek%XWG(:,:)
292  END WHERE
293 
294  ENDDO
295 !
296 !-------------------------------------------------------------------------------------
297 !
298 !* 3. Vertical interpolations of all variables
299 !
300  IF(lvertshift)THEN
301  CALL prep_ver_isba(io, npe, s%XZS, np)
302  ENDIF
303 !
304  DEALLOCATE(xzs_ls)
305 !-------------------------------------------------------------------------------------
306 !
307 !* 4. Treatment of permanent snow
308 !
309  IF (gpermsnow.AND.lsnow_prep_perm) THEN
310  isnow = vegtype_to_patch(nvt_snow,io%NPATCH)
311  CALL prep_perm_snow(io, nk%AL(isnow), np%AL(isnow), npe%AL(isnow))
312  ENDIF
313 !
314  DO jp = 1,io%NPATCH
315  CALL init_snow_lw(xemissn,npe%AL(jp)%TSNOW)
316  ENDDO
317 !
318  IF (lphysdomc) THEN
319  DO jp = 1,io%NPATCH
320  npe%AL(jp)%TSNOW%WSNOW(:,:)=0.
321  ENDDO
322  ENDIF
323 !-------------------------------------------------------------------------------------
324 !
325 !* 4.b Possibility for setting an upper limit on the initial snow water equivalent field
326 !
327  IF (lswemax) THEN
328  DO jp = 1,io%NPATCH
329  smax = maxval(npe%AL(jp)%TSNOW%WSNOW(:,:))
330  WRITE(*,*) ' MAX(Snow content (kg/m2)): ', smax
331  WRITE(*,*) ' Set MAX to', xswemax, '(kg/m2)'
332  npe%AL(jp)%TSNOW%WSNOW(:,:) = min(npe%AL(jp)%TSNOW%WSNOW(:,:),xswemax)
333  smax = maxval(npe%AL(jp)%TSNOW%WSNOW(:,:))
334  WRITE(*,*) ' MAX(Snow content (kg/m2)): ', smax
335  ENDDO
336  ENDIF
337 !
338 !-------------------------------------------------------------------------------------
339 !
340 !* 5. coherence between soil temperature and liquid/solid water
341 !
342  gtemp2wgi=(gwg.OR.gwgi.OR.gtg)
343 !
344  IF (io%CISBA == 'DIF'.AND.gtemp2wgi) THEN
345  DO jp=1,io%NPATCH
346  pek => npe%AL(jp)
347  pk => np%AL(jp)
348  kk => nk%AL(jp)
349  !
350  DO jl=1,io%NGROUND_LAYER
351  !
352  DO jj=1,pk%NSIZE_P
353  !
354  IF(pek%XWG(jj,jl)/=xundef)THEN
355 !
356 ! total soil moisture
357  zwtot = pek%XWG(jj,jl)+pek%XWGI(jj,jl)
358  zwtot = min(zwtot,kk%XWSAT(jj,jl))
359 !
360 ! total matric potential
361 ! psi=mpotsat*(w/wsat)**(-bcoef)
362  zwork = zwtot/kk%XWSAT(jj,jl)
363  zlog = kk%XBCOEF(jj,jl)*log(zwork)
364  zmatpot = kk%XMPOTSAT(jj,jl)*exp(-zlog)
365 !
366 ! soil liquid water content computation
367 ! w=wsat*(psi/mpotsat)**(-1/bcoef)
368  zmatpot = min(kk%XMPOTSAT(jj,jl),xlmtt*(pek%XTG(jj,jl)-xtt)/(xg*pek%XTG(jj,jl)))
369  zwork = max(1.0,zmatpot/kk%XMPOTSAT(jj,jl))
370  zlog = log(zwork)
371  zwl = kk%XWSAT(jj,jl)*exp(-zlog/kk%XBCOEF(jj,jl))
372  zwl = max(zwl,xwgmin)
373  pek%XWG(jj,jl) = min(zwl,zwtot )
374 !
375 ! soil ice computation
376  pek%XWGI(jj,jl) = max(0.0,zwtot-pek%XWG(jj,jl))
377 !
378 ! supress numerical artefact
379  IF(pek%XTG(jj,jl)>=xtt)THEN
380  pek%XWG (jj,jl) = min(pek%XWG(jj,jl)+pek%XWGI(jj,jl),kk%XWSAT(jj,jl))
381  pek%XWGI(jj,jl) = 0.0
382  ENDIF
383 !
384  ENDIF
385  ENDDO
386  ENDDO
387  ENDDO
388  ENDIF
389 !
390 !-------------------------------------------------------------------------------------
391 !
392 !* 6. Half prognostic fields
393 ! The only variable used from the AVERAGED_ALBEDO_EMIS_ISBA call
394 ! is XTSRAD_NAT. All other variables are treated as dummies.
395 !
396  DO jp = 1,io%NPATCH
397  !
398  pek => npe%AL(jp)
399  pk => np%AL(jp)
400  kk => nk%AL(jp)
401  !
402  ALLOCATE(pek%XRESA(pk%NSIZE_P))
403  pek%XRESA = 100.
404  !
405  ALLOCATE(pek%XALBNIR(pk%NSIZE_P))
406  ALLOCATE(pek%XALBVIS(pk%NSIZE_P))
407  ALLOCATE(pek%XALBUV(pk%NSIZE_P))
408  pek%XALBNIR = 0.0
409  pek%XALBVIS = 0.0
410  pek%XALBUV = 0.0
411  !
412  ALLOCATE(pek%XALBNIR_SOIL(pk%NSIZE_P))
413  ALLOCATE(pek%XALBVIS_SOIL(pk%NSIZE_P))
414  ALLOCATE(pek%XALBUV_SOIL (pk%NSIZE_P))
415  CALL soil_albedo (io%CALBEDO, kk%XWSAT(:,1),pek%XWG(:,1), kk, pek, "ALL" )
416  !
417  ALLOCATE(pek%XPSN (pk%NSIZE_P))
418  ALLOCATE(pek%XPSNG (pk%NSIZE_P))
419  ALLOCATE(pek%XPSNV (pk%NSIZE_P))
420  ALLOCATE(pek%XPSNV_A(pk%NSIZE_P))
421  pek%XPSN = 0.0
422  pek%XPSNG = 0.0
423  pek%XPSNV = 0.0
424  pek%XPSNV_A = 0.0
425  ALLOCATE(kk%XDIR_ALB_WITH_SNOW(pk%NSIZE_P,1))
426  ALLOCATE(kk%XSCA_ALB_WITH_SNOW(pk%NSIZE_P,1))
427  !
428  ztg1(1:pk%NSIZE_P,jp) = pek%XTG(:,1)
429  !
430  ENDDO
431  !
432  ALLOCATE(s%XTSRAD_NAT(u%NSIZE_NATURE))
433  zzenith(:)=0.
434  zsw_bands(:)=0.
435  !
436  CALL averaged_albedo_emis_isba(io, s, nk, np, npe, &
437  zzenith, ztg1, zsw_bands, zdir_alb, zsca_alb, &
438  zemis, s%XTSRAD_NAT, ztsurf )
439  !
440  DO jp = 1,io%NPATCH
441  DEALLOCATE(npe%AL(jp)%XPSN)
442  DEALLOCATE(npe%AL(jp)%XPSNG)
443  DEALLOCATE(npe%AL(jp)%XPSNV)
444  DEALLOCATE(npe%AL(jp)%XPSNV_A)
445  DEALLOCATE(nk%AL(jp)%XDIR_ALB_WITH_SNOW)
446  DEALLOCATE(nk%AL(jp)%XSCA_ALB_WITH_SNOW)
447  ENDDO
448  !
449  !-------------------------------------------------------------------------------------
450  !
451  !* 7. Isba-Ags prognostic fields
452  !
453  IF (io%CPHOTO /= 'NON') THEN
454  !
455  DO jp = 1,io%NPATCH
456  !
457  pek => npe%AL(jp)
458  pk => np%AL(jp)
459  !
460  ALLOCATE(pek%XAN(pk%NSIZE_P))
461  pek%XAN = 0.
462  !
463  ALLOCATE(pek%XANDAY(pk%NSIZE_P))
464  pek%XANDAY = 0.
465  !
466  ALLOCATE(pek%XANFM(pk%NSIZE_P))
467  pek%XANFM = xanfminit
468  !
469  ALLOCATE(pek%XLE(pk%NSIZE_P))
470  pek%XLE = 0.
471  !
472  ALLOCATE(pek%XRESP_BIOMASS(pk%NSIZE_P,io%NNBIOMASS))
473  pek%XRESP_BIOMASS(:,:) = 0.
474  !
475  ENDDO
476  !
477  ENDIF
478  !
479  IF (io%CPHOTO == 'AST') THEN
480  !
481  DO jp = 1,io%NPATCH
482  !
483  pek => npe%AL(jp)
484  pk => np%AL(jp)
485  !
486  ALLOCATE(pek%XBIOMASS(pk%NSIZE_P,io%NNBIOMASS))
487  pek%XBIOMASS(:,:) = 0.
488  !
489  ENDDO
490  !
491  ENDIF
492 !
493 !-------------------------------------------------------------------------------------
494 !
495 !* 10. Preparation of canopy air variables
496 !
497 !
498  io%LCANOPY = lisba_canopy
499  IF (io%LCANOPY) CALL prep_sbl(ig%NDIM, sb)
500 !
501 ENDIF
502 !
503 IF (lhook) CALL dr_hook('PREP_ISBA',1,zhook_handle)
504 !
505 !-------------------------------------------------------------------------------------
506 !
507 END SUBROUTINE prep_isba
subroutine prep_sbl(KDIM, SB)
Definition: prep_sbl.F90:7
subroutine prep_isba(DTCO, UG, U, USS, GCP, SB, IG, IO, S, NK, NP, NPE, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, YDCTL)
Definition: prep_isba.F90:8
subroutine clean_prep_output_grid
real, dimension(:), allocatable xzs_ls
Definition: modd_prep.F90:45
subroutine prep_hor_isba_field(DTCO, UG, U, USS, GCP, IG, IO, S, NK, NP, NPE, TPTIME, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, YDCTL, OKEY)
subroutine init_snow_lw(PEMISSN, TPSNOW)
Definition: init_snow_lw.F90:7
integer function vegtype_to_patch(IVEGTYPE, INPATCH)
real, parameter xundef
subroutine prep_perm_snow(IO, KK, PK, PEK)
real, save xg
Definition: modd_csts.F90:55
integer, parameter jprb
Definition: parkind1.F90:32
subroutine prep_output_grid(UG, G, KSIZE_FULL, KLUOUT)
subroutine soil_albedo(HALBEDO, PWSAT, PWG1, KK, PEK, HBAND)
Definition: soil_albedo.F90:7
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
logical lhook
Definition: yomhook.F90:15
logical lsnow_prep_perm
subroutine averaged_albedo_emis_isba(IO, S, NK, NP, NPE, PZENITH, PTG1, PSW_BANDS, PDIR_ALB, PSC
logical lvertshift
subroutine prep_ver_isba(IO, NPE, PZS, NP)
real, save xtt
Definition: modd_csts.F90:66
real, save xlmtt
Definition: modd_csts.F90:72
subroutine prep_hor_isba_cc_field(DTCO, U, GCP, KLAT, IO, S, NK, NP, NPE, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, YDCTL)
static int count
Definition: memory_hook.c:21