SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
write_cover_tex_cover.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_cover
7 ! ##########################
8 !
9 !!**** *WRITE_COVER_TEX* writes the cover 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 !----------------------------------------------------------------------------
38 !
39 !* 0. DECLARATION
40 ! -----------
41 !
42 !
43 !
45 
46 USE modd_write_cover_tex,ONLY : ntex, cname, clang, nlines
47 USE modd_surf_par, ONLY : xundef
48 USE modd_data_cover, ONLY : xdata_sea, xdata_water, xdata_nature, xdata_town
49 
50 USE modd_data_cover_par, ONLY : jpcover
51 !
52 !
53 USE yomhook ,ONLY : lhook, dr_hook
54 USE parkind1 ,ONLY : jprb
55 !
56 IMPLICIT NONE
57 !
58 !* 0.1 Declaration of arguments
59 ! ------------------------
60 !
61 !
62 !* 0.2 Declaration of local variables
63 ! ------------------------------
64 !
65 !
66 !
67 INTEGER :: i,ip
68 !
69  CHARACTER(LEN=5), DIMENSION(4 ) :: ydata_surftype! main surface type
70  CHARACTER(LEN=6) :: ystring6
71 !
72  CHARACTER(LEN=200):: yfmt ! fortran format
73 !
74 LOGICAL :: gline ! flag to write an additional horizontal line
75 REAL(KIND=JPRB) :: zhook_handle
76 !
77 !-------------------------------------------------------------------------------
78 !
79 IF (lhook) CALL dr_hook('WRITE_COVER_TEX_COVER',0,zhook_handle)
80 IF (ntex==0 .AND. lhook) CALL dr_hook('WRITE_COVER_TEX_COVER',1,zhook_handle)
81 IF (ntex==0) RETURN
82 gline = .false.
83 !
84 !
85 i=0
86 DO
87 
88  IF (i==jpcover) EXIT
89 
90  WRITE(ntex,*) '\medskip\'
91  WRITE(NTEX,*) '\begin{tabular}{||r|l||c|c|c|c|c||}'
92  WRITE(NTEX,*) '\hline'
93  WRITE(NTEX,*) '\hline'
94  IF (CLANG=='en') THEN
95  WRITE(NTEX,*) '&& urban and & cultivated and &inland waters&seas and'
96  WRITE(NTEX,*) '&cover type& artificial areas & natural areas&&oceans'
97  ELSE
98  WRITE(NTEX,*) "&& zones urbanis\'ees & zones cultiv\'ees &eaux int\'erieures& mers et\\"
99  WRITE(NTEX,*) "&Type de Surface& ou artificielles & ou naturelles &&oc\'eans\\"
100  END IF
101  WRITE(NTEX,*) '\hline'
102  WRITE(NTEX,*) '\hline'
103  IP=0
104  DO
105  IF (I==JPCOVER) EXIT
106  I=I+1
107  IF (XDATA_TOWN(I)+XDATA_NATURE(I)+XDATA_WATER(I)+XDATA_SEA(I)>0.) THEN
108  IP=IP+1
109  IF (XDATA_TOWN (I)==0.) THEN
110  YDATA_SURFTYPE(1) = ' '
111  ELSE
112  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(XDATA_TOWN(I)),'.',DEC(XDATA_TOWN(I)),')'
113  WRITE(YSTRING6, FMT=YFMT) XDATA_TOWN(I)
114  YDATA_SURFTYPE(1) = YSTRING6
115  END IF
116  IF (XDATA_NATURE(I)==0.) THEN
117  YDATA_SURFTYPE(2) = ' '
118  ELSE
119  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(XDATA_NATURE(I)),'.',DEC(XDATA_NATURE(I)),')'
120  WRITE(YSTRING6, FMT=YFMT) XDATA_NATURE(I)
121  YDATA_SURFTYPE(2) = YSTRING6
122  END IF
123  IF (XDATA_WATER (I)==0.) THEN
124  YDATA_SURFTYPE(3) = ' '
125  ELSE
126  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(XDATA_WATER(I)),'.',DEC(XDATA_WATER(I)),')'
127  WRITE(YSTRING6, FMT=YFMT) XDATA_WATER(I)
128  YDATA_SURFTYPE(3) = YSTRING6
129  END IF
130  IF (XDATA_SEA (I)==0.) THEN
131  YDATA_SURFTYPE(4) = ' '
132  ELSE
133  WRITE(YFMT,'(a2,i1,a1,i1,a1)') '(f',NB(XDATA_SEA(I)),'.',DEC(XDATA_SEA(I)),')'
134  WRITE(YSTRING6, FMT=YFMT) XDATA_SEA(I)
135  YDATA_SURFTYPE(4) = YSTRING6
136  END IF
137 
138  WRITE(NTEX, FMT=*) &
139  I,' & ',CNAME(I),' & ',YDATA_SURFTYPE(1),' & ',YDATA_SURFTYPE(2),' & ',&
140  YDATA_SURFTYPE(3),' & ', YDATA_SURFTYPE(4), ' '
141  GLINE=.TRUE.
142  WRITE(NTEX,*) '\hline'
143  CALL HLINE(NTEX,GLINE,I)
144  IF (IP==NLINES) EXIT
145  END IF
146 
147  END DO
148  WRITE(NTEX,*) '\end{tabular}'
149 !
150 !-------------------------------------------------------------------------------
151 !
152  WRITE(NTEX,*) '\clearpage'
153 !
154 !
155 ENDDO
156 IF (LHOOK) CALL DR_HOOK('write_cover_tex_cover',1,ZHOOK_HANDLE)
157 !
158 !-------------------------------------------------------------------------------
159 !
160 END SUBROUTINE WRITE_COVER_TEX_COVER
subroutine hline(KTEX, GLINE, I)