Salome HOME
et test telemac
[tools/eficas.git] / Telemac / telemac2d_cata_auto.py
1
2 # -*- coding: latin-1 -*-
3
4 from Accas import *
5 class DateJJMMAAAA:
6   def __init__(self):
7     self.ntuple=3
8
9   def __convert__(self,valeur):
10     if type(valeur) == types.StringType: return None
11     if len(valeur) != self.ntuple: return None
12     return valeur
13
14   def info(self):
15     return "Date : jj/mm/aaaa "
16
17   __repr__=info
18   __str__=info
19
20 class grma(GEOM):
21   pass
22
23 import types
24 class Tuple:
25   def __init__(self,ntuple):
26     self.ntuple=ntuple
27
28   def __convert__(self,valeur):
29     if type(valeur) == types.StringType:
30       return None
31     if len(valeur) != self.ntuple:
32       return None
33     return valeur
34
35   def info(self):
36     return "Tuple de %s elements" % self.ntuple
37
38
39
40 JdC = JDC_CATA (code = 'TELEMAC2D',
41                 execmodul = None,
42                 )
43 # =======================================================================
44 # Catalog entry for the MAP function : c_pre_interfaceBody_mesh
45 # =======================================================================
46
47 VERSION_CATALOGUE="TRUNK_20180306"
48 # -----------------------------------------------------------------------
49 COMPUTATION_ENVIRONMENT = PROC(nom= "COMPUTATION_ENVIRONMENT",op = None,
50 # -----------------------------------------------------------------------
51     UIinfo = {"groupes": ("CACHE")},
52 #   -----------------------------------
53     INITIALIZATION = FACT(statut='o',
54 #   -----------------------------------
55 #       -----------------------------------
56         TITLE = SIMP(statut ='o',
57 #       -----------------------------------
58             typ = 'TXM',
59             defaut = '',
60             fr = """Titre du cas etudie. Ce titre figurera sur les dessins.""",
61             ang = """Title of the case being considered. This title shall be marked on the
62 drawings.""",
63         ),
64 #       -----------------------------------
65         INITIAL_CONDITIONS = SIMP(statut ='o',
66 #       -----------------------------------
67             typ = 'TXM',
68             into = ['ZERO ELEVATION','CONSTANT ELEVATION','ZERO DEPTH','CONSTANT DEPTH','SPECIAL','PARTICULIERES','PARTICULAR','TPXO SATELLITE ALTIMETRY'],
69             defaut = 'ZERO ELEVATION',
70             fr = """Permet de definir les conditions initiales sur
71 les hauteurs d''eau.
72 Les valeurs possibles sont :
73    - COTE NULLE. Initialise la cote de surface libre a 0.
74            Les hauteurs d''eau initiales sont alors retrouvees en
75            faisant la difference entre les cotes de surface libre
76            et du fond.
77    - COTE CONSTANTE .Initialise la cote de surface libre a la
78            valeur donnee par le mot-cle COTE INITIALE. Les hauteurs
79            d''eau initiales sont calculees comme precedemment.
80    - HAUTEUR NULLE .Initialise les hauteurs d''eau a 0.
81    - HAUTEUR CONSTANTE. Initialise les hauteurs d''eau a la valeur
82            donnee par le mot-cle HAUTEUR INITIALE.
83    - PARTICULIERES. Les conditions initiales sur la hauteur d''eau
84            doivent etre precisees dans le sous-programme CONDIN.
85    - ALTIMETRIE SATELLITE TPXO. Les conditions initiales sur la hauteur
86            d''eau et les vitesses sont etiblies sur la base des donnees
87            satellite TPXO dont les 8 premiers constistuents
88 ont ete extrait
89            et sauves dans le fichier BASE DE DONNEES DE MAREE.""",
90             ang = """Makes it possible to define the initial conditions with
91 the water depth.
92 The possible values are as follows:
93    - ZERO ELEVATION-. Initializes the free surface elevation to 0.
94 The initial water depths are then found by computing the difference
95 between the free surface and the bottom.
96    - CONSTANT ELEVATION-. Initializes the water elevation to the value
97 given by the keyword -INITIAL ELEVATION-. The initial water depths
98 are computed as in the previous case.
99    - ZERO DEPTH-. Initializes the water depths to 0.
100    - CONSTANT DEPTH-. Initializes the water depths to the value given
101 by the key-word -INITIAL DEPTH-.
102    - SPECIAL-. The initial conditions with the water depth should be
103 stated in the CONDIN subroutine.
104    - TPXO SATELITE ALTIMETRY. The initial conditions on the
105 free surface and
106 velocities are established from the TPXO satellite program data,
107 the harmonic
108 constituents of which are stored in the TIDE DATA BASE file.""",
109         ),
110 #       -----------------------------------
111         b_INITIAL_CONDITIONSG = BLOC(condition="INITIAL_CONDITIONS == 'CONSTANT ELEVATION'",
112 #       -----------------------------------
113 #           -----------------------------------
114             INITIAL_ELEVATION = SIMP(statut ='o',
115 #           -----------------------------------
116                 typ = 'R',
117                 defaut = 0.,
118                 fr = """Valeur utilisee avec l''option :
119      CONDITIONS INITIALES - COTE CONSTANTE""",
120                 ang = """Value to be used with the option :
121 INITIAL CONDITIONS  -CONSTANT ELEVATION""",
122             ),
123         ),
124 #       -----------------------------------
125         b_INITIAL_CONDITIONSH = BLOC(condition="INITIAL_CONDITIONS == 'CONSTANT DEPTH'",
126 #       -----------------------------------
127 #           -----------------------------------
128             INITIAL_DEPTH = SIMP(statut ='o',
129 #           -----------------------------------
130                 typ = 'R',
131                 defaut = 0.,
132                 fr = """Valeur utilisee avec l''option :
133 CONDITIONS INITIALES :-HAUTEUR CONSTANTE-""",
134                 ang = """Value to be used along with the option:
135          INITIAL CONDITIONS -CONSTANT DEPTH-""",
136             ),
137         ),
138 #       -----------------------------------
139         BINARY_DATA_FILE_1_FORMAT = SIMP(statut ='f',
140 #       -----------------------------------
141             typ = 'TXM',
142             into = ['BIN','SERAFIN','SERAFIND','MED'],
143             defaut = 'BIN',
144             fr = """Format du fichier de geometrie.
145 Les valeurs possibles sont :
146 - BIN     : format binaire standard
147 - SERAFIN : format standard simple precision pour Telemac;
148 - SERAFIND: format standard double precision pour Telemac;
149 - MED     : format MED base sur HDF5""",
150             ang = """Geometry file format.
151 Possible values are:
152 - BIN     : Standard binary format
153 - SERAFIN : classical single precision format in Telemac;
154 - SERAFIND: classical double precision format in Telemac;
155 - MED     : MED format based on HDF5""",
156         ),
157 #       -----------------------------------
158         BINARY_DATA_FILE_1 = SIMP(statut ='f',
159 #       -----------------------------------
160             typ = ('Fichier','All Files (*)'),
161             defaut = '',
162             fr = """Fichier de donnees code en binaire mis a la disposition
163 de l''utilisateur.
164 Les donnees de ce fichier seront a lire sur le canal 24.""",
165             ang = """Binary-coded data file made available to the user.
166 The data in this file shall be read on channel 24.""",
167         ),
168 #       -----------------------------------
169         BINARY_DATA_FILE_2_FORMAT = SIMP(statut ='f',
170 #       -----------------------------------
171             typ = 'TXM',
172             into = ['BIN','SERAFIN','SERAFIND','MED'],
173             defaut = 'BIN',
174             fr = """Format du fichier de geometrie.
175 Les valeurs possibles sont :
176 - BIN     : format binaire standard
177 - SERAFIN : format standard simple precision pour Telemac;
178 - SERAFIND: format standard double precision pour Telemac;
179 - MED     : format MED base sur HDF5""",
180             ang = """Geometry file format.
181 Possible values are:
182 - BIN     : Standard binary format
183 - SERAFIN : classical single precision format in Telemac;
184 - SERAFIND: classical double precision format in Telemac;
185 - MED     : MED format based on HDF5""",
186         ),
187 #       -----------------------------------
188         BINARY_DATA_FILE_2 = SIMP(statut ='f',
189 #       -----------------------------------
190             typ = ('Fichier','All Files (*)'),
191             defaut = '',
192             fr = """Fichier de donnees code en binaire mis a la disposition
193 de l''utilisateur.
194 Les donnees de ce fichier seront a lire sur le canal 25.""",
195             ang = """Binary-coded data file made available to the user.
196 The data in this file shall be read on channel 25.""",
197         ),
198 #       -----------------------------------
199         FORMATTED_DATA_FILE_1 = SIMP(statut ='f',
200 #       -----------------------------------
201             typ = ('Fichier','All Files (*)'),
202             defaut = '',
203             fr = """Fichier de donnees formate mis a la disposition de
204 l''utilisateur.
205 Les donnees de ce fichier seront a lire sur le canal 26.""",
206             ang = """Formatted data file made available to the user.
207 The data in this file shall be read on channel 26.""",
208         ),
209 #       -----------------------------------
210         FORMATTED_DATA_FILE_2 = SIMP(statut ='f',
211 #       -----------------------------------
212             typ = ('Fichier','All Files (*)'),
213             defaut = '',
214             fr = """Fichier de donnees formate mis a la disposition de
215 l''utilisateur.
216 Les donnees de ce fichier seront a lire sur le canal 27.""",
217             ang = """Formatted data file made available to the user.
218 The data in this file shall be read on channel 27.""",
219         ),
220 #       -----------------------------------
221         INPUT_FILES = FACT(statut='o',
222 #       -----------------------------------
223 #           -----------------------------------
224             GEOMETRY_FILE_FORMAT = SIMP(statut ='o',
225 #           -----------------------------------
226                 typ = 'TXM',
227                 into = ['SERAFIN?','SERAFIND','MED'],
228                 defaut = 'SERAFIN?',
229                 fr = """Format du fichier de geometrie.
230 Les valeurs possibles sont :
231 - SERAFIN : format standard simple precision pour Telemac;
232 - SERAFIND: format standard double precision pour Telemac;
233 - MED     : format MED base sur HDF5""",
234                 ang = """Geometry file format.
235 Possible values are:
236 - SERAFIN : classical single precision format in Telemac;
237 - SERAFIND: classical double precision format in Telemac;
238 - MED     : MED format based on HDF5""",
239             ),
240 #           -----------------------------------
241             GEOMETRY_FILE = SIMP(statut ='o',
242 #           -----------------------------------
243                 typ = ('Fichier','All Files (*)'),
244                 fr = """Nom du fichier contenant le maillage du calcul a realiser.""",
245                 ang = """Name of the file containing the mesh. This file may also
246 contain the topography and the friction coefficients.""",
247             ),
248 #           -----------------------------------
249             FORTRAN_FILE = SIMP(statut ='f',
250 #           -----------------------------------
251                 typ = 'FichierOuRepertoire',
252                 defaut = 'DEFAUT',
253                 fr = """Nom du fichier FORTRAN a soumettre.""",
254                 ang = """Name of FORTRAN file to be submitted.""",
255             ),
256 #           -----------------------------------
257             BOTTOM_TOPOGRAPHY_FILE = SIMP(statut ='f',
258 #           -----------------------------------
259                 typ = ('Fichier','All Files (*)'),
260                 defaut = '',
261                 fr = """Nom du fichier eventuel contenant la bathymetrie associee au
262 maillage.
263 Si ce mot-cle est utilise; c''est cette bathymetrie qui sera utilisee
264 pour le calcul.""",
265                 ang = """Name of the possible file containing the bathymetric data.
266 Where this keyword is used, these bathymetric data shall be used in
267 the computation.""",
268             ),
269 #           -----------------------------------
270             BOTTOM_SMOOTHINGS = SIMP(statut ='o',
271 #           -----------------------------------
272                 typ = 'I',
273                 defaut = 0,
274                 fr = """Nombre de lissages effectues sur la topographie.
275 chaque lissage, effectue a l''aide d''une matrice de masse,
276 est conservatif.
277 Utilise lorsque les donnees de bathymetrie donnent des resultats
278 trop irreguliers apres interpolation.""",
279                 ang = """Number of smoothings on bottom topography.
280 each smoothing is mass conservative.
281 to be used when interpolation of bathymetry on the mesh gives
282 very rough results.""",
283             ),
284 #           -----------------------------------
285             BOUNDARY_CONDITIONS_FILE = SIMP(statut ='o',
286 #           -----------------------------------
287                 typ = ('Fichier','All Files (*)'),
288                 fr = """Nom du fichier contenant les types de conditions aux limites.
289 Ce fichier est rempli de facon automatique par le mailleur au moyen de
290 couleurs affectees aux noeuds des frontieres du domaine de calcul.""",
291                 ang = """Name of the file containing the types of boundary conditions.
292 This file is filled automatically by the mesh generator through
293 through colours that are assigned to the boundary nodes.""",
294             ),
295 #           -----------------------------------
296             VALIDATION = SIMP(statut ='f',
297 #           -----------------------------------
298                 typ = bool,
299                 defaut = False,
300                 fr = """Option utilisee principalement pour le dossier de validation. Le
301 fichier des resultats du calcul precedent est alors considere comme une
302 reference a laquelle on va comparer le calcul. La comparaison est
303 effectuee par le sous-programme VALIDA qui peut etre une comparaison
304 avec une solution exacte par exemple.""",
305                 ang = """This option is primarily used for the validation documents. The
306 PREVIOUS COMPUTATION FILE is then considered as a reference which the
307 computation is going to be compared with. The comparison is made by the
308 subroutine VALIDA, which can be modified as to so as to include, for
309 example,a comparison with an exact solution.""",
310             ),
311 #           -----------------------------------
312             REFERENCE_FILE_FORMAT = SIMP(statut ='f',
313 #           -----------------------------------
314                 typ = 'TXM',
315                 into = ['SERAFIN?','SERAFIND','MED'],
316                 defaut = 'SERAFIN?',
317                 fr = """Format du fichier de resultats du calcul precedent.
318 Les valeurs possibles sont :
319 - SERAFIN : format standard simple precision pour Telemac;
320 - SERAFIND: format standard double precision pour Telemac;
321 - MED     : format MED base sur HDF5""",
322                 ang = """Previous computation results file format.
323 Possible values are:
324 - SERAFIN : classical single precision format in Telemac;
325 - SERAFIND: classical double precision format in Telemac;
326 - MED     : MED format based on HDF5""",
327             ),
328 #           -----------------------------------
329             REFERENCE_FILE = SIMP(statut ='f',
330 #           -----------------------------------
331                 typ = ('Fichier','All Files (*)'),
332                 defaut = '',
333                 fr = """Fichier de resultats de reference pour la validation. Les resultats a
334 placer dans ce fichier seront a ecrire sur le canal 22.""",
335                 ang = """Binary-coded result file for validation. The results to be entered
336 into this file shall be written on channel 22.""",
337             ),
338         ),
339 #       -----------------------------------
340         GLOBAL = FACT(statut='o',
341 #       -----------------------------------
342 #           -----------------------------------
343             PARALLEL_PROCESSORS = SIMP(statut ='f',
344 #           -----------------------------------
345                 typ = 'I',
346                 defaut = 0,
347                 fr = """NOMBRE DE PROCESSEURS EN CALCUL PARALLELE
348 0 : 1 machine, compilation sans bibliotheque de parallelisme
349 1 : 1 machine, compilation avec bibliotheque de parallelisme
350 2 : 2 processeurs ou machines en parallele
351 etc...""",
352                 ang = """NUMBER OF PROCESSORS FOR PARALLEL PROCESSING
353 0 : 1 machine, compiling without parallel library
354 1 : 1 machine, compiling with a parallel library
355 2 : 2 processors or machines in parallel
356 etc....""",
357             ),
358 #           -----------------------------------
359             CHECKING_THE_MESH = SIMP(statut ='o',
360 #           -----------------------------------
361                 typ = bool,
362                 defaut = False,
363                 fr = """Si oui on appelle le sous-programme checkmesh qui verifie
364 la coherence du maillage, points superposes, etc.""",
365                 ang = """if this key word is equal to yes, a call to subroutine
366 checkmesh will look for errors in the mesh, superimposed points, etc.""",
367             ),
368 #           -----------------------------------
369             MAXIMUM_NUMBER_OF_BOUNDARIES = SIMP(statut ='f',
370 #           -----------------------------------
371                 typ = 'I',
372                 defaut = 30,
373                 fr = """nombre maximal de frontieres differentes dans le maillage.
374 Sert au dimensionnement de la memoire, a augmenter si necessaire""",
375                 ang = """maximal number of boundaries in the mesh.
376 Used for dimensioning arrays. Can be increased if needed""",
377             ),
378 #           -----------------------------------
379             MAXIMUM_NUMBER_OF_SOURCES = SIMP(statut ='f',
380 #           -----------------------------------
381                 typ = 'I',
382                 defaut = 20,
383                 fr = """nombre maximal de points sources dans le maillage.
384 Sert au dimensionnement de la memoire, a augmenter si necessaire""",
385                 ang = """maximal number of punctual sources in the mesh.
386 Used for dimensioning arrays. Can be increased if needed""",
387             ),
388 #           -----------------------------------
389             MAXIMUM_NUMBER_OF_TRACERS = SIMP(statut ='f',
390 #           -----------------------------------
391                 typ = 'I',
392                 defaut = 20,
393                 fr = """nombre maximal de traceurs.
394 Sert au dimensionnement de la memoire, a augmenter si necessaire""",
395                 ang = """maximal number of tracers.
396 Used for dimensioning arrays. Can be increased if needed""",
397             ),
398 #           -----------------------------------
399             VECTOR_LENGTH = SIMP(statut ='f',
400 #           -----------------------------------
401                 typ = 'I',
402                 defaut = 1,
403                 fr = """LONGUEUR DU VECTEUR POUR LES MACHINES VECTORIELLES""",
404                 ang = """VECTOR LENGTH ON VECTOR MACHINES""",
405             ),
406         ),
407     ),
408 #   -----------------------------------
409     RESTART = FACT(statut='o',
410 #   -----------------------------------
411 #       -----------------------------------
412         COMPUTATION_CONTINUED = SIMP(statut ='o',
413 #       -----------------------------------
414             typ = bool,
415             defaut = False,
416             fr = """Determine si le calcul en cours est independant de tout autre
417 resultat ou est une reprise effectuee a partir du resultat d''un calcul
418 precedent.
419 NON : Il s''agit du premier passage pour ce calcul et il est necessaire
420 de definir un jeu complet de conditions initiales
421 OUI : Il s''agit d''une reprise de calcul :
422 les conditions initiales sont constituees par le dernier pas de
423 temps du ''FICHIER DU CALCUL PRECEDENT'' du fichier des parametres
424 utilise pour soumettre le calcul.
425 Par contre, l''ensemble des donnees du fichier des parametres
426 peuvent etre redefinies ; ce qui offre la possibilite de changer
427 par exemple, le pas de temps, le modele de turbulence, le
428 frottement, d''ajouter ou retirer un traceur ...
429 De meme, il est necessaire de definir des conditions aux limites
430 (sous-programme BORD ou valeurs placees dans le fichier des
431 parametres), qui peuvent egalement etre modifiees.""",
432             ang = """Determines whether the computation under way is independent
433 result or is following an earlier result.
434 NO: It is the first run for this computation and a whole set of
435 initial conditions should be defined.
436 YES: It follows a former computation:
437 the initial conditions consist in the last time step of the
438 PREVIOUS COMPUTATION FILE in the steering file used for submitting
439 the computation.
440 All the data from the steering file may be defined once again, which
441 provides an opportunity to change, for example, the time step,
442 the turbulence model, the friction, to add or remove a tracer...
443 It is also possible to define new boundary conditions.""",
444         ),
445 #       -----------------------------------
446         b_COMPUTATION_CONTINUEDG = BLOC(condition="COMPUTATION_CONTINUED == True",
447 #       -----------------------------------
448 #           -----------------------------------
449             PREVIOUS_COMPUTATION_FILE_FORMAT = SIMP(statut ='o',
450 #           -----------------------------------
451                 typ = 'TXM',
452                 into = ['SERAFIN?','SERAFIND','MED'],
453                 defaut = 'SERAFIN?',
454                 fr = """Format du fichier de resultats du calcul precedent.
455 Les valeurs possibles sont :
456 - SERAFIN : format standard simple precision pour Telemac;
457 - SERAFIND: format standard double precision pour Telemac;
458 - MED     : format MED base sur HDF5""",
459                 ang = """Previous computation results file format.
460 Possible values are:
461 - SERAFIN : classical single precision format in Telemac;
462 - SERAFIND: classical double precision format in Telemac;
463 - MED     : MED format based on HDF5""",
464             ),
465 #           -----------------------------------
466             PREVIOUS_COMPUTATION_FILE = SIMP(statut ='o',
467 #           -----------------------------------
468                 typ = ('Fichier','All Files (*)'),
469                 defaut = '',
470                 fr = """Nom d''un fichier contenant les resultats d''un calcul
471 precedent realise sur le meme maillage et dont le dernier pas de temps
472 enregistre va fournir les conditions initiales pour une suite de de
473 calcul.""",
474                 ang = """Name of a file containing the results of an earlier
475 computation which was made on the same mesh. The last recorded time
476 step will provid the initial conditions for the new computation.""",
477             ),
478 #           -----------------------------------
479             RECORD_NUMBER_FOR_RESTART = SIMP(statut ='o',
480 #           -----------------------------------
481                 typ = 'I',
482                 defaut = 0,
483                 fr = """En cas de suite de calcul, numero de l''enregistrement
484 de depart dans le fichier du calcul precedent. 0 signifie
485 qu''on prend le dernier enregistrement""",
486                 ang = """In case of COMPUTATION CONTINUED, record number to
487 start from in the PREVIOUS COMPUTATION FILE""",
488             ),
489         ),
490 #       -----------------------------------
491         INITIAL_TIME_SET_TO_ZERO = SIMP(statut ='o',
492 #       -----------------------------------
493             typ = bool,
494             defaut = False,
495             fr = """Remet le temps a zero en cas de suite de calcul""",
496             ang = """Initial time set to zero in case of restart""",
497         ),
498     ),
499 #   -----------------------------------
500     OUTPUT_FILES = FACT(statut='o',
501 #   -----------------------------------
502 #       -----------------------------------
503         RESULTS_FILES = FACT(statut='o',
504 #       -----------------------------------
505 #           -----------------------------------
506             NUMBER_OF_FIRST_TIME_STEP_FOR_GRAPHIC_PRINTOUTS = SIMP(statut ='o',
507 #           -----------------------------------
508                 typ = 'I',
509                 defaut = 0,
510                 fr = """Determine le nombre de pas de temps a partir duquel debute
511 l''ecriture des resultats dans le FICHIER DES RESULTATS.""",
512                 ang = """Determines the number of time steps after which the results
513 are first written into the RESULTS FILE.""",
514             ),
515 #           -----------------------------------
516             GRAPHIC_PRINTOUT_PERIOD = SIMP(statut ='o',
517 #           -----------------------------------
518                 typ = 'I',
519                 defaut = 1,
520                 fr = """ Determine la periode en nombre de pas de temps d''impression des
521 VARIABLES POUR LES SORTIES GRAPHIQUES (voir ce mot-cle) dans le FICHIER
522 DES RESULTATS.""",
523                 ang = """ Determines, in number of time steps, the printout period for the
524 VARIABLES FOR GRAPHIC PRINTOUTS in the RESULTS FILE.""",
525             ),
526 #           -----------------------------------
527             VARIABLES_FOR_GRAPHIC_PRINTOUTS = SIMP(statut ='o',
528 #           -----------------------------------
529                 typ = 'TXM', min=0, max='**',
530                 into = ["velocity along x axis (m/s)","velocity along y axis (m/s)","wave celerity (m/s)","water depth (m)","free surface elevation (m)","bottom elevation (m)","Froude number","scalar flowrate of fluid (m2/s)","tracer 1 etc.","All the tracers 1 to 9.","All the tracers 10 to 19.","turbulent kinetic energy in k-epsilon model (J/kg)","dissipation of turbulent energy (W/kg)","turbulent viscosity (m2/s)","flowrate along x axis (m2/s)","flowrate along y axis (m2/s)","scalar velocity (m/s)","wind along x axis (m/s)","wind along y axis (m/s)","air pressure (Pa)","friction coefficient","drift along x (m)","drift along y (m)","Courant number ","supplementary variable N","supplementary variable O","supplementary variable R","supplementary variable Z","maximum elevation","time of maximum elevation","maximum velocity","time of maximum velocity","friction velocity","gradient 1, etc. ","reference level for Nestor "],
531                 defaut = ["velocity along x axis (m/s)","velocity along y axis (m/s)","water depth (m)","bottom elevation (m)"],
532                 fr = """ Noms des variables que l''utilisateur veut ecrire dans le fichier des
533 resultats. Chaque variable est representee par une lettre. Le choix des
534 separateurs est libre. Les possibilites offertes sont les suivantes :
535  - U : vitesse suivant l''axe des x (m/s),
536  - V : vitesse suivant l''axe des y (m/s),
537  - C : celerite des ondes (m/s),
538  - H : hauteur d''eau (m),
539  - S : cote de surface libre (m),
540  - B : cote du fond (m),
541  - F : nombre de Froude,
542  - Q : debit scalaire du fluide (m2/s),
543  - Tn: traceur, avec n le numero du traceur,
544  - K : energie turbulente du modele k-epsilon (J/kg),
545  - E : dissipation de l''energie turbulente (W/kg),
546  - D : viscosite turbulente du modele k-epsilon (m2/s),
547  - I : debit suivant l''axe des x (m2/s),
548  - J : debit suivant l''axe des y (m2/s),
549  - M : vitesse scalaire (m/s),
550  - X : vent suivant l''axe des x (m/s),
551  - Y : vent suivant l''axe des y (m/s),
552  - P : pression atmospherique (Pa),
553  - W : coefficient de frottement sur le fond,
554  - A : derive en x (m),
555  - G : derive en y (m),
556  - L : coefficient de frottement sur le fond,
557  - Gn: gradient differencie, avec n le numero de reference du gradient.
558 L''utilisateur dispose egalement de 4 champs libres, qu''il peut
559 utiliser pour ecrire dans le fichier des resultats des variables qu''il
560 cree lui-meme. Ces variables propres a l''utlisateur doivent etre
561 calculees dans le sous-programme PRERES et le nom que l''on desire leur
562 donner doit etre ecrit dans le sous-programme NOMVAR. Ces 7 champs sont
563 :
564  - N, O, R, Z qui correspondent aux tableaux PRIVE(1,1), PRIVE(1,2),
565  PRIVE(1,3), PRIVE(1,4).
566 A la difference des variables precedentes, celles-ci sont conservees
567 dans tout le programme, et peuvent donc etre reutilisees.  Dans ce
568 dernier cas ne pas oublier de donner une taille suffisante au tableau
569 PRIVE (dans le programme principal). Il est ainsi possible de limiter,
570 par exemple, la taille des fichiers de resultats pour de tres gros
571 calculs. Cependant, il faut etre conscient du fait que, dans
572 l''eventualite d''une reprise de calcul, le code doit disposer, dans le
573 fichier des resultats, des informations necessaires a sa poursuite, a
574 savoir :
575  - les vitesses U et V,
576  - les hauteurs d''eau H,
577  - les cotes du fond B.
578 Toutefois, TELEMAC peut recalculer certaines de ces variables a
579 partir d''autres qui lui seront fournies (par exemple, il recalculera H
580 a partir de S et B).""",
581                 ang = """ Names of variables the user wants to write into the results file. Each
582 variable is represented by a letter. The separators can be freely
583 selected. The available capabilities are as follows:
584  - U : velocity along x axis (m/s),
585  - V : velocity along y axis (m/s),
586  - C : wave celerity (m/s),
587  - H : water depth (m),
588  - S : free surface elevation (m),
589  - B : bottom elevation (m),
590  - F : Froude number,
591  - Q : scalar flowrate of fluid (m2/s),
592  - Tn : tracer, with n the tracer number,
593  - K : turbulent kinetic energy in k-epsilon model (J/kg),
594  - E : dissipation of turbulent energy (W/kg),
595  - D : turbulent viscosity of k-epsilon model (m2/s),
596  - I : flowrate along x axis (m2/s),
597  - J : flowrate along y axis (m2/s),
598  - M : scalar velocity (m/s),
599  - X : wind along x axis (m/s) Y : wind along y axis (m/s),
600  - P : air pressure (Pa),
601  - W : friction coefficient ,
602  - A : drift along x,
603  - G : drift along y,
604  - L : nombre de courant,
605  - Gn : differentiated gradient, with n the gradient reference number.
606 Four other variables are also made available to the
607 user who may use them for writing into the file the results of variables
608 he creates himself. These user-specific variables should be computed in
609 the subroutine PRERES and their desired name should be written into the
610 subroutine NOMVAR. These seven variables are as follows:
611 - N, O, R, Z
612 which correspond to arrays PRIVE(1,1) up to PRIVE(1, Unlike the
613 preceding variables, they are preserved throughout the program, so that
614 they can be used again.
615 In the latter case, do not forget to provide the
616 array PRIVE with sufficiently large dimensions (in FORTRAN file). With
617 this key-word, one can limit the size of the RESULTS FILE. It should be
618 kept in mind, however, that if a computation has to be continued, the
619 RESULTS FILE should contain the appropriate information for running the
620 code,i.e.:
621  - velocities U and V,
622  - water depths H,
623  - bottom elevations B.
624 TELEMAC, however, can compute some of these variables from others for
625 example, it will compute H from S and B.""",
626             ),
627 #           -----------------------------------
628             NUMBER_OF_PRIVATE_ARRAYS = SIMP(statut ='o',
629 #           -----------------------------------
630                 typ = 'I',
631                 defaut = 0,
632                 fr = """Nombre de tableaux mis a disposition de l utilisateur""",
633                 ang = """Number of arrays for own user programming""",
634             ),
635 #           -----------------------------------
636             NAMES_OF_PRIVATE_VARIABLES = SIMP(statut ='f',
637 #           -----------------------------------
638                 typ = 'TXM', min=0, max='**',
639                 fr = """Noms des variables privees en 32 caracteres, 16 pour le nom
640          16 pour l''unite. Elles correspondent au bloc PRIVE
641          et peuvent etre lues dans le fichier de geometrie si elles
642          y sont presentes avec leur nom""",
643                 ang = """Name of private variables in 32 characters, 16 for the name,
644          16 for the unit. They are stored in the block PRIVE and
645          can be read in the geometry file if they are here with their
646          name""",
647             ),
648 #           -----------------------------------
649             RESULTS_FILE_FORMAT = SIMP(statut ='o',
650 #           -----------------------------------
651                 typ = 'TXM',
652                 into = ['SERAFIN?','SERAFIND','MED'],
653                 defaut = 'SERAFIN?',
654                 fr = """Format du fichier de resultats.
655 Les valeurs possibles sont :
656 - SERAFIN : format standard simple precision pour Telemac;
657 - SERAFIND: format standard double precision pour Telemac;
658 - MED     : format MED base sur HDF5""",
659                 ang = """Results file format. Possible values are:
660 - SERAFIN : classical single precision format in Telemac;
661 - SERAFIND: classical double precision format in Telemac;
662 - MED     : MED format based on HDF5""",
663             ),
664 #           -----------------------------------
665             RESULTS_FILE = SIMP(statut ='o',
666 #           -----------------------------------
667                 typ = ('Fichier','All Files (*)','Sauvegarde'),
668                 defaut = '',
669                 fr = """Nom du fichier dans lequel seront ecrits les resultats du
670 calcul avec la periodicite donnee par le mot cle ''PERIODE POUR LES
671 SORTIES GRAPHIQUES''.""",
672                 ang = """Name of the file into which the computation results shall be
673 written,
674 the periodicity being given by the key-word:
675 GRAPHIC PRINTOUT PERIOD.""",
676             ),
677 #           -----------------------------------
678             RESULT_FILE_IN_LONGITUDE_LATITUDE = SIMP(statut ='f',
679 #           -----------------------------------
680                 typ = bool,
681                 defaut = True,
682                 fr = """donne les coordonnees dans le fichier resultats en longitude-latitude
683 si le fichier geo est aussi donnee en long lat""",
684                 ang = """gives result file in longitude latitude if geo file is
685 also given in long lat""",
686             ),
687 #           -----------------------------------
688             BINARY_RESULTS_FILE_FORMAT = SIMP(statut ='f',
689 #           -----------------------------------
690                 typ = 'TXM',
691                 into = ['BIN','SERAFIN','SERAFIND','MED'],
692                 defaut = 'BIN',
693                 fr = """Format du fichier de geometrie.
694 Les valeurs possibles sont :
695 - SERAFIN : format standard simple precision pour Telemac;
696 - SERAFIND: format standard double precision pour Telemac;
697 - MED     : format MED base sur HDF5""",
698                 ang = """Geometry file format.
699 Possible values are:
700 - SERAFIN : classical single precision format in Telemac;
701 - SERAFIND: classical double precision format in Telemac;
702 - MED     : MED format based on HDF5""",
703             ),
704 #           -----------------------------------
705             BINARY_RESULTS_FILE = SIMP(statut ='f',
706 #           -----------------------------------
707                 typ = ('Fichier','All Files (*)','Sauvegarde'),
708                 defaut = '',
709                 fr = """Fichier de resultats code en binaire mis a la disposition
710 de l''utilisateur. Les resultats a placer dans ce fichier seront a
711 ecrire sur le canal 28.""",
712                 ang = """Additional binary-coded result file made available
713 to the user. The results to be entered into this file shall be written
714 on channel 28.""",
715             ),
716 #           -----------------------------------
717             FORMATTED_RESULTS_FILE = SIMP(statut ='f',
718 #           -----------------------------------
719                 typ = ('Fichier','All Files (*)','Sauvegarde'),
720                 defaut = '',
721                 fr = """Fichier de resultats formate mis a la disposition de
722 l''utilisateur.
723 Les resultats a placer dans ce fichier seront a ecrire sur
724 le canal 29.""",
725                 ang = """Formatted file of results made available to the user.
726 The results to be entered into this file shall be written
727 on channel 29.""",
728             ),
729         ),
730 #       -----------------------------------
731         CONTROL_SECTION = FACT(statut='f',
732 #       -----------------------------------
733 #           -----------------------------------
734             CONTROL_SECTIONS = SIMP(statut ='f',
735 #           -----------------------------------
736                 typ = 'I', min=0, max='**',
737                 fr = """Couples de points (numeros globaux dans le maillage) entre
738 lesquels les debits instantanes et cumules seront donnes.""",
739                 ang = """Couples of points (global numbers
740 in the mesh) defining sections
741  where the instantaneous and cumulated discharges will be given""",
742             ),
743 #           -----------------------------------
744             PRINTING_CUMULATED_FLOWRATES = SIMP(statut ='o',
745 #           -----------------------------------
746                 typ = bool,
747                 defaut = False,
748                 fr = """IMPRESSION DU FLUX CUMULE A TRAVERS LES SECTIONS DE CONTROLE""",
749                 ang = """PRINTING THE CUMULATED FLOWRATES THROUGH CONTROL SECTIONS""",
750             ),
751 #           -----------------------------------
752             COMPATIBLE_COMPUTATION_OF_FLUXES = SIMP(statut ='o',
753 #           -----------------------------------
754                 typ = bool,
755                 defaut = False,
756                 fr = """FLUX A TRAVERS LES SECTIONS DE CONTROLE, CALCUL COMPATIBLE
757 AVEC L''IMPERMEABILITE SOUS FORME FAIBLE""",
758                 ang = """FLOWRATES THROUGH CONTROL SECTIONS, COMPUTATION COMPATIBLE
759 WITH THE WEAK FORMULATION OF NO-FLUX BOUNDARY CONDITION""",
760             ),
761 #           -----------------------------------
762             SECTIONS_INPUT_FILE = SIMP(statut ='f',
763 #           -----------------------------------
764                 typ = ('Fichier','All Files (*)'),
765                 defaut = '',
766                 fr = """sections input file, partitioned""",
767                 ang = """sections input file, partitioned""",
768             ),
769 #           -----------------------------------
770             SECTIONS_OUTPUT_FILE = SIMP(statut ='f',
771 #           -----------------------------------
772                 typ = ('Fichier','All Files (*)','Sauvegarde'),
773                 defaut = '',
774                 fr = """sections output file, written by the master""",
775                 ang = """sections output file, written by the master""",
776             ),
777 #           -----------------------------------
778             FLUXLINE = SIMP(statut ='f',
779 #           -----------------------------------
780                 typ = bool,
781                 defaut = False,
782                 fr = """FLUXLINE""",
783                 ang = """Use Fluxline to compute flux over lines""",
784             ),
785 #           -----------------------------------
786             FLUXLINE_INPUT_FILE = SIMP(statut ='f',
787 #           -----------------------------------
788                 typ = ('Fichier','All Files (*)'),
789                 defaut = '',
790                 fr = """Nom du fichier de fluxline, avec des donnees sur les sections""",
791                 ang = """Name of the Fluxline file, with data on cross-sections""",
792             ),
793         ),
794 #       -----------------------------------
795         LISTING = FACT(statut='o',
796 #       -----------------------------------
797 #           -----------------------------------
798             NUMBER_OF_FIRST_TIME_STEP_FOR_LISTING_PRINTOUTS = SIMP(statut ='f',
799 #           -----------------------------------
800                 typ = 'I',
801                 defaut = 0,
802                 fr = """Determine le nombre de pas de temps a partir duquel debute
803 l''ecriture des resultats dans le listing.""",
804                 ang = """Determines the number of time steps after which the results
805 are first written into the listing.""",
806             ),
807 #           -----------------------------------
808             LISTING_PRINTOUT_PERIOD = SIMP(statut ='o',
809 #           -----------------------------------
810                 typ = 'I',
811                 defaut = 1,
812                 fr = """ Determine la periode en nombre de pas de temps d''impression des
813 VARIABLES A IMPRIMER (voir ce mot-cle) Pour la mise au point, il faut
814 savoir que la sortie des resultats est effectuee systematiquement sur le
815 fichier de retour d''execution du code (actuellement accessible par le
816 menu 3.f de SPF sur IBM, et dans le fichier !CAS.SORTIE sur station de
817 travail)""",
818                 ang = """ Determines, in number of time steps, the printout period of the
819 VARIABLES TO BE PRINTED The results are systematically printed out on
820 the listing file (file CAS.SORTIE at the workstation).""",
821             ),
822 #           -----------------------------------
823             LISTING_FOR_PRINTOUT_PERIOD = SIMP(statut ='f',
824 #           -----------------------------------
825                 typ = 'I',
826                 defaut = 1,
827                 fr = """Determine la periode en nombre de pas de temps d''impression
828 des VARIABLES A IMPRIMER (voir ce mot-cle) Pour la mise au point,
829 il faut savoir que la sortie des resultats est effectuee
830 systematiquement sur le fichier de retour d''execution du code
831 (actuellement accessible par le menu 3.f de SPF sur IBM, et dans
832 le fichier !CAS.SORTIE sur station de travail)""",
833                 ang = """Determines, in number of time steps, the printout period of
834 the VARIABLES TO BE PRINTED
835 The results are systematically printed out on the listing file
836 (file CAS.SORTIE at the workstation).""",
837             ),
838 #           -----------------------------------
839             LISTING_PRINTOUT = SIMP(statut ='o',
840 #           -----------------------------------
841                 typ = bool,
842                 defaut = True,
843                 fr = """Sortie des resultats sur support papier.
844 Si l''on met NON le listing ne contient que l''entete et la mention
845 FIN NORMALE DU PROGRAMME
846 Commande a eviter""",
847                 ang = """Result printout on hard copy.
848 When NO is selected, the listing only includes the heading and the
849 phrase "NORMAL END OF PROGRAM"
850 In addition, the options MASS BALANCE and VALIDATION are inhibited.
851 Not recommended for use.""",
852             ),
853 #           -----------------------------------
854             VARIABLES_TO_BE_PRINTED = SIMP(statut ='f',
855 #           -----------------------------------
856                 typ = 'TXM', min=0, max='**',
857                 intoSug = ["velocity along x axis (m/s)","velocity along y axis (m/s)","wave celerity (m/s)","water depth (m)","free surface elevation (m)","bottom elevation (m)","Froude number","scalar flowrate of fluid (m2/s)","tracer 1, etc.","turbulent kinetic energy in k-epsilon model (J/kg)","dissipation of turbulent energy (W/kg)","turbulent viscosity of k-epsilon model (m2/s)","flowrate along x axis (m2/s)","flowrate along y axis (m2/s)","scalar velocity (m/s)","wind along x axis (m/s)","wind along y axis (m/s)","air pressure (Pa)","friction coefficient","drift along x (m)","drift along y (m)","nombre de courants ","supplementary variable N","supplementary variable O","supplementary variable R","supplementary variable Z","gradient 1, etc."],
858                 defaut = '',
859                 fr = """Nom des variables que l''utilisateur desire ecrire a l''ecran. Meme
860 possibilites que pour les sorties graphiques.""",
861                 ang = """Name of the variables that the user wants printed on screen.
862 Same values available as graphical outputs""",
863             ),
864 #           -----------------------------------
865             MASS_BALANCE = SIMP(statut ='o',
866 #           -----------------------------------
867                 typ = bool,
868                 defaut = False,
869                 fr = """Determine si l''on effectue ou non le bilan de masse
870 sur le domaine.
871 Cette procedure calcule a chaque pas de temps :
872  - les flux aux entrees et sorties du domaine;
873  - le flux global a travers l''ensemble des parois du domaine (liquides
874 ou solides)
875 - l''erreur relative sur la masse pour ce pas de temps.
876 En fin de listing, on trouve l''erreur relative sur la masse pour
877 l''ensemble du calcul.
878 Il ne s''agit que d''un calcul indicatif car il n''existe pas
879 d''expression compatible du debit en formulation c,u,v.""",
880                 ang = """Determines whether a check of the mass-balance over
881 the domain is mader or not.
882 This procedures computes the following at each time step:
883 the domain inflows and outflows,
884 the overall flow across all the boundaries,
885 the relative error in the mass for that time step.
886 The relative error in the mass over the whole computation can be found
887 at the end of the listing.""",
888             ),
889 #           -----------------------------------
890             INFORMATION_ABOUT_SOLVER = SIMP(statut ='f',
891 #           -----------------------------------
892                 typ = bool,
893                 defaut = True,
894                 fr = """Donne a chaque pas de temps le nombre d''iterations necessaires
895 a la convergence du solveur de l''etape de propagation.""",
896                 ang = """if YES, prints the number of iterations
897 that have been necessar
898 to get the solution of the linear system.""",
899             ),
900 #           -----------------------------------
901             LIST_OF_POINTS = SIMP(statut ='f',
902 #           -----------------------------------
903                 typ = 'I', min=0, max='**',
904                 fr = """Liste de points remarquables pour les impressions""",
905                 ang = """List of remarkable points for printouts""",
906             ),
907 #           -----------------------------------
908             NAMES_OF_POINTS = SIMP(statut ='f',
909 #           -----------------------------------
910                 typ = 'TXM', min=0, max='**',
911                 fr = """Noms des points remarquables pour les impressions""",
912                 ang = """Names of remarkable points for printouts""",
913             ),
914         ),
915 #       -----------------------------------
916         FOURIER = FACT(statut='f',
917 #       -----------------------------------
918 #           -----------------------------------
919             FOURIER_ANALYSIS_PERIODS = SIMP(statut ='o',
920 #           -----------------------------------
921                 typ = 'R', min=0, max='**',
922                 fr = """Liste des periodes que l''on veut analyser""",
923                 ang = """List of periods to be analysed""",
924             ),
925 #           -----------------------------------
926             TIME_RANGE_FOR_FOURIER_ANALYSIS = SIMP(statut ='o',
927 #           -----------------------------------
928                 typ = 'R', min= 2, max= 2,
929                 defaut = [0.,0.],
930                 fr = """Pour le calcul du marnage et de la phase de la maree""",
931                 ang = """For computing tidal range and phase of tide""",
932             ),
933         ),
934     ),
935 )
936 # -----------------------------------------------------------------------
937 HYDRO = PROC(nom= "HYDRO",op = None,
938 # -----------------------------------------------------------------------
939     UIinfo = {"groupes": ("CACHE")},
940 #   -----------------------------------
941     BOUNDARY_CONDITIONS = FACT(statut='o',
942 #   -----------------------------------
943 #       -----------------------------------
944         PRESCRIBED_ELEVATIONS = SIMP(statut ='f',
945 #       -----------------------------------
946             typ = 'R', max='**',
947             fr = """Valeurs des cotes imposees aux frontieres liquides entrantes.
948 Lire la partie du mode d''emploi consacree aux conditions aux limites""",
949             ang = """Values of prescribed elevations at the inflow boundaries.
950 The section about boundary conditions is to be read in the manual""",
951         ),
952 #       -----------------------------------
953         PRESCRIBED_FLOWRATES = SIMP(statut ='f',
954 #       -----------------------------------
955             typ = 'R', max='**',
956             fr = """Valeurs des debits imposes aux frontieres liquides entrantes.
957 Lire la partie du mode d''emploi consacree aux conditions aux limites""",
958             ang = """Values of prescribed flowrates at the inflow boundaries.
959 The section about boundary conditions is to be read in the manual""",
960         ),
961 #       -----------------------------------
962         PRESCRIBED_VELOCITIES = SIMP(statut ='f',
963 #       -----------------------------------
964             typ = 'R', max='**',
965             fr = """Valeurs des vitesses imposees aux frontieres liquides entrantes.
966  Lire la partie du mode d''emploi consacree aux conditions aux limites""",
967             ang = """Values of prescribed velocities at the liquid inflow boundaries.
968  Refer to the section dealing with the boundary conditions""",
969         ),
970     ),
971 #   -----------------------------------
972     BOUNDARY_CONDITIONS_OTHERS = FACT(statut='o',
973 #   -----------------------------------
974 #       -----------------------------------
975         STAGE_DISCHARGE_CURVES = SIMP(statut ='f',
976 #       -----------------------------------
977             typ = 'TXM', max='**',
978             into = ["no","Z(Q)","Q(Z)"],
979             fr = """Indique si une courbe de tarage doit etre utilisee pour une frontiere
980 0:non 1:Z(Q) 2: Q(Z)""",
981             ang = """Says if a discharge-elevation curve must be used for a given boundary
982 0:NO 1:Z(Q) 2: Q(Z)""",
983         ),
984 #       -----------------------------------
985         b_STAGE_DISCHARGE_CURVESG = BLOC(condition="STAGE_DISCHARGE_CURVES != 'no'",
986 #       -----------------------------------
987 #           -----------------------------------
988             STAGE_DISCHARGE_CURVES_FILE = SIMP(statut ='f',
989 #           -----------------------------------
990                 typ = ('Fichier','All Files (*)'),
991                 defaut = '',
992                 fr = """Nom du fichier contenant les courbes de tarage""",
993                 ang = """Name of the file containing stage-discharge curves""",
994             ),
995         ),
996 #       -----------------------------------
997         VELOCITY_PROFILES = SIMP(statut ='f',
998 #       -----------------------------------
999             typ = 'TXM', min=0, max='**',
1000             into = ["constant normal profile","u and v given in the conlim file","normal velocity given in ubor in the conlim file","velocity proportional to square root of depth","velocity proportional to square root of depth, variant"],
1001             fr = """1:profil normal constant  2:u et v
1002 donnes dans le fichier conlim
1003         3:vitesse normale donnee dans ubor dans le fichier conlim
1004         4:profil en racine de la profondeur
1005         5:profil en racine de la profondeur, variante""",
1006             ang = """1:constant normal profile 2:u and v given in the conlim file
1007         3:normal velocity given in ubor in the conlim file
1008         4:sqrt(depth) profile
1009         5:sqrt(depth) profile, variant""",
1010         ),
1011 #       -----------------------------------
1012         OPTION_FOR_LIQUID_BOUNDARIES = SIMP(statut ='f',
1013 #       -----------------------------------
1014             typ = 'TXM', max='**',
1015             into = ["classical","Thompson method based on characteristics"],
1016             fr = """On donne 1 entier par frontiere liquide
1017      1 : conditions aux limites classiques
1018      2 : methode de Thompson avec calcul de caracteristiques""",
1019             ang = """One integer per liquid boundary is given
1020      1 : classical boundary conditions
1021      2 : Thompson method based on characteristics""",
1022         ),
1023 #       -----------------------------------
1024         LIQUID_BOUNDARIES_FILE = SIMP(statut ='f',
1025 #       -----------------------------------
1026             typ = ('Fichier','All Files (*)'),
1027             defaut = '',
1028             fr = """Fichier de variations en temps des conditions aux limites.
1029 Les donnees de ce fichier seront a lire sur le canal 12.""",
1030             ang = """Variations in time of boundary conditions.
1031 Data of this file are read
1032 on channel 12.""",
1033         ),
1034 #       -----------------------------------
1035         ELEMENTS_MASKED_BY_USER = SIMP(statut ='o',
1036 #       -----------------------------------
1037             typ = bool,
1038             defaut = False,
1039             fr = """SI OUI REMPLIR LE SOUS-PROGRAMME MASKOB""",
1040             ang = """IF YES REWRITE SUBROUTINE MASKOB""",
1041         ),
1042 #       -----------------------------------
1043         b_ELEMENTS_MASKED_BY_USERG = BLOC(condition="ELEMENTS_MASKED_BY_USER == True",
1044 #       -----------------------------------
1045 #           -----------------------------------
1046             Consigne = SIMP(statut ="o", homo="information", typ="TXM",
1047 #           -----------------------------------
1048                 defaut = "Rewrite subroutine maskob"),
1049         ),
1050     ),
1051 #   -----------------------------------
1052     PHYSICAL_PARAMETERS_HYDRO = FACT(statut='o',
1053 #   -----------------------------------
1054 #       -----------------------------------
1055         FRICTION = FACT(statut='o',
1056 #       -----------------------------------
1057 #           -----------------------------------
1058             MAXIMUM_NUMBER_OF_FRICTION_DOMAINS = SIMP(statut ='o',
1059 #           -----------------------------------
1060                 typ = 'I',
1061                 defaut = 10,
1062                 fr = """nombre maximal de zones pouvant etre definies pour le
1063 frottement. Peut etre augmente si necessaire""",
1064                 ang = """maximal number of zones defined for the friction.
1065 Could be increased if needed""",
1066             ),
1067 #           -----------------------------------
1068             FRICTION_DATA = SIMP(statut ='f',
1069 #           -----------------------------------
1070                 typ = bool,
1071                 defaut = False,
1072                 fr = """Lois de frottements definies par zone""",
1073                 ang = """Friction law defined by area""",
1074             ),
1075 #           -----------------------------------
1076             FRICTION_DATA_FILE = SIMP(statut ='f',
1077 #           -----------------------------------
1078                 typ = ('Fichier','All Files (*)'),
1079                 defaut = '',
1080                 fr = """fichier de donnees pour le frottement""",
1081                 ang = """friction data file""",
1082             ),
1083 #           -----------------------------------
1084             LAW_OF_BOTTOM_FRICTION = SIMP(statut ='o',
1085 #           -----------------------------------
1086                 typ = 'TXM',
1087                 into = ["NO FRICTION","HAALAND","CHEZY","STRICKLER","MANNING","NIKURADSE"],
1088                 fr = """ selectionne le type de formulation utilisee pour le calcul du
1089 frottement sur le fond. Les lois possibles sont les suivantes (cf. Note
1090 de principe) : - 0 : pas de frottement sur le fond; 1 : formule de
1091 Haaland 2 : formule de Chezy 3 : formule de STRICKLER 4 : formule de
1092 MANNING 5 : formule de NIKURADSE""",
1093                 ang = """ Selects the type of formulation used for the bottom friction. The
1094 possible laws are as follows (refer to the Principle note): 0: no
1095 friction against bottom, 1: Haaland''s formula 2: CHEZY''s formula 3:
1096 STRICKLER''s formula 4: MANNING''s formula 5: NIKURADSE''s formula""",
1097             ),
1098 #           -----------------------------------
1099             b_LAW_OF_BOTTOM_FRICTIONG = BLOC(condition="LAW_OF_BOTTOM_FRICTION != 'NO FRICTION'",
1100 #           -----------------------------------
1101 #               -----------------------------------
1102                 FRICTION_COEFFICIENT = SIMP(statut ='o',
1103 #               -----------------------------------
1104                     typ = 'R',
1105                     defaut = 50.,
1106                     fr = """Fixe la valeur du coefficient de frottement pour la
1107 formulation choisie.
1108 Attention; la signification de ce chiffre varie suivant la formule
1109 choisie :
1110                     1 : coefficient lineaire
1111                     2 : coefficient de Chezy
1112                     3 : coefficient de Strickler
1113                     4 : coefficient de Manning
1114                     5 : hauteur de rugosite de Nikuradse""",
1115                     ang = """Sets the value of the friction coefficient for the selected
1116 formulation. It is noteworthy that the meaning of this figure changes
1117 according to the selected formula (Chezy, Strickler, etc.) :
1118                     1 : linear coefficient
1119                     2 : Chezy coefficient
1120                     3 : Strickler coefficient
1121                     4 : Manning coefficient
1122                     5 : Nikuradse grain size""",
1123                 ),
1124             ),
1125 #           -----------------------------------
1126             MANNING_DEFAULT_VALUE_FOR_COLEBROOK_WHITE_LAW = SIMP(statut ='o',
1127 #           -----------------------------------
1128                 typ = 'R',
1129                 defaut = 0.02,
1130                 fr = """valeur par defaut du manning pour la loi de frottement de
1131 Colebrook-White (loi numero 7)""",
1132                 ang = """Manning default value for the friction law of Colebrook-White
1133 (law number 7)""",
1134             ),
1135 #           -----------------------------------
1136             DEPTH_IN_FRICTION_TERMS = SIMP(statut ='o',
1137 #           -----------------------------------
1138                 typ = 'TXM',
1139                 into = ["nodal","average"],
1140                 defaut = "nodal",
1141                 fr = """1 : nodale 2 : moyenne""",
1142                 ang = """1: nodal   2: average""",
1143             ),
1144 #           -----------------------------------
1145             NON_SUBMERGED_VEGETATION_FRICTION = SIMP(statut ='o',
1146 #           -----------------------------------
1147                 typ = bool,
1148                 defaut = False,
1149                 fr = """calcul du frottement du a la vegetation non submergee""",
1150                 ang = """friction calculation of the non-submerged vegetation""",
1151             ),
1152 #           -----------------------------------
1153             b_NON_SUBMERGED_VEGETATION_FRICTIONG = BLOC(condition="NON_SUBMERGED_VEGETATION_FRICTION == True",
1154 #           -----------------------------------
1155 #               -----------------------------------
1156                 DIAMETER_OF_ROUGHNESS_ELEMENTS = SIMP(statut ='o',
1157 #               -----------------------------------
1158                     typ = 'R',
1159                     defaut = 0.006,
1160                     fr = """diametre des elements de frottements""",
1161                     ang = """diameter of roughness element""",
1162                 ),
1163 #               -----------------------------------
1164                 SPACING_OF_ROUGHNESS_ELEMENTS = SIMP(statut ='o',
1165 #               -----------------------------------
1166                     typ = 'R',
1167                     defaut = 0.14,
1168                     fr = """espacement des elements de frottement""",
1169                     ang = """spacing of rouhness element""",
1170                 ),
1171             ),
1172 #           -----------------------------------
1173             LAW_OF_FRICTION_ON_LATERAL_BOUNDARIES = SIMP(statut ='o',
1174 #           -----------------------------------
1175                 typ = 'TXM',
1176                 into = ["NO FRICTION","HAALAND","CHEZY","STRICKLER","MANNING","NIKURADSE","LOG LAW","COLEBROOK-WHITE"],
1177                 defaut = "NO FRICTION",
1178                 fr = """selectionne le type de formulation utilisee pour le calcul
1179 du frottement sur les parois laterales.
1180 Les lois possibles sont les suivantes (cf. Note de principe) :
1181 0 : pas de frottement
1182 1 : lineaire
1183 2 : Chezy
1184 3 : Strickler
1185 4 : Manning
1186 5 : formule de NIKURADSE
1187 6 : loi en log
1188 7 : Colebrook-White""",
1189                 ang = """Selects the type of formulation used
1190 for the friction on lateral boundaries.
1191 The possible laws are as follows (refer to the Principle note):
1192 0: no friction
1193 1: linear
1194 2: Chezy
1195 3: Strickler
1196 4: Manning
1197 5: NIKURADSE''s formula
1198 6 : law log
1199 7 : Colebrook-White""",
1200             ),
1201 #           -----------------------------------
1202             b_LAW_OF_FRICTION_ON_LATERAL_BOUNDARIESG = BLOC(condition="LAW_OF_FRICTION_ON_LATERAL_BOUNDARIES != 'NO FRICTION'",
1203 #           -----------------------------------
1204 #               -----------------------------------
1205                 ROUGHNESS_COEFFICIENT_OF_BOUNDARIES = SIMP(statut ='o',
1206 #               -----------------------------------
1207                     typ = 'R',
1208                     defaut = 100.,
1209                     fr = """Fixe la valeur du coefficient de frottement sur les frontieres
1210 solides avec un regime turbulent rugueux sur les bords du domaine.
1211 meme convention que pour le coefficient de frottement:
1212                     1 : non programme
1213                     2 : coefficient de Chezy
1214                     3 : coefficient de Strickler
1215                     4 : coefficient de Manning
1216                     5 : hauteur de rugosite de Nikuradse""",
1217                     ang = """Sets the value of the friction coefficient of the solid
1218 boundary with the bed roughness option. Same meaning than friction
1219 coefficient""",
1220                 ),
1221             ),
1222 #           -----------------------------------
1223             DEFINITION_OF_ZONES = SIMP(statut ='o',
1224 #           -----------------------------------
1225                 typ = bool,
1226                 defaut = False,
1227                 fr = """Declenche l''appel a def\_zones, pour donner
1228  un numero de zone a chaque point""",
1229                 ang = """Triggers the call to def\_zones to give a zone number to every point""",
1230             ),
1231 #           -----------------------------------
1232             b_DEFINITION_OF_ZONESG = BLOC(condition="DEFINITION_OF_ZONES == True",
1233 #           -----------------------------------
1234 #               -----------------------------------
1235                 Consigne = SIMP(statut ="o", homo="information", typ="TXM",
1236 #               -----------------------------------
1237                     defaut = "Rewrite subroutine def_zones"),
1238             ),
1239 #           -----------------------------------
1240             ZONES_FILE = SIMP(statut ='f',
1241 #           -----------------------------------
1242                 typ = ('Fichier','All Files (*)'),
1243                 defaut = '',
1244                 fr = """Fichier des zones avec sur chaque ligne
1245 numero de point  numero de zone""",
1246                 ang = """Zones file, with on every line:
1247 point number   zone number""",
1248             ),
1249         ),
1250 #       -----------------------------------
1251         ICE_PROCESSES = FACT(statut='o',
1252 #       -----------------------------------
1253 #           -----------------------------------
1254             ICE_PROCESSES = SIMP(statut ='f',
1255 #           -----------------------------------
1256                 typ = 'I',
1257                 defaut = 1,
1258                 fr = """Donne le numero du processus des glaces, avec le numero defini
1259 sur la base multiplicative de nombres premiers (2, 3, 5, 7, 11, 13,
1260 ...). Par example, 14 (2x7) rend actif les processus 2 et 7.
1261 Exception a la regle:
1262 si l''entier est 1, il n''y a pas de couplage;
1263 si l''entier est 0, tous les effets suivant sont inclus:
1264   2- BUDGET THERMIQUE,
1265   3-..""",
1266                 ang = """provides the ice process number with the number being defined
1267 on the basis of a multiplication of primary numbers (2, 3, 5,
1268 7, 11, 13, ...). For instance, 14 (2x7) activate processes 2
1269 and 7. Exception is made for:
1270 if the number is 1, there will be no ice processes included;
1271 if the number is 0, all processes are included, as follows:
1272   2- THERMIMAL BUDGET,
1273   3-..""",
1274             ),
1275         ),
1276 #       -----------------------------------
1277         METEOROLOGY = FACT(statut='f',
1278 #       -----------------------------------
1279 #           -----------------------------------
1280             WIND = SIMP(statut ='o',
1281 #           -----------------------------------
1282                 typ = bool,
1283                 defaut = False,
1284                 fr = """Prise en compte ou non des effets du vent.""",
1285                 ang = """Determines whether the wind effects are to be taken into
1286 account or not.""",
1287             ),
1288 #           -----------------------------------
1289             b_WINDG = BLOC(condition="WIND == True",
1290 #           -----------------------------------
1291 #               -----------------------------------
1292                 WIND_VELOCITY_ALONG_X = SIMP(statut ='o',
1293 #               -----------------------------------
1294                     typ = 'R',
1295                     defaut = 0.,
1296                     fr = """Composante de la vitesse du vent suivant l''axe des x (m/s).""",
1297                     ang = """Wind velocity, component along x axis (m/s).""",
1298                 ),
1299 #               -----------------------------------
1300                 WIND_VELOCITY_ALONG_Y = SIMP(statut ='o',
1301 #               -----------------------------------
1302                     typ = 'R',
1303                     defaut = 0.,
1304                     fr = """Composante de la vitesse du vent suivant l''axe des y (m/s).""",
1305                     ang = """Wind velocity, component along y axis (m/s).""",
1306                 ),
1307 #               -----------------------------------
1308                 THRESHOLD_DEPTH_FOR_WIND = SIMP(statut ='o',
1309 #               -----------------------------------
1310                     typ = 'R',
1311                     defaut = 1.,
1312                     fr = """Retire la force due au vent dans les petites profondeurs""",
1313                     ang = """Wind is not taken into account for small depths""",
1314                 ),
1315 #               -----------------------------------
1316                 COEFFICIENT_OF_WIND_INFLUENCE = SIMP(statut ='o',
1317 #               -----------------------------------
1318                     typ = 'R',
1319                     defaut = 0.,
1320                     fr = """Fixe la valeur du coefficient d''entrainement du vent (cf.
1321 Note de principe).""",
1322                     ang = """Sets the value of the wind driving coefficient.
1323 Refer to principle note.""",
1324                 ),
1325 #               -----------------------------------
1326                 OPTION_FOR_WIND = SIMP(statut ='o',
1327 #               -----------------------------------
1328                     typ = 'TXM',
1329                     into = ["constant in time and space","variable in time given by formated file","variable in time and space given by formated file"],
1330                     defaut = "constant in time and space",
1331                     fr = """donne les options pour introduire le vent:
1332    1: constant en temps et en espace (donne par le mot cle
1333       VITESSE ET DIRECTION DU VENT)
1334    2: variable en temps donne par fichier formate
1335    3: variable en temps et en espace donne par fichier formate
1336       ou un fichier binaire serafin""",
1337                     ang = """gives option for managing the wind:
1338    1: constant in time and space, given by keyword SPEED AND
1339       DIRECTION OF WIND
1340    2: variable in time and (constant in space), given by formated file
1341    3: variable in time and space , given by formated file or by
1342       a binary serafin file""",
1343                 ),
1344 #               -----------------------------------
1345                 b_OPTION_FOR_WINDG = BLOC(condition="OPTION_FOR_WIND == 'constant in time and space'",
1346 #               -----------------------------------
1347 #                   -----------------------------------
1348                     SPEED_AND_DIRECTION_OF_WIND = SIMP(statut ='o',
1349 #                   -----------------------------------
1350                         typ = 'R', min= 2, max= 2,
1351                         defaut = [0.,0.],
1352                         fr = """Donne la vitesse et la direction (en degres de 0 a 360,
1353 0 etant y=0 et x=+inf) du vent lorsqu ils sont consant en temps et
1354 en espace (mot cle OPTION DU VENT = 1)""",
1355                         ang = """gives the speed and direction (degre (from 0 to 360),
1356 0 given y=0 anx x=+infinity) when they are constant in time and space
1357 (keyword OPTION FOR WIND = 1)""",
1358                     ),
1359                 ),
1360 #               -----------------------------------
1361                 b_OPTION_FOR_WINDH = BLOC(condition="OPTION_FOR_WIND == 'variable in time given by formated file' or OPTION_FOR_WIND == 'variable in time and space given by formated file'",
1362 #               -----------------------------------
1363 #                   -----------------------------------
1364                     Consigne = SIMP(statut ="o", homo="information", typ="TXM",
1365 #                   -----------------------------------
1366                         defaut = "Give the formatted file 3"),
1367                 ),
1368             ),
1369 #           -----------------------------------
1370             AIR_PRESSURE = SIMP(statut ='o',
1371 #           -----------------------------------
1372                 typ = bool,
1373                 defaut = False,
1374                 fr = """Permet de decider si l''on prend ou non en compte l''influence
1375 d''un champ de pression.""",
1376                 ang = """Provided to decide whether the influence of
1377 an atmosphere field
1378 is taken into account or not.""",
1379             ),
1380 #           -----------------------------------
1381             b_AIR_PRESSUREG = BLOC(condition="AIR_PRESSURE == True",
1382 #           -----------------------------------
1383 #               -----------------------------------
1384                 VALUE_OF_ATMOSPHERIC_PRESSURE = SIMP(statut ='o',
1385 #               -----------------------------------
1386                     typ = 'R',
1387                     defaut = 100000.,
1388                     fr = """donne la valeur de la pression atmospherique lorsquelle est
1389 constante en temps et en espace""",
1390                     ang = """gives the value of atmospheric pressure when it is contant
1391 in time and space""",
1392                 ),
1393             ),
1394 #           -----------------------------------
1395             RAIN_OR_EVAPORATION = SIMP(statut ='o',
1396 #           -----------------------------------
1397                 typ = bool,
1398                 defaut = False,
1399                 fr = """Pour ajouter un apport ou une perte d''eau en surface.
1400 Voir le mot-cle PLUIE OU EVAPORATION EN MM PAR JOUR""",
1401                 ang = """to add or remove water at the free surface. See the key-word
1402 RAIN OR EVAPORATION IN MM PER DAY""",
1403             ),
1404 #           -----------------------------------
1405             b_RAIN_OR_EVAPORATIONG = BLOC(condition="RAIN_OR_EVAPORATION == True",
1406 #           -----------------------------------
1407 #               -----------------------------------
1408                 RAIN_OR_EVAPORATION_IN_MM_PER_DAY = SIMP(statut ='o',
1409 #               -----------------------------------
1410                     typ = 'R',
1411                     defaut = 0.0,
1412                     fr = """Pour ajouter un apport ou une perte d''eau en surface""",
1413                     ang = """to add or remove water at the free surface""",
1414                 ),
1415             ),
1416 #           -----------------------------------
1417             RAINFALL_RUNOFF_MODEL = SIMP(statut ='f',
1418 #           -----------------------------------
1419                 typ = 'TXM',
1420                 into = ["No infiltration","CN runoff model"],
1421                 defaut = "No infiltration",
1422                 fr = """Option pour modele pluie-debit. Les options disponibles sont:
1423   0 : Pas d infiltration (fonction de base)
1424   1 : Modele CN (Curve Number du SCS)""",
1425                 ang = """Option for the rainfall-runoff model. Available options are:
1426   0 : No infiltration
1427   1 : CN runoff model (Curve Number method of the SCS)""",
1428             ),
1429 #           -----------------------------------
1430             ANTECEDENT_MOISTURE_CONDITIONS = SIMP(statut ='f',
1431 #           -----------------------------------
1432                 typ = 'I',
1433                 defaut = 2,
1434                 fr = """Donne les conditions d humidite precedant un episode de pluie pour
1435 le modele CN du SCS. Les options disponibles sont:
1436   1 : conditions precedentes seches
1437   2 : conditions precedentes normales
1438   3 : conditions prcedentes mouillees
1439 ce mot cle est uniquement utile pour le modele pluie-debit 1 (CN)""",
1440                 ang = """Gives the antecedent moisture conditions before a rainfall
1441  event for the SCS CN runoff model. Available options are:
1442   1 : dry antecedent conditions
1443   2 : normal antecedent conditions
1444   3 : wet antecedent conditions
1445 This keyword is only usefull for runoff model 1 (SCS CN model)""",
1446             ),
1447 #           -----------------------------------
1448             DURATION_OF_RAIN_OR_EVAPORATION_IN_HOURS = SIMP(statut ='f',
1449 #           -----------------------------------
1450                 typ = 'R',
1451                 defaut = 1.E6,
1452                 fr = """Donne la duree de la pluie en heure, par defaut pluie infinie""",
1453                 ang = """Gives the duration of the rain in hour,
1454 default value is infinite""",
1455             ),
1456 #           -----------------------------------
1457             ASCII_ATMOSPHERIC_DATA_FILE = SIMP(statut ='f',
1458 #           -----------------------------------
1459                 typ = ('Fichier','All Files (*)'),
1460                 defaut = '',
1461                 fr = """Fichier de donnees en ascii contenant les informations
1462 atmospheriques variables en temps""",
1463                 ang = """Ascii data file containing the atmospheric data varying in
1464 time""",
1465             ),
1466 #           -----------------------------------
1467             BINARY_ATMOSPHERIC_DATA_FILE = SIMP(statut ='f',
1468 #           -----------------------------------
1469                 typ = ('Fichier','All Files (*)'),
1470                 defaut = '',
1471                 fr = """Fichier de donnees code en binaire contenant les informations
1472 atmospheriques variables en temps et en espace sur le maillage""",
1473                 ang = """Binary-coded data file containing the atmospheric data varying in
1474 time and space on the mesh""",
1475             ),
1476 #           -----------------------------------
1477             BINARY_ATMOSPHERIC_DATA_FILE_FORMAT = SIMP(statut ='f',
1478 #           -----------------------------------
1479                 typ = 'TXM',
1480                 into = ['SERAFIN?','SERAFIND','MED'],
1481                 defaut = 'SERAFIN?',
1482                 fr = """Format du fichier binaire de donn\E9es atmospheriques.
1483 Les valeurs possibles sont :
1484 - SERAFIN : format standard simple precision pour Telemac;
1485 - SERAFIND: format standard double precision pour Telemac;
1486 - MED     : format MED base sur HDF5""",
1487                 ang = """Binary atmospheric file format.
1488 Possible values are:
1489 - SERAFIN : classical single precision format in Telemac;
1490 - SERAFIND: classical double precision format in Telemac;
1491 - MED     : MED format based on HDF5""",
1492             ),
1493 #           -----------------------------------
1494             OPTION_FOR_INITIAL_ABSTRACTION_RATIO = SIMP(statut ='f',
1495 #           -----------------------------------
1496                 typ = 'I',
1497                 defaut = 1,
1498                 fr = """Donne le ratio entre pertes initiales IA et la retention potenti
1499 maximale S pour le modele pluie-debit SCS CN. Les options disponibles so
1500   1 : IA/S = 0.2 (methode standard)
1501   2 : IA/S = 0.05 (methode revisee, cf. Woodward, Hawkins et al. 2003. A
1502       cette option les coefficients CN fournis en entree sont alors
1503           automatiquement corriges, cf. manuel utilisateur).
1504 Ce mot cle est uniquement utile pour le modele pluie-d�bit 1 (CN)""",
1505                 ang = """Gives the ratio for Initial Abstraction to Maximal Potential
1506 Retention S for the SCS CN runoff model. Available options are:
1507   1 : IA/S = 0.2 (standard method)
1508   2 : IA/S = 0.05 (revised method, see Woodward, Hawkins et al. 2003. Wi
1509       this option the CN values given in input are automatically convers
1510           see user manual).
1511 This keyword is only useful for runoff model 1 (SCS CN model)""",
1512             ),
1513         ),
1514 #       -----------------------------------
1515         WAVE = FACT(statut='f',
1516 #       -----------------------------------
1517 #           -----------------------------------
1518             WAVE_DRIVEN_CURRENTS = SIMP(statut ='o',
1519 #           -----------------------------------
1520                 typ = bool,
1521                 defaut = False,
1522                 fr = """Active la prise en compte des courants de houle""",
1523                 ang = """Wave driven currents are taken into account.""",
1524             ),
1525 #           -----------------------------------
1526             b_WAVE_DRIVEN_CURRENTSG = BLOC(condition="WAVE_DRIVEN_CURRENTS == True",
1527 #           -----------------------------------
1528 #               -----------------------------------
1529                 RECORD_NUMBER_IN_WAVE_FILE = SIMP(statut ='o',
1530 #               -----------------------------------
1531                     typ = 'I',
1532                     defaut = 1,
1533                     fr = """Numero d enregistrement dans le fichier des courants de houle""",
1534                     ang = """Record number to read in the wave driven currents file""",
1535                 ),
1536             ),
1537 #           -----------------------------------
1538             WAVE_ENHANCED_FRICTION_FACTOR = SIMP(statut ='f',
1539 #           -----------------------------------
1540                 typ = bool,
1541                 defaut = False,
1542                 fr = """Active la prise en compte des interactions non-lineaires entre la
1543 houle et les courant pour le calcul du courant de houle (cf OConnor and
1544 Yoo, 1988, Coast Eng.12.)""",
1545                 ang = """Wave friction enhancement for the calculation of the wave generated
1546 longshore current (cf OConnor and Yoo, 1988, Coast Eng.12.)""",
1547             ),
1548         ),
1549 #       -----------------------------------
1550         ESTIMATION = FACT(statut='f',
1551 #       -----------------------------------
1552 #           -----------------------------------
1553             PARAMETER_ESTIMATION = SIMP(statut ='o',
1554 #           -----------------------------------
1555                 typ = 'TXM',
1556                 into = ['','FRICTION','FRICTION, STEADY'],
1557                 defaut = '',
1558                 fr = """Liste des parametres a estimer, choix : FROTTEMENT
1559         ou FROTTEMENT, PERMANENT""",
1560                 ang = """List of parameter to be estimated, choice : FRICTION
1561         or FRICTION, STEADY""",
1562             ),
1563 #           -----------------------------------
1564             COST_FUNCTION = SIMP(statut ='f',
1565 #           -----------------------------------
1566                 typ = 'TXM',
1567                 into = ["Computed with h,u,v","Computed with c,u,v"],
1568                 defaut = "Computed with h,u,v",
1569                 fr = """1 : calculee sur h, u , v  2 : calculee avec c, u , v""",
1570                 ang = """1: computed with h, u , v 2: computed with c, u , v""",
1571             ),
1572 #           -----------------------------------
1573             IDENTIFICATION_METHOD = SIMP(statut ='o',
1574 #           -----------------------------------
1575                 typ = 'TXM',
1576                 into = ["list of tests","gradient simple","conj gradient","Lagrange interp."],
1577                 defaut = "gradient simple",
1578                 fr = """0 : plan d''experience
1579 1 : gradient simple
1580 2 : gradient conj.
1581 3 : interp. de Lagrange""",
1582                 ang = """0 : list of tests
1583 1: gradient
1584 2 : conj. gradient
1585 3 : lagrange interp.""",
1586             ),
1587 #           -----------------------------------
1588             TOLERANCES_FOR_IDENTIFICATION = SIMP(statut ='o',
1589 #           -----------------------------------
1590                 typ = 'R', min= 4, max= 4,
1591                 defaut = [1.E-3,1.E-3,1.E-3,1.E-4],
1592                 fr = """4 nombres : precision absolue sur H, U, V,
1593  et precision relative sur la fonction cout""",
1594                 ang = """4 numbers: absolute precision on H, U V,
1595  and relative precision on the cost function""",
1596             ),
1597 #           -----------------------------------
1598             MAXIMUM_NUMBER_OF_ITERATIONS_FOR_IDENTIFICATION = SIMP(statut ='o',
1599 #           -----------------------------------
1600                 typ = 'I',
1601                 defaut = 20,
1602                 fr = """chaque iteration comprend au moins un
1603  calcul direct et un calcul adjoint""",
1604                 ang = """every iteration implies at least a direct and
1605  an adjoint computation""",
1606             ),
1607         ),
1608 #       -----------------------------------
1609         SOURCES = FACT(statut='f',
1610 #       -----------------------------------
1611 #           -----------------------------------
1612             ABSCISSAE_OF_SOURCES = SIMP(statut ='f',
1613 #           -----------------------------------
1614                 typ = 'R', min=0, max='**',
1615                 fr = """Valeurs des abscisses des sources de debit et de traceur.""",
1616                 ang = """abscissae of sources of flowrate and/or tracer""",
1617             ),
1618 #           -----------------------------------
1619             ORDINATES_OF_SOURCES = SIMP(statut ='f',
1620 #           -----------------------------------
1621                 typ = 'R', min=0, max='**',
1622                 fr = """Valeurs des ordonnees des sources de debit et de traceur.""",
1623                 ang = """ordinates of sources of flowrate and/or tracer""",
1624             ),
1625 #           -----------------------------------
1626             WATER_DISCHARGE_OF_SOURCES = SIMP(statut ='f',
1627 #           -----------------------------------
1628                 typ = 'R', min=0, max='**',
1629                 fr = """Valeurs des debits des sources.""",
1630                 ang = """values of water discharge of sources""",
1631             ),
1632 #           -----------------------------------
1633             VELOCITIES_OF_THE_SOURCES_ALONG_X = SIMP(statut ='f',
1634 #           -----------------------------------
1635                 typ = 'R', min=0, max='**',
1636                 fr = """Vitesses du courant a chacune des sources. Si elles ne sont pas
1637 donnees, on considere que la vitesse est celle du courant""",
1638                 ang = """Velocities at the sources. If they are not given, the velocity
1639 of the flow at this location is taken""",
1640             ),
1641 #           -----------------------------------
1642             VELOCITIES_OF_THE_SOURCES_ALONG_Y = SIMP(statut ='f',
1643 #           -----------------------------------
1644                 typ = 'R', min=0, max='**',
1645                 fr = """Vitesses du courant a chacune des sources""",
1646                 ang = """Velocities at the sources""",
1647             ),
1648 #           -----------------------------------
1649             TYPE_OF_SOURCES = SIMP(statut ='o',
1650 #           -----------------------------------
1651                 typ = 'TXM',
1652                 into = ["Normal","Dirac"],
1653                 defaut = "Normal",
1654                 fr = """1: Source portee par une base elements finis
1655 2: Source portee  par une fonction de Dirac""",
1656                 ang = """1: Source term multiplied by a finite element basis
1657 2: Source term multiplied by a Dirac function""",
1658             ),
1659 #           -----------------------------------
1660             SOURCES_FILE = SIMP(statut ='f',
1661 #           -----------------------------------
1662                 typ = ('Fichier','All Files (*)'),
1663                 defaut = '',
1664                 fr = """Nom du fichier contenant les informations variables
1665 en temps des sources""",
1666                 ang = """Name of the file containing time-dependent
1667 information on sources""",
1668             ),
1669 #           -----------------------------------
1670             GLOBAL_NUMBERS_OF_SOURCE_NODES = SIMP(statut ='f',
1671 #           -----------------------------------
1672                 typ = 'I', min=0, max='**',
1673                 fr = """ Numeros globaux des noeuds du maillage sur lequels sont affectes des
1674 points source""",
1675                 ang = """ Global numbers of nodes in the mesh that correspond to source point
1676 locations""",
1677             ),
1678         ),
1679 #       -----------------------------------
1680         WATER_QUALITY_INFO = FACT(statut='f',
1681 #       -----------------------------------
1682 #           -----------------------------------
1683             WATER_QUALITY_PROCESS = SIMP(statut ='f',
1684 #           -----------------------------------
1685                 typ = 'I',
1686                 defaut = 1,
1687                 fr = """Donne le numero du processus de qualite d''eau, defini
1688 comme une combinaison multiplicative de nombres premiers
1689 (2,3,5,7,11 et 13) avec les cas particuliers 0 et 1 :
1690 \begin{itemize}
1691 \item 0 : tous ;
1692 \item 1 : rien ;
1693 \item 2 : O2 ;
1694 \item 3 : BIOMASS ;
1695 \item 5 : EUTRO ;
1696 \item 7 : MICROPOL ;
1697 \item 11 : THERMIC ;
1698 \item 13 : AED2.
1699 \item 17 : Loi de degradation
1700 \item 19 : Court-cicuit temporaire pour les glaces
1701 \end{itemize}
1702 Example: 110 = 2x5x11 activera O2, EUTRO et THERMIC ensemble.
1703 On notera que AED2, pour l instant, n est pas disponible en 2D""",
1704                 ang = """Gives the water quality process number, defined as
1705 a multiplicative combination of prime numbers (2,3,5,7,11
1706  et 13) with 0 and 1 having a special role:
1707 \begin{itemize}
1708 \item 0: all,
1709 \item 1: none,
1710 \item 2: O2,
1711 \item 3: BIOMASS,
1712 \item 5: EUTRO,
1713 \item 7: MICROPOL,
1714 \item 11: THERMIC,
1715 \item 13: AED2.
1716 \item 17: Degradation law
1717 \item 19: Ghost process for ice modelling
1718 \end{itemize}
1719 Example: 110 = 2x5x11 activate O2, EUTRO and THERMIC together.
1720 It is noted that AED2 is not available in 2D, for the time being.""",
1721             ),
1722         ),
1723 #       -----------------------------------
1724         ADVANCED_PHY = FACT(statut='f',
1725 #       -----------------------------------
1726 #           -----------------------------------
1727             WATER_DENSITY = SIMP(statut ='o',
1728 #           -----------------------------------
1729                 typ = 'R',
1730                 defaut = 1000.,
1731                 fr = """Fixe la valeur de la masse volumique de l''eau.""",
1732                 ang = """set the value of water density""",
1733             ),
1734 #           -----------------------------------
1735             GRAVITY_ACCELERATION = SIMP(statut ='o',
1736 #           -----------------------------------
1737                 typ = 'R',
1738                 defaut = 9.81,
1739                 fr = """Fixe la valeur de l''acceleration de la pesanteur.""",
1740                 ang = """Set the value of the acceleration due to gravity.""",
1741             ),
1742 #           -----------------------------------
1743             VERTICAL_STRUCTURES = SIMP(statut ='o',
1744 #           -----------------------------------
1745                 typ = bool,
1746                 defaut = False,
1747                 fr = """Prise en compte de la force de trainee de structures verticales
1748 (il faut alors remplir la subroutine DRAGFO)""",
1749                 ang = """drag forces from vertical structures are taken into account.
1750 (subroutine DRAGFO must then be implemented)""",
1751             ),
1752 #           -----------------------------------
1753             b_VERTICAL_STRUCTURESG = BLOC(condition="VERTICAL_STRUCTURES == True",
1754 #           -----------------------------------
1755 #               -----------------------------------
1756                 Consigne = SIMP(statut ="o", homo="information", typ="TXM",
1757 #               -----------------------------------
1758                     defaut = "Fill the subroutine DRAGFO"),
1759             ),
1760         ),
1761     ),
1762 #   -----------------------------------
1763     NUMERICAL_PARAMETERS_HYDRO = FACT(statut='o',
1764 #   -----------------------------------
1765 #       -----------------------------------
1766         EQUATIONS = SIMP(statut ='o',
1767 #       -----------------------------------
1768             typ = 'TXM',
1769             into = ['SAINT-VENANT FE','SAINT-VENANT FV','BOUSSINESQ'],
1770             defaut = 'SAINT-VENANT FE',
1771             fr = """CHOIX DES EQUATIONS A RESOUDRE : SAINT-VENANT ELEMENTS FINIS,
1772 SAINT-VENANT VOLUMES FINIS OU BOUSSINESQ 20 CARACTERES""",
1773             ang = """CHOICE OF EQUATIONS TO SOLVE : SAINT-VENANT FINITE ELEMENTS,
1774 SAINT-VENANT FINITE VOLUMES OR BOUSSINESQ 20 CHARACTERS""",
1775         ),
1776 #       -----------------------------------
1777         b_EQUATIONSG = BLOC(condition="EQUATIONS == 'SAINT-VENANT FV'",
1778 #       -----------------------------------
1779 #           -----------------------------------
1780             FINITE_VOLUME_SCHEME = SIMP(statut ='o',
1781 #           -----------------------------------
1782                 typ = 'TXM',
1783                 into = ["Roe scheme","kinetic order 1","kinetic order 2","Zokagoa scheme order 1","Tchamen scheme order 1","HLLC scheme order 1","WAF scheme order 2"],
1784                 defaut = "kinetic order 1",
1785                 fr = """0 : schema de Roe 1 : cinetique ordre 1  2 : cinetique ordre 2
1786 3 : schema de Zokagoa 4 : schema de Tchamen 5 : HLLC ordre 1
1787 6 : WAF ordre 2""",
1788                 ang = """0: Roe scheme     1: kinetic order 1     2: kinetic order 2
1789 3 : Zokagoa scheme 4 : Tchamen scheme 5 : HLLC order 1
1790 6 : WAF order 2""",
1791             ),
1792         ),
1793 #       -----------------------------------
1794         TREATMENT_OF_THE_LINEAR_SYSTEM = SIMP(statut ='o',
1795 #       -----------------------------------
1796             typ = 'TXM',
1797             into = ["coupled","Wave equation"],
1798             defaut = "coupled",
1799             fr = """1 : Traitement couple 2 : equation d onde""",
1800             ang = """1 : Coupled  2 : wave equation""",
1801         ),
1802     ),
1803 #   -----------------------------------
1804     FLUID = FACT(statut='f',
1805 #   -----------------------------------
1806 #       -----------------------------------
1807         CORIOLIS_EFFECT = FACT(statut='f',
1808 #       -----------------------------------
1809 #           -----------------------------------
1810             CORIOLIS = SIMP(statut ='o',
1811 #           -----------------------------------
1812                 typ = bool,
1813                 defaut = False,
1814                 fr = """Prise en compte ou non de la force de Coriolis.""",
1815                 ang = """The Coriolis force is taken into account or ignored.""",
1816             ),
1817 #           -----------------------------------
1818             CORIOLIS_COEFFICIENT = SIMP(statut ='o',
1819 #           -----------------------------------
1820                 typ = 'R',
1821                 defaut = 0.,
1822                 fr = """Fixe la valeur du coefficient de la force de Coriolis.
1823 Celui-ci doit etre calcule en fonction de la latitude l par la formule
1824      FCOR = 2w sin(l) , w etant la vitesse de rotation de la terre.
1825                         w = 7.2921 10-5 rad/s
1826 Les composantes de la force de Coriolis sont alors :
1827    FU =   FCOR x V
1828    FV = - FCOR x U""",
1829                 ang = """Sets the value of the Coriolis force coefficient, in cartesian
1830 coordinates.
1831 This coefficient, denoted FCOR in the code, should be equal to
1832 2 w sin(l)d  where w denotes the earth angular speed of rotation
1833 and l the latitude. w = 7.27 10-5 rad/sec
1834 The Coriolis force components are then:
1835 FU =  FCOR x V,
1836 FV = -FCOR x U
1837 In spherical coordinates, the latitudes are known""",
1838             ),
1839         ),
1840 #       -----------------------------------
1841         TSUNAMI = FACT(statut='f',
1842 #       -----------------------------------
1843 #           -----------------------------------
1844             OPTION_FOR_TSUNAMI_GENERATION = SIMP(statut ='o',
1845 #           -----------------------------------
1846                 typ = 'TXM',
1847                 into = ["No Tsunami","Tsunami generated on the basis of the Okada model 1992"],
1848                 defaut = "No Tsunami",
1849                 fr = """""",
1850                 ang = """""",
1851             ),
1852 #           -----------------------------------
1853             PHYSICAL_CHARACTERISTICS_OF_THE_TSUNAMI = SIMP(statut ='o',
1854 #           -----------------------------------
1855                 typ = 'R', min=10, max=10,
1856                 defaut = [100.,210000.,75000.,13.6,81.,41.,110.,0.,0.,3.],
1857                 fr = """""",
1858                 ang = """""",
1859             ),
1860         ),
1861 #       -----------------------------------
1862         SECONDARY_CURRENTS_INFO = FACT(statut='f',
1863 #       -----------------------------------
1864 #           -----------------------------------
1865             SECONDARY_CURRENTS = SIMP(statut ='o',
1866 #           -----------------------------------
1867                 typ = bool,
1868                 defaut = False,
1869                 fr = """Pour prendre en compte les courants secondaires""",
1870                 ang = """Using the parametrisation for secondary currents""",
1871             ),
1872 #           -----------------------------------
1873             b_SECONDARY_CURRENTSG = BLOC(condition="SECONDARY_CURRENTS == True",
1874 #           -----------------------------------
1875 #               -----------------------------------
1876                 PRODUCTION_COEFFICIENT_FOR_SECONDARY_CURRENTS = SIMP(statut ='o',
1877 #               -----------------------------------
1878                     typ = 'R',
1879                     defaut = 7.071,
1880                     fr = """Une constante dans les termes de creation de Omega""",
1881                     ang = """A constant in the production terms of Omega""",
1882                 ),
1883 #               -----------------------------------
1884                 DISSIPATION_COEFFICIENT_FOR_SECONDARY_CURRENTS = SIMP(statut ='o',
1885 #               -----------------------------------
1886                     typ = 'R',
1887                     defaut = 5.E-1,
1888                     fr = """Coefficient de dissipation de Omega""",
1889                     ang = """Coefficient of dissipation term of Omega""",
1890                 ),
1891             ),
1892         ),
1893     ),
1894 )
1895 # -----------------------------------------------------------------------
1896 GENERAL_PARAMETERS = PROC(nom= "GENERAL_PARAMETERS",op = None,
1897 # -----------------------------------------------------------------------
1898     UIinfo = {"groupes": ("CACHE")},
1899 #   -----------------------------------
1900     DEBUGGER = SIMP(statut ='o',
1901 #   -----------------------------------
1902         typ = 'I',
1903         defaut = 0,
1904         fr = """Pour imprimer la sequence des appels, mettre 1""",
1905         ang = """If 1, calls of subroutines will be printed in the listing""",
1906     ),
1907 #   -----------------------------------
1908     TIME = FACT(statut='o',
1909 #   -----------------------------------
1910 #       -----------------------------------
1911         TIME_STEP = SIMP(statut ='o',
1912 #       -----------------------------------
1913             typ = 'R',
1914             defaut = 1.,
1915             fr = """Definit le pas de temps en secondes. Remarque : Pour une bonne
1916 precision; il est souhaitable de choisir le pas de temps de telle sorte
1917 que le nombre de Courant de propagation soit inferieur a 2 ; voir 3.
1918 Ceci peut etre realisable en hydraulique fluviale ; mais ne l''est
1919 pratiquement jamais en hydraulique maritime ou l''on peut atteindre des
1920 valeurs de 50.""",
1921             ang = """Specifies the time step in seconds.""",
1922         ),
1923 #       -----------------------------------
1924         NUMBER_OF_TIME_STEPS = SIMP(statut ='f',
1925 #       -----------------------------------
1926             typ = 'I',
1927             defaut = 1,
1928             fr = """ Definit le nombre de pas de temps effectues lors de l''execution du
1929 code.""",
1930             ang = """ Specifies the number of time steps performed when running the code.""",
1931         ),
1932 #       -----------------------------------
1933         DURATION = SIMP(statut ='f',
1934 #       -----------------------------------
1935             typ = 'R',
1936             defaut = 0.,
1937             fr = """Duree de la simulation. alternative au parametre nombre de pas
1938 de temps. On en deduit le nombre de pas de temps en prenant l''entier le
1939  plus proche de (duree du calcul/pas de temps). Si le nombre de pas de
1940 temps est aussi donne, on prend la plus grande valeur""",
1941             ang = """Duration of simulation. May be used instead of the parameter
1942 NUMBER OF TIME STEPS. The nearest integer to (duration/time step) is
1943 taken.
1944 If NUMBER OF TIME STEPS is also given, the greater value is taken""",
1945         ),
1946 #       -----------------------------------
1947         ORIGINAL_DATE_OF_TIME = SIMP(statut ='o',
1948 #       -----------------------------------
1949             typ = 'I', min= 3, max= 3,
1950             defaut = [1900,1,1],
1951             fr = """Permet de fixer la date d''origine des temps du modele lors
1952 de la prise en compte de la force generatrice de la maree.""",
1953             ang = """Give the date of the time origin of the model when taking into
1954 account the tide generating force.""",
1955         ),
1956 #       -----------------------------------
1957         ORIGINAL_HOUR_OF_TIME = SIMP(statut ='o',
1958 #       -----------------------------------
1959             typ = 'I', min= 3, max= 3,
1960             defaut = [0,0,0],
1961             fr = """ Permet de fixer l''heure d''origine des temps du modele lors de la
1962 prise en compte de la force generatrice de la maree.""",
1963             ang = """ Give the time of the time origin of the model when taking into account
1964 of the tide generator force.""",
1965         ),
1966 #       -----------------------------------
1967         STOP_IF_A_STEADY_STATE_IS_REACHED = SIMP(statut ='o',
1968 #       -----------------------------------
1969             typ = bool,
1970             defaut = False,
1971             fr = """A UTILISER AVEC LE MOT-CLE : CRITERES D''ARRET""",
1972             ang = """TO BE USED WITH THE KEY-WORD: STOP CRITERIA""",
1973         ),
1974 #       -----------------------------------
1975         b_STOP_IF_A_STEADY_STATE_IS_REACHEDG = BLOC(condition="STOP_IF_A_STEADY_STATE_IS_REACHED == True",
1976 #       -----------------------------------
1977 #           -----------------------------------
1978             STOP_CRITERIA = SIMP(statut ='o',
1979 #           -----------------------------------
1980                 typ = 'R', min= 3, max= 3,
1981                 defaut = [1.E-4,1.E-4,1.E-4],
1982                 fr = """Criteres d''arret pour un ecoulement permanent
1983 ces coefficients sont respectivement appliques a
1984         1) U et V
1985         2) H
1986         3) T
1987 A utiliser avec le mot-cle : ARRET SI UN ETAT PERMANENT EST ATTEINT""",
1988                 ang = """Stop criteria for a steady state
1989 These coefficients are applied respectively to
1990         1) U and V
1991         2) H
1992         3) T
1993 To be used with the key-word: STOP IF A STEADY STATE IS REACHED""",
1994             ),
1995         ),
1996 #       -----------------------------------
1997         CONTROL_OF_LIMITS = SIMP(statut ='o',
1998 #       -----------------------------------
1999             typ = bool,
2000             defaut = False,
2001             fr = """Utiliser avec le mot-cle : valeurs limites, le programme
2002 s''arrete si les limites sur u,v,h ou t sont depassees""",
2003             ang = """Use with the key-word : limit values,
2004 the program is stopped if
2005 the limits on u,v,h, or t are trespassed""",
2006         ),
2007 #       -----------------------------------
2008         b_CONTROL_OF_LIMITSG = BLOC(condition="CONTROL_OF_LIMITS == True",
2009 #       -----------------------------------
2010 #           -----------------------------------
2011             LIMIT_VALUES = SIMP(statut ='o',
2012 #           -----------------------------------
2013                 typ = 'R', min= 8, max= 8,
2014                 defaut = [-1000.,9000.,-1000.,1000.,-1000.,1000.,-1000.,1000.],
2015                 fr = """Utilise avec le mot-cle CONTROLE DES LIMITES
2016         valeurs mini et maxi acceptables pour H,U,V et T dans l''ordre
2017         suivant : min(H) max(H) min(U) max(U)
2018                   min(V) max(V) min(T) max(T)""",
2019                 ang = """To be used with the key-word CONTROL OF LIMITS
2020         min and max acceptable values for H,U,V et T in the following
2021         order   : min(H) max(H) min(U) max(U)
2022                   min(V) max(V) min(T) max(T)""",
2023             ),
2024         ),
2025 #       -----------------------------------
2026         VARIABLE_TIME_STEP = SIMP(statut ='o',
2027 #       -----------------------------------
2028             typ = bool,
2029             defaut = False,
2030             fr = """ Pas de temps variable pour avoir un nombre de courant souhaite""",
2031             ang = """ Variable time-step to get a given Courant number""",
2032         ),
2033 #       -----------------------------------
2034         b_VARIABLE_TIME_STEPG = BLOC(condition="VARIABLE_TIME_STEP == True",
2035 #       -----------------------------------
2036 #           -----------------------------------
2037             DESIRED_COURANT_NUMBER = SIMP(statut ='o',
2038 #           -----------------------------------
2039                 typ = 'R',
2040                 defaut = 1.,
2041                 fr = """Nombre de Courant souhaite en cas de pas de temps variable""",
2042                 ang = """Desired Courant number when VARIABLE TIME-STEP is set to YES""",
2043             ),
2044         ),
2045     ),
2046 #   -----------------------------------
2047     LOCATION = FACT(statut='o',
2048 #   -----------------------------------
2049 #       -----------------------------------
2050         ORIGIN_COORDINATES = SIMP(statut ='o',
2051 #       -----------------------------------
2052             typ = 'I', min= 2, max= 2,
2053             defaut = [0,0],
2054             fr = """Valeur en metres, utilise
2055 pour eviter les trops grands nombres, transmis
2056 dans le format Selafin mais pas d''autre traitement pour l''instant""",
2057             ang = """Value in metres, used to avoid large real numbers,
2058 added in Selafin format, but so far no other treatment""",
2059         ),
2060 #       -----------------------------------
2061         SPHERICAL_COORDINATES = SIMP(statut ='o',
2062 #       -----------------------------------
2063             typ = bool,
2064             defaut = False,
2065             fr = """Choix des coordonnees spheriques pour la realisation du calcul
2066 ( pour les grands domaines de calcul).
2067 Attention : cette option est etroitement liee au
2068 maillage qui doit avoir
2069 ete saisi sur une carte marine en projection de Mercator.
2070 Il faut de plus relever sur la carte la LATITUDE DU POINT ORIGINE
2071 (autre mot-cle) qui correspond dans le maillage a l''ordonnee y = 0.""",
2072             ang = """Selection of spherical coordinates to perform the computation
2073 (for large computation domains).
2074 Warning: this option is closely related to the mesh that should have
2075 been entered onto a nautical chart drawn as per Mercator projection
2076 The LATITUDE OF ORIGIN POINT (another keyword), which corresponds to
2077 ordinate y=0 in the mesh, must moreover be given.""",
2078         ),
2079 #       -----------------------------------
2080         b_SPHERICAL_COORDINATESG = BLOC(condition="SPHERICAL_COORDINATES == True",
2081 #       -----------------------------------
2082 #           -----------------------------------
2083             LATITUDE_OF_ORIGIN_POINT = SIMP(statut ='o',
2084 #           -----------------------------------
2085                 typ = 'R',
2086                 defaut = 48.,
2087                 fr = """Determine l''origine utilisee pour le calcul de latitudes
2088 lorsque l''on effectue un calcul en coordonnees spheriques.""",
2089                 ang = """Determines the origin used for computing latitudes when
2090 a computation is made in spherical coordinates.
2091 this latitude is in particular used to compute the Coriolis force.
2092 In cartesian coordinates, Coriolis coefficient is considered constant.""",
2093             ),
2094         ),
2095 #       -----------------------------------
2096         LONGITUDE_OF_ORIGIN_POINT = SIMP(statut ='o',
2097 #       -----------------------------------
2098             typ = 'R',
2099             defaut = 0.,
2100             fr = """Fixe la valeur de la longitude du point origine du modele,
2101 lors de l''utilisation de la force generatrice de la maree.""",
2102             ang = """Give the value of the longitude of the origin point
2103 of the model, when taking into account of the tide generator force.""",
2104         ),
2105 #       -----------------------------------
2106         NORTH = SIMP(statut ='f',
2107 #       -----------------------------------
2108             typ = 'R',
2109             defaut = 0.,
2110             fr = """Direction du nord en degres, par rapport a l''axe des y
2111 dans le sens trigonometrique. Notation decimale 10.5 signifie  10 degres
2112  et trente minutes.""",
2113             ang = """Angle of the North with the y axis, in degrees. 10.5 means
2114 10 degrees and 30 minutes.""",
2115         ),
2116 #       -----------------------------------
2117         SPATIAL_PROJECTION_TYPE = SIMP(statut ='o',
2118 #       -----------------------------------
2119             typ = 'TXM',
2120             into = ["CARTESIAN, NOT GEOREFERENCED","MERCATOR","LATITUDE LONGITUDE"],
2121             defaut = "CARTESIAN, NOT GEOREFERENCED",
2122             fr = """Option 2 ou 3 obligatoire pour les coordonnees spheriques
2123 Option 3 : latitude et longitude en degres !""",
2124             ang = """Option 2 or 3 mandatory for spherical coordinates
2125 Option 3: latitude and longitude in degrees!""",
2126         ),
2127     ),
2128 )
2129 # -----------------------------------------------------------------------
2130 NUMERICAL_PARAMETERS = PROC(nom= "NUMERICAL_PARAMETERS",op = None,
2131 # -----------------------------------------------------------------------
2132     UIinfo = {"groupes": ("CACHE")},
2133 #   -----------------------------------
2134     SOLVER_INFO = FACT(statut='o',
2135 #   -----------------------------------
2136 #       -----------------------------------
2137         SOLVER = SIMP(statut ='o',
2138 #       -----------------------------------
2139             typ = 'TXM',
2140             into = ["conjugate gradient on a normal equation","conjugate gradient","conjugate residual","minimum error","cgstab","gmres","direct"],
2141             defaut = "conjugate gradient on a normal equation",
2142             fr = """Permet de choisir le solveur utilise pour la resolution de
2143 l''etape de propagation. Toutes les methodes proposees actuellement
2144 s''apparentent au Gradient Conjugue. Ce sont :
2145   1 : gradient conjugue
2146   2 : residu conjugue
2147   3 : gradient conjugue sur equation normale
2148   4 : erreur minimale
2149   5 : gradient conjugue carre (non programme)
2150   6 : gradient conjugue carre stabilise (cgstab)
2151   7 : gmres (voir aussi option du solveur)
2152   8 : direct""",
2153             ang = """Makes it possible to select the solver used for solving the
2154 propagation step. All the currently available methods are variations
2155 of the Conjugate Gradient method. They are as follows:
2156 1: conjugate gradient
2157 2: conjugate residual
2158 3: conjugate gradient on a normal equation
2159 4: minimum error
2160 5: conjugate gradient squared (not implemented)
2161 6: conjugate gradient squared stabilised (cgstab)
2162 7: gmres (see option for solver)
2163 8: direct""",
2164         ),
2165 #       -----------------------------------
2166         b_SOLVERG = BLOC(condition="SOLVER == 'gmres'",
2167 #       -----------------------------------
2168 #           -----------------------------------
2169             SOLVER_OPTION = SIMP(statut ='o',
2170 #           -----------------------------------
2171                 typ = 'I',
2172                 defaut = 2,
2173                 fr = """si le solveur est GMRES (7) le mot cle est la dimension de
2174 l''espace de KRYLOV (valeurs conseillees entre 2 et 15)""",
2175                 ang = """WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE
2176 TRY VALUES BETWEEN 2 AND 15""",
2177             ),
2178         ),
2179 #       -----------------------------------
2180         SOLVER_ACCURACY = SIMP(statut ='o',
2181 #       -----------------------------------
2182             typ = 'R',
2183             defaut = 1.E-4,
2184             fr = """Precision demandee pour la resolution de l''etape de propagation
2185  (cf.  Note de principe).""",
2186             ang = """Required accuracy for solving the propagation step
2187 (refer to Principle note).""",
2188         ),
2189 #       -----------------------------------
2190         MAXIMUM_NUMBER_OF_ITERATIONS_FOR_SOLVER = SIMP(statut ='o',
2191 #       -----------------------------------
2192             typ = 'I',
2193             defaut = 100,
2194             fr = """Les algorithmes utilises pour la resolution de l''etape de
2195 propagation etant iteratifs; il est necessaire de limiter le nombre
2196 d''iterations autorisees.
2197 Remarque : un maximum de 40 iterations par pas de temps semble
2198 raisonnable.""",
2199             ang = """Since the algorithms used for solving the propagation step are
2200 iterative, the allowed number of iterations should be limited.
2201 NOTE: a maximum number of 40 iterations per time step seems to be
2202 reasonable.""",
2203         ),
2204 #       -----------------------------------
2205         CONTINUITY_CORRECTION = SIMP(statut ='o',
2206 #       -----------------------------------
2207             typ = bool,
2208             defaut = False,
2209             fr = """Corrige les vitesses sur les points avec hauteur imposee ou
2210 l''equation de continuite n''a pas ete resolue""",
2211             ang = """Correction of the velocities on points with a prescribed
2212 elevation, where the continuity equation has not been solved""",
2213         ),
2214 #       -----------------------------------
2215         PRECONDITIONING = SIMP(statut ='o',
2216 #       -----------------------------------
2217             typ = 'TXM',
2218             into = ["diagonal","no preconditioning","block-diagonal (4-9 matrices)","absolute value of diagonal","crout","gauss-seidel","diagonal and crout"],
2219             defaut = "diagonal",
2220             fr = """Permet de preconditionner le systeme de l''etape de propagation
2221 afin d''accelerer la convergence lors de sa resolution.
2222  - 0 : pas de preconditionnement;
2223  - 2 : preconditionnement diagonal.
2224  - 3 : preconditionnement diagonal-bloc
2225  - 7 : preconditionnement de Crout par element ou segment
2226  -11 : preconditionnement de Gauss-Seidel par element ou segment
2227 Certains preconditionnements sont cumulables
2228 (les diagonaux 2 ou 3 avec les autres)
2229 Pour cette raison on ne retient que les nombres premiers pour
2230 designer les preconditionnements. Si l''on souhaite en cumuler
2231 plusieurs on formera le produit des options correspondantes.""",
2232             ang = """Choice of the preconditioning in the propagation step linear
2233 system that the convergence is speeded up when it is being solved.
2234  0: no preconditioning
2235  2: diagonal preconditioning
2236  3: block-diagonal preconditioning (systemes a 4 ou 9 matrices)
2237  7: Crout''s preconditioning per element or segment
2238 11: Gauss-Seidel''s preconditioning per element or segment
2239 Some operations (either 2 or 3 diagonal preconditioning) can be
2240 performed concurrently with the others.
2241 Only prime numbers are therefore kept to denote the preconditioning
2242 operations. When several of them are to be performed concurrently,
2243 the product of relevant options shall be made.""",
2244         ),
2245 #       -----------------------------------
2246         C_U_PRECONDITIONING = SIMP(statut ='o',
2247 #       -----------------------------------
2248             typ = bool,
2249             defaut = True,
2250             fr = """Changement de variable de H en C dans le systeme lineaire final""",
2251             ang = """Change of variable from H to C in the final linear system""",
2252         ),
2253 #       -----------------------------------
2254         FINITE_ELEMENT_ASSEMBLY = SIMP(statut ='f',
2255 #       -----------------------------------
2256             typ = 'TXM',
2257             into = ["normal","Integer I8","Compensated"],
2258             defaut = "normal",
2259             fr = """1 : normal 2 : avec des entiers I8 3:compense""",
2260             ang = """1: normal 2: with I8 integers 3:compensation""",
2261         ),
2262     ),
2263 #   -----------------------------------
2264     DISCRETISATIONS_IMPLICITATION = FACT(statut='o',
2265 #   -----------------------------------
2266 #       -----------------------------------
2267         IMPLICITATION_FOR_DEPTH = SIMP(statut ='o',
2268 #       -----------------------------------
2269             typ = 'R',
2270             defaut = 0.55,
2271             fr = """Fixe la valeur du coefficient d''implicitation sur C dans l''etape de
2272 propagation (cf. Note de principe). Les valeurs inferieures a 0.5
2273 donnent un schema instable.""",
2274             ang = """Sets the value of the implicitation coefficient for C (the celerity of
2275 waves) in the propagation step (refer to principle note). Values below
2276 0.5 result in an unstable scheme.""",
2277         ),
2278 #       -----------------------------------
2279         IMPLICITATION_FOR_VELOCITY = SIMP(statut ='o',
2280 #       -----------------------------------
2281             typ = 'R',
2282             defaut = 0.55,
2283             fr = """Fixe la valeur du coefficient d''implicitation sur la vitesse dans
2284 l''etape de propagation (cf. Note de principe). Les valeurs inferieures
2285 a 0.5 donnent un schema instable.""",
2286             ang = """Sets the value of the implicitation coefficient for velocity in the
2287 propagation step (refer to principle note). Values below 0.5 result in
2288 an unstable condition.""",
2289         ),
2290 #       -----------------------------------
2291         DISCRETIZATIONS_IN_SPACE = SIMP(statut ='f',
2292 #       -----------------------------------
2293             typ = 'TXM', max='**',
2294             into = ["linear","quasi-bubble","quadratic"],
2295             defaut = ["linear","linear","linear","linear"],
2296             fr = """ Choix de la discretisation pour chaque variable ces coefficients sont
2297 respectivement appliques a 1) U et V 2) H 3) T 4) K ET EPSILON (NON
2298 PROGRAMME) 11 : lineaire 12 : quasi-bulle 13 : quadratique""",
2299             ang = """ Choice of space discretisation for every variable These coefficients
2300 are applied respectively to 1) U and V 2) H 3) T 4) K and EPSILON (NOT
2301 IMPLEMENTED) 11: linear 12: quasi-bubble 13: quadratic""",
2302         ),
2303 #       -----------------------------------
2304         b_DISCRETIZATIONS_IN_SPACEG = BLOC(condition="DISCRETIZATIONS_IN_SPACE != None",
2305 #       -----------------------------------
2306 #           -----------------------------------
2307             Consigne = SIMP(statut ="o", homo="information", typ="TXM",
2308 #           -----------------------------------
2309                 defaut = "Choice of space discretisation for every variable. These coefficients are applied respectively to 1) U and V 2) H 3) T 4) K and EPSILON"),
2310         ),
2311     ),
2312 #   -----------------------------------
2313     PROPAGATION_INFO = FACT(statut='o',
2314 #   -----------------------------------
2315 #       -----------------------------------
2316         PROPAGATION = SIMP(statut ='o',
2317 #       -----------------------------------
2318             typ = bool,
2319             defaut = True,
2320             fr = """Prise en compte ou non de la propagation de la vitesse et de la
2321 hauteur d''eau.
2322 La diffusion etant contenue dans cette etape sera supprimee aussi.""",
2323             ang = """Determines whether the propagation step is taken into account
2324 or not.
2325 The diffusion being included in that step will be deleted as well.""",
2326         ),
2327 #       -----------------------------------
2328         b_PROPAGATIONG = BLOC(condition="PROPAGATION == True",
2329 #       -----------------------------------
2330 #           -----------------------------------
2331             MEAN_DEPTH_FOR_LINEARIZATION = SIMP(statut ='o',
2332 #           -----------------------------------
2333                 typ = 'R',
2334                 defaut = 0.,
2335                 fr = """Fixe la hauteur d''eau autour de laquelle s''effectue la
2336 linearisation lorsque l''option PROPAGATION LINEARISEE est choisie.""",
2337                 ang = """Sets the water depth about which the linearization is made
2338 when the LINEARIZED PROPAGATION OPTION is selected.""",
2339             ),
2340 #           -----------------------------------
2341             INITIAL_GUESS_FOR_U = SIMP(statut ='o',
2342 #           -----------------------------------
2343                 typ = 'TXM',
2344                 into = ["zero","previous","extrapolation"],
2345                 defaut = "previous",
2346                 fr = """Tir initial du solveur de l''etape de propagation.
2347 Offre la possibilite de modifier la valeur initiale de U, a chaque
2348 iteration, dans l''etape de propagation en utilisant les valeurs
2349 finales de cette variable aux pas de temps precedents. Ceci peut
2350 permettre d''accelerer la vitesse de convergence lors de la resolution
2351 du systeme. Trois possibilites sont offertes :
2352  0 : U = 0
2353  1 : U = U(n)
2354  2 : U = 2 U(n)- U(n-1) (extrapolation)""",
2355                 ang = """Initial guess for the solver in the propagation step.
2356 Makes it possible to modify the initial value of U, upon each
2357 iteration in the propagation step, by using the ultimate values this
2358 variable had in the earlier time steps. Thus, the convergence can be
2359 speeded up when the system is being solved. 3 options are available:
2360  0 : U = 0
2361  1 : U = U(n)
2362  2 : U = 2 U(n)- U(n-1) (extrapolation)""",
2363             ),
2364         ),
2365 #       -----------------------------------
2366         INITIAL_GUESS_FOR_H = SIMP(statut ='o',
2367 #       -----------------------------------
2368             typ = 'TXM',
2369             into = ["zero","previous","extrapolation"],
2370             defaut = "previous",
2371             fr = """ Tir initial du solveur de l''etape de propagation. Offre la
2372 possibilite de modifier la valeur initiale de DH, accroissement de H, a
2373 chaque iteration, dans l''etape de propagation en utilisant les valeurs
2374 finales de cette variable aux pas de temps precedents. Ceci peut
2375 permettre d''accelerer la vitesse de convergence lors de la resolution
2376 du systeme. Trois possibilites sont offertes :
2377  0 : DH = 0.
2378  1 : DH = DHn (valeur finale de DH au pas de temps precedent),
2379  2 : DH = 2DHn - DHn-1 (extrapolation).""",
2380             ang = """Initial guess for the solver in the propagation step.
2381 Makes it possible to modify the initial value of C, upon each
2382 iteration in the propagation step, by using the ultimate values this
2383 variable had in the earlier time steps. Thus, the convergence can be
2384 speeded up when the system is being solved. 3 options are available:
2385  0: DH = 0
2386  1: DH = DHn (ultimate DH value in the next previous time step)
2387  2: DH = 2DHn - DHn-1 (extrapolation)""",
2388         ),
2389 #       -----------------------------------
2390         LINEARIZED_PROPAGATION = SIMP(statut ='o',
2391 #       -----------------------------------
2392             typ = bool,
2393             defaut = False,
2394             fr = """Permet de lineariser l''etape de propagation;
2395 par exemple lors de la realisation de cas tests
2396 pour lesquels on dispose
2397 d''une solution analytique dans le cas linearise.""",
2398             ang = """Provided for linearizing the propagation step, e.g. when
2399 performing test-cases for which an analytical
2400 solution in the linearized
2401 case is available.""",
2402         ),
2403     ),
2404 #   -----------------------------------
2405     ADVECTION_INFO = FACT(statut='o',
2406 #   -----------------------------------
2407 #       -----------------------------------
2408         ADVECTION = SIMP(statut ='o',
2409 #       -----------------------------------
2410             typ = bool,
2411             defaut = True,
2412             fr = """Prise en compte ou non des termes de convection.
2413 En cas de reponse positive;
2414 on peut encore supprimer certains termes de convection avec
2415 les mots-cles CONVECTION DE ...""",
2416             ang = """Are the advection terms taken into account or not?
2417 If YES, some advection terms can still be deleted using the keywords
2418 -ADVECTION OF ..-""",
2419         ),
2420 #       -----------------------------------
2421         ADVECTION_OF_H = SIMP(statut ='o',
2422 #       -----------------------------------
2423             typ = bool,
2424             defaut = True,
2425             fr = """Prise en compte ou non de la convection de H.
2426 Il s''agit en fait dans la version 2.0 de la convection de C""",
2427             ang = """The advection of H  is taken into account or ignored.
2428 Actually, in version 2.0, the matter is about C advection.""",
2429         ),
2430 #       -----------------------------------
2431         ADVECTION_OF_U_AND_V = SIMP(statut ='f',
2432 #       -----------------------------------
2433             typ = bool,
2434             defaut = True,
2435             fr = """Prise en compte ou non de la convection de U et V.""",
2436             ang = """The advection of U and V is taken into account or ignored.""",
2437         ),
2438 #       -----------------------------------
2439         b_ADVECTION_OF_U_AND_VG = BLOC(condition="ADVECTION_OF_U_AND_V == True",
2440 #       -----------------------------------
2441 #           -----------------------------------
2442             SCHEME_FOR_ADVECTION_OF_VELOCITIES = SIMP(statut ='o',
2443 #           -----------------------------------
2444                 typ = 'TXM',
2445                 into = ["NO ADVECTION","CHARACTERISTICS","EXPLICIT + SUPG","EXPLICIT LEO POSTMA","EXPLICIT + MURD SCHEME N","EXPLICIT + MURD SCHEME PSI","N-SCHEME FOR TIDAL FLATS","N-SCHEME FOR TIDAL FLATS","ERIA SCHEME"],
2446                 defaut = "CHARACTERISTICS",
2447                 fr = """Choix du schema de convection pour les vitesses,
2448 remplace FORME DE LA CONVECTION""",
2449                 ang = """Choice of the advection scheme for the velocities,
2450 replaces TYPE OF ADVECTION""",
2451             ),
2452         ),
2453 #       -----------------------------------
2454         TYPE_OF_ADVECTION = SIMP(statut ='f',
2455 #       -----------------------------------
2456             typ = 'TXM', max='**',
2457             into = ["CHARACTERISTICS","SUPG","CONSERVATIVE N-SCHEME LP","CONSERVATIVE N-SCHEME","CONSERVATIVE PSI-SCHEME","EDGE-BASED N-SCHEME LP","EDGE-BASED N-SCHEME","ERIA SCHEME"],
2458             defaut = ["CHARACTERISTICS","CONSERVATIVE PSI-SCHEME","CHARACTERISTICS","CHARACTERISTICS"],
2459             fr = """Choix du schema de convection pour chaque variable
2460 ces coefficients sont respectivement appliques a
2461 1) U et V     2) H     3) T     4) K ET EPSILON
2462 1 : caracteristiques sur h
2463 2 : SUPG
2464 3 : Schema N conservatif
2465 4 : Schema N conservatif
2466 5 : Schema PSI conservatif
2467 13 : Schema N par segment
2468 14 : Schema N par segment
2469 15 : Schema ERIA
2470 Second integer must be 5""",
2471             ang = """Choice of advection schemes for every variable
2472 These coefficients are applied respectively to
2473 1) U et V     2) H     3) T     4) K and EPSILON
2474 1: characteristics
2475 2: SUPG
2476 3: Conservative N-scheme
2477 4: Conservative N-scheme
2478 5: Conservative PSI-scheme
2479 13 : Edge-based N-scheme
2480 14 : Edge-based N-scheme
2481 15 : ERIA scheme
2482 Second integer must be 5""",
2483         ),
2484 #       -----------------------------------
2485         b_TYPE_OF_ADVECTIONG = BLOC(condition="TYPE_OF_ADVECTION != None",
2486 #       -----------------------------------
2487 #           -----------------------------------
2488             Consigne = SIMP(statut ="o", homo="information", typ="TXM",
2489 #           -----------------------------------
2490                 defaut = "Choice of space discretisation for every variable. These coefficients are applied respectively to 1) U and V 2) H 3) T 4) K and EPSILON"),
2491         ),
2492 #       -----------------------------------
2493         OPTION_FOR_CHARACTERISTICS = SIMP(statut ='o',
2494 #       -----------------------------------
2495             typ = 'TXM',
2496             into = ["strong","weak"],
2497             defaut = "strong",
2498             fr = """1: forme forte 2: forme faible""",
2499             ang = """1: strong form 2: weak form""",
2500         ),
2501 #       -----------------------------------
2502         SUPG_OPTION = SIMP(statut ='o',
2503 #       -----------------------------------
2504             typ = 'I', min=0, max='**',
2505             defaut = [2,2,2,2],
2506             fr = """0:pas de decentrement SUPG  1:SUPG classique   2:SUPG modifiee
2507 ces coefficients sont respectivement appliques a
2508 1) U et V     2) H      3) T     4) K ET EPSILON""",
2509             ang = """0:no upwinding              1: classical SUPG  2:modified SUPG
2510 These coefficients are applied respectively to
2511 1) U et V     2) H      3) T     4) K and EPSILON""",
2512         ),
2513 #       -----------------------------------
2514         NUMBER_OF_GAUSS_POINTS_FOR_WEAK_CHARACTERISTICS = SIMP(statut ='f',
2515 #       -----------------------------------
2516             typ = 'I',
2517             defaut = 3,
2518             fr = """Voir les release notes 6.3""",
2519             ang = """See release notes 6.3""",
2520         ),
2521 #       -----------------------------------
2522         MASS_LUMPING_FOR_WEAK_CHARACTERISTICS = SIMP(statut ='o',
2523 #       -----------------------------------
2524             typ = 'R',
2525             defaut = 0.,
2526             fr = """Applique a la matrice de masse""",
2527             ang = """To be applied to the mass matrix""",
2528         ),
2529 #       -----------------------------------
2530         b_MAXIMUM_NUMBER_OF_ITERATIONS_FOR_ADVECTION_SCHEMESF = BLOC(condition="(ADVECTION_OF_TRACERS == True and SCHEME_FOR_ADVECTION_OF_TRACERS == 'EDGE-BASED N-SCHEME') or (ADVECTION_OF_K_AND_EPSILON == True and SCHEME_FOR_ADVECTION_OF_K_EPSILON == 'EDGE-BASED N-SCHEME') or (ADVECTION_OF_U_AND_V == True and SCHEME_FOR_ADVECTION_OF_VELOCITIES == 'EDGE-BASED N-SCHEME')",
2531 #       -----------------------------------
2532         ),
2533 #       -----------------------------------
2534         MAXIMUM_NUMBER_OF_ITERATIONS_FOR_ADVECTION_SCHEMES = SIMP(statut ='o',
2535 #       -----------------------------------
2536             typ = 'I',
2537             defaut = 10,
2538             fr = """Seulement pour schemes 13 et 14""",
2539             ang = """Only for schemes 13 and 14""",
2540         ),
2541 #       -----------------------------------
2542         UPWIND_COEFFICIENTS = SIMP(statut ='o',
2543 #       -----------------------------------
2544             typ = 'R', min= 4, max= 4,
2545             defaut = [1.,1.,1.,1],
2546             fr = """Coefficients utilises par la methode S.U.P.G.
2547 ces coefficients sont respectivement appliques a
2548         1) U et V
2549         2) H ou C
2550         3) T
2551         4) K ET EPSILON""",
2552             ang = """Upwind coefficients used by the S.U.P.G. method
2553 These coefficients are applied respectively to
2554         1) U and V
2555         2) H  or C
2556         3) T
2557         4) K and epsilon""",
2558         ),
2559 #       -----------------------------------
2560         MASS_LUMPING_ON_H = SIMP(statut ='o',
2561 #       -----------------------------------
2562             typ = 'R',
2563             defaut = 0.,
2564             fr = """TELEMAC offre la possibilite d''effectuer du mass-lumping
2565 sur H ou U.
2566 Ceci revient a ramener tout ou partie (suivant la valeur de ce
2567 coefficient) des matrices AM1 (h) ou AM2 (U) et AM3 (V) sur
2568 leur diagonale.
2569 Cette technique permet d''accelerer le code dans des proportions tres
2570 importantes et de le rendre egalement beaucoup plus stable. Cependant
2571 les solutions obtenues se trouvent lissees.
2572 Ce parametre fixe le taux de mass-lumping effectue sur h.""",
2573             ang = """TELEMAC provides an opportunity to carry out mass-lumping
2574 either on C,H or on the velocity.
2575 This is equivalent to bringing the matrices AM1 (h) or AM2 (U) and
2576 AM3 (V) wholly or partly, back onto their diagonal.
2577 Thanks to that technique, the code can be speeded up to a quite
2578 significant extent and it can also be made much more stable. The
2579 resulting solutions, however, become artificially smoothed.
2580 This parameter sets the extent of mass-lumping that is performed on h.""",
2581         ),
2582 #       -----------------------------------
2583         MASS_LUMPING_ON_VELOCITY = SIMP(statut ='o',
2584 #       -----------------------------------
2585             typ = 'R',
2586             defaut = 0.,
2587             fr = """Fixe le taux de mass-lumping effectue sur la vitesse.""",
2588             ang = """Sets the amount of mass-lumping that is performed on the velocity.""",
2589         ),
2590 #       -----------------------------------
2591         SCHEME_OPTION_FOR_ADVECTION_OF_VELOCITIES = SIMP(statut ='f',
2592 #       -----------------------------------
2593             typ = 'I',
2594             defaut = 1,
2595             fr = """Si present remplace et a priorite sur :
2596 OPTION POUR LES CARACTERISTIQUES
2597 OPTION DE SUPG
2598 Si schema PSI ou N : 1=explicite 2=predicteur-correcteur
2599 3=predicteur-correcteur deuxieme ordre en temps
2600 4=implicite""",
2601             ang = """If present replaces and has priority over:
2602 OPTION FOR CHARACTERISTICS
2603 SUPG OPTION
2604 if N or PSI SCHEME: 1=explicit 2=predictor-corrector
2605 3= predictor-corrector second-order in time 4= implicit""",
2606         ),
2607 #       -----------------------------------
2608         FREE_SURFACE_GRADIENT_COMPATIBILITY = SIMP(statut ='o',
2609 #       -----------------------------------
2610             typ = 'R',
2611             defaut = 1.,
2612             fr = """Des valeurs inferieures a 1 suppriment les oscillations
2613 parasites""",
2614             ang = """Values less than 1 suppress spurious oscillations""",
2615         ),
2616 #       -----------------------------------
2617         NUMBER_OF_SUB_ITERATIONS_FOR_NON_LINEARITIES = SIMP(statut ='o',
2618 #       -----------------------------------
2619             typ = 'I',
2620             defaut = 1,
2621             fr = """Permet de reactualiser, pour un meme pas de temps, les champs
2622 convecteur et propagateur au cours de plusieurs sous-iterations. A la
2623 premiere sous-iteration, ces champs sont donnes par C et le champ de
2624 vitesses au pas de temps precedent. Aux iterations suivantes, ils sont
2625 pris egaux au champ de vitesse obtenu a la fin de la sous-iteration
2626 precedente. Cette technique permet d''ameliorer la prise en compte des
2627 non linearites.""",
2628             ang = """Used for updating, within one time step, the advection and
2629 propagation field.
2630 upon the first sub-iteration, these fields are given by
2631 C and the velocity field in the previous time step. At subsequent
2632 iterations, the results of the previous sub-iteration is used to
2633 update the advection and propagation field.
2634 The non-linearities can be taken into account through this technique.""",
2635         ),
2636 #       -----------------------------------
2637         b_TREATMENT_OF_FLUXES_AT_THE_BOUNDARIESF = BLOC(condition="(ADVECTION_OF_TRACERS == True and SCHEME_FOR_ADVECTION_OF_TRACERS in ['EDGE-BASED N-SCHEME','SUPG','CONSERVATIVE N-SCHEME','CONSERVATIVE PSI-SCHEME']) or (ADVECTION_OF_K_AND_EPSILON == True and SCHEME_FOR_ADVECTION_OF_K_EPSILON in ['EDGE-BASED N-SCHEME','SUPG','CONSERVATIVE N-SCHEME','CONSERVATIVE PSI-SCHEME']) or (ADVECTION_OF_U_AND_V == True and SCHEME_FOR_ADVECTION_OF_VELOCITIES in ['EDGE-BASED N-SCHEME','SUPG','CONSERVATIVE N-SCHEME','CONSERVATIVE PSI-SCHEME'])",
2638 #       -----------------------------------
2639         ),
2640 #       -----------------------------------
2641         TREATMENT_OF_FLUXES_AT_THE_BOUNDARIES = SIMP(statut ='o',
2642 #       -----------------------------------
2643             typ = 'TXM', min=0, max='**',
2644             into = ["Priority to prescribed values","Priority to fluxes"],
2645             defaut = ["Priority to prescribed values","Priority to prescribed values"],
2646             fr = """Utilise pour les schemas SUPG, PSI et N, avec option 2, on ne retrouve
2647 pas exactement les valeurs imposees des traceurs, mais le flux est
2648 correct""",
2649             ang = """Used so far only with the SUPG, PSI and N schemes. With option 2,
2650 Dirichlet prescribed values are not obeyed, but the fluxes are correct""",
2651         ),
2652 #       -----------------------------------
2653         NUMBER_OF_CORRECTIONS_OF_DISTRIBUTIVE_SCHEMES = SIMP(statut ='f',
2654 #       -----------------------------------
2655             typ = 'I',
2656             defaut = [1],
2657             fr = """Pour les options avec predicteur-correcteur""",
2658             ang = """For predictor-corrector options""",
2659         ),
2660 #       -----------------------------------
2661         NUMBER_OF_SUB_STEPS_OF_DISTRIBUTIVE_SCHEMES = SIMP(statut ='f',
2662 #       -----------------------------------
2663             typ = 'I',
2664             defaut = 1,
2665             fr = """ Pour les options predicteur-correcteur avec schema localement
2666 implicite""",
2667             ang = """ Only for implicit scheme with predictor-corrector""",
2668         ),
2669 #       -----------------------------------
2670         PSI_SCHEME_OPTION = SIMP(statut ='f',
2671 #       -----------------------------------
2672             typ = 'TXM',
2673             into = ["explicit","predictor-corrector"],
2674             defaut = "explicit",
2675             fr = """ 1: explicite 2: predicteur-correcteur""",
2676             ang = """ 1: explicit 2: predictor-corrector""",
2677         ),
2678     ),
2679 #   -----------------------------------
2680     DIFFUSION = FACT(statut='o',
2681 #   -----------------------------------
2682 #       -----------------------------------
2683         DIFFUSION_OF_VELOCITY = SIMP(statut ='o',
2684 #       -----------------------------------
2685             typ = bool,
2686             defaut = True,
2687             fr = """Permet de decider si l''on prend ou non en compte la diffusion
2688 des vitesses.""",
2689             ang = """Makes it possible to decide whether the diffusion of velocity
2690 (i.e. viscosity) is taken into account or not.""",
2691         ),
2692 #       -----------------------------------
2693         b_DIFFUSION_OF_VELOCITYG = BLOC(condition="DIFFUSION_OF_VELOCITY == True",
2694 #       -----------------------------------
2695 #           -----------------------------------
2696             IMPLICITATION_FOR_DIFFUSION_OF_VELOCITY = SIMP(statut ='o',
2697 #           -----------------------------------
2698                 typ = 'R',
2699                 defaut = 1.,
2700                 fr = """Fixe la valeur du coefficient d''implicitation sur les termes de
2701 diffusion des vitesses""",
2702                 ang = """Sets the value of the implicitation coefficient for the diffusion of
2703 velocity""",
2704             ),
2705 #           -----------------------------------
2706             OPTION_FOR_THE_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
2707 #           -----------------------------------
2708                 typ = 'TXM',
2709                 into = ["div( nu grad(U) )","1/h div ( h nu grad(U)"],
2710                 defaut = "div( nu grad(U) )",
2711                 fr = """1: Diffusion de la forme div( nu grad(U) )
2712 2: Diffusion de la forme 1/h div ( h nu grad(U) )""",
2713                 ang = """1: Diffusion in the form div( nu grad(U) )
2714 2: Diffusion in the form 1/h div ( h nu grad(U) )""",
2715             ),
2716         ),
2717     ),
2718 #   -----------------------------------
2719     AUTOMATIC_DIFFERENTIATION = FACT(statut='o',
2720 #   -----------------------------------
2721 #       -----------------------------------
2722         AD_NUMBER_OF_DERIVATIVES = SIMP(statut ='o',
2723 #       -----------------------------------
2724             typ = 'I',
2725             defaut = 0,
2726             fr = """Definit le nombre de derivees utilisateurs, dans le cadre
2727 de la differentiation algorithmique.""",
2728             ang = """Defines the number of user derivatives, within the framework
2729 of the algorithmic differentiation.""",
2730         ),
2731 #       -----------------------------------
2732         AD_NAMES_OF_DERIVATIVES = SIMP(statut ='f',
2733 #       -----------------------------------
2734             typ = 'TXM', min= 2, max= 2,
2735             fr = """Noms des differentiateurs utilisateurs en 32 caracteres,
2736          16 pour le nom, 16 pour l''unite.""",
2737             ang = """Name of user differentiators in 32 characters,
2738          16 for the name, 16 for the unit.""",
2739         ),
2740 #       -----------------------------------
2741         AD_SYMBOLIC_LINEAR_SOLVER = SIMP(statut ='f',
2742 #       -----------------------------------
2743             typ = bool,
2744             defaut = False,
2745             fr = """Permet le solveur lineaire symbolique pour l AD.""",
2746             ang = """Enables the symbolic linear solver for AD.""",
2747         ),
2748 #       -----------------------------------
2749         AD_LINEAR_SOLVER_RESET_DERIVATIVES = SIMP(statut ='f',
2750 #       -----------------------------------
2751             typ = bool,
2752             defaut = True,
2753             fr = """Remet a zero les derivees pour l AD.""",
2754             ang = """Resets the derivatives for AD.""",
2755         ),
2756 #       -----------------------------------
2757         AD_LINEAR_SOLVER_DERIVATIVE_CONVERGENCE = SIMP(statut ='f',
2758 #       -----------------------------------
2759             typ = bool,
2760             defaut = True,
2761             fr = """Solveur lineaire iteratif : test de convergence des derivees
2762 pour l AD.""",
2763             ang = """Iterative linear solvers: derivative convergence test for AD.""",
2764         ),
2765     ),
2766 #   -----------------------------------
2767     ADVANCED = FACT(statut='o',
2768 #   -----------------------------------
2769 #       -----------------------------------
2770         MATRIX_STORAGE = SIMP(statut ='o',
2771 #       -----------------------------------
2772             typ = 'TXM',
2773             into = ["classical EBE","Edge-based storage"],
2774             defaut = "Edge-based storage",
2775             fr = """1 : EBE classique  3 : Stockage par segments""",
2776             ang = """1 : classical EBE  3 : Edge-based storage""",
2777         ),
2778 #       -----------------------------------
2779         MATRIX_VECTOR_PRODUCT = SIMP(statut ='o',
2780 #       -----------------------------------
2781             typ = 'I',
2782             defaut = 1,
2783             fr = """1 : classique  2 : frontal
2784 attention, avec 2, il faut une numerotation speciale des points""",
2785             ang = """1 : classic    2 : frontal
2786 beware, with option 2, a special numbering of points is required""",
2787         ),
2788 #       -----------------------------------
2789         NEWMARK_TIME_INTEGRATION_COEFFICIENT = SIMP(statut ='o',
2790 #       -----------------------------------
2791             typ = 'R',
2792             defaut = 1.,
2793             fr = """1. : Euler explicite 0.5 : ordre 2 en temps""",
2794             ang = """1. : Euler explicit 0.5 : order 2 in time""",
2795         ),
2796 #       -----------------------------------
2797         ZERO = SIMP(statut ='f',
2798 #       -----------------------------------
2799             typ = 'R',
2800             defaut = 1.E-10,
2801             fr = """Non active pour l''instant.""",
2802             ang = """Not yet implemented""",
2803         ),
2804 #       -----------------------------------
2805         PROPAGATION_OPTION = SIMP(statut ='f',
2806 #       -----------------------------------
2807             typ = 'I',
2808             defaut = 3,
2809             fr = """Non active pour l''instant.""",
2810             ang = """Not yet implemented.""",
2811         ),
2812 #       -----------------------------------
2813         OPTION_OF_THE_HYDROSTATIC_RECONSTRUCTION = SIMP(statut ='f',
2814 #       -----------------------------------
2815             typ = 'I',
2816             defaut = 1,
2817             fr = """donne l option de la reconstruction hydrostatique
2818 (option utile uniquement pour les volumes finis):
2819 1: option d Audusse, 2: option de Noelle""",
2820             ang = """gives the option for hydrostatic reconstruction
2821 (used only for finite volumes):
2822 1: option of Audusse, 2: option of Noelle""",
2823         ),
2824 #       -----------------------------------
2825         CONVERGENCE_STUDY = SIMP(statut ='f',
2826 #       -----------------------------------
2827             typ = bool,
2828             defaut = False,
2829             fr = """Active une etude de convergence par rapport a une
2830 solution analytique sur un maillage fin""",
2831             ang = """Activates a convergence study compared
2832 to an analytical solution on a fine mesh""",
2833         ),
2834 #       -----------------------------------
2835         REFINEMENT_LEVELS = SIMP(statut ='f',
2836 #       -----------------------------------
2837             typ = 'I',
2838             defaut = 0,
2839             fr = """Donne le nombre de raffinements que l''utilisateur
2840 veut utiliser pour l''etude de convergence
2841 (en activant CONVERGENCE). Chaque niveau multiplie par 4 le
2842 nombre d''elements.""",
2843             ang = """Gives the number of refinement levels that the
2844 user wants to use in the convergence study (when activating
2845 CONVERGENCE). Each level multiplies the number of elements by
2846 4""",
2847         ),
2848     ),
2849 )
2850 # -----------------------------------------------------------------------
2851 TURBULENCE = PROC(nom= "TURBULENCE",op = None,
2852 # -----------------------------------------------------------------------
2853     UIinfo = {"groupes": ("CACHE")},
2854 #   -----------------------------------
2855     VELOCITY_DIFFUSIVITY = SIMP(statut ='o',
2856 #   -----------------------------------
2857         typ = 'R',
2858         defaut = 1.E-6,
2859         fr = """Fixe de facon uniforme pour l''ensemble du domaine;
2860 la valeur du coefficient de diffusion de viscosite globale (dynamique +
2861 turbulente). Cette valeur peut avoir une influence non negligeable sur
2862 la forme et la taille des recirculations.""",
2863         ang = """Sets, in an even way for the whole domain, the value of the
2864 coefficient of global (dynamic+turbulent) viscosity. this value may
2865 have a significant effect both on the shapes and sizes of
2866 recirculation zones.""",
2867     ),
2868 #   -----------------------------------
2869     TURBULENCE_MODEL = SIMP(statut ='o',
2870 #   -----------------------------------
2871         typ = 'TXM',
2872         into = ["CONSTANT VISCOSITY","ELDER","K-EPSILON MODEL","SMAGORINSKI","MIXING LENGTH","SPALART-ALLMARAS"],
2873         defaut = "CONSTANT VISCOSITY",
2874         fr = """3 choix sont possibles actuellement : viscosite constante (1)
2875 modele de Elder (2) ou modele k-epsilon (3).
2876 Attention : si on choisit l''option 1
2877 il ne faut pas oublier d''ajuster la valeur du mot-cle COEFFICIENT DE
2878 DIFFUSION DES VITESSES.
2879 si on choisit l''option 2
2880 il ne faut pas oublier d''ajuster les deux valeurs du mot-cle :
2881 COEFFICIENTS ADIMENSIONNELS DE DISPERSION
2882 Si on choisit l''option 3;
2883 ce meme parametre doit retrouver sa vraie valeur physique car elle est
2884 utilisee comme telle dans le modele de turbulence""",
2885         ang = """The current alternatives are as follows: constant viscosity (1)
2886 elder''s model (2) or k-epsilon model (3).
2887 NOTE: when option 1 is chosen, it should be kept in mind that the
2888 value of the keyword VELOCITY DIFFUSIVITY has to be ajusted.
2889 When option 2 is chosen, the two values of key-word :
2890 NON-DIMENSIONAL DISPERSION COEFFICIENTS are used
2891 When option 3 is chosen, this parameter should recover its true
2892 physical value, since it is used as such in the turbulence model.""",
2893     ),
2894 #   -----------------------------------
2895     b_TURBULENCE_MODELG = BLOC(condition="TURBULENCE_MODEL == 'CONSTANT VISCOSITY'",
2896 #   -----------------------------------
2897     ),
2898 #   -----------------------------------
2899     b_TURBULENCE_MODELH = BLOC(condition="TURBULENCE_MODEL == 'Elder'",
2900 #   -----------------------------------
2901 #       -----------------------------------
2902         NON_DIMENSIONAL_DISPERSION_COEFFICIENTS = SIMP(statut ='o',
2903 #       -----------------------------------
2904             typ = 'R', min= 2, max= 2,
2905             defaut = [6.,0.6],
2906             fr = """Coefficients longitudinal et transversal dans la formule de
2907 Elder. Utilises uniquement avec le modele de turbulence 2""",
2908             ang = """Longitudinal and transversal coefficients in elder s formula.
2909  Used only with turbulence model number 2""",
2910         ),
2911     ),
2912 #   -----------------------------------
2913     ACCURACY_OF_SPALART_ALLMARAS = SIMP(statut ='f',
2914 #   -----------------------------------
2915         typ = 'R',
2916         defaut = 1.E-9,
2917         fr = """Fixe la precision demandee sur le modele spalart-allmaras pour
2918 le test d''arret dans l''etape de diffusion et termes sources de k et
2919 epsilon.""",
2920         ang = """Sets the required accuracy for the model spalart-allmaras in
2921 the diffusion and source-terms step of the k-epsilon model.""",
2922     ),
2923 #   -----------------------------------
2924     INFORMATION_ABOUT_SPALART_ALLMARAS_MODEL = SIMP(statut ='f',
2925 #   -----------------------------------
2926         typ = bool,
2927         defaut = True,
2928         fr = """si oui les informations du solveur du modele spalart-allmaras
2929 sont imprimees""",
2930         ang = """if yes, informations about solver of spalart-allmaras model
2931 are printed to the listing""",
2932     ),
2933 #   -----------------------------------
2934     SOLVER_INFO = FACT(statut='o',
2935 #   -----------------------------------
2936 #       -----------------------------------
2937         SOLVER_FOR_K_EPSILON_MODEL = SIMP(statut ='o',
2938 #       -----------------------------------
2939             typ = 'TXM',
2940             into = ["conjugate gradient","conjugate residuals","conjugate gradient on normal equation","minimum error","conjugate gradient squared","conjugate gradient squared stabilised (cgstab)","gmres (see option for the solver for k-epsilon model)","direct"],
2941             defaut = "conjugate gradient",
2942             fr = """Permet de choisir le solveur utilise pour la resolution
2943 du systeme du modele k-epsilon :
2944 1 : gradient conjugue
2945 2 : residu conjugue
2946 3 : gradient conjugue sur equation normale
2947 4 : erreur minimale
2948 5 : gradient conjugue carre
2949 6 : gradient conjugue carre stabilise (cgstab)
2950 7 : gmres (voir aussi option du solveur pour le modele k-epsilon)
2951 8 : direct""",
2952             ang = """Makes it possible to select the solver used for solving
2953 the system of the k-epsilon model.
2954 1: conjugate gradient
2955 2: conjugate residuals
2956 3: conjugate gradient on normal equation
2957 4: minimum error
2958 5: conjugate gradient squared
2959 6: conjugate gradient squared stabilised (cgstab)
2960 7: gmres (see option for the solver for k-epsilon model)
2961 8: direct""",
2962         ),
2963 #       -----------------------------------
2964         OPTION_FOR_THE_SOLVER_FOR_K_EPSILON_MODEL = SIMP(statut ='o',
2965 #       -----------------------------------
2966             typ = 'I',
2967             defaut = 2,
2968             fr = """si le solveur est GMRES (7) le mot cle est la dimension de
2969 l''espace de KRILOV (valeurs conseillees entre 2 et 15)""",
2970             ang = """WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE
2971 TRY VALUES BETWEEN 2 AND 15""",
2972         ),
2973 #       -----------------------------------
2974         PRECONDITIONING_FOR_K_EPSILON_MODEL = SIMP(statut ='o',
2975 #       -----------------------------------
2976             typ = 'TXM',
2977             into = ["diagonal","no preconditioning","crout","diagonal and crout"],
2978             defaut = "diagonal",
2979             fr = """Permet de preconditionner le systeme relatif au
2980 modele k-epsilon
2981 0 : pas de preconditionnement;
2982 2 : preconditionnement diagonal.
2983 7 : preconditionnement de Crout par element.""",
2984             ang = """Preconditioning of the linear system in the diffusion step of
2985 the k-epsilon model.
2986 0: no preconditioning
2987 2: diagonal preconditioning
2988 7: Crout''s preconditioning per element""",
2989         ),
2990     ),
2991 #   -----------------------------------
2992     ADVANCED = FACT(statut='o',
2993 #   -----------------------------------
2994 #       -----------------------------------
2995         TURBULENCE_REGIME_FOR_SOLID_BOUNDARIES = SIMP(statut ='f',
2996 #       -----------------------------------
2997             typ = 'TXM',
2998             into = ["smooth","rough"],
2999             defaut = "rough",
3000             fr = """ Permet de choisir le regime de turbulence aux parois 1 : regime
3001 turbulent lisse. 2 : regime turbulent rugueux.""",
3002             ang = """ Provided for selecting the type of friction on the walls 1: smooth 2:
3003 rough""",
3004         ),
3005 #       -----------------------------------
3006         INFORMATION_ABOUT_K_EPSILON_MODEL = SIMP(statut ='o',
3007 #       -----------------------------------
3008             typ = bool,
3009             defaut = True,
3010             fr = """Donne le nombre d''iterations du solveur de l''etape de
3011 diffusion et termes sources du modele k-epsilon.""",
3012             ang = """Gives the number of iterations of the solver in the diffusion
3013 and source terms step of the k-epsilon model.""",
3014         ),
3015 #       -----------------------------------
3016         ADVECTION_OF_K_AND_EPSILON = SIMP(statut ='o',
3017 #       -----------------------------------
3018             typ = bool,
3019             defaut = True,
3020             fr = """Prise en compte ou non de la convection de k et epsilon.""",
3021             ang = """The k and epsilon advection is taken into account or ignored.""",
3022         ),
3023 #       -----------------------------------
3024         b_ADVECTION_OF_K_AND_EPSILONG = BLOC(condition="ADVECTION_OF_K_AND_EPSILON == True",
3025 #       -----------------------------------
3026 #           -----------------------------------
3027             SCHEME_FOR_ADVECTION_OF_K_EPSILON = SIMP(statut ='f',
3028 #           -----------------------------------
3029                 typ = 'TXM',
3030                 into = ["NO ADVECTION","CHARACTERISTICS","EXPLICIT + SUPG","EXPLICIT LEO POSTMA","EXPLICIT + MURD SCHEME N","EXPLICIT + MURD SCHEME PSI","LEO POSTMA FOR TIDAL FLATS","N-SCHEME FOR TIDAL FLATS","ERIA SCHEME FOR TIDAL FLATS"],
3031                 defaut = "CHARACTERISTICS",
3032                 fr = """Choix du schema de convection pour k et epsilon,
3033 remplace FORME DE LA CONVECTION""",
3034                 ang = """Choice of the advection scheme for k and epsilon,
3035 replaces TYPE OF ADVECTION""",
3036             ),
3037         ),
3038 #       -----------------------------------
3039         SCHEME_OPTION_FOR_ADVECTION_OF_K_EPSILON = SIMP(statut ='f',
3040 #       -----------------------------------
3041             typ = 'I',
3042             defaut = 1,
3043             fr = """Si present remplace et a priorite sur :
3044 OPTION POUR LES CARACTERISTIQUES
3045 OPTION DE SUPG
3046 Si schema PSI ou N : 1=explicite 2=predicteur-correcteur
3047 3=predicteur-correcteur deuxieme ordre en temps
3048 4=implicite""",
3049             ang = """If present replaces and has priority over:
3050 OPTION FOR CHARACTERISTICS
3051 SUPG OPTION
3052 if N or PSI SCHEME: 1=explicit 2=predictor-corrector
3053 3= predictor-corrector second-order in time 4= implicit""",
3054         ),
3055 #       -----------------------------------
3056         TIME_STEP_REDUCTION_FOR_K_EPSILON_MODEL = SIMP(statut ='f',
3057 #       -----------------------------------
3058             typ = 'R',
3059             defaut = 1.,
3060             fr = """Coefficient reducteur du pas de temps pour le modele k-epsilon (qui
3061 est normalement identique a celui du systeme hydrodynamique).
3062 Utilisation deconseillee""",
3063             ang = """Time step reduction coefficient for k-epsilon model (which is normally
3064 same the same as that of the hydrodynamic system) Not recommended for
3065 use.""",
3066         ),
3067     ),
3068 #   -----------------------------------
3069     ACCURACY = FACT(statut='o',
3070 #   -----------------------------------
3071 #       -----------------------------------
3072         ACCURACY_OF_K = SIMP(statut ='o',
3073 #       -----------------------------------
3074             typ = 'R',
3075             defaut = 1.E-9,
3076             fr = """Fixe la precision demandee sur k pour le test d''arret dans
3077 l''etape de diffusion et termes sources du modele k-epsilon.""",
3078             ang = """Sets the required accuracy for computing k in the diffusion
3079 and source terms step of the k-epsilon model.""",
3080         ),
3081 #       -----------------------------------
3082         ACCURACY_OF_EPSILON = SIMP(statut ='o',
3083 #       -----------------------------------
3084             typ = 'R',
3085             defaut = 1.E-9,
3086             fr = """Fixe la precision demandee sur epsilon pour le test d''arret
3087 dans l''etape de diffusion et termes sources de k et epsilon.""",
3088             ang = """Sets the required accuracy for computing epsilon in
3089 the diffusion and source-terms step of the k-epsilon model.""",
3090         ),
3091 #       -----------------------------------
3092         MAXIMUM_NUMBER_OF_ITERATIONS_FOR_K_AND_EPSILON = SIMP(statut ='o',
3093 #       -----------------------------------
3094             typ = 'I',
3095             defaut = 50,
3096             fr = """Fixe le nombre maximum d''iterations accepte lors de la
3097 resolution du systeme diffusion-termes sources du modele k-epsilon.""",
3098             ang = """Sets the maximum number of iterations that are acceptable when
3099 solving the diffusion source-terms step of the k-epsilon model.""",
3100         ),
3101     ),
3102 )
3103 # -----------------------------------------------------------------------
3104 TIDAL_FLATS_INFO = PROC(nom= "TIDAL_FLATS_INFO",op = None,
3105 # -----------------------------------------------------------------------
3106 #   -----------------------------------
3107     TIDAL_FLATS = SIMP(statut ='o',
3108 #   -----------------------------------
3109         typ = bool,
3110         defaut = True,
3111         fr = """permet de supprimer les tests sur les bancs decouvrants, dans
3112 les cas ou l''on est certain qu''il n''y en aura pas.
3113 En cas de doute : oui""",
3114         ang = """When no, the specific
3115 treatments for tidal flats are by-passed.
3116 This spares time, but of course you must be sure that you have no
3117 tidal flats""",
3118     ),
3119 #   -----------------------------------
3120     b_TIDAL_FLATSG = BLOC(condition="TIDAL_FLATS == True",
3121 #   -----------------------------------
3122 #       -----------------------------------
3123         OPTION_FOR_THE_TREATMENT_OF_TIDAL_FLATS = SIMP(statut ='o',
3124 #       -----------------------------------
3125             typ = 'TXM',
3126             into = ["EQUATIONS SOLVED EVERYWHERE WITH CORRECTION ON TIDAL FLATS","DRY ELEMENTS FROZEN","LIKE 1 BUT WITH POROSITY (DEFINA METHOD)"],
3127             defaut = "EQUATIONS SOLVED EVERYWHERE WITH CORRECTION ON TIDAL FLATS",
3128             fr = """Utilise si BANCS DECOUVRANTS est vrai
3129 1 : EQUATIONS RESOLUES PARTOUT AVEC
3130 CORRECTION SUR LES BANCS DECOUVRANTS
3131 2 : GEL DES ELEMENTS DECOUVRANTS
3132 3 : COMME 1 MAIS AVEC POROSITE (METHODE DEFINA)""",
3133             ang = """Used if TIDAL FLATS is true
3134 1 : EQUATIONS SOLVED EVERYWHERE WITH CORRECTION ON TIDAL FLATS
3135 2 : DRY ELEMENTS FROZEN
3136 3 : LIKE 1 BUT WITH POROSITY (DEFINA METHOD)""",
3137         ),
3138 #       -----------------------------------
3139         b_OPTION_FOR_THE_TREATMENT_OF_TIDAL_FLATSG = BLOC(condition="OPTION_FOR_THE_TREATMENT_OF_TIDAL_FLATS == 'EQUATIONS SOLVED EVERYWHERE WITH CORRECTION ON TIDAL FLATS'",
3140 #       -----------------------------------
3141 #           -----------------------------------
3142             TREATMENT_OF_NEGATIVE_DEPTHS = SIMP(statut ='o',
3143 #           -----------------------------------
3144                 typ = 'TXM',
3145                 into = ["SMOOTHING","FLUX CONTROL","FLUX CONTROL (ERIA)"],
3146                 defaut = "SMOOTHING",
3147                 fr = """Seulement avec OPTION DE TRAITEMENT DES BANCS DECOUVRANTS = 1
3148        0 : pas de traitement
3149        1 : lissage
3150        2 : limitation des flux, approche par segment
3151        3 : limitation des flux, approche par triangle""",
3152                 ang = """Only with OPTION FOR THE TREATMENT OF TIDAL FLATS=1
3153        0:no treatment
3154        1:smoothing
3155        2:flux control, by segment
3156        3:flux control, by element""",
3157             ),
3158         ),
3159 #       -----------------------------------
3160         THRESHOLD_FOR_NEGATIVE_DEPTHS = SIMP(statut ='o',
3161 #       -----------------------------------
3162             typ = 'R',
3163             defaut = 0.,
3164             fr = """En dessous du seuil, les hauteurs negatives sont lissees""",
3165             ang = """Below the threshold the negative depths are smoothed""",
3166         ),
3167 #       -----------------------------------
3168         THRESHOLD_DEPTH_FOR_RECEDING_PROCEDURE = SIMP(statut ='o',
3169 #       -----------------------------------
3170             typ = 'R',
3171             defaut = 0.,
3172             fr = """Si > 0., declenche la procedure de ressuyage qui evite le
3173 franchissement parasite des digues mal discretisees""",
3174             ang = """If > 0., will trigger the receding procedure that avoids overwhelming
3175 of dykes which are too loosely discretised""",
3176         ),
3177 #       -----------------------------------
3178         H_CLIPPING = SIMP(statut ='o',
3179 #       -----------------------------------
3180             typ = bool,
3181             defaut = False,
3182             fr = """Determine si l''on desire ou non limiter par valeur inferieure
3183 la hauteur d''eau H (dans le cas des bancs decouvrants par exemple).""",
3184             ang = """Determines whether limiting the water depth H by a lower value
3185 desirable or not. (for instance in the case of tidal flats)
3186 This key-word may have an influence on mass conservation since
3187 the truncation of depth is equivalent to adding mass.""",
3188         ),
3189 #       -----------------------------------
3190         b_H_CLIPPINGG = BLOC(condition="H_CLIPPING == True",
3191 #       -----------------------------------
3192 #           -----------------------------------
3193             MINIMUM_VALUE_OF_DEPTH = SIMP(statut ='o',
3194 #           -----------------------------------
3195                 typ = 'R',
3196                 defaut = 0.,
3197                 fr = """Fixe la valeur minimale de a lorsque l''option CLIPPING DE H est
3198 activee.""",
3199                 ang = """Sets the minimum H value when option H CLIPPING is implemented. Not
3200 fully implemented.""",
3201             ),
3202         ),
3203     ),
3204 )
3205 # -----------------------------------------------------------------------
3206 TRACERS = PROC(nom= "TRACERS",op = None,
3207 # -----------------------------------------------------------------------
3208 #   -----------------------------------
3209     BOUNDARY_CONDITIONS_FOR_TRACERS = FACT(statut='f',
3210 #   -----------------------------------
3211 #       -----------------------------------
3212         PRESCRIBED_TRACERS_VALUES = SIMP(statut ='o',
3213 #       -----------------------------------
3214             typ = 'R', max='**',
3215             fr = """Valeurs du traceur imposees aux frontieres liquides entrantes.
3216 Lire la partie du mode d''emploi consacree aux conditions aux limites""",
3217             ang = """Tracer values prescribed at the inflow boundaries.
3218 Read the usermanual section dealing with the boundary conditions""",
3219         ),
3220     ),
3221 #   -----------------------------------
3222     SETTING = FACT(statut='o',
3223 #   -----------------------------------
3224 #       -----------------------------------
3225         NUMBER_OF_TRACERS = SIMP(statut ='o',
3226 #       -----------------------------------
3227             typ = 'I',
3228             defaut = 0,
3229             fr = """Definit le nombre de traceurs.""",
3230             ang = """Defines the number of tracers""",
3231         ),
3232 #       -----------------------------------
3233         NAMES_OF_TRACERS = SIMP(statut ='o',
3234 #       -----------------------------------
3235             typ = 'TXM', min=0, max='**',
3236             fr = """Noms des traceurs en 32 caracteres, 16 pour le nom 16 pour l''unite""",
3237             ang = """Name of tracers in 32 characters, 16 for the name, 16 for the unit.""",
3238         ),
3239 #       -----------------------------------
3240         INITIAL_VALUES_OF_TRACERS = SIMP(statut ='o',
3241 #       -----------------------------------
3242             typ = 'R', min=0, max='**',
3243             defaut = [0.,0.],
3244             fr = """Fixe la valeur initiale du traceur.""",
3245             ang = """Sets the initial value of the tracer.""",
3246         ),
3247 #       -----------------------------------
3248         DENSITY_EFFECTS = SIMP(statut ='o',
3249 #       -----------------------------------
3250             typ = bool,
3251             defaut = False,
3252             fr = """PRISE EN COMPTE DU GRADIENT HORIZONTAL DE DENSITE
3253         LE TRACEUR EST ALORS LA SALINITE""",
3254             ang = """THE HORIZONTAL GRADIENT OF DENSITY IS TAKEN INTO ACCOUNT
3255          THE TRACER IS THEN THE SALINITY""",
3256         ),
3257 #       -----------------------------------
3258         b_DENSITY_EFFECTSG = BLOC(condition="DENSITY_EFFECTS == True",
3259 #       -----------------------------------
3260 #           -----------------------------------
3261             MEAN_TEMPERATURE = SIMP(statut ='o',
3262 #           -----------------------------------
3263                 typ = 'R',
3264                 defaut = 20.,
3265                 fr = """TEMPERATURE DE REFERENCE POUR LE CALCUL DES EFFETS DE DENSITE
3266 A UTILISER AVEC LE MOT-CLE \telkey{EFFETS DE DENSITE}""",
3267                 ang = """REFERENCE TEMPERATURE FOR DENSITY EFFECTS
3268 TO BE USED WITH THE KEY-WORD \telkey{DENSITY EFFECTS}""",
3269             ),
3270         ),
3271 #       -----------------------------------
3272         b_DENSITY_EFFECTSH = BLOC(condition="DENSITY_EFFECTS == True",
3273 #       -----------------------------------
3274 #           -----------------------------------
3275             Consigne = SIMP(statut ="o", homo="information", typ="TXM",
3276 #           -----------------------------------
3277                 defaut = "The first tracer must be the salinity in kg/m3"),
3278         ),
3279     ),
3280 #   -----------------------------------
3281     SOLVER_TRA = FACT(statut='o',
3282 #   -----------------------------------
3283 #       -----------------------------------
3284         SOLVER_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='o',
3285 #       -----------------------------------
3286             typ = 'TXM', min=0, max='**',
3287             into = ["conjugate gradient","conjugate residual","conjugate gradient on a normal equation","minimum error","squared conjugate gradient","cgstab","gmres (see option for the solver for tracer diffusion)","direct"],
3288             defaut = ["conjugate gradient","conjugate gradient"],
3289             fr = """ 1 : gradient conjugue 2 : residu conjugue 3 : gradient conjugue sur
3290 equation normale 4 : erreur minimale 5 : gradient conjugue carre""",
3291             ang = """ 1 : conjugate gradient 2 : conjugate gradient 3 : conjugate gradient
3292 on a normal equation 4 : minimum error 5 : squared conjugate gradient 6
3293 : cgstab 7 : gmres (see option for the solver for tracer diffusion) 8 :
3294 direct""",
3295         ),
3296 #       -----------------------------------
3297         SOLVER_OPTION_FOR_TRACERS_DIFFUSION = SIMP(statut ='o',
3298 #       -----------------------------------
3299             typ = 'I', min=0, max='**',
3300             defaut = [2],
3301             fr = """si le solveur est GMRES (7) le mot cle est la dimension de
3302 l''espace de KRILOV (valeurs conseillees entre 2 et 15)""",
3303             ang = """WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE
3304 TRY VALUES BETWEEN 2 AND 15""",
3305         ),
3306 #       -----------------------------------
3307         PRECONDITIONING_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='o',
3308 #       -----------------------------------
3309             typ = 'TXM', min=0, max='**',
3310             into = ["no preconditioning ","diagonal","crout","diagonal and crout"],
3311             defaut = ["diagonal"],
3312             fr = """Permet de preconditionner le systeme relatif au traceur.
3313 Memes definition et possibilites que pour le mot-cle
3314 PRECONDITIONNEMENT.
3315   0 : pas de preconditionnement;
3316   2 : preconditionnement diagonal.
3317   7 : Crout par element""",
3318             ang = """Preconditioning of the linear system in the tracer diffusion
3319 step.
3320 Same definition and possibilities as for the keyword  PRECONDITIONING
3321  0: no preconditioning
3322  2: diagonal preconditioning
3323  7: Crout''s preconditioning per element.""",
3324         ),
3325     ),
3326 #   -----------------------------------
3327     ACCURACY_TRA = FACT(statut='o',
3328 #   -----------------------------------
3329 #       -----------------------------------
3330         ACCURACY_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='o',
3331 #       -----------------------------------
3332             typ = 'R',
3333             defaut = 1.E-6,
3334             fr = """Fixe la precision demandee pour le calcul de la diffusion
3335 du traceur.""",
3336             ang = """Sets the required accuracy for computing the tracer
3337 diffusion.""",
3338         ),
3339 #       -----------------------------------
3340         MAXIMUM_NUMBER_OF_ITERATIONS_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='o',
3341 #       -----------------------------------
3342             typ = 'I',
3343             defaut = 60,
3344             fr = """ Limite le nombre d''iterations du solveur a chaque pas de temps pour
3345 le calcul de la diffusion du traceur.""",
3346             ang = """Limits the number of solver iterations at each time step for
3347 the diffusion of tracer.""",
3348         ),
3349     ),
3350 #   -----------------------------------
3351     SOURCES_TRA = FACT(statut='f',
3352 #   -----------------------------------
3353 #       -----------------------------------
3354         VALUES_OF_THE_TRACERS_AT_THE_SOURCES = SIMP(statut ='o',
3355 #       -----------------------------------
3356             typ = 'R', min=0, max='**',
3357             fr = """Valeurs des traceurs a chacune des sources""",
3358             ang = """Values of the tracers at the sources""",
3359         ),
3360     ),
3361 #   -----------------------------------
3362     METEOROLOGY_TRA = FACT(statut='f',
3363 #   -----------------------------------
3364 #       -----------------------------------
3365         VALUES_OF_TRACERS_IN_THE_RAIN = SIMP(statut ='o',
3366 #       -----------------------------------
3367             typ = 'R', min=0, max='**',
3368             fr = """generalement ce traceur est la temperature, dans ce cas
3369 cette valeur  est a modifier, sinon la valeur 0 est raisonnable""",
3370             ang = """most often, this tracer is temperature, in this case
3371 this value should be modified, otherwise, default value of 0 seems
3372 reasonable""",
3373         ),
3374     ),
3375 #   -----------------------------------
3376     NUMERICAL = FACT(statut='o',
3377 #   -----------------------------------
3378 #       -----------------------------------
3379         ADVECTION_OF_TRACERS = SIMP(statut ='o',
3380 #       -----------------------------------
3381             typ = bool,
3382             defaut = True,
3383             fr = """Prise en compte ou non de la convection du traceur passif.""",
3384             ang = """The advection of the passive tracer is taken into account
3385 or ignored.""",
3386         ),
3387 #       -----------------------------------
3388         b_ADVECTION_OF_TRACERSG = BLOC(condition="ADVECTION_OF_TRACERS == True",
3389 #       -----------------------------------
3390 #           -----------------------------------
3391             SCHEME_FOR_ADVECTION_OF_TRACERS = SIMP(statut ='f',
3392 #           -----------------------------------
3393                 typ = 'TXM', min=0, max='**',
3394                 into = ["NO ADVECTION","CHARACTERISTICS","EXPLICIT + SUPG","EXPLICIT LEO POSTMA","EXPLICIT + MURD SCHEME N","EXPLICIT + MURD SCHEME PSI","LEO POSTMA FOR TIDAL FLATS","N-SCHEME FOR TIDAL FLATS","ERIA SCHEME FOR TIDAL FLATS"],
3395                 defaut = ["CHARACTERISTICS"],
3396                 fr = """Choix du schema de convection pour les traceurs,
3397 remplace FORME DE LA CONVECTION""",
3398                 ang = """Choice of the advection scheme for the tracers,
3399 replaces TYPE OF ADVECTION""",
3400             ),
3401         ),
3402 #       -----------------------------------
3403         IMPLICITATION_COEFFICIENT_OF_TRACERS = SIMP(statut ='o',
3404 #       -----------------------------------
3405             typ = 'R',
3406             defaut = 0.6,
3407             fr = """Fixe la valeur du coefficient d''implicitation du traceur""",
3408             ang = """Sets the value of the implicitation coefficient
3409 for the tracer""",
3410         ),
3411 #       -----------------------------------
3412         DIFFUSION_OF_TRACERS = SIMP(statut ='o',
3413 #       -----------------------------------
3414             typ = bool,
3415             defaut = True,
3416             fr = """Prise en compte ou non de la diffusion du traceur passif.""",
3417             ang = """The diffusion of the passive tracer is taken into account
3418 or ignored.""",
3419         ),
3420 #       -----------------------------------
3421         b_DIFFUSION_OF_TRACERSG = BLOC(condition="DIFFUSION_OF_TRACERS == True",
3422 #       -----------------------------------
3423 #           -----------------------------------
3424             COEFFICIENT_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='o',
3425 #           -----------------------------------
3426                 typ = 'R', min=0, max='**',
3427                 defaut = [1.E-6],
3428                 fr = """Fixe la valeur du coefficient de diffusion du traceur.
3429 L''influence de ce parametre sur l''evolution du traceur dans
3430 le temps est importante.""",
3431                 ang = """Sets the value of the tracer diffusivity.""",
3432             ),
3433         ),
3434 #       -----------------------------------
3435         OPTION_FOR_THE_DIFFUSION_OF_TRACERS = SIMP(statut ='o',
3436 #       -----------------------------------
3437             typ = 'TXM', min=0, max='**',
3438             into = ["div( nu grad(T) )","1/h div ( h nu grad(T)"],
3439             defaut = ["div( nu grad(T) )"],
3440             fr = """1: Diffusion de la forme div( nu grad(T) )
3441 2: Diffusion de la forme 1/h div ( h nu grad(T) )""",
3442             ang = """1: Diffusion in the form div( nu grad(T) )
3443 2: Diffusion in the form 1/h div ( h nu grad(T) )""",
3444         ),
3445 #       -----------------------------------
3446         SCHEME_OPTION_FOR_ADVECTION_OF_TRACERS = SIMP(statut ='o',
3447 #       -----------------------------------
3448             typ = 'I', min=0, max='**',
3449             defaut = [1],
3450             fr = """Si present remplace et a priorite sur :
3451 OPTION POUR LES CARACTERISTIQUES
3452 OPTION DE SUPG
3453 Si schema PSI ou N : 1=explicite 2=predicteur-correcteur
3454 3=predicteur-correcteur deuxieme ordre en temps
3455 4=implicite""",
3456             ang = """If present replaces and has priority over:
3457 OPTION FOR CHARACTERISTICS
3458 SUPG OPTION
3459 if N or PSI SCHEME: 1=explicit 2=predictor-corrector
3460 3= predictor-corrector second-order in time 4= implicit""",
3461         ),
3462 #       -----------------------------------
3463         MASS_LUMPING_ON_TRACERS = SIMP(statut ='o',
3464 #       -----------------------------------
3465             typ = 'R',
3466             defaut = 0.,
3467             fr = """Fixe le taux de mass-lumping effectue sur le traceur.""",
3468             ang = """Sets the amount of mass-lumping that is performed on
3469  the tracer.""",
3470         ),
3471     ),
3472 )
3473 # -----------------------------------------------------------------------
3474 PARTICLE_TRANSPORT = PROC(nom= "PARTICLE_TRANSPORT",op = None,
3475 # -----------------------------------------------------------------------
3476 #   -----------------------------------
3477     DROGUES = FACT(statut='f',
3478 #   -----------------------------------
3479 #       -----------------------------------
3480         NUMBER_OF_DROGUES = SIMP(statut ='o',
3481 #       -----------------------------------
3482             typ = 'I',
3483             defaut = 0,
3484             fr = """Permet d''effectuer un suivi de flotteurs""",
3485             ang = """Number of drogues in the computation.
3486 The user must then fill the subroutine FLOT specifying
3487 the coordinates of the starting points, their departure
3488 and arrival times.
3489 The trajectory of drogues is recorded in the BINARY RESULTS
3490 FILE that must be given in the steering file""",
3491         ),
3492 #       -----------------------------------
3493         b_NUMBER_OF_DROGUESG = BLOC(condition="NUMBER_OF_DROGUES != 0",
3494 #       -----------------------------------
3495 #           -----------------------------------
3496             DROGUES_FILE = SIMP(statut ='o',
3497 #           -----------------------------------
3498                 typ = ('Fichier','All Files (*)','Sauvegarde'),
3499                 defaut = '',
3500                 fr = """Fichier de resultat avec les positions des flotteurs""",
3501                 ang = """Results file with positions of drogues""",
3502             ),
3503 #           -----------------------------------
3504             PRINTOUT_PERIOD_FOR_DROGUES = SIMP(statut ='o',
3505 #           -----------------------------------
3506                 typ = 'I',
3507                 defaut = 1,
3508                 fr = """Nombre de pas de temps entre 2 sorties de positions de
3509 flotteurs dans le fichier des resultats binaire supplementaire
3510 N affecte pas la qualite du calcul de la trajectoire""",
3511                 ang = """Number of time steps between 2 outputs of drogues
3512 positions in the binary file""",
3513             ),
3514         ),
3515     ),
3516 #   -----------------------------------
3517     ALGAES = FACT(statut='f',
3518 #   -----------------------------------
3519 #       -----------------------------------
3520         ALGAE_TRANSPORT_MODEL = SIMP(statut ='o',
3521 #       -----------------------------------
3522             typ = bool,
3523             defaut = False,
3524             fr = """Si oui, les flotteurs seront des algues""",
3525             ang = """If yes, the floats or particles will be algae""",
3526         ),
3527 #       -----------------------------------
3528         b_ALGAE_TRANSPORT_MODELG = BLOC(condition="ALGAE_TRANSPORT_MODEL == True",
3529 #       -----------------------------------
3530 #           -----------------------------------
3531             ALGAE_TYPE = SIMP(statut ='o',
3532 #           -----------------------------------
3533                 typ = 'TXM',
3534                 into = ["SPHERE","IRIDAEA FLACCIDA (CLOSE TO ULVA)","PELVETIOPSIS LIMITATA","GIGARTINA LEPTORHYNCHOS"],
3535                 defaut = "SPHERE",
3536                 fr = """Type des algues. Pour le choix 1 les algues seront
3537 modelisees comme des spheres, pour les autres choix voir Gaylord
3538 et al. (1994).""",
3539                 ang = """Algae type. For choice 1 the algae particles will be
3540 modeled as spheres, and for the other choices see Gaylord et
3541 al. (1994)""",
3542             ),
3543 #           -----------------------------------
3544             DIAMETER_OF_ALGAE = SIMP(statut ='o',
3545 #           -----------------------------------
3546                 typ = 'R',
3547                 defaut = 0.1,
3548                 fr = """Diametre des algues en m""",
3549                 ang = """Diametre of algae in m""",
3550             ),
3551 #           -----------------------------------
3552             DENSITY_OF_ALGAE = SIMP(statut ='o',
3553 #           -----------------------------------
3554                 typ = 'R',
3555                 defaut = 1050.,
3556                 fr = """Masse volumique des algues en kg/m3""",
3557                 ang = """Density of algae in kg/m3""",
3558             ),
3559 #           -----------------------------------
3560             THICKNESS_OF_ALGAE = SIMP(statut ='o',
3561 #           -----------------------------------
3562                 typ = 'R',
3563                 defaut = 0.01,
3564                 fr = """Epaisseur des algues en m""",
3565                 ang = """Thickness of algae in m""",
3566             ),
3567         ),
3568     ),
3569 #   -----------------------------------
3570     OIL_SPILL = FACT(statut='f',
3571 #   -----------------------------------
3572 #       -----------------------------------
3573         OIL_SPILL_MODEL = SIMP(statut ='o',
3574 #       -----------------------------------
3575             typ = bool,
3576             defaut = False,
3577             fr = """POUR DECLENCHER LE MODELE DE DERIVE DE NAPPES, DANS
3578 CE CAS LE FICHIER DE COMMANDES MIGRHYCAR EST NECESSAIRE""",
3579             ang = """WILL TRIGGER THE OIL SPILL MODEL, IN THIS CASE
3580 THE MIGRHYCAR STEERING FILE IS NEEDED""",
3581         ),
3582 #       -----------------------------------
3583         b_OIL_SPILL_MODELG = BLOC(condition="OIL_SPILL_MODEL == True",
3584 #       -----------------------------------
3585 #           -----------------------------------
3586             OIL_SPILL_STEERING_FILE = SIMP(statut ='o',
3587 #           -----------------------------------
3588                 typ = ('Fichier','All Files (*)'),
3589                 defaut = '',
3590                 fr = """Contient les donnees pour le modele de derive de nappes""",
3591                 ang = """Contains data for the oil spill model""",
3592             ),
3593         ),
3594     ),
3595 #   -----------------------------------
3596     BROWNIAN_MOTION = FACT(statut='f',
3597 #   -----------------------------------
3598 #       -----------------------------------
3599         STOCHASTIC_DIFFUSION_MODEL = SIMP(statut ='o',
3600 #       -----------------------------------
3601             typ = 'TXM',
3602             into = ["No model","brownian movement"],
3603             defaut = "No model",
3604             fr = """Pour les particules : flotteurs, hydrocarbures""",
3605             ang = """Meant for particles: drogues, oil spills""",
3606         ),
3607     ),
3608 #   -----------------------------------
3609     LAGRANGIAN_DRIFTS = FACT(statut='f',
3610 #   -----------------------------------
3611 #       -----------------------------------
3612         NUMBER_OF_LAGRANGIAN_DRIFTS = SIMP(statut ='o',
3613 #       -----------------------------------
3614             typ = 'I',
3615             defaut = 0,
3616             fr = """Permet d''effectuer simultanement plusieurs calculs de derives
3617 lagrangiennes initiees a des pas differents""",
3618             ang = """Provided for performing several computations of lagrangian
3619 drifts starting at different times.
3620 Add A and G in the VARIABLES FOR GRAPHIC PRINTOUTS key-word""",
3621         ),
3622 #       -----------------------------------
3623         b_NUMBER_OF_LAGRANGIAN_DRIFTSG = BLOC(condition="NUMBER_OF_LAGRANGIAN_DRIFS != 0",
3624 #       -----------------------------------
3625 #           -----------------------------------
3626             Consigne = SIMP(statut ="o", homo="information", typ="TXM",
3627 #           -----------------------------------
3628                 defaut = "Add 'drift along x (m)' and 'drift along y (m)' in VARIABLES FOR GRAPHIC PRINTOUTS"),
3629         ),
3630     ),
3631 )
3632 # -----------------------------------------------------------------------
3633 HYDRAULIC_STRUCTURES = PROC(nom= "HYDRAULIC_STRUCTURES",op = None,
3634 # -----------------------------------------------------------------------
3635 #   -----------------------------------
3636     WEIRS = FACT(statut='f',
3637 #   -----------------------------------
3638 #       -----------------------------------
3639         NUMBER_OF_WEIRS = SIMP(statut ='o',
3640 #       -----------------------------------
3641             typ = 'I',
3642             defaut = 0,
3643             fr = """Nombre de seuils qui seront traites par des conditions aux
3644 limites. Ces seuils doivent etre decrits comme des frontieres du
3645 domaine de calcul, et leurs caracteristiques sont donnees dans le
3646 fichier de donnees des seuils (voir la documentation ecrite)""",
3647             ang = """Number of weirs that will be treated by boundary conditions.
3648 They must be described as boundaries of the domain and their features
3649 are given in the weir data file (see written documentation)""",
3650         ),
3651 #       -----------------------------------
3652         b_NUMBER_OF_WEIRSG = BLOC(condition="NUMBER_OF_WEIRS != 0",
3653 #       -----------------------------------
3654 #           -----------------------------------
3655             WEIRS_DATA_FILE = SIMP(statut ='o',
3656 #           -----------------------------------
3657                 typ = ('Fichier','All Files (*)'),
3658                 defaut = '',
3659                 fr = """Fichier de description des seuils presents dans le modele""",
3660                 ang = """Description of weirs existing in the model""",
3661             ),
3662 #           -----------------------------------
3663             TYPE_OF_WEIRS = SIMP(statut ='o',
3664 #           -----------------------------------
3665                 typ = 'TXM',
3666                 into = ["HORIZONTAL WITH SAME NUMBER OF NODES UPSTREAM/DOWNSTREAM","GENERAL"],
3667                 defaut = "HORIZONTAL WITH SAME NUMBER OF NODES UPSTREAM/DOWNSTREAM",
3668                 fr = """Methode de traitement des seuils. Deux Solutions:
3669 - HORIZONTAL AVEC MEME NOMBRE DE NOEUDS AMONT/AVAL (Solution historique
3670   avec bord)
3671 - GENERALE (Nouvelle solution avec pts sources)""",
3672                 ang = """Method for treatment of weirs. Two options:
3673 - HORIZONTAL WITH SAME NUMBER OF NODES UPSTREAM/DOWNSTREAM (Historical
3674   solution with bord)
3675 - GENERAL (New solution with sources points""",
3676             ),
3677         ),
3678     ),
3679 #   -----------------------------------
3680     CULVERTS = FACT(statut='f',
3681 #   -----------------------------------
3682 #       -----------------------------------
3683         NUMBER_OF_CULVERTS = SIMP(statut ='o',
3684 #       -----------------------------------
3685             typ = 'I',
3686             defaut = 0,
3687             fr = """Nombre de buses ou ponts traites comme des termes sources ou
3688 puits. Ces buses doivent etre decrits comme des sources dans le
3689 fichier cas. Leurs caracteristiques sont donnees dans le
3690 fichier de donnees des buses (voir la documentation ecrite)""",
3691             ang = """Number of culverts, tubes or bridges treated as source terms.
3692 They must be described as sources in the domain and their features
3693 are given in the culverts data file (see written documentation)""",
3694         ),
3695 #       -----------------------------------
3696         b_NUMBER_OF_CULVERTSG = BLOC(condition="NUMBER_OF_CULVERTS != 0",
3697 #       -----------------------------------
3698 #           -----------------------------------
3699             CULVERTS_DATA_FILE = SIMP(statut ='o',
3700 #           -----------------------------------
3701                 typ = ('Fichier','All Files (*)'),
3702                 defaut = '',
3703                 fr = """Fichier de description des buses/ponts presents dans le modele""",
3704                 ang = """Description of culverts/tubes/bridges existing in the model""",
3705             ),
3706         ),
3707 #       -----------------------------------
3708         OPTION_FOR_CULVERTS = SIMP(statut ='f',
3709 #       -----------------------------------
3710             typ = 'I',
3711             defaut = 1,
3712             fr = """Option pour le traitement des buses. Il existe deux formulations
3713 dans Telemac""",
3714             ang = """Option for the treatment of culverts. There are two options in
3715 Telemac""",
3716         ),
3717     ),
3718 #   -----------------------------------
3719     BREACHES = FACT(statut='f',
3720 #   -----------------------------------
3721 #       -----------------------------------
3722         BREACH = SIMP(statut ='o',
3723 #       -----------------------------------
3724             typ = bool,
3725             defaut = False,
3726             fr = """Prise en compte de breches dans le calcul par
3727 modification altimetrique dans le maillage. La description
3728 des breches se fait avec le fichier de donnees des breches.""",
3729             ang = """Take in account some breaches during the computation
3730 by modifying the bottom level of the mesh. Brech description
3731 is done with the breaches data file.""",
3732         ),
3733 #       -----------------------------------
3734         b_BREACHG = BLOC(condition="BREACH == True",
3735 #       -----------------------------------
3736 #           -----------------------------------
3737             BREACHES_DATA_FILE = SIMP(statut ='o',
3738 #           -----------------------------------
3739                 typ = ('Fichier','All Files (*)'),
3740                 defaut = '',
3741                 fr = """Fichier de description des breches""",
3742                 ang = """Description of breaches""",
3743             ),
3744         ),
3745     ),
3746 )
3747 # -----------------------------------------------------------------------
3748 TIDES = PROC(nom= "TIDES",op = None,
3749 # -----------------------------------------------------------------------
3750 #   -----------------------------------
3751     BINARY_DATABASE_1_FOR_TIDE = SIMP(statut ='f',
3752 #   -----------------------------------
3753         typ = ('Fichier','All Files (*)'),
3754         defaut = '',
3755         fr = """Base de donnees binaire 1 tiree du fichier du modele de maree.
3756  Dans le cas des donnees satellitaires de TPXO, ce fichier correspond
3757  aux donnees de niveau d''eau, par exemple h\_tpxo7.2""",
3758         ang = """Binary database 1 extracted from the tidal model file.
3759  In the case of the TPXO satellite altimetry model, this file should
3760  be for free surface level, for instance h\_tpxo7.2""",
3761     ),
3762 #   -----------------------------------
3763     BINARY_DATABASE_2_FOR_TIDE = SIMP(statut ='f',
3764 #   -----------------------------------
3765         typ = ('Fichier','All Files (*)'),
3766         defaut = '',
3767         fr = """Base de donnees binaire 2 tiree du fichier du modele de maree.
3768  Dans le cas des donnees satellitaires de TPXO, ce fichier correspond
3769  aux donnees de vitesse de marrees, par exemple u\_tpxo7.2""",
3770         ang = """Binary database 2 extracted from the tidal model file.
3771  In the case of the TPXO satellite altimetry model, this file should
3772  be for tidal velocities, for instance u\_tpxo7.2""",
3773     ),
3774 #   -----------------------------------
3775     GEOGRAPHIC_SYSTEM = SIMP(statut ='o',
3776 #   -----------------------------------
3777         typ = 'TXM',
3778         into = ["NO DEFAULT VALUE","DEFINED BY USER","WGS84 LONGITUDE/LATITUDE IN REAL DEGREES","WGS84 NORTHERN UTM","WGS84 SOUTHERN UTM","LAMBERT","MERCATOR FOR TELEMAC"],
3779         defaut = "NO DEFAULT VALUE",
3780         fr = """Systeme de coordonnees geographiques dans lequel est construit
3781 le modele numerique.
3782 Indiquer la zone correspondante avec le mot-cle.
3783 Indique le systeme de coordonnees geographiques dans lequel est
3784 construit le modele numerique. Les choix possibles sont :
3785 \begin{itemize}
3786 \item 0 : defini par l''utilisateur ;
3787 \item 1 : WGS84 longitude/latitude en degres reels ;
3788 \item 2 : WGS84 nord UTM ;
3789 \item 3 : WGS84 sud UTM ;
3790 \item 4 : Lambert ;
3791 \item 5 : projection Mercator.
3792 \end{itemize}""",
3793         ang = """Geographic coordinates system in which the numerical model is
3794 built. Indicate the corresponding zone with the keyword.
3795 The possible choices are:
3796 \begin{itemize}
3797 \item 0: defined by the user,
3798 \item 1: WGS84 longitude/latitude in real degrees,
3799 \item 2: WGS84 Northern UTM,
3800 \item 3: WGS84 Southern UTM,
3801 \item 4: Lambert,
3802 \item 5: Mercator projection.
3803 \end{itemize}""",
3804     ),
3805 #   -----------------------------------
3806     b_GEOGRAPHIC_SYSTEMG = BLOC(condition="GEOGRAPHIC_SYSTEM in ['WGS84 NOTHERN UTM','WGS84 SOUTHERN UTM','LAMBERT']",
3807 #   -----------------------------------
3808 #       -----------------------------------
3809         ZONE_NUMBER_IN_GEOGRAPHIC_SYSTEM = SIMP(statut ='f',
3810 #       -----------------------------------
3811             typ = 'TXM',
3812             into = ["NO DEFAULT VALUE","LAMBERT 1 NORTH","LAMBERT 2 CENTER","LAMBERT 3 SOUTH","LAMBERT 4 CORSICA","LAMBERT 2 EXTENDED","LAMBERT 93","UTM ZONE, E.G."],
3813             defaut = "NO DEFAULT VALUE",
3814             fr = """Numero de zone (fuseau ou type de projection) lors de
3815 l''utilisation d''une projection plane. Indiquer le systeme
3816 geographique dans lequel est construit le modele numerique avec le
3817 mot-cle \telkey{SYSTEME GEOGRAPHIQUE}.
3818 Les choix possibles sont :
3819 \begin{itemize}
3820 \item 1 : Lambert 1 nord ;
3821 \item 2 : Lambert 2 centre ;
3822 \item 3 : Lambert 3 sud ;
3823 \item 4 : Lambert 4 Corse ;
3824 \item 22 : Lambert 2 etendu ;
3825 \item 93 : Lambert 93 ;
3826 \item X : Valeur UTM de la zone WGS84 (X est le numero de la zone).
3827 \end{itemize}""",
3828             ang = """Number of zone when using a plane projection.
3829 Indicate the geographic system in which the numerical model is built
3830 with the keyword \telkey{GEOGRAPHIC SYSTEM}.
3831 Possible choices are:
3832 \begin{itemize}
3833 \item 1: Lambert 1 north,
3834 \item 2: Lambert 2 center,
3835 \item 3: Lambert 3 south,
3836 \item 4: Lambert 4 Corsica,
3837 \item 22: Lambert 22 extended,
3838 \item 93: Lambert 93 extended,
3839 \item X: UTM zone with WGS84 (X is the number of the zone).
3840 \end{itemize}""",
3841         ),
3842     ),
3843 #   -----------------------------------
3844     LAMBERT_93_CONVERSION_FILE = SIMP(statut ='f',
3845 #   -----------------------------------
3846         typ = ('Fichier','All Files (*)'),
3847         defaut = '',
3848         fr = """Nom du fichier GR3DF97A, grille de conversion pour Lambert 93.""",
3849         ang = """Name of file GR3DF97A, conversion grid for Lambert 93.""",
3850     ),
3851 #   -----------------------------------
3852     COEFFICIENT_TO_CALIBRATE_SEA_LEVEL = SIMP(statut ='o',
3853 #   -----------------------------------
3854         typ = 'R',
3855         defaut = 0.,
3856         fr = """Coefficient pour ajuster le niveau de mer""",
3857         ang = """Coefficient to calibrate the sea level""",
3858     ),
3859 #   -----------------------------------
3860     GLOBAL_NUMBER_OF_THE_POINT_TO_CALIBRATE_HIGH_WATER = SIMP(statut ='f',
3861 #   -----------------------------------
3862         typ = 'I',
3863         defaut = 0,
3864         fr = """Numero global du point par rapport auquel les ondes de maree sont
3865 dephasees pour debuter le calcul par une pleine mer (en marees
3866 schematiques seulement). Ne concerne que les bases de constantes
3867 harmoniques de type TPXO.""",
3868         ang = """Global number of the point with respect to which the tidal
3869 constituents have their phase shifted to start the calculation with a
3870 high water (for schematic tides only). Only harmonic constants databases
3871 like TPXO are concerned.""",
3872     ),
3873 #   -----------------------------------
3874     MINOR_CONSTITUENTS_INFERENCE = SIMP(statut ='f',
3875 #   -----------------------------------
3876         typ = bool,
3877         defaut = False,
3878         fr = """Pour la base de donnees TPXO uniquement.
3879 Interpolation de composantes harmoniques mineures
3880 a partir de celles lues dans les fichiers d''entree
3881 lies aux mots-cles BASE BINAIRE 1 DE DONNEES DE MAREE
3882 et BASE BINAIRE 2 DE DONNEES DE MAREE""",
3883         ang = """For TPXO tidal data base only.
3884 Inference of minor constituents from the one read in input files
3885 linked to keywords BINARY DATABASE 1 FOR TIDE
3886 and BINARY DATABASE 2 FOR TIDE""",
3887     ),
3888 #   -----------------------------------
3889     BOUNDARY_CONDITIONS = FACT(statut='o',
3890 #   -----------------------------------
3891 #       -----------------------------------
3892         OPTION_FOR_TIDAL_BOUNDARY_CONDITIONS = SIMP(statut ='o',
3893 #       -----------------------------------
3894             typ = 'TXM', max='**',
3895             into = ["No tide","Real tide (recommended methodology)","Astronomical tide","Mean spring tide","Mean tide","Mean neap tide","Astronomical neap tide","Real tide (methodology before 2010)"],
3896             fr = """Option pour les conditions aux limites de maree. Pour des marees
3897 reelles, l option 1 est recommandee. Depuis la version 7.1, ce mot-cle
3898 est un tableau avec une valeur donnee par frontiere liquide, separee par
3899 point-virgules. Ceci permet d''avoir des conditions de maree (ou pas)
3900 calculees sur des frontieres liquides avec vitesses ou hauteur d eau
3901 imposees. Ca evite un conflit lors de l utilisation de seuils dans le
3902 domaine. 0 est le code pour des conditions autres que des conditions de
3903 maree. ATTENTION depuis la version 7.1 ! Les anciens modeles doivent
3904 etre changes si la frontiere de maree n a pas le numero 1. Dans ce cas,
3905 le mot-cle doit etre change et plus de valeurs doivent etre donnees.
3906 Calage possible par les mots-cles COEFFICIENT POUR CALAGE EN MARNAGE et
3907 COEFFICIENT POUR CALAGE EN NIVEAU.""",
3908             ang = """Option for tidal boundary conditions. For real tides, option 1 is
3909 recommended. This keyword has been an array with a value given per
3910 liquid boundary, separated by semicolons, since version 7.1. This
3911 enables to have tidal conditions (or not) computed on liquid boundaries
3912 with prescribed velocities or depths, avoiding a clash when using weirs
3913 in the domain. 0 codes for conditions other than tidal. BEWARE since
3914 version 7.1! Old models must be changed if their tidal boundary is not
3915 number 1. In that case this keyword must be changed and more values
3916 given. Possible calibration with the keywords COEFFICIENT TO ADJUST
3917 TIDAL RANGE, COEFFICENT TO CALIBRATE TIDAL VELOCITIES, and COEFFICIENT
3918 TO ADJUST SEA LEVEL.""",
3919         ),
3920 #       -----------------------------------
3921         TIDAL_DATA_BASE = SIMP(statut ='o',
3922 #       -----------------------------------
3923             typ = 'TXM',
3924             into = ["NO DEFAULT VALUE","JMJ","TPXO","MISCELLANEOUS (LEGOS-NEA, FES20XX, PREVIMER...)"],
3925             defaut = "NO DEFAULT VALUE",
3926             fr = """Pour JMJ, renseigner la localisation du fichier bdd\_jmj et geofin
3927 dans les mots-cles BASE DE DONNEES DE MAREE et FICHIER DU MODELE DE
3928 MAREE. Pour TPXO, LEGOS-NEA, FES20XX et PREVIMER, l''utilisateur doit
3929 telecharger les fichiers de constantes harmoniques sur internet""",
3930             ang = """For JMJ, indicate the location of the files bdd\_jmj and geofin with
3931 keywords TIDE DATA BASE and TIDAL MODEL FILE. For TPXO, LEGOS-NEA,
3932 FES20XX and PREVIMER, the user has to download files of harmonic
3933 constituents on the internet""",
3934         ),
3935 #       -----------------------------------
3936         b_TIDAL_DATA_BASEG = BLOC(condition="TIDAL_DATA_BASE == 'TPXO'",
3937 #       -----------------------------------
3938         ),
3939 #       -----------------------------------
3940         HARMONIC_CONSTANTS_FILE = SIMP(statut ='f',
3941 #       -----------------------------------
3942             typ = ('Fichier','All Files (*)'),
3943             defaut = '',
3944             fr = """Constantes harmoniques extraites du fichier du modele de maree""",
3945             ang = """Harmonic constants extracted from the tidalmodel file""",
3946         ),
3947 #       -----------------------------------
3948         TIDAL_MODEL_FILE = SIMP(statut ='f',
3949 #       -----------------------------------
3950             typ = ('Fichier','All Files (*)'),
3951             defaut = '',
3952             fr = """Fichier de geometrie du modele dont sont extraites
3953 les constantes harmoniques""",
3954             ang = """Geometry file of the model from which harmonic constituents
3955 are extracted""",
3956         ),
3957 #       -----------------------------------
3958         TIDAL_MODEL_FILE_FORMAT = SIMP(statut ='f',
3959 #       -----------------------------------
3960             typ = 'TXM',
3961             into = ['SERAFIN?','SERAFIND','MED'],
3962             defaut = 'SERAFIN?',
3963             fr = """Format du \telkey{FICHIER DU MODELE DE MAREE}.
3964 Les valeurs possibles sont :
3965 \begin{itemize}
3966 \item SERAFIN : format standard simple precision pour \tel ;
3967 \item SERAFIND: format standard double precision pour \tel ;
3968 \item MED     : format MED double precision base sur HDF5.
3969 \end{itemize}""",
3970             ang = """Format of the \telkey{TIDAL MODEL FILE}.
3971 Possible choices are:
3972 \begin{itemize}
3973 \item SERAFIN : classical single precision format in \tel,
3974 \item SERAFIND: classical double precision format in \tel,
3975 \item MED     : MED double precision format based on HDF5.
3976 \end{itemize}""",
3977         ),
3978 #       -----------------------------------
3979         ASCII_DATABASE_FOR_TIDE = SIMP(statut ='f',
3980 #       -----------------------------------
3981             typ = ('Fichier','All Files (*)'),
3982             defaut = '',
3983             fr = """Base de donnees de constantes harmoniques
3984 tirees du fichier du modele de maree.
3985 Ancien nom en version 6.1 : BASE DE DONNEES DE MAREE""",
3986             ang = """Tide data base of harmonic constituents
3987 extracted from the tidal model file.
3988 Old name in 6.1 version: TIDE DATA BASE""",
3989         ),
3990 #       -----------------------------------
3991         COEFFICIENT_TO_CALIBRATE_TIDAL_RANGE = SIMP(statut ='o',
3992 #       -----------------------------------
3993             typ = 'R',
3994             defaut = 1.,
3995             fr = """Coefficient pour ajuster le marnage de l''onde de maree
3996 aux frontieres maritimes""",
3997             ang = """Coefficient to calibrate the tidal range of tidal wave
3998 at tidal open boundary conditions""",
3999         ),
4000 #       -----------------------------------
4001         COEFFICIENT_TO_CALIBRATE_TIDAL_VELOCITIES = SIMP(statut ='o',
4002 #       -----------------------------------
4003             typ = 'R',
4004             defaut = 999999.,
4005             fr = """Coefficient pour ajuster les composantes de vitesse
4006 de l''onde de maree aux frontieres maritimes.
4007 La valeur par defaut 999999. signifie que c''est la racine carree
4008 du COEFFICIENT DE CALAGE DU MARNAGE qui est prise""",
4009             ang = """Coefficient to calibrate the tidal velocities of tidal wave
4010 at tidal open boundary conditions.
4011 Default value 999999. means that the square root of
4012 COEFFICIENT TO CALIBRATE TIDAL RANGE is taken""",
4013         ),
4014 #       -----------------------------------
4015         LOCAL_NUMBER_OF_THE_POINT_TO_CALIBRATE_HIGH_WATER = SIMP(statut ='f',
4016 #       -----------------------------------
4017             typ = 'I',
4018             defaut = 0,
4019             fr = """Numero local du point entre 1 et le nombre de points de frontiere
4020 maritime (du FICHIER DES CONSTANTES HARMONIQUES) ou les conditions aux
4021 limites de maree sont calculees avec les bases de donnees JMJ, NEA, FES,
4022 PREVIMER (sauf les bases de type TPXO). Les ondes de maree sont
4023 dephasees par rapport a ce point pour debuter le calcul par une pleine
4024 mer (en marees schematiques seulement).""",
4025             ang = """Local number between 1 and the number of tidal boundary points (of the
4026 HARMONIC CONSTANTS FILE) where the tidal boundary conditions are
4027 computed with JMJ, NEA, FES, PREVIMER databases (except TPXO-type
4028 databases). The tidal constituents have their phase shifted with respect
4029 to this point to start the simulation with a high water (for schematic
4030 tides only).""",
4031         ),
4032     ),
4033 #   -----------------------------------
4034     PHYSICAL_PARAMETERS = FACT(statut='o',
4035 #   -----------------------------------
4036 #       -----------------------------------
4037         TIDE_GENERATING_FORCE = SIMP(statut ='o',
4038 #       -----------------------------------
4039             typ = bool,
4040             defaut = False,
4041             fr = """Active la prise en compte de la force generatrice de la maree""",
4042             ang = """The tide generating force is taken into account.""",
4043         ),
4044 #       -----------------------------------
4045         b_TIDE_GENERATING_FORCEG = BLOC(condition="TIDE_GENERATING_FORCE == True",
4046 #       -----------------------------------
4047         ),
4048     ),
4049 )
4050 # -----------------------------------------------------------------------
4051 COUPLING = PROC(nom= "COUPLING",op = None,
4052 # -----------------------------------------------------------------------
4053 #   -----------------------------------
4054     COUPLING_WITH = SIMP(statut ='o',
4055 #   -----------------------------------
4056         typ = 'TXM',
4057         into = ['SISYPHE','TOMAWAC','DELWAQ'],
4058         defaut = '',
4059         fr = """Liste des codes avec lesquels on couple Telemac-2D
4060         SISYPHE : couplage interne avec Sisyphe
4061         TOMAWAC : couplage interne avec Tomawac
4062         DELWAQ : sortie de fichiers de resultats pour Delwaq""",
4063         ang = """List of codes to be coupled with Telemac-2D
4064         SISYPHE : internal coupling with Sisyphe
4065         TOMAWAC : internal coupling with Tomawac
4066         DELWAQ: will yield results file for Delwaq""",
4067     ),
4068 #   -----------------------------------
4069     NAMES_OF_CLANDESTINE_VARIABLES = SIMP(statut ='f',
4070 #   -----------------------------------
4071         typ = 'TXM', min= 2, max= 2,
4072         fr = """Noms de variables qui ne sont pas utilisees par TELEMAC;
4073 mais qui doivent etre conservees lors de son execution.
4074 Ceci peut etre utilise entre autres lors du couplage de TELEMAC
4075 avec un autre code.
4076 Les variables clandestines sont alors des variables propres a l''autre
4077 code et sont rendues dans le fichier de resultats.""",
4078         ang = """Names of variables that are not used by TELEMAC, but should be
4079 preserved when it is being run. This keyword may be used, for instance
4080 when it if TELEMAC is coupled with another code. Thus, the clandestine
4081 variables belong to the other code and are given back in the results
4082 file.""",
4083     ),
4084 #   -----------------------------------
4085     COUPLING_DIRECTORY = SIMP(statut ='f',
4086 #   -----------------------------------
4087         typ = 'TXM',
4088         defaut = '',
4089         fr = """Nom complet du dossier d echange des fichiers
4090  pour couplage de codes""",
4091         ang = """Name with full path of the directory where the files will
4092  be exchanged for coupling""",
4093     ),
4094 #   -----------------------------------
4095     DELWAQ = FACT(statut='o',
4096 #   -----------------------------------
4097 #       -----------------------------------
4098         DELWAQ_STEERING_FILE = SIMP(statut ='f',
4099 #       -----------------------------------
4100             typ = ('Fichier','All Files (*)','Sauvegarde'),
4101             defaut = '',
4102             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4103             ang = """Results file for coupling with Delwaq""",
4104         ),
4105 #       -----------------------------------
4106         DELWAQ_PRINTOUT_PERIOD = SIMP(statut ='f',
4107 #       -----------------------------------
4108             typ = 'I',
4109             defaut = 1,
4110             fr = """Periode de sortie des resultats pour Delwaq""",
4111             ang = """Printout period for Delwaq file""",
4112         ),
4113 #       -----------------------------------
4114         EXCHANGES_BETWEEN_NODES_DELWAQ_FILE = SIMP(statut ='f',
4115 #       -----------------------------------
4116             typ = ('Fichier','All Files (*)','Sauvegarde'),
4117             defaut = '',
4118             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4119             ang = """Results file for coupling with Delwaq""",
4120         ),
4121 #       -----------------------------------
4122         NODES_DISTANCES_DELWAQ_FILE = SIMP(statut ='f',
4123 #       -----------------------------------
4124             typ = ('Fichier','All Files (*)','Sauvegarde'),
4125             defaut = '',
4126             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4127             ang = """Results file for coupling with Delwaq""",
4128         ),
4129 #       -----------------------------------
4130         BOTTOM_SURFACES_DELWAQ_FILE = SIMP(statut ='f',
4131 #       -----------------------------------
4132             typ = ('Fichier','All Files (*)','Sauvegarde'),
4133             defaut = '',
4134             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4135             ang = """Results file for coupling with Delwaq""",
4136         ),
4137 #       -----------------------------------
4138         VOLUMES_DELWAQ_FILE = SIMP(statut ='f',
4139 #       -----------------------------------
4140             typ = ('Fichier','All Files (*)','Sauvegarde'),
4141             defaut = '',
4142             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4143             ang = """Results file for coupling with Delwaq""",
4144         ),
4145 #       -----------------------------------
4146         EXCHANGE_AREAS_DELWAQ_FILE = SIMP(statut ='f',
4147 #       -----------------------------------
4148             typ = ('Fichier','All Files (*)','Sauvegarde'),
4149             defaut = '',
4150             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4151             ang = """Results file for coupling with Delwaq""",
4152         ),
4153 #       -----------------------------------
4154         VERTICAL_FLUXES_DELWAQ_FILE = SIMP(statut ='f',
4155 #       -----------------------------------
4156             typ = ('Fichier','All Files (*)','Sauvegarde'),
4157             defaut = '',
4158             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4159             ang = """Results file for coupling with Delwaq""",
4160         ),
4161 #       -----------------------------------
4162         VELOCITY_DELWAQ_FILE = SIMP(statut ='f',
4163 #       -----------------------------------
4164             typ = ('Fichier','All Files (*)','Sauvegarde'),
4165             defaut = '',
4166             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4167             ang = """Results file for coupling with Delwaq""",
4168         ),
4169 #       -----------------------------------
4170         DIFFUSIVITY_DELWAQ_FILE = SIMP(statut ='f',
4171 #       -----------------------------------
4172             typ = ('Fichier','All Files (*)','Sauvegarde'),
4173             defaut = '',
4174             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4175             ang = """Results file for coupling with Delwaq""",
4176         ),
4177 #       -----------------------------------
4178         TEMPERATURE_DELWAQ_FILE = SIMP(statut ='f',
4179 #       -----------------------------------
4180             typ = ('Fichier','All Files (*)','Sauvegarde'),
4181             defaut = '',
4182             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4183             ang = """Results file for coupling with Delwaq""",
4184         ),
4185 #       -----------------------------------
4186         SALINITY_DELWAQ_FILE = SIMP(statut ='f',
4187 #       -----------------------------------
4188             typ = ('Fichier','All Files (*)','Sauvegarde'),
4189             defaut = '',
4190             fr = """Fichier de resultats pour le couplage avec Delwaq""",
4191             ang = """Results file for coupling with Delwaq""",
4192         ),
4193 #       -----------------------------------
4194         VELOCITY_FOR_DELWAQ = SIMP(statut ='f',
4195 #       -----------------------------------
4196             typ = bool,
4197             defaut = False,
4198             fr = """Decide de la sortie de la vitesse pour Delwaq""",
4199             ang = """Triggers output of velocity for Delwaq""",
4200         ),
4201 #       -----------------------------------
4202         DIFFUSIVITY_FOR_DELWAQ = SIMP(statut ='f',
4203 #       -----------------------------------
4204             typ = bool,
4205             defaut = False,
4206             fr = """Decide de la sortie du coefficient de diffusion pour Delwaq""",
4207             ang = """Triggers output of diffusion for Delwaq""",
4208         ),
4209 #       -----------------------------------
4210         TEMPERATURE_FOR_DELWAQ = SIMP(statut ='f',
4211 #       -----------------------------------
4212             typ = bool,
4213             defaut = False,
4214             fr = """Decide de la sortie de la temperature pour Delwaq""",
4215             ang = """Triggers output of temperature for Delwaq""",
4216         ),
4217 #       -----------------------------------
4218         SALINITY_FOR_DELWAQ = SIMP(statut ='f',
4219 #       -----------------------------------
4220             typ = bool,
4221             defaut = False,
4222             fr = """Decide de la sortie de la salinite pour Delwaq""",
4223             ang = """Triggers output of salinity for Delwaq""",
4224         ),
4225     ),
4226 #   -----------------------------------
4227     SISYPHE = FACT(statut='o',
4228 #   -----------------------------------
4229 #       -----------------------------------
4230         SISYPHE_STEERING_FILE = SIMP(statut ='f',
4231 #       -----------------------------------
4232             typ = 'TXM',
4233             defaut = '',
4234             fr = """Fichier des parametres de Sisyphe en cas de couplage interne""",
4235             ang = """Sisyphe parameter file in case of internal coupling""",
4236         ),
4237 #       -----------------------------------
4238         COUPLING_PERIOD_FOR_SISYPHE = SIMP(statut ='f',
4239 #       -----------------------------------
4240             typ = 'I',
4241             defaut = 1,
4242             fr = """pour eviter de faire le couplage a chaque pas de temps""",
4243             ang = """to avoid coupling at every time-step""",
4244         ),
4245     ),
4246 #   -----------------------------------
4247     TOMAWAC = FACT(statut='o',
4248 #   -----------------------------------
4249 #       -----------------------------------
4250         TOMAWAC_STEERING_FILE = SIMP(statut ='f',
4251 #       -----------------------------------
4252             typ = 'TXM',
4253             defaut = '',
4254             fr = """Fichier des parametres de Tomawac en cas de couplage interne""",
4255             ang = """Tomawac parameter file in case of internal coupling""",
4256         ),
4257 #       -----------------------------------
4258         COUPLING_PERIOD_FOR_TOMAWAC = SIMP(statut ='f',
4259 #       -----------------------------------
4260             typ = 'I',
4261             defaut = 1,
4262             fr = """pour eviter de faire le couplage a chaque pas de temps""",
4263             ang = """to avoid coupling at every time-step""",
4264         ),
4265     ),
4266 #   -----------------------------------
4267     WAQTEL = FACT(statut='o',
4268 #   -----------------------------------
4269 #       -----------------------------------
4270         WAQTEL_STEERING_FILE = SIMP(statut ='f',
4271 #       -----------------------------------
4272             typ = 'TXM',
4273             defaut = '',
4274             fr = """fichier des parametres physiques pour les processus de qualite d eau
4275 (internes non ceux de DELWAQ)""",
4276             ang = """file for physical parameters of waq processes (local ones of
4277 Telemac-tracer not those of DELWAQ)""",
4278         ),
4279     ),
4280 #   -----------------------------------
4281     KHIONE = FACT(statut='o',
4282 #   -----------------------------------
4283 #       -----------------------------------
4284         KHIONE_STEERING_FILE = SIMP(statut ='f',
4285 #       -----------------------------------
4286             typ = 'TXM',
4287             defaut = '',
4288             fr = """Fichier des parametres physiques pour les processus liees aux glaces""",
4289             ang = """Steering file for physical parameters of ice processes""",
4290         ),
4291     ),
4292 )
4293 # -----------------------------------------------------------------------
4294 INTERNAL = PROC(nom= "INTERNAL",op = None,
4295 # -----------------------------------------------------------------------
4296 #   -----------------------------------
4297     LANGUAGE = SIMP(statut ='f',
4298 #   -----------------------------------
4299         typ = 'TXM',
4300         into = ["FRANCAIS","ANGLAIS"],
4301         defaut = "ANGLAIS",
4302         fr = """1 : FRANCAIS   2 : ANGLAIS""",
4303         ang = """1: FRENCH   2: ENGLISH""",
4304     ),
4305 #   -----------------------------------
4306     STEERING_FILE = SIMP(statut ='f',
4307 #   -----------------------------------
4308         typ = ('Fichier','All Files (*)'),
4309         defaut = '',
4310         fr = """Nom du fichier contenant les parametres du calcul a realiser.""",
4311         ang = """Name of the file containing the parameters of the computation
4312 Written by the user.""",
4313     ),
4314 #   -----------------------------------
4315     DICTIONARY = SIMP(statut ='f',
4316 #   -----------------------------------
4317         typ = ('Fichier','All Files (*)'),
4318         defaut = 'telemac2d.dico',
4319         fr = """Dictionnaire des mots cles.""",
4320         ang = """Key word dictionary.""",
4321     ),
4322 #   -----------------------------------
4323     PARTITIONING_TOOL = SIMP(statut ='f',
4324 #   -----------------------------------
4325         typ = 'TXM',
4326         into = ['METIS','SCOTCH','PARMETIS','PTSCOTCH'],
4327         defaut = 'METIS',
4328         fr = """CHOIX DU PARTITIONNEUR
4329 1 : METIS
4330 2 : SCOTCH
4331 3 : PARMETIS
4332 4 : PTSCOTCH
4333 etc...""",
4334         ang = """PARTITIONING TOOL SELECTION
4335 1 : METIS
4336 2 : SCOTCH
4337 3 : PARMETIS
4338 4 : PTSCOTCH
4339 etc...""",
4340     ),
4341 #   -----------------------------------
4342     RELEASE = SIMP(statut ='f',
4343 #   -----------------------------------
4344         typ = 'TXM',
4345         defaut = 'TRUNK',
4346         fr = """Numero de version des bibliotheques utilisees par TELEMAC.
4347 SUR UNE STATION DE TRAVAIL
4348 5 versions sont donnees correspondant a :
4349 TELEMAC,DAMO,UTILE,BIEF,HP""",
4350         ang = """version number of the libraries used by TELEMAC.
4351 ON A WORKSTATION
4352 5 numbers are given, corresponding to the libraries called:
4353 TELEMAC,DAMO,UTILE,BIEF,HP""",
4354     ),
4355 #   -----------------------------------
4356     LIST_OF_FILES = SIMP(statut ='f',
4357 #   -----------------------------------
4358         typ = 'TXM', min=46, max=46,
4359         defaut = 'STEERING FILE;DICTIONARY;FORTRAN FILE;GEOMETRY FILE;BOUNDARY CONDITIONS FILE;RESULTS FILE;PREVIOUS COMPUTATION FILE;BOTTOM TOPOGRAPHY FILE;BINARY DATA FILE 1;BINARY DATA FILE 2;FORMATTED DATA FILE 1;FORMATTED DATA FILE 2;BINARY RESULTS FILE;FORMATTED RESULTS FILE;REFERENCE FILE;LIQUID BOUNDARIES FILE;FRICTION DATA FILE;VOLUMES DELWAQ FILE;EXCHANGE AREAS DELWAQ FILE;VERTICAL FLUXES DELWAQ FILE;SALINITY DELWAQ FILE;VELOCITY DELWAQ FILE;DIFFUSIVITY DELWAQ FILE;BOTTOM SURFACES DELWAQ FILE;EXCHANGES BETWEEN NODES DELWAQ FILE;NODES DISTANCES DELWAQ FILE;TEMPERATURE DELWAQ FILE;DELWAQ STEERING FILE;STAGE-DISCHARGE CURVES FILE;SOURCES FILE;SECTIONS INPUT FILE;SECTIONS OUTPUT FILE;OIL SPILL STEERING FILE;HARMONIC CONSTANTS FILE;TIDAL MODEL FILE;ASCII DATABASE FOR TIDE;BINARY DATABASE 1 FOR TIDE;BINARY DATABASE 2 FOR TIDE;WEIRS DATA FILE;CULVERTS DATA FILE;BREACHES DATA FILE;DROGUES FILE;ZONES FILE;FLUXLINE INPUT FILE;ASCII ATMOSPHERIC DATA FILE;BINARY ATMOSPHERIC DATA FILE',
4360         fr = """Noms des fichiers exploites par le code""",
4361         ang = """File names of the used files""",
4362     ),
4363 #   -----------------------------------
4364     DESCRIPTION_OF_LIBRARIES = SIMP(statut ='f',
4365 #   -----------------------------------
4366         typ = 'TXM', min=11, max=11,
4367         defaut = 'builds|PPP|lib|telemac2dMMMVVV.LLL;builds|PPP|lib|sisypheMMMVVV.LLL;builds|PPP|lib|tomawacMMMVVV.LLL;builds|PPP|lib|nestorMMMVVV.LLL;builds|PPP|lib|waqtelMMMVVV.LLL;builds|PPP|lib|stbtelMMMVVV.LLL;builds|PPP|lib|biefMMMVVV.LLL;builds|PPP|lib|hermesMMMVVV.LLL;builds|PPP|lib|damoMMMVVV.LLL;builds|PPP|lib|parallelMMMVVV.LLL;builds|PPP|lib|specialMMMVVV.LLL',
4368         fr = """Description des librairies de T2D""",
4369         ang = """LIBRARIES description""",
4370     ),
4371 #   -----------------------------------
4372     DEFAULT_EXECUTABLE = SIMP(statut ='f',
4373 #   -----------------------------------
4374         typ = 'TXM',
4375         defaut = 'builds|PPP|bin|telemac2dMMMVVV.exe',
4376         fr = """Executable par defaut de T2D""",
4377         ang = """Default executable for T2D""",
4378     ),
4379 #   -----------------------------------
4380     DEFAULT_PARALLEL_EXECUTABLE = SIMP(statut ='f',
4381 #   -----------------------------------
4382         typ = 'TXM',
4383         defaut = 'builds|PPP|bin|telemac2dMMMVVV.exe',
4384         fr = """Executable parallele par defaut de T2D""",
4385         ang = """Default parallel executable for T2D""",
4386     ),
4387 )
4388 # -----------------------------------------------------------------------
4389 MISCELLANEOUS = PROC(nom= "MISCELLANEOUS",op = None,
4390 # -----------------------------------------------------------------------
4391     UIinfo = {"groupes": ("CACHE")},
4392 #   -----------------------------------
4393     NESTOR_ACTION_FILE = SIMP(statut ='f',
4394 #   -----------------------------------
4395         typ = ('Fichier','All Files (*)'), max='**',
4396         defaut = '',
4397         fr = """Nom du fichier de commandes de nestor""",
4398         ang = """Name of the Nestor steering file""",
4399     ),
4400 #   -----------------------------------
4401     NESTOR_POLYGON_FILE = SIMP(statut ='f',
4402 #   -----------------------------------
4403         typ = ('Fichier','All Files (*)'), max='**',
4404         defaut = '',
4405         fr = """Nom du fichier de polygons de Nestor""",
4406         ang = """Name of the Nestor polygon file""",
4407     ),
4408 #   -----------------------------------
4409     NESTOR_SURFACE_REFERENCE_FILE = SIMP(statut ='f',
4410 #   -----------------------------------
4411         typ = ('Fichier','All Files (*)'), max='**',
4412         defaut = '',
4413         fr = """Nom du fichier de reference surface de Nestor""",
4414         ang = """Name of the Nestor file which contains the reference
4415          water surface""",
4416     ),
4417 #   -----------------------------------
4418     NESTOR_RESTART_FILE = SIMP(statut ='f',
4419 #   -----------------------------------
4420         typ = ('Fichier','All Files (*)'), max='**',
4421         defaut = '',
4422         fr = """Nom du fichier de Nestor restart""",
4423         ang = """Name of the Nestor restart file""",
4424     ),
4425 )
4426 TEXTE_NEW_JDC = "\
4427 COMPUTATION_ENVIRONMENT();\
4428 HYDRO();\
4429 GENERAL_PARAMETERS();\
4430 NUMERICAL_PARAMETERS();\
4431 TURBULENCE();\
4432 MISCELLANEOUS();\
4433 "
4434 Ordre_Des_Commandes = (
4435 'COMPUTATION_ENVIRONMENT',
4436 'HYDRO',
4437 'GENERAL_PARAMETERS',
4438 'NUMERICAL_PARAMETERS',
4439 'TURBULENCE',
4440 'TIDAL_FLATS_INFO',
4441 'TRACERS',
4442 'PARTICLE_TRANSPORT',
4443 'HYDRAULIC_STRUCTURES',
4444 'TIDES',
4445 'COUPLING',
4446 'INTERNAL',
4447 'MISCELLANEOUS')
4448 try:
4449     import TelApy
4450     source = "eficas"
4451 except Exception as excpt:
4452     source = "Telemac"
4453 enum = source+'.telemac2d_enum_auto'
4454 dicoCasEn = source+'.telemac2d_dicoCasEnToCata'
4455 dicoCasFr = source+'.telemac2d_dicoCasFrToCata'