Salome HOME
ae3b6958e9226aca62c11942e9a1a9a3b98b5258
[tools/eficas.git] / Telemac / khione_cata_auto.py
1
2 # -*- coding: latin-1 -*-
3
4 from Accas import *
5 class DateJJMMAAAA:
6   def __init__(self):
7     self.ntuple=3
8
9   def __convert__(self,valeur):
10     if type(valeur) == types.StringType: return None
11     if len(valeur) != self.ntuple: return None
12     return valeur
13
14   def info(self):
15     return "Date : jj/mm/aaaa "
16
17   __repr__=info
18   __str__=info
19
20 class grma(GEOM):
21   pass
22
23 import types
24 class Tuple:
25   def __init__(self,ntuple):
26     self.ntuple=ntuple
27
28   def __convert__(self,valeur):
29     if type(valeur) == types.StringType:
30       return None
31     if len(valeur) != self.ntuple:
32       return None
33     return valeur
34
35   def info(self):
36     return "Tuple de %s elements" % self.ntuple
37
38
39
40 JdC = JDC_CATA (code = 'KHIONE',
41                 execmodul = None,
42                 )
43 # =======================================================================
44 # Catalog entry for the MAP function : c_pre_interfaceBody_mesh
45 # =======================================================================
46
47 VERSION_CATALOGUE="TRUNK_20201028"
48 # -----------------------------------------------------------------------
49 COMPUTATION_ENVIRONMENT = PROC(nom= "COMPUTATION_ENVIRONMENT",op = None,
50 # -----------------------------------------------------------------------
51 #   -----------------------------------
52     INPUT = FACT(statut='f',
53 #   -----------------------------------
54 #       -----------------------------------
55         DATA = FACT(statut='f',
56 #       -----------------------------------
57 #           -----------------------------------
58             STEERING_FILE = SIMP(statut ='f',
59 #           -----------------------------------
60                 typ = ('Fichier','All Files (*)'),
61                 defaut = '',
62                 fr = """Nom du fichier contenant les parametres du calcul
63 des glaces a realiser. Donne par l''utilisateur.""",
64                 ang = """Name of the file containing parameters of the ice
65 computation. Provided by the user.""",
66             ),
67 #           -----------------------------------
68             FORTRAN_FILE = SIMP(statut ='f',
69 #           -----------------------------------
70                 typ = ('Fichier','All Files (*)'), max='**',
71                 defaut = '',
72                 fr = """Nom du fichier ou repertoire FORTRAN a soumettre,
73 contenant les sous-programmes specifiques au modele.""",
74                 ang = """Name of the FORTRAN file or directory to be submitted,
75 including specific subroutines of the model.""",
76             ),
77 #           -----------------------------------
78             BOUNDARY_CONDITIONS_FILE = SIMP(statut ='f',
79 #           -----------------------------------
80                 typ = ('Fichier','All Files (*)'), max='**',
81                 fr = """Nom du fichier contenant les types de conditions aux limites.
82 Ce fichier est rempli de facon automatique par le mailleur au moyen de
83 couleurs affectees aux noeuds des frontieres du domaine de calcul.""",
84                 ang = """Name of the file containing the types of boundary conditions.
85 This file is filled automatically by the mesh generator through
86 colours that are assigned to the boundary nodes.""",
87             ),
88 #           -----------------------------------
89             GEOMETRY_FILE = SIMP(statut ='f',
90 #           -----------------------------------
91                 typ = ('Fichier','All Files (*)'), max='**',
92                 defaut = '',
93                 fr = """Fichier de geometrie, identique a celui de \telemac{2D}.""",
94                 ang = """Geometry file identical to the \telemac{2D} one.""",
95             ),
96 #           -----------------------------------
97             GEOMETRY_FILE_FORMAT = SIMP(statut ='f',
98 #           -----------------------------------
99                 typ = 'TXM',
100                 into = ['SERAFIN','SERAFIND','MED'],
101                 defaut = 'SERAFIN',
102                 fr = """Format du \telkey{FICHIER DE GEOMETRIE}.
103 Les valeurs possibles sont :
104 \begin{itemize}
105 \item SERAFIN : format standard simple precision pour \tel ;
106 \item SERAFIND: format standard double precision pour \tel ;
107 \item MED     : format MED double precision base sur HDF5.
108 \end{itemize}""",
109                 ang = """Format of the \telkey{GEOMETRY FILE}.
110 Possible choices are:
111 \begin{itemize}
112 \item SERAFIN : classical single precision format in \tel,
113 \item SERAFIND: classical double precision format in \tel,
114 \item MED     : MED double precision format based on HDF5.
115 \end{itemize}""",
116             ),
117 #           -----------------------------------
118             REFERENCE_FILE = SIMP(statut ='f',
119 #           -----------------------------------
120                 typ = ('Fichier','All Files (*)'), max='**',
121                 defaut = '',
122                 fr = """Nom du fichier de resultats de reference pour la validation.
123 Si \telkey{VALIDATION} = OUI, les resultats du calcul vont etre
124 compares aux valeurs contenues dans ce fichier.
125 La comparaison est effectuee par le sous-programme \telfile{VALIDA}.""",
126                 ang = """Name of the binary-coded result file used to validate the compuation.
127 If \telkey{VALIDATION} = YES, the results of the computation will be
128 compared with the values of this file.
129 The comparison is done by the subroutine \telfile{BIEF\_VALIDA}.""",
130             ),
131 #           -----------------------------------
132             REFERENCE_FILE_FORMAT = SIMP(statut ='o',
133 #           -----------------------------------
134                 typ = 'TXM',
135                 into = ['SERAFIN','SERAFIND','MED'],
136                 defaut = 'SERAFIN',
137                 fr = """Format du \telkey{FICHIER DE REFERENCE}.
138 Les valeurs possibles sont :
139 \begin{itemize}
140 \item SERAFIN : format standard simple precision pour \tel ;
141 \item SERAFIND: format standard double precision pour \tel ;
142 \item MED     : format MED double precision base sur HDF5.
143 \end{itemize}""",
144                 ang = """Format of the \telkey{REFERENCE FILE}.
145 Possible choices are:
146 \begin{itemize}
147 \item SERAFIN : classical single precision format in \tel,
148 \item SERAFIND: classical double precision format in \tel,
149 \item MED     : MED double precision format based on HDF5.
150 \end{itemize}""",
151             ),
152 #           -----------------------------------
153             VALIDATION = SIMP(statut ='f',
154 #           -----------------------------------
155                 typ = bool,
156                 defaut = False,
157                 fr = """Option utilisee principalement pour le dossier de validation.
158 Si ce mot-cle vaut OUI, les resultats du calcul vont alors etre
159 compares aux valeurs du \telkey{FICHIER DE REFERENCE}.
160 Le \telkey{FICHIER DE REFERENCE} est alors considere comme une
161 reference a laquelle on va comparer le calcul. La comparaison est
162 effectuee par le sous-programme \telfile{BIEF\_VALIDA}
163 qui peut etre une comparaison avec une solution exacte par exemple.""",
164                 ang = """This option is primarily used for the validation documents.
165 If this keyword is equal to YES, the \telkey{REFERENCE FILE}
166 is then considered as a reference which the computation is
167 going to be compared with.
168 The \telkey{REFERENCE FILE} is then considered as a reference
169 which the computation is going to be compared with.
170 The comparison is done by the subroutine \telfile{BIEF\_VALIDA},
171 which can be modified so as to include, for example,
172 a comparison with an exact solution.""",
173             ),
174         ),
175     ),
176 #   -----------------------------------
177     GLOBAL = FACT(statut='f',
178 #   -----------------------------------
179 #       -----------------------------------
180         TITLE = SIMP(statut ='f',
181 #       -----------------------------------
182             typ = 'TXM',
183             defaut = '',
184             fr = """Titre du cas etudie.""",
185             ang = """Title of the case being considered.""",
186         ),
187 #       -----------------------------------
188         PARALLEL_PROCESSORS = SIMP(statut ='f',
189 #       -----------------------------------
190             typ = 'I',
191             defaut = 0,
192             fr = """Nombre de processeurs pour la decomposition en parallele:
193 \begin{itemize}
194 \item 0 : 1 machine, compilation sans bibliotheque de parallelisme ;
195 \item 1 : 1 machine, compilation avec bibliotheque de parallelisme ;
196 \item 2 : 2 processeurs ou machines en parallele etc...
197 \end{itemize}""",
198             ang = """Number of processors for domain partition.
199 \begin{itemize}
200 \item 0: 1 machine, compiling without parallel library,
201 \item 1: 1 machine, compiling with a parallel library,
202 \item 2: 2 processors or machines in parallel etc...
203 \end{itemize}""",
204         ),
205     ),
206 #   -----------------------------------
207     OUTPUT = FACT(statut='f',
208 #   -----------------------------------
209 #       -----------------------------------
210         RESULTS = FACT(statut='f',
211 #       -----------------------------------
212 #           -----------------------------------
213             RESULTS_FILE = SIMP(statut ='f',
214 #           -----------------------------------
215                 typ = ('Fichier','All Files (*)','Sauvegarde'), max='**',
216                 fr = """Nom du fichier dans lequel seront ecrits les resultats du
217 calcul avec la periodicite donnee par le mot cle \telkey{PERIODE DE
218 SORTIES DES GLACES}.""",
219                 ang = """Name of the file into which the computation results
220 are written with a periodicity given by the keyword
221 \telkey{ICE PRINTOUT PERIOD}.""",
222             ),
223 #           -----------------------------------
224             RESULTS_FILE_FORMAT = SIMP(statut ='o',
225 #           -----------------------------------
226                 typ = 'TXM',
227                 into = ['SERAFIN','SERAFIND','MED'],
228                 defaut = 'SERAFIN',
229                 fr = """Format du \telkey{FICHIER DES RESULTATS}.
230 Les valeurs possibles sont :
231 \begin{itemize}
232 \item SERAFIN : format standard simple precision pour \tel ;
233 \item SERAFIND: format standard double precision pour \tel ;
234 \item MED     : format MED double precision base sur HDF5.
235 \end{itemize}""",
236                 ang = """Format of the \telkey{RESULTS FILE}. Possible choices are:
237 \begin{itemize}
238 \item SERAFIN : classical single precision format in \tel,
239 \item SERAFIND: classical double precision format in \tel,
240 \item MED     : MED double precision format based on HDF5.
241 \end{itemize}""",
242             ),
243 #           -----------------------------------
244             VARIABLES_FOR_GRAPHIC_PRINTOUTS = SIMP(statut ='f',
245 #           -----------------------------------
246                 typ = 'TXM', max='**',
247                 into = ["SOLRAD CLEAR SKY","SOLRAD CLOUDY","NET SOLRAD","EFFECTIVE SOLRAD","EVAPO HEAT FLUX","CONDUC HEAT FLUX","PRECIP HEAT FLUX","FRAZIL THETA0","FRAZIL THETA1","REENTRAINMENT","SETTLING VEL.",""SOLID ICE CONC.,"SOLID ICE THICK.","FRAZIL THICKNESS","UNDER ICE THICK.","EQUIV. SURFACE","TOP ICE COVER","BOTTOM ICE COVERM","TOTAL ICE THICK.M ","CARACTERISTIQUES","TOTAL NUMBER OF PARTICLES","TOTAL CONCENTRATION OF FRAZIL","CONCENTRATION OF FRAZIL BY CLASS","PARTICLE NUMBER OF FRAZIL BY CLASS","WATER TEMPERATURE","SALINITY OF WATER"],
248                 defaut = '',
249                 fr = """Noms des variables que l''utilisateur veut ecrire dans
250 le \telkey{FICHIER DES RESULTATS DES GLACES}.
251 Chaque variable est representee par une lettre.
252 Le choix des separateurs est libre.""",
253                 ang = """Names of variables that may be written in the
254 \telkey{ICE RESULTS FILE}.
255 Every variable is represented by a group of letters with
256 any separator between them , ; or blank.""",
257             ),
258 #           -----------------------------------
259             GRAPHIC_PRINTOUT_PERIOD = SIMP(statut ='f',
260 #           -----------------------------------
261                 typ = 'I',
262                 defaut = [1],
263                 fr = """Determine la periode en nombre de pas de temps d''impression des
264 \telkey{VARIABLES POUR LES SORTIES GRAPHIQUES}
265 (voir ce mot-cle) dans le \telkey{FICHIER DES RESULTATS}.""",
266                 ang = """Determines, in number of time steps, the printout period for the
267 \telkey{VARIABLES FOR GRAPHIC PRINTOUTS}
268 in the \telkey{RESULTS FILE}.""",
269             ),
270 #           -----------------------------------
271             CLOGGING_RESULTS_FILE = SIMP(statut ='f',
272 #           -----------------------------------
273                 typ = ('Fichier','All Files (*)','Sauvegarde'),
274                 defaut = '',
275                 fr = """Fichier ASCII de resultats de la glace accumulee aux prises d eau.""",
276                 ang = """ASCII file of results for clogged ice parameters at water intakes.""",
277             ),
278         ),
279 #       -----------------------------------
280         LISTING = FACT(statut='f',
281 #       -----------------------------------
282 #           -----------------------------------
283             VARIABLES_TO_BE_PRINTED = SIMP(statut ='o',
284 #           -----------------------------------
285                 typ = 'TXM', max='**',
286                 into = ['TO BE EDITED'],
287                 defaut = '',
288                 fr = """Mot cle necessaire mais qui ne fait rien.""",
289                 ang = """Necessary keyword but does not do much.""",
290             ),
291 #           -----------------------------------
292             LISTING_PRINTOUT_PERIOD = SIMP(statut ='f',
293 #           -----------------------------------
294                 typ = 'I',
295                 defaut = [1],
296                 fr = """Determine la periode en nombre de pas de temps d''impression des
297 \telkey{VARIABLES A IMPRIMER} (voir ce mot-cle).
298 Pour la mise au point, il faut
299 savoir que la sortie des resultats est effectuee systematiquement sur le
300 listing (CAS.SORTIE sur station de travail).""",
301                 ang = """Determines, in number of time steps, the printout period of the
302 \telkey{VARIABLES TO BE PRINTED}.
303 The results are systematically printed out on
304 the listing file (file CAS.SORTIE at the workstation).""",
305             ),
306 #           -----------------------------------
307             MASS_BALANCE = SIMP(statut ='f',
308 #           -----------------------------------
309                 typ = bool,
310                 defaut = False,
311                 fr = """Determine si l''on effectue ou non le bilan de masse
312 sur le domaine.""",
313                 ang = """Determines whether a check of the mass-balance over
314 the domain is done or not.""",
315             ),
316         ),
317     ),
318 #   -----------------------------------
319     RESTART = FACT(statut='f',
320 #   -----------------------------------
321 #       -----------------------------------
322         PREVIOUS_ICE_COVER_COMPUTATION_FILE = SIMP(statut ='o',
323 #       -----------------------------------
324             typ = ('Fichier','All Files (*)'),
325             defaut = '',
326             fr = """Nom d''un fichier contenant les resultats d''un calcul de couvert de
327 glace precedent realise sur le meme maillage et dont le dernier pas de
328 temps enregistre va fournir les conditions initiales pour une suite de
329 de calcul.""",
330             ang = """Name of a file containing the results of an earlier ice cover
331 computation which was made on the same mesh. The last recorded time
332 step will provide the initial conditions for the new computation.""",
333         ),
334 #       -----------------------------------
335         PREVIOUS_ICE_COVER_COMPUTATION_FILE_FORMAT = SIMP(statut ='o',
336 #       -----------------------------------
337             typ = 'TXM',
338             into = ['SERAFIN','SERAFIND'],
339             defaut = 'SERAFIN',
340             fr = """Format du fichier de resultats du calcul de couvert de glace precedent.
341 Les valeurs possibles sont :
342 \begin{itemize}
343 \item SERAFIN : format standard simple precision pour \tel ;
344 \item SERAFIND: format standard double precision pour \tel.
345 \end{itemize}""",
346             ang = """Previous ice cover computation results file format.
347 Possible values are:
348 \begin{itemize}
349 \item SERAFIN : classical single precision format in \tel,
350 \item SERAFIND: classical double precision format in \tel.
351 \end{itemize}""",
352         ),
353 #       -----------------------------------
354         PREVIOUS_ICE_BLOCKS_COMPUTATION_FILE = SIMP(statut ='o',
355 #       -----------------------------------
356             typ = ('Fichier','All Files (*)'),
357             defaut = '',
358             fr = """Nom d''un fichier contenant les resultats d''un calcul Lagrangien de
359 couvert de blocs de glace precedent et dont le dernier pas de
360 temps enregistre va fournir les conditions initiales pour une suite de
361 de calcul.""",
362             ang = """Name of a file containing the results of ice blocks from an earlier
363 Lagrangian computation. The last recorded time step will provide the
364 initial conditions for the new computation.""",
365         ),
366 #       -----------------------------------
367         PREVIOUS_ICE_BLOCKS_COMPUTATION_FILE_FORMAT = SIMP(statut ='o',
368 #       -----------------------------------
369             typ = 'TXM',
370             into = ['SERAFIN','SERAFIND'],
371             defaut = 'SERAFIN',
372             fr = """Format du fichier de resultats Lagrangien du calcul de couvert
373 de glace precedent.
374 Les valeurs possibles sont :
375 \begin{itemize}
376 \item UNKNOWN : format non-defini simple precision pour \tel ;
377 \item UNKNOWND: format non-defini double precision pour \tel.
378 \end{itemize}""",
379             ang = """Previous ice cover blocks computation results file format.
380 Possible values are:
381 \begin{itemize}
382 \item UNKNOWN : not-yet-defined single precision format in \tel,
383 \item UNKNOWND: not-yet-defined double precision format in \tel.
384 \end{itemize}""",
385         ),
386     ),
387 #   -----------------------------------
388     INITIALIZATION = FACT(statut='f',
389 #   -----------------------------------
390 #       -----------------------------------
391         INITIAL_CONDITIONS = SIMP(statut ='f',
392 #       -----------------------------------
393             typ = 'TXM',
394             into = ['"WITHOUT ICE COVER"','"CONSTANT ICE COVER"','"SPECIAL"','"PARTICULIERES"','"PARTICULAR"'],
395             defaut = 'WITHOUT ICE COVER',
396             fr = """Permet de definir les conditions initiales sur le couvert de glaces.
397 Les valeurs possibles sont :
398 \begin{itemize}
399 \item SANS COUVERT DE GLACE ;
400 \item COUVERT DE GLACE CONSTANT ;
401 \item PARTICULIERES. Les conditions initiales sur le couvert de glace
402 doivent etre precisees dans le sous-programme \telfile{CONDICE}.
403 \end{itemize}""",
404             ang = """Makes it possible to define the initial conditions with ice cover.
405 The possible values are as follows:
406 \begin{itemize}
407 \item WITHOUT ICE COVER,
408 \item CONSTANT ICE COVER,
409 \item SPECIAL. The initial conditions with the water depth should be
410 stated in the \telfile{CONDICE} subroutine.
411 \end{itemize}""",
412         ),
413     ),
414 )
415 # -----------------------------------------------------------------------
416 INTERNAL = PROC(nom= "INTERNAL",op = None,
417 # -----------------------------------------------------------------------
418 #   -----------------------------------
419     DICTIONARY = SIMP(statut ='f',
420 #   -----------------------------------
421         typ = ('Fichier','All Files (*)'),
422         defaut = 'KHIONE.DICO',
423         fr = """Dictionnaire des mots cles.""",
424         ang = """Key word dictionary.""",
425     ),
426 )
427 # -----------------------------------------------------------------------
428 ICE_COVER = PROC(nom= "ICE_COVER",op = None,
429 # -----------------------------------------------------------------------
430 #   -----------------------------------
431     CRITICAL_VELOCITY_FOR_STATIC_BORDER_ICE = SIMP(statut ='f',
432 #   -----------------------------------
433         typ = 'R',
434         defaut = [0.07],
435         fr = """""",
436         ang = """""",
437     ),
438 #   -----------------------------------
439     CRITICAL_VELOCITY_FOR_DYNAMIC_BORDER_ICE = SIMP(statut ='f',
440 #   -----------------------------------
441         typ = 'R',
442         defaut = [0.4],
443         fr = """""",
444         ang = """""",
445     ),
446 #   -----------------------------------
447     ICE_COVER_IMPACT_ON_HYDRODYNAMIC = SIMP(statut ='f',
448 #   -----------------------------------
449         typ = bool,
450         defaut = [False],
451         fr = """Prise en compte de l''impact du couvert de glace sur
452 l''hydrodynamique.""",
453         ang = """Computation of ice cover impact on the hydrodynamic.""",
454     ),
455 #   -----------------------------------
456     BORDER_ICE_COVER = SIMP(statut ='f',
457 #   -----------------------------------
458         typ = bool,
459         defaut = [False],
460         fr = """Prise en compte du calcul de glace de bord statique.""",
461         ang = """Computation of border ice cover.""",
462     ),
463 #   -----------------------------------
464     PHYSICAL_PARAMETERS = FACT(statut='f',
465 #   -----------------------------------
466 #       -----------------------------------
467         CRITICAL_WATER_TEMPERATURE_FOR_STATIC_BORDER_ICE = SIMP(statut ='f',
468 #       -----------------------------------
469             typ = 'R',
470             defaut = [-1.1],
471             fr = """""",
472             ang = """""",
473         ),
474 #       -----------------------------------
475         CONCENTRATION_OF_SURFACE_ICE_WHEN_FORMATION = SIMP(statut ='f',
476 #       -----------------------------------
477             typ = 'R',
478             defaut = [1.],
479             fr = """""",
480             ang = """""",
481         ),
482 #       -----------------------------------
483         FRICTION = FACT(statut='f',
484 #       -----------------------------------
485 #           -----------------------------------
486             LAW_OF_ICE_COVER_FRICTION = SIMP(statut ='o',
487 #           -----------------------------------
488                 typ = 'TXM',
489                 into = ["NO FRICTION","HAALAND","CHEZY","STRICKLER","MANNING","NIKURADSE"],
490                 defaut = "MANNING",
491                 fr = """Selectionne le type de formulation utilisee pour le calcul du
492 frottement sous le couvert de glace. Les lois possibles sont les
493 suivantes (cf. Note de principe) :
494 \begin{itemize}
495 \item 0 : pas de frottement sur le fond ;
496 \item 1 : formule de Haaland ;
497 \item 2 : formule de Chezy ;
498 \item 3 : formule de Strickler ;
499 \item 4 : formule de Manning ;
500 \item 5 : formule de Nikuradse.
501 \end{itemize}""",
502                 ang = """Selects the type of formulation used for the under ice cover friction.
503 The possible laws are as follows (refer to the Principle note):
504 \begin{itemize}
505 \item 0: no friction against bottom,
506 \item 1: Haaland formula,
507 \item 2: Chezy formula,
508 \item 3: Strickler formula,
509 \item 4: Manning formula,
510 \item 5: Nikuradse formula.
511 \end{itemize}""",
512             ),
513 #           -----------------------------------
514             FRICTION_COEFFICIENT = SIMP(statut ='o',
515 #           -----------------------------------
516                 typ = 'R',
517                 defaut = 0.04,
518                 fr = """Fixe la valeur du coefficient de frottement pour la
519 formulation choisie.
520 Attention : la signification de ce chiffre varie suivant la formule
521 choisie :
522 \begin{itemize}
523 \item 1 : coefficient lineaire ;
524 \item 2 : coefficient de Chezy ;
525 \item 3 : coefficient de Strickler ;
526 \item 4 : coefficient de Manning ;
527 \item 5 : hauteur de rugosite de Nikuradse.
528 \end{itemize}""",
529                 ang = """Sets the value of the friction coefficient for the selected
530 formulation. It is noteworthy that the meaning of this figure changes
531 according to the selected formula (Chezy, Strickler, etc.):
532 \begin{itemize}
533 \item 1: linear coefficient,
534 \item 2: Chezy coefficient,
535 \item 3: Strickler coefficient,
536 \item 4: Manning coefficient,
537 \item 5: Nikuradse grain size.
538 \end{itemize}""",
539             ),
540 #           -----------------------------------
541             MAXIMAL_FRICTION_COEFFICIENT = SIMP(statut ='o',
542 #           -----------------------------------
543                 typ = 'R',
544                 defaut = 0.04,
545                 fr = """Fixe le coefficient de frottement maximal lorsque la celui-ci depend
546 de l''epaisseur du couvert de glace.""",
547                 ang = """Sets the maximal friction coefficient when it depends linearly on the
548 ice cover thickness.""",
549             ),
550 #           -----------------------------------
551             LAW_FOR_FRICTION_COEFFICIENT = SIMP(statut ='o',
552 #           -----------------------------------
553                 typ = 'TXM',
554                 into = ["CONSTANT FRICTION COEF","LINEAR FRICTION COEF"],
555                 defaut = "CONSTANT FRICTION COEF",
556                 fr = """Selectionne entre un coefficient de friction constant ou variable
557 lineairement en fonction de l''epaisseur du couvert de glace.""",
558                 ang = """Selection between constant friction coefficient of linearly dependant
559 on ice cover thickness.""",
560             ),
561 #           -----------------------------------
562             EQUIVALENT_SURFACE_ICE_THICKNESS = SIMP(statut ='f',
563 #           -----------------------------------
564                 typ = 'R',
565                 defaut = [0.001],
566                 fr = """""",
567                 ang = """""",
568             ),
569         ),
570     ),
571 #   -----------------------------------
572     ICE_DYNAMICS = FACT(statut='f',
573 #   -----------------------------------
574 #       -----------------------------------
575         INCLUDE_ICE_DYNAMICS = SIMP(statut ='f',
576 #       -----------------------------------
577             typ = bool,
578             defaut = [False],
579             fr = """Active les processessus de dynamique des glaces de surfaces.""",
580             ang = """Switch the surface ice dynamics processes.""",
581         ),
582     ),
583 )
584 # -----------------------------------------------------------------------
585 GENERAL = PROC(nom= "GENERAL",op = None,
586 # -----------------------------------------------------------------------
587 #   -----------------------------------
588     SALINITY = SIMP(statut ='o',
589 #   -----------------------------------
590         typ = bool,
591         defaut = [False],
592         fr = """Ajoute la salinite et modifie le point de congelation de la glace en
593 fonction.""",
594         ang = """Add salinity tracer and modify freezing point of water accordingly.""",
595     ),
596 #   -----------------------------------
597     ENERGY_BALANCE_VERSION = SIMP(statut ='o',
598 #   -----------------------------------
599         typ = 'TXM',
600         into = ["SIMPLIFIED ENERGY BALANCE","FULL ENERGY BALANCE"],
601         defaut = ["SIMPLIFIED ENERGY BALANCE"],
602         fr = """Choix de la version du bilan energetique.""",
603         ang = """Choice of the energy balance version.""",
604     ),
605 #   -----------------------------------
606     PHYSICAL_PARAMETERS = FACT(statut='f',
607 #   -----------------------------------
608 #       -----------------------------------
609         AIR_DENSITY = SIMP(statut ='f',
610 #       -----------------------------------
611             typ = 'R',
612             defaut = 1.225,
613             fr = """Fixe la valeur de la masse volumique de l''air.""",
614             ang = """Sets the value of air density.""",
615         ),
616 #       -----------------------------------
617         ICE_DENSITY = SIMP(statut ='f',
618 #       -----------------------------------
619             typ = 'R',
620             defaut = 916.8,
621             fr = """Fixe la valeur de la masse volumique de la glace, en kg/m$^3$.""",
622             ang = """Sets the value of ice density, in kg/m$^3$.""",
623         ),
624 #       -----------------------------------
625         POROSITY_OF_SURFACE_ICE = SIMP(statut ='f',
626 #       -----------------------------------
627             typ = 'R',
628             defaut = [0.4],
629             fr = """""",
630             ang = """""",
631         ),
632 #       -----------------------------------
633         WATER_DENSITY = SIMP(statut ='f',
634 #       -----------------------------------
635             typ = 'R',
636             defaut = 999.972,
637             fr = """Fixe la valeur de la masse volumique de l''eau, en kg/m$^3$.""",
638             ang = """Sets the value of water density, in kg/m$^3$.""",
639         ),
640 #       -----------------------------------
641         KINEMATIC_WATER_VISCOSITY = SIMP(statut ='f',
642 #       -----------------------------------
643             typ = 'R',
644             defaut = 1.792E-6,
645             fr = """Definit la viscosite cinematique de l''eau. En m/s$^2$.""",
646             ang = """Specifies the water kinematic viscosity. In m/s$^2$.""",
647         ),
648     ),
649 )
650 # -----------------------------------------------------------------------
651 THERMAL_BUDGET = PROC(nom= "THERMAL_BUDGET",op = None,
652 # -----------------------------------------------------------------------
653 #   -----------------------------------
654     HEAT_BUDGET = SIMP(statut ='f',
655 #   -----------------------------------
656         typ = bool,
657         defaut = [True ],
658         fr = """Prise en compte des echanges thermiques dans le calcul.""",
659         ang = """Computation of the thermal exchanges in \khione.""",
660     ),
661 #   -----------------------------------
662     PHYSICAL_PARAMETERS = FACT(statut='f',
663 #   -----------------------------------
664 #       -----------------------------------
665         WATER_SPECIFIC_HEAT = SIMP(statut ='f',
666 #       -----------------------------------
667             typ = 'R',
668             defaut = [4180.],
669             fr = """Fixe la valeur de la chaleur specifique de l eau, en J/kg/K.""",
670             ang = """Sets the value of the specific heat of water, in J/kg/K.""",
671         ),
672 #       -----------------------------------
673         SPECIFIC_HEAT_OF_ICE = SIMP(statut ='f',
674 #       -----------------------------------
675             typ = 'R',
676             defaut = 2.04E+03,
677             fr = """Fixe la valeur de la chaleur specifique de la glace,
678 en J/kg/K.""",
679             ang = """Sets the value of the specific heat of ice,
680 in J/kg/K.""",
681         ),
682 #       -----------------------------------
683         LATENT_HEAT_OF_ICE = SIMP(statut ='f',
684 #       -----------------------------------
685             typ = 'R',
686             defaut = 3.34E5,
687             fr = """Fixe la valeur de la chaleur latente de la glace.""",
688             ang = """Sets the value of the latent heat of ice.""",
689         ),
690 #       -----------------------------------
691         WATER_AIR_HEAT_EXCHANGE_COEFFICIENT = SIMP(statut ='f',
692 #       -----------------------------------
693             typ = 'R',
694             defaut = [20.],
695             fr = """Fixe la valeur du coefficient d''echange thermique entre
696  l''eau et l''air.""",
697             ang = """Sets the heat exchange coefficient between water and air.""",
698         ),
699     ),
700 #   -----------------------------------
701     CONSTANT = FACT(statut='f',
702 #   -----------------------------------
703 #       -----------------------------------
704         WATER_AIR_HEAT_EXCHANGE_CONSTANT = SIMP(statut ='f',
705 #       -----------------------------------
706             typ = 'R',
707             defaut = [50.],
708             fr = """Fixe la valeur de la constante d''echange thermique entre
709  l''eau et l''air.""",
710             ang = """Sets the heat exchange constant between water and air.""",
711         ),
712 #       -----------------------------------
713         ICE_AIR_HEAT_EXCHANGE_COEFFICIENT = SIMP(statut ='f',
714 #       -----------------------------------
715             typ = 'R',
716             defaut = [12.189],
717             fr = """Fixe la valeur du coefficient d''echange thermique lineaire
718  entre la glace et l''air.""",
719             ang = """Sets the linearised heat flux exchange coefficient between
720  ice and air.""",
721         ),
722 #       -----------------------------------
723         ICE_AIR_HEAT_EXCHANGE_CONSTANT = SIMP(statut ='f',
724 #       -----------------------------------
725             typ = 'R',
726             defaut = [32.547],
727             fr = """Fixe la valeur de la constante d''echange thermique lineaire
728  entre la glace et l''air.""",
729             ang = """Sets the linearised heat flux exchange constant between ice and air.""",
730         ),
731 #       -----------------------------------
732         CONSTANT_FOR_HEAT_TRANSFER_BETWEEN_TURBULENT_WATER_AND_ICE = SIMP(statut ='f',
733 #       -----------------------------------
734             typ = 'R',
735             defaut = [1448.],
736             fr = """""",
737             ang = """""",
738         ),
739 #       -----------------------------------
740         CONSTANT_FOR_HEAT_TRANSFER_FOR_SUPERCOOLED_TURBULENT_FLOW = SIMP(statut ='f',
741 #       -----------------------------------
742             typ = 'R',
743             defaut = [1118.],
744             fr = """""",
745             ang = """""",
746         ),
747 #       -----------------------------------
748         BOLTZMANN_CONSTANT__WM_2K_4_ = SIMP(statut ='f',
749 #       -----------------------------------
750             typ = 'R',
751             defaut = [5.67D-8],
752             fr = """""",
753             ang = """""",
754         ),
755     ),
756 #   -----------------------------------
757     CALIBRATION_COEFFICIENT = FACT(statut='f',
758 #   -----------------------------------
759 #       -----------------------------------
760         COEFFICIENT_FOR_CALIBRATION_OF_BACK_RADIATION = SIMP(statut ='f',
761 #       -----------------------------------
762             typ = 'R',
763             defaut = [1.],
764             fr = """Fixe la valeur du coefficient de calage du flux radiatif
765 entre l''atmosphere et la surface libre.""",
766             ang = """Sets heat flux calibration coefficient for effective back
767 radiation on the free surface.""",
768         ),
769 #       -----------------------------------
770         COEFFICIENT_FOR_CALIBRATION_OF_EVAPORATIVE_HEAT_TRANSFERT = SIMP(statut ='f',
771 #       -----------------------------------
772             typ = 'R',
773             defaut = [1.],
774             fr = """Fixe la valeur du coefficient de calage du transfert de chaleur
775 evaporatif entre l''atmosphere et la surface libre.""",
776             ang = """Sets heat flux calibration coefficient for evaporative heat
777 transfert between air and atmosphere.""",
778         ),
779 #       -----------------------------------
780         COEFFICIENT_FOR_CALIBRATION_OF_CONDUCTIVE_HEAT_TRANSFERT = SIMP(statut ='f',
781 #       -----------------------------------
782             typ = 'R',
783             defaut = [1.],
784             fr = """Fixe la valeur du coefficient de calage du transfert de chaleur
785 conductif entre l''atmosphere et la surface libre.""",
786             ang = """Sets heat flux calibration coefficient for conductive heat
787 transfert between air and atmosphere.""",
788         ),
789 #       -----------------------------------
790         COEFFICIENT_FOR_CALIBRATION_OF_PRECIPITATION_HEAT_TRANSFERT = SIMP(statut ='f',
791 #       -----------------------------------
792             typ = 'R',
793             defaut = [1.],
794             fr = """Fixe la valeur du coefficient de calage du transfert de chaleur
795 entre l''atmosphere et la surface libre lie aux precipitations.""",
796             ang = """Sets heat flux calibration coefficient for precipitation heat
797 transfert between air and atmosphere.""",
798         ),
799     ),
800 #   -----------------------------------
801     THERMAL_CONDUCTIVITY = FACT(statut='f',
802 #   -----------------------------------
803 #       -----------------------------------
804         THERMAL_CONDUCTIVITY_BETWEEN_WATER_AND_FRAZIL = SIMP(statut ='f',
805 #       -----------------------------------
806             typ = 'R',
807             defaut = [0.56594],
808             fr = """""",
809             ang = """""",
810         ),
811 #       -----------------------------------
812         THERMAL_CONDUCTIVITY_OF_BLACK_ICE = SIMP(statut ='f',
813 #       -----------------------------------
814             typ = 'R',
815             defaut = [2.24],
816             fr = """""",
817             ang = """""",
818         ),
819 #       -----------------------------------
820         THERMAL_CONDUCTIVITY_OF_SNOW = SIMP(statut ='f',
821 #       -----------------------------------
822             typ = 'R',
823             defaut = [0.3],
824             fr = """""",
825             ang = """""",
826         ),
827     ),
828 #   -----------------------------------
829     TURBULENCE = FACT(statut='f',
830 #   -----------------------------------
831 #       -----------------------------------
832         NUSSELT_NUMBER_FOR_HEAT_TRANSFER_BETWEEN_LAMINAR_WATER_AND_ICE = SIMP(statut ='f',
833 #       -----------------------------------
834             typ = 'R',
835             defaut = [7.541],
836             fr = """""",
837             ang = """""",
838         ),
839     ),
840 #   -----------------------------------
841     METEOROLOGICAL_PROCESSES = FACT(statut='f',
842 #   -----------------------------------
843 #       -----------------------------------
844         ALBEDO_OF_ICE = SIMP(statut ='f',
845 #       -----------------------------------
846             typ = 'R',
847             defaut = [0.2],
848             fr = """Fixe la constante albedo des glaces.""",
849             ang = """Sets the albedo of ice.""",
850         ),
851 #       -----------------------------------
852         ATMOSPHERE_WATER_EXCHANGE_MODEL = SIMP(statut ='f',
853 #       -----------------------------------
854             typ = 'TXM',
855             into = ["LINEARISED FORMULA","MODEL WITH COMPLETE BALANCE"],
856             defaut = ["LINEARISED FORMULA"],
857             fr = """Choix du modele d echanges entre l eau et l atmosphere.
858 \begin{itemize}
859 \item 0: formule linearisee (default) ;
860 \item 1: modele a bilan complet.
861 \end{itemize}""",
862             ang = """Choice of the atmosphere-water exchange model.
863 \begin{itemize}
864 \item 0: linearised formula,
865 \item 1: model with complete balance.
866 \end{itemize}""",
867         ),
868 #       -----------------------------------
869         WIND = FACT(statut='f',
870 #       -----------------------------------
871 #           -----------------------------------
872             HEIGHT_OF_MEASURED_WIND = SIMP(statut ='f',
873 #           -----------------------------------
874                 typ = 'R',
875                 defaut = [4.5],
876                 fr = """Fixe la valeur de la hauteur a laquelle le vent est mesure, en metres.""",
877                 ang = """Sets the height at which the wind is measured, in meters.""",
878             ),
879         ),
880 #       -----------------------------------
881         SUN = FACT(statut='f',
882 #       -----------------------------------
883 #           -----------------------------------
884             RELATIVE_MODEL_ELEVATION_FROM_MEAN_SEA_LEVEL = SIMP(statut ='f',
885 #           -----------------------------------
886                 typ = 'R',
887                 defaut = [0.],
888                 fr = """Fixe l''elevation du modele relative au niveau moyen des oceans.""",
889                 ang = """Sets the relative model elevation from mean sea level.""",
890             ),
891 #           -----------------------------------
892             SUN_SET_ANGLE = SIMP(statut ='f',
893 #           -----------------------------------
894                 typ = 'R',
895                 defaut = [180.],
896                 fr = """Fixe l''angle du soleil couchant, 180 degres pour l''horizontale.""",
897                 ang = """Sets the sun set angle, 180 degrees for the horizontal.""",
898             ),
899 #           -----------------------------------
900             SUN_RISE_ANGLE = SIMP(statut ='f',
901 #           -----------------------------------
902                 typ = 'R',
903                 defaut = [0.],
904                 fr = """Fixe l''angle du soleil levant, 0 degres pour l''horizontale.""",
905                 ang = """Sets the sun rise angle, 0 degrees for the horizontal.""",
906             ),
907 #           -----------------------------------
908             SOLAR_CONSTANT = SIMP(statut ='f',
909 #           -----------------------------------
910                 typ = 'R',
911                 defaut = [1380.],
912                 fr = """Fixe la constante solaire.""",
913                 ang = """Sets the solar constant.
914 The solar constant, a measure of flux density, is the mean solar
915 electromagnetic radiation (the solar irradiance) per unit area that
916 would be incident on a plane perpendicular to the rays, at a distance
917 of one astronomical unit (AU) from the Sun (roughly the mean distance
918 from the Sun to the Earth). The solar constant includes all types of
919 solar radiation, not just the visible light. It is measured by
920 satellite as being 1.361 kilowatts per square meter (kW/m$^2$) at solar
921 minimum and approximately 0.1~\% greater (roughly 1.362 kW/m$^2$) at
922 solar maximum.
923 The solar "constant" is not a physical constant in scientific
924 sense; that is, it is not like the Planck constant or the speed of
925 light, which are absolutely constant in physics. The solar constant is
926 merely an average of the actually varying value. It has been shown to
927 vary in the past 400 years over a range of less than 0.2~\%.""",
928             ),
929         ),
930 #       -----------------------------------
931         AIR = FACT(statut='f',
932 #       -----------------------------------
933 #           -----------------------------------
934             DEWPOINT_TEMPERATURE = SIMP(statut ='f',
935 #           -----------------------------------
936                 typ = 'R',
937                 defaut = [0.],
938                 fr = """En $^{\circ}$C, temperature de rosee lorsque celle-ci n est pas deja
939 donnee dans un des fichiers meteo.""",
940                 ang = """In $^{\circ}$C, dewpoint temperature used when it is not already
941 provided within one of the meteo files.""",
942             ),
943 #           -----------------------------------
944             VISIBILITY = SIMP(statut ='f',
945 #           -----------------------------------
946                 typ = 'R',
947                 defaut = [1.E13],
948                 fr = """En metres, visibilite lorsque celle-ci n est pas deja donnee
949 dans un des fichiers meteo.""",
950                 ang = """In meters, visibility used when it is not already provided
951 within one of the meteo files.""",
952             ),
953         ),
954 #       -----------------------------------
955         POSITION = FACT(statut='f',
956 #       -----------------------------------
957 #           -----------------------------------
958             GLOBAL_LONGITUDE__IN_DEGREES = SIMP(statut ='f',
959 #           -----------------------------------
960                 typ = 'R',
961                 defaut = [75.],
962                 fr = """Fixe la longitude globale, en degres.""",
963                 ang = """Sets the global longitude, in degrees.""",
964             ),
965 #           -----------------------------------
966             LOCAL_LONGITUDE__IN__DEGREES = SIMP(statut ='f',
967 #           -----------------------------------
968                 typ = 'R',
969                 defaut = [75.43],
970                 fr = """Fixe la longitude locale, en degres.""",
971                 ang = """Sets the local longitude, in degrees.""",
972             ),
973 #           -----------------------------------
974             EAST_OR_WEST_LONGITUDE = SIMP(statut ='f',
975 #           -----------------------------------
976                 typ = 'R',
977                 defaut = [-1.],
978                 fr = """-1., pour les longitudes ouest; +1. pour les longitude est.""",
979                 ang = """-1., for west longitudes; +1. for east longitudes""",
980             ),
981         ),
982     ),
983 )
984 # -----------------------------------------------------------------------
985 FRAZIL = PROC(nom= "FRAZIL",op = None,
986 # -----------------------------------------------------------------------
987 #   -----------------------------------
988     SCHEME_OPTION_FOR_THERMAL_GROWTH = SIMP(statut ='o',
989 #   -----------------------------------
990         typ = 'TXM',
991         into = ["EXPLICIT TIME SCHEME","SEMI-IMPLICIT TIME SCHEME"],
992         defaut = ["EXPLICIT TIME SCHEME"],
993         fr = """Choix du schema d''integration en temps pour le terme source
994 de croissance thermique de frasil.""",
995         ang = """Time integration option for the frazil thermal growth source term.""",
996     ),
997 #   -----------------------------------
998     MODEL_FOR_THE_SECONDARY_NUCLEATION = SIMP(statut ='o',
999 #   -----------------------------------
1000         typ = 'TXM',
1001         into = ["NO MODEL","SVENSSON AND OMSTEDT 1994","WANG AND DOERING 2005"],
1002         defaut = ["SVENSSON AND OMSTEDT 1994"],
1003         fr = """Choix du modele de nucleation secondaire,
1004 valable uniquement pour le modele multi-classes.""",
1005         ang = """Choice of the model for secondary nucleation,
1006 only for multi-class model.""",
1007     ),
1008 #   -----------------------------------
1009     SECONDARY_NUCLEATION_NMAX_PARAMETER = SIMP(statut ='o',
1010 #   -----------------------------------
1011         typ = 'R',
1012         defaut = [1.E3],
1013         fr = """Choix du parametre NMAX pour la nucleation secondaire.""",
1014         ang = """Choice of secondary nucleation NMAX parameter.""",
1015     ),
1016 #   -----------------------------------
1017     MODEL_FOR_THE_FLOCCULATION_AND_BREAKUP = SIMP(statut ='o',
1018 #   -----------------------------------
1019         typ = 'TXM',
1020         into = ["NO MODEL","SVENSSON AND OMSTEDT 1994"],
1021         defaut = ["SVENSSON AND OMSTEDT 1994"],
1022         fr = """Choix du modele de floculation et rupture,
1023 valable uniquement pour le modele multi-classes.""",
1024         ang = """Choice of the model for flocculation and breakup,
1025 only for multi-class model.""",
1026     ),
1027 #   -----------------------------------
1028     FLOCCULATION_AFLOC_PARAMETER = SIMP(statut ='o',
1029 #   -----------------------------------
1030         typ = 'R',
1031         defaut = [1.E3],
1032         fr = """Choix du parametre \telfile{AFLOC} pour la floculation.""",
1033         ang = """Choice of flocculation \telfile{AFLOC} parameter.""",
1034     ),
1035 #   -----------------------------------
1036     MODEL_FOR_FRAZIL_SEEDING = SIMP(statut ='o',
1037 #   -----------------------------------
1038         typ = 'TXM',
1039         into = ["NO MODEL","MINIMUM CONC. THRESHOLD","CONSTANT SEEDING RATE","BOTH OPTIONS 1 AND 2"],
1040         defaut = ["MINIMUM CONC. THRESHOLD"],
1041         fr = """Choix du modele d''ensemencement du frasil.""",
1042         ang = """Choice of the model for frazil seeding.""",
1043     ),
1044 #   -----------------------------------
1045     PHYSICAL_PARAMETERS = FACT(statut='f',
1046 #   -----------------------------------
1047 #       -----------------------------------
1048         NUMBER_OF_CLASSES_FOR_SUSPENDED_FRAZIL_ICE = SIMP(statut ='f',
1049 #       -----------------------------------
1050             typ = 'I',
1051             defaut = [1],
1052             fr = """Fixe le nombre de classes de particules de frasil en suspension.""",
1053             ang = """Sets the number of classes of suspended frazil ice granules.""",
1054         ),
1055 #       -----------------------------------
1056         FRAZIL_CRYSTALS_RADIUS = SIMP(statut ='f',
1057 #       -----------------------------------
1058             typ = 'R', min=0, max='**',
1059             defaut = [1.E-4],
1060             fr = """""",
1061             ang = """""",
1062         ),
1063 #       -----------------------------------
1064         FRAZIL_CRYSTALS_DIAMETER_THICKNESS_RATIO = SIMP(statut ='f',
1065 #       -----------------------------------
1066             typ = 'R',
1067             defaut = [10.],
1068             fr = """""",
1069             ang = """""",
1070         ),
1071 #       -----------------------------------
1072         MODEL_FOR_THE_BUOYANCY_VELOCITY = SIMP(statut ='f',
1073 #       -----------------------------------
1074             typ = 'TXM',
1075             into = ["DALY (1984)","HAALAND","GOSIK & OSTERKAMP (1983)"],
1076             defaut = ["DALY (1984)"],
1077             fr = """""",
1078             ang = """""",
1079         ),
1080 #       -----------------------------------
1081         FREEZING_POINT_OF_WATER = SIMP(statut ='f',
1082 #       -----------------------------------
1083             typ = 'R',
1084             defaut = [0.],
1085             fr = """""",
1086             ang = """""",
1087         ),
1088 #       -----------------------------------
1089         CHANNEL_WIDTH_FOR_THE_COMPUTATION_OF_SURFACE_TEMPERATURE = SIMP(statut ='f',
1090 #       -----------------------------------
1091             typ = 'R',
1092             defaut = [15.],
1093             fr = """""",
1094             ang = """""",
1095         ),
1096 #       -----------------------------------
1097         FRAZIL_SEEDING_RATE = SIMP(statut ='f',
1098 #       -----------------------------------
1099             typ = 'R',
1100             defaut = [50.],
1101             fr = """Nombre de cristaux par unite de volume ajoutees par seconde.""",
1102             ang = """Number of crystals per unit volume added per second.""",
1103         ),
1104 #       -----------------------------------
1105         MINIMUM_NUMBER_OF_FRAZIL_CRYSTALS = SIMP(statut ='f',
1106 #       -----------------------------------
1107             typ = 'I',
1108             defaut = [1000],
1109             fr = """Nombre minimum de cristaux par unite de volume.""",
1110             ang = """Minimum number of crystals per unit volume.""",
1111         ),
1112     ),
1113 #   -----------------------------------
1114     CALIBRATION_COEFFICIENT = FACT(statut='f',
1115 #   -----------------------------------
1116 #       -----------------------------------
1117         SETTLING_COEFFICIENT_OF_FRAZIL_ON_BARS = SIMP(statut ='f',
1118 #       -----------------------------------
1119             typ = 'R',
1120             defaut = [1.],
1121             fr = """""",
1122             ang = """""",
1123         ),
1124     ),
1125 #   -----------------------------------
1126     TURBULENCE = FACT(statut='f',
1127 #   -----------------------------------
1128 #       -----------------------------------
1129         NUSSELT_NUMBER = SIMP(statut ='f',
1130 #       -----------------------------------
1131             typ = 'R',
1132             defaut = [4.],
1133             fr = """""",
1134             ang = """""",
1135         ),
1136 #       -----------------------------------
1137         MODEL_FOR_THE_NUSSELT_NUMBER = SIMP(statut ='f',
1138 #       -----------------------------------
1139             typ = 'I',
1140             defaut = [1],
1141             fr = """""",
1142             ang = """""",
1143         ),
1144 #       -----------------------------------
1145         MODEL_FOR_ESTIMATION_OF_TURBULENCE_PARAMETERS = SIMP(statut ='o',
1146 #       -----------------------------------
1147             typ = 'I',
1148             defaut = [0],
1149             fr = """\begin{itemize}
1150 \item 0: valeurs constantes fixees par defaut dans le code ;
1151 \item 1: valeurs estimees a partir d''une integration verticale
1152 du modele de longueur de melange ;
1153 \item 2: valeurs calculees et donnees par \telemac{2D}.
1154 \end{itemize}""",
1155             ang = """\begin{itemize}
1156 \item 0: constant values set in the code,
1157 \item 1: values estimated from vertical integration of a mixed length
1158 model,
1159 \item 2: values computed and given by \telemac{2D}.
1160 \end{itemize}""",
1161         ),
1162     ),
1163 #   -----------------------------------
1164     PRECIPITATION = FACT(statut='f',
1165 #   -----------------------------------
1166 #       -----------------------------------
1167         FRAZIL_PRECIPITATION = SIMP(statut ='o',
1168 #       -----------------------------------
1169             typ = bool,
1170             defaut = [False],
1171             fr = """Prise en compte de le precipitation du frasil.""",
1172             ang = """Computation of the frazil precipitation.""",
1173         ),
1174     ),
1175 )
1176 # -----------------------------------------------------------------------
1177 CLOGGING = PROC(nom= "CLOGGING",op = None,
1178 # -----------------------------------------------------------------------
1179 #   -----------------------------------
1180     CLOGGING_ON_BARS = SIMP(statut ='f',
1181 #   -----------------------------------
1182         typ = bool,
1183         defaut = [False],
1184         fr = """Prise en compte de l''impact du colmatage sur les grilles.""",
1185         ang = """Computation of clogging on grid.""",
1186     ),
1187 #   -----------------------------------
1188     PHYSICAL_PARAMETERS = FACT(statut='f',
1189 #   -----------------------------------
1190 #       -----------------------------------
1191         GLACE = FACT(statut='f',
1192 #       -----------------------------------
1193 #           -----------------------------------
1194             POROSITY_OF_ACCUMULATED_ICE = SIMP(statut ='f',
1195 #           -----------------------------------
1196                 typ = 'R',
1197                 defaut = [0.67],
1198                 fr = """""",
1199                 ang = """""",
1200             ),
1201 #           -----------------------------------
1202             ANGLE_OF_ACCUMULATED_ICE = SIMP(statut ='f',
1203 #           -----------------------------------
1204                 typ = 'R',
1205                 defaut = [35.],
1206                 fr = """""",
1207                 ang = """""",
1208             ),
1209         ),
1210 #       -----------------------------------
1211         GRID = FACT(statut='f',
1212 #       -----------------------------------
1213 #           -----------------------------------
1214             PHYSICAL_CHARACTERISTICS_OF_THE_INTAKE_RACK = SIMP(statut ='o',
1215 #           -----------------------------------
1216                 typ = 'R', min= 4, max= 4,
1217                 defaut = [0.06,0.01,0.06,0.01],
1218                 fr = """Caracteristiques des barres verticales et horizontales, dans l ordre :
1219 \begin{itemize}
1220 \item 1 : distance entre les centres des barres transversales ;
1221 \item 2 : diametre des barres transversales ;
1222 \item 3 : distance verticale entre les centres des barres verticales ;
1223 \item 4 : diametre des barres verticales.
1224 \end{itemize}
1225 Un diametre de zero pour un certain groupe de barres entrainera la
1226  supression des barres de ce groupe.""",
1227                 ang = """Characteristics of vertical and transverse bars, in order of
1228 appearance:
1229 \begin{itemize}
1230 \item 1: distance between the centre of the transverse bars,
1231 \item 2: diameter of the transverse bars,
1232 \item 3: distance between the centre of the vertical bars,
1233 \item 4: diameter of the vertical bars.
1234 \end{itemize}
1235 A zero diameter for one particular set of bars will result in not
1236  having those bars on the rack.""",
1237             ),
1238         ),
1239     ),
1240 #   -----------------------------------
1241     BOUNDARIES_CONDITION = FACT(statut='f',
1242 #   -----------------------------------
1243 #       -----------------------------------
1244         CLOGGED_BOUNDARY_NUMBERS = SIMP(statut ='f',
1245 #       -----------------------------------
1246             typ = 'I',
1247             defaut = 0,
1248             fr = """Liste des numeros de frontieres liquides ou des grilles de prises
1249 d''eau sont presentes.""",
1250             ang = """List of liquid boundary numbers where intake racks are present.""",
1251         ),
1252 #       -----------------------------------
1253         CLOGGED_SECTIONS = SIMP(statut ='f',
1254 #       -----------------------------------
1255             typ = 'I',
1256             defaut = 0,
1257             fr = """Liste des noeuds composant les sections sur lequelles
1258 on a une grille potentiellement colmatee, vont par paire :
1259 sec1\_depart;sec1\_arrivee;sec2\_depart;sec2\_arrivee;...""",
1260             ang = """List of nodes on which the sections represent
1261 a clogged rack, goes by couple:
1262 sec1\_start;sec1\_end;sec2\_start;sec2\_end;...""",
1263         ),
1264     ),
1265 )
1266 # -----------------------------------------------------------------------
1267 NUMERICAL_PARAMETERS = PROC(nom= "NUMERICAL_PARAMETERS",op = None,
1268 # -----------------------------------------------------------------------
1269 #   -----------------------------------
1270     AUTOMATIC_DIFFERENTIATION = FACT(statut='f',
1271 #   -----------------------------------
1272 #       -----------------------------------
1273         AD_NUMBER_OF_DERIVATIVES = SIMP(statut ='o',
1274 #       -----------------------------------
1275             typ = 'I',
1276             defaut = 0,
1277             fr = """Definit le nombre de derivees utilisateurs, dans le cadre
1278 de la differentiation algorithmique.""",
1279             ang = """Defines the number of user derivatives, within the framework
1280 of the algorithmic differentiation.""",
1281         ),
1282 #       -----------------------------------
1283         AD_NAMES_OF_DERIVATIVES = SIMP(statut ='o',
1284 #       -----------------------------------
1285             typ = 'TXM', min= 2, max= 2,
1286             fr = """Noms des derivees utilisateurs en 32 caracteres,
1287 16 pour le nom, 16 pour l''unite.""",
1288             ang = """Name of user derivatives in 32 characters,
1289 16 for the name, 16 for the unit.""",
1290         ),
1291     ),
1292 )
1293 TEXTE_NEW_JDC = "\
1294 "
1295 Ordre_Des_Commandes = (
1296 'COMPUTATION_ENVIRONMENT',
1297 'INTERNAL',
1298 'ICE_COVER',
1299 'GENERAL',
1300 'THERMAL_BUDGET',
1301 'FRAZIL',
1302 'CLOGGING',
1303 'NUMERICAL_PARAMETERS')
1304 try:
1305     import TelApy
1306     source = "eficas"
1307 except Exception as excpt:
1308     source = "Telemac"
1309 enum = source+'.khione_enum_auto'
1310 dicoCasEn = source+'.khione_dicoCasEnToCata'
1311 dicoCasFr = source+'.khione_dicoCasFrToCata'