Salome HOME
3e004540d4547310e570b37b19b94feea23cae2f
[tools/eficas.git] / Telemac / telemac3d_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 = 'TELEMAC3D',
41                 execmodul = None,
42                 )
43 # =======================================================================
44 # Catalog entry for the MAP function : c_pre_interfaceBody_mesh
45 # =======================================================================
46
47 VERSION_CATALOGUE="TRUNK_20201028"
48 # -----------------------------------------------------------------------
49 COMPUTATION_ENVIRONMENT = PROC(nom= "COMPUTATION_ENVIRONMENT",op = None,
50 # -----------------------------------------------------------------------
51 #   -----------------------------------
52     GLOBAL = FACT(statut='o',
53 #   -----------------------------------
54 #       -----------------------------------
55         TITLE = SIMP(statut ='o',
56 #       -----------------------------------
57             typ = 'TXM',
58             defaut = '',
59             fr = """Titre du cas etudie.""",
60             ang = """Title of the case being considered.""",
61         ),
62 #       -----------------------------------
63         PARALLEL_PROCESSORS = SIMP(statut ='f',
64 #       -----------------------------------
65             typ = 'I',
66             defaut = 0,
67             fr = """Nombre de processeurs pour la decomposition en parallele.
68 La valeur 0 correspond a un calcul scalaire.""",
69             ang = """Number of processors for domain partition.
70 Value 0 corresponds to a scalar computation.""",
71         ),
72 #       -----------------------------------
73         CHECKING_THE_MESH = SIMP(statut ='o',
74 #       -----------------------------------
75             typ = bool,
76             defaut = False,
77             fr = """Si OUI on appelle le sous-programme \telfile{CHECKMESH} qui verifie
78 la coherence du maillage, points superposes, etc.""",
79             ang = """If this keyword is equal to YES, a call to subroutine
80 \telfile{CHECKMESH} will look for errors in the mesh,
81 superimposed points, etc.""",
82         ),
83 #       -----------------------------------
84         MAXIMUM_NUMBER_OF_BOUNDARIES = SIMP(statut ='f',
85 #       -----------------------------------
86             typ = 'I',
87             defaut = 30,
88             fr = """Nombre maximal de frontieres differentes dans le maillage.
89 Sert au dimensionnement de la memoire, a augmenter si necessaire.""",
90             ang = """Maximal number of boundaries in the mesh.
91 Used for dimensioning arrays. Can be increased if needed.""",
92         ),
93 #       -----------------------------------
94         MAXIMUM_NUMBER_OF_TRACERS = SIMP(statut ='f',
95 #       -----------------------------------
96             typ = 'I',
97             defaut = 20,
98             fr = """Nombre maximal de traceurs.
99 Sert au dimensionnement de la memoire, a augmenter si necessaire.""",
100             ang = """Maximal number of tracers.
101 Used for dimensioning arrays. Can be increased if needed.""",
102         ),
103 #       -----------------------------------
104         MAXIMUM_NUMBER_OF_SOURCES = SIMP(statut ='f',
105 #       -----------------------------------
106             typ = 'I',
107             defaut = 20,
108             fr = """Nombre maximal de points sources dans le maillage,
109 incluant les sources ponctuelles et 2 fois le nombre de buses.
110 Sert au dimensionnement de la memoire, a augmenter si necessaire.""",
111             ang = """Maximal number of source points in the mesh, including
112 punctual sources and twice the number of culverts.
113 Used for dimensioning arrays. Can be increased if needed.""",
114         ),
115 #       -----------------------------------
116         MAXIMUM_NUMBER_OF_BOUNDARIES_ON_THE_BED = SIMP(statut ='f',
117 #       -----------------------------------
118             typ = 'I',
119             defaut = 30,
120             fr = """Nombre maximal de frontieres liquides sur le fond.
121 Sert au dimensionnement de la memoire, a augmenter si necessaire.""",
122             ang = """Maximal number of liquid boundaries on the bed.
123 Used for dimensioning arrays. Can be increased if needed.""",
124         ),
125 #       -----------------------------------
126         VECTOR_LENGTH = SIMP(statut ='f',
127 #       -----------------------------------
128             typ = 'I',
129             defaut = 1,
130             fr = """Longueur du vecteur pour les machines vectorielles.""",
131             ang = """Vector length on vector machines.""",
132         ),
133     ),
134 #   -----------------------------------
135     INPUT = FACT(statut='o',
136 #   -----------------------------------
137 #       -----------------------------------
138         DATA = FACT(statut='o',
139 #       -----------------------------------
140 #           -----------------------------------
141             GEOMETRY_FILE = SIMP(statut ='o',
142 #           -----------------------------------
143                 typ = ('Fichier','All Files (*)'),
144                 fr = """Nom du fichier contenant le maillage du calcul a realiser.""",
145                 ang = """Name of the file containing the mesh. This file may also
146 contain the topography and the friction coefficients.""",
147             ),
148 #           -----------------------------------
149             GEOMETRY_FILE_FORMAT = SIMP(statut ='o',
150 #           -----------------------------------
151                 typ = 'TXM',
152                 into = ['SERAFIN','SERAFIND','MED'],
153                 defaut = 'SERAFIN',
154                 fr = """Format du \telkey{FICHIER DE GEOMETRIE}.
155 Les valeurs possibles sont :
156 \begin{itemize}
157 \item SERAFIN : format standard simple precision pour \tel ;
158 \item SERAFIND: format standard double precision pour \tel ;
159 \item MED     : format MED double precision base sur HDF5.
160 \end{itemize}""",
161                 ang = """Format of the \telkey{GEOMETRY FILE}.
162 Possible choices are:
163 \begin{itemize}
164 \item SERAFIN : classical single precision format in \tel,
165 \item SERAFIND: classical double precision format in \tel,
166 \item MED     : MED double precision format based on HDF5.
167 \end{itemize}""",
168             ),
169 #           -----------------------------------
170             BOUNDARY_CONDITIONS_FILE = SIMP(statut ='o',
171 #           -----------------------------------
172                 typ = ('Fichier','All Files (*)'),
173                 fr = """Nom du fichier contenant les types de conditions aux limites.
174 Ce fichier est rempli de facon automatique par le mailleur au moyen de
175 couleurs affectees aux noeuds des frontieres du domaine de calcul.""",
176                 ang = """Name of the file containing the types of boundary conditions.
177 This file is filled automatically by the mesh generator through
178 colours that are assigned to the boundary nodes.""",
179             ),
180 #           -----------------------------------
181             BINARY_BOUNDARY_DATA_FILE = SIMP(statut ='f',
182 #           -----------------------------------
183                 typ = ('Fichier','All Files (*)'),
184                 defaut = '',
185                 fr = """Fichier de donnees code en binaire contenant les informations
186 de conditions aux limites variables en temps et en espace
187 provenant de jeux de donnees externes par exemple.""",
188                 ang = """Binary-coded data file containing the boundary conditions data
189 varying in time and space.""",
190             ),
191 #           -----------------------------------
192             BINARY_BOUNDARY_DATA_FILE_FORMAT = SIMP(statut ='f',
193 #           -----------------------------------
194                 typ = 'TXM',
195                 into = ['SERAFIN','SERAFIND','MED'],
196                 defaut = 'SERAFIN',
197                 fr = """Format du \telkey{FICHIER BINAIRE DE DONNEES DE FRONTIERE}.
198 Les valeurs possibles sont :
199 \begin{itemize}
200 \item SERAFIN : format standard simple precision pour \tel ;
201 \item SERAFIND: format standard double precision pour \tel ;
202 \item MED     : format MED base sur HDF5.
203 \end{itemize}""",
204                 ang = """Format of the \telkey{BINARY BOUNDARY DATA FILE}.
205 Possible values are:
206 \begin{itemize}
207 \item SERAFIN : classical single precision format in \tel,
208 \item SERAFIND: classical double precision format in \tel,
209 \item MED     : MED format based on HDF5.
210 \end{itemize}""",
211             ),
212 #           -----------------------------------
213             FORTRAN_FILE = SIMP(statut ='f',
214 #           -----------------------------------
215                 typ = 'FichierOuRepertoire',
216                 defaut = '',
217                 fr = """Nom du fichier ou repertoire FORTRAN a soumettre,
218 contenant les sous-programmes specifiques au modele.""",
219                 ang = """Name of the FORTRAN file or directory to be submitted,
220 including specific subroutines of the model.""",
221             ),
222 #           -----------------------------------
223             BOTTOM_TOPOGRAPHY_FILE = SIMP(statut ='f',
224 #           -----------------------------------
225                 typ = ('Fichier','All Files (*)'),
226                 defaut = '',
227                 fr = """Nom du fichier eventuel contenant la bathymetrie associee au
228 maillage.
229 Si ce mot-cle est utilise, c''est cette bathymetrie qui sera utilisee
230 pour le calcul.""",
231                 ang = """Name of the possible file containing the bathymetric data.
232 Where this keyword is used, these bathymetric data shall be used in
233 the computation.""",
234             ),
235 #           -----------------------------------
236             NUMBER_OF_BOTTOM_SMOOTHINGS = SIMP(statut ='o',
237 #           -----------------------------------
238                 typ = 'I',
239                 defaut = 0,
240                 fr = """Nombre de lissages effectues sur la topographie.
241 Chaque lissage, effectue a l''aide d''une matrice de masse,
242 est conservatif.
243 Utilise lorsque les donnees de bathymetrie donnent des resultats
244 trop irreguliers apres interpolation.""",
245                 ang = """Number of smoothings on bottom topography.
246 Each smoothing is mass conservative.
247 To be used when interpolation of bathymetry on the mesh gives
248 very rough results.""",
249             ),
250 #           -----------------------------------
251             BOTTOM_SMOOTHINGS_AFTER_USER_MODIFICATIONS = SIMP(statut ='o',
252 #           -----------------------------------
253                 typ = bool,
254                 defaut = True,
255                 fr = """Indique si le nombre d eventuels lissages sur la topographie est
256 effectue apres (ou sinon avant) les modifications de topographie
257 apportees par l utilisateur.""",
258                 ang = """Indicates if the number of potential smoothings on bottom topography
259 is done after (or before otherwise) the topography modifications
260 implemented by the user.""",
261             ),
262 #           -----------------------------------
263             FORMATTED_DATA_FILE_1 = SIMP(statut ='f',
264 #           -----------------------------------
265                 typ = ('Fichier','All Files (*)'),
266                 defaut = '',
267                 fr = """Fichier de donnees formate mis a la disposition de
268 l''utilisateur.""",
269                 ang = """Formatted data file available to the user.""",
270             ),
271 #           -----------------------------------
272             FORMATTED_DATA_FILE_2 = SIMP(statut ='f',
273 #           -----------------------------------
274                 typ = ('Fichier','All Files (*)'),
275                 defaut = '',
276                 fr = """Fichier de donnees formate mis a la disposition de
277 l''utilisateur.""",
278                 ang = """Formatted data file available to the user.""",
279             ),
280 #           -----------------------------------
281             BINARY_DATA_FILE_1 = SIMP(statut ='f',
282 #           -----------------------------------
283                 typ = ('Fichier','All Files (*)'),
284                 defaut = '',
285                 fr = """Fichier de donnees code en binaire mis a la disposition
286 de l''utilisateur.""",
287                 ang = """Data file in binary mode available to the user.""",
288             ),
289 #           -----------------------------------
290             BINARY_DATA_FILE_1_FORMAT = SIMP(statut ='f',
291 #           -----------------------------------
292                 typ = 'TXM',
293                 into = ['SERAFIN','SERAFIND','MED'],
294                 defaut = 'SERAFIN',
295                 fr = """Format du \telkey{FICHIER DE DONNEES BINAIRE 1}.
296 Les valeurs possibles sont :
297 \begin{itemize}
298 \item SERAFIN : format standard simple precision pour \tel ;
299 \item SERAFIND: format standard double precision pour \tel ;
300 \item MED     : format MED double precision base sur HDF5.
301 \end{itemize}""",
302                 ang = """Format of the \telkey{BINARY DATA FILE 1}.
303 Possible choices are:
304 \begin{itemize}
305 \item SERAFIN : classical single precision format in \tel,
306 \item SERAFIND: classical double precision format in \tel,
307 \item MED     : MED double precision format based on HDF5.
308 \end{itemize}""",
309             ),
310 #           -----------------------------------
311             BINARY_DATA_FILE_2 = SIMP(statut ='f',
312 #           -----------------------------------
313                 typ = ('Fichier','All Files (*)'),
314                 defaut = '',
315                 fr = """Fichier de donnees code en binaire mis a la disposition
316 de l''utilisateur.""",
317                 ang = """Data file in binary mode available to the user.""",
318             ),
319 #           -----------------------------------
320             VALIDATION = SIMP(statut ='f',
321 #           -----------------------------------
322                 typ = bool,
323                 defaut = False,
324                 fr = """Option utilisee principalement pour le dossier de validation. Le
325 \telkey{FICHIER DE REFERENCE} est alors considere comme une
326 reference a laquelle on va comparer le calcul. La comparaison est
327 effectuee par le sous-programme \telfile{BIEF\_VALIDA}
328 qui peut etre une comparaison avec une solution exacte par exemple.""",
329                 ang = """This option is primarily used for the validation documents.
330 The \telkey{REFERENCE FILE} is then considered as a reference
331 which the computation is going to be compared with.
332 The comparison is done by the subroutine \telfile{BIEF\_VALIDA},
333 which can be modified so as to include, for example,
334 a comparison with an exact solution.""",
335             ),
336 #           -----------------------------------
337             b_VALIDATIONG = BLOC(condition="VALIDATION == True",
338 #           -----------------------------------
339 #               -----------------------------------
340                 REFERENCE_FILE = SIMP(statut ='f',
341 #               -----------------------------------
342                     typ = ('Fichier','All Files (*)'), max='**',
343                     defaut = '',
344                     fr = """Fichier de resultats de reference pour la validation.""",
345                     ang = """Binary-coded result file for validation.""",
346                 ),
347 #               -----------------------------------
348                 REFERENCE_FILE_FORMAT = SIMP(statut ='o',
349 #               -----------------------------------
350                     typ = 'TXM',
351                     into = ['SERAFIN','SERAFIND','MED'],
352                     defaut = 'SERAFIN',
353                     fr = """Format du \telkey{FICHIER DE REFERENCE}.
354 Les valeurs possibles sont :
355 \begin{itemize}
356 \item SERAFIN : format standard simple precision pour \tel ;
357 \item SERAFIND: format standard double precision pour \tel ;
358 \item MED     : format MED double precision base sur HDF5.
359 \end{itemize}""",
360                     ang = """Format of the \telkey{REFERENCE FILE}.
361 Possible choices are:
362 \begin{itemize}
363 \item SERAFIN : classical single precision format in \tel,
364 \item SERAFIND: classical double precision format in \tel,
365 \item MED     : MED double precision format based on HDF5.
366 \end{itemize}""",
367                 ),
368             ),
369         ),
370     ),
371 #   -----------------------------------
372     OUTPUT = FACT(statut='o',
373 #   -----------------------------------
374 #       -----------------------------------
375         RESULTS = FACT(statut='o',
376 #       -----------------------------------
377 #           -----------------------------------
378             RD_RESULT_FILE = SIMP(statut ='o',
379 #           -----------------------------------
380                 typ = ('Fichier','All Files (*)','Sauvegarde'),
381                 defaut = '',
382                 fr = """Nom du fichier dans lequel seront ecrits les resultats 3D du
383 calcul avec la periodicite donnee par le mot cle \telkey{PERIODE POUR
384 LES SORTIES GRAPHIQUES}.""",
385                 ang = """Name of the file into which the 3D results of the computation
386 are written with a periodicity given by the keyword
387 \telkey{GRAPHIC PRINTOUT PERIOD}.""",
388             ),
389 #           -----------------------------------
390             RD_RESULT_FILE_FORMAT = SIMP(statut ='o',
391 #           -----------------------------------
392                 typ = 'TXM',
393                 into = ['SERAFIN','SERAFIND','MED'],
394                 defaut = 'SERAFIN',
395                 fr = """Format du \telkey{FICHIER DES RESULTATS 3D}.
396 Les valeurs possibles sont :
397 \begin{itemize}
398 \item SERAFIN : format standard simple precision pour \tel ;
399 \item SERAFIND: format standard double precision pour \tel ;
400 \item MED     : format MED double precision base sur HDF5.
401 \end{itemize}""",
402                 ang = """Format of the \telkey{3D RESULT FILE}. Possible choices are:
403 \begin{itemize}
404 \item SERAFIN : classical single precision format in \tel,
405 \item SERAFIND: classical double precision format in \tel,
406 \item MED     : MED double precision format based on HDF5.
407 \end{itemize}""",
408             ),
409 #           -----------------------------------
410             ED_RESULT_FILE = SIMP(statut ='f',
411 #           -----------------------------------
412                 typ = ('Fichier','All Files (*)','Sauvegarde'),
413                 defaut = '',
414                 fr = """Nom du fichier dans lequel seront ecrits les resultats 2D du
415 calcul avec la periodicite donnee par le mot cle \telkey{PERIODE POUR
416 LES SORTIES GRAPHIQUES}.""",
417                 ang = """Name of the file into which the 2D results of the computation
418 are written with a periodicity given by the keyword
419 \telkey{GRAPHIC PRINTOUT PERIOD}.""",
420             ),
421 #           -----------------------------------
422             ED_RESULT_FILE_FORMAT = SIMP(statut ='f',
423 #           -----------------------------------
424                 typ = 'TXM',
425                 into = ['SERAFIN','SERAFIND','MED'],
426                 defaut = 'SERAFIN',
427                 fr = """Format du \telkey{FICHIER DES RESULTATS 2D}.
428 Les valeurs possibles sont :
429 \begin{itemize}
430 \item SERAFIN : format standard simple precision pour \tel ;
431 \item SERAFIND: format standard double precision pour \tel ;
432 \item MED     : format MED double precision base sur HDF5.
433 \end{itemize}""",
434                 ang = """Format of the \telkey{2D RESULT FILE}. Possible choices are:
435 \begin{itemize}
436 \item SERAFIN : classical single precision format in \tel,
437 \item SERAFIND: classical double precision format in \tel,
438 \item MED     : MED double precision format based on HDF5.
439 \end{itemize}""",
440             ),
441 #           -----------------------------------
442             RESULT_FILE_IN_LONGITUDE_LATITUDE = SIMP(statut ='f',
443 #           -----------------------------------
444                 typ = bool,
445                 defaut = True,
446                 fr = """Donne les coordonnees dans le fichier resultats en longitude-latitude
447 si le fichier de geometrie est aussi donne en longitude-latitude.""",
448                 ang = """Gives the coordinates of the result file in longitude-latitude
449 if the geometry file is also given in longitude-latitude.""",
450             ),
451 #           -----------------------------------
452             VARIABLES_FOR_3D_GRAPHIC_PRINTOUTS = SIMP(statut ='o',
453 #           -----------------------------------
454                 typ = 'TXM', min=0, max='**',
455                 into = ["velocity along x axis (m/s)","velocity along y axis (m/s)","velocity along z axis (m/s)","elevation z (m)","concentration for tracer 1","concentration for tracer 2","concentration for tracer 3","concentration for tracer 4","concentration for tracer 5","concentration for tracer 6","concentration for tracer 7","concentration for tracer 8","concentration for tracer 9","concentration for tracer 10","concentration for tracer 11","concentration for tracer 12","concentration for tracer 13","concentration for tracer 14","concentration for tracer 15","concentration for tracer 16","concentration for tracer 17","concentration for tracer 18","concentration for tracer 19","concentration for tracer 20","concentration for tracer 21","concentration for tracer 22","concentration for tracer 23","concentration for tracer 24","concentration for tracer 25","concentration for tracer 26","concentration for tracer 27","concentration for tracer 28","concentration for tracer 29","concentration for tracer 30","concentration for tracer 31","concentration for tracer 32","concentration for tracer 33","concentration for tracer 34","concentration for tracer 35","concentration for tracer 36","concentration for tracer 37","concentration for tracer 38","concentration for tracer 39","concentration for tracer 40","concentration for tracer 41","concentration for tracer 42","concentration for tracer 43","concentration for tracer 44","concentration for tracer 45","concentration for tracer 46","concentration for tracer 47","concentration for tracer 48","concentration for tracer 49","concentration for tracer 50","concentration for tracer 51","concentration for tracer 52","concentration for tracer 53","concentration for tracer 54","concentration for tracer 55","concentration for tracer 56","concentration for tracer 57","concentration for tracer 58","concentration for tracer 59","concentration for tracer 60","concentration for tracer 61","concentration for tracer 62","concentration for tracer 63","concentration for tracer 64","concentration for tracer 65","concentration for tracer 66","concentration for tracer 67","concentration for tracer 68","concentration for tracer 69","concentration for tracer 70","concentration for tracer 71","concentration for tracer 72","concentration for tracer 73","concentration for tracer 74","concentration for tracer 75","concentration for tracer 76","concentration for tracer 77","concentration for tracer 78","concentration for tracer 79","concentration for tracer 80","concentration for tracer 81","concentration for tracer 82","concentration for tracer 83","concentration for tracer 84","concentration for tracer 85","concentration for tracer 86","concentration for tracer 87","concentration for tracer 88","concentration for tracer 89","concentration for tracer 90","concentration for tracer 91","concentration for tracer 92","concentration for tracer 93","concentration for tracer 94","concentration for tracer 95","concentration for tracer 96","concentration for tracer 97","concentration for tracer 98","concentration for tracer 99","concentrations for tracers from 1 to 9","concentrations for tracers from 10 to 99","viscosity for U and V along x axis (m2/s)","viscosity for U and V along y axis (m2/s)","viscosity for U and V along z axis (m2/s)","viscosity for tracers along x axis (m2/s)","viscosity for tracers along y axis (m2/s)","viscosity for tracers along z axis (m2/s)","Richardson number in case of mixing length model","turbulent energie for k-epsilon model (J/kg)","dissipation of turbulent energie (W/kg)","dynamic pressure (multiplied by DT/RHO)","hydrostatic pressure (in Pascals)","relative density","wall distance","private variable 1","private variable 2","private variable 3","private variable 4","Stokes velocity along x axis (m/s)","Stokes velocity along y axis (m/s)","Stokes velocity along z axis (m/s)"],
456                 defaut = [],
457                 fr = """Noms des variables que l''utilisateur veut ecrire dans
458 le \telkey{FICHIER DES RESULTATS 3D}.
459 Le choix des separateurs est libre.
460 Les possibilites offertes sont les suivantes :
461 \begin{itemize}
462 \item U   : vitesse suivant l''axe des $x$ (m/s) ;
463 \item V   : vitesse suivant l''axe des $y$ (m/s) ;
464 \item W   : vitesse suivant l''axe des $z$ (m/s) ;
465 \item Z   : cote $z$ (m) ;
466 \item TAx : concentrations des traceurs ;
467 \item NUX : viscosite pour $U$ et $V$ suivant l''axe des $x$ (m$^2$/s) ;
468 \item NUY : viscosite pour $U$ et $V$ suivant l''axe des $y$ (m$^2$/s) ;
469 \item NUZ : viscosite pour $U$ et $V$ suivant l''axe des $z$ (m$^2$/s) ;
470 \item NAX : viscosites pour les traceurs suivant l''axe des $x$
471 (m$^2$/s) ;
472 \item NAY : viscosites pour les traceurs suivant l''axe des $y$
473 (m$^2$/s) ;
474 \item NAZ : viscosites pour les traceurs suivant l''axe des $z$
475 (m$^2$/s) ;
476 \item RI  : nombre de Richardson en cas de modele de longueur de
477 melange ;
478 \item K   : energie turbulente du modele k-epsilon (J/kg) ;
479 \item EPS : dissipation de l''energie turbulente (W/kg) ;
480 \item DP  : pression dynamique (multipliee par DT/RHO) ;
481 \item PH  : pression hydrostatique (en Pascals) ;
482 \item RHO : densite relative ;
483 \item P1  : variable privee 1 ;
484 \item P2  : variable privee 2 ;
485 \item P3  : variable privee 3 ;
486 \item P4  : variable privee 4 ;
487 \item US  : vitesse de Stokes suivant l''axe des $x$ (m/s) ;
488 \item VS  : vitesse de Stokes suivant l''axe des $y$ (m/s) ;
489 \item WS  : vitesse de Stokes suivant l''axe des $z$ (m/s).
490 \end{itemize}""",
491                 ang = """Names of variables to be written in the
492 \telkey{3D RESULT FILE}. Free choice of separator. You can ask for:
493 \begin{itemize}
494 \item U  : velocity along $x$ (m/s),
495 \item V  : velocity along $y$ (m/s),
496 \item W  : velocity along $z$ (m/s),
497 \item Z  : elevation $z$ (m),
498 \item TAx: concentration of tracers,
499 \item NUX: viscosity for $U$ and $V$ along $x$ (m$^2$/s),
500 \item NUY: viscosity for $U$ and $V$ along $y$ (m$^2$/s),
501 \item NUZ: viscosity for $U$ and $V$ along $z$ (m$^2$/s),
502 \item NAX: viscosity for tracers along $x$ (m$^2$/s),
503 \item NAY: viscosity for tracers along $y$ (m$^2$/s),
504 \item NAZ: viscosity for tracers along $z$ (m$^2$/s),
505 \item RI : Richardson number for mixing length model,
506 \item K  : turbulent kinetic energy for $k$-$\epsilon$ model (J/kg),
507 \item EPS: dissipation of turbulent kinetic energy (W/kg),
508 \item DP : dynamic pressure (multiplied by DT/RHO),
509 \item PH : hydrostatic pressure (Pa),
510 \item RHO: relative density,
511 \item P1 : private variable 1,
512 \item P2 : private variable 2,
513 \item P3 : private variable 3,
514 \item P4 : private variable 4,
515 \item US : Stokes velocity along $x$ axis (m/s),
516 \item VS : Stokes velocity along $y$ axis (m/s),
517 \item WS : Stokes velocity along $z$ axis (m/s).
518 \end{itemize}""",
519             ),
520 #           -----------------------------------
521             VARIABLES_FOR_2D_GRAPHIC_PRINTOUTS = SIMP(statut ='o',
522 #           -----------------------------------
523                 typ = 'TXM', min=0, max='**',
524                 into = ["depth averaged velocity along x axis (m/s)","depth averaged velocity along y axis (m/s)","celerity (m/s)","water depth (m)","free surface elevation (m)","bottom elevation (m)","concentration for tracer 1","concentration for tracer 2","concentration for tracer 3","concentration for tracer 4","concentration for tracer 5","concentration for tracer 6","concentration for tracer 7","concentration for tracer 8","concentration for tracer 9","concentration for tracer 10","concentration for tracer 11","concentration for tracer 12","concentration for tracer 13","concentration for tracer 14","concentration for tracer 15","concentration for tracer 16","concentration for tracer 17","concentration for tracer 18","concentration for tracer 19","concentration for tracer 20","concentration for tracer 21","concentration for tracer 22","concentration for tracer 23","concentration for tracer 24","concentration for tracer 25","concentration for tracer 26","concentration for tracer 27","concentration for tracer 28","concentration for tracer 29","concentration for tracer 30","concentration for tracer 31","concentration for tracer 32","concentration for tracer 33","concentration for tracer 34","concentration for tracer 35","concentration for tracer 36","concentration for tracer 37","concentration for tracer 38","concentration for tracer 39","concentration for tracer 40","concentration for tracer 41","concentration for tracer 42","concentration for tracer 43","concentration for tracer 44","concentration for tracer 45","concentration for tracer 46","concentration for tracer 47","concentration for tracer 48","concentration for tracer 49","concentration for tracer 50","concentration for tracer 51","concentration for tracer 52","concentration for tracer 53","concentration for tracer 54","concentration for tracer 55","concentration for tracer 56","concentration for tracer 57","concentration for tracer 58","concentration for tracer 59","concentration for tracer 60","concentration for tracer 61","concentration for tracer 62","concentration for tracer 63","concentration for tracer 64","concentration for tracer 65","concentration for tracer 66","concentration for tracer 67","concentration for tracer 68","concentration for tracer 69","concentration for tracer 70","concentration for tracer 71","concentration for tracer 72","concentration for tracer 73","concentration for tracer 74","concentration for tracer 75","concentration for tracer 76","concentration for tracer 77","concentration for tracer 78","concentration for tracer 79","concentration for tracer 80","concentration for tracer 81","concentration for tracer 82","concentration for tracer 83","concentration for tracer 84","concentration for tracer 85","concentration for tracer 86","concentration for tracer 87","concentration for tracer 88","concentration for tracer 89","concentration for tracer 90","concentration for tracer 91","concentration for tracer 92","concentration for tracer 93","concentration for tracer 94","concentration for tracer 95","concentration for tracer 96","concentration for tracer 97","concentration for tracer 98","concentration for tracer 99","TA concentrations for tracers from 1 to 9","TA concentrations for tracers from 10 to 99","Froude number","scalar discharge (m2/s)","discharge along x (m2/s)","discharge along y (m2/s)","norm of velocity (m/s)","wind along x axis (m/s)","wind along y axis (m/s)","atmospheric pressure (Pa)","friction coefficient","non erodible bottom elevation (m)","thickness of the sediment bed layer (m)","erosion rate (kg/m2/s)","deposition flux (kg/m2/s)","bed evolution","work array PRIVE 1","work array PRIVE 2","work array PRIVE 3","work array PRIVE 4","solid discharge (m2/s)","solid discharge along x (m2/s)","solid discharge along y (m2/s)","friction velocity (m/s)","maximum value of the free surface elevation (m)","time corresponding to this maximum elevation (s)","air temperature (degree C)","surface velocity along x axis (m/s)","surface velocity along y axis (m/s)","surface velocity along z axis (m/s)","magnitude of velocity at the surface (m/s)","TAi conc for tracers at the surface, i is the tracer number","TA concentrations for tracers at the surface from 1 to 9","TA concentrations for tracers at the surface from 10 to 99"],
525                 defaut = [],
526                 fr = """Noms des variables que l''utilisateur veut ecrire dans
527 le \telkey{FICHIER DES RESULTATS 2D}.
528 Chaque variable est representee par une lettre.
529 Le choix des separateurs est libre.
530 Les possibilites offertes sont les suivantes :
531 \begin{itemize}
532 \item U : vitesse moyenne suivant l''axe des x (m/s) ;
533 \item V : vitesse moyenne suivant l''axe des y (m/s) ;
534 \item C : celerite (m/s) ;
535 \item H : hauteur d''eau (m) ;
536 \item S : cote de surface libre (m) ;
537 \item B : cote du fond (m) ;
538 \item TAi : TAi concentrations des traceurs, i numero du traceur ;
539 \item TA* : TA concentrations des traceurs de 1 a 9 ;
540 \item TA** : TA concentrations des traceurs de 10 a 99 ;
541 \item F : nombre de Froude ;
542 \item Q : debit scalaire (m$^2$/s) ;
543 \item I : debit suivant x (m$^2$/s) ;
544 \item J : debit suivant y (m$^2$/s) ;
545 \item M : norme de la vitesse (m/s) ;
546 \item X : vent suivant l''axe des x (m/s) ;
547 \item Y : vent suivant l''axe des y (m/s) ;
548 \item P : pression atmospherique (Pa) ;
549 \item W : coefficient de frottement ;
550 \item RB : cote des fonds non erodables (m) ;
551 \item HD : epaisseur des depots frais (m) ;
552 \item EF : flux d''erosion (kg/m$^2$/s) ;
553 \item DF : probabilite de depot (kg/m$^2$/s) ;
554 \item DZF : evolution du lit ;
555 \item PRIVE1 : tableau de travail PRIVE 1 ;
556 \item PRIVE2 : tableau de travail PRIVE 2 ;
557 \item PRIVE3 : tableau de travail PRIVE 3 ;
558 \item PRIVE4 : tableau de travail PRIVE 4 ;
559 \item QS : debit solide (m$^2$/s) ;
560 \item QSX : debit solide suivant x (m$^2$/s) ;
561 \item QSY : debit solide suivant y (m$^2$/s) ;
562 \item US : vitesse de frottement (m/s) ;
563 \item MAXZ : valeur maximum de la cote de l eau au cours du calcul (m) ;
564 \item TMXZ : temps correspondant a ce niveau maximum (s) ;
565 \item TAIR : temperature de l air ($^{\circ}$C) ;
566 \item USURF : vitesse en surface suivant l''axe des x (m/s) ;
567 \item VSURF : vitesse en surface suivant l''axe des y (m/s) ;
568 \item WSURF : vitesse en surface suivant l''axe des z (m/s) ;
569 \item MSURF : norme de la vitesse en surface (m/s) ;
570 \item TASURFi : TAi conc des traceurs en surface, i numero du traceur ;
571 \item TASURF* : TA concentrations des traceurs en surface de 1 a 9 ;
572 \item TASURF** : TA concentrations des traceurs en surface de 10 a 99.
573 \end{itemize}""",
574                 ang = """Names of variables that may be written in the
575 \telkey{2D RESULT FILE}.
576 Every variable is represented by a group of letters with
577 any separator between them , ; or blank
578 possibilities are the following:
579 \begin{itemize}
580 \item U: depth averaged velocity along x axis (m/s),
581 \item V: depth averaged velocity along y axis (m/s),
582 \item C: celerity (m/s),
583 \item H: water depth (m),
584 \item S: free surface elevation (m),
585 \item B: bottom elevation (m),
586 \item TAi: TAi concentrations for tracers, i is the tracer number,
587 \item TA*: TA concentrations for tracers from 1 to 9,
588 \item TA**: TA concentrations for tracers from 10 to 99,
589 \item F: Froude number,
590 \item Q: scalar discharge (m$^2$/s),
591 \item I: discharge along x (m$^2$/s),
592 \item J: discharge along y (m$^2$/s),
593 \item M: norm of velocity (m/s),
594 \item X: wind along x axis (m/s),
595 \item Y: wind along y axis (m/s),
596 \item P: atmospheric pressure (Pa),
597 \item W: friction coefficient,
598 \item RB: non erodible bottom elevation (m),
599 \item HD: thickness of the fresh deposits (m),
600 \item EF: erosion rate (kg/m$^2$/s),
601 \item DF: probability of deposition (kg/m$^2$/s),
602 \item DZF : bed evolution,
603 \item PRIVE1: work array PRIVE 1,
604 \item PRIVE2: work array PRIVE 2,
605 \item PRIVE3: work array PRIVE 3,
606 \item PRIVE4: work array PRIVE 4,
607 \item QS: solid discharge (m$^2$/s),
608 \item QSX: solid discharge along x (m$^2$/s),
609 \item QSY: solid discharge along y (m$^2$/s),
610 \item US: friction velocity (m/s),
611 \item MAXZ: maximum value of the free surface
612 elevation during the computation (m),
613 \item TMXZ: time corresponding to this maximum elevation (s),
614 \item TAIR: air temperature ($^{\circ}$C),
615 \item USURF: velocity along x axis at the surface (m/s),
616 \item VSURF: velocity along y axis at the surface (m/s),
617 \item WSURF: velocity along z axis at the surface (m/s),
618 \item MSURF: magnitude of velocity at the surface (m/s),
619 \item TASURFi: TAi conc for tracers at the surface, i is the tracer
620 number,
621 \item TASURF*: TA conc for tracers at the surface from 1 to 9,
622 \item TASURF**: TA conc for tracers at the surface from 10 to 99.
623 \end{itemize}""",
624             ),
625 #           -----------------------------------
626             GRAPHIC_PRINTOUT_PERIOD = SIMP(statut ='o',
627 #           -----------------------------------
628                 typ = 'I',
629                 defaut = 1,
630                 fr = """Determine la periode en nombre de pas de temps d''impression des
631 \telkey{VARIABLES POUR LES SORTIES GRAPHIQUES 2D ou 3D}
632 (voir ces mot-cles) dans le \telkey{FICHIER DES RESULTATS 2D ou 3D}.""",
633                 ang = """Determines, in number of time steps, the printout period for the
634 \telkey{VARIABLES FOR 2D (or 3D) GRAPHIC PRINTOUTS}
635 in the \telkey{2D or 3D RESULT FILE}.""",
636             ),
637 #           -----------------------------------
638             NUMBER_OF_FIRST_TIME_STEP_FOR_GRAPHIC_PRINTOUTS = SIMP(statut ='o',
639 #           -----------------------------------
640                 typ = 'I',
641                 defaut = 0,
642                 fr = """Determine le numero de pas de temps a partir duquel debute
643 l''ecriture des resultats dans le \telkey{FICHIER DES RESULTATS 2D}
644 ou \telkey{3D}''.""",
645                 ang = """Determines the number of time steps after which the results
646 are first written into the \telkey{2D} or \telkey{3D RESULT FILE}.""",
647             ),
648 #           -----------------------------------
649             NUMBER_OF_PRIVATE_ARRAYS = SIMP(statut ='o',
650 #           -----------------------------------
651                 typ = 'I',
652                 defaut = 0,
653                 fr = """Nombre de tableaux mis a disposition de l utilisateur.""",
654                 ang = """Number of arrays for own user programming.""",
655             ),
656 #           -----------------------------------
657             NUMBER_OF_2D_PRIVATE_ARRAYS = SIMP(statut ='f',
658 #           -----------------------------------
659                 typ = 'I',
660                 defaut = 0,
661                 fr = """Nombre de tableaux 2D mis a disposition de l utilisateur
662 dans le bloc \telfile{PRIVE2D}. Il doit etre inferieur ou egal a 4.""",
663                 ang = """Number of 2D arrays for own user programming
664 in block \telfile{PRIVE2D}. It has to be lower or equal to 4.""",
665             ),
666 #           -----------------------------------
667             NAMES_OF_2D_PRIVATE_VARIABLES = SIMP(statut ='f',
668 #           -----------------------------------
669                 typ = 'TXM', min= 4, max= 4,
670                 fr = """Noms des variables dans les tableaux prives 2D en 32
671 caracteres, 16 pour le nom 16 pour l''unite. Elles seront lues dans le
672 \telkey{FICHIER DE GEOMETRIE} si elles y sont.
673 Nombre maximum de 4 noms.""",
674                 ang = """Name of variables in 2D private arrays in 32 characters,
675 16 for the name, 16 for the unit. If present, will be read
676 in the \telkey{GEOMETRY FILE}. Maximum number of 4 names.""",
677             ),
678 #           -----------------------------------
679             FORMATTED_RESULTS_FILE = SIMP(statut ='f',
680 #           -----------------------------------
681                 typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
682                 defaut = '',
683                 fr = """Fichier de resultats formate mis a la disposition de
684 l''utilisateur.""",
685                 ang = """Formatted file of results available to the user.""",
686             ),
687 #           -----------------------------------
688             BINARY_RESULTS_FILE = SIMP(statut ='f',
689 #           -----------------------------------
690                 typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
691                 defaut = '',
692                 fr = """Fichier de resultats code en binaire mis a la disposition
693 de l''utilisateur.""",
694                 ang = """Additional binary-coded result file available to the user.""",
695             ),
696         ),
697 #       -----------------------------------
698         LISTING = FACT(statut='o',
699 #       -----------------------------------
700 #           -----------------------------------
701             LISTING_PRINTOUT = SIMP(statut ='o',
702 #           -----------------------------------
703                 typ = bool,
704                 defaut = True,
705                 fr = """Sortie des resultats sur support papier ou a l ecran.
706 Si l''on met NON le listing ne contient que l''entete et la mention
707 FIN NORMALE DU PROGRAMME. Commande a eviter.""",
708                 ang = """Result printout on hard copy.
709 When NO is selected, the listing only includes the heading and the
710 phrase "NORMAL END OF PROGRAM".
711 In addition, the options \telkey{MASS-BALANCE} and
712 \telkey{VALIDATION} are inhibited. Not recommended for use.""",
713             ),
714 #           -----------------------------------
715             MASS_BALANCE = SIMP(statut ='o',
716 #           -----------------------------------
717                 typ = bool,
718                 defaut = False,
719                 fr = """Determine si l''on effectue ou non le bilan de masse
720 sur le domaine.
721 Cette procedure calcule a chaque pas de temps :
722 \begin{itemize}
723 \item les flux aux entrees et sorties du domaine ;
724 \item le flux global a travers l''ensemble des parois du domaine
725 (liquides ou solides) ;
726 \item l''erreur relative sur la masse pour ce pas de temps.
727 \end{itemize}
728 En fin de listing, on trouve l''erreur relative sur la masse pour
729 l''ensemble du calcul.
730 Il ne s''agit que d''un calcul indicatif car il n''existe pas
731 d''expression compatible du debit en formulation c,u,v.""",
732                 ang = """Determines whether a check of the mass-balance over
733 the domain is done or not.
734 This procedures computes the following at each time step:
735 \begin{itemize}
736 \item the domain inflows and outflows,
737 \item the overall flow across all the boundaries,
738 \item the relative error in the mass for that time step.
739 \end{itemize}
740 The relative error in the mass over the whole computation can be found
741 at the end of the listing.""",
742             ),
743 #           -----------------------------------
744             INFORMATION_ABOUT_MASS_BALANCE_FOR_EACH_LISTING_PRINTOUT = SIMP(statut ='o',
745 #           -----------------------------------
746                 typ = bool,
747                 defaut = True,
748                 fr = """Donne a \telkey{PERIODE POUR LES SORTIES LISTING}
749 une information sur le bilan de masse.""",
750                 ang = """Gives the information about mass-balance
751 at every \telkey{LISTING PRINTOUT PERIOD}.""",
752             ),
753 #           -----------------------------------
754             LISTING_PRINTOUT_PERIOD = SIMP(statut ='o',
755 #           -----------------------------------
756                 typ = 'I',
757                 defaut = 1,
758                 fr = """Determine la periode en nombre de pas de temps d''impression des
759 VARIABLES A IMPRIMER. Pour la mise au point,
760 il faut savoir que la sortie des resultats est effectuee
761 systematiquement sur le listing.""",
762                 ang = """Determines, in number of time steps, the printout period of the
763 VARIABLES TO BE PRINTED.
764 The results are systematically printed out on the listing file.""",
765             ),
766 #           -----------------------------------
767             NUMBER_OF_FIRST_TIME_STEP_FOR_LISTING_PRINTOUTS = SIMP(statut ='f',
768 #           -----------------------------------
769                 typ = 'I',
770                 defaut = 0,
771                 fr = """Determine le numero de pas de temps a partir duquel debute
772 l''ecriture des resultats dans le listing.""",
773                 ang = """Determines the number of time steps after which the results
774 are first written into the listing.""",
775             ),
776         ),
777     ),
778 #   -----------------------------------
779     RESTART = FACT(statut='o',
780 #   -----------------------------------
781 #       -----------------------------------
782         COMPUTATION_CONTINUED = SIMP(statut ='o',
783 #       -----------------------------------
784             typ = bool,
785             defaut = False,
786             fr = """Determine si le calcul en cours est independant de tout autre
787 resultat ou est une reprise effectuee a partir du resultat d''un calcul
788 precedent.
789 \begin{itemize}
790 \item NON : Il s''agit du premier passage pour ce calcul et il est
791 necessaire de definir un jeu complet de conditions initiales
792 \item OUI : Il s''agit d''une reprise de calcul :
793 les conditions initiales sont constituees par le dernier pas de
794 temps du \telkey{FICHIER DU CALCUL PRECEDENT} du fichier des parametres
795 utilise pour soumettre le calcul.
796 \end{itemize}
797 Par contre, l''ensemble des donnees du fichier des parametres
798 peuvent etre redefinies, ce qui offre la possibilite de changer
799 par exemple, le pas de temps, le modele de turbulence, le
800 frottement, d''ajouter ou retirer un traceur\ldots\\
801 De meme, il est necessaire de definir des conditions aux limites
802 (sous-programme \telfile{BORD3D} ou valeurs placees dans le fichier des
803 parametres), qui peuvent egalement etre modifiees.\\
804 Afin d''obtenir une suite de calcul parfaite, l''utilisateur doit
805 activer le \telkey{MODE SUITE} dans un calcul precedent afin de generer
806 le fichier a partir duquel le calcul suivant commence
807 (\telkey{FICHIER POUR SUITE}).""",
808             ang = """Determines whether the computation under way is independent
809 or is following an earlier result.
810 \begin{itemize}
811 \item NO: It is the first run for this computation and a whole set of
812 initial conditions should be defined,
813 \item YES: It follows a former computation:
814 the initial conditions consist in the last time step of the
815 \telkey{PREVIOUS COMPUTATION FILE} defined in the steering file
816 used for submitting the computation.
817 \end{itemize}
818 All the data from the steering file may be defined once again, which
819 provides an opportunity to change, for example, the time step,
820 the turbulence model, the friction, to add or remove a tracer\ldots\\
821 It is also possible to define new boundary conditions
822 (in the subroutine \telfile{BORD3D} or values defined
823 in the steering file).\\
824 In order to get a perfect continued computation, the user has to
825 activate the \telkey{RESTART MODE} in a previous computation to generate
826 the file from which the following computation starts
827 (\telkey{RESTART FILE}).""",
828         ),
829 #       -----------------------------------
830         b_COMPUTATION_CONTINUEDG = BLOC(condition="COMPUTATION_CONTINUED == True",
831 #       -----------------------------------
832 #           -----------------------------------
833             PREVIOUS_COMPUTATION_FILE = SIMP(statut ='o',
834 #           -----------------------------------
835                 typ = ('Fichier','All Files (*)'),
836                 defaut = '',
837                 fr = """Nom d''un fichier contenant les resultats d''un calcul precedent
838 realise sur le meme maillage et dont le dernier pas de temps enregistre
839 va fournir les conditions initiales pour une suite de calcul.
840 Dans le cas d''une suite de calcul que l''on souhaite parfaite,
841 le \telkey{FICHIER DU CALCUL PRECEDENT} doit etre le
842 \telkey{FICHIER POUR SUITE} du dernier calcul, ce dernier fichier
843 etant alors un fichier de sortie du dernier calcul.
844 Le \telkey{FORMAT DU FICHIER DU CALCUL PRECEDENT} et le
845 \telkey{FORMAT DU FICHIER POUR SUITE} doivent alors etre mis a
846  ''SERAFIND'' ou ''MED''.""",
847                 ang = """Name of a file containing the results of an earlier computation
848 which was made on the same mesh. The last recorded time step will
849 provide the initial conditions for the new computation.
850 In case of a perfect continued computation, the
851 \telkey{PREVIOUS COMPUTATION FILE} has to be the \telkey{RESTART FILE}
852 of the last computation.
853 This last file is then an output file of the last computation.
854 The \telkey{PREVIOUS COMPUTATION FILE FORMAT} and the
855 \telkey{RESTART FILE FORMAT} have to be set with ''SERAFIND''
856 or ''MED''.""",
857             ),
858 #           -----------------------------------
859             PREVIOUS_COMPUTATION_FILE_FORMAT = SIMP(statut ='o',
860 #           -----------------------------------
861                 typ = 'TXM',
862                 into = ['SERAFIN','SERAFIND','MED'],
863                 defaut = 'SERAFIN',
864                 fr = """Format du \telkey{FICHIER DU CALCUL PRECEDENT}.
865 Les valeurs possibles sont :
866 \begin{itemize}
867 \item SERAFIN : format standard simple precision pour \tel ;
868 \item SERAFIND: format standard double precision pour \tel ;
869 \item MED     : format MED double precision base sur HDF5.
870 \end{itemize}""",
871                 ang = """Format of the \telkey{PREVIOUS COMPUTATION FILE}.
872 Possible choices are:
873 \begin{itemize}
874 \item SERAFIN : classical single precision format in \tel,
875 \item SERAFIND: classical double precision format in \tel,
876 \item MED     : MED double precision format based on HDF5.
877 \end{itemize}""",
878             ),
879 #           -----------------------------------
880             RECORD_NUMBER_FOR_RESTART = SIMP(statut ='f',
881 #           -----------------------------------
882                 typ = 'I',
883                 defaut = 0,
884                 fr = """En cas de suite de calcul, numero de l''enregistrement
885 de depart dans le fichier du calcul precedent. 0 signifie
886 que l''on prend le dernier enregistrement.""",
887                 ang = """In case of \telkey{COMPUTATION CONTINUED} = YES, record number
888 to start from in the \telkey{PREVIOUS COMPUTATION FILE}.
889 0 means that the last record is taken.""",
890             ),
891         ),
892 #       -----------------------------------
893         INITIAL_TIME_SET_TO_ZERO = SIMP(statut ='f',
894 #       -----------------------------------
895             typ = bool,
896             defaut = False,
897             fr = """Remet le temps a zero en cas de suite de calcul.""",
898             ang = """Initial time set to zero in case of restart.""",
899         ),
900 #       -----------------------------------
901         RESTART_MODE = SIMP(statut ='f',
902 #       -----------------------------------
903             typ = bool,
904             defaut = False,
905             fr = """Declenche le remplissage du
906 \telkey{FICHIER POUR SUITE}, qui permet une suite de calcul
907 parfaite, contrairement au \telkey{FICHIER DES RESULTATS 3D}.""",
908             ang = """Triggers the filling of the \telkey{RESTART FILE},
909 which ensures a perfect restart of a computation,
910 unlike using the \telkey{3D RESULT FILE}.""",
911         ),
912 #       -----------------------------------
913         b_RESTART_MODEG = BLOC(condition="RESTART_MODE == True",
914 #       -----------------------------------
915 #           -----------------------------------
916             RESTART_FILE = SIMP(statut ='f',
917 #           -----------------------------------
918                 typ = ('Fichier','All Files (*)','Sauvegarde'),
919                 defaut = '',
920                 fr = """Nom du fichier dans lequel seront ecrits les resultats du
921 dernier calcul pour obtenir une suite de calcul parfaite.
922 C''est donc un fichier de sortie pour le calcul en cours,
923 qui servira de fichier d''entree lors de la suite de calcul que l''on
924 souhaite parfaite (le mot-cle \telkey{FICHIER DU CALCUL PRECEDENT}
925 est alors utilise).
926 Le \telkey{FORMAT DU FICHIER POUR SUITE} et le
927 \telkey{FORMAT DU FICHIER DU CALCUL PRECEDENT} doivent alors etre mis a
928  ''SERAFIND'' ou ''MED''.""",
929                 ang = """Name of the file into which the last computation results shall
930 be written in order to get a perfect continued computation.
931 It is then an output file for the current computation,
932 which will be used as an input file when a continued computation
933 is expected to be perfect (the keyword
934 \telkey{PREVIOUS COMPUTATION FILE} is then used).
935 The \telkey{RESTART FILE FORMAT} and the
936 \telkey{PREVIOUS COMPUTATION FILE FORMAT} have to be set with
937  ''SERAFIND'' or ''MED''.""",
938             ),
939 #           -----------------------------------
940             RESTART_FILE_FORMAT = SIMP(statut ='f',
941 #           -----------------------------------
942                 typ = 'TXM',
943                 into = ['SERAFIN','SERAFIND','MED'],
944                 defaut = 'SERAFIND',
945                 fr = """Format du \telkey{FICHIER POUR SUITE}.
946 Les valeurs possibles sont :
947 \begin{itemize}
948 \item SERAFIN : format standard simple precision pour \tel ;
949 \item SERAFIND: format standard double precision pour \tel ;
950 \item MED     : format MED double precision base sur HDF5.
951 \end{itemize}
952 Seul les formats double precision assurent une suite parfaite.""",
953                 ang = """Format of the \telkey{RESTART FILE}.
954 Possible choices are:
955 \begin{itemize}
956 \item SERAFIN : classical single precision format in \tel,
957 \item SERAFIND: classical double precision format in \tel,
958 \item MED     : MED double precision format based on HDF5.
959 \end{itemize}
960 Only double precision formats ensure a perfect restart.""",
961             ),
962         ),
963 #       -----------------------------------
964         ED_CONTINUATION = SIMP(statut ='f',
965 #       -----------------------------------
966             typ = bool,
967             defaut = False,
968             fr = """Permet d''utiliser un \telkey{FICHIER DES RESULTATS 2D}
969 stocke dans le \telkey{FICHIER POUR SUITE 2D} comme fichier de
970 conditions initiales.""",
971             ang = """Enables to use a \telkey{2D RESULT FILE} in
972 \telkey{FILE FOR 2D CONTINUATION} as initial conditions file.""",
973         ),
974 #       -----------------------------------
975         b_ED_CONTINUATIONG = BLOC(condition="ED_CONTINUATION == True",
976 #       -----------------------------------
977 #           -----------------------------------
978             FILE_FOR_2D_CONTINUATION = SIMP(statut ='f',
979 #           -----------------------------------
980                 typ = ('Fichier','All Files (*)'),
981                 defaut = '',
982                 fr = """Fichier utilise en cas de suite 2D.""",
983                 ang = """File to be used in case of 2D continuation.""",
984             ),
985 #           -----------------------------------
986             FILE_FOR_2D_CONTINUATION_FORMAT = SIMP(statut ='f',
987 #           -----------------------------------
988                 typ = 'TXM',
989                 into = ['SERAFIN','SERAFIND','MED'],
990                 defaut = 'SERAFIN',
991                 fr = """Format du \telkey{FICHIER POUR SUITE 2D}.
992 Les valeurs possibles sont :
993 \begin{itemize}
994 \item SERAFIN : format standard simple precision pour \tel ;
995 \item SERAFIND: format standard double precision pour \tel ;
996 \item MED     : format MED double precision base sur HDF5.
997 \end{itemize}""",
998                 ang = """Format of the \telkey{FILE FOR 2D CONTINUATION}.
999 Possible choices are:
1000 \begin{itemize}
1001 \item SERAFIN : classical single precision format in \tel,
1002 \item SERAFIND: classical double precision format in \tel,
1003 \item MED     : MED double precision format based on HDF5.
1004 \end{itemize}""",
1005             ),
1006         ),
1007     ),
1008 )
1009 # -----------------------------------------------------------------------
1010 GENERAL_PARAMETERS = PROC(nom= "GENERAL_PARAMETERS",op = None,
1011 # -----------------------------------------------------------------------
1012 #   -----------------------------------
1013     DEBUGGER = SIMP(statut ='o',
1014 #   -----------------------------------
1015         typ = 'I',
1016         defaut = 0,
1017         fr = """Pour imprimer la sequence des appels, mettre 1.""",
1018         ang = """If 1, additional writings will be printed in the listing,
1019 in particular the calls of subroutines.""",
1020     ),
1021 #   -----------------------------------
1022     TIME = FACT(statut='o',
1023 #   -----------------------------------
1024 #       -----------------------------------
1025         TIME_STEP = SIMP(statut ='o',
1026 #       -----------------------------------
1027             typ = 'R',
1028             defaut = 1.,
1029             fr = """Definit le pas de temps en secondes.
1030 Remarque : Pour une bonne precision, il est souhaitable de choisir
1031 le pas de temps de telle sorte que le nombre de Courant de propagation
1032 soit inferieur a 2, voire 3.
1033 Ceci peut etre realisable en hydraulique fluviale, mais ne l''est
1034 pratiquement jamais en hydraulique maritime ou l''on peut atteindre
1035 des valeurs de 50.""",
1036             ang = """Specifies the time step in seconds.""",
1037         ),
1038 #       -----------------------------------
1039         NUMBER_OF_TIME_STEPS = SIMP(statut ='o',
1040 #       -----------------------------------
1041             typ = 'I',
1042             defaut = 1,
1043             fr = """Definit le nombre de pas de temps effectues lors de
1044 l''execution du code.""",
1045             ang = """Specifies the number of time steps performed when running
1046 the code.""",
1047         ),
1048 #       -----------------------------------
1049         DURATION = SIMP(statut ='o',
1050 #       -----------------------------------
1051             typ = 'R',
1052             defaut = 0.,
1053             fr = """Duree de la simulation en secondes. Alternative au parametre
1054 \telkey{NOMBRE DE PAS DE TEMPS}.
1055 On en deduit le nombre de pas de temps en prenant l''entier le
1056 plus proche de (duree du calcul/pas de temps).
1057 Si le \telkey{NOMBRE DE PAS DE TEMPS} est aussi donne,
1058 on prend la plus grande valeur.""",
1059             ang = """Sets the duration of the simulation in seconds.
1060 May be used instead of the parameter \telkey{NUMBER OF TIME STEPS}.
1061 The nearest integer to (duration/time step) is taken.
1062 If \telkey{NUMBER OF TIME STEPS} is also given,
1063 the greater value is taken.""",
1064         ),
1065 #       -----------------------------------
1066         ORIGINAL_DATE_OF_TIME = SIMP(statut ='o',
1067 #       -----------------------------------
1068             typ = 'I', min= 3, max= 3,
1069             defaut = [1900,1,1],
1070             fr = """Permet de fixer la date d''origine des temps du modele lorsque
1071 la maree est prise en compte (force generatrice de la maree et/ou les
1072 conditions aux limites de maritimes.
1073 Egalement utilise pour les flotteurs,
1074 les echanges thermiques avec atmosphere, le chainage avec DELWAQ.""",
1075             ang = """Enables to set the date of the time origin of the model when
1076 taking into account of the tide (tide generator force and/or the tidal
1077 boundary conditions).
1078 Also used with drogues, heat exchange with atmosphere,
1079 chaining with DELWAQ.""",
1080         ),
1081 #       -----------------------------------
1082         ORIGINAL_HOUR_OF_TIME = SIMP(statut ='o',
1083 #       -----------------------------------
1084             typ = 'I', min= 3, max= 3,
1085             defaut = [0,0,0],
1086             fr = """Permet de fixer l''heure d''origine des temps du modele lorsque
1087 la maree est prise en compte (force generatrice de la maree et/ou les
1088 conditions aux limites de maritimes.
1089 Egalement utilise pour les flotteurs,
1090 les echanges thermiques avec atmosphere, en chainage avec DELWAQ.""",
1091             ang = """Enables to set the time of the time origin of the model when
1092 taking into account of the tide (tide generator force and/or the tidal
1093 boundary conditions).
1094 Also used with drogues, heat exchange with atmosphere,
1095 chaining with DELWAQ.""",
1096         ),
1097     ),
1098 #   -----------------------------------
1099     LOCATION = FACT(statut='o',
1100 #   -----------------------------------
1101 #       -----------------------------------
1102         SPHERICAL_COORDINATES = SIMP(statut ='o',
1103 #       -----------------------------------
1104             typ = bool,
1105             defaut = False,
1106             fr = """Choix des coordonnees spheriques pour la realisation du calcul
1107 (pour les grands domaines de calcul).
1108 Attention : cette option est etroitement liee au maillage qui doit avoir
1109 ete saisi sur une carte marine en projection de Mercator. Il faut de
1110 plus relever sur la carte la \telkey{LATITUDE DU POINT ORIGINE}
1111 qui correspond dans le maillage a l''ordonnee $y$ = 0.""",
1112             ang = """Selection of spherical coordinates to perform the computation
1113 (for large computation domains).
1114 Warning: this option is closely related to the mesh that should have
1115 been entered onto a nautical chart drawn as per Mercator projection
1116 The \telkey{LATITUDE OF ORIGIN POINT}, which corresponds to
1117 ordinate $y$ = 0 in the mesh, must moreover be given.""",
1118         ),
1119 #       -----------------------------------
1120         SPATIAL_PROJECTION_TYPE = SIMP(statut ='o',
1121 #       -----------------------------------
1122             typ = 'TXM',
1123             into = ["CARTESIAN, NOT GEOREFERENCED","MERCATOR","LATITUDE LONGITUDE"],
1124             defaut = "MERCATOR",
1125             fr = """Permet de specifier le type de projection spatiale utilisee dans
1126 le cas de l''utilisation des coordonnees spheriques par exemple.
1127 Les choix possibles sont :
1128 \begin{itemize}
1129 \item 1 : Lambert Cartesien non georeference ;
1130 \item 2 : Mercator ;
1131 \item 3 : Latitude/longitude (exprimees en degres).
1132 \end{itemize}
1133 Option 2 ou 3 obligatoire pour les coordonnees spheriques.
1134 Option 3 : latitude et longitude en degres !
1135 Dans le cas de l''option 3, \telemac{3d} convertit les informations
1136 latitude/longitude a l''aide de la projection de Mercator.""",
1137             ang = """Specifies the type of spatial projection used
1138 (for example when using spherical coordinates).
1139 Possible choices are:
1140 \begin{itemize}
1141 \item 1: Cartesian, not georeferenced,
1142 \item 2: Mercator,
1143 \item 3: latitude/longitude (in degrees).
1144 \end{itemize}
1145 Option 2 or 3 mandatory for spherical coordinates. Option 3: latitude
1146 and longitude in degrees! When using option 3, the coordinates are
1147 automatically
1148 treated by \telemac{3d} using Mercator projection.""",
1149         ),
1150 #       -----------------------------------
1151         LATITUDE_OF_ORIGIN_POINT = SIMP(statut ='o',
1152 #       -----------------------------------
1153             typ = 'R',
1154             defaut = 0.,
1155             fr = """Donne la valeur de la latitude du point origine du maillage
1156 (pour la projection de Mercator, voir le mot cle
1157 \telkey{SYSTEME GEOGRAPHIQUE}).
1158 Egalement utilise pour les echanges thermiques avec l atmosphere.""",
1159             ang = """Gives the value of the latitude of the origin point of the
1160 mesh (for the Mercator projection, see the keyword
1161 \telkey{GEOGRAPHIC SYSTEM}).
1162 Also used for heat exchange with atmosphere.""",
1163         ),
1164 #       -----------------------------------
1165         LONGITUDE_OF_ORIGIN_POINT = SIMP(statut ='o',
1166 #       -----------------------------------
1167             typ = 'R',
1168             defaut = 0.,
1169             fr = """Donne la valeur de la longitude du point origine du maillage
1170 (pour la projection de Mercator, voir le mot cle
1171 \telkey{SYSTEME GEOGRAPHIQUE}).
1172 Egalement utilise pour la force generatrice de la maree,
1173 echanges thermiques avec l atmosphere.""",
1174             ang = """Gives the value of the longitude of the origin point of the
1175 mesh (for the Mercator projection, see the keyword
1176 \telkey{GEOGRAPHIC SYSTEM}).
1177 Also used for tide generating force, heat exchange with atmosphere.""",
1178         ),
1179 #       -----------------------------------
1180         NORTH = SIMP(statut ='f',
1181 #       -----------------------------------
1182             typ = 'R',
1183             defaut = 0.,
1184             fr = """Angle que fait le nord,
1185 dans le sens trigonometrique, avec L, axe Oy. Lu mais non utilise.""",
1186             ang = """Angle of North, counted counter-clockwise, with Oy. Read but not used.""",
1187         ),
1188     ),
1189 )
1190 # -----------------------------------------------------------------------
1191 VERTICAL = PROC(nom= "VERTICAL",op = None,
1192 # -----------------------------------------------------------------------
1193 #   -----------------------------------
1194     NUMBER_OF_HORIZONTAL_LEVELS = SIMP(statut ='o',
1195 #   -----------------------------------
1196         typ = 'I',
1197         defaut = 2,
1198         fr = """Definit le nombre de plans du maillage entre le fond et la
1199 surface. Vaut au moins 2.""",
1200         ang = """Gives the number of planes from bottom to free surface. Must
1201 be at least 2.""",
1202     ),
1203 #   -----------------------------------
1204     MESH_TRANSFORMATION = SIMP(statut ='o',
1205 #   -----------------------------------
1206         typ = 'I',
1207         defaut = 1,
1208         fr = """Permet que specifier la methode de repartition des plans
1209 verticaux du maillage. Les choix possibles sont :
1210 \begin{itemize}
1211 \item 0 : utilisateur (sous-programme \telfile{CALCOT} a programmer) ;
1212 \item 1 : sigma ;
1213 \item 2 : zstar ;
1214 \item 3 : plans fixes ;
1215 \item 5 : adaptatif.
1216 \end{itemize}
1217 Ce mot-clef doit etre coherent avec le sous-programme
1218 \telfile{CONDIM}.""",
1219         ang = """Specifies the distribution of vertical planes of the mesh.
1220 Possible choices are:
1221 \begin{itemize}
1222 \item 0: user defined (then subroutine \telfile{CALCOT} to be
1223 implemented),
1224 \item 1: sigma,
1225 \item 2: zstar,
1226 \item 3: horizontal fixed planes,
1227 \item 5: adaptive mesh.
1228 \end{itemize}
1229 This keyword must comply with what is done in \telkey{CONDIM}
1230 subroutine.""",
1231     ),
1232 #   -----------------------------------
1233     MINIMUM_VOLUME_OF_3D_ELEMENTS = SIMP(statut ='o',
1234 #   -----------------------------------
1235         typ = 'R',
1236         defaut = 1.E-6,
1237         fr = """Volume minimal des elements 3D exprime en m$^3$.""",
1238         ang = """Minimum volume of 3D elements in m$^3$.""",
1239     ),
1240 #   -----------------------------------
1241     MINIMUM_DISTANCE_BETWEEN_PLANES_CLOSE_TO_THE_BOTTOM = SIMP(statut ='o',
1242 #   -----------------------------------
1243         typ = 'R',
1244         defaut = 0.2,
1245         fr = """Distance minimale entre plans pres du fond.
1246 Seulement pour les plans de type \telfile{TRANSF\_PLANE\%I(...)} = 3.""",
1247         ang = """Minimum distance between planes close to the bottom.
1248 Only for planes of type \telfile{TRANSF\_PLANE\%I(...)} = 3.""",
1249     ),
1250 #   -----------------------------------
1251     MINIMUM_DISTANCE_BETWEEN_PLANES_CLOSE_TO_THE_FREE_SURFACE = SIMP(statut ='o',
1252 #   -----------------------------------
1253         typ = 'R',
1254         defaut = 0.2,
1255         fr = """Distance minimale entre plans pres de la surface libre.
1256 Seulement pour les plans de type \telfile{TRANSF\_PLANE\%I(...)} = 3.""",
1257         ang = """Minimum distance between planes close to the free surface.
1258 Only for planes of type \telfile{TRANSF\_PLANE\%I(...)} = 3.""",
1259     ),
1260 #   -----------------------------------
1261     THRESHOLD_HEIGHT_BEFORE_CRUSHED_ELEMENTS = SIMP(statut ='o',
1262 #   -----------------------------------
1263         typ = 'R',
1264         defaut = 0.,
1265         fr = """Hauteur minimale sous laquelle les elements 3D sont traites comme
1266 ecrases.
1267 Ce n est pas fait pour le plan de la surface libre.""",
1268         ang = """Minimum height below which 3D elements are treated as crushed.
1269 This is not done for the free surface plane.""",
1270     ),
1271 #   -----------------------------------
1272     NUMBER_OF_TRACER_FOR_AMR = SIMP(statut ='o',
1273 #   -----------------------------------
1274         typ = 'I',
1275         defaut = 1,
1276         fr = """Permet de donner le numero de traceur utilise par l algorithme de
1277 maillage adaptatif (\telkey{TRANSFORMATION DU MAILLAGE} = 5).""",
1278         ang = """Specifies the number of tracer used by the adaptive mesh algorithm
1279 (\telkey{MESH TRANSFORMATION} = 5).""",
1280     ),
1281 )
1282 # -----------------------------------------------------------------------
1283 NUMERICAL_PARAMETERS = PROC(nom= "NUMERICAL_PARAMETERS",op = None,
1284 # -----------------------------------------------------------------------
1285 #   -----------------------------------
1286     NUMBER_OF_SUB_ITERATIONS_FOR_NON_LINEARITIES = SIMP(statut ='o',
1287 #   -----------------------------------
1288         typ = 'I',
1289         defaut = 1,
1290         fr = """Permet de reactualiser, pour un meme pas de temps, les champs
1291 convecteur et propagateur au cours de plusieurs sous-iterations. A la
1292 premiere sous-iteration, ces champs sont donnes par $C$ et le champ de
1293 vitesses au pas de temps precedent. Aux iterations suivantes, ils sont
1294 pris egaux au champ de vitesse obtenu a la fin de la sous-iteration
1295 precedente. Cette technique permet d''ameliorer la prise en compte des
1296 non linearites.""",
1297         ang = """Used for updating, within one time step, the advection and
1298 propagation fields.
1299 Upon the first sub-iteration, these fields are given by
1300 $C$ and the velocity field in the previous time step. At subsequent
1301 iterations, the results of the previous sub-iteration is used to
1302 update the advection and propagation field.
1303 The non-linearities can be taken into account through this technique.""",
1304     ),
1305 #   -----------------------------------
1306     ZERO = SIMP(statut ='f',
1307 #   -----------------------------------
1308         typ = 'R',
1309         defaut = 1.E-10,
1310         fr = """Non active pour l''instant.""",
1311         ang = """Not used so far.""",
1312     ),
1313 #   -----------------------------------
1314     ADVECTION = FACT(statut='o',
1315 #   -----------------------------------
1316 #       -----------------------------------
1317         ADVECTION_STEP = SIMP(statut ='o',
1318 #       -----------------------------------
1319             typ = bool,
1320             defaut = True,
1321             fr = """Prise en compte ou non des termes de convection.
1322 En cas de reponse positive,
1323 on peut encore supprimer certains termes de convection avec
1324 les mots-cles \telkey{SCHEMA POUR LA CONVECTION...}""",
1325             ang = """Takes into account the advection terms or not.
1326 If YES, some advection terms can still be ignored with the keywords
1327 \telkey{SCHEME FOR ADVECTION OF...}""",
1328         ),
1329 #       -----------------------------------
1330         b_TREATMENT_OF_FLUXES_AT_THE_BOUNDARIESF = BLOC(condition="(ADVECTION_STEP == True and ((SCHEME_FOR_ADVECTION_OF_TRACERS in ['N-SCHEME FOR TIDAL FLATS','LEO POSTMA FOR TIDAL FLATS','EXPLICIT + SUPG','EXPLICIT + MURD SCHEME N','EXPLICIT LEO POSTMA','EXPLICIT + MURD SCHEME PSI']) or (SCHEME_FOR_ADVECTION_OF_K_EPSILON in ['N-SCHEME FOR TIDAL FLATS','LEO POSTMA FOR TIDAL FLATS','EXPLICIT + SUPG','EXPLICIT + MURD SCHEME N','EXPLICIT LEO POSTMA','EXPLICIT + MURD SCHEME PSI']) or (SCHEME_FOR_ADVECTION_OF_VELOCITIES in ['N-SCHEME FOR TIDAL FLATS','LEO POSTMA FOR TIDAL FLATS','EXPLICIT + SUPG','EXPLICIT + MURD SCHEME N','EXPLICIT LEO POSTMA','EXPLICIT + MURD SCHEME PSI'])))",
1331 #       -----------------------------------
1332         ),
1333 #       -----------------------------------
1334         TREATMENT_OF_FLUXES_AT_THE_BOUNDARIES = SIMP(statut ='f',
1335 #       -----------------------------------
1336             typ = 'TXM', min=0, max='**',
1337             into = ["Priority to prescribed values","Priority to fluxes"],
1338             fr = """Option s''utilisant uniquement pour les schemas SUPG, PSI et N
1339 (un entier par frontiere liquide).
1340 Les choix possibles sont :
1341 \begin{itemize}
1342 \item 1 : priorite aux valeurs imposees ;
1343 \item 2 : priorite aux flux.
1344 \end{itemize}
1345 Avec l''option 2, on ne retrouve pas exactement les valeurs imposees
1346 des traceurs, mais le flux est correct.""",
1347             ang = """Used so far only with the SUPG, PSI and N schemes
1348 (one integer per open boundary).
1349 Possible choices are:
1350 \begin{itemize}
1351 \item 1: priority to prescribed values,
1352 \item 2: priority to fluxes.
1353 \end{itemize}
1354 With option 2, Dirichlet prescribed values are not obeyed,
1355 but the fluxes are correct.""",
1356         ),
1357 #       -----------------------------------
1358         SUPG_OPTION = SIMP(statut ='o',
1359 #       -----------------------------------
1360             typ = 'I', min= 4, max= 4,
1361             defaut = [1,0,1,1],
1362             fr = """Permet de specifier le type de decentrement utilise.
1363 Les choix possibles sont :
1364 \begin{itemize}
1365 \item 0 : pas de decentrement SUPG ;
1366 \item 1 : SUPG classique ;
1367 \item 2 : SUPG modifiee.
1368 \end{itemize}
1369 Seul le premier coefficient (applique a $U$, $V$ et $W$) est utilise.
1370 C est aussi ce coefficient qui est applique aux traceurs, $k$
1371 et $\epsilon$ eventuellement.""",
1372             ang = """Specifies the type of upwinding used.
1373 Possible choices are:
1374 \begin{itemize}
1375 \item 0: no upwinding,
1376 \item 1: classical SUPG,
1377 \item 2: modified SUPG.
1378 \end{itemize}
1379 Only the 1st coefficient is used (and applied to $U$, $V$ and $W$).
1380 It is also this coefficient which is applied to tracer(s), $k$
1381 and $\epsilon$ if needed.""",
1382         ),
1383 #       -----------------------------------
1384         b_MAXIMUM_NUMBER_OF_ITERATIONS_FOR_ADVECTION_SCHEMESF = BLOC(condition="(ADVECTION_STEP == True and ((SCHEME_FOR_ADVECTION_OF_TRACERS == 'N-SCHEME FOR TIDAL FLATS') or (SCHEME_FOR_ADVECTION_OF_K_EPSILON == 'N-SCHEME FOR TIDAL FLATS') or (SCHEME_FOR_ADVECTION_OF_VELOCITIES == 'N-SCHEME FOR TIDAL FLATS') or (SCHEME_FOR_ADVECTION_OF_TRACERS == 'LEO POSTMA FOR TIDAL FLATS') or (SCHEME_FOR_ADVECTION_OF_K_EPSILON == 'LEO POSTMA FOR TIDAL FLATS') or (SCHEME_FOR_ADVECTION_OF_VELOCITIES == 'LEO POSTMA FOR TIDAL FLATS')))",
1385 #       -----------------------------------
1386         ),
1387 #       -----------------------------------
1388         MAXIMUM_NUMBER_OF_ITERATIONS_FOR_ADVECTION_SCHEMES = SIMP(statut ='o',
1389 #       -----------------------------------
1390             typ = 'I',
1391             defaut = 50,
1392             fr = """Limite le nombre d''iterations pour les schemas de convection,
1393 seulement pour schemes 13 et 14.
1394 Ancienne valeur par defaut = 10 jusqu en version 8.1.""",
1395             ang = """Limits the number of solver iterations for the advection
1396 schemes, only for schemes 13 and 14.
1397 Old default value = 10 until release 8.1.""",
1398         ),
1399 #       -----------------------------------
1400         NUMBER_OF_SUB_STEPS_OF_DISTRIBUTIVE_SCHEMES = SIMP(statut ='f',
1401 #       -----------------------------------
1402             typ = 'I',
1403             defaut = 1,
1404             fr = """Pour les options predicteur-correcteur avec schema localement
1405 implicite (4 ou 5).
1406 Ce mot-cle permet de diviser le pas de temps donne par l utilisateur
1407 dans le \telkey{FICHIER DES PARAMETRES} en plusieurs sous-pas.
1408 A nouveau, il produit un effet sur la precision du schema et
1409 il est pratique d ajuster ce mot-cle afin d avoir des nombres de
1410 Courant pas trop grands (autour de 1).""",
1411             ang = """Only for implicit scheme with predictor-corrector (4 or 5).
1412 This keyword allows to subdivide the time step given by the user in the
1413 \telkey{STEERING FILE}, into several sub-steps.
1414 Again, it produces an effect on the precision of the scheme and
1415 it is convenient to set this keyword in order to have Courant numbers
1416 not too large (around 1).""",
1417         ),
1418 #       -----------------------------------
1419         NUMBER_OF_CORRECTIONS_OF_DISTRIBUTIVE_SCHEMES = SIMP(statut ='f',
1420 #       -----------------------------------
1421             typ = 'I',
1422             defaut = 1,
1423             fr = """Pour les options avec predicteur-correcteur et schema de convection
1424 de type (3, 4 et 5, LIPS ou pas).
1425 Nombre d iterations pour tous les pas de temps (ou sous pas) pour
1426 converger vers la solution.
1427 Il est utile pour les cas non stationnaires.
1428 Pour les ecoulements quasi-stationnaires, ce mot-cle n a pas d impact
1429 sur la solution, il peut donc etre fixe a 0.
1430 D un autre cote, pour les ecoulements instationnaires, il est suggere
1431 de fixer ce mot-cle a 2 (au moins), ce qui est un bon compromis
1432 entre precision et temps CPU.
1433 En effet, en augmentant le nombre de corrections, le schema est plus
1434 precis mais le temps CPU augmente rapidement.""",
1435             ang = """For predictor-corrector options with advection scheme of type
1436 3, 4, 5, LIPS or not).
1437 Number of iterations for every time step (or sub-time step) to converge
1438 to the solution.
1439 It is useful for unsteady cases.
1440 For quasi-steady flows, this keyword does not have a large impact
1441 on the solution, so it can be set to 0.
1442 On the other hand, for unsteady flows, it is suggested to set this
1443 keyword to 2 (at least), which is a good compromise between accuracy
1444 and computational time. Indeed, increasing the number of corrections
1445 the scheme is more accurate but the CPU time rapidly increases.""",
1446         ),
1447     ),
1448 #   -----------------------------------
1449     DIFFUSION = FACT(statut='o',
1450 #   -----------------------------------
1451 #       -----------------------------------
1452         MASS_LUMPING_FOR_DIFFUSION = SIMP(statut ='o',
1453 #       -----------------------------------
1454             typ = 'R',
1455             defaut = 0.,
1456             fr = """Mass-lumping de la matrice de masse dans la diffusion.
1457 Si la diffusion est explicite (\telkey{IMPLICITATION FOR DIFFUSION}
1458 < 0.001) ou qu un schema de convection est de type 3, 4, 5, 13 ou 14,
1459 il est automatiquement mis a 1. dans \telfile{DIFF3D}.""",
1460             ang = """Mass-lumping of the mass-matrix in the diffusion step.
1461 If diffusion is explicit (\telkey{IMPLICITATION FOR DIFFUSION} < 0.001)
1462 or if the advection scheme is of type 3, 4, 5, 13 or 14,
1463 it is automatically set to 1. in \telfile{DIFF3D}.""",
1464         ),
1465     ),
1466 )
1467 # -----------------------------------------------------------------------
1468 HYDRODYNAMICS = PROC(nom= "HYDRODYNAMICS",op = None,
1469 # -----------------------------------------------------------------------
1470 #   -----------------------------------
1471     NON_HYDROSTATIC_VERSION = SIMP(statut ='o',
1472 #   -----------------------------------
1473         typ = bool,
1474         defaut = True,
1475         fr = """Permet de specifier s''il y a utilisation ou non de la version
1476 non-hydrostatique.""",
1477         ang = """Specifies the use of the non-hydrostatic code version or not.""",
1478     ),
1479 #   -----------------------------------
1480     b_NON_HYDROSTATIC_VERSIONG = BLOC(condition="NON_HYDROSTATIC_VERSION == True",
1481 #   -----------------------------------
1482 #       -----------------------------------
1483         SOLVER_FOR_PPE = SIMP(statut ='o',
1484 #       -----------------------------------
1485             typ = 'TXM',
1486             into = ["conjugate gradient","conjugate residual","conjugate gradient on a normal equation","minimum error","squared conjugate gradient","cgstab","gmres","direct solver"],
1487             defaut = "gmres",
1488             fr = """Permet de choisir le solveur utilise pour la resolution de
1489 l''equation de Poisson.
1490 Les choix possibles sont :
1491 \begin{itemize}
1492 \item 1 : gradient conjugue ;
1493 \item 2 : residu conjugue ;
1494 \item 3 : gradient conjugue sur equation normale ;
1495 \item 4 : erreur minimale ;
1496 \item 5 : gradient conjugue carre ;
1497 \item 6 : CGSTAB ;
1498 \item 7 : GMRES ;
1499 \item 8 : solveur direct.
1500 \end{itemize}
1501 Ancienne valeur par defaut = 1 (gradient conjugue) jusqu a la version
1502 V8P0.""",
1503             ang = """Choice of the solver for the Poisson Pressure Equation.
1504 Possible choices are:
1505 \begin{itemize}
1506 \item 1: conjugate gradient,
1507 \item 2: conjugate residual,
1508 \item 3: conjugate gradient on a normal equation,
1509 \item 4: minimum error,
1510 \item 5: squared conjugate gradient,
1511 \item 6: CGSTAB,
1512 \item 7: GMRES,
1513 \item 8: direct solver.
1514 \end{itemize}
1515 Old default value = 1 (conjugate gradient) until version V8P0.""",
1516         ),
1517 #       -----------------------------------
1518         b_SOLVER_FOR_PPEG = BLOC(condition="SOLVER_FOR_PPE == 'gmres'",
1519 #       -----------------------------------
1520 #           -----------------------------------
1521             OPTION_OF_SOLVER_FOR_PPE = SIMP(statut ='o',
1522 #           -----------------------------------
1523                 typ = 'I',
1524                 defaut = 5,
1525                 fr = """Dimension de l''espace de Krylov pour la methode GMRES (7).
1526 Ancienne valeur par defaut = 3 jusqu a la version V8P0.""",
1527                 ang = """Dimension of Krylov space for the GMRES method (7).
1528 Old default value = 3 until version V8P0.""",
1529             ),
1530         ),
1531 #       -----------------------------------
1532         ACCURACY_FOR_PPE = SIMP(statut ='o',
1533 #       -----------------------------------
1534             typ = 'R',
1535             defaut = 1.E-8,
1536             fr = """Fixe la precision pour l''equation de Poisson.
1537 Ancienne valeur par defaut = 1.E-4 jusqu a la version V8P0.""",
1538             ang = """Sets the precision needed for the computation of the Poisson
1539 Pressure Equation.
1540 Old default value = 1.E-4 until version V8P0.""",
1541         ),
1542 #       -----------------------------------
1543         MAXIMUM_NUMBER_OF_ITERATIONS_FOR_PPE = SIMP(statut ='o',
1544 #       -----------------------------------
1545             typ = 'I',
1546             defaut = 100,
1547             fr = """Limite le nombre d iterations pour l''equation de Poisson.""",
1548             ang = """Limits the number of solver iterations for the Poisson
1549 Pressure Equation.""",
1550         ),
1551 #       -----------------------------------
1552         PRECONDITIONING_FOR_PPE = SIMP(statut ='o',
1553 #       -----------------------------------
1554             typ = 'TXM',
1555             into = ["no preconditioning","diagonal","diagonal condensed","diagonal with absolute values","Crout","Gauss-Seidel EBE","Matrix defined by the user","diagonal and Crout","direct solver on the vertical","diagonal condensed and Crout","diagonal and direct solver on the vertical"],
1556             defaut = "diagonal",
1557             fr = """Preconditionnement pour l''equation de Poisson.
1558 Les choix possibles sont :
1559 \begin{itemize}
1560 \item 0 : aucun ;
1561 \item 2 : diagonal ;
1562 \item 3 : diagonal avec matrice condensee ;
1563 \item 5 : diagonal avec valeurs absolues ;
1564 \item 7 : Crout ;
1565 \item 11 : Gauss-Seidel EBE ;
1566 \item 13 : matrice fournie par l''utilisateur ;
1567 \item 14 : diagonal et Crout ;
1568 \item 17 : solveur direct sur la verticale ;
1569 \item 21 : diagonal condensee et Crout ;
1570 \item 34 : diagonal et solveur direct sur la verticale.
1571 \end{itemize}""",
1572             ang = """Preconditioning for the Poisson Pressure Equation.
1573 Possible choices are:
1574 \begin{itemize}
1575 \item 0: no preconditioning,
1576 \item 2: diagonal,
1577 \item 3: diagonal with the condensed matrix,
1578 \item 5: diagonal with absolute values,
1579 \item 7: Crout,
1580 \item 11: Gauss-Seidel EBE,
1581 \item 13: matrix defined by the user,
1582 \item 14: diagonal and Crout,
1583 \item 17: direct solver on the vertical,
1584 \item 21: diagonal condensed and Crout,
1585 \item 34: diagonal and direct solver on the vertical.
1586 \end{itemize}""",
1587         ),
1588 #       -----------------------------------
1589         DYNAMIC_PRESSURE_IN_WAVE_EQUATION = SIMP(statut ='f',
1590 #       -----------------------------------
1591             typ = bool,
1592             defaut = False,
1593             fr = """Definit si une estimation du gradient de pression dynamique
1594 est prise en compte dans l''equation d''onde.""",
1595             ang = """Defines if an estimated pressure gradient is taken into
1596 account in the wave equation.""",
1597         ),
1598 #       -----------------------------------
1599         DYNAMIC_BOUNDARY_CONDITION = SIMP(statut ='f',
1600 #       -----------------------------------
1601             typ = bool,
1602             defaut = False,
1603             fr = """Si OUI, permet d imposer une vitesse en surface
1604 selon la condition a la limite dynamique.""",
1605             ang = """If YES, it enables to prescribe a velocity at the free surface
1606 coherent with the dynamic boundary condition.""",
1607         ),
1608 #       -----------------------------------
1609         CONTINUITY_CORRECTION_ON_OPEN_BOUNDARIES = SIMP(statut ='f',
1610 #       -----------------------------------
1611             typ = bool,
1612             defaut = False,
1613             fr = """Modifie les vitesses libres sur les frontieres ouvertes
1614 pour avoir un meilleur champ a divergence nulle.""",
1615             ang = """Changes the free velocities on open boundaries to get
1616 a better divergence-free field.""",
1617         ),
1618     ),
1619 #   -----------------------------------
1620     ELEMENTS_MASKED_BY_USER = SIMP(statut ='o',
1621 #   -----------------------------------
1622         typ = bool,
1623         defaut = False,
1624         fr = """Si OUI, remplir le sous-programme \telfile{MASKOB}.""",
1625         ang = """If YES, fill in the subroutine \telfile{MASKOB}.""",
1626     ),
1627 #   -----------------------------------
1628     b_ELEMENTS_MASKED_BY_USERG = BLOC(condition="ELEMENTS_MASKED_BY_USER == True",
1629 #   -----------------------------------
1630 #       -----------------------------------
1631         Consigne = SIMP(statut ="o", homo="information", typ="TXM",
1632 #       -----------------------------------
1633             defaut = "Rewrite subroutine maskob"),
1634     ),
1635 #   -----------------------------------
1636     PHYSICAL_PARAMETERS = FACT(statut='o',
1637 #   -----------------------------------
1638 #       -----------------------------------
1639         GRAVITY_ACCELERATION = SIMP(statut ='f',
1640 #       -----------------------------------
1641             typ = 'R',
1642             defaut = 9.81,
1643             fr = """Fixe la valeur de l''acceleration de la pesanteur en m/s$^2$.""",
1644             ang = """Sets the value of the acceleration due to gravity in m/s$^2$.""",
1645         ),
1646 #       -----------------------------------
1647         AVERAGE_WATER_DENSITY = SIMP(statut ='f',
1648 #       -----------------------------------
1649             typ = 'R',
1650             defaut = 1025.,
1651             fr = """Valeur de la densite moyenne dans le domaine, voir
1652 \telfile{DRSURR}.""",
1653             ang = """Average water density in the domain, see subroutine
1654 \telfile{DRSURR}.""",
1655         ),
1656 #       -----------------------------------
1657         FRICTION = FACT(statut='o',
1658 #       -----------------------------------
1659 #           -----------------------------------
1660             LAW_OF_BOTTOM_FRICTION = SIMP(statut ='o',
1661 #           -----------------------------------
1662                 typ = 'TXM',
1663                 into = ["NO FRICTION","HAALAND","CHEZY","STRICKLER","MANNING","NIKURADSE"],
1664                 defaut = "NIKURADSE",
1665                 fr = """Selectionne le type de formulation utilisee pour le calcul
1666 du frottement sur le fond.
1667 Les lois possibles sont les suivantes (cf. Note de principe) :
1668 \begin{itemize}
1669 \item 0 : pas de frottement sur le fond ;
1670 \item 1 : formule de Haaland ;
1671 \item 2 : formule de Chezy ;
1672 \item 3 : formule de Strickler ;
1673 \item 4 : formule de Manning ;
1674 \item 5 : formule de Nikuradse.
1675 \end{itemize}
1676 Ancienne valeur par defaut = 2 (Chezy) jusqu a la version
1677 V7P3 et 0 (pas de frottement) en V8P0.""",
1678                 ang = """Selects the type of formulation used for the bottom friction.
1679 The possible laws are as follows (refer to the Principle note):
1680 \begin{itemize}
1681 \item 0: no friction against bottom,
1682 \item 1: Haaland''s formula,
1683 \item 2: Chezy''s formula,
1684 \item 3: Strickler''s formula,
1685 \item 4: Manning''s formula,
1686 \item 5: Nikuradse''s formula.
1687 \end{itemize}
1688 Old default value = 2 (Chezy) until version V7P3
1689 and 0 (no friction) in V8P0.""",
1690             ),
1691 #           -----------------------------------
1692             b_LAW_OF_BOTTOM_FRICTIONG = BLOC(condition="LAW_OF_BOTTOM_FRICTION != 'NO FRICTION'",
1693 #           -----------------------------------
1694 #               -----------------------------------
1695                 FRICTION_COEFFICIENT_FOR_THE_BOTTOM = SIMP(statut ='o',
1696 #               -----------------------------------
1697                     typ = 'R',
1698                     defaut = 0.01,
1699                     fr = """Fixe la valeur du coefficient de frottement au fond,
1700 si constant.
1701 Ancienne valeur par defaut = 60. jusqu a la version V8P0.""",
1702                     ang = """Friction coefficient on the bottom, if constant.
1703 Old default value = 60. until version V8P0.""",
1704                 ),
1705             ),
1706 #           -----------------------------------
1707             LAW_OF_FRICTION_ON_LATERAL_BOUNDARIES = SIMP(statut ='o',
1708 #           -----------------------------------
1709                 typ = 'TXM',
1710                 into = ["NO FRICTION","COEFFICIENT TAKEN IN BOUNDARY CONDITIONS FILE","IDEM","IDEM","IDEM","NIKURADSE"],
1711                 defaut = "NO FRICTION",
1712                 fr = """Selectionne le type de formulation utilisee pour le calcul
1713 du frottement sur les parois laterales.
1714 Les lois possibles sont les suivantes (cf. Note de principe) :
1715 \begin{itemize}
1716 \item 0 : pas de frottement, ou \telfile{AUBOR} donne par le
1717 \telkey{FICHIER DES CONDITIONS AUX LIMITES} ;
1718 \item 5 : formule de Nikuradse.
1719 \end{itemize}""",
1720                 ang = """Selects the type of formulation used for the friction on
1721 lateral boundaries. The possible laws are as follows (refer to the
1722 Principle note):
1723 \begin{itemize}
1724 \item 0: no friction, or \telfile{AUBOR} given by the
1725 \telkey{BOUNDARY CONDITION FILE},
1726 \item 5: Nikuradse''s formula.
1727 \end{itemize}""",
1728             ),
1729 #           -----------------------------------
1730             b_LAW_OF_FRICTION_ON_LATERAL_BOUNDARIESG = BLOC(condition="LAW_OF_FRICTION_ON_LATERAL_BOUNDARIES != 'NO FRICTION'",
1731 #           -----------------------------------
1732 #               -----------------------------------
1733                 FRICTION_COEFFICIENT_FOR_LATERAL_SOLID_BOUNDARIES = SIMP(statut ='o',
1734 #               -----------------------------------
1735                     typ = 'R',
1736                     defaut = 0.01,
1737                     fr = """Fixe la valeur du coefficient de frottement sur les parois,
1738 si constant.
1739 Ancienne valeur par defaut = 60. jusqu a la version V8P0.""",
1740                     ang = """Friction coefficient on the lateral boundaries, if constant.
1741 Old default value = 60. until version V8P0.""",
1742                 ),
1743             ),
1744         ),
1745 #       -----------------------------------
1746         CORIOLIS_EFFECT = FACT(statut='f',
1747 #       -----------------------------------
1748 #           -----------------------------------
1749             CORIOLIS = SIMP(statut ='o',
1750 #           -----------------------------------
1751                 typ = bool,
1752                 defaut = False,
1753                 fr = """Prise en compte ou non de la force de Coriolis.""",
1754                 ang = """The Coriolis force is taken into account or ignored.""",
1755             ),
1756 #           -----------------------------------
1757             b_CORIOLISG = BLOC(condition="CORIOLIS == True",
1758 #           -----------------------------------
1759 #               -----------------------------------
1760                 CORIOLIS_COEFFICIENT = SIMP(statut ='o',
1761 #               -----------------------------------
1762                     typ = 'R',
1763                     defaut = 0.,
1764                     fr = """Fixe la valeur du coefficient de la force de Coriolis.
1765 Celui-ci doit etre calcule en fonction de la latitude $l$
1766 par la formule
1767 $FCOR = 2 \omega sin(l)$ ,
1768 $\omega$ etant la vitesse de rotation de la terre.
1769 $\omega$ = 7.29 10-5 rad/s.\\
1770 Les composantes de la force de Coriolis sont alors :\\
1771 $FU =  FCOR \times V,$\\
1772 $FV = -FCOR \times U.$
1773 Lorsqu''on utilise les coordonnees spheriques, le coefficient de
1774 Coriolis est calcule automatiquement.""",
1775                     ang = """Sets the value of the Coriolis force coefficient,
1776 in cartesian coordinates.
1777 This coefficient, denoted \telfile{FCOR} in the code, should be equal to
1778 $2 \omega \sin(l)$  where $\omega$ denotes the earth angular speed of
1779 rotation and $l$ the latitude. $\omega$ = 7.29 10-5 rad/s.\\
1780 The Coriolis force components are then:\\
1781 $FU =  FCOR \times V,$\\
1782 $FV = -FCOR \times U.$\\
1783 When using the spherical coordinates, the Coriolis coefficient is
1784 automatically computed.""",
1785                 ),
1786             ),
1787         ),
1788 #       -----------------------------------
1789         METEOROLOGY = FACT(statut='f',
1790 #       -----------------------------------
1791 #           -----------------------------------
1792             WIND = SIMP(statut ='o',
1793 #           -----------------------------------
1794                 typ = bool,
1795                 defaut = False,
1796                 fr = """Prise en compte ou non des effets du vent.""",
1797                 ang = """Determines whether the wind effects are to be taken into
1798 account or not.""",
1799             ),
1800 #           -----------------------------------
1801             b_WINDG = BLOC(condition="WIND == True",
1802 #           -----------------------------------
1803 #               -----------------------------------
1804                 OPTION_FOR_WIND = SIMP(statut ='o',
1805 #               -----------------------------------
1806                     typ = 'TXM',
1807                     into = ["constant in time and space","variable in time given by formatted file","variable in time and space given by formatted file"],
1808                     defaut = "constant in time and space",
1809                     fr = """Donne les options pour introduire le vent :
1810 \begin{itemize}
1811 \item 1 : constant en temps et en espace (donne par les mots cles
1812 \telkey{VITESSE DU VENT SUIVANT X} et \telkey{VITESSE DU VENT SUIVANT Y}
1813 ) ;
1814 \item 2 : variable en temps donne par fichier formate ;
1815 \item 3 : variable en temps et en espace donne par fichier formate
1816 ou un fichier binaire.
1817 \end{itemize}""",
1818                     ang = """Gives the option for managing the wind:
1819 \begin{itemize}
1820 \item 1: constant in time and space, given by the keywords
1821 \telkey{WIND VELOCITY ALONG X} and \telkey{WIND VELOCITY ALONG Y},
1822 \item 2: variable in time and constant in space, given by formatted
1823 file,
1824 \item 3: variable in time and space, given by formatted file or by
1825 a binary file.
1826 \end{itemize}""",
1827                 ),
1828 #               -----------------------------------
1829                 b_OPTION_FOR_WINDG = BLOC(condition="OPTION_FOR_WIND == 'variable in time given by formatted file' or OPTION_FOR_WIND == 'variable in time and space given by formatted file'",
1830 #               -----------------------------------
1831 #                   -----------------------------------
1832                     Consigne = SIMP(statut ="o", homo="information", typ="TXM",
1833 #                   -----------------------------------
1834                         defaut = "Give the ascii atmospheric data file"),
1835                 ),
1836 #               -----------------------------------
1837                 WIND_VELOCITY_ALONG_X = SIMP(statut ='o',
1838 #               -----------------------------------
1839                     typ = 'R',
1840                     defaut = 0.,
1841                     fr = """Composante de la vitesse du vent suivant
1842 l''axe des $x$ (m/s), si constante.""",
1843                     ang = """Wind velocity, component along $x$ axis (m/s), if constant.""",
1844                 ),
1845 #               -----------------------------------
1846                 WIND_VELOCITY_ALONG_Y = SIMP(statut ='o',
1847 #               -----------------------------------
1848                     typ = 'R',
1849                     defaut = 0.,
1850                     fr = """Composante de la vitesse du vent suivant
1851 l''axe des $y$ (m/s), si constante.""",
1852                     ang = """Wind velocity, component along $y$ axis (m/s), if constant.""",
1853                 ),
1854 #               -----------------------------------
1855                 COEFFICIENT_OF_WIND_INFLUENCE = SIMP(statut ='o',
1856 #               -----------------------------------
1857                     typ = 'R',
1858                     defaut = 1.55E-6,
1859                     fr = """Fixe la valeur du coefficient d''entrainement du vent.
1860 Voir le manuel utilisateur pour la valeur a donner.""",
1861                     ang = """Sets the value of the wind driving coefficient.
1862 See the User Manual for the value to give.""",
1863                 ),
1864 #               -----------------------------------
1865                 COEFFICIENT_OF_WIND_INFLUENCE_VARYING_WITH_WIND_SPEED = SIMP(statut ='o',
1866 #               -----------------------------------
1867                     typ = bool,
1868                     defaut = True,
1869                     fr = """Si OUI, la valeur du coefficient d''entrainement du vent est
1870 calculee en fonction de la vitesse du vent.
1871 La valeur de \telkey{COEFFICIENT D''INFLUENCE DU VENT} est ecrasee.
1872 Ancienne valeur par defaut = NON jusqu a la version V8P1.""",
1873                     ang = """If YES, the value of the wind driving coefficient is computed
1874 with respect to the wind velocity.
1875 The value of \telkey{COEFFICIENT OF WIND INFLUENCE} is overwritten.
1876 Old default value = NO until V8P1.""",
1877                 ),
1878 #               -----------------------------------
1879                 THRESHOLD_DEPTH_FOR_WIND = SIMP(statut ='o',
1880 #               -----------------------------------
1881                     typ = 'R',
1882                     defaut = 1.,
1883                     fr = """Retire la force due au vent dans les petites profondeurs
1884 plus petites que cette valeur.""",
1885                     ang = """Wind is not taken into account for depths smaller
1886 than this value.""",
1887                 ),
1888             ),
1889 #           -----------------------------------
1890             AIR_PRESSURE = SIMP(statut ='o',
1891 #           -----------------------------------
1892                 typ = bool,
1893                 defaut = False,
1894                 fr = """Permet de decider si l''on prend ou non en compte l''influence
1895 d''un champ de pression.""",
1896                 ang = """Sets whether the influence of an atmosphere
1897 pressure field is taken into account or not.""",
1898             ),
1899 #           -----------------------------------
1900             b_AIR_PRESSUREG = BLOC(condition="AIR_PRESSURE == True",
1901 #           -----------------------------------
1902 #               -----------------------------------
1903                 VALUE_OF_ATMOSPHERIC_PRESSURE = SIMP(statut ='o',
1904 #               -----------------------------------
1905                     typ = 'R',
1906                     defaut = 100000.,
1907                     fr = """Donne la valeur de la pression atmospherique lorsqu''elle est
1908 constante en temps et en espace. En Pa.""",
1909                     ang = """Gives the value of atmospheric pressure when it is constant
1910 in time and space. In Pa.""",
1911                 ),
1912             ),
1913 #           -----------------------------------
1914             RAIN_OR_EVAPORATION = SIMP(statut ='o',
1915 #           -----------------------------------
1916                 typ = bool,
1917                 defaut = False,
1918                 fr = """Pour ajouter un apport ou une perte d''eau en surface.
1919 Voir le mot-cle \telkey{PLUIE OU EVAPORATION EN MM PAR JOUR}.""",
1920                 ang = """Enables to add or remove water at the free surface.
1921 See the keyword \telkey{RAIN OR EVAPORATION IN MM PER DAY}.""",
1922             ),
1923 #           -----------------------------------
1924             b_RAIN_OR_EVAPORATIONG = BLOC(condition="RAIN_OR_EVAPORATION == True",
1925 #           -----------------------------------
1926 #               -----------------------------------
1927                 RAIN_OR_EVAPORATION_IN_MM_PER_DAY = SIMP(statut ='o',
1928 #               -----------------------------------
1929                     typ = 'R',
1930                     defaut = 0.,
1931                     fr = """Pour ajouter un apport ou une perte d''eau en surface.""",
1932                     ang = """Specifies the amount of water to add or remove at the
1933 free surface.""",
1934                 ),
1935             ),
1936 #           -----------------------------------
1937             ASCII_ATMOSPHERIC_DATA_FILE = SIMP(statut ='f',
1938 #           -----------------------------------
1939                 typ = ('Fichier','All Files (*)'),
1940                 defaut = '',
1941                 fr = """Fichier de donnees ASCII contenant les informations
1942 atmospheriques variables en temps.""",
1943                 ang = """ASCII data file containing the atmospheric data varying in
1944 time.""",
1945             ),
1946 #           -----------------------------------
1947             BINARY_ATMOSPHERIC_DATA_FILE = SIMP(statut ='f',
1948 #           -----------------------------------
1949                 typ = ('Fichier','All Files (*)'),
1950                 defaut = '',
1951                 fr = """Fichier de donnees code en binaire contenant les informations
1952 atmospheriques variables en temps et en espace sur le maillage.""",
1953                 ang = """Binary-coded data file containing the atmospheric data varying
1954 in time and space on the mesh.""",
1955             ),
1956 #           -----------------------------------
1957             BINARY_ATMOSPHERIC_DATA_FILE_FORMAT = SIMP(statut ='f',
1958 #           -----------------------------------
1959                 typ = 'TXM',
1960                 into = ['SERAFIN','SERAFIND','MED'],
1961                 defaut = 'SERAFIN',
1962                 fr = """Format du \telkey{FICHIER BINAIRE DE DONNEES ATMOSPHERIQUES}.
1963 Les valeurs possibles sont :
1964 \begin{itemize}
1965 \item SERAFIN : format standard simple precision pour \tel ;
1966 \item SERAFIND: format standard double precision pour \tel ;
1967 \item MED     : format MED double precision base sur HDF5.
1968 \end{itemize}""",
1969                 ang = """Format of the \telkey{BINARY ATMOSPHERIC DATA FILE}.
1970 Possible choices are:
1971 \begin{itemize}
1972 \item SERAFIN : classical single precision format in \tel,
1973 \item SERAFIND: classical double precision format in \tel,
1974 \item MED     : MED double precision format based on HDF5.
1975 \end{itemize}""",
1976             ),
1977         ),
1978 #       -----------------------------------
1979         SOURCES = FACT(statut='f',
1980 #       -----------------------------------
1981 #           -----------------------------------
1982             SOURCES_FILE = SIMP(statut ='f',
1983 #           -----------------------------------
1984                 typ = ('Fichier','All Files (*)'), max='**',
1985                 defaut = '',
1986                 fr = """Nom du fichier contenant les informations variables
1987 en temps des sources.""",
1988                 ang = """Name of the file containing time-dependent
1989 information on sources.""",
1990             ),
1991 #           -----------------------------------
1992             GLOBAL_NUMBERS_OF_SOURCE_NODES = SIMP(statut ='f',
1993 #           -----------------------------------
1994                 typ = 'I', min= 2, max= 2,
1995                 fr = """Numeros globaux des noeuds du maillage 2D sur lequels sont affectes des
1996 points source.""",
1997                 ang = """Global numbers of nodes in the 2D mesh that correspond to source point
1998 locations.""",
1999             ),
2000 #           -----------------------------------
2001             TYPE_OF_SOURCES = SIMP(statut ='o',
2002 #           -----------------------------------
2003                 typ = 'TXM',
2004                 into = ["Normal","Dirac"],
2005                 defaut = "Normal",
2006                 fr = """Definit comment les sources sont calculees :
2007 \begin{itemize}
2008 \item 1 : Source portee par une base elements finis ;
2009 \item 2 : Source portee par une fonction de Dirac
2010 (recommande quand il y a beaucoup de sources).
2011 \end{itemize}""",
2012                 ang = """Defines how the sources are computed:
2013 \begin{itemize}
2014 \item 1: Source term multiplied by a finite element basis,
2015 \item 2: Source term multiplied by a Dirac function
2016 (recommended with high numbers of sources).
2017 \end{itemize}""",
2018             ),
2019 #           -----------------------------------
2020             ABSCISSAE_OF_SOURCES = SIMP(statut ='f',
2021 #           -----------------------------------
2022                 typ = 'R', min=0, max='**',
2023                 fr = """Nombres reels donnant les abscisses d eventuelles sources de
2024 debit (en metres). La source sera placee au noeud du maillage le plus
2025 proche.""",
2026                 ang = """Floats giving the abscissae of potential sources of flow rates
2027 (in meters). The source will be located at the nearest node in the
2028 mesh.""",
2029             ),
2030 #           -----------------------------------
2031             ORDINATES_OF_SOURCES = SIMP(statut ='f',
2032 #           -----------------------------------
2033                 typ = 'R', min=0, max='**',
2034                 fr = """Nombres reels donnant les ordonnees d''eventuelles sources de
2035 debit (en metres). La source sera placee au noeud du maillage le plus
2036 proche.""",
2037                 ang = """Floats giving the ordinates of potential sources of flow rates
2038 (in meters). The source will be located at the nearest node in the
2039 mesh.""",
2040             ),
2041 #           -----------------------------------
2042             ELEVATIONS_OF_SOURCES = SIMP(statut ='f',
2043 #           -----------------------------------
2044                 typ = 'R', min=0, max='**',
2045                 fr = """Fixe la hauteur des sources.
2046 Les sources sont automatiquement recalees sur le plan le plus proche.
2047 L''utilisation d''un plan fixe est alors conseillee afin d''eviter que
2048 le plan le plus proche ne change en cas de variation de la hauteur
2049 d''eau locale.""",
2050                 ang = """Sets the height of the sources.
2051 The source will be located at the nearest plane in the mesh.
2052 The use of a fixed plane is then recommended to avoid the change
2053 of the nearest plane in case of variation of local water height.""",
2054             ),
2055 #           -----------------------------------
2056             WATER_DISCHARGE_OF_SOURCES = SIMP(statut ='f',
2057 #           -----------------------------------
2058                 typ = 'R', min=0, max='**',
2059                 fr = """Specifie le debit de chaque source.
2060 Un debit positif signifie qu''il s''agit d''un apport de fluide.""",
2061                 ang = """Specifies the discharge for every source.
2062 A positive discharge means that fluid is added.""",
2063             ),
2064 #           -----------------------------------
2065             VELOCITIES_OF_THE_SOURCES_ALONG_X = SIMP(statut ='f',
2066 #           -----------------------------------
2067                 typ = 'R', min=0, max='**',
2068                 fr = """Permet de specifier la composante selon $x$ de la vitesse aux
2069 sources. Si rien n''est specifie, les sources diffusent sans vitesse
2070 dans toutes les directions (cf. cas de validation source).""",
2071                 ang = """Specifies the compoment along $x$ of the velocities of the
2072 sources. If nothing is specified, the sources diffuse without any
2073 velocity in every direction (cf. validation case source).""",
2074             ),
2075 #           -----------------------------------
2076             VELOCITIES_OF_THE_SOURCES_ALONG_Y = SIMP(statut ='f',
2077 #           -----------------------------------
2078                 typ = 'R', min=0, max='**',
2079                 fr = """Permet de specifier la composante selon $y$ de la vitesse aux
2080 sources. Si rien n''est specifie, les sources diffusent sans vitesse
2081 dans toutes les directions (cf. cas de validation source).""",
2082                 ang = """Specifies the compoment along y of the velocities of the
2083 sources.  If nothing is specified, the sources diffuse without any
2084 velocity in every direction (cf. validation case source).""",
2085             ),
2086 #           -----------------------------------
2087             VELOCITIES_OF_THE_SOURCES_ALONG_Z = SIMP(statut ='f',
2088 #           -----------------------------------
2089                 typ = 'R', min=0, max='**',
2090                 fr = """Permet de specifier la composante selon $z$ de la vitesse aux
2091 sources. Si rien n''est specifie, les sources diffusent sans vitesse
2092 dans toutes les directions (cf. cas de validation source).""",
2093                 ang = """Specifies the compoment along $z$ of the velocities of the
2094 sources. If nothing is specified, the sources diffuse without any
2095 velocity in every direction (cf. validation case source).""",
2096             ),
2097         ),
2098 #       -----------------------------------
2099         WAVE = FACT(statut='f',
2100 #       -----------------------------------
2101 #           -----------------------------------
2102             WAVE_DRIVEN_CURRENTS = SIMP(statut ='o',
2103 #           -----------------------------------
2104                 typ = bool,
2105                 defaut = False,
2106                 fr = """Active la prise en compte des courants de houle
2107 (voir le sous-programme \telfile{TRISOU}).""",
2108                 ang = """Wave driven currents are taken into account,
2109 see subroutine \telfile{TRISOU}.""",
2110             ),
2111 #           -----------------------------------
2112             b_WAVE_DRIVEN_CURRENTSG = BLOC(condition="WAVE_DRIVEN_CURRENTS == True",
2113 #           -----------------------------------
2114 #               -----------------------------------
2115                 RECORD_NUMBER_IN_WAVE_FILE = SIMP(statut ='o',
2116 #               -----------------------------------
2117                     typ = 'I',
2118                     defaut = 1,
2119                     fr = """Numero d''enregistrement a lire par \telemac{3d} dans le
2120 fichier des courants de houle.""",
2121                     ang = """Record number to be read by \telemac{3d} in the wave driven
2122 currents file.""",
2123                 ),
2124             ),
2125         ),
2126     ),
2127 #   -----------------------------------
2128     BOUNDARY_CONDITIONS = FACT(statut='o',
2129 #   -----------------------------------
2130 #       -----------------------------------
2131         PRESCRIBED_ELEVATIONS = SIMP(statut ='f',
2132 #       -----------------------------------
2133             typ = 'R', min=0, max='**',
2134             fr = """Valeurs des cotes imposees aux frontieres liquides.""",
2135             ang = """Values of the elevations prescribed at open boundaries.""",
2136         ),
2137 #       -----------------------------------
2138         PRESCRIBED_FLOWRATES = SIMP(statut ='f',
2139 #       -----------------------------------
2140             typ = 'R', min=0, max='**',
2141             fr = """Valeurs des debits imposes aux frontieres liquides.""",
2142             ang = """Values of the flowrates prescribed at open boundaries.""",
2143         ),
2144 #       -----------------------------------
2145         PRESCRIBED_VELOCITIES = SIMP(statut ='f',
2146 #       -----------------------------------
2147             typ = 'R', min=0, max='**',
2148             fr = """Valeurs des vitesses imposees aux frontieres liquides.""",
2149             ang = """Values of the magnitudes of velocity prescribed at open boundaries.""",
2150         ),
2151 #       -----------------------------------
2152         LIQUID_BOUNDARIES_FILE = SIMP(statut ='f',
2153 #       -----------------------------------
2154             typ = ('Fichier','All Files (*)'), max='**',
2155             defaut = '',
2156             fr = """Fichier de variations en temps des conditions aux limites.""",
2157             ang = """File containing the variations in time of boundary conditions.""",
2158         ),
2159 #       -----------------------------------
2160         VELOCITY_PROFILES = SIMP(statut ='f',
2161 #       -----------------------------------
2162             typ = 'TXM', min= 2, max= 2,
2163             into = ["constant normal profile","ubor and vbor given in the conlim file","normal velocity given in ubor in the conlim file","Velocity = square root elevation","like 4 with virtual depth, see help"],
2164             fr = """Permet de specifier le type de profil horizontal de vitesse
2165 (un entier par frontiere liquide).
2166 Les choix possibles sont :
2167 \begin{itemize}
2168 \item 1 : profil normal constant ;
2169 \item 2 : $u$ et $v$ donnes dans le
2170 \telkey{FICHIER DES CONDITIONS AUX LIMITES} ;
2171 \item 3 : vitesse normale donnee dans \telfile{UBOR} dans le
2172 \telkey{FICHIER DES CONDITIONS AUX LIMITES} ;
2173 \item 4 : vitesse normale en $\sqrt{h}$ ;
2174 \item 5 : comme 4 mais hauteur virtuelle calculee avec
2175 la surface libre la plus basse de la frontiere.
2176 \end{itemize}""",
2177             ang = """Specifies the type of horizontal profile of velocities
2178 (one integer per open boundary).
2179 Possible choices are:
2180 \begin{itemize}
2181 \item 1: constant normal profile,
2182 \item 2: $u$ and $v$ given in the
2183 \telkey{BOUNDARY CONDITION FILE},
2184 \item 3: normal velocity given in \telfile{UBOR} in the
2185 \telkey{BOUNDARY CONDITION FILE},
2186 \item 4: normal velocity in $\sqrt{h}$,
2187 \item 5: like 4 but virtual depth based on
2188 the lowest elevation of the boundary.
2189 \end{itemize}""",
2190         ),
2191 #       -----------------------------------
2192         VELOCITY_VERTICAL_PROFILES = SIMP(statut ='f',
2193 #       -----------------------------------
2194             typ = 'TXM', min= 2, max= 2,
2195             into = ["User defined","Constant","Logarithmic"],
2196             fr = """Permet de specifier le type de profil vertical de vitesse
2197 (un entier par frontiere liquide).
2198 Les choix possibles sont :
2199 \begin{itemize}
2200 \item 0 : programmation utilisateur ;
2201 \item 1 : constant ;
2202 \item 2 : logarithmique.
2203 \end{itemize}""",
2204             ang = """Specifies the type of vertical profile of velocity
2205 (one integer per open boundary).
2206 Possible choices are:
2207 \begin{itemize}
2208 \item 0: defined by user,
2209 \item 1: constant,
2210 \item 2: logarithmic.
2211 \end{itemize}""",
2212         ),
2213 #       -----------------------------------
2214         STAGE_DISCHARGE_CURVES = SIMP(statut ='f',
2215 #       -----------------------------------
2216             typ = 'I', min=10, max=10,
2217             fr = """Indique si une courbe de tarage doit etre utilisee
2218 pour une frontiere (une valeur par frontiere liquide) :
2219 \begin{itemize}
2220 \item 0 : non ;
2221 \item 1 : Z(Q) ;
2222 \item 2 : Q(Z). Pas encore programme.
2223 \end{itemize}""",
2224             ang = """Specifies if a discharge-elevation curve must be used
2225 for a given boundary (one value per open boundary):
2226 \begin{itemize}
2227 \item 0: no,
2228 \item 1: Z(Q),
2229 \item 2: Q(Z). Not yet implemented.
2230 \end{itemize}""",
2231         ),
2232 #       -----------------------------------
2233         b_STAGE_DISCHARGE_CURVESG = BLOC(condition="STAGE_DISCHARGE_CURVES != 'no'",
2234 #       -----------------------------------
2235 #           -----------------------------------
2236             STAGE_DISCHARGE_CURVES_FILE = SIMP(statut ='f',
2237 #           -----------------------------------
2238                 typ = ('Fichier','All Files (*)'), max='**',
2239                 defaut = '',
2240                 fr = """Nom du fichier contenant les courbes de tarage.""",
2241                 ang = """Name of the file containing stage-discharge curves.""",
2242             ),
2243         ),
2244 #       -----------------------------------
2245         OPTION_FOR_LIQUID_BOUNDARIES = SIMP(statut ='f',
2246 #       -----------------------------------
2247             typ = 'TXM', min= 2, max= 2,
2248             into = ["classical","Thompson method based on characteristics"],
2249             fr = """On donne un entier par frontiere liquide.
2250 Les choix possibles sont :
2251 \begin{itemize}
2252 \item 1 : conditions aux limites classiques ;
2253 \item 2 : methode de Thompson avec calcul de caracteristiques.
2254 \end{itemize}""",
2255             ang = """One integer per liquid boundary is given.
2256 Possible choices are:
2257 \begin{itemize}
2258 \item 1: classical boundary conditions,
2259 \item 2: Thompson method based on characteristics.
2260 \end{itemize}""",
2261         ),
2262 #       -----------------------------------
2263         TURBULENCE_REGIME_FOR_THE_BOTTOM = SIMP(statut ='f',
2264 #       -----------------------------------
2265             typ = 'TXM',
2266             into = ["smooth","rough","rough compatibility with old versions"],
2267             defaut = "rough",
2268             fr = """Permet de definir le regime de turbulence pour le fond dans le
2269 cas du modele de longueur de melange ou du modele $k$-$\epsilon$ :
2270 \begin{itemize}
2271 \item 1 : lisse ;
2272 \item 2 : rugueux ;
2273 \item 3 : rugueux (compatibilite avec anciennes versions).
2274 \end{itemize}""",
2275             ang = """Defines the turbulence regime for the bottom in the case of a
2276 $k$-$\epsilon$ or mixing-length model:
2277 \begin{itemize}
2278 \item 1: smooth,
2279 \item 2: rough,
2280 \item 3: rough also (for compatibility with old versions).
2281 \end{itemize}""",
2282         ),
2283 #       -----------------------------------
2284         TURBULENCE_REGIME_FOR_LATERAL_SOLID_BOUNDARIES = SIMP(statut ='f',
2285 #       -----------------------------------
2286             typ = 'TXM',
2287             into = ["smooth","rough"],
2288             defaut = "rough",
2289             fr = """Definit le regime de turbulence pour les parois laterales :
2290 \begin{itemize}
2291 \item 1 : lisse ;
2292 \item 2 : rugueux.
2293 \end{itemize}""",
2294             ang = """Defines the turbulence regime for the lateral boundaries:
2295 \begin{itemize}
2296 \item 1: smooth,
2297 \item 2: rough.
2298 \end{itemize}""",
2299         ),
2300 #       -----------------------------------
2301         BOUNDARY_CONDITION_ON_THE_BOTTOM = SIMP(statut ='o',
2302 #       -----------------------------------
2303             typ = 'TXM',
2304             into = ["LOG LAW FOR VELOCITIES ON BOTTOM","NO SLIP FOR VELOCITIES ON BOTTOM"],
2305             defaut = "LOG LAW FOR VELOCITIES ON BOTTOM",
2306             fr = """Specifie le type de conditions aux limites au fond.
2307 Les choix possibles sont :
2308 \begin{itemize}
2309 \item 1 : conditions de Neumann pour les vitesses au fond ;
2310 \item 2 : vitesses nulles au fond. Va de pair logiquement avec
2311  un bon raffinement du maillage au fond.
2312 \end{itemize}""",
2313             ang = """Specifies the type of boundary conditions on the bottom
2314 layer. Possible choices are:
2315 \begin{itemize}
2316 \item 1: Neumann conditions on velocity on bottom,
2317 \item 2: velocities will be set to 0. Should be linked to
2318 a refined mesh near the bottom.
2319 \end{itemize}""",
2320         ),
2321 #       -----------------------------------
2322         VELOCITY_PROJECTED_ON_SOLID_LATERAL_BOUNDARIES = SIMP(statut ='o',
2323 #       -----------------------------------
2324             typ = bool,
2325             defaut = True,
2326             fr = """$\vec{U}.\vec{n} = 0$ sur les parois laterales solides est force
2327 en fin de boucle en temps.""",
2328             ang = """Will ensure $\vec{U}.\vec{n} = 0$ on solid lateral boundaries
2329 by a projection at the end of time loop.""",
2330         ),
2331 #       -----------------------------------
2332         VELOCITY_PROJECTED_ON_BOTTOM = SIMP(statut ='o',
2333 #       -----------------------------------
2334             typ = bool,
2335             defaut = True,
2336             fr = """$\vec{U}.\vec{n} = 0$ sur le fond est force en fin de boucle
2337 en temps.""",
2338             ang = """Will ensure $\vec{U}.\vec{n} = 0$ on bottom by a projection
2339 at the end of time loop.""",
2340         ),
2341 #       -----------------------------------
2342         OPEN_BOUNDARY_CONDITIONS_ON_THE_BED = SIMP(statut ='f',
2343 #       -----------------------------------
2344             typ = bool,
2345             defaut = False,
2346             fr = """Determine s''il y a des conditions ouvertes sur le fond.""",
2347             ang = """Defines if there are open boundary conditions
2348 on the bed.""",
2349         ),
2350 #       -----------------------------------
2351         PRESCRIBED_FLOWRATES_ON_THE_BED = SIMP(statut ='f',
2352 #       -----------------------------------
2353             typ = 'R', min=0, max='**',
2354             defaut = [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.],
2355             fr = """Fixe le debit sur les frontieres a debit impose du fond.""",
2356             ang = """Sets the value for flow rate on flow
2357 rate-imposed bed boundaries.""",
2358         ),
2359     ),
2360 #   -----------------------------------
2361     INITIALIZATION = FACT(statut='o',
2362 #   -----------------------------------
2363 #       -----------------------------------
2364         INITIAL_CONDITIONS = SIMP(statut ='o',
2365 #       -----------------------------------
2366             typ = 'TXM',
2367             into = ['ZERO ELEVATION','CONSTANT ELEVATION','ZERO DEPTH','CONSTANT DEPTH','SPECIAL','PARTICULAR','TPXO SATELLITE ALTIMETRY'],
2368             defaut = 'ZERO ELEVATION',
2369             fr = """Permet de definir les conditions initiales sur
2370 les hauteurs d''eau notamment.
2371 Les valeurs possibles sont :
2372 \begin{itemize}
2373 \item COTE NULLE : Initialise la cote de surface libre a 0.
2374            Les hauteurs d''eau initiales sont alors retrouvees en
2375            faisant la difference entre les cotes de surface libre
2376            et du fond ;
2377 \item COTE CONSTANTE : Initialise la cote de surface libre a la
2378 valeur donnee par le mot-cle \telkey{COTE INITIALE}. Les hauteurs
2379 d''eau initiales sont calculees comme precedemment ;
2380 \item HAUTEUR NULLE : Initialise les hauteurs d''eau a 0 ;
2381 \item HAUTEUR CONSTANTE : Initialise les hauteurs d''eau a la valeur
2382 donnee par le mot-cle \telkey{HAUTEUR INITIALE} ;
2383 \item ALTIMETRIE SATELLITE TPXO : Les conditions initiales sur la
2384 hauteur d''eau et les vitesses sont etablies sur la base des donnees
2385 satellite TPXO dont les 8 premieres composantes ont ete extraites et
2386 sauvees dans les fichiers
2387 \telkey{BASE BINAIRE 1/2 DE DONNEES DE MAREE} ;
2388 \item PARTICULIERES : Les conditions initiales sur la hauteur d''eau
2389 doivent etre precisees dans le sous-programme \telkey{USER\_CONDI3D\_H}.
2390 \end{itemize}""",
2391             ang = """Makes it possible to define the initial conditions of
2392 the water depth.
2393 The possible values are as follows:
2394 \begin{itemize}
2395 \item ZERO ELEVATION: Initializes the free surface elevation to 0.
2396 The initial water depths are then found by computing the difference
2397 between the free surface and the bottom,
2398 \item CONSTANT ELEVATION: Initializes the water elevation to the value
2399 given by the keyword \telkey{INITIAL ELEVATION}.
2400 The initial water depths are computed as in the previous case,
2401 \item ZERO DEPTH: Initializes the water depths to 0.
2402 \item CONSTANT DEPTH: Initializes the water depths to the value given
2403 by the keyword \telkey{INITIAL DEPTH},
2404 \item TPXO SATELITE ALTIMETRY: The initial conditions on the free
2405 surface and velocities are established from the satellite program
2406 data given by the harmonic constants database coming from OSU
2407 (e.g. TPXO) and stored in the \telkey{BINARY DATABASE 1/2 FOR TIDE},
2408 \item SPECIAL or PARTICULAR: The initial conditions with the water depth
2409 should be stated in the \telfile{USER\_CONDI3D\_H} subroutine.
2410 \end{itemize}""",
2411         ),
2412 #       -----------------------------------
2413         b_INITIAL_CONDITIONSG = BLOC(condition="INITIAL_CONDITIONS == 'CONSTANT ELEVATION'",
2414 #       -----------------------------------
2415 #           -----------------------------------
2416             INITIAL_ELEVATION = SIMP(statut ='o',
2417 #           -----------------------------------
2418                 typ = 'R',
2419                 defaut = 0.,
2420                 fr = """Valeur utilisee avec l''option :
2421 \telkey{CONDITIONS INITIALES} : ''COTE CONSTANTE''.""",
2422                 ang = """Value to be used with the option:
2423 \telkey{INITIAL CONDITIONS} : ''CONSTANT ELEVATION''.""",
2424             ),
2425         ),
2426 #       -----------------------------------
2427         b_INITIAL_CONDITIONSH = BLOC(condition="INITIAL_CONDITIONS == 'CONSTANT DEPTH'",
2428 #       -----------------------------------
2429 #           -----------------------------------
2430             INITIAL_DEPTH = SIMP(statut ='o',
2431 #           -----------------------------------
2432                 typ = 'R',
2433                 defaut = 0.,
2434                 fr = """Valeur utilisee avec l''option :
2435 \telkey{CONDITIONS INITIALES} : ''HAUTEUR CONSTANTE''.""",
2436                 ang = """Value to be used along with the option:
2437 \telkey{INITIAL CONDITIONS} : ''CONSTANT DEPTH''.""",
2438             ),
2439         ),
2440     ),
2441 #   -----------------------------------
2442     NUMERICAL_PARAMETERS = FACT(statut='o',
2443 #   -----------------------------------
2444 #       -----------------------------------
2445         MATRIX_STORAGE = SIMP(statut ='o',
2446 #       -----------------------------------
2447             typ = 'TXM',
2448             into = ["classical EBE","Edge-based storage"],
2449             defaut = "Edge-based storage",
2450             fr = """Permet de definir la methode de stockage des matrices.
2451 Les choix possibles sont :
2452 \begin{itemize}
2453 \item 1 : EBE classique ;
2454 \item 3 : stockage par segments.
2455 \end{itemize}""",
2456             ang = """Defines the method to store matrices. The possible choices are:
2457 \begin{itemize}
2458 \item 1: classical EBE,
2459 \item 3: edge-based storage.
2460 \end{itemize}""",
2461         ),
2462 #       -----------------------------------
2463         MASS_LUMPING_FOR_DEPTH = SIMP(statut ='o',
2464 #       -----------------------------------
2465             typ = 'R',
2466             defaut = 0.,
2467             fr = """\telemac{3d} offre la possibilite d''effectuer du
2468 mass-lumping sur $H$.
2469 Ceci revient a ramener tout ou partie (suivant la valeur de ce
2470 coefficient) de la matrice \telfile{AM1 (H)} sur sa diagonale.
2471 Cette technique permet d''accelerer le code dans des proportions tres
2472 importantes et de le rendre egalement beaucoup plus stable. Cependant
2473 les solutions obtenues se trouvent lissees.
2474 Ce parametre fixe le taux de mass-lumping effectue sur $H$.""",
2475             ang = """\telemac{3d} offers the possibility to perform mass-lumping
2476 on $H$.
2477 This gathers all or part (given the value of the coefficient)
2478 of the \telfile{AM1(H)} matrices on their diagonal.
2479 This technique can speed-up the code a lot and also render it
2480 more stable.
2481 Yet, the solutions are smoothened.
2482 This parameter sets the mass-lumping amount done for $H$.""",
2483         ),
2484 #       -----------------------------------
2485         HYDROSTATIC_INCONSISTENCY_FILTER = SIMP(statut ='f',
2486 #       -----------------------------------
2487             typ = bool,
2488             defaut = False,
2489             fr = """Permet de filtrer les inconsistances hydrostatiques.""",
2490             ang = """Allows to filter hydrostatic inconsistencies.""",
2491         ),
2492 #       -----------------------------------
2493         DISCRETISATION = FACT(statut='o',
2494 #       -----------------------------------
2495 #           -----------------------------------
2496             ELEMENT = SIMP(statut ='o',
2497 #           -----------------------------------
2498                 typ = 'TXM',
2499                 defaut = 'PRISM',
2500                 fr = """Permet de specifier le type d''element utilise pour le calcul.
2501 Les choix possibles sont :
2502 \begin{itemize}
2503 \item PRISME : maillages de triangles empiles ;
2504 \item TETRAEDRE : decoupage en tetraedres des prismes.
2505 \end{itemize}""",
2506                 ang = """Specifies the type of elements used in the computation.
2507 The possible choices are:
2508 \begin{itemize}
2509 \item PRISM: superimposed meshes of triangles,
2510 \item TETRAHEDRON: the same but prisms are split into tetrahedrons.
2511 \end{itemize}""",
2512             ),
2513         ),
2514 #       -----------------------------------
2515         PROPAGATION = FACT(statut='o',
2516 #       -----------------------------------
2517 #           -----------------------------------
2518             SOLVER_FOR_PROPAGATION = SIMP(statut ='o',
2519 #           -----------------------------------
2520                 typ = 'TXM',
2521                 into = ["conjugate gradient","conjugate residual","conjugate gradient on a normal equation","minimum error","squared conjugate gradient","cgstab","gmres","direct solver"],
2522                 defaut = "gmres",
2523                 fr = """Permet de choisir le solveur utilise pour la resolution de
2524 l''etape de propagation.
2525 Les choix possibles sont :
2526 \begin{itemize}
2527 \item 1 : gradient conjugue ;
2528 \item 2 : residu conjugue ;
2529 \item 3 : gradient conjugue sur equation normale ;
2530 \item 4 : erreur minimale ;
2531 \item 5 : gradient conjugue carre ;
2532 \item 6 : CGSTAB ;
2533 \item 7 : GMRES ;
2534 \item 8 : solveur direct.
2535 \end{itemize}
2536 Ancienne valeur par defaut = 1 (gradient conjugue) jusqu a la version
2537 V8P0.""",
2538                 ang = """Choice of the solver for the propagation equation.
2539 Possible choices are:
2540 \begin{itemize}
2541 \item 1: conjugate gradient,
2542 \item 2: conjugate residual,
2543 \item 3: conjugate gradient on a normal equation,
2544 \item 4: minimum error,
2545 \item 5: squared conjugate gradient,
2546 \item 6: CGSTAB,
2547 \item 7: GMRES,
2548 \item 8: direct solver.
2549 \end{itemize}
2550 Old default value = 1 (conjugate gradient) until version V8P0.""",
2551             ),
2552 #           -----------------------------------
2553             b_SOLVER_FOR_PROPAGATIONG = BLOC(condition="SOLVER_FOR_PROPAGATION == 'gmres'",
2554 #           -----------------------------------
2555 #               -----------------------------------
2556                 OPTION_OF_SOLVER_FOR_PROPAGATION = SIMP(statut ='o',
2557 #               -----------------------------------
2558                     typ = 'I',
2559                     defaut = 5,
2560                     fr = """Dimension de l''espace de Krylov pour la methode GMRES (7).
2561 Ancienne valeur par defaut = 3 jusqu a la version V8P0.""",
2562                     ang = """Dimension of Krylov space for the GMRES method (7).
2563 Old default value = 3 until version V8P0.""",
2564                 ),
2565             ),
2566 #           -----------------------------------
2567             ACCURACY_FOR_PROPAGATION = SIMP(statut ='o',
2568 #           -----------------------------------
2569                 typ = 'R',
2570                 defaut = 1.E-8,
2571                 fr = """Fixe la precision demandee pour l''etape de propagation.
2572 Ancienne valeur par defaut = 1.E-6 jusqu a la version V8P0.""",
2573                 ang = """Sets the accuracy needed for the computation
2574 of the propagation step.
2575 Old default value = 1.E-6 until version V8P0.""",
2576             ),
2577 #           -----------------------------------
2578             MAXIMUM_NUMBER_OF_ITERATIONS_FOR_PROPAGATION = SIMP(statut ='o',
2579 #           -----------------------------------
2580                 typ = 'I',
2581                 defaut = 200,
2582                 fr = """Les algorithmes utilises pour la resolution de l''etape de
2583 propagation etant iteratifs; il est necessaire de limiter le nombre
2584 d''iterations autorisees.
2585 Remarque : un maximum de 40 iterations par pas de temps semble
2586 raisonnable.""",
2587                 ang = """Since the algorithms used for solving the propagation step are
2588 iterative, the allowed number of iterations should be limited.
2589 NOTE: a maximum number of 40 iterations per time step seems to be
2590 reasonable.""",
2591             ),
2592 #           -----------------------------------
2593             PRECONDITIONING_FOR_PROPAGATION = SIMP(statut ='o',
2594 #           -----------------------------------
2595                 typ = 'TXM',
2596                 into = ["no preconditioning","diagonal","diagonal condensed","diagonal with absolute values","Crout","Gauss-Seidel EBE","Matrix defined by the user","diagonal and Crout","direct solver on the vertical","diagonal condensed and Crout","diagonal and direct solver on the vertical"],
2597                 defaut = "diagonal",
2598                 fr = """Permet de preconditionner le systeme de l''etape de propagation
2599 afin d''accelerer la convergence lors de sa resolution. Les choix
2600 possibles sont :
2601 \begin{itemize}
2602 \item 0 : aucun ;
2603 \item 2 : diagonal ;
2604 \item 3 : diagonal avec matrice condensee ;
2605 \item 5 : diagonal avec valeurs absolues ;
2606 \item 7 : Crout ;
2607 \item 11 : Gauss-Seidel EBE ;
2608 \item 13 : matrice fournie par l''utilisateur ;
2609 \item 14 : diagonal et Crout ;
2610 \item 17 : solveur direct sur la verticale ;
2611 \item 21 : diagonal condensee et Crout ;
2612 \item 34 : diagonal et solveur direct sur la verticale.
2613 \end{itemize}
2614 Certains preconditionnements sont cumulables
2615 (les diagonaux 2 ou 3 avec les autres).
2616 Pour cette raison on ne retient que les nombres premiers pour
2617 designer les preconditionnements. Si l''on souhaite en cumuler
2618 plusieurs on formera le produit des options correspondantes.""",
2619                 ang = """Choice of the preconditioning in the propagation step linear
2620 system that the convergence is speeded up when it is being solved.
2621 Possible choices are:
2622 \begin{itemize}
2623 \item 0: no preconditioning,
2624 \item 2: diagonal,
2625 \item 3: diagonal with the condensed matrix,
2626 \item 5: diagonal with absolute values,
2627 \item 7: Crout,
2628 \item 11: Gauss-Seidel EBE,
2629 \item 13: matrix defined by the user,
2630 \item 14: diagonal and Crout,
2631 \item 17: direct solver on the vertical,
2632 \item 21: diagonal condensed and Crout,
2633 \item 34: diagonal and direct solver on the vertical.
2634 \end{itemize}
2635 Some operations (either 2 or 3 diagonal preconditioning) can be
2636 performed concurrently with the others.
2637 Only prime numbers are therefore kept to denote the preconditioning
2638 operations. When several of them are to be performed concurrently,
2639 the product of relevant options shall be done.""",
2640             ),
2641 #           -----------------------------------
2642             INITIAL_GUESS_FOR_DEPTH = SIMP(statut ='o',
2643 #           -----------------------------------
2644                 typ = 'TXM',
2645                 into = ["zero","previous","extrapolation"],
2646                 defaut = "previous",
2647                 fr = """Tir initial du solveur de l''etape de propagation.
2648 Offre la possibilite de modifier la valeur initiale de $\delta h$,
2649 accroissement de $h$, a chaque iteration,
2650 dans l''etape de propagation en utilisant les valeurs
2651 finales de cette variable aux pas de temps precedents. Ceci peut
2652 permettre d''accelerer la vitesse de convergence lors de la resolution
2653 du systeme. Trois possibilites sont offertes :
2654 \begin{itemize}
2655 \item 0 : $\delta h$ = 0,
2656 \item 1 : $\delta h$ = $\delta h_n$ (valeur finale de $\delta h$
2657  au pas de temps precedent),
2658 \item 2 : $\delta h$ = 2 $\delta h_n$ - $\delta h_{n-1}$
2659 (extrapolation).
2660 \end{itemize}
2661 Si l option 2 est utilisee avec la version non-hydrostatique,
2662 \telkey{ORDRE DU TIR INITIAL POUR LA HAUTEUR} est automatiquement
2663 mis a 1.""",
2664                 ang = """Initial guess for the solver in the propagation step.
2665 Makes it possible to modify the initial value of $\delta h$, upon each
2666 iteration in the propagation step, by using the ultimate values this
2667 variable had in the earlier time steps. Thus, the convergence can be
2668 speeded up when the system is being solved. 3 options are available:
2669 \begin{itemize}
2670 \item 0: $\delta h$ = 0,
2671 \item 1: $\delta h$ = $\delta h_n$  (ultimate $\delta h$ value
2672 in the next previous time step),
2673 \item 2: $\delta h$ = 2 $\delta h_n$ - $\delta h_{n-1}$ (extrapolation).
2674 \end{itemize}
2675 If option 2 with the non-hydrostatic version,
2676 \telkey{INITIAL GUESS FOR DEPTH} is automatically set to 1.""",
2677             ),
2678 #           -----------------------------------
2679             LINEARIZED_PROPAGATION = SIMP(statut ='o',
2680 #           -----------------------------------
2681                 typ = bool,
2682                 defaut = False,
2683                 fr = """Permet de lineariser l''etape de propagation,
2684 par exemple lors de la realisation de cas tests pour lesquels on dispose
2685 d''une solution analytique dans le cas linearise.
2686 Il faut alors preciser la valeur de
2687 \telkey{PROFONDEUR MOYENNE POUR LA LINEARISATION}.""",
2688                 ang = """Provided for linearizing the propagation step, e.g. when
2689 performing test-cases for which an analytical solution in the linearized
2690 case is available.
2691 Thus, the value of \telkey{MEAN DEPTH FOR LINEARIZATION} has
2692 to be given.""",
2693             ),
2694 #           -----------------------------------
2695             MEAN_DEPTH_FOR_LINEARIZATION = SIMP(statut ='o',
2696 #           -----------------------------------
2697                 typ = 'R',
2698                 defaut = 0.,
2699                 fr = """Fixe la hauteur d''eau autour de laquelle s''effectue la linearisation
2700 lorsque l''option \telkey{PROPAGATION LINEARISEE} est choisie.""",
2701                 ang = """Sets the water depth about which the linearization is done
2702 when the \telkey{LINEARIZED PROPAGATION} option is selected.""",
2703             ),
2704         ),
2705 #       -----------------------------------
2706         ADVECTION = FACT(statut='o',
2707 #       -----------------------------------
2708 #           -----------------------------------
2709             SCHEME_FOR_ADVECTION_OF_DEPTH = SIMP(statut ='f',
2710 #           -----------------------------------
2711                 typ = 'I',
2712                 defaut = 5,
2713                 fr = """Le schema conservatif (5) est desormais impose.""",
2714                 ang = """The conservative scheme (5) is now mandatory.""",
2715             ),
2716 #           -----------------------------------
2717             SCHEME_FOR_ADVECTION_OF_VELOCITIES = SIMP(statut ='o',
2718 #           -----------------------------------
2719                 typ = 'TXM',
2720                 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"],
2721                 defaut = "EXPLICIT + MURD SCHEME PSI",
2722                 fr = """Fixe le schema utilise pour la convection des vitesses.
2723 Les choix possibles sont :
2724 \begin{itemize}
2725 \item 0 : pas de convection ;
2726 \item 1 : caracteristiques ;
2727 \item 2 : explicite + SUPG ;
2728 \item 3 : explicite Leo Postma ;
2729 \item 4 : explicite + MURD schema N ;
2730 \item 5 : explicite + MURD schema PSI ;
2731 \item 13 : Leo Postma pour bancs decouvrants ;
2732 \item 14 : schema N pour bancs decouvrants.
2733 \end{itemize}
2734 Valeurs par defaut de
2735 \telkey{SCHEMA POUR LA CONVECTION DES VITESSES} = 5
2736 + \telkey{OPTION DU SCHEMA POUR LA CONVECTION DES VITESSES} = 4 donnent
2737 le schema LIPS.
2738 Ancienne valeur par defaut = 1 (caracteristiques) jusqu a la version
2739 V8P0.""",
2740                 ang = """Sets the advection scheme for the velocities.
2741 Possible choices are:
2742 \begin{itemize}
2743 \item 0: no convection,
2744 \item 1: characteristics,
2745 \item 2: explicit + SUPG,
2746 \item 3: explicit Leo Postma,
2747 \item 4: explicit + MURD scheme N,
2748 \item 5: explicit + MURD scheme PSI,
2749 \item 13: Leo Postma for tidal flats,
2750 \item 14: N-scheme for tidal flats.
2751 \end{itemize}
2752 Default values for \telkey{SCHEME FOR ADVECTION OF VELOCITIES} = 5
2753 + \telkey{SCHEME OPTION FOR ADVECTION OF VELOCITIES} = 4
2754 give LIPS scheme.
2755 Old default value = 1 (characteristics) until version V8P0.""",
2756             ),
2757 #           -----------------------------------
2758             FREE_SURFACE_GRADIENT_COMPATIBILITY = SIMP(statut ='o',
2759 #           -----------------------------------
2760                 typ = 'R',
2761                 defaut = 1.,
2762                 fr = """Des valeurs comprises entre 0 et 1 peuvent supprimer les
2763 oscillations parasites.""",
2764                 ang = """Values between 0 and 1 may suppress spurious oscillations.""",
2765             ),
2766 #           -----------------------------------
2767             BYPASS_VOID_VOLUMES = SIMP(statut ='f',
2768 #           -----------------------------------
2769                 typ = bool,
2770                 defaut = False,
2771                 fr = """Accelere les schemas de convection distributifs et volumes finis
2772 en cas de bancs decouvrants ou de transformation sigma generalisee.""",
2773                 ang = """Will speed-up distributive and finite volumes advection
2774 schemes in case of tidal flats or generalised sigma transformation.""",
2775             ),
2776 #           -----------------------------------
2777             MASS_LUMPING_FOR_VELOCITIES = SIMP(statut ='o',
2778 #           -----------------------------------
2779                 typ = 'R',
2780                 defaut = 0.,
2781                 fr = """Fixe le taux de mass-lumping effectue sur la vitesse.
2782 Lu mais non utilise.""",
2783                 ang = """Sets the amount of mass-lumping that is performed on
2784 the velocity. Read but not used.""",
2785             ),
2786 #           -----------------------------------
2787             SCHEME_OPTION_FOR_ADVECTION_OF_VELOCITIES = SIMP(statut ='f',
2788 #           -----------------------------------
2789                 typ = 'I',
2790                 defaut = 4,
2791                 fr = """Si present remplace et a priorite sur :
2792 \telkey{OPTION POUR LES CARACTERISTIQUES} et
2793 \telkey{OPTION DE SUPG}.
2794 Si schema PSI ou N :
2795 \begin{itemize}
2796 \item 1 : explicite ;
2797 \item 2 : predicteur-correcteur ;
2798 \item 3 : predicteur-correcteur deuxieme ordre en temps ;
2799 \item 4 : implicite (compatible avec bancs decouvrants).
2800 \end{itemize}
2801 Si pas de bancs decouvrants, l option 2 est plus rapide.
2802 Ancienne valeur par defaut = 1 (explicite) jusqu a la version V8P0.""",
2803                 ang = """If present replaces and has priority over:
2804 \telkey{OPTION FOR CHARACTERISTICS} and
2805 \telkey{SUPG OPTION}.
2806 If N or PSI scheme:
2807 \begin{itemize}
2808 \item 1: explicit,
2809 \item 2: predictor-corrector,
2810 \item 3: predictor-corrector second-order in time,
2811 \item 4: implicit (compatible with tidal flats).
2812 \end{itemize}
2813 If no tidal flats, option 2 is faster.
2814 Old default value = 1 (explicit) until version V8P0.""",
2815             ),
2816 #           -----------------------------------
2817             OPTION_FOR_CHARACTERISTICS = SIMP(statut ='o',
2818 #           -----------------------------------
2819                 typ = 'TXM',
2820                 into = ["strong","weak"],
2821                 defaut = "strong",
2822                 fr = """Les choix possibles sont :
2823 \begin{itemize}
2824 \item 1: forme forte ;
2825 \item 2: forme faible.
2826 \end{itemize}
2827 Si \telkey{SCHEMA POUR LA CONVECTION...} = 1
2828 et le mot-cle correspondant
2829 \telkey{OPTION DU SCHEMA POUR LA CONVECTION...} = 2,
2830 \telkey{OPTION POUR LES CARACTERISTIQUES} est automatiquement mis a 2.""",
2831                 ang = """Possible choices are:
2832 \begin{itemize}
2833 \item 1: strong form,
2834 \item 2: weak form.
2835 \end{itemize}
2836 If \telkey{SCHEME FOR ADVECTION OF...} = 1
2837 and also the corresponding keyword
2838 \telkey{SCHEME OPTION FOR ADVECTION OF...} = 2,
2839 \telkey{OPTION FOR CHARACTERISTICS} is automatically set to 2.""",
2840             ),
2841 #           -----------------------------------
2842             b_OPTION_FOR_CHARACTERISTICSG = BLOC(condition="OPTION_FOR_CHARACTERISTICS == 2",
2843 #           -----------------------------------
2844 #               -----------------------------------
2845                 NUMBER_OF_GAUSS_POINTS_FOR_WEAK_CHARACTERISTICS = SIMP(statut ='f',
2846 #               -----------------------------------
2847                     typ = 'I',
2848                     defaut = 6,
2849                     fr = """Voir les release notes v6.3.
2850 Nombre de points de Gauss utilises pour le calcul des caracteristiques
2851 faibles.
2852 6 (points) est le seul choix pour \telemac{3d}.""",
2853                     ang = """See release notes v6.3.
2854 Number of Gauss points used to compute the weak characteristics.
2855 6 (points) is the only choice for \telemac{3d}.""",
2856                 ),
2857 #               -----------------------------------
2858                 MASS_LUMPING_FOR_WEAK_CHARACTERISTICS = SIMP(statut ='o',
2859 #               -----------------------------------
2860                     typ = 'R',
2861                     defaut = 0.,
2862                     fr = """Fixe le taux de mass-lumping qui est applique a la matrice de
2863 masse lors de l''utilisation des caracteristiques faibles.""",
2864                     ang = """Sets the amount of mass-lumping that is applied to the mass
2865 matrix when using weak characteristics.""",
2866                 ),
2867             ),
2868         ),
2869 #       -----------------------------------
2870         DIFFUSION = FACT(statut='o',
2871 #       -----------------------------------
2872 #           -----------------------------------
2873             SCHEME_FOR_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
2874 #           -----------------------------------
2875                 typ = 'TXM',
2876                 into = ["NO DIFFUSION","IMPLICIT"],
2877                 defaut = "IMPLICIT",
2878                 fr = """Permet de specifier si l''on utilise ou non la diffusion
2879 des vitesses horizontales $U$ et $V$.
2880 Les choix possibles sont :
2881 \begin{itemize}
2882 \item 0 : pas de diffusion,
2883 \item 1 : implicite.
2884 \end{itemize}""",
2885                 ang = """Monitors the choice of the diffusion scheme
2886 for velocities.
2887 Possible choices are:
2888 \begin{itemize}
2889 \item 0: no diffusion,
2890 \item 1: implicit.
2891 \end{itemize}""",
2892             ),
2893 #           -----------------------------------
2894             b_SCHEME_FOR_DIFFUSION_OF_VELOCITIESG = BLOC(condition="SCHEME_FOR_DIFFUSION_OF_VELOCITIES == 'IMPLICIT'",
2895 #           -----------------------------------
2896 #               -----------------------------------
2897                 SOLVER_FOR_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
2898 #               -----------------------------------
2899                     typ = 'TXM',
2900                     into = ["conjugate gradient","conjugate residual","conjugate gradient on a normal equation","minimum error","squared conjugate gradient","cgstab","gmres","direct solver"],
2901                     defaut = "conjugate gradient",
2902                     fr = """Permet de choisir le solveur utilise pour la resolution
2903 de la diffusion des vitesses $U$ et $V$.
2904 Les choix possibles sont :
2905 \begin{itemize}
2906 \item 1 : gradient conjugue ;
2907 \item 2 : residu conjugue ;
2908 \item 3 : gradient conjugue sur equation normale ;
2909 \item 4 : erreur minimale ;
2910 \item 5 : gradient conjugue carre ;
2911 \item 6 : CGSTAB ;
2912 \item 7 : GMRES ;
2913 \item 8 : solveur direct.
2914 \end{itemize}""",
2915                     ang = """Choice of the solver for the diffusion of velocities
2916 $U$ and $V$.
2917 Possible choices are:
2918 \begin{itemize}
2919 \item 1: conjugate gradient,
2920 \item 2: conjugate residual,
2921 \item 3: conjugate gradient on a normal equation,
2922 \item 4: minimum error,
2923 \item 5: squared conjugate gradient,
2924 \item 6: CGSTAB,
2925 \item 7: GMRES,
2926 \item 8: direct solver.
2927 \end{itemize}""",
2928                 ),
2929 #               -----------------------------------
2930                 b_SOLVER_FOR_DIFFUSION_OF_VELOCITIESG = BLOC(condition="SOLVER_FOR_DIFFUSION_OF_VELOCITIES == 'gmres'",
2931 #               -----------------------------------
2932 #                   -----------------------------------
2933                     OPTION_OF_SOLVER_FOR_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
2934 #                   -----------------------------------
2935                         typ = 'I',
2936                         defaut = 5,
2937                         fr = """Dimension de l''espace de Krylov pour la methode GMRES (7).
2938 Ancienne valeur par defaut = 3 jusqu a la version V8P0.""",
2939                         ang = """Dimension of Krylov space for the GMRES method (7).
2940 Old default value = 3 until version V8P0.""",
2941                     ),
2942                 ),
2943 #               -----------------------------------
2944                 ACCURACY_FOR_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
2945 #               -----------------------------------
2946                     typ = 'R',
2947                     defaut = 1.E-8,
2948                     fr = """Fixe la precision demandee pour le calcul de la diffusion
2949 de la vitesse.
2950 Ancienne valeur par defaut = 1.E-5 jusqu a la version V8P0.""",
2951                     ang = """Sets the accuracy needed for the computation of the
2952 diffusion of the velocities.
2953 Old default value = 1.E-5 until version V8P0.""",
2954                 ),
2955 #               -----------------------------------
2956                 MAXIMUM_NUMBER_OF_ITERATIONS_FOR_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
2957 #               -----------------------------------
2958                     typ = 'I',
2959                     defaut = 60,
2960                     fr = """Limite le nombre d''iterations du solveur a chaque pas
2961 de temps pour le calcul de la diffusion de la vitesse.""",
2962                     ang = """Limits the number of solver iterations for the diffusion of
2963 velocities.""",
2964                 ),
2965 #               -----------------------------------
2966                 PRECONDITIONING_FOR_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
2967 #               -----------------------------------
2968                     typ = 'TXM',
2969                     into = ["no preconditioning","diagonal","diagonal condensed","diagonal with absolute values","Crout","Gauss-Seidel EBE","Matrix defined by the user","diagonal and Crout","direct solver on the vertical","diagonal condensed and Crout","diagonal and direct solver on the vertical"],
2970                     defaut = "diagonal",
2971                     fr = """Permet de preconditionner le systeme relatif
2972 a la diffusion des vitesses. Les choix possibles sont :
2973 \begin{itemize}
2974 \item 0 : aucun ;
2975 \item 2 : diagonal ;
2976 \item 3 : diagonal avec matrice condensee ;
2977 \item 5 : diagonal avec valeurs absolues ;
2978 \item 7 : Crout ;
2979 \item 11 : Gauss-Seidel EBE ;
2980 \item 13 : matrice fournie par l''utilisateur ;
2981 \item 14 : diagonal et Crout ;
2982 \item 17 : solveur direct sur la verticale ;
2983 \item 21 : diagonal condensee et Crout ;
2984 \item 34 : diagonal et solveur direct sur la verticale.
2985 \end{itemize}""",
2986                     ang = """Choice of preconditioning for the diffusion of
2987 velocities. Possible choices are:
2988 \begin{itemize}
2989 \item 0: no preconditioning,
2990 \item 2: diagonal,
2991 \item 3: diagonal with the condensed matrix,
2992 \item 5: diagonal with absolute values,
2993 \item 7: Crout,
2994 \item 11: Gauss-Seidel EBE,
2995 \item 13: matrix defined by the user,
2996 \item 14: diagonal and Crout,
2997 \item 17: direct solver on the vertical,
2998 \item 21: diagonal condensed and Crout,
2999 \item 34: diagonal and direct solver on the vertical.
3000 \end{itemize}""",
3001                 ),
3002 #               -----------------------------------
3003                 IMPLICITATION_FOR_DIFFUSION = SIMP(statut ='o',
3004 #               -----------------------------------
3005                     typ = 'R',
3006                     defaut = 1.,
3007                     fr = """Fixe la valeur du coefficient d''implication pour l''etape de
3008 diffusion.
3009 Dans le cas de \telkey{OPTION POUR LA DIFFUSION} = 2, cette valeur est
3010 ecrasee a 0 et un traitement particulier est fait pour la diffusion.""",
3011                     ang = """Sets the value of the implicitation coefficient for the
3012 diffusion step.
3013 When \telkey{OPTION FOR THE DIFFUSION} = 2, this value is changed at 0
3014 and a specific treatment is done for the diffusion.""",
3015                 ),
3016             ),
3017         ),
3018 #       -----------------------------------
3019         NON_HYDROSTATIC = FACT(statut='o',
3020 #       -----------------------------------
3021         ),
3022 #       -----------------------------------
3023         IMPLICITATION = FACT(statut='o',
3024 #       -----------------------------------
3025 #           -----------------------------------
3026             IMPLICITATION_FOR_DEPTH = SIMP(statut ='o',
3027 #           -----------------------------------
3028                 typ = 'R',
3029                 defaut = 0.55,
3030                 fr = """Fixe la valeur du coefficient d''implicitation sur la hauteur
3031 d''eau dans l''etape de propagation (cf. Note de principe).
3032 Les valeurs inferieures a 0.5 donnent un schema instable.""",
3033                 ang = """Sets the value of the implicitation coefficient for water
3034 depth in the propagation step (cf. Principe note).
3035 The values lower than 0.5 give an instable scheme.""",
3036             ),
3037 #           -----------------------------------
3038             IMPLICITATION_FOR_VELOCITIES = SIMP(statut ='o',
3039 #           -----------------------------------
3040                 typ = 'R',
3041                 defaut = 0.55,
3042                 fr = """Fixe la valeur du coefficient d''implicitation sur la vitesse
3043 dans l''etape de propagation (cf.  Note de principe).
3044 Les valeurs inferieures a 0.5 donnent un schema instable.
3045 Ancienne valeur par defaut = 1. jusqu a la version V8P0.""",
3046                 ang = """Sets the value of the implicitation coefficient
3047 for the velocity
3048 in the propagation step (cf. Principe note).
3049 The values lower than 0.5 give an instable scheme.
3050 Old default value = 1. until V8P0.""",
3051             ),
3052         ),
3053     ),
3054 #   -----------------------------------
3055     TIDAL_FLATS_INFO = FACT(statut='o',
3056 #   -----------------------------------
3057 #       -----------------------------------
3058         TIDAL_FLATS = SIMP(statut ='o',
3059 #       -----------------------------------
3060             typ = bool,
3061             defaut = True,
3062             fr = """Permet de supprimer les tests sur les bancs decouvrants, dans
3063 les cas ou l''on est certain qu''il n''y en aura pas.
3064 En cas de doute, utiliser OUI.""",
3065             ang = """When NO, the specific treatments for tidal flats are by-passed.
3066 This spares time, but of course you must be sure that you have no
3067 tidal flats.""",
3068         ),
3069 #       -----------------------------------
3070         b_TIDAL_FLATSG = BLOC(condition="TIDAL_FLATS == True",
3071 #       -----------------------------------
3072 #           -----------------------------------
3073             OPTION_FOR_THE_TREATMENT_OF_TIDAL_FLATS = SIMP(statut ='o',
3074 #           -----------------------------------
3075                 typ = 'TXM',
3076                 into = ["EQUATIONS SOLVED EVERYWHERE WITH CORRECTION ON TIDAL FLATS","DRY ELEMENTS FROZEN","LIKE 1 BUT WITH POROSITY (DEFINA METHOD)"],
3077                 defaut = "EQUATIONS SOLVED EVERYWHERE WITH CORRECTION ON TIDAL FLATS",
3078                 fr = """Utilise si \telkey{BANCS DECOUVRANTS} est OUI.
3079 Les choix possibles sont :
3080 \begin{itemize}
3081 \item 1 : equations resolues partout avec correction
3082 sur les bancs decouvrants (correction du gradient de surface libre) ;
3083 \item 2 : gel des elements decouvrants (zones de bancs decouvrants
3084 sont masquees).
3085 Attention : la conservation de la masse peut etre alteree ;
3086 \item 3 : comme 1 mais avec porosite (methode defina).
3087 \end{itemize}""",
3088                 ang = """Used if \telkey{TIDAL FLATS} is YES.
3089 Possible choices are:
3090 \begin{itemize}
3091 \item 1: equations solved everywhere with correction on tidal flats
3092 (corrected free surface gradient),
3093 \item 2: dry elements are frozen (tidal flats area are masked).
3094 Warning: mass-conservation may be altered,
3095 \item 3: like 1 but with porosity (defina method).
3096 \end{itemize}""",
3097             ),
3098 #           -----------------------------------
3099             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'",
3100 #           -----------------------------------
3101 #               -----------------------------------
3102                 TREATMENT_OF_NEGATIVE_DEPTHS = SIMP(statut ='o',
3103 #               -----------------------------------
3104                     typ = 'TXM',
3105                     into = ["NO TREATMENT","SMOOTHING","FLUX CONTROL"],
3106                     defaut = "SMOOTHING",
3107                     fr = """Seulement avec \telkey{OPTION DE TRAITEMENT DES BANCS DECOUVRANTS}
3108 = 1. Les choix possibles sont :
3109 \begin{itemize}
3110 \item 0 : pas de traitement ;
3111 \item 1 : lissage ;
3112 \item 2 : limitation des flux.
3113 \end{itemize}
3114 Si l option 2 avec bancs decouvrants est utilisee,
3115 il est obligatoire d avoir \telkey{MASS-LUMPING SUR H} = 1.""",
3116                     ang = """Only with \telkey{OPTION FOR THE TREATMENT OF TIDAL FLATS}
3117 = 1. Possible choices are:
3118 \begin{itemize}
3119 \item 0: no treatment,
3120 \item 1: smoothing,
3121 \item 2: flux control.
3122 \end{itemize}
3123 If using option 2 with tidal flats, it is mandatory to set
3124 \telkey{MASS-LUMPING ON H} = 1.""",
3125                 ),
3126             ),
3127 #           -----------------------------------
3128             TREATMENT_ON_TIDAL_FLATS_FOR_VELOCITIES = SIMP(statut ='f',
3129 #           -----------------------------------
3130                 typ = 'TXM',
3131                 into = ["FORCED TO ZERO","VALUE BEFORE MASKED"],
3132                 defaut = "FORCED TO ZERO",
3133                 fr = """Traitement sur les bancs decouvrants a l''etape de diffusion.
3134 \begin{itemize}
3135 \item 0 : forcage a zero ;
3136 \item 1 : valeur avant masquage.
3137 \end{itemize}""",
3138                 ang = """Treatment of tidal flats at the diffusion step for velocities.
3139 \begin{itemize}
3140 \item 0: forced to zero,
3141 \item 1: value before masked.
3142 \end{itemize}""",
3143             ),
3144 #           -----------------------------------
3145             THRESHOLD_FOR_VISCOSITY_CORRECTION_ON_TIDAL_FLATS = SIMP(statut ='o',
3146 #           -----------------------------------
3147                 typ = 'R',
3148                 defaut = 0.2,
3149                 fr = """Pour les profondeurs inferieures, la viscosite sera
3150 progressivement reduite. Voir le sous-programme
3151 \telfile{CLIP}.""",
3152                 ang = """Below the threshold, viscosity will be progressively
3153 cancelled. See \telfile{CLIP} subroutine.""",
3154             ),
3155         ),
3156 #       -----------------------------------
3157         MINIMAL_VALUE_FOR_DEPTH = SIMP(statut ='o',
3158 #       -----------------------------------
3159             typ = 'R',
3160             defaut = -1000.,
3161             fr = """Fixe la valeur minimale de $H$.""",
3162             ang = """Sets the minimum water depth value $H$.""",
3163         ),
3164     ),
3165 #   -----------------------------------
3166     TIDES = FACT(statut='o',
3167 #   -----------------------------------
3168 #       -----------------------------------
3169         BINARY_DATABASE_1_FOR_TIDE = SIMP(statut ='f',
3170 #       -----------------------------------
3171             typ = ('Fichier','All Files (*)'),
3172             defaut = '',
3173             fr = """Nom du fichier de la base de donnees binaire 1. Dans le cas des
3174 donnees satellitaires de l''OSU (type TPXO), ce fichier correspond aux
3175 donnees de niveau d''eau, par exemple h\_tpxo7.2.""",
3176             ang = """File name for the binary database 1 of tidal harmonic
3177 constants. In the case of the OSU satellite altimetry model (TPXO type),
3178 this file should be for free surface level, for instance h\_tpxo7.2.""",
3179         ),
3180 #       -----------------------------------
3181         BINARY_DATABASE_2_FOR_TIDE = SIMP(statut ='f',
3182 #       -----------------------------------
3183             typ = ('Fichier','All Files (*)'),
3184             defaut = '',
3185             fr = """Nom du fichier de la base de donnees binaire 2. Dans le cas des
3186 donnees satellitaires de l''OSU (type TPXO), ce fichier correspond aux
3187 donnees de vitesse de marees, par exemple u\_tpxo7.2.""",
3188             ang = """File name for the binary database 2 of tidal harmonic
3189 constants. In the case of the OSU satellite altimetry model (TPXO type),
3190 this file should be for tidal velocities, for instance u\_tpxo7.2.""",
3191         ),
3192 #       -----------------------------------
3193         GEOGRAPHIC_SYSTEM = SIMP(statut ='f',
3194 #       -----------------------------------
3195             typ = 'TXM',
3196             into = ["NO DEFAULT VALUE","DEFINED BY USER","WGS84 LONGITUDE/LATITUDE IN REAL DEGREES","WGS84 NORTHERN UTM","WGS84 SOUTHERN UTM","LAMBERT","MERCATOR PROJECTION"],
3197             defaut = "NO DEFAULT VALUE",
3198             fr = """Systeme de coordonnees geographiques dans lequel est construit
3199 le modele numerique.
3200 Indiquer la zone correspondante avec le mot-cle.
3201 Indique le systeme de coordonnees geographiques dans lequel est
3202 construit le modele numerique. Les choix possibles sont :
3203 \begin{itemize}
3204 \item 0 : defini par l''utilisateur ;
3205 \item 1 : WGS84 longitude/latitude en degres reels ;
3206 \item 2 : WGS84 nord UTM ;
3207 \item 3 : WGS84 sud UTM ;
3208 \item 4 : Lambert ;
3209 \item 5 : projection Mercator.
3210 \end{itemize}""",
3211             ang = """Geographic coordinates system in which the numerical model is
3212 built. Indicate the corresponding zone with the keyword.
3213 The possible choices are:
3214 \begin{itemize}
3215 \item 0: defined by the user,
3216 \item 1: WGS84 longitude/latitude in real degrees,
3217 \item 2: WGS84 Northern UTM,
3218 \item 3: WGS84 Southern UTM,
3219 \item 4: Lambert,
3220 \item 5: Mercator projection.
3221 \end{itemize}""",
3222         ),
3223 #       -----------------------------------
3224         b_GEOGRAPHIC_SYSTEMG = BLOC(condition="GEOGRAPHIC_SYSTEM in ['WGS84 NORTHERN UTM','WGS84 SOUTHERN UTM','LAMBERT']",
3225 #       -----------------------------------
3226 #           -----------------------------------
3227             ZONE_NUMBER_IN_GEOGRAPHIC_SYSTEM = SIMP(statut ='o',
3228 #           -----------------------------------
3229                 typ = 'I',
3230                 defaut = -1,
3231                 fr = """Numero de zone (fuseau ou type de projection) lors de
3232 l''utilisation d''une projection plane. Indiquer le systeme
3233 geographique dans lequel est construit le modele numerique avec le
3234 mot-cle \telkey{SYSTEME GEOGRAPHIQUE}.
3235 Les choix possibles sont :
3236 \begin{itemize}
3237 \item 1 : Lambert 1 nord ;
3238 \item 2 : Lambert 2 centre ;
3239 \item 3 : Lambert 3 sud ;
3240 \item 4 : Lambert 4 Corse ;
3241 \item 22 : Lambert 2 etendu ;
3242 \item 93 : Lambert 93 ;
3243 \item X : Valeur UTM de la zone WGS84 (X est le numero de la zone).
3244 \end{itemize}""",
3245                 ang = """Number of zone when using a plane projection.
3246 Indicate the geographic system in which the numerical model is built
3247 with the keyword \telkey{GEOGRAPHIC SYSTEM}.
3248 Possible choices are:
3249 \begin{itemize}
3250 \item 1: Lambert 1 north,
3251 \item 2: Lambert 2 center,
3252 \item 3: Lambert 3 south,
3253 \item 4: Lambert 4 Corsica,
3254 \item 22: Lambert 22 extended,
3255 \item 93: Lambert 93,
3256 \item X: UTM zone with WGS84 (X is the number of the zone).
3257 \end{itemize}""",
3258             ),
3259         ),
3260 #       -----------------------------------
3261         LAMBERT_93_CONVERSION_FILE = SIMP(statut ='f',
3262 #       -----------------------------------
3263             typ = ('Fichier','All Files (*)'),
3264             defaut = '',
3265             fr = """Nom du fichier gr3df97a.txt, grille de conversion pour Lambert 93.""",
3266             ang = """Name of file gr3df97a.txt, conversion grid for Lambert 93.""",
3267         ),
3268 #       -----------------------------------
3269         COEFFICIENT_TO_CALIBRATE_SEA_LEVEL = SIMP(statut ='o',
3270 #       -----------------------------------
3271             typ = 'R',
3272             defaut = 0.,
3273             fr = """Coefficient pour ajuster le niveau de mer.
3274 Ce coefficient correspond d''habitude au niveau moyen de la mer
3275 ou une valeur proche.""",
3276             ang = """Coefficient to calibrate the sea level.
3277 This coefficient usually corresponds to the mean sea level
3278 or a close value.""",
3279         ),
3280 #       -----------------------------------
3281         b_GLOBAL_NUMBER_OF_THE_POINT_TO_CALIBRATE_HIGH_WATERF = BLOC(condition="(TIDAL_DATA_BASE == 'TPXO' and OPTION_FOR_TIDAL_BOUNDARY_CONDITIONS >=2 and OPTION_FOR_TIDAL_BOUNDARY_CONDITIONS <= 6)",
3282 #       -----------------------------------
3283         ),
3284 #       -----------------------------------
3285         GLOBAL_NUMBER_OF_THE_POINT_TO_CALIBRATE_HIGH_WATER = SIMP(statut ='o',
3286 #       -----------------------------------
3287             typ = 'I',
3288             defaut = 0,
3289             fr = """Numero global du point
3290 (entre 1 et le nombre de points frontieres du maillage 2D)
3291 par rapport auquel les ondes de maree sont dephasees
3292 pour debuter le calcul par une pleine mer
3293 (en marees schematiques seulement).
3294 Ce point doit etre un point de frontiere maritime.
3295 Ne concerne que les bases de constantes harmoniques de type TPXO.""",
3296             ang = """Global number of the point
3297 (between 1 and the number of boundary nodes in the 2D mesh)
3298 with respect to which the tidal constituents have their phase shifted
3299 to start the calculation with a high water
3300 (for schematic tides only).
3301 This point has to be a maritime boundary node.
3302 Only harmonic constants databases like TPXO are concerned.""",
3303         ),
3304 #       -----------------------------------
3305         MINOR_CONSTITUENTS_INFERENCE = SIMP(statut ='f',
3306 #       -----------------------------------
3307             typ = bool,
3308             defaut = False,
3309             fr = """Pour les solutions developpees par OSU (ex. TPXO) uniquement.
3310 Interpolation de composantes harmoniques mineures
3311 a partir de celles lues dans les fichiers d''entree
3312 lies aux mots-cles \telkey{BASE BINAIRE 1 DE DONNEES DE MAREE}
3313 et \telkey{BASE BINAIRE 2 DE DONNEES DE MAREE}.""",
3314             ang = """For tidal solutions developed by OSU (e.g. TPXO) only.
3315 Inference of minor constituents from the ones read in input files
3316 linked to keywords \telkey{BINARY DATABASE 1 FOR TIDE}
3317 and \telkey{BINARY DATABASE 2 FOR TIDE}.""",
3318         ),
3319 #       -----------------------------------
3320         INITIAL_VELOCITIES_COMPUTED_BY_TPXO = SIMP(statut ='f',
3321 #       -----------------------------------
3322             typ = bool,
3323             defaut = True,
3324             fr = """Composantes de vitesses initiales calculees a partir des
3325 solutions de maree de l OSU (ex TPXO).
3326 Prendre NON pour eviter une initialisation avec des vitesses de maree
3327 trop grandes.
3328 Pour les solutions de marees provenant de l OSU uniquement (ex TPXO).""",
3329             ang = """Initial velocity components computed from a tidal solution from
3330 OSU (e.g. TPXO).
3331 NO to prevent from an initialisation with too big tidal velocities.
3332 For tidal solutions coming from OSU only (e.g. TPXO).""",
3333         ),
3334 #       -----------------------------------
3335         MINIMUM_DEPTH_TO_COMPUTE_TIDAL_VELOCITIES_INITIAL_CONDITIONS = SIMP(statut ='f',
3336 #       -----------------------------------
3337             typ = 'R',
3338             defaut = 0.1,
3339             fr = """Valeur minimale de hauteur d eau au dessus de laquelle les conditions
3340 initiales de courants de maree sont calculees.
3341 Autrement, les vitesses sont annulees.
3342 Pour les solutions de maree provenant de l OSU uniquement (ex TPXO).""",
3343             ang = """Minimum value of water depth above which initial conditions for tidal
3344 velocities are computed.
3345 Otherwise, the velocity components are equal to 0.
3346 For tidal solutions coming from OSU only (e.g. TPXO).""",
3347         ),
3348 #       -----------------------------------
3349         PHYSICAL_PARAMETERS = FACT(statut='o',
3350 #       -----------------------------------
3351 #           -----------------------------------
3352             TIDE_GENERATING_FORCE = SIMP(statut ='o',
3353 #           -----------------------------------
3354                 typ = bool,
3355                 defaut = False,
3356                 fr = """Active la prise en compte de la force generatrice de la maree""",
3357                 ang = """The tide generating force is taken into account.""",
3358             ),
3359         ),
3360 #       -----------------------------------
3361         BOUNDARY_CONDITIONS = FACT(statut='o',
3362 #       -----------------------------------
3363 #           -----------------------------------
3364             OPTION_FOR_TIDAL_BOUNDARY_CONDITIONS = SIMP(statut ='f',
3365 #           -----------------------------------
3366                 typ = 'TXM', min=0, max='**',
3367                 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)"],
3368                 fr = """Option pour les conditions aux limites de maree.
3369 Pour des marees reelles, l''option 1 est recommandee.
3370 Depuis la version 7.1, ce mot-cle est un tableau avec une valeur
3371 donnee par frontiere liquide, separee par point-virgules.
3372 Ceci permet d''avoir des conditions de maree (ou pas) calculees
3373 sur des frontieres liquides avec vitesses ou hauteur d''eau imposees.
3374 Ca evite un conflit lors de l''utilisation de seuils dans le domaine.
3375 0 est le code pour des conditions autres que des conditions de maree.
3376 ATTENTION depuis la version 7.1 !
3377 Les anciens modeles doivent etre changes si la frontiere de maree
3378 n''a pas le numero 1. Dans ce cas, le mot-cle doit etre change et
3379 plus de valeurs doivent etre donnees.
3380 Calage possible par les mots-cles
3381 \telkey{COEFFICIENT POUR CALAGE EN MARNAGE},
3382 \telkey{COEFFICIENT DE CALAGE DES VITESSES DE COURANT},
3383 et \telkey{COEFFICIENT POUR CALAGE EN NIVEAU}.
3384 Les choix possibles sont :
3385 \begin{itemize}
3386 \item 0 : Pas de maree ;
3387 \item 1 : Maree reelle (methodologie recommandee) ;
3388 \item 2 : Maree de vive-eau exceptionnelle (coef. presque 120) ;
3389 \item 3 : Maree de vive-eau moyenne (coef. presque 95) ;
3390 \item 4 : Maree moyenne (coef. presque 70) ;
3391 \item 5 : Maree de morte-eau moyenne (coef. presque 45) ;
3392 \item 6 : Maree de morte-eau exceptionnelle (coef. presque 20) ;
3393 \item 7 : Maree reelle (methodologie d avant 2010).
3394 \end{itemize}""",
3395                 ang = """Option for tidal boundary conditions.
3396 For real tides, option 1 is recommended.
3397 This keyword has been an array with a value given per liquid boundary,
3398 separated by semicolons, since version 7.1.
3399 This enables to have tidal conditions (or not) computed
3400 on liquid boundaries with prescribed velocities or depths,
3401 avoiding a clash when using weirs in the domain.
3402 0 codes for conditions other than tidal.
3403 BEWARE since version 7.1!
3404 Old models must be changed if their tidal boundary is not number 1.
3405 In that case this keyword must be changed and more values given.
3406 Possible calibration with the keywords
3407 \telkey{COEFFICIENT TO CALIBRATE TIDAL RANGE},
3408 \telkey{COEFFICIENT TO CALIBRATE TIDAL VELOCITIES},
3409 and \telkey{COEFFICIENT TO CALIBRATE SEA LEVEL}.
3410 Possible choices are:
3411 \begin{itemize}
3412 \item 0: No tide,
3413 \item 1: Real tide (recommended methodology),
3414 \item 2: Astronomical tide,
3415 \item 3: Mean spring tide,
3416 \item 4: Mean tide,
3417 \item 5: Mean neap tide,
3418 \item 6: Astronomical neap tide,
3419 \item 7: Real tide (methodology before 2010).
3420 \end{itemize}""",
3421             ),
3422 #           -----------------------------------
3423             b_OPTION_FOR_TIDAL_BOUNDARY_CONDITIONSG = BLOC(condition="OPTION_FOR_TIDAL_BOUNDARY_CONDITIONS != 0",
3424 #           -----------------------------------
3425 #               -----------------------------------
3426                 TIDAL_DATA_BASE = SIMP(statut ='o',
3427 #               -----------------------------------
3428                     typ = 'TXM',
3429                     into = ["NO DEFAULT VALUE","JMJ","TPXO","MISCELLANEOUS (LEGOS-NEA, FES20XX, PREVIMER...)"],
3430                     defaut = "NO DEFAULT VALUE",
3431                     fr = """Fournit le nom de la base de donnees utilisee pour la generation
3432 automatique des conditions aux limites. Les choix possibles sont :
3433 \begin{itemize}
3434 \item 1 : JMJ ;
3435 \item 2 : TPXO ;
3436 \item 3 : divers (LEGOS-NEA, FES20XX, PREVIMER).
3437 \end{itemize}
3438 Pour JMJ, renseigner la localisation du fichier bdd\_jmj et
3439 geofin dans les mots-cles \telkey{BASE ASCII DE DONNEES DE MAREE} et
3440 \telkey{FICHIER DU MODELE DE MAREE}.
3441 Pour TPXO, LEGOS-NEA, FES20XX et PREVIMER, l''utilisateur
3442 doit telecharger les fichiers de constantes harmoniques sur internet.""",
3443                     ang = """Gives the name of the data base used to automatically generate
3444 the boundary conditions. Possible choices are:
3445 \begin{itemize}
3446 \item 1: JMJ,
3447 \item 2: TPXO,
3448 \item 3: MISCELLANEOUS (LEGOS-NEA, FES20XX, PREVIMER...).
3449 \end{itemize}
3450 For JMJ, indicate the location of the files bdd\_jmj and geofin
3451 with keywords \telkey{ASCII DATABASE FOR TIDE} and
3452 \telkey{TIDAL MODEL FILE}. For TPXO, LEGOS-NEA,
3453 FES20XX and PREVIMER, the user has to download files of harmonic
3454 constituents on the internet.""",
3455                 ),
3456 #               -----------------------------------
3457                 b_TIDAL_DATA_BASEG = BLOC(condition="TIDAL_DATA_BASE == 'TPXO'",
3458 #               -----------------------------------
3459                 ),
3460 #               -----------------------------------
3461                 b_TIDAL_DATA_BASEH = BLOC(condition="(TIDAL_DATA_BASE == 'JMJ') or (TIDAL_DATA_BASE == 'MISCELLANEOUS (LEGOS-NEA, FES20XX, PREVIMER...)')",
3462 #               -----------------------------------
3463 #                   -----------------------------------
3464                     HARMONIC_CONSTANTS_FILE = SIMP(statut ='o',
3465 #                   -----------------------------------
3466                         typ = ('Fichier','All Files (*)'),
3467                         defaut = '',
3468                         fr = """Nom du fichier contenant les constantes harmoniques extraites
3469 du fichier du modele de maree (JMJ)
3470 ou autres atlas (FES, NEA, PREVIMER).""",
3471                         ang = """Name of the file containing the harmonic constants extracted
3472 from the tidal model file (JMJ) or other atlases (FES, NEA, PREVIMER).""",
3473                     ),
3474                 ),
3475 #               -----------------------------------
3476                 COEFFICIENT_TO_CALIBRATE_TIDAL_RANGE = SIMP(statut ='o',
3477 #               -----------------------------------
3478                     typ = 'R',
3479                     defaut = 1.,
3480                     fr = """Coefficient pour ajuster le marnage de l''onde de maree
3481 aux frontieres maritimes.""",
3482                     ang = """Coefficient to calibrate the tidal range of tidal wave
3483 at tidal open boundary conditions.""",
3484                 ),
3485 #               -----------------------------------
3486                 COEFFICIENT_TO_CALIBRATE_TIDAL_VELOCITIES = SIMP(statut ='o',
3487 #               -----------------------------------
3488                     typ = 'R',
3489                     defaut = 999999.,
3490                     fr = """Coefficient pour ajuster les composantes de vitesse
3491 de l''onde de maree aux frontieres maritimes.
3492 La valeur par defaut 999999. signifie que c''est la racine carree
3493 du \telkey{COEFFICIENT DE CALAGE DU MARNAGE} qui est prise.""",
3494                     ang = """Coefficient to calibrate the tidal velocities of tidal wave
3495 at tidal open boundary conditions.
3496 Default value 999999. means that the square root of
3497 \telkey{COEFFICIENT TO CALIBRATE TIDAL RANGE} is taken.""",
3498                 ),
3499             ),
3500 #           -----------------------------------
3501             TIDAL_MODEL_FILE = SIMP(statut ='f',
3502 #           -----------------------------------
3503                 typ = ('Fichier','All Files (*)'),
3504                 defaut = '',
3505                 fr = """Fichier de geometrie du modele dont sont extraites
3506 les constantes harmoniques (JMJ seulement).""",
3507                 ang = """Geometry file of the model from which harmonic constituents
3508 are extracted (JMJ only).""",
3509             ),
3510 #           -----------------------------------
3511             TIDAL_MODEL_FILE_FORMAT = SIMP(statut ='f',
3512 #           -----------------------------------
3513                 typ = 'TXM',
3514                 into = ['SERAFIN','SERAFIND','MED'],
3515                 defaut = 'SERAFIN',
3516                 fr = """Format du \telkey{FICHIER DU MODELE DE MAREE}.
3517 Les valeurs possibles sont :
3518 \begin{itemize}
3519 \item SERAFIN : format standard simple precision pour \tel ;
3520 \item SERAFIND: format standard double precision pour \tel ;
3521 \item MED     : format MED double precision base sur HDF5.
3522 \end{itemize}""",
3523                 ang = """Format of the \telkey{TIDAL MODEL FILE}.
3524 Possible choices are:
3525 \begin{itemize}
3526 \item SERAFIN : classical single precision format in \tel,
3527 \item SERAFIND: classical double precision format in \tel,
3528 \item MED     : MED double precision format based on HDF5.
3529 \end{itemize}""",
3530             ),
3531 #           -----------------------------------
3532             ASCII_DATABASE_FOR_TIDE = SIMP(statut ='f',
3533 #           -----------------------------------
3534                 typ = ('Fichier','All Files (*)'),
3535                 defaut = '',
3536                 fr = """Nom de la base de donnees de constantes harmoniques
3537 tirees du \telkey{FICHIER DU MODELE DE MAREE}.""",
3538                 ang = """File name for the tide data base of harmonic constituents
3539 extracted from the \telkey{TIDAL MODEL FILE}.""",
3540             ),
3541 #           -----------------------------------
3542             LOCAL_NUMBER_OF_THE_POINT_TO_CALIBRATE_HIGH_WATER = SIMP(statut ='o',
3543 #           -----------------------------------
3544                 typ = 'I',
3545                 defaut = 0,
3546                 fr = """Numero local du point entre 1 et le nombre de points
3547 de frontiere maritime (du FICHIER DES CONSTANTES HARMONIQUES)
3548 ou les conditions aux limites de maree sont calculees
3549 avec les bases de donnees JMJ, NEA, FES, PREVIMER
3550 (sauf les bases de type TPXO).
3551 Les ondes de maree sont dephasees par rapport a ce point
3552 pour debuter le calcul par une pleine mer
3553 (en marees schematiques seulement).""",
3554                 ang = """Local number between 1 and the number of tidal boundary points
3555 (of the \telkey{HARMONIC CONSTANTS FILE}) where the tidal boundary
3556 conditions are computed with JMJ, NEA, FES, PREVIMER databases
3557 (except TPXO-type databases).
3558 The tidal constituents have their phase shifted with respect to
3559 this point to start the simulation with a high water
3560 (for schematic tides only).""",
3561             ),
3562         ),
3563     ),
3564 #   -----------------------------------
3565     PARTICLES_TRANSPORT = FACT(statut='f',
3566 #   -----------------------------------
3567 #       -----------------------------------
3568         DROGUES = FACT(statut='o',
3569 #       -----------------------------------
3570 #           -----------------------------------
3571             MAXIMUM_NUMBER_OF_DROGUES = SIMP(statut ='o',
3572 #           -----------------------------------
3573                 typ = 'I',
3574                 defaut = 0,
3575                 fr = """Permet d''effectuer un suivi de flotteurs.
3576 Fixe le nombre maximum de flotteurs a traiter lors du calcul.
3577 Il est alors necessaire de mettre a jour le sous-programme
3578 \telfile{USER\_FLOT3D} afin de fournir les informations sur les
3579 positions de largage et les temps de suivi des flotteurs.
3580 La trajectoire des flotteurs est enregistree dans le
3581 \telkey{FICHIER ASCII DES FLOTTEURS} ou le
3582 \telkey{FICHIER BINAIRE DES FLOTTEURS}
3583 qui doivent etre donnes dans le fichier des parametres.""",
3584                 ang = """Maximum number of drogues in the computation.
3585 The user must then fill the subroutine \telfile{USER\_FLOT3D}
3586 specifying the coordinates of the starting points,
3587 their departure and arrival times.
3588 The trajectory of drogues is recorded in the
3589 \telkey{ASCII DROGUES FILE} or the \telkey{BINARY DROGUES FILE}
3590 that must be given in the steering file.""",
3591             ),
3592 #           -----------------------------------
3593             b_MAXIMUM_NUMBER_OF_DROGUESG = BLOC(condition="MAXIMUM NUMBER_OF_DROGUES != 0",
3594 #           -----------------------------------
3595 #               -----------------------------------
3596                 ASCII_DROGUES_FILE = SIMP(statut ='o',
3597 #               -----------------------------------
3598                     typ = ('Fichier','All Files (*)','Sauvegarde'),
3599                     defaut = '',
3600                     fr = """Fichier de resultat ASCII avec les positions des flotteurs.""",
3601                     ang = """ASCII results file with positions of drogues.""",
3602                 ),
3603 #               -----------------------------------
3604                 PRINTOUT_PERIOD_FOR_DROGUES = SIMP(statut ='o',
3605 #               -----------------------------------
3606                     typ = 'I',
3607                     defaut = 1,
3608                     fr = """Nombre de pas de temps entre 2 sorties de positions de
3609 flotteurs dans le fichier des resultats binaire supplementaire
3610 N affecte pas la qualite du calcul de la trajectoire.""",
3611                     ang = """Number of time steps between 2 outputs of drogues
3612 positions in the binary file.
3613 It does not disturb the quality of the computation of the trajectory.""",
3614                 ),
3615             ),
3616 #           -----------------------------------
3617             BINARY_DROGUES_FILE = SIMP(statut ='o',
3618 #           -----------------------------------
3619                 typ = ('Fichier','All Files (*)','Sauvegarde'),
3620                 defaut = '',
3621                 fr = """Fichier de resultat binaire avec les positions des flotteurs.""",
3622                 ang = """Binary results file with positions of drogues.""",
3623             ),
3624 #           -----------------------------------
3625             DROGUES_FILE_FORMAT = SIMP(statut ='f',
3626 #           -----------------------------------
3627                 typ = 'TXM',
3628                 into = ['BKBINPCL','TECPLOT'],
3629                 defaut = 'TECPLOT',
3630                 fr = """Format du \telkey{FICHIER BINAIRE DES FLOTTEURS}.
3631 Les valeurs possibles sont :
3632 \begin{itemize}
3633 \item BKBINPCL : format PCL binaire natif de Blue Kenue ;
3634 \item TECPLOT : format TecPlot original (ASCII).
3635 \end{itemize}""",
3636                 ang = """Format of the \telkey{BINARY DROGUES FILE}.
3637 Possible choices are:
3638 \begin{itemize}
3639 \item BKBINPCL: binary PCL format native to Blue Kenue,
3640 \item TECPLOT: original TecPlot format (ASCII).
3641 \end{itemize}""",
3642             ),
3643         ),
3644 #       -----------------------------------
3645         OIL_SPILL = FACT(statut='o',
3646 #       -----------------------------------
3647 #           -----------------------------------
3648             OIL_SPILL_MODEL = SIMP(statut ='o',
3649 #           -----------------------------------
3650                 typ = bool,
3651                 defaut = False,
3652                 fr = """Pour declencher le modele de nappes d''hydrocarbures,
3653 dans ce cas le
3654 \telkey{FICHIER DE COMMANDES HYDROCARBURES} est necessaire.""",
3655                 ang = """Will trigger the oil spill model, in this case
3656 the \telkey{OIL SPILL STEERING FILE} is needed.""",
3657             ),
3658 #           -----------------------------------
3659             b_OIL_SPILL_MODELG = BLOC(condition="OIL_SPILL_MODEL == True",
3660 #           -----------------------------------
3661 #               -----------------------------------
3662                 OIL_SPILL_STEERING_FILE = SIMP(statut ='o',
3663 #               -----------------------------------
3664                     typ = ('Fichier','All Files (*)'),
3665                     defaut = '',
3666                     fr = """Contient les donnees pour le
3667 modele de nappes d''hydrocarbures.""",
3668                     ang = """Contains data for the oil spill model.""",
3669                 ),
3670             ),
3671         ),
3672     ),
3673 #   -----------------------------------
3674     HYDRAULIC_STRUCTURES = FACT(statut='f',
3675 #   -----------------------------------
3676 #       -----------------------------------
3677         CULVERTS = FACT(statut='o',
3678 #       -----------------------------------
3679 #           -----------------------------------
3680             NUMBER_OF_CULVERTS = SIMP(statut ='o',
3681 #           -----------------------------------
3682                 typ = 'I',
3683                 defaut = 0,
3684                 fr = """Nombre de buses ou ponts traites comme des termes sources ou
3685 puits. Ces buses doivent etre decrites comme des sources dans le
3686 fichier cas. Leurs caracteristiques sont donnees dans le
3687 \telkey{FICHIER DE DONNEES DES BUSES} (voir la documentation ecrite).""",
3688                 ang = """Number of culverts, tubes or bridges treated as source terms.
3689 They must be described as sources in the domain and their features
3690 are given in the \telkey{CULVERTS DATA FILE} (see written
3691 documentation).""",
3692             ),
3693 #           -----------------------------------
3694             b_NUMBER_OF_CULVERTSG = BLOC(condition="NUMBER_OF_CULVERTS != 0",
3695 #           -----------------------------------
3696 #               -----------------------------------
3697                 CULVERTS_DATA_FILE = SIMP(statut ='o',
3698 #               -----------------------------------
3699                     typ = ('Fichier','All Files (*)'), max='**',
3700                     defaut = '',
3701                     fr = """Fichier de description des buses/ponts presents dans le modele.""",
3702                     ang = """Description of culverts/bridges existing in the model.""",
3703                 ),
3704 #               -----------------------------------
3705                 OPTION_FOR_CULVERTS = SIMP(statut ='o',
3706 #               -----------------------------------
3707                     typ = 'I',
3708                     defaut = 1,
3709                     fr = """Option pour le traitement des buses. Il existe deux formulations
3710 dans \telemac{3d}, basees sur les formules de Bodhaine (1968)
3711 et Carlier (1976).
3712 Lire le \telemac{3d} theory guide plus plus d informations.""",
3713                     ang = """Option for the treatment of culverts. There are two options in
3714 \telemac{3d} based on Bodhaine (1968) and Carlier (1976) formulae.
3715 Read the \telemac{3d} theory guide for more informations.""",
3716                 ),
3717             ),
3718         ),
3719     ),
3720 )
3721 # -----------------------------------------------------------------------
3722 HYDRO = PROC(nom= "HYDRO",op = None,
3723 # -----------------------------------------------------------------------
3724 #   -----------------------------------
3725     PHYSICAL_PARAMETERS_HYDRO = FACT(statut='o',
3726 #   -----------------------------------
3727 #       -----------------------------------
3728         METEOROLOGY = FACT(statut='f',
3729 #       -----------------------------------
3730 #           -----------------------------------
3731             AIR_TEMPERATURE = SIMP(statut ='o',
3732 #           -----------------------------------
3733                 typ = 'R',
3734                 defaut = 20.,
3735                 fr = """Donne la valeur de la temperature de l air lorsqu elle est
3736 constante en temps et en espace. En $^{\circ}$C.""",
3737                 ang = """Gives the value of air temperature when it is constant
3738 in time and space. In $^{\circ}$C.""",
3739             ),
3740 #           -----------------------------------
3741             CLOUD_COVER = SIMP(statut ='o',
3742 #           -----------------------------------
3743                 typ = 'R',
3744                 defaut = 5.,
3745                 fr = """Donne la valeur de la nebulosite lorsqu elle est
3746 constante en temps et en espace. En Octas ou dizieme.""",
3747                 ang = """Gives the value of cloud cover when it is constant
3748 in time and space. In Octas or tenth.""",
3749             ),
3750 #           -----------------------------------
3751             SOLAR_RADIATION = SIMP(statut ='o',
3752 #           -----------------------------------
3753                 typ = 'R',
3754                 defaut = 160.,
3755                 fr = """Donne la valeur du rayonnement solaire lorsqu il est
3756 constant en temps et en espace. En W/m$^2$.""",
3757                 ang = """Gives the value of solar radiation when it is constant
3758 in time and space. In W/m$^2$.""",
3759             ),
3760 #           -----------------------------------
3761             RELATIVE_HUMIDITY = SIMP(statut ='o',
3762 #           -----------------------------------
3763                 typ = 'R',
3764                 defaut = 50.,
3765                 fr = """Donne la valeur de l humidite relative lorsqu elle est
3766 constante en temps et en espace. En \%.""",
3767                 ang = """Gives the value of relative humidity when it is constant
3768 in time and space. In \%.""",
3769             ),
3770         ),
3771     ),
3772 )
3773 # -----------------------------------------------------------------------
3774 TIDES = PROC(nom= "TIDES",op = None,
3775 # -----------------------------------------------------------------------
3776 #   -----------------------------------
3777     MINIMUM_DEPTH_TO_COMPUTE_TIDAL_VELOCITIES_BOUNDARY_CONDITIONS = SIMP(statut ='f',
3778 #   -----------------------------------
3779         typ = 'R',
3780         defaut = 0.1,
3781         fr = """Valeur minimale de hauteur d eau utilisee pour le calcul des conditions
3782 aux limites de courants de maree si les profondeurs sont trop petites.
3783 Pour les solutions de marees provenant de l OSU uniquement (ex TPXO).""",
3784         ang = """Minimum value of water depth used to compute tidal boundary conditions
3785 for velocities if the water depths are too small.
3786 For tidal solutions coming from OSU only (e.g. TPXO).""",
3787     ),
3788 )
3789 # -----------------------------------------------------------------------
3790 TURBULENCE = PROC(nom= "TURBULENCE",op = None,
3791 # -----------------------------------------------------------------------
3792 #   -----------------------------------
3793     PHYSICAL_PARAMETERS = FACT(statut='o',
3794 #   -----------------------------------
3795 #       -----------------------------------
3796         HORIZONTAL_TURBULENCE_MODEL = SIMP(statut ='o',
3797 #       -----------------------------------
3798             typ = 'TXM',
3799             into = ["CONSTANT VISCOSITY","K-EPSILON MODEL","SMAGORINSKI","SPALART-ALLMARAS","K-OMEGA MODEL","DES (DETACHED EDDY SIMULATION) MODEL"],
3800             defaut = "CONSTANT VISCOSITY",
3801             fr = """Permet de specifier le modele de turbulence horizontal.
3802 Les choix possibles sont :
3803 \begin{itemize}
3804 \item 1 : viscosite constante ;
3805 \item 3 : modele $k$-$\epsilon$ ;
3806 \item 4 : Smagorinski ;
3807 \item 5 : Spalart-Allmaras ;
3808 \item 7 : modele $k$-$\omega$ ;
3809 \item 9 : modele DES (Detached Eddy Simulation).
3810 \end{itemize}
3811 Attention : si on choisit l''option 1, il ne faut pas oublier d''ajuster
3812 la valeur du mot cle \telkey{COEFFICIENT DE DIFFUSION}\ldots
3813 Si on choisit les autres options, ce meme parametre doit retrouver sa
3814 vraie valeur physique car elle est utilisee comme telle dans le modele
3815 de turbulence.
3816 Si on choisit l''option 3 ou 7, ce meme parametre doit retrouver sa
3817 vraie valeur physique, en general environ $10^{-6}$
3818 car elle est utilisee comme telle dans le modele de turbulence.""",
3819             ang = """Specifies the horizontal turbulence model.
3820 The available choices are:
3821 \begin{itemize}
3822 \item 1: constant viscosity,
3823 \item 3: $k$-$\epsilon$ model,
3824 \item 4: Smagorinski,
3825 \item 5: Spalart-Allmaras,
3826 \item 7: $k$-$\omega$ model,
3827 \item 9: DES model (Detached Eddy Simulation).
3828 \end{itemize}
3829 Caution: if option 1 is chosen, give the right
3830 \telkey{COEFFICIENT FOR\ldots\ DIFFUSION OF VELOCITIES}\ldots\
3831 If option 3 ou 7 is chosen, this parameter must get its real physical
3832 value of molecular diffusivity, generally about $10^{-6}$
3833 because it is used as well in the turbulence model.""",
3834         ),
3835 #       -----------------------------------
3836         VERTICAL_TURBULENCE_MODEL = SIMP(statut ='o',
3837 #       -----------------------------------
3838             typ = 'TXM',
3839             into = ["CONSTANT VISCOSITY","MIXING LENGTH","K-EPSILON MODEL","SMAGORINSKI","SPALART-ALLMARAS","GOTM","K-OMEGA MODEL","DES (DETACHED EDDY SIMULATION) MODEL"],
3840             defaut = "CONSTANT VISCOSITY",
3841             fr = """Permet de specifier le modele de turbulence vertical.
3842 Les choix possibles sont :
3843 \begin{itemize}
3844 \item 1 : viscosite constante ;
3845 \item 2 : longueur de melange ;
3846 \item 3 : modele $k$-$\epsilon$ ;
3847 \item 4 : Smagorinski ;
3848 \item 5 : Spalart-Allmaras ;
3849 \item 6 : GOTM ;
3850 \item 7 : modele $k$-$\omega$ ;
3851 \item 9 : modele DES (Detached Eddy Simulation).
3852 \end{itemize}
3853 Attention : si on choisit l''option 1, il ne faut pas oublier d''ajuster
3854 la valeur du mot cle \telkey{COEFFICIENT DE DIFFUSION}\ldots
3855 Si on choisit les autres options, ce meme parametre doit retrouver sa
3856 vraie valeur physique car elle est utilisee comme telle dans le modele
3857 de turbulence.
3858 Si on choisit l''option 3 ou 7, ce meme parametre doit retrouver sa
3859 vraie valeur physique, en general environ $10^{-6}$
3860 car elle est utilisee comme telle dans le modele de turbulence.""",
3861             ang = """Specifies the vertical turbulence model.
3862 The available choices are:
3863 \begin{itemize}
3864 \item 1: constant viscosity,
3865 \item 2: mixing length,
3866 \item 3: $k$-$\epsilon$ model,
3867 \item 4: Smagorinski,
3868 \item 5: Spalart-Allmaras,
3869 \item 6: GOTM,
3870 \item 7: $k$-$\omega$ model,
3871 \item 9: DES model (Detached Eddy Simulation).
3872 \end{itemize}
3873 Caution: if option 1 is chosen, give the right
3874 \telkey{COEFFICIENT FOR\ldots\ DIFFUSION OF VELOCITIES}\ldots\
3875 If option 3 ou 7 is chosen, this parameter must get its real physical
3876 value of molecular diffusivity, generally about $10^{-6}$
3877 because it is used as well in the turbulence model.""",
3878         ),
3879 #       -----------------------------------
3880         b_VERTICAL_TURBULENCE_MODELG = BLOC(condition="VERTICAL_TURBULENCE_MODEL == 'MIXING LENGTH'",
3881 #       -----------------------------------
3882 #           -----------------------------------
3883             MIXING_LENGTH_MODEL = SIMP(statut ='o',
3884 #           -----------------------------------
3885                 typ = 'I',
3886                 defaut = 1,
3887                 fr = """Permet de specifier le modele de longueur utilise pour la
3888 turbulence verticale. Les choix possibles sont :
3889 \begin{itemize}
3890 \item 1: Prandtl (notamment pour ecoulements avec forte composante
3891 barotropique comme les courants de maree) ;
3892 \item 3: Nezu et Nakawaga ;
3893 \item 5: Quetin (meilleure representation du vent) ;
3894 \item 6: Tsanis (meilleure representation du vent).
3895 \end{itemize}
3896 4 (jet) a ete supprime.""",
3897                 ang = """Specifies the mixing length model used for vertical turbulence.
3898 Possible choices are:
3899 \begin{itemize}
3900 \item 1: Prandtl (suits such flows with a strong barotropic component
3901 as tidal flows),
3902 \item 3: Nezu and Nakawaga,
3903 \item 5: Quetin (better representation of wind drift),
3904 \item 6: Tsanis (better representation of wind drift).
3905 \end{itemize}
3906 4 (jet) has been suppressed.""",
3907             ),
3908 #           -----------------------------------
3909             DAMPING_FUNCTION = SIMP(statut ='o',
3910 #           -----------------------------------
3911                 typ = 'I',
3912                 defaut = 0,
3913                 fr = """Specifie le type de fonction d''amortissement utilise
3914 (quand un modele de longueur de melange est utilise).
3915 Les choix possibles sont :
3916 \begin{itemize}
3917 \item 0: rien ;
3918 \item 1: fait par l''utilisateur (dans \telkey{USER\_DRIUTI}) ;
3919 \item 2: Viollet ;
3920 \item 3: Munk et Anderson.
3921 \end{itemize}""",
3922                 ang = """Specifies the type of damping function used (when using mixing
3923 length turbulence model). The possible choices are:
3924 \begin{itemize}
3925 \item 0: nothing,
3926 \item 1: user programmed (in \telkey{USER\_DRIUTI}),
3927 \item 2: Viollet,
3928 \item 3: Munk and Anderson.
3929 \end{itemize}""",
3930             ),
3931         ),
3932 #       -----------------------------------
3933         COEFFICIENT_FOR_HORIZONTAL_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
3934 #       -----------------------------------
3935             typ = 'R',
3936             defaut = 1.E-6,
3937             fr = """Fixe de facon uniforme pour l''ensemble du domaine;
3938 la valeur du coefficient de diffusion de viscosite globale (dynamique +
3939 turbulente). Cette valeur peut avoir une influence non negligeable sur
3940 la forme et la taille des recirculations.""",
3941             ang = """Sets, in an even way for the whole domain, the value of the
3942 coefficient of global (dynamic+turbulent) viscosity
3943 for the horizontal direction. This value may
3944 have a significant effect both on the shapes and sizes of
3945 recirculation zones.""",
3946         ),
3947 #       -----------------------------------
3948         COEFFICIENT_FOR_VERTICAL_DIFFUSION_OF_VELOCITIES = SIMP(statut ='o',
3949 #       -----------------------------------
3950             typ = 'R',
3951             defaut = 1.E-6,
3952             fr = """Fixe de facon uniforme pour l''ensemble du domaine;
3953 la valeur du coefficient de diffusion de viscosite globale (dynamique +
3954 turbulente). Cette valeur peut avoir une influence non negligeable sur
3955 la forme et la taille des recirculations.""",
3956             ang = """Sets, in an even way for the whole domain, the value of the
3957 coefficient of global (dynamic+turbulent) viscosity
3958 for the horizontal direction. This value may
3959 have a significant effect both on the shapes and sizes of
3960 recirculation zones.""",
3961         ),
3962 #       -----------------------------------
3963         PRANDTL_NUMBER = SIMP(statut ='f',
3964 #       -----------------------------------
3965             typ = 'R',
3966             defaut = 1.0,
3967             fr = """Rapport entre viscosite et diffusivite turbulente.""",
3968             ang = """Ratio between eddy viscosity and eddy diffusivity.""",
3969         ),
3970 #       -----------------------------------
3971         KARMAN_CONSTANT = SIMP(statut ='f',
3972 #       -----------------------------------
3973             typ = 'R',
3974             defaut = 0.4,
3975             fr = """Valeur de la constante de Von Karman.""",
3976             ang = """Value of Von Karman constant.""",
3977         ),
3978 #       -----------------------------------
3979         GOTM_STEERING_FILE = SIMP(statut ='f',
3980 #       -----------------------------------
3981             typ = ('Fichier','All Files (*)'),
3982             defaut = '',
3983             fr = """Fichier contenant les parametres de GOTM. Utilise avec
3984 \telkey{MODELE DE TURBULENCE VERTICAL} = 6.""",
3985             ang = """File containing parameters of GOTM. Use in combination with
3986 \telkey{VERTICAL TURBULENCE MODEL} = 6.""",
3987         ),
3988     ),
3989 #   -----------------------------------
3990     BOUNDARY_CONDITIONS = FACT(statut='o',
3991 #   -----------------------------------
3992 #       -----------------------------------
3993         FICTITIOUS_BED_LEVEL = SIMP(statut ='f',
3994 #       -----------------------------------
3995             typ = 'R',
3996             defaut = 2.0,
3997             fr = """Rapport entre le fond fictif et la hauteur de
3998 la premiere  maille utilisee par le modele de turbulence
3999 $k$-$\epsilon$ et pour le transport du sable.""",
4000             ang = """Ratio between the fictitious bed and
4001 the grid size above the bed.""",
4002         ),
4003 #       -----------------------------------
4004         OPTION_FOR_THE_BOUNDARY_CONDITIONS_OF_K_EPSILON = SIMP(statut ='f',
4005 #       -----------------------------------
4006             typ = 'TXM',
4007             into = ["no turbulence","Hans Burchard"],
4008             defaut = "no turbulence",
4009             fr = """Calcul des conditions aux limites laterales sur $k$ et
4010 $\epsilon$. Les choix possibles sont :
4011 \begin{itemize}
4012 \item 1: pas de turbulence = les valeurs minimales \telfile{KMIN}
4013 et \telfile{EMIN} definies dans \telfile{CSTKEP} ;
4014 \item 2: formule de Hans Burchard.
4015 \end{itemize}""",
4016             ang = """Computation of the lateral boundary conditions of $k$
4017 and $\epsilon$. Possible choices are:
4018 \begin{itemize}
4019 \item 1: no turbulence = the minimum values \telfile{KMIN} and
4020 \telfile{EMIN} defined in \telfile{CSTKEP},
4021 \item 2: Hans Burchard formula.
4022 \end{itemize}""",
4023         ),
4024     ),
4025 #   -----------------------------------
4026     NUMERICAL_PARAMETERS = FACT(statut='o',
4027 #   -----------------------------------
4028 #       -----------------------------------
4029         VERTICAL_VELOCITY_DERIVATIVES = SIMP(statut ='f',
4030 #       -----------------------------------
4031             typ = 'I',
4032             defaut = 1,
4033             fr = """Mode de calcul des derivees des vitesses suivant $z$
4034 uniquement pour un modele de longueur de melange sur la verticale :
4035 \begin{itemize}
4036 \item 1 : derivee lineaire (classique) ;
4037 \item 2 : derivee logarithmique (mieux pour profils logarithmiques)
4038 entre le fond et 0.2 fois la hauteur d eau.
4039 \end{itemize}
4040 L option 2 permet une meilleure representation des resultats
4041 pour la modelisation d un profil de vitesse pres du fond.""",
4042             ang = """Way of computing the velocity derivatives along $z$
4043 only for a mixing length model over the vertical:
4044 \begin{itemize}
4045 \item 1: linear derivative (classic),
4046 \item 2: logarithmic derivative (better for logarithmic profiles)
4047 between the bottom and 0.2 times the water depth.
4048 \end{itemize}
4049 Option 2 allows getting better results when modelling the velocity
4050 profile near the bottom.""",
4051         ),
4052 #       -----------------------------------
4053         ADVECTION = FACT(statut='o',
4054 #       -----------------------------------
4055 #           -----------------------------------
4056             b_SCHEME_FOR_ADVECTION_OF_K_EPSILONF = BLOC(condition="((VERTICAL_TURBULENCE_MODEL == 3) or (HORIZONTAL_TURBULENCE_MODEL == 3) or (VERTICAL_TURBULENCE_MODEL == 7) or (HORIZONTAL_TURBULENCE_MODEL == 7))",
4057 #           -----------------------------------
4058             ),
4059 #           -----------------------------------
4060             SCHEME_FOR_ADVECTION_OF_K_EPSILON = SIMP(statut ='o',
4061 #           -----------------------------------
4062                 typ = 'TXM',
4063                 into = ["NO ADVECTION","CHARACTERISTICS","SUPG","LEO POSTMA","MURD SCHEME N","MURD SCHEME PSI","LEO POSTMA FOR TIDAL FLATS","EXPLICIT N-SCHEME FOR TIDAL FLATS"],
4064                 defaut = "MURD SCHEME PSI",
4065                 fr = """Fixe le schema utilise pour la convection du modele
4066 $k$-$\epsilon$ ou Spalart-Allmaras.
4067 Les choix possibles sont :
4068 \begin{itemize}
4069 \item 0 : pas de convection ;
4070 \item 1 : caracteristiques ;
4071 \item 2 : SUPG ;
4072 \item 3 : schema de Leo Postma ;
4073 \item 4 : MURD schema N - options supplementaires possibles :
4074   \begin{itemize}
4075   \item OPTION DU SCHEMA POUR LA CONVECTION DES VITESSES/TRACEURS/
4076 K-EPSILON) :
4077   \begin{itemize}
4078   \item 1: schema explicite classique ;
4079   \item 2: predicteur-correcteur au premier order ;
4080   \item 3: predicteur-correcteur au deuxieme order ;
4081   \item 4: schema implicite compatible avec les bancs decouvrants;
4082   \end{itemize}
4083   \item NOMBRE DE CORRECTIONS POUR LES SCHEMAS DISTRIBUTIFS :
4084   fixe le nombre de corrections pour les schemas distributifs
4085   predicteur-correcteur du premier et deuxieme ordre
4086   (une value autour de 4 est recommandee) ;
4087   \end{itemize}
4088 \item 5 : MURD schema PSI ;
4089 \item 13 : Leo Postma pour bancs decouvrants ;
4090 \item 14 : schema N explicite pour bancs decouvrants.
4091 \end{itemize}
4092 Valeurs par defaut de
4093 \telkey{SCHEMA POUR LA CONVECTION DU K-EPSILON} = 5
4094 + \telkey{OPTION DU SCHEMA POUR LA CONVECTION DU K-EPSILON} = 4 donnent
4095 le schema LIPS.
4096 Ancienne valeur par defaut = 1 (caracteristiques) jusqu a la version
4097 V8P0.""",
4098                 ang = """Sets the advection scheme for the $k$-$\epsilon$ model
4099 or Spalart-Allmaras model.
4100 Possible choices are:
4101 \begin{itemize}
4102 \item 0: no convection,
4103 \item 1: characteristics,
4104 \item 2: SUPG,
4105 \item 3: Leo Postma scheme,
4106 \item 4: MURD scheme N,
4107   \begin{itemize}
4108   \item SCHEME OPTION FOR ADVECTION OF VELOCITIES/TRACERS/K-EPSILON):
4109   \begin{itemize}
4110   \item 1: classical explicit scheme;
4111   \item 2: 1st order predictor-corrector;
4112   \item 3: 2nd order predictor-corrector;
4113   \item 4: implicit scheme compatible with tidal flats;
4114   \end{itemize}
4115   \item \telkey{NUMBER OF CORRECTIONS OF DISTRIBUTIVE SCHEMES}:
4116   sets the number of sub-iterations for the 1st and 2nd order
4117   predictor-corrector schemes (a value around 4 is recommended).
4118   \end{itemize}
4119 \item 5: MURD scheme PSI,
4120   \begin{itemize}
4121   \item SCHEME OPTION FOR ADVECTION OF VELOCITIES/TRACERS/K-EPSILON):
4122   \begin{itemize}
4123   \item 1: classical explicit scheme;
4124   \item 2: 1st order predictor-corrector;
4125   \item 3: 2nd order predictor-corrector;
4126   \item 4: implicit scheme compatible with tidal flats;
4127   \end{itemize}
4128   \item \telkey{NUMBER OF CORRECTIONS OF DISTRIBUTIVE SCHEMES}:
4129   sets the number of sub-iterations for the 1st and 2nd order
4130   predictor-corrector schemes (a value around 4 is recommended).
4131   \end{itemize}
4132 \item 13: Leo Postma for tidal flats,
4133 \item 14: explicit N-scheme for tidal flats.
4134 \end{itemize}
4135 Default values for \telkey{SCHEME FOR ADVECTION OF K-EPSILON} = 5
4136 + \telkey{SCHEME OPTION FOR ADVECTION OF K-EPSILON} = 4
4137 give LIPS scheme.
4138 Old default value = 1 (characteristics) until version V8P0.""",
4139             ),
4140 #           -----------------------------------
4141             b_SCHEME_OPTION_FOR_ADVECTION_OF_K_EPSILONF = BLOC(condition="((VERTICAL_TURBULENCE_MODEL == 3) or (HORIZONTAL_TURBULENCE_MODEL == 3) or (VERTICAL_TURBULENCE_MODEL == 7) or (HORIZONTAL_TURBULENCE_MODEL == 7))",
4142 #           -----------------------------------
4143             ),
4144 #           -----------------------------------
4145             SCHEME_OPTION_FOR_ADVECTION_OF_K_EPSILON = SIMP(statut ='f',
4146 #           -----------------------------------
4147                 typ = 'I',
4148                 defaut = 4,
4149                 fr = """Si present remplace et a priorite sur :
4150 \telkey{OPTION POUR LES CARACTERISTIQUES} et
4151 \telkey{OPTION DE SUPG}.
4152 Si schema PSI ou N :
4153 \begin{itemize}
4154 \item 1 : explicite ;
4155 \item 2 : predicteur-correcteur ;
4156 \item 3 : predicteur-correcteur deuxieme ordre en temps ;
4157 \item 4 : implicite (compatible avec bancs decouvrants).
4158 \end{itemize}
4159 Si pas de bancs decouvrants, l option 2 est plus rapide.
4160 Ancienne valeur par defaut = 1 (explicite) jusqu a la version V8P0.""",
4161                 ang = """If present replaces and has priority over:
4162 \telkey{OPTION FOR CHARACTERISTICS} and
4163 \telkey{SUPG OPTION}.
4164 If N or PSI scheme:
4165 \begin{itemize}
4166 \item 1: explicit,
4167 \item 2: predictor-corrector,
4168 \item 3: predictor-corrector second-order in time,
4169 \item 4: implicit (compatible with tidal flats).
4170 \end{itemize}
4171 If no tidal flats, option 2 is faster.
4172 Old default value = 1 (explicit) until version V8P0.""",
4173             ),
4174         ),
4175 #       -----------------------------------
4176         DIFFUSION = FACT(statut='o',
4177 #       -----------------------------------
4178 #           -----------------------------------
4179             SCHEME_FOR_DIFFUSION_OF_K_EPSILON = SIMP(statut ='o',
4180 #           -----------------------------------
4181                 typ = 'TXM',
4182                 into = ["NO DIFFUSION","IMPLICIT"],
4183                 defaut = "IMPLICIT",
4184                 fr = """Permet de specifier si l''on utilise ou non la diffusion
4185 de $k$ et $\epsilon$.
4186 Les choix possibles sont :
4187 \begin{itemize}
4188 \item 0 : pas de diffusion,
4189 \item 1 : implicite.
4190 \end{itemize}""",
4191                 ang = """Monitors the choice of the diffusion scheme
4192 for $k$ and $\epsilon$.
4193 Possible choices are:
4194 \begin{itemize}
4195 \item 0: no diffusion,
4196 \item 1: implicit.
4197 \end{itemize}""",
4198             ),
4199 #           -----------------------------------
4200             b_SCHEME_FOR_DIFFUSION_OF_K_EPSILONG = BLOC(condition="SCHEME_FOR_DIFFUSION_OF_K_EPSILON == 'IMPLICIT'",
4201 #           -----------------------------------
4202 #               -----------------------------------
4203                 SOLVER_FOR_DIFFUSION_OF_K_EPSILON = SIMP(statut ='o',
4204 #               -----------------------------------
4205                     typ = 'TXM',
4206                     into = ["conjugate gradient","conjugate residual","conjugate gradient on a normal equation","minimum error","squared conjugate gradient","cgstab","gmres","direct solver"],
4207                     defaut = "conjugate gradient",
4208                     fr = """Permet de choisir le solveur utilise pour la resolution de
4209 la diffusion du modele $k$-$\epsilon$ ou Spalart-Allmaras.
4210 Les choix possibles sont :
4211 \begin{itemize}
4212 \item 1 : gradient conjugue ;
4213 \item 2 : residu conjugue ;
4214 \item 3 : gradient conjugue sur equation normale ;
4215 \item 4 : erreur minimale ;
4216 \item 5 : gradient conjugue carre ;
4217 \item 6 : CGSTAB ;
4218 \item 7 : GMRES ;
4219 \item 8 : solveur direct.
4220 \end{itemize}""",
4221                     ang = """Choice of the solver for the diffusion of $k$ and $\epsilon$.
4222 but also $\tilde{\nu}$.
4223 Possible choices are:
4224 \begin{itemize}
4225 \item 1: conjugate gradient,
4226 \item 2: conjugate residual,
4227 \item 3: conjugate gradient on a normal equation,
4228 \item 4: minimum error,
4229 \item 5: squared conjugate gradient,
4230 \item 6: CGSTAB,
4231 \item 7: GMRES,
4232 \item 8: direct solver.
4233 \end{itemize}""",
4234                 ),
4235 #               -----------------------------------
4236                 b_SOLVER_FOR_DIFFUSION_OF_K_EPSILONG = BLOC(condition="SOLVER_FOR_DIFFUSION_OF_K_EPSILON == 'gmres'",
4237 #               -----------------------------------
4238 #                   -----------------------------------
4239                     OPTION_OF_SOLVER_FOR_DIFFUSION_OF_K_EPSILON = SIMP(statut ='o',
4240 #                   -----------------------------------
4241                         typ = 'I',
4242                         defaut = 5,
4243                         fr = """Dimension de l''espace de Krylov pour la methode GMRES (7).
4244 Ancienne valeur par defaut = 3 jusqu a la version V8P0.""",
4245                         ang = """Dimension of Krylov space for the GMRES method (7).
4246 Old default value = 3 until version V8P0.""",
4247                     ),
4248                 ),
4249 #               -----------------------------------
4250                 ACCURACY_FOR_DIFFUSION_OF_K_EPSILON = SIMP(statut ='o',
4251 #               -----------------------------------
4252                     typ = 'R',
4253                     defaut = 1.E-8,
4254                     fr = """Fixe la precision demandee pour le calcul de la diffusion
4255 du $k$-$\epsilon$ ou $\tilde{\nu}$.
4256 Ancienne valeur par defaut = 1.E-6 jusqu a la version V8P0.""",
4257                     ang = """Sets the accuracy needed for the computation of the
4258 diffusion of the $k$-$\epsilon$ or Spalart-Allmaras models.
4259 Old default value = 1.E-6 until version V8P0.""",
4260                 ),
4261 #               -----------------------------------
4262                 MAXIMUM_NUMBER_OF_ITERATIONS_FOR_DIFFUSION_OF_K_EPSILON = SIMP(statut ='o',
4263 #               -----------------------------------
4264                     typ = 'I',
4265                     defaut = 200,
4266                     fr = """Fixe le nombre maximum d''iterations accepte lors de la
4267 resolution du systeme diffusion-termes sources du modele
4268 $k$-$\epsilon$ ou du modele de Spalart-Allmaras.""",
4269                     ang = """Limits the number of solver iterations for the diffusion of
4270 $k$-$\epsilon$ or $\tilde{\nu}$.""",
4271                 ),
4272 #               -----------------------------------
4273                 PRECONDITIONING_FOR_DIFFUSION_OF_K_EPSILON = SIMP(statut ='o',
4274 #               -----------------------------------
4275                     typ = 'TXM',
4276                     into = ["no preconditioning","diagonal","diagonal condensed","diagonal with absolute values","Crout","Gauss-Seidel EBE","Matrix defined by the user","diagonal and Crout","direct solver on the vertical","diagonal condensed and Crout","diagonal and direct solver on the vertical"],
4277                     defaut = "diagonal",
4278                     fr = """Permet de preconditionner le systeme relatif
4279 a la diffusion du modele $k$-$\epsilon$ ou du modele Spalart-Allmaras.
4280 Les choix possibles sont :
4281 \begin{itemize}
4282 \item 0 : aucun ;
4283 \item 2 : diagonal ;
4284 \item 3 : diagonal avec matrice condensee ;
4285 \item 5 : diagonal avec valeurs absolues ;
4286 \item 7 : Crout ;
4287 \item 11 : Gauss-Seidel EBE ;
4288 \item 13 : matrice fournie par l''utilisateur ;
4289 \item 14 : diagonal et Crout ;
4290 \item 17 : solveur direct sur la verticale ;
4291 \item 21 : diagonal condensee et Crout ;
4292 \item 34 : diagonal et solveur direct sur la verticale.
4293 \end{itemize}""",
4294                     ang = """Choice of preconditioning for the diffusion of
4295 the $k$-$\epsilon$ model or Spalart-Allmaras model.
4296 Possible choices are:
4297 \begin{itemize}
4298 \item 0: no preconditioning,
4299 \item 2: diagonal,
4300 \item 3: diagonal with the condensed matrix,
4301 \item 5: diagonal with absolute values,
4302 \item 7: Crout,
4303 \item 11: Gauss-Seidel EBE,
4304 \item 13: matrix defined by the user,
4305 \item 14: diagonal and Crout,
4306 \item 17: direct solver on the vertical,
4307 \item 21: diagonal condensed and Crout,
4308 \item 34: diagonal and direct solver on the vertical.
4309 \end{itemize}""",
4310                 ),
4311             ),
4312         ),
4313     ),
4314 #   -----------------------------------
4315     TIDAL_FLATS_INFO = FACT(statut='o',
4316 #   -----------------------------------
4317 #       -----------------------------------
4318         TREATMENT_ON_TIDAL_FLATS_FOR_K_EPSILON = SIMP(statut ='f',
4319 #       -----------------------------------
4320             typ = 'TXM',
4321             into = ["FORCED TO ZERO","VALUE BEFORE MASKED"],
4322             defaut = "FORCED TO ZERO",
4323             fr = """Traitement sur les bancs decouvrants a l''etape de diffusion
4324 pour $k$ et $\epsilon$.
4325 \begin{itemize}
4326 \item 0 : forcage a zero ;
4327 \item 1 : valeur avant masquage.
4328 \end{itemize}""",
4329             ang = """Treatment of tidal flats at the diffusion step for $k$ and
4330 $\epsilon$.
4331 \begin{itemize}
4332 \item 0: forced to zero,
4333 \item 1: value before masked.
4334 \end{itemize}""",
4335         ),
4336     ),
4337 )
4338 # -----------------------------------------------------------------------
4339 TRACERS = PROC(nom= "TRACERS",op = None,
4340 # -----------------------------------------------------------------------
4341 #   -----------------------------------
4342     NUMBER_OF_TRACERS = SIMP(statut ='o',
4343 #   -----------------------------------
4344         typ = 'I',
4345         defaut = 0,
4346         fr = """Definit le nombre de traceurs.""",
4347         ang = """Defines the number of tracers.""",
4348     ),
4349 #   -----------------------------------
4350     b_NUMBER_OF_TRACERSG = BLOC(condition="NUMBER_OF_TRACERS != 0",
4351 #   -----------------------------------
4352 #       -----------------------------------
4353         NAMES_OF_TRACERS = SIMP(statut ='f',
4354 #       -----------------------------------
4355             typ = 'TXM', min=0, max='**',
4356             fr = """Noms des traceurs en 32 caracteres, 16 pour le nom,
4357 16 pour l''unite.""",
4358             ang = """Name of tracers in 32 characters, 16 for the name,
4359 16 for the unit.""",
4360         ),
4361     ),
4362 #   -----------------------------------
4363     PHYSICAL_PARAMETERS = FACT(statut='o',
4364 #   -----------------------------------
4365 #       -----------------------------------
4366         METEOROLOGY = FACT(statut='f',
4367 #       -----------------------------------
4368 #           -----------------------------------
4369             VALUES_OF_TRACERS_IN_THE_RAIN = SIMP(statut ='f',
4370 #           -----------------------------------
4371                 typ = 'R', min=0, max='**',
4372                 fr = """Fixe la valeur des traceurs dans la pluie.""",
4373                 ang = """Sets the value of the tracers in the rain.""",
4374             ),
4375         ),
4376 #       -----------------------------------
4377         SOURCES = FACT(statut='f',
4378 #       -----------------------------------
4379 #           -----------------------------------
4380             VALUE_OF_THE_TRACERS_AT_THE_SOURCES = SIMP(statut ='f',
4381 #           -----------------------------------
4382                 typ = 'R', min=0, max='**',
4383                 fr = """Fixe la valeur des traceurs aux sources.
4384 Toutes les sources pour le premier traceur
4385 puis toutes les sources du deuxieme traceur, etc.
4386 (cf. manuel utilisateur).
4387 Par exemple, s''il y a 3 traceurs (T1, T2 et T3) et 2 sources
4388 (S1 et S2), la syntaxe suivante est utilisee :\\
4389 S1\_T1;S1\_T2;S1\_T3;S2\_T1;S2\_T2;S2\_T3\\
4390 10.0; 10.0; 0.0;  0.0; 10.0; 10.0""",
4391                 ang = """Sets the value of the tracers at the sources.
4392 All sources for the first tracer, then
4393 all sources for the second tracer, etc.
4394 (see user manual).
4395 For example, if there are 3 tracers (T1, T2 and T3)
4396 and 2 sources (S1 and S2), the following syntax is used:\\
4397 S1\_T1;S1\_T2;S1\_T3;S2\_T1;S2\_T2;S2\_T3\\
4398 10.0; 10.0; 0.0;  0.0; 10.0; 10.0""",
4399             ),
4400         ),
4401 #       -----------------------------------
4402         DENSITY = FACT(statut='o',
4403 #       -----------------------------------
4404 #           -----------------------------------
4405             DENSITY_LAW = SIMP(statut ='o',
4406 #           -----------------------------------
4407                 typ = 'I',
4408                 defaut = 0,
4409                 fr = """Donne le type de loi de densite utilisee dans le cas de
4410 l''utilisation de traceurs actifs. Le sediment est considere
4411 actif par defaut. Les choix possibles sont :
4412 \begin{itemize}
4413 \item 0 : rien (et du sediment si present) ;
4414 \item 1 : fonction de temperature (et du sediment si present) ;
4415 \item 2 : fonction de la salinite (et du sediment si present) ;
4416 \item 3 : fonction de temperature et salinite
4417           (et du sediment si present) ;
4418 \item 4 : BETA donnes par l''utilisateur pour chaque traceur
4419           (et effets du sediment avec un beta predefini si present);
4420 \item 5 : le sediment et les autres traceurs sont forces a etre
4421 passifs ;
4422 \item 6 : Jackett et al. 2006.
4423 \end{itemize}""",
4424                 ang = """Gives the type of the law of density used in the case of
4425 active tracers. The sediment is considered active with its own
4426 law by default. The possible choices are:
4427 \begin{itemize}
4428 \item 0: nothing (and sediment if present),
4429 \item 1: function of the temperature (and sediment if present),
4430 \item 2: function of the salinity (and sediment if present),
4431 \item 3: function of the temperature and salinity
4432 (and sediment if present),
4433 \item 4: user-defined BETA coefficients (and effect of the
4434          sediment with its own behaviour if present),
4435 \item 5: the sediment and other tracers are forced to be passive,
4436 \item 6: Jackett et al. 2006.
4437 \end{itemize}""",
4438             ),
4439 #           -----------------------------------
4440             b_DENSITY_LAWG = BLOC(condition="DENSITY_LAW == 4",
4441 #           -----------------------------------
4442 #               -----------------------------------
4443                 BETA_EXPANSION_COEFFICIENT_FOR_TRACERS = SIMP(statut ='f',
4444 #               -----------------------------------
4445                     typ = 'R', min=0, max='**',
4446                     fr = """Unite : K$^{-1}$.
4447 Ce coefficient permet de definir l''evolution de la densite de
4448 l''eau en fonction de la concentration en traceur lors de
4449 l''utilisation de la valeur 4 du mot cle
4450 \telkey{LOI DE DENSITE}
4451 (une valeur par traceur).""",
4452                     ang = """Unit: K$^{-1}$.
4453 This coefficient is used to define the evolution of the water density
4454 with respect to the tracer concentration when using
4455 \telkey{DENSITY LAW} = 4 (one value per tracer).""",
4456                 ),
4457 #               -----------------------------------
4458                 STANDARD_VALUES_FOR_TRACERS = SIMP(statut ='f',
4459 #               -----------------------------------
4460                     typ = 'R', min=0, max='**',
4461                     fr = """Valeur du traceur pour laquelle la densite est donnee lors de
4462 l''utilisation de la valeur 4 du mot cle
4463 \telkey{LOI DE DENSITE} (une valeur par traceur).""",
4464                     ang = """Reference value of tracers corresponding to the given density
4465 when using \telkey{DENSITY LAW} = 4 (one value per tracer).""",
4466                 ),
4467             ),
4468         ),
4469     ),
4470 #   -----------------------------------
4471     BOUNDARY_CONDITIONS = FACT(statut='o',
4472 #   -----------------------------------
4473 #       -----------------------------------
4474         PRESCRIBED_TRACERS_VALUES = SIMP(statut ='f',
4475 #       -----------------------------------
4476             typ = 'R', min=0, max='**',
4477             fr = """Determine la valeur imposee des traceurs a la premiere
4478 frontiere, puis a la deuxieme etc. suivant la meme logique que pour les
4479 \telkey{VALEURS DES TRACEURS DES SOURCES}.""",
4480             ang = """Determines the imposed value of tracers at the first boundary,
4481 then at the second, and so on, with the same logic as
4482 \telkey{VALUE OF THE TRACERS AT THE SOURCES}.""",
4483         ),
4484 #       -----------------------------------
4485         TRACERS_VERTICAL_PROFILES = SIMP(statut ='f',
4486 #       -----------------------------------
4487             typ = 'TXM', min=0, max='**',
4488             into = ["User defined","Constant","Constant or Rouse if sediment", "Normalized Rouse profile and imposed conc", "Modified Rouse profile accounting for molecular viscosity"],
4489             fr = """Permet de specifier le type de profil de concentration des
4490 traceurs sur la verticale.
4491 Il y a autant de valeurs a donner que le produit du nombre de traceurs
4492 par le nombre de frontieres liquides.
4493 Les choix possibles sont :
4494 \begin{itemize}
4495 \item 0 : Programmation utilisateur ;
4496 \item 1 : Constant ;
4497 \item 2 : Rouse equilibrium concentration ;
4498 \item 3 : Rouse (normalise) et concentration imposee.
4499 \item 4 : Rouse modifie avec viscosite moleculaire.
4500 \end{itemize}""",
4501             ang = """Specifies the type of profiles of tracer concentration on the
4502 vertical.
4503 There are as many values to be given as the product of the number of
4504 tracers and the number of open boundaries.
4505 Possible choices are:
4506 \begin{itemize}
4507 \item 0: user defined,
4508 \item 1: constant,
4509 \item 2: Rouse equilibrium, constant (diluted tracer)
4510 or Rouse (sediment),
4511 \item 3: Rouse (normalized) and imposed concentration.
4512 \item 4: Rouse modified with molecular viscosity.
4513 \end{itemize}""",
4514         ),
4515     ),
4516 #   -----------------------------------
4517     INITIALIZATION = FACT(statut='o',
4518 #   -----------------------------------
4519 #       -----------------------------------
4520         INITIAL_VALUES_OF_TRACERS = SIMP(statut ='o',
4521 #       -----------------------------------
4522             typ = 'R', min=0, max='**',
4523             fr = """Fixe la valeur initiale du/des traceur(s).
4524 Les valeurs requises sont separees par un point virgule ; si plus d une.
4525 Le nombre de valeurs fournies doit etre egal au nombre de traceurs
4526 declares.""",
4527             ang = """Sets the initial values of tracer(s).
4528 Required value(s) separated with a semicolumn ; if more than one.
4529 The number of supplied values must be equal to the number of declared
4530 tracers.""",
4531         ),
4532     ),
4533 #   -----------------------------------
4534     NUMERICAL_PARAMETERS = FACT(statut='o',
4535 #   -----------------------------------
4536 #       -----------------------------------
4537         ADVECTION = FACT(statut='o',
4538 #       -----------------------------------
4539 #           -----------------------------------
4540             SCHEME_FOR_ADVECTION_OF_TRACERS = SIMP(statut ='f',
4541 #           -----------------------------------
4542                 typ = 'TXM', min=0, max='**',
4543                 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"],
4544                 fr = """Fixe le schema utilise pour la convection des traceurs
4545 (un entier par traceur).
4546 Les choix possibles sont :
4547 \begin{itemize}
4548 \item 0 : pas de convection ;
4549 \item 1 : caracteristiques ;
4550 \item 2 : explicite + SUPG ;
4551 \item 3 : explicite Leo Postma ;
4552 \item 4 : explicite + MURD schema N ;
4553 \item 5 : explicite + MURD schema PSI ;
4554 \item 13 : Leo Postma pour bancs decouvrants ;
4555 \item 14 : schema N pour bancs decouvrants.
4556 \end{itemize}
4557 Valeurs par defaut de
4558 \telkey{SCHEMA POUR LA CONVECTION DES TRACEURS} = 5
4559 + \telkey{OPTION DU SCHEMA POUR LA CONVECTION DES TRACEURS} = 4 donnent
4560 le schema LIPS.""",
4561                 ang = """Sets the advection scheme for the tracers (one integer per tracer).
4562 Possible choices are:
4563 \begin{itemize}
4564 \item 0: no convection,
4565 \item 1: characteristics,
4566 \item 2: explicit + SUPG,
4567 \item 3: explicit Leo Postma,
4568 \item 4: explicit + MURD scheme N,
4569 \item 5: explicit + MURD scheme PSI,
4570 \item 13: Leo Postma for tidal flats,
4571 \item 14: N-scheme for tidal flats.
4572 \end{itemize}
4573 Default values for \telkey{SCHEME FOR ADVECTION OF TRACERS} = 5
4574 + \telkey{SCHEME OPTION FOR ADVECTION OF TRACERS} = 4
4575 give LIPS scheme.""",
4576             ),
4577 #           -----------------------------------
4578             SCHEME_OPTION_FOR_ADVECTION_OF_TRACERS = SIMP(statut ='f',
4579 #           -----------------------------------
4580                 typ = 'I', min=0, max='**',
4581                 fr = """Si present remplace et a priorite sur :
4582 \telkey{OPTION POUR LES CARACTERISTIQUES} et
4583 \telkey{OPTION DE SUPG}.
4584 Si schema PSI ou N :
4585 \begin{itemize}
4586 \item 1 : explicite ;
4587 \item 2 : predicteur-correcteur ;
4588 \item 3 : predicteur-correcteur deuxieme ordre en temps ;
4589 \item 4 : implicite (compatible avec bancs decouvrants).
4590 \end{itemize}
4591 Valeur par defaut = 4.
4592 Si pas de bancs decouvrants, l option 2 est plus rapide.
4593 Ancienne valeur par defaut = 1 (explicite) jusqu a la version V8P0.""",
4594                 ang = """If present replaces and has priority over:
4595 \telkey{OPTION FOR CHARACTERISTICS} and
4596 \telkey{SUPG OPTION}.
4597 If N or PSI scheme:
4598 \begin{itemize}
4599 \item 1: explicit,
4600 \item 2: predictor-corrector,
4601 \item 3: predictor-corrector second-order in time,
4602 \item 4: implicit (compatible with tidal flats).
4603 \end{itemize}
4604 Default value = 4.
4605 If no tidal flats, option 2 is faster.
4606 Old default value = 1 (explicit) until version V8P0.""",
4607             ),
4608         ),
4609 #       -----------------------------------
4610         DIFFUSION = FACT(statut='o',
4611 #       -----------------------------------
4612 #           -----------------------------------
4613             SCHEME_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4614 #           -----------------------------------
4615                 typ = 'TXM',
4616                 into = ["NO DIFFUSION","IMPLICIT","VERTICAL DIFFUSION ONLY"],
4617                 defaut = "IMPLICIT",
4618                 fr = """Permet de specifier si l''on utilise ou non la diffusion
4619 des traceurs
4620 Les choix possibles sont :
4621 \begin{itemize}
4622 \item 0 : pas de diffusion,
4623 \item 1 : implicite;
4624 \item 2 : diffusion verticale seulement.
4625 \end{itemize}""",
4626                 ang = """Monitors the choice of the diffusion scheme
4627 for tracers.
4628 Possible choices are:
4629 \begin{itemize}
4630 \item 0: no diffusion,
4631 \item 1: implicit,
4632 \item 2: vertical diffusion only.
4633 \end{itemize}""",
4634             ),
4635 #           -----------------------------------
4636             b_SCHEME_FOR_DIFFUSION_OF_TRACERSG = BLOC(condition="SCHEME_FOR_DIFFUSION_OF_TRACERS != 'NO DIFFUSION'",
4637 #           -----------------------------------
4638 #               -----------------------------------
4639                 SOLVER_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4640 #               -----------------------------------
4641                     typ = 'TXM', min=0, max='**',
4642                     into = ["conjugate gradient","conjugate residual","conjugate gradient on a normal equation","minimum error","squared conjugate gradient","cgstab","gmres","direct solver"],
4643                     fr = """Permet de choisir le solveur utilise pour la resolution de
4644 la diffusion des traceurs (un entier par traceur).
4645 Les choix possibles sont :
4646 \begin{itemize}
4647 \item 1 : gradient conjugue ;
4648 \item 2 : residu conjugue ;
4649 \item 3 : gradient conjugue sur equation normale ;
4650 \item 4 : erreur minimale ;
4651 \item 5 : gradient conjugue carre ;
4652 \item 6 : CGSTAB ;
4653 \item 7 : GMRES ;
4654 \item 8 : solveur direct.
4655 \end{itemize}""",
4656                     ang = """Choice of the solver for the diffusion of tracers
4657 (one integer per tracer).
4658 Possible choices are:
4659 \begin{itemize}
4660 \item 1: conjugate gradient,
4661 \item 2: conjugate residual,
4662 \item 3: conjugate gradient on a normal equation,
4663 \item 4: minimum error,
4664 \item 5: squared conjugate gradient,
4665 \item 6: CGSTAB,
4666 \item 7: GMRES,
4667 \item 8: direct solver.
4668 \end{itemize}""",
4669                 ),
4670 #               -----------------------------------
4671                 ACCURACY_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4672 #               -----------------------------------
4673                     typ = 'R',
4674                     defaut = 1.E-8,
4675                     fr = """Fixe la precision demandee pour le calcul de la diffusion
4676 des traceurs. Une seule valeur pour tous les traceurs.
4677 Ancienne valeur par defaut = 1.E-6 jusqu a la version V7P3.""",
4678                     ang = """Sets the accuracy needed for the computation of
4679 the diffusion of the tracers. One single value for every tracer.
4680 Old default value = 1.E-6 until version V7P3.""",
4681                 ),
4682 #               -----------------------------------
4683                 MAXIMUM_NUMBER_OF_ITERATIONS_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4684 #               -----------------------------------
4685                     typ = 'I',
4686                     defaut = 60,
4687                     fr = """Limite le nombre d''iterations du solveur a chaque pas
4688 de temps pour le calcul de la diffusion du ou des traceurs.""",
4689                     ang = """Limits the number of solver iterations for the diffusion of
4690 tracer(s).""",
4691                 ),
4692 #               -----------------------------------
4693                 PRECONDITIONING_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4694 #               -----------------------------------
4695                     typ = 'TXM', min=0, max='**',
4696                     into = ["no preconditioning","diagonal","diagonal condensed","diagonal with absolute values","Crout","Gauss-Seidel EBE","Matrix defined by the user","diagonal and Crout","direct solver on the vertical","diagonal condensed and Crout","diagonal and direct solver on the vertical"],
4697                     fr = """Permet de preconditionner le systeme relatif
4698 a la diffusion des traceurs. Les choix possibles sont :
4699 \begin{itemize}
4700 \item 0 : aucun ;
4701 \item 2 : diagonal ;
4702 \item 3 : diagonal avec matrice condensee ;
4703 \item 5 : diagonal avec valeurs absolues ;
4704 \item 7 : Crout ;
4705 \item 11 : Gauss-Seidel EBE ;
4706 \item 13 : matrice fournie par l''utilisateur ;
4707 \item 14 : diagonal et Crout ;
4708 \item 17 : solveur direct sur la verticale ;
4709 \item 21 : diagonal condensee et Crout ;
4710 \item 34 : diagonal et solveur direct sur la verticale.
4711 \end{itemize}""",
4712                     ang = """Choice of preconditioning for the diffusion of tracers.
4713 Possible choices are:
4714 \begin{itemize}
4715 \item 0: no preconditioning,
4716 \item 2: diagonal,
4717 \item 3: diagonal with the condensed matrix,
4718 \item 5: diagonal with absolute values,
4719 \item 7: Crout,
4720 \item 11: Gauss-Seidel EBE,
4721 \item 13: matrix defined by the user,
4722 \item 14: diagonal and Crout,
4723 \item 17: direct solver on the vertical,
4724 \item 21: diagonal condensed and Crout,
4725 \item 34: diagonal and direct solver on the vertical.
4726 \end{itemize}""",
4727                 ),
4728             ),
4729 #           -----------------------------------
4730             OPTION_OF_SOLVER_FOR_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4731 #           -----------------------------------
4732                 typ = 'I',
4733                 defaut = 5,
4734                 fr = """Dimension de l''espace de Krylov pour la methode GMRES (7).
4735 Ancienne valeur par defaut = 3 jusqu a la version V8P0.""",
4736                 ang = """Dimension of Krylov space for the GMRES method (7).
4737 Old default value = 3 until version V8P0.""",
4738             ),
4739         ),
4740     ),
4741 #   -----------------------------------
4742     TIDAL_FLATS_INFO = FACT(statut='o',
4743 #   -----------------------------------
4744 #       -----------------------------------
4745         TREATMENT_ON_TIDAL_FLATS_FOR_TRACERS = SIMP(statut ='f',
4746 #       -----------------------------------
4747             typ = 'TXM',
4748             into = ["FORCED TO ZERO","VALUE BEFORE MASKED"],
4749             defaut = "FORCED TO ZERO",
4750             fr = """Traitement sur les bancs decouvrants a l''etape de diffusion.
4751 \begin{itemize}
4752 \item 0 : forcage a zero ;
4753 \item 1 : valeur avant masquage.
4754 \end{itemize}
4755 Utiliser le choix 1 pour assurer la convervation du/des traceur(s)""",
4756             ang = """Treatment of tidal flats at the diffusion step for tracers.
4757 \begin{itemize}
4758 \item 0: forced to zero,
4759 \item 1: value before masked.
4760 \end{itemize}
4761 Use choice 1 to ensure conservation of tracer(s).""",
4762         ),
4763     ),
4764 #   -----------------------------------
4765     TURBULENCE = FACT(statut='o',
4766 #   -----------------------------------
4767 #       -----------------------------------
4768         COEFFICIENT_FOR_HORIZONTAL_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4769 #       -----------------------------------
4770             typ = 'R', min=0, max='**',
4771             fr = """Fixe les valeurs de coefficients de diffusion horizontal des
4772 traceurs.  L''influence de ce parametre sur l''evolution des traceurs
4773 dans le temps est importante.
4774 C est un tableau depuis la version 7.1, avec une valeur par traceur,
4775 separation par un point virgule.""",
4776             ang = """Sets the values of the horizontal diffusion of tracers.
4777 These values may have a significant effect on the evolution of
4778 tracers in time.
4779 Since version 7.1, it has been an array, with one value per tracer,
4780 separated by semicolons.""",
4781         ),
4782 #       -----------------------------------
4783         COEFFICIENT_FOR_VERTICAL_DIFFUSION_OF_TRACERS = SIMP(statut ='f',
4784 #       -----------------------------------
4785             typ = 'R', min=0, max='**',
4786             fr = """Fixe les valeurs de coefficients de diffusion vertical des
4787 traceurs.  L''influence de ce parametre sur l''evolution des traceurs
4788 dans le temps est importante.
4789 C est un tableau depuis la version 7.1, avec une valeur par traceur,
4790 separation par un point virgule.""",
4791             ang = """Sets the values of the vertical diffusion of tracers.
4792 These values may have a significant effect on the evolution of
4793 tracers in time.
4794 Since version 7.1, it has been an array, with one value per tracer,
4795 separated by semicolons.""",
4796         ),
4797     ),
4798 )
4799 # -----------------------------------------------------------------------
4800 SEDIMENT_INFO = PROC(nom= "SEDIMENT_INFO",op = None,
4801 # -----------------------------------------------------------------------
4802 #   -----------------------------------
4803     SEDIMENT = SIMP(statut ='o',
4804 #   -----------------------------------
4805         typ = bool,
4806         defaut = False,
4807         fr = """Permet de prendre en compte le transport sedimentaire.""",
4808         ang = """If YES, sediment transport is modelled.""",
4809     ),
4810 #   -----------------------------------
4811     DENSITY_OF_THE_SEDIMENT = SIMP(statut ='f',
4812 #   -----------------------------------
4813         typ = 'R',
4814         defaut = 2650.,
4815         fr = """Fixe la valeur de la masse volumique du sediment (kg/m$^3$).""",
4816         ang = """Value of the sediment density (kg/m$^3$).""",
4817     ),
4818 #   -----------------------------------
4819     TIME_STEP_FOR_CONSOLIDATION = SIMP(statut ='f',
4820 #   -----------------------------------
4821         typ = 'R',
4822         defaut = 1200.,
4823         fr = """Valeur du pas de temps pour le modele de consolidation qui
4824 peut etre plus grand que le pas de temps hydrodynamique car le
4825 phenomene est tres lent. Ce parametre est utilise si
4826 \telkey{OPTION DU MODELE DE TASSEMENT} = 1 (Modele multicouches
4827 empirique) ou 2 (Modele de Gibson (Lenormant)).""",
4828         ang = """Time step for the modelling consolidation, which can
4829 be greater than the hydrodynamic time step. This parameter is
4830 used if \telkey{CONSOLIDATION MODEL} = 1 (Empirical multilayer model)
4831 or 2 (Gibson model (Lenormant)).""",
4832     ),
4833 #   -----------------------------------
4834     COHESIVE_SEDIMENT = SIMP(statut ='f',
4835 #   -----------------------------------
4836         typ = bool,
4837         defaut = False,
4838         fr = """Permet de dire si le sediment est cohesif ou non.""",
4839         ang = """Tells if the sediment is cohesive or not.""",
4840     ),
4841 #   -----------------------------------
4842     SHIELDS_PARAMETER = SIMP(statut ='f',
4843 #   -----------------------------------
4844         typ = 'R',
4845         defaut = 0.047,
4846         fr = """Utilise pour determiner la valeur de la contrainte critique
4847 d''entrainement.""",
4848         ang = """Used to determine the critical bed shear stress value.""",
4849     ),
4850 #   -----------------------------------
4851     MIXED_SEDIMENT = SIMP(statut ='f',
4852 #   -----------------------------------
4853         typ = bool,
4854         defaut = False,
4855         fr = """Si OUI, calcul en sediments mixtes, il y aura un sediment
4856 cohesif et un sediment non cohesif.""",
4857         ang = """If YES, calculation of mixed sediment transport, there will be
4858 one cohesive sediment and one non cohesive sediment.""",
4859     ),
4860 #   -----------------------------------
4861     NUMBER_OF_SEDIMENT_BED_LAYERS = SIMP(statut ='f',
4862 #   -----------------------------------
4863         typ = 'I',
4864         defaut = 1,
4865         fr = """Structure verticale du lit cohesif, le nombre de couches
4866 doit etre inferieur a 20.""",
4867         ang = """Number of cohesive sediment bed layers, should be less
4868 than 20.""",
4869     ),
4870 #   -----------------------------------
4871     INPUT = FACT(statut='o',
4872 #   -----------------------------------
4873 #       -----------------------------------
4874         DATA = FACT(statut='o',
4875 #       -----------------------------------
4876 #           -----------------------------------
4877             READ_CRITICAL_BED_SHEAR_STRESS_PER_LAYER = SIMP(statut ='f',
4878 #           -----------------------------------
4879                 typ = bool,
4880                 defaut = False,
4881                 fr = """Lecture de la contrainte critique d''erosion a
4882 partir du \telkey{FICHIER DE GEOMETRIE}.""",
4883                 ang = """Decides if erosion shear stress at each layer is
4884 read from \telkey{GEOMETRY FILE}.""",
4885             ),
4886         ),
4887     ),
4888 #   -----------------------------------
4889     OUTPUT = FACT(statut='o',
4890 #   -----------------------------------
4891 #       -----------------------------------
4892         RESULTS = FACT(statut='o',
4893 #       -----------------------------------
4894 #           -----------------------------------
4895             SEDIMENTOLOGICAL_RESULT_FILE = SIMP(statut ='f',
4896 #           -----------------------------------
4897                 typ = ('Fichier','All Files (*)','Sauvegarde'),
4898                 defaut = '',
4899                 fr = """Nom du fichier dans lequel seront ecrits les variables
4900 decrivant le fond vaseux (epaisseurs et concentrations\ldots)
4901 avec la periodicite donnee par le mot cle \telkey{PERIODE POUR
4902 LES SORTIES GRAPHIQUES}.""",
4903                 ang = """Name of the file into which the sedimentological computation
4904 results (thickness and concentration of the mud bed\ldots) shall be
4905 written, the periodicity being given by the keyword
4906 \telkey{GRAPHIC PRINTOUT PERIOD}.""",
4907             ),
4908 #           -----------------------------------
4909             SEDIMENTOLOGICAL_RESULT_FILE_BINARY = SIMP(statut ='f',
4910 #           -----------------------------------
4911                 typ = 'TXM',
4912                 into = ['STD','IBM','I3E'],
4913                 defaut = 'STD',
4914                 fr = """Type du binaire utilise pour l''ecriture du fichier
4915 des resultats sedimentologiques.
4916 Ce type depend de la machine sur laquelle le fichier a ete genere.
4917 Les valeurs possibles sont :
4918 \begin{itemize}
4919 \item IBM pour un fichier cree sur IBM ;
4920 \item I3E pour un fichier cree sur HP ;
4921 \item STD.
4922 \end{itemize}
4923 Il s''agit alors d''ordres READ et WRITE normaux.""",
4924                 ang = """Binary file type used for writing the results file.
4925 This type depends on the machine on which the file was generated.
4926 The possible values are as follows:
4927 \begin{itemize}
4928 \item IBM, for a file on an IBM (from a CRAY),
4929 \item I3E, for a file on an HP (from a CRAY),
4930 \item STD, binary type of the machine on which the user is working.
4931 \end{itemize}
4932 In that case, normal READ and WRITE commands are used.""",
4933             ),
4934         ),
4935     ),
4936 #   -----------------------------------
4937     RESTART = FACT(statut='o',
4938 #   -----------------------------------
4939 #       -----------------------------------
4940         PREVIOUS_COMPUTATION_SEDIMENTOLOGICAL_FILE = SIMP(statut ='f',
4941 #       -----------------------------------
4942             typ = ('Fichier','All Files (*)'),
4943             defaut = '',
4944             fr = """Nom d''un fichier contenant les variables sedimentologiques
4945 decrivant le fond vaseux, resultats d''un calcul precedent realise
4946 sur le meme maillage et dont le dernier pas de temps enregistre
4947 va fournir les conditions initiales pour une suite de de calcul.""",
4948             ang = """Name of a file containing the sedimentological parameters
4949 (thickness and concentration of the bed\ldots), results of an earlier
4950 computation which was made on the same mesh. The last recorded time
4951 step will provide the initial conditions for the new computation.""",
4952         ),
4953     ),
4954 #   -----------------------------------
4955     PHYSICAL_PARAMETERS = FACT(statut='o',
4956 #   -----------------------------------
4957 #       -----------------------------------
4958         MEAN_DIAMETER_OF_THE_SEDIMENT = SIMP(statut ='f',
4959 #       -----------------------------------
4960             typ = 'R',
4961             defaut = .01,
4962             fr = """Valeur du diametre D50 pour les sediments non cohesifs.""",
4963             ang = """Sets the value of the diameter D50 for non cohesive sediments.""",
4964         ),
4965 #       -----------------------------------
4966         FRICTION = FACT(statut='o',
4967 #       -----------------------------------
4968 #           -----------------------------------
4969             RATIO_BETWEEN_SKIN_FRICTION_AND_MEAN_DIAMETER = SIMP(statut ='f',
4970 #           -----------------------------------
4971                 typ = 'R',
4972                 defaut = 3.0,
4973                 fr = """Ratio pour le calcul du frottement de peau.
4974 rugosite de peau = ratio $\times$ diametre moyen.""",
4975                 ang = """ Ratio for the computation of skin friction.
4976 skin roughness = ratio $\times$ mean diameter.""",
4977             ),
4978 #           -----------------------------------
4979             SKIN_FRICTION_CORRECTION = SIMP(statut ='f',
4980 #           -----------------------------------
4981                 typ = 'I',
4982                 defaut = 0,
4983                 fr = """Prise en compte du frottement de peau :
4984 \begin{itemize}
4985 \item 0 : pas de correction (TAUP = TOB) voir aussi
4986 \telkey{RATIO BETWEEN SKIN FRICTION AND MEAN DIAMETER} :
4987 \telfile{S3D\_KSPRATIO} ;
4988 \item 1 : fond plat (KSP = \telfile{S3D\_KSPRATIO} $\times$
4989 \telfile{S3D\_D50}) ;
4990 \item 2 : prise en compte des rides (non programme).
4991 \end{itemize}""",
4992                 ang = """Formula to predict the skin bed roughness:
4993 \begin{itemize}
4994 \item 0: No correction (TAUP = TOB) see also
4995 \telkey{RATIO ENTRE LA RUGOSITE DE PEAU ET LE DIAMETRE MOYEN}
4996 \telfile{S3D\_KSPRATIO},
4997 \item 1: Flat bed (KSP = \telfile{S3D\_KSPRATIO} $\times$
4998 \telfile{S3D\_D50}),
4999 \item 2: Ripple correction factor (not yet implemented).
5000 \end{itemize}""",
5001             ),
5002         ),
5003     ),
5004 #   -----------------------------------
5005     INITIALIZATION = FACT(statut='o',
5006 #   -----------------------------------
5007 #       -----------------------------------
5008         INITIAL_PERCENTAGE_OF_NON_COHESIVE_SEDIMENT = SIMP(statut ='f',
5009 #       -----------------------------------
5010             typ = 'R',
5011             defaut = 0.,
5012             fr = """Pourcentage initial du sediment non cohesif (mixte).""",
5013             ang = """Initial percentage of non cohesive sediment (mixed sediments).""",
5014         ),
5015 #       -----------------------------------
5016         MUD_CONCENTRATIONS_PER_LAYER = SIMP(statut ='f',
5017 #       -----------------------------------
5018             typ = 'R', min= 2, max= 2,
5019             fr = """Concentration du lit de vase en g/L (definie par couches) en
5020 commencant par la couche du fond.""",
5021             ang = """Dry density of the mud-bed layers in g/L starting
5022 form the bottom upwards.""",
5023         ),
5024 #       -----------------------------------
5025         CRITICAL_EROSION_SHEAR_STRESS_OF_THE_MUD_LAYERS = SIMP(statut ='f',
5026 #       -----------------------------------
5027             typ = 'R', min= 2, max= 2,
5028             fr = """Taux critique d erosion de la vase (N/m$^2$).
5029 Doit etre defini pour chaque couche en commencant par la couche de
5030 fond.""",
5031             ang = """Critical erosion shear stress of the mud per layer
5032 (N/m$^2$).
5033 Needs to be defined for each layer (N/m$^2$),
5034 starting from the condolidated bottom layer upwards.""",
5035         ),
5036 #       -----------------------------------
5037         INITIAL_THICKNESS_OF_SEDIMENT_LAYERS = SIMP(statut ='f',
5038 #       -----------------------------------
5039             typ = 'R', min= 2, max= 2,
5040             fr = """Epaisseurs initiales des sediments (m).""",
5041             ang = """Sediment layers thickness (m) for initialisation.""",
5042         ),
5043     ),
5044 #   -----------------------------------
5045     NUMERICAL_PARAMETERS = FACT(statut='o',
5046 #   -----------------------------------
5047 #       -----------------------------------
5048         DIFFUSION = FACT(statut='o',
5049 #       -----------------------------------
5050 #           -----------------------------------
5051             SOLVER_FOR_DIFFUSION_OF_THE_SEDIMENT = SIMP(statut ='o',
5052 #           -----------------------------------
5053                 typ = 'TXM',
5054                 into = ["conjugate gradient","conjugate residual","conjugate gradient on a normal equation","minimum error","squared conjugate gradient","cgstab","gmres","direct solver"],
5055                 defaut = "conjugate gradient on a normal equation",
5056                 fr = """Permet de choisir le solveur utilise pour la resolution de
5057 la diffusion du sediment.
5058 Les choix possibles sont :
5059 \begin{itemize}
5060 \item 1 : gradient conjugue ;
5061 \item 2 : residu conjugue ;
5062 \item 3 : gradient conjugue sur equation normale ;
5063 \item 4 : erreur minimale ;
5064 \item 5 : gradient conjugue carre ;
5065 \item 6 : CGSTAB ;
5066 \item 7 : GMRES ;
5067 \item 8 : solveur direct.
5068 \end{itemize}""",
5069                 ang = """Choice of the solver for the sediment equation.
5070 Possible choices are:
5071 \begin{itemize}
5072 \item 1: conjugate gradient,
5073 \item 2: conjugate residual,
5074 \item 3: conjugate gradient on a normal equation,
5075 \item 4: minimum error,
5076 \item 5: squared conjugate gradient,
5077 \item 6: CGSTAB,
5078 \item 7: GMRES,
5079 \item 8: direct solver.
5080 \end{itemize}""",
5081             ),
5082 #           -----------------------------------
5083             b_SOLVER_FOR_DIFFUSION_OF_THE_SEDIMENTG = BLOC(condition="SOLVER_FOR_DIFFUSION_OF_THE_SEDIMENT == 'gmres'",
5084 #           -----------------------------------
5085 #               -----------------------------------
5086                 OPTION_OF_SOLVER_FOR_DIFFUSION_OF_THE_SEDIMENT = SIMP(statut ='o',
5087 #               -----------------------------------
5088                     typ = 'I',
5089                     defaut = 5,
5090                     fr = """Dimension de l''espace de Krylov pour la methode GMRES (7).
5091 Ancienne valeur par defaut = 3 jusqu a la version V8P0.""",
5092                     ang = """Dimension of Krylov space for the GMRES method (7).
5093 Old default value = 3 until version V8P0.""",
5094                 ),
5095             ),
5096 #           -----------------------------------
5097             ACCURACY_FOR_DIFFUSION_OF_SEDIMENT = SIMP(statut ='o',
5098 #           -----------------------------------
5099                 typ = 'R',
5100                 defaut = 1.E-8,
5101                 fr = """Fixe la precision demandee pour le calcul de la diffusion
5102 des sediments.
5103 Ancienne valeur par defaut = 1.E-6 jusqu a la version V8P0.""",
5104                 ang = """Sets the accuracy needed for the computation of the
5105 diffusion of sediments.
5106 Old default value = 1.E-6 until version V8P0.""",
5107             ),
5108 #           -----------------------------------
5109             MAXIMUM_NUMBER_OF_ITERATIONS_FOR_DIFFUSION_OF_SEDIMENT = SIMP(statut ='o',
5110 #           -----------------------------------
5111                 typ = 'I',
5112                 defaut = 60,
5113                 fr = """Limite le nombre d''iterations du solveur a chaque pas
5114 de temps pour le calcul de la diffusion du sediment.""",
5115                 ang = """Limits the number of solver iterations for the diffusion of
5116 sediment.""",
5117             ),
5118 #           -----------------------------------
5119             PRECONDITIONING_FOR_DIFFUSION_OF_THE_SEDIMENT = SIMP(statut ='o',
5120 #           -----------------------------------
5121                 typ = 'TXM',
5122                 into = ["no preconditioning","diagonal","diagonal condensed","diagonal with absolute values","Crout","Gauss-Seidel EBE","Matrix defined by the user","diagonal and Crout","direct solver on the vertical","diagonal condensed and Crout","diagonal and direct solver on the vertical"],
5123                 defaut = "diagonal",
5124                 fr = """Permet de preconditionner le systeme relatif
5125 a la diffusion du sediment. Les choix possibles sont :
5126 \begin{itemize}
5127 \item 0 : aucun ;
5128 \item 2 : diagonal ;
5129 \item 3 : diagonal avec matrice condensee ;
5130 \item 5 : diagonal avec valeurs absolues ;
5131 \item 7 : Crout ;
5132 \item 11 : Gauss-Seidel EBE ;
5133 \item 13 : matrice fournie par l''utilisateur ;
5134 \item 14 : diagonal et Crout ;
5135 \item 17 : solveur direct sur la verticale ;
5136 \item 21 : diagonal condensee et Crout ;
5137 \item 34 : diagonal et solveur direct sur la verticale.
5138 \end{itemize}
5139 Certains preconditionnements sont cumulables
5140 (les diagonaux 2 ou 3 avec les autres).
5141 Pour cette raison on ne retient que les nombres premiers pour
5142 designer les preconditionnements. Si l''on souhaite en cumuler
5143 plusieurs on formera le produit des options correspondantes.""",
5144                 ang = """Choice of the preconditioning in the sediment diffusion
5145 system that the convergence is speeded up when it is being solved.
5146 Possible choices are:
5147 \begin{itemize}
5148 \item 0: no preconditioning,
5149 \item 2: diagonal,
5150 \item 3: diagonal with the condensed matrix,
5151 \item 5: diagonal with absolute values,
5152 \item 7: Crout,
5153 \item 11: Gauss-Seidel EBE,
5154 \item 13: matrix defined by the user,
5155 \item 14: diagonal and Crout,
5156 \item 17: direct solver on the vertical,
5157 \item 21: diagonal condensed and Crout,
5158 \item 34: diagonal and direct solver on the vertical.
5159 \end{itemize}
5160 Some operations (either 2 or 3 diagonal preconditioning) can be
5161 performed concurrently with the others.
5162 Only prime numbers are therefore kept to denote the preconditioning
5163 operations. When several of them are to be performed concurrently,
5164 the product of relevant options shall be done.""",
5165             ),
5166         ),
5167     ),
5168 #   -----------------------------------
5169     TIDAL_FLATS_INFO = FACT(statut='o',
5170 #   -----------------------------------
5171 #       -----------------------------------
5172         THRESHOLD_FOR_SEDIMENT_FLUX_CORRECTION_ON_TIDAL_FLATS = SIMP(statut ='o',
5173 #       -----------------------------------
5174             typ = 'R',
5175             defaut = 0.2,
5176             fr = """Pour les profondeurs inferieures a cette valeur limite, le flux
5177 sedimentaire sera nul. Voir le sous-programme \telfile{FLUSED}.""",
5178             ang = """Below this limiting depth, all sediment erosion rates are set
5179 to zero. See subroutine \telfile{FLUSED}.""",
5180         ),
5181     ),
5182 #   -----------------------------------
5183     DEPOSITION = FACT(statut='o',
5184 #   -----------------------------------
5185 #       -----------------------------------
5186         CRITICAL_SHEAR_STRESS_FOR_DEPOSITION = SIMP(statut ='f',
5187 #       -----------------------------------
5188             typ = 'R',
5189             defaut = 0.2,
5190             fr = """Fixe la valeur de la contrainte de cisaillement au fond
5191 au dessous de laquelle se produit le depot des sediments cohesifs.""",
5192             ang = """Value of the critical bottom shear stress under which
5193 deposition of cohesive sediments occurs.""",
5194         ),
5195 #       -----------------------------------
5196         NON_COHESIVE_BED_POROSITY = SIMP(statut ='f',
5197 #       -----------------------------------
5198             typ = 'R',
5199             defaut = 0.4,
5200             fr = """La concentration massique du lit \telfile{S3D\_CFDEP} est definie par
5201 \telfile{S3D\_CFDEP} = (1-\telfile{S3D\_XKV}) $\times$
5202 \telfile{S3D\_RHOS}.  Ce parametre est utilise pour les sediments
5203 non-cohesifs.""",
5204             ang = """The bed volume concentration \telfile{S3D\_CFDEP} =
5205 (1-\telfile{S3D\_XKV}) $\times$ \telfile{S3D\_RHOS} is used to calculate
5206 the bed evolution of non-cohesive sand transport.""",
5207         ),
5208     ),
5209 #   -----------------------------------
5210     EROSION = FACT(statut='o',
5211 #   -----------------------------------
5212 #       -----------------------------------
5213         EROSION_COEFFICIENT = SIMP(statut ='f',
5214 #       -----------------------------------
5215             typ = 'R',
5216             defaut = 2.E-3,
5217             fr = """Valeur du coefficient d''erosion utilise dans la formule
5218 de Partheniades en kg/m$^2$/s.""",
5219             ang = """Value of the erosion coefficient used in Partheniades
5220 formula in kg/m$^2$/s.""",
5221         ),
5222     ),
5223 #   -----------------------------------
5224     SETTLING_VELOCITY = FACT(statut='o',
5225 #   -----------------------------------
5226 #       -----------------------------------
5227         CONSTANT_SEDIMENT_SETTLING_VELOCITY = SIMP(statut ='f',
5228 #       -----------------------------------
5229             typ = 'R',
5230             defaut = 0.01,
5231             fr = """Vitesse de chute constante en m/s (> 0 depuis v6.3).
5232 Valeur imposee si
5233 \telkey{INFLUENCE DE LA TURBULENCE SUR LA VITESSE DE CHUTE}
5234 = NON.""",
5235             ang = """Constant sediment settling velocity in m/s (>0 since v6.3).
5236 Prescribed value if
5237 \telkey{INFLUENCE OF TURBULENCE ON SETTLING VELOCITY} = NO.""",
5238         ),
5239 #       -----------------------------------
5240         SETTLING_VELOCITY_OF_SANDS = SIMP(statut ='f',
5241 #       -----------------------------------
5242             typ = 'R',
5243             defaut = 0.,
5244             fr = """Vitesse de chute du sediment non cohesif.""",
5245             ang = """Non cohesive sediment settling velocity.""",
5246         ),
5247 #       -----------------------------------
5248         ADVECTION_DIFFUSION_SCHEME_WITH_SETTLING_VELOCITY = SIMP(statut ='f',
5249 #       -----------------------------------
5250             typ = 'I',
5251             defaut = 0,
5252             fr = """Choix de schema vertical pour la diffusion et le depot du
5253 sediment :
5254 \begin{itemize}
5255 \item 0 : Diffusion implicite ;
5256 \item 1 : Schema implicite de convection-diffusion
5257 (tridiagonal matrix solver) ;
5258 \item 2 : Convection faible  \telfile{sed\_fall.f}
5259 \end{itemize}""",
5260             ang = """Choice of the vertical scheme for diffusion and settling of
5261 sediment:
5262 \begin{itemize}
5263 \item 0: Implicit-diffusion scheme,
5264 \item 1: Implicit-convection scheme (Tridiagonal matrix solver),
5265 \item 2: \telfile{set\_fall.f}
5266 \end{itemize}""",
5267         ),
5268 #       -----------------------------------
5269         HINDERED_SETTLING = SIMP(statut ='f',
5270 #       -----------------------------------
5271             typ = bool,
5272             defaut = False,
5273             fr = """Decide si la formulation entravee doit etre utilisee
5274 pour calculer la vitesse de chute de la vase.""",
5275             ang = """Decides if hindered formulation is to be used to
5276 compute settling velocity for mud.""",
5277         ),
5278 #       -----------------------------------
5279         WEAK_SOIL_CONCENTRATION_FOR_MUD = SIMP(statut ='f',
5280 #       -----------------------------------
5281             typ = 'R',
5282             defaut = 0.0,
5283             fr = """Concentration limite en kg/m$^3$ au-dela de laquelle
5284 la couche de vase fluide devient solide.
5285 Cette valeur est demandee lorsque
5286 \telkey{VITESSE DE CHUTE ENTRAVEE} = OUI.""",
5287             ang = """The sediment concentration at which sediment
5288 forms a weak soil in kg/m$^3$. These values are needed when
5289 \telkey{HINDERED SETTLING} = YES.""",
5290         ),
5291 #       -----------------------------------
5292         THRESHOLD_CONCENTRATION_FOR_HINDERED_SETTLING = SIMP(statut ='f',
5293 #       -----------------------------------
5294             typ = 'R',
5295             defaut = 0.0,
5296             fr = """Concentration de sediment a laquelle la chute entravee est
5297 initiee. Ces valeurs sont necessaires lorsque
5298 \telkey{VITESSE DE CHUTE ENTRAVEE} = OUI.""",
5299             ang = """The sediment concentration at which hindered settling is
5300 initiated. These values are needed when
5301 \telkey{HINDERED SETTLING} = YES.""",
5302         ),
5303 #       -----------------------------------
5304         HINDERED_SETTLING_FORMULA = SIMP(statut ='f',
5305 #       -----------------------------------
5306             typ = 'I',
5307             defaut = 1,
5308             fr = """Type de vitesse de chute entravee :
5309 \begin{itemize}
5310 \item 1 : Whitehouse et al. (2000) - fonctionne ;
5311 \item 2 : Winterwerp (1999) - ne fonctionne pas actuellement.
5312 \end{itemize}""",
5313             ang = """Type of hindered settling:
5314 \begin{itemize}
5315 \item 1: Whitehouse et al. (2000) - working,
5316 \item 2: Winterwerp (1999) - not currently working.
5317 \end{itemize}""",
5318         ),
5319     ),
5320 #   -----------------------------------
5321     SUSPENSION = FACT(statut='o',
5322 #   -----------------------------------
5323 #       -----------------------------------
5324         REFERENCE_CONCENTRATION_FORMULA = SIMP(statut ='f',
5325 #       -----------------------------------
5326             typ = 'I',
5327             defaut = 1,
5328             fr = """\begin{itemize}
5329 \item 1 : formule de Zyserman et Fredsoe, formule d''equilibre ;
5330 \item 3 : formule de Van Rijn (1987).
5331 \end{itemize}""",
5332             ang = """\begin{itemize}
5333 \item 1: Zyserman and Fredsoe, equilibrium formula,
5334 \item 3: Van Rijn formula (1987).
5335 \end{itemize}""",
5336         ),
5337     ),
5338 #   -----------------------------------
5339     FLOCCULATION_INFO = FACT(statut='o',
5340 #   -----------------------------------
5341 #       -----------------------------------
5342         FLOCCULATION = SIMP(statut ='f',
5343 #       -----------------------------------
5344             typ = bool,
5345             defaut = False,
5346             fr = """Decide si la formulation entravee doit etre utilisee
5347 pour calculer la vitesse de chute pour la vase.""",
5348             ang = """Decides if hindered formulation is to be used to
5349 compute settling velocity for mud.""",
5350         ),
5351 #       -----------------------------------
5352         FLOCCULATION_FORMULA = SIMP(statut ='f',
5353 #       -----------------------------------
5354             typ = 'I',
5355             defaut = 1,
5356             fr = """Formule pour floculation :
5357 \begin{itemize}
5358 \item 1: Van Leussen ;
5359 \item 2: Soulsby et  al. (2013).
5360 \end{itemize}""",
5361             ang = """Type of flocculation formula:
5362 \begin{itemize}
5363 \item 1: Van Leussen,
5364 \item 2: Soulsby et  al. (2013).
5365 \end{itemize}""",
5366         ),
5367 #       -----------------------------------
5368         FLOCCULATION_COEFFICIENT = SIMP(statut ='f',
5369 #       -----------------------------------
5370             typ = 'R',
5371             defaut = 0.3,
5372             fr = """Coefficient intervenant dans la modelisation de l''influence de
5373 la turbulence sur la floculation, il intervient plus precisement dans
5374 le terme de formation des flocs par les contraintes turbulentes
5375 (coefficient $a$ de la formule de Van Leussen).
5376 Valeur a imposer si
5377 \telkey{INFLUENCE DE LA TURBULENCE SUR LA VITESSE DE CHUTE}
5378 = OUI.""",
5379             ang = """When the influence of turbulence on the settling velocity
5380 is modelled, this coefficient traduces the formation of flocs by
5381 turbulence (coefficient $a$ of Van Leussen formula).
5382 Value to be imposed if
5383 \telkey{INFLUENCE OF TURBULENCE ON SETTLING VELOCITY} = YES.""",
5384         ),
5385 #       -----------------------------------
5386         COEFFICIENT_RELATIVE_TO_FLOC_DESTRUCTION = SIMP(statut ='f',
5387 #       -----------------------------------
5388             typ = 'R',
5389             defaut = 0.09,
5390             fr = """Coefficient intervenant dans la modelisation de l''influence de
5391 la turbulence sur la floculation, il intervient plus precisement dans
5392 le terme de destruction des flocs par les contraintes turbulentes
5393 (coefficient $b$ de la formulede Van Leussen).
5394 Valeur a imposer si
5395 \telkey{INFLUENCE DE LA TURBULENCE SUR LA VITESSE DE CHUTE}
5396 = OUI.""",
5397             ang = """When the influence of turbulence on the settling velocity
5398 is modelled, this coefficient traduces the breaking of flocs by
5399 turbulence (coefficient $b$ of Van Leussen formula).
5400 Value to be imposed if
5401 \telkey{INFLUENCE OF TURBULENCE ON SETTLING VELOCITY} = YES.""",
5402         ),
5403     ),
5404 #   -----------------------------------
5405     DEPRECATED = FACT(statut='o',
5406 #   -----------------------------------
5407 #       -----------------------------------
5408         CLEANING_TO_BE_DONE = FACT(statut='o',
5409 #       -----------------------------------
5410 #           -----------------------------------
5411             BED_LAYERS_THICKNESS = SIMP(statut ='f',
5412 #           -----------------------------------
5413                 typ = 'R',
5414                 defaut = 5.E-3,
5415                 fr = """Epaisseur de reference pour creer de nouvelles couches
5416 de vase. Ce parametre est utilise seulement dans le cas
5417 \telkey{OPTION DU MODELE DE TASSEMENT} = 2
5418 (modele de Gibson (Lenormant)). Avec ce modele, le sediment
5419 qui se depose sur le fond est tout d''abord stocke dans une couche
5420 tampon appelee couche des depots frais. C''est seulement quand
5421 l''epaisseur de cette couche atteint la valeur donnee par le mot
5422 cle \telkey{EPAISSEUR DES COUCHES DU FOND VASEUX} qu''une nouvelle
5423 couche est cree au niveau du lit de vase.""",
5424                 ang = """Reference thickness considered for the creation of new
5425 bed layers.
5426 This parameter is used if \telkey{CONSOLIDATION MODEL} = 2
5427 (Gibson model (Lenormant)).
5428 With this model, the sediment which settles on
5429 the bottom arrives at first in the fresh deposit layer. When
5430 the thickness of this layer is equal to the
5431 \telkey{BED LAYERS THICKNESS},
5432 a new mud layer is added to the mud bed.""",
5433             ),
5434 #           -----------------------------------
5435             MAXIMUM_CONCENTRATION_OF_THE_CONSOLIDATED_MUD = SIMP(statut ='f',
5436 #           -----------------------------------
5437                 typ = 'R',
5438                 defaut = 500.,
5439                 fr = """Concentration maximale pouvant etre atteinte par une couche
5440 de vase lors du tassement.
5441 Ce parametre est utilise si \telkey{OPTION DU MODELE DE TASSEMENT} = 2
5442 (Modele de Gibson - Lenormant).""",
5443                 ang = """Maximum concentration which may be reached by a mud layer
5444 during consolidation.
5445 This value is used if \telkey{CONSOLIDATION MODEL} = 2
5446 (Gibson model (Lenormant)).""",
5447             ),
5448 #           -----------------------------------
5449             RESIDENCE_TIME_FOR_MUD = SIMP(statut ='f',
5450 #           -----------------------------------
5451                 typ = 'R', min=30, max=30,
5452                 fr = """Tableau contenant les temps de sejour en heure et centieme
5453 relatifs a chacune des couches discretisant le fond vaseux
5454 (la premiere valeur correspond a la couche du fond et la derniere
5455 correspond a la couche superficielle).
5456 Valeurs necessaires si \telkey{OPTION DU MODELE DE TASSEMENT} = 1
5457 (Modele multicouches empirique).""",
5458                 ang = """Array which contains the residence times of the mud bed
5459 layers (the first value is related to the bottom layer and the
5460 last one to the top layer).
5461 These values are needed when \telkey{CONSOLIDATION MODEL} = 1
5462 (Empirical multilayer model).""",
5463             ),
5464         ),
5465 #       -----------------------------------
5466         TO_BE_CHECKED = FACT(statut='o',
5467 #       -----------------------------------
5468 #           -----------------------------------
5469             CONSOLIDATION = SIMP(statut ='f',
5470 #           -----------------------------------
5471                 typ = bool,
5472                 defaut = False,
5473                 fr = """Logique pour la prise en compte du tassement des depots vaseux
5474 a l''aide d''un modele multicouches : les couches discretisant le fond
5475 sont caracterisees par leur temps de sejour, temps au bout duquel la
5476 vase presente dans cette couche bascule dans la couche suivante plus
5477 consolidee.""",
5478                 ang = """If this key word is equal to YES, consolidation is simulated
5479 thanks to a multi-layers model: the bed layers are characterized by
5480 their residence time which is the time after which the quantity of
5481 mud which remains in a layer goes into a more consolidated layer.""",
5482             ),
5483 #           -----------------------------------
5484             CONSOLIDATION_MODEL = SIMP(statut ='f',
5485 #           -----------------------------------
5486                 typ = 'I',
5487                 defaut = 1,
5488                 fr = """Choix du modele de tassement :
5489 \begin{itemize}
5490 \item 1 : Modele multicouches empirique ;
5491 \item 2 : Modele de Gibson (Lenormant).
5492 \end{itemize}""",
5493                 ang = """Choice of the consolidation model:
5494 \begin{itemize}
5495 \item 1: Empirical multilayer model,
5496 \item 2: Gibson model (Lenormant).
5497 \end{itemize}""",
5498             ),
5499         ),
5500     ),
5501 )
5502 # -----------------------------------------------------------------------
5503 COUPLING = PROC(nom= "COUPLING",op = None,
5504 # -----------------------------------------------------------------------
5505 #   -----------------------------------
5506     COUPLING_WITH = SIMP(statut ='o',
5507 #   -----------------------------------
5508         typ = 'TXM',
5509         into = ['','SISYPHE','TOMAWAC','TOMAWACT3D','WAQTEL','DELWAQ','GAIA'],
5510         defaut = '',
5511         fr = """Liste des codes avec lesquels on couple \telemac{3d} :
5512 \begin{itemize}
5513 \item \sisyphe : couplage interne avec \sisyphe ;
5514 \item \tomawac : couplage interne avec \tomawac les forces
5515 induites par les vagues sont constantes sur la hauteur ;
5516 \item TOMAWACT3D : couplage interne avec \tomawac les forces
5517 induites par les vagues sont 3D ;
5518 \item \waqtel : couplage interne avec \waqtel ;
5519 \item DELWAQ : sortie de fichiers de resultats pour Delwaq ;
5520 \item \gaia : couplage interne avec \gaia.
5521 \end{itemize}""",
5522         ang = """List of codes to be coupled with \telemac{3d}:
5523 \begin{itemize}
5524 \item \sisyphe: internal coupling with \sisyphe,
5525 \item \tomawac: internal coupling with \tomawac, forces are constant
5526 along the depth,
5527 \item TOMAWACT3D: internal coupling with \tomawac, forces are 3D,
5528 \item \waqtel: internal coupling with \waqtel,
5529 \item DELWAQ: will yield results file for DELWAQ,
5530 \item \gaia: internal coupling with \gaia.
5531 \end{itemize}""",
5532     ),
5533 #   -----------------------------------
5534     b_COUPLING_WITHG = BLOC(condition="COUPLING_WITH == 'SISYPHE'",
5535 #   -----------------------------------
5536 #       -----------------------------------
5537         SISYPHE_STEERING_FILE = SIMP(statut ='o',
5538 #       -----------------------------------
5539             typ = 'TXM',
5540             defaut = '',
5541             fr = """Fichier des parametres de \sisyphe en cas de couplage
5542 interne.""",
5543             ang = """\sisyphe parameter file in case of internal coupling.""",
5544         ),
5545 #       -----------------------------------
5546         COUPLING_PERIOD_FOR_SISYPHE = SIMP(statut ='o',
5547 #       -----------------------------------
5548             typ = 'I',
5549             defaut = 1,
5550             fr = """Fixe la periode de couplage avec le module \sisyphe,
5551 en nombre de pas de temps.
5552 Par defaut, il est couple a chaque pas de temps.""",
5553             ang = """Sets the coupling period with the \sisyphe module, in number
5554 of time steps. By default, it is coupled at every time step.""",
5555         ),
5556     ),
5557 #   -----------------------------------
5558     b_COUPLING_WITHH = BLOC(condition="COUPLING_WITH == 'TOMAWAC'",
5559 #   -----------------------------------
5560 #       -----------------------------------
5561         TOMAWAC_STEERING_FILE = SIMP(statut ='o',
5562 #       -----------------------------------
5563             typ = 'TXM',
5564             defaut = '',
5565             fr = """Fichier des parametres de \tomawac en cas de couplage
5566 interne.""",
5567             ang = """\tomawac parameter file in case of internal coupling.""",
5568         ),
5569 #       -----------------------------------
5570         COUPLING_PERIOD_FOR_TOMAWAC = SIMP(statut ='o',
5571 #       -----------------------------------
5572             typ = 'I',
5573             defaut = 1,
5574             fr = """Fixe la periode de couplage avec le module \tomawac,
5575 en nombre de pas de temps.
5576 Par defaut, il est couple a chaque pas de temps.""",
5577             ang = """Sets the coupling period with the \tomawac module, in number
5578 of time steps. By default, it is coupled at every time step.""",
5579         ),
5580     ),
5581 #   -----------------------------------
5582     b_COUPLING_WITHI = BLOC(condition="COUPLING_WITH == 'WAQTEL'",
5583 #   -----------------------------------
5584 #       -----------------------------------
5585         WAQTEL_STEERING_FILE = SIMP(statut ='o',
5586 #       -----------------------------------
5587             typ = 'TXM', max='**',
5588             defaut = '',
5589             fr = """Fichier des parametres physiques pour les processus de qualite d eau
5590 (internes, pas ceux de DELWAQ).""",
5591             ang = """File for physical parameters of water quality processes
5592 (local ones of \telemac{3d}-\waqtel not those of DELWAQ).""",
5593         ),
5594 #       -----------------------------------
5595         WATER_QUALITY_PROCESS = SIMP(statut ='o',
5596 #       -----------------------------------
5597             typ = 'I',
5598             defaut = 1,
5599             fr = """Donne le numero du processus de qualite d''eau, defini
5600 comme une combinaison multiplicative de nombres premiers
5601 (2, 3, 5, 7, 11, 13, 17 et 19) avec les cas particuliers 0 et 1 :
5602 \begin{itemize}
5603 \item 0 : tous ;
5604 \item 1 : rien ;
5605 \item 2 : O2 ;
5606 \item 3 : BIOMASS ;
5607 \item 5 : EUTRO ;
5608 \item 7 : MICROPOL ;
5609 \item 11 : THERMIC ;
5610 \item 13 : AED2 ;
5611 \item 17 : Loi de degradation ;
5612 \item 19 : Court-circuit temporaire pour les glaces.
5613 \end{itemize}
5614 Exemple : 110 = 2x5x11 activera O2, EUTRO et THERMIC ensemble.
5615 On notera qu''AED2, pour l''instant, doit etre utilise toute seule
5616 sans combinaison possible avec d autre processus de qualite de l eau.""",
5617             ang = """Gives the water quality process number, defined as
5618 a multiplicative combination of prime numbers (2, 3, 5, 7, 11, 13, 17
5619 and 19) with 0 and 1 having a special role:
5620 \begin{itemize}
5621 \item 0: all,
5622 \item 1: none,
5623 \item 2: O2,
5624 \item 3: BIOMASS,
5625 \item 5: EUTRO,
5626 \item 7: MICROPOL,
5627 \item 11: THERMIC,
5628 \item 13: AED2,
5629 \item 17: Degradation law,
5630 \item 19: Ghost process for ice modelling.
5631 \end{itemize}
5632 Example: 110 = 2x5x11 activates O2, EUTRO and THERMIC together.
5633 It is noted that AED2 should be used on its own, for the time being,
5634 without possible combination with other processes.""",
5635         ),
5636     ),
5637 #   -----------------------------------
5638     b_COUPLING_WITHJ = BLOC(condition="COUPLING_WITH == 'DELWAQ'",
5639 #   -----------------------------------
5640 #       -----------------------------------
5641         DELWAQ_STEERING_FILE = SIMP(statut ='o',
5642 #       -----------------------------------
5643             typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5644             defaut = '',
5645             fr = """Fichier de commande pour le chainage avec DELWAQ.""",
5646             ang = """Steering file for chaining with DELWAQ.""",
5647         ),
5648 #       -----------------------------------
5649         DELWAQ_PRINTOUT_PERIOD = SIMP(statut ='o',
5650 #       -----------------------------------
5651             typ = 'I',
5652             defaut = 1,
5653             fr = """Periode de sortie des resultats pour DELWAQ.""",
5654             ang = """Printout period for DELWAQ files.""",
5655         ),
5656 #       -----------------------------------
5657         EXCHANGES_BETWEEN_NODES_DELWAQ_FILE = SIMP(statut ='o',
5658 #       -----------------------------------
5659             typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5660             defaut = '',
5661             fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5662             ang = """Results file for chaining with DELWAQ.""",
5663         ),
5664 #       -----------------------------------
5665         NODES_DISTANCES_DELWAQ_FILE = SIMP(statut ='o',
5666 #       -----------------------------------
5667             typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5668             defaut = '',
5669             fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5670             ang = """Results file for chaining with DELWAQ.""",
5671         ),
5672 #       -----------------------------------
5673         BOTTOM_SURFACES_DELWAQ_FILE = SIMP(statut ='o',
5674 #       -----------------------------------
5675             typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5676             defaut = '',
5677             fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5678             ang = """Results file for chaining with DELWAQ.""",
5679         ),
5680 #       -----------------------------------
5681         VOLUMES_DELWAQ_FILE = SIMP(statut ='o',
5682 #       -----------------------------------
5683             typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5684             defaut = '',
5685             fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5686             ang = """Results file for chaining with DELWAQ.""",
5687         ),
5688 #       -----------------------------------
5689         EXCHANGE_AREAS_DELWAQ_FILE = SIMP(statut ='o',
5690 #       -----------------------------------
5691             typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5692             defaut = '',
5693             fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5694             ang = """Results file for chaining with DELWAQ.""",
5695         ),
5696 #       -----------------------------------
5697         VERTICAL_FLUXES_DELWAQ_FILE = SIMP(statut ='o',
5698 #       -----------------------------------
5699             typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5700             defaut = '',
5701             fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5702             ang = """Results file for chaining with DELWAQ.""",
5703         ),
5704 #       -----------------------------------
5705         VELOCITY_FOR_DELWAQ = SIMP(statut ='o',
5706 #       -----------------------------------
5707             typ = bool,
5708             defaut = False,
5709             fr = """Decide de la sortie de la vitesse pour DELWAQ.""",
5710             ang = """Triggers the output of velocity for DELWAQ.""",
5711         ),
5712 #       -----------------------------------
5713         b_VELOCITY_FOR_DELWAQG = BLOC(condition="VELOCITY_FOR_DELWAQ == True",
5714 #       -----------------------------------
5715 #           -----------------------------------
5716             VELOCITY_DELWAQ_FILE = SIMP(statut ='o',
5717 #           -----------------------------------
5718                 typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5719                 defaut = '',
5720                 fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5721                 ang = """Results file for chaining with DELWAQ.""",
5722             ),
5723         ),
5724 #       -----------------------------------
5725         DIFFUSION_FOR_DELWAQ = SIMP(statut ='o',
5726 #       -----------------------------------
5727             typ = bool,
5728             defaut = False,
5729             fr = """Decide de la sortie de la diffusion pour DELWAQ.""",
5730             ang = """Triggers the output of diffusion for DELWAQ.""",
5731         ),
5732 #       -----------------------------------
5733         b_DIFFUSION_FOR_DELWAQG = BLOC(condition="DIFFUSION_FOR_DELWAQ == True",
5734 #       -----------------------------------
5735 #           -----------------------------------
5736             DIFFUSIVITY_DELWAQ_FILE = SIMP(statut ='o',
5737 #           -----------------------------------
5738                 typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5739                 defaut = '',
5740                 fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5741                 ang = """Results file for chaining with DELWAQ.""",
5742             ),
5743         ),
5744 #       -----------------------------------
5745         TEMPERATURE_FOR_DELWAQ = SIMP(statut ='o',
5746 #       -----------------------------------
5747             typ = bool,
5748             defaut = False,
5749             fr = """Decide de la sortie de la temperature pour DELWAQ.""",
5750             ang = """Triggers the output of temperature for DELWAQ.""",
5751         ),
5752 #       -----------------------------------
5753         b_TEMPERATURE_FOR_DELWAQG = BLOC(condition="TEMPERATURE_FOR_DELWAQ == True",
5754 #       -----------------------------------
5755 #           -----------------------------------
5756             TEMPERATURE_DELWAQ_FILE = SIMP(statut ='o',
5757 #           -----------------------------------
5758                 typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5759                 defaut = '',
5760                 fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5761                 ang = """Results file for chaining with DELWAQ.""",
5762             ),
5763         ),
5764 #       -----------------------------------
5765         SALINITY_FOR_DELWAQ = SIMP(statut ='o',
5766 #       -----------------------------------
5767             typ = bool,
5768             defaut = False,
5769             fr = """Decide de la sortie de la salinite pour DELWAQ.""",
5770             ang = """Triggers the output of salinity for DELWAQ.""",
5771         ),
5772 #       -----------------------------------
5773         b_SALINITY_FOR_DELWAQG = BLOC(condition="SALINITY_FOR_DELWAQ == True",
5774 #       -----------------------------------
5775 #           -----------------------------------
5776             SALINITY_DELWAQ_FILE = SIMP(statut ='o',
5777 #           -----------------------------------
5778                 typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
5779                 defaut = '',
5780                 fr = """Fichier de resultats pour le chainage avec DELWAQ.""",
5781                 ang = """Results file for chaining with DELWAQ.""",
5782             ),
5783         ),
5784     ),
5785 #   -----------------------------------
5786     SISYPHE = FACT(statut='f',
5787 #   -----------------------------------
5788     ),
5789 #   -----------------------------------
5790     TOMAWAC = FACT(statut='f',
5791 #   -----------------------------------
5792 #       -----------------------------------
5793         BOTTOM_FRICTION_DUE_TO_WAVES = SIMP(statut ='o',
5794 #       -----------------------------------
5795             typ = bool,
5796             defaut = False,
5797             fr = """Permet de prendre en compte les efforts dus aux vagues sur
5798 le fond dans le cas du couplage 3D. Ceci necessite d avoir
5799 un maillage fin au voisinage du fond pour etre suffisamment precis.""",
5800             ang = """Allows to take into account the momentum lost by waves due to
5801 bottom friction. You need a fine mesh around the bottom to
5802 be precise.""",
5803         ),
5804     ),
5805 #   -----------------------------------
5806     WAQTEL = FACT(statut='f',
5807 #   -----------------------------------
5808     ),
5809 #   -----------------------------------
5810     DELWAQ = FACT(statut='f',
5811 #   -----------------------------------
5812     ),
5813 #   -----------------------------------
5814     GAIA = FACT(statut='o',
5815 #   -----------------------------------
5816 #       -----------------------------------
5817         GAIA_STEERING_FILE = SIMP(statut ='o',
5818 #       -----------------------------------
5819             typ = 'TXM',
5820             defaut = '',
5821             fr = """Fichier des parametres de \gaia en cas de couplage
5822 interne.""",
5823             ang = """\gaia parameter file in case of internal coupling.""",
5824         ),
5825     ),
5826 )
5827 # -----------------------------------------------------------------------
5828 AUTOMATIC_DIFFERENTIATION = PROC(nom= "AUTOMATIC_DIFFERENTIATION",op = None,
5829 # -----------------------------------------------------------------------
5830 #   -----------------------------------
5831     AD_NUMBER_OF_DERIVATIVES = SIMP(statut ='f',
5832 #   -----------------------------------
5833         typ = 'I',
5834         defaut = 0,
5835         fr = """Definit le nombre de derivees utilisateurs, dans le cadre
5836 de la differentiation algorithmique.""",
5837         ang = """Defines the number of user derivatives, within the framework
5838 of the algorithmic differentiation.""",
5839     ),
5840 #   -----------------------------------
5841     AD_NAMES_OF_DERIVATIVES = SIMP(statut ='f',
5842 #   -----------------------------------
5843         typ = 'TXM', min= 2, max= 2,
5844         fr = """Noms des derivees utilisateurs en 32 caracteres,
5845          16 pour le nom, 16 pour l''unite.""",
5846         ang = """Name of user derivatives in 32 characters,
5847          16 for the name, 16 for the unit.""",
5848     ),
5849 #   -----------------------------------
5850     AD_NUMBER_OF_DIRECTIONS = SIMP(statut ='f',
5851 #   -----------------------------------
5852         typ = 'I',
5853         defaut = 1,
5854         fr = """Definit le nombre de directions de differentiateurs.""",
5855         ang = """Defines the number of directions for the differentiators.""",
5856     ),
5857 #   -----------------------------------
5858     AD_SYMBOLIC_LINEAR_SOLVER = SIMP(statut ='f',
5859 #   -----------------------------------
5860         typ = bool,
5861         defaut = False,
5862         fr = """Permet le solveur lineaire symbolique pour l AD.""",
5863         ang = """Enables the symbolic linear solver for AD.""",
5864     ),
5865 #   -----------------------------------
5866     AD_LINEAR_SOLVER_RESET_DERIVATIVES = SIMP(statut ='f',
5867 #   -----------------------------------
5868         typ = bool,
5869         defaut = True,
5870         fr = """Remet a zero les derivees pour l AD.""",
5871         ang = """Resets the derivatives for AD.""",
5872     ),
5873 #   -----------------------------------
5874     AD_LINEAR_SOLVER_DERIVATIVE_CONVERGENCE = SIMP(statut ='f',
5875 #   -----------------------------------
5876         typ = bool,
5877         defaut = True,
5878         fr = """Solveur lineaire iteratif : test de convergence des derivees
5879 pour l AD.""",
5880         ang = """Iterative linear solvers: derivative convergence test for AD.""",
5881     ),
5882 )
5883 # -----------------------------------------------------------------------
5884 INTERNAL = PROC(nom= "INTERNAL",op = None,
5885 # -----------------------------------------------------------------------
5886     UIinfo = {"groupes": ("CACHE")},
5887 #   -----------------------------------
5888     PARTITIONING_TOOL = SIMP(statut ='f',
5889 #   -----------------------------------
5890         typ = 'TXM',
5891         into = ['METIS','SCOTCH','PARMETIS','PTSCOTCH'],
5892         defaut = 'METIS',
5893         fr = """Choix du partitionneur :
5894 \begin{itemize}
5895 \item 1 : METIS ;
5896 \item 2 : SCOTCH ;
5897 \item 3 : PARMETIS ;
5898 \item 4 : PTSCOTCH.
5899 \end{itemize}""",
5900         ang = """Partitioning tool selection:
5901 \begin{itemize}
5902 \item 1: METIS,
5903 \item 2: SCOTCH,
5904 \item 3: PARMETIS,
5905 \item 4: PTSCOTCH.
5906 \end{itemize}""",
5907     ),
5908 #   -----------------------------------
5909     STEERING_FILE = SIMP(statut ='f',
5910 #   -----------------------------------
5911         typ = ('Fichier','All Files (*)'),
5912         defaut = '',
5913         fr = """Nom du fichier contenant les parametres du calcul a realiser.""",
5914         ang = """Name of the file containing the parameters of the computation.
5915 Written by the user.""",
5916     ),
5917 #   -----------------------------------
5918     DICTIONARY = SIMP(statut ='f',
5919 #   -----------------------------------
5920         typ = ('Fichier','All Files (*)'),
5921         defaut = 'telemac3d.dico',
5922         fr = """Dictionnaire des mots cles.""",
5923         ang = """Key word dictionary.""",
5924     ),
5925 #   -----------------------------------
5926     CONCATENATE_PARTEL_OUTPUT = SIMP(statut ='o',
5927 #   -----------------------------------
5928         typ = bool,
5929         defaut = False,
5930         fr = """Avec cette option partel ne generera non plus un fichier (GEO/CLI/PAR)
5931 par processeur mais une concatenation de ceux-ci, ainsi qu''un fichier
5932 d''index associe. Ainsi plutot que d''avoir 3P fichiers, il n''y en a
5933 plus que 6.""",
5934         ang = """With this option partel no more generates a file (GEO/CLI/PAR) per
5935 process but a single concatenate file of them, associated to an index
5936 file. Then instead of having partel generating 3P files, it only
5937 generates 6 files.""",
5938     ),
5939 )
5940 TEXTE_NEW_JDC = "\
5941 COMPUTATION_ENVIRONMENT();\
5942 GENERAL_PARAMETERS();\
5943 VERTICAL();\
5944 NUMERICAL_PARAMETERS();\
5945 HYDRODYNAMICS();\
5946 HYDRO();\
5947 TURBULENCE();\
5948 "
5949 Ordre_Des_Commandes = (
5950 'COMPUTATION_ENVIRONMENT',
5951 'GENERAL_PARAMETERS',
5952 'VERTICAL',
5953 'NUMERICAL_PARAMETERS',
5954 'HYDRODYNAMICS',
5955 'HYDRO',
5956 'TIDES',
5957 'TURBULENCE',
5958 'TRACERS',
5959 'SEDIMENT_INFO',
5960 'COUPLING',
5961 'AUTOMATIC_DIFFERENTIATION',
5962 'INTERNAL')
5963 try:
5964     import TelApy
5965     source = "eficas"
5966 except Exception as excpt:
5967     source = "Telemac"
5968 enum = source+'.telemac3d_enum_auto'
5969 dicoCasEn = source+'.telemac3d_dicoCasEnToCata'
5970 dicoCasFr = source+'.telemac3d_dicoCasFrToCata'