SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
read_pgd_isban.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 read_pgd_isba_n (CHI, DTCO, DTI, DTZ, DGU, GB, IG, I, &
7  ug, u, sv, &
8  hprogram,oland_use)
9 ! #########################################
10 !
11 !!**** *READ_PGD_ISBA_n* - routine to initialise ISBA physiographic variables
12 !!
13 !! PURPOSE
14 !! -------
15 !!
16 !!** METHOD
17 !! ------
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !! V. Masson *Meteo France*
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 01/2003
37 !! P. Le Moigne 12/2004 : add type of photosynthesis
38 !! B. Decharme 2008 : add XWDRAIN
39 !! B. Decharme 06/2009 : add topographic index statistics
40 !! A.L. Gibelin 04/2009 : dimension NBIOMASS for ISBA-A-gs
41 !! B. Decharme 07/2012 : files of data for permafrost area and for SOC top and sub soil
42 !! 11/2013 : same for groundwater distribution
43 !! 11/2014 : Read XSOILGRID as a series of real
44 !! P. Samuelsson 10/2014 : MEB
45 !-------------------------------------------------------------------------------
46 !
47 !* 0. DECLARATIONS
48 ! ------------
49 !
50 !
51 USE modd_ch_isba_n, ONLY : ch_isba_t
53 USE modd_data_isba_n, ONLY : data_isba_t
54 USE modd_data_tsz0_n, ONLY : data_tsz0_t
56 USE modd_gr_biog_n, ONLY : gr_biog_t
57 USE modd_isba_grid_n, ONLY : isba_grid_t
58 USE modd_isba_n, ONLY : isba_t
60 USE modd_surf_atm_n, ONLY : surf_atm_t
61 USE modd_sv_n, ONLY : sv_t
62 !
64 !
65 USE modd_data_cover_par, ONLY : jpcover
66 !
67 USE modd_surf_par, ONLY : xundef
68 USE modd_isba_par, ONLY : xoptimgrid
69 !
71 !
72 USE modi_init_io_surf_n
73 USE modi_end_io_surf_n
74 !
76 USE modi_read_grid
77 USE modi_read_lcover
78 USE modi_read_pgd_isba_par_n
79 USE modi_read_pgd_tsz0_par_n
80 !
81 USE yomhook ,ONLY : lhook, dr_hook
82 USE parkind1 ,ONLY : jprb
83 !
84 USE modi_get_type_dim_n
85 USE modi_read_lecoclimap
86 !
87 USE modi_abor1_sfx
88 !
89 USE modi_get_luout
91 USE modi_get_surf_mask_n
92 !
93 IMPLICIT NONE
94 !
95 !* 0.1 Declarations of arguments
96 ! -------------------------
97 !
98 !
99 TYPE(ch_isba_t), INTENT(INOUT) :: chi
100 TYPE(data_cover_t), INTENT(INOUT) :: dtco
101 TYPE(data_isba_t), INTENT(INOUT) :: dti
102 TYPE(data_tsz0_t), INTENT(INOUT) :: dtz
103 TYPE(diag_surf_atm_t), INTENT(INOUT) :: dgu
104 TYPE(gr_biog_t), INTENT(INOUT) :: gb
105 TYPE(isba_grid_t), INTENT(INOUT) :: ig
106 TYPE(isba_t), INTENT(INOUT) :: i
107 TYPE(surf_atm_grid_t), INTENT(INOUT) :: ug
108 TYPE(surf_atm_t), INTENT(INOUT) :: u
109 TYPE(sv_t), INTENT(INOUT) :: sv
110 !
111  CHARACTER(LEN=6), INTENT(IN) :: hprogram ! calling program
112 LOGICAL, INTENT(IN) :: oland_use !
113 !
114 !* 0.2 Declarations of local variables
115 ! -------------------------------
116 !
117 INTEGER, DIMENSION(:), POINTER :: imask ! mask for packing from complete field to nature field
118 !
119 REAL, DIMENSION(:,:), ALLOCATABLE :: zwork
120 !
121  CHARACTER(LEN=12) :: yrecfm ! Name of the article to be read
122  CHARACTER(LEN=4 ) :: ylvl
123 !
124 INTEGER :: ilu ! expected physical size of full surface array
125 INTEGER :: iluout ! output listing logical unit
126 INTEGER :: iresp ! Error code after redding
127 INTEGER :: jlayer ! loop counter on layers
128 INTEGER :: iversion, ibugfix ! surface version
129 !
130 INTEGER :: isize_lmeb_patch ! Number of patches with MEB=true
131 !
132 REAL(KIND=JPRB) :: zhook_handle
133 !
134 !-------------------------------------------------------------------------------
135 !
136 !* 1D physical dimension
137 !
138 IF (lhook) CALL dr_hook('READ_PGD_ISBA_N',0,zhook_handle)
139 yrecfm='SIZE_NATURE'
140  CALL get_type_dim_n(dtco, u, &
141  'NATURE',ig%NDIM)
142 !
143 yrecfm='VERSION'
144  CALL read_surf(&
145  hprogram,yrecfm,iversion,iresp)
146 !
147 yrecfm='BUG'
148  CALL read_surf(&
149  hprogram,yrecfm,ibugfix,iresp)
150 !
151 !* 2. Dimension initializations:
152 ! -------------------------
153 !
154 !* soil scheme
155 !
156 yrecfm='ISBA'
157  CALL read_surf(&
158  hprogram,yrecfm,i%CISBA,iresp)
159 !
160 IF (iversion>=7) THEN
161  !
162  !* Pedo-transfert function
163  !
164  yrecfm='PEDOTF'
165  CALL read_surf(&
166  hprogram,yrecfm,i%CPEDOTF,iresp)
167  !
168 ELSE
169  i%CPEDOTF = 'CH78'
170 ENDIF
171 !
172 !* type of photosynthesis
173 !
174 yrecfm='PHOTO'
175  CALL read_surf(&
176  hprogram,yrecfm,i%CPHOTO,iresp)
177 !
178 !* new radiative transfert
179 !
180 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=2) THEN
181  !
182  yrecfm='TR_ML'
183  CALL read_surf(&
184  hprogram,yrecfm,i%LTR_ML,iresp)
185  !
186 ELSE
187  i%LTR_ML = .false.
188 ENDIF
189 !
190 !* threshold to remove little fractions of patches
191 !
192 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) THEN
193  !
194  yrecfm='RM_PATCH'
195  CALL read_surf(&
196  hprogram,yrecfm,i%XRM_PATCH,iresp)
197  !
198 ELSE
199  i%XRM_PATCH = 0.0
200 ENDIF
201 !
202 !* number of soil layers
203 !
204 yrecfm='GROUND_LAYER'
205  CALL read_surf(&
206  hprogram,yrecfm,i%NGROUND_LAYER,iresp)
207 !
208 !* Reference grid for DIF
209 !
210 IF(i%CISBA=='DIF') THEN
211  ALLOCATE(i%XSOILGRID(i%NGROUND_LAYER))
212  i%XSOILGRID=xundef
213  IF (iversion>=8) THEN
214  DO jlayer=1,i%NGROUND_LAYER
215  WRITE(ylvl,'(I4)') jlayer
216  yrecfm='SOILGRID'//adjustl(ylvl(:len_trim(ylvl)))
217  CALL read_surf(&
218  hprogram,yrecfm,i%XSOILGRID(jlayer),iresp)
219  ENDDO
220  ELSEIF (iversion==7 .AND. ibugfix>=2) THEN
221  yrecfm='SOILGRID'
222  CALL read_surf(&
223  hprogram,yrecfm,i%XSOILGRID,iresp,hdir='-')
224  ELSE
225  i%XSOILGRID(1:i%NGROUND_LAYER)=xoptimgrid(1:i%NGROUND_LAYER)
226  ENDIF
227 ELSE
228  ALLOCATE(i%XSOILGRID(0))
229 ENDIF
230 !
231 !* number of biomass pools
232 !
233 IF (iversion>=6) THEN
234  yrecfm='NBIOMASS'
235  CALL read_surf(&
236  hprogram,yrecfm,i%NNBIOMASS,iresp)
237 ELSE
238  SELECT CASE (i%CPHOTO)
239  CASE ('AGS','LAI','AST','LST')
240  i%NNBIOMASS = 1
241  CASE ('NIT')
242  i%NNBIOMASS = 3
243  CASE ('NCB')
244  i%NNBIOMASS = 6
245  END SELECT
246 ENDIF
247 !
248 !* number of tiles
249 !
250 yrecfm='PATCH_NUMBER'
251  CALL read_surf(&
252  hprogram,yrecfm,i%NPATCH,iresp)
253 !
254 !* logical vector indicating for which patches MEB should be applied
255 !
256 ALLOCATE(i%LMEB_PATCH(i%NPATCH))
257 !
258 IF (iversion>=8) THEN
259 !
260  yrecfm='MEB_PATCH'
261  CALL read_surf(hprogram,yrecfm,i%LMEB_PATCH(:),iresp,hdir='-')
262 !
263  isize_lmeb_patch = count(i%LMEB_PATCH(:))
264 !
265  IF (isize_lmeb_patch>0)THEN
266  yrecfm='FORC_MEASURE'
267  CALL read_surf(hprogram,yrecfm,i%LFORC_MEASURE,iresp)
268  yrecfm='MEB_LITTER'
269  CALL read_surf(hprogram,yrecfm,i%LMEB_LITTER,iresp)
270  yrecfm='MEB_GNDRES'
271  CALL read_surf(hprogram,yrecfm,i%LMEB_GNDRES,iresp)
272 
273  ELSE
274  i%LFORC_MEASURE=.false.
275  i%LMEB_LITTER =.false.
276  i%LMEB_GNDRES =.false.
277  ENDIF
278 !
279 ELSE
280  i%LMEB_PATCH(:)=.false.
281  i%LFORC_MEASURE=.false.
282  i%LMEB_LITTER =.false.
283  i%LMEB_GNDRES =.false.
284 ENDIF
285 !
286 !
287 !* 3. Physiographic data fields:
288 ! -------------------------
289 !
290 !
291 !* 3.1 Cover classes :
292 ! -------------
293 !
294 ALLOCATE(i%LCOVER(jpcover))
295  CALL read_lcover(&
296  hprogram,i%LCOVER)
297 !
298 ALLOCATE(i%XCOVER(ig%NDIM,count(i%LCOVER)))
299  CALL read_surf_cov(&
300  hprogram,'COVER',i%XCOVER(:,:),i%LCOVER,iresp)
301 !
302 !* 3.2 Orography :
303 ! ---------
304 !
305 !
306 ALLOCATE(i%XZS(ig%NDIM))
307 yrecfm='ZS'
308  CALL read_surf(&
309  hprogram,yrecfm,i%XZS(:),iresp)
310 !
311 !
312 !* latitude, longitude, mesh size, and heading of JP axis (deg from N clockwise)
313 !
314 ALLOCATE(ig%XLAT (ig%NDIM))
315 ALLOCATE(ig%XLON (ig%NDIM))
316 ALLOCATE(ig%XMESH_SIZE (ig%NDIM))
317 ALLOCATE(i%XZ0EFFJPDIR(ig%NDIM))
318  CALL read_grid(&
319  hprogram,ig%CGRID,ig%XGRID_PAR,ig%XLAT,ig%XLON,ig%XMESH_SIZE,iresp,i%XZ0EFFJPDIR)
320 !
321 !* clay fraction : attention, seul un niveau est present dans le fichier
322 !* on rempli tout les niveaux de XCLAY avec les valeurs du fichiers
323 !
324 ALLOCATE(i%XCLAY(ig%NDIM,i%NGROUND_LAYER))
325 yrecfm='CLAY'
326  CALL read_surf(&
327  hprogram,yrecfm,i%XCLAY(:,1),iresp)
328 DO jlayer=2,i%NGROUND_LAYER
329  i%XCLAY(:,jlayer)=i%XCLAY(:,1)
330 END DO
331 !
332 !* sand fraction
333 !
334 ALLOCATE(i%XSAND(ig%NDIM,i%NGROUND_LAYER))
335 yrecfm='SAND'
336  CALL read_surf(&
337  hprogram,yrecfm,i%XSAND(:,1),iresp)
338 DO jlayer=2,i%NGROUND_LAYER
339  i%XSAND(:,jlayer)=i%XSAND(:,1)
340 END DO
341 !
342 !* Soil organic carbon profile
343 !
344 IF (iversion>7 .OR. (iversion==7 .AND. ibugfix>=3)) THEN
345  yrecfm='SOCP'
346  CALL read_surf(&
347  hprogram,yrecfm,i%LSOCP,iresp)
348 ELSE
349  i%LSOCP=.false.
350 ENDIF
351 !
352 IF(i%LSOCP)THEN
353 !
354  ALLOCATE(i%XSOC (ig%NDIM,i%NGROUND_LAYER))
355 !
356  yrecfm='SOC_TOP'
357  CALL read_surf(&
358  hprogram,yrecfm,i%XSOC(:,1),iresp)
359  yrecfm='SOC_SUB'
360  CALL read_surf(&
361  hprogram,yrecfm,i%XSOC(:,2),iresp)
362 !
363  DO jlayer=2,i%NGROUND_LAYER
364  i%XSOC (:,jlayer)=i%XSOC (:,2)
365  END DO
366 !
367 ELSE
368 !
369  ALLOCATE(i%XSOC (0,1))
370 !
371 ENDIF
372 !
373 !* permafrost distribution
374 !
375 IF (iversion>7 .OR. (iversion==7 .AND. ibugfix>=3)) THEN
376  yrecfm='PERMAFROST'
377  CALL read_surf(&
378  hprogram,yrecfm,i%LPERM,iresp)
379 ELSE
380  i%LPERM=.false.
381 ENDIF
382 !
383 IF(i%LPERM)THEN
384 !
385  ALLOCATE(i%XPERM (ig%NDIM))
386 !
387  yrecfm='PERM'
388  CALL read_surf(&
389  hprogram,yrecfm,i%XPERM(:),iresp)
390 !
391 ELSE
392 !
393  ALLOCATE(i%XPERM (0))
394 !
395 ENDIF
396 !
397 !* groundwater distribution
398 !
399 IF (iversion>=8) THEN
400  yrecfm='GWKEY'
401  CALL read_surf(&
402  hprogram,yrecfm,i%LGW,iresp)
403 ELSE
404  i%LGW=.false.
405 ENDIF
406 !
407 IF(i%LGW)THEN
408 !
409  ALLOCATE(i%XGW (ig%NDIM))
410 !
411  yrecfm='GWFRAC'
412  CALL read_surf(&
413  hprogram,yrecfm,i%XGW(:),iresp)
414  WHERE(i%XGW(:)==xundef)i%XGW(:)=0.0
415 !
416 ELSE
417 !
418  ALLOCATE(i%XGW (0))
419 !
420 ENDIF
421 !
422 IF (iversion>7 .OR. (iversion==7 .AND. ibugfix>=3)) THEN
423  yrecfm='NO'
424  CALL read_surf(&
425  hprogram,yrecfm,i%LNOF,iresp)
426 ELSE
427  i%LNOF = .false.
428 ENDIF
429 !
430 !SOILNOX
431 !
432 IF (chi%LCH_NO_FLUX) THEN
433  !
434  IF (i%LNOF) THEN
435  !
436  ALLOCATE(i%XPH(ig%NDIM))
437  yrecfm='PH'
438  CALL read_surf(&
439  hprogram,yrecfm,i%XPH(:),iresp)
440  !
441  ALLOCATE(i%XFERT(ig%NDIM))
442  yrecfm='FERT'
443  CALL read_surf(&
444  hprogram,yrecfm,i%XFERT(:),iresp)
445  !
446  ELSE
447  CALL abor1_sfx("READ_PGD_ISBAn: WITH LCH_NO_FLUX=T, PH AND FERT FIELDS ARE GIVEN AT PGD STEP")
448  ENDIF
449  !
450 ELSE
451  ALLOCATE(i%XPH (0))
452  ALLOCATE(i%XFERT(0))
453 END IF
454 !
455 !* subgrid-scale orography parameters to compute dynamical roughness length
456 !
457 ALLOCATE(i%XAOSIP(ig%NDIM))
458 yrecfm='AOSIP'
459  CALL read_surf(&
460  hprogram,yrecfm,i%XAOSIP,iresp)
461 !
462 ALLOCATE(i%XAOSIM(ig%NDIM))
463 yrecfm='AOSIM'
464  CALL read_surf(&
465  hprogram,yrecfm,i%XAOSIM,iresp)
466 
467 ALLOCATE(i%XAOSJP(ig%NDIM))
468 yrecfm='AOSJP'
469  CALL read_surf(&
470  hprogram,yrecfm,i%XAOSJP,iresp)
471 !
472 ALLOCATE(i%XAOSJM(ig%NDIM))
473 yrecfm='AOSJM'
474  CALL read_surf(&
475  hprogram,yrecfm,i%XAOSJM,iresp)
476 !
477 ALLOCATE(i%XHO2IP(ig%NDIM))
478 yrecfm='HO2IP'
479  CALL read_surf(&
480  hprogram,yrecfm,i%XHO2IP,iresp)
481 !
482 ALLOCATE(i%XHO2IM(ig%NDIM))
483 yrecfm='HO2IM'
484  CALL read_surf(&
485  hprogram,yrecfm,i%XHO2IM,iresp)
486 !
487 ALLOCATE(i%XHO2JP(ig%NDIM))
488 yrecfm='HO2JP'
489  CALL read_surf(&
490  hprogram,yrecfm,i%XHO2JP,iresp)
491 !
492 ALLOCATE(i%XHO2JM(ig%NDIM))
493 yrecfm='HO2JM'
494  CALL read_surf(&
495  hprogram,yrecfm,i%XHO2JM,iresp)
496 !
497 !* orographic parameter to compute effective surface of energy exchanges
498 !
499 ALLOCATE(i%XSSO_SLOPE(ig%NDIM))
500 yrecfm='SSO_SLOPE'
501  CALL read_surf(&
502  hprogram,yrecfm,i%XSSO_SLOPE,iresp)
503 !
504 !* orographic standard deviation for subgrid-scale orographic drag
505 !
506 ALLOCATE(i%XSSO_STDEV(ig%NDIM))
507 yrecfm='SSO_STDEV'
508  CALL read_surf(&
509  hprogram,yrecfm,i%XSSO_STDEV(:),iresp)
510 !
511 !* orographic runoff coefficient
512 !
513 ALLOCATE(i%XRUNOFFB(ig%NDIM))
514 yrecfm='RUNOFFB'
515  CALL read_surf(&
516  hprogram,yrecfm,i%XRUNOFFB,iresp)
517 !
518 !* subgrid drainage coefficient
519 !
520 ALLOCATE(i%XWDRAIN(ig%NDIM))
521 IF (iversion<=3) THEN
522  i%XWDRAIN = 0.
523 ELSE
524  yrecfm='WDRAIN'
525  CALL read_surf(&
526  hprogram,yrecfm,i%XWDRAIN,iresp)
527 ENDIF
528 !
529 !* topographic index statistics
530 !
531 IF(i%CRUNOFF=='SGH ' .AND. iversion>=5) THEN
532 !
533  yrecfm='CTI'
534  CALL read_surf(&
535  hprogram,yrecfm,i%LCTI,iresp)
536 !
537  IF (.NOT.i%LCTI) CALL abor1_sfx("READ_PGD_ISBA_n:WITH CRUNOFF=SGH, CTI MAPS MUST BE GIVEN TO PGD")
538  !
539  ALLOCATE(i%XTI_MIN(ig%NDIM))
540  ALLOCATE(i%XTI_MAX(ig%NDIM))
541  ALLOCATE(i%XTI_MEAN(ig%NDIM))
542  ALLOCATE(i%XTI_STD(ig%NDIM))
543  ALLOCATE(i%XTI_SKEW(ig%NDIM))
544 !
545  yrecfm='TI_MIN'
546  CALL read_surf(&
547  hprogram,yrecfm,i%XTI_MIN,iresp)
548 !
549  yrecfm='TI_MAX'
550  CALL read_surf(&
551  hprogram,yrecfm,i%XTI_MAX,iresp)
552 !
553  yrecfm='TI_MEAN'
554  CALL read_surf(&
555  hprogram,yrecfm,i%XTI_MEAN,iresp)
556 !
557  yrecfm='TI_STD'
558  CALL read_surf(&
559  hprogram,yrecfm,i%XTI_STD,iresp)
560 !
561  yrecfm='TI_SKEW'
562  CALL read_surf(&
563  hprogram,yrecfm,i%XTI_SKEW,iresp)
564 !
565 ELSE
566 !
567  ALLOCATE(i%XTI_MIN(0))
568  ALLOCATE(i%XTI_MAX(0))
569  ALLOCATE(i%XTI_MEAN(0))
570  ALLOCATE(i%XTI_STD(0))
571  ALLOCATE(i%XTI_SKEW(0))
572 !
573 ENDIF
574 !
575 !-------------------------------------------------------------------------------
576 !
577 !* biogenic chemical emissions
578 !
579 IF (chi%LCH_BIO_FLUX) THEN
580  ALLOCATE(zwork(u%NSIZE_FULL,1))
581  !
582  CALL end_io_surf_n(hprogram)
583  CALL init_io_surf_n(dtco, dgu, u, &
584  hprogram,'FULL ','SURF ','READ ')
585  !
586  CALL get_luout(hprogram,iluout)
587  ALLOCATE(imask(ig%NDIM))
588  ilu=0
589  CALL get_surf_mask_n(dtco, u, &
590  'NATURE',ig%NDIM,imask,ilu,iluout)
591  ALLOCATE(gb%XISOPOT(ig%NDIM))
592  ALLOCATE(gb%XMONOPOT(ig%NDIM))
593  !
594  zwork(:,:) = 0.
595  yrecfm='E_ISOPOT'
596  CALL read_surf(&
597  hprogram,yrecfm,zwork,iresp)
598  CALL pack_same_rank(imask,zwork(:,1),gb%XISOPOT(:))
599  !
600  zwork(:,:) = 0.
601  yrecfm='E_MONOPOT'
602  CALL read_surf(&
603  hprogram,yrecfm,zwork,iresp)
604  CALL pack_same_rank(imask,zwork(:,1),gb%XMONOPOT(:))
605  !
606  CALL end_io_surf_n(hprogram)
607  CALL init_io_surf_n(dtco, dgu, u, &
608  hprogram,'NATURE','ISBA ','READ ')
609  !
610  DEALLOCATE(zwork)
611 ELSE
612  ALLOCATE(gb%XISOPOT (0))
613  ALLOCATE(gb%XMONOPOT(0))
614 END IF
615 !
616 !-------------------------------------------------------------------------------
617 !
618 !* 4. Physiographic data fields not to be computed by ecoclimap
619 ! ---------------------------------------------------------
620 !
621  CALL read_lecoclimap(&
622  hprogram,i%LECOCLIMAP)
623 !
624  CALL read_pgd_isba_par_n(dtco, u, &
625  dti, ig, i, &
626  hprogram,ig%NDIM,oland_use)
627 IF (u%CNATURE == 'TSZ0') CALL read_pgd_tsz0_par_n(&
628  dtz, &
629  hprogram)
630 !
631 IF (lhook) CALL dr_hook('READ_PGD_ISBA_N',1,zhook_handle)
632 !-------------------------------------------------------------------------------
633 !
634 END SUBROUTINE read_pgd_isba_n
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine read_grid(HPROGRAM, HGRID, PGRID_PAR, PLAT, PLON, PMESH_SIZE, KRESP, PDIR)
Definition: read_grid.F90:6
subroutine, public read_surf_cov(HPROGRAM, HREC, PFIELD, OFLAG, KRESP, HCOMMENT, HDIR)
subroutine read_pgd_isba_par_n(DTCO, U, DTI, IG, I, HPROGRAM, KSIZE, OLAND_USE, HDIR)
subroutine read_pgd_tsz0_par_n(DTZ, HPROGRAM)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:6
subroutine get_surf_mask_n(DTCO, U, HTYPE, KDIM, KMASK, KLU, KLUOUT)
subroutine read_lcover(HPROGRAM, OCOVER)
Definition: read_lcover.F90:6
subroutine read_pgd_isba_n(CHI, DTCO, DTI, DTZ, DGU, GB, IG, I, UG, U, SV, HPROGRAM, OLAND_USE)
subroutine end_io_surf_n(HPROGRAM)
Definition: end_io_surfn.F90:6
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:6
subroutine read_lecoclimap(HPROGRAM, OECOCLIMAP)