Salome HOME
fin saisie MC
[tools/eficas.git] / Telemac / Telemac_Cata.py
1 # coding: utf-8
2
3 from Accas import *
4 class DateJJMMAAAA:
5   def __init__(self):
6     self.ntuple=3
7
8   def __convert__(self,valeur):
9     if type(valeur) == types.StringType: return None
10     if len(valeur) != self.ntuple: return None
11     return valeur
12
13   def info(self):
14     return "Date : jj/mm/aaaa "
15
16   __repr__=info
17   __str__=info
18
19 import types
20 class Tuple:
21   def __init__(self,ntuple):
22     self.ntuple=ntuple
23
24   def __convert__(self,valeur):
25     if type(valeur) == types.StringType:
26       return None
27     if len(valeur) != self.ntuple:
28       return None
29     return valeur
30
31   def info(self):
32     return "Tuple de %s elements" % self.ntuple
33
34
35
36 JdC = JDC_CATA (code = 'TELEMAC',
37                 execmodul = None,
38                 )
39 # ======================================================================
40 # Catalog entry for the MAP function : c_pre_interfaceBody_mesh
41 # ======================================================================
42
43 # -----------------------------------------------------------------------
44 INITIALIZATION = PROC(nom = "INITIALIZATION",op = None,
45 # -----------------------------------------------------------------------
46
47      fr = "Initialisation des fichiers d'entrĂ©e et de sortie",
48      ang = "Input and Output files initialization",
49      #UIinfo = { "groupes" : ( "CACHE", )},
50      UIinfo = { "groupes" : ( "iiii", )},
51
52 #    ------------------------------------
53      Title = SIMP( statut = 'o',typ = 'TXM',
54 #    ------------------------------------
55           fr = 'Titre du cas etudie. Ce titre figurera sur les dessins.',
56           ang = 'Title of the case being considered. This title shall be marked on the drawings.'),
57      #Working_Directory = SIMP( statut='o',typ='Repertoire',defaut='/tmp'),
58
59 #    ------------------------------------
60      Input_Files = FACT(statut='o',
61 #    ------------------------------------
62
63        #  Dictionary = SIMP( statut='o', typ = ('Fichier', 'Dico (*.dico);;All Files (*)',), 
64        #                    defaut='telemac2d.dico', 
65        #                    fr='Dictionnaire des mots cles.', ang='Key word dictionary.',),
66 # PN : le mot cle doit etre dans le dictionnaire et repris du catalogue mais n 
67 # est pas modifiable
68
69 #        ------------------------------------
70          Geometry_File_Format = SIMP( statut = 'o', typ = 'TXM',
71 #        ------------------------------------
72              into = ['Serafin', 'MED', 'SerafinD'], 
73              defaut = 'Serafin',
74              fr = 'Format du fichier de geometrie. Les valeurs possibles sont : \n \
75      - SERAFIN : format standard simple precision pour Telemac;   \n \
76      - SERAFIND: format standard double precision pour Telemac;   \n \
77      - MED     : format MED base sur HDF5',
78              ang = 'Results file format. Possible values are: \n\
79      - SERAFIN : classical single precision format in Telemac;\n\
80      - SERAFIND: classical double precision format in Telemac;\n\
81      - MED     : MED format based on HDF5',) ,
82
83 #        ------------------------------------
84          Geometry_File = SIMP( statut = 'o', 
85 #        ------------------------------------
86              typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
87              fr = 'Nom du fichier contenant le maillage du calcul a realiser.',
88              ang = 'Name of the file containing the mesh. \n\
89 This file may also contain the topography and the friction coefficients.'),
90
91           #Steering_File = SIMP( statut = 'o', typ = ('Fichier', 'Steering Files (*.cas);;All Files (*)',),),
92
93
94 #        ------------------------------------
95          Fortran_File = SIMP(statut = 'f',
96 #        ------------------------------------
97              typ = ('Fichier', 'Fortran files (*.f);;All Files (*)'),
98              fr = 'Nom du fichier a soumettre',
99              ang = 'Name of FORTRAN file to be submitted',),
100
101 #        ------------------------------------
102          Bottom_Topography_File = SIMP( statut = 'f', 
103 #        ------------------------------------
104               typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
105               fr = "Nom du fichier eventuel contenant la bathymetrie associee au maillage. \
106 Si ce mot-cle est utilise; c'est cette bathymetrie qui sera utilisee pour le calcul.",
107               ang = 'Name of the possible file containing the bathymetric data.\
108 Where this keyword is used, these bathymetric data shall be used in the computation.',
109          ),
110
111 #         ------------------------------------
112           Bottom_Smoothings = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
113 #         ------------------------------------
114               fr = 'Nombre de lissages effectues sur la topographie.  chaque lissage, effectue a l aide dune matrice de masse, est conservatif.\n\
115 Utilise lorsque les donnees de bathymetrie donnent des resultats trop irreguliers apres interpolation.',
116               ang = 'Number of smoothings on bottom topography.  each smoothing is mass conservative.  \n\
117 to be used when interpolation of bathymetry on the mesh gives very rough results.',),
118
119 #        ------------------------------------
120           Boundary_Conditions_File = SIMP( statut = 'o', 
121 #        ------------------------------------
122               typ = ('Fichier', 'Boundary Condition (*.cli);;All Files (*)',),
123               fr = 'Nom du fichier contenant les types de conditions aux limites. Ce fichier est rempli de facon automatique\n\
124 par le mailleur au moyen de couleurs affectees aux noeuds des frontieres du domaine de calcul.',
125               ang = 'Name of the file containing the types of boundary conditions. This file is filled automatically\n\
126 by the mesh generator through through colours that are assigned to the boundary nodes.',),
127
128
129 #        ------------------------------------
130          Validation = FACT( statut = 'f',
131 #        ------------------------------------
132 #PNPN--> creer le Mot_clef simple Validation si ce fact existe
133
134 #            ------------------------------------
135              Reference_File_Format = SIMP( statut = 'o',
136 #            ------------------------------------
137                  typ = 'TXM', 
138                  into = ['Serafin','MED','SerafinD'], 
139                  defaut = 'Serafin',
140                  fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
141      - SERAFIN : format standard simple precision pour Telemac;  \n\
142      - SERAFIND: format standard double precision pour Telemac; \n\
143      - MED     : format MED base sur HDF5' ,
144                  ang = 'Results file format. Possible values are:\n \
145      - SERAFIN : classical single precision format in Telemac;\n\
146      - SERAFIND: classical double precision format in Telemac; \n\
147      - MED     : MED format based on HDF5' ,),
148
149 #            ------------------------------------
150              Reference_File = SIMP( statut = 'o', 
151 #            ------------------------------------
152                  typ = ('Fichier', 'Reference File (*.ref);;All Files (*)',), 
153                  fr = 'Fichier de resultats de reference pour la validation. Les resultats a placer dans ce fichier seront a ecrire sur le canal 22.',
154                  ang = 'Binary-coded result file for validation. The results to be entered into this file shall be written on channel 22.',),
155
156          ),  # Fin de Validation
157
158 #        ------------------------------------
159          Formatted_And_Binary_Files = FACT( statut = 'f',
160 #        ------------------------------------
161
162 #            ------------------------------------
163              Formatted_Data_File_1 = SIMP( statut = 'f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
164 #            ------------------------------------
165                   fr = "Fichier de donnees formate mis a la disposition de l''utilisateur.  \n\
166 Les donnees de ce fichier seront a lire sur le canal 26.",
167                   ang = 'Formatted data file made available to the user.\n\
168 The data in this file shall be read on channel 26.',),
169
170 #            ------------------------------------
171              Formatted_Data_File_2 = SIMP( statut = 'f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
172 #            ------------------------------------
173                   fr = "Fichier de donnees formate mis a la disposition de l'utilisateur. \n\
174 Les donnees de ce fichier seront a lire sur le canal 27.",
175                   ang = "Formatted data file made available to the user.\n\
176 The data in this file shall be read on channel 27.",),
177
178 #            ------------------------------------
179              Binary_Data_File_1 = SIMP( statut = 'f', typ = ('Fichier', 'Reference File (*.txt);;All Files (*)',),
180 #            ------------------------------------
181                   fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur. \n\
182 Les donnees de ce fichier seront a lire sur le canal 24.',
183                   ang = 'Binary-coded data file made available to the user.\n\
184 The data in this file shall be read on channel 24.',),
185
186 #            ------------------------------------
187              Binary_Data_File_2 = SIMP( statut = 'f', typ = ('Fichier', 'Reference File (*.txt);;All Files (*)',),
188 #            ------------------------------------
189                   fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur.\n\
190 Les donnees de ce fichier seront a lire sur le canal 25.',
191                    ang = 'Binary-coded data file made available to the user. \n\
192 The data in this file shall be read on channel 25.',),
193
194          ),  # fin Formatted_And_Binary_Files
195
196      ), # Fin de InputFile 
197
198
199 #    ------------------------------------
200      Computation_Continued = SIMP( statut = 'o',typ = bool,defaut = False,position = "global_jdc"),
201 #    ------------------------------------
202
203 #    ------------------------------------
204      b_comput_con = BLOC(condition = 'Computation_Continued == True',
205      Computation_Continued_Settings = FACT(statut = 'o',
206
207 #        ------------------------------------
208          Previous_Computation_File_Format = SIMP( statut = 'o',typ = 'TXM',
209 #        ------------------------------------
210               into = ['Serafin','MED','SerafinD'],
211               defaut = 'Serafin',
212               fr = 'Format du fichier de resultats du calcul precedent. Les valeurs possibles sont : \n\
213          - SERAFIN : format standard simple precision pour Telemac;  \n\
214          - SERAFIND: format standard double precision pour Telemac; \n\
215          - MED     : format MED base sur HDF5',
216               ang = 'Previous computation results file format. Possible values are: \n\
217          - SERAFIN : classical single precision format in Telemac;  \n\
218          - SERAFIND: classical double precision format in Telemac; \n\
219          - MED     : MED format based on HDF5',),
220
221 #        ------------------------------------
222          Previous_Computation_File = SIMP( statut = 'o', 
223 #        ------------------------------------
224              typ = ('Fichier', 'Computation File (*.res);;All Files (*)',),
225              fr = "Nom d'un fichier contenant les resultats d'un calcul precedent realise sur le meme maillage \n\
226  et dont le dernier pas de temps enregistre va fournir les conditions initiales pour une suite de de calcul.",
227              ang = 'Name of a file containing the results of an earlier computation which was made on the same mesh.\n\
228  The last recorded time step will provid the initial conditions for the new computation.',
229                     ),
230 #        ------------------------------------
231           Initial_Time_Set_To_Zero = SIMP(typ = bool, statut = 'o',
232 #        ------------------------------------
233              fr = 'Remet le temps a zero en cas de suite de calcul',
234              ang = 'Initial time set to zero in case of restart',
235              defaut = "False"),
236
237 #        ------------------------------------
238           Record_Number_For_Restart = SIMP(typ = 'I', statut = 'o', defaut = 0,
239 #        ------------------------------------
240               fr = "numero de l'enregistrement de depart dans le fichier du calcul precedent. 0 signifie qu'on prend le dernier enregistrement", 
241               ang = "record number to start from in the previous computation file, 0 for last record" ),
242
243         ),
244      ),# fin BLOC b_comput_con 
245
246 #    ------------------------------------
247      Coupling = FACT( statut = 'o',
248 #    ------------------------------------
249 # PNPNPN Attention 1 seul choix possible
250         fr = 'Liste des codes avec lesquels on couple Telemac-2D',
251         ang = 'List of codes to be coupled with Telemac-2D',
252
253 #        ------------------------------------
254          Sisyphe = SIMP(statut = 'o',typ = bool,defaut = False ,
255 #        ------------------------------------
256              fr = 'couplage interne avec Sisyphe', 
257              ang = 'internal coupling with Sisyphe'),
258
259 #        ------------------------------------
260          Tomawac = SIMP(statut = 'o',typ = bool,defaut = False,
261 #        ------------------------------------
262              fr = 'couplage interne avec Tomawac', 
263              ang = 'internal coupling with Tomawac'),
264
265 #        ------------------------------------
266          Delwacq = SIMP(statut = 'o',typ = bool,defaut = False,
267 #        ------------------------------------
268              fr = 'couplage interne avec Delwacq', 
269              ang = 'internal coupling with Delwacq'),
270 # PNPNPN Attention : il faut des mots cles si Delwacq. a voir avec Soizic 
271 # On verra apres
272
273         ), # fin Coupling
274
275 #    ------------------------------------
276       Parallel_Computation = SIMP(statut = 'o',typ = 'TXM',
277 #    ------------------------------------
278 #    Ce mot clef n existe pas dans le dico
279          into = ['Sequentiel','Parallel'],
280          defaut = 'Sequentiel',),
281
282 #    ------------------------------------
283       b_para = BLOC(condition = 'Parallel_Computation == "Parallel"',
284 #    ------------------------------------
285 #        ------------------------------------
286          Parallel_Processors = SIMP(statut = 'o',typ = 'I',
287 #        ------------------------------------
288              val_min = 0,defaut = 1,
289              fr = 'NOMBRE DE PROCESSEURS EN CALCUL PARALLELE \n\
290 0 : 1 machine, compilation sans bibliotheque de parallelisme \n\
291 1 : 1 machine, compilation avec bibliotheque de parallelisme \n\
292 2 : 2 processeurs ou machines en parallele etc... ',
293              ang = 'NUMBER OF PROCESSORS FOR PARALLEL PROCESSING \n\
294 0 : 1 machine, compiling without parallel library \n\
295 1 : 1 machine, compiling with a parallel library \n\
296 2 : 2 processors or machines in parallel'),
297          ), # fin b_para
298
299 )# INITIALISATION
300
301 # -----------------------------------------------------------------------
302 TIDE_PARAMETERS = PROC(nom = "TIDE_PARAMETERS",op = None,
303 # -----------------------------------------------------------------------
304 #    ------------------------------------
305      Inputs_Outputs_For_Tide = FACT( statut = 'o',
306 #    ------------------------------------
307
308 #       ------------------------------------
309         Harmonic_Constants_File = SIMP( statut = 'o',
310 #       ------------------------------------
311             typ = ('Fichier', 'All Files (*)',),
312             fr = 'Constantes harmoniques extraites du fichier du modele de maree',
313             ang = 'Harmonic constants extracted from the tidalmodel file',),
314
315 #       ------------------------------------
316         Tidal_Model_File = SIMP( statut = 'o',
317 #       ------------------------------------
318             typ = ('Fichier', 'All Files (*)',),
319             fr = 'Fichier de geometrie du modele dont sont extraites les constantes harmoniques',
320             ang = 'Geometry file of the model from which harmonic constituents are extracted',),
321
322       ), # Fin Inputs_Outputs_For_Tide
323
324 #    ------------------------------------
325      Location = FACT( statut = 'o',
326 #    ------------------------------------
327 #       ------------------------------------
328         Geographic_System = SIMP(statut = 'o',typ = 'TXM',
329 #       ------------------------------------
330             into = ["Defined by user", "WGS84 longitude/latitude in real degrees", "WGS84 nothern UTM",\
331                       "WGS84 southern UTM","Lambert", "Mercator",],
332             defaut = "Defined by user",
333             fr = 'Systeme de coordonnees geographiques dans lequel est construit le modele numerique.',
334             ang = 'Geographic coordinates system in which the numerical model is built.',),
335
336 #       ------------------------------------
337         b_geo_plan = BLOC(condition = "Geographic_System in ['WGS84 nothern UTM','WGS84 southern UTM','Lambert']",
338 #       ------------------------------------
339
340 #          ------------------------------------
341            Zone_Number_In_Geographic_System = SIMP(statut = 'f',typ = 'TXM',
342 #          ------------------------------------
343                into = [ 'Lambert 1 north', 'Lambert 2 center', 'Lambert 3 south', \
344                         'Lambert 4 corsica', 'Lambert 2 extended', 'UTM zone,E.G.'],
345                fr = "Numero de zone (fuseau ou type de projection) lors de l'utilisation d'une projection plane.\n \
346 Indiquer le systeme geographique dans lequel est construit le modele numerique avec le mot-cle SYSTEME GEOGRAPHIQUE",
347                ang = 'Number of zone when using a plane projection. \n\
348 Indicate the geographic system in which the numerical model is built with the keyword GEOGRAPHIC SYSTEM'),
349            ), # Fin b_geo_plan
350        ), # Fin Location
351
352 #    ------------------------------------
353      Physical_Parameters = FACT(statut = 'o',
354 #    ------------------------------------
355
356 #       ------------------------------------
357         Tide_Generating_Force = SIMP(statut = 'o',
358 #       ------------------------------------
359            typ = bool, defaut = False),
360
361 #       ------------------------------------
362         b_Tide = BLOC(condition = "Tide_Generating_Force == True",
363 #       ------------------------------------
364 #           ------------------------------------
365             Longitude_Of_Origin_Point = SIMP(typ = 'R',
366 #           ------------------------------------
367                 statut = 'o', defaut = 48.,
368                 fr = 'Fixe la valeur de la longitude du point origine du modele, lors de l utilisation de la force generatrice de la maree.',
369                 ang = 'Give the value of the longitude of the origin point of the model, when taking into account of the tide generator force.',),
370
371 #           ------------------------------------
372             Tidal_Data_Base = SIMP(statut = 'o',typ = 'TXM',
373 #           ------------------------------------
374 # Soizic . Il faudrait une consigne ? avec des blocs ?
375 # en suspens pour JMJ
376                  into = [ "JMJ", "TPXO", "Miscellaneous (LEGOS-NEA, FES20XX, PREVIMER...)",],
377                  fr = 'Pour JMJ, renseigner la localisation du fichier bdd_jmj et geofin dans les mots-cles BASE DE DONNEES DE MAREE \n\
378 et FICHIER DU MODELE DE MAREE.  Pour TPXO, LEGOS-NEA, FES20XX et PREVIMER, l utilisateur doit telecharger les fichiers \n\
379 de constantes harmoniques sur internet',
380                  ang = 'For JMJ, indicate the location of the files bdd_jmj and geofin with keywords TIDE DATA BASE and TIDAL MODEL FILE.\n\
381 For TPXO, LEGOS-NEA, FES20XX and PREVIMER, the user has to download files of harmonic constituents on the internet',),
382
383 #           ------------------------------------
384             b_tpxo = BLOC(condition = "Tidal_Data_Base == 'TPXO'",
385 #           ------------------------------------
386
387 #              ------------------------------------
388                Minor_Constituents_Inference = SIMP( statut = 'o',typ = 'bool',
389 #              ------------------------------------
390                   defaut = False ,
391                   fr = 'Interpolation de composantes harmoniques mineures a partir de celles lues dans les \n\
392 fichiers d entrees lies aux mots-cles BASE BINAIRE 1 DE DONNEES DE MAREE et BASE BINAIRE 2 DE DONNEES DE MAREE',
393                   ang = 'Inference of minor constituents from the one read in input files linked to \n\
394 keywords BINARY DATABASE 1 FOR TIDE and BINARY DATABASE 2 FOR TIDE',),
395
396
397
398 #           ------------------------------------
399               Binary_Database_1_For_Tide = SIMP( statut = 'o',
400 #           ------------------------------------
401                 typ = ('Fichier', '(All Files (*),)',),
402                 fr = 'Base de donnees binaire 1 tiree du fichier du modele de maree.\n\
403 Dans le cas des donnees satellitaires de TPXO, ce fichier correspond aux donnees de niveau d''eau, par exemple h_tpxo7.2',
404                 ang = 'Binary database 1 extracted from the tidal model file.\n\
405 In the case of the TPXO satellite altimetry model, this file should be for free surface level, for instance h_tpxo7.2',),
406
407 #           ------------------------------------
408               Binary_Database_2_For_Tide = SIMP( statut = 'o',
409 #           ------------------------------------
410                 typ = ('Fichier', '(All Files (*),)',),
411                 fr= 'Base de donnees binaire 2 tiree du fichier du modele de maree.\n\
412 Dans le cas des donnees satellitaires de TPXO, ce fichier correspond aux donnees de vitesse de marrees, par exemple u_tpxo7.2',
413                 ang = 'Binary database 2 extracted from the tidal model file.\n\
414 In the case of the TPXO satellite altimetry model, this file should be for tidal velocities, for instance u_tpxo7.2' ),
415
416             ),#fin du bloc b_tpxo
417          ), # Fin du Bloc b_Tide
418
419 #       ------------------------------------
420         Option_For_Tidal_Boundary_Conditions = SIMP( statut = 'o',
421 #       ------------------------------------
422            typ = 'TXM', defaut = 'No tide',
423            into = ['No tide', 'Real tide (recommended methodology)', 'Astronomical tide', \
424                    'Mean spring tide', 'Mean tide', 'Mean neap tide', \
425                    'Astronomical neap tide', 'Real tide (methodology before 2010)'],),
426
427 #       ------------------------------------
428         b_Option_B = BLOC(condition = 'Option_For_Tidal_Boundary_Conditions!= "No tide"',
429 #       ------------------------------------
430 #           ------------------------------------
431             Coefficient_To_Calibrate_Tidal_Range = SIMP(statut = 'o',
432 #           ------------------------------------
433                 typ = 'R', defaut = 1.,
434                 fr = 'Coefficient pour ajuster le marnage de l''onde de maree aux frontieres maritimes',
435                 ang = 'Coefficient to calibrate the tidal range of tidal wave at tidal open boundary conditions'),
436
437 #           ------------------------------------
438             Coefficient_To_Calibrate_Tidal_Velocities = SIMP(statut = 'o',
439 #           ------------------------------------
440                 typ = 'R', defaut = 999999,
441                 fr = 'Coefficient pour ajuster les composantes de vitesse de l''onde de maree aux frontieres maritimes.\n\
442 La valeur par defaut 999999. signifie que c''est la racine carree du Coefficient_De_Calage_Du_Marnage qui est prise',
443                 ang = 'Coefficient to calibrate the tidal velocities of tidal wave at tidal open boundary conditions.\n\
444                 Default value 999999. means that the square root of Coefficient_To_Calibrate_Tidal_Range is taken'),
445
446 #           ------------------------------------
447               Coefficient_To_Calibrate_Sea_Level = SIMP(statut = 'o',typ = 'R',
448 #           ------------------------------------
449                  defaut = 0.,
450                  fr = 'Coefficient pour ajuster le niveau de mer',
451                  ang = 'Coefficient to calibrate the sea level'),
452           ), # fin b_Option_B
453
454        ), #fin Physical_Parameters
455 ) # Fin TIDE_PARAMETERS
456
457 # -----------------------------------------------------------------------
458 INITIAL_STATE = PROC(nom = "INITIAL_STATE",op = None,
459 # -----------------------------------------------------------------------
460
461 #    ------------------------------------
462      Initial_Conditions = SIMP(statut = 'o',typ = 'TXM',
463 #    ------------------------------------
464           into = ['Zero elevation','Constant elevation','Zero depth','Constant depth','Special','TPXO satellite altimetry'],
465           defaut = 'Zero elevation',
466           fr = "Permet de definir les conditions initiales sur les hauteurs d'eau. Les valeurs possibles sont :\n\
467     - COTE NULLE. Initialise la cote de surface libre a 0. \nLes hauteurs d'eau initiales sont alors retrouvees en faisant la difference entre les cotes de surface libre et du fond. \n\
468     - COTE CONSTANTE . Initialise la cote de surface libre a la valeur donnee par le mot-cle COTE INITIALE. Les hauteurs d'eau initiales sont calculees comme precedemment.\n\
469    - HAUTEUR NULLE .Initialise les hauteurs d'eau a 0. \n\
470    - HAUTEUR CONSTANTE. Initialise les hauteurs d'eau a la valeur donnee par le mot-cle HAUTEUR INITIALE. \n\
471    - PARTICULIERES. Les conditions initiales sur la hauteur d'eau doivent etre precisees dans le sous-programme CONDIN. \n\
472    - ALTIMETRIE SATELLITE TPXO. Les conditions initiales sur la hauteur  d'eau et les vitesses sont etablies sur \n\
473       la base des donnees satellite TPXO dont les 8 premiers constistuents ont ete extraits et sauves dans le fichier\n\
474       BASE DE DONNEES DE MAREE." ,
475          ang = 'Makes it possible to define the initial conditions with the water depth. The possible values are : \n\
476    - ZERO ELEVATION. Initializes the free surface elevation to 0. \n The initial water depths are then found by computing the difference between the free surface and the bottom.  \n\
477    - CONSTANT ELEVATION. Initializes the water elevation to the value given by the keyword \n\
478    - INITIAL ELEVATION. The initial water depths are computed as in the previous case. \n\
479    - ZERO DEPTH. Initializes the water depths to 0. \n\
480    - CONSTANT DEPTH. Initializes the water depths to the value givenby the key-word  INITIAL DEPTH. \n\
481    - SPECIAL. The initial conditions with the water depth should be stated in the CONDIN subroutine. \n\
482    - TPXO SATELITE ALTIMETRY. The initial conditions on the free surface and velocities are established from the TPXO satellite program data,\n the harmonic constituents of which are stored in the TIDE DATA BASE file.', ),
483  
484 #    ------------------------------------
485      b_initial_elevation = BLOC (condition = "Initial_Conditions == 'Constant elevation'",
486 #    ------------------------------------
487 #        ------------------------------------
488          Initial_Elevation = SIMP(statut = 'o',typ = 'R',
489 #        ------------------------------------
490              fr = 'Valeur utilisee avec l''option :  CONDITIONS INITIALES - COTE CONSTANTE',
491              ang = 'Value to be used with the option : INITIAL CONDITIONS  -CONSTANT ELEVATION' ),
492      ) , # fin b_initial_elevation
493
494 #    ------------------------------------
495      b_initial_depth = BLOC (condition = "Initial_Conditions == 'Constant depth'",
496 #    ------------------------------------
497 #        ------------------------------------
498          Initial_Depth = SIMP(statut = 'o',typ = 'R',
499 #        ------------------------------------
500              fr = 'Valeur utilisee avec l''option : CONDITIONS INITIALES :-HAUTEUR CONSTANTE-',
501              ang = 'Value to be used along with the option: INITIAL CONDITIONS -CONSTANT DEPTH-' ),
502          ),# fin b_initial_depth
503  
504 #    ------------------------------------
505      b_special = BLOC (condition = "Initial_Conditions == 'Special'",
506 #    ------------------------------------
507 #        ------------------------------------
508          Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
509 #        ------------------------------------
510              defaut = "The initial conditions with the water depth should be stated in the CONDIN subroutine"),
511       ), # fin b_special
512
513 #PNPN il faut changer la condition pour que cela soit dans maree. il faut une position = global_jdc et remonter # cela
514 #    ------------------------------------
515      b_initial_TPXO = BLOC (condition = "Initial_Conditions == 'TPXO satellite altimetry'",
516 #    ------------------------------------
517 #        ------------------------------------
518          Ascii_Database_For_Tide = SIMP( statut = 'o', 
519 #        ------------------------------------
520              typ = ('Fichier', 'All Files (*)',), 
521              fr = 'Base de donnees de constantes harmoniques tirees du fichier du modele de maree',
522              ang = 'Tide data base of harmonic constituents extracted from the tidal model file',),
523          ), # fin b_initial_TPXO
524
525 ) # fin INITIAL_STATE 
526
527 # -----------------------------------------------------------------------
528 BOUNDARY_CONDITIONS = PROC(nom = "BOUNDARY_CONDITIONS",op = None,
529 # -----------------------------------------------------------------------
530             fr = 'On donne un ensemble de conditions par frontiere liquide',
531             ang = 'One condition set per liquid boundary is given',
532             #UIinfo = { "groupes" : ( "CACHE", )},
533             UIinfo = { "groupes" : ( "iiii", )},
534  # Dans l ideal il faut aller regarder selon les groupes dans le fichier med
535  # en sortie il faut aller chercher le .cli qui va bien 
536             #Liquid_Boundaries = FACT(statut = 'f',max = '**',
537             #    Options = SIMP(statut = 'f',typ = 'I',into = ['classical boundary conditions','Thompson method based on characteristics'])
538             #    Prescribed_Flowrates = SIMP(statut = 'f',typ = 'R'),
539             #    Prescribed_Elevations = SIMP(statut = 'f',typ = 'R'),
540             #    Prescribed_Velocity = SIMP(statut = 'f',typ = 'R'),
541       # ),
542
543 # Il va falloir une "traduction dans le langage du dico"
544 # Il faut seulement l un des 3
545
546 #    ------------------------------------
547      Liquid_Boundaries = FACT(statut = 'f',max = '**',
548 #    ------------------------------------
549                 
550 #        ------------------------------------
551          Options = SIMP(statut = 'f',typ = 'I',
552 #        ------------------------------------
553             into = ['Classical boundary conditions','Thompson method based on characteristics'],
554             fr = 'On donne 1 entier par frontiere liquide',
555             ang = 'One integer per liquid boundary is given',),
556
557 #        ------------------------------------
558          Type_Condition = SIMP(statut = 'o',typ = 'TXM',
559 # On ajoute le type pour rendre l 'ihm plus lisible
560 # mais ce mot-cle n existe pas dans le dico
561 #        ------------------------------------
562             into = ['Prescribed flowrates', 'Prescribed elevations', 'Prescribed velocity'],),
563
564 #        ------------------------------------
565          b_Flowrates = BLOC (condition = "Type_Condition == 'Prescribed Flowrates'",
566 #        ------------------------------------
567 #            ------------------------------------
568              Prescribed_Flowrates = SIMP(statut = 'o',
569 #            ------------------------------------
570                   typ = 'R',
571                   fr = ' Valeurs des debits imposes aux frontieres liquides entrantes.\n\
572 Lire la partie du mode d''emploi consacree aux conditions aux limites',
573                   ang = 'Values of prescribed flowrates at the inflow boundaries.\n\
574 The section about boundary conditions is to be read in the manual'),
575              ), # fin b_Flowrates
576
577 #        ------------------------------------
578          b_Elevations = BLOC (condition = "Type_Condition == 'Prescribed Elevations'",
579 #        ------------------------------------
580 #            ------------------------------------
581              Prescribed_Elevations = SIMP(statut = 'o',typ = 'R',
582 #            ------------------------------------
583                  fr = 'Valeurs des cotes imposees aux frontieres liquides entrantes.\n\
584 Lire la partie du mode d''emploi consacree aux conditions aux limites',
585                  ang = 'Values of prescribed elevations at the inflow boundaries.\n\
586 The section about boundary conditions is to be read in the manual'),
587              ), # fin b_Elevations
588
589 #        ------------------------------------
590          b_Velocity = BLOC (condition = "Type_Condition == 'Prescribed Velocity'",
591 #        ------------------------------------
592 #            ------------------------------------
593              Prescribed_Velocities = SIMP(statut = 'o',typ = 'R',
594 #            ------------------------------------
595                  fr = 'Valeurs des vitesses imposees aux frontieres liquides entrantes.\n\
596 Lire la partie du mode d''emploi consacree aux conditions aux limites',
597                  ang = 'Values of prescribed velocities at the liquid inflow boundaries.\n\
598 Refer to the section dealing with the boundary conditions'),
599              ), # fin b_Velocity
600
601        ), # fin des Liquid_Boundaries
602
603 #      ------------------------------------
604        Liquid_Boundaries_File = SIMP( statut = 'f', 
605 #      ------------------------------------
606          typ = ('Fichier', 'All Files (*)',),
607          fr = 'Fichier de variations en temps des conditions aux limites.\n\
608 Les donnees de ce fichier seront a lire sur le canal 12.',
609          ang = 'Variations in time of boundary conditions. Data of this file are read on channel 12.',
610       ),
611    
612
613 #PNPN Attention dans le Dico STAGE-DISCHARGE CURVES
614 #PNPN regarder le document de reference pour changer non programme
615 #      ------------------------------------
616        Stage_Discharge_Curves = SIMP(statut = 'f',typ = 'TXM',
617 #      ------------------------------------
618            into = ["No one","Z(Q)","Q(Z)"],
619            fr = 'Indique si une courbe de tarage doit etre utilisee pour une frontiere',
620            ang = 'Says if a discharge-elevation curve must be used for a given boundary',),
621
622 #      ------------------------------------
623        b_discharge_curve = BLOC (condition = "Stage_Discharge_Curves != 'no'",
624 #      ------------------------------------
625 #            ------------------------------------
626              Stage_Discharge_Curves_File = SIMP( statut = 'f', 
627 #            ------------------------------------
628                 typ = ('Fichier', 'All Files (*)',),
629                 fr = 'Nom du fichier contenant les courbes de tarage',
630                 ang = 'Name of the file containing stage-discharge curves',),
631         ), # fin b_discharge_curve
632
633 #      ------------------------------------
634        Elements_Masked_By_User = SIMP(statut = 'o',typ = bool,
635 #      ------------------------------------
636            defaut = False,
637            fr = 'Si oui remplir le sous-programme maskob',
638            ang = 'if yes rewrite subroutine maskob',),
639
640 #      ------------------------------------
641       maskob = BLOC (condition = 'Elements_Masked_By_User == True',
642 #      ------------------------------------
643 #            ------------------------------------
644               Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", 
645 #            ------------------------------------
646               defaut = "Remplir le sous-programme maskob"),
647       ) # fin maskob
648
649 ) # fin Boundary_Conditions
650
651 # -----------------------------------------------------------------------
652 NUMERICAL_PARAMETERS = PROC(nom = "NUMERICAL_PARAMETERS",op = None,
653 # -----------------------------------------------------------------------
654
655         #UIinfo = { "groupes" : ( "CACHE", )},
656         UIinfo = { "groupes" : ( "iiii", )},
657  
658 #     ------------------------------------
659       Equations = SIMP(statut = 'o',typ = 'TXM',
660 #     ------------------------------------
661          into = ['Saint-Venant EF','Saint-Venant VF','Boussinesq'],
662          defaut = 'Saint-Venant EF',
663          fr = 'Choix des equations a resoudre',
664          ang = 'Choice of equations to solve',),
665
666 #     ------------------------------------
667       Treatment_Of_The_Linear_System = SIMP(statut = 'o', typ = 'TXM',
668 #     ------------------------------------
669          into = ["Coupled", "Wave equation"],
670          defaut = "Coupled",),
671
672 #     ------------------------------------
673       Finite_Volume_Scheme = SIMP( statut = 'o',typ = 'TXM',
674 #     ------------------------------------
675          into = [ "Roe scheme", "Kinetic order 1", "Kinetic order 2", "Zokagoa scheme order 1",\
676                 "Tchamen scheme order 1", "HLLC scheme order 1", "WAF scheme order 2"],
677          defaut = "Kinetic order 1",),
678
679 #      ------------------------------------
680        Solver_Definition = FACT(statut = 'o',
681 #      ------------------------------------
682
683 #         ------------------------------------
684           Solver = SIMP(statut = 'o',typ = 'TXM',
685 #         ------------------------------------
686              into = ["Conjugate gradient", "Conjugate residual","Conjugate gradient on a normal equation",\
687                      "Minimum error", "CGSTAB", "GMRES", "Direct",],
688              fr = 'Permet de choisir le solveur utilise pour la resolution de l''etape de propagation. \n\
689 Toutes les methodes proposees actuellement s''apparentent au Gradient Conjugue. Ce sont :\n\
690   1 : gradient conjugue 2 : residu conjugue       3 : gradient conjugue sur equation normale \n\
691   4 : erreur minimale   5 : gradient conjugue carre (non programme) 6 : gradient conjugue carre stabilise (cgstab)\n\
692   7 : gmres (voir aussi option du solveur) 8 : direct',
693              ang = 'Makes it possible to select the solver used for solving the propagation step.\n\
694 All the currently available methods are variations of the Conjugate Gradient method. They are as follows: \n\
695 1: conjugate gradient 2: conjugate residual 3: conjugate gradient on a normal equation\n\
696 4: minimum error 5: conjugate gradient squared (not implemented) 6: conjugate gradient squared stabilised (cgstab) \n\
697 7: gmres (see option for solver) 8: direct',),
698
699 #         ------------------------------------
700           b_gmres = BLOC (condition = "Solver == 'GMRES'",
701 #         ------------------------------------
702 #            ------------------------------------
703              Solver_Option = SIMP(statut = 'o',typ = 'I', defaut = 2, val_min = 2,val_max = 15,
704 #            ------------------------------------
705                  fr = 'la dimension de l''espace de KRILOV',
706                  ang = 'dimension of the KRYLOV space',),
707           ), # fin b_gmres
708
709 #         ------------------------------------
710           Solver_Accuracy = SIMP(statut = 'o',typ = 'R', defaut = 1e-4,
711 #         ------------------------------------
712              fr = 'Precision demandee pour la resolution de l''etape de propagation (cf.  Note de principe).',
713              ang = 'Required accuracy for solving the propagation step (refer to Principle note).',),
714
715 #         ------------------------------------
716           Maximum_Number_Of_Iterations_For_Solver = SIMP(statut = 'o',typ = 'I', defaut = 100,
717 #         ------------------------------------
718              fr = 'Les algorithmes utilises pour la resolution de l''etape de propagation etant iteratifs, \n\
719 il est necessaire de limiter le nombre d''iterations autorisees.\n\
720 Remarque : un maximum de 40 iterations par pas de temps semble raisonnable.',
721              ang = 'Since the algorithms used for solving the propagation step are iterative, \
722 the allowed number of iterations should be limited.\n\
723 Note: a maximum number of 40 iterations per time step seems to be reasonable.',),
724
725        ), # fin Solver
726
727 #      ------------------------------------
728        Time = FACT(statut = 'o',
729 #      ------------------------------------
730        regles = (AU_MOINS_UN('Number_Of_Time_Steps','Duration'),
731                  EXCLUS('Number_Of_Time_Steps','Duration'),
732                ),
733
734 #          ------------------------------------
735            Time_Step = SIMP(statut = 'o',
736 #          ------------------------------------
737               typ = 'R', defaut = 1,
738               fr = 'Definit le nombre de pas de temps effectues lors de l''execution du code.',
739               ang = 'Specifies the number of time steps performed when running the code.'),
740
741 #          ------------------------------------
742            Number_Of_Time_Steps = SIMP(statut = 'f',typ = 'I',
743 #          ------------------------------------
744               fr = 'Definit le nombre de pas de temps effectues lors de l''execution du code.',
745               ang = 'Specifies the number of time steps performed when running the code.'),
746
747 #          ------------------------------------
748            Duration = SIMP(statut = 'f',typ = 'R',
749 #          ------------------------------------
750               fr = 'duree de la simulation. alternative au parametre nombre de pas de temps. \n\
751 On en deduit le nombre de pas de temps en prenant l''entier le plus proche de (duree du calcul/pas de temps).\n\
752 Si le nombre de pas de temps est aussi donne, on prend la plus grande valeur',
753               ang = 'duration of simulation. May be used instead of the parameter NUMBER OF TIME STEPS. \n\
754 The nearest integer to (duration/time step) is taken.  If NUMBER OF TIME STEPS is also given, the greater value is taken',),
755
756 # PNPN
757 # Attention, on laisse la règle mais il est possible d avoir les 2 en entrĂ©es --> attention au convert
758 #          ------------------------------------
759            Variable_Time_Step = SIMP(statut = 'f',typ = bool,
760 #          ------------------------------------
761               fr = 'Pas de temps variable pour avoir un nombre de courant souhaite',
762               ang = 'Variable time-step to get a given Courant number'),
763
764 #          ------------------------------------
765            b_var_time = BLOC(condition = "Variable_Time_Step == True" ,
766 #          ------------------------------------
767 #            ------------------------------------
768              Desired_Courant_Number = SIMP(statut = 'o',typ = 'R',
769 #            ------------------------------------
770              fr = 'Nombre de Courant souhaite ',
771              ang = 'Desired Courant number',),
772            ),
773
774 #          ------------------------------------
775            Original_Date_Of_Time = FACT( statut = 'o',
776 #          ------------------------------------
777               fr = "Permet de fixer la date d'origine des temps du modele lors de la prise en compte de la force generatrice de la maree.",
778               ang = 'Give the date of the time origin of the model when taking into account the tide generating force.', 
779                Year = SIMP(statut = 'o',typ = 'I',val_min = 1900, defaut = 1900),
780                Month = SIMP(statut = 'o',typ = 'I',val_min = 1,val_max = 12,  defaut = 1),
781                Day = SIMP(statut = 'o',typ = 'I',val_min = 1,val_max = 31,defaut = 1),),
782
783 #          ------------------------------------
784            Original_Hour_Of_Time = FACT( statut = 'o',
785 #          ------------------------------------
786                fr = "Permet de fixer l'heure d'origine des temps du modele lors de la prise en compte de la force generatrice de la maree.",
787                ang = 'Give the time of the time origin of the model when taking into account the tide generating force.', 
788                Hour = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 24, defaut = 0),
789                Minute = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 60, defaut = 0),
790                Second = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 60, defaut = 0),
791              ),
792
793 #          ------------------------------------
794            Stop_If_A_Steady_State_Is_Reached = SIMP(statut = 'o',
795 #          ------------------------------------
796                typ = bool,defaut = 'False'),
797
798 #          ------------------------------------
799            b_stop = BLOC(condition = "Stop_If_A_Steady_State_Is_Reached == True" ,
800 #          ------------------------------------
801 #              ------------------------------------
802                Stop_Criteria = SIMP(statut = 'o',typ = Tuple(3),validators = VerifTypeTuple(('R','R','R')),
803 #              ------------------------------------
804                  fr = "Criteres d'arret pour un ecoulement permanent. ces coefficients sont respectivement appliques a\n\
805     1- U et V 2- H 3- T ",
806                  ang = 'Stop criteria for a steady state These coefficients are applied respectively to\n\
807         1- U and V 2- H 3-  T ',),
808            ), # fin b_stop
809
810 #          ------------------------------------
811            Control_Of_Limits = SIMP(statut = 'o',
812 #          ------------------------------------
813                typ = bool, defaut = 'False',
814                fr = 'Le programme s''arrete si les limites sur u,v,h ou t sont depassees',
815                ang = 'The program is stopped if the limits on u,v,h, or t are trespassed',),
816
817 #          ------------------------------------
818            b_limit = BLOC(condition = "Control_Of_Limit == True" ,
819            Limit_Values = FACT(statut = 'o',
820 #            Attention : 1 seul MC ds Telemac
821 #          ------------------------------------
822                 fr = 'valeurs mini et maxi acceptables  min puis  max',
823                 ang = 'min and max acceptable values ',
824
825 #              ------------------------------------
826                Limit_Values_H = SIMP(statut = 'o',typ = Tuple(2),
827 #              ------------------------------------
828                     validators = VerifTypeTuple(('R','R')), defaut = (-1000,9000)),
829 #              ------------------------------------
830                Limit_Values_U = SIMP(statut = 'o',typ = Tuple(2),
831 #              ------------------------------------
832                     validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
833 #              ------------------------------------
834                Limit_Values_V = SIMP(statut = 'o',typ = Tuple(2),
835 #              ------------------------------------
836                     validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
837 #              ------------------------------------
838                Limit_Values_T = SIMP(statut = 'o',typ = Tuple(2),
839 #              ------------------------------------
840                     validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
841             ),), # fin Fact et b_limit
842        ), # Fin de Time
843
844 #      ------------------------------------
845        Linearity = FACT(statut = 'f',
846 #      ------------------------------------
847 #          ------------------------------------
848            Continuity_Correction = SIMP(typ = bool, statut = 'o',
849 #          ------------------------------------
850              defaut = False,
851              fr = 'Corrige les vitesses sur les points avec hauteur imposee ou l equation de continuite n a pas ete resolue',
852              ang = 'Correction of the velocities on points with a prescribed elevation, where the continuity equation has not been solved',),
853
854      ), # Fin Linearity
855
856 #      ------------------------------------
857        Precondionning_setting = FACT(statut = 'f',
858 #      ------------------------------------
859
860 #         ------------------------------------
861           Preconditioning = SIMP(statut = 'o',typ = 'TXM',
862 #         ------------------------------------
863 # PNPN Soizic ? Est ce que c'est une liste
864 # Comment fait-on  le into est faux : voir l aide
865 # PN Je propose qu 'on puisse faire +sieurs choix et qu on recalcule en sortie
866 # ou on propose des choix croisĂ©s parce que toutes les combinaisons ne sont pas possibles ?
867
868               into = [ "Diagonal", "No preconditioning", "Diagonal condensee", "Crout", \
869                      "Gauss-Seidel", "Diagonal and Crout", "Diagonal condensed and Crout"],
870               defaut="Diagonal",
871               fr='Permet de preconditionner le systeme de l etape de propagation afin d accelerer la convergence \n\
872 lors de sa resolution. Certains preconditionnements sont cumulables : (les diagonaux 2 ou 3 avec les autres)\n\
873 Pour cette raison on ne retient que les nombres premiers pour designer les preconditionnements. Si l on souhaite en cumuler\n\
874 plusieurs on formera le produit des options correspondantes.',
875              ang='Choice of the preconditioning in the propagation step linear system that the convergence is speeded up\n\
876 when it is being solved.Some operations (either 2 or 3 diagonal preconditioning) can be performed concurrently with the others.\n\
877 Only prime numbers are therefore kept to denote the preconditioning operations. When several of them are to be performed concurrently,\n\
878 the product of relevant options shall be made.',
879           ),
880 #         ------------------------------------
881           C_U_Preconditioning = SIMP(typ = bool, statut = 'o', defaut=False,
882 #         ------------------------------------
883              fr = 'Changement de variable de H en C dans le systeme lineaire final',
884              ang = 'Change of variable from H to C in the final linear system'
885            ),
886
887    ),# fin Preconditionnement
888      
889 #    ------------------------------------
890      Matrix_Informations = FACT(statut = 'f',
891 #    ------------------------------------
892 #         ------------------------------------
893           Matrix_Vector_Product = SIMP(statut = 'f',typ = 'TXM',
894 #         ------------------------------------
895              into = ["Classic", "Frontal"],
896              fr = 'attention, si frontal, il faut une numerotation speciale des points',
897              ang = 'beware, with option 2, a special numbering of points is required',
898           ),
899 #         ------------------------------------
900           Matrix_Storage = SIMP(statut = 'f',typ = 'TXM',
901 #         ------------------------------------
902              into = ["Classical EBE","Edge-based storage",]
903           ),
904      ),# fin Matrix_Informations
905
906
907 #    ------------------------------------
908      Advection = FACT(statut = 'o',
909 #    ------------------------------------
910  
911 #         ------------------------------------
912           Advection_Propagation = FACT(statut = 'o',
913 #         ------------------------------------
914
915 # PNPNPN recalcul
916 # Tres differents du dico  liste de 4
917 # PNPN eclaircir les choix SVP
918 # soizic. choix 3 et 4 et 13 et 14
919 #            Attention recalcul de Type_Of_Advection
920 #             ------------------------------------
921               Advection_Of_U_And_V = SIMP(statut = 'o',typ = bool, defaut = False,
922 #             ------------------------------------
923                   fr = 'Prise en compte ou non de la convection de U et V.',
924                   ang = 'The advection of U and V is taken into account or ignored.'), 
925
926 #                 ------------------------------------
927                   b_u_v = BLOC( condition = "Advection_Of_U_And_V == True",
928 #                  ------------------------------------
929 #                      ------------------------------------
930                        Type_Of_Advection_U_And_V = SIMP(statut = 'o',typ = 'TXM',position = "global",
931 #                      ------------------------------------
932                            into = ["Characteristics", "SUPG", "Conservative N-scheme",  'Conservative N-scheme',\
933                            'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
934                            'Edge-based N-scheme'],
935                              defaut = "Characteristics", ),
936
937 #                      ------------------------------------
938                        b_upwind = BLOC(condition = "Type_Of_Advection_U_And_V == 'SUPG'",
939 #                      ------------------------------------
940 #                          ------------------------------------
941                            Upwind_Coefficients_Of_U_And_V = SIMP(statut = 'o',typ = 'R', defaut = 1.)
942 #                          ------------------------------------
943                         ), # fin b_upwind
944                   ),# fin b_u_v
945
946 #              ------------------------------------
947                Advection_Of_H = SIMP(statut = 'o',typ = bool, defaut = False,
948 #              ------------------------------------
949                       fr = 'Prise en compte ou non de la convection de H.',
950                       ang = 'The advection of H is taken into account or ignored.'),
951
952 #                  ------------------------------------
953                    b_h = BLOC( condition = "Advection_Of_H == True",
954 #                  ------------------------------------
955 #                      ------------------------------------
956                        Type_Of_Advection_H = SIMP(statut = 'o',typ = 'TXM',position = "global",
957 #                      ------------------------------------
958                            into = ["characteristics", "SUPG", "conservative N-scheme",  'conservative N-scheme',\
959                               'conservative PSI-scheme', 'non conservative PSI scheme', 'implicit non conservative N scheme',\
960                               'edge-based N-scheme'],
961                            defaut = "conservative PSI-scheme",),
962 #                      ------------------------------------
963                        b_upwind_H = BLOC(condition = "Type_Of_Advection_H == 'SUPG'",
964 #                      ------------------------------------
965 #                          ------------------------------------
966                            Upwind_Coefficients_Of_H = SIMP(statut = 'o',typ = 'R', defaut = 1.)
967 #                          ------------------------------------
968                        ), # fin b_upwind_H
969                     ),# fin b_h
970
971 #              ------------------------------------
972                Advection_Of_K_And_Epsilon = SIMP(statut = 'o',typ = bool, defaut = False,
973 #              ------------------------------------
974                     fr = 'Prise en compte ou non de la convection de Tracer.',
975                     ang = 'The advection of Tracer is taken into account or ignored.'),
976
977 #                  ------------------------------------
978                    b_k = BLOC( condition = "Advection_Of_K_And_Epsilon == True",
979 #                  ------------------------------------
980 #                      ------------------------------------
981                        Type_Of_Advection_K_And_Epsilon = SIMP(statut = 'o',typ = 'TXM',position = "global",
982 #                      ------------------------------------
983                            into = ["Characteristics", "SUPG", "Conservative N-scheme",  'Conservative N-scheme',\
984                               'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
985                               'Edge-based N-scheme'],
986                            defaut = "Characteristics",),
987 #                       ------------------------------------
988                         b_upwind_k = BLOC(condition = "Type_Of_Advection_K_And_Epsilon == 'SUPG'",
989 #                       ------------------------------------
990 #                          ------------------------------------
991                            Upwind_Coefficients_Of_K_And_Epsilon = SIMP(statut = 'o',typ = 'R', defaut = 1.)
992 #                          ------------------------------------
993                          ),# fin b_upwind_k
994                    ),# fin b_k
995
996 #              ------------------------------------
997                Advection_Of_Tracers = SIMP(statut = 'o',typ = bool, defaut = False,
998 #              ------------------------------------
999                     fr = 'Prise en compte ou non de la convection de Tracer.',
1000                     ang = 'The advection of Tracer is taken into account or ignored.'),
1001
1002 #                  ------------------------------------
1003                    b_tracers = BLOC( condition = "Advection_Of_Tracers == True",
1004 #                  ------------------------------------
1005 #                      ------------------------------------
1006                        Type_Of_Advection_Tracers = SIMP(statut = 'o',typ = 'TXM',position = "global",
1007 #                      ------------------------------------
1008                            into = ["Characteristics", "SUPG", "Conservative N-scheme",  'Conservative N-scheme',\
1009                                 'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
1010                                 'Edge-based N-scheme'],),
1011 #                       ------------------------------------
1012                         b_upwind_Tracers = BLOC(condition = "Type_Of_Advection_Tracers == 'SUPG'",
1013 #                       ------------------------------------
1014 #                          ------------------------------------
1015                            Upwind_Coefficients_Of_Tracers = SIMP(statut = 'o',typ = 'R', defaut = 1.)
1016 #                          ------------------------------------
1017                         ), # fin b_upwind_Tracers
1018                     ), # fin b_Tracers
1019
1020 #              ------------------------------------
1021                b_max = BLOC( condition = "(Advection_Of_Tracers == True and Type_Of_Advection_Tracers == 'Edge-based N-scheme') or (Advection_Of_K_And_Epsilon == True and Type_Of_Advection_K_And_Epsilon == 'Edge-based N-scheme') or (Advection_Of_U_And_V == True and Type_Of_Advection_U_And_V == 'Edge-based N-scheme') or ( Advection_Of_H == True and Type_Of_Advection_H == 'Edge-based N-scheme')",
1022 #              ------------------------------------
1023 #                  ------------------------------------
1024                    Maximum_Number_Of_Iterations_For_Advection_Schemes = SIMP( statut = 'o',typ = 'I', defaut = 10 ,
1025 #                  ------------------------------------
1026                        fr = 'Seulement pour schemes Edge-based N-scheme',
1027                        ang = 'Only for Edge-based N-scheme',),
1028                 ), # fin b_max
1029
1030 #              ------------------------------------
1031                b_traitement = BLOC( condition = "(Advection_Of_Tracers == True and Type_Of_Advection_Tracers in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme']) or (Advection_Of_K_And_Epsilon == True and Type_Of_Advection_K_And_Epsilon in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme']) or (Advection_Of_U_And_V == True and Type_Of_Advection_U_And_V in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme']) or ( Advection_Of_H == True and Type_Of_Advection_H in ['Edge-based N-scheme','SUPG','Conservative N-scheme','Conservative PSI-scheme'])",
1032 #              ------------------------------------
1033
1034 #          ------------------------------------
1035            Treatment_Of_Fluxes_At_The_Boundaries = SIMP( statut = 'o',typ = 'TXM',
1036 #          ------------------------------------
1037                into = ["Priority to prescribed values","Priority to fluxes"],
1038                fr = 'Utilise pour les schemas SUPG, PSI et N, \n\
1039 si PrioritĂ© aux flux, on ne retrouve pas exactement les valeurs imposees des traceurs,mais le flux est correct',
1040              ang = 'Used so far only with the SUPG, PSI and N schemes.\n\
1041 if Priority to fluxes, Dirichlet prescribed values are not obeyed,but the fluxes are correct',),
1042
1043                 ), # fin b_traitement
1044         ), # Fin Advection_Propagation
1045  
1046 #         ------------------------------------
1047           Scheme_For_Advection_Of_K_Epsilon = SIMP(statut = 'o',typ = 'TXM',
1048 #         ------------------------------------
1049                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"],
1050                fr = 'Choix du schema de convection pour k et epsilon, remplace FORME DE LA CONVECTION',
1051                ang = 'Choice of the advection scheme for k and epsilon, replaces TYPE OF ADVECTION',),
1052
1053
1054 #PNPNPN
1055 # recalculer la liste de 4
1056 # Attention bloc selon le type de convection
1057 #         ------------------------------------
1058           SUPG = FACT(statut = 'o',
1059 #         ------------------------------------
1060 #             ------------------------------------
1061               Supg_Option_U_And_V = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
1062 #             ------------------------------------
1063                        into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
1064 #             ------------------------------------
1065               Supg_Option_H = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
1066 #             ------------------------------------
1067                        into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
1068 #             ------------------------------------
1069               Supg_Option_Tracers = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
1070 #             ------------------------------------
1071                        into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
1072 #             ------------------------------------
1073               Supg_Option_K_And_Epsilon = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
1074 #             ------------------------------------
1075                        into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
1076             ), # Fin de SUPG
1077
1078 #         ------------------------------------
1079           Mass_Lumping_On_H = SIMP(statut = 'o',typ = 'R', defaut = 0,
1080 #         ------------------------------------
1081             fr = 'TELEMAC offre la possibilite d''effectuer du mass-lumping sur H ou U.\n\
1082 Ceci revient a ramener tout ou partie (suivant la valeur de ce coefficient) des matrices AM1 (h) ou AM2 (U) \n\
1083 et AM3 (V) sur leur diagonale.  Cette technique permet d''accelerer le code dans des proportions tres\n\
1084 importantes et de le rendre egalement beaucoup plus stable. Cependant les solutions obtenues se trouvent lissees.\n\
1085 Ce parametre fixe le taux de mass-lumping effectue sur h.',
1086             ang = 'TELEMAC provides an opportunity to carry out mass-lumping either on C,H or on the velocity. \n\
1087 This is equivalent to bringing the matrices AM1(h) or AM2(U) and AM3(V) wholly or partly, back onto their diagonal.\n\
1088 Thanks to that technique, the code can be speeded up to a quite significant extent and it can also be made much \n\
1089 more stable. The resulting solutions, however, become artificially smoothed. \n\
1090 This parameter sets the extent of mass-lumping that is performed on h.'),
1091
1092 #         ------------------------------------
1093           Mass_Lumping_On_Velocity = SIMP(statut = 'o', typ = 'R', defaut = 0,
1094 #         ------------------------------------
1095             fr = 'Fixe le taux de mass-lumping effectue sur la vitesse.',
1096             ang = 'Sets the amount of mass-lumping that is performed on the velocity.'),
1097
1098 #         ------------------------------------
1099           Free_Surface_Gradient_Compatibility = SIMP(statut = 'o',typ = 'R',defaut = 1.,
1100 #         ------------------------------------
1101             fr = 'Des valeurs inferieures a 1 suppriment les oscillations parasites',
1102             ang = 'Values less than 1 suppress spurious oscillations'),
1103
1104
1105 #          ------------------------------------
1106            Number_Of_Sub_Iterations_For_Non_Linearities = SIMP(statut = 'o',typ = 'I',
1107 #          ------------------------------------
1108              defaut = 1,
1109              fr = 'Permet de reactualiser, pour un meme pas de temps, les champs convecteur et propagateur \n\
1110 au cours de plusieurs sous-iterations.\n\
1111 A la premiere sous-iteration, ces champs sont donnes par C et le champ de vitesses au pas de temps precedent.\n\
1112 Aux iterations suivantes, ils sont pris egaux au champ de vitesse obtenu a la fin de la sous-iteration precedente. \n\
1113 Cette technique permet d''ameliorer la prise en compte des non linearites.',
1114             ang = 'Used for updating, within one time step, the advection and propagation field.\n\
1115 upon the first sub-iteration, \n\
1116 these fields are given by C and the velocity field in the previous time step. At subsequent iterations, \n\
1117 the results of the previous sub-iteration is used to update the advection and propagation field.\n\
1118 The non-linearities can be taken into account through this technique.',),
1119
1120 #          ------------------------------------
1121            Mass_Lumping_For_Weak_Characteristics = SIMP(statut = 'o',typ = 'R',defaut = 0,
1122 #          ------------------------------------
1123         fr = 'Applique a la matrice de masse',
1124         ang = 'To be applied to the mass matrix',),
1125
1126      ), # fin Advection
1127
1128 #PNPNPN Il faut recalculer le MCSIMP Propagation
1129 #    ------------------------------------
1130      Propagation = FACT(statut = 'o',
1131 #    ------------------------------------
1132 #         ------------------------------------
1133           Initial_Guess_For_H = SIMP(statut = 'o',typ = 'TXM',
1134 #         ------------------------------------
1135               into = ['Zero', 'Previous', 'Extrapolation'],
1136               defaut = 'Previous',
1137               fr = 'Tir initial du solveur de l etape de propagation.  Offre la possibilite de modifier la valeur initiale de DH,\n\
1138 accroissement de H, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
1139 aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
1140               ang = 'Initial guess for the solver in the propagation step.  Makes it possible to modify the initial value of H, \n\
1141 upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
1142 Thus, the convergence can be speeded up when the system is being solved.',),
1143
1144
1145 #         ------------------------------------
1146           Linearized_Propagation = SIMP(statut = 'o',typ = bool,defaut = False,
1147 #         ------------------------------------
1148              fr = 'Permet de lineariser l''etape de propagation; \n\
1149 par exemple lors de la realisation de cas tests pour lesquels on dispose d une solution analytique dans le cas linearise.',
1150              ang = 'Provided for linearizing the propagation step; \n\
1151 e.g. when performing test-cases for which an analytical solution in the linearized case is available.' ),
1152
1153 #         ------------------------------------
1154           b_linear = BLOC(condition = "Linearized_Propagation == True ",
1155 #         ------------------------------------
1156 #             ------------------------------------
1157               Mean_Depth_For_Linearization = SIMP(statut = 'o',typ = 'R', defaut = 0.0, val_min = 0,
1158 #             ------------------------------------
1159                fr = 'Fixe la hauteur d eau autour de laquelle s effectue la linearisation lorsque l option PROPAGATION LINEARISEE est choisie.',
1160                ang = 'Sets the water depth about which the linearization is made when the LINEARIZED PROPAGATION OPTION is selected.'),
1161
1162 #             ------------------------------------
1163               Initial_Guess_For_U = SIMP(statut = 'o',typ = 'TXM',
1164 #             ------------------------------------
1165                 into = ['Zero', 'Previous', 'Extrapolation'],
1166                 defaut = 'Previous',
1167                 fr = 'Tir initial du solveur de l etape de propagation.  Offre la possibilite de modifier la valeur initiale de DH,\n\
1168 accroissement de U, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
1169 aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
1170                 ang = 'Initial guess for the solver in the propagation step.  Makes it possible to modify the initial value of U, \n\
1171 upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
1172 Thus, the convergence can be speeded up when the system is being solved.',),
1173
1174           ), # fin b_linear
1175
1176       ), # fin Propagation
1177
1178
1179 #    ------------------------------------
1180      Diffusion = FACT(statut = 'o',
1181 #    ------------------------------------
1182
1183 #         ------------------------------------
1184            Diffusion_Of_Velocity = SIMP( statut='o',typ=bool,
1185 #         ------------------------------------
1186              defaut=False ,
1187              fr = 'Permet de decider si lon prend ou non en compte la diffusion des vitesses.',
1188              ang= 'Makes it possible to decide whether the diffusion of velocity (i.e. viscosity) is taken into account or not.',
1189           ),
1190 #        ------------------------------------
1191          b_Diffu = BLOC(condition = 'Diffusion_Of_Velocity == True',
1192 #        ------------------------------------
1193 #            ------------------------------------
1194              Implicitation_For_Diffusion_Of_Velocity = SIMP(statut = 'o',typ = 'R',defaut = 0,
1195 #            ------------------------------------
1196               fr = 'Fixe la valeur du coefficient d''implicitation sur les termes de diffusion des vitesses',
1197               ang = 'Sets the value of the implicitation coefficient for the diffusion of velocity',),
1198
1199 #            ------------------------------------
1200              Option_For_The_Diffusion_Of_Velocities = SIMP( statut='o',typ='TXM',
1201 #            ------------------------------------
1202                   defaut=1 ,
1203                   into=['Diffusion in the form div( nu grad(U))','Diffusion in the form 1/h div ( h nu grad(U) )'],
1204                   fr = '1: Diffusion de la forme div( nu grad(U) )   2: Diffusion de la forme 1/h div ( h nu grad(U) )',
1205                   ang= '1: Diffusion in the form div( nu grad(U) )   2: Diffusion in the form 1/h div ( h nu grad(U) )',),
1206
1207                 ), # fin b_Diffu
1208      ), # fin Diffusion
1209 #    ------------------------------------
1210      Discretization_Implicitation = FACT(statut = 'f',
1211 #    ------------------------------------
1212
1213 #         ------------------------------------
1214           Discretizations_In_Space = SIMP(statut = 'o',typ = 'TXM', 
1215 #         ------------------------------------
1216               into = ["Linear", "Quasi-bubble", "Quadratic"],
1217               defaut = "Linear",),
1218
1219 #         ------------------------------------
1220           Implicitation_For_Depth = SIMP(statut = 'o',typ = 'R',defaut = 0.55,
1221 #         ------------------------------------
1222               fr = 'Fixe la valeur du coefficient d''implicitation sur C dans l''etape de propagation (cf.  Note de principe).\n\
1223 Les valeurs inferieures a 0.5 donnent un schema instable.',
1224              ang = 'Sets the value of the implicitation coefficient for C (the celerity of waves) in the propagation step (refer to principle note).\n\
1225 Values below 0.5 result in an unstable scheme.'),
1226
1227 #         ------------------------------------
1228           Implicitation_For_Velocity = SIMP(statut = 'o',typ = 'R',defaut = 0.55,
1229 #         ------------------------------------
1230              fr = 'Fixe la valeur du coefficient d''implicitation sur la vitesse dans l''etape de propagation (cf.  Note de principe).\n\
1231 Les valeurs inferieures a 0.5 donnent un schema instable.',
1232              ang = 'Sets the value of the implicitation coefficient for velocity in the propagation step (refer to principle note).\n\
1233 Values below 0.5 result in an unstable condition.'),
1234
1235       ), # fin Discretization_Implicitation
1236       
1237
1238 #    ------------------------------------
1239      Tidal_Flats = SIMP(statut = 'o',typ = bool,defaut = True,
1240 #    ------------------------------------
1241          fr = 'permet de supprimer les tests sur les bancs decouvrants si on est certain qu''il n''y en aura pas, En cas de doute : oui',
1242          ang = 'When no,the specific treatments for tidal flats are by-passed. This spares time, but of course you must be sure that you have no tidal flats'),
1243
1244 #    ------------------------------------
1245      b_tidal_flats = BLOC(condition = 'Tidal_Flats == True',
1246 #    ------------------------------------
1247 #         ------------------------------------
1248           Option_For_The_Treatment_Of_Tidal_Flats = SIMP(statut = 'o',typ = 'TXM',
1249 #         ------------------------------------
1250              into = ["Equations solved everywhere with correction on tidal flats", "Dry elements frozen", "1 but with porosity (defina method)",],
1251              defaut="Equations solved everywhere with correction on tidal flats",),
1252
1253 #             ------------------------------------
1254               b_option_tidal_flats = BLOC(condition = 'Option_For_The_Treatment_Of_Tidal_Flats == "Equations solved everywhere with correction on tidal flats"',
1255 #             ------------------------------------
1256 #                 ------------------------------------
1257                   Treatment_Of_Negative_Depths = SIMP( statut = 'o',typ = 'TXM',
1258 #                 ------------------------------------
1259                      into = [ 'No treatment', 'Smoothing', 'Flux control'],
1260                      defaut = 'Smoothing' ,),
1261               ), # fin bloc b_option_tidal_flats
1262
1263 #         ------------------------------------
1264           Threshold_For_Negative_Depths = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
1265 #         ------------------------------------
1266              fr = 'En dessous du seuil, les hauteurs negatives sont lissees',
1267              ang = 'Below the threshold the negative depths are smoothed',),
1268
1269 #         ------------------------------------
1270           Threshold_Depth_For_Receding_Procedure = SIMP(statut = 'o',typ = 'R',defaut = 0 ,
1271 #         ------------------------------------
1272               fr = 'Si > 0., declenche la procedure de ressuyage qui evite le franchissement parasite des digues mal discretisees',
1273              ang = 'If > 0., will trigger the receding procedure that avoids overwhelming of dykes which are too loosely discretised ',),
1274
1275           
1276 #         ------------------------------------
1277           H_Clipping = SIMP(statut = 'o',typ = bool,defaut = False,
1278 #         ------------------------------------
1279              fr = 'Determine si on desire ou non limiter par valeur inferieure la hauteur d eau H (dans le cas des bancs decouvrants par exemple).',
1280              ang = 'Determines whether limiting the water depth H by a lower value desirable or not. (for instance in the case of tidal flats)\n\
1281 This key-word may have an influence on mass conservation since the truncation of depth is equivalent to adding mass.',),
1282
1283 #             ------------------------------------
1284               b_clipping = BLOC(condition = 'H_Clipping == True',
1285 #             ------------------------------------
1286 #                 ------------------------------------
1287                   Minimum_Value_Of_Depth = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
1288 #                 ------------------------------------
1289                       fr = 'Fixe la valeur minimale de a lorsque loption CLIPPING DE H est activee.',
1290                       ang = 'Sets the minimum H value when option H CLIPPING is implemented. Not fully implemented.',),
1291               ), # fin b_clipping
1292     ), # fin bloc b_tidal_flats
1293
1294 #    ------------------------------------
1295      Various = FACT(
1296 #    ------------------------------------
1297
1298 #         ------------------------------------
1299          Newmark_Time_Integration_Coefficient = SIMP( statut = 'o',typ = 'TXM',
1300 #         ------------------------------------
1301              defaut = "Euler explicite",
1302              into = ["Euler explicite","Order 2 in time"],),
1303
1304 #         ------------------------------------
1305           Option_For_Characteristics = SIMP( statut = 'o',typ = 'TXM',
1306 #         ------------------------------------
1307             defaut = "Strong" ,
1308             into = ['Strong','Weak',],),
1309
1310      ),# fin Various
1311
1312    
1313 )# fin NUMERICAL_PARAMETERS
1314
1315 # -----------------------------------------------------------------------
1316 PHYSICAL_PARAMETERS = PROC(nom = "PHYSICAL_PARAMETERS",op = None,
1317 # -----------------------------------------------------------------------
1318 #    ------------------------------------
1319      Meteorology = FACT(statut = 'o',
1320 #    ------------------------------------
1321
1322 #         ------------------------------------
1323           Wind = SIMP(statut = 'o',typ = bool,defaut = False,
1324 #         ------------------------------------
1325              fr = 'Prise en compte ou non des effets du vent.',
1326              ang = 'Determines whether the wind effects are to be taken into account or not.'),
1327
1328 #         ------------------------------------
1329           b_Wind = BLOC(condition = "Wind == True",
1330 #         ------------------------------------
1331 #             ------------------------------------
1332               Wind_Velocity_Along_X = SIMP(statut = 'o',typ = 'R', defaut = 0.,
1333 #             ------------------------------------
1334                  fr = 'Composante de la vitesse du vent suivant l''axe des x (m/s).',
1335                  ang = 'Wind velocity, component along x axis (m/s).',),
1336
1337 #             ------------------------------------
1338               Wind_Velocity_Along_Y = SIMP(statut = 'o',typ = 'R',defaut = 0.,
1339 #             ------------------------------------
1340                  fr = 'Composante de la vitesse du vent suivant l''axe des y (m/s).',
1341                  ang = 'Wind velocity, component along y axis (m/s).',),
1342
1343 #             ------------------------------------
1344               Threshold_Depth_For_Wind = SIMP(statut = 'o',typ = 'R',defaut = 0.,
1345 #             ------------------------------------
1346                  fr = 'Retire la force due au vent dans les petites profondeurs',
1347                  ang = 'Wind is not taken into account for small depths' ),
1348
1349 #             ------------------------------------
1350               Coefficient_Of_Wind_Influence = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
1351 #             ------------------------------------
1352                  fr = 'Fixe la valeur du coefficient d entrainement du vent (cf.  Note de principe).',
1353                  ang = 'Sets the value of the wind driving coefficient.  Refer to principle note.',),
1354
1355 #             ------------------------------------
1356               Option_For_Wind = SIMP( statut = 'o',typ = 'TXM', defaut = 0 ,
1357 #             ------------------------------------
1358                  into = ["No wind","Constant in time and space","Variable in time","Variable in time and space"],
1359                  fr = 'donne les options pour introduire le vent',
1360                  ang = 'gives option for managing the wind'),
1361
1362 #             ------------------------------------
1363               file_For_wind = BLOC (condition = 'Option_For_Wind == "Variable in time" or Option_For_Wind == "Variable in time and space"',
1364 #             ------------------------------------
1365 #                  ------------------------------------
1366                    Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
1367 #                  ------------------------------------
1368                           defaut = "give formated file 3"),
1369               ), # fin bloc file_For_wind
1370
1371 #             ------------------------------------
1372               speed_For_wind = BLOC (condition = 'Option_For_Wind == "Constant in time and space"',
1373 #             ------------------------------------
1374 #                  ------------------------------------
1375                    Speed_And_Direction_Of_Wind = SIMP( statut = 'o', defaut = (0.0, 0.0) , 
1376 #                  ------------------------------------
1377                       typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1378                       fr = 'Donne la vitesse et la direction (en degres de 0 a 360, 0 etant y = 0 et x = +inf) du vent',
1379                       ang = 'gives the speed and direction (degre (from 0 to 360), 0 given y = 0 anx x = +infinity)',),
1380               ), # speed_For_wind
1381
1382           ), # fin b_Wind
1383
1384 #         ------------------------------------
1385           Air_Pressure = SIMP(statut = 'o',typ = bool, defaut = False,
1386 #         ------------------------------------
1387                 fr = 'Permet de decider si l''on prend ou non en compte l''influence d''un champ de pression.',
1388                 ang = 'Provided to decide whether the influence of an atmosphere field is taken into account or not.'),
1389
1390 #         ------------------------------------
1391           b_air = BLOC(condition = "Air_Pressure == True",
1392 #         ------------------------------------
1393 #              ------------------------------------
1394                Value_Of_Atmospheric_Pressure = SIMP( statut = 'o',typ = 'R',
1395 #              ------------------------------------
1396                   defaut = 100000.0 ,
1397                   fr = 'donne la valeur de la pression atmospherique lorsquelle est constante en temps et en espace',
1398                   ang = 'gives the value of atmospheric pressure when it is contant in time and space',),
1399            ), # fin b_air
1400
1401 #         ------------------------------------
1402           Rain_Or_Evaporation = SIMP(statut = 'o',typ = bool,
1403 #         ------------------------------------
1404               defaut = False,
1405               fr  = 'Pour ajouter un apport ou une perte d''eau en surface.',
1406               ang = 'to add or remove water at the free surface. ',),
1407
1408 #         -----------------------------------
1409           b_Rain = BLOC(condition = "Rain_Or_Evaporation == True",
1410 #         ------------------------------------
1411 #              ------------------------------------
1412                Rain_Or_Evaporation_In_Mm_Per_Day = SIMP(statut = 'o',typ = 'I',defaut = 0.),
1413 #              ------------------------------------
1414           ), # fin b_Rain
1415
1416     ), # fin Meteorology
1417
1418 #    ------------------------------------
1419      Wave = FACT(statut = 'o',
1420 #    ------------------------------------
1421
1422 #       ------------------------------------
1423         Wave_Driven_Currents = SIMP(statut = 'o',
1424 #       ------------------------------------
1425             typ = bool, defaut = False,
1426             fr = 'Active la prise en compte des courants de houle',
1427             ang = 'Wave driven currents are taken into account.'),
1428
1429 #       ------------------------------------
1430         b_Wave = BLOC(condition = "Wave_Driven_Currents == True",
1431 #       ------------------------------------
1432 #           ------------------------------------
1433             Record_Number_In_Wave_File = SIMP(statut = 'o',typ = 'I', defaut = 1,
1434 #           ------------------------------------
1435                 fr = 'Numero d enregistrement dans le fichier des courants de houle',
1436                 ang = 'Record number to read in the wave driven currents file'),
1437         ), # fin b_Wave
1438     ), # fin Wave
1439
1440 #    ------------------------------------
1441      Friction_Data = SIMP(statut = 'o',typ = bool,defaut = False),
1442 #    ------------------------------------
1443 #    ------------------------------------
1444      b_Friction = BLOC(condition = "Friction_Data == True",
1445      Friction_Setting = FACT(statut = 'o',
1446 #    ------------------------------------
1447 #         ------------------------------------
1448           Friction_Data_File = SIMP( statut = 'o',
1449 #         ------------------------------------
1450                typ = ('Fichier', ';;All Files (*)'),
1451                fr = 'fichier de donnees pour le frottement',
1452                ang = 'friction data file',),
1453
1454 #         ------------------------------------
1455           Depth_In_Friction_Terms = SIMP( statut = 'o',typ = 'TXM',
1456 #         ------------------------------------
1457                defaut = "Nodal" ,
1458                into = ("Nodal", "Average"),),
1459
1460 #         ------------------------------------
1461           Law_Of_Bottom_Friction = SIMP( statut = 'o',typ = 'TXM',
1462 #         ------------------------------------
1463                defaut = 'No friction' ,
1464                into = ('No friction', 'Haaland', 'Chezy', 'Strickler', 'Manning', 'Nikuradse','Log law','Colebrooke_white'),
1465                fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur le fond.',
1466                ang = 'Selects the type of formulation used for the bottom friction.',),
1467
1468 #              ------------------------------------
1469                b_Law_Friction = BLOC(condition = "Law_Of_Bottom_Friction!= 'No friction'",
1470 #              ------------------------------------
1471 #                  ------------------------------------
1472                    Friction_Coefficient = SIMP( statut = 'o',typ = 'R',
1473 #                  ------------------------------------
1474                          defaut = 50.0 ,
1475                          fr = 'Fixe la valeur du coefficient de frottement pour la formulation choisie.  \
1476 Attention, la signification de ce chiffre varie suivant la formule choisie : \
1477 1 : coefficient lineaire 2 : coefficient de Chezy 3 : coefficient de Strickler \
1478 4 : coefficient de Manning 5 : hauteur de rugosite de Nikuradse',
1479                          ang = 'Sets the value of the friction coefficient for the selected formulation. \
1480 It is noteworthy that the meaning of this figure changes according to the selected formula (Chezy, Strickler, etc.) : \
1481 1 : linear coefficient 2 : Chezy coefficient 3 : Strickler coefficient 4 : Manning coefficient 5 : Nikuradse grain size',),
1482               ), # Fin b_Law_Friction
1483
1484 #              ------------------------------------
1485                b_Colebrooke_White = BLOC(condition = "Law_Of_Bottom_Friction == 'Colebrooke_white'",
1486 #              ------------------------------------
1487 #                  ------------------------------------
1488                    Manning_Default_Value_For_Colebrook_White_Law = SIMP( statut = 'o',typ = 'R',
1489 #                  ------------------------------------
1490                        defaut = 0.02 ,
1491                        fr = 'valeur par defaut du manning pour la loi de frottement de  Colebrook-White ',
1492                        ang = 'Manning default value for the friction law of Colebrook-White ',),
1493                ), # Fin b_Colebrooke_White
1494
1495 #         ------------------------------------
1496           Non_Submerged_Vegetation_Friction = SIMP( statut = 'o',typ = bool,
1497 #         ------------------------------------
1498               defaut = False ,
1499               fr = 'calcul du frottement du a la vegetation non submergee',
1500               ang = 'friction calculation of the non-submerged vegetation',),
1501
1502 #              ------------------------------------
1503                b_Non_Sub = BLOC(condition = ' Non_submerged_Vegetation_Friction == True',
1504 #              ------------------------------------
1505 #                  ------------------------------------
1506                    Diameter_Of_Roughness_Elements = SIMP( statut = 'o',typ = 'R',
1507 #                  ------------------------------------
1508                        defaut = 0.006 ,
1509                        fr = 'diametre des elements de frottements',
1510                        ang = 'diameter of roughness element',),
1511
1512 #                  ------------------------------------
1513                    Spacing_Of_Roughness_Elements = SIMP( statut = 'o',typ = 'R',
1514 #                  ------------------------------------
1515                       defaut = 0.14 ,
1516                       fr = 'espacement des elements de frottement',
1517                       ang = 'spacing of rouhness element',),
1518             ), # Fin b_Non_Sub
1519
1520 #         ------------------------------------
1521           Law_Of_Friction_On_Lateral_Boundaries = SIMP( statut = 'o',typ = 'TXM',
1522 #         ------------------------------------
1523               defaut = "No friction" ,
1524               into = ("No friction", "Haaland", "Chezy", "Strickler",  "Manning", "Nikuradse", "Log law", "Colebrook-white"),
1525               fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur les parois laterales.',
1526               ang = 'Selects the type of formulation used for the friction on lateral boundaries.',),
1527
1528
1529 #              ------------------------------------
1530                b_Fric = BLOC(condition = 'Law_Of_Friction_On_Lateral_Boundaries != "No friction"',
1531 #              ------------------------------------
1532
1533 # PNPNPN soizic ?Ne faut-il pas un bloc sur Law_Of_Friction_On_Lateral_Boundaries
1534 #                ------------------------------------
1535                  Roughness_Coefficient_Of_Boundaries = SIMP( statut = 'o',typ = 'R',
1536 #                ------------------------------------
1537                     defaut = 100.0 ,
1538                     fr = 'Fixe la valeur du coefficient de frottement sur les frontieres solides avec un regime turbulent rugueux\n\
1539  sur les bords du domaine.  meme convention que pour le coefficient de frottement',
1540                      ang = 'Sets the value of the friction coefficient of the solid boundary with the bed roughness option. Same meaning than friction coefficient',),
1541
1542 #               ------------------------------------
1543                 Maximum_Number_Of_Friction_Domains = SIMP( statut = 'o',typ = 'I',
1544 #               ------------------------------------
1545                    defaut = 10 ,
1546                    fr = 'nombre maximal de zones pouvant etre definies pour le frottement. Peut etre augmente si necessaire',
1547                    ang = 'maximal number of zones defined for the friction.  Could be increased if needed',),
1548                ),
1549
1550 #         ------------------------------------
1551           Definition_Of_Zones = SIMP(typ = bool, statut = 'o', defaut = False,
1552 #         ------------------------------------
1553                fr = 'Declenche l''appel a def_zones, pour donner un numero de zone a chaque point',
1554                ang = 'Triggers the call to def_zones to give a zone number to every point',),
1555
1556 #              ------------------------------------
1557                b_def_zone = BLOC (condition = 'Definition_Of_Zones == True',
1558 #              ------------------------------------
1559 #                  ------------------------------------
1560                    Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", defaut = "complete DEF_ZONES subroutine"),
1561 #                  ------------------------------------
1562                ), # fin b_def_zone
1563
1564      ), # fin du fact Friction
1565      ), # Fin du bloc Friction
1566
1567
1568 #    ------------------------------------
1569      Parameters_Estimation = FACT(statut = 'f',
1570 #    ------------------------------------
1571 #         ------------------------------------
1572           Parameter_Estimation = SIMP( statut = 'o',typ = 'TXM', into = ["Friction","Frottement","Steady"],
1573 #         ------------------------------------
1574                fr = 'Liste des parametres a estimer', 
1575                ang = 'List of parameter to be estimated',),
1576          
1577 #         ------------------------------------
1578           Identification_Method = SIMP( statut = 'o',typ = 'TXM',
1579 #         ------------------------------------
1580                into = ["List of tests", "Gradient simple", "Conj gradient", "Lagrange interp."],
1581                defaut = 'GRadient simple',),
1582
1583 #         ------------------------------------
1584           Maximum_Number_Of_Iterations_For_Identification = SIMP(statut = 'o',typ = 'I',defaut = 20,
1585 #         ------------------------------------
1586               fr = 'chaque iteration comprend au moins un calcul direct et un calcul adjoint',
1587               ang = 'every iteration implies at least a direct and an adjoint computation', ),
1588
1589 #         ------------------------------------
1590           Cost_Function = SIMP(statut = "f",typ = 'TXM', 
1591 #         ------------------------------------
1592               defaut = 'Computed with h, u , v',
1593               into = ['Computed with h, u , v', 'Computed with c, u , v'],),
1594
1595 #         ------------------------------------
1596          Tolerances_For_Identification = FACT( statut = 'o',
1597 #         ------------------------------------
1598 # PNPNPN recalculer en liste de 4 reels 
1599 #             ------------------------------------
1600               Tolerance_For_H = SIMP( statut = 'o',typ = 'R', defaut=1.E-3, 
1601 #             ------------------------------------
1602                    fr  = "precision absolue sur H",
1603                    ang = "absolute precision on H",),
1604 #             ------------------------------------
1605               Tolerance_For_U = SIMP( statut = 'o',typ = 'R', defaut=1.E-3, 
1606 #             ------------------------------------
1607                    fr  = "precision absolue sur U",
1608                    ang = "absolute precision on U",),
1609 #             ------------------------------------
1610               Tolerance_For_V = SIMP( statut = 'o',typ = 'R', defaut=1.E-3, 
1611 #             ------------------------------------
1612                    fr  = "precision absolue sur V",
1613                    ang = "absolute precision on V",),
1614 #             ------------------------------------
1615               Tolerance_For_cout = SIMP( statut = 'o',typ = 'R', defaut=1.E-4, 
1616 #             ------------------------------------
1617                    fr  = "precision relative sur la fonction cout",
1618                    ang = "relative precision on the cost function",),
1619                 ),# fin Tolerances_For_Identification
1620
1621       ), #  fin fact Parameters_Estimation
1622
1623 #    ------------------------------------
1624      Number_Of_Sources = SIMP( statut = 'o',typ = 'I', defaut = 0 ,),
1625 #    ------------------------------------
1626 # Attention a la sortie a reformatter. voir page 68 du user manuel V7
1627
1628 #       ------------------------------------
1629         sources_exists = BLOC(condition = "Number_Of_Sources!= 0",
1630 #       ------------------------------------
1631
1632 #           ------------------------------------
1633             Sources_File = SIMP( statut = 'o',
1634 #           ------------------------------------
1635                 typ = ('Fichier', 'All Files (*)',),
1636                 fr = 'Nom du fichier contenant les informations variables en temps des sources',
1637                 ang = 'Name of the file containing time-dependent information on sources',),
1638
1639 #PNPNPNPN saisir autant de source que le nombre
1640 #           ------------------------------------
1641             Source = FACT(statut = 'o',
1642 #           ------------------------------------
1643                  max = "**",
1644 #               ------------------------------------
1645                 Abscissae_Of_Sources = SIMP( statut = 'o',
1646 #               ------------------------------------
1647                     typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1648                     fr = 'Valeurs des abscisses des sources de debit et de traceur.',
1649                     ang = 'abscissae of sources of flowrate and/or tracer',),
1650
1651 #               ------------------------------------
1652                 Ordinates_Of_Sources = SIMP( statut = 'o',
1653 #               ------------------------------------
1654                    typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1655                    fr = 'Valeurs des ordonnees des sources de debit et de traceur.',
1656                    ang = 'ordinates of sources of flowrate and/or tracer',),
1657
1658 #               ------------------------------------
1659                 Water_Discharge_Of_Sources = SIMP( statut = 'o',
1660 #               ------------------------------------
1661                    typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1662                    fr = 'Valeurs des debits des sources.',
1663                    ang = 'values of water discharge of sources',),
1664
1665 #               ------------------------------------
1666                 Velocities_Of_The_Sources_Along_X = SIMP( statut = 'f',
1667 #               ------------------------------------
1668                    typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1669                    fr = 'Vitesses du courant a chacune des sources. Si elles ne sont pas donnees, on considere que la vitesse est celle du courant',
1670                    ang = 'Velocities at the sources. If they are not given, the velocity of the flow at this location is taken',),
1671
1672 #               ------------------------------------
1673                 Velocities_Of_The_Sources_Along_Y = SIMP( statut = 'f',
1674 #               ------------------------------------
1675                    typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
1676                    fr = 'Vitesses du courant a chacune des sources',
1677                    ang = 'Velocities at the sources',),
1678
1679         ), # Fin du Fact Source
1680
1681 #           ------------------------------------
1682             Type_Of_Sources = SIMP(statut = 'o',typ = 'TXM',into = ["Normal","Dirac"],
1683 #           ------------------------------------
1684                    fr = 'Source portee par une base elements finis  Source portee  par une fonction de Dirac',
1685                    ang = 'Source term multiplied by a finite element basis,  Source term multiplied by a Dirac function',),
1686
1687     ),#fin bloc source - exits
1688
1689 #  ------------------------------------
1690     Water_Density = SIMP(statut = 'o',typ = 'R',defaut = 1000.,
1691 #  ------------------------------------
1692          fr = 'Fixe la valeur de la masse volumique de l eau.',
1693          ang = 'set the value of water density',
1694     ),
1695
1696 #  ------------------------------------
1697    Coriolis_Settings = FACT(statut = 'o',
1698 #  ------------------------------------
1699 #      ------------------------------------
1700        Coriolis = SIMP( statut='o',typ=bool,
1701 #      ------------------------------------
1702           defaut=False ,
1703           fr = 'Prise en compte ou non de la force de Coriolis.',
1704           ang= 'The Coriolis force is taken into account or ignored.',),
1705
1706 #     -------------------------------------------------------
1707       Coriolis_Coefficient = SIMP( statut='o',typ='R',
1708 #     -------------------------------------------------------
1709             defaut=0.0 ,
1710             fr = 'Fixe la valeur du coefficient de la force de Coriolis.  Celui-ci doit etre calcule en fonction de la latitude l \n\
1711 par la formule FCOR = 2w sin(l) , w etant la vitesse de rotation de la terre.  w = 7.27 10-5 rad/s \n\
1712 Les composantes de la force de Coriolis sont alors : FU =   FCOR x V FV = - FCOR x U',
1713            ang= 'Sets the value of the Coriolis force coefficient, in cartesian coordinates.  This coefficient,\n\
1714 denoted FCOR in the code, should be equal to 2 w sin(l)d  where w denotes the earth angular speed of rotation and l the latitude. \n\
1715 w = 7.27 10-5 rad/sec The Coriolis force components are then: FU =  FCOR x V, FV = -FCOR x U In spherical coordinates, the latitudes are known',),
1716       ), #fin Coriolis_Settings
1717 #  ------------------------------------
1718    Tsunami = FACT(statut = 'o',
1719 #  ------------------------------------
1720 #     -------------------------------------------------------
1721       Option_For_Tsunami_Generation = SIMP( statut='o',typ='I', defaut=0 ,
1722 #     -------------------------------------------------------
1723         fr = '',
1724         ang= '',),
1725
1726 #     -------------------------------------------------------
1727       Physical_Characteristics_Of_The_Tsunami = SIMP( statut='o',typ='R',
1728 #     -------------------------------------------------------
1729       min=10,max=10,
1730       defaut=(100.0, 210000.0, 75000.0, 13.6, 81.0, 41.0, 110.0, 0.0, 0.0, 3.0) ,
1731       fr = '',
1732       ang= '',),
1733       ), #fin Tsunami
1734
1735
1736
1737 #  ------------------------------------
1738     Gravity_Acceleration = SIMP(statut = 'o',typ = 'R',defaut = 9.81,
1739 #  ------------------------------------
1740         fr = 'Fixe la valeur de l acceleration de la pesanteur.',
1741         ang = 'Set the value of the acceleration due to gravity.',
1742       ),
1743
1744
1745 #    ------------------------------------
1746      Various = FACT( statut = 'o',
1747 #    ------------------------------------
1748 #     ------------------------------------
1749       Vertical_Structures = SIMP(statut = 'o',typ = bool,defaut = False,
1750 #     ------------------------------------
1751          fr = 'Prise en compte de la force de trainee de structures verticales',
1752          ang = 'drag forces from vertical structures are taken into account',),
1753
1754 #          ------------------------------------
1755            maskob = BLOC (condition = 'Vertical_Structures == True',
1756 #          ------------------------------------
1757 #              ------------------------------------
1758                Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
1759 #              ------------------------------------
1760                defaut = "subroutine DRAGFO must then be implemented"),
1761            ), # fin maskob
1762        ),
1763 )# fin PHYSICAL_PARAMETERS
1764
1765 # -----------------------------------------------------------------------
1766 OUTPUT_FILES = PROC(nom = "OUTPUT_FILES",op = None,
1767 # -----------------------------------------------------------------------
1768
1769 #  ------------------------------------
1770    Graphic_And_Listing_Printouts = FACT(statut = 'f',
1771 #  ------------------------------------
1772 #       ------------------------------------
1773         Variables_For_Graphic_Printouts = SIMP(statut = 'o',max = "**", typ = 'TXM',
1774 #       ------------------------------------
1775                 into=[ "Velocity along X axis  (m/s)", "Velocity along Y axis  (m/s)", "Wave celerity  (m/s)", "Water depth  (m)",
1776                       "Free surface elevation  (m)", "Bottom elevation  (m)", "Froude number  ", "Scalar flowrate of fluid  (m2/s)", 
1777                       "Tracer 1 etc. ", "Turbulent kinetic energy in K-Epsilon model  (J/kg)", "Dissipation of turbulent energy  (W/kg)", 
1778                       "Turbulent viscosity of K-Epsilon model  (m2/s)", "Flowrate along X axis  (m2/s)", "Flowrate along Y axis  (m2/s)",
1779                       "Scalar velocity  (m/s)", "Wind along X axis  (m/s)", "Wind along Y axis  (m/s)", "Air pressure  (Pa)", 
1780                       "Friction coefficient", "Drift along X  (m)", "Drift along Y  (m)", "Courant number ", "Supplementary variable N ", 
1781                       "Supplementary variable O ", "Supplementary variable R ", "Supplementary variable Z  ", "Maximum elevation", 
1782                       "Time of maximum elevation ", "Maximum velocity", "Time of maximum velocity", "Friction velocity  "],),
1783
1784 #       ------------------------------------
1785         Graphic_Printout_Period = SIMP(statut = 'o', typ = 'I',defaut = 1,
1786 #       ------------------------------------
1787                     fr = 'Determine la periode en nombre de pas de temps d''impression des VARIABLES POUR LES SORTIES GRAPHIQUES \n\
1788                          dans le FICHIER DES RESULTATS.',
1789                     ang = 'Determines, in number of time steps, the printout period for the VARIABLES FOR GRAPHIC PRINTOUTS in the RESULTS FILE.' ,),
1790
1791 #       ------------------------------------
1792         Number_Of_First_Time_Step_For_Graphic_Printouts = SIMP(statut = 'o', typ = 'I',defaut = 1,
1793 #       ------------------------------------
1794                    fr = 'Determine le nombre de pas de temps a partir duquel debute l''ecriture des resultats dans le listing.',
1795                    ang = 'Determines the number of time steps after which the results are first written into the listing.'),
1796
1797  
1798 #       ------------------------------------
1799         Results_File = SIMP( statut = 'o', 
1800 #       ------------------------------------
1801                typ = ('Fichier', 'Steering Files (*.cas);;All Files (*)',),
1802                fr = 'Nom du fichier dans lequel sont ecrits les resultats du calcul avec la periodicite donnee  PERIODE POUR LES SORTIES GRAPHIQUES.', 
1803                ang = 'Name of the file into which the computation results shall be written, the periodicity being given by  GRAPHIC PRINTOUT PERIOD.',),
1804
1805 #       ------------------------------------
1806           Results_File_Format = SIMP( statut = 'o',typ = 'TXM',into = ['Serafin','MED','SerafinD'], defaut = 'Serafin',
1807 #       ------------------------------------
1808                                 fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
1809      - SERAFIN : format standard simple precision pour Telemac;  \n\
1810      - SERAFIND: format standard double precision pour Telemac; \n\
1811      - MED     : format MED base sur HDF5' ,
1812                                ang = 'Results file format. Possible values are:\n \
1813      - SERAFIN : classical single precision format in Telemac;\n\
1814      - SERAFIND: classical double precision format in Telemac; \n\
1815      - MED     : MED format based on HDF5' ,
1816                                    ),
1817
1818 #       ------------------------------------
1819         Listing_Printout_Period = SIMP(statut = 'o', typ = 'I',defaut = 1,
1820 #       ------------------------------------
1821           fr = 'Determine la periode en nombre de pas de temps d''impression des variables',
1822           ang = 'Determines, in number of time steps, the printout period for the variables',),
1823
1824 #       ------------------------------------
1825         Listing_Printout = SIMP( statut='o',typ=bool, defaut=True ,
1826 #       ------------------------------------
1827            fr = 'Sortie des resultats sur support papier.  Si on met False, le listing ne contient que lentete et la mention FIN NORMALE DU PROGRAMME : La Valeur False est  a eviter',
1828             ang= 'Result printout on hard copy.  When NO is selected, the listing only includes the heading and the phrase "NORMAL END OF PROGRAM" In addition, the options MASS BALANCE and VALIDATION are inhibited. Value False  Not recommended for use.',
1829      ),
1830
1831 #       ------------------------------------
1832         Variables_To_Be_Printed = SIMP(statut = 'o',max = "**", typ = 'TXM',
1833 #       ------------------------------------
1834             into = [ "Velocity along X axis (m/s)", "Velocity along Y axis (m/s)", "Wave celerity (m/s)", "Water depth (m)",
1835                    "Free surface elevation (m)", "Bottom elevation (m)", "Froude number", "Scalar flowrate of fluid (m2/s)",
1836                    "Tracer", "Turbulent kinetic energy in K-Epsilon model (J/kg)", "Dissipation of turbulent energy (W/kg)",
1837                    "Turbulent viscosity of K-Epsilon model (m2/s)", "Flowrate along x axis (m2/s)", "Flowrate along y axis (m2/s)",
1838                    "Scalar velocity (m/s)", "Wind along x axis (m/s)", "Wind along y axis (m/s)", "Air pressure (Pa)",
1839                    "Friction coefficient", "Drift along x  (m)", "Drift along y  (m)", "Courant number",
1840                    "Supplementary variable N", "Supplementary variable O", "Supplementary variable R", "Supplementary variable Z"]
1841 ,homo="SansOrdreNiDoublon"),
1842
1843    ),# fin Listing_Graphic_Printouts
1844
1845 #  ------------------------------------
1846    Formatted_Results_File = SIMP( statut = 'f',
1847 #  ------------------------------------
1848         typ = ('Fichier','All Files (*)',),
1849         fr = 'Fichier de resultats formate mis a la disposition de l utilisateur. \
1850 Les resultats a placer dans ce fichier seront a ecrire sur le canal 29.',
1851        ang = 'Formatted file of results made available to the user.  \
1852 The results to be entered into this file shall be written on channel 29.',),
1853
1854
1855 #  ------------------------------------
1856    Output_Of_Initial_Conditions = SIMP(typ = bool, statut = 'o', 
1857 #  ------------------------------------
1858         defaut = True,
1859         fr = 'Si Vrai, impression des conditions initiales dans les resultats',
1860         ang = 'If True, output of initial conditions in the results'),
1861
1862 #  ------------------------------------
1863    Number_Of_Private_Arrays = SIMP( statut='o',typ='I',
1864 #  ------------------------------------
1865     defaut=0 ,
1866     fr = 'Nombre de tableaux mis a disposition de l utilisateur',
1867     ang= 'Number of arrays for own user programming',
1868      ),
1869
1870
1871 #  ------------------------------------
1872    Information_About_Solver = SIMP(typ = bool, statut = 'f',
1873 #  ------------------------------------
1874        defaut = False,
1875        fr = "Si vrai, Donne a chaque pas de temps le nombre d'iterations necessaires a la convergence du solveur de l'etape de propagation.",
1876        ang = "if True, prints the number of iterations that have been necessary to get the solution of the linear system.",),
1877
1878 #  ------------------------------------
1879    Mass_Balance = SIMP( statut='o',typ=bool,
1880 #  ------------------------------------
1881        defaut=False ,
1882        fr = 'Determine si l on effectue ou non le bilan de masse sur le domaine.  Cette procedure calcule a chaque pas de temps : \n\
1883 - les flux aux entrees et sorties du domaine, - le flux global a travers lensemble des parois du domaine (liquides ou solides) \n\
1884 - l erreur relative sur la masse pour ce pas de temps.\n\
1885 En fin de listing, on trouve l erreur relative sur la masse pour l ensemble du calcul.\n\
1886 Il ne sagit que dun calcul indicatif car il nexiste pas dexpression compatible du debit en formulation c,u,v.',
1887
1888       ang= 'Determines whether a check of the mass-balance over the domain is mader or not.\n\
1889 This procedures computes the following at each time step: the domain inflows and outflows, the overall flow across all the boundaries,\n\
1890 the relative error in the mass for that time step.  The relative error in the mass over the whole computation can be found at the end of the listing.',
1891      ),
1892
1893
1894 #  ------------------------------------
1895    Binary_Results_File = SIMP( statut = 'f', 
1896 #  ------------------------------------
1897          typ = ('Fichier', ';;All Files (*)',), 
1898          fr = "Fichier de resultats code en binaire mis a la disposition de l'utilisateur.\n\
1899 Les resultats a placer dans ce fichier seront a ecrire sur le canal 28.",
1900          ang = "Additional binary-coded result file made available to the user. \n\
1901 The results to be entered into this file shall be written on channel 28.",),
1902
1903 #  ------------------------------------
1904   Controls = FACT( statut='f',
1905 #  ------------------------------------
1906 #      ------------------------------------
1907        Control_Sections = SIMP(statut = 'f',typ = Tuple(2),validators = VerifTypeTuple(('I','I')),
1908 #      ------------------------------------
1909             fr = 'Couples de points (numeros globaux dans le maillage) entre lesquels les debits instantanes et cumules seront donnes.',
1910             ang = 'Couples of points (global numbers in the mesh) defining sections where the instantaneous and cumulated discharges will be given',),
1911
1912 #      ------------------------------------
1913        Printing_Cumulated_Flowrates = SIMP( statut = 'o',typ = bool, defaut = False ,
1914 #      ------------------------------------
1915             fr = 'impression du flux cumule a travers les sections de controle',
1916             ang = 'printing the cumulated flowrates through control sections',),
1917
1918 #      ------------------------------------
1919        Compatible_Computation_Of_Fluxes = SIMP( statut = 'o',typ = bool, defaut = False ,
1920 #      ------------------------------------
1921            fr = 'flux a travers les sections de controle, calcul compatible avec l impermeabilite sous forme faible',
1922            ang = 'flowrates through control sections, computation compatible with the weak formulation of no-flux boundary condition',),
1923
1924 #      ------------------------------------
1925        Sections_Input_File = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)'),
1926 #      ------------------------------------
1927           fr = 'sections input file, partitioned',
1928           ang = 'sections input file, partitioned',),
1929
1930 #      ------------------------------------
1931        Sections_Output_File = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)'),
1932 #      ------------------------------------
1933           fr = 'sections output file, written by the master',
1934           ang = 'sections output file, written by the master',),
1935
1936   ),# fin controls
1937 #  ------------------------------------
1938   Fourier = FACT(statut = 'f',
1939 #  ------------------------------------
1940 #      ------------------------------------
1941        Fourier_Analysis_Periods = SIMP( statut='o',
1942 #      ------------------------------------
1943        typ = Tuple(2), validators = VerifTypeTuple(('R','R')),
1944        fr = 'Liste des periodes que lon veut analyser',
1945        ang= 'List of periods to be analysed',),
1946
1947 #      ------------------------------------
1948        Time_Range_For_Fourier_Analysis = SIMP( statut='o',
1949 #      ------------------------------------
1950        typ = Tuple(2), validators = VerifTypeTuple(('R','R')),
1951        defaut=(0.0, 0.0) ,
1952        fr = 'Pour le calcul du marnage et de la phase de la maree',
1953        ang= 'For computing tidal range and phase of tide',
1954         ),
1955
1956 #      ------------------------------------
1957        List_Of_Points = SIMP( statut='o',
1958 #      ------------------------------------
1959        typ = Tuple(2), validators = VerifTypeTuple(('I','I')),
1960        fr = 'Liste de points remarquables pour les impressions',
1961        ang= 'List of remarkable points for printouts',),
1962
1963 #      ------------------------------------
1964        Names_Of_Points = SIMP( statut='o',typ='TXM',
1965 #      ------------------------------------
1966        min=2,max=2 ,
1967        fr = 'Noms des points remarquables pour les impressions',
1968        ang= 'Names of remarkable points for printouts',
1969      ),
1970
1971   ),# fin fourier
1972 ) # FIN OUTPUT_FILES
1973
1974
1975 # -----------------------------------------------------------------------
1976 CONSTRUCTION_WORKS_MODELLING = PROC(nom = "CONSTRUCTION_WORKS_MODELLING",op = None,
1977 # -----------------------------------------------------------------------
1978
1979 # Attention calculer le logique BREACH 
1980
1981 #      ------------------------------------
1982        Number_Of_Culverts = SIMP( statut = 'o',typ = 'I',
1983 #      ------------------------------------
1984             defaut = 0 ,
1985             fr = 'Nombre de siphons traites comme des termes sources ou puits. Ces siphons doivent etre decrits comme des sources \
1986 dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des siphons (voir la documentation ecrite)',
1987             ang = 'Number of culverts treated as source terms.  They must be described as sources in the domain\
1988  and their features are given in the culvert data file (see written documentation)',),
1989 #           ------------------------------------
1990             culvert_exists = BLOC(condition = "Number_Of_Culverts!= 0",
1991 #           ------------------------------------
1992 #               ------------------------------------
1993                 Culvert_Data_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
1994 #               ------------------------------------
1995                     fr = 'Fichier de description des siphons presents dans le modele',
1996                     ang = 'Description of culvert existing in the model',),
1997             ), # fin bloc culvert_exists
1998
1999 #      ------------------------------------
2000        Number_Of_Tubes = SIMP( statut = 'o',typ = 'I',
2001 #      ------------------------------------
2002              defaut = 0 ,
2003              fr = 'Nombre de buses ou ponts traites comme des termes sources ou puits. Ces buses doivent etre decrits comme des sources\n\
2004 dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des buses (voir la documentation ecrite)',
2005              ang = 'Number of tubes or bridges treated as source terms.  They must be described as sources in the domain \n\
2006 and their features are given in the tubes data file (see written documentation)',), 
2007 #          ------------------------------------
2008             b_Tubes = BLOC(condition = "Number_Of_Tubes!= 0",
2009 #          ------------------------------------
2010 #               ------------------------------------
2011                 Tubes_Data_File = SIMP( statut = 'o',
2012 #               ------------------------------------
2013                     typ = ('Fichier', 'All Files (*)',),
2014                     fr = 'Fichier de description des buses/ponts presents dans le modele',
2015                     ang = 'Description of tubes/bridges existing in the model',),
2016             ), # in bloc b_Tubes
2017
2018 #      ------------------------------------
2019        Number_Of_Weirs = SIMP(statut = 'o',typ = 'I',defaut = 0,
2020 #      ------------------------------------
2021              fr = 'Nombre de seuils qui seront traites par des conditions aux limites. \n\
2022 Ces seuils doivent etre decrits comme des frontieres du domaine de calcul',
2023              ang = 'Number of weirs that will be treated by boundary conditions.',
2024      ),
2025 #          ------------------------------------
2026            b_Weirs = BLOC(condition = "Number_Of_Weirs!= 0",
2027 #          ------------------------------------
2028 #               ------------------------------------
2029                 Weirs_Data_File = SIMP( statut = 'o',
2030 #               ------------------------------------
2031                     typ = ('Fichier', 'All Files (*)',),
2032                     fr = 'Fichier de description des seuils presents dans le modele',
2033                     ang = 'Description of weirs existing in the model',),
2034
2035 #              ------------------------------------
2036                Type_Of_Weirs = SIMP( statut = 'o',typ = 'TXM',
2037 #              ------------------------------------
2038                    into = ["Horizontal with same number of nodes upstream/downstream (Historical solution with bord)",
2039                        "General (New solution with sources points)"],
2040                    defaut = "Horizontal with same number of nodes upstream/downstream (Historical solution with bord)",
2041                    fr = 'MĂ©thode de traitement des seuils ',
2042                    ang = 'Method for treatment of weirs',),
2043           ),# fin b_Weirs
2044
2045 #      ------------------------------------
2046       Breach = SIMP(statut = 'o',typ = bool,defaut = False,
2047 #      ------------------------------------
2048          fr = 'Prise en compte de breches dans le calcul par modification altimetrique dans le maillage.',
2049          ang = 'Take in account some breaches during the computation by modifying the bottom level of the mesh.',),
2050
2051 #          ------------------------------------
2052            b_Breaches = BLOC (condition = 'Breach == True',
2053 #          ------------------------------------
2054 #              ------------------------------------
2055                Breaches_Data_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
2056 #              ------------------------------------
2057                    fr = 'Fichier de description des breches',
2058                    ang = 'Description of breaches',),
2059          ), # fin b_Breaches
2060
2061
2062 ) # Fin CONSTRUCTION_WORKS_MODELLING
2063
2064
2065 # -----------------------------------------------------------------------
2066 GENERAL_PARAMETERS = PROC(nom = "GENERAL_PARAMETERS",op = None,
2067 # -----------------------------------------------------------------------
2068 #      ------------------------------------
2069        Origin_Coordinates = SIMP( statut='o',
2070 #      ------------------------------------
2071           typ = Tuple(2),validators = VerifTypeTuple(('I','I')),defaut = (0,0),
2072           fr = 'Valeur en metres, utilise pour eviter les trop grands nombres, transmis dans le format Selafin mais pas d autre traitement pour l instant',
2073           ang= 'Value in metres, used to avoid large real numbers,  added in Selafin format, but so far no other treatment',),
2074
2075
2076 #      ------------------------------------
2077        Spherical_Coordinates = SIMP(typ = bool,statut = 'o',defaut = False,
2078 #      ------------------------------------
2079            fr = 'Choix des coordonnees spheriques pour la realisation du calcul ( pour les grands domaines de calcul).',
2080            ang = 'Selection of spherical coordinates to perform the computation (for large computation domains).'),
2081
2082 #      ------------------------------------
2083        b_Spher = BLOC(condition = 'Spherical_Coordinates == True',
2084 #      ------------------------------------
2085 #          ------------------------------------
2086            Latitude_Of_Origin_Point = SIMP(typ = 'R',statut = 'o',defaut = 48.,
2087 #          ------------------------------------
2088                fr = 'Determine l origine utilisee pour le calcul de latitudes lorsque l on effectue un calcul en coordonnees spheriques.',
2089                ang = 'Determines the origin used for computing latitudes when a computation is made in spherical coordinates.this latitude\n\
2090 is in particular used to compute the Coriolis force. In cartesian coordinates, Coriolis coefficient is considered constant.'),
2091
2092 #          ------------------------------------
2093             Spatial_Projection_Type = SIMP(statut = 'o',typ = 'TXM',
2094 #          ------------------------------------
2095                into = ["Mercator","Latitude longitude"]),
2096        ), # fin b_Spher
2097
2098 #      ------------------------------------
2099        b_Spher_faux = BLOC(condition = 'Spherical_Coordinates == False',
2100 #      ------------------------------------
2101 #          ------------------------------------
2102            Spatial_Projection_Type = SIMP(statut = 'o',typ = 'TXM',
2103 #          ------------------------------------
2104                into = ["Cartesian, not georeferenced","Mercator","Latitude longitude"],
2105                defaut = "Cartesian, not georeferenced",),
2106        ), # fin b_Spher_faux
2107
2108 # Attention il faut recalculer en sortie : il faut 0 ou 1 et non un boolean
2109 #  ------------------------------------
2110    Debugger = SIMP(typ = bool , statut = 'o', 
2111 #  ------------------------------------
2112         defaut = False,
2113         fr= 'Pour imprimer la sequence des appels, mettre 1',
2114         ang = 'If 1, calls of subroutines will be printed in the listing',),
2115
2116 ) # Fin GENERAL_PARAMETERS
2117
2118
2119 # -----------------------------------------------------------------------
2120 TURBULENCE = PROC(nom = "TURBULENCE",op = None,
2121 # -----------------------------------------------------------------------
2122
2123 #    -----------------------------------------------------------------------
2124      Turbulence_Model = SIMP( statut = 'o',typ = 'TXM', defaut = "Constant Viscosity", 
2125 #    -----------------------------------------------------------------------
2126           into = ("Constant Viscosity", "Elder", "K-Epsilon Model", "Smagorinski"),
2127           fr = 'Pour  Elder, il faut pas oublier d ajuster les deux valeurs du mot-cle : COEFFICIENTS ADIMENSIONNELS DE DISPERSION\n\
2128 Pour K-Epsilon Model, ce meme parametre doit retrouver sa vraie valeur physique car elle est utilisee comme telle dans le modele de turbulence',
2129     ang = 'When Elder, the two values of key-word : NON-DIMENSIONAL DISPERSION COEFFICIENTS are used \n\
2130 When K-Epsilon Model, this parameter should recover its true physical value, since it is used as such in the turbulence model.',),
2131
2132 #          ------------------------------------
2133            b_turbu_const = BLOC(condition = 'Turbulence_Model == "Constant Viscosity"',
2134 #          ------------------------------------
2135 #              ------------------------------------
2136                Velocity_Diffusivity = SIMP( statut = 'o',typ = 'R',
2137 #              ------------------------------------
2138                    defaut = 1.E-6,
2139                    fr = 'Fixe de facon uniforme pour l ensemble du domaine la valeur du coefficient de diffusion de viscosite globale (dynamique + turbulente).\n\
2140 Cette valeur peut avoir une influence non negligeable sur la forme et la taille des recirculations.',
2141                    ang = 'Sets, in an even way for the whole domain, the value of the coefficient of global (dynamic+turbulent) viscosity. \n\
2142 this value may have a significant effect both on the shapes and sizes of recirculation zones.',),
2143             ), # fin b_turbu_const
2144
2145 #          ------------------------------------
2146            b_turbu_elder = BLOC(condition = 'Turbulence_Model == "Elder"',
2147 #          ------------------------------------
2148 #              ------------------------------------
2149                Non_Dimensional_Dispersion_Coefficients = SIMP (statut = 'o',
2150 #              ------------------------------------
2151                    typ = Tuple(2),validators = VerifTypeTuple(('R','R')),defaut = (6.,0.6),
2152                    fr = 'coefficients longitudinal et transversal dans la formule de Elder.',
2153                    ang = 'Longitudinal and transversal coefficients in elder s formula.  Used only with turbulence model number 2',),
2154            ), # fin bloc b_turbu_elder
2155
2156 #    -----------------------------------------------------------------------
2157      Accuracy_Of_K = SIMP( statut = 'o',typ = 'R', defaut = 1e-09 ,
2158 #    -----------------------------------------------------------------------
2159             fr = 'Fixe la precision demandee sur k pour le test d arret dans letape de diffusion et termes sources du modele k-epsilon.',
2160             ang = 'Sets the required accuracy for computing k in the diffusion and source terms step of the k-epsilon model.',),
2161
2162 #    -----------------------------------------------------------------------
2163      Accuracy_Of_Epsilon = SIMP( statut = 'o',typ = 'R', defaut = 1e-09 ,
2164 #    -----------------------------------------------------------------------
2165             fr = 'Fixe la precision demandee sur epsilon pour le test darret dans letape de diffusion et termes sources de k et epsilon.',
2166             ang = 'Sets the required accuracy for computing epsilon in the diffusion and source-terms step of the k-epsilon model.',),
2167
2168 #    -----------------------------------------------------------------------
2169      Time_Step_Reduction_For_K_Epsilon_Model = SIMP( statut = 'f',typ = 'R', defaut = 1.0 ,
2170 #    -----------------------------------------------------------------------
2171            fr = 'Coefficient reducteur du pas de temps pour le modele k-epsilon (qui est normalement identique a celui du systeme hydrodynamique).\n\
2172 Utilisation deconseillee',
2173            ang = 'Time step reduction coefficient for k-epsilon model (which is normally same the same as that of the hydrodynamic system).\n\
2174 Not recommended for use.',),
2175
2176 #    -----------------------------------------------------------------------
2177      Maximum_Number_Of_Iterations_For_K_And_Epsilon = SIMP( statut = 'o',typ = 'I',
2178 #    -----------------------------------------------------------------------
2179            defaut = 50 ,
2180            fr = 'Fixe le nombre maximum diterations accepte lors de la resolution du systeme diffusion-termes sources du modele k-epsilon.',
2181            ang = 'Sets the maximum number of iterations that are acceptable when solving the diffusion source-terms step of the k-epsilon model.',),
2182
2183 #    -----------------------------------------------------------------------
2184      Turbulence_Model_For_Solid_Boundaries = SIMP( statut = 'o',typ = 'TXM',
2185 #    -----------------------------------------------------------------------
2186            defaut = 'Rough' ,
2187            into = ('Smooth', 'Rough'),
2188            fr = 'Permet de choisir le regime de turbulence aux parois ',
2189            ang = 'Provided for selecting the type of friction on the walls',),
2190
2191 #    -----------------------------------------------------------------------
2192       Solver_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'TXM',
2193 #    -----------------------------------------------------------------------
2194            defaut = "Conjugate gradient" ,
2195            into = ("Conjugate gradient", "Conjugate residuals", "Conjugate gradient on normal equation", 
2196                    "Minimum error", "Conjugate gradient squared", "Conjugate gradient squared stabilised (CGSTAB)",
2197                    "GMRES", "Direct"),
2198            fr = 'Permet de choisir le solveur utilise pour la resolution du systeme du modele k-epsilon',
2199            ang = 'Makes it possible to select the solver used for solving the system of the k-epsilon model.',),
2200
2201 #        -----------------------------------------------------------------------
2202          b_gmres = BLOC(condition = 'Solver_For_K_Epsilon_Model == "GMRES"',
2203 #        -----------------------------------------------------------------------
2204 #            -----------------------------------------------------------------------
2205              Option_For_The_Solver_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'I',
2206 #            -----------------------------------------------------------------------
2207                   defaut = 2 ,val_min = 2,val_max = 15,
2208                   fr = 'le mot cle est la dimension de lespace de KRILOV (valeurs conseillees entre 2 et 7)',
2209                   ang = 'dimension of the krylov space try values between 2 and 7',),
2210          ), # fin bloc b_gmres
2211
2212 #    -----------------------------------------------------------------------
2213      Preconditioning_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'TXM',
2214 #    -----------------------------------------------------------------------
2215          defaut = 'Diagonal' ,
2216          into = ("Diagonal", "No preconditioning", "Diagonal condensed", "Crout", "Diagonal and crout", "Diagonal condensed and crout"),
2217          fr = 'Permet de preconditionner le systeme relatif au modele k-epsilon',
2218          ang = 'Preconditioning of the linear system in the diffusion step of the k-epsilon model.',
2219      ),
2220 #    -----------------------------------------------------------------------
2221      Information_About_K_Epsilon_Model = SIMP(statut = 'o',typ = bool,defaut = True,
2222 #    -----------------------------------------------------------------------
2223         fr = 'Donne le nombre d iterations du solveur de l etape de diffusion et termes sources du modele k-epsilon.',
2224         ang = 'Gives the number of iterations of the solver in the diffusion and source terms step of the k-epsilon model.',
2225      ),
2226 )# fin TURBULENCE
2227
2228 # -----------------------------------------------------------------------
2229 SECONDARY_CURRENTS_SETTINGS = PROC(nom = "SECONDARY_CURRENTS_SETTINGS",op = None,
2230 # -----------------------------------------------------------------------
2231
2232 #    -----------------------------------------------------------------------
2233      Secondary_Currents = SIMP( statut='o',typ=bool,
2234 #    -----------------------------------------------------------------------
2235          defaut=False ,
2236          fr = 'Pour prendre en compte les courants secondaires',
2237          ang= 'Using the parametrisation for secondary currents',
2238      ),
2239
2240 #        -----------------------------------------------------------------------
2241          b_currents_exists = BLOC(condition = "Secondary_Currents == True", 
2242 #        -----------------------------------------------------------------------
2243 #            -----------------------------------------------------------------------
2244              Production_Coefficient_For_Secondary_Currents = SIMP( statut='o',typ='R',
2245 #            -----------------------------------------------------------------------
2246                defaut=7.071 ,
2247                fr = 'Une constante dans les termes de creation de Omega',
2248                ang= 'A constant in the production terms of Omega',),
2249
2250 #            -----------------------------------------------------------------------
2251              Dissipation_Coefficient_For_Secondary_Currents = SIMP( statut='o',typ='R',
2252 #            -----------------------------------------------------------------------
2253                defaut=0.5 ,
2254                fr = 'Coefficient de dissipation de Omega',
2255                ang= 'Coefficient of dissipation term of Omega',),
2256
2257          ), # fin b_currents_exists
2258
2259
2260 )# Fin SECONDARY_CURRENTS_SETTINGS
2261 # -----------------------------------------------------------------------
2262 PARTICULE = PROC(nom = "PARTICULE",op = None,
2263 # -----------------------------------------------------------------------
2264 #    -----------------------------------------------------------------------
2265       Number_Of_Drogues = SIMP(statut = 'o',typ = 'I',defaut = 0,
2266 #    -----------------------------------------------------------------------
2267       fr = 'Permet d''effectuer un suivi de flotteurs',
2268       ang = 'Number of drogues in the computation.',),
2269
2270 #    -----------------------------------------------------------------------
2271      Algae_Transport_Model = SIMP( statut = 'o',typ = bool, defaut = False ,
2272 #    -----------------------------------------------------------------------
2273           fr = 'Si oui, les flotteurs seront des algues',
2274           ang = 'If yes, the floats or particles will be algae',),
2275
2276 #        -----------------------------------------------------------------------
2277          algae_exists = BLOC(condition = "Algae_Transport_Model == True", 
2278 #        -----------------------------------------------------------------------
2279 #            -----------------------------------------------------------------------
2280              Algae_Type = SIMP( statut = 'o',typ = 'TXM',
2281 #            -----------------------------------------------------------------------
2282                  into = ["Sphere", "Iridaea flaccida (close to ulva)", "Pelvetiopsis limitata", "Gigartina leptorhynchos"],
2283                  defaut = "Sphere",
2284                  fr = 'Type des algues. Pour sphere les algues seront modelisees comme des spheres, pour les autres choix voir Gaylord et al.(1994)',
2285                  ang = 'Algae type. For sphere, the algae particles will be modeled as spheres, for the other choices see Gaylord et al.(1994)',),
2286
2287 #            -----------------------------------------------------------------------
2288              Diametre_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 0.1 ,
2289 #            -----------------------------------------------------------------------
2290                  fr = 'Diametre des algues en m',
2291                  ang = 'Diametre of algae in m',),
2292
2293 #            -----------------------------------------------------------------------
2294              Density_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 1050.0 ,
2295 #            -----------------------------------------------------------------------
2296                  fr = 'Masse volumique des algues en kg/m3',
2297                  ang = 'Density of algae in kg/m3',),
2298
2299 #            -----------------------------------------------------------------------
2300              Thickness_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 0.01 ,
2301 #            -----------------------------------------------------------------------
2302                  fr = 'Epaisseur des algues en m',
2303                  ang = 'Thickness of algae in m',),
2304       ), # fin algae
2305
2306
2307 #    -----------------------------------------------------------------------
2308      Oil_Spill_Model = SIMP( statut = 'o',typ = bool, defaut = False ,
2309 #    -----------------------------------------------------------------------
2310          fr = 'pour declencher le modele de derive de nappes, dans ce cas le fichier de commandes migrhycar est necessaire',
2311          ang = 'will trigger the oil spill model, in this case the migrhycar steering file is needed',),
2312
2313 #    -----------------------------------------------------------------------
2314      oil_exists = BLOC(condition = "Oil_Spill_Model == True", 
2315 #    -----------------------------------------------------------------------
2316 #        -----------------------------------------------------------------------
2317          Oil_Spill_Steering_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
2318 #        -----------------------------------------------------------------------
2319              fr = 'Contient les donnees pour le modele de derive de nappes',
2320              ang = 'Contains data for the oil spill model',),
2321      ), # fin oil_exists
2322
2323 #    -----------------------------------------------------------------------
2324      drogues_exists = BLOC(condition = "Number_Of_Drogues!= 0 or Algae_Transport_Model == True or Oil_Spill_Model == True",
2325 #    -----------------------------------------------------------------------
2326 #        -----------------------------------------------------------------------
2327          Drogues_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
2328 #        -----------------------------------------------------------------------
2329              fr = 'Fichier de resultat avec les positions des flotteurs',
2330              ang = 'Results file with positions of drogues',),
2331
2332 #        -----------------------------------------------------------------------
2333          Printout_Period_For_Drogues = SIMP(statut = 'o',typ = 'I',defaut = 1,
2334 #        -----------------------------------------------------------------------
2335               fr = 'Nombre de pas de temps entre 2 sorties de positions de flotteurs dans le fichier des resultats binaire supplementaire\n\
2336 N affecte pas la qualite du calcul de la trajectoire',
2337               ang = 'Number of time steps between 2 outputs of drogues positions in the binary file',),
2338      ),#fin drogues ou algae
2339
2340
2341 #    -----------------------------------------------------------------------
2342      Stochastic_Diffusion_Model = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
2343 #    -----------------------------------------------------------------------
2344          fr = 'Pour les particules : flotteurs, algues, hydrocarbures',
2345          ang = 'Meant for particles: drogues, algae, oil spills',),
2346
2347 #    -----------------------------------------------------------------------
2348      Number_Of_Lagrangian_Drifts = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
2349 #    -----------------------------------------------------------------------
2350          fr = 'Permet deffectuer simultanement plusieurs calculs de derives lagrangiennes initiees a des pas differents',
2351          ang = 'Provided for performing several computations of lagrangian drifts starting at different times.',),
2352
2353 #    -----------------------------------------------------------------------
2354      b_cons = BLOC(condition = "Number_Of_Lagrangian_Drifts != 0",
2355 #    -----------------------------------------------------------------------
2356 #        -----------------------------------------------------------------------
2357          Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", 
2358 #        -----------------------------------------------------------------------
2359              defaut = "Add A and G in the VARIABLES FOR GRAPHIC PRINTOUTS key-word in POST_PROCESSING SECTION"),
2360     ), # fin b_cons
2361
2362 )# fin PARTICULE
2363 # -----------------------------------------------------------------------
2364 TRACERS = PROC(nom = "TRACERS",op = None,
2365 # -----------------------------------------------------------------------
2366
2367 #        -----------------------------------------------------------------------
2368          Tracers_Setting = FACT(statut = 'o',
2369 #        -----------------------------------------------------------------------
2370
2371 #        -----------------------------------------------------------------------
2372          Number_Of_Tracers = SIMP( statut='o',typ='I',
2373 #        -----------------------------------------------------------------------
2374       defaut=0 ,
2375       fr = 'Definit le nombre de traceurs.',
2376       ang= 'Defines the number of tracers',),
2377 #PNPNPN Recalculer Names_Of_Tracers et Initial_Values_Of_Tracers comme des listes
2378 # pour Names_Of_Tracers = Names_Of_Tracers+Names_Of_Unit
2379 # il faut faire un validateur (la chaine doit faire 16 caracteres evtuellement complete par des blancs)
2380
2381 #        ------------------------------------
2382          Tracer = FACT(statut = 'o', max="**",
2383 #        ------------------------------------
2384 #            -----------------------------------------------------------------------
2385               Name_Of_Tracer = SIMP( statut='o',typ='TXM',
2386 #             -----------------------------------------------------------------------
2387               fr = 'Noms des traceurs en 16 caracteres',
2388               ang= 'Name of tracers in 32 characters',),
2389
2390 #            -----------------------------------------------------------------------
2391               Name_Of_Unit = SIMP( statut='o',typ='TXM',
2392 #             -----------------------------------------------------------------------
2393               fr = 'Noms de l unitĂ© en 16 caracteres',
2394               ang= 'Name of unit in 16 characters',),
2395
2396         b_Computation_Continued = BLOC(condition = 'Computation_Continued == True',
2397 #PNPNPN Attention: global_jdc ne fonctionne pas bien : pas de propagation si chgt de valeur de Computation_Continued
2398 #            -----------------------------------------------------------------------
2399              Initial_Values_Of_Tracers = SIMP( statut='o',
2400 #             -----------------------------------------------------------------------
2401               typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
2402               defaut=(0.0, 0.0) ,
2403               fr = 'Fixe la valeur initiale du traceur.',
2404               ang= 'Sets the initial value of the tracer.',),
2405
2406            ), # fin b_Computation_Continued
2407 #             ------------------------------------
2408               Boundary_Conditions = FACT( statut = 'f', 
2409 #            ------------------------------------
2410 #            -----------------------------------------------------------------------
2411                   Prescribed_Tracers_Values = SIMP( statut='o',
2412 #            -----------------------------------------------------------------------
2413                    typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
2414                    fr = 'Valeurs du traceur imposees aux frontieres liquides entrantes. Lire la partie du manuel consacree aux conditions aux limites',
2415                    ang= 'Tracer values prescribed at the inflow boundaries. Read the manual section dealing with the boundary conditions',),
2416            ), # fin Boundary_Conditions
2417          ), # fin tracer
2418
2419 #        -----------------------------------------------------------------------
2420          Density_Effects = SIMP( statut='o',typ=bool,
2421 #        -----------------------------------------------------------------------
2422          defaut=False ,
2423          fr = 'prise en compte du gradient horizontal de densite le traceur est alors la salinite',
2424          ang= 'the horizontal gradient of density is taken into account the tracer is then the salinity',),
2425
2426 #        -----------------------------------------------------------------------
2427          b_Density_Effects = BLOC(condition = 'Density_Effects == True',
2428 #        -----------------------------------------------------------------------
2429 #        ------------------------------------
2430          Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
2431 #        ------------------------------------
2432          defaut='the first Tracer must be the salinity expressed in kg/m3'),
2433
2434 #        -----------------------------------------------------------------------
2435              Mean_Temperature = SIMP( statut='o',typ='R',
2436 #        -----------------------------------------------------------------------
2437              defaut=20.0 ,
2438              fr = 'temperature de reference pour le calcul des effets de densite ',
2439              ang= 'reference temperature for density effects',),
2440
2441            ), # fin b_Density_Effects
2442
2443     ), # fin b_Tracers_Settings
2444 #    -----------------------------------------------------------------------
2445      Solving = FACT( statut='o',
2446 #    -----------------------------------------------------------------------
2447 #       -----------------------------------------------------------------------
2448         Solver_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
2449 #       -----------------------------------------------------------------------
2450                defaut='1="conjugate gradient"' ,
2451                into =('1="conjugate gradient"', '2="conjugate residual"', '3="conjugate gradient on a normal equation"',
2452                       '4="minimum error"', '5="squared conjugate gradient"', '6="cgstab"', '7="gmres "', '8="direct"'),),
2453
2454 #       -----------------------------------------------------------------------
2455         Solver_Option_For_Tracers_Diffusion = SIMP( statut='o',typ='I',
2456 #       -----------------------------------------------------------------------
2457             defaut=2 ,
2458             fr = 'si le solveur est GMRES (7) le mot cle est la dimension de lespace de KRILOV (valeurs conseillees entre 2 et 15)',
2459             ang= 'WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE TRY VALUES BETWEEN 2 AND 15',),
2460
2461 #       -----------------------------------------------------------------------
2462         Preconditioning_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
2463 #       -----------------------------------------------------------------------
2464          defaut='2="diagonal"' ,
2465          into =('2="diagonal"', '0="no preconditioning "', '3="diagonal condensed"', '7="crout"', '14="diagonal and crout"', '21="diagonal condensed and crout"'),
2466     fr = 'Permet de preconditionner le systeme relatif au traceur. Memes definition et possibilites que pour le mot-cle PRECONDITIONNEMENT.',
2467     ang= 'Preconditioning of the linear system in the tracer diffusion step.  Same definition and possibilities as for the keyword PRECONDITIONING',
2468      ),
2469      ), # fin_Solving
2470
2471 #    -----------------------------------------------------------------------
2472      Accuracy = FACT( statut='o',
2473 #    -----------------------------------------------------------------------
2474 #       -----------------------------------------------------------------------
2475         Accuracy_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='R', defaut=1e-06 ,
2476 #       -----------------------------------------------------------------------
2477           fr = 'Fixe la precision demandee pour le calcul de la diffusion du traceur.',
2478           ang= 'Sets the required accuracy for computing the tracer diffusion.',),
2479
2480 #       -----------------------------------------------------------------------
2481         Maximum_Number_Of_Iterations_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='I', defaut=60 ,
2482 #       -----------------------------------------------------------------------
2483           fr = 'Limite le nombre diterations du solveur a chaque pas de temps pour le calcul de la diffusion du traceur.',
2484           ang= 'Limits the number of solver iterations at each time step for the diffusion of tracer.',),
2485
2486      ), # fin Accuracy
2487 #    -----------------------------------------------------------------------
2488      Sources = FACT( statut='o',
2489 #       -----------------------------------------------------------------------
2490 #       -----------------------------------------------------------------------
2491         Values_Of_The_Tracers_At_The_Sources = SIMP( statut='o',typ='R', max='**' ,
2492 #       -----------------------------------------------------------------------
2493 # en fait, c'est une liste de Tuple de 2. Il faudrait caluler la taille en fonction du Nombre de sources
2494             fr = 'Valeurs des traceurs a chacune des sources',
2495             ang= 'Values of the tracers at the sources',),
2496
2497      ), # fin Sources
2498 #    -----------------------------------------------------------------------
2499      Metereology = FACT( statut='o',
2500 #    -----------------------------------------------------------------------
2501 # en fait, c'est une liste de Tuple de 2. Il faudrait caluler la taille en fonction du Nombre de sources
2502 #       -----------------------------------------------------------------------
2503         Values_Of_Tracers_In_The_Rain = SIMP( 
2504 #       -----------------------------------------------------------------------
2505           statut='o',typ='R',defaut=0, max=2 , fr = '', ang= '',),
2506      ), # fin Metereology
2507
2508 #    -----------------------------------------------------------------------
2509      Numerical = FACT( statut='o',
2510 #    -----------------------------------------------------------------------
2511
2512 #       -----------------------------------------------------------------------
2513         Implicitation_Coefficient_Of_Tracers = SIMP( statut='o',typ='R',
2514 #       -----------------------------------------------------------------------
2515            defaut=0.6 ,
2516            fr = 'Fixe la valeur du coefficient dimplicitation du traceur',
2517            ang= 'Sets the value of the implicitation coefficient for the tracer',),
2518
2519 #       -----------------------------------------------------------------------
2520         Diffusion_Of_Tracers = SIMP( statut='o',typ=bool,
2521 #       -----------------------------------------------------------------------
2522            defaut=True ,
2523            fr = 'Prise en compte ou non de la diffusion du traceur passif.',
2524            ang= 'The diffusion of the passive tracer is taken into account or ignored.',), 
2525
2526 #      ------------------------------------
2527        b_Diffusion_Of_Tracers = BLOC(condition = 'Diffusion_Of_Tracers == True',
2528 #      ------------------------------------
2529 #           ------------------------------------
2530             Coefficient_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='R',
2531 #           ------------------------------------
2532             defaut=1e-06 ,
2533             fr = 'Fixe la valeur du coefficient de diffusion du traceur.  Linfluence de ce parametre sur levolution du traceur dans le temps est importante.',
2534             ang= 'Sets the value of the tracer diffusivity.',),
2535        
2536 #           ------------------------------------
2537             Option_For_The_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
2538 #           ------------------------------------
2539             defaut='Diffusion in the form div( nu grad(T))' ,
2540             into=[ 'Diffusion in the form div( nu grad(T))', 'Diffusion in the form 1/h div ( h nu grad(T))',],),
2541        ), # fin b_Diffusion_Of_Tracers
2542
2543 #      ------------------------------------
2544        Scheme_For_Advection_Of_Tracers = SIMP( statut='o',typ='TXM',
2545 #      ------------------------------------
2546            defaut="CHARACTERISTICS" ,
2547            into =("NO ADVECTION", "CHARACTERISTICS", "EXPLICIT + SUPG", "EXPLICIT LEO POSTMA", "EXPLICIT + MURD SCHEME N", 
2548                "EXPLICIT + MURD SCHEME PSI", "LEO POSTMA FOR TIDAL FLATS", "N-SCHEME FOR TIDAL FLATS"),
2549            fr = 'Choix du schema de convection pour les traceurs, remplace FORME DE LA CONVECTION',
2550            ang= 'Choice of the advection scheme for the tracers, replaces TYPE OF ADVECTION',),
2551
2552 #      ------------------------------------
2553        Scheme_Option_For_Advection_Of_Tracers = SIMP( statut='o',typ='TXM',
2554 #      ------------------------------------
2555            defaut='explicit' ,
2556            into=['explicit','predictor-corrector for tracers'],
2557            fr = 'Si present remplace et a priorite sur : OPTION POUR LES CARACTERISTIQUES OPTION DE SUPG Si schema PSI : 1=explicite 2=predicteur-correcteur pour les traceurs',
2558            ang= 'If present replaces and has priority over: OPTION FOR CHARACTERISTICS SUPG OPTION IF PSI SCHEME: 1=explicit 2=predictor-corrector for tracers',),
2559
2560 #      ------------------------------------
2561        Mass_Lumping_On_Tracers = SIMP ( statut='o',typ='R',
2562 #      ------------------------------------
2563            defaut=0,
2564            fr = 'Fixe le taux de mass-lumping effectue sur le traceur.',
2565            ang = 'Sets the amount of mass-lumping that is performed on the tracer.',),
2566
2567     ), # fin Numerical
2568 #    -----------------------------------------------------------------------
2569      Degradation = FACT( statut='o',
2570 #    -----------------------------------------------------------------------
2571
2572 # PN Attention, il faut recalculer Law_Of_Tracers_Degradation
2573 # et les coefficients.
2574 # Question : pourquoi 2 et pas selon le nb de tracer
2575 # Est ce que ce $ va sous tracer ?
2576 #        -----------------------------------------------------------------------
2577          Law1_Of_Tracers_Degradation = SIMP( statut='o',typ='TXM',
2578 #        -----------------------------------------------------------------------
2579             into=["NO DEGRADATION","F(T90) LAW"],
2580             defaut="NO DEGRADATION",
2581             fr = 'Prise en compte dune loi de decroissance des traceurs',
2582             ang= 'Take in account a law for tracers decrease',),
2583
2584 #        -----------------------------------------------------------------------
2585          b_Law1 = BLOC(condition = 'Law1_Of_Tracers_Degradation == "F(T90) LAW"',
2586 #        -----------------------------------------------------------------------
2587 #            -----------------------------------------------------------------------
2588              Coefficient_1_For_Law_Of_Tracers_Degradation = SIMP( statut='o',typ='R',
2589 #            -----------------------------------------------------------------------
2590                   fr = 'Coefficient 1 de la loi de decroissance des traceurs',
2591                    ang= 'Coefficient 1 of law for tracers decrease',),
2592          ),# fin b_Law1
2593
2594 #        -----------------------------------------------------------------------
2595          Law2_Of_Tracers_Degradation = SIMP( statut='o',typ='TXM',
2596 #        -----------------------------------------------------------------------
2597             into=["NO DEGRADATION","F(T90) LAW"],
2598             defaut="NO DEGRADATION",
2599             fr = 'Prise en compte dune loi de decroissance des traceurs',
2600             ang= 'Take in account a law for tracers decrease',),
2601
2602 #        -----------------------------------------------------------------------
2603          b_Law2 = BLOC(condition = 'Law2_Of_Tracers_Degradation == "F(T90) LAW"',
2604 #        -----------------------------------------------------------------------
2605 #            -----------------------------------------------------------------------
2606              Coefficient_2_For_Law_Of_Tracers_Degradation = SIMP( statut='o',typ='R',
2607 #            -----------------------------------------------------------------------
2608                   fr = 'Coefficient 2 de la loi de decroissance des traceurs',
2609                    ang= 'Coefficient 2 of law for tracers decrease',),
2610          ),# fin b_Law2
2611     ), # fin Degradation
2612
2613 )# fin TRACERS
2614
2615
2616 Ordre_Des_Commandes = ( 'INITIALIZATION', 'GENERAL_PARAMETERS','INITIAL_STATE', 'BOUNDARY_CONDITIONS', 'NUMERICAL_PARAMETERS',
2617  'PHYSICAL_PARAMETERS',   'CONSTRUCTION_WORKS_MODELLING', 'TRACERS', 'TIDE_PARAMETERS',
2618 'TURBULENCE', 'SECONDARY_CURRENTS_SETTINGS', 'PARTICULE', 'OUTPUT_FILES')