SURFEX v8.1
General documentation of Surfex
write_cover_tex_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 write_cover_tex_isba(KPATCH,KLAYER,HISBA)
7 ! ##########################
8 !
9 !!**** *WRITE_COVER_TEX* writes the ISBA data arrays into a tex file
10 !!
11 !! PURPOSE
12 !! -------
13 !!
14 !! METHOD
15 !! ------
16 !!
17 !!
18 !! EXTERNAL
19 !! --------
20 !!
21 !! IMPLICIT ARGUMENTS
22 !! ------------------
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !! AUTHOR
28 !! ------
29 !!
30 !! V. Masson Meteo-France
31 !!
32 !! MODIFICATION
33 !! ------------
34 !!
35 !! Original 08/01/98
36 !!
37 !! R. Alkama 05/2012 : from 12 to 19 vegtype
38 !----------------------------------------------------------------------------
39 !
40 !* 0. DECLARATION
41 ! -----------
42 !
43 !
44 !
46 !
48 USE modd_surf_par, ONLY : xundef
49 USE modd_data_cover, ONLY : xdata_nature, &
52 
53 USE modd_data_cover_par, ONLY : jpcover, nvegtype, nvt_no, nvt_rock, &
54  nvt_snow, nvt_tebd, nvt_bone, nvt_trbe, &
55  nvt_c3, nvt_c4, nvt_irr, nvt_gras, &
56  nvt_trog,nvt_park, nvt_trbd, nvt_tebe, &
57  nvt_tene, nvt_bobd, nvt_bond, nvt_bogr, &
58  nvt_shrb, nvt_c3w, nvt_c3s, nvt_fltr, &
59  nvt_flgr
60 !
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 INTEGER, INTENT(IN) :: KPATCH! number of patch
72 INTEGER, INTENT(IN) :: KLAYER! number of soil layers
73  CHARACTER(LEN=*), INTENT(IN) :: HISBA ! type of soil (Force-Restore OR Diffusion)
74 !
75 !* 0.2 Declaration of local variables
76 ! ------------------------------
77 !
78 !
79 INTEGER :: I,J
80 !
81  CHARACTER(LEN=5), DIMENSION(NVEGTYPE) :: YDATA_VEGTYPE ! vegetation type
82  CHARACTER(LEN=6), DIMENSION(12 ) :: YDATA_VEGPARAM! vegetation parameters
83  CHARACTER(LEN=6) :: YSTRING6
84  CHARACTER(LEN=6), DIMENSION(12 ) :: YDATA_MONTH ! monthly veg. parameters
85 !
86  CHARACTER(LEN=40),DIMENSION(2) :: YPATCH ! titles for each vegtype
87 !
88  CHARACTER(LEN=20) :: YFMT ! fortran format
89 !
90 INTEGER :: JPAGE ! current page when the number of classes
91  ! is too long to stand on one page only
92 INTEGER :: IP ! number of cover types on the current page
93 INTEGER :: JVEGTYPE ! loop counter
94 !
95 !
96 LOGICAL :: GLINE ! flag to write an additional horizontal line
97 REAL(KIND=JPRB) :: ZHOOK_HANDLE
98 !
99 !-------------------------------------------------------------------------------
100 !
101 IF (lhook) CALL dr_hook('WRITE_COVER_TEX_ISBA',0,zhook_handle)
102 IF (ntex==0 .AND. lhook) CALL dr_hook('WRITE_COVER_TEX_ISBA',1,zhook_handle)
103 IF (ntex==0) RETURN
104 gline=.false.
105 !
106 !
107 i=0
108 
109 DO
110 
111  IF (i==jpcover) EXIT
112 
113  IF (clang=='EN') THEN
114  WRITE(ntex,*) '{\bf vegetation type and main ISBA parameters$^\star$}\\'
115  ELSE
116  WRITE(ntex,*) "{\bf type de v\'eg\'etation et param\`etres principaux d'ISBA $^\star$}\\"
117  END IF
118  WRITE(ntex,*) '\medskip\'
119  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c||}'
120  WRITE(NTEX,*) '\hline'
121  WRITE(NTEX,*) '\hline'
122 !
123 !* WARNING: check the cover type order in ini_data_cover routine
124 !
125  IF (CLANG=='en') THEN
126  WRITE(NTEX, '("&&bare&rocks&snow&broad.d&needl.e&ever-&C3&C4&irr.&grass&grass&irr. ")', ADVANCE='no')
127  WRITE(NTEX, '("broad.d&broad.e&needl.e&broad.d&needl.d&grass&shrubs\\")')
128  WRITE(NTEX, '("&&land&&&temp.&boreal&green&crops&crops&crops&C3&C4&grass&trop. ")', ADVANCE='no')
129  WRITE(NTEX, '("temp.&temp.&boreal&boreal&boreal&broad.\\")')
130  ELSE
131  WRITE(NTEX, '("&&sol&roc&neige&feuillu.d&coni.p&persis-&C3&C4&cult.&prairie&prairie ")', ADVANCE='no')
132  WRITE(NTEX, '("pelouse&feuillu.d&feuillu.p&aigui.p&feuillu.d&aigui.d&prairie&arbuste\\")')
133  WRITE(NTEX, '("&&nu&&&temp.&boreale&tants&cult.&cult.&irr.&&tropicale&&tropi.&temp. ")', ADVANCE='no')
134  WRITE(NTEX, '("temp.&boreale&boreale&boreale\\")')
135  END IF
136  WRITE(NTEX,*) '\hline'
137  WRITE(NTEX,*) '\hline'
138  IP=0
139  DO
140 
141  IF (I==JPCOVER) EXIT
142  I=I+1
143  IF (XDATA_NATURE(I)>0.) THEN
144  IP=IP+1
145  DO J=1,NVEGTYPE
146  IF (XDATA_VEGTYPE(I,J)==0.) THEN
147  YDATA_VEGTYPE(J) = ' '
148  ELSE
149  WRITE(YFMT,FMT='(a2,i1,a1,i1,a1)') '(f',NB(XDATA_VEGTYPE(I,J)),'.',DEC(XDATA_VEGTYPE(I,J)),')'
150  WRITE(YSTRING6, FMT=YFMT) XDATA_VEGTYPE(I,J)
151  YDATA_VEGTYPE(J) = YSTRING6
152  END IF
153  END DO
154 
155  WRITE(NTEX, FMT=*) &
156  I,' & ',CNAME(I ),' & ',YDATA_VEGTYPE(1 ),' & ',YDATA_VEGTYPE(2 ),' & ',&
157  YDATA_VEGTYPE(3 ),' & ',YDATA_VEGTYPE(4 ),' & ',YDATA_VEGTYPE(5 ),' & ',&
158  YDATA_VEGTYPE(6 ),' & ',YDATA_VEGTYPE(7 ),' & ',YDATA_VEGTYPE(8 ),' & ',&
159  YDATA_VEGTYPE(9 ),' & ',YDATA_VEGTYPE(10),' & ',YDATA_VEGTYPE(11),' & ',&
160  YDATA_VEGTYPE(12),' & ',YDATA_VEGTYPE(13),' & ',YDATA_VEGTYPE(14),' & ',&
161  YDATA_VEGTYPE(15),' & ',YDATA_VEGTYPE(16),' & ',YDATA_VEGTYPE(17),' & ',&
162  YDATA_VEGTYPE(18),' & ',YDATA_VEGTYPE(19),' '
163  WRITE(NTEX,*) '\hline'
164  GLINE=.TRUE.
165  END IF
166  CALL HLINE(NTEX,GLINE,I)
167  IF (IP==NLINES) EXIT
168  END DO
169  WRITE(NTEX,*) '\end{tabular}'
170 !
171 !-------------------------------------------------------------------------------
172 !
173  WRITE(NTEX,*) '\clearpage'
174 !
175 END DO
176 !
177 !-------------------------------------------------------------------------------
178 !
179  IF (CLANG=='en') THEN
180  WRITE(NTEX,*) '{\bf computation of other isba parameters}
181  WRITE(ntex,*) '\medskip\'
182  WRITE(NTEX,*) "Vegetation type, Leaf area index and height of vegetation (for trees)"
183  WRITE(NTEX,*) "are used in these computations.\"
184  WRITE(NTEX,*) '\bigskip
185  WRITE(ntex,*) '\underline{vegetation fraction}\'
186  WRITE(NTEX,*) '\medskip
187  WRITE(ntex,*) '\begin{tabular}{rll}'
188  WRITE(ntex,*) 'veg = & $1-e^{-0.6 lai}$ & for C3, C4 and irrigated crops\\'
189  WRITE(ntex,*) 'veg = & 0.95 & for boreale, temperate, tropical and irrigated grass\\'
190  WRITE(ntex,*) 'veg = & 0.95 & for broadleaf and coniferous trees\\'
191  IF(xeverg_veg==0.99)THEN
192  WRITE(ntex,*) 'veg = & 0.99 & for evergreen broadleaf trees\\'
193  ELSE
194  WRITE(ntex,*) 'veg = & 1.00 & for evergreen broadleaf trees\\'
195  ENDIF
196  WRITE(ntex,*) 'veg = & 0. & for bare soil, snow and rocks'
197  WRITE(ntex,*) '\end{tabular}'
198  WRITE(ntex,*) '\smallskip\'
199  WRITE(NTEX,*) 'when averaging is needed, it is performed arithmetically'
200  WRITE(NTEX,*) "\bigskip\"
201  WRITE(NTEX,*) '\underline{roughness length for momentum}
202  WRITE(ntex,*) '\medskip\'
203  WRITE(NTEX,*) 'the height of the vegetation(or obstacles over bare soils) is computed as:
204  WRITE(ntex,*) '\begin{tabular}{rll}'
205  WRITE(ntex,*) '$h_{veg}$ = & min $(1. , h_{allen})$ & for C3 crops\\'
206  WRITE(ntex,*) '$h_{veg}$ = & min $(2.5, h_{allen})$ & for C4 and irrigated crops\\'
207  WRITE(ntex,*) '$h_{veg}$ = & $h$ & for broadleaf, coniferous and evergreen trees\\'
208  WRITE(ntex,*) '$h_{veg}$ = & $lai/6$ & for grassland, tropical grassland and irrigated grass\\'
209  WRITE(ntex,*) '$h_{veg}$ = & 0.1 m & for bare soil\\'
210  WRITE(ntex,*) '$h_{veg}$ = & 1. m & for rocks\\'
211  WRITE(ntex,*) '$h_{veg}$ = & 0.01 m & for permanent snow and ice'
212  WRITE(ntex,*) '\end{tabular}'
213  WRITE(ntex,*) '\smallskip\'
214  WRITE(NTEX,*) 'where $h_{allen} = e^{(lai-3.5)/1.3}$
215  WRITE(ntex,*) 'The roughness length is deduced: $z_{0} = 0.13 h_{veg}$\'
216  WRITE(NTEX,*) 'when averaging is needed, it is performed according to the'
217  WRITE(NTEX,*) '$1/{\rm ln}^2(\frac{z_{0}}{10})$ quantities.'
218  WRITE(NTEX,*) "\bigskip\"
219  WRITE(NTEX,*) '\underline{emissivity}
220  WRITE(ntex,*) "\medskip\"
221  WRITE(NTEX,*) "emissivity is equal to 0.97 on the vegetated part(veg), "
222  WRITE(NTEX,*) "to 0.94 on bare soil and rocks, and to 1. on snow."
223  WRITE(NTEX,*) "averaging is linear."
224  WRITE(NTEX,*) "\bigskip
225  WRITE(ntex,*) '\underline{cumulative root fraction}\'
226  WRITE(NTEX,*) "\smallskip\"
227  WRITE(NTEX,*) "\begin{displaymath}"
228  WRITE(NTEX,*) "F_{root} =(1-\delta) \left[ \frac{1-A^{100\times z}}"
229  WRITE(NTEX,*) "{1 - A^{100\times d_2}} \right] + \delta \frac{z}{d_2}"
230  WRITE(NTEX,*) "\end{displaymath}"
231  WRITE(NTEX,*) "where $d_2$ is root depth, given for each 215 ecosystem (meters),"
232  WRITE(NTEX,*) "$z$ is depth (meters, "
233  WRITE(NTEX,*) "positive downwards), $\delta=0.05$ and $A$ is the extinction"
234  WRITE(NTEX,*) "coefficient after Jackson (1996) (see below).\"
235  WRITE(NTEX,*) "Averaging is linear."
236  WRITE(NTEX,*) "\bigskip\"
237  WRITE(NTEX,*) '\underline{other vegetation parameters}
238  WRITE(ntex,*) "\medskip\"
239  WRITE(NTEX,*) 'Other vegetation parameters are computed from the vegetation types.'
240  WRITE(NTEX,*) "the 'bare soil', 'rocks' and 'snow' vegetation types are not pertinent."
241  WRITE(NTEX,*) 'When averaging is needed,'
242  WRITE(NTEX,*) 'it is performed linearly, except for the $C_v$ parameter, where it is harmonic.'
243  WRITE(NTEX,*) '\medskip\'
244  WRITE(NTEX,*) '\begin{tabular}{||l||c|c|c|c|c|c|c|c|c|c||}'
245  WRITE(NTEX,*) '\hline'
246  WRITE(NTEX,*) '&$\alpha_{nir}$&$\alpha_{vis}$&$r_{s_{min}}$&$\gamma$&$rgl$&$gm$&$B/lai$&$e_{_{fold}}$&$C_v$&$A$\\'
247  WRITE(NTEX,*) '\hline'
248  WRITE(NTEX,*) 'brodleaf trees & .25 & .05 & 150 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$ & 0.966 \\'
249  WRITE(NTEX,*) 'coniferous trees & .15 & .05 & 150 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$ & 0.943 \\'
250  IF(XEVERG_RSMIN==250.)THEN
251  WRITE(NTEX,*) 'evergreen broadleaf trees & .21 & .05 & 250 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$ & 0.962 \\'
252  ELSE
253  WRITE(NTEX,*) 'evergreen broadleaf trees & .21 & .05 & 175 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$ & 0.962 \\'
254  ENDIF
255  WRITE(NTEX,*) 'C3 crops & .30 & .10 & 40 & 0. & 100 & .003 & .06 & 60. & 2. $10^{-5}$& 0.961 \\'
256  WRITE(NTEX,*) 'C4 crops & .30 & .10 & 120 & 0. & 100 & .003 & .06 & 60. & 2. $10^{-5}$ & 0.972 \\'
257  WRITE(NTEX,*) 'irr. crops & .30 & .10 & 120 & 0. & 100 & .003 & .06 & 60. & 2. $10^{-5}$ & 0.961 \\'
258  WRITE(NTEX,*) 'grassland & .30 & .10 & 40 & 0. & 100 & .020 & .36 & 90. & 2. $10^{-5}$& 0.943 \\'
259  WRITE(NTEX,*) 'trop. grass & .30 & .10 & 120 & 0. & 100 & .020 & .36 & 90. & 2. $10^{-5}$ & 0.972 \\'
260  WRITE(NTEX,*) 'irr. grass & .30 & .10 & 40 & 0. & 100 & .020 & .36 & 90. & 2. $10^{-5}$& 0.943 \\'
261  WRITE(NTEX,*) '\hline'
262  WRITE(NTEX,*) '\end{tabular}'
263  ELSE
264  WRITE(NTEX,*) "{\bf calcul des autres param\`etres d'ISBA}\"
265  WRITE(NTEX,*) '\medskip
266  WRITE(ntex,*) "Les types de v\'eg\'etation, l'indice foliaire et la hauteur de la v\'eg\'etation (pour les arbres)"
267  WRITE(ntex,*) "sont utilis\'es dans ces calculs.\"
268  WRITE(NTEX,*) '\bigskip\'
269  WRITE(NTEX,*) "\underline{fraction de vegetation}
270  WRITE(ntex,*) '\medskip\'
271  WRITE(NTEX,*) "\begin{tabular}{rll}"
272  WRITE(NTEX,*) "veg = & $1-e^{-0.6 lai}$ & pour les cultures (C3, C4 et irrigu\'ees)\\"
273  WRITE(NTEX,*) "veg = & 0.95 & pour les arbres (feuillus, conif\`eres)\\"
274  IF(XEVERG_VEG==0.99)THEN
275  WRITE(NTEX,*) "veg = & 0.99 & pour les feuillus persistants\\"
276  ELSE
277  WRITE(NTEX,*) "veg = & 1.00 & pour les feuillus persistants\\"
278  ENDIF
279  WRITE(NTEX,*) "veg = & 0.95 & pour la prairie, la prairie tropicale et la pelouse irrigu\'ee\\"
280  WRITE(NTEX,*) "veg = & 0. & pour les sols nus, la neige \'eternelle et les rochers"
281  WRITE(NTEX,*) "\end{tabular}"
282  WRITE(NTEX,*) "\smallskip\"
283  WRITE(NTEX,*) "Quand une moyenne est n\'ecessaire, elle est arithm\'etique."
284  WRITE(NTEX,*) "\bigskip\"
285  WRITE(NTEX,*) "\underline{longueur de rugosit\'e pour la quantit\'e de mouvement}\"
286  WRITE(NTEX,*) '\medskip
287  WRITE(ntex,*) "La hauteur de la v\'eg\'etation (ou des obstacles sur les sols nus) est calcul\'ee ainsi:\"
288  WRITE(NTEX,*) "\begin{tabular}{rll}"
289  WRITE(NTEX,*) "$h_{veg}$ = & min $(1. , h_{allen})$ & pour les cultures(c3)"
290  WRITE(NTEX,*) "$h_{veg}$ = & min $(2.5, h_{allen})$ & pour les cultures(c4 et irriguees)"
291  WRITE(NTEX,*) "$h_{veg}$ = & $h$ & pour les arbres(feuillus, conif\`eres et persistants)"
292  WRITE(NTEX,*) "$h_{veg}$ = & $lai/6$ & pour la prairie, la prairie tropicale et la pelouse irriguee"
293  WRITE(NTEX,*) "$h_{veg}$ = & 0.1 m & pour le sol nu"
294  WRITE(NTEX,*) "$h_{veg}$ = & 1. m & pour les rochers"
295  WRITE(NTEX,*) "$h_{veg}$ = & 0.01 m & pour les neiges eternelles et glaciers"
296  WRITE(NTEX,*) "\end{tabular}"
297  WRITE(NTEX,*) "\smallskip
298  WRITE(ntex,*) "avec $h_{allen} = e^{(lai-3.5)/1.3}$\"
299  WRITE(NTEX,*) "la longueur de rugosite de la surface en est deduite:"
300  WRITE(NTEX,*) "$z_{0} = 0.13 h_{veg}$
301  WRITE(ntex,*) "Quand une moyenne est n\'ecessaire, elle s'effectue sur les"
302  WRITE(ntex,*) "$1/{\rm ln}^2(\frac{z_{0}}{10})$."
303  WRITE(ntex,*) "\bigskip\"
304  WRITE(NTEX,*) "\underline{emissivite}
305  WRITE(ntex,*) '\medskip\'
306  WRITE(NTEX,*) "L'emissivite est egale a 0.97 sur la partie vegetale(veg), "
307  WRITE(NTEX,*) "0.94 sur la partie sol nu et rochers, et 1 sur la neige."
308  WRITE(NTEX,*) "les moyennes sont lineaires."
309  WRITE(NTEX,*) "\bigskip
310  WRITE(ntex,*) "\underline{fraction cumul\'ee de racines}\"
311  WRITE(NTEX,*) "\medskip
312  WRITE(ntex,*) "\begin{displaymath}"
313  WRITE(ntex,*) "F_{root} =(1-\delta) \left[ \frac{1-A^{100\times z}}"
314  WRITE(ntex,*) "{1 - A^{100\times d}} \right] + \delta \frac{z}{d_2}"
315  WRITE(ntex,*) "\end{displaymath}"
316  WRITE(ntex,*) "o\`u $d_2$ est la profondeur racinaire, "
317  WRITE(ntex,*) "donn\'ee pour chacun des 215 ecosyst\`emes (m\`etres),"
318  WRITE(ntex,*) "$z$ est la profondeur (m\`etres, "
319  WRITE(ntex,*) "positive vers le bas), $\delta=0.05$ et $A$ est le"
320  WRITE(ntex,*) "coefficient d'extinction d'apr\`es Jackson (1996) (voir ci-dessous).\"
321  WRITE(NTEX,*) "les moyennes sont lineaires."
322  WRITE(NTEX,*) "\bigskip
323  WRITE(ntex,*) "\underline{autres param\`etres de v\'eg\'etation}\"
324  WRITE(NTEX,*) '\medskip\'
325  WRITE(NTEX,*) "les autres param\`etres de vegetation sont deduits des types de vegetation."
326  WRITE(NTEX,*) "les types 'sol nu', 'rochers' et 'neige' ne sont pas pertinents."
327  WRITE(NTEX,*) "quand une moyenne est necessaire, elle est lineaire, sauf sur le param\`etre"
328  WRITE(NTEX,*) "$c_v$, o\`u elle est harmonique."
329  WRITE(NTEX,*) '\medskip\'
330  WRITE(NTEX,*) '\begin{tabular}{||l||c|c|c|c|c|c|c|c|c|c||}'
331  WRITE(NTEX,*) '\hline'
332  WRITE(NTEX,*) '&$\alpha_{nir}$&$\alpha_{vis}$&$r_{s_{min}}$&$\gamma$&$rgl$&$gm$&$B/lai$&$e_{_{fold}}$&$C_v$&$A$\\'
333  WRITE(NTEX,*) '\hline'
334  WRITE(NTEX,*) 'feuillus & .25 & .05 & 150 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$& 0.966 \\'
335  WRITE(NTEX,*) 'conif\`eres & .15 & .05 & 150 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$& 0.943 \\'
336  IF(XEVERG_RSMIN==250.)THEN
337  WRITE(NTEX,*) 'feuillus persistans & .21 & .05 & 250 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$& 0.962 \\'
338  ELSE
339  WRITE(NTEX,*) 'feuillus persistans & .21 & .05 & 175 & .04 & 30 & .001 & .25 & 365. & 1. $10^{-5}$& 0.962 \\'
340  ENDIF
341  WRITE(NTEX,*) 'cultures C3 & .30 & .10 & 40 & 0. & 100 & .003 & .06 & 60. & 2. $10^{-5}$& 0.961 \\'
342  WRITE(NTEX,*) 'cultures C4 & .30 & .10 & 120 & 0. & 100 & .003 & .06 & 60. & 2. $10^{-5}$& 0.972 \\'
343  WRITE(NTEX,*) 'cultures irr. & .30 & .10 & 120 & 0. & 100 & .003 & .06 & 60. & 2. $10^{-5}$& 0.961 \\'
344  WRITE(NTEX,*) 'prairies & .30 & .10 & 40 & 0. & 100 & .020 & .36 & 90. & 2. $10^{-5}$&0.943 \\'
345  WRITE(NTEX,*) 'prairies trop. & .30 & .10 & 120 & 0. & 100 & .020 & .36 & 90. & 2. $10^{-5}$& 0.972 \\'
346  WRITE(NTEX,*) 'pelouse & .30 & .10 & 40 & 0. & 100 & .020 & .36 & 90. & 2. $10^{-5}$& 0.943 \\'
347  WRITE(NTEX,*) '\hline'
348  WRITE(NTEX,*) '\end{tabular}'
349  END IF
350 !
351 !-------------------------------------------------------------------------------
352 !
353  WRITE(NTEX,*) '\clearpage'
354 !
355 !-------------------------------------------------------------------------------
356 !-------------------------------------------------------------------------------
357 !
358 DO JVEGTYPE=1,NVEGTYPE
359  !
360  I=0
361  !
362  DO
363  !
364  IF (I==JPCOVER) EXIT
365  !
366  IF (JVEGTYPE==NVT_ROCK) YPATCH = (/ 'rocks ', &
367  'les rochers ' /)
368  IF (JVEGTYPE==NVT_SNOW) THEN
369  YPATCH(1) = 'permanent snow and ice '
370  YPATCH(2) = "les neiges eternelles "
371  END IF
372  IF (JVEGTYPE==NVT_NO ) YPATCH = (/ 'bare soil ', &
373  'le sol nu ' /)
374  IF (JVEGTYPE==NVT_GRAS) YPATCH = (/ 'grasslands ', &
375  'les prairies ' /)
376  IF (JVEGTYPE==NVT_BOGR) YPATCH = (/ 'tundra and boreal grass ', &
377  'les prairies boreale ' /)
378  IF (JVEGTYPE==NVT_TROG) YPATCH = (/ 'tropical grasslands ', &
379  'les prairies tropicales ' /)
380  IF (JVEGTYPE==NVT_PARK) THEN
381  YPATCH(1) = 'irrigated grass '
382  YPATCH(2) = "les pelouses irriguees "
383  END IF
384  IF (JVEGTYPE==NVT_FLTR) THEN
385  YPATCH(1) = 'flooded trees '
386  YPATCH(2) = "les arbres inondes "
387  END IF
388  IF (JVEGTYPE==NVT_FLGR) THEN
389  YPATCH(1) = 'flooded grassland '
390  YPATCH(2) = "les prairies inondees "
391  END IF
392  IF (JVEGTYPE==NVT_C3) YPATCH = (/ 'C3 crops ', &
393  'les cultures C3 ' /)
394  IF (JVEGTYPE==NVT_C3W) YPATCH = (/ 'C3W crops ', &
395  'les cultures C3 dhiver ' /)
396  IF (JVEGTYPE==NVT_C3S) YPATCH = (/ 'C3S crops ', &
397  'les cultures C3 dete ' /)
398  IF (JVEGTYPE==NVT_C4) YPATCH = (/ 'C4 crops ', &
399  'les cultures C4 ' /)
400  IF (JVEGTYPE==NVT_IRR ) THEN
401  YPATCH(1) = 'irrigated crops '
402  YPATCH(2) = "les cultures irriguees "
403  END IF
404  IF (JVEGTYPE==NVT_TEBD) YPATCH = (/ 'temperate broadleaf deciduous', &
405  'les feuillus decidus tempere ' /)
406  IF (JVEGTYPE==NVT_BONE) YPATCH = (/ 'boreal needleleaf evergreen ', &
407  'coniferes boreale persistant ' /)
408  IF (JVEGTYPE==NVT_TRBE) THEN
409  YPATCH(1) = 'equatorial evergreen forest '
410  YPATCH(2) = "les for\^ets equatoriales"
411  END IF
412  IF (JVEGTYPE==NVT_TRBD) YPATCH = (/ 'tropical broadleaf deciduous ', &
413  'feuillus decidus tropical ' /)
414  IF (JVEGTYPE==NVT_TEBE) YPATCH = (/ 'temperate broadleaf evergreen', &
415  'feuillus tempere persistant ' /)
416  IF (JVEGTYPE==NVT_TENE) YPATCH = (/ 'temperate needle. evergreen ', &
417  'coniferes tempere persistant ' /)
418  IF (JVEGTYPE==NVT_BOBD) YPATCH = (/ 'boreal broadleaf deciduous ', &
419  'coniferes decidus boreale ' /)
420  IF (JVEGTYPE==NVT_BOND) YPATCH = (/ 'boreal needleleaf deciduous ', &
421  'coniferes decidus boreale ' /)
422  IF (JVEGTYPE==NVT_SHRB) YPATCH = (/ 'broadleaf shrub ', &
423  'arbustes feuillus ' /)
424  !
425 .OR..OR. IF (JVEGTYPE==NVT_ROCK JVEGTYPE==NVT_SNOW JVEGTYPE==NVT_NO) THEN
426  IF (CLANG=='EN') THEN
427  WRITE(NTEX,*) '{\bf Ground depths for : ',YPATCH(1),'}\\'
428  ELSE
429  WRITE(NTEX,*) "{\bf profondeurs de sol pour : ",YPATCH(2),'}\\'
430  END IF
431 
432  WRITE(NTEX,*) '\medskip\'
433  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c||}'
434  WRITE(NTEX,*) '\hline'
435  WRITE(NTEX,*) '\hline'
436  WRITE(NTEX,*) '&&$d_2$&$d_3$\\'
437  WRITE(NTEX,*) '\hline'
438  WRITE(NTEX,*) '\hline'
439  ELSE
440  IF (CLANG=='EN') THEN
441  WRITE(NTEX,*) '{\bf Leaf Area Index and ground depths for : ',YPATCH(1),'}\\'
442  ELSE
443  WRITE(NTEX,*) "{\bf indice foliaire et profondeurs de sol pour : ",YPATCH(2),'}\\'
444  END IF
445  !
446 .OR..OR..OR. IF (JVEGTYPE==NVT_TEBD JVEGTYPE==NVT_BONE JVEGTYPE==NVT_TRBE &
447 .OR..OR..OR. JVEGTYPE==NVT_TRBD JVEGTYPE==NVT_TEBE JVEGTYPE==NVT_TENE &
448 .OR..OR. JVEGTYPE==NVT_BOBD JVEGTYPE==NVT_BOND JVEGTYPE==NVT_SHRB ) THEN
449  WRITE(NTEX,*) '\medskip\'
450  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||c|c||c||}'
451  WRITE(NTEX,*) '\hline'
452  WRITE(NTEX,*) '\hline'
453  WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12&$d_2$&$d_3$&$h$\\'
454  WRITE(NTEX,*) '\hline'
455  WRITE(NTEX,*) '\hline'
456  ELSE
457  WRITE(NTEX,*) '\medskip\'
458  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c|c|c|c|c|c|c|c||c|c||}'
459  WRITE(NTEX,*) '\hline'
460  WRITE(NTEX,*) '\hline'
461  WRITE(NTEX,*) '&&01&02&03&04&05&06&07&08&09&10&11&12&$d_2$&$d_3$\\'
462  WRITE(NTEX,*) '\hline'
463  WRITE(NTEX,*) '\hline'
464  END IF
465  END IF
466 
467  IP=0
468  DO
469  IF (I==JPCOVER) EXIT
470  I=I +1
471  !
472  IF (XDATA_VEGTYPE(I,JVEGTYPE)>0.) THEN
473  IP=IP+1
474  !
475  DO J=1,12
476  IF (XDATA_LAI(I,J,JVEGTYPE)==0.) THEN
477  YDATA_MONTH(J) = ' - '
478  ELSE
479  WRITE(YFMT,FMT='(A2,I1,A1,I1,A1)') '(F',NB(XDATA_LAI(I,3*J-1,JVEGTYPE)),'.',DEC(XDATA_LAI(I,3*J-1,JVEGTYPE)),')'
480  WRITE(YSTRING6, FMT=YFMT) XDATA_LAI(I,3*J-1,JVEGTYPE)
481  YDATA_MONTH(J) = YSTRING6
482  END IF
483  END DO
484  !
485  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_ROOT_DEPTH(I,JVEGTYPE)),'.',DEC(XDATA_ROOT_DEPTH(I,JVEGTYPE)),')'
486  WRITE(YSTRING6, FMT=YFMT) XDATA_ROOT_DEPTH(I,JVEGTYPE)
487  YDATA_VEGPARAM(1) = YSTRING6
488  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_GROUND_DEPTH(I,JVEGTYPE)),'.',DEC(XDATA_GROUND_DEPTH(I,JVEGTYPE)),')'
489  WRITE(YSTRING6, FMT=YFMT) XDATA_GROUND_DEPTH(I,JVEGTYPE)
490  YDATA_VEGPARAM(2) = YSTRING6
491  !
492  IF (JVEGTYPE==NVT_TEBD) THEN
493  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_TEBD)),'.',DEC(XDATA_H_TREE(I,NVT_TEBD)),')'
494  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_TEBD)
495  YDATA_VEGPARAM(3) = YSTRING6
496  ELSE IF (JVEGTYPE==NVT_BONE) THEN
497  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_BONE)),'.',DEC(XDATA_H_TREE(I,NVT_BONE)),')'
498  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_BONE)
499  YDATA_VEGPARAM(3) = YSTRING6
500  ELSE IF (JVEGTYPE==NVT_TRBE) THEN
501  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_TRBE)),'.',DEC(XDATA_H_TREE(I,NVT_TRBE)),')'
502  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_TRBE)
503  YDATA_VEGPARAM(3) = YSTRING6
504  ELSE IF (JVEGTYPE==NVT_TRBD) THEN
505  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_TRBD)),'.',DEC(XDATA_H_TREE(I,NVT_TRBD)),')'
506  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_TRBD)
507  YDATA_VEGPARAM(3) = YSTRING6
508  ELSE IF (JVEGTYPE==NVT_TEBE) THEN
509  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_TEBE)),'.',DEC(XDATA_H_TREE(I,NVT_TEBE)),')'
510  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_TEBE)
511  YDATA_VEGPARAM(3) = YSTRING6
512  ELSE IF (JVEGTYPE==NVT_TENE) THEN
513  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_TENE)),'.',DEC(XDATA_H_TREE(I,NVT_TENE)),')'
514  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_TENE)
515  YDATA_VEGPARAM(3) = YSTRING6
516  ELSE IF (JVEGTYPE==NVT_BOBD) THEN
517  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_BOBD)),'.',DEC(XDATA_H_TREE(I,NVT_BOBD)),')'
518  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_BOBD)
519  YDATA_VEGPARAM(3) = YSTRING6
520  ELSE IF (JVEGTYPE==NVT_BOND) THEN
521  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_BOND)),'.',DEC(XDATA_H_TREE(I,NVT_BOND)),')'
522  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_BOND)
523  YDATA_VEGPARAM(3) = YSTRING6
524  ELSE IF (JVEGTYPE==NVT_SHRB) THEN
525  WRITE(YFMT,'(A2,I1,A1,I1,A1)') '(F',NB(XDATA_H_TREE(I,NVT_SHRB)),'.',DEC(XDATA_H_TREE(I,NVT_SHRB)),')'
526  WRITE(YSTRING6, FMT=YFMT) XDATA_H_TREE(I,NVT_SHRB)
527  YDATA_VEGPARAM(3) = YSTRING6
528  ELSE
529  YDATA_VEGPARAM(3) = ' '
530  END IF
531  !
532 .OR..OR..OR. IF (JVEGTYPE==NVT_TEBD JVEGTYPE==NVT_BONE JVEGTYPE==NVT_TRBE &
533 .OR..OR..OR. JVEGTYPE==NVT_TRBD JVEGTYPE==NVT_TEBE JVEGTYPE==NVT_TENE &
534 .OR..OR. JVEGTYPE==NVT_BOBD JVEGTYPE==NVT_BOND JVEGTYPE==NVT_SHRB ) THEN
535  WRITE(NTEX, FMT=*) &
536  I,' & ',CNAME(I ),' & ',YDATA_MONTH(1 ), ' & ',YDATA_MONTH(2),' & ', &
537  YDATA_MONTH(3 ),' & ',YDATA_MONTH(4 ), ' & ',YDATA_MONTH(5),' & ', &
538  YDATA_MONTH(6 ),' & ',YDATA_MONTH(7 ), ' & ',YDATA_MONTH(8),' & ', &
539  YDATA_MONTH(9 ),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & ', &
540  YDATA_MONTH(12),' & ',YDATA_VEGPARAM(1),' & ',YDATA_VEGPARAM(2),' & ',YDATA_VEGPARAM(3),' \\'
541 .OR..OR. ELSE IF (JVEGTYPE==NVT_ROCK JVEGTYPE==NVT_SNOW JVEGTYPE==NVT_NO) THEN
542  WRITE(NTEX, FMT=*) &
543  I,' & ',CNAME(I),' & ',YDATA_VEGPARAM(1),' & ',YDATA_VEGPARAM(2),' \\'
544  ELSE
545  WRITE(NTEX, FMT=*) &
546  I,' & ',CNAME(I),' & ',YDATA_MONTH(1), ' & ',YDATA_MONTH(2), ' & ', &
547  YDATA_MONTH(3),' & ',YDATA_MONTH(4), ' & ',YDATA_MONTH(5), ' & ', &
548  YDATA_MONTH(6),' & ',YDATA_MONTH(7), ' & ',YDATA_MONTH(8), ' & ', &
549  YDATA_MONTH(9),' & ',YDATA_MONTH(10),' & ',YDATA_MONTH(11),' & ', &
550  YDATA_MONTH(12),' & ',YDATA_VEGPARAM(1),' & ',YDATA_VEGPARAM(2),' \\'
551  END IF
552  WRITE(NTEX,*) '\hline'
553  GLINE=.TRUE.
554  END IF
555  CALL HLINE(NTEX,GLINE,I)
556  IF (IP==NLINES) EXIT
557  END DO
558  !
559  WRITE(NTEX,*) '\end{tabular}'
560  !
561  WRITE(NTEX,*) '\clearpage'
562  END DO
563  !
564  !
565 !-------------------------------------------------------------------------------
566 END DO
567 IF (LHOOK) CALL DR_HOOK('WRITE_COVER_TEX_ISBA',1,ZHOOK_HANDLE)
568 !-------------------------------------------------------------------------------
569 !
570 END SUBROUTINE WRITE_COVER_TEX_ISBA
571 
ERROR in a
Definition: ecsort_shared.h:90
subroutine hline(KTEX, GLINE, I)
real, dimension(:,:), allocatable xdata_root_depth
real, dimension(:,:), allocatable xdata_vegtype
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
ERROR in n
Definition: ecsort_shared.h:90
logical lhook
Definition: yomhook.F90:15
subroutine write_cover_tex_isba(KPATCH, KLAYER, HISBA)
real, dimension(:,:), allocatable xdata_h_tree
subroutine veg(PSW_RAD, PTA, PQA, PPS, PRGL, PLAI, PRSMIN, PGAMMA, PF2, PRS)
Definition: veg.F90:8
subroutine isba(IO, KK, PK, PEK, G, AG, DK, DEK, DMK, TPTIME, PPOI
Definition: isba.F90:7
real, dimension(:,:,:), allocatable xdata_lai
subroutine soil(IO, KK, PK, PEK, DMI, PVEG, PCS, PFROZEN1, PFFG_N
Definition: soil.F90:7
real, dimension(:,:), allocatable xdata_ground_depth
character(len=60), dimension(:), allocatable cname
real, dimension(:), allocatable xdata_nature
integer, parameter nlines