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