The TELEMAC-MASCARET system  trunk
nomvar_sisyphe.f
Go to the documentation of this file.
1 ! *************************
2  SUBROUTINE nomvar_sisyphe
3 ! *************************
4 !
5  &(texte,textpr,mnemo,nsicla,unite,maxvar,npriv,nomblay,
6  & n_names_priv,names_prive,nadvar,names_advar)
7 !
8 !***********************************************************************
9 ! SISYPHE V7P1
10 !***********************************************************************
11 !
12 !brief GIVES THE VARIABLE NAMES FOR THE RESULTS AND
13 !+ GEOMETRY FILES.
14 !
15 !history E. PELTIER; C. LENORMANT; J.-M. HERVOUET
16 !+ 11/09/95
17 !+
18 !+
19 !
20 !history M. GONZALES DE LINARES; C.VILLARET
21 !+ 2003
22 !+
23 !+
24 !
25 !history JMH
26 !+ 03/11/2009
27 !+ V6P0
28 !+ MODIFIED AFTER JACEK JANKOWSKI DEVELOPMENTS
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 13/07/2010
32 !+ V6P0
33 !+ Translation of French comments within the FORTRAN sources into
34 !+ English comments
35 !
36 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
37 !+ 21/08/2010
38 !+ V6P0
39 !+ Creation of DOXYGEN tags for automated documentation and
40 !+ cross-referencing of the FORTRAN sources
41 !
42 !history CV + JMH (LNHE)
43 !+ 17/01/2012
44 !+ V6P2
45 !+ Adaptation to greater numbers of layers and classes (up to 99 each)
46 !
47 !history JWI (HRW)
48 !+ 14/06/2012
49 !+ V6P2
50 !+ Increment of one to include wave orbital velocities
51 !
52 !history PAT (LNHE)
53 !+ 18/06/2012
54 !+ V6P2
55 !+ updated version with HRW's development
56 !
57 !history J-M HERVOUET (EDF LAB, LNHE)
58 !+ 28/07/2015
59 !+ V7P1
60 !+ Adding the names of private variables.
61 !
62 !history S.E. BOURBAN (HRW)
63 !+ 20/06/2016
64 !+ V7P2
65 !+ Now taking into account names of differentiators given by user.
66 !
67 !history B.GLANDER (BAW)
68 !+ 06/12/2018
69 !+ V7P2
70 !+ NEW VARIABLE: ZRL REFERENCE LEVEL FOR NESTOR
71 !
72 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
73 !| MAXVAR |-->| MAXIMUM NUMBER OF OUTPUT VARIABLES
74 !| MNEMO |<--| SYMBOLS TO SPECIFY THE VARIABLES FOR OUTPUT
75 !| | | IN THE STEERING FILE
76 !| NOMBLAY |-->| NUMBER OF LAYERS
77 !| NPRIV |-->| NUMBER OF PRIVATE ARRAYS
78 !| NSICLA |-->| NUMBER OF SIZE CLASSES FOR BED MATERIALS
79 !| NSICLM |-->| NUMBER OF SIZE CLASSES FOR BED MATERIALS
80 !| TEXTE |<--| NAMES OF VARIABLES (PRINTOUT)
81 !| TEXTPR |<--| NAMES OF VARIABLES (INPUT)
82 !| UNIT |-->| LOGICAL, FILE NUMBER
83 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
84 !
86 !
88  IMPLICIT NONE
89 !
90 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
91 !
92  INTEGER, INTENT(IN) :: NSICLA,MAXVAR,NPRIV,NOMBLAY
93  INTEGER, INTENT(IN) :: N_NAMES_PRIV
94  INTEGER, INTENT(IN) :: NADVAR
95  CHARACTER(LEN=8), INTENT(INOUT) :: MNEMO(maxvar)
96  CHARACTER(LEN=32), INTENT(INOUT) :: TEXTE(maxvar),TEXTPR(maxvar)
97  CHARACTER(LEN=32), INTENT(IN) :: NAMES_PRIVE(n_names_priv)
98  CHARACTER(LEN=32), INTENT(IN) :: NAMES_ADVAR(*)
99  LOGICAL, INTENT(IN) :: UNITE
100 !
101 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
102 !
103  INTEGER I,J,K,ADD
104 !
105 ! LOCAL ARRAYS DIMENSIONED WITH FIXED PARAMETERS FROM
106 ! DECLARATIONS_SISYPHE. IT IS NOT A HIDDEN DYNAMIC ALLOCATION
107 !
108  CHARACTER(LEN=32) TEXTE_QS(nsiclm)
109  CHARACTER(LEN=32) TEXTE_CS(nsiclm),TEXTE_QSC(nsiclm)
110  CHARACTER(LEN=32) TEXTE_QSS(nsiclm),TEXTE_ES(nlaymax)
111  CHARACTER(LEN=8) MNEMO_QS(nsiclm)
112  CHARACTER(LEN=8) MNEMO_CS(nsiclm),MNEMO_ES(nlaymax)
113  CHARACTER(LEN=8) MNEMO_QSC(nsiclm),MNEMO_QSS(nsiclm)
114  CHARACTER(LEN=2) CLA,LAY
115  CHARACTER(LEN=32) TEXTE_CONC(nlaymax)
116  CHARACTER(LEN=8) MNEMO_CONC(nlaymax)
117 !
118  CHARACTER(LEN=2) CHAR2
119 !
120 !-----------------------------------------------------------------------
121 !
122  add=27+max(4,npriv)+nsicla*(nomblay+4)+2*nomblay
123 !
124  IF(add.GT.maxvar) THEN
125  WRITE(lu,*) 'NOMVAR_SISYPHE: MAXVAR SHOULD BE AT LEAST ',
126  & add
127  CALL plante(1)
128  stop
129  ENDIF
130 !
131 !-----------------------------------------------------------------------
132 !
133 ! 2 3RD FRACTION MEANS FRACTION OF SEDIMENT OF CLASS 3 IN 2ND LAYER
134 !
135  DO i=1,nsicla
136  DO j=1,nomblay
137  IF(j.LT.10) THEN
138  WRITE(lay,'(I1)') j
139  ELSEIF(j.LT.100) THEN
140  WRITE(lay,'(I2)') j
141  ELSE
142  WRITE (lu,*) 'NOMVAR_SISYPHE: NOT IMPLEMENTED FOR ',nomblay
143  WRITE (lu,*) ' LAYERS'
144  CALL plante(1)
145  stop
146  ENDIF
147  IF(i.LT.10) THEN
148  WRITE(cla,'(I1)') i
149  ELSEIF(i.LT.100) THEN
150  WRITE(cla,'(I2)') i
151  ELSE
152  WRITE (lu,*) 'NOMVAR_SISYPHE: NOT IMPLEMENTED FOR ',nsicla
153  WRITE (lu,*) ' CLASSES'
154  CALL plante(1)
155  stop
156  ENDIF
157 ! AVAIL: ALL LAYERS OF CLASS 1, THEN ALL LAYERS OF CLASS 2, ETC.
158 ! SAME ORDER AS IN POINT_SISYPHE
159  texte(23+(i-1)*nomblay+j)=trim('FRACLAY '//lay//' CL '//cla)
160  mnemo(23+(i-1)*nomblay+j)=trim(lay)//'A'//cla
161  ENDDO
162  ENDDO
163 !
164  DO j=1,nsicla
165  IF(j.LT.10) THEN
166  WRITE(cla,'(I1)') j
167  ELSEIF(j.LT.100) THEN
168  WRITE(cla,'(I2)') j
169  ELSE
170  WRITE (lu,*) 'NOMVAR_SISYPHE: NOT IMPLEMENTED FOR ',nsicla
171  WRITE (lu,*) ' CLASSES'
172  CALL plante(1)
173  stop
174  ENDIF
175  texte_qs(j) = trim('QS CLASS '//cla)
176  texte_qsc(j) = trim('QS BEDLOAD CL'//cla)
177  texte_qss(j) = trim('QS SUSP. CL'//cla)
178  IF(unite) THEN
179  texte_cs(j) = trim('CONC MAS CL'//cla)
180  texte_cs(j)(17:19) = 'G/L'
181  ELSE
182  texte_cs(j) = trim('CONC VOL CL'//cla)
183  ENDIF
184  mnemo_qs(j) = trim('QS'//cla)
185  mnemo_qsc(j) = trim('QSBL'//cla)
186  mnemo_qss(j) = trim('QSS'//cla)
187  mnemo_cs(j) = trim('CS'//cla)
188  ENDDO
189 !
190  DO k=1,nomblay
191  IF(k.LT.10) THEN
192  WRITE(lay,'(I1)') k
193  mnemo_es(k) = trim(lay)//'ES '
194  ELSEIF(k.LT.100) THEN
195  WRITE(lay,'(I2)') k
196  mnemo_es(k) = trim(lay)//'ES '
197  ELSE
198  WRITE (lu,*) 'NOMVAR_SISYPHE: NOT IMPLEMENTED FOR ',nomblay
199  WRITE (lu,*) ' LAYERS'
200  CALL plante(1)
201  stop
202  ENDIF
203  texte_es(k)(1:16) = 'LAYER'//lay//' THICKNES'
204  texte_es(k)(17:32) = 'M '
205  ENDDO
206 !
207  DO k=1,nomblay
208  IF(k.LT.10) THEN
209  WRITE(lay,'(I1)') k
210  mnemo_conc(k) = trim(lay)//'CONC '
211  ELSEIF(k.LT.100) THEN
212  WRITE(lay,'(I2)') k
213  mnemo_conc(k) = trim(lay)//'CONC '
214  ELSE
215  WRITE (lu,*) 'NOMVAR_SISYPHE: NOT IMPLEMENTED FOR ',nomblay
216  WRITE (lu,*) ' LAYERS'
217  CALL plante(1)
218  stop
219  ENDIF
220  texte_conc(k)(1:16) = 'LAYER'//lay//' CONC '
221  texte_conc(k)(17:32) = 'KG/L '
222  ENDDO
223 
224 !
225 !-----------------------------------------------------------------------
226 !
227  IF(lng.EQ.lng_en) THEN
228 !
229 ! ENGLISH VERSION
230 !
231  texte(01) = 'VELOCITY U M/S '
232  texte(02) = 'VELOCITY V M/S '
233  texte(03) = 'WATER DEPTH M '
234  texte(04) = 'FREE SURFACE M '
235  texte(05) = 'BOTTOM M '
236  texte(06) = 'FLOWRATE Q M3/S/M '
237  texte(07) = 'FLOWRATE QX M3/S/M '
238  texte(08) = 'FLOWRATE QY M3/S/M '
239  texte(09) = 'RIGID BED M '
240  texte(10) = 'FRICTION COEFT '
241  texte(11) = 'BED SHEAR STRESSN/M2 '
242  texte(12) = 'WAVE HEIGHT HM0 M '
243  texte(13) = 'PEAK PERIOD TPR5S '
244  texte(14) = 'MEAN DIRECTION DEG '
245  texte(15) = 'SOLID DISCH M2/S '
246  texte(16) = 'SOLID DISCH X M2/S '
247  texte(17) = 'SOLID DISCH Y M2/S '
248  texte(18) = 'EVOLUTION M '
249  texte(19) = 'RUGOSITE TOTALE M '
250  texte(20) = 'FROT. PEAU MU '
251  texte(21) = 'MEAN DIAMETER M '
252  texte(22) = 'BOTTOM VELOCITY M/S '
253  texte(23) = 'REFERENCE LEVEL M ' ! reference level for Nestor
254 
255  nvar_sis = 23
256 !
257  DO i=1,nsicla
258  texte(nvar_sis+i+nomblay*nsicla) = texte_qs(i)
259  mnemo(nvar_sis+i+nomblay*nsicla) = mnemo_qs(i)
260  texte(nvar_sis+i+(nomblay+1)*nsicla) = texte_cs(i)
261  mnemo(nvar_sis+i+(nomblay+1)*nsicla) = mnemo_cs(i)
262  ENDDO
263 !
264  add=nvar_sis+nsicla*(nomblay+2)
265  texte(1+add)='QS BEDLOAD M2/S '
266  texte(2+add)='QS BEDLOAD X M2/S '
267  texte(3+add)='QS BEDLOAD Y M2/S '
268  texte(4+add)='QS SUSPENSION M2/S '
269  texte(5+add)='QS SUSPENSION X M2/S '
270  texte(6+add)='QS SUSPENSION Y M2/S '
271 !
272  ELSE
273 !
274 ! FRENCH VERSION
275 !
276  texte(01) = 'VITESSE U M/S '
277  texte(02) = 'VITESSE V M/S '
278  texte(03) = 'HAUTEUR D''EAU M '
279  texte(04) = 'SURFACE LIBRE M '
280  texte(05) = 'FOND M '
281  texte(06) = 'DEBIT M3/S/M '
282  texte(07) = 'DEBIT QX M3/S/M '
283  texte(08) = 'DEBIT QY M3/S/M '
284  texte(09) = 'FOND RIGIDE M '
285  texte(10) = 'COEFT FROTTEMENT '
286  texte(11) = 'FROTTEMENT TOB N/M2 '
287  texte(12) = 'HAUTEUR HM0 M '
288  texte(13) = 'PERIODE PIC TPR5S '
289  texte(14) = 'DIRECTION MOY DEG '
290  texte(15) = 'DEBIT SOLIDE M2/S '
291  texte(16) = 'DEBIT SOLIDE X M2/S '
292  texte(17) = 'DEBIT SOLIDE Y M2/S '
293  texte(18) = 'EVOLUTION M '
294  texte(19) = 'RUGOSITE TOTALE.M '
295  texte(20) = 'CORR FROTT PEAU MU '
296  texte(21) = 'DIAMETRE MOYEN M '
297  texte(22) = 'VITESSE FOND M/S '
298  texte(23) = 'REFERENCE LEVEL M ' ! reference level for Nestor
299 
300  nvar_sis = 23
301 !
302  DO i=1,nsicla
303  texte(nvar_sis+i+nomblay*nsicla) = texte_qs(i)
304  mnemo(nvar_sis+i+nomblay*nsicla) = mnemo_qs(i)
305  texte(nvar_sis+i+(nomblay+1)*nsicla) = texte_cs(i)
306  mnemo(nvar_sis+i+(nomblay+1)*nsicla) = mnemo_cs(i)
307  ENDDO
308 !
309  add=nvar_sis+nsicla*(nomblay+2)
310  texte(1+add)='QS CHARRIAGE M2/S '
311  texte(2+add)='QS CHARRIAGE X M2/S '
312  texte(3+add)='QS CHARRIAGE Y M2/S '
313  texte(4+add)='QS SUSPENSION M2/S '
314  texte(5+add)='QS SUSPENSION X M2/S '
315  texte(6+add)='QS SUSPENSION Y M2/S '
316 !
317  ENDIF
318 !
319  add = nvar_sis + 6
320  DO i=1,nsicla
321  texte(add+i+nsicla*(nomblay+2)) = texte_qsc(i)
322  mnemo(add+i+nsicla*(nomblay+2)) = mnemo_qsc(i)
323  texte(add+i+nsicla*(nomblay+3)) = texte_qss(i)
324  mnemo(add+i+nsicla*(nomblay+3)) = mnemo_qss(i)
325  ENDDO
326 !
327  DO i=1,nomblay
328  texte(add+i+nsicla*(nomblay+4)) = texte_es(i)
329  mnemo(add+i+nsicla*(nomblay+4)) = mnemo_es(i)
330  ENDDO
331 !
332  DO i=1,nomblay
333  texte(add+i+nsicla*(nomblay+4)+nomblay) = texte_conc(i)
334  mnemo(add+i+nsicla*(nomblay+4)+nomblay) = mnemo_conc(i)
335  ENDDO
336 !
337  add=nvar_sis+6+nsicla*(nomblay+4)+2*nomblay
338 !
339  texte(1+add)='PRIVE 1 '
340  texte(2+add)='PRIVE 2 '
341  texte(3+add)='PRIVE 3 '
342  texte(4+add)='PRIVE 4 '
343 !
344 ! NPRIV MAY BE GREATER THAN 4
345 ! TEXTE(5+ADD)='PRIVE 5 '
346 !
347 ! IF NAMES OF PRIVATE VARIABLES GIVEN
348 !
349  IF(n_names_priv.GT.0) THEN
350  DO i=1,n_names_priv
351  texte(add+i)=names_prive(i)
352  ENDDO
353  ENDIF
354 !
355  DO i=1,4+add
356  textpr(i)=texte(i)
357  ENDDO
358 !
359 !-----------------------------------------------------------------------
360 !
361 ! OTHER NAMES FOR OUTPUT VARIABLES (STEERING FILE)
362 !
363 ! VELOCITY U
364  mnemo(1) = 'U '
365 ! VELOCITY V
366  mnemo(2) = 'V '
367 ! WATER DEPTH
368  mnemo(3) = 'H '
369 ! FREE SURFACE
370  mnemo(4) = 'S '
371 ! BOTTOM
372  mnemo(5) = 'B '
373 ! SCALAR FLOW RATE
374  mnemo(6) = 'Q '
375 ! SCALAR FLOW RATE X
376  mnemo(7) = 'I '
377 ! SCALAR FLOW RATE Y
378  mnemo(8) = 'J '
379 ! RIGID BED
380  mnemo(9) = 'R '
381 ! FRICTION COEFFICIENT
382  mnemo(10) = 'CHESTR '
383 ! MEAN BOTTOM FRICTION
384  mnemo(11) = 'TOB '
385 ! WAVE HEIGHT
386  mnemo(12) = 'W '
387 ! PEAK PERIOD
388  mnemo(13) = 'X '
389 ! WAVE DIRECTION
390  mnemo(14) = 'THETAW '
391 ! SOLID DISCHARGE
392  mnemo(15) = 'M '
393 ! SOLID DISCHARGE X
394  mnemo(16) = 'N '
395 ! SOLID DISCHARGE Y
396  mnemo(17) = 'P '
397 ! EVOLUTION
398  mnemo(18) = 'E '
399 ! KS
400  mnemo(19) = 'KS '
401 ! MU
402  mnemo(20) = 'MU '
403 ! D50
404  mnemo(21) = 'D50 '
405 !
406 ! wave orbital velocities
407  mnemo(22) = 'UWB '
408 ! reference level for nestor
409  mnemo(23) = 'ZRL '
410 !
411  mnemo(nvar_sis+1+nsicla*(nomblay+2)) = 'QSBL '
412  mnemo(nvar_sis+2+nsicla*(nomblay+2)) = 'QSBLX '
413  mnemo(nvar_sis+3+nsicla*(nomblay+2)) = 'QSBLY '
414  mnemo(nvar_sis+4+nsicla*(nomblay+2)) = 'QSSUSP '
415  mnemo(nvar_sis+5+nsicla*(nomblay+2)) = 'QSSUSPX '
416  mnemo(nvar_sis+6+nsicla*(nomblay+2)) = 'QSSUSPY '
417 
418  add=nvar_sis+6+nsicla*(nomblay+4)+2*nomblay
419  mnemo(1+add) = 'A '
420  mnemo(2+add) = 'G '
421  mnemo(3+add) = 'L '
422  mnemo(4+add) = 'O '
423 ! THE NUMBER OF PRIVATE ARRAYS IS A KEYWORD
424 ! MNEMO(31+ADD) = '????????'
425 !
426 !----------------------------
427  add=nsicla*(nomblay+4)+2*nomblay+nvar_sis+6+max(npriv,4)
428  IF(add.LT.maxvar) THEN
429  DO i=add+1,maxvar
430  mnemo(i) =' '
431  texte(i) =' '
432  textpr(i)=' '
433  ENDDO
434  ENDIF
435 !
436 !-----------------------------------------------------------------------
437 !
438 ! DIFFERENTIATORS
439 !
440  IF(nadvar.GT.0) THEN
441  DO i=1,nadvar
442  texte(add+i) = names_advar(i)
443  textpr(add+i) = names_advar(i)
444  WRITE(char2,'(I2)') i
445  mnemo(add+i) = 'AD'//adjustl(char2)//' '
446  ENDDO
447  ENDIF
448 !
449 !-----------------------------------------------------------------------
450 !
451  RETURN
452  END
subroutine nomvar_sisyphe(TEXTE, TEXTPR, MNEMO, NSICLA, UNITE, MAXVAR, NPRIV, NOMBLAY, N_NAMES_PRIV, NAMES_PRIVE, NADVAR, NAMES_ADVAR)
Definition: nomvar_sisyphe.f:8
integer, parameter lng_en
integer, parameter nsiclm
integer, parameter nlaymax