SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
write_cover_tex_isba_par.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 write_cover_tex_isba_par (DTCO, I, &
7  kpatch,klayer,hisba,hphoto,psoilgrid)
8 ! ##########################
9 !
10 !!**** *WRITE_COVER_TEX* writes the ISBA data arrays into a tex file
11 !!
12 !! PURPOSE
13 !! -------
14 !!
15 !! METHOD
16 !! ------
17 !!
18 !!
19 !! EXTERNAL
20 !! --------
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !! REFERENCE
26 !! ---------
27 !!
28 !! AUTHOR
29 !! ------
30 !!
31 !! V. Masson Meteo-France
32 !!
33 !! MODIFICATION
34 !! ------------
35 !!
36 !! Original 08/01/98
37 !!
38 !! P Le Moigne 09/2005 AGS modifs of L. Jarlan
39 !! B. Decharme 2008 Bug if ZDMAX = XUNDEF
40 !----------------------------------------------------------------------------
41 !
42 !* 0. DECLARATION
43 ! -----------
44 !
45 !
46 !
47 !
48 !
50 USE modd_isba_n, ONLY : isba_t
51 !
53 
54 USE modi_convert_cover_isba
55 
57 USE modd_write_cover_tex,ONLY : ntex, cname, clang, nlines
58 USE modd_surf_par, ONLY : xundef
59 USE modd_csts, ONLY : xday
60 
61 USE modd_data_cover_par, ONLY : jpcover, nvegtype
62 !
63 !
64 USE yomhook ,ONLY : lhook, dr_hook
65 USE parkind1 ,ONLY : jprb
66 !
67 IMPLICIT NONE
68 !
69 !* 0.1 Declaration of arguments
70 ! ------------------------
71 !
72 !
73 TYPE(data_cover_t), INTENT(INOUT) :: dtco
74 TYPE(isba_t), INTENT(INOUT) :: i
75 !
76 INTEGER, INTENT(IN) :: kpatch! number of patch
77 INTEGER, INTENT(IN) :: klayer! number of soil layers
78  CHARACTER(LEN=*), INTENT(IN) :: hisba ! type of soil (Force-Restore OR Diffusion)
79  CHARACTER(LEN=*), INTENT(IN) :: hphoto! type of photosynthesis
80 REAL, DIMENSION(:),INTENT(IN) :: psoilgrid ! reference grid for DIF
81 !
82 !* 0.2 Declaration of local variables
83 ! ------------------------------
84 !
85 !
86 INTEGER :: ji,jj,jip
87 !
88  CHARACTER(LEN=6), DIMENSION(12 ) :: ydata_vegparam! vegetation parameters
89  CHARACTER(LEN=6) :: ystring6
90  CHARACTER(LEN=24) :: ydata_cv ! Cv
91  CHARACTER(LEN=24) :: ydata_re25 ! Re25
92  CHARACTER(LEN=4) :: ydata_stress ! Stress def.
93  CHARACTER(LEN=6), DIMENSION(12 ) :: ydata_month ! monthly veg. parameters
94  CHARACTER(LEN=6), DIMENSION(10 ) :: ydata_layer ! soil layer parameters
95 !
96  CHARACTER(LEN=20) :: yfmt ! fortran format
97 !
98 INTEGER :: jpage ! current page when the number of classes
99  ! is too long to stand on one page only
100 INTEGER :: jpatch ! loop counter
101 !
102 !
103 LOGICAL :: gline ! flag to write an additional horizontal line
104 !
105 REAL, DIMENSION(JPCOVER,JPCOVER ) :: zcover
106 LOGICAL, DIMENSION(JPCOVER ) :: gcover
107 REAL, DIMENSION(JPCOVER,KPATCH, 12 ) :: zveg, zlai, zz0veg, zemis_eco, zf2i
108 REAL, DIMENSION(JPCOVER,KPATCH ) :: zrsmin,zgamma,zrgl,zcv, &
109  zalbnir_veg,zalbvis_veg,zalbuv_veg, &
110  zgmes,zbslai,zlaimin,zsefold, &
111  zh_tree, zgc, zz0_o_z0h, &
112  zwrmax_cf, zdmax, zre25
113 REAL, DIMENSION(JPCOVER,KLAYER,KPATCH):: zdg, zrootfrac
114 REAL, DIMENSION(JPCOVER,KPATCH) :: zdroot
115 REAL, DIMENSION(JPCOVER,KPATCH) :: zdg2
116 INTEGER, DIMENSION(JPCOVER,KPATCH) :: iwg_layer
117 LOGICAL, DIMENSION(JPCOVER,KPATCH, 12 ) :: gstress
118 REAL(KIND=JPRB) :: zhook_handle
119 
120 !-------------------------------------------------------------------------------
121 !
122 IF (lhook) CALL dr_hook('WRITE_COVER_TEX_ISBA_PAR',0,zhook_handle)
123 IF (ntex==0 .AND. lhook) CALL dr_hook('WRITE_COVER_TEX_ISBA_PAR',1,zhook_handle)
124 IF (ntex==0) RETURN
125 !
126 gline=.false.
127 !
128 zcover(:,:) = 0.
129 DO ji=1,jpcover
130  zcover(ji,ji) = 1.
131 END DO
132 !
133 gcover(:) = .true.
134 !
135 !ocl scalar
136 !
137 DO jj=1,12
138  CALL convert_cover_isba(dtco, i, &
139  hisba,3*jj-1,zcover,gcover,hphoto, 'NAT', &
140  pveg=zveg(:,:,jj), plai=zlai(:,:,jj), &
141  pz0=zz0veg(:,:,jj), pemis_eco=zemis_eco(:,:,jj), &
142  pf2i=zf2i(:,:,jj),ostress=gstress(:,:,jj) )
143 END DO
144 
145  CALL convert_cover_isba(dtco, i, &
146  hisba,2,zcover,gcover,hphoto, 'NAT', &
147  prsmin=zrsmin,pgamma=zgamma,pwrmax_cf=zwrmax_cf, &
148  prgl=zrgl,pcv=zcv,psoilgrid=psoilgrid, &
149  pdg=zdg,kwg_layer=iwg_layer,pdroot=zdroot, &
150  pdg2=zdg2,pz0_o_z0h=zz0_o_z0h, &
151  palbnir_veg=zalbnir_veg,palbvis_veg=zalbvis_veg, &
152  palbuv_veg=zalbuv_veg, &
153  prootfrac=zrootfrac, &
154  pgmes=zgmes,pbslai=zbslai,plaimin=zlaimin, &
155  psefold=zsefold,pgc=zgc,pdmax=zdmax, &
156  ph_tree=zh_tree,pre25=zre25 )
157 !
158 !
159 !-------------------------------------------------------------------------------
160 !-------------------------------------------------------------------------------
161 !
162 DO jpatch=1,kpatch
163 !
164  IF ( (kpatch>=2 .AND. jpatch==1) &
165  .OR. (kpatch>=7 .AND. jpatch==2) &
166  .OR. (kpatch>=10 .AND. jpatch==3) ) cycle
167 !
168 !
169 !
170  ji=0
171  DO
172 
173  IF (ji==jpcover) EXIT
174 
175  IF (clang=='EN') THEN
176  WRITE(ntex,*) '{\bf averaged leaf area index} (patch ',jpatch,'/',kpatch,') \\'
177  ELSE
178  WRITE(ntex,*) "{\bf indice foliaire moyenn\'e} (partition ",jpatch,'/',kpatch,') \\'
179  END IF
180  WRITE(ntex,*) '\medskip\'
181  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||c|c||c||}'
182  WRITE(NTEX,*) '\hline'
183  WRITE(NTEX,*) '\hline'
184  WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12&$d_2$&$d_3$&$h$'
185  WRITE(NTEX,*) '\hline'
186  WRITE(NTEX,*) '\hline'
187  JIP=0
188  DO
189  IF (JI==JPCOVER) EXIT
190  JI=JI+1
191  IF (ZLAI(JI,JPATCH,1)/=XUNDEF) THEN
192  JIP=JIP+1
193  DO JJ=1,12
194 .OR. IF (ZLAI(JI,JPATCH,JJ)==0. ZLAI(JI,JPATCH,JJ)==XUNDEF) THEN
195  YDATA_MONTH(JJ) = ' - '
196  ELSE
197  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NBT(ZLAI(JI,JPATCH,JJ),1),'.',DEC(ZLAI(JI,JPATCH,JJ),1),')'
198  WRITE(YSTRING6, FMT=YFMT) ZLAI(JI,JPATCH,JJ)
199  YDATA_MONTH(JJ) = YSTRING6
200  END IF
201  END DO
202 
203  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(ZDG(JI,2,JPATCH),1),'.',DEC(ZDG(JI,2,JPATCH),1),')'
204  WRITE(YSTRING6, FMT=YFMT) ZDG(JI,2,JPATCH)
205  YDATA_VEGPARAM(1) = YSTRING6
206  IF (KLAYER>=3) THEN
207  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(ZDG(JI,3,JPATCH),1),'.',DEC(ZDG(JI,3,JPATCH),1),')'
208  WRITE(YSTRING6, FMT=YFMT) ZDG(JI,3,JPATCH)
209  YDATA_VEGPARAM(2) = YSTRING6
210  ELSE
211  YDATA_VEGPARAM(2) = ' - '
212  END IF
213 
214 .OR. IF (ZH_TREE(JI,JPATCH)==XUNDEF ZH_TREE(JI,JPATCH)==0.) THEN
215  YDATA_VEGPARAM(3) = ' - '
216  ELSE
217  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(ZH_TREE(JI,JPATCH)),'.',DEC(ZH_TREE(JI,JPATCH)),')'
218  WRITE(YSTRING6, FMT=YFMT) ZH_TREE(JI,JPATCH)
219  YDATA_VEGPARAM(3) = YSTRING6
220  END IF
221 
222  WRITE(NTEX, FMT=*) &
223  JI,' & ',CNAME(JI),' & ',YDATA_MONTH(1), ' & ',YDATA_MONTH(2), ' & ', &
224  YDATA_MONTH(3),' & ',YDATA_MONTH(4), ' & ',YDATA_MONTH(5), ' & ', &
225  YDATA_MONTH(6),' & ',YDATA_MONTH(7), ' & ',YDATA_MONTH(8), ' & ', &
226  YDATA_MONTH(9),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & ', &
227  YDATA_MONTH(12),' & ',YDATA_VEGPARAM(1),' & ',YDATA_VEGPARAM(2),' & ',YDATA_VEGPARAM(3),' '
228 
229  WRITE(NTEX,*) '\hline'
230  GLINE=.TRUE.
231  END IF
232  CALL HLINE(NTEX,GLINE,JI)
233  IF (JIP==NLINES) EXIT
234  END DO
235  WRITE(NTEX,*) '\end{tabular}'
236 !
237 !-------------------------------------------------------------------------------
238 !
239  WRITE(NTEX,*) '\clearpage'
240 !
241 ENDDO
242 !-------------------------------------------------------------------------------
243 !
244 !
245 JI=0
246 DO
247  IF (JI==JPCOVER) EXIT
248 
249  IF (CLANG=='en') THEN
250  WRITE(NTEX,*) '{\bf ground layer depth} (from surface, patch ',JPATCH,'/',KPATCH,') '
251  ELSE
252  WRITE(NTEX,*) "{\bf profondeur des couche de sol} (depuis la surface, partition ",JPATCH,'/',KPATCH,') '
253  END IF
254  WRITE(NTEX,*) '\medskip
255  WRITE(ntex,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c||}'
256  WRITE(ntex,*) '\hline'
257  WRITE(ntex,*) '\hline'
258  WRITE(ntex,*) '&&01&02&03&04&05&06&07&08&09&10\\'
259  WRITE(ntex,*) '\hline'
260  WRITE(ntex,*) '\hline'
261  jip=0
262  DO
263  IF (ji==jpcover) EXIT
264  ji=ji+1
265  ydata_layer(:) = ' - '
266  IF (zdg(ji,1,jpatch)/=xundef) THEN
267  jip=jip+1
268  DO jj=1,min(klayer,10)
269  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nbt(zdg(ji,jj,jpatch),1),'.',dec(zdg(ji,jj,jpatch),1),')'
270  WRITE(ystring6, fmt=yfmt) zdg(ji,jj,jpatch)
271  ydata_layer(jj) = ystring6
272  END DO
273 
274  WRITE(ntex, fmt=*) &
275  ji,' & ',cname(ji),' & ',ydata_layer(1), ' & ',ydata_layer(2), ' & ', &
276  ydata_layer(3),' & ',ydata_layer(4), ' & ',ydata_layer(5), ' & ', &
277  ydata_layer(6),' & ',ydata_layer(7), ' & ',ydata_layer(8), ' & ', &
278  ydata_layer(9),' & ',ydata_layer(10),' \\'
279 
280  WRITE(ntex,*) '\hline'
281  gline=.true.
282  END IF
283  CALL hline(ntex,gline,ji)
284  IF (jip==nlines) EXIT
285  END DO
286  WRITE(ntex,*) '\end{tabular}'
287 !
288 !-------------------------------------------------------------------------------
289 !
290  WRITE(ntex,*) '\clearpage'
291 !
292 ENDDO
293 !-------------------------------------------------------------------------------
294 !
295 IF (hisba=='DIF') THEN
296 !
297 ji=0
298 DO
299  IF (ji==jpcover) EXIT
300 
301  IF (clang=='EN') THEN
302  WRITE(ntex,*) '{\bf cumulative root fraction} (patch ',jpatch,'/',kpatch,') \\'
303  ELSE
304  WRITE(ntex,*) "{\bf fraction de racines cumul\'ee} (partition ",jpatch,'/',kpatch,') \\'
305  END IF
306  WRITE(ntex,*) '\medskip\'
307  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c||}'
308  WRITE(NTEX,*) '\hline'
309  WRITE(NTEX,*) '\hline'
310  WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10'
311  WRITE(NTEX,*) '\hline'
312  WRITE(NTEX,*) '\hline'
313  JIP=0
314  DO
315  IF (JI==JPCOVER) EXIT
316  JI=JI+1
317  YDATA_LAYER(:) = ' - '
318  IF (ZROOTFRAC(JI,1,JPATCH)/=XUNDEF) THEN
319  JIP=JIP+1
320  DO JJ=1,MIN(KLAYER,10)
321  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NBT(ZROOTFRAC(JI,JJ,JPATCH),1),'.',DEC(ZROOTFRAC(JI,JJ,JPATCH),1),')'
322  WRITE(YSTRING6, FMT=YFMT) ZROOTFRAC(JI,JJ,JPATCH)
323  YDATA_LAYER(JJ) = YSTRING6
324  END DO
325 
326  WRITE(NTEX, FMT=*) &
327  JI,' & ',CNAME(JI),' & ',YDATA_LAYER(1), ' & ',YDATA_LAYER(2), ' & ', &
328  YDATA_LAYER(3),' & ',YDATA_LAYER(4), ' & ',YDATA_LAYER(5), ' & ', &
329  YDATA_LAYER(6),' & ',YDATA_LAYER(7), ' & ',YDATA_LAYER(8), ' & ', &
330  YDATA_LAYER(9),' & ',YDATA_LAYER(10),' '
331 
332  WRITE(NTEX,*) '\hline'
333  GLINE=.TRUE.
334  END IF
335  CALL HLINE(NTEX,GLINE,JI)
336  IF (JIP==NLINES) EXIT
337  END DO
338  WRITE(NTEX,*) '\end{tabular}'
339 !
340 !-------------------------------------------------------------------------------
341 !
342  WRITE(NTEX,*) '\clearpage'
343 
344 ENDDO
345 END IF
346 !
347 !-------------------------------------------------------------------------------
348 !
349 JI=0
350 DO
351  IF (JI==JPCOVER) EXIT
352 
353  IF (CLANG=='en') THEN
354  WRITE(NTEX,*) '{\bf vegetation fraction(over natural or agricultural areas)} (patch ',JPATCH,'/',KPATCH,') '
355  ELSE
356  WRITE(NTEX,*) "{\bf fraction de v\'eg\'etation (sur les surfaces naturelles ou cultiv\'ees)} (partition ", &
357  JPATCH,'/',KPATCH,') '
358  END IF
359  WRITE(NTEX,*) '\medskip
360  WRITE(ntex,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||}'
361  WRITE(ntex,*) '\hline'
362  WRITE(ntex,*) '\hline'
363  WRITE(ntex,*) '&&01&02&03&04&05&06&07&08&09&10&11&12\\'
364  WRITE(ntex,*) '\hline'
365  WRITE(ntex,*) '\hline'
366  jip=0
367  DO
368  IF (ji==jpcover) EXIT
369  ji=ji+1
370  IF (zlai(ji,jpatch,1)/=xundef) THEN
371  jip=jip+1
372  DO jj=1,12
373  IF (zveg(ji,jpatch,jj)==0.) THEN
374  ydata_month(jj) = ' - '
375  ELSE
376  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nbt(zveg(ji,jpatch,jj),2),'.',dec(zveg(ji,jpatch,jj),2),')'
377  WRITE(ystring6, fmt=yfmt) zveg(ji,jpatch,jj)
378 
379  ydata_month(jj) = ystring6
380  END IF
381  END DO
382 
383  WRITE(ntex, fmt=*) &
384  ji,' & ',cname(ji),' & ',ydata_month(1), ' & ',ydata_month(2), ' & ', &
385  ydata_month(3),' & ',ydata_month(4), ' & ',ydata_month(5), ' & ', &
386  ydata_month(6),' & ',ydata_month(7), ' & ',ydata_month(8), ' & ', &
387  ydata_month(9),' & ',ydata_month(10),' & ',ydata_month(11),' & ', &
388  ydata_month(12),' \\'
389 
390  WRITE(ntex,*) '\hline'
391  gline=.true.
392  END IF
393  CALL hline(ntex,gline,ji)
394  IF (jip==nlines) EXIT
395  END DO
396  WRITE(ntex,*) '\end{tabular}'
397 !
398 !-------------------------------------------------------------------------------
399 !
400  WRITE(ntex,*) '\clearpage'
401 !
402 ENDDO
403 !-------------------------------------------------------------------------------
404 !-------------------------------------------------------------------------------
405 !
406 !
407 ji=0
408 DO
409  IF (ji==jpcover) EXIT
410 
411  IF (clang=='EN') THEN
412  WRITE(ntex,*) '{\bf surface roughness length for momentum: $z_{0}$} (patch ',jpatch,'/',kpatch,') \\'
413  ELSE
414  WRITE(ntex,*) "{\bf longueur de rugosit\'e de la surface (qdm): $z_{0}$} (partition ",jpatch,'/',kpatch,') \\'
415  END IF
416  WRITE(ntex,*) '\medskip\'
417  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||}'
418  WRITE(NTEX,*) '\hline'
419  WRITE(NTEX,*) '\hline'
420  WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12'
421  WRITE(NTEX,*) '\hline'
422  WRITE(NTEX,*) '\hline'
423  JIP=0
424  DO
425  IF (JI==JPCOVER) EXIT
426  JI=JI+1
427 
428  IF (ZLAI(JI,JPATCH,1)/=XUNDEF) THEN
429  JIP=JIP+1
430  DO JJ=1,12
431  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NBT(ZZ0VEG(JI,JPATCH,JJ)),'.',DEC(ZZ0VEG(JI,JPATCH,JJ)),')'
432  WRITE(YSTRING6, FMT=YFMT) ZZ0VEG(JI,JPATCH,JJ)
433  YDATA_MONTH(JJ) = YSTRING6
434  END DO
435 
436  WRITE(NTEX, FMT=*) &
437  JI,' & ',CNAME(JI),' & ',YDATA_MONTH(1), ' & ',YDATA_MONTH(2), ' & ', &
438  YDATA_MONTH(3),' & ',YDATA_MONTH(4), ' & ',YDATA_MONTH(5), ' & ', &
439  YDATA_MONTH(6),' & ',YDATA_MONTH(7), ' & ',YDATA_MONTH(8), ' & ', &
440  YDATA_MONTH(9),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & ', &
441  YDATA_MONTH(12),' '
442 
443  WRITE(NTEX,*) '\hline'
444  GLINE=.TRUE.
445  END IF
446  CALL HLINE(NTEX,GLINE,JI)
447  IF (JIP==NLINES) EXIT
448  END DO
449 
450  WRITE(NTEX,*) '\end{tabular}'
451 
452 !
453 !-------------------------------------------------------------------------------
454 !
455  WRITE(NTEX,*) '\clearpage'
456 !
457 ENDDO
458 !-------------------------------------------------------------------------------
459 !
460 !
461 JI=0
462 DO
463  IF (JI==JPCOVER) EXIT
464 
465  IF (CLANG=='en') THEN
466  WRITE(NTEX,*) '{\bf emissivity of natural continental surfaces} (patch ',JPATCH,'/',KPATCH,') '
467  ELSE
468  WRITE(NTEX,*) "{\bf \'emissivit\'e des surfaces continentales naturelles} (partition ",JPATCH,'/',KPATCH,') '
469  END IF
470  WRITE(NTEX,*) '\medskip
471  WRITE(ntex,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||}'
472  WRITE(ntex,*) '\hline'
473  WRITE(ntex,*) '\hline'
474  WRITE(ntex,*) '&&01&02&03&04&05&06&07&08&09&10&11&12\\'
475  WRITE(ntex,*) '\hline'
476  WRITE(ntex,*) '\hline'
477  jip=0
478  DO
479  IF (ji==jpcover) EXIT
480  ji=ji+1
481  IF (zlai(ji,jpatch,1)/=xundef) THEN
482  jip=jip+1
483  DO jj=1,12
484  IF (zemis_eco(ji,jpatch,jj)==1.) THEN
485  ydata_month(jj) = ' 1. '
486  ELSE
487  WRITE(ystring6, fmt='(F3.2)') zemis_eco(ji,jpatch,jj)
488  ydata_month(jj) = ystring6
489  END IF
490  END DO
491 
492  WRITE(ntex, fmt=*) &
493  ji,' & ',cname(ji),' & ',ydata_month(1), ' & ',ydata_month(2), ' & ', &
494  ydata_month(3),' & ',ydata_month(4), ' & ',ydata_month(5), ' & ', &
495  ydata_month(6),' & ',ydata_month(7), ' & ',ydata_month(8), ' & ', &
496  ydata_month(9),' & ',ydata_month(10),' & ',ydata_month(11),' & ', &
497  ydata_month(12),' \\'
498 
499  WRITE(ntex,*) '\hline'
500  gline=.true.
501  END IF
502  CALL hline(ntex,gline,ji)
503  IF (jip==nlines) EXIT
504  END DO
505  WRITE(ntex,*) '\end{tabular}'
506 !
507 !-------------------------------------------------------------------------------
508 !
509  WRITE(ntex,*) '\clearpage'
510 !
511 ENDDO
512 !-------------------------------------------------------------------------------
513 !
514 !
515 ji=0
516 DO
517  IF (ji==jpcover) EXIT
518 
519  IF (clang=='EN') THEN
520  WRITE(ntex,*) '{\bf other vegetation parameters} (1) (patch ',jpatch,'/',kpatch,') \\'
521  ELSE
522  WRITE(ntex,*) "{\bf autres param\`etres de v\'eg\'etation} (1) (partition ",jpatch,'/',kpatch,') \\'
523  END IF
524  WRITE(ntex,*) '\medskip\'
525  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c||}'
526  WRITE(NTEX,*) '\hline'
527  WRITE(NTEX,*) '\hline'
528  WRITE(NTEX,*) &
529  '&&$\alpha_{nir}$&$\alpha_{vis}$&$\alpha_{uv}$&$r_{s_{min}}$&$\gamma$&$rgl$&$c_{w_{r_{max}}}$&$z_0$/$z_{0_h}$&$c_v$'
530  WRITE(NTEX,*) '\hline'
531  WRITE(NTEX,*) '\hline'
532  JIP=0
533  DO
534  IF (JI==JPCOVER) EXIT
535  JI=JI+1
536 .AND..AND. IF (ZLAI(JI,JPATCH,1)>0. ZVEG(JI,JPATCH,1)>0. ZVEG(JI,JPATCH,1)/=XUNDEF) THEN
537  JIP=JIP+1
538  WRITE(YSTRING6, FMT='(f3.2)') ZALBNIR_VEG(JI,JPATCH)
539  YDATA_VEGPARAM(4) = YSTRING6
540  WRITE(YSTRING6, FMT='(f3.2)') ZALBVIS_VEG(JI,JPATCH)
541  YDATA_VEGPARAM(5) = YSTRING6
542  WRITE(YSTRING6, FMT='(f3.2)') ZALBUV_VEG (JI,JPATCH)
543  YDATA_VEGPARAM(6) = YSTRING6
544  ZRSMIN(JI,JPATCH) = NINT(ZRSMIN(JI,JPATCH))
545  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(ZRSMIN(JI,JPATCH)),'.',DEC(ZRSMIN(JI,JPATCH)),')'
546  WRITE(YSTRING6, FMT=YFMT) ZRSMIN(JI,JPATCH)
547  YDATA_VEGPARAM(7) = YSTRING6
548  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NBT(ZGAMMA(JI,JPATCH)),'.',DEC(ZGAMMA(JI,JPATCH)),')'
549  WRITE(YSTRING6, FMT=YFMT) ZGAMMA(JI,JPATCH)
550  YDATA_VEGPARAM(8) = YSTRING6
551  ZRGL(JI,JPATCH) = NINT(ZRGL(JI,JPATCH))
552  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(ZRGL(JI,JPATCH)),'.',DEC(ZRGL(JI,JPATCH)),')'
553  WRITE(YSTRING6, FMT=YFMT) ZRGL(JI,JPATCH)
554  YDATA_VEGPARAM(9) = YSTRING6
555  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NBT(ZWRMAX_CF(JI,JPATCH)),'.',DEC(ZWRMAX_CF(JI,JPATCH)),')'
556  WRITE(YSTRING6, FMT=YFMT) ZWRMAX_CF(JI,JPATCH)
557  YDATA_VEGPARAM(10) = YSTRING6
558  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(ZZ0_O_Z0H(JI,JPATCH)),'.',DEC(ZZ0_O_Z0H(JI,JPATCH)),')'
559  WRITE(YSTRING6, FMT=YFMT) ZZ0_O_Z0H(JI,JPATCH)
560  YDATA_VEGPARAM(11) = YSTRING6
561  WRITE(YFMT,'(a2,i1,a1,i1,a5)') '(f',NB(10000. *ZCV(JI,JPATCH)),'.',DEC(10000. *ZCV(JI,JPATCH)),',a10)'
562  WRITE(YDATA_CV, FMT=YFMT) 10000. *ZCV(JI,JPATCH),' $10^{-4}$'
563 
564  WRITE(NTEX, FMT=*) &
565  JI,' & ',CNAME(JI),' & ', &
566  YDATA_VEGPARAM(4),' & ',YDATA_VEGPARAM(5),' & ', &
567  YDATA_VEGPARAM(6),' & ',YDATA_VEGPARAM(7),' & ', &
568  YDATA_VEGPARAM(8),' & ',YDATA_VEGPARAM(9),' & ', &
569  YDATA_VEGPARAM(10),' & ',YDATA_VEGPARAM(11),' & ', &
570  YDATA_CV,' '
571  WRITE(NTEX,*) '\hline'
572  GLINE=.TRUE.
573  END IF
574  CALL HLINE(NTEX,GLINE,JI)
575  IF (JIP==NLINES) EXIT
576  END DO
577  WRITE(NTEX,*) '\end{tabular}'
578 !
579 !-------------------------------------------------------------------------------
580 !
581  WRITE(NTEX,*) '\clearpage'
582 !
583 ENDDO
584 !-------------------------------------------------------------------------------
585 !
586 !
587 JI=0
588 DO
589  IF (JI==JPCOVER) EXIT
590 
591  IF (CLANG=='en') THEN
592  WRITE(NTEX,*) '{\bf other vegetation parameters} (2) (patch ',JPATCH,'/',KPATCH,') '
593  ELSE
594  WRITE(NTEX,*) "{\bf autres param\`etres de v\'eg\'etation} (2) (partition ",JPATCH,'/',KPATCH,') '
595  END IF
596  WRITE(NTEX,*) '\medskip
597  WRITE(ntex,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c||}'
598  WRITE(ntex,*) '\hline'
599  WRITE(ntex,*) '\hline'
600  WRITE(ntex,*) '&&$gm$&$B/lai$&$lai_{_{m}}$&$e_{_{fold}}$&$G_c$&$D_{max}$&$f_{2i}$&stress&Re$_{25}$\\'
601  WRITE(ntex,*) '\hline'
602  WRITE(ntex,*) '\hline'
603  jip=0
604  DO
605  IF (ji==jpcover) EXIT
606  ji=ji+1
607 
608  IF (zlai(ji,jpatch,1)>0. .AND. zveg(ji,jpatch,1)>0. .AND. zveg(ji,jpatch,1)/=xundef) THEN
609  jip=jip+1
610  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nbt(zgmes(ji,jpatch)),'.',dec(zgmes(ji,jpatch)),')'
611  WRITE(ystring6, fmt=yfmt) zgmes(ji,jpatch)
612  ydata_vegparam(1) = ystring6
613  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nbt(zbslai(ji,jpatch)),'.',dec(zbslai(ji,jpatch)),')'
614  WRITE(ystring6, fmt=yfmt) zbslai(ji,jpatch)
615  ydata_vegparam(2) = ystring6
616  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nbt(zlaimin(ji,jpatch)),'.',dec(zlaimin(ji,jpatch)),')'
617  WRITE(ystring6, fmt=yfmt) zlaimin(ji,jpatch)
618  ydata_vegparam(3) = ystring6
619  zsefold(ji,jpatch) = nint(zsefold(ji,jpatch)/xday)
620  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nb(zsefold(ji,jpatch)),'.',dec(zsefold(ji,jpatch)),')'
621  WRITE(ystring6, fmt=yfmt) zsefold(ji,jpatch)
622  ydata_vegparam(4) = ystring6
623  WRITE(yfmt,'(A2,I1,A1,I1,A5)') '(F',nb(10000. *zgc(ji,jpatch)),'.',dec(10000. *zgc(ji,jpatch)),',A10)'
624  WRITE(ydata_cv, fmt=yfmt) 10000. *zgc(ji,jpatch),' $10^{-4}$'
625  IF (zdmax(ji,jpatch) /= xundef)THEN
626  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nbt(zdmax(ji,jpatch)),'.',dec(zdmax(ji,jpatch)),')'
627  WRITE(ystring6, fmt=yfmt) zdmax(ji,jpatch)
628  ELSE
629  ystring6 =' - '
630  ENDIF
631  ydata_vegparam(5) = ystring6
632  IF (gstress(ji,jpatch,1)) THEN
633  ydata_stress='def.'
634  ELSE
635  ydata_stress='off.'
636  END IF
637  WRITE(yfmt,'(A2,I1,A1,I1,A1)') '(F',nbt(zf2i(ji,jpatch,1)),'.',dec(zf2i(ji,jpatch,1)),')'
638  WRITE(ystring6, fmt=yfmt) zf2i(ji,jpatch,1)
639  ydata_vegparam(6) = ystring6
640  WRITE(yfmt,'(A2,I1,A1,I1,A5)') '(F',nb(10000000. *zre25(ji,jpatch)),'.',dec(10000000. *zre25(ji,jpatch)),',A10)'
641  WRITE(ydata_re25, fmt=yfmt) 10000000. *zre25(ji,jpatch),' $10^{-7}$'
642  WRITE(ntex, fmt=*) &
643  ji,' & ',cname(ji),' & ', &
644  ydata_vegparam(1),' & ',ydata_vegparam(2),' & ', &
645  ydata_vegparam(3),' & ',ydata_vegparam(4),' & ', &
646  ydata_cv, ' & ',ydata_vegparam(5),' & ', &
647  ydata_vegparam(6),' & ', &
648  ydata_stress ,' & ',ydata_re25,' \\'
649  WRITE(ntex,*) '\hline'
650  gline=.true.
651  END IF
652  CALL hline(ntex,gline,ji)
653  IF (jip==nlines) EXIT
654  END DO
655  WRITE(ntex,*) '\end{tabular}'
656 !
657 !-------------------------------------------------------------------------------
658 !
659  WRITE(ntex,*) '\clearpage'
660 
661  END DO
662 !
663 END DO
664 IF (lhook) CALL dr_hook('WRITE_COVER_TEX_ISBA_PAR',1,zhook_handle)
665 !
666 !-------------------------------------------------------------------------------
667 !
668 !
669 END SUBROUTINE write_cover_tex_isba_par
subroutine write_cover_tex_isba_par(DTCO, I, KPATCH, KLAYER, HISBA, HPHOTO, PSOILGRID)
integer function nbt(PX, KMAX)
subroutine convert_cover_isba(DTCO, I, HISBA, KDECADE, PCOVER, OCOVER, HPHOTO, HSFTYPE, PVEG, PLAI, PRSMIN, PGAMMA, PWRMAX_CF, PRGL, PCV, PSOILGRID, PPERM, PDG, KWG_LAYER, PDROOT, PDG2, PD_ICE, PZ0, PZ0_O_Z0H, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PEMIS_ECO, PVEGTYPE, PROOTFRAC, PGMES, PBSLAI, PLAIMIN, PSEFOLD, PGC, PDMAX, PF2I, OSTRESS, PH_TREE, PRE25, PCE_NITRO, PCF_NITRO, PCNA_NITRO, TPSEED, TPREAP, PWATSUP, PIRRIG, PGNDLITTER, PLAIGV, PRSMINGV, PGAMMAGV, PWRMAX_CFGV, PRGLGV, PROOTFRACGV, PZ0LITTER, PH_VEG)
integer function dec(PX, KMAX)
integer function nb(PX, KMAX)
subroutine hline(KTEX, GLINE, I)