1 !SURFEX_LIC Copyright 1994-2014 Meteo-France
2 !SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SURFEX_LIC for details. version 1.
6 SUBROUTINE PGD_ISBA(HPROGRAM,OECOCLIMAP)
7 ! ##############################################################
9 !!**** *PGD_ISBA* monitor for averaging and interpolations of ISBA physiographic fields
30 !! V. Masson Meteo-France
36 !! P. Le Moigne 12/2004 : add type of photosynthesis and correct computation
37 !! of ground layers number in diffusion case
38 !! P. Le Moigne 09/2005 : AGS modifs of L. Jarlan
39 !! B. Decharme 2008 : XWDRAIN
40 !! E. Martin 12/2008 : files of data for runoffb and wdrain
41 !! B. Decharme 06/2009 : files of data for topographic index
42 !! A.L. Gibelin 04/2009 : dimension NBIOMASS for ISBA-A-gs
44 !----------------------------------------------------------------------------
49 USE MODD_SURF_PAR, ONLY : XUNDEF, NUNDEF
50 USE MODD_PGD_GRID, ONLY : NL
51 USE MODD_PGDWORK, ONLY : CATYPE
52 USE MODD_DATA_COVER_PAR, ONLY : NVEGTYPE, JPCOVER
53 USE MODD_ISBA_n, ONLY : NPATCH, NGROUND_LAYER, NNBIOMASS, CISBA, &
54 CPEDOTF, XCOVER, LCOVER, XZS, &
55 XZ0EFFJPDIR, CPHOTO, LTR_ML, XRM_PATCH, &
56 XCLAY, XSAND, XSOC, LSOCP, LNOF, &
57 XRUNOFFB, XWDRAIN, LECOCLIMAP, &
58 XSOILGRID, LPERM, XPERM, XPH, XFERT, &
60 USE MODD_ISBA_GRID_n, ONLY : CGRID, XGRID_PAR, XLAT, XLON, XMESH_SIZE
62 USE MODD_ISBA_PAR, ONLY : NOPTIMLAYER, XOPTIMGRID
65 USE MODI_READ_NAM_PGD_ISBA
67 USE MODI_TEST_NAM_VAR_SURF
71 USE MODI_GET_SURF_SIZE_n
72 USE MODI_PACK_PGD_ISBA
74 USE MODI_WRITE_COVER_TEX_ISBA
75 USE MODI_WRITE_COVER_TEX_ISBA_PAR
76 USE MODI_PGD_TOPO_INDEX
79 USE MODI_CONVERT_COVER_ISBA
82 USE MODI_INIT_IO_SURF_n
83 USE MODI_END_IO_SURF_n
85 USE MODD_IO_SURF_ASC, ONLY : CFILEIN
88 USE MODD_IO_SURF_FA, ONLY : CFILEIN_FA
91 USE MODD_IO_SURF_LFI, ONLY : CFILEIN_LFI
94 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
95 USE PARKIND1 ,ONLY : JPRB
101 !* 0.1 Declaration of arguments
102 ! ------------------------
104 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes
105 LOGICAL, INTENT(IN) :: OECOCLIMAP ! T if parameters are computed with ecoclimap
106 ! ! F if all parameters must be specified
109 !* 0.2 Declaration of local variables
110 ! ------------------------------
112 INTEGER :: ILUOUT ! output listing logical unit
113 INTEGER :: JLAYER ! loop counter
114 INTEGER :: ILU ! number of points
115 REAL, DIMENSION(NL) :: ZAOSIP ! A/S i+ on all surface points
116 REAL, DIMENSION(NL) :: ZAOSIM ! A/S i- on all surface points
117 REAL, DIMENSION(NL) :: ZAOSJP ! A/S j+ on all surface points
118 REAL, DIMENSION(NL) :: ZAOSJM ! A/S j- on all surface points
119 REAL, DIMENSION(NL) :: ZHO2IP ! h/2 i+ on all surface points
120 REAL, DIMENSION(NL) :: ZHO2IM ! h/2 i- on all surface points
121 REAL, DIMENSION(NL) :: ZHO2JP ! h/2 j+ on all surface points
122 REAL, DIMENSION(NL) :: ZHO2JM ! h/2 j- on all surface points
123 REAL, DIMENSION(NL) :: ZSSO_SLOPE! subgrid slope on all surface points
124 INTEGER :: IRESP ! error code
126 !* 0.3 Declaration of namelists
127 ! ------------------------
130 INTEGER :: IPATCH ! number of patches
131 INTEGER :: IGROUND_LAYER ! number of soil layers
132 CHARACTER(LEN=3) :: YISBA ! ISBA option
133 CHARACTER(LEN=4) :: YPEDOTF ! Pedo transfert function for DIF
134 CHARACTER(LEN=3) :: YPHOTO ! photosynthesis option
135 LOGICAL :: GTR_ML ! new radiative transfert
136 REAL :: ZRM_PATCH ! threshold to remove little fractions of patches
137 CHARACTER(LEN=28) :: YSAND ! file name for sand fraction
138 CHARACTER(LEN=28) :: YCLAY ! file name for clay fraction
139 CHARACTER(LEN=28) :: YSOC_TOP ! file name for organic carbon top soil
140 CHARACTER(LEN=28) :: YSOC_SUB ! file name for organic carbon sub soil
141 CHARACTER(LEN=28) :: YCTI ! file name for topographic index
142 CHARACTER(LEN=28) :: YRUNOFFB ! file name for runoffb parameter
143 CHARACTER(LEN=28) :: YWDRAIN ! file name for wdrain parameter
144 CHARACTER(LEN=28) :: YPERM ! file name for permafrost distribution
145 CHARACTER(LEN=6) :: YSANDFILETYPE ! sand data file type
146 CHARACTER(LEN=6) :: YCLAYFILETYPE ! clay data file type
147 CHARACTER(LEN=6) :: YSOCFILETYPE ! organic carbon data file type
148 CHARACTER(LEN=6) :: YCTIFILETYPE ! topographic index data file type
149 CHARACTER(LEN=6) :: YRUNOFFBFILETYPE ! subgrid runoff data file type
150 CHARACTER(LEN=6) :: YWDRAINFILETYPE ! subgrid drainage data file type
151 CHARACTER(LEN=6) :: YPERMFILETYPE ! permafrost distribution data file type
152 REAL :: XUNIF_SAND ! uniform value of sand fraction (-)
153 REAL :: XUNIF_CLAY ! uniform value of clay fraction (-)
154 REAL :: XUNIF_SOC_TOP ! uniform value of organic carbon top soil (kg/m2)
155 REAL :: XUNIF_SOC_SUB ! uniform value of organic carbon sub soil (kg/m2)
156 REAL :: XUNIF_RUNOFFB ! uniform value of subgrid runoff coefficient
157 REAL :: XUNIF_WDRAIN ! uniform subgrid drainage parameter
158 REAL :: XUNIF_PERM ! uniform permafrost distribution
159 LOGICAL :: LIMP_SAND ! Imposed maps of Sand
160 LOGICAL :: LIMP_CLAY ! Imposed maps of Clay
161 LOGICAL :: LIMP_SOC ! Imposed maps of organic carbon
162 LOGICAL :: LIMP_CTI ! Imposed maps of topographic index statistics
163 LOGICAL :: LIMP_PERM ! Imposed maps of permafrost distribution
164 REAL, DIMENSION(150) :: ZSOILGRID ! Soil grid reference for DIF
165 CHARACTER(LEN=28) :: YPH ! file name for pH
166 CHARACTER(LEN=28) :: YFERT ! file name for fertilisation rate
167 CHARACTER(LEN=6) :: YPHFILETYPE ! pH data file type
168 CHARACTER(LEN=6) :: YFERTFILETYPE ! fertilisation data file type
169 REAL :: XUNIF_PH ! uniform value of pH
170 REAL :: XUNIF_FERT ! uniform value of fertilisation rate
172 REAL(KIND=JPRB) :: ZHOOK_HANDLE
174 !-------------------------------------------------------------------------------
176 IF (LHOOK) CALL DR_HOOK('PGD_ISBA',0,ZHOOK_HANDLE)
177 CALL GET_LUOUT(HPROGRAM,ILUOUT)
179 !-------------------------------------------------------------------------------
181 !* 2. Reading of namelist
182 ! -------------------
184 CALL READ_NAM_PGD_ISBA(HPROGRAM, IPATCH, IGROUND_LAYER, &
185 YISBA, YPEDOTF, YPHOTO, GTR_ML, ZRM_PATCH, &
186 YCLAY, YCLAYFILETYPE, XUNIF_CLAY, LIMP_CLAY, &
187 YSAND, YSANDFILETYPE, XUNIF_SAND, LIMP_SAND, &
188 YSOC_TOP, YSOC_SUB, YSOCFILETYPE, XUNIF_SOC_TOP, &
189 XUNIF_SOC_SUB, LIMP_SOC, YCTI, YCTIFILETYPE, LIMP_CTI, &
190 YPERM, YPERMFILETYPE, XUNIF_PERM, LIMP_PERM, &
191 YRUNOFFB, YRUNOFFBFILETYPE, XUNIF_RUNOFFB, &
192 YWDRAIN, YWDRAINFILETYPE , XUNIF_WDRAIN, ZSOILGRID, &
193 YPH, YPHFILETYPE, XUNIF_PH, YFERT, YFERTFILETYPE, &
197 NGROUND_LAYER = IGROUND_LAYER
202 XRM_PATCH = MAX(MIN(ZRM_PATCH,1.),0.)
204 !-------------------------------------------------------------------------------
206 !* 3. Coherence of options
207 ! --------------------
209 CALL TEST_NAM_VAR_SURF(ILUOUT,'CISBA',CISBA,'2-L','3-L','DIF')
210 CALL TEST_NAM_VAR_SURF(ILUOUT,'CPEDOTF',CPEDOTF,'CH78','CO84')
211 CALL TEST_NAM_VAR_SURF(ILUOUT,'CPHOTO',CPHOTO,'NON','AGS','LAI','AST','LST','NIT','NCB')
219 ALLOCATE(XSOILGRID(0))
220 WRITE(ILUOUT,*) '*****************************************'
221 WRITE(ILUOUT,*) '* With option CISBA = ',CISBA,' *'
222 WRITE(ILUOUT,*) '* the number of soil layers is set to 2 *'
223 WRITE(ILUOUT,*) '* Pedo transfert function = CH78 *'
224 WRITE(ILUOUT,*) '*****************************************'
230 ALLOCATE(XSOILGRID(0))
231 WRITE(ILUOUT,*) '*****************************************'
232 WRITE(ILUOUT,*) '* With option CISBA = ',CISBA,' *'
233 WRITE(ILUOUT,*) '* the number of soil layers is set to 3 *'
234 WRITE(ILUOUT,*) '* Pedo transfert function = CH78 *'
235 WRITE(ILUOUT,*) '*****************************************'
239 IF(NGROUND_LAYER==NUNDEF)THEN
241 NGROUND_LAYER=NOPTIMLAYER
243 WRITE(ILUOUT,*) '****************************************'
244 WRITE(ILUOUT,*) '* Number of ground layer not specified *'
245 WRITE(ILUOUT,*) '****************************************'
246 CALL ABOR1_SFX('PGD_ISBA: NGROUND_LAYER MUST BE DONE IN NAM_ISBA')
250 ALLOCATE(XSOILGRID(NGROUND_LAYER))
252 XSOILGRID(:)=ZSOILGRID(1:NGROUND_LAYER)
253 IF (ALL(ZSOILGRID(:)==XUNDEF)) THEN
254 IF(OECOCLIMAP) XSOILGRID(1:NGROUND_LAYER)=XOPTIMGRID(1:NGROUND_LAYER)
255 ELSEIF (COUNT(XSOILGRID/=XUNDEF)/=NGROUND_LAYER) THEN
256 WRITE(ILUOUT,*) '********************************************************'
257 WRITE(ILUOUT,*) '* Soil grid reference values /= number of ground layer *'
258 WRITE(ILUOUT,*) '********************************************************'
259 CALL ABOR1_SFX('PGD_ISBA: XSOILGRID must be coherent with NGROUND_LAYER in NAM_ISBA')
260 ELSEIF (XSOILGRID(1).GT.0.01) THEN
261 CALL ABOR1_SFX('PGD_ISBA: First layer of XSOILGRID must be lower than 1cm')
264 WRITE(ILUOUT,*) '*****************************************'
265 WRITE(ILUOUT,*) '* Option CISBA = ',CISBA
266 WRITE(ILUOUT,*) '* Pedo transfert function = ',CPEDOTF
267 WRITE(ILUOUT,*) '* Number of soil layers = ',NGROUND_LAYER
269 WRITE(ILUOUT,*) '* Soil layers grid (m) = ',XSOILGRID(1:NGROUND_LAYER)
271 WRITE(ILUOUT,*) '*****************************************'
276 CASE ('AGS','LAI','AST','LST')
283 WRITE(ILUOUT,*) '*****************************************'
284 WRITE(ILUOUT,*) '* With option CPHOTO = ',CPHOTO,' *'
285 WRITE(ILUOUT,*) '* the number of biomass pools is set to ', NNBIOMASS
286 WRITE(ILUOUT,*) '*****************************************'
288 IF (NPATCH<1 .OR. NPATCH>NVEGTYPE) THEN
289 WRITE(ILUOUT,*) '*****************************************'
290 WRITE(ILUOUT,*) '* Number of patch must be between 1 and ', NVEGTYPE
291 WRITE(ILUOUT,*) '* You have chosen NPATCH = ', NPATCH
292 WRITE(ILUOUT,*) '*****************************************'
293 CALL ABOR1_SFX('PGD_ISBA: NPATCH MUST BE BETWEEN 1 AND NVEGTYPE')
296 IF ( CPHOTO/='NON' .AND. NPATCH/=12 ) THEN
297 WRITE(ILUOUT,*) '*****************************************'
298 WRITE(ILUOUT,*) '* With option CPHOTO = ', CPHOTO
299 WRITE(ILUOUT,*) '* Number of patch must be equal to 12 '
300 WRITE(ILUOUT,*) '* But you have chosen NPATCH = ', NPATCH
301 WRITE(ILUOUT,*) '*****************************************'
302 CALL ABOR1_SFX('PGD_ISBA: CPHOTO='//CPHOTO//' REQUIRES NPATCH=12')
305 IF ( CPHOTO=='NON' .AND. LTR_ML ) THEN
306 WRITE(ILUOUT,*) '*****************************************'
307 WRITE(ILUOUT,*) '* With option CPHOTO == NON '
308 WRITE(ILUOUT,*) '* New radiative transfert TR_ML '
309 WRITE(ILUOUT,*) '* cant be used '
310 WRITE(ILUOUT,*) '*****************************************'
311 CALL ABOR1_SFX('PGD_ISBA: WITH CPHOTO= NON LTR_ML MUST BE FALSE')
314 !-------------------------------------------------------------------------------
316 !* 4. Number of points and packing of general fields
317 ! ----------------------------------------------
319 CALL GET_SURF_SIZE_n('NATURE',ILU)
321 ALLOCATE(LCOVER (JPCOVER))
322 ALLOCATE(XCOVER (ILU,JPCOVER))
326 ALLOCATE(XMESH_SIZE (ILU))
327 ALLOCATE(XZ0EFFJPDIR(ILU))
329 CALL PACK_PGD(HPROGRAM, 'NATURE', &
331 LCOVER, XCOVER, XZS, &
332 XLAT, XLON, XMESH_SIZE, XZ0EFFJPDIR )
334 !-------------------------------------------------------------------------------
336 !* 5. Packing of ISBA specific fields
337 ! -------------------------------
339 CALL GET_AOS_n(HPROGRAM,NL,ZAOSIP,ZAOSIM,ZAOSJP,ZAOSJM,ZHO2IP,ZHO2IM,ZHO2JP,ZHO2JM)
340 CALL GET_SSO_n(HPROGRAM,NL,ZSSO_SLOPE)
342 CALL PACK_PGD_ISBA(HPROGRAM, &
343 ZAOSIP, ZAOSIM, ZAOSJP, ZAOSJM, &
344 ZHO2IP, ZHO2IM, ZHO2JP, ZHO2JM, &
347 !-------------------------------------------------------------------------------
349 !* 6. Topographic index for TOPMODEL
350 ! ------------------------------
352 CALL PGD_TOPO_INDEX(HPROGRAM,ILU,YCTI,YCTIFILETYPE,LIMP_CTI)
354 !-------------------------------------------------------------------------------
361 ALLOCATE(XSAND(ILU,NGROUND_LAYER))
365 IF(YSANDFILETYPE=='NETCDF')THEN
366 CALL ABOR1_SFX('Use another format than netcdf for sand input file with LIMP_SAND')
369 CFILEIN = ADJUSTL(ADJUSTR(YSAND)//'.txt')
372 CFILEIN_FA = ADJUSTL(ADJUSTR(YSAND)//'.fa')
375 CFILEIN_LFI = ADJUSTL(YSAND)
377 CALL INIT_IO_SURF_n(YSANDFILETYPE,'NATURE','ISBA ','READ ')
380 CALL READ_SURF(YSANDFILETYPE,'SAND',XSAND(:,1),IRESP)
382 CALL END_IO_SURF_n(YSANDFILETYPE)
385 CALL PGD_FIELD(HPROGRAM,'sand fraction','NAT',YSAND,YSANDFILETYPE,XUNIF_SAND,XSAND(:,1))
388 DO JLAYER=1,NGROUND_LAYER
389 XSAND(:,JLAYER) = XSAND(:,1)
391 !-------------------------------------------------------------------------------
396 ALLOCATE(XCLAY(ILU,NGROUND_LAYER))
400 IF(YCLAYFILETYPE=='NETCDF')THEN
401 CALL ABOR1_SFX('Use another format than netcdf for clay input file with LIMP_CLAY')
404 CFILEIN = ADJUSTL(ADJUSTR(YSAND)//'.txt')
407 CFILEIN_FA = ADJUSTL(ADJUSTR(YSAND)//'.fa')
410 CFILEIN_LFI = ADJUSTL(YSAND)
412 CALL INIT_IO_SURF_n(YCLAYFILETYPE,'NATURE','ISBA ','READ ')
415 CALL READ_SURF(YCLAYFILETYPE,'CLAY',XCLAY(:,1),IRESP)
417 CALL END_IO_SURF_n(YCLAYFILETYPE)
420 CALL PGD_FIELD(HPROGRAM,'clay fraction','NAT',YCLAY,YCLAYFILETYPE,XUNIF_CLAY,XCLAY(:,1))
423 DO JLAYER=1,NGROUND_LAYER
424 XCLAY(:,JLAYER) = XCLAY(:,1)
427 !-------------------------------------------------------------------------------
429 !* 9. organic carbon profile
430 ! ----------------------
432 IF(LEN_TRIM(YSOCFILETYPE)/=0.OR.(XUNIF_SOC_TOP/=XUNDEF.AND.XUNIF_SOC_SUB/=XUNDEF))THEN
434 ALLOCATE(XSOC(ILU,NGROUND_LAYER))
438 IF((LEN_TRIM(YSOC_TOP)==0.AND.LEN_TRIM(YSOC_SUB)/=0).OR.(LEN_TRIM(YSOC_TOP)/=0.AND.LEN_TRIM(YSOC_SUB)==0))THEN
440 WRITE(ILUOUT,*) '***********************************************************'
441 WRITE(ILUOUT,*) '* Error in soil organic carbon preparation *'
442 WRITE(ILUOUT,*) '* If used, sub and top soil input file must be given *'
443 WRITE(ILUOUT,*) '***********************************************************'
445 CALL ABOR1_SFX('PGD_ISBA: TOP AND SUB SOC INPUT FILE REQUIRED')
452 IF(YSOCFILETYPE=='NETCDF')THEN
453 CALL ABOR1_SFX('Use another format than netcdf for organic carbon input file with LIMP_SOC')
456 CFILEIN = ADJUSTL(ADJUSTR(YSOC_TOP)//'.txt')
459 CFILEIN_FA = ADJUSTL(ADJUSTR(YSOC_TOP)//'.fa')
462 CFILEIN_LFI = ADJUSTL(YSOC_TOP)
464 CALL INIT_IO_SURF_n(YSOCFILETYPE,'NATURE','ISBA ','READ ')
467 CALL READ_SURF(YSOCFILETYPE,'SOC_TOP',XSOC(:,1),IRESP)
469 CALL END_IO_SURF_n(YSOCFILETYPE)
473 IF(YSOCFILETYPE=='NETCDF')THEN
474 CALL ABOR1_SFX('Use another format than netcdf for organic carbon input file with LIMP_SOC')
477 CFILEIN = ADJUSTL(ADJUSTR(YSOC_SUB)//'.txt')
480 CFILEIN_FA = ADJUSTL(ADJUSTR(YSOC_SUB)//'.fa')
483 CFILEIN_LFI = ADJUSTL(YSOC_SUB)
485 CALL INIT_IO_SURF_n(YSOCFILETYPE,'NATURE','ISBA ','READ ')
488 CALL READ_SURF(YSOCFILETYPE,'SOC_SUB',XSOC(:,2),IRESP)
490 CALL END_IO_SURF_n(YSOCFILETYPE)
493 CALL PGD_FIELD(HPROGRAM,'organic carbon','NAT',YSOC_TOP,YSOCFILETYPE,XUNIF_SOC_TOP,XSOC(:,1))
494 CALL PGD_FIELD(HPROGRAM,'organic carbon','NAT',YSOC_SUB,YSOCFILETYPE,XUNIF_SOC_SUB,XSOC(:,2))
497 DO JLAYER=2,NGROUND_LAYER
498 XSOC(:,JLAYER) = XSOC(:,2)
508 !* 10. Permafrost distribution
509 ! -----------------------
511 IF(LEN_TRIM(YPERM)/=0.OR.XUNIF_PERM/=XUNDEF)THEN
519 IF(YPERMFILETYPE=='NETCDF')THEN
520 CALL ABOR1_SFX('Use another format than netcdf for permafrost input file with LIMP_PERM')
523 CFILEIN = ADJUSTL(ADJUSTR(YPERM)//'.txt')
526 CFILEIN_FA = ADJUSTL(ADJUSTR(YPERM)//'.fa')
529 CFILEIN_LFI = ADJUSTL(YPERM)
531 CALL INIT_IO_SURF_n(YPERMFILETYPE,'NATURE','ISBA ','READ ')
534 CALL READ_SURF(YPERMFILETYPE,'PERM',XPERM(:),IRESP)
536 CALL END_IO_SURF_n(YPERMFILETYPE)
538 CALL PGD_FIELD(HPROGRAM,'permafrost','NAT',YPERM,YPERMFILETYPE,XUNIF_PERM,XPERM(:))
548 !-------------------------------------------------------------------------------
550 !* 11. pH and fertlisation data
551 ! --------------------------
553 IF((LEN_TRIM(YPHFILETYPE)/=0.OR.XUNIF_PH/=XUNDEF) .AND. (LEN_TRIM(YFERTFILETYPE)/=0.OR.XUNIF_FERT/=XUNDEF)) THEN
560 CALL PGD_FIELD(HPROGRAM,'pH value','NAT',YPH,YPHFILETYPE,XUNIF_PH,XPH(:))
561 CALL PGD_FIELD(HPROGRAM,'fertilisation','NAT',YFERT,YFERTFILETYPE,XUNIF_FERT,XFERT(:))
565 !-------------------------------------------------------------------------------
567 !* 12. Subgrid runoff
570 ALLOCATE(XRUNOFFB(ILU))
572 (HPROGRAM,'subgrid runoff','NAT',YRUNOFFB,YRUNOFFBFILETYPE,XUNIF_RUNOFFB,XRUNOFFB(:))
574 !-------------------------------------------------------------------------------
576 !* 13. Drainage coefficient
577 ! --------------------
579 ALLOCATE(XWDRAIN(ILU))
581 (HPROGRAM,'subgrid drainage','NAT',YWDRAIN,YWDRAINFILETYPE,XUNIF_WDRAIN,XWDRAIN(:))
583 !-------------------------------------------------------------------------------
585 !* 14. ISBA specific fields
586 ! --------------------
588 LECOCLIMAP = OECOCLIMAP
590 CALL PGD_ISBA_PAR(HPROGRAM)
592 !-------------------------------------------------------------------------------
594 !* 15. TOPODYN fields
597 CALL PGD_TOPD(HPROGRAM)
599 !-------------------------------------------------------------------------------
601 !* 16. ISBA diagnostic PGD fields stored in PGD file for improved efficiency in PREP step
602 ! ----------------------------------------------------------------------------------
605 ALLOCATE(XDG(ILU,NGROUND_LAYER,NPATCH))
606 IF (CISBA=='DIF') THEN
607 ALLOCATE(NWG_LAYER(ILU,NPATCH))
609 ALLOCATE(NWG_LAYER(0,0))
611 CALL CONVERT_COVER_ISBA(CISBA,NUNDEF,XCOVER,' ','NAT',PSOILGRID=XSOILGRID,PDG=XDG,KWG_LAYER=NWG_LAYER)
614 !-------------------------------------------------------------------------------
616 !* 17. Prints of cover parameters in a tex file
617 ! ----------------------------------------
620 CALL WRITE_COVER_TEX_ISBA (NPATCH,NGROUND_LAYER,CISBA)
621 CALL WRITE_COVER_TEX_ISBA_PAR(NPATCH,NGROUND_LAYER,CISBA,CPHOTO,XSOILGRID)
623 IF (LHOOK) CALL DR_HOOK('PGD_ISBA',1,ZHOOK_HANDLE)
625 !-------------------------------------------------------------------------------
627 END SUBROUTINE PGD_ISBA