Salome HOME
merge Nizhny
authorpascale.noyret <pascale.noyret@edf.fr>
Fri, 4 Dec 2015 10:49:36 +0000 (11:49 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Fri, 4 Dec 2015 10:49:36 +0000 (11:49 +0100)
28 files changed:
InterfaceQT4/composimp.py
InterfaceQT4/feuille.py
InterfaceQT4/gereIcones.py
InterfaceQT4/monBoutonValide.py
InterfaceQT4/monWidgetBloc.py
InterfaceQT4/monWidgetCommande.py
InterfaceQT4/monWidgetOptionnel.py
InterfaceQT4/monWidgetPlusieursBase.py
InterfaceQT4/monWidgetPlusieursInto.py
InterfaceQT4/monWidgetPlusieursIntoOrdonne.py
InterfaceQT4/monWidgetRadioButton.py
Noyau/strfunc.py
Tests/EficasEngineTest.py [new file with mode: 0644]
Tests/HTMLTestRunner.py
UiQT4/desWidgetPlusieursBase.ui
UiQT4/desWidgetPlusieursInto.ui
UiQT4/desWidgetPlusieursIntoOrdonne.ui
ts/Telemac_Cata.py [new file with mode: 0644]
ts/a.py [new file with mode: 0644]
ts/dicoparser.py [new file with mode: 0644]
ts/main.ts [new file with mode: 0644]
ts/prefs.py [new file with mode: 0644]
ts/telemac2dv6p3.dico [new file with mode: 0644]
ts/test_cata.py [new file with mode: 0644]
ts/test_dicoparser.py [new file with mode: 0644]
ts/test_translator.py [new file with mode: 0755]
ts/translator.py [new file with mode: 0755]
ts/tsparser.py [new file with mode: 0644]

index c8dac6cad6b871f18dbebd3a8a6613cc5dd4dbf3..607eec62352e98df15a3cf3d183330e40afbf075 100644 (file)
@@ -165,8 +165,12 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
           elif self.item.has_into():
             if self.item.is_list_SansOrdreNiDoublon():
                #print 6
-               from monWidgetPlusieursInto import MonWidgetPlusieursInto
-               widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+               if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : 
+                  from monWidgetPlusieursInto import MonWidgetPlusieursInto
+                  widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande)
+               else :
+                  from monWidgetPlusieursPlie import MonWidgetPlusieursPlie
+                  widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande)
             else :
                #print 7
 # tres vite pour le tag mais devra etre gere dans configuration
@@ -303,6 +307,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
       return valeurs
     
   def get_liste_possible(self,listeActuelle=[]):
+      print "llllllllllllllllllllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"
       if hasattr(self.definition.validators,'into'):
          valeurspossibles = self.definition.validators.into 
       else:
@@ -327,6 +332,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem):
           encorevalide=self.valide_liste_partielle(item,listeActuelle)
           if encorevalide :
               listevalideliste.append(item)
+      print listevalideliste
       return listevalideliste
 
   def get_liste_param_possible(self):
index 79bb9e72602b4cac895ebb3b4a4fbf3d19978240..9f7f4889af33e0429ce1764904b460e45c15df0d 100644 (file)
@@ -177,10 +177,28 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
          #self.editor.fenetreCentraleAffichee.rendVisibleNoeud(nodeAVoir)
          #nodeAVoir.fenetre.setFocus()
          # return  # on est bien postionne
-      if self.objSimp.isvalid() and hasattr(self, 'AAfficher'):
-         self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
+
+         if self.objSimp.isvalid() and hasattr(self, 'AAfficher'):
+            nodeAVoir=self.parentQt.node.chercheNoeudCorrespondant(self.objSimp)
+            try :
+               index=self.editor.fenetreCentraleAffichee.listeAffichageWidget.index(nodeAVoir.fenetre.AAfficher)
+               if (index==len(self.editor.fenetreCentraleAffichee.listeAffichageWidget)-1) :
+                  try :
+                     nodeAVoir.fenetre.setValeursApresBouton()
+                  except :
+                     pass
+               else :
+                  self.editor.fenetreCentraleAffichee.afficheSuivant(nodeAVoir.fenetre.AAfficher)
+            except :
+               pass
       else :
-         if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
+         if self.objSimp.isvalid() and hasattr(self, 'AAfficher'):
+            try :
+               self.setValeursApresBouton()
+            except :
+               self.editor.fenetreCentraleAffichee.afficheSuivant(self.AAfficher)
+         else :
+            if hasattr(self, 'AAfficher'): self.AAfficher.setFocus(7)
 
    def reaffichePourDeplier(self):
       self.parentQt.reaffiche()
index 2ef27183bd3e072b818095f4fce215028230d102..9073e563be6224bbd5f7a32aa625372f0e9c2c41 100644 (file)
@@ -168,6 +168,7 @@ class FacultatifOuOptionnel:
          icon=QIcon(self.repIcon+"/ast-green-ball.png")
       else :
          icon=QIcon(self.repIcon+"/ast-red-ball.png")
+      print "lllllllllllllllllllllllllllllllll"
       self.RBValide.setIcon(icon)
 
   # il faut chercher la bonne fenetre
index 43ea82288777fe358b1102006e3b646de64f9b29..7ae919ff1931b084782325ec133374f56d7a5f01 100644 (file)
@@ -43,6 +43,7 @@ class MonBoutonValide(QToolButton) :
           myToolTip=QString(tr("objet valide"))
           QToolTip.showText(event.globalPos(),myToolTip )
        else :
+          t=""
           texte=unicode(self.parent.node.item.object.report())
           deb=1
           for l in texte.split('\n')[2:-2]:
index 0ac25d25e07050cf8b2376d51b3c5368850c90cf..b4fa2344c44b13e557b4caba923ea6f0283b9197 100644 (file)
@@ -31,6 +31,6 @@ class MonWidgetBloc(Ui_WidgetBloc,Groupe):
   """
   def __init__(self,node,editor,parentQt,definition, obj, niveau,commande):
       Groupe.__init__(self,node,editor,parentQt, definition,obj,niveau,commande)
-      self.parentQt.commandesLayout.insertWidget(-1,self)
+      self.parentQt.commandesLayout.insertWidget(-1,self,1)
 
 
index d21333b0daad517cd00296dad19e3b61e1137c13..3e884c6f3179c9ca33e722d6c566420cadc34166 100644 (file)
@@ -85,6 +85,7 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
         self.monOptionnel=MonWidgetOptionnel(self)
         self.editor.widgetOptionnel=self.monOptionnel
         self.editor.splitter.addWidget(self.monOptionnel)
+        self.editor.restoreSplitterSizes()
       self.afficheOptionnel()
       #print "fin init de widget Commande"
       
@@ -131,6 +132,17 @@ class MonWidgetCommande(Ui_WidgetCommande,Groupe):
          w.focusNextChild()
          self.inhibe=0
          return True
+      if i==0 and next==True and not self.inhibe:
+         self.listeAffichageWidget[0].setFocus(7)
+         self.inhibe=1
+         w=self.focusWidget()
+         w.focusNextChild()
+         self.inhibe=0
+         return True
+      if i>0 and next==False and not self.inhibe:
+         if isinstance(self.listeAffichageWidget[i-1],QRadioButton):
+           self.listeAffichageWidget[i-1].setFocus(7)
+           return True
       return QWidget.focusNextPrevChild(self, next)
 
   def etablitOrdre(self):
index 2bcef99c21776c177bc1a80d82cc0b9cc4ecae6b..e3d8640834bb5636b79a1e79b4d5818bf3a18d9b 100644 (file)
@@ -121,3 +121,6 @@ class MonWidgetOptionnel (QWidget,Ui_WidgetOptionnel):
      #print "dans Optionnel __ ajout de ", maListe
      self.parentMC.ajoutMC(maListe)
 
+  def hide(self):
+     self.parentQt.editor.saveSplitterSizes()
+     QWidget.hide(self)
index 3e878f2dbfad224bcaab63173a0f430b757d8c40..6bd555b07bf7b7b270314152af95f37576226284 100644 (file)
@@ -39,7 +39,7 @@ hauteurMax=253
 class MonWidgetPlusieursBase (Ui_WidgetPlusieursBase,Feuille,GereListe,GerePlie):
 
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
-        #print "MonWidgetPlusieursBase", nom
+        print "MonWidgetPlusieursBase", nom
         self.nomLine="lineEditVal"
         self.inInit=True
         self.indexDernierLabel=0
index 26a5b480807b529119fed4091de41142459f62fc..efac292baeda318525326ba2bd30d21795b52f94 100644 (file)
@@ -39,8 +39,11 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie):
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
         self.parentQt.commandesLayout.insertWidget(-1,self)
+        #if len(self.listeValeursCourantes) == len(self.monSimpDef.into) : self.CBCheck.setChecked(False)
+        #else : self.CBCheck.setChecked(True)
         self.connect(self.CBCheck, SIGNAL('stateChanged(int)'),self.change)
         self.gereIconePlier()
+        self.inhibe=False
         # try except si la liste des possibles est vide
         # prevoir qqchose
         try :
@@ -50,17 +53,22 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie):
 
 
   def change(self,int):
-       if self.CBCheck.isChecked() : 
+       if self.inhibe:return
+       self.inhibe=True
+       if not(self.CBCheck.isChecked()) : 
           for i in range(len(self.listeAAfficher)):
               nomCB="lineEditVal"+str(i+1)
               courant=getattr(self,nomCB)
               courant.setChecked(True)
+          self.CBCheck.setChecked(False)
        else :
           min,max = self.node.item.GetMinMax()
           for i in range(len(self.listeAAfficher)):
               nomCB="lineEditVal"+str(i+1)
               courant=getattr(self,nomCB)
               courant.setChecked(False)
+          self.CBCheck.setChecked(True)
+       self.inhibe=False
 
   def setValeurs(self):
        self.listeValeursCourantes=self.node.item.GetListeValeurs()
@@ -186,6 +194,10 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille,GerePlie):
          self.editor.affiche_infos(tr(""))
       if self.listeValeursCourantes== [] : self.listeValeursCourantes=None
       self.node.item.set_valeur(self.listeValeursCourantes)
+      if self.listeValeursCourantes != None and (len(self.listeValeursCourantes) != len(self.monSimpDef.into)) : 
+         self.inhibe=True
+         self.CBCheck.setChecked(True)
+         self.inhibe=False
       self.setValide()
       self.reaffiche()
 
index 1f1ce2cdd3045556fd23cd5bcb3a1b3aa0cb46f7..6d43dcec0d2aaa575432cdbb5fcdfb9acd8888f8 100644 (file)
@@ -43,6 +43,7 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere
         self.nomLine="LEResultat"
         self.listeLE=[]
         self.ouAjouter=0
+        self.NumLineEditEnCours=0
         Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         GereListe.__init__(self)
         self.initCommentaire()
@@ -67,6 +68,7 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere
 
        
   def prepareListeResultat(self):
+       print "prepareListeResultat"
        for i in self.listeLE: i.close()
        self.listeLE=[]
        self.vScrollBar = self.scrollArea.verticalScrollBar()
@@ -154,6 +156,8 @@ class MonWidgetPlusieursIntoOrdonne (Ui_WidgetPlusieursIntoOrdonne, Feuille,Gere
       nouveauLE.setFocus()
       setattr(self,nomLE,nouveauLE)
       
+  def ajoutLineEdit(self):
+      self.ajoutLEResultat (self.indexDernierLabel)
 
 
   def traiteClicSurLabelListe(self,valeur):
index fa5b7c6c4be53db3a0971577e48a592ee86d15ff..176dbee01d56ea4b2416f898bb9d0f019887ff31 100644 (file)
@@ -50,6 +50,7 @@ class MonWidgetRadioButtonCommun (Feuille):
       if not(type(valeur) in types.StringTypes) : valeur=str(valeur)
       try :
         self.dict_bouton[valeur].setChecked(True)
+        self.dict_bouton[valeur].setFocus(True)
       except :
         pass
 
@@ -88,6 +89,7 @@ class MonWidgetRadioButtonCommun (Feuille):
   def keyPressEvent(self, event):
     if event.key() == Qt.Key_Right : self.selectSuivant(); return
     if event.key() == Qt.Key_Left  : self.selectPrecedent(); return
+    if event.key() == Qt.Key_Return or event.key() == Qt.Key_Space : self.checkFocused(); return
     QWidget.keyPressEvent(self,event)
 
   def selectSuivant(self):
@@ -108,6 +110,17 @@ class MonWidgetRadioButtonCommun (Feuille):
       courant=getattr(self,nomBouton)
       courant.setFocus(True)
 
+  def checkFocused(self):
+      aLeFocus=self.focusWidget()
+      nom=aLeFocus.objectName()[12:]
+      i=nom.toInt()[0]
+      if i > 0 and i <= len(self.maListeDeValeur):
+        nomBouton="radioButton_"+str(i)
+        courant=getattr(self,nomBouton)
+        if not courant.isChecked():
+          courant.setChecked(True)
+          self.boutonclic()
+
 
 class MonWidgetRadioButton (Ui_WidgetRadioButton,MonWidgetRadioButtonCommun):
   def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
index 3e9089a054fb0c8a96135dd7521d82534c98cff7..9127b8c53c630446ab380a6fa50815e17bf9c889 100644 (file)
@@ -101,8 +101,10 @@ def ufmt(uformat, *args):
     formatted_string=""
     try:
         formatted_string = uformat % arguments
-    except UnicodeDecodeError, err:
-        print type(uformat), uformat
-        print type(arguments), arguments
-        raise
+    #except UnicodeDecodeError:
+    #    print type(uformat), uformat
+    #    print type(arguments), arguments
+        #raise
+    except :
+        pass
     return formatted_string
diff --git a/Tests/EficasEngineTest.py b/Tests/EficasEngineTest.py
new file mode 100644 (file)
index 0000000..1718c60
--- /dev/null
@@ -0,0 +1,249 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Copyright (C) 2007-2012   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Code_Aster
+"""
+# Modules Python
+# Modules Eficas
+
+import sys,os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..'))
+
+from PyQt4.QtCore import *
+from InterfaceQT4 import eficas_go
+
+import prefs
+import difflib
+
+from PyQt4.QtGui  import *
+from myMain import Ui_Eficas
+from viewManager import MyTabview
+from getVersion import getEficasVersion
+
+from Extensions.i18n import tr
+from Extensions.eficas_exception import EficasException
+
+from Editeur import session
+
+import unittest
+import HTMLTestRunner
+
+class EficasEngineTestSuite(unittest.TestSuite):
+    def __init__(self, testList):
+        unittest.TestSuite.__init__(self)
+        for test in testList:
+            self.addTest(test)
+
+class EficasEngineTestCase(unittest.TestCase):
+    def setUp(self):
+        from qtEficas import Appli
+        from Editeur import session
+        from Extensions import localisation
+        
+        options = session.parse(sys.argv)
+        if options.code!= None : code=options.code
+        if options.ssCode!= None : ssCode=options.ssCode
+        
+        self.code=prefs.code
+        self.Eficas=None
+        self.editor=None
+        
+        self.app = QApplication(sys.argv)
+        localisation.localise(self.app,'en')
+        self.Eficas=Appli(code=self.code,ssCode=None,multi=False,langue='en')
+
+    def tearDown(self):
+        del self.Eficas
+        self.Eficas = None
+        del self.app
+        self.app = None
+        self.editor = None
+
+    def close(self):
+        if ( self.editor != None ):
+            vm=self.Eficas.viewmanager
+            index=vm.myQtab.currentIndex()
+            idx=index
+            while idx < len(vm.dict_editors) -1 :
+                vm.dict_editors[idx]=vm.dict_editors[idx+1]
+                idx = idx + 1
+            del vm.dict_editors[len (vm.dict_editors) -1]
+            try :
+                del vm.doubles[vm.dict_editors[index]]
+            except :
+                pass
+            vm.myQtab.removeTab(index)
+            self.editor = None
+
+    def open_file(self, fileName):
+        if ( self.Eficas == None ):
+            return False
+
+        result=True
+        try:
+            self.Eficas.viewmanager.handleOpen(fileName)
+            index=self.Eficas.viewmanager.myQtab.currentIndex()
+            self.editor=self.Eficas.viewmanager.dict_editors[index]
+        except:
+            result=False
+            pass
+
+        return result
+
+    def save_file(self, file):
+        if ( self.editor == None ):
+            return False
+
+        try:
+            os.remove(file)
+        except:
+            pass
+
+        result=True
+        
+        try:
+            self.editor.saveFileAs(fileName=file)
+        except:
+            result=False
+            pass
+        return result
+
+    def search_object(self, name):
+        obj=None
+        if ( self.editor != None ):
+            obj=self.editor.jdc
+        return self.search_subobject(obj, name)
+    
+    def search_subobject(self, obj, name):
+        if ( obj==None ):
+            return None
+    
+        if ( hasattr( obj, 'get_sdname' ) and obj.get_sdname() == name ):
+            return obj
+
+        list=[]
+        if ( hasattr(obj, 'etapes') ):
+            list=obj.etapes
+        elif ( hasattr(obj, 'mc_liste') ):
+            list=obj.mc_liste
+
+        o=None
+        for i in list:
+            o=self.search_subobject(i, name)
+            if ( o != None ):
+                break
+            
+        return o
+
+    def search_param(self, obj, name):
+        if ( obj == None ):
+            return None
+
+        if ( hasattr( obj, 'nom' ) and obj.nom == name ):
+            return obj
+         
+        list=[]
+        if ( hasattr(obj, 'etapes') ):
+            list=obj.etapes
+        elif ( hasattr(obj, 'mc_liste') ):
+            list=obj.mc_liste
+
+        o=None
+        for i in list:
+            o=self.search_param(i, name)
+            if ( o != None ):
+                break
+
+        return o
+
+    def remove_object(self, obj):
+        if ( obj != None and hasattr( obj, 'parent' ) ):
+            p=obj.parent
+            if ( p != None ):
+                p.suppentite(obj)
+
+    def compare_files(self, orig, test):
+        origlines = open(orig, 'U').readlines()
+        testlines = open(test, 'U').readlines()
+
+        diff = difflib.unified_diff(origlines, testlines, orig, test)
+
+        result = 0;
+        for str in diff:
+            if ( len(str) == 0 ):
+                continue
+            elif ( str[0] != ' ' ):
+                result=1
+                print str
+
+        return result
+
+    def testCaseDataDir(self):
+        return '/dn24/EFICAS/stv'
+            
+    def testCaseInputDataFile(self):
+        return ""
+
+    def testCasePatternDataFile(self):
+        dataFile=self.testCaseInputDataFile()
+        split=os.path.splitext(dataFile)
+        return split[0] + '_ptrn' + split[1]
+
+    def testCaseTestDataFile(self):
+        dataFile=self.testCaseInputDataFile()
+        split=os.path.splitext(dataFile)
+        return split[0] + '_test' + split[1]
+
+    def testCaseInputDataPath(self):
+        return self.testCaseDataDir() + os.sep + self.testCaseInputDataFile()
+
+    def testCasePatternDataPath(self):
+        return self.testCaseDataDir() + os.sep + self.testCasePatternDataFile()
+
+    def testCaseTestDataPath(self):
+        return self.testCaseDataDir() + os.sep + self.testCaseTestDataFile()
+
+    def runTest(self):
+        inputFile=self.testCaseInputDataPath()
+
+        self.assert_(self.open_file(inputFile), 'Can not open file: ' + inputFile)
+
+        self.assert_(self.performTest(), 'Test not performed')
+
+        testFile=self.testCaseTestDataPath()
+
+        self.assert_(self.save_file(testFile), 'Can not save file: ' + testFile)
+
+        patternFile=self.testCasePatternDataPath()
+        cmp=self.compare_files(patternFile, testFile)
+
+        self.assert_(cmp == 0, "Pattern file and test file are differs")
+
+        self.close()
+
+    def performTest(self):
+        return True
+    
+def run_tests(reportFile, testSuit):
+    print reportFile
+    buf = file(reportFile, 'wb')
+    runner = HTMLTestRunner.HTMLTestRunner(stream=buf, title='Test report', description='Result of tests')
+    runner.run(testSuit)
index 8da592f229edcc1c40d02fbce9d6a6d1f525b753..0439bf488b144a5f5c670fbe057d9a36f44915e4 100644 (file)
@@ -13,16 +13,14 @@ The simplest way to use this is to invoke its main method. E.g.
         HTMLTestRunner.main()
 
 
-To customize the report, instantiates a HTMLTestRunner object and set
-the parameters. HTMLTestRunner is a counterpart to unittest's
-TextTestRunner. E.g.
+For more customization options, instantiates a HTMLTestRunner object.
+HTMLTestRunner is a counterpart to unittest's TextTestRunner. E.g.
 
     # output to a file
     fp = file('my_report.html', 'wb')
     runner = HTMLTestRunner.HTMLTestRunner(
                 stream=fp,
                 title='My unit test',
-                report_attrs=[('Version','1.2.3')],
                 description='This demonstrates the report output by HTMLTestRunner.'
                 )
 
@@ -35,7 +33,7 @@ TextTestRunner. E.g.
 
 
 ------------------------------------------------------------------------
-Copyright (c) 2004-2006, Wai Yip Tung
+Copyright (c) 2004-2007, Wai Yip Tung
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -67,17 +65,26 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 # URL: http://tungwaiyip.info/software/HTMLTestRunner.html
 
 __author__ = "Wai Yip Tung"
-__version__ = "0.8.0"
+__version__ = "0.8.2"
 
 
 """
-Changes in 0.8.0
+Change History
+
+Version 0.8.2
+* Show output inline instead of popup window (Viorel Lupu).
+
+Version in 0.8.1
+* Validated XHTML (Wolfgang Borgert).
+* Added description of test classes and test cases.
+
+Version in 0.8.0
 * Define Template_mixin class for customization.
 * Workaround a IE 6 bug that it does not treat <script> block as CDATA.
 
-Changes in 0.7.1
-* Back port to Python 2.3. Thank you Frank Horowitz.
-* Fix missing scroll bars in detail log. Thank you Podi.
+Version in 0.7.1
+* Back port to Python 2.3 (Frank Horowitz).
+* Fix missing scroll bars in detail log (Podi).
 """
 
 # TODO: color stderr
@@ -92,7 +99,7 @@ from xml.sax import saxutils
 
 
 # ------------------------------------------------------------------------
-# The redirectors below is used to capture output during testing. Output
+# The redirectors below are used to capture output during testing. Output
 # sent to sys.stdout and sys.stderr are automatically captured. However
 # in some cases sys.stdout is already cached before HTMLTestRunner is
 # invoked (e.g. calling logging.basicConfig). In order to capture those
@@ -176,16 +183,17 @@ class Template_mixin(object):
     # ------------------------------------------------------------------------
     # HTML Template
 
-    HTML_TMPL = r"""<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html>
+    HTML_TMPL = r"""<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
     <title>%(title)s</title>
-    <meta name="generator" content="%(generator)s">
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <meta name="generator" content="%(generator)s"/>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
     %(stylesheet)s
 </head>
 <body>
-<script>
+<script language="javascript" type="text/javascript"><!--
 output_list = Array();
 
 /* level - 0:Summary; 1:Failed; 2:All */
@@ -213,6 +221,7 @@ function showCase(level) {
     }
 }
 
+
 function showClassDetail(cid, count) {
     var id_list = Array(count);
     var toHide = 1;
@@ -232,6 +241,7 @@ function showClassDetail(cid, count) {
     for (var i = 0; i < count; i++) {
         tid = id_list[i];
         if (toHide) {
+            document.getElementById('div_'+tid).style.display = 'none'
             document.getElementById(tid).className = 'hiddenRow';
         }
         else {
@@ -240,6 +250,21 @@ function showClassDetail(cid, count) {
     }
 }
 
+
+function showTestDetail(div_id){
+    var details_div = document.getElementById(div_id)
+    var displayState = details_div.style.display
+    // alert(displayState)
+    if (displayState != 'block' ) {
+        displayState = 'block'
+        details_div.style.display = 'block'
+    }
+    else {
+        details_div.style.display = 'none'
+    }
+}
+
+
 function html_escape(s) {
     s = s.replace(/&/g,'&amp;');
     s = s.replace(/</g,'&lt;');
@@ -247,6 +272,7 @@ function html_escape(s) {
     return s;
 }
 
+/* obsoleted by detail in <div>
 function showOutput(id, name) {
     var w = window.open("", //url
                     name,
@@ -259,8 +285,8 @@ function showOutput(id, name) {
     d.write("</pre>\n");
     d.close();
 }
-
-</script>
+*/
+--></script>
 
 %(heading)s
 %(report)s
@@ -279,13 +305,15 @@ function showOutput(id, name) {
     #   <link rel="stylesheet" href="$url" type="text/css">
 
     STYLESHEET_TMPL = """
-<style>
+<style type="text/css" media="screen">
 body        { font-family: verdana, arial, helvetica, sans-serif; font-size: 80%; }
 table       { font-size: 100%; }
 pre         { }
 
 /* -- heading ---------------------------------------------------------------------- */
 h1 {
+       font-size: 16pt;
+       color: gray;
 }
 .heading {
     margin-top: 0ex;
@@ -302,6 +330,29 @@ h1 {
     margin-bottom: 6ex;
 }
 
+/* -- css div popup ------------------------------------------------------------------------ */
+a.popup_link {
+}
+
+a.popup_link:hover {
+    color: red;
+}
+
+.popup_window {
+    display: none;
+    position: relative;
+    left: 0px;
+    top: 0px;
+    /*border: solid #627173 1px; */
+    padding: 10px;
+    background-color: #E6E6D6;
+    font-family: "Lucida Console", "Courier New", Courier, monospace;
+    text-align: left;
+    font-size: 8pt;
+    width: 500px;
+}
+
+}
 /* -- report ------------------------------------------------------------------------ */
 #show_detail_line {
     margin-top: 3ex;
@@ -310,7 +361,7 @@ h1 {
 #result_table {
     width: 80%;
     border-collapse: collapse;
-    border: medium solid #777;
+    border: 1px solid #777;
 }
 #header_row {
     font-weight: bold;
@@ -318,7 +369,7 @@ h1 {
     background-color: #777;
 }
 #result_table td {
-    border: thin solid #777;
+    border: 1px solid #777;
     padding: 2px;
 }
 #total_row  { font-weight: bold; }
@@ -378,7 +429,7 @@ h1 {
 <col align='right' />
 </colgroup>
 <tr id='header_row'>
-    <td>Class/Test case</td>
+    <td>Test Group/Test case</td>
     <td>Count</td>
     <td>Pass</td>
     <td>Fail</td>
@@ -397,37 +448,53 @@ h1 {
 </table>
 """ # variables: (test_list, count, Pass, fail, error)
 
-
     REPORT_CLASS_TMPL = r"""
 <tr class='%(style)s'>
-    <td>%(name)s</td>
+    <td>%(desc)s</td>
     <td>%(count)s</td>
     <td>%(Pass)s</td>
     <td>%(fail)s</td>
     <td>%(error)s</td>
     <td><a href="javascript:showClassDetail('%(cid)s',%(count)s)">Detail</a></td>
 </tr>
-""" # variables: (style, name, count, Pass, fail, error, cid)
+""" # variables: (style, desc, count, Pass, fail, error, cid)
 
 
     REPORT_TEST_WITH_OUTPUT_TMPL = r"""
 <tr id='%(tid)s' class='%(Class)s'>
-    <td class='%(style)s'><div class='testcase'>%(name)s<div></td>
-    <td colspan='5' align='center'><a href="javascript:showOutput('%(tid)s', '%(name)s')">%(status)s</a></td>
+    <td class='%(style)s'><div class='testcase'>%(desc)s</div></td>
+    <td colspan='5' align='center'>
+
+    <!--css div popup start-->
+    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_%(tid)s')" >
+        %(status)s</a>
+
+    <div id='div_%(tid)s' class="popup_window">
+        <div style='text-align: right; color:red;cursor:pointer'>
+        <a onfocus='this.blur();' onclick="document.getElementById('div_%(tid)s').style.display = 'none' " >
+           [x]</a>
+        </div>
+        <pre>
+        %(script)s
+        </pre>
+    </div>
+    <!--css div popup end-->
+
+    </td>
 </tr>
-""" # variables: (tid, Class, style, name, status)
+""" # variables: (tid, Class, style, desc, status)
 
 
     REPORT_TEST_NO_OUTPUT_TMPL = r"""
 <tr id='%(tid)s' class='%(Class)s'>
-    <td class='%(style)s'><div class='testcase'>%(name)s<div></td>
+    <td class='%(style)s'><div class='testcase'>%(desc)s</div></td>
     <td colspan='5' align='center'>%(status)s</td>
 </tr>
-""" # variables: (tid, Class, style, name, status)
+""" # variables: (tid, Class, style, desc, status)
 
 
     REPORT_TEST_OUTPUT_TMPL = r"""
-<script>output_list['%(id)s'] = '%(output)s';</script>
+%(id)s: %(output)s
 """ # variables: (id, output)
 
 
@@ -441,21 +508,6 @@ h1 {
 # -------------------- The end of the Template class -------------------
 
 
-
-def jsEscapeString(s):
-    """ Escape s for use as a Javascript String """
-    return s.replace('\\','\\\\') \
-        .replace('\r', '\\r') \
-        .replace('\n', '\\n') \
-        .replace('"', '\\"') \
-        .replace("'", "\\'") \
-        .replace("&", '\\x26') \
-        .replace("<", '\\x3C') \
-        .replace(">", '\\x3E')
-    # Note: non-ascii unicode characters do not need to be encoded
-    # Note: previously we encode < as &lt;, etc. However IE6 fail to treat <script> block as CDATA.
-
-
 TestResult = unittest.TestResult
 
 class _TestResult(TestResult):
@@ -555,14 +607,7 @@ class _TestResult(TestResult):
 class HTMLTestRunner(Template_mixin):
     """
     """
-    def __init__(self, stream=sys.stdout, verbosity=1, title=None, report_attrs=[], description=None):
-        """
-        @param stream - output stream, default to stdout
-        @param verbosity
-        @param title - use in title and heading
-        @param report_attrs - list of (name, value) to show in report
-        @param description - test description
-        """
+    def __init__(self, stream=sys.stdout, verbosity=1, title=None, description=None):
         self.stream = stream
         self.verbosity = verbosity
         if title is None:
@@ -573,7 +618,6 @@ class HTMLTestRunner(Template_mixin):
             self.description = self.DEFAULT_DESCRIPTION
         else:
             self.description = description
-        self.report_attrs = report_attrs
 
         self.startTime = datetime.datetime.now()
 
@@ -605,26 +649,24 @@ class HTMLTestRunner(Template_mixin):
 
     def getReportAttributes(self, result):
         """
-        Add a few system generated attributes on top of users defined.
-        Override this to add other dynamic custom attributes.
-
-        @return list of (name, value).
+        Return report attributes as a list of (name, value).
+        Override this to add custom attributes.
         """
         startTime = str(self.startTime)[:19]
         duration = str(self.stopTime - self.startTime)
         status = []
-        if result.success_count: status.append('Success %s' % result.success_count)
+        if result.success_count: status.append('Pass %s'    % result.success_count)
         if result.failure_count: status.append('Failure %s' % result.failure_count)
         if result.error_count:   status.append('Error %s'   % result.error_count  )
         if status:
             status = ' '.join(status)
         else:
             status = 'none'
-
-        return [('Start Time', startTime),
-                 ('Duration', duration),
-                 ('Status', status),
-                ] + self.report_attrs
+        return [
+            ('Start Time', startTime),
+            ('Duration', duration),
+            ('Status', status),
+        ]
 
 
     def generateReport(self, test, result):
@@ -676,9 +718,17 @@ class HTMLTestRunner(Template_mixin):
                 elif n == 1: nf += 1
                 else: ne += 1
 
+            # format class description
+            if cls.__module__ == "__main__":
+                name = cls.__name__
+            else:
+                name = "%s.%s" % (cls.__module__, cls.__name__)
+            doc = cls.__doc__ and cls.__doc__.split("\n")[0] or ""
+            desc = doc and '%s: %s' % (name, doc) or name
+
             row = self.REPORT_CLASS_TMPL % dict(
                 style = ne > 0 and 'errorClass' or nf > 0 and 'failClass' or 'passClass',
-                name = "%s.%s" % (cls.__module__, cls.__name__),
+                desc = desc,
                 count = np+nf+ne,
                 Pass = np,
                 fail = nf,
@@ -705,17 +755,9 @@ class HTMLTestRunner(Template_mixin):
         has_output = bool(o or e)
         tid = (n == 0 and 'p' or 'f') + 't%s.%s' % (cid+1,tid+1)
         name = t.id().split('.')[-1]
+        doc = t.shortDescription() or ""
+        desc = doc and ('%s: %s' % (name, doc)) or name
         tmpl = has_output and self.REPORT_TEST_WITH_OUTPUT_TMPL or self.REPORT_TEST_NO_OUTPUT_TMPL
-        row = tmpl % dict(
-            tid = tid,
-            Class = (n == 0 and 'hiddenRow' or ''),
-            style = n == 2 and 'errorCase' or (n == 1 and 'failCase' or ''),
-            name = name,
-            status = self.STATUS[n],
-        )
-        rows.append(row)
-        if not has_output:
-            return
 
         # o and e should be byte string because they are collected from stdout and stderr?
         if isinstance(o,str):
@@ -731,12 +773,22 @@ class HTMLTestRunner(Template_mixin):
         else:
             ue = e
 
-        row = self.REPORT_TEST_OUTPUT_TMPL % dict(
+        script = self.REPORT_TEST_OUTPUT_TMPL % dict(
             id = tid,
-            output = jsEscapeString(uo+ue),
+            output = saxutils.escape(uo+ue),
         )
-        rows.append(row)
 
+        row = tmpl % dict(
+            tid = tid,
+            Class = (n == 0 and 'hiddenRow' or 'none'),
+            style = n == 2 and 'errorCase' or (n == 1 and 'failCase' or 'none'),
+            desc = desc,
+            script = script,
+            status = self.STATUS[n],
+        )
+        rows.append(row)
+        if not has_output:
+            return
 
     def _generate_ending(self):
         return self.ENDING_TMPL
index b3912156115423f0f99251e22d2426968a7302c4..799a330eb3a5aff249b60dcd67f75cd80d0aad78 100644 (file)
@@ -6,12 +6,12 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>983</width>
-    <height>242</height>
+    <width>764</width>
+    <height>202</height>
    </rect>
   </property>
   <property name="sizePolicy">
-   <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
     <horstretch>0</horstretch>
     <verstretch>0</verstretch>
    </sizepolicy>
@@ -39,13 +39,13 @@ border: 1px solid gray;
     <number>0</number>
    </property>
    <property name="topMargin">
-    <number>4</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="bottomMargin">
-    <number>5</number>
+    <number>0</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_3">
@@ -151,38 +151,95 @@ border: 1px solid gray;
     </layout>
    </item>
    <item>
-    <widget class="MonLabelClic" name="label">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>300</width>
-       <height>25</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>178</width>
-       <height>16777215</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="text">
-      <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-     </property>
-     <property name="scaledContents">
-      <bool>false</bool>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+    <layout class="QVBoxLayout" name="verticalLayout_4">
+     <property name="spacing">
+      <number>0</number>
      </property>
-    </widget>
+     <item>
+      <widget class="MonLabelClic" name="label">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>300</width>
+         <height>25</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>178</width>
+         <height>16777215</height>
+        </size>
+       </property>
+       <property name="frameShape">
+        <enum>QFrame::NoFrame</enum>
+       </property>
+       <property name="text">
+        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+       </property>
+       <property name="scaledContents">
+        <bool>false</bool>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QScrollArea" name="scrollArea_2">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="frameShape">
+        <enum>QFrame::NoFrame</enum>
+       </property>
+       <property name="frameShadow">
+        <enum>QFrame::Plain</enum>
+       </property>
+       <property name="widgetResizable">
+        <bool>true</bool>
+       </property>
+       <widget class="QWidget" name="scrollAreaWidgetContents_2">
+        <property name="geometry">
+         <rect>
+          <x>0</x>
+          <y>0</y>
+          <width>112</width>
+          <height>138</height>
+         </rect>
+        </property>
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <layout class="QHBoxLayout" name="horizontalLayout_7">
+         <item>
+          <widget class="QLabel" name="monCommentaireLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Fixed" vsizetype="MinimumExpanding">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="text">
+            <string>TextLabel</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </widget>
+     </item>
+    </layout>
    </item>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
@@ -232,8 +289,8 @@ border: 1px solid gray;
          <rect>
           <x>0</x>
           <y>0</y>
-          <width>546</width>
-          <height>194</height>
+          <width>398</width>
+          <height>161</height>
          </rect>
         </property>
         <property name="sizePolicy">
@@ -629,7 +686,7 @@ border: 1px solid gray;
    <item>
     <layout class="QVBoxLayout" name="verticalLayout">
      <property name="leftMargin">
-      <number>25</number>
+      <number>0</number>
      </property>
      <property name="rightMargin">
       <number>0</number>
@@ -752,6 +809,10 @@ border: 1px solid gray;
   </layout>
   <zorder></zorder>
   <zorder>label</zorder>
+  <zorder>monCommentaireLabel</zorder>
+  <zorder>scrollArea_2</zorder>
+  <zorder>layoutWidget</zorder>
+  <zorder>verticalSpacer_6</zorder>
  </widget>
  <customwidgets>
   <customwidget>
index 3f081093c441adf2e768bff5316fdc9f1a8c6dfe..569a8ecddec65302ff66105b5ccf675368e66274 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>826</width>
-    <height>120</height>
+    <width>938</width>
+    <height>236</height>
    </rect>
   </property>
   <property name="sizePolicy">
     <number>0</number>
    </property>
    <property name="topMargin">
-    <number>4</number>
+    <number>2</number>
    </property>
    <property name="rightMargin">
-    <number>0</number>
+    <number>2</number>
    </property>
    <property name="bottomMargin">
-    <number>1</number>
+    <number>0</number>
    </property>
    <item>
     <layout class="QVBoxLayout" name="verticalLayout_2">
     </layout>
    </item>
    <item>
-    <widget class="MonLabelClic" name="label">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>300</width>
-       <height>25</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>178</width>
-       <height>16777215</height>
-      </size>
-     </property>
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="text">
-      <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
-     </property>
-     <property name="scaledContents">
-      <bool>false</bool>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-     </property>
-    </widget>
+    <layout class="QVBoxLayout" name="verticalLayout_3">
+     <item>
+      <widget class="MonLabelClic" name="label">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>280</width>
+         <height>25</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>280</width>
+         <height>16777215</height>
+        </size>
+       </property>
+       <property name="frameShape">
+        <enum>QFrame::NoFrame</enum>
+       </property>
+       <property name="text">
+        <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+       </property>
+       <property name="scaledContents">
+        <bool>false</bool>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QScrollArea" name="scrollArea_2">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>300</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>300</width>
+         <height>16777215</height>
+        </size>
+       </property>
+       <property name="frameShape">
+        <enum>QFrame::NoFrame</enum>
+       </property>
+       <property name="lineWidth">
+        <number>0</number>
+       </property>
+       <property name="widgetResizable">
+        <bool>true</bool>
+       </property>
+       <widget class="QWidget" name="scrollAreaWidgetContents_2">
+        <property name="geometry">
+         <rect>
+          <x>0</x>
+          <y>0</y>
+          <width>300</width>
+          <height>166</height>
+         </rect>
+        </property>
+        <layout class="QGridLayout" name="gridLayout_2">
+         <property name="horizontalSpacing">
+          <number>0</number>
+         </property>
+         <property name="margin">
+          <number>0</number>
+         </property>
+         <item row="0" column="0">
+          <widget class="QLabel" name="monCommentaireLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="minimumSize">
+            <size>
+             <width>78</width>
+             <height>25</height>
+            </size>
+           </property>
+           <property name="maximumSize">
+            <size>
+             <width>278</width>
+             <height>16777215</height>
+            </size>
+           </property>
+           <property name="frameShape">
+            <enum>QFrame::NoFrame</enum>
+           </property>
+           <property name="text">
+            <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;aaa&lt;/p&gt;&lt;p&gt;dqsklmdqm&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           </property>
+           <property name="scaledContents">
+            <bool>false</bool>
+           </property>
+           <property name="alignment">
+            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </widget>
+      </widget>
+     </item>
+    </layout>
    </item>
    <item>
     <widget class="QScrollArea" name="scrollArea">
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>435</width>
-        <height>113</height>
+        <width>543</width>
+        <height>232</height>
        </rect>
       </property>
       <property name="sizePolicy">
   </layout>
   <zorder>horizontalSpacer</zorder>
   <zorder>scrollArea</zorder>
-  <zorder>label</zorder>
+  <zorder></zorder>
+  <zorder>layoutWidget</zorder>
  </widget>
  <customwidgets>
   <customwidget>
index eeecd92b10da304ea7449cfe3638fbb0ea201c94..b6871e96c45f3a337c01b8201ee2cf100ce7816e 100644 (file)
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>934</width>
-    <height>265</height>
+    <width>1013</width>
+    <height>243</height>
    </rect>
   </property>
   <property name="sizePolicy">
      </item>
      <item>
       <widget class="QScrollArea" name="scrollArea_2">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Fixed" vsizetype="Expanding">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
        <property name="frameShape">
         <enum>QFrame::NoFrame</enum>
        </property>
          <rect>
           <x>0</x>
           <y>0</y>
-          <width>300</width>
-          <height>194</height>
+          <width>112</width>
+          <height>172</height>
          </rect>
         </property>
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
         <layout class="QVBoxLayout" name="verticalLayout_6">
          <item>
           <widget class="QLabel" name="monCommentaireLabel">
            <property name="sizePolicy">
-            <sizepolicy hsizetype="Maximum" vsizetype="MinimumExpanding">
+            <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
              <horstretch>0</horstretch>
              <verstretch>0</verstretch>
             </sizepolicy>
        <rect>
         <x>0</x>
         <y>0</y>
-        <width>262</width>
-        <height>254</height>
+        <width>301</width>
+        <height>232</height>
        </rect>
       </property>
       <property name="sizePolicy">
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>257</width>
-            <height>209</height>
+            <width>297</width>
+            <height>187</height>
            </rect>
           </property>
           <property name="sizePolicy">
diff --git a/ts/Telemac_Cata.py b/ts/Telemac_Cata.py
new file mode 100644 (file)
index 0000000..b3f63f6
--- /dev/null
@@ -0,0 +1,2666 @@
+# coding: utf-8
+
+from Accas import *
+class DateJJMMAAAA:
+  def __init__(self):
+    self.ntuple=3
+
+  def __convert__(self,valeur):
+    if type(valeur) == types.StringType: return None
+    if len(valeur) != self.ntuple: return None
+    return valeur
+
+  def info(self):
+    return "Date : jj/mm/aaaa "
+
+  __repr__=info
+  __str__=info
+
+import types
+class Tuple:
+  def __init__(self,ntuple):
+    self.ntuple=ntuple
+
+  def __convert__(self,valeur):
+    if type(valeur) == types.StringType:
+      return None
+    if len(valeur) != self.ntuple:
+      return None
+    return valeur
+
+  def info(self):
+    return "Tuple de %s elements" % self.ntuple
+
+
+
+JdC = JDC_CATA (code = 'TELEMAC',
+                execmodul = None,
+                )
+# ======================================================================
+# Catalog entry for the MAP function : c_pre_interfaceBody_mesh
+# ======================================================================
+
+# -----------------------------------------------------------------------
+INITIALIZATION = PROC(nom = "INITIALIZATION",op = None,
+# -----------------------------------------------------------------------
+
+     fr = "Initialisation des fichiers d'entrée et de sortie",
+     ang = "Input and Output files initialization",
+     UIinfo = { "groupes" : ( "CACHE", )},
+     #UIinfo = { "groupes" : ( "iiii", )},
+
+#    ------------------------------------
+     Title = SIMP( statut = 'o',typ = 'TXM',
+#    ------------------------------------
+          fr = 'Titre du cas etudie. Ce titre figurera sur les dessins.',
+          ang = 'Title of the case being considered. This title shall be marked on the drawings.'),
+     #Working_Directory = SIMP( statut='o',typ='Repertoire',defaut='/tmp'),
+
+#    ------------------------------------
+     Input_Files = FACT(statut='o',
+#    ------------------------------------
+
+       #  Dictionary = SIMP( statut='o', typ = ('Fichier', 'Dico (*.dico);;All Files (*)',), 
+       #                    defaut='telemac2d.dico', 
+       #                    fr='Dictionnaire des mots cles.', ang='Key word dictionary.',),
+# PN : le mot cle doit etre dans le dictionnaire et repris du catalogue mais n 
+# est pas modifiable
+
+#        ------------------------------------
+         Geometry_File_Format = SIMP( statut = 'o', typ = 'TXM',
+#        ------------------------------------
+             into = ['Serafin', 'MED', 'SerafinD'], 
+             defaut = 'Serafin',
+             fr = 'Format du fichier de geometrie. Les valeurs possibles sont : \n \
+     - SERAFIN : format standard simple precision pour Telemac;   \n \
+     - SERAFIND: format standard double precision pour Telemac;   \n \
+     - MED     : format MED base sur HDF5',
+             ang = 'Results file format. Possible values are: \n\
+     - SERAFIN : classical single precision format in Telemac;\n\
+     - SERAFIND: classical double precision format in Telemac;\n\
+     - MED     : MED format based on HDF5',) ,
+
+      b_geofile_med = BLOC (condition = "Geometry_File_Format == 'MED'",
+#        ------------------------------------
+         Geometry_File = SIMP( statut = 'o', 
+#        ------------------------------------
+# PNPNPN Question Soizic --> pourqoi Geo Files
+# idem pour Bottom_Topography_File
+             typ = ('Fichier',' Med Files (*.med);;All Files (*)',),
+             fr = 'Nom du fichier contenant le maillage du calcul a realiser.',
+             ang = 'Name of the file containing the mesh. \n\
+This file may also contain the topography and the friction coefficients.'),
+
+      ),
+      b_geofile_serafin = BLOC (condition = "Geometry_File_Format in ( 'Serafin','SerafinD')",
+#        ------------------------------------
+         Geometry_File = SIMP( statut = 'o', 
+#        ------------------------------------
+# PNPNPN Question Soizic --> pourqoi Geo Files
+# idem pour Bottom_Topography_File
+             typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
+             fr = 'Nom du fichier contenant le maillage du calcul a realiser.',
+             ang = 'Name of the file containing the mesh. \n\
+This file may also contain the topography and the friction coefficients.'),
+
+      ),
+          #Steering_File = SIMP( statut = 'o', typ = ('Fichier', 'Steering Files (*.cas);;All Files (*)',),),
+
+
+#        ------------------------------------
+         Fortran_File = SIMP(statut = 'f',
+#        ------------------------------------
+             typ = ('Fichier', 'Fortran files (*.f);;All Files (*)'),
+             fr = 'Nom du fichier a soumettre',
+             ang = 'Name of FORTRAN file to be submitted',),
+
+#        ------------------------------------
+         Bottom_Topography_File = SIMP( statut = 'f', 
+#        ------------------------------------
+              typ = ('Fichier', 'Geo Files (*.geo);;All Files (*)',),
+              fr = "Nom du fichier eventuel contenant la bathymetrie associee au maillage. \
+Si ce mot-cle est utilise; c'est cette bathymetrie qui sera utilisee pour le calcul.",
+              ang = 'Name of the possible file containing the bathymetric data.\
+Where this keyword is used, these bathymetric data shall be used in the computation.',
+         ),
+
+#         ------------------------------------
+          Bottom_Smoothings = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
+#         ------------------------------------
+              fr = 'Nombre de lissages effectues sur la topographie.  chaque lissage, effectue a l aide dune matrice de masse, est conservatif.\n\
+Utilise lorsque les donnees de bathymetrie donnent des resultats trop irreguliers apres interpolation.',
+              ang = 'Number of smoothings on bottom topography.  each smoothing is mass conservative.  \n\
+to be used when interpolation of bathymetry on the mesh gives very rough results.',),
+
+#        ------------------------------------
+          Boundary_Conditions_File = SIMP( statut = 'o', 
+#        ------------------------------------
+              typ = ('Fichier', 'Boundary Condition (*.cli);;All Files (*)',),
+              fr = 'Nom du fichier contenant les types de conditions aux limites. Ce fichier est rempli de facon automatique\n\
+par le mailleur au moyen de couleurs affectees aux noeuds des frontieres du domaine de calcul.',
+              ang = 'Name of the file containing the types of boundary conditions. This file is filled automatically\n\
+by the mesh generator through through colours that are assigned to the boundary nodes.',),
+
+
+#        ------------------------------------
+         Validation = FACT( statut = 'f',
+#        ------------------------------------
+#PNPN--> creer le Mot_clef simple Validation si ce fact existe
+
+#            ------------------------------------
+             Reference_File_Format = SIMP( statut = 'o',
+#            ------------------------------------
+                 typ = 'TXM', 
+                 into = ['Serafin','MED','SerafinD'], 
+                 defaut = 'Serafin',
+                 fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
+     - SERAFIN : format standard simple precision pour Telemac;  \n\
+     - SERAFIND: format standard double precision pour Telemac; \n\
+     - MED     : format MED base sur HDF5' ,
+                 ang = 'Results file format. Possible values are:\n \
+     - SERAFIN : classical single precision format in Telemac;\n\
+     - SERAFIND: classical double precision format in Telemac; \n\
+     - MED     : MED format based on HDF5' ,),
+
+#            ------------------------------------
+             Reference_File = SIMP( statut = 'o', 
+#            ------------------------------------
+                 typ = ('Fichier', 'Reference File (*.ref);;All Files (*)',), 
+                 fr = 'Fichier de resultats de reference pour la validation. Les resultats a placer dans ce fichier seront a ecrire sur le canal 22.',
+                 ang = 'Binary-coded result file for validation. The results to be entered into this file shall be written on channel 22.',),
+
+         ),  # Fin de Validation
+
+#        ------------------------------------
+         Formatted_And_Binary_Files = FACT( statut = 'f',
+#        ------------------------------------
+
+#            ------------------------------------
+             Formatted_Data_File_1 = SIMP( statut = 'f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
+#            ------------------------------------
+                  fr = "Fichier de donnees formate mis a la disposition de l''utilisateur.  \n\
+Les donnees de ce fichier seront a lire sur le canal 26.",
+                  ang = 'Formatted data file made available to the user.\n\
+The data in this file shall be read on channel 26.',),
+
+#            ------------------------------------
+             Formatted_Data_File_2 = SIMP( statut = 'f', typ = ('Fichier', 'formated File (*.txt);;All Files (*)',),
+#            ------------------------------------
+                  fr = "Fichier de donnees formate mis a la disposition de l'utilisateur. \n\
+Les donnees de ce fichier seront a lire sur le canal 27.",
+                  ang = "Formatted data file made available to the user.\n\
+The data in this file shall be read on channel 27.",),
+
+#            ------------------------------------
+             Binary_Data_File_1 = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)',),
+#            ------------------------------------
+                  fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur. \n\
+Les donnees de ce fichier seront a lire sur le canal 24.',
+                  ang = 'Binary-coded data file made available to the user.\n\
+The data in this file shall be read on channel 24.',),
+
+#            ------------------------------------
+             Binary_Data_File_2 = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)',),
+#            ------------------------------------
+                  fr = 'Fichier de donnees code en binaire mis a la disposition de l utilisateur.\n\
+Les donnees de ce fichier seront a lire sur le canal 25.',
+                   ang = 'Binary-coded data file made available to the user. \n\
+The data in this file shall be read on channel 25.',),
+
+         ),  # fin Formatted_And_Binary_Files
+
+     ), # Fin de InputFile 
+
+    # -----------------------------------------------------------------------
+    Initial_State = FACT(statut='o',
+    # -----------------------------------------------------------------------
+
+#    ------------------------------------
+     Initial_Conditions = SIMP(statut = 'o',typ = 'TXM',
+#    ------------------------------------
+          into = ['Zero elevation','Constant elevation','Zero depth','Constant depth','Special','TPXO satellite altimetry'],
+          defaut = 'Zero elevation',
+          fr = "Permet de definir les conditions initiales sur les hauteurs d'eau. Les valeurs possibles sont :\n\
+    - 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\
+    - 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\
+   - HAUTEUR NULLE .Initialise les hauteurs d'eau a 0. \n\
+   - HAUTEUR CONSTANTE. Initialise les hauteurs d'eau a la valeur donnee par le mot-cle HAUTEUR INITIALE. \n\
+   - PARTICULIERES. Les conditions initiales sur la hauteur d'eau doivent etre precisees dans le sous-programme CONDIN. \n\
+   - ALTIMETRIE SATELLITE TPXO. Les conditions initiales sur la hauteur  d'eau et les vitesses sont etablies sur \n\
+      la base des donnees satellite TPXO dont les 8 premiers constistuents ont ete extraits et sauves dans le fichier\n\
+      BASE DE DONNEES DE MAREE." ,
+         ang = 'Makes it possible to define the initial conditions with the water depth. The possible values are : \n\
+   - 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\
+   - CONSTANT ELEVATION. Initializes the water elevation to the value given by the keyword \n\
+   - INITIAL ELEVATION. The initial water depths are computed as in the previous case. \n\
+   - ZERO DEPTH. Initializes the water depths to 0. \n\
+   - CONSTANT DEPTH. Initializes the water depths to the value givenby the key-word  INITIAL DEPTH. \n\
+   - SPECIAL. The initial conditions with the water depth should be stated in the CONDIN subroutine. \n\
+   - 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.', ),
+#    ------------------------------------
+     b_initial_elevation = BLOC (condition = "Initial_Conditions == 'Constant elevation'",
+#    ------------------------------------
+#        ------------------------------------
+         Initial_Elevation = SIMP(statut = 'o',typ = 'R',
+#        ------------------------------------
+             fr = 'Valeur utilisee avec l''option :  CONDITIONS INITIALES - COTE CONSTANTE',
+             ang = 'Value to be used with the option : INITIAL CONDITIONS  -CONSTANT ELEVATION' ),
+     ) , # fin b_initial_elevation
+
+#    ------------------------------------
+     b_initial_depth = BLOC (condition = "Initial_Conditions == 'Constant depth'",
+#    ------------------------------------
+#        ------------------------------------
+         Initial_Depth = SIMP(statut = 'o',typ = 'R',
+#        ------------------------------------
+             fr = 'Valeur utilisee avec l''option : CONDITIONS INITIALES :-HAUTEUR CONSTANTE-',
+             ang = 'Value to be used along with the option: INITIAL CONDITIONS -CONSTANT DEPTH-' ),
+         ),# fin b_initial_depth
+#    ------------------------------------
+     b_special = BLOC (condition = "Initial_Conditions == 'Special'",
+#    ------------------------------------
+#        ------------------------------------
+         Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
+#        ------------------------------------
+             defaut = "The initial conditions with the water depth should be stated in the CONDIN subroutine"),
+      ), # fin b_special
+
+#PNPN il faut changer la condition pour que cela soit dans maree. il faut une position = global_jdc et remonter # cela
+#    ------------------------------------
+     b_initial_TPXO = BLOC (condition = "Initial_Conditions == 'TPXO satellite altimetry'",
+#    ------------------------------------
+#        ------------------------------------
+         Ascii_Database_For_Tide = SIMP( statut = 'o', 
+#        ------------------------------------
+             typ = ('Fichier', 'All Files (*)',), 
+             fr = 'Base de donnees de constantes harmoniques tirees du fichier du modele de maree',
+             ang = 'Tide data base of harmonic constituents extracted from the tidal model file',),
+         ), # fin b_initial_TPXO
+
+    ), # fin Initial_State 
+
+
+#    ------------------------------------
+     Computation_Continued = SIMP( statut = 'o',typ = bool,defaut = False,position = "global_jdc"),
+#    ------------------------------------
+
+#    ------------------------------------
+     b_comput_con = BLOC(condition = 'Computation_Continued == True',
+     Computation_Continued_Settings = FACT(statut = 'o',
+
+#        ------------------------------------
+         Previous_Computation_File_Format = SIMP( statut = 'o',typ = 'TXM',
+#        ------------------------------------
+              into = ['Serafin','MED','SerafinD'],
+              defaut = 'Serafin',
+              fr = 'Format du fichier de resultats du calcul precedent. Les valeurs possibles sont : \n\
+         - SERAFIN : format standard simple precision pour Telemac;  \n\
+         - SERAFIND: format standard double precision pour Telemac; \n\
+         - MED     : format MED base sur HDF5',
+              ang = 'Previous computation results file format. Possible values are: \n\
+         - SERAFIN : classical single precision format in Telemac;  \n\
+         - SERAFIND: classical double precision format in Telemac; \n\
+         - MED     : MED format based on HDF5',),
+
+#        ------------------------------------
+         Previous_Computation_File = SIMP( statut = 'o', 
+#        ------------------------------------
+             typ = ('Fichier', 'Computation File (*.res);;All Files (*)',),
+             fr = "Nom d'un fichier contenant les resultats d'un calcul precedent realise sur le meme maillage \n\
+ et dont le dernier pas de temps enregistre va fournir les conditions initiales pour une suite de de calcul.",
+             ang = 'Name of a file containing the results of an earlier computation which was made on the same mesh.\n\
+ The last recorded time step will provid the initial conditions for the new computation.',
+                    ),
+#        ------------------------------------
+          Initial_Time_Set_To_Zero = SIMP(typ = bool, statut = 'o',
+#        ------------------------------------
+             fr = 'Remet le temps a zero en cas de suite de calcul',
+             ang = 'Initial time set to zero in case of restart',
+             defaut = "False"),
+
+#        ------------------------------------
+          Record_Number_For_Restart = SIMP(typ = 'I', statut = 'o', defaut = 0,
+#        ------------------------------------
+              fr = "numero de l'enregistrement de depart dans le fichier du calcul precedent. 0 signifie qu'on prend le dernier enregistrement", 
+              ang = "record number to start from in the previous computation file, 0 for last record" ),
+
+        ),
+     ),# fin BLOC b_comput_con 
+
+#    ------------------------------------
+     Coupling = FACT( statut = 'o',
+#    ------------------------------------
+# PNPNPN Attention 1 seul choix possible
+        fr = 'Liste des codes avec lesquels on couple Telemac-2D',
+        ang = 'List of codes to be coupled with Telemac-2D',
+
+#        ------------------------------------
+         Sisyphe = SIMP(statut = 'o',typ = bool,defaut = False ,
+#        ------------------------------------
+             fr = 'couplage interne avec Sisyphe', 
+             ang = 'internal coupling with Sisyphe'),
+
+#        ------------------------------------
+         Tomawac = SIMP(statut = 'o',typ = bool,defaut = False,
+#        ------------------------------------
+             fr = 'couplage interne avec Tomawac', 
+             ang = 'internal coupling with Tomawac'),
+
+#        ------------------------------------
+         Delwacq = SIMP(statut = 'o',typ = bool,defaut = False,
+#        ------------------------------------
+             fr = 'couplage interne avec Delwacq', 
+             ang = 'internal coupling with Delwacq'),
+# PNPNPN Attention : il faut des mots cles si Delwacq. a voir avec Soizic 
+# On verra apres
+
+        ), # fin Coupling
+
+#    ------------------------------------
+      Parallel_Computation = SIMP(statut = 'o',typ = 'TXM',
+#    ------------------------------------
+#    Ce mot clef n existe pas dans le dico
+         into = ['Sequentiel','Parallel'],
+         defaut = 'Sequentiel',),
+
+#    ------------------------------------
+      b_para = BLOC(condition = 'Parallel_Computation == "Parallel"',
+#    ------------------------------------
+#        ------------------------------------
+         Parallel_Processors = SIMP(statut = 'o',typ = 'I',
+#        ------------------------------------
+             val_min = 0,defaut = 1,
+             fr = 'NOMBRE DE PROCESSEURS EN CALCUL PARALLELE \n\
+0 : 1 machine, compilation sans bibliotheque de parallelisme \n\
+1 : 1 machine, compilation avec bibliotheque de parallelisme \n\
+2 : 2 processeurs ou machines en parallele etc... ',
+             ang = 'NUMBER OF PROCESSORS FOR PARALLEL PROCESSING \n\
+0 : 1 machine, compiling without parallel library \n\
+1 : 1 machine, compiling with a parallel library \n\
+2 : 2 processors or machines in parallel'),
+         ), # fin b_para
+
+)# INITIALISATION
+
+# -----------------------------------------------------------------------
+TIDE_PARAMETERS = PROC(nom = "TIDE_PARAMETERS",op = None,
+# -----------------------------------------------------------------------
+#    ------------------------------------
+     Inputs_Outputs_For_Tide = FACT( statut = 'o',
+#    ------------------------------------
+
+#       ------------------------------------
+        Harmonic_Constants_File = SIMP( statut = 'o',
+#       ------------------------------------
+            typ = ('Fichier', 'All Files (*)',),
+            fr = 'Constantes harmoniques extraites du fichier du modele de maree',
+            ang = 'Harmonic constants extracted from the tidalmodel file',),
+
+#       ------------------------------------
+        Tidal_Model_File = SIMP( statut = 'o',
+#       ------------------------------------
+            typ = ('Fichier', 'All Files (*)',),
+            fr = 'Fichier de geometrie du modele dont sont extraites les constantes harmoniques',
+            ang = 'Geometry file of the model from which harmonic constituents are extracted',),
+
+      ), # Fin Inputs_Outputs_For_Tide
+
+#    ------------------------------------
+     Location = FACT( statut = 'o',
+#    ------------------------------------
+#       ------------------------------------
+        Geographic_System = SIMP(statut = 'o',typ = 'TXM',
+#       ------------------------------------
+            into = ["Defined by user", "WGS84 longitude/latitude in real degrees", "WGS84 nothern UTM",\
+                      "WGS84 southern UTM","Lambert", "Mercator",],
+            defaut = "Defined by user",
+            fr = 'Systeme de coordonnees geographiques dans lequel est construit le modele numerique.',
+            ang = 'Geographic coordinates system in which the numerical model is built.',),
+
+#       ------------------------------------
+        b_geo_plan = BLOC(condition = "Geographic_System in ['WGS84 nothern UTM','WGS84 southern UTM','Lambert']",
+#       ------------------------------------
+
+#          ------------------------------------
+           Zone_Number_In_Geographic_System = SIMP(statut = 'f',typ = 'TXM',
+#          ------------------------------------
+               into = [ 'Lambert 1 north', 'Lambert 2 center', 'Lambert 3 south', \
+                        'Lambert 4 corsica', 'Lambert 2 extended', 'UTM zone,E.G.'],
+               fr = "Numero de zone (fuseau ou type de projection) lors de l'utilisation d'une projection plane.\n \
+Indiquer le systeme geographique dans lequel est construit le modele numerique avec le mot-cle SYSTEME GEOGRAPHIQUE",
+               ang = 'Number of zone when using a plane projection. \n\
+Indicate the geographic system in which the numerical model is built with the keyword GEOGRAPHIC SYSTEM'),
+           ), # Fin b_geo_plan
+       ), # Fin Location
+
+#    ------------------------------------
+     Physical_Parameters = FACT(statut = 'o',
+#    ------------------------------------
+
+#       ------------------------------------
+        Tide_Generating_Force = SIMP(statut = 'o',
+#       ------------------------------------
+           typ = bool, defaut = False),
+
+#       ------------------------------------
+        b_Tide = BLOC(condition = "Tide_Generating_Force == True",
+#       ------------------------------------
+#           ------------------------------------
+            Longitude_Of_Origin_Point = SIMP(typ = 'R',
+#           ------------------------------------
+                statut = 'o', defaut = 48.,
+                fr = 'Fixe la valeur de la longitude du point origine du modele, lors de l utilisation de la force generatrice de la maree.',
+                ang = 'Give the value of the longitude of the origin point of the model, when taking into account of the tide generator force.',),
+
+#           ------------------------------------
+            Tidal_Data_Base = SIMP(statut = 'o',typ = 'TXM',
+#           ------------------------------------
+# Soizic . Il faudrait une consigne ? avec des blocs ?
+# en suspens pour JMJ
+                 into = [ "JMJ", "TPXO", "Miscellaneous (LEGOS-NEA, FES20XX, PREVIMER...)",],
+                 fr = 'Pour JMJ, renseigner la localisation du fichier bdd_jmj et geofin dans les mots-cles BASE DE DONNEES DE MAREE \n\
+et FICHIER DU MODELE DE MAREE.  Pour TPXO, LEGOS-NEA, FES20XX et PREVIMER, l utilisateur doit telecharger les fichiers \n\
+de constantes harmoniques sur internet',
+                 ang = 'For JMJ, indicate the location of the files bdd_jmj and geofin with keywords TIDE DATA BASE and TIDAL MODEL FILE.\n\
+For TPXO, LEGOS-NEA, FES20XX and PREVIMER, the user has to download files of harmonic constituents on the internet',),
+
+#           ------------------------------------
+            b_tpxo = BLOC(condition = "Tidal_Data_Base == 'TPXO'",
+#           ------------------------------------
+
+#              ------------------------------------
+               Minor_Constituents_Inference = SIMP( statut = 'o',typ = bool,
+#              ------------------------------------
+                  defaut = False ,
+                  fr = 'Interpolation de composantes harmoniques mineures a partir de celles lues dans les \n\
+fichiers d entrees lies aux mots-cles BASE BINAIRE 1 DE DONNEES DE MAREE et BASE BINAIRE 2 DE DONNEES DE MAREE',
+                  ang = 'Inference of minor constituents from the one read in input files linked to \n\
+keywords BINARY DATABASE 1 FOR TIDE and BINARY DATABASE 2 FOR TIDE',),
+
+
+
+#           ------------------------------------
+              Binary_Database_1_For_Tide = SIMP( statut = 'o',
+#           ------------------------------------
+                typ = ('Fichier', '(All Files (*),)',),
+                fr = 'Base de donnees binaire 1 tiree du fichier du modele de maree.\n\
+Dans le cas des donnees satellitaires de TPXO, ce fichier correspond aux donnees de niveau d''eau, par exemple h_tpxo7.2',
+                ang = 'Binary database 1 extracted from the tidal model file.\n\
+In the case of the TPXO satellite altimetry model, this file should be for free surface level, for instance h_tpxo7.2',),
+
+#           ------------------------------------
+              Binary_Database_2_For_Tide = SIMP( statut = 'o',
+#           ------------------------------------
+                typ = ('Fichier', '(All Files (*),)',),
+                fr= 'Base de donnees binaire 2 tiree du fichier du modele de maree.\n\
+Dans le cas des donnees satellitaires de TPXO, ce fichier correspond aux donnees de vitesse de marrees, par exemple u_tpxo7.2',
+                ang = 'Binary database 2 extracted from the tidal model file.\n\
+In the case of the TPXO satellite altimetry model, this file should be for tidal velocities, for instance u_tpxo7.2' ),
+
+            ),#fin du bloc b_tpxo
+         ), # Fin du Bloc b_Tide
+
+#       ------------------------------------
+        Option_For_Tidal_Boundary_Conditions = SIMP( statut = 'o',
+#       ------------------------------------
+           typ = 'TXM', defaut = 'No tide',
+           into = ['No tide', 'Real tide (recommended methodology)', 'Astronomical tide', \
+                   'Mean spring tide', 'Mean tide', 'Mean neap tide', \
+                   'Astronomical neap tide', 'Real tide (methodology before 2010)'],),
+
+#       ------------------------------------
+        b_Option_B = BLOC(condition = 'Option_For_Tidal_Boundary_Conditions!= "No tide"',
+#       ------------------------------------
+#           ------------------------------------
+            Coefficient_To_Calibrate_Tidal_Range = SIMP(statut = 'o',
+#           ------------------------------------
+                typ = 'R', defaut = 1.,
+                fr = 'Coefficient pour ajuster le marnage de l''onde de maree aux frontieres maritimes',
+                ang = 'Coefficient to calibrate the tidal range of tidal wave at tidal open boundary conditions'),
+
+#           ------------------------------------
+            Coefficient_To_Calibrate_Tidal_Velocities = SIMP(statut = 'o',
+#           ------------------------------------
+                typ = 'R', defaut = 999999,
+                fr = 'Coefficient pour ajuster les composantes de vitesse de l''onde de maree aux frontieres maritimes.\n\
+La valeur par defaut 999999. signifie que c''est la racine carree du Coefficient_De_Calage_Du_Marnage qui est prise',
+                ang = 'Coefficient to calibrate the tidal velocities of tidal wave at tidal open boundary conditions.\n\
+                Default value 999999. means that the square root of Coefficient_To_Calibrate_Tidal_Range is taken'),
+
+#           ------------------------------------
+              Coefficient_To_Calibrate_Sea_Level = SIMP(statut = 'o',typ = 'R',
+#           ------------------------------------
+                 defaut = 0.,
+                 fr = 'Coefficient pour ajuster le niveau de mer',
+                 ang = 'Coefficient to calibrate the sea level'),
+          ), # fin b_Option_B
+
+       ), #fin Physical_Parameters
+) # Fin TIDE_PARAMETERS
+
+# -----------------------------------------------------------------------
+BOUNDARY_CONDITIONS = PROC(nom = "BOUNDARY_CONDITIONS",op = None,
+# -----------------------------------------------------------------------
+            fr = 'On donne un ensemble de conditions par frontiere liquide',
+            ang = 'One condition set per liquid boundary is given',
+            UIinfo = { "groupes" : ( "CACHE", )},
+            #UIinfo = { "groupes" : ( "iiii", )},
+ # Dans l ideal il faut aller regarder selon les groupes dans le fichier med
+ # en sortie il faut aller chercher le .cli qui va bien 
+            #Liquid_Boundaries = FACT(statut = 'f',max = '**',
+            #    Options = SIMP(statut = 'f',typ = 'I',into = ['classical boundary conditions','Thompson method based on characteristics'])
+            #    Prescribed_Flowrates = SIMP(statut = 'f',typ = 'R'),
+            #    Prescribed_Elevations = SIMP(statut = 'f',typ = 'R'),
+            #    Prescribed_Velocity = SIMP(statut = 'f',typ = 'R'),
+      # ),
+
+# Il va falloir une "traduction dans le langage du dico"
+# Il faut seulement l un des 3
+
+#    ------------------------------------
+     Liquid_Boundaries = FACT(statut = 'o',max = '**',
+#    ------------------------------------
+                
+#        ------------------------------------
+         Options = SIMP(statut = 'f',typ = 'I',
+#        ------------------------------------
+            into = ['Classical boundary conditions','Thompson method based on characteristics'],
+            fr = 'On donne 1 entier par frontiere liquide',
+            ang = 'One integer per liquid boundary is given',),
+
+#        ------------------------------------
+         Type_Condition = SIMP(statut = 'o',typ = 'TXM',
+# On ajoute le type pour rendre l 'ihm plus lisible
+# mais ce mot-cle n existe pas dans le dico
+#        ------------------------------------
+            into = ['Prescribed Flowrates', 'Prescribed Elevations', 'Prescribed Velocity'],),
+
+#        ------------------------------------
+         b_Flowrates = BLOC (condition = "Type_Condition == 'Prescribed Flowrates'",
+#        ------------------------------------
+#            ------------------------------------
+             Prescribed_Flowrates = SIMP(statut = 'o',
+#            ------------------------------------
+                  typ = 'R',
+                  fr = ' Valeurs des debits imposes aux frontieres liquides entrantes.\n\
+Lire la partie du mode d''emploi consacree aux conditions aux limites',
+                  ang = 'Values of prescribed flowrates at the inflow boundaries.\n\
+The section about boundary conditions is to be read in the manual'),
+             ), # fin b_Flowrates
+
+#        ------------------------------------
+         b_Elevations = BLOC (condition = "Type_Condition == 'Prescribed Elevations'",
+#        ------------------------------------
+#            ------------------------------------
+             Prescribed_Elevations = SIMP(statut = 'o',typ = 'R',
+#            ------------------------------------
+                 fr = 'Valeurs des cotes imposees aux frontieres liquides entrantes.\n\
+Lire la partie du mode d''emploi consacree aux conditions aux limites',
+                 ang = 'Values of prescribed elevations at the inflow boundaries.\n\
+The section about boundary conditions is to be read in the manual'),
+             ), # fin b_Elevations
+
+#        ------------------------------------
+         b_Velocity = BLOC (condition = "Type_Condition == 'Prescribed Velocity'",
+#        ------------------------------------
+#            ------------------------------------
+             Prescribed_Velocities = SIMP(statut = 'o',typ = 'R',
+#            ------------------------------------
+                 fr = 'Valeurs des vitesses imposees aux frontieres liquides entrantes.\n\
+Lire la partie du mode d''emploi consacree aux conditions aux limites',
+                 ang = 'Values of prescribed velocities at the liquid inflow boundaries.\n\
+Refer to the section dealing with the boundary conditions'),
+             ), # fin b_Velocity
+
+       ), # fin des Liquid_Boundaries
+
+#      ------------------------------------
+       Liquid_Boundaries_File = SIMP( statut = 'f', 
+#      ------------------------------------
+         typ = ('Fichier', 'All Files (*)',),
+         fr = 'Fichier de variations en temps des conditions aux limites.\n\
+Les donnees de ce fichier seront a lire sur le canal 12.',
+         ang = 'Variations in time of boundary conditions. Data of this file are read on channel 12.',
+      ),
+   
+
+#PNPN Attention dans le Dico STAGE-DISCHARGE CURVES
+#PNPN regarder le document de reference pour changer non programme
+#      ------------------------------------
+       Stage_Discharge_Curves = SIMP(statut = 'f',typ = 'TXM',
+#      ------------------------------------
+           into = ["No one","Z(Q)","Q(Z)"],
+           fr = 'Indique si une courbe de tarage doit etre utilisee pour une frontiere',
+           ang = 'Says if a discharge-elevation curve must be used for a given boundary',),
+
+#      ------------------------------------
+       b_discharge_curve = BLOC (condition = "Stage_Discharge_Curves != 'no'",
+#      ------------------------------------
+#            ------------------------------------
+             Stage_Discharge_Curves_File = SIMP( statut = 'f', 
+#            ------------------------------------
+                typ = ('Fichier', 'All Files (*)',),
+                fr = 'Nom du fichier contenant les courbes de tarage',
+                ang = 'Name of the file containing stage-discharge curves',),
+        ), # fin b_discharge_curve
+
+#      ------------------------------------
+       Elements_Masked_By_User = SIMP(statut = 'o',typ = bool,
+#      ------------------------------------
+           defaut = False,
+           fr = 'Si oui remplir le sous-programme maskob',
+           ang = 'if yes rewrite subroutine maskob',),
+
+#      ------------------------------------
+      maskob = BLOC (condition = 'Elements_Masked_By_User == True',
+#      ------------------------------------
+#            ------------------------------------
+              Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", 
+#            ------------------------------------
+              defaut = "Remplir le sous-programme maskob"),
+      ) # fin maskob
+
+) # fin Boundary_Conditions
+
+# -----------------------------------------------------------------------
+NUMERICAL_PARAMETERS = PROC(nom = "NUMERICAL_PARAMETERS",op = None,
+# -----------------------------------------------------------------------
+
+        UIinfo = { "groupes" : ( "CACHE", )},
+        #UIinfo = { "groupes" : ( "iiii", )},
+#     ------------------------------------
+      Equations = SIMP(statut = 'o',typ = 'TXM',
+#     ------------------------------------
+         into = ['Saint-Venant EF','Saint-Venant VF','Boussinesq'],
+         defaut = 'Saint-Venant EF',
+         fr = 'Choix des equations a resoudre',
+         ang = 'Choice of equations to solve',),
+
+#     ------------------------------------
+      Treatment_Of_The_Linear_System = SIMP(statut = 'o', typ = 'TXM',
+#     ------------------------------------
+         into = ["Coupled", "Wave equation"],
+         defaut = "Coupled",),
+
+#     ------------------------------------
+      Finite_Volume_Scheme = SIMP( statut = 'o',typ = 'TXM',
+#     ------------------------------------
+         into = [ "Roe scheme", "Kinetic order 1", "Kinetic order 2", "Zokagoa scheme order 1",\
+                "Tchamen scheme order 1", "HLLC scheme order 1", "WAF scheme order 2"],
+         defaut = "Kinetic order 1",),
+
+#      ------------------------------------
+       Solver_Definition = FACT(statut = 'o',
+#      ------------------------------------
+
+#         ------------------------------------
+          Solver = SIMP(statut = 'o',typ = 'TXM',
+#         ------------------------------------
+             into = ["Conjugate gradient", "Conjugate residual","Conjugate gradient on a normal equation",\
+                     "Minimum error", "CGSTAB", "GMRES", "Direct",],
+             fr = 'Permet de choisir le solveur utilise pour la resolution de l''etape de propagation. \n\
+Toutes les methodes proposees actuellement s''apparentent au Gradient Conjugue. Ce sont :\n\
+  1 : gradient conjugue 2 : residu conjugue       3 : gradient conjugue sur equation normale \n\
+  4 : erreur minimale   5 : gradient conjugue carre (non programme) 6 : gradient conjugue carre stabilise (cgstab)\n\
+  7 : gmres (voir aussi option du solveur) 8 : direct',
+             ang = 'Makes it possible to select the solver used for solving the propagation step.\n\
+All the currently available methods are variations of the Conjugate Gradient method. They are as follows: \n\
+1: conjugate gradient 2: conjugate residual 3: conjugate gradient on a normal equation\n\
+4: minimum error 5: conjugate gradient squared (not implemented) 6: conjugate gradient squared stabilised (cgstab) \n\
+7: gmres (see option for solver) 8: direct',),
+
+#         ------------------------------------
+          b_gmres = BLOC (condition = "Solver == 'GMRES'",
+#         ------------------------------------
+#            ------------------------------------
+             Solver_Option = SIMP(statut = 'o',typ = 'I', defaut = 2, val_min = 2,val_max = 15,
+#            ------------------------------------
+                 fr = 'la dimension de l''espace de KRILOV',
+                 ang = 'dimension of the KRYLOV space',),
+          ), # fin b_gmres
+
+#         ------------------------------------
+          Solver_Accuracy = SIMP(statut = 'o',typ = 'R', defaut = 1e-4,
+#         ------------------------------------
+             fr = 'Precision demandee pour la resolution de l''etape de propagation (cf.  Note de principe).',
+             ang = 'Required accuracy for solving the propagation step (refer to Principle note).',),
+
+#         ------------------------------------
+          Maximum_Number_Of_Iterations_For_Solver = SIMP(statut = 'o',typ = 'I', defaut = 100,
+#         ------------------------------------
+             fr = 'Les algorithmes utilises pour la resolution de l''etape de propagation etant iteratifs, \n\
+il est necessaire de limiter le nombre d''iterations autorisees.\n\
+Remarque : un maximum de 40 iterations par pas de temps semble raisonnable.',
+             ang = 'Since the algorithms used for solving the propagation step are iterative, \
+the allowed number of iterations should be limited.\n\
+Note: a maximum number of 40 iterations per time step seems to be reasonable.',),
+
+       ), # fin Solver
+
+#      ------------------------------------
+       Linearity = FACT(statut = 'f',
+#      ------------------------------------
+#          ------------------------------------
+           Continuity_Correction = SIMP(typ = bool, statut = 'o',
+#          ------------------------------------
+             defaut = False,
+             fr = 'Corrige les vitesses sur les points avec hauteur imposee ou l equation de continuite n a pas ete resolue',
+             ang = 'Correction of the velocities on points with a prescribed elevation, where the continuity equation has not been solved',),
+
+     ), # Fin Linearity
+
+#      ------------------------------------
+       Precondionning_setting = FACT(statut = 'f',
+#      ------------------------------------
+
+#         ------------------------------------
+          Preconditioning = SIMP(statut = 'o',typ = 'TXM',max="**",
+#         ------------------------------------
+# PNPN Soizic ? Est ce que c'est une liste
+# Comment fait-on  le into est faux : voir l aide
+# PN Je propose qu 'on puisse faire +sieurs choix et qu on recalcule en sortie
+# ou on propose des choix croisés parce que toutes les combinaisons ne sont pas possibles ?
+# 
+              into = [ "Diagonal", "No preconditioning", "Diagonal condensee", "Crout",  "Gauss-Seidel", ],
+              defaut=("Diagonal",), homo="SansOrdreNiDoublon",
+              fr='Permet de preconditionner le systeme de l etape de propagation afin d accelerer la convergence \n\
+lors de sa resolution. Certains preconditionnements sont cumulables : (les diagonaux 2 ou 3 avec les autres)\n\
+Pour cette raison on ne retient que les nombres premiers pour designer les preconditionnements. Si l on souhaite en cumuler\n\
+plusieurs on formera le produit des options correspondantes.',
+             ang='Choice of the preconditioning in the propagation step linear system that the convergence is speeded up\n\
+when it is being solved.Some operations (either 2 or 3 diagonal preconditioning) can be performed concurrently with the others.\n\
+Only prime numbers are therefore kept to denote the preconditioning operations. When several of them are to be performed concurrently,\n\
+the product of relevant options shall be made.',
+          ),
+#         ------------------------------------
+          C_U_Preconditioning = SIMP(typ = bool, statut = 'o', defaut=False,
+#         ------------------------------------
+             fr = 'Changement de variable de H en C dans le systeme lineaire final',
+             ang = 'Change of variable from H to C in the final linear system'
+           ),
+
+   ),# fin Preconditionnement
+     
+#    ------------------------------------
+     Matrix_Informations = FACT(statut = 'f',
+#    ------------------------------------
+#         ------------------------------------
+          Matrix_Vector_Product = SIMP(statut = 'o',typ = 'TXM',
+#         ------------------------------------
+             into = ["Classic", "Frontal"],
+             defaut='Classic',
+             fr = 'attention, si frontal, il faut une numerotation speciale des points',
+             ang = 'beware, with option 2, a special numbering of points is required',
+          ),
+#         ------------------------------------
+          Matrix_Storage = SIMP(statut = 'o',typ = 'TXM',
+#         ------------------------------------
+             into = ["Classical EBE","Edge-based storage",],
+             defaut='Edge-based storage',
+          ),
+     ),# fin Matrix_Informations
+
+
+#    ------------------------------------
+     Advection = FACT(statut = 'o',
+#    ------------------------------------
+#         ------------------------------------
+          Type_Of_Advection = FACT(statut = 'o',
+#         ------------------------------------
+
+# PNPNPN recalcul
+# Tres differents du dico  liste de 4
+# PNPN eclaircir les choix SVP
+# soizic. choix 3 et 4 et 13 et 14
+#            Attention recalcul de Type_Of_Advection
+#             ------------------------------------
+              Advection_Of_U_And_V = SIMP(statut = 'o',typ = bool, defaut = True,
+#             ------------------------------------
+                  fr = 'Prise en compte ou non de la convection de U et V.',
+                  ang = 'The advection of U and V is taken into account or ignored.'), 
+
+#                 ------------------------------------
+                  b_u_v = BLOC( condition = "Advection_Of_U_And_V == True",
+#                  ------------------------------------
+#                      ------------------------------------
+                       Type_Of_Advection_U_And_V = SIMP(statut = 'o',typ = 'TXM',position = "global",
+#                      ------------------------------------
+                           into = ["Characteristics", "SUPG", "Conservative N-scheme",  'Conservative N-scheme',\
+                           'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
+                           'Edge-based N-scheme'],
+                             defaut = "Characteristics", ),
+
+#                      ------------------------------------
+                       b_upwind = BLOC(condition = "Type_Of_Advection_U_And_V == 'SUPG'",
+#                      ------------------------------------
+#                        ------------------------------------
+                         Supg_Option_U_And_V = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#                        ------------------------------------
+                           into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+
+#                          ------------------------------------
+                           Upwind_Coefficients_Of_U_And_V = SIMP(statut = 'o',typ = 'R', defaut = 1.)
+#                          ------------------------------------
+                        ), # fin b_upwind
+                  ),# fin b_u_v
+
+#              ------------------------------------
+               Advection_Of_H = SIMP(statut = 'o',typ = bool, defaut = True,
+#              ------------------------------------
+                      fr = 'Prise en compte ou non de la convection de H.',
+                      ang = 'The advection of H is taken into account or ignored.'),
+
+#                  ------------------------------------
+                   b_h = BLOC( condition = "Advection_Of_H == True",
+#                  ------------------------------------
+#                      ------------------------------------
+                       Type_Of_Advection_H = SIMP(statut = 'o',typ = 'TXM',position = "global",
+#                      ------------------------------------
+                           into = ["characteristics", "SUPG", "conservative N-scheme",  'conservative N-scheme',\
+                              'conservative PSI-scheme', 'non conservative PSI scheme', 'implicit non conservative N scheme',\
+                              'edge-based N-scheme'],
+                           defaut = "conservative PSI-scheme",),
+#                      ------------------------------------
+                       b_upwind_H = BLOC(condition = "Type_Of_Advection_H == 'SUPG'",
+#                      ------------------------------------
+#                           ------------------------------------
+                            Supg_Option_H = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#                           ------------------------------------
+                            into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+
+#                          ------------------------------------
+                           Upwind_Coefficients_Of_H = SIMP(statut = 'o',typ = 'R', defaut = 1.)
+#                          ------------------------------------
+                       ), # fin b_upwind_H
+                    ),# fin b_h
+
+#              ------------------------------------
+               Advection_Of_K_And_Epsilon = SIMP(statut = 'o',typ = bool, defaut = True,
+#              ------------------------------------
+                    fr = 'Prise en compte ou non de la convection de Tracer.',
+                    ang = 'The advection of Tracer is taken into account or ignored.'),
+
+#                  ------------------------------------
+                   b_k = BLOC( condition = "Advection_Of_K_And_Epsilon == True",
+#                  ------------------------------------
+#                      ------------------------------------
+                       Type_Of_Advection_K_And_Epsilon = SIMP(statut = 'o',typ = 'TXM',position = "global",
+#                      ------------------------------------
+                           into = ["Characteristics", "SUPG", "Conservative N-scheme",  'Conservative N-scheme',\
+                              'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
+                              'Edge-based N-scheme'],
+                           defaut = "Characteristics",),
+#                       ------------------------------------
+                        b_upwind_k = BLOC(condition = "Type_Of_Advection_K_And_Epsilon == 'SUPG'",
+#                       ------------------------------------
+#                          ------------------------------------
+                           Supg_Option_Tracers = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#                          ------------------------------------
+                             into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+
+#                          ------------------------------------
+                           Upwind_Coefficients_Of_K_And_Epsilon = SIMP(statut = 'o',typ = 'R', defaut = 1.)
+#                          ------------------------------------
+                         ),# fin b_upwind_k
+                   ),# fin b_k
+
+#              ------------------------------------
+               Advection_Of_Tracers = SIMP(statut = 'o',typ = bool, defaut = True,
+#              ------------------------------------
+                    fr = 'Prise en compte ou non de la convection de Tracer.',
+                    ang = 'The advection of Tracer is taken into account or ignored.'),
+
+#                  ------------------------------------
+                   b_tracers = BLOC( condition = "Advection_Of_Tracers == True",
+#                  ------------------------------------
+#                      ------------------------------------
+                       Type_Of_Advection_Tracers = SIMP(statut = 'o',typ = 'TXM',position = "global",
+#                      ------------------------------------
+                           into = ["Characteristics", "SUPG", "Conservative N-scheme",  'Conservative N-scheme',\
+                                'Conservative PSI-scheme', 'Non conservative PSI scheme', 'Implicit non conservative N scheme',\
+                                'Edge-based N-scheme'],),
+#                       ------------------------------------
+                        b_upwind_Tracers = BLOC(condition = "Type_Of_Advection_Tracers == 'SUPG'",
+#                       ------------------------------------
+#                          ------------------------------------
+                           Supg_Option_K_And_Epsilon = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#                          ------------------------------------
+                             into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+
+#                          ------------------------------------
+                           Upwind_Coefficients_Of_Tracers = SIMP(statut = 'o',typ = 'R', defaut = 1.)
+#                          ------------------------------------
+                        ), # fin b_upwind_Tracers
+                    ), # fin b_Tracers
+
+#              ------------------------------------
+               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')",
+#              ------------------------------------
+#                  ------------------------------------
+                   Maximum_Number_Of_Iterations_For_Advection_Schemes = SIMP( statut = 'o',typ = 'I', defaut = 10 ,
+#                  ------------------------------------
+                       fr = 'Seulement pour schemes Edge-based N-scheme',
+                       ang = 'Only for Edge-based N-scheme',),
+                ), # fin b_max
+
+#              ------------------------------------
+               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'])",
+#              ------------------------------------
+
+#          ------------------------------------
+           Treatment_Of_Fluxes_At_The_Boundaries = SIMP( statut = 'o',typ = 'TXM',
+#          ------------------------------------
+               into = ["Priority to prescribed values","Priority to fluxes"],
+               fr = 'Utilise pour les schemas SUPG, PSI et N, \n\
+si Priorité aux flux, on ne retrouve pas exactement les valeurs imposees des traceurs,mais le flux est correct',
+             ang = 'Used so far only with the SUPG, PSI and N schemes.\n\
+if Priority to fluxes, Dirichlet prescribed values are not obeyed,but the fluxes are correct',),
+
+                ), # fin b_traitement
+        ), # Fin Type_Of_Advection
+
+#PNPNPN
+# recalculer la liste de 4
+# Attention bloc selon le type de convection
+#         ------------------------------------
+#          SUPG = FACT(statut = 'o',
+#         ------------------------------------
+#             ------------------------------------
+#              Supg_Option_U_And_V = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#             ------------------------------------
+#                       into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+#             ------------------------------------
+#              Supg_Option_H = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#             ------------------------------------
+#                       into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+#             ------------------------------------
+#              Supg_Option_Tracers = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#             ------------------------------------
+#                       into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+#             ------------------------------------
+#              Supg_Option_K_And_Epsilon = SIMP(statut = 'o', defaut = 'Modified SUPG', typ = 'TXM',
+#             ------------------------------------
+#                       into = ['No upwinding', 'Classical SUPG','Modified SUPG']),
+#            ), # Fin de SUPG
+
+#         ------------------------------------
+          Mass_Lumping_On_H = SIMP(statut = 'o',typ = 'R', defaut = 0,
+#         ------------------------------------
+            fr = 'TELEMAC offre la possibilite d''effectuer du mass-lumping sur H ou U.\n\
+Ceci revient a ramener tout ou partie (suivant la valeur de ce coefficient) des matrices AM1 (h) ou AM2 (U) \n\
+et AM3 (V) sur leur diagonale.  Cette technique permet d''accelerer le code dans des proportions tres\n\
+importantes et de le rendre egalement beaucoup plus stable. Cependant les solutions obtenues se trouvent lissees.\n\
+Ce parametre fixe le taux de mass-lumping effectue sur h.',
+            ang = 'TELEMAC provides an opportunity to carry out mass-lumping either on C,H or on the velocity. \n\
+This is equivalent to bringing the matrices AM1(h) or AM2(U) and AM3(V) wholly or partly, back onto their diagonal.\n\
+Thanks to that technique, the code can be speeded up to a quite significant extent and it can also be made much \n\
+more stable. The resulting solutions, however, become artificially smoothed. \n\
+This parameter sets the extent of mass-lumping that is performed on h.'),
+
+#         ------------------------------------
+          Mass_Lumping_On_Velocity = SIMP(statut = 'o', typ = 'R', defaut = 0,
+#         ------------------------------------
+            fr = 'Fixe le taux de mass-lumping effectue sur la vitesse.',
+            ang = 'Sets the amount of mass-lumping that is performed on the velocity.'),
+
+#         ------------------------------------
+          Mass_Lumping_For_Weak_Characteristics = SIMP(statut = 'o',typ = 'R',defaut = 0,
+#         ------------------------------------
+            fr = 'Applique a la matrice de masse',
+            ang = 'To be applied to the mass matrix',),
+#         ------------------------------------
+          Free_Surface_Gradient_Compatibility = SIMP(statut = 'o',typ = 'R',defaut = 1.,
+#         ------------------------------------
+            fr = 'Des valeurs inferieures a 1 suppriment les oscillations parasites',
+            ang = 'Values less than 1 suppress spurious oscillations'),
+
+#          ------------------------------------
+           Number_Of_Sub_Iterations_For_Non_Linearities = SIMP(statut = 'o',typ = 'I',
+#          ------------------------------------
+             defaut = 1,
+             fr = 'Permet de reactualiser, pour un meme pas de temps, les champs convecteur et propagateur \n\
+au cours de plusieurs sous-iterations.\n\
+A la premiere sous-iteration, ces champs sont donnes par C et le champ de vitesses au pas de temps precedent.\n\
+Aux iterations suivantes, ils sont pris egaux au champ de vitesse obtenu a la fin de la sous-iteration precedente. \n\
+Cette technique permet d''ameliorer la prise en compte des non linearites.',
+            ang = 'Used for updating, within one time step, the advection and propagation field.\n\
+upon the first sub-iteration, \n\
+these fields are given by C and the velocity field in the previous time step. At subsequent iterations, \n\
+the results of the previous sub-iteration is used to update the advection and propagation field.\n\
+The non-linearities can be taken into account through this technique.',),
+
+
+     ), # fin Advection
+
+#PNPNPN Il faut recalculer le MCSIMP Propagation
+#    ------------------------------------
+     Propagation = FACT(statut = 'o',
+#    ------------------------------------
+#         ------------------------------------
+          Initial_Guess_For_H = SIMP(statut = 'o',typ = 'TXM',
+#         ------------------------------------
+              into = ['Zero', 'Previous', 'Extrapolation'],
+              defaut = 'Previous',
+              fr = 'Tir initial du solveur de l etape de propagation.  Offre la possibilite de modifier la valeur initiale de DH,\n\
+accroissement de H, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
+aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
+              ang = 'Initial guess for the solver in the propagation step.  Makes it possible to modify the initial value of H, \n\
+upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
+Thus, the convergence can be speeded up when the system is being solved.',),
+
+
+#         ------------------------------------
+          Linearized_Propagation = SIMP(statut = 'o',typ = bool,defaut = False,
+#         ------------------------------------
+             fr = 'Permet de lineariser l''etape de propagation; \n\
+par exemple lors de la realisation de cas tests pour lesquels on dispose d une solution analytique dans le cas linearise.',
+             ang = 'Provided for linearizing the propagation step; \n\
+e.g. when performing test-cases for which an analytical solution in the linearized case is available.' ),
+
+#         ------------------------------------
+          b_linear = BLOC(condition = "Linearized_Propagation == True ",
+#         ------------------------------------
+#             ------------------------------------
+              Mean_Depth_For_Linearization = SIMP(statut = 'o',typ = 'R', defaut = 0.0, val_min = 0,
+#             ------------------------------------
+               fr = 'Fixe la hauteur d eau autour de laquelle s effectue la linearisation lorsque l option PROPAGATION LINEARISEE est choisie.',
+               ang = 'Sets the water depth about which the linearization is made when the LINEARIZED PROPAGATION OPTION is selected.'),
+
+#             ------------------------------------
+              Initial_Guess_For_U = SIMP(statut = 'o',typ = 'TXM',
+#             ------------------------------------
+                into = ['Zero', 'Previous', 'Extrapolation'],
+                defaut = 'Previous',
+                fr = 'Tir initial du solveur de l etape de propagation.  Offre la possibilite de modifier la valeur initiale de DH,\n\
+accroissement de U, a chaque iteration, dans l etape de propagation en utilisant les valeurs finales de cette variable \n\
+aux pas de temps precedents. Ceci peut permettre daccelerer la vitesse de convergence lors de la resolution du systeme.',
+                ang = 'Initial guess for the solver in the propagation step.  Makes it possible to modify the initial value of U, \n\
+upon each iteration in the propagation step, by using the ultimate values this variable had in the earlier time steps.\n\
+Thus, the convergence can be speeded up when the system is being solved.',),
+
+          ), # fin b_linear
+
+      ), # fin Propagation
+
+
+#    ------------------------------------
+     Diffusion = FACT(statut = 'o',
+#    ------------------------------------
+
+#         ------------------------------------
+           Diffusion_Of_Velocity = SIMP( statut='o',typ=bool,
+#         ------------------------------------
+             defaut=False ,
+             fr = 'Permet de decider si lon prend ou non en compte la diffusion des vitesses.',
+             ang= 'Makes it possible to decide whether the diffusion of velocity (i.e. viscosity) is taken into account or not.',
+          ),
+#        ------------------------------------
+         b_Diffu = BLOC(condition = 'Diffusion_Of_Velocity == True',
+#        ------------------------------------
+#            ------------------------------------
+             Implicitation_For_Diffusion_Of_Velocity = SIMP(statut = 'o',typ = 'R',defaut = 0,
+#            ------------------------------------
+              fr = 'Fixe la valeur du coefficient d''implicitation sur les termes de diffusion des vitesses',
+              ang = 'Sets the value of the implicitation coefficient for the diffusion of velocity',),
+
+#            ------------------------------------
+             Option_For_The_Diffusion_Of_Velocities = SIMP( statut='o',typ='TXM',
+#            ------------------------------------
+                  defaut=1 ,
+                  into=['Diffusion in the form div( nu grad(U))','Diffusion in the form 1/h div ( h nu grad(U) )'],
+                  fr = '1: Diffusion de la forme div( nu grad(U) )   2: Diffusion de la forme 1/h div ( h nu grad(U) )',
+                  ang= '1: Diffusion in the form div( nu grad(U) )   2: Diffusion in the form 1/h div ( h nu grad(U) )',),
+
+                ), # fin b_Diffu
+     ), # fin Diffusion
+#    ------------------------------------
+     Discretization_Implicitation = FACT(statut = 'f',
+#    ------------------------------------
+
+#         ------------------------------------
+          Discretizations_In_Space = SIMP(statut = 'o',typ = 'TXM', 
+#         ------------------------------------
+              into = ["Linear", "Quasi-bubble", "Quadratic"],
+              defaut = "Linear",),
+
+#         ------------------------------------
+          Implicitation_For_Depth = SIMP(statut = 'o',typ = 'R',defaut = 0.55,
+#         ------------------------------------
+              fr = 'Fixe la valeur du coefficient d''implicitation sur C dans l''etape de propagation (cf.  Note de principe).\n\
+Les valeurs inferieures a 0.5 donnent un schema instable.',
+             ang = 'Sets the value of the implicitation coefficient for C (the celerity of waves) in the propagation step (refer to principle note).\n\
+Values below 0.5 result in an unstable scheme.'),
+
+#         ------------------------------------
+          Implicitation_For_Velocity = SIMP(statut = 'o',typ = 'R',defaut = 0.55,
+#         ------------------------------------
+             fr = 'Fixe la valeur du coefficient d''implicitation sur la vitesse dans l''etape de propagation (cf.  Note de principe).\n\
+Les valeurs inferieures a 0.5 donnent un schema instable.',
+             ang = 'Sets the value of the implicitation coefficient for velocity in the propagation step (refer to principle note).\n\
+Values below 0.5 result in an unstable condition.'),
+
+      ), # fin Discretization_Implicitation
+      
+
+#    ------------------------------------
+     Tidal=FACT(statut='f',
+#    ------------------------------------
+     Tidal_Flats = SIMP(statut = 'o',typ = bool,defaut = True,
+#    ------------------------------------
+         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',
+         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'),
+
+#    ------------------------------------
+     b_tidal_flats = BLOC(condition = 'Tidal_Flats == True',
+#    ------------------------------------
+#         ------------------------------------
+          Option_For_The_Treatment_Of_Tidal_Flats = SIMP(statut = 'o',typ = 'TXM',
+#         ------------------------------------
+             into = ["Equations solved everywhere with correction on tidal flats", "Dry elements frozen", "1 but with porosity (defina method)",],
+             defaut="Equations solved everywhere with correction on tidal flats",),
+
+#             ------------------------------------
+              b_option_tidal_flats = BLOC(condition = 'Option_For_The_Treatment_Of_Tidal_Flats == "Equations solved everywhere with correction on tidal flats"',
+#             ------------------------------------
+#                 ------------------------------------
+                  Treatment_Of_Negative_Depths = SIMP( statut = 'o',typ = 'TXM',
+#                 ------------------------------------
+                     into = [ 'No treatment', 'Smoothing', 'Flux control'],
+                     defaut = 'Smoothing' ,),
+              ), # fin bloc b_option_tidal_flats
+
+#         ------------------------------------
+          Threshold_For_Negative_Depths = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
+#         ------------------------------------
+             fr = 'En dessous du seuil, les hauteurs negatives sont lissees',
+             ang = 'Below the threshold the negative depths are smoothed',),
+
+#         ------------------------------------
+          Threshold_Depth_For_Receding_Procedure = SIMP(statut = 'o',typ = 'R',defaut = 0 ,
+#         ------------------------------------
+              fr = 'Si > 0., declenche la procedure de ressuyage qui evite le franchissement parasite des digues mal discretisees',
+             ang = 'If > 0., will trigger the receding procedure that avoids overwhelming of dykes which are too loosely discretised ',),
+
+          
+#         ------------------------------------
+          H_Clipping = SIMP(statut = 'o',typ = bool,defaut = False,
+#         ------------------------------------
+             fr = 'Determine si on desire ou non limiter par valeur inferieure la hauteur d eau H (dans le cas des bancs decouvrants par exemple).',
+             ang = 'Determines whether limiting the water depth H by a lower value desirable or not. (for instance in the case of tidal flats)\n\
+This key-word may have an influence on mass conservation since the truncation of depth is equivalent to adding mass.',),
+
+#             ------------------------------------
+              b_clipping = BLOC(condition = 'H_Clipping == True',
+#             ------------------------------------
+#                 ------------------------------------
+                  Minimum_Value_Of_Depth = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
+#                 ------------------------------------
+                      fr = 'Fixe la valeur minimale de a lorsque loption CLIPPING DE H est activee.',
+                      ang = 'Sets the minimum H value when option H CLIPPING is implemented. Not fully implemented.',),
+              ), # fin b_clipping
+    ), # fin bloc b_tidal_flats
+    ), # fin bloc tidal
+
+#    ------------------------------------
+     Various = FACT(
+#    ------------------------------------
+
+#         ------------------------------------
+         Newmark_Time_Integration_Coefficient = SIMP( statut = 'o',typ = 'TXM',
+#         ------------------------------------
+             defaut = "Euler explicite",
+             into = ["Euler explicite","Order 2 in time"],),
+
+#         ------------------------------------
+          Option_For_Characteristics = SIMP( statut = 'o',typ = 'TXM',
+#         ------------------------------------
+            defaut = "Strong" ,
+            into = ['Strong','Weak',],),
+
+     ),# fin Various
+
+   
+)# fin NUMERICAL_PARAMETERS
+
+# -----------------------------------------------------------------------
+PHYSICAL_PARAMETERS = PROC(nom = "PHYSICAL_PARAMETERS",op = None,
+# -----------------------------------------------------------------------
+        UIinfo = { "groupes" : ( "CACHE", )},
+#    ------------------------------------
+     Friction_Setting = FACT(statut = 'o',
+#    ------------------------------------
+#         ------------------------------------
+          Friction_Data_File = SIMP( statut = 'o',
+#         ------------------------------------
+               typ = ('Fichier', ';;All Files (*)'),
+               fr = 'fichier de donnees pour le frottement',
+               ang = 'friction data file',),
+
+#         ------------------------------------
+          Depth_In_Friction_Terms = SIMP( statut = 'o',typ = 'TXM',
+#         ------------------------------------
+               defaut = "Nodal" ,
+               into = ("Nodal", "Average"),),
+
+#         ------------------------------------
+          Law_Of_Bottom_Friction = SIMP( statut = 'o',typ = 'TXM',
+#         ------------------------------------
+               defaut = 'No friction' ,
+               into = ('No friction', 'Haaland', 'Chezy', 'Strickler', 'Manning', 'Nikuradse','Log law','Colebrooke_white'),
+               fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur le fond.',
+               ang = 'Selects the type of formulation used for the bottom friction.',),
+
+#              ------------------------------------
+               b_Law_Friction = BLOC(condition = "Law_Of_Bottom_Friction!= 'No friction'",
+#              ------------------------------------
+#                  ------------------------------------
+                   Friction_Coefficient = SIMP( statut = 'o',typ = 'R',
+#                  ------------------------------------
+                         defaut = 50.0 ,
+                         fr = 'Fixe la valeur du coefficient de frottement pour la formulation choisie.  \
+Attention, la signification de ce chiffre varie suivant la formule choisie : \
+1 : coefficient lineaire 2 : coefficient de Chezy 3 : coefficient de Strickler \
+4 : coefficient de Manning 5 : hauteur de rugosite de Nikuradse',
+                         ang = 'Sets the value of the friction coefficient for the selected formulation. \
+It is noteworthy that the meaning of this figure changes according to the selected formula (Chezy, Strickler, etc.) : \
+1 : linear coefficient 2 : Chezy coefficient 3 : Strickler coefficient 4 : Manning coefficient 5 : Nikuradse grain size',),
+              ), # Fin b_Law_Friction
+
+#              ------------------------------------
+               b_Colebrooke_White = BLOC(condition = "Law_Of_Bottom_Friction == 'Colebrooke_white'",
+#              ------------------------------------
+#                  ------------------------------------
+                   Manning_Default_Value_For_Colebrook_White_Law = SIMP( statut = 'o',typ = 'R',
+#                  ------------------------------------
+                       defaut = 0.02 ,
+                       fr = 'valeur par defaut du manning pour la loi de frottement de  Colebrook-White ',
+                       ang = 'Manning default value for the friction law of Colebrook-White ',),
+               ), # Fin b_Colebrooke_White
+
+#         ------------------------------------
+          Non_Submerged_Vegetation_Friction = SIMP( statut = 'o',typ = bool,
+#         ------------------------------------
+              defaut = False ,
+              fr = 'calcul du frottement du a la vegetation non submergee',
+              ang = 'friction calculation of the non-submerged vegetation',),
+
+#              ------------------------------------
+               b_Non_Sub = BLOC(condition = ' Non_submerged_Vegetation_Friction == True',
+#              ------------------------------------
+#                  ------------------------------------
+                   Diameter_Of_Roughness_Elements = SIMP( statut = 'o',typ = 'R',
+#                  ------------------------------------
+                       defaut = 0.006 ,
+                       fr = 'diametre des elements de frottements',
+                       ang = 'diameter of roughness element',),
+
+#                  ------------------------------------
+                   Spacing_Of_Roughness_Elements = SIMP( statut = 'o',typ = 'R',
+#                  ------------------------------------
+                      defaut = 0.14 ,
+                      fr = 'espacement des elements de frottement',
+                      ang = 'spacing of rouhness element',),
+            ), # Fin b_Non_Sub
+
+#         ------------------------------------
+          Law_Of_Friction_On_Lateral_Boundaries = SIMP( statut = 'o',typ = 'TXM',
+#         ------------------------------------
+              defaut = "No friction" ,
+              into = ("No friction", "Haaland", "Chezy", "Strickler",  "Manning", "Nikuradse", "Log law", "Colebrook-white"),
+              fr = 'selectionne le type de formulation utilisee pour le calcul du frottement sur les parois laterales.',
+              ang = 'Selects the type of formulation used for the friction on lateral boundaries.',),
+
+
+#              ------------------------------------
+               b_Fric = BLOC(condition = 'Law_Of_Friction_On_Lateral_Boundaries != "No friction"',
+#              ------------------------------------
+
+# PNPNPN soizic ?Ne faut-il pas un bloc sur Law_Of_Friction_On_Lateral_Boundaries
+#                ------------------------------------
+                 Roughness_Coefficient_Of_Boundaries = SIMP( statut = 'o',typ = 'R',
+#                ------------------------------------
+                    defaut = 100.0 ,
+                    fr = 'Fixe la valeur du coefficient de frottement sur les frontieres solides avec un regime turbulent rugueux\n\
+ sur les bords du domaine.  meme convention que pour le coefficient de frottement',
+                     ang = 'Sets the value of the friction coefficient of the solid boundary with the bed roughness option. Same meaning than friction coefficient',),
+
+#               ------------------------------------
+                Maximum_Number_Of_Friction_Domains = SIMP( statut = 'o',typ = 'I',
+#               ------------------------------------
+                   defaut = 10 ,
+                   fr = 'nombre maximal de zones pouvant etre definies pour le frottement. Peut etre augmente si necessaire',
+                   ang = 'maximal number of zones defined for the friction.  Could be increased if needed',),
+               ),
+
+#         ------------------------------------
+          Definition_Of_Zones = SIMP(typ = bool, statut = 'o', defaut = False,
+#         ------------------------------------
+               fr = 'Declenche l''appel a def_zones, pour donner un numero de zone a chaque point',
+               ang = 'Triggers the call to def_zones to give a zone number to every point',),
+
+#              ------------------------------------
+               b_def_zone = BLOC (condition = 'Definition_Of_Zones == True',
+#              ------------------------------------
+#                  ------------------------------------
+                   Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", defaut = "complete DEF_ZONES subroutine"),
+#                  ------------------------------------
+               ), # fin b_def_zone
+
+     ), # Fin du bloc Friction
+#    ------------------------------------
+     Meteorology = FACT(statut = 'f',
+#    ------------------------------------
+
+#         ------------------------------------
+          Wind = SIMP(statut = 'o',typ = bool,defaut = False,
+#         ------------------------------------
+             fr = 'Prise en compte ou non des effets du vent.',
+             ang = 'Determines whether the wind effects are to be taken into account or not.'),
+
+#         ------------------------------------
+          b_Wind = BLOC(condition = "Wind == True",
+#         ------------------------------------
+#             ------------------------------------
+              Wind_Velocity_Along_X = SIMP(statut = 'o',typ = 'R', defaut = 0.,
+#             ------------------------------------
+                 fr = 'Composante de la vitesse du vent suivant l''axe des x (m/s).',
+                 ang = 'Wind velocity, component along x axis (m/s).',),
+
+#             ------------------------------------
+              Wind_Velocity_Along_Y = SIMP(statut = 'o',typ = 'R',defaut = 0.,
+#             ------------------------------------
+                 fr = 'Composante de la vitesse du vent suivant l''axe des y (m/s).',
+                 ang = 'Wind velocity, component along y axis (m/s).',),
+
+#             ------------------------------------
+              Threshold_Depth_For_Wind = SIMP(statut = 'o',typ = 'R',defaut = 0.,
+#             ------------------------------------
+                 fr = 'Retire la force due au vent dans les petites profondeurs',
+                 ang = 'Wind is not taken into account for small depths' ),
+
+#             ------------------------------------
+              Coefficient_Of_Wind_Influence = SIMP( statut = 'o',typ = 'R', defaut = 0.0 ,
+#             ------------------------------------
+                 fr = 'Fixe la valeur du coefficient d entrainement du vent (cf.  Note de principe).',
+                 ang = 'Sets the value of the wind driving coefficient.  Refer to principle note.',),
+
+#             ------------------------------------
+              Option_For_Wind = SIMP( statut = 'o',typ = 'TXM', defaut = 0 ,
+#             ------------------------------------
+                 into = ["No wind","Constant in time and space","Variable in time","Variable in time and space"],
+                 fr = 'donne les options pour introduire le vent',
+                 ang = 'gives option for managing the wind'),
+
+#             ------------------------------------
+              file_For_wind = BLOC (condition = 'Option_For_Wind == "Variable in time" or Option_For_Wind == "Variable in time and space"',
+#             ------------------------------------
+#                  ------------------------------------
+                   Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
+#                  ------------------------------------
+                          defaut = "give formated file 3"),
+              ), # fin bloc file_For_wind
+
+#             ------------------------------------
+              speed_For_wind = BLOC (condition = 'Option_For_Wind == "Constant in time and space"',
+#             ------------------------------------
+#                  ------------------------------------
+                   Speed_And_Direction_Of_Wind = SIMP( statut = 'o', defaut = (0.0, 0.0) , 
+#                  ------------------------------------
+                      typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+                      fr = 'Donne la vitesse et la direction (en degres de 0 a 360, 0 etant y = 0 et x = +inf) du vent',
+                      ang = 'gives the speed and direction (degre (from 0 to 360), 0 given y = 0 anx x = +infinity)',),
+              ), # speed_For_wind
+
+          ), # fin b_Wind
+
+#         ------------------------------------
+          Air_Pressure = SIMP(statut = 'o',typ = bool, defaut = False,
+#         ------------------------------------
+                fr = 'Permet de decider si l''on prend ou non en compte l''influence d''un champ de pression.',
+                ang = 'Provided to decide whether the influence of an atmosphere field is taken into account or not.'),
+
+#         ------------------------------------
+          b_air = BLOC(condition = "Air_Pressure == True",
+#         ------------------------------------
+#              ------------------------------------
+               Value_Of_Atmospheric_Pressure = SIMP( statut = 'o',typ = 'R',
+#              ------------------------------------
+                  defaut = 100000.0 ,
+                  fr = 'donne la valeur de la pression atmospherique lorsquelle est constante en temps et en espace',
+                  ang = 'gives the value of atmospheric pressure when it is contant in time and space',),
+           ), # fin b_air
+
+#         ------------------------------------
+          Rain_Or_Evaporation = SIMP(statut = 'o',typ = bool,
+#         ------------------------------------
+              defaut = False,
+              fr  = 'Pour ajouter un apport ou une perte d''eau en surface.',
+              ang = 'to add or remove water at the free surface. ',),
+
+#         -----------------------------------
+          b_Rain = BLOC(condition = "Rain_Or_Evaporation == True",
+#         ------------------------------------
+#              ------------------------------------
+               Rain_Or_Evaporation_In_Mm_Per_Day = SIMP(statut = 'o',typ = 'I',defaut = 0.),
+#              ------------------------------------
+          ), # fin b_Rain
+
+    ), # fin Meteorology
+
+#    ------------------------------------
+     Wave = FACT(statut = 'f',
+#    ------------------------------------
+
+#       ------------------------------------
+        Wave_Driven_Currents = SIMP(statut = 'o',
+#       ------------------------------------
+            typ = bool, defaut = False,
+            fr = 'Active la prise en compte des courants de houle',
+            ang = 'Wave driven currents are taken into account.'),
+
+#       ------------------------------------
+        b_Wave = BLOC(condition = "Wave_Driven_Currents == True",
+#       ------------------------------------
+#           ------------------------------------
+            Record_Number_In_Wave_File = SIMP(statut = 'o',typ = 'I', defaut = 1,
+#           ------------------------------------
+                fr = 'Numero d enregistrement dans le fichier des courants de houle',
+                ang = 'Record number to read in the wave driven currents file'),
+        ), # fin b_Wave
+    ), # fin Wave
+
+
+
+#    ------------------------------------
+     Parameters_Estimation = FACT(statut = 'f',
+#    ------------------------------------
+#         ------------------------------------
+          Parameter_Estimation = SIMP( statut = 'o',typ = 'TXM', into = ["Friction","Frottement","Steady"],
+#         ------------------------------------
+               fr = 'Liste des parametres a estimer', 
+               ang = 'List of parameter to be estimated',),
+         
+#         ------------------------------------
+          Identification_Method = SIMP( statut = 'o',typ = 'TXM',
+#         ------------------------------------
+               into = ["List of tests", "Gradient simple", "Conj gradient", "Lagrange interp."],
+               defaut = 'GRadient simple',),
+
+#         ------------------------------------
+          Maximum_Number_Of_Iterations_For_Identification = SIMP(statut = 'o',typ = 'I',defaut = 20,
+#         ------------------------------------
+              fr = 'chaque iteration comprend au moins un calcul direct et un calcul adjoint',
+              ang = 'every iteration implies at least a direct and an adjoint computation', ),
+
+#         ------------------------------------
+          Cost_Function = SIMP(statut = "f",typ = 'TXM', 
+#         ------------------------------------
+              defaut = 'Computed with h, u , v',
+              into = ['Computed with h, u , v', 'Computed with c, u , v'],),
+
+#         ------------------------------------
+         Tolerances_For_Identification = FACT( statut = 'o',
+#         ------------------------------------
+# PNPNPN recalculer en liste de 4 reels 
+#             ------------------------------------
+              Tolerance_For_H = SIMP( statut = 'o',typ = 'R', defaut=1.E-3, 
+#             ------------------------------------
+                   fr  = "precision absolue sur H",
+                   ang = "absolute precision on H",),
+#             ------------------------------------
+              Tolerance_For_U = SIMP( statut = 'o',typ = 'R', defaut=1.E-3, 
+#             ------------------------------------
+                   fr  = "precision absolue sur U",
+                   ang = "absolute precision on U",),
+#             ------------------------------------
+              Tolerance_For_V = SIMP( statut = 'o',typ = 'R', defaut=1.E-3, 
+#             ------------------------------------
+                   fr  = "precision absolue sur V",
+                   ang = "absolute precision on V",),
+#             ------------------------------------
+              Tolerance_For_cout = SIMP( statut = 'o',typ = 'R', defaut=1.E-4, 
+#             ------------------------------------
+                   fr  = "precision relative sur la fonction cout",
+                   ang = "relative precision on the cost function",),
+                ),# fin Tolerances_For_Identification
+
+      ), #  fin fact Parameters_Estimation
+
+#    ------------------------------------
+     Sources = FACT( statut = 'f',
+#    ------------------------------------
+#    ------------------------------------
+     Number_Of_Sources = SIMP( statut = 'o',typ = 'I', defaut = 0 ,),
+#    ------------------------------------
+# Attention a la sortie a reformatter. voir page 68 du user manuel V7
+
+#       ------------------------------------
+        sources_exists = BLOC(condition = "Number_Of_Sources!= 0",
+#       ------------------------------------
+
+#           ------------------------------------
+            Sources_File = SIMP( statut = 'o',
+#           ------------------------------------
+                typ = ('Fichier', 'All Files (*)',),
+                fr = 'Nom du fichier contenant les informations variables en temps des sources',
+                ang = 'Name of the file containing time-dependent information on sources',),
+
+#PNPNPNPN saisir autant de source que le nombre
+#           ------------------------------------
+            Source = FACT(statut = 'o',
+#           ------------------------------------
+                 max = "**",
+#               ------------------------------------
+                Abscissae_Of_Sources = SIMP( statut = 'o',
+#               ------------------------------------
+                    typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+                    fr = 'Valeurs des abscisses des sources de debit et de traceur.',
+                    ang = 'abscissae of sources of flowrate and/or tracer',),
+
+#               ------------------------------------
+                Ordinates_Of_Sources = SIMP( statut = 'o',
+#               ------------------------------------
+                   typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+                   fr = 'Valeurs des ordonnees des sources de debit et de traceur.',
+                   ang = 'ordinates of sources of flowrate and/or tracer',),
+
+#               ------------------------------------
+                Water_Discharge_Of_Sources = SIMP( statut = 'o',
+#               ------------------------------------
+                   typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+                   fr = 'Valeurs des debits des sources.',
+                   ang = 'values of water discharge of sources',),
+
+#               ------------------------------------
+                Velocities_Of_The_Sources_Along_X = SIMP( statut = 'f',
+#               ------------------------------------
+                   typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+                   fr = 'Vitesses du courant a chacune des sources. Si elles ne sont pas donnees, on considere que la vitesse est celle du courant',
+                   ang = 'Velocities at the sources. If they are not given, the velocity of the flow at this location is taken',),
+
+#               ------------------------------------
+                Velocities_Of_The_Sources_Along_Y = SIMP( statut = 'f',
+#               ------------------------------------
+                   typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+                   fr = 'Vitesses du courant a chacune des sources',
+                   ang = 'Velocities at the sources',),
+
+        ), # Fin du Fact Source
+
+#           ------------------------------------
+            Type_Of_Sources = SIMP(statut = 'o',typ = 'TXM',into = ["Normal","Dirac"],
+#           ------------------------------------
+                   fr = 'Source portee par une base elements finis  Source portee  par une fonction de Dirac',
+                   ang = 'Source term multiplied by a finite element basis,  Source term multiplied by a Dirac function',),
+
+    ),#fin bloc source - exits
+    ),#fin MC source - exits
+
+
+#  ------------------------------------
+   Coriolis_Settings = FACT(statut = 'f',
+#  ------------------------------------
+#      ------------------------------------
+       Coriolis = SIMP( statut='o',typ=bool,
+#      ------------------------------------
+          defaut=False ,
+          fr = 'Prise en compte ou non de la force de Coriolis.',
+          ang= 'The Coriolis force is taken into account or ignored.',),
+
+#     -------------------------------------------------------
+      Coriolis_Coefficient = SIMP( statut='o',typ='R',
+#     -------------------------------------------------------
+            defaut=0.0 ,
+            fr = 'Fixe la valeur du coefficient de la force de Coriolis.  Celui-ci doit etre calcule en fonction de la latitude l \n\
+par la formule FCOR = 2w sin(l) , w etant la vitesse de rotation de la terre.  w = 7.27 10-5 rad/s \n\
+Les composantes de la force de Coriolis sont alors : FU =   FCOR x V FV = - FCOR x U',
+           ang= 'Sets the value of the Coriolis force coefficient, in cartesian coordinates.  This coefficient,\n\
+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\
+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',),
+      ), #fin Coriolis_Settings
+
+
+
+#    ------------------------------------
+     Various = FACT( statut = 'f',
+#    ------------------------------------
+#      ------------------------------------
+       Water_Density = SIMP(statut = 'o',typ = 'R',defaut = 1000.,
+#      ------------------------------------
+         fr = 'Fixe la valeur de la masse volumique de l eau.',
+         ang = 'set the value of water density',
+         ),
+
+#       ------------------------------------
+        Gravity_Acceleration = SIMP(statut = 'o',typ = 'R',defaut = 9.81,
+#       ------------------------------------
+        fr = 'Fixe la valeur de l acceleration de la pesanteur.',
+        ang = 'Set the value of the acceleration due to gravity.',
+         ),
+
+#     ------------------------------------
+      Vertical_Structures = SIMP(statut = 'o',typ = bool,defaut = False,
+#     ------------------------------------
+         fr = 'Prise en compte de la force de trainee de structures verticales',
+         ang = 'drag forces from vertical structures are taken into account',),
+
+#          ------------------------------------
+           maskob = BLOC (condition = 'Vertical_Structures == True',
+#          ------------------------------------
+#              ------------------------------------
+               Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
+#              ------------------------------------
+               defaut = "subroutine DRAGFO must then be implemented"),
+           ), # fin maskob
+       ),
+
+#    -----------------------------------------------------------------------
+     Secondary_Currents_Settings = FACT( statut='f',
+#    -----------------------------------------------------------------------
+#    -----------------------------------------------------------------------
+     Secondary_Currents = SIMP( statut='o',typ=bool,
+#    -----------------------------------------------------------------------
+         defaut=False ,
+         fr = 'Pour prendre en compte les courants secondaires',
+         ang= 'Using the parametrisation for secondary currents',
+     ),
+
+#        -----------------------------------------------------------------------
+         b_currents_exists = BLOC(condition = "Secondary_Currents == True", 
+#        -----------------------------------------------------------------------
+#            -----------------------------------------------------------------------
+             Production_Coefficient_For_Secondary_Currents = SIMP( statut='o',typ='R',
+#            -----------------------------------------------------------------------
+               defaut=7.071 ,
+               fr = 'Une constante dans les termes de creation de Omega',
+               ang= 'A constant in the production terms of Omega',),
+
+#            -----------------------------------------------------------------------
+             Dissipation_Coefficient_For_Secondary_Currents = SIMP( statut='o',typ='R',
+#            -----------------------------------------------------------------------
+               defaut=0.5 ,
+               fr = 'Coefficient de dissipation de Omega',
+               ang= 'Coefficient of dissipation term of Omega',),
+
+         ), # fin b_currents_exists
+         ), # fin Secondary_Currents_Settings
+
+#  ------------------------------------
+   Tsunami = FACT(statut = 'f',
+#  ------------------------------------
+#     -------------------------------------------------------
+      Option_For_Tsunami_Generation = SIMP( statut='o',typ='I', defaut=0 ,
+#     -------------------------------------------------------
+        fr = '',
+        ang= '',),
+
+#     -------------------------------------------------------
+      Physical_Characteristics_Of_The_Tsunami = SIMP( statut='o',typ='R',
+#     -------------------------------------------------------
+      min=10,max=10,
+      defaut=(100.0, 210000.0, 75000.0, 13.6, 81.0, 41.0, 110.0, 0.0, 0.0, 3.0) ,
+      fr = '',
+      ang= '',),
+      ), #fin Tsunami
+
+)# fin PHYSICAL_PARAMETERS
+
+# -----------------------------------------------------------------------
+OUTPUT_FILES = PROC(nom = "OUTPUT_FILES",op = None,
+# -----------------------------------------------------------------------
+
+#  ------------------------------------
+   Graphic_And_Listing_Printouts = FACT(statut = 'f',
+#  ------------------------------------
+#       ------------------------------------
+        Variables_For_Graphic_Printouts = SIMP(statut = 'o',max = "**", typ = 'TXM',
+#       ------------------------------------
+                into=[ "Velocity along X axis  (m/s)", "Velocity along Y axis  (m/s)", "Wave celerity  (m/s)", "Water depth  (m)",
+                      "Free surface elevation  (m)", "Bottom elevation  (m)", "Froude number  ", "Scalar flowrate of fluid  (m2/s)", 
+                      "Tracer 1 etc. ", "Turbulent kinetic energy in K-Epsilon model  (J/kg)", "Dissipation of turbulent energy  (W/kg)", 
+                      "Turbulent viscosity of K-Epsilon model  (m2/s)", "Flowrate along X axis  (m2/s)", "Flowrate along Y axis  (m2/s)",
+                      "Scalar velocity  (m/s)", "Wind along X axis  (m/s)", "Wind along Y axis  (m/s)", "Air pressure  (Pa)", 
+                      "Friction coefficient", "Drift along X  (m)", "Drift along Y  (m)", "Courant number ", "Supplementary variable N ", 
+                      "Supplementary variable O ", "Supplementary variable R ", "Supplementary variable Z  ", "Maximum elevation", 
+                      "Time of maximum elevation ", "Maximum velocity", "Time of maximum velocity", "Friction velocity  "],
+                ),
+                #homo="SansOrdreNiDoublon"),
+
+#       ------------------------------------
+        Graphic_Printout_Period = SIMP(statut = 'o', typ = 'I',defaut = 1,
+#       ------------------------------------
+                    fr = 'Determine la periode en nombre de pas de temps d''impression des VARIABLES POUR LES SORTIES GRAPHIQUES \n\
+                         dans le FICHIER DES RESULTATS.',
+                    ang = 'Determines, in number of time steps, the printout period for the VARIABLES FOR GRAPHIC PRINTOUTS in the RESULTS FILE.' ,),
+
+#       ------------------------------------
+        Number_Of_First_Time_Step_For_Graphic_Printouts = SIMP(statut = 'o', typ = 'I',defaut = 1,
+#       ------------------------------------
+                   fr = 'Determine le nombre de pas de temps a partir duquel debute l''ecriture des resultats dans le listing.',
+                   ang = 'Determines the number of time steps after which the results are first written into the listing.'),
+
+#       ------------------------------------
+        Results_File = SIMP( statut = 'o', 
+#       ------------------------------------
+               typ = ('Fichier', 'All Files (*)',),
+               fr = 'Nom du fichier dans lequel sont ecrits les resultats du calcul avec la periodicite donnee  PERIODE POUR LES SORTIES GRAPHIQUES.', 
+               ang = 'Name of the file into which the computation results shall be written, the periodicity being given by  GRAPHIC PRINTOUT PERIOD.',),
+
+#       ------------------------------------
+          Results_File_Format = SIMP( statut = 'o',typ = 'TXM',into = ['Serafin','MED','SerafinD'], defaut = 'Serafin',
+#       ------------------------------------
+                                fr = 'Format du fichier de resultats. Les valeurs possibles sont : \n\
+     - SERAFIN : format standard simple precision pour Telemac;  \n\
+     - SERAFIND: format standard double precision pour Telemac; \n\
+     - MED     : format MED base sur HDF5' ,
+                               ang = 'Results file format. Possible values are:\n \
+     - SERAFIN : classical single precision format in Telemac;\n\
+     - SERAFIND: classical double precision format in Telemac; \n\
+     - MED     : MED format based on HDF5' ,
+                                   ),
+
+#       ------------------------------------
+        Listing_Printout_Period = SIMP(statut = 'o', typ = 'I',defaut = 1,
+#       ------------------------------------
+          fr = 'Determine la periode en nombre de pas de temps d''impression des variables',
+          ang = 'Determines, in number of time steps, the printout period for the variables',),
+
+#       ------------------------------------
+        Listing_Printout = SIMP( statut='o',typ=bool, defaut=True ,
+#       ------------------------------------
+           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',
+            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.',
+     ),
+
+#       ------------------------------------
+        Variables_To_Be_Printed = SIMP(statut = 'o',max = "**", typ = 'TXM',
+#       ------------------------------------
+            into = [ "Velocity along X axis (m/s)", "Velocity along Y axis (m/s)", "Wave celerity (m/s)", "Water depth (m)",
+                   "Free surface elevation (m)", "Bottom elevation (m)", "Froude number", "Scalar flowrate of fluid (m2/s)",
+                   "Tracer", "Turbulent kinetic energy in K-Epsilon model (J/kg)", "Dissipation of turbulent energy (W/kg)",
+                   "Turbulent viscosity of K-Epsilon model (m2/s)", "Flowrate along x axis (m2/s)", "Flowrate along y axis (m2/s)",
+                   "Scalar velocity (m/s)", "Wind along x axis (m/s)", "Wind along y axis (m/s)", "Air pressure (Pa)",
+                   "Friction coefficient", "Drift along x  (m)", "Drift along y  (m)", "Courant number",
+                   "Supplementary variable N", "Supplementary variable O", "Supplementary variable R", "Supplementary variable Z"]
+,homo="SansOrdreNiDoublon"),
+
+   ),# fin Listing_Graphic_Printouts
+
+#  ------------------------------------
+   Formatted_Results_File = SIMP( statut = 'f',
+#  ------------------------------------
+        typ = ('Fichier','All Files (*)',),
+        fr = 'Fichier de resultats formate mis a la disposition de l utilisateur. \
+Les resultats a placer dans ce fichier seront a ecrire sur le canal 29.',
+       ang = 'Formatted file of results made available to the user.  \
+The results to be entered into this file shall be written on channel 29.',),
+
+
+#  ------------------------------------
+   Binary_Results_File = SIMP( statut = 'f', 
+#  ------------------------------------
+         typ = ('Fichier', ';;All Files (*)',), 
+         fr = "Fichier de resultats code en binaire mis a la disposition de l'utilisateur.\n\
+Les resultats a placer dans ce fichier seront a ecrire sur le canal 28.",
+         ang = "Additional binary-coded result file made available to the user. \n\
+The results to be entered into this file shall be written on channel 28.",),
+
+
+#  ------------------------------------
+   Output_Of_Initial_Conditions = SIMP(typ = bool, statut = 'o', 
+#  ------------------------------------
+        defaut = True,
+        fr = 'Si Vrai, impression des conditions initiales dans les resultats',
+        ang = 'If True, output of initial conditions in the results'),
+
+#  ------------------------------------
+   Number_Of_Private_Arrays = SIMP( statut='o',typ='I',
+#  ------------------------------------
+    defaut=0 ,
+    fr = 'Nombre de tableaux mis a disposition de l utilisateur',
+    ang= 'Number of arrays for own user programming',
+     ),
+
+
+#  ------------------------------------
+   Information_About_Solver = SIMP(typ = bool, statut = 'f',
+#  ------------------------------------
+       defaut = False,
+       fr = "Si vrai, Donne a chaque pas de temps le nombre d'iterations necessaires a la convergence du solveur de l'etape de propagation.",
+       ang = "if True, prints the number of iterations that have been necessary to get the solution of the linear system.",),
+
+#  ------------------------------------
+   Mass_Balance = SIMP( statut='o',typ=bool,
+#  ------------------------------------
+       defaut=False ,
+       fr = 'Determine si l on effectue ou non le bilan de masse sur le domaine.  Cette procedure calcule a chaque pas de temps : \n\
+- les flux aux entrees et sorties du domaine, - le flux global a travers lensemble des parois du domaine (liquides ou solides) \n\
+- l erreur relative sur la masse pour ce pas de temps.\n\
+En fin de listing, on trouve l erreur relative sur la masse pour l ensemble du calcul.\n\
+Il ne sagit que dun calcul indicatif car il nexiste pas dexpression compatible du debit en formulation c,u,v.',
+
+      ang= 'Determines whether a check of the mass-balance over the domain is mader or not.\n\
+This procedures computes the following at each time step: the domain inflows and outflows, the overall flow across all the boundaries,\n\
+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.',
+     ),
+
+#  ------------------------------------
+  Controls = FACT( statut='f',
+#  ------------------------------------
+#      ------------------------------------
+       Control_Sections = SIMP(statut = 'f',typ = Tuple(2),validators = VerifTypeTuple(('I','I')),
+#      ------------------------------------
+            fr = 'Couples de points (numeros globaux dans le maillage) entre lesquels les debits instantanes et cumules seront donnes.',
+            ang = 'Couples of points (global numbers in the mesh) defining sections where the instantaneous and cumulated discharges will be given',),
+
+#      ------------------------------------
+       Printing_Cumulated_Flowrates = SIMP( statut = 'o',typ = bool, defaut = False ,
+#      ------------------------------------
+            fr = 'impression du flux cumule a travers les sections de controle',
+            ang = 'printing the cumulated flowrates through control sections',),
+
+#      ------------------------------------
+       Compatible_Computation_Of_Fluxes = SIMP( statut = 'o',typ = bool, defaut = False ,
+#      ------------------------------------
+           fr = 'flux a travers les sections de controle, calcul compatible avec l impermeabilite sous forme faible',
+           ang = 'flowrates through control sections, computation compatible with the weak formulation of no-flux boundary condition',),
+
+#      ------------------------------------
+       Sections_Input_File = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)'),
+#      ------------------------------------
+          fr = 'sections input file, partitioned',
+          ang = 'sections input file, partitioned',),
+
+#      ------------------------------------
+       Sections_Output_File = SIMP( statut = 'f', typ = ('Fichier', 'All Files (*)'),
+#      ------------------------------------
+          fr = 'sections output file, written by the master',
+          ang = 'sections output file, written by the master',),
+
+  ),# fin controls
+#  ------------------------------------
+  Fourier = FACT(statut = 'f',
+#  ------------------------------------
+#      ------------------------------------
+       Fourier_Analysis_Periods = SIMP( statut='o',
+#      ------------------------------------
+       max='**', typ = 'R',
+       fr = 'Liste des periodes que lon veut analyser',
+       ang= 'List of periods to be analysed',),
+
+#      ------------------------------------
+       Time_Range_For_Fourier_Analysis = SIMP( statut='o',
+#      ------------------------------------
+       typ = Tuple(2), validators = VerifTypeTuple(('R','R')),
+       defaut=(0.0, 0.0) ,
+       fr = 'Pour le calcul du marnage et de la phase de la maree',
+       ang= 'For computing tidal range and phase of tide',
+        ),
+
+#      ------------------------------------
+       List_Of_Points = SIMP( statut='o',
+#      ------------------------------------
+       typ = Tuple(2), validators = VerifTypeTuple(('I','I')),
+       fr = 'Liste de points remarquables pour les impressions',
+       ang= 'List of remarkable points for printouts',),
+
+#      ------------------------------------
+       Names_Of_Points = SIMP( statut='o',typ='TXM',
+#      ------------------------------------
+       min=2,max=2 ,
+       fr = 'Noms des points remarquables pour les impressions',
+       ang= 'Names of remarkable points for printouts',
+     ),
+
+  ),# fin fourier
+) # FIN OUTPUT_FILES
+
+
+# -----------------------------------------------------------------------
+CONSTRUCTION_WORKS_MODELLING = PROC(nom = "CONSTRUCTION_WORKS_MODELLING",op = None,
+# -----------------------------------------------------------------------
+
+# Attention calculer le logique BREACH 
+
+#      ------------------------------------
+       Number_Of_Culverts = SIMP( statut = 'o',typ = 'I',
+#      ------------------------------------
+            defaut = 0 ,
+            fr = 'Nombre de siphons traites comme des termes sources ou puits. Ces siphons doivent etre decrits comme des sources \
+dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des siphons (voir la documentation ecrite)',
+            ang = 'Number of culverts treated as source terms.  They must be described as sources in the domain\
+ and their features are given in the culvert data file (see written documentation)',),
+#           ------------------------------------
+            culvert_exists = BLOC(condition = "Number_Of_Culverts!= 0",
+#           ------------------------------------
+#               ------------------------------------
+                Culvert_Data_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
+#               ------------------------------------
+                    fr = 'Fichier de description des siphons presents dans le modele',
+                    ang = 'Description of culvert existing in the model',),
+            ), # fin bloc culvert_exists
+
+#      ------------------------------------
+       Number_Of_Tubes = SIMP( statut = 'o',typ = 'I',
+#      ------------------------------------
+             defaut = 0 ,
+             fr = 'Nombre de buses ou ponts traites comme des termes sources ou puits. Ces buses doivent etre decrits comme des sources\n\
+dans le fichier cas. Leurs caracteristiques sont donnees dans le fichier de donnees des buses (voir la documentation ecrite)',
+             ang = 'Number of tubes or bridges treated as source terms.  They must be described as sources in the domain \n\
+and their features are given in the tubes data file (see written documentation)',), 
+#          ------------------------------------
+            b_Tubes = BLOC(condition = "Number_Of_Tubes!= 0",
+#          ------------------------------------
+#               ------------------------------------
+                Tubes_Data_File = SIMP( statut = 'o',
+#               ------------------------------------
+                    typ = ('Fichier', 'All Files (*)',),
+                    fr = 'Fichier de description des buses/ponts presents dans le modele',
+                    ang = 'Description of tubes/bridges existing in the model',),
+            ), # in bloc b_Tubes
+
+#      ------------------------------------
+       Number_Of_Weirs = SIMP(statut = 'o',typ = 'I',defaut = 0,
+#      ------------------------------------
+             fr = 'Nombre de seuils qui seront traites par des conditions aux limites. \n\
+Ces seuils doivent etre decrits comme des frontieres du domaine de calcul',
+             ang = 'Number of weirs that will be treated by boundary conditions.',
+     ),
+#          ------------------------------------
+           b_Weirs = BLOC(condition = "Number_Of_Weirs!= 0",
+#          ------------------------------------
+#               ------------------------------------
+                Weirs_Data_File = SIMP( statut = 'o',
+#               ------------------------------------
+                    typ = ('Fichier', 'All Files (*)',),
+                    fr = 'Fichier de description des seuils presents dans le modele',
+                    ang = 'Description of weirs existing in the model',),
+
+#              ------------------------------------
+               Type_Of_Weirs = SIMP( statut = 'o',typ = 'TXM',
+#              ------------------------------------
+                   into = ["Horizontal with same number of nodes upstream/downstream (Historical solution with bord)",
+                       "General (New solution with sources points)"],
+                   defaut = "Horizontal with same number of nodes upstream/downstream (Historical solution with bord)",
+                   fr = 'Méthode de traitement des seuils ',
+                   ang = 'Method for treatment of weirs',),
+          ),# fin b_Weirs
+
+#      ------------------------------------
+      Breach = SIMP(statut = 'o',typ = bool,defaut = False,
+#      ------------------------------------
+         fr = 'Prise en compte de breches dans le calcul par modification altimetrique dans le maillage.',
+         ang = 'Take in account some breaches during the computation by modifying the bottom level of the mesh.',),
+
+#          ------------------------------------
+           b_Breaches = BLOC (condition = 'Breach == True',
+#          ------------------------------------
+#              ------------------------------------
+               Breaches_Data_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
+#              ------------------------------------
+                   fr = 'Fichier de description des breches',
+                   ang = 'Description of breaches',),
+         ), # fin b_Breaches
+
+
+) # Fin CONSTRUCTION_WORKS_MODELLING
+
+
+# -----------------------------------------------------------------------
+GENERAL_PARAMETERS = PROC(nom = "GENERAL_PARAMETERS",op = None,
+# -----------------------------------------------------------------------
+        UIinfo = { "groupes" : ( "CACHE", )},
+#      ------------------------------------
+       Location = FACT(statut = 'o',
+#      ------------------------------------
+#      ------------------------------------
+       Origin_Coordinates = SIMP( statut='o',
+#      ------------------------------------
+          typ = Tuple(2),validators = VerifTypeTuple(('I','I')),defaut = (0,0),
+          fr = 'Valeur en metres, utilise pour eviter les trop grands nombres, transmis dans le format Selafin mais pas d autre traitement pour l instant',
+          ang= 'Value in metres, used to avoid large real numbers,  added in Selafin format, but so far no other treatment',),
+
+
+#      ------------------------------------
+       Spherical_Coordinates = SIMP(typ = bool,statut = 'o',defaut = False,
+#      ------------------------------------
+           fr = 'Choix des coordonnees spheriques pour la realisation du calcul ( pour les grands domaines de calcul).',
+           ang = 'Selection of spherical coordinates to perform the computation (for large computation domains).'),
+
+#      ------------------------------------
+       b_Spher = BLOC(condition = 'Spherical_Coordinates == True',
+#      ------------------------------------
+#          ------------------------------------
+           Latitude_Of_Origin_Point = SIMP(typ = 'R',statut = 'o',defaut = 48.,
+#          ------------------------------------
+               fr = 'Determine l origine utilisee pour le calcul de latitudes lorsque l on effectue un calcul en coordonnees spheriques.',
+               ang = 'Determines the origin used for computing latitudes when a computation is made in spherical coordinates.this latitude\n\
+is in particular used to compute the Coriolis force. In cartesian coordinates, Coriolis coefficient is considered constant.'),
+
+#          ------------------------------------
+            Spatial_Projection_Type = SIMP(statut = 'o',typ = 'TXM',
+#          ------------------------------------
+               into = ["Mercator","Latitude longitude"]),
+       ), # fin b_Spher
+
+#      ------------------------------------
+       b_Spher_faux = BLOC(condition = 'Spherical_Coordinates == False',
+#      ------------------------------------
+#          ------------------------------------
+           Spatial_Projection_Type = SIMP(statut = 'o',typ = 'TXM',
+#          ------------------------------------
+               into = ["Cartesian, not georeferenced","Mercator","Latitude longitude"],
+               defaut = "Cartesian, not georeferenced",),
+       ), # fin b_Spher_faux
+
+       ), # Fin de Location
+#      ------------------------------------
+       Time = FACT(statut = 'o',
+#      ------------------------------------
+       regles = (AU_MOINS_UN('Number_Of_Time_Steps','Duration'),
+                 EXCLUS('Number_Of_Time_Steps','Duration'),
+               ),
+
+#        -----------------------------------------------------------------------
+         Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", 
+#        -----------------------------------------------------------------------
+           defaut = "Choose between Keywords 'Number_Of_Time_Steps' or 'Duration'"),
+
+#          ------------------------------------
+           Time_Step = SIMP(statut = 'o',
+#          ------------------------------------
+              typ = 'R', defaut = 1,
+              fr = 'Definit le nombre de pas de temps effectues lors de l''execution du code.',
+              ang = 'Specifies the number of time steps performed when running the code.'),
+
+#          ------------------------------------
+           Number_Of_Time_Steps = SIMP(statut = 'f',typ = 'I',
+#          ------------------------------------
+              fr = 'Definit le nombre de pas de temps effectues lors de l''execution du code.',
+              ang = 'Specifies the number of time steps performed when running the code.'),
+
+#          ------------------------------------
+           Duration = SIMP(statut = 'f',typ = 'R',
+#          ------------------------------------
+              fr = 'duree de la simulation. alternative au parametre nombre de pas de temps. \n\
+On en deduit le nombre de pas de temps en prenant l''entier le plus proche de (duree du calcul/pas de temps).\n\
+Si le nombre de pas de temps est aussi donne, on prend la plus grande valeur',
+              ang = 'duration of simulation. May be used instead of the parameter NUMBER OF TIME STEPS. \n\
+The nearest integer to (duration/time step) is taken.  If NUMBER OF TIME STEPS is also given, the greater value is taken',),
+
+# PNPN
+# Attention, on laisse la règle mais il est possible d avoir les 2 en entrées --> attention au convert
+#          ------------------------------------
+           Variable_Time_Step = SIMP(statut = 'o',typ = bool, defaut=False,
+#          ------------------------------------
+              fr = 'Pas de temps variable pour avoir un nombre de courant souhaite',
+              ang = 'Variable time-step to get a given Courant number'),
+
+#          ------------------------------------
+           b_var_time = BLOC(condition = "Variable_Time_Step == True" ,
+#          ------------------------------------
+#            ------------------------------------
+             Desired_Courant_Number = SIMP(statut = 'o',typ = 'R',
+#            ------------------------------------
+             fr = 'Nombre de Courant souhaite ',
+             ang = 'Desired Courant number',),
+           ),
+
+#          ------------------------------------
+           Original_Date_Of_Time = FACT( statut = 'o',
+#          ------------------------------------
+              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.",
+              ang = 'Give the date of the time origin of the model when taking into account the tide generating force.', 
+               Year = SIMP(statut = 'o',typ = 'I',val_min = 1900, defaut = 1900),
+               Month = SIMP(statut = 'o',typ = 'I',val_min = 1,val_max = 12,  defaut = 1),
+               Day = SIMP(statut = 'o',typ = 'I',val_min = 1,val_max = 31,defaut = 1),),
+
+#          ------------------------------------
+           Original_Hour_Of_Time = FACT( statut = 'o',
+#          ------------------------------------
+               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.",
+               ang = 'Give the time of the time origin of the model when taking into account the tide generating force.', 
+               Hour = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 24, defaut = 0),
+               Minute = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 60, defaut = 0),
+               Second = SIMP(statut = 'o',typ = 'I',val_min = 0,val_max = 60, defaut = 0),
+             ),
+
+#          ------------------------------------
+           Stop_If_A_Steady_State_Is_Reached = SIMP(statut = 'o',
+#          ------------------------------------
+               typ = bool,defaut = False),
+
+#          ------------------------------------
+           b_stop = BLOC(condition = "Stop_If_A_Steady_State_Is_Reached == True" ,
+#          ------------------------------------
+#              ------------------------------------
+               Stop_Criteria = SIMP(statut = 'o',typ = Tuple(3),validators = VerifTypeTuple(('R','R','R')),
+#              ------------------------------------
+                 fr = "Criteres d'arret pour un ecoulement permanent. ces coefficients sont respectivement appliques a\n\
+    1- U et V 2- H 3- T ",
+                 ang = 'Stop criteria for a steady state These coefficients are applied respectively to\n\
+        1- U and V 2- H 3-  T ',),
+           ), # fin b_stop
+
+#          ------------------------------------
+           Control_Of_Limits = SIMP(statut = 'o',
+#          ------------------------------------
+               typ = bool, defaut = False,
+               fr = 'Le programme s''arrete si les limites sur u,v,h ou t sont depassees',
+               ang = 'The program is stopped if the limits on u,v,h, or t are trespassed',),
+
+#          ------------------------------------
+           b_limit = BLOC(condition = "Control_Of_Limit == True" ,
+           Limit_Values = FACT(statut = 'o',
+#            Attention : 1 seul MC ds Telemac
+#          ------------------------------------
+                fr = 'valeurs mini et maxi acceptables  min puis  max',
+                ang = 'min and max acceptable values ',
+
+#              ------------------------------------
+               Limit_Values_H = SIMP(statut = 'o',typ = Tuple(2),
+#              ------------------------------------
+                    validators = VerifTypeTuple(('R','R')), defaut = (-1000,9000)),
+#              ------------------------------------
+               Limit_Values_U = SIMP(statut = 'o',typ = Tuple(2),
+#              ------------------------------------
+                    validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
+#              ------------------------------------
+               Limit_Values_V = SIMP(statut = 'o',typ = Tuple(2),
+#              ------------------------------------
+                    validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
+#              ------------------------------------
+               Limit_Values_T = SIMP(statut = 'o',typ = Tuple(2),
+#              ------------------------------------
+                    validators = VerifTypeTuple(('R','R')), defaut = (-1000,1000)),
+            ),), # fin Fact et b_limit
+       ), # Fin de Time
+
+# Attention il faut recalculer en sortie : il faut 0 ou 1 et non un boolean
+#  ------------------------------------
+   Debugger = SIMP(typ = bool , statut = 'o', 
+#  ------------------------------------
+        defaut = False,
+        fr= 'Pour imprimer la sequence des appels, mettre 1',
+        ang = 'If 1, calls of subroutines will be printed in the listing',),
+
+) # Fin GENERAL_PARAMETERS
+
+
+# -----------------------------------------------------------------------
+TURBULENCE = PROC(nom = "TURBULENCE",op = None,
+# -----------------------------------------------------------------------
+
+#    -----------------------------------------------------------------------
+     Turbulence_Model = SIMP( statut = 'o',typ = 'TXM', defaut = "Constant Viscosity", 
+#    -----------------------------------------------------------------------
+          into = ("Constant Viscosity", "Elder", "K-Epsilon Model", "Smagorinski"),
+          fr = 'Pour  Elder, il faut pas oublier d ajuster les deux valeurs du mot-cle : COEFFICIENTS ADIMENSIONNELS DE DISPERSION\n\
+Pour K-Epsilon Model, ce meme parametre doit retrouver sa vraie valeur physique car elle est utilisee comme telle dans le modele de turbulence',
+    ang = 'When Elder, the two values of key-word : NON-DIMENSIONAL DISPERSION COEFFICIENTS are used \n\
+When K-Epsilon Model, this parameter should recover its true physical value, since it is used as such in the turbulence model.',),
+
+#          ------------------------------------
+           b_turbu_const = BLOC(condition = 'Turbulence_Model == "Constant Viscosity"',
+#          ------------------------------------
+#              ------------------------------------
+               Velocity_Diffusivity = SIMP( statut = 'o',typ = 'R',
+#              ------------------------------------
+                   defaut = 1.E-6,
+                   fr = 'Fixe de facon uniforme pour l ensemble du domaine la valeur du coefficient de diffusion de viscosite globale (dynamique + turbulente).\n\
+Cette valeur peut avoir une influence non negligeable sur la forme et la taille des recirculations.',
+                   ang = 'Sets, in an even way for the whole domain, the value of the coefficient of global (dynamic+turbulent) viscosity. \n\
+this value may have a significant effect both on the shapes and sizes of recirculation zones.',),
+            ), # fin b_turbu_const
+
+#          ------------------------------------
+           b_turbu_elder = BLOC(condition = 'Turbulence_Model == "Elder"',
+#          ------------------------------------
+#              ------------------------------------
+               Non_Dimensional_Dispersion_Coefficients = SIMP (statut = 'o',
+#              ------------------------------------
+                   typ = Tuple(2),validators = VerifTypeTuple(('R','R')),defaut = (6.,0.6),
+                   fr = 'coefficients longitudinal et transversal dans la formule de Elder.',
+                   ang = 'Longitudinal and transversal coefficients in elder s formula.  Used only with turbulence model number 2',),
+           ), # fin bloc b_turbu_elder
+
+#    -----------------------------------------------------------------------
+     Accuracy_Of_K = SIMP( statut = 'o',typ = 'R', defaut = 1e-09 ,
+#    -----------------------------------------------------------------------
+            fr = 'Fixe la precision demandee sur k pour le test d arret dans letape de diffusion et termes sources du modele k-epsilon.',
+            ang = 'Sets the required accuracy for computing k in the diffusion and source terms step of the k-epsilon model.',),
+
+#    -----------------------------------------------------------------------
+     Accuracy_Of_Epsilon = SIMP( statut = 'o',typ = 'R', defaut = 1e-09 ,
+#    -----------------------------------------------------------------------
+            fr = 'Fixe la precision demandee sur epsilon pour le test darret dans letape de diffusion et termes sources de k et epsilon.',
+            ang = 'Sets the required accuracy for computing epsilon in the diffusion and source-terms step of the k-epsilon model.',),
+
+#    -----------------------------------------------------------------------
+     Time_Step_Reduction_For_K_Epsilon_Model = SIMP( statut = 'f',typ = 'R', defaut = 1.0 ,
+#    -----------------------------------------------------------------------
+           fr = 'Coefficient reducteur du pas de temps pour le modele k-epsilon (qui est normalement identique a celui du systeme hydrodynamique).\n\
+Utilisation deconseillee',
+           ang = 'Time step reduction coefficient for k-epsilon model (which is normally same the same as that of the hydrodynamic system).\n\
+Not recommended for use.',),
+
+#    -----------------------------------------------------------------------
+     Maximum_Number_Of_Iterations_For_K_And_Epsilon = SIMP( statut = 'o',typ = 'I',
+#    -----------------------------------------------------------------------
+           defaut = 50 ,
+           fr = 'Fixe le nombre maximum diterations accepte lors de la resolution du systeme diffusion-termes sources du modele k-epsilon.',
+           ang = 'Sets the maximum number of iterations that are acceptable when solving the diffusion source-terms step of the k-epsilon model.',),
+
+#    -----------------------------------------------------------------------
+     Turbulence_Model_For_Solid_Boundaries = SIMP( statut = 'o',typ = 'TXM',
+#    -----------------------------------------------------------------------
+           defaut = 'Rough' ,
+           into = ('Smooth', 'Rough'),
+           fr = 'Permet de choisir le regime de turbulence aux parois ',
+           ang = 'Provided for selecting the type of friction on the walls',),
+
+#    -----------------------------------------------------------------------
+      Solver_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'TXM',
+#    -----------------------------------------------------------------------
+           defaut = "Conjugate gradient" ,
+           into = ("Conjugate gradient", "Conjugate residuals", "Conjugate gradient on normal equation", 
+                   "Minimum error", "Conjugate gradient squared", "Conjugate gradient squared stabilised (CGSTAB)",
+                   "GMRES", "Direct"),
+           fr = 'Permet de choisir le solveur utilise pour la resolution du systeme du modele k-epsilon',
+           ang = 'Makes it possible to select the solver used for solving the system of the k-epsilon model.',),
+
+#        -----------------------------------------------------------------------
+         b_gmres = BLOC(condition = 'Solver_For_K_Epsilon_Model == "GMRES"',
+#        -----------------------------------------------------------------------
+#            -----------------------------------------------------------------------
+             Option_For_The_Solver_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'I',
+#            -----------------------------------------------------------------------
+                  defaut = 2 ,val_min = 2,val_max = 15,
+                  fr = 'le mot cle est la dimension de lespace de KRILOV (valeurs conseillees entre 2 et 7)',
+                  ang = 'dimension of the krylov space try values between 2 and 7',),
+         ), # fin bloc b_gmres
+
+#    -----------------------------------------------------------------------
+     Preconditioning_For_K_Epsilon_Model = SIMP( statut = 'o',typ = 'TXM',
+#    -----------------------------------------------------------------------
+         defaut = 'Diagonal' ,
+         into = ("Diagonal", "No preconditioning", "Diagonal condensed", "Crout", "Diagonal and crout", "Diagonal condensed and crout"),
+         fr = 'Permet de preconditionner le systeme relatif au modele k-epsilon',
+         ang = 'Preconditioning of the linear system in the diffusion step of the k-epsilon model.',
+     ),
+#    -----------------------------------------------------------------------
+     Information_About_K_Epsilon_Model = SIMP(statut = 'o',typ = bool,defaut = True,
+#    -----------------------------------------------------------------------
+        fr = 'Donne le nombre d iterations du solveur de l etape de diffusion et termes sources du modele k-epsilon.',
+        ang = 'Gives the number of iterations of the solver in the diffusion and source terms step of the k-epsilon model.',
+     ),
+)# fin TURBULENCE
+
+
+
+
+# -----------------------------------------------------------------------
+PARTICLE_TRANSPORT = PROC(nom = "PARTICLE_TRANSPORT",op = None,
+# -----------------------------------------------------------------------
+#    -----------------------------------------------------------------------
+      Number_Of_Drogues = SIMP(statut = 'o',typ = 'I',defaut = 0,
+#    -----------------------------------------------------------------------
+      fr = 'Permet d''effectuer un suivi de flotteurs',
+      ang = 'Number of drogues in the computation.',),
+
+#    -----------------------------------------------------------------------
+     Algae_Transport_Model = SIMP( statut = 'o',typ = bool, defaut = False ,
+#    -----------------------------------------------------------------------
+          fr = 'Si oui, les flotteurs seront des algues',
+          ang = 'If yes, the floats or particles will be algae',),
+
+#        -----------------------------------------------------------------------
+         algae_exists = BLOC(condition = "Algae_Transport_Model == True", 
+#        -----------------------------------------------------------------------
+#            -----------------------------------------------------------------------
+             Algae_Type = SIMP( statut = 'o',typ = 'TXM',
+#            -----------------------------------------------------------------------
+                 into = ["Sphere", "Iridaea flaccida (close to ulva)", "Pelvetiopsis limitata", "Gigartina leptorhynchos"],
+                 defaut = "Sphere",
+                 fr = 'Type des algues. Pour sphere les algues seront modelisees comme des spheres, pour les autres choix voir Gaylord et al.(1994)',
+                 ang = 'Algae type. For sphere, the algae particles will be modeled as spheres, for the other choices see Gaylord et al.(1994)',),
+
+#            -----------------------------------------------------------------------
+             Diameter_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 0.1 ,
+#            -----------------------------------------------------------------------
+                 fr = 'Diametre des algues en m',
+                 ang = 'Diametre of algae in m',),
+
+#            -----------------------------------------------------------------------
+             Density_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 1050.0 ,
+#            -----------------------------------------------------------------------
+                 fr = 'Masse volumique des algues en kg/m3',
+                 ang = 'Density of algae in kg/m3',),
+
+#            -----------------------------------------------------------------------
+             Thickness_Of_Algae = SIMP( statut = 'o',typ = 'R', defaut = 0.01 ,
+#            -----------------------------------------------------------------------
+                 fr = 'Epaisseur des algues en m',
+                 ang = 'Thickness of algae in m',),
+      ), # fin algae
+
+
+#    -----------------------------------------------------------------------
+     Oil_Spill_Model = SIMP( statut = 'o',typ = bool, defaut = False ,
+#    -----------------------------------------------------------------------
+         fr = 'pour declencher le modele de derive de nappes, dans ce cas le fichier de commandes migrhycar est necessaire',
+         ang = 'will trigger the oil spill model, in this case the migrhycar steering file is needed',),
+
+#    -----------------------------------------------------------------------
+     oil_exists = BLOC(condition = "Oil_Spill_Model == True", 
+#    -----------------------------------------------------------------------
+#        -----------------------------------------------------------------------
+         Oil_Spill_Steering_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
+#        -----------------------------------------------------------------------
+             fr = 'Contient les donnees pour le modele de derive de nappes',
+             ang = 'Contains data for the oil spill model',),
+     ), # fin oil_exists
+
+#    -----------------------------------------------------------------------
+     drogues_exists = BLOC(condition = "Number_Of_Drogues!= 0 or Algae_Transport_Model == True or Oil_Spill_Model == True",
+#    -----------------------------------------------------------------------
+#        -----------------------------------------------------------------------
+         Drogues_File = SIMP( statut = 'o',typ = ('Fichier', 'All Files (*)',),
+#        -----------------------------------------------------------------------
+             fr = 'Fichier de resultat avec les positions des flotteurs',
+             ang = 'Results file with positions of drogues',),
+
+#        -----------------------------------------------------------------------
+         Printout_Period_For_Drogues = SIMP(statut = 'o',typ = 'I',defaut = 1,
+#        -----------------------------------------------------------------------
+              fr = 'Nombre de pas de temps entre 2 sorties de positions de flotteurs dans le fichier des resultats binaire supplementaire\n\
+N affecte pas la qualite du calcul de la trajectoire',
+              ang = 'Number of time steps between 2 outputs of drogues positions in the binary file',),
+     ),#fin drogues ou algae
+
+
+#    -----------------------------------------------------------------------
+     Stochastic_Diffusion_Model = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
+#    -----------------------------------------------------------------------
+         fr = 'Pour les particules : flotteurs, algues, hydrocarbures',
+         ang = 'Meant for particles: drogues, algae, oil spills',),
+
+#    -----------------------------------------------------------------------
+     Number_Of_Lagrangian_Drifts = SIMP( statut = 'o',typ = 'I', defaut = 0 ,
+#    -----------------------------------------------------------------------
+         fr = 'Permet deffectuer simultanement plusieurs calculs de derives lagrangiennes initiees a des pas differents',
+         ang = 'Provided for performing several computations of lagrangian drifts starting at different times.',),
+
+#    -----------------------------------------------------------------------
+     b_cons = BLOC(condition = "Number_Of_Lagrangian_Drifts != 0",
+#    -----------------------------------------------------------------------
+#        -----------------------------------------------------------------------
+         Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM", 
+#        -----------------------------------------------------------------------
+             defaut = "Add A and G in the VARIABLES FOR GRAPHIC PRINTOUTS key-word in POST_PROCESSING SECTION"),
+    ), # fin b_cons
+
+)# fin PARTICULE
+# -----------------------------------------------------------------------
+TRACERS = PROC(nom = "TRACERS",op = None,
+# -----------------------------------------------------------------------
+
+#        -----------------------------------------------------------------------
+         Tracers_Setting = FACT(statut = 'o',
+#        -----------------------------------------------------------------------
+
+#        -----------------------------------------------------------------------
+         Number_Of_Tracers = SIMP( statut='o',typ='I',
+#        -----------------------------------------------------------------------
+      defaut=0 ,
+      fr = 'Definit le nombre de traceurs.',
+      ang= 'Defines the number of tracers',),
+#PNPNPN Recalculer Names_Of_Tracers et Initial_Values_Of_Tracers comme des listes
+# pour Names_Of_Tracers = Names_Of_Tracers+Names_Of_Unit
+# il faut faire un validateur (la chaine doit faire 16 caracteres evtuellement complete par des blancs)
+
+#        ------------------------------------
+         Tracer = FACT(statut = 'o', max="**",
+#        ------------------------------------
+#            -----------------------------------------------------------------------
+              Name_Of_Tracer = SIMP( statut='o',typ='TXM',
+#             -----------------------------------------------------------------------
+              fr = 'Noms des traceurs en 16 caracteres',
+              ang= 'Name of tracers in 32 characters',),
+
+#            -----------------------------------------------------------------------
+              Name_Of_Unit = SIMP( statut='o',typ='TXM',
+#             -----------------------------------------------------------------------
+              fr = 'Noms de l unité en 16 caracteres',
+              ang= 'Name of unit in 16 characters',),
+
+        b_Computation_Continued = BLOC(condition = 'Computation_Continued == True',
+#PNPNPN Attention: global_jdc ne fonctionne pas bien : pas de propagation si chgt de valeur de Computation_Continued
+#            -----------------------------------------------------------------------
+             Initial_Values_Of_Tracers = SIMP( statut='o',
+#             -----------------------------------------------------------------------
+              typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+              defaut=(0.0, 0.0) ,
+              fr = 'Fixe la valeur initiale du traceur.',
+              ang= 'Sets the initial value of the tracer.',),
+
+           ), # fin b_Computation_Continued
+#             ------------------------------------
+              Boundary_Conditions = FACT( statut = 'f', 
+#            ------------------------------------
+#            -----------------------------------------------------------------------
+                  Prescribed_Tracers_Values = SIMP( statut='o',
+#            -----------------------------------------------------------------------
+                   typ = Tuple(2),validators = VerifTypeTuple(('R','R')),
+                   fr = 'Valeurs du traceur imposees aux frontieres liquides entrantes. Lire la partie du manuel consacree aux conditions aux limites',
+                   ang= 'Tracer values prescribed at the inflow boundaries. Read the manual section dealing with the boundary conditions',),
+           ), # fin Boundary_Conditions
+         ), # fin tracer
+
+#        -----------------------------------------------------------------------
+         Density_Effects = SIMP( statut='o',typ=bool,
+#        -----------------------------------------------------------------------
+         defaut=False ,
+         fr = 'prise en compte du gradient horizontal de densite le traceur est alors la salinite',
+         ang= 'the horizontal gradient of density is taken into account the tracer is then the salinity',),
+
+#        -----------------------------------------------------------------------
+         b_Density_Effects = BLOC(condition = 'Density_Effects == True',
+#        -----------------------------------------------------------------------
+#        ------------------------------------
+         Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
+#        ------------------------------------
+         defaut='the first Tracer must be the salinity expressed in kg/m3'),
+
+#        -----------------------------------------------------------------------
+             Mean_Temperature = SIMP( statut='o',typ='R',
+#        -----------------------------------------------------------------------
+             defaut=20.0 ,
+             fr = 'temperature de reference pour le calcul des effets de densite ',
+             ang= 'reference temperature for density effects',),
+
+           ), # fin b_Density_Effects
+
+    ), # fin b_Tracers_Settings
+#    -----------------------------------------------------------------------
+     Solving = FACT( statut='o',
+#    -----------------------------------------------------------------------
+#       -----------------------------------------------------------------------
+        Solver_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
+#       -----------------------------------------------------------------------
+               defaut='1="conjugate gradient"' ,
+               into =('1="conjugate gradient"', '2="conjugate residual"', '3="conjugate gradient on a normal equation"',
+                      '4="minimum error"', '5="squared conjugate gradient"', '6="cgstab"', '7="gmres "', '8="direct"'),),
+
+#       -----------------------------------------------------------------------
+        Solver_Option_For_Tracers_Diffusion = SIMP( statut='o',typ='I',
+#       -----------------------------------------------------------------------
+            defaut=2 ,
+            fr = 'si le solveur est GMRES (7) le mot cle est la dimension de lespace de KRILOV (valeurs conseillees entre 2 et 15)',
+            ang= 'WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE TRY VALUES BETWEEN 2 AND 15',),
+
+#       -----------------------------------------------------------------------
+        Preconditioning_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
+#       -----------------------------------------------------------------------
+         defaut='2="diagonal"' ,
+         into =('2="diagonal"', '0="no preconditioning "', '3="diagonal condensed"', '7="crout"', '14="diagonal and crout"', '21="diagonal condensed and crout"'),
+    fr = 'Permet de preconditionner le systeme relatif au traceur. Memes definition et possibilites que pour le mot-cle PRECONDITIONNEMENT.',
+    ang= 'Preconditioning of the linear system in the tracer diffusion step.  Same definition and possibilities as for the keyword PRECONDITIONING',
+     ),
+     ), # fin_Solving
+
+#    -----------------------------------------------------------------------
+     Accuracy = FACT( statut='o',
+#    -----------------------------------------------------------------------
+#       -----------------------------------------------------------------------
+        Accuracy_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='R', defaut=1e-06 ,
+#       -----------------------------------------------------------------------
+          fr = 'Fixe la precision demandee pour le calcul de la diffusion du traceur.',
+          ang= 'Sets the required accuracy for computing the tracer diffusion.',),
+
+#       -----------------------------------------------------------------------
+        Maximum_Number_Of_Iterations_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='I', defaut=60 ,
+#       -----------------------------------------------------------------------
+          fr = 'Limite le nombre diterations du solveur a chaque pas de temps pour le calcul de la diffusion du traceur.',
+          ang= 'Limits the number of solver iterations at each time step for the diffusion of tracer.',),
+
+     ), # fin Accuracy
+#    -----------------------------------------------------------------------
+     Sources = FACT( statut='o',
+#       -----------------------------------------------------------------------
+#        ------------------------------------
+         Consigne = SIMP(statut = "o",homo = 'information',typ = "TXM",
+#        ------------------------------------
+             defaut = "La longueur de la liste doit etre nb de source * nb de tracers"),
+#       -----------------------------------------------------------------------
+        Values_Of_The_Tracers_At_The_Sources = SIMP( statut='o',typ='R', max='**' ,
+#       -----------------------------------------------------------------------
+            fr = 'Valeurs des traceurs a chacune des sources',
+            ang= 'Values of the tracers at the sources',),
+     ), # fin Sources
+#    -----------------------------------------------------------------------
+     Metereology = FACT( statut='o',
+#    -----------------------------------------------------------------------
+# en fait, c'est une liste de Tuple de 2. Il faudrait caluler la taille en fonction du Nombre de sources
+#       -----------------------------------------------------------------------
+        Values_Of_Tracers_In_The_Rain = SIMP( 
+#       -----------------------------------------------------------------------
+          statut='o',typ='R',defaut=0, max=2 , fr = '', ang= '',),
+     ), # fin Metereology
+
+#    -----------------------------------------------------------------------
+     Numerical = FACT( statut='o',
+#    -----------------------------------------------------------------------
+
+#       -----------------------------------------------------------------------
+        Implicitation_Coefficient_Of_Tracers = SIMP( statut='o',typ='R',
+#       -----------------------------------------------------------------------
+           defaut=0.6 ,
+           fr = 'Fixe la valeur du coefficient dimplicitation du traceur',
+           ang= 'Sets the value of the implicitation coefficient for the tracer',),
+
+#       -----------------------------------------------------------------------
+        Diffusion_Of_Tracers = SIMP( statut='o',typ=bool,
+#       -----------------------------------------------------------------------
+           defaut=True ,
+           fr = 'Prise en compte ou non de la diffusion du traceur passif.',
+           ang= 'The diffusion of the passive tracer is taken into account or ignored.',), 
+
+#      ------------------------------------
+       b_Diffusion_Of_Tracers = BLOC(condition = 'Diffusion_Of_Tracers == True',
+#      ------------------------------------
+#           ------------------------------------
+            Coefficient_For_Diffusion_Of_Tracers = SIMP( statut='o',typ='R',
+#           ------------------------------------
+            defaut=1e-06 ,
+            fr = 'Fixe la valeur du coefficient de diffusion du traceur.  Linfluence de ce parametre sur levolution du traceur dans le temps est importante.',
+            ang= 'Sets the value of the tracer diffusivity.',),
+       
+#           ------------------------------------
+            Option_For_The_Diffusion_Of_Tracers = SIMP( statut='o',typ='TXM',
+#           ------------------------------------
+            defaut='Diffusion in the form div( nu grad(T))' ,
+            into=[ 'Diffusion in the form div( nu grad(T))', 'Diffusion in the form 1/h div ( h nu grad(T))',],),
+       ), # fin b_Diffusion_Of_Tracers
+
+#      ------------------------------------
+       Scheme_For_Advection_Of_Tracers = SIMP( statut='o',typ='TXM',
+#      ------------------------------------
+           defaut="CHARACTERISTICS" ,
+           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"),
+           fr = 'Choix du schema de convection pour les traceurs, remplace FORME DE LA CONVECTION',
+           ang= 'Choice of the advection scheme for the tracers, replaces TYPE OF ADVECTION',),
+
+#      ------------------------------------
+       Scheme_Option_For_Advection_Of_Tracers = SIMP( statut='o',typ='TXM',
+#      ------------------------------------
+           defaut='explicit' ,
+           into=['explicit','predictor-corrector for tracers'],
+           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',
+           ang= 'If present replaces and has priority over: OPTION FOR CHARACTERISTICS SUPG OPTION IF PSI SCHEME: 1=explicit 2=predictor-corrector for tracers',),
+
+#      ------------------------------------
+       Mass_Lumping_On_Tracers = SIMP ( statut='o',typ='R',
+#      ------------------------------------
+           defaut=0,
+           fr = 'Fixe le taux de mass-lumping effectue sur le traceur.',
+           ang = 'Sets the amount of mass-lumping that is performed on the tracer.',),
+
+    ), # fin Numerical
+#    -----------------------------------------------------------------------
+     Degradation = FACT( statut='o',
+#    -----------------------------------------------------------------------
+
+# PN Attention, il faut recalculer Law_Of_Tracers_Degradation
+# et les coefficients.
+# Question : pourquoi 2 et pas selon le nb de tracer
+# Est ce que ce $ va sous tracer ?
+#        -----------------------------------------------------------------------
+         Law1_Of_Tracers_Degradation = SIMP( statut='o',typ='TXM',
+#        -----------------------------------------------------------------------
+            into=["NO DEGRADATION","F(T90) LAW"],
+            defaut="NO DEGRADATION",
+            fr = 'Prise en compte dune loi de decroissance des traceurs',
+            ang= 'Take in account a law for tracers decrease',),
+
+#        -----------------------------------------------------------------------
+         b_Law1 = BLOC(condition = 'Law1_Of_Tracers_Degradation == "F(T90) LAW"',
+#        -----------------------------------------------------------------------
+#            -----------------------------------------------------------------------
+             Coefficient_1_For_Law_Of_Tracers_Degradation = SIMP( statut='o',typ='R',
+#            -----------------------------------------------------------------------
+                  fr = 'Coefficient 1 de la loi de decroissance des traceurs',
+                   ang= 'Coefficient 1 of law for tracers decrease',),
+         ),# fin b_Law1
+
+#        -----------------------------------------------------------------------
+         Law2_Of_Tracers_Degradation = SIMP( statut='o',typ='TXM',
+#        -----------------------------------------------------------------------
+            into=["NO DEGRADATION","F(T90) LAW"],
+            defaut="NO DEGRADATION",
+            fr = 'Prise en compte dune loi de decroissance des traceurs',
+            ang= 'Take in account a law for tracers decrease',),
+
+#        -----------------------------------------------------------------------
+         b_Law2 = BLOC(condition = 'Law2_Of_Tracers_Degradation == "F(T90) LAW"',
+#        -----------------------------------------------------------------------
+#            -----------------------------------------------------------------------
+             Coefficient_2_For_Law_Of_Tracers_Degradation = SIMP( statut='o',typ='R',
+#            -----------------------------------------------------------------------
+                  fr = 'Coefficient 2 de la loi de decroissance des traceurs',
+                   ang= 'Coefficient 2 of law for tracers decrease',),
+         ),# fin b_Law2
+    ), # fin Degradation
+
+)# fin TRACERS
+
+
+Ordre_Des_Commandes = ( 'INITIALIZATION', 'BOUNDARY_CONDITIONS','GENERAL_PARAMETERS', 'PHYSICAL_PARAMETERS', 'NUMERICAL_PARAMETERS',
+'TURBULENCE', 'TRACERS', 'PARTICLE_TRANSPORT', 'CONSTRUCTION_WORKS_MODELLING',  'TIDE_PARAMETERS', 'OUTPUT_FILES')
diff --git a/ts/a.py b/ts/a.py
new file mode 100644 (file)
index 0000000..3e93a25
--- /dev/null
+++ b/ts/a.py
@@ -0,0 +1,8 @@
+liste=l.split()
+if len(liste) > 1 :
+   txt=""
+   for e in liste:
+       txt+='_'+e
+   txt=txt[1:]
+else :
+   txt=l
diff --git a/ts/dicoparser.py b/ts/dicoparser.py
new file mode 100644 (file)
index 0000000..751673e
--- /dev/null
@@ -0,0 +1,160 @@
+
+import shlex
+
+DICO_EXT = '.dico'
+
+class DicoParser:
+       def __init__( self, theFileName, theStartAttr, theIndexAttr ):
+               if theFileName=='':
+                       return
+               if not theFileName.endswith( DICO_EXT ):
+                       theFileName += DICO_EXT
+               aFile = open( theFileName )
+               self.data = self.parse( aFile.read(), theStartAttr, theIndexAttr )
+               aFile.close()
+               
+       def parse( self, theText, theStartAttr, theIndexAttr ):
+               aTokenList = self.parse_tokens( theText )
+               self.expand_values( aTokenList )
+               aList = self.convert_to_tuples( aTokenList )
+               return self.convert_to_blocks( aList, theStartAttr, theIndexAttr )
+               
+       def parse_tokens( self, theText ):
+               theText = theText.replace( "''", "`" )
+               aLexer = shlex.shlex( theText )
+               aLexer.commenters = '/'
+               aLexer.quotes = '\'"'
+               aLexer.wordchars = aLexer.wordchars + '-.'
+               aTokenList = []
+               for aToken in aLexer:
+                       #print aToken
+                       if aToken[0]=="'" and aToken[-1]=="'":
+                               aToken = aToken[1:-1]
+                       elif aToken[0]=='"' and aToken[-1]=='"':
+                               aToken = aToken[1:-1]
+                       if aToken=='`':
+                               aToken = ''
+                       aToken = aToken.replace( "`", "'" )
+                       aToken = aToken.replace( "\n", "" )
+                       aToken = self.simplify_spaces( aToken )
+                       #print aToken
+                       aTokenList.append( aToken )
+               return aTokenList
+
+       def simplify_spaces( self, theToken ):
+               return ' '.join( theToken.split() )
+
+       def expand_values( self, theList ):
+               for i in xrange( 0, len( theList ) ):
+                       if '=' in theList[i] and theList[i]!='=':
+                               aTokenList = self.parse_tokens( theList[i] )
+                               aSubItemsList = self.convert_to_tuples( aTokenList )
+                               if( len( aSubItemsList ) == 0 ):
+                                       print theList[i]
+                               theList[i] = aSubItemsList[0] # we assume that only one '=' in the subitem
+
+       def convert_to_tuples( self, theList ):
+               aPairsList = []
+               aKey = ''
+               i = 0
+               n = len( theList )
+               while i<n:
+                       if theList[i]=='=' and i<n-1:
+                               aPairsList.append( (aKey, theList[i+1]) )
+                               i = i + 1
+                       elif theList[i]==';' and len( aPairsList ) > 0 and i<n-1:
+                               aKey, aValue = aPairsList[-1]
+                               if isinstance( aValue, list ):
+                                       aValue.append( theList[i+1] )
+                               else:
+                                       aValue = [aValue, theList[i+1]]
+                               aPairsList[-1] = ( aKey, aValue )
+                               i = i + 1
+                       else:
+                               aKey = theList[i]
+                       i = i + 1
+               return aPairsList
+
+       def convert_to_blocks( self, theTuples, theStartAttr, theIndexAttr ):
+               aData = {}
+               aBlockKey = ''
+               aBlock = {}
+               for aKey, aValue in theTuples:
+                       #print aKey
+                       if aKey==theStartAttr:
+                               #print "__start__"
+                               if len(aBlock)>0:
+                                       aData[aBlockKey] = aBlock
+                               aBlockKey = ''
+                               aBlock = {}
+                       elif aKey==theIndexAttr:
+                               #print "__index__"
+                               aBlockKey = aValue
+                               #print aBlockKey
+                       aBlock[aKey] = aValue
+                       #print aData
+               if len(aBlock)>0:
+                       aData[aBlockKey] = aBlock
+               return aData
+
+       def are_equal( self, theStrDico, theStrCata ):
+               return theStrDico == self.to_dico_str( theStrCata )
+               
+       def to_dico_str( self, theStrCata ):
+               aCata = theStrCata.replace( '_', ' ' )
+               aCata = aCata.upper()
+               return aCata
+
+       def to_cata_str( self, theStrDico ):
+               aWordsList = theStrDico.split()
+               aCata = []
+               for aWord in aWordsList:
+                       aWord = aWord.lower()
+                       aWord = aWord[0].upper() + aWord[1:]
+                       aCata.append( aWord )
+               return ' '.join( aCata )
+               
+       def search_in_block( self, theBlock, theAttrTr ):
+               #print 'search_in_block:', theAttrTr
+               return theBlock[theAttrTr]
+               
+       def search( self, theIndexText, theAttrTr, theChoiceText, theAttrCh, theAttrChTr ):
+               anIndexText = self.to_dico_str( theIndexText )
+               if not anIndexText in self.data:
+                       return ''
+               
+               if theAttrCh=='':
+                       return self.search_in_block( self.data[anIndexText], theAttrTr )
+                       
+               aDataCh = self.search_in_block( self.data[anIndexText], theAttrCh )
+               aDataChTr = self.search_in_block( self.data[anIndexText], theAttrChTr )
+               if isinstance( theChoiceText, basestring ):
+                       aChoiceText = self.to_dico_str( theChoiceText )
+               else:
+                       aChoiceText = theChoiceText
+               #print 'Choice text:', aChoiceText
+               #print 'Choice data:', aDataCh
+               #print 'Choice tr data:', aDataChTr
+               if isinstance( aDataCh, basestring ) and aDataCh==aChoiceText:
+                       return aDataChTr
+               
+               for i in xrange( 0, len(aDataCh) ):
+                       if isinstance( aDataCh[i], tuple ):
+                               aKey, aValue = aDataCh[i]
+                       elif isinstance( aDataCh[i], basestring ):
+                               aKey = ''
+                               aValue = aDataCh[i]
+                       #print aKey, aValue
+                       if aValue==aChoiceText:
+                               if isinstance( aDataChTr[i], tuple ):
+                                       aKeyTr, aValueTr = aDataChTr[i]
+                               elif isinstance( aDataChTr[i], basestring ):
+                                       aKeyTr = ''
+                                       aValueTr = aDataChTr[i]
+                               return aValueTr
+               return ''
+
+       def translate( self, theIndexText, theAttrTr, theChoiceText='', theAttrCh='', theAttrChTr='' ):
+               aTrText = self.search( theIndexText, theAttrTr, theChoiceText, theAttrCh, theAttrChTr )
+               #print aTrText
+               return self.to_cata_str( aTrText )
diff --git a/ts/main.ts b/ts/main.ts
new file mode 100644 (file)
index 0000000..f192f4e
--- /dev/null
@@ -0,0 +1,1614 @@
+<!DOCTYPE TS>
+<TS>
+  <context>
+    <name/>
+    <message>
+      <source>
+        Values_Of_Tracers_In_The_Rain
+      </source>
+      <translation>
+        Valeurs_Des_Traceurs_Dans_La_Pluie
+      </translation>
+    </message>
+    <message>
+      <source>
+        Threshold_Depth_For_Receding_Procedure
+      </source>
+      <translation>
+        Profondeur_Limite_Pour_Procedure_De_Ressuyage
+      </translation>
+    </message>
+    <message>
+      <source>
+        Title
+      </source>
+      <translation>
+        Titre
+      </translation>
+    </message>
+    <message>
+      <source>
+        Spatial_Projection_Type
+      </source>
+      <translation>
+        Type_De_Projection_Spatiale
+      </translation>
+    </message>
+    <message>
+      <source>
+        Stochastic_Diffusion_Model
+      </source>
+      <translation>
+        Modele_De_Diffusion_Stochastique
+      </translation>
+    </message>
+    <message>
+      <source>
+        Drogues_File
+      </source>
+      <translation>
+        Fichier_Des_Flotteurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Origin_Coordinates
+      </source>
+      <translation>
+        Coordonnees_De_L'origine
+      </translation>
+    </message>
+    <message>
+      <source>
+        Velocities_Of_The_Sources_Along_X
+      </source>
+      <translation>
+        Vitesses_Des_Sources_Selon_X
+      </translation>
+    </message>
+    <message>
+      <source>
+        Velocities_Of_The_Sources_Along_Y
+      </source>
+      <translation>
+        Vitesses_Des_Sources_Selon_Y
+      </translation>
+    </message>
+    <message>
+      <source>
+        Finite_Volume_Scheme
+      </source>
+      <translation>
+        Schema_En_Volumes_Finis
+      </translation>
+    </message>
+    <message>
+      <source>
+        Density_Of_Algae
+      </source>
+      <translation>
+        Masse_Volumique_Des_Algues
+      </translation>
+    </message>
+    <message>
+      <source>
+        Geometry_File
+      </source>
+      <translation>
+        Fichier_De_Geometrie
+      </translation>
+    </message>
+    <message>
+      <source>
+        Turbulence_Model
+      </source>
+      <translation>
+        Modele_De_Turbulence
+      </translation>
+    </message>
+    <message>
+      <source>
+        Oil_Spill_Model
+      </source>
+      <translation>
+        Modele_De_Nappes_D'hydrocarbures
+      </translation>
+    </message>
+    <message>
+      <source>
+        Definition_Of_Zones
+      </source>
+      <translation>
+        Definition_De_Zones
+      </translation>
+    </message>
+    <message>
+      <source>
+        Rain_Or_Evaporation
+      </source>
+      <translation>
+        Pluie_Ou_Evaporation
+      </translation>
+    </message>
+    <message>
+      <source>
+        Water_Density
+      </source>
+      <translation>
+        Masse_Volumique_De_L'eau
+      </translation>
+    </message>
+    <message>
+      <source>
+        Sources_File
+      </source>
+      <translation>
+        Fichier_Des_Sources
+      </translation>
+    </message>
+    <message>
+      <source>
+        Friction_Coefficient
+      </source>
+      <translation>
+        Coefficient_De_Frottement
+      </translation>
+    </message>
+    <message>
+      <source>
+        Roughness_Coefficient_Of_Boundaries
+      </source>
+      <translation>
+        Coefficient_De_Rugosite_Des_Bords
+      </translation>
+    </message>
+    <message>
+      <source>
+        Option_For_Tidal_Boundary_Conditions
+      </source>
+      <translation>
+        Option_Pour_Les_Conditions_Aux_Limites_De_Maree
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coefficient_To_Calibrate_Tidal_Velocities
+      </source>
+      <translation>
+        Coefficient_De_Calage_Des_Vitesses_De_Courant
+      </translation>
+    </message>
+    <message>
+      <source>
+        Initial_Time_Set_To_Zero
+      </source>
+      <translation>
+        Remise_A_Zero_Du_Temps
+      </translation>
+    </message>
+    <message>
+      <source>
+        Maximum_Number_Of_Iterations_For_Diffusion_Of_Tracers
+      </source>
+      <translation>
+        Maximum_D'iterations_Pour_La_Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Binary_Results_File
+      </source>
+      <translation>
+        Fichier_De_Resultats_Binaire
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Drogues
+      </source>
+      <translation>
+        Nombre_De_Flotteurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Air_Pressure
+      </source>
+      <translation>
+        Pression_Atmospherique
+      </translation>
+    </message>
+    <message>
+      <source>
+        Mean_Depth_For_Linearization
+      </source>
+      <translation>
+        Profondeur_Moyenne_Pour_La_Linearisation
+      </translation>
+    </message>
+    <message>
+      <source>
+        Control_Of_Limits
+      </source>
+      <translation>
+        Controle_Des_Limites
+      </translation>
+    </message>
+    <message>
+      <source>
+        Free_Surface_Gradient_Compatibility
+      </source>
+      <translation>
+        Compatibilite_Du_Gradient_De_Surface_Libre
+      </translation>
+    </message>
+    <message>
+      <source>
+        Prescribed_Tracers_Values
+      </source>
+      <translation>
+        Valeurs_Imposees_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        defaut
+      </source>
+      <translation>
+        Saint-venant_Ef
+      </translation>
+    </message>
+    <message>
+      <source>
+        Velocity_Diffusivity
+      </source>
+      <translation>
+        Coefficient_De_Diffusion_Des_Vitesses
+      </translation>
+    </message>
+    <message>
+      <source>
+        Time_Step
+      </source>
+      <translation>
+        Pas_De_Temps
+      </translation>
+    </message>
+    <message>
+      <source>
+        Validation
+      </source>
+      <translation>
+        Validation
+      </translation>
+    </message>
+    <message>
+      <source>
+        Wind
+      </source>
+      <translation>
+        Vent
+      </translation>
+    </message>
+    <message>
+      <source>
+        Density_Effects
+      </source>
+      <translation>
+        Effets_De_Densite
+      </translation>
+    </message>
+    <message>
+      <source>
+        Implicitation_Coefficient_Of_Tracers
+      </source>
+      <translation>
+        Coefficient_D'implicitation_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Formatted_Results_File
+      </source>
+      <translation>
+        Fichier_De_Resultats_Formate
+      </translation>
+    </message>
+    <message>
+      <source>
+        Debugger
+      </source>
+      <translation>
+        Debugger
+      </translation>
+    </message>
+    <message>
+      <source>
+        Equations
+      </source>
+      <translation>
+        Equations
+      </translation>
+    </message>
+    <message>
+      <source>
+        Original_Date_Of_Time
+      </source>
+      <translation>
+        Date_De_L'origine_Des_Temps
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Private_Arrays
+      </source>
+      <translation>
+        Nombre_De_Tableaux_Prives
+      </translation>
+    </message>
+    <message>
+      <source>
+        Prescribed_Elevations
+      </source>
+      <translation>
+        Cotes_Imposees
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Time_Steps
+      </source>
+      <translation>
+        Nombre_De_Pas_De_Temps
+      </translation>
+    </message>
+    <message>
+      <source>
+        Wind_Velocity_Along_X
+      </source>
+      <translation>
+        Vitesse_Du_Vent_Suivant_X
+      </translation>
+    </message>
+    <message>
+      <source>
+        Variables_To_Be_Printed
+      </source>
+      <translation>
+        Variables_A_Imprimer
+      </translation>
+    </message>
+    <message>
+      <source>
+        Preconditioning
+      </source>
+      <translation>
+        Preconditionnement
+      </translation>
+    </message>
+    <message>
+      <source>
+        Reference_File_Format
+      </source>
+      <translation>
+        Format_Du_Fichier_De_Reference
+      </translation>
+    </message>
+    <message>
+      <source>
+        Type_Of_Sources
+      </source>
+      <translation>
+        Type_Des_Sources
+      </translation>
+    </message>
+    <message>
+      <source>
+        Tidal_Flats
+      </source>
+      <translation>
+        Bancs_Decouvrants
+      </translation>
+    </message>
+    <message>
+      <source>
+        Ascii_Database_For_Tide
+      </source>
+      <translation>
+        Base_Ascii_De_Donnees_De_Maree
+      </translation>
+    </message>
+    <message>
+      <source>
+        Sections_Output_File
+      </source>
+      <translation>
+        Fichier_De_Sortie_Des_Sections_De_Controle
+      </translation>
+    </message>
+    <message>
+      <source>
+        Mean_Temperature
+      </source>
+      <translation>
+        Temperature_Moyenne
+      </translation>
+    </message>
+    <message>
+      <source>
+        Initial_Elevation
+      </source>
+      <translation>
+        Cote_Initiale
+      </translation>
+    </message>
+    <message>
+      <source>
+        Tubes_Data_File
+      </source>
+      <translation>
+        Fichier_De_Donnees_Des_Buses
+      </translation>
+    </message>
+    <message>
+      <source>
+        Boundary_Conditions_File
+      </source>
+      <translation>
+        Fichier_Des_Conditions_Aux_Limites
+      </translation>
+    </message>
+    <message>
+      <source>
+        Breach
+      </source>
+      <translation>
+        Breche
+      </translation>
+    </message>
+    <message>
+      <source>
+        Treatment_Of_The_Linear_System
+      </source>
+      <translation>
+        Traitement_Du_Systeme_Lineaire
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coefficient_Of_Wind_Influence
+      </source>
+      <translation>
+        Coefficient_D'influence_Du_Vent
+      </translation>
+    </message>
+    <message>
+      <source>
+        List_Of_Points
+      </source>
+      <translation>
+        Liste_De_Points
+      </translation>
+    </message>
+    <message>
+      <source>
+        Listing_Printout_Period
+      </source>
+      <translation>
+        Periode_Pour_Les_Sorties_Listing
+      </translation>
+    </message>
+    <message>
+      <source>
+        Initial_Guess_For_H
+      </source>
+      <translation>
+        Ordre_Du_Tir_Initial_Pour_H
+      </translation>
+    </message>
+    <message>
+      <source>
+        Geometry_File_Format
+      </source>
+      <translation>
+        Format_Du_Fichier_De_Geometrie
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coefficient_1_For_Law_Of_Tracers_Degradation
+      </source>
+      <translation>
+        Coefficient_1_De_La_Loi_De_Degradation_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Lagrangian_Drifts
+      </source>
+      <translation>
+        Nombre_De_Derives_Lagrangiennes
+      </translation>
+    </message>
+    <message>
+      <source>
+        Weirs_Data_File
+      </source>
+      <translation>
+        Fichier_De_Donnees_Des_Seuils
+      </translation>
+    </message>
+    <message>
+      <source>
+        Rain_Or_Evaporation_In_Mm_Per_Day
+      </source>
+      <translation>
+        Pluie_Ou_Evaporation_En_Mm_Par_Jour
+      </translation>
+    </message>
+    <message>
+      <source>
+        Solver
+      </source>
+      <translation>
+        Solveur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Maximum_Number_Of_Friction_Domains
+      </source>
+      <translation>
+        Nombre_Maximum_De_Domaines_De_Frottement
+      </translation>
+    </message>
+    <message>
+      <source>
+        Elements_Masked_By_User
+      </source>
+      <translation>
+        Elements_Masques_Par_L'utilisateur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Control_Sections
+      </source>
+      <translation>
+        Sections_De_Controle
+      </translation>
+    </message>
+    <message>
+      <source>
+        Depth_In_Friction_Terms
+      </source>
+      <translation>
+        Hauteur_Dans_Les_Termes_De_Frottement
+      </translation>
+    </message>
+    <message>
+      <source>
+        Solver_Accuracy
+      </source>
+      <translation>
+        Precision_Du_Solveur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Wave_Driven_Currents
+      </source>
+      <translation>
+        Courants_De_Houle
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Culverts
+      </source>
+      <translation>
+        Nombre_De_Siphons
+      </translation>
+    </message>
+    <message>
+      <source>
+        Liquid_Boundaries_File
+      </source>
+      <translation>
+        Fichier_Des_Frontieres_Liquides
+      </translation>
+    </message>
+    <message>
+      <source>
+        Maximum_Number_Of_Iterations_For_Identification
+      </source>
+      <translation>
+        Maximum_D'iterations_Pour_L'identification
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coefficient_For_Diffusion_Of_Tracers
+      </source>
+      <translation>
+        Coefficient_De_Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Option_For_The_Diffusion_Of_Velocities
+      </source>
+      <translation>
+        Option_Pour_La_Diffusion_Des_Vitesses
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coefficient_To_Calibrate_Tidal_Range
+      </source>
+      <translation>
+        Coefficient_De_Calage_Du_Marnage
+      </translation>
+    </message>
+    <message>
+      <source>
+        Binary_Data_File_1
+      </source>
+      <translation>
+        Fichier_De_Donnees_Binaire_1
+      </translation>
+    </message>
+    <message>
+      <source>
+        Binary_Data_File_2
+      </source>
+      <translation>
+        Fichier_De_Donnees_Binaire_2
+      </translation>
+    </message>
+    <message>
+      <source>
+        Minor_Constituents_Inference
+      </source>
+      <translation>
+        Interpolation_De_Composantes_Mineures
+      </translation>
+    </message>
+    <message>
+      <source>
+        Implicitation_For_Velocity
+      </source>
+      <translation>
+        Implicitation_Pour_La_Vitesse
+      </translation>
+    </message>
+    <message>
+      <source>
+        Continuity_Correction
+      </source>
+      <translation>
+        Correction_De_Continuite
+      </translation>
+    </message>
+    <message>
+      <source>
+        Original_Hour_Of_Time
+      </source>
+      <translation>
+        Heure_De_L'origine_Des_Temps
+      </translation>
+    </message>
+    <message>
+      <source>
+        Law_Of_Friction_On_Lateral_Boundaries
+      </source>
+      <translation>
+        Loi_De_Frottement_Sur_Les_Parois_Laterales
+      </translation>
+    </message>
+    <message>
+      <source>
+        Propagation
+      </source>
+      <translation>
+        Propagation
+      </translation>
+    </message>
+    <message>
+      <source>
+        Solver_For_Diffusion_Of_Tracers
+      </source>
+      <translation>
+        Solveur_Pour_La_Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Discretizations_In_Space
+      </source>
+      <translation>
+        Discretisations_En_Espace
+      </translation>
+    </message>
+    <message>
+      <source>
+        Solver_Option
+      </source>
+      <translation>
+        Option_Du_Solveur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Advection_Of_H
+      </source>
+      <translation>
+        Convection_De_H
+      </translation>
+    </message>
+    <message>
+      <source>
+        Output_Of_Initial_Conditions
+      </source>
+      <translation>
+        Sortie_Des_Conditions_Initiales
+      </translation>
+    </message>
+    <message>
+      <source>
+        Record_Number_For_Restart
+      </source>
+      <translation>
+        Enregistrement_Pour_Suite_De_Calcul
+      </translation>
+    </message>
+    <message>
+      <source>
+        Accuracy_For_Diffusion_Of_Tracers
+      </source>
+      <translation>
+        Precision_Pour_La_Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Initial_Guess_For_U
+      </source>
+      <translation>
+        Ordre_Du_Tir_Initial_Pour_U
+      </translation>
+    </message>
+    <message>
+      <source>
+        Advection_Of_K_And_Epsilon
+      </source>
+      <translation>
+        Convection_De_K_Et_Epsilon
+      </translation>
+    </message>
+    <message>
+      <source>
+        Identification_Method
+      </source>
+      <translation>
+        Methode_D'identification
+      </translation>
+    </message>
+    <message>
+      <source>
+        Names_Of_Points
+      </source>
+      <translation>
+        Noms_Des_Points
+      </translation>
+    </message>
+    <message>
+      <source>
+        Zone_Number_In_Geographic_System
+      </source>
+      <translation>
+        Numero_De_Fuseau_Ou_Projection_Dans_Le_Systeme_Geographique
+      </translation>
+    </message>
+    <message>
+      <source>
+        Matrix_Storage
+      </source>
+      <translation>
+        Stockage_Des_Matrices
+      </translation>
+    </message>
+    <message>
+      <source>
+        Algae_Type
+      </source>
+      <translation>
+        Type_Des_Algues
+      </translation>
+    </message>
+    <message>
+      <source>
+        Thickness_Of_Algae
+      </source>
+      <translation>
+        Epaisseur_Des_Algues
+      </translation>
+    </message>
+    <message>
+      <source>
+        Newmark_Time_Integration_Coefficient
+      </source>
+      <translation>
+        Coefficient_D'integration_En_Temps_De_Newmark
+      </translation>
+    </message>
+    <message>
+      <source>
+        Friction_Data_File
+      </source>
+      <translation>
+        Fichier_De_Donnees_Pour_Le_Frottement
+      </translation>
+    </message>
+    <message>
+      <source>
+        Implicitation_For_Diffusion_Of_Velocity
+      </source>
+      <translation>
+        Implicitation_Pour_La_Diffusion_Des_Vitesses
+      </translation>
+    </message>
+    <message>
+      <source>
+        Limit_Values
+      </source>
+      <translation>
+        Valeurs_Limites
+      </translation>
+    </message>
+    <message>
+      <source>
+        Advection
+      </source>
+      <translation>
+        Convection
+      </translation>
+    </message>
+    <message>
+      <source>
+        Binary_Database_1_For_Tide
+      </source>
+      <translation>
+        Base_Binaire_1_De_Donnees_De_Maree
+      </translation>
+    </message>
+    <message>
+      <source>
+        Results_File
+      </source>
+      <translation>
+        Fichier_Des_Resultats
+      </translation>
+    </message>
+    <message>
+      <source>
+        Algae_Transport_Model
+      </source>
+      <translation>
+        Modele_De_Transport_Des_Algues
+      </translation>
+    </message>
+    <message>
+      <source>
+        Treatment_Of_Negative_Depths
+      </source>
+      <translation>
+        Traitement_Des_Hauteurs_Negatives
+      </translation>
+    </message>
+    <message>
+      <source>
+        Option_For_The_Diffusion_Of_Tracers
+      </source>
+      <translation>
+        Option_Pour_La_Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Ordinates_Of_Sources
+      </source>
+      <translation>
+        Ordonnees_Des_Sources
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coriolis_Coefficient
+      </source>
+      <translation>
+        Coefficient_De_Coriolis
+      </translation>
+    </message>
+    <message>
+      <source>
+        Water_Discharge_Of_Sources
+      </source>
+      <translation>
+        Debits_Des_Sources
+      </translation>
+    </message>
+    <message>
+      <source>
+        Advection_Of_U_And_V
+      </source>
+      <translation>
+        Convection_De_U_Et_V
+      </translation>
+    </message>
+    <message>
+      <source>
+        Variables_For_Graphic_Printouts
+      </source>
+      <translation>
+        Variables_Pour_Les_Sorties_Graphiques
+      </translation>
+    </message>
+    <message>
+      <source>
+        Geographic_System
+      </source>
+      <translation>
+        Systeme_Geographique
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coriolis
+      </source>
+      <translation>
+        Coriolis
+      </translation>
+    </message>
+    <message>
+      <source>
+        Desired_Courant_Number
+      </source>
+      <translation>
+        Nombre_De_Courant_Souhaite
+      </translation>
+    </message>
+    <message>
+      <source>
+        Latitude_Of_Origin_Point
+      </source>
+      <translation>
+        Latitude_Du_Point_Origine
+      </translation>
+    </message>
+    <message>
+      <source>
+        Time_Range_For_Fourier_Analysis
+      </source>
+      <translation>
+        Bornes_En_Temps_Pour_L'analyse_De_Fourier
+      </translation>
+    </message>
+    <message>
+      <source>
+        Graphic_Printout_Period
+      </source>
+      <translation>
+        Periode_Pour_Les_Sorties_Graphiques
+      </translation>
+    </message>
+    <message>
+      <source>
+        Tide_Generating_Force
+      </source>
+      <translation>
+        Force_Generatrice_De_La_Maree
+      </translation>
+    </message>
+    <message>
+      <source>
+        Preconditioning_For_Diffusion_Of_Tracers
+      </source>
+      <translation>
+        Preconditionnement_Pour_La_Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Tubes
+      </source>
+      <translation>
+        Nombre_De_Buses
+      </translation>
+    </message>
+    <message>
+      <source>
+        Vertical_Structures
+      </source>
+      <translation>
+        Structures_Verticales
+      </translation>
+    </message>
+    <message>
+      <source>
+        Stop_If_A_Steady_State_Is_Reached
+      </source>
+      <translation>
+        Arret_Si_Un_Etat_Permanent_Est_Atteint
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Weirs
+      </source>
+      <translation>
+        Nombre_De_Seuils
+      </translation>
+    </message>
+    <message>
+      <source>
+        Listing_Printout
+      </source>
+      <translation>
+        Sortie_Listing
+      </translation>
+    </message>
+    <message>
+      <source>
+        Previous_Computation_File
+      </source>
+      <translation>
+        Fichier_Du_Calcul_Precedent
+      </translation>
+    </message>
+    <message>
+      <source>
+        Fortran_File
+      </source>
+      <translation>
+        Fichier_Fortran
+      </translation>
+    </message>
+    <message>
+      <source>
+        Sections_Input_File
+      </source>
+      <translation>
+        Fichier_Des_Sections_De_Controle
+      </translation>
+    </message>
+    <message>
+      <source>
+        Binary_Database_2_For_Tide
+      </source>
+      <translation>
+        Base_Binaire_2_De_Donnees_De_Maree
+      </translation>
+    </message>
+    <message>
+      <source>
+        Results_File_Format
+      </source>
+      <translation>
+        Format_Du_Fichier_Des_Resultats
+      </translation>
+    </message>
+    <message>
+      <source>
+        Accuracy_Of_K
+      </source>
+      <translation>
+        Precision_Sur_K
+      </translation>
+    </message>
+    <message>
+      <source>
+        Tidal_Model_File
+      </source>
+      <translation>
+        Fichier_Du_Modele_De_Maree
+      </translation>
+    </message>
+    <message>
+      <source>
+        Fourier_Analysis_Periods
+      </source>
+      <translation>
+        Periodes_D'analyse_De_Fourier
+      </translation>
+    </message>
+    <message>
+      <source>
+        H_Clipping
+      </source>
+      <translation>
+        Clipping_De_H
+      </translation>
+    </message>
+    <message>
+      <source>
+        Tolerances_For_Identification
+      </source>
+      <translation>
+        Precisions_Pour_L'identification
+      </translation>
+    </message>
+    <message>
+      <source>
+        Previous_Computation_File_Format
+      </source>
+      <translation>
+        Format_Du_Fichier_Du_Calcul_Precedent
+      </translation>
+    </message>
+    <message>
+      <source>
+        Prescribed_Flowrates
+      </source>
+      <translation>
+        Debits_Imposes
+      </translation>
+    </message>
+    <message>
+      <source>
+        Bottom_Topography_File
+      </source>
+      <translation>
+        Fichier_Des_Fonds
+      </translation>
+    </message>
+    <message>
+      <source>
+        Implicitation_For_Depth
+      </source>
+      <translation>
+        Implicitation_Pour_La_Hauteur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Cost_Function
+      </source>
+      <translation>
+        Fonction_Cout
+      </translation>
+    </message>
+    <message>
+      <source>
+        Diffusion_Of_Tracers
+      </source>
+      <translation>
+        Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Formatted_Data_File_1
+      </source>
+      <translation>
+        Fichier_De_Donnees_Formate_1
+      </translation>
+    </message>
+    <message>
+      <source>
+        Formatted_Data_File_2
+      </source>
+      <translation>
+        Fichier_De_Donnees_Formate_2
+      </translation>
+    </message>
+    <message>
+      <source>
+        Computation_Continued
+      </source>
+      <translation>
+        Suite_De_Calcul
+      </translation>
+    </message>
+    <message>
+      <source>
+        Breaches_Data_File
+      </source>
+      <translation>
+        Fichier_De_Donnees_Des_Breches
+      </translation>
+    </message>
+    <message>
+      <source>
+        Diffusion_Of_Velocity
+      </source>
+      <translation>
+        Diffusion_Des_Vitesses
+      </translation>
+    </message>
+    <message>
+      <source>
+        Type_Of_Advection
+      </source>
+      <translation>
+        Forme_De_La_Convection
+      </translation>
+    </message>
+    <message>
+      <source>
+        Solver_Option_For_Tracers_Diffusion
+      </source>
+      <translation>
+        Option_Du_Solveur_Pour_La_Diffusion_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Advection_Of_Tracers
+      </source>
+      <translation>
+        Convection_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Printout_Period_For_Drogues
+      </source>
+      <translation>
+        Periode_Pour_Les_Sorties_De_Flotteurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Option_For_The_Treatment_Of_Tidal_Flats
+      </source>
+      <translation>
+        Option_De_Traitement_Des_Bancs_Decouvrants
+      </translation>
+    </message>
+    <message>
+      <source>
+        Physical_Characteristics_Of_The_Tsunami
+      </source>
+      <translation>
+        Parametres_Physiques_Du_Tsunami
+      </translation>
+    </message>
+    <message>
+      <source>
+        Maximum_Number_Of_Iterations_For_K_And_Epsilon
+      </source>
+      <translation>
+        Maximum_D'iterations_Pour_K_Et_Epsilon
+      </translation>
+    </message>
+    <message>
+      <source>
+        Tidal_Data_Base
+      </source>
+      <translation>
+        Base_De_Donnees_De_Maree
+      </translation>
+    </message>
+    <message>
+      <source>
+        Maximum_Number_Of_Iterations_For_Solver
+      </source>
+      <translation>
+        Maximum_D'iterations_Pour_Le_Solveur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_Tracers
+      </source>
+      <translation>
+        Nombre_De_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Threshold_Depth_For_Wind
+      </source>
+      <translation>
+        Profondeur_Limite_Pour_Le_Vent
+      </translation>
+    </message>
+    <message>
+      <source>
+        Gravity_Acceleration
+      </source>
+      <translation>
+        Acceleration_De_La_Pesanteur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Option_For_Characteristics
+      </source>
+      <translation>
+        Option_Pour_Les_Caracteristiques
+      </translation>
+    </message>
+    <message>
+      <source>
+        Spacing_Of_Roughness_Elements
+      </source>
+      <translation>
+        Espacement_Des_Elements_De_Frottement
+      </translation>
+    </message>
+    <message>
+      <source>
+        Parallel_Processors
+      </source>
+      <translation>
+        Processeurs_Paralleles
+      </translation>
+    </message>
+    <message>
+      <source>
+        Harmonic_Constants_File
+      </source>
+      <translation>
+        Fichier_Des_Constantes_Harmoniques
+      </translation>
+    </message>
+    <message>
+      <source>
+        Spherical_Coordinates
+      </source>
+      <translation>
+        Coordonnees_Spheriques
+      </translation>
+    </message>
+    <message>
+      <source>
+        Parameter_Estimation
+      </source>
+      <translation>
+        Estimation_De_Parametre
+      </translation>
+    </message>
+    <message>
+      <source>
+        Linearized_Propagation
+      </source>
+      <translation>
+        Propagation_Linearisee
+      </translation>
+    </message>
+    <message>
+      <source>
+        Accuracy_Of_Epsilon
+      </source>
+      <translation>
+        Precision_Sur_Epsilon
+      </translation>
+    </message>
+    <message>
+      <source>
+        Diameter_Of_Roughness_Elements
+      </source>
+      <translation>
+        Diametre_Des_Elements_De_Frottement
+      </translation>
+    </message>
+    <message>
+      <source>
+        Number_Of_First_Time_Step_For_Graphic_Printouts
+      </source>
+      <translation>
+        Numero_Du_Premier_Pas_De_Temps_Pour_Les_Sorties_Graphiques
+      </translation>
+    </message>
+    <message>
+      <source>
+        Threshold_For_Negative_Depths
+      </source>
+      <translation>
+        Seuil_Pour_Les_Profondeurs_Negatives
+      </translation>
+    </message>
+    <message>
+      <source>
+        Coefficient_To_Calibrate_Sea_Level
+      </source>
+      <translation>
+        Coefficient_De_Calage_Du_Niveau_De_Mer
+      </translation>
+    </message>
+    <message>
+      <source>
+        Wind_Velocity_Along_Y
+      </source>
+      <translation>
+        Vitesse_Du_Vent_Suivant_Y
+      </translation>
+    </message>
+    <message>
+      <source>
+        Information_About_Solver
+      </source>
+      <translation>
+        Informations_Sur_Le_Solveur
+      </translation>
+    </message>
+    <message>
+      <source>
+        Initial_Conditions
+      </source>
+      <translation>
+        Conditions_Initiales
+      </translation>
+    </message>
+    <message>
+      <source>
+        Culvert_Data_File
+      </source>
+      <translation>
+        Fichier_De_Donnees_Des_Siphons
+      </translation>
+    </message>
+    <message>
+      <source>
+        Maximum_Number_Of_Iterations_For_Advection_Schemes
+      </source>
+      <translation>
+        Maximum_D'iterations_Pour_Les_Schemas_De_Convection
+      </translation>
+    </message>
+    <message>
+      <source>
+        Longitude_Of_Origin_Point
+      </source>
+      <translation>
+        Longitude_Du_Point_Origine
+      </translation>
+    </message>
+    <message>
+      <source>
+        Law_Of_Bottom_Friction
+      </source>
+      <translation>
+        Loi_De_Frottement_Sur_Le_Fond
+      </translation>
+    </message>
+    <message>
+      <source>
+        Option_For_Tsunami_Generation
+      </source>
+      <translation>
+        Option_Pour_La_Generation_De_Tsunami
+      </translation>
+    </message>
+    <message>
+      <source>
+        Type_Of_Weirs
+      </source>
+      <translation>
+        Type_Des_Seuils
+      </translation>
+    </message>
+    <message>
+      <source>
+        Record_Number_In_Wave_File
+      </source>
+      <translation>
+        Numero_De_L'enregistrement_Dans_Le_Fichier_De_Houle
+      </translation>
+    </message>
+    <message>
+      <source>
+        Abscissae_Of_Sources
+      </source>
+      <translation>
+        Abscisses_Des_Sources
+      </translation>
+    </message>
+    <message>
+      <source>
+        Values_Of_The_Tracers_At_The_Sources
+      </source>
+      <translation>
+        Valeurs_Des_Traceurs_Des_Sources
+      </translation>
+    </message>
+    <message>
+      <source>
+        Treatment_Of_Fluxes_At_The_Boundaries
+      </source>
+      <translation>
+        Traitement_Des_Flux_Aux_Frontieres
+      </translation>
+    </message>
+    <message>
+      <source>
+        Printing_Cumulated_Flowrates
+      </source>
+      <translation>
+        Impression_Du_Cumul_Des_Flux
+      </translation>
+    </message>
+    <message>
+      <source>
+        Bottom_Smoothings
+      </source>
+      <translation>
+        Lissages_Du_Fond
+      </translation>
+    </message>
+    <message>
+      <source>
+        Initial_Depth
+      </source>
+      <translation>
+        Hauteur_Initiale
+      </translation>
+    </message>
+    <message>
+      <source>
+        Minimum_Value_Of_Depth
+      </source>
+      <translation>
+        Valeur_Minimum_De_H
+      </translation>
+    </message>
+    <message>
+      <source>
+        Reference_File
+      </source>
+      <translation>
+        Fichier_De_Reference
+      </translation>
+    </message>
+    <message>
+      <source>
+        Turbulence_Model_For_Solid_Boundaries
+      </source>
+      <translation>
+        Regime_De_Turbulence_Pour_Les_Parois
+      </translation>
+    </message>
+    <message>
+      <source>
+        Duration
+      </source>
+      <translation>
+        Duree_Du_Calcul
+      </translation>
+    </message>
+    <message>
+      <source>
+        Stop_Criteria
+      </source>
+      <translation>
+        Criteres_D'arret
+      </translation>
+    </message>
+    <message>
+      <source>
+        Prescribed_Velocities
+      </source>
+      <translation>
+        Vitesses_Imposees
+      </translation>
+    </message>
+    <message>
+      <source>
+        Initial_Values_Of_Tracers
+      </source>
+      <translation>
+        Valeurs_Initiales_Des_Traceurs
+      </translation>
+    </message>
+    <message>
+      <source>
+        Compatible_Computation_Of_Fluxes
+      </source>
+      <translation>
+        Calcul_Compatible_Des_Flux
+      </translation>
+    </message>
+  </context>
+</TS>
diff --git a/ts/prefs.py b/ts/prefs.py
new file mode 100644 (file)
index 0000000..8771092
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright (C) 2007-2012   EDF R&D
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+code="TELEMAC" 
+import sys, os
+if os.path.dirname(os.path.abspath(__file__)) not in sys.path :
+   sys.path.insert(0,os.path.dirname(os.path.abspath(__file__)))
+if os.path.join(os.path.dirname(os.path.abspath(__file__)),'..') not in sys.path:
+   sys.path.insert(0,os.path.join(os.path.dirname(os.path.abspath(__file__)),'..'))
diff --git a/ts/telemac2dv6p3.dico b/ts/telemac2dv6p3.dico
new file mode 100644 (file)
index 0000000..578f26b
--- /dev/null
@@ -0,0 +1,5687 @@
+&DYN 
+/ 
+/!RUBRIQUE 'ENTREES-SORTIES, FICHIERS' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'ENTREES-SORTIES, GENERALITES' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'PARAMETRES NUMERIQUES' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'PARAMETRES NUMERIQUES, SOLVEUR' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'PARAMETRES NUMERIQUES, MODELE K-EPSILON' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'EQUATIONS' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'EQUATIONS, CONDITIONS LIMITES' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'EQUATIONS, CONDITIONS INITIALES' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'EQUATIONS, SOURCES' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/!RUBRIQUE 'CONSTANTES PHYSIQUES' 
+/!BACKGROUND 'LightGray' 
+/!FOREGROUND 'Brown' 
+/---SYSTEME-TELEMAC-V6P3------------------------------TELEMAC-2D------------- 
+/ 
+/Signification des differents mode d'acquisition/restitution 
+/des fichiers vis a vis du parallelisme : 
+/ 
+/  - "SCAL" :   
+/     Meme fichier pour tous les processeurs lu par tous.
+/     Seule la version du maitre est consideree apres calcul.
+/ 
+/  - "SELAFIN" :        
+/     Le fichier est "decompose/regroupe en sous-domaines" avec les outils 
+/      "partel/gretel" (dans le mode par defaut "parallelisme automatique")     
+/     Chaque processeur dispose d'un fichier prive. 
+/  - "SELAFIN-GEOM" : 
+/     idem SELAFIN mais pour le fichier de geometrie ='FICHIER DE GEOMETRIE' 
+/      (usage par le regroupeur GRETEL en parallelisme) 
+/ 
+/  - "PARAL" :  
+/     Le fichier est duplique avant calcul ("LIT") pour chaque processeur 
+/      (avec une extension numerique), sauf s'il pre-existe avec cette   
+/      extension numerique : il est alors utilise (copie).      
+/     En mode "non automatique" : les fichiers lus doivent pre-exister avec  
+/      leur extension numerique.        
+/     S'il s'agit d'un fichier resultat ("ECR"), le fichier est restitue 
+/      avec son extension numerique (fichier specifique a chaque processeur).   
+/ 
+/  - "CONLIM" :         
+/     Cette valeur designe le fichier des "conditions aux limites"      
+/     (utilise par le decoupeur "partel"). 
+/ 
+/  - "SECTION" :  
+/     Sections input file, to be treated in parallel by partel in  
+/     a similar way as CONLIM !jaj #### 
+/ 
+/---SYSTEME-TELEMAC-V6P3------------------------DeltaCAD-/-Septembre-2003---- 
+NOM = 'FICHIER DE GEOMETRIE' 
+NOM1 = 'GEOMETRY FILE' 
+TYPE = CARACTERE 
+INDEX = 6 
+MNEMO = 'T2D_FILES(T2DGEO)%NAME' 
+TAILLE = 0 
+SUBMIT = 'T2DGEO-READ-01;T2DGEO;OBLIG;BIN;LIT;SELAFIN-GEOM' 
+/DEFAUT = ' ' 
+/DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, FICHIERS*NOMS") 
+IS VALEUR (red)' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+AIDE = 'Nom du fichier contenant le maillage du calcul a realiser.' 
+AIDE1 = 'Name of the file containing the mesh. This file may also 
+contain the topography and the friction coefficients.' 
+NOM = 'CONTROLE DES LIMITES' 
+NOM1 = 'CONTROL OF LIMITS' 
+TYPE = LOGIQUE 
+INDEX = 23 
+MNEMO = 'VERLIM' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 =  NO 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CONTROLE' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'CONTROL' 
+COMPORT = 'Affichage ("VALEURS LIMITES") IS VALEUR ()' 
+NIVEAU = 2 
+AIDE = 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME 
+S''ARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES' 
+AIDE1 = 'USE WITH THE KEY-WORD : LIMIT VALUES, THE PROGRAM IS STOPPED IF 
+THE LIMITS ON U,V,H, OR T ARE TRESPASSED' 
+NOM = 'VALEURS LIMITES' 
+NOM1 = 'LIMIT VALUES' 
+TYPE = REEL 
+INDEX = 15 
+MNEMO = '' 
+TAILLE = 8 
+DEFAUT = -1000.;9000.;-1000.;1000.;-1000.;1000.;-1000.;1000. 
+DEFAUT1 = -1000.;9000.;-1000.;1000.;-1000.;1000.;-1000.;1000. 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CONTROLE' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'CONTROL' 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, GENERALITES*CONTROLE") 
+IS VALEUR (red)' 
+NIVEAU = 2 
+AIDE = 'Utilise avec le mot-cle CONTROLE DES LIMITES 
+        valeurs mini et maxi acceptables pour H,U,V et T dans l''ordre 
+        suivant : min(H) max(H) min(U) max(U) 
+                  min(V) max(V) min(T) max(T)' 
+AIDE1 = 'To be used with the key-word CONTROL OF LIMITS 
+        min and max acceptable values for H,U,V et T in the following 
+        order   : min(H) max(H) min(U) max(U) 
+                  min(V) max(V) min(T) max(T)' 
+NOM = 'PERIODE POUR LES SORTIES GRAPHIQUES' 
+NOM1 = 'GRAPHIC PRINTOUT PERIOD' 
+TYPE = ENTIER 
+INDEX = 1 
+MNEMO = 'LEOPRD' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, GRAPHIQUES ET LISTING") 
+IS VALEUR (red)' 
+NIVEAU = 1 
+AIDE = 'Determine la periode en nombre de pas de temps d''impression 
+des ''VARIABLES POUR LES SORTIES GRAPHIQUES'' (voir ce mot-cle) 
+dans le FICHIER DES RESULTATS.' 
+AIDE1 = 'Determines, in number of time steps, the printout period for 
+the VARIABLES FOR GRAPHIC PRINTOUTS in the RESULTS FILE.' 
+NOM = 'PERIODE DE SORTIE LISTING' 
+NOM1 = 'LISTING PRINTOUT PERIOD' 
+TYPE = ENTIER 
+INDEX = 2 
+MNEMO = 'LISPRD' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 1 
+AIDE = 'Determine la periode en nombre de pas de temps d''impression 
+des ''VARIABLES A IMPRIMER'' (voir ce mot-cle) Pour la mise au point, 
+il faut savoir que la sortie des resultats est effectuee 
+systematiquement sur le fichier de retour d''execution du code 
+(actuellement accessible par le menu 3.f de SPF sur IBM, et dans 
+le fichier !CAS.SORTIE sur station de travail)' 
+AIDE1 = 'Determines, in number of time steps, the printout period of 
+the VARIABLES TO BE PRINTED 
+The results are systematically printed out on the listing file 
+(file CAS.SORTIE at the workstation).' 
+NOM = 'NOMBRE DE PAS DE TEMPS' 
+NOM1 = 'NUMBER OF TIME STEPS' 
+TYPE = ENTIER 
+INDEX = 3 
+MNEMO = 'NIT' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'DUREE DU CALCUL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'DURATION' 
+COMPORT = 
+'Foreground ("PARAMETRES NUMERIQUES*DUREE DU CALCUL") 
+IS VALEUR (blue)' 
+NIVEAU = 1 
+AIDE = 'Definit le nombre de pas de temps effectues lors de 
+l''execution du code.' 
+AIDE1 = 'Specifies the number of time steps performed when running 
+the code.' 
+NOM = 'ENTIER LIBRE 1' 
+NOM1 = 'FREE INTEGER 1' 
+TYPE = ENTIER 
+INDEX = 4 
+MNEMO = 'ICONV' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = -13 
+AIDE = 'Non active pour l''instant' 
+AIDE1 = 'So far not implemented' 
+NOM = 'FORME DE LA CONVECTION' 
+NOM1 = 'TYPE OF ADVECTION' 
+TYPE = ENTIER 
+INDEX = 5 
+MNEMO = 'ICONVF' 
+TAILLE = 4 
+DEFAUT = 1;5;1;1 
+DEFAUT1 = 1;5;1;1 
+CHOIX = 
+'1="CARACTERISTIQUES"'; 
+'2="SUPG"'; 
+'3="SCHEMA N CONSERVATIF"' ; 
+'4="SCHEMA N CONSERVATIF"' ; 
+'5="SCHEMA PSI CONSERVATIF"'; 
+'6="SCHEMA PSI NON CONSERVATIF"'; 
+'7="SCHEMA N IMPLICITE NON CONSERVATIF"'; 
+'13="SCHEMA N PAR SEGMENTS"'; 
+'14="SCHEMA N PAR SEGMENTS"' 
+CHOIX1 = 
+'1="CHARACTERISTICS"'; 
+'2="SUPG"'; 
+'3="CONSERVATIVE N-SCHEME"'; 
+'4="CONSERVATIVE N-SCHEME"'; 
+'5="CONSERVATIVE PSI-SCHEME"'; 
+'6="NON CONSERVATIVE PSI SCHEME"'; 
+'7="IMPLICIT NON CONSERVATIVE N SCHEME"'; 
+'13="EDGE-BASED N-SCHEME"'; 
+'14="EDGE-BASED N-SCHEME"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'FORME DE LA CONVECTION' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'TYPE OF ADVECTION' 
+COMPORT = 
+'Foreground ("PARAMETRES NUMERIQUES*FORME DE LA CONVECTION") 
+IS VALEUR (blue)' 
+NIVEAU = 1 
+AIDE = 'Choix du schema de convection pour chaque variable 
+ces coefficients sont respectivement appliques a 
+1) U et V     2) H     3) T     4) K ET EPSILON 
+1 : caracteristiques sur h 
+2 : SUPG 
+3 : Schema N conservatif 
+4 : Schema N conservatif    
+5 : Schema PSI conservatif 
+6 : Schema PSI non conservatif
+7 : schema N implicite non conservatif
+13 : Schema N par segment
+14 : Schema N par segment
+Second integer must be 5' 
+AIDE1 = 'Choice of advection schemes for every variable 
+These coefficients are applied respectively to 
+1) U et V     2) H     3) T     4) K and EPSILON 
+1: characteristics 
+2: SUPG 
+3: Conservative N-scheme  
+4: Conservative N-scheme  
+5: Conservative PSI-scheme  
+6 : Non conservative PSI scheme
+7 : Implicit non conservative N scheme
+13 : Edge-based N-scheme 
+14 : Edge-based N-scheme 
+Second integer must be 5'
+NOM = 'PRECONDITIONNEMENT' 
+NOM1 = 'PRECONDITIONING' 
+TYPE = ENTIER 
+INDEX = 14 
+MNEMO = 'IPRECO' 
+TAILLE = 0 
+DEFAUT = 2 
+DEFAUT1 = 2 
+CHOIX = '2="diagonal"'; '0="aucun"'; 
+'3="diagonal condensee"'; '7="crout"';'11="gauss-seidel"'; 
+'14="diagonal et crout"'; '21="diagonal condense et crout"' 
+CHOIX1 = '2="diagonal"'; '0="no preconditioning"'; 
+'3="diagonal condensee"'; '7="crout"';'11="gauss-seidel"'; 
+'14="diagonal and crout"'; '21="diagonal condensed and crout"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+COMPORT = 
+'Foreground ("PARAMETRES NUMERIQUES*GENERAL") 
+IS VALEUR (blue)' 
+NIVEAU = 2 
+AIDE = 'Permet de preconditionner le systeme de l''etape de propagation 
+afin d''accelerer la convergence lors de sa resolution. 
+ - 0 : pas de preconditionnement; 
+ - 2 : preconditionnement diagonal. 
+ - 3 : preconditionnement diagonal-bloc 
+ - 7 : preconditionnement de Crout par element ou segment 
+ -11 : preconditionnement de Gauss-Seidel par element ou segment 
+Certains preconditionnements sont cumulables 
+(les diagonaux 2 ou 3 avec les autres) 
+Pour cette raison on ne retient que les nombres premiers pour 
+designer les preconditionnements. Si l''on souhaite en cumuler 
+plusieurs on formera le produit des options correspondantes.' 
+AIDE1 = 'Choice of the preconditioning in the propagation step linear 
+system that the convergence is speeded up when it is being solved. 
+ 0: no preconditioning 
+ 2: diagonal preconditioning 
+ 3: diagonal preconditioning with the condensed matrix 
+ 7: Crout''s preconditioning per element or segment 
+11: Gauss-Seidel''s preconditioning per element or segment 
+Some operations (either 2 or 3 diagonal preconditioning) can be 
+performed concurrently with the others. 
+Only prime numbers are therefore kept to denote the preconditioning 
+operations. When several of them are to be performed concurrently, 
+the product of relevant options shall be made.' 
+NOM = 'MAXIMUM D''ITERATIONS POUR LE SOLVEUR' 
+NOM1 = 'MAXIMUM NUMBER OF ITERATIONS FOR SOLVER' 
+TYPE = ENTIER 
+INDEX = 10 
+MNEMO = 'NITMAX' 
+TAILLE = 0 
+DEFAUT = 100 
+DEFAUT1 = 100 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, SOLVEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, SOLVER' 
+COMPORT = 
+'Foreground ("PARAMETRES NUMERIQUES, SOLVEUR") 
+IS VALEUR (blue)' 
+NIVEAU = 2 
+AIDE = 'Les algorithmes utilises pour la resolution de l''etape de 
+propagation etant iteratifs; il est necessaire de limiter le nombre 
+d''iterations autorisees. 
+Remarque : un maximum de 40 iterations par pas de temps semble 
+raisonnable.' 
+AIDE1 = 'Since the algorithms used for solving the propagation step are 
+iterative, the allowed number of iterations should be limited. 
+NOTE: a maximum number of 40 iterations per time step seems to be 
+reasonable.' 
+NOM = 'ORDRE DU TIR INITIAL POUR H' 
+NOM1 = 'INITIAL GUESS FOR H' 
+TYPE = ENTIER 
+INDEX = 15 
+MNEMO = 'IORDRH' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '1=precedent'; 
+'0=zero'; 
+'2=extrapolation' 
+CHOIX1 = '1=previous'; 
+'0=zero'; 
+'2=extrapolation' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+COMPORT = 
+'Foreground ("PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR") 
+IS VALEUR (blue)' 
+NIVEAU = 2 
+AIDE = 'Tir initial du solveur de l''etape de propagation. 
+Offre la possibilite de modifier la valeur i
+nitiale de DH, 
+accroissement de H, a chaque iteration, 
+dans l''etape de propagation en utilisant les valeurs 
+finales de cette variable aux pas de temps precedents. Ceci peut 
+permettre d''accelerer la vitesse de convergence lors de la resolution 
+du systeme. Trois possibilites sont offertes : 
+ 0 : DH = 0. 
+ 1 : DH = DHn (valeur finale de DH au pas de temps precedent), 
+ 2 : DH = 2DHn - DHn-1 (extrapolation).' 
+AIDE1 = 'Initial guess for the solver in the propagation step. 
+Makes it possible to modify the initial value of C, upon each 
+iteration in the propagation step, by using the ultimate values this 
+variable had in the earlier time steps. Thus, the convergence can be 
+speeded up when the system is being solved. 3 options are available: 
+ 0: DH = 0 
+ 1: DH = DHn (ultimate DH value in the next previous time step) 
+ 2: DH = 2DHn - DHn-1 (extrapolation)' 
+NOM = 'MAXIMUM D''ITERATIONS POUR K ET EPSILON' 
+NOM1 = 'MAXIMUM NUMBER OF ITERATIONS FOR K AND EPSILON' 
+TYPE = ENTIER 
+INDEX = 13 
+MNEMO = 'NKEMAX' 
+TAILLE = 0 
+DEFAUT = 50 
+DEFAUT1 = 50 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, MODELE K-EPSILON' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, K-EPSILON MODEL' 
+COMPORT = 
+'Foreground ("PARAMETRES NUMERIQUES, MODELE K-EPSILON") 
+IS VALEUR (blue)' 
+NIVEAU = 2 
+AIDE = 'Fixe le nombre maximum d''iterations accepte lors de la 
+resolution du systeme diffusion-termes sources du modele k-epsilon.' 
+AIDE1 = 'Sets the maximum number of iterations that are acceptable when 
+solving the diffusion source-terms step of the k-epsilon model.' 
+NOM = 'LOI DE FROTTEMENT SUR LE FOND' 
+NOM1 = 'LAW OF BOTTOM FRICTION' 
+TYPE = ENTIER 
+INDEX = 8 
+MNEMO = 'KFROT' 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+CHOIX = '0="PAS DE FROTTEMENT"'; 
+'1="HAALAND"'; 
+'2="CHEZY"'; 
+'3="STRICKLER"'; 
+'4="MANNING"'; 
+'5="NIKURADSE"' 
+CHOIX1 = '0="NO FRICTION"'; 
+'1="HAALAND"'; 
+'2="CHEZY"'; 
+'3="STRICKLER"'; 
+'4="MANNING"'; 
+'5="NIKURADSE"' 
+RUBRIQUE = 'EQUATIONS';'FROTTEMENT ET LISSAGE' 
+RUBRIQUE1 = 'EQUATIONS';'FRICTION AND SMOOTHINGS' 
+COMPORT = 
+'Foreground ("EQUATIONS*FROTTEMENT ET LISSAGE") 
+IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'selectionne le type de formulation utilisee pour le calcul 
+du frottement sur le fond. 
+Les lois possibles sont les suivantes (cf. 
+Note de principe) : - 0 : pas de frottement sur le fond; 
+1 : formule de Haaland 
+2 : formule de Chezy 
+3 : formule de STRICKLER 
+4 : formule de MANNING 
+5 : formule de NIKURADSE ' 
+AIDE1 = 'Selects the type of formulation used for the bottom friction. 
+The possible laws are as follows (refer to the Principle note): 
+0: no friction against bottom, 
+1: Haaland''s formula 
+2: CHEZY''s formula 
+3: STRICKLER''s formula 
+4: MANNING''s formula 
+5: NIKURADSE''s formula ' 
+NOM = 'MAXIMUM D''ITERATIONS POUR LA DIFFUSION DES TRACEURS' 
+NOM1 = 'MAXIMUM NUMBER OF ITERATIONS FOR DIFFUSION OF TRACERS' 
+TYPE = ENTIER 
+INDEX = 9 
+MNEMO = 'NITDIF' 
+TAILLE = 0 
+DEFAUT = 60 
+DEFAUT1 = 60 
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+COMPORT = 
+'Foreground ("EQUATIONS*TRACEUR*OPTIONS TRACEUR") IS VALEUR (brown)' 
+NIVEAU = 2 
+AIDE = 'Limite le nombre d''iterations du solveur a chaque pas 
+de temps pour le calcul de la diffusion du traceur.' 
+AIDE1 = 'Limits the number of solver iterations at each time step for 
+the diffusion of tracer.' 
+NOM = 'SOLVEUR POUR LA DIFFUSION DES TRACEURS' 
+NOM1 = 'SOLVER FOR DIFFUSION OF TRACERS' 
+TYPE = ENTIER 
+INDEX = 11 
+MNEMO = 'SLVTRA%SLV' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '1="gradient conjuge"'; 
+'2="residu conjuge"'; 
+'3="gradient conjuge sur equation normale"'; 
+'4="erreur minimale"'; 
+'5="gradient conjuge carre"'; 
+'6="cgstab"'; 
+'7="gmres (voir ausi option du solveur)"'; 
+'8="direct"' 
+CHOIX1 = '1="conjugate gradient"'; 
+'2="conjugate residual"'; 
+'3="conjugate gradient on a normal equation"'; 
+'4="minimum error"'; 
+'5="squared conjugate gradient"'; 
+'6="cgstab"'; 
+'7="gmres (see option for the solver for tracer diffusion)"'; 
+'8="direct"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, SOLVEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, SOLVER' 
+NIVEAU = 2 
+AIDE = '1 : gradient conjugue 2 : residu conjugue 3 : gradient conjugue 
+sur equation normale 4 : erreur minimale 5 : gradient conjugue carre' 
+AIDE1 = '1 : conjugate gradient 2 : conjugate gradient 
+3 :  conjugate gradient on a normal equation 4 : minimum error 
+5 : squared conjugate gradient 6 : cgstab 
+7 : gmres (see option for the solver for tracer diffusion) 
+8 : direct' 
+NOM = 'OPTION DE PROPAGATION' 
+NOM1 = 'PROPAGATION OPTION' 
+TYPE = ENTIER 
+INDEX = 12 
+MNEMO = 'OPTPRO' 
+TAILLE = 0 
+DEFAUT = 3 
+DEFAUT1 = 3 
+RUBRIQUE = 'EQUATIONS';'PROPAGATION' 
+RUBRIQUE1 = 'EQUATIONS';'PROPAGATION' 
+COMPORT = 
+'Foreground ("EQUATIONS*PROPAGATION") IS VALEUR (brown)' 
+NIVEAU = -13 
+AIDE = 'Non active pour l''instant.' 
+AIDE1 = 'Not yet implemented.' 
+NOM = 'ENTIER LIBRE 17' 
+NOM1 = 'FREE INTEGER 17' 
+TYPE = ENTIER 
+INDEX = 17 
+MNEMO = 'STDGEO' 
+TAILLE = 0 
+DEFAUT = 3 
+DEFAUT1 = 3 
+NIVEAU = 2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+AIDE = ' ' 
+AIDE1 = ' ' 
+NOM = 'ENTIER LIBRE 18' 
+NOM1 = 'FREE INTEGER 18' 
+TYPE = ENTIER 
+INDEX = 18 
+MNEMO = 'STDRES' 
+TAILLE = 0 
+DEFAUT = 3 
+DEFAUT1 = 3 
+NIVEAU = 2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+AIDE = ' ' 
+AIDE1 = ' ' 
+NOM = 'SOLVEUR' 
+NOM1 = 'SOLVER' 
+TYPE = ENTIER 
+INDEX = 19 
+MNEMO = 'ISOLVE' 
+TAILLE = 0 
+DEFAUT = 3 
+DEFAUT1 = 3 
+CHOIX = '3="equation normale"'; 
+'1="gradient conjuge"'; 
+'2="residu conjuge"'; 
+'4="erreur minimale"'; 
+'6="cgstab"'; 
+'7="gmres"'; 
+'8="direct"' 
+CHOIX1 = '3="conjugate gradient on a normal equation"'; 
+'1="conjugate gradient"'; 
+'2="conjugate residual"'; 
+'4="minimum error"'; 
+'6="cgstab"'; 
+'7="gmres"'; 
+'8="direct"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, SOLVEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, SOLVER' 
+NIVEAU = 2 
+AIDE = 'Permet de choisir le solveur utilise pour la resolution de 
+l''etape de propagation. Toutes les methodes proposees actuellement 
+s''apparentent au Gradient Conjugue. Ce sont : 
+  1 : gradient conjugue 
+  2 : residu conjugue 
+  3 : gradient conjugue sur equation normale 
+  4 : erreur minimale 
+  5 : gradient conjugue carre (non programme) 
+  6 : gradient conjugue carre stabilise (cgstab) 
+  7 : gmres (voir aussi option du solveur) 
+  8 : direct' 
+AIDE1 = 'Makes it possible to select the solver used for solving the 
+propagation step. All the currently available methods are variations 
+of the Conjugate Gradient method. They are as follows: 
+1: conjugate gradient 
+2: conjugate residual 
+3: conjugate gradient on a normal equation 
+4: minimum error 
+5: conjugate gradient squared (not implemented) 
+6: conjugate gradient squared stabilised (cgstab) 
+7: gmres (see option for solver) 
+8: direct' 
+NOM = 'ENTIER LIBRE 20' 
+NOM1 = 'FREE INTEGER 20' 
+TYPE = ENTIER 
+INDEX = 20 
+MNEMO = 'STDPRE' 
+TAILLE = 0 
+DEFAUT = 3 
+DEFAUT1 = 3 
+NIVEAU = 2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+AIDE = ' ' 
+AIDE1 = ' ' 
+NOM = 'NOMBRE DE SOUS-ITERATIONS POUR LES NON-LINEARITES' 
+NOM1 = 'NUMBER OF SUB-ITERATIONS FOR NON-LINEARITIES' 
+TYPE = ENTIER 
+INDEX = 21 
+MNEMO = 'NSOUSI' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Permet de reactualiser, pour un meme pas de temps, les champs 
+convecteur et propagateur au cours de plusieurs sous-iterations. A la 
+premiere sous-iteration, ces champs sont donnes par C et le champ de 
+vitesses au pas de temps precedent. Aux iterations suivantes, ils sont 
+pris egaux au champ de vitesse obtenu a la fin de la sous-iteration 
+precedente. Cette technique permet d''ameliorer la prise en compte des 
+non linearites.' 
+AIDE1 = 'Used for updating, within one time step, the advection and 
+propagation field. 
+upon the first sub-iteration, these fields are given by 
+C and the velocity field in the previous time step. At subsequent 
+iterations, the results of the previous sub-iteration is used to 
+update the advection and propagation field. 
+The non-linearities can be taken into account through this technique.' 
+NOM = 'NUMERO DU PREMIER PAS DE TEMPS POUR LES SORTIES GRAPHIQUES' 
+NOM1 = 'NUMBER OF FIRST TIME STEP FOR GRAPHIC PRINTOUTS' 
+TYPE = ENTIER 
+INDEX = 22 
+MNEMO = 'PTINIG' 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 2 
+AIDE = 'Determine le nombre de pas de temps a partir duquel debute 
+l''ecriture des resultats dans le ''FICHIER DES RESULTATS''.' 
+AIDE1 = 'Determines the number of time steps after which the results 
+are first written into the RESULTS FILE.' 
+NOM = 'NUMERO DU PREMIER PAS DE TEMPS POUR LES SORTIES LISTING' 
+NOM1 = 'NUMBER OF FIRST TIME STEP FOR LISTING PRINTOUTS' 
+TYPE = ENTIER 
+INDEX = 23 
+MNEMO = 'PTINIL' 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 2 
+AIDE = 'Determine le nombre de pas de temps a partir duquel debute 
+l''ecriture des resultats dans le listing.' 
+AIDE1 = 'Determines the number of time steps after which the results 
+are first written into the listing.' 
+NOM = 'PRECONDITIONNEMENT POUR LA DIFFUSION DES TRACEURS' 
+NOM1 = 'PRECONDITIONING FOR DIFFUSION OF TRACERS' 
+TYPE = ENTIER 
+INDEX = 24 
+MNEMO = 'IPREDI' 
+TAILLE = 0 
+DEFAUT = 2 
+DEFAUT1 = 2 
+CHOIX = '2="diagonal"'; '0="aucun"'; 
+'3="diagonal condensee"'; '7="crout"'; 
+'14="diagonal et crout"'; '21="diagonal condense et crout"' 
+CHOIX1 = '2="diagonal"'; '0="no preconditioning "'; 
+'3="diagonal condensed"'; '7="crout"'; 
+'14="diagonal and crout"'; '21="diagonal condensed and crout"' 
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 2 
+AIDE = 'Permet de preconditionner le systeme relatif au traceur. 
+Memes definition et possibilites que pour le mot-cle PRECONDITIONNEMENT. 
+  0 : pas de preconditionnement; 
+  2 : preconditionnement diagonal. 
+  3 : preconditionnement diagonal avec la matrice conde' 
+AIDE1 = 'Preconditioning of the linear system in the tracer diffusion 
+step. 
+Same definition and possibilities as for the keyword  PRECONDITIONING 
+ 0: no preconditioning 
+ 2: diagonal preconditioning 
+ 3: diagonal preconditioning with the condensed matrix 
+ 7: Crout''s preconditioning per element.' 
+NOM = 'SOLVEUR POUR LE MODELE K-EPSILON' 
+NOM1 = 'SOLVER FOR K-EPSILON MODEL' 
+TYPE = ENTIER 
+INDEX = 25 
+MNEMO = 'ISOLKE' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '1="gradient conjugue"'; 
+'2="residu conjuge"'; 
+'3="gradient conjugue sur equation normal"'; 
+'4="erreur minimale"'; 
+'5="gradient conjugue carre"'; 
+'6="gradient conjugue carre stabilise (cgstab)"'; 
+'7="gmres (voir aussi option du solveur pour le modele k-epsilon"'; 
+'8="direct"' 
+CHOIX1 = '1="conjugate gradient"'; 
+'2="conjugate residuals"'; 
+'3="conjugate gradient on normal equation"'; 
+'4="minimum error"'; 
+'5="conjugate gradient squared"'; 
+'6="conjugate gradient squared stabilised (cgstab)"'; 
+'7="gmres (see option for the solver for k-epsilon model)"'; 
+'8="direct"' 
+RUBRIQUE = 'EQUATIONS';'MODELE DE TURBULENCE';'MODELE K-EPSILON' 
+RUBRIQUE1 = 'EQUATIONS';'TURBULENCE MODEL';'K-EPSILON MODEL' 
+COMPORT = 
+'Foreground ("EQUATIONS*MODELE DE TURBULENCE*MODELE K-EPSILON") 
+IS VALEUR (brown)' 
+NIVEAU = 2 
+AIDE = 'Permet de choisir le solveur utilise pour la resolution 
+du systeme du modele k-epsilon : 
+1 : gradient conjugue 
+2 : residu conjugue 
+3 : gradient conjugue sur equation normale 
+4 : erreur minimale 
+5 : gradient conjugue carre 
+6 : gradient conjugue carre stabilise (cgstab) 
+7 : gmres (voir aussi option du solveur pour le modele k-epsilon) 
+8 : direct' 
+AIDE1 = 'Makes it possible to select the solver used for solving 
+the system of the k-epsilon model. 
+1: conjugate gradient 
+2: conjugate residuals 
+3: conjugate gradient on normal equation 
+4: minimum error 
+5: conjugate gradient squared 
+6: conjugate gradient squared stabilised (cgstab) 
+7: gmres (see option for the solver for k-epsilon model) 
+8: direct' 
+NOM = 'PRECONDITIONNEMENT POUR LE MODELE K-EPSILON' 
+NOM1 = 'PRECONDITIONING FOR K-EPSILON MODEL' 
+TYPE = ENTIER 
+INDEX = 26 
+MNEMO = 'IPREKE' 
+TAILLE = 0 
+DEFAUT = 2 
+DEFAUT1 = 2 
+CHOIX = '2="diagonal"'; '0="aucun"'; 
+'3="diagonal condensee"'; '7="crout"'; 
+'14="diagonal et crout"'; '21="diagonal condense et crout"' 
+CHOIX1 = '2="diagonal"'; '0="no preconditioning"'; 
+'3="diagonal condensed"'; '7="crout"'; 
+'14="diagonal and crout"'; '21="diagonal condensed and crout"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, MODELE K-EPSILON' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, K-EPSILON MODEL' 
+NIVEAU = 2 
+AIDE = 'Permet de preconditionner le systeme relatif au modele k-epsilon 
+0 : pas de preconditionnement; 
+2 : preconditionnement diagonal. 
+3 : preconditionnement diagonal avec la matrice condensee. 
+7 : preconditionnement de Crout par element.' 
+AIDE1 = 'Preconditioning of the linear system in the diffusion step of 
+the k-epsilon model. 
+0: no preconditioning 
+2: diagonal preconditioning 
+3: diagonal preconditioning with the condensed matrix 
+7: Crout''s preconditioning per element' 
+NOM = 'REGIME DE TURBULENCE POUR LES PAROIS' 
+NOM1 = 'TURBULENCE MODEL FOR SOLID BOUNDARIES' 
+TYPE = ENTIER 
+INDEX = 27 
+MNEMO = 'LISRUG' 
+TAILLE = 0 
+DEFAUT = 2 
+DEFAUT1 = 2 
+CHOIX = '1=lisse'; '2=rugueux' 
+CHOIX1 = '1=smooth'; '2=rough' 
+RUBRIQUE = 'EQUATIONS';'MODELE DE TURBULENCE' 
+RUBRIQUE1 = 'EQUATIONS';'TURBULENCE MODEL' 
+NIVEAU = 1 
+AIDE = 'Permet de choisir le regime de turbulence aux parois  
+   1 : regime turbulent lisse. 
+   2 : regime turbulent rugueux.' 
+AIDE1 = 'Provided for selecting the type of friction on the walls 
+   1: smooth 
+   2: rough' 
+NOM = 'NOMBRE DE FLOTTEURS' 
+NOM1 = 'NUMBER OF DROGUES' 
+TYPE = ENTIER 
+INDEX = 28 
+MNEMO = 'NFLOT' 
+CONTROLE = 0 ; 10 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 2 
+AIDE = 'Permet d''effectuer un suivi de flotteurs' 
+AIDE1 = 'Number of drogues in the computation. 
+The user must then fill the subroutine FLOT specifying 
+the coordinates of the starting points, their departure 
+and arrival times. 
+The trajectory of drogues is recorded in the BINARY RESULTS 
+FILE that must be given in the steering file' 
+NOM = 'PERIODE POUR LES SORTIES DE FLOTTEURS' 
+NOM1 = 'PRINTOUT PERIOD FOR DROGUES' 
+TYPE = ENTIER 
+INDEX = 29 
+MNEMO = 'FLOPRD' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 2 
+AIDE = 'Nombre de pas de temps entre 2 sorties de positions de 
+flotteurs dans le fichier des resultats binaire supplementaire 
+N affecte pas la qualite du calcul de la trajectoire' 
+AIDE1 = 'Number of time steps between 2 outputs of drogues 
+positions in the binary file' 
+NOM = 'NOMBRE DE DERIVES LAGRANGIENNES' 
+NOM1 = 'NUMBER OF LAGRANGIAN DRIFTS' 
+TYPE = ENTIER 
+INDEX = 30 
+MNEMO = 'NFLAG' 
+CONTROLE = 0; 10 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Permet d''effectuer simultanement plusieurs calculs de derives 
+lagrangiennes initiees a des pas differents' 
+AIDE1 = 'Provided for performing several computations of lagrangian 
+drifts starting at different times. 
+Add A and G in the VARIABLES FOR GRAPHIC PRINTOUTS key-word' 
+NOM = 'LISSAGES DU FOND' 
+NOM1 = 'BOTTOM SMOOTHINGS' 
+TYPE = ENTIER 
+INDEX = 31 
+MNEMO = 'LISFOND' 
+TAILLE = 0 
+CONTROLE = 0 ; 10 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'EQUATIONS';'FROTTEMENT ET LISSAGE' 
+RUBRIQUE1 = 'EQUATIONS';'FRICTION AND SMOOTHINGS' 
+NIVEAU = 2 
+AIDE = 'Nombre de lissages effectues sur la topographie. 
+chaque lissage, effectue a l''aide d''une matrice de masse, 
+est conservatif. 
+Utilise lorsque les donnees de bathymetrie donnent des resultats 
+trop irreguliers apres interpolation.' 
+AIDE1 ='Number of smoothings on bottom topography. 
+each smoothing is mass conservative. 
+to be used when interpolation of bathymetry on the mesh gives 
+very rough results.' 
+NOM = 'OPTION DU SOLVEUR POUR LA DIFFUSION DES TRACEURS' 
+NOM1 = 'SOLVER OPTION FOR TRACERS DIFFUSION' 
+TYPE = ENTIER 
+INDEX = 32 
+MNEMO = 'ISOLDI' 
+TAILLE = 0 
+DEFAUT = 2 
+DEFAUT1 = 2 
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 2 
+AIDE = 'si le solveur est GMRES (7) le mot cle est la dimension de 
+l''espace de KRILOV (valeurs conseillees entre 2 et 15)' 
+AIDE1 = 'WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE 
+TRY VALUES BETWEEN 2 AND 15' 
+NOM = 'OPTION DU SOLVEUR' 
+NOM1 = 'SOLVER OPTION' 
+TYPE = ENTIER 
+INDEX = 33 
+MNEMO = 'ISOLVE' 
+TAILLE = 0 
+DEFAUT = 2 
+DEFAUT1 = 2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, SOLVEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, SOLVER' 
+NIVEAU = 2 
+AIDE = 'si le solveur est GMRES (7) le mot cle est la dimension de 
+l''espace de KRILOV (valeurs conseillees entre 2 et 15)' 
+AIDE1 = 'WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE 
+TRY VALUES BETWEEN 2 AND 15' 
+NOM = 'OPTION DU SOLVEUR POUR LE MODELE K-EPSILON' 
+NOM1 = 'OPTION FOR THE SOLVER FOR K-EPSILON MODEL' 
+TYPE = ENTIER 
+INDEX = 34 
+MNEMO = 'ISOLKE' 
+TAILLE = 0 
+DEFAUT = 2 
+DEFAUT1 = 2 
+RUBRIQUE = 'EQUATIONS';'MODELE DE TURBULENCE';'MODELE K-EPSILON' 
+RUBRIQUE1 = 'EQUATIONS';'TURBULENCE MODEL';'K-EPSILON MODEL' 
+NIVEAU = 2 
+AIDE = 'si le solveur est GMRES (7) le mot cle est la dimension de 
+l''espace de KRILOV (valeurs conseillees entre 2 et 15)' 
+AIDE1 = 'WHEN GMRES (7) IS CHOSEN, DIMENSION OF THE KRYLOV SPACE 
+TRY VALUES BETWEEN 2 AND 15' 
+NOM = 'PAS DE TEMPS' 
+NOM1 = 'TIME STEP' 
+TYPE = REEL 
+INDEX = 1 
+MNEMO = 'DT' 
+TAILLE = 0 
+DEFAUT = 1. 
+DEFAUT1 = 1. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'DUREE DU CALCUL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'DURATION' 
+NIVEAU = 1 
+AIDE = 'Definit le pas de temps en secondes. 
+Remarque : Pour une bonne precision; il est souhaitable de choisir 
+le pas de temps de telle sorte que le nombre de Courant de propagation 
+soit inferieur a 2 ; voir 3.
+Ceci peut etre realisable en hydraulique fluviale ; mais ne l''est 
+pratiquement jamais en hydraulique maritime ou l''on peut atteindre 
+des valeurs de 50.' 
+AIDE1 = 'Specifies the time step in seconds.' 
+NOM = 'ZERO' 
+NOM1 = 'ZERO' 
+TYPE = REEL 
+INDEX = 3 
+MNEMO = 'ZERO' 
+TAILLE = 0 
+DEFAUT = 1.E-12 
+DEFAUT1 = 1.E-12 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = -13 
+AIDE = 'Non active pour l''instant.' 
+AIDE1 = 'Not yet implemented' 
+NOM = 'COEFFICIENT DE FROTTEMENT' 
+NOM1 = 'FRICTION COEFFICIENT' 
+TYPE = REEL 
+INDEX = 4 
+MNEMO = 'FFON' 
+TAILLE = 0 
+DEFAUT = 50. 
+DEFAUT1 = 50. 
+RUBRIQUE = 'EQUATIONS';'FROTTEMENT ET LISSAGE' 
+RUBRIQUE1 = 'EQUATIONS';'FRICTION AND SMOOTHINGS' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur du coefficient de frottement pour la 
+formulation choisie. 
+Attention; la signification de ce chiffre varie suivant la formule 
+choisie : 
+                    1 : coefficient lineaire 
+                    2 : coefficient de Chezy 
+                    3 : coefficient de Strickler 
+                    4 : coefficient de Manning 
+                    5 : hauteur de rugosite de Nikuradse' 
+AIDE1 = 'Sets the value of the friction coefficient for the selected 
+formulation. It is noteworthy that the meaning of this figure changes 
+according to the selected formula (Chezy, Strickler, etc.) : 
+                    1 : linear coefficient 
+                    2 : Chezy coefficient 
+                    3 : Strickler coefficient 
+                    4 : Manning coefficient 
+                    5 : Nikuradse grain size' 
+NOM = 'COEFFICIENT D''INFLUENCE DU VENT' 
+NOM1 = 'COEFFICIENT OF WIND INFLUENCE' 
+TYPE = REEL 
+INDEX = 6 
+MNEMO = 'FAIR' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'EQUATIONS';'VENT';'VALEURS NUMERIQUES' 
+RUBRIQUE1 = 'EQUATIONS';'WIND';'NUMERICS VALUES' 
+COMPORT = 
+'Foreground ("EQUATIONS*VENT*VALEURS NUMERIQUES") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur du coefficient d''entrainement du vent (cf. 
+Note de principe).' 
+AIDE1 = 'Sets the value of the wind driving coefficient. 
+Refer to principle note.' 
+NOM = 'VITESSE DU VENT SUIVANT X' 
+NOM1 = 'WIND VELOCITY ALONG X' 
+TYPE = REEL 
+INDEX = 7 
+MNEMO = 'FUAIR' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'EQUATIONS';'VENT';'VALEURS NUMERIQUES' 
+RUBRIQUE1 = 'EQUATIONS';'WIND';'NUMERICS VALUES' 
+NIVEAU = 1 
+AIDE = 'Composante de la vitesse du vent suivant l''axe des x (m/s).' 
+AIDE1 = 'Wind velocity, component along x axis (m/s).' 
+NOM = 'VITESSE DU VENT SUIVANT Y' 
+NOM1 = 'WIND VELOCITY ALONG Y' 
+TYPE = REEL 
+INDEX = 8 
+MNEMO = 'FVAIR' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'EQUATIONS';'VENT';'VALEURS NUMERIQUES' 
+RUBRIQUE1 = 'EQUATIONS';'WIND';'NUMERICS VALUES' 
+NIVEAU = 1 
+AIDE = 'Composante de la vitesse du vent suivant l''axe des y (m/s).' 
+AIDE1 = 'Wind velocity, component along y axis (m/s).' 
+NOM = 'VENT' 
+NOM1 = 'WIND' 
+TYPE = LOGIQUE 
+INDEX = 14 
+MNEMO = 'VENT' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'EQUATIONS';'VENT' 
+RUBRIQUE1 = 'EQUATIONS';'WIND' 
+COMPORT = 
+'Affichage ("EQUATIONS*VENT*VALEURS NUMERIQUES") IS VALEUR ()'; 
+'Foreground ("EQUATIONS*VENT") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'Prise en compte ou non des effets du vent.' 
+AIDE1 = 'Determines whether the wind effects are to be taken into 
+account or not.' 
+NOM = 'VALEURS INITIALES DES TRACEURS' 
+NOM1 = 'INITIAL VALUES OF TRACERS' 
+TYPE = REEL 
+INDEX = 9 
+MNEMO = 'TRAC0' 
+TAILLE = 2 
+DEFAUT = 0.;0. 
+DEFAUT1 = 0.;0. 
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur initiale du traceur.' 
+AIDE1 = 'Sets the initial value of the tracer.' 
+NOM = 'COEFFICIENT DE DIFFUSION DES TRACEURS' 
+NOM1 = 'COEFFICIENT FOR DIFFUSION OF TRACERS' 
+TYPE = REEL 
+INDEX = 10 
+MNEMO = 'DIFNU' 
+TAILLE = 0 
+DEFAUT = 1.E-6 
+DEFAUT1 = 1.E-6 
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur du coefficient de diffusion du traceur. 
+L''influence de ce parametre sur l''evolution du traceur dans 
+le temps est importante.' 
+AIDE1 = 'Sets the value of the tracer diffusivity.' 
+NOM = 'PRECISION POUR LA DIFFUSION DES TRACEURS' 
+NOM1 = 'ACCURACY FOR DIFFUSION OF TRACERS' 
+TYPE = REEL 
+INDEX = 11 
+MNEMO = 'EPSDIF' 
+TAILLE = 0 
+DEFAUT = 1.E-6 
+DEFAUT1 = 1.E-6 
+RUBRIQUE = 'EQUATIONS';'SOLVEUR' 
+RUBRIQUE1 = 'EQUATIONS';'SOLVER' 
+COMPORT = 
+'Foreground ("EQUATIONS*SOLVEUR") IS VALEUR (brown)' 
+NIVEAU = 2 
+AIDE = 'Fixe la precision demandee pour le calcul de la diffusion 
+du traceur.' 
+AIDE1 = 'Sets the required accuracy for computing the tracer 
+diffusion.' 
+NOM = 'COEFFICIENT D''IMPLICITATION DES TRACEURS' 
+NOM1 = 'IMPLICITATION COEFFICIENT OF TRACERS' 
+TYPE = REEL 
+INDEX = 12 
+MNEMO = 'TETADF' 
+TAILLE = 0 
+DEFAUT = 0.6 
+DEFAUT1 = 0.6 
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 2 
+AIDE = 'Fixe la valeur du coefficient d''implicitation du traceur' 
+AIDE1 = 'Sets the value of the implicitation coefficient for the tracer' 
+NOM = 'COEFFICIENT DE DIFFUSION DES VITESSES' 
+NOM1 = 'VELOCITY DIFFUSIVITY' 
+TYPE = REEL 
+INDEX = 13 
+MNEMO = 'PROPNU' 
+TAILLE = 0 
+DEFAUT = 1.E-6 
+DEFAUT1 = 1.E-6 
+RUBRIQUE = 'EQUATIONS';'MODELE DE TURBULENCE';'VISCOSITE CONSTANTE' 
+RUBRIQUE1 = 'EQUATIONS';'TURBULENCE MODEL';'CONSTANT VISCOSITY' 
+COMPORT = 
+'Foreground ("EQUATIONS*MODELE DE TURBULENCE*VISCOSITE CONSTANTE") 
+IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'Fixe de facon uniforme pour l''ensemble du domaine; 
+la valeur du coefficient de diffusion de viscosite globale (dynamique + 
+turbulente). Cette valeur peut avoir une influence non negligeable sur 
+la forme et la taille des recirculations.' 
+AIDE1 = 'Sets, in an even way for the whole domain, the value of the 
+coefficient of global (dynamic+turbulent) viscosity. this value may 
+have a significant effect both on the shapes and sizes of 
+recirculation zones.' 
+NOM = 'MODELE DE TURBULENCE' 
+NOM1 = 'TURBULENCE MODEL' 
+TYPE = ENTIER 
+INDEX = 7 
+MNEMO = 'ITURB' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '1="VISCOSITE CONSTANTE"';'2="ELDER"';'3="MODELE K-EPSILON"' 
+;'4="SMAGORINSKI"' 
+CHOIX1 = '1="CONSTANT VISCOSITY"';'2="ELDER"';'3="K-EPSILON MODEL"' 
+;'4="SMAGORINSKI"' 
+RUBRIQUE = 'EQUATIONS';'MODELE DE TURBULENCE' 
+RUBRIQUE1 = 'EQUATIONS';'TURBULENCE MODEL' 
+COMPORT = 'Affichage 
+("COEFFICIENT DE DIFFUSION DES VITESSES") 
+IS VALEUR (#"MODELE DE TURBULENCE" - 3)'; 
+'Affichage 
+("EQUATIONS*MODELE DE TURBULENCE*MODELE K-EPSILON") IS VALEUR 
+(#"MODELE DE TURBULENCE" - 1)'; 
+'Foreground ("EQUATIONS*MODELE DE TURBULENCE") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = '3 choix sont possibles actuellement : viscosite constante (1) 
+modele de Elder (2) ou modele k-epsilon (3). 
+Attention : si on choisit l''option 1 
+il ne faut pas oublier d''ajuster la valeur du mot-cle COEFFICIENT DE 
+DIFFUSION DES VITESSES. 
+si on choisit l''option 2 
+il ne faut pas oublier d''ajuster les deux valeurs du mot-cle : 
+COEFFICIENTS ADIMENSIONNELS DE DISPERSION 
+Si on choisit l''option 3; 
+ce meme parametre doit retrouver sa vraie valeur physique car elle est 
+utilisee comme telle dans le modele de turbulence' 
+AIDE1 = 'The current alternatives are as follows: constant viscosity (1) 
+elder''s model (2) or k-epsilon model (3). 
+NOTE: when option 1 is chosen, it should be kept in mind that the 
+value of the keyword VELOCITY DIFFUSIVITY has to be ajusted. 
+When option 2 is chosen, the two values of key-word : 
+NON-DIMENSIONAL DISPERSION COEFFICIENTS are used 
+When option 3 is chosen, this parameter should recover its true 
+physical value, since it is used as such in the turbulence model.' 
+NOM = 'PRECISION DU SOLVEUR' 
+NOM1 = 'SOLVER ACCURACY' 
+TYPE = REEL 
+INDEX = 14 
+MNEMO = 'EPSI1' 
+TAILLE = 0 
+DEFAUT = 1.E-4 
+DEFAUT1 = 1.E-4 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, SOLVEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, SOLVER' 
+NIVEAU = 2 
+AIDE = 'Precision demandee pour la resolution de l''etape de propagation 
+ (cf.  Note de principe).' 
+AIDE1 = 'Required accuracy for solving the propagation step 
+(refer to Principle note).' 
+NOM = 'PROFONDEUR LIMITE POUR PROCEDURE DE RESSUYAGE' 
+NOM1 = 'THRESHOLD DEPTH FOR RECEDING PROCEDURE' 
+TYPE = REEL 
+INDEX = 16 
+MNEMO = 'HREC' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Si > 0., declenche la procedure de ressuyage qui evite
+le franchissement parasite des digues mal discretisees' 
+AIDE1 = 'If > 0., will trigger the receding procedure that
+avoids overwhelming of dykes which are too loosely 
+discretised ' 
+NOM = 'IMPLICITATION POUR LA HAUTEUR' 
+NOM1 = 'IMPLICITATION FOR DEPTH' 
+TYPE = REEL 
+INDEX = 17 
+MNEMO = 'TETAC' 
+TAILLE = 0 
+DEFAUT = 0.55 
+DEFAUT1 = 0.55 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 2 
+CONTROLE = 0.5 
+AIDE = 'Fixe la valeur du coefficient d''implicitation sur C dans 
+l''etape de propagation (cf.  Note de principe). 
+Les valeurs inferieures a 0.5 donnent un schema instable.' 
+AIDE1 = 'Sets the value of the implicitation coefficient for C 
+(the celerity of waves) in the propagation step 
+(refer to principle note). 
+Values below 0.5 result in an unstable scheme.' 
+NOM = 'IMPLICITATION POUR LA VITESSE' 
+NOM1 = 'IMPLICITATION FOR VELOCITY' 
+TYPE = REEL 
+INDEX = 18 
+MNEMO = 'TETAU' 
+TAILLE = 0 
+DEFAUT = 0.55 
+DEFAUT1 = 0.55 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 2 
+AIDE = 'Fixe la valeur du coefficient d''implicitation sur la vitesse 
+dans l''etape de propagation (cf.  Note de principe). 
+Les valeurs inferieures a 0.5 donnent un schema instable.' 
+AIDE1 = 'Sets the value of the implicitation coefficient for velocity 
+in the propagation step (refer to principle note). 
+Values below 0.5 result in an unstable condition.' 
+NOM = 'IMPLICITATION POUR LA DIFFUSION DES VITESSES' 
+NOM1 = 'IMPLICITATION FOR DIFFUSION OF VELOCITY' 
+TYPE = REEL 
+INDEX = 19 
+MNEMO = 'TETAD' 
+TAILLE = 0 
+DEFAUT = 1. 
+DEFAUT1 = 1. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 2 
+AIDE = 'Fixe la valeur du coefficient d''implicitation sur les termes de 
+diffusion des vitesses' 
+AIDE1 = 'Sets the value of the implicitation coefficient for 
+the diffusion of velocity' 
+NOM = 'MASS-LUMPING SUR H' 
+NOM1 = 'MASS-LUMPING ON H' 
+TYPE = REEL 
+INDEX = 20 
+MNEMO = 'AGGLOC' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 2 
+AIDE = 'TELEMAC offre la possibilite d''effectuer du mass-lumping 
+sur H ou U. 
+Ceci revient a ramener tout ou partie (suivant la valeur de ce 
+coefficient) des matrices AM1 (h) ou AM2 (U) et AM3 (V) sur 
+leur diagonale. 
+Cette technique permet d''accelerer le code dans des proportions tres 
+importantes et de le rendre egalement beaucoup plus stable. Cependant 
+les solutions obtenues se trouvent lissees. 
+Ce parametre fixe le taux de mass-lumping effectue sur h.' 
+AIDE1 = 'TELEMAC provides an opportunity to carry out mass-lumping 
+either on C,H or on the velocity. 
+This is equivalent to bringing the matrices AM1 (h) or AM2 (U) and 
+AM3 (V) wholly or partly, back onto their diagonal. 
+Thanks to that technique, the code can be speeded up to a quite 
+significant extent and it can also be made much more stable. The 
+resulting solutions, however, become artificially smoothed. 
+This parameter sets the extent of mass-lumping that is performed on h.' 
+NOM = 'MASS-LUMPING SUR LA VITESSE' 
+NOM1 = 'MASS-LUMPING ON VELOCITY' 
+TYPE = REEL 
+INDEX = 21 
+MNEMO = 'AGGLOU' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 2 
+AIDE = 'Fixe le taux de mass-lumping effectue sur la vitesse.' 
+AIDE1 = 'Sets the amount of mass-lumping that is performed on 
+the velocity.' 
+NOM = 'VALEUR MINIMUM DE H' 
+NOM1 = 'MINIMUM VALUE OF DEPTH' 
+TYPE = REEL 
+INDEX = 22 
+MNEMO = 'HMIN' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 3 
+AIDE = 'Fixe la valeur minimale de a lorsque l''option CLIPPING 
+DE H est activee.' 
+AIDE1 = 'Sets the minimum H value when option H CLIPPING is 
+implemented. Not fully implemented.' 
+NOM = 'REDUCTION DU PAS DE TEMPS POUR LE MODELE K-EPSILON' 
+NOM1 = 'TIME STEP REDUCTION FOR K-EPSILON MODEL' 
+TYPE = REEL 
+INDEX = 23 
+MNEMO = 'REDUC' 
+TAILLE = 0 
+DEFAUT = 1. 
+DEFAUT1 = 1. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, MODELE K-EPSILON' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, K-EPSILON MODEL' 
+NIVEAU = 3 
+AIDE = 'Coefficient reducteur du pas de temps pour le modele k-epsilon 
+(qui est normalement identique a celui du systeme hydrodynamique).
+Utilisation deconseillee' 
+AIDE1 = 'Time step reduction coefficient for k-epsilon model 
+(which is normally same the same as that of the hydrodynamic system) 
+Not recommended for use.' 
+NOM = 'PRECISION SUR K' 
+NOM1 = 'ACCURACY OF K' 
+TYPE = REEL 
+INDEX = 24 
+MNEMO = 'EPSIK' 
+TAILLE = 0 
+DEFAUT = 1.E-9 
+DEFAUT1 = 1.E-9 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, MODELE K-EPSILON' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, K-EPSILON MODEL' 
+NIVEAU = 2 
+AIDE = 'Fixe la precision demandee sur k pour le test d''arret dans 
+l''etape de diffusion et termes sources du modele k-epsilon.' 
+AIDE1 = 'Sets the required accuracy for computing k in the diffusion 
+and source terms step of the k-epsilon model.' 
+NOM = 'PRECISION SUR EPSILON' 
+NOM1 = 'ACCURACY OF EPSILON' 
+TYPE = REEL 
+INDEX = 25 
+MNEMO = 'EPSIE' 
+TAILLE = 0 
+DEFAUT = 1.E-9 
+DEFAUT1 = 1.E-9 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, MODELE K-EPSILON' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, K-EPSILON MODEL' 
+NIVEAU = 2 
+AIDE = 'Fixe la precision demandee sur epsilon pour le test d''arret dan 
+s l''etape de diffusion et termes sources de k et epsilon.' 
+AIDE1 = 'Sets the required accuracy for computing epsilon in 
+the diffusion and source-terms step of the k-epsilon model.' 
+NOM = 'PROFONDEUR MOYENNE POUR LA LINEARISATION' 
+NOM1 = 'MEAN DEPTH FOR LINEARIZATION' 
+TYPE = REEL 
+INDEX = 26 
+MNEMO = 'HAULIN' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'EQUATIONS';'HAUTEUR' 
+RUBRIQUE1 = 'EQUATIONS';'HIGHT' 
+COMPORT = 
+'Foreground ("EQUATIONS*HAUTEUR") IS VALEUR (brown)' 
+NIVEAU = 2 
+AIDE = 'Fixe la hauteur d''eau autour de laquelle s''effectue la 
+linearisation lorsque l''option PROPAGATION LINEARISEE est choisie.' 
+AIDE1 = 'Sets the water depth about which the linearization is made when 
+the LINEARIZED PROPAGATION OPTION is selected.' 
+NOM = 'COEFFICIENT DE RUGOSITE DES BORDS' 
+NOM1 = 'ROUGHNESS COEFFICIENT OF BOUNDARIES' 
+TYPE = REEL 
+INDEX = 29 
+MNEMO = 'SB' 
+TAILLE = 0 
+DEFAUT = 100. 
+DEFAUT1 = 100. 
+RUBRIQUE = 'EQUATIONS' 
+RUBRIQUE1 = 'EQUATIONS' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur du coefficient de frottement sur les frontieres 
+solides avec un regime turbulent rugueux sur les bords du domaine. 
+meme convention que pour le coefficient de frottement: 
+                    1 : non programme 
+                    2 : coefficient de Chezy 
+                    3 : coefficient de Strickler 
+                    4 : coefficient de Manning 
+                    5 : hauteur de rugosite de Nikuradse' 
+AIDE1 = 'Sets the value of the friction coefficient of the solid boundary 
+with the bed roughness option. Same meaning than friction coefficient' 
+NOM = 'DEBITS IMPOSES' 
+NOM1 = 'PRESCRIBED FLOWRATES' 
+TYPE = REEL 
+INDEX = 30 
+MNEMO = 'DEBIT' 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, CONDITIONS LIMITES' 
+RUBRIQUE1 = 'EQUATIONS, BOUNDARY CONDITIONS' 
+COMPORT = 
+'Foreground ("EQUATIONS, CONDITIONS LIMITES") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = ' Valeurs des debits imposes aux frontieres liquides entrantes. 
+Lire la partie du mode d''emploi consacree aux conditions aux limites' 
+AIDE1 = 'Values of prescribed flowrates at the inflow boundaries. 
+The section about boundary conditions is to be read in the manual' 
+NOM = 'COTES IMPOSEES' 
+NOM1 = 'PRESCRIBED ELEVATIONS' 
+TYPE = REEL 
+INDEX = 31 
+MNEMO = 'COTES' 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, CONDITIONS LIMITES' 
+RUBRIQUE1 = 'EQUATIONS, BOUNDARY CONDITIONS' 
+NIVEAU = 1 
+AIDE = 'Valeurs des cotes imposees aux frontieres liquides entrantes. 
+Lire la partie du mode d''emploi consacree aux conditions aux limites' 
+AIDE1 = 'Values of prescribed elevations at the inflow boundaries. 
+The section about boundary conditions is to be read in the manual' 
+NOM = 'VITESSES IMPOSEES' 
+NOM1 = 'PRESCRIBED VELOCITIES' 
+TYPE = REEL 
+INDEX = 32 
+MNEMO = 'VITES' 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, CONDITIONS LIMITES' 
+RUBRIQUE1 = 'EQUATIONS, BOUNDARY CONDITIONS' 
+COMPORT = 
+'Foreground ("EQUATIONS, CONDITIONS LIMITES") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'Valeurs des vitesses imposees aux frontieres liquides entrantes. 
+Lire la partie du mode d''emploi consacree aux conditions aux limites' 
+AIDE1 ='Values of prescribed velocities at the liquid inflow boundaries. 
+Refer to the section dealing with the boundary conditions' 
+NOM = 'COTE INITIALE' 
+NOM1 = 'INITIAL ELEVATION' 
+TYPE = REEL 
+INDEX = 33 
+MNEMO = 'COTINI' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'EQUATIONS, CONDITIONS INITIALES' 
+RUBRIQUE1 = 'EQUATIONS, INITIAL CONDITIONS' 
+COMPORT = 
+'Foreground ("EQUATIONS, CONDITIONS INITIALES") IS VALEUR (brown)' 
+NIVEAU = 1 
+CONTROLE = -427.; 8848. 
+AIDE = 'Valeur utilisee avec l''option : 
+     CONDITIONS INITIALES - COTE CONSTANTE' 
+AIDE1 ='Value to be used with the option : 
+INITIAL CONDITIONS  -CONSTANT ELEVATION' 
+NOM = 'HAUTEUR INITIALE' 
+NOM1 = 'INITIAL DEPTH' 
+TYPE = REEL 
+INDEX = 34 
+MNEMO = 'HAUTINI' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'EQUATIONS, CONDITIONS INITIALES' 
+RUBRIQUE1 = 'EQUATIONS, INITIAL CONDITIONS' 
+NIVEAU = 1 
+CONTROLE = 0; 20 
+AIDE = 'Valeur utilisee avec l''option : 
+CONDITIONS INITIALES :-HAUTEUR CONSTANTE-' 
+AIDE1 = 'Value to be used along with the option: 
+         INITIAL CONDITIONS -CONSTANT DEPTH-' 
+NOM = 'VALEURS IMPOSEES DES TRACEURS' 
+NOM1 = 'PRESCRIBED TRACERS VALUES' 
+TYPE = REEL 
+INDEX = 35 
+MNEMO = 'TRACER' 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, CONDITIONS LIMITES' 
+RUBRIQUE1 = 'EQUATIONS, BOUNDARY CONDITIONS' 
+NIVEAU = 1 
+AIDE = 'Valeurs du traceur imposees aux frontieres liquides entrantes. 
+Lire la partie du mode d''emploi consacree aux conditions aux limites' 
+AIDE1 = 'Tracer values prescribed at the inflow boundaries. 
+Read the usermanual section dealing with the boundary conditions' 
+NOM = 'ABSCISSES DES SOURCES' 
+NOM1 = 'ABSCISSAE OF SOURCES' 
+TYPE = REEL 
+INDEX = 36 
+MNEMO = 'XSCE' 
+CONTROLE = -10000 ; 10000 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, SOURCES' 
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS' 
+NIVEAU = 1 
+AIDE = 'Valeurs des abscisses des sources de debit et de traceur.' 
+AIDE1 = 'abscissae of sources of flowrate and/or tracer' 
+NOM = 'ORDONNEES DES SOURCES' 
+NOM1 = 'ORDINATES OF SOURCES' 
+TYPE = REEL 
+INDEX = 37 
+MNEMO = 'YSCE' 
+CONTROLE = -10000 ; 10000 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, SOURCES' 
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS' 
+NIVEAU = 1 
+AIDE = 'Valeurs des ordonnees des sources de debit et de traceur.' 
+AIDE1 = 'ordinates of sources of flowrate and/or tracer' 
+NOM = 'DEBITS DES SOURCES' 
+NOM1 = 'WATER DISCHARGE OF SOURCES' 
+TYPE = REEL 
+INDEX = 38 
+MNEMO = 'DSCE' 
+CONTROLE = 0 ; 10000 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, SOURCES' 
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS' 
+NIVEAU = 1 
+AIDE = 'Valeurs des debits des sources.' 
+AIDE1 = 'values of water discharge of sources' 
+NOM = 'VALEURS DES TRACEURS DES SOURCES' 
+NOM1 = 'VALUES OF THE TRACERS AT THE SOURCES' 
+TYPE = REEL 
+INDEX = 39 
+MNEMO = 'TSCE' 
+CONTROLE = 0 ; 10000 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, SOURCES' 
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS' 
+NIVEAU = 1 
+AIDE = 'Valeurs des traceurs a chacune des sources' 
+AIDE1 = 'Values of the tracers at the sources' 
+NOM = 'VITESSES DES SOURCES SELON X' 
+NOM1 = 'VELOCITIES OF THE SOURCES ALONG X' 
+TYPE = REEL 
+INDEX = 43 
+MNEMO = 'USCE' 
+CONTROLE = 0 ; 10000 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, SOURCES' 
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS' 
+NIVEAU = 1 
+AIDE = 'Vitesses du courant a chacune des sources. Si elles ne sont pas 
+donnees, on considere que la vitesse est celle du courant' 
+AIDE1 = 'Velocities at the sources. If they are not given, the velocity 
+of the flow at this location is taken' 
+NOM = 'VITESSES DES SOURCES SELON Y' 
+NOM1 = 'VELOCITIES OF THE SOURCES ALONG Y' 
+TYPE = REEL 
+INDEX = 44 
+MNEMO = 'VSCE' 
+CONTROLE = 0 ; 10000 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, SOURCES' 
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS' 
+NIVEAU = 1 
+AIDE = 'Vitesses du courant a chacune des sources' 
+AIDE1 = 'Velocities at the sources' 
+NOM = 'COEFFICIENTS DE DECENTREMENT' 
+NOM1 = 'UPWIND COEFFICIENTS' 
+TYPE = REEL 
+INDEX = 40 
+MNEMO = 'COSUPG' 
+CONTROLE = 0 ; 10 
+TAILLE = 4 
+DEFAUT = 1.;1.;1.;1 
+DEFAUT1 = 1.;1.;1.;1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 3 
+AIDE = 'Coefficients utilises par la methode S.U.P.G. 
+ces coefficients sont respectivement appliques a 
+        1) U et V 
+        2) H ou C 
+        3) T 
+        4) K ET EPSILON  ' 
+AIDE1 = 'Upwind coefficients used by the S.U.P.G. method 
+These coefficients are applied respectively to 
+        1) U and V 
+        2) H  or C 
+        3) T 
+        4) K and epsilon  ' 
+NOM = 'CRITERES D''ARRET' 
+NOM1 = 'STOP CRITERIA' 
+TYPE = REEL 
+INDEX = 41 
+MNEMO = 'CRIPER' 
+CONTROLE = 0 ; 10 
+TAILLE = 3 
+DEFAUT = 1.E-4;1.E-4;1.E-4 
+DEFAUT1= 1.E-4;1.E-4;1.E-4 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Criteres d''arret pour un ecoulement permanent 
+ces coefficients sont respectivement appliques a 
+        1) U et V 
+        2) H 
+        3) T 
+A utiliser avec le mot-cle : ARRET SI UN ETAT PERMANENT EST ATTEINT' 
+AIDE1 = 'Stop criteria for a steady state 
+These coefficients are applied respectively to 
+        1) U and V 
+        2) H 
+        3) T 
+To be used with the key-word: STOP IF A STEADY STATE IS REACHED' 
+NOM = 'DUREE DU CALCUL' 
+NOM1 = 'DURATION' 
+TYPE = REEL 
+INDEX = 45 
+MNEMO = 'DUREE' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1= 0. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'DUREE DU CALCUL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'DURATION' 
+NIVEAU = 1 
+AIDE = 'duree de la simulation. alternative au parametre nombre de pas 
+de temps. On en deduit le nombre de pas de temps en prenant l''entier le 
+plus proche de (duree du calcul/pas de temps). Si le nombre de pas de 
+temps est aussi donne, on prend la plus grande valeur' 
+AIDE1 = 'duration of simulation. May be used instead of the parameter 
+NUMBER OF TIME STEPS. The nearest integer to (duration/time step) is 
+taken. 
+If NUMBER OF TIME STEPS is also given, the greater value is taken' 
+NOM = 'NORD' 
+NOM1 = 'NORTH' 
+TYPE = REEL 
+INDEX = 46 
+MNEMO = 'NORD' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1= 0. 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 2 
+AIDE = 'Direction du nord en degres, par rapport a l''axe des y 
+dans le sens trigonometrique. Notation decimale 10.5 signifie  10 degres 
+et trente minutes.' 
+AIDE1 = 'Angle of the North with the y axis, in degrees. 10.5 means 
+10 degrees and 30 minutes.' 
+NOM = 'TITRE' 
+NOM1 = 'TITLE' 
+TYPE = CARACTERE 
+INDEX = 1 
+MNEMO = 'TITCAS' 
+TAILLE = 0 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, GENERALITES*CALCUL") 
+IS VALEUR (red)' 
+NIVEAU = 1 
+AIDE = 'Titre du cas etudie. Ce titre figurera sur les dessins.' 
+AIDE1 = 'Title of the case being considered. This title shall be marked 
+on the drawings.' 
+NOM = 'VARIABLES POUR LES SORTIES GRAPHIQUES' 
+NOM1 = 'VARIABLES FOR GRAPHIC PRINTOUTS' 
+TYPE = CARACTERE 
+INDEX = 2 
+MNEMO = 'SORTIE' 
+TAILLE = 0 
+DEFAUT = 'U,V,H,B' 
+DEFAUT1 = 'U,V,H,B' 
+CHOIX = 'U="vitesse suivant l''axe des x  (m/s)"'; 
+'V="vitesse suivant l''axe des y  (m/s)"'; 
+'C="celerite des onde  (m/s)"'; 
+'H="hauteur d''eau  (m)"'; 
+'S="cote de surface libre  (m)"'; 
+'B="cote du fond  (m)"'; 
+'F="nombre de Froude  "'; 
+'Q="debit scalaire du fluide  (m2/s)"'; 
+'T1="traceur 1, etc. "'; 
+'K="energie turbulente du modele k-epsilon  (J/kg)"'; 
+'E="dissipation de l''energie turbulente  (W/kg)"'; 
+'D="viscosite turbulente du modele k-epsilon  (m2/s)"'; 
+'I="debit suivant l''axe des x  (m2/s)"'; 
+'J="debit suivant l''axe des y  (m2/s)"'; 
+'M="vitesse scalaire  (m/s)"'; 
+'X="vent suivant l''axe des x  (m/s)"'; 
+'Y="vent suivant l''axe des y  (m/s)"'; 
+'P="pression atmospherique  (Pa)"'; 
+'W="coefficient de frottement sur le fond  "'; 
+'A="derive en x  (m)"'; 
+'G="derive en y  (m)"'; 
+'L="nombre de Courant  "'; 
+'N="variable supplementaire N "'; 
+'O="variable supplementaire O "'; 
+'R="variable supplementaire R "'; 
+'Z="variable supplementaire Z "'; 
+'MAXZ="cote maximum "'; 
+'TMXZ="temps de la cote maximum "'; 
+'MAXV="vitesse maximum "'; 
+'TMXV="temps de la vitesse maximum "'; 
+'US="vitesse de frottement "' 
+CHOIX1= 'U="velocity along x axis  (m/s)"'; 
+'V="velocity along y axis  (m/s)"'; 
+'C="wave celerity  (m/s)"'; 
+'H="water depth  (m)"'; 
+'S="free surface elevation  (m)"'; 
+'B="bottom elevation  (m)"'; 
+'F="Froude number  "'; 
+'Q="scalar flowrate of fluid  (m2/s)"'; 
+'T1="tracer 1 etc. "'; 
+'K="turbulent kinetic energy in k-epsilon model  (J/kg)"'; 
+'E="dissipation of turbulent energy  (W/kg)"'; 
+'D="turbulent viscosity of k-epsilon model  (m2/s)"'; 
+'I="flowrate along x axis  (m2/s)"'; 
+'J="flowrate along y axis  (m2/s)"'; 
+'M="scalar velocity  (m/s)"'; 
+'X="wind along x axis  (m/s)"'; 
+'Y="wind along y axis  (m/s)"'; 
+'P="air pressure  (Pa)"'; 
+'W="friction coefficient"'; 
+'A="drift along x  (m)"'; 
+'G="drift along y  (m)"'; 
+'L="Courant number "'; 
+'N="supplementary variable N "'; 
+'O="supplementary variable O "'; 
+'R="supplementary variable R "'; 
+'Z="supplementary variable Z  "'; 
+'MAXZ="maximum elevation"'; 
+'TMXZ="time of maximum elevation "'; 
+'MAXV="maximum velocity"'; 
+'TMXV="time of maximum velocity"'; 
+'US="friction velocity  "' 
+COMPOSE=',' 
+APPARENCE = 'packing IS XmPACK_COLUMN' ; 
+    'numColumns IS 26';'LISTE IS EDITABLE' 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 1 
+AIDE = 'Noms des variables que l''utilisateur veut ecrire dans 
+le fichier des resultats. 
+Chaque variable est representee par une lettre. 
+Le choix des separateurs est libre. 
+Les possibilites offertes sont les suivantes : 
+   - U : vitesse suivant l''axe des x (m/s), 
+   - V : vitesse suivant l''axe des y (m/s), 
+   - C : celerite des ondes (m/s), 
+   - H : hauteur d''eau (m), 
+   - S : cote de surface libre (m), 
+   - B : cote du fond (m), 
+   - F : nombre de Froude, 
+   - Q : debit scalaire du fluide (m2/s), 
+   - T : traceur, 
+   - K : energie turbulente du modele k-epsilon (J/kg), 
+   - E : dissipation de l''energie turbulente (W/kg), 
+   - D : viscosite turbulente du modele k-epsilon (m2/s), 
+   - I : debit suivant l''axe des x (m2/s), 
+   - J : debit suivant l''axe des y (m2/s), 
+   - M : vitesse scalaire (m/s), 
+   - X : vent suivant l''axe des x (m/s), 
+   - Y : vent suivant l''axe des y (m/s), 
+   - P : pression atmospherique (Pa), 
+   - W : coefficient de frottement sur le fond, 
+   - A : derive en x (m), 
+   - G : derive en y (m), 
+   - L : coefficient de frottement sur le fond. 
+L''utilisateur dispose egalement de 4 champs libres, qu''il peut 
+utiliser pour ecrire dans le fichier des resultats des variables 
+qu''il cree lui-meme. Ces variables propres a l''utlisateur doivent 
+etre calculees dans le sous-programme PRERES et le nom que l''on 
+desire leur donner doit etre ecrit dans le sous-programme NOMVAR. 
+Ces 7 champs sont : 
+  - N, O, R, Z qui correspondent aux tableaux PRIVE(1,1), PRIVE(1,2), 
+PRIVE(1,3), PRIVE(1,4). A la difference des variables 
+precedentes, celles-ci sont conservees dans tout le programme, et 
+peuvent donc etre reutilisees. 
+Dans ce dernier cas ne pas oublier de donner une taille 
+suffisante au tableau PRIVE (dans le programme principal). 
+Il est ainsi possible de limiter, par exemple, la taille des fichiers 
+de resultats pour de tres gros calculs. Cependant, il faut etre 
+conscient du fait que, dans l''eventualite d''une reprise de calcul, 
+le code doit disposer, dans le fichier des resultats, des informations 
+necessaires a sa poursuite, a savoir : 
+ - les vitesses U et V, 
+ - les hauteurs d''eau H, 
+ - les cotes du fond B. 
+Toutefois, TELEMAC peut recalculer certaines de ces variables a partir 
+d''autres qui lui seront fournies (par exemple, il recalculera H a 
+partir de S et B).' 
+AIDE1 = 'Names of variables the user wants to write into the results 
+file. Each variable is represented by a letter. The separators can be 
+freely selected. 
+The available capabilities are as follows: 
+        U     :   velocity along x axis (m/s), 
+        V     :   velocity along y axis (m/s), 
+        C     :   wave celerity (m/s), 
+        H     :   water depth (m), 
+        S     :   free surface elevation (m), 
+        B     :   bottom elevation (m), 
+        F     :   Froude number, 
+        Q     :   scalar flowrate of fluid (m2/s), 
+        T     :   tracer 
+        K     :   turbulent kinetic energy in k-epsilon model (J/kg), 
+        E     :   dissipation of turbulent energy (W/kg), 
+        D     :   turbulent viscosity of k-epsilon model (m2/s), 
+        I     :   flowrate along x axis (m2/s), 
+        J     :   flowrate along y axis (m2/s), 
+        M     :   scalar velocity (m/s), 
+        X     :   wind along x axis (m/s) 
+        Y     :   wind along y axis (m/s), 
+        P     :   air pressure (Pa), 
+        W     :   friction coefficient , 
+        A     :   drift along x, 
+        G     :   drift along y, 
+        L     :   nombre de courant. 
+four other variables are also made available to the user who may use 
+them for writing into the file the results of variables he creates 
+himself. These user-specific variables should be computed in the 
+subroutine PRERES and their desired name should be written 
+into the subroutine NOMVAR. 
+These seven variables are as follows: 
+        -N, O, R, Z which correspond to arrays PRIVE(1,1) up to PRIVE(1, 
+Unlike the preceding variables, they are preserved throughout the 
+program, so that they can be used again. 
+In the latter case, do not forget to provide the array PRIVE with 
+sufficiently large dimensions (in FORTRAN file). 
+With this key-word, one can limit the size of the RESULTS FILE. 
+It should be kept in mind, however, that if a computation has to be 
+continued, the RESULTS FILE should contain the appropriate information 
+for running the code,i.e.: 
+ - velocities U and V, 
+ - water depths H, 
+ - bottom elevations B. 
+TELEMAC, however, can compute some of these variables from others 
+for example, it will compute H from S and B.' 
+NOM = 'VARIABLES A IMPRIMER' 
+NOM1 = 'VARIABLES TO BE PRINTED' 
+TYPE = CARACTERE 
+INDEX = 3 
+MNEMO = 'VARIMP' 
+TAILLE = 0 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+/CHOIX = '" "="pas de variables"'; 
+CHOIX = 'U="vitesse suivant l''axe des x (m/s)"'; 
+'V="vitesse suivant l''axe des y (m/s)"'; 
+'C="celerite des ondes (m/s)"'; 
+'H="hauteur d''eau (m)"'; 
+'S="cote de surface libre (m)"'; 
+'B="cote du fond (m)"'; 
+'F="nombre de Froude"'; 
+'Q="debit scalaire du fluide (m2/s)"'; 
+'T="traceur"'; 
+'K="energie turbulente du modele k-epsilon (J/kg)"'; 
+'E="dissipation de l''energie turbulente (W/kg)"'; 
+'D="viscosite turbulente du modele k-epsilon (m2/s)"'; 
+'I="debit suivant l''axe des x (m2/s)"'; 
+'J="debit suivant l''axe des y (m2/s)"'; 
+'M="vitesse scalaire (m/s)"'; 
+'X="vent suivant l''axe des x (m/s)"'; 
+'Y="vent suivant l''axe des y (m/s)"'; 
+'P="pression atmospherique (Pa)"'; 
+'W="coefficient de frottement sur le fond"'; 
+'A="derive en x  (m)"'; 
+'G="derive en y  (m)"'; 
+'L="nombre de courants "'; 
+'N="variable supplementaire N"'; 
+'O="variable supplementaire O"'; 
+'R="variable supplementaire R"'; 
+'Z="variable supplementaire Z"' 
+CHOIX1 = 'U="velocity along x axis (m/s)"'; 
+'V="velocity along y axis (m/s)"'; 
+'C="wave celerity (m/s)"'; 
+'H="water depth (m)"'; 
+'S="free surface elevation (m)"'; 
+'B="bottom elevation (m)"'; 
+'F="Froude number"'; 
+'Q="scalar flowrate of fluid (m2/s)"'; 
+'T="tracer"'; 
+'K="turbulent kinetic energy in k-epsilon model (J/kg)"'; 
+'E="dissipation of turbulent energy (W/kg)"'; 
+'D="turbulent viscosity of k-epsilon model (m2/s)"'; 
+'I="flowrate along x axis (m2/s)"'; 
+'J="flowrate along y axis (m2/s)"'; 
+'M="scalar velocity (m/s)"'; 
+'X="wind along x axis (m/s)"'; 
+'Y="wind along y axis (m/s)"'; 
+'P="air pressure (Pa)"'; 
+'W="friction coefficient"'; 
+'A="drift along x  (m)"'; 
+'G="drift along y  (m)"'; 
+'L="nombre de courants "'; 
+'N="supplementary variable N"'; 
+'O="supplementary variable O"'; 
+'R="supplementary variable R"'; 
+'Z="supplementary variable Z"' 
+COMPOSE=',' 
+APPARENCE = 'packing IS XmPACK_COLUMN' ; 'numColumns IS 26' ; 
+'LISTE IS EDITABLE' 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 1 
+AIDE = 'Nom des variables que l''utilisateur desire ecrire a l''ecran. 
+Meme possibilites que pour les sorties graphiques.' 
+AIDE1 = '' 
+NOM = 'USER CRAY' 
+NOM1 = 'USER CRAY' 
+TYPE = CARACTERE 
+INDEX = 4 
+MNEMO = '' 
+TAILLE = 0 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, GENERALITES*ENVIRONNEMENT") 
+IS VALEUR (red)' 
+NIVEAU = 2 
+AIDE = 'Userid CRAY de l''utilisateur.' 
+AIDE1 = 'User''s identity on CRAY.' 
+NOM = 'MOT DE PASSE CRAY' 
+NOM1 = 'PASSWORD' 
+TYPE = CARACTERE 
+INDEX = 5 
+MNEMO = '' 
+TAILLE = 0 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = 2 
+AIDE = 'Mot de passe associe a l''USER CRAY.' 
+AIDE1 = 'Password related to USER CRAY.' 
+NOM = 'FICHIER FORTRAN' 
+NOM1 = 'FORTRAN FILE' 
+TYPE = CARACTERE 
+INDEX = 7 
+MNEMO = 'NOMFOR' 
+SUBMIT = 'INUTILE;t2dfort.f;FACUL;ASC;LIT;FORTRAN' 
+DEFAUT = 'DEFAUT' 
+DEFAUT1 = 'DEFAUT' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+AIDE = 'Nom du fichier FORTRAN a soumettre.' 
+AIDE1 = 'Name of FORTRAN file to be submitted.' 
+NOM = 'FICHIER DES PARAMETRES' 
+NOM1 = 'STEERING FILE' 
+TYPE = CARACTERE 
+INDEX = 8 
+MNEMO = 'NOMCAS' 
+SUBMIT = 'INUTILE;T2DCAS;OBLIG;ASC;LIT;CAS' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Nom du fichier contenant les parametres du calcul a realiser.' 
+AIDE1 = 'Name of the file containing the parameters of the computation 
+Written by the user.' 
+NOM = 'FICHIER DES CONDITIONS AUX LIMITES' 
+NOM1 = 'BOUNDARY CONDITIONS FILE' 
+TYPE = CARACTERE 
+INDEX = 9 
+MNEMO = 'T2D_FILES(T2DLIM)%NAME' 
+SUBMIT = 'T2DLIM-READ-07;T2DCLI;OBLIG;ASC;LIT;CONLIM' 
+/DEFAUT = ' ' 
+/DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+APPARENCE = 'LISTE IS FICHIER' 
+NIVEAU = 1 
+AIDE = 'Nom du fichier contenant les types de conditions aux limites. 
+Ce fichier est rempli de facon automatique par le mailleur au moyen de 
+couleurs affectees aux noeuds des frontieres du domaine de calcul.' 
+AIDE1 = 'Name of the file containing the types of boundary conditions. 
+This file is filled automatically by the mesh generator through 
+through colours that are assigned to the boundary nodes.' 
+NOM = 'FICHIER DU CALCUL PRECEDENT' 
+NOM1 = 'PREVIOUS COMPUTATION FILE' 
+TYPE = CARACTERE 
+INDEX = 10 
+MNEMO = 'T2D_FILES(T2DPRE)%NAME' 
+SUBMIT = 'T2DPRE-READ-04;T2DPRE;FACUL;BIN;LIT;SELAFIN' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Nom d''un fichier contenant les resultats d''un calcul precedent 
+realise sur le meme maillage et dont le dernier pas de temps enregistre 
+va fournir les conditions initiales pour une suite de de calcul.' 
+AIDE1 = 'Name of a file containing the results of an earlier computation 
+which was made on the same mesh. The last recorded time step will provid 
+the initial conditions for the new computation.' 
+NOM = 'FICHIER DES RESULTATS' 
+NOM1 = 'RESULTS FILE' 
+TYPE = CARACTERE 
+INDEX = 11 
+MNEMO = 'T2D_FILES(T2DRES)%NAME' 
+/ READWRITE CAR RELU EN CAS DE VALIDATION 
+SUBMIT = 'T2DRES-READWRITE-08;T2DRES;OBLIG;BIN;ECR;SELAFIN' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Nom du fichier dans lequel seront ecrits les resultats du calcul 
+avec la periodicite donnee par le mot cle ''PERIODE POUR LES SORTIES 
+GRAPHIQUES''.' 
+AIDE1 = 'Name of the file into which the computation results shall be 
+written, 
+the periodicity being given by the key-word: 
+GRAPHIC PRINTOUT PERIOD.' 
+NOM = 'NUMERO DE VERSION' 
+NOM1 = 'RELEASE' 
+TYPE = CARACTERE 
+INDEX = 12 
+MNEMO = '' 
+TAILLE = 0 
+DEFAUT = 'V6P3' 
+DEFAUT1 = 'V6P3' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = -3 
+AIDE = 'Numero de version des bibliotheques utilisees par TELEMAC.
+SUR UNE STATION DE TRAVAIL 
+5 versions sont donnees correspondant a : 
+TELEMAC,DAMO,UTILE,BIEF,HP' 
+AIDE1 = 'version number of the libraries used by TELEMAC.
+ON A WORKSTATION 
+5 numbers are given, corresponding to the libraries called: 
+TELEMAC,DAMO,UTILE,BIEF,HP' 
+NOM = 'TEMPS MACHINE CRAY' 
+NOM1 = 'CPU TIME' 
+TYPE = CARACTERE 
+INDEX = 13 
+MNEMO = '' 
+DEFAUT = '10' 
+DEFAUT1 = '10' 
+NIVEAU = 2 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+AIDE = 'Temps CPU (en secondes) alloue pour la realisation du calcul. 
+Attention; il s''agit bien d''une chaine de caracteres.' 
+AIDE1 = 'C.P.U. time (in seconds) allowed for making the computation. 
+Please note that this keyword is a string of characters.' 
+NOM = 'PLACE MEMOIRE CRAY' 
+NOM1 = 'MEMORY SPACE' 
+TYPE = CARACTERE 
+INDEX = 14 
+MNEMO = '' 
+TAILLE = 0 
+DEFAUT = '1500000W' 
+DEFAUT1 = '1500000W' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = 2 
+AIDE = 'Place memoire (en mots de 8 octets) reservee en machine pour la 
+realisation du calcul.' 
+AIDE1 = 'Storage capacity (in words of 8 bytes) reserved in machine for 
+making the computation.' 
+NOM = 'FICHIER DES FONDS' 
+NOM1 = 'BOTTOM TOPOGRAPHY FILE' 
+TYPE = CARACTERE 
+INDEX = 15 
+MNEMO = 'T2D_FILES(T2DFON)%NAME' 
+SUBMIT = 'T2DFON-READ-23;T2DFON;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Nom du fichier eventuel contenant la bathymetrie associee au 
+maillage. 
+Si ce mot-cle est utilise; c''est cette bathymetrie qui sera utilisee 
+pour le calcul.' 
+AIDE1 = 'Name of the possible file containing the bathymetric data. 
+Where this keyword is used, these bathymetric data shall be used in 
+the computation.' 
+NOM = 'NUMERO DE COMPTE' 
+NOM1 = 'ACCOUNT NUMBER' 
+TYPE = CARACTERE 
+INDEX = 16 
+MNEMO = ' ' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 2 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+AIDE = 'Numero du compte calcul sur lequel sera impute le cout 
+du calcul.' 
+AIDE1 = 'Account number to which the cost of computation shall be 
+charged.' 
+NOM = 'FICHIER DE DONNEES BINAIRE 1' 
+NOM1 = 'BINARY DATA FILE 1' 
+TYPE = CARACTERE 
+INDEX = 17 
+MNEMO = 'T2D_FILES(T2DBI1)%NAME' 
+/WITH WAVE FORCING, IS A SELAFIN FILE 
+SUBMIT = 'T2DBI1-READ-24;T2DBI1;FACUL;BIN;LIT;SELAFIN' 
+/SUBMIT = 'NBI1-READ-24;T2DBI1;FACUL;BIN;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+APPARENCE = 'LISTE IS FICHIER' 
+NIVEAU = 1 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de donnees code en binaire mis a la disposition 
+de l''utilisateur. 
+Les donnees de ce fichier seront a lire sur le canal 24.' 
+AIDE1 = 'Binary-coded data file made available to the user. 
+The data in this file shall be read on channel 24.' 
+NOM = 'FICHIER DE DONNEES BINAIRE 2' 
+NOM1 = 'BINARY DATA FILE 2' 
+TYPE = CARACTERE 
+INDEX = 18 
+MNEMO = 'T2D_FILES(T2DBI2)%NAME' 
+TAILLE = 0 
+SUBMIT = 'T2DBI2-READ-25;T2DBI2;FACUL;BIN;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de donnees code en binaire mis a la disposition 
+de l''utilisateur. 
+Les donnees de ce fichier seront a lire sur le canal 25.' 
+AIDE1 = 'Binary-coded data file made available to the user. 
+The data in this file shall be read on channel 25.' 
+NOM = 'FICHIER DE DONNEES FORMATE 1' 
+NOM1 = 'FORMATTED DATA FILE 1' 
+TYPE = CARACTERE 
+INDEX = 19 
+MNEMO = 'T2D_FILES(T2DFO1)%NAME' 
+SUBMIT = 'T2DFO1-READ-26;T2DFO1;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de donnees formate mis a la disposition de 
+l''utilisateur. 
+Les donnees de ce fichier seront a lire sur le canal 26.' 
+AIDE1 = 'Formatted data file made available to the user. 
+The data in this file shall be read on channel 26.' 
+NOM = 'FICHIER DE DONNEES FORMATE 2' 
+NOM1 = 'FORMATTED DATA FILE 2' 
+TYPE = CARACTERE 
+INDEX = 20 
+MNEMO = 'T2D_FILES(T2DFO2)%NAME' 
+SUBMIT = 'T2DFO2-READ-27;T2DFO2;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de donnees formate mis a la disposition de 
+l''utilisateur. 
+Les donnees de ce fichier seront a lire sur le canal 27.' 
+AIDE1 = 'Formatted data file made available to the user. 
+The data in this file shall be read on channel 27.' 
+NOM = 'DESTINATION' 
+NOM1 = 'DESTINATION' 
+TYPE = CARACTERE 
+INDEX = 21 
+MNEMO = '' 
+DEFAUT = 'CHE43A' 
+DEFAUT1 = 'CHE43A' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = 2 
+AIDE = 'Nom eventuel d''une station de travail sur laquelle 
+l''utilisateur desire rediriger le fichier des resultats du calcul.' 
+AIDE1 = 'Possible name of a workstation to which the user wants 
+to reroute the result file.' 
+NOM = 'USER SUR LA DESTINATION' 
+NOM1 = 'USER ON DESTINATION' 
+TYPE = CARACTERE 
+INDEX = 22 
+MNEMO = '' 
+TAILLE = 0 
+DEFAUT = 'JMH' 
+DEFAUT1 = 'JMH' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = 2 
+AIDE = 'Nom de l''USER de l''utilisateur sur la station de travail 
+ou l''on desire rediriger le fichier de resultts.' 
+AIDE1 = 'User''s name of USER at the workstation onto which the 
+results file shall desirebly be rerouted.' 
+NOM = 'NOMS DES VARIABLES CLANDESTINES' 
+NOM1 = 'NAMES OF CLANDESTINE VARIABLES' 
+TYPE = CARACTERE 
+INDEX = 23 
+MNEMO = 'VARCLA' 
+TAILLE = 2 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 1 
+AIDE = 'Noms de variables qui ne sont pas utilisees par TELEMAC; 
+mais qui doivent etre conservees lors de son execution. 
+Ceci peut etre utilise entre autres lors du couplage de TELEMAC 
+avec un autre code. 
+Les variables clandestines sont alors des variables propres a l''autre 
+code et sont rendues dans le fichier de resultats.' 
+AIDE1 = 'Names of variables that are not used by TELEMAC, but should be 
+preserved when it is being run. This keyword may be used, for instance 
+when it if TELEMAC is coupled with another code. Thus, the clandestine 
+variables belong to the other code and are given back in the results 
+file.' 
+NOM = 'FICHIER DE RESULTATS BINAIRE' 
+NOM1 = 'BINARY RESULTS FILE' 
+TYPE = CARACTERE 
+INDEX = 24 
+MNEMO = 'T2D_FILES(T2DRBI)%NAME' 
+SUBMIT = 'T2DRBI-WRITE-28;T2DRBI;FACUL;BIN;ECR;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de resultats code en binaire mis a la disposition 
+de l''utilisateur. Les resultats a placer dans ce fichier seront a 
+ecrire sur le canal 28.' 
+AIDE1 = 'Additional binary-coded result file made available 
+to the user. The results to be entered into this file shall be written 
+on channel 28.' 
+NOM = 'FICHIER DE RESULTATS FORMATE' 
+NOM1 = 'FORMATTED RESULTS FILE' 
+TYPE = CARACTERE 
+INDEX = 25 
+MNEMO = 'T2D_FILES(T2DRFO)%NAME' 
+SUBMIT = 'T2DRFO-WRITE-29;T2DRFO;FACUL;ASC;ECR;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats formate mis a la disposition de 
+l''utilisateur. 
+Les resultats a placer dans ce fichier seront a ecrire sur 
+le canal 29.' 
+AIDE1 = 'Formatted file of results made available to the user. 
+The results to be entered into this file shall be written 
+on channel 29.' 
+NOM = 'CONDITIONS INITIALES' 
+NOM1 = 'INITIAL CONDITIONS' 
+TYPE = CARACTERE 
+INDEX = 26 
+MNEMO = 'CDTINI' 
+DEFAUT = 'COTE NULLE' 
+DEFAUT1 = 'ZERO ELEVATION' 
+NIVEAU = 1 
+CHOIX = '"COTE NULLE"'; '"COTE CONSTANTE"'; 
+'"HAUTEUR NULLE"'; '"HAUTEUR CONSTANTE"'; '"PARTICULIERES"' ;
+'"ALTIMETRIE SATELLITE TPXO"'
+CHOIX1 = '"ZERO ELEVATION"'; '"CONSTANT ELEVATION"'; 
+'"ZERO DEPTH"'; '"CONSTANT DEPTH"'; '"SPECIAL"' ;
+'"TPXO SATELLITE ALTIMETRY"'
+RUBRIQUE = 'EQUATIONS, CONDITIONS INITIALES' 
+RUBRIQUE1 = 'EQUATIONS, INITIAL CONDITIONS' 
+AIDE = 'Permet de definir les conditions initiales sur 
+les hauteurs d''eau. 
+Les valeurs possibles sont : 
+   - COTE NULLE. Initialise la cote de surface libre a 0.
+           Les hauteurs d''eau initiales sont alors retrouvees en 
+           faisant la difference entre les cotes de surface libre 
+           et du fond. 
+   - 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. 
+   - HAUTEUR NULLE .Initialise les hauteurs d''eau a 0.
+   - HAUTEUR CONSTANTE. Initialise les hauteurs d''eau a la valeur 
+           donnee par le mot-cle HAUTEUR INITIALE. 
+   - PARTICULIERES. Les conditions initiales sur la hauteur d''eau 
+           doivent etre precisees dans le sous-programme CONDIN.
+   - ALTIMETRIE SATELLITE TPXO. Les conditions initiales sur la hauteur
+           d''eau et les vitesses sont etiblies sur la base des donnees
+           satellite TPXO dont les 8 premiers constistuents ont ete extrait
+           et sauves dans le fichier BASE DE DONNEES DE MAREE.' 
+AIDE1 = 'Makes it possible to define the initial conditions with 
+the water depth. 
+The possible values are as follows: 
+   - ZERO ELEVATION-. Initializes the free surface elevation to 0.
+The initial water depths are then found by computing the difference 
+between the free surface and the bottom. 
+   - CONSTANT ELEVATION-. Initializes the water elevation to the value
+given by the keyword -INITIAL ELEVATION-. The initial water depths 
+are computed as in the previous case. 
+   - ZERO DEPTH-. Initializes the water depths to 0.
+   - CONSTANT DEPTH-. Initializes the water depths to the value given
+by the key-word -INITIAL DEPTH-.
+   - SPECIAL-. The initial conditions with the water depth should be
+stated in the CONDIN subroutine.
+   - TPXO SATELITE ALTIMETRY. The initial conditions on the free surface and
+velocities are established from the TPXO satellite program data, the harmonic
+constituents of which are stored in the TIDE DATA BASE file.' 
+NOM = 'FORMAT DU FICHIER DE GEOMETRIE' 
+NOM1 = 'GEOMETRY FILE FORMAT' 
+TYPE = CARACTERE 
+INDEX = 27 
+MNEMO = '????' 
+DEFAUT = 'SERAFIN ' 
+DEFAUT1 = 'SERAFIN ' 
+NIVEAU = 2 
+CHOIX = 'SERAFIN ';'SERAFIND';'MED     ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES' 
+AIDE = 'Format du fichier de geometrie. 
+Les valeurs possibles sont : 
+- SERAFIN : format standard simple precision pour Telemac;  
+- SERAFIND: format standard double precision pour Telemac; 
+- MED     : format MED base sur HDF5' 
+AIDE1 = 'Geometry file format. 
+Possible values are: 
+- SERAFIN : classical single precision format in Telemac;  
+- SERAFIND: classical double precision format in Telemac; 
+- MED     : MED format based on HDF5' 
+NOM = 'FORMAT DU FICHIER DES RESULTATS' 
+NOM1 = 'RESULTS FILE FORMAT' 
+TYPE = CARACTERE 
+INDEX = 28 
+MNEMO = '?????' 
+DEFAUT = 'SERAFIN ' 
+DEFAUT1 = 'SERAFIN ' 
+CHOIX = 'SERAFIN ';'SERAFIND';'MED     ' 
+NIVEAU = 2 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES' 
+AIDE = 'Format du fichier de resultats. 
+Les valeurs possibles sont : 
+- SERAFIN : format standard simple precision pour Telemac;  
+- SERAFIND: format standard double precision pour Telemac; 
+- MED     : format MED base sur HDF5' 
+AIDE1 = 'Results file format. Possible values are: 
+- SERAFIN : classical single precision format in Telemac;  
+- SERAFIND: classical double precision format in Telemac; 
+- MED     : MED format based on HDF5' 
+NOM = 'FORMAT DU FICHIER DU CALCUL PRECEDENT' 
+NOM1 = 'PREVIOUS COMPUTATION FILE FORMAT' 
+TYPE = CARACTERE 
+INDEX = 29 
+MNEMO = '?????' 
+DEFAUT = 'SERAFIN ' 
+DEFAUT1 = 'SERAFIN ' 
+CHOIX = 'SERAFIN ';'SERAFIND';'MED     ' 
+NIVEAU = 2 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES' 
+AIDE = 'Format du fichier de resultats du calcul precedent. 
+Les valeurs possibles sont : 
+- SERAFIN : format standard simple precision pour Telemac;  
+- SERAFIND: format standard double precision pour Telemac; 
+- MED     : format MED base sur HDF5' 
+AIDE1 = 'Previous computation results file format. 
+Possible values are: 
+- SERAFIN : classical single precision format in Telemac;  
+- SERAFIND: classical double precision format in Telemac; 
+- MED     : MED format based on HDF5' 
+NOM = 'BIBLIOTHEQUES' 
+NOM1 = 'LIBRARIES' 
+TYPE = CARACTERE 
+INDEX = 30 
+MNEMO = '' 
+TAILLE = 0 
+DEFAUT =' ' 
+DEFAUT1 =' ' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 1 
+AIDE = 'Obsolete' 
+AIDE1 = 'Obsolete' 
+NOM = 'PRIORITE' 
+NOM1 = 'PRIORITY' 
+TYPE = CARACTERE 
+INDEX = 31 
+MNEMO = '' 
+TAILLE = 0 
+CHOIX = 'JOUR';'NUIT';'WEEK-END' 
+DEFAUT = 'JOUR' 
+DEFAUT1 = 'JOUR' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = 2 
+AIDE = 'Utilise par la procedure de lancement sur station de travail' 
+AIDE1 = 'Utilise par la procedure de lancement sur station de travail' 
+NOM = 'SUITE DE CALCUL' 
+NOM1 = 'COMPUTATION CONTINUED' 
+TYPE = LOGIQUE 
+INDEX = 1 
+MNEMO = 'DEBU' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 1 
+AIDE = 'Determine si le calcul en cours est independant de tout autre 
+resultat ou est une reprise effectuee a partir du resultat d''un calcul 
+precedent. 
+NON : Il s''agit du premier passage pour ce calcul et il est necessaire 
+de definir un jeu complet de conditions initiales 
+OUI : Il s''agit d''une reprise de calcul : 
+les conditions initiales sont constituees par le dernier pas de 
+temps du ''FICHIER DU CALCUL PRECEDENT'' du fichier des parametres 
+utilise pour soumettre le calcul. 
+Par contre, l''ensemble des donnees du fichier des parametres 
+peuvent etre redefinies ; ce qui offre la possibilite de changer 
+par exemple, le pas de temps, le modele de turbulence, le 
+frottement, d''ajouter ou retirer un traceur ... 
+De meme, il est necessaire de definir des conditions aux limites 
+(sous-programme BORD ou valeurs placees dans le fichier des 
+parametres), qui peuvent egalement etre modifiees.' 
+AIDE1 = 'Determines whether the computation under way is independent 
+result or is following an earlier result. 
+NO: It is the first run for this computation and a whole set of 
+initial conditions should be defined. 
+YES: It follows a former computation: 
+the initial conditions consist in the last time step of the 
+PREVIOUS COMPUTATION FILE in the steering file used for submitting 
+the computation. 
+All the data from the steering file may be defined once again, which 
+provides an opportunity to change, for example, the time step, 
+the turbulence model, the friction, to add or remove a tracer... 
+It is also possible to define new boundary conditions.' 
+NOM = 'DIFFUSION DES TRACEURS' 
+NOM1 = 'DIFFUSION OF TRACERS' 
+TYPE = LOGIQUE 
+INDEX = 11 
+MNEMO = 'DIFT' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 2 
+AIDE = 'Prise en compte ou non de la diffusion du traceur passif.' 
+AIDE1 = 'The diffusion of the passive tracer is taken into account 
+or ignored.' 
+NOM = 'SORTIE LISTING' 
+NOM1 = 'LISTING PRINTOUT' 
+TYPE = LOGIQUE 
+INDEX = 3 
+MNEMO = 'LISTIN' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 1 
+AIDE = 'Sortie des resultats sur support papier. 
+Si l''on met NON le listing ne contient que l''entete et la mention 
+FIN NORMALE DU PROGRAMME 
+Commande a eviter' 
+AIDE1 = '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. 
+Not recommended for use.' 
+NOM = 'DIFFUSION DES VITESSES' 
+NOM1 = 'DIFFUSION OF VELOCITY' 
+TYPE = LOGIQUE 
+INDEX = 4 
+MNEMO = 'DIFVIT' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'EQUATIONS';'DIFFUSION DES VITESSES' 
+RUBRIQUE1 = 'EQUATIONS';'DIFFUSION OF VELOCITY' 
+COMPORT = 
+'Foreground ("EQUATIONS*DIFFUSION DES VITESSES") IS VALEUR (brown)' 
+NIVEAU = 2 
+AIDE = 'Permet de decider si l''on prend ou non en compte la diffusion 
+des vitesses.' 
+AIDE1 = 'Makes it possible to decide whether the diffusion of velocity 
+(i.e. viscosity) is taken into account or not.' 
+NOM = 'PRESSION ATMOSPHERIQUE' 
+NOM1 = 'AIR PRESSURE' 
+TYPE = LOGIQUE 
+INDEX = 5 
+MNEMO = 'ATMOS' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'EQUATIONS';'PRESSION ATMOSPHERIQUE' 
+RUBRIQUE1 = 'EQUATIONS';'AIR PRESSURE' 
+COMPORT = 
+'Foreground ("EQUATIONS*PRESSION ATMOSPHERIQUE") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'Permet de decider si l''on prend ou non en compte l''influence 
+d''un champ de pression.' 
+AIDE1 = 'Provided to decide whether the influence of an atmosphere field 
+is taken into account or not.' 
+NOM = 'CONVECTION' 
+NOM1 = 'ADVECTION' 
+TYPE = LOGIQUE 
+INDEX = 6 
+MNEMO = 'CONV' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'EQUATIONS';'CONVECTION' 
+RUBRIQUE1 = 'EQUATIONS';'ADVECTION' 
+COMPORT = 
+'Foreground ("EQUATIONS*CONVECTION") IS VALEUR (brown)' 
+NIVEAU = 2 
+AIDE = 'Prise en compte ou non des termes de convection. 
+En cas de reponse positive; 
+on peut encore supprimer certains termes de convection avec 
+les mots-cles CONVECTION DE ...' 
+AIDE1 = 'Are the advection terms taken into account or not? 
+If YES, some advection terms can still be deleted using the keywords 
+-ADVECTION OF ..-' 
+NOM = 'CONVECTION DE U ET V' 
+NOM1 = 'ADVECTION OF U AND V' 
+TYPE = LOGIQUE 
+INDEX = 7 
+MNEMO = 'CONVV(1)' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'EQUATIONS';'CONVECTION' 
+RUBRIQUE1 = 'EQUATIONS';'ADVECTION' 
+NIVEAU = 2 
+AIDE = 'Prise en compte ou non de la convection de U et V.' 
+AIDE1= 'The advection of U and V is taken into account or ignored.' 
+NOM = 'CONVECTION DE H' 
+NOM1 = 'ADVECTION OF H' 
+TYPE = LOGIQUE 
+INDEX = 8 
+MNEMO = 'CONVV(2)' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'EQUATIONS';'CONVECTION' 
+RUBRIQUE1 = 'EQUATIONS';'ADVECTION' 
+NIVEAU = 2 
+AIDE = 'Prise en compte ou non de la convection de H. 
+Il s''agit en fait dans la version 2.0 de la convection de C' 
+AIDE1 = 'The advection of H  is taken into account or ignored. 
+Actually, in version 2.0, the matter is about C advection.' 
+NOM = 'CONVECTION DES TRACEURS' 
+NOM1 = 'ADVECTION OF TRACERS' 
+TYPE = LOGIQUE 
+INDEX = 9 
+MNEMO = 'CONVV(3)' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'EQUATIONS';'CONVECTION' 
+RUBRIQUE1 = 'EQUATIONS';'ADVECTION' 
+NIVEAU = 2 
+AIDE = 'Prise en compte ou non de la convection du traceur passif.' 
+AIDE1 = 'The advection of the passive tracer is taken into account 
+or ignored.' 
+NOM = 'CONVECTION DE K ET EPSILON' 
+NOM1 = 'ADVECTION OF K AND EPSILON' 
+TYPE = LOGIQUE 
+INDEX = 10 
+MNEMO = 'CONVV(4)' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'EQUATIONS';'MODELE DE TURBULENCE';'MODELE K-EPSILON' 
+RUBRIQUE1 = 'EQUATIONS';'TURBULENCE MODEL';'K-EPSILON MODEL' 
+NIVEAU = 2 
+AIDE = 'Prise en compte ou non de la convection de k et epsilon.' 
+AIDE1 ='The k and epsilon advection is taken into account or ignored.' 
+NOM = 'PROPAGATION' 
+NOM1 = 'PROPAGATION' 
+TYPE = LOGIQUE 
+INDEX = 12 
+MNEMO = 'PROPA' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'EQUATIONS';'PROPAGATION' 
+RUBRIQUE1 = 'EQUATIONS';'PROPAGATION' 
+NIVEAU = 2 
+AIDE = 'Prise en compte ou non de la propagation de la vitesse et de la 
+hauteur d''eau. 
+La diffusion etant contenue dans cette etape sera supprimee aussi.' 
+AIDE1 = 'Determines whether the propagation step is taken into account 
+or not. 
+The diffusion being included in that step will be deleted as well.' 
+NOM = 'CORIOLIS' 
+NOM1 = CORIOLIS 
+TYPE = LOGIQUE 
+INDEX = 13 
+MNEMO = 'CORIOL' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'EQUATIONS';'CORIOLIS' 
+RUBRIQUE1 = 'EQUATIONS';'CORIOLIS' 
+COMPORT = 
+'Foreground ("EQUATIONS*CORIOLIS") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'Prise en compte ou non de la force de Coriolis.' 
+AIDE1 = 'The Coriolis force is taken into account or ignored.' 
+NOM = 'INFORMATIONS SUR LE SOLVEUR' 
+NOM1 = 'INFORMATION ABOUT SOLVER' 
+TYPE = LOGIQUE 
+INDEX = 15 
+MNEMO = 'INFOGR' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 2 
+AIDE = 'Donne a chaque pas de temps le nombre d''iterations necessaires 
+a la convergence du solveur de l''etape de propagation.' 
+AIDE1 = 'if YES, prints the number of iterations that have been necessar 
+to get the solution of the linear system.' 
+NOM = 'BILAN DE MASSE' 
+NOM1 = 'MASS-BALANCE' 
+TYPE = LOGIQUE 
+INDEX = 16 
+MNEMO = 'BILMAS' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 1 
+AIDE = 'Determine si l''on effectue ou non le bilan de masse 
+sur le domaine. 
+Cette procedure calcule a chaque pas de temps : 
+ - les flux aux entrees et sorties du domaine; 
+ - le flux global a travers l''ensemble des parois du domaine (liquides 
+ou solides) 
+- l''erreur relative sur la masse pour ce pas de temps. 
+En fin de listing, on trouve l''erreur relative sur la masse pour 
+l''ensemble du calcul. 
+Il ne s''agit que d''un calcul indicatif car il n''existe pas 
+d''expression compatible du debit en formulation c,u,v.' 
+AIDE1 = 'Determines whether a check of the mass-balance over 
+the domain is mader or not. 
+This procedures computes the following at each time step: 
+the domain inflows and outflows, 
+the overall flow across all the boundaries, 
+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.' 
+NOM = 'CLIPPING DE H' 
+NOM1 = 'H CLIPPING' 
+TYPE = LOGIQUE 
+INDEX = 17 
+MNEMO = 'CLIPH' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 2 
+AIDE = 'Determine si l''on desire ou non limiter par valeur inferieure 
+la hauteur d''eau H (dans le cas des bancs decouvrants par exemple).' 
+AIDE1 = 'Determines whether limiting the water depth H by a lower value 
+desirable or not. (for instance in the case of tidal flats) 
+This key-word may have an influence on mass conservation since 
+the truncation of depth is equivalent to adding mass.' 
+NOM = 'COORDONNEES SPHERIQUES' 
+NOM1 = 'SPHERICAL COORDINATES' 
+TYPE = LOGIQUE 
+INDEX = 18 
+MNEMO = 'SPHERI' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'EQUATIONS';'COORDONNEES SPHERIQUES' 
+RUBRIQUE1 = 'EQUATIONS';'SPHERICAL COORDINATES' 
+COMPORT = 
+'Foreground ("EQUATIONS*COORDONNEES SPHERIQUES") IS VALEUR (brown)' 
+NIVEAU = 1 
+AIDE = 'Choix des coordonnees spheriques pour la realisation du calcul 
+( pour les grands domaines de calcul). 
+Attention : cette option est etroitement liee au maillage qui doit avoir 
+ete saisi sur une carte marine en projection de Mercator. 
+Il faut de plus relever sur la carte la LATITUDE DU POINT ORIGINE 
+(autre mot-cle) qui correspond dans le maillage a l''ordonnee y = 0.' 
+AIDE1 = 'Selection of spherical coordinates to perform the computation 
+(for large computation domains). 
+Warning: this option is closely related to the mesh that should have 
+been entered onto a nautical chart drawn as per Mercator projection 
+The LATITUDE OF ORIGIN POINT (another keyword), which corresponds to 
+ordinate y=0 in the mesh, must moreover be given.' 
+NOM = 'PROPAGATION LINEARISEE' 
+NOM1 = 'LINEARIZED PROPAGATION' 
+TYPE = LOGIQUE 
+INDEX = 20 
+MNEMO = 'PROLIN' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'EQUATIONS';'PROPAGATION' 
+RUBRIQUE1 = 'EQUATIONS';'PROPAGATION' 
+NIVEAU = 3 
+AIDE = 'Permet de lineariser l''etape de propagation; 
+par exemple lors de la realisation de cas tests pour lesquels on dispose 
+d''une solution analytique dans le cas linearise.' 
+AIDE1 = 'Provided for linearizing the propagation step, e.g. when 
+performing test-cases for which an analytical solution in the linearized 
+case is available.' 
+NOM = 'VALIDATION' 
+NOM1 = 'VALIDATION' 
+TYPE = LOGIQUE 
+INDEX = 21 
+MNEMO = 'VALID' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 1 
+AIDE = 'Option utilisee principalement pour le dossier de validation. Le 
+fichier des resultats du calcul precedent est alors considere comme une 
+reference a laquelle on va comparer le calcul. La comparaison 
+est effectuee par le sous-programme VALIDA qui peut etre une comparaison 
+avec une solution exacte par exemple.' 
+AIDE1 = 'This option is primarily used for the validation documents. 
+The PREVIOUS COMPUTATION FILE is then considered as a 
+reference which the computation is going to be compared with. 
+The comparison is made by the subroutine VALIDA, which can be 
+modified as to 
+so as to include, for example,a comparison with an exact solution.' 
+NOM = 'INFORMATIONS SUR LE MODELE K-EPSILON' 
+NOM1 = 'INFORMATION ABOUT K-EPSILON MODEL' 
+TYPE = LOGIQUE 
+INDEX = 22 
+MNEMO = 'INFOKE' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, MODELE K-EPSILON' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, K-EPSILON MODEL' 
+NIVEAU = 2 
+AIDE = 'Donne le nombre d''iterations du solveur de l''etape de 
+diffusion et termes sources du modele k-epsilon.' 
+AIDE1 = 'Gives the number of iterations of the solver in the diffusion 
+and source terms step of the k-epsilon model.' 
+NOM = 'BANCS DECOUVRANTS' 
+NOM1 = 'TIDAL FLATS' 
+TYPE = LOGIQUE 
+INDEX = 24 
+MNEMO = 'BANDEC' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'permet de supprimer les tests sur les bancs decouvrants, dans 
+les cas ou l''on est certain qu''il n''y en aura pas. 
+En cas de doute : oui' 
+AIDE1 = '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' 
+NOM = 'ARRET SI UN ETAT PERMANENT EST ATTEINT' 
+NOM1 = 'STOP IF A STEADY STATE IS REACHED' 
+TYPE = LOGIQUE 
+INDEX = 25 
+MNEMO = 'STOPER' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'A UTILISER AVEC LE MOT-CLE : CRITERES D''ARRET' 
+AIDE1 = 'TO BE USED WITH THE KEY-WORD: STOP CRITERIA' 
+NOM = 'ELEMENTS MASQUES PAR L''UTILISATEUR' 
+NOM1 = 'ELEMENTS MASKED BY USER' 
+TYPE = LOGIQUE 
+INDEX = 26 
+MNEMO = 'MSKUSE' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'SI OUI REMPLIR LE SOUS-PROGRAMME MASKOB' 
+AIDE1 = 'IF YES REWRITE SUBROUTINE MASKOB' 
+NOM = 'EFFETS DE DENSITE' 
+NOM1 = 'DENSITY EFFECTS' 
+TYPE = LOGIQUE 
+INDEX = 27 
+MNEMO = 'ROVAR' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'PRISE EN COMPTE DU GRADIENT HORIZONTAL DE DENSITE 
+        LE TRACEUR EST ALORS LA SALINITE' 
+AIDE1 = 'THE HORIZONTAL GRADIENT OF DENSITY IS TAKEN INTO ACCOUNT 
+         THE TRACER IS THEN THE SALINITY' 
+NOM = 'OPTION DE TRAITEMENT DES BANCS DECOUVRANTS' 
+NOM1 = 'OPTION FOR THE TREATMENT OF TIDAL FLATS' 
+TYPE = INTEGER 
+INDEX = 35 
+MNEMO = 'OPTBAN' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Utilise si BANCS DECOUVRANTS est vrai 
+1 : EQUATIONS RESOLUES PARTOUT AVEC CORRECTION SUR LES BANCS DECOUVRANTS 
+2 : GEL DES ELEMENTS DECOUVRANTS 
+3 : COMME 1 MAIS AVEC POROSITE (METHODE DEFINA)' 
+AIDE1 = 'Used if TIDAL FLATS is true 
+1 : EQUATIONS SOLVED EVERYWHERE WITH CORRECTION ON TIDAL FLATS 
+2 : DRY ELEMENTS FROZEN 
+3 : LIKE 1 BUT WITH POROSITY (DEFINA METHOD)' 
+NOM = 'LONGUEUR DU VECTEUR' 
+NOM1 = 'VECTOR LENGTH' 
+TYPE = INTEGER 
+INDEX = 36 
+MNEMO = 'LVMAC' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 3 
+AIDE = 'LONGUEUR DU VECTEUR POUR LES MACHINES VECTORIELLES' 
+AIDE1 = 'VECTOR LENGTH ON VECTOR MACHINES' 
+NOM = 'OPTION DE SUPG' 
+NOM1 = 'SUPG OPTION' 
+TYPE = INTEGER 
+INDEX = 37 
+MNEMO = 'OPTSUP' 
+TAILLE = 4 
+DEFAUT = 2;2;2;2 
+DEFAUT1 = 2;2;2;2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = '0:pas de decentrement SUPG  1:SUPG classique   2:SUPG modifiee 
+ces coefficients sont respectivement appliques a 
+1) U et V     2) H      3) T     4) K ET EPSILON  ' 
+AIDE1 ='0:no upwinding              1: classical SUPG  2:modified SUPG 
+These coefficients are applied respectively to 
+1) U et V     2) H      3) T     4) K and EPSILON ' 
+NOM = 'ORDRE DU TIR INITIAL POUR U' 
+NOM1 = 'INITIAL GUESS FOR U' 
+TYPE = INTEGER 
+INDEX = 38 
+MNEMO = 'IORDRU' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '0=zero' ; '1=precedent'; '2=extrapolation' 
+CHOIX1 = '0=zero' ; '1=previous';  '2=extrapolation' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT' 
+NIVEAU = 2 
+AIDE = 'Tir initial du solveur de l''etape de propagation. 
+Offre la possibilite de modifier la valeur initiale de U, a chaque 
+iteration, dans l''etape de propagation en utilisant les valeurs 
+finales de cette variable aux pas de temps precedents. Ceci peut 
+permettre d''accelerer la vitesse de convergence lors de la resolution 
+du systeme. Trois possibilites sont offertes : 
+ 0 : U = 0 
+ 1 : U = U(n) 
+ 2 : U = 2 U(n)- U(n-1) (extrapolation)' 
+AIDE1 = 'Initial guess for the solver in the propagation step. 
+Makes it possible to modify the initial value of U, upon each 
+iteration in the propagation step, by using the ultimate values this 
+variable had in the earlier time steps. Thus, the convergence can be 
+speeded up when the system is being solved. 3 options are available: 
+ 0 : U = 0 
+ 1 : U = U(n) 
+ 2 : U = 2 U(n)- U(n-1) (extrapolation)' 
+NOM = 'ENREGISTREMENT POUR SUITE DE CALCUL' 
+NOM1 = 'RECORD NUMBER FOR RESTART' 
+TYPE = ENTIER 
+INDEX = 39 
+MNEMO = 'START_RECORD' 
+TAILLE = 0
+DEFAUT = 0
+DEFAUT1 = 0
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'En cas de suite de calcul, numero de l''enregistrement
+de depart dans le fichier du calcul precedent. 0 signifie
+qu''on prend le dernier enregistrement' 
+AIDE1 ='In case of COMPUTATION CONTINUED, record number to
+start from in the PREVIOUS COMPUTATION FILE' 
+NOM = 'MASSE VOLUMIQUE DE L''EAU' 
+NOM1 = 'WATER DENSITY' 
+TYPE = REEL 
+INDEX = 27 
+MNEMO = 'ROEAU' 
+TAILLE = 0 
+DEFAUT = 1000. 
+DEFAUT1 = 1000. 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur de la masse volumique de l''eau.' 
+AIDE1 = 'set the value of water density' 
+NOM = 'LATITUDE DU POINT ORIGINE' 
+NOM1 = 'LATITUDE OF ORIGIN POINT' 
+TYPE = REEL 
+INDEX = 28 
+MNEMO = 'LAMBD0' 
+TAILLE = 0 
+DEFAUT = 48. 
+DEFAUT1 = 48. 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'Determine l''origine utilisee pour le calcul de latitudes 
+lorsque l''on effectue un calcul en coordonnees spheriques.' 
+AIDE1 = 'Determines the origin used for computing latitudes when 
+a computation is made in spherical coordinates. 
+this latitude is in particular used to compute the Coriolis force. 
+In cartesian coordinates, Coriolis coefficient is considered constant.' 
+NOM = 'TEMPERATURE MOYENNE' 
+NOM1 = 'MEAN TEMPERATURE' 
+TYPE = REEL 
+INDEX = 42 
+MNEMO = 'TREF' 
+CONTROLE = 0.; 100. 
+TAILLE = 0 
+DEFAUT = 20. 
+DEFAUT1= 20. 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'TEMPERATURE DE REFERENCE POUR LE CALCUL DES EFFETS DE DENSITE 
+        A UTILISER AVEC LE MOT-CLE "EFFETS DE DENSITE"' 
+AIDE1 = 'REFERENCE TEMPERATURE FOR DENSITY EFFECTS 
+        TO BE USED WITH THE KEY-WORD "DENSITY EFFECTS"' 
+NOM = 'ACCELERATION DE LA PESANTEUR' 
+NOM1 = 'GRAVITY ACCELERATION' 
+TYPE = REEL 
+INDEX = 2 
+MNEMO = 'GRAV' 
+TAILLE = 0 
+DEFAUT = 9.81 
+DEFAUT1 = 9.81 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+COMPORT = 
+'Foreground ("CONSTANTES PHYSIQUES") IS VALEUR (yellow)' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur de l''acceleration de la pesanteur.' 
+AIDE1 = 'Set the value of the acceleration due to gravity.' 
+NOM = 'COEFFICIENT DE CORIOLIS' 
+NOM1 = 'CORIOLIS COEFFICIENT' 
+TYPE = REEL 
+INDEX = 5 
+MNEMO = 'FCOR' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'Fixe la valeur du coefficient de la force de Coriolis. 
+Celui-ci doit etre calcule en fonction de la latitude l par la formule 
+     FCOR = 2w sin(l) , w etant la vitesse de rotation de la terre. 
+                        w = 7.27 10-5 rad/s 
+Les composantes de la force de Coriolis sont alors : 
+   FU =   FCOR x V 
+   FV = - FCOR x U' 
+AIDE1 = 'Sets the value of the Coriolis force coefficient, in cartesian 
+coordinates. 
+This coefficient, 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. 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' 
+/ 
+/ 
+/ 
+/ 
+/ NOUVEAUTES 3.1 
+/ 
+/ 
+/ 
+/ 
+NOM = 'DISCRETISATIONS EN ESPACE' 
+NOM1 = 'DISCRETIZATIONS IN SPACE' 
+TYPE = ENTIER 
+INDEX = 16 
+MNEMO = 'DISCRE' 
+TAILLE = 4 
+DEFAUT = 11;11;11;11 
+DEFAUT1 = 11;11;11;11 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 13 
+AIDE = 'Choix de la discretisation pour chaque variable 
+ces coefficients sont respectivement appliques a 
+1) U et V     2) H      3) T     4) K ET EPSILON (NON PROGRAMME) 
+11 : lineaire 
+12 : quasi-bulle 
+13 : quadratique' 
+AIDE1 = 'Choice of space discretisation for every variable 
+These coefficients are applied respectively to 
+1) U and V     2) H      3) T     4) K and EPSILON (NOT IMPLEMENTED) 
+11: linear 
+12: quasi-bubble 
+13: quadratic' 
+NOM = 'STOCKAGE DES MATRICES' 
+NOM1 = 'MATRIX STORAGE' 
+TYPE = ENTIER 
+INDEX = 40 
+MNEMO = 'OPTASS' 
+TAILLE = 0 
+DEFAUT = 3 
+DEFAUT1 = 3 
+CHOIX = '1="EBE classique"'; 
+'3="Stockage par segments"' 
+CHOIX1 = '1="classical EBE"'; 
+'3="Edge-based storage"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = '1 : EBE classique  3 : Stockage par segments' 
+AIDE1 = '1 : classical EBE  3 : Edge-based storage' 
+NOM = 'COEFFICIENTS ADIMENSIONNELS DE DISPERSION' 
+NOM1 = 'NON-DIMENSIONAL DISPERSION COEFFICIENTS' 
+TYPE = REEL 
+INDEX = 47 
+MNEMO = 'ELDER' 
+CONTROLE = 0 ; 10 
+TAILLE = 2 
+DEFAUT = 6. ; 0.6 
+DEFAUT1= 6. ; 0.6 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'coefficients longitudinal et transversal dans la formule de 
+Elder. Utilises uniquement avec le modele de turbulence 2' 
+AIDE1 = 'Longitudinal and transversal coefficients in elder s formula. 
+ Used only with turbulence model number 2' 
+NOM = 'DICTIONNAIRE' 
+NOM1 = 'DICTIONARY' 
+TYPE = CARACTERE 
+INDEX = 100 
+MNEMO = '' 
+SUBMIT = 'INUTILE;T2DDICO;OBLIG;ASC;LIT;DICO' 
+DEFAUT = 'telemac2d.dico' 
+DEFAUT1 = 'telemac2d.dico' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = -3 
+AIDE ='Dictionnaire des mots cles.' 
+AIDE1 ='Key word dictionary.' 
+NOM = 'DATE DE L''ORIGINE DES TEMPS' 
+NOM1 = 'ORIGINAL DATE OF TIME' 
+TYPE = INTEGER 
+INDEX = 41 
+MNEMO = 'MARDAT' 
+TAILLE = 3 
+DEFAUT = 1900;1;1 
+DEFAUT1 = 1900;1;1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Permet de fixer la date d''origine des temps du modele lors 
+de la prise en compte de la force generatrice de la maree.' 
+AIDE1 ='Give the date of the time origin of the model when taking into 
+account the tide generating force.' 
+NOM = 'HEURE DE L''ORIGINE DES TEMPS' 
+NOM1 = 'ORIGINAL HOUR OF TIME' 
+TYPE = INTEGER 
+INDEX = 42 
+MNEMO = 'MARTIM' 
+TAILLE = 3 
+DEFAUT = 0;0;0 
+DEFAUT1 = 0;0;0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Permet de fixer l''heure d''origine des temps du modele lors 
+de la prise en compte de la force generatrice de la maree.' 
+AIDE1 ='Give the time of the time origin of the model when taking into 
+account of the tide generator force.' 
+NOM = 'LONGITUDE DU POINT ORIGINE' 
+NOM1 = 'LONGITUDE OF ORIGIN POINT' 
+TYPE = REEL 
+INDEX = 48 
+MNEMO = 'PHI0' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1= 0. 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 2 
+AIDE = 'Fixe la valeur de la longitude du point origine du modele, 
+lors de l''utilisation de la force generatrice de la maree.' 
+AIDE1 = 'Give the value of the longitude of the origin point 
+of the model, when taking into account of the tide generator force.' 
+NOM = 'FORCE GENERATRICE DE LA MAREE' 
+NOM1 = 'TIDE GENERATING FORCE' 
+TYPE = LOGIQUE 
+INDEX = 28 
+MNEMO = 'MAREE' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Active la prise en compte de la force generatrice de la maree' 
+AIDE1 = 'The tide generating force is taken into account. ' 
+NOM = 'MASS-LUMPING SUR LES TRACEURS' 
+NOM1 = 'MASS-LUMPING ON TRACERS' 
+TYPE = REEL 
+INDEX = 49 
+MNEMO = 'AGGLOT' 
+TAILLE = 0 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 2 
+AIDE = 'Fixe le taux de mass-lumping effectue sur le traceur.' 
+AIDE1 = 'Sets the amount of mass-lumping that is performed on 
+ the tracer.' 
+NOM = 'CORRECTION DE CONTINUITE' 
+NOM1 = 'CONTINUITY CORRECTION' 
+TYPE = LOGIQUE 
+INDEX = 29 
+MNEMO = 'CORCON' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 =  NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Corrige les vitesses sur les points avec hauteur imposee ou 
+l''equation de continuite n''a pas ete resolue' 
+AIDE1 = 'Correction of the velocities on points with a prescribed 
+elevation, where the continuity equation has not been solved' 
+/ NOUVEAUTES 3.2 
+NOM = 'REMISE A ZERO DU TEMPS' 
+NOM1 = 'INITIAL TIME SET TO ZERO' 
+TYPE = LOGIQUE 
+INDEX = 30 
+MNEMO = 'RAZTIM' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 =  NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Remet le temps a zero en cas de suite de calcul' 
+AIDE1 = 'Initial time set to zero in case of restart' 
+NOM = 'PRODUIT MATRICE-VECTEUR' 
+NOM1 = 'MATRIX-VECTOR PRODUCT' 
+TYPE = ENTIER 
+INDEX = 43 
+MNEMO = 'PRODUC' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = '1 : classique  2 : frontal 
+attention, avec 2, il faut une numerotation speciale des points' 
+AIDE1 = '1 : classic    2 : frontal 
+beware, with option 2, a special numbering of points is required' 
+NOM = 'SECTIONS DE CONTROLE' 
+NOM1 = 'CONTROL SECTIONS' 
+TYPE = INTEGER 
+INDEX = 44 
+MNEMO = 'CTRLSC' 
+TAILLE = 2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Couples de points (numeros globaux dans le maillage) entre 
+lesquels les debits instantanes et cumules seront donnes.' 
+AIDE1 ='Couples of points (global numbers in the mesh) defining sections 
+ where the instantaneous and cumulated discharges will be given' 
+NOM = 'NOMBRE DE SEUILS' 
+NOM1 = 'NUMBER OF WEIRS' 
+TYPE = ENTIER 
+INDEX = 45 
+MNEMO = 'NWEIRS' 
+CONTROLE = 0; 100 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Nombre de seuils qui seront traites par des conditions aux 
+limites. Ces seuils doivent etre decrits comme des frontieres du 
+domaine de calcul, et leurs caracteristiques sont donnees dans le 
+fichier de donnees des seuils (voir la documentation ecrite)' 
+AIDE1 = 'Number of weirs that will be treated by boundary conditions. 
+They must be described as boundaries of the domain and their features 
+are given in the weir data file (see written documentation)' 
+NOM = 'NOMBRE DE SIPHONS' 
+NOM1 = 'NUMBER OF CULVERTS' 
+TYPE = ENTIER 
+INDEX = 46 
+MNEMO = 'NSIPH' 
+CONTROLE = 0; 100 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Nombre de siphons traites comme des termes sources ou 
+puits. Ces siphons doivent etre decrits comme des sources dans le 
+fichier cas. Leurs caracteristiques sont donnees dans le 
+fichier de donnees des siphons (voir la documentation ecrite)' 
+AIDE1 = 'Number of culverts treated as source terms. 
+They must be described as sources in the domain and their features 
+are given in the culvert data file (see written documentation)' 
+NOM = 'OPTION POUR LES FRONTIERES LIQUIDES' 
+NOM1 = 'OPTION FOR LIQUID BOUNDARIES' 
+TYPE = ENTIER 
+INDEX = 47 
+MNEMO = 'FRTYPE' 
+CONTROLE = 1;2 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, CONDITIONS LIMITES' 
+RUBRIQUE1 = 'EQUATIONS, BOUNDARY CONDITIONS' 
+NIVEAU = 1 
+AIDE = 'On donne 1 entier par frontiere liquide 
+     1 : conditions aux limites classiques 
+     2 : methode de Thompson avec calcul de caracteristiques' 
+AIDE1 = 'One integer per liquid boundary is given 
+     1 : classical boundary conditions 
+     2 : Thompson method based on characteristics' 
+NOM = 'BIBLIOTHEQUE PVM1' 
+NOM1 = 'PVM1 LIBRARY' 
+TYPE = CARACTERE 
+INDEX = 32 
+MNEMO = '' 
+TAILLE = 0 
+/CHOIX= '1="conditions aux limites classiques"'; 
+/       '2="methode de Thompson avec calcul de caracteristiques"' 
+/CHOIX1 = '1="classical boundary conditions"'; 
+/       '2="Thompson method based on characteristics"' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+CHOIX = '" "="pas de biliotheque"';
+'"$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a"="bibliotheque PVM1"' 
+CHOIX1 = '" "="no library"'; 
+'"$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a"="PVM1 library"' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = 2 
+AIDE = 'Utilise par la procedure de lancement sur station de travail' 
+AIDE1 = 'Utilise par la procedure de lancement sur station de travail' 
+NOM = 'BIBLIOTHEQUE PVM2' 
+NOM1 = 'PVM2 LIBRARY' 
+TYPE = CARACTERE 
+INDEX = 33 
+MNEMO = '' 
+TAILLE = 0 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+CHOIX = '" "="pas de biliotheque"';
+'"$PVM_ROOT/lib/$PVM_ARCH/libgpvm3.a"="bibliotheque PVM2"' 
+CHOIX1 = '" "="no library"'; 
+'"$PVM_ROOT/lib/$PVM_ARCH/libgpvm3.a"="PVM2 library"' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+NIVEAU = 2 
+AIDE = 'Utilise par la procedure de lancement sur station de travail' 
+AIDE1 = 'Utilise par la procedure de lancement sur station de travail' 
+NOM = 'NOM DU CRAY' 
+NOM1 = 'CRAY NAME' 
+TYPE = CARACTERE 
+INDEX = 35 
+DEFAUT = 'clcraya' 
+NIVEAU = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'ENVIRONNEMENT' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATION ENVIRONMENT' 
+AIDE = '' 
+AIDE1 = '' 
+/ NOUVEAUTES 4.0 
+NOM = 'PRECONDITIONNEMENT C-U' 
+NOM1 = 'C-U PRECONDITIONING' 
+TYPE = LOGIQUE 
+INDEX = 31 
+MNEMO = 'PRECCU' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 =  YES 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Changement de variable de H en C dans le systeme lineaire final' 
+AIDE1 = 'Change of variable from H to C in the final linear system' 
+NOM = 'PAS DE TEMPS VARIABLE' 
+NOM1 = 'VARIABLE TIME-STEP' 
+TYPE = LOGIQUE 
+INDEX = 32 
+MNEMO = 'DTVARI' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 =  NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Pas de temps variable pour avoir un nombre de courant souhaite' 
+AIDE1 = 'Variable time-step to get a given Courant number' 
+NOM = 'TRAITEMENT DU SYSTEME LINEAIRE' 
+NOM1 = 'TREATMENT OF THE LINEAR SYSTEM' 
+TYPE = ENTIER 
+INDEX = 48 
+MNEMO = 'SOLSYS' 
+CONTROLE = 1;2 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 =1 
+CHOIX = '1="traitement couple"';'2="Equation d''onde"' 
+CHOIX1 = '1="coupled"';'2="Wave equation"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = '1 : Traitement couple 2 : equation d onde' 
+AIDE1 = '1 : Coupled  2 : wave equation' 
+NOM = 'NOMBRE DE COURANT SOUHAITE' 
+NOM1 = 'DESIRED COURANT NUMBER' 
+TYPE = REEL 
+INDEX = 50 
+MNEMO = 'CFLWTD' 
+TAILLE = 0 
+DEFAUT = 1. 
+DEFAUT1 = 1. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'DUREE DU CALCUL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'DURATION' 
+NIVEAU = 2 
+AIDE = 'Nombre de Courant souhaite en cas de pas de temps variable' 
+AIDE1 = 'Desired Courant number when VARIABLE TIME-STEP is set to YES' 
+NOM = 'PROCESSEURS PARALLELES' 
+NOM1 = 'PARALLEL PROCESSORS' 
+TYPE = ENTIER 
+INDEX = 49 
+MNEMO = 'NCSIZE' 
+CONTROLE = 0;256 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'NOMBRE DE PROCESSEURS EN CALCUL PARALLELE 
+0 : 1 machine, compilation sans bibliotheque de parallelisme 
+1 : 1 machine, compilation avec bibliotheque de parallelisme 
+2 : 2 processeurs ou machines en parallele 
+etc... ' 
+AIDE1 = 'NUMBER OF PROCESSORS FOR PARALLEL PROCESSING 
+0 : 1 machine, compiling without parallel library 
+1 : 1 machine, compiling with a parallel library 
+2 : 2 processors or machines in parallel 
+etc....' 
+NOM = 'EQUATIONS' 
+NOM1 = 'EQUATIONS' 
+TYPE = CARACTERE 
+INDEX = 36 
+MNEMO = 'EQUA' 
+DEFAUT = 'SAINT-VENANT EF' 
+DEFAUT1 = 'SAINT-VENANT EF' 
+CHOIX  = '"SAINT-VENANT EF"';'"SAINT-VENANT VF"';'"BOUSSINESQ"' 
+CHOIX1 = '"SAINT-VENANT EF"';'"SAINT-VENANT VF"';'"BOUSSINESQ"' 
+NIVEAU = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+AIDE = 'CHOIX DES EQUATIONS A RESOUDRE : SAINT-VENANT ELEMENTS FINIS, 
+SAINT-VENANT VOLUMES FINIS OU BOUSSINESQ   20 CARACTERES' 
+AIDE1 = 'CHOICE OF EQUATIONS TO SOLVE : SAINT-VENANT FINITE ELEMENTS, 
+SAINT-VENANT FINITE VOLUMES OR BOUSSINESQ   20 CHARACTERS' 
+NOM = 'PROFILS DE VITESSE' 
+NOM1 = 'VELOCITY PROFILES' 
+TYPE = INTEGER 
+INDEX = 50 
+MNEMO = 'PROVEL' 
+TAILLE = 2 
+CHOIX='1="Profil normal constant"';'2="u et v dans le fichier 
+ conlim"';'3="Vitesse normale donnee dans ubor dans le fichier 
+ conlim"';'4="vitesse en racine carree de h"';
+'5="vitesse en racine carree de h, variante"'
+CHOIX1='1="constant normal profile"';'2="u and v given in the 
+ conlim file"';'3="normal velocity given in ubor in the conlim 
+ file"';'4="velocity proportional to square root of depth"';
+'5="velocity proportional to square root of depth, variant"'
+RUBRIQUE = 'EQUATIONS, CONDITIONS LIMITES' 
+RUBRIQUE1 = 'EQUATIONS, BOUNDARY CONDITIONS' 
+NIVEAU = 1 
+AIDE = '1:profil normal constant  
+        2:u et v donnes dans le fichier conditions aux limites 
+        3:vitesse normale donnee dans ubor dans le fichier conlim 
+        4:profil en racine de la profondeur
+        5:profil en racine de la profondeur, variante' 
+AIDE1= '1:constant normal profile 
+        2:u and v given in the boudary conditions file 
+        3:normal velocity given in ubor in the conlim file 
+        4:sqrt(depth) profile
+        5:sqrt(depth) profile, variant' 
+                                                                    
+NOM = 'OPTION POUR LA DIFFUSION DES TRACEURS'                               
+NOM1 = 'OPTION FOR THE DIFFUSION OF TRACERS'                               
+TYPE = INTEGER                                                            
+INDEX = 51                                                                
+MNEMO = 'OPDTRA'                                                          
+TAILLE = 0                                                                
+DEFAUT = 1                                                                
+DEFAUT1 = 1                                                                
+CHOIX = '1="div( nu grad(T) )"';                                          
+'2="1/h div ( h nu grad(T)"'                                              
+CHOIX1= '1="div( nu grad(T) )"';                                           
+'2="1/h div ( h nu grad(T)"'                                               
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR'                        
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS'                          
+NIVEAU = 1                                                                 
+AIDE = '1: Diffusion de la forme div( nu grad(T) )                        
+        2: Diffusion de la forme 1/h div ( h nu grad(T) )'                  
+AIDE1= '1: Diffusion in the form div( nu grad(T) )                          
+        2: Diffusion in the form 1/h div ( h nu grad(T) )'                  
+                                                                            
+NOM = 'OPTION POUR LA DIFFUSION DES VITESSES'                               
+NOM1 = 'OPTION FOR THE DIFFUSION OF VELOCITIES'                             
+TYPE = INTEGER                                                              
+INDEX = 52                                                                  
+MNEMO = 'OPDVIT'                                                            
+TAILLE = 0                                                                  
+DEFAUT = 1                                                                  
+DEFAUT1 = 1                                                                 
+CHOIX = '1="div( nu grad(U) )"';                                            
+'2="1/h div ( h nu grad(U)"'                                                
+CHOIX1= '1="div( nu grad(U) )"';                                            
+'2="1/h div ( h nu grad(U)"'                                                
+RUBRIQUE = 'PARAMETRES NUMERIQUES, VITESSE-CELERITE-HAUTEUR'                
+RUBRIQUE1 = 'NUMERICAL PARAMETERS, VELOCITY-CELERITY-HIGHT'                 
+NIVEAU = 1                                                                  
+AIDE = '1: Diffusion de la forme div( nu grad(U) )                          
+        2: Diffusion de la forme 1/h div ( h nu grad(U) )'                  
+AIDE1= '1: Diffusion in the form div( nu grad(U) )                          
+        2: Diffusion in the form 1/h div ( h nu grad(U) )'                  
+                                                                            
+NOM = 'TYPE DES SOURCES'                                                    
+NOM1 = 'TYPE OF SOURCES'                                                    
+TYPE = ENTIER                                                               
+INDEX = 53                                                                  
+MNEMO = 'OPTSOU'                                                            
+CONTROLE = 1;2                                                              
+TAILLE = 0                                                                  
+DEFAUT = 1                                                                  
+DEFAUT1 =1                                                                  
+CHOIX = '1="Normal"';'2="Dirac"'                                            
+CHOIX1= '1="Normal"';'2="Dirac"'                                            
+RUBRIQUE = 'EQUATIONS, SOURCES'                                             
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS'                                       
+NIVEAU = 2                                                                  
+AIDE = '1: Source portee par une base elements finis                        
+        2: Source portee  par une fonction de Dirac'                        
+AIDE1= '1: Source term multiplied by a finite element basis                 
+        2: Source term multiplied by a Dirac function'                      
+/ NOUVEAUTES 5.0 
+NOM = 'NOMBRE DE TABLEAUX PRIVES' 
+NOM1 = 'NUMBER OF PRIVATE ARRAYS' 
+TYPE = ENTIER 
+INDEX = 54 
+MNEMO = 'NPRIV' 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Nombre de tableaux mis a disposition de l utilisateur' 
+AIDE1 = 'Number of arrays for own user programming'        
+NOM = 'LANGUE' 
+NOM1 = 'LANGUAGE' 
+TYPE = ENTIER 
+INDEX = 55 
+MNEMO = 'LNG' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 2 
+CHOIX = '1="FRANCAIS"';'2="ANGLAIS"' 
+CHOIX1 = '1="FRANCAIS"';'2="ANGLAIS"' 
+RUBRIQUE = 'GENERAL' 
+RUBRIQUE1 = 'GENERAL' 
+NIVEAU = 1 
+AIDE = '1 : FRANCAIS   2 : ANGLAIS' 
+AIDE1 = '1: FRENCH   2: ENGLISH'        
+NOM = 'FICHIER DE REFERENCE' 
+NOM1 = 'REFERENCE FILE' 
+TYPE = CARACTERE 
+INDEX = 37 
+MNEMO = 'T2D_FILES(T2DREF)%NAME' 
+SUBMIT = 'T2DREF-READ-22;T2DREF;FACUL;BIN;LIT;SELAFIN' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de resultats de reference pour la validation. Les resultats a placer dans ce fichier seront a 
+ecrire sur le canal 22.' 
+AIDE1 = 'Binary-coded result file for validation. The results to be entered into this file shall be written 
+on channel 22.'  
+NOM = 'FICHIER DES FRONTIERES LIQUIDES' 
+NOM1 = 'LIQUID BOUNDARIES FILE' 
+TYPE = CARACTERE 
+INDEX = 38 
+MNEMO = 'T2D_FILES(T2DIMP)%NAME' 
+SUBMIT = 'T2DIMP-READ-12;T2DIMP;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de variations en temps des conditions aux limites. 
+Les donnees de ce fichier seront a lire sur le canal 12.' 
+AIDE1 = 'Variations in time of boundary conditions. Data of this file are read 
+on channel 12.'  
+NOM = 'COURANTS DE HOULE' 
+NOM1 = 'WAVE DRIVEN CURRENTS' 
+TYPE = LOGIQUE 
+INDEX = 33 
+MNEMO = 'COUROU' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Active la prise en compte des courants de houle' 
+AIDE1 = 'Wave driven currents are taken into account. ' 
+NOM = 'NUMERO DE L''ENREGISTREMENT DANS LE FICHIER DE HOULE' 
+NOM1 = 'RECORD NUMBER IN WAVE FILE' 
+TYPE = ENTIER 
+INDEX = 56 
+MNEMO = 'NPTH' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Numero d enregistrement dans le fichier des courants de houle' 
+AIDE1 = 'Record number to read in the wave driven currents file' 
+/ NOUVEAUTES 5.1 
+NOM = 'STRUCTURES VERTICALES' 
+NOM1 = 'VERTICAL STRUCTURES' 
+TYPE = LOGIQUE 
+INDEX = 34 
+MNEMO = 'VERTIC' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Prise en compte de la force de trainee de structures verticales 
+(il faut alors remplir la subroutine DRAGFO)' 
+AIDE1 = 'drag forces from vertical structures are taken into account. 
+(subroutine DRAGFO must then be implemented) ' 
+NOM = 'SORTIE DES CONDITIONS INITIALES' 
+NOM1 = 'OUTPUT OF INITIAL CONDITIONS' 
+TYPE = LOGIQUE 
+INDEX = 35 
+MNEMO = 'OUTINI' 
+TAILLE = 0 
+DEFAUT = OUI 
+DEFAUT1 = YES 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Si OUI, impression des conditions initiales dans les resultats' 
+AIDE1 = 'If YES, output of initial conditions in the results' 
+/ NOUVEAUTES 5.2 
+NOM = 'DOSSIER DE COUPLAGE' 
+NOM1 = 'COUPLING DIRECTORY' 
+TYPE = CARACTERE 
+INDEX = 39 
+MNEMO = 'DOSSIER_COUPLAGE' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Nom complet du dossier d echange des fichiers 
+ pour couplage de codes' 
+AIDE1 = 'Name with full path of the directory where the files will  
+ be exchanged for coupling'  
+NOM = 'COUPLAGE AVEC' 
+NOM1 = 'COUPLING WITH' 
+TYPE = CARACTERE 
+INDEX = 40 
+MNEMO = 'COUPLING, IN BIEF' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+CHOIX = '"SISYPHE"';'"TOMAWAC"';'"DELWAQ"' 
+CHOIX1 = '"SISYPHE"';'"TOMAWAC"';'"DELWAQ"' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Liste des codes avec lesquels on couple Telemac-2D 
+        SISYPHE : couplage interne avec Sisyphe 
+        TOMAWAC : couplage interne avec Tomawac 
+        DELWAQ : sortie de fichiers de resultats pour Delwaq' 
+AIDE1 = 'List of codes to be coupled with Telemac-2D 
+        SISYPHE : internal coupling with Sisyphe 
+        TOMAWAC : internal coupling with Tomawac 
+        DELWAQ: will yield results file for Delwaq'  
+NOM = 'ESTIMATION DE PARAMETRE' 
+NOM1 = 'PARAMETER ESTIMATION' 
+TYPE = CARACTERE 
+INDEX = 60 
+MNEMO = 'ESTIME' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+CHOIX = '"FROTTEMENT"';'"FROTTEMENT, PERMANENT"' 
+CHOIX1 = '"FRICTION"';'"FROTTEMENT, STEADY"' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Liste des parametres a estimer, choix : FROTTEMENT 
+        ou FROTTEMENT, PERMANENT' 
+AIDE1 = 'List of parameter to be estimated, choice : FRICTION 
+        or FRICTION, STEADY'  
+NOM = 'DEFINITION DE ZONES' 
+NOM1 = 'DEFINITION OF ZONES' 
+TYPE = LOGIQUE 
+INDEX = 36 
+MNEMO = 'DEFZON' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Declenche l''appel a def_zones, pour donner 
+ un numero de zone a chaque point' 
+AIDE1 = 'Triggers the call to def_zones 
+ to give a zone number to every point' 
+NOM = 'METHODE D''IDENTIFICATION' 
+NOM1 = 'IDENTIFICATION METHOD' 
+TYPE = ENTIER 
+INDEX = 57 
+MNEMO = 'OPTID' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '0="plan d''experience"'; 
+'1="gradient simple"'; 
+'2="gradient conj"'; 
+'3="interp. de Lagrange"' 
+CHOIX1 = '0="list of tests"';  
+'1="gradient simple"'; 
+'2="conj gradient"'; 
+'3="Lagrange interp."' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = '0 : plan d''experience 1 : gradient simple  
+        2 : gradient conj. 3 : interp. de Lagrange' 
+AIDE1 = '0 : list of tests 1: gradient  
+        2 : conj. gradient 3 : lagrange interp.' 
+NOM = 'PERIODES D''ANALYSE DE FOURIER' 
+NOM1 = 'FOURIER ANALYSIS PERIODS' 
+TYPE = REEL 
+INDEX = 51 
+MNEMO = 'PERIAF' 
+TAILLE = 2 
+RUBRIQUE = 'EQUATIONS, SOURCES' 
+RUBRIQUE1 = 'EQUATIONS, SOURCE TERMS' 
+NIVEAU = 1 
+AIDE = 'Liste des periodes que l''on veut analyser' 
+AIDE1 = 'List of periods to be analysed' 
+NOM = 'LISTE DE POINTS' 
+NOM1 = 'LIST OF POINTS' 
+TYPE = INTEGER 
+INDEX = 58 
+MNEMO = 'LIST_PTS' 
+TAILLE = 2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Liste de points remarquables pour les impressions' 
+AIDE1= 'List of remarkable points for printouts' 
+NOM = 'NOMS DES POINTS' 
+NOM1 = 'NAMES OF POINTS' 
+TYPE = CARACTERE 
+INDEX = 61 
+MNEMO = 'NAME_PTS' 
+TAILLE = 2 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'Noms des points remarquables pour les impressions' 
+AIDE1= 'Names of remarkable points for printouts' 
+NOM = 'FONCTION COUT' 
+NOM1 = 'COST FUNCTION' 
+TYPE = ENTIER 
+INDEX = 59 
+MNEMO = 'OPTCOST' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = '1 : calculee sur h, u , v  2 : calculee avec c, u , v' 
+AIDE1 = '1: computed with h, u , v 2: computed with c, u , v' 
+NOM = 'MAXIMUM D''ITERATIONS POUR L''IDENTIFICATION' 
+NOM1 = 'MAXIMUM NUMBER OF ITERATIONS FOR IDENTIFICATION' 
+TYPE = ENTIER 
+INDEX = 60 
+MNEMO = 'MAXEST' 
+TAILLE = 0 
+DEFAUT = 20 
+DEFAUT1 = 20 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'chaque iteration comprend au moins un 
+ calcul direct et un calcul adjoint' 
+AIDE1 = 'every iteration implies at least a direct and 
+ an adjoint computation' 
+  
+NOM = 'PERIODE DE COUPLAGE POUR SISYPHE' 
+NOM1 = 'COUPLING PERIOD FOR SISYPHE' 
+TYPE = ENTIER 
+INDEX = 61 
+MNEMO = 'PERCOU' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'pour eviter de faire le couplage a chaque pas de temps' 
+AIDE1 = 'to avoid coupling at every time-step' 
+  
+NOM = 'PRECISIONS POUR L''IDENTIFICATION' 
+NOM1 = 'TOLERANCES FOR IDENTIFICATION' 
+TYPE = REEL 
+INDEX = 52 
+MNEMO = 'TOLEST' 
+TAILLE = 4 
+DEFAUT = 1.E-3;1.E-3;1.E-3;1.E-4 
+DEFAUT1 = 1.E-3;1.E-3;1.E-3;1.E-4 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = '4 nombres : precision absolue sur H, U, V,
+ et precision relative sur la fonction cout' 
+AIDE1 = '4 numbers: absolute precision on H, U V,
+ and relative precision on the cost function' 
+/ 
+/ NOUVEAUTES 5.3 
+/ 
+NOM = 'SCHEMA EN VOLUMES FINIS' 
+NOM1 = 'FINITE VOLUME SCHEME' 
+TYPE = ENTIER 
+INDEX = 62 
+MNEMO = 'OPTVF' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '0="schema de Roe"';
+'1="schéma cinetique ordre 1"'; 
+'2="schéma cinetique ordre 2"' ; 
+'3="schéma Zokagoa ordre 1"'; 
+'4="schéma Tchamen ordre 1"'; 
+'5="schéma HLLC ordre 1"'; 
+'6="schéma WAF ordre 2"'
+CHOIX1 = '0="Roe scheme"';
+'1="kinetic order 1"'; 
+'2="kinetic order 2"'; 
+'3="Zokagoa scheme order 1"'; 
+'4="Tchamen scheme order 1"'; 
+'5="HLLC scheme order 1"'; 
+'6="WAF scheme order 2"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE  = '0 : schema de Roe 1 : cinetique ordre 1  2 : cinetique ordre 2
+3 : schema de Zokagoa 4 : schema de Tchamen 5 : HLLC ordre 1  
+6 : WAF ordre 2'
+AIDE1 = '0: Roe scheme     1: kinetic order 1     2: kinetic order 2 
+3 : Zokagoa scheme 4 : Tchamen scheme 5 : HLLC order 1  
+6 : WAF order 2'
+/ 
+/ NOUVEAUTES 5.4  
+/ 
+NOM = 'FICHIER DES PARAMETRES DE SISYPHE' 
+NOM1 = 'SISYPHE STEERING FILE' 
+TYPE = CARACTERE 
+INDEX = 62 
+MNEMO = 'PAS DE MNEMO' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier des parametres de Sisyphe en cas de couplage interne' 
+AIDE1 = 'Sisyphe parameter file in case of internal coupling' 
+/ 
+/ NOUVEAUTES 5.5  
+/ 
+NOM = 'DONNEES POUR LE FROTTEMENT' 
+NOM1 = 'FRICTION DATA' 
+TYPE = LOGIQUE 
+INDEX = 37 
+MNEMO = 'FRICTB' 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'Lois de frottements definies par zone' 
+AIDE1 = 'Friction law defined by area' 
+NOM = 'NOMBRE MAXIMUM DE DOMAINES DE FROTTEMENT' 
+NOM1 = 'MAXIMUM NUMBER OF FRICTION DOMAINS' 
+TYPE = INTEGER 
+INDEX = 63 
+MNEMO = 'NZONMX' 
+DEFAUT = 10 
+DEFAUT1 = 10 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'nombre maximal de zones pouvant etre definies pour le 
+frottement. Peut etre augmente si necessaire' 
+AIDE1 = 'maximal number of zones defined for the friction.  
+Could be increased if needed' 
+NOM = 'FICHIER DE DONNEES POUR LE FROTTEMENT' 
+NOM1 = 'FRICTION DATA FILE' 
+TYPE = CARACTERE 
+INDEX = 63 
+MNEMO = 'T2D_FILES(T2DCOF)%NAME' 
+SUBMIT = 'T2DCOF-READ-35;T2DCOF;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'fichier de donnees pour le frottement' 
+AIDE1 = 'friction data file' 
+NOM = 'VALEUR PAR DEFAUT DU MANNING POUR LA LOI DE COLEBROOK-WHITE' 
+NOM1 = 'MANNING DEFAULT VALUE FOR COLEBROOK-WHITE LAW' 
+TYPE = REEL 
+INDEX = 53 
+MNEMO = 'NDEF' 
+DEFAUT = 0.02 
+DEFAUT1 = 0.02 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'valeur par defaut du manning pour la loi de frottement de  
+Colebrook-White (loi numero 7)' 
+AIDE1 = 'Manning default value for the friction law of Colebrook-White 
+(law number 7)' 
+NOM = 'FROTTEMENT POUR LA VEGETATION NON SUBMERGEE' 
+NOM1 = 'NON-SUBMERGED VEGETATION FRICTION' 
+TYPE = LOGIQUE 
+INDEX = 38 
+MNEMO = 'LINDNER' 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'calcul du frottement du a la vegetation non submergee' 
+AIDE1 = 'friction calculation of the non-submerged vegetation' 
+NOM = 'DIAMETRE DES ELEMENTS DE FROTTEMENT' 
+NOM1 = 'DIAMETER OF ROUGHNESS ELEMENTS' 
+TYPE = REEL 
+INDEX = 54 
+MNEMO = 'DP' 
+DEFAUT = 0.006 
+DEFAUT1 = 0.006 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'diametre des elements de frottements' 
+AIDE1 = 'diameter of roughness element' 
+NOM = 'ESPACEMENT DES ELEMENTS DE FROTTEMENT' 
+NOM1 = 'SPACING OF ROUGHNESS ELEMENTS' 
+TYPE = REEL 
+INDEX = 55 
+MNEMO = 'SP' 
+DEFAUT = 0.14 
+DEFAUT1 = 0.14 
+NIVEAU = 1 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+AIDE = 'espacement des elements de frottement' 
+AIDE1 = 'spacing of rouhness element' 
+NOM = 'IMPRESSION DU CUMUL DES FLUX' 
+NOM1 = 'PRINTING CUMULATED FLOWRATES' 
+TYPE = LOGIQUE 
+INDEX = 39 
+MNEMO = 'CUMFLO' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 =  NO 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+NIVEAU = 1 
+AIDE = 'IMPRESSION DU FLUX CUMULE A TRAVERS LES SECTIONS DE CONTROLE' 
+AIDE1 = 'PRINTING THE CUMULATED FLOWRATES THROUGH CONTROL SECTIONS' 
+NOM = 'CALCUL COMPATIBLE DES FLUX' 
+NOM1 = 'COMPATIBLE COMPUTATION OF FLUXES' 
+TYPE = LOGIQUE 
+INDEX = 40 
+MNEMO = 'COMFLU' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 =  NO 
+RUBRIQUE = 'PARAMETRES NUMERIQUES' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS' 
+NIVEAU = 1 
+AIDE = 'FLUX A TRAVERS LES SECTIONS DE CONTROLE, CALCUL COMPATIBLE 
+AVEC L''IMPERMEABILITE SOUS FORME FAIBLE' 
+AIDE1 = 'FLOWRATES THROUGH CONTROL SECTIONS, COMPUTATION COMPATIBLE 
+WITH THE WEAK FORMULATION OF NO-FLUX BOUNDARY CONDITION' 
+/ 
+/ NOUVEAUTES 5.6  
+/ 
+NOM = 'PROFONDEUR LIMITE POUR LE VENT' 
+NOM1 = 'THRESHOLD DEPTH FOR WIND' 
+TYPE = REEL 
+INDEX = 56 
+MNEMO = 'HWIND' 
+DEFAUT = 1. 
+DEFAUT1 = 1. 
+NIVEAU = 1 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+AIDE = 'Retire la force due au vent dans les petites profondeurs' 
+AIDE1 = 'Wind is not taken into account for small depths' 
+/ 
+NOM = 'SEUIL POUR LES PROFONDEURS NEGATIVES' 
+NOM1 = 'THRESHOLD FOR NEGATIVE DEPTHS' 
+TYPE = REEL 
+INDEX = 57 
+MNEMO = 'HNEG' 
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'CONSTANTES PHYSIQUES' 
+RUBRIQUE1 = 'PHYSICAL CONSTANTS' 
+NIVEAU = 1 
+AIDE = 'En dessous du seuil, les hauteurs negatives sont lissees' 
+AIDE1 = 'Below the threshold the negative depths are smoothed' 
+/ 
+/ FOR COMPATIBILITY WITH TELEMAC-3D
+/ SEE TREATMENT IN LECDON_TELEMAC2D 
+/ 
+NOM = 'PERIODE POUR LES SORTIES LISTING' 
+NOM1 = 'LISTING PRINTOUT PERIOD' 
+TYPE = INTEGER 
+INDEX = 64 
+MNEMO = 'LISPRD' 
+DEFAUT = 1 
+DEFAUT1 = 1 
+NIVEAU = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+AIDE = 'Determine la periode en nombre de pas de temps d''impression 
+des ''VARIABLES A IMPRIMER'' (voir ce mot-cle) Pour la mise au point, 
+il faut savoir que la sortie des resultats est effectuee 
+systematiquement sur le fichier de retour d''execution du code 
+(actuellement accessible par le menu 3.f de SPF sur IBM, et dans 
+le fichier !CAS.SORTIE sur station de travail)' 
+AIDE1 = 'Determines, in number of time steps, the printout period of 
+the VARIABLES TO BE PRINTED 
+The results are systematically printed out on the listing file 
+(file CAS.SORTIE at the workstation).' 
+/ 
+/ 
+NOM = 'COORDONNEES DE L''ORIGINE' 
+NOM1 = 'ORIGIN COORDINATES' 
+TYPE = ENTIER 
+INDEX = 65 
+MNEMO = 'I_ORIG,J_ORIG' 
+TAILLE = 2 
+DEFAUT = 0;0 
+DEFAUT1 = 0;0 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CONTROLE' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'CONTROL' 
+NIVEAU = 2 
+AIDE = 'Valeur en metres, utilise pour eviter les trops grands nombres, transmis 
+dans le format Selafin mais pas d''autre traitement pour l''instant' 
+AIDE1 = 'Value in metres, used to avoid large real numbers,  
+added in Selafin format, but so far no other treatment' 
+/ 
+/ NOUVEAUTES 5.7  
+/ 
+NOM = 'PERIODE DE SORTIE POUR DELWAQ' 
+NOM1 = 'DELWAQ PRINTOUT PERIOD' 
+TYPE = ENTIER 
+INDEX = 66 
+MNEMO = 'WAQPRD' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CONTROLE' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'CONTROL' 
+NIVEAU = 2 
+AIDE = 'Periode de sortie des resultats pour Delwaq' 
+AIDE1 = 'Printout period for Delwaq file' 
+/ 
+NOM = 'FICHIER DELWAQ DES VOLUMES' 
+NOM1 = 'VOLUMES DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 64 
+MNEMO = 'T2D_FILES(T2DSOU)%NAME' 
+SUBMIT = 'T2DDL1-WRITE-36;T2DDL1;FACUL;BIN;ECR;DELWAQPTS' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DES SURFACES DE FLUX' 
+NOM1 = 'EXCHANGE AREAS DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 65 
+MNEMO = 'T2D_FILES(T2DDL2)%NAME' 
+SUBMIT = 'T2DDL2-WRITE-37;T2DDL2;FACUL;BIN;ECR;DELWAQSEG' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DES FLUX VERTICAUX' 
+NOM1 = 'VERTICAL FLUXES DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 66 
+MNEMO = 'T2D_FILES(T2DDL3)%NAME' 
+SUBMIT = 'T2DDL3-WRITE-38;T2DDL3;FACUL;BIN;ECR;DELWAQSEG' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DE LA SALINITE' 
+NOM1 = 'SALINITY DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 67 
+MNEMO = 'T2D_FILES(T2DDL4)%NAME' 
+SUBMIT = 'T2DDL4-WRITE-39;T2DDL4;FACUL;BIN;ECR;DELWAQPTS' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DES SURFACES DU FOND' 
+NOM1 = 'BOTTOM SURFACES DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 68 
+MNEMO = 'T2D_FILES(T2DDL5)%NAME' 
+SUBMIT = 'T2DDL5-WRITE-40;T2DDL5;FACUL;BIN;ECR;DELWAQMET' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DES ECHANGES ENTRE NOEUDS' 
+NOM1 = 'EXCHANGES BETWEEN NODES DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 69 
+MNEMO = 'T2D_FILES(T2DDL6)%NAME' 
+SUBMIT = 'T2DDL6-WRITE-41;T2DDL6;FACUL;BIN;ECR;DELWAQMET' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DES DISTANCES ENTRE NOEUDS' 
+NOM1 = 'NODES DISTANCES DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 70 
+MNEMO = 'T2D_FILES(T2DDL7)%NAME' 
+SUBMIT = 'T2DDL7-WRITE-42;T2DDL7;FACUL;BIN;ECR;DELWAQMET' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DE LA TEMPERATURE' 
+NOM1 = 'TEMPERATURE DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 72 
+MNEMO = 'T2D_FILES(T2DDL8)%NAME' 
+SUBMIT = 'T2DDL8-WRITE-43;T2DDL8;FACUL;BIN;ECR;DELWAQPTS' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DE LA VITESSE' 
+NOM1 = 'VELOCITY DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 76 
+MNEMO = 'T2D_FILES(T2DDL9)%NAME' 
+SUBMIT = 'T2DDL9-WRITE-33;T2DDL9;FACUL;BIN;ECR;DELWAQPTS' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DELWAQ DE LA DIFFUSION' 
+NOM1 = 'DIFFUSIVITY DELWAQ FILE' 
+TYPE = CARACTERE 
+INDEX = 77 
+MNEMO = 'T2D_FILES(T2DL10)%NAME' 
+SUBMIT = 'T2DL10-WRITE-34;T2DL10;FACUL;BIN;ECR;DELWAQPTS' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'FICHIER DE COMMANDE DELWAQ' 
+NOM1 = 'DELWAQ STEERING FILE' 
+TYPE = CARACTERE 
+INDEX = 71 
+MNEMO = 'T2D_FILES(T2DL11)%NAME' 
+SUBMIT = 'T2DL11-WRITE-44;T2DL11;FACUL;ASC;ECR;DELWAQHYD' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier de resultats pour le couplage avec Delwaq' 
+AIDE1 = 'Results file for coupling with Delwaq' 
+/ 
+NOM = 'COMPATIBILITE DU GRADIENT DE SURFACE LIBRE' 
+NOM1 = 'FREE SURFACE GRADIENT COMPATIBILITY' 
+TYPE = REEL 
+INDEX = 58 
+MNEMO = 'TETAZCOMP' 
+TAILLE = 0 
+DEFAUT = 1. 
+DEFAUT1= 1. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'DUREE DU CALCUL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'DURATION' 
+NIVEAU = 1 
+AIDE = 'Des valeurs inferieures a 1 suppriment les oscillations 
+parasites' 
+AIDE1 = 'Values less than 1 suppress spurious oscillations' 
+/ 
+NOM = 'BORNES EN TEMPS POUR L''ANALYSE DE FOURIER' 
+NOM1 = 'TIME RANGE FOR FOURIER ANALYSIS' 
+TYPE = REEL 
+INDEX = 59 
+MNEMO = 'TAFBGN,TAFEND' 
+TAILLE = 2 
+DEFAUT = 0.;0. 
+DEFAUT1= 0.;0. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'DUREE DU CALCUL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'DURATION' 
+NIVEAU = 1 
+AIDE = 'Pour le calcul du marnage et de la phase de la maree' 
+AIDE1 = 'For computing tidal range and phase of tide' 
+/ 
+/ NOUVEAUTES 5.8 (SAUF DEUX FICHIERS POUR DELWAQ MIS CI-DESSUS) 
+/ 
+NOM = 'NOMBRE DE TRACEURS' 
+NOM1 = 'NUMBER OF TRACERS' 
+TYPE = ENTIER 
+INDEX = 67 
+MNEMO = 'NTRAC' 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'EQUATIONS, TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER' 
+NIVEAU = 1 
+/COMPORT = 'Affichage ("EQUATIONS*TRACEUR*OPTIONS TRACEUR") 
+/IS VALEUR ()'; 
+/'Foreground ("EQUATIONS*TRACEUR") IS VALEUR (brown)' 
+AIDE = 'Definit le nombre de traceurs.' 
+AIDE1 = 'Defines the number of tracers' 
+/ 
+NOM = 'NOMS DES TRACEURS' 
+NOM1 = 'NAMES OF TRACERS' 
+TYPE = CARACTERE 
+INDEX = 74 
+MNEMO = 'NAMETRAC' 
+TAILLE = 2 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, FICHIERS*NOMS") 
+IS BRUT (red)' 
+AIDE = 'Noms des traceurs en 32 caracteres, 16 pour le nom 
+         16 pour l''unite' 
+AIDE1 = 'Name of tracers in 32 characters, 16 for the name, 
+         16 for the unit.' 
+/ 
+NOM = 'SALINITE POUR DELWAQ' 
+NOM1 = 'SALINITY FOR DELWAQ' 
+TYPE = LOGIQUE 
+INDEX = 41 
+MNEMO = 'SALI_DEL' 
+DEFAUT = NON 
+DEFAUT1 = NO 
+NIVEAU = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+AIDE = 'Decide de la sortie de la salinite pour Delwaq' 
+AIDE1 = 'Triggers output of salinity for Delwaq' 
+/ 
+NOM = 'TEMPERATURE POUR DELWAQ' 
+NOM1 = 'TEMPERATURE FOR DELWAQ' 
+TYPE = LOGIQUE 
+INDEX = 42 
+MNEMO = 'TEMP_DEL' 
+DEFAUT = NON 
+DEFAUT1 = NO 
+NIVEAU = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+AIDE = 'Decide de la sortie de la temperature pour Delwaq' 
+AIDE1 = 'Triggers output of temperature for Delwaq' 
+/ 
+NOM = 'VITESSE POUR DELWAQ' 
+NOM1 = 'VELOCITY FOR DELWAQ' 
+TYPE = LOGIQUE 
+INDEX = 43 
+MNEMO = 'VELO_DEL' 
+DEFAUT = NON 
+DEFAUT1 = NO 
+NIVEAU = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+AIDE = 'Decide de la sortie de la vitesse pour Delwaq' 
+AIDE1 = 'Triggers output of velocity for Delwaq' 
+/ 
+NOM = 'DIFFUSION POUR DELWAQ' 
+NOM1 = 'DIFFUSIVITY FOR DELWAQ' 
+TYPE = LOGIQUE 
+INDEX = 44 
+MNEMO = 'DIFF_DEL' 
+DEFAUT = NON 
+DEFAUT1 = NO 
+NIVEAU = 1 
+RUBRIQUE = 'ENTREES-SORTIES, GRAPHIQUES ET LISTING' 
+RUBRIQUE1 = 'INPUT-OUTPUT, GRAPHICS AND LISTING' 
+AIDE = 'Decide de la sortie du coefficient de diffusion pour Delwaq' 
+AIDE1 = 'Triggers output of diffusion for Delwaq' 
+/ 
+/ NOUVEAUTES 5.9  
+/ 
+NOM = 'COURBES DE TARAGE' 
+NOM1 = 'STAGE-DISCHARGE CURVES' 
+TYPE = ENTIER 
+INDEX = 68 
+MNEMO = 'STA_DIS_CURVES' 
+TAILLE = 2 
+CHOIX = '0="non"';'1="Z(Q)"';'non programme 2="Q(Z)"' 
+CHOIX1 = '0="no"';'1="Z(Q)"';'not programmed 2="Q(Z)"' 
+RUBRIQUE = 'CONDITIONS LIMITES' 
+RUBRIQUE1 = 'BOUNDARY CONDITIONS' 
+NIVEAU = 1 
+AIDE = 'Indique si une courbe de tarage doit etre utilisee 
+pour une frontiere 0:non 1:Z(Q) 2: Q(Z) (2 non programme)' 
+AIDE1 = 'Says if a discharge-elevation curve must be used 
+for a given boundary :NO 1:Z(Q) 2: Q(Z) (2 not programmed)' 
+/ 
+NOM = 'FICHIER DES COURBES DE TARAGE' 
+NOM1 = 'STAGE-DISCHARGE CURVES FILE' 
+TYPE = CARACTERE 
+INDEX = 73 
+MNEMO = 'T2D_FILES(T2DMAB)%NAME' 
+TAILLE = 0 
+SUBMIT = 'T2DMAB-READ-11;T2DMAB;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, FICHIERS*NOMS") 
+IS VALEUR (red)' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+AIDE = 'Nom du fichier contenant les courbes de tarage' 
+AIDE1 = 'Name of the file containing stage-discharge curves' 
+/ 
+NOM = 'FICHIER DES SOURCES' 
+NOM1 = 'SOURCES FILE' 
+TYPE = CARACTERE 
+INDEX = 75 
+MNEMO = 'T2D_FILES(T2DVEF)%NAME' 
+TAILLE = 0 
+SUBMIT = 'T2DVEF-READ-10;T2DVEF;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+COMPORT = 
+'Foreground ("ENTREES-SORTIES, FICHIERS*NOMS") 
+IS VALEUR (red)' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+AIDE = 'Nom du fichier contenant les informations variables 
+en temps des sources' 
+AIDE1 = 'Name of the file containing time-dependent 
+information on sources' 
+/ 
+NOM = 'DEBUGGER' 
+NOM1 = 'DEBUGGER' 
+TYPE = INTEGER 
+INDEX = 69 
+MNEMO = 'DEBUG' 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS' 
+NIVEAU = 1 
+AIDE= 'Pour imprimer la sequence des appels, mettre 1' 
+AIDE1 = 'If 1, calls of subroutines will be printed in the listing' 
+/ 
+NOM = 'TRAITEMENT DES HAUTEURS NEGATIVES' 
+NOM1 = 'TREATMENT OF NEGATIVE DEPTHS' 
+TYPE = INTEGER 
+INDEX = 70 
+MNEMO = 'OPT_HNEG' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS' 
+NIVEAU = 1 
+AIDE= 'Seulement avec OPTION DE TRAITEMENT DES BANCS DECOUVRANTS = 1 
+       0 : pas de traitement 1 : lissage 2 : limitation des flux' 
+AIDE1 = 'Only with OPTION FOR THE TREATMENT OF TIDAL FLATS=1 
+       0: no treatment 1:smoothing 2:flux control' 
+/ 
+NOM = 'FORMAT DU FICHIER DE REFERENCE' 
+NOM1 = 'REFERENCE FILE FORMAT' 
+TYPE = CARACTERE 
+INDEX = 78 
+MNEMO = '?????' 
+DEFAUT = 'SERAFIN ' 
+DEFAUT1 = 'SERAFIN ' 
+CHOIX = 'SERAFIN ';'SERAFIND';'MED     ' 
+CHOIX1 = 'SERAFIN ';'SERAFIND';'MED     ' 
+NIVEAU = 2 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES' 
+AIDE = 'Format du fichier de resultats du calcul precedent. 
+Les valeurs possibles sont : 
+- SERAFIN : format standard simple precision pour Telemac;  
+- SERAFIND: format standard double precision pour Telemac; 
+- MED     : format MED base sur HDF5' 
+AIDE1 = 'Previous computation results file format. 
+Possible values are: 
+- SERAFIN : classical single precision format in Telemac;  
+- SERAFIND: classical double precision format in Telemac; 
+- MED     : MED format based on HDF5' 
+/ 
+/ NOUVEAUTES 6.0  
+/ 
+NOM = 'HAUTEUR DANS LES TERMES DE FROTTEMENT' 
+NOM1 = 'DEPTH IN FRICTION TERMS' 
+TYPE = ENTIER 
+INDEX = 71 
+MNEMO = 'HFROT' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+CHOIX = '1="nodale"';'2="moyenne"' 
+CHOIX1 = '1="nodal"';'2="average"' 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE  = '1 : nodale 2 : moyenne' 
+AIDE1 = '1: nodal   2: average' 
+/ 
+// jaj #### added 
+/ 
+NOM = 'FICHIER DES SECTIONS DE CONTROLE' 
+NOM1 = 'SECTIONS INPUT FILE' 
+TYPE = CARACTERE 
+INDEX = 79 
+MNEMO = 'T2D_FILES%ADR(T2DSEC)' 
+SUBMIT = 'NSCS-READ-45;T2DSEC;FACUL;ASC;LIT;SECTION' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+AIDE = 'sections input file, partitioned' 
+AIDE1 = 'sections input file, partitioned' 
+NOM = 'FICHIER DE SORTIE DES SECTIONS DE CONTROLE' 
+NOM1 = 'SECTIONS OUTPUT FILE' 
+TYPE = CARACTERE 
+INDEX = 80 
+MNEMO = 'T2D_FILES%ADR(T2DSEO)' 
+SUBMIT = 'NSEO-WRITE-46;T2DSEO;FACUL;ASC;ECR;SCAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'sections output file, written by the master' 
+AIDE1 = 'sections output file, written by the master' 
+/ 
+// end of jaj #### added 
+/ 
+NOM = 'FICHIER DE COMMANDES HYDROCARBURES' 
+NOM1 = 'OILSPILL STEERING FILE' 
+TYPE = CARACTERE 
+INDEX = 81 
+MNEMO = 'T2D_FILES(T2DMIG)' 
+SUBMIT = 'NMIG-READ-47;T2DMIG;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Contient les donnees pour le modele de derive de nappes' 
+AIDE1 = 'Contains data for the oil spill model' 
+NOM = 'MODELE DE NAPPES D''HYDROCARBURES' 
+NOM1 = 'OIL SPILL MODEL' 
+TYPE = LOGIQUE 
+INDEX = 45 
+MNEMO = 'SPILL_MODEL' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 =  NO 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CONTROLE' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'CONTROL' 
+NIVEAU = 1 
+AIDE = 'POUR DECLENCHER LE MODELE DE DERIVE DE NAPPES, DANS 
+CE CAS LE FICHIER DE COMMANDES MIGRHYCAR EST NECESSAIRE' 
+AIDE1 = 'WILL TRIGGER THE OIL SPILL MODEL, IN THIS CASE 
+THE MIGRHYCAR STEERING FILE IS NEEDED' 
+/ 
+/ VERSION 6.1 
+/ 
+NOM = 'LOI DE FROTTEMENT SUR LES PAROIS LATERALES' 
+NOM1 = 'LAW OF FRICTION ON LATERAL BOUNDARIES' 
+TYPE = ENTIER 
+INDEX = 72 
+MNEMO = 'KFROTL' 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+CHOIX = '0="PAS DE FROTTEMENT"'; 
+'1="HAALAND"'; 
+'2="CHEZY"'; 
+'3="STRICKLER"'; 
+'4="MANNING"'; 
+'5="NIKURADSE"'; 
+'6="LOG LAW"'; 
+'7="COLEBROOK-WHITE"' 
+CHOIX1 = '0="NO FRICTION"'; 
+'1="HAALAND"'; 
+'2="CHEZY"'; 
+'3="STRICKLER"'; 
+'4="MANNING"'; 
+'5="NIKURADSE"'; 
+'6="LOG LAW"'; 
+'7="COLEBROOK-WHITE"' 
+RUBRIQUE = 'EQUATIONS';'FROTTEMENT' 
+RUBRIQUE1 = 'EQUATIONS';'FRICTION' 
+NIVEAU = 1 
+AIDE = 'selectionne le type de formulation utilisee pour le calcul 
+du frottement sur les parois laterales. 
+Les lois possibles sont les suivantes (cf. Note de principe) :   
+0 : pas de frottement  
+1 : lineaire   
+2 : Chezy  
+3 : Strickler  
+4 : Manning   
+5 : formule de NIKURADSE  
+6 : loi en log 
+7 : Colebrook-White' 
+AIDE1 = 'Selects the type of formulation used for the friction on lateral boundaries. 
+The possible laws are as follows (refer to the Principle note): 
+0: no friction 
+1: linear  
+2: Chezy  
+3: Strickler   
+4: Manning   
+5: NIKURADSE''s formula  
+6 : law log 
+7 : Colebrook-White' 
+NOM = 'FICHIER DES PARAMETRES DE TOMAWAC' 
+NOM1 = 'TOMAWAC STEERING FILE' 
+TYPE = CARACTERE 
+INDEX = 82 
+MNEMO = 'PAS DE MNEMO' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+NIVEAU = 1 
+APPARENCE = 'LISTE IS FICHIER' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+AIDE = 'Fichier des parametres de Tomawac en cas de couplage interne' 
+AIDE1 = 'Tomawac parameter file in case of internal coupling' 
+NOM = 'PERIODE DE COUPLAGE POUR TOMAWAC' 
+NOM1 = 'COUPLING PERIOD FOR TOMAWAC' 
+TYPE = ENTIER 
+INDEX = 73 
+MNEMO = 'PERCOU_WAC' 
+TAILLE = 0 
+DEFAUT = 1 
+DEFAUT1 = 1 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1 
+AIDE = 'pour eviter de faire le couplage a chaque pas de temps' 
+AIDE1 = 'to avoid coupling at every time-step' 
+
+NOM = 'COEFFICIENT D''INTEGRATION EN TEMPS DE NEWMARK' 
+NOM1 = 'NEWMARK TIME INTEGRATION COEFFICIENT' 
+TYPE = REEL 
+INDEX = 60 
+MNEMO = 'GAMMA' 
+TAILLE = 0 
+DEFAUT = 1. 
+DEFAUT1= 1. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'DUREE DU CALCUL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'DURATION' 
+NIVEAU = 1 
+AIDE = '1. : Euler explicite 0.5 : ordre 2 en temps' 
+AIDE1 = '1. : Euler explicit 0.5 : order 2 in time' 
+
+NOM = 'TRAITEMENT DES FLUX AUX FRONTIERES'
+NOM1 = 'TREATMENT OF FLUXES AT THE BOUNDARIES'
+TYPE = INTEGER
+INDEX = 74
+MNEMO = 'DIRFLU'
+TAILLE = 0
+DEFAUT = 1 
+DEFAUT1= 1  
+CHOIX='1="Priorite aux valeurs imposees"';'2="Priorite aux flux"'
+CHOIX1='1="Priority to prescribed values"';'2="Priority to fluxes"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1
+AIDE = 'Utilise pour les schemas SUPG, PSI et N, avec option 2, on ne retrouve
+pas exactement les valeurs imposees des traceurs,
+mais le flux est correct'
+AIDE1= 'Used so far only with the SUPG, PSI and N schemes.
+With option 2, Dirichlet prescribed values are not obeyed,
+but the fluxes are correct'
+
+NOM = 'OPTION POUR LES CONDITIONS AUX LIMITES DE MAREE'
+NOM1 = 'OPTION FOR TIDAL BOUNDARY CONDITIONS'
+TYPE = INTEGER
+INDEX = 75
+MNEMO = 'TIDALTYPE'
+TAILLE = 0
+DEFAUT = 0
+DEFAUT1= 0
+CHOIX=
+'0="Pas de maree"';
+'1="Maree reelle (methodologie recommandee)"';
+'2="Maree de vive-eau exceptionnelle (coef. presque 120)"';
+'3="Maree de vive-eau moyenne (coef. presque 95)"';
+'4="Maree moyenne (coef. presque 70)"';
+'5="Maree de morte-eau moyenne (coef. presque 45)"';
+'6="Maree de morte-eau exceptionnelle (coef. presque 20)"';
+'7="Maree reelle (methodologie d avant 2010)"'
+CHOIX1=
+'0="No tide"';
+'1="Real tide (recommended methodology)"';
+'2="Astronomical tide"';
+'3="Mean spring tide"';
+'4="Mean tide"';
+'5="Mean neap tide"';
+'6="Astronomical neap tide"';
+'7="Real tide (methodology before 2010)"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1
+AIDE = 'Option pour les conditions aux limites de maree.
+Pour des marees reelles, l option 1 est recommandee.
+Calage possible par les mots-cles COEFFICIENT POUR CALAGE EN MARNAGE
+et COEFFICIENT POUR CALAGE EN NIVEAU.'
+AIDE1= 'Option for tidal boundary conditions.
+For real tides, option 1 is recommended.
+Possible calibration with keywords COEFFICIENT TO ADJUST TIDAL RANGE
+and COEFFICIENT TO ADJUST SEA LEVEL.'
+
+NOM = 'FICHIER DES CONSTANTES HARMONIQUES' 
+NOM1 = 'HARMONIC CONSTANTS FILE' 
+TYPE = CARACTERE 
+INDEX = 83 
+MNEMO = 'T2D_FILES(T2DHAR)' 
+SUBMIT = 'NHAR-READWRITE-13;T2DHAR;FACUL;ASC;ECRLIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Constantes harmoniques extraites du fichier du modele de maree' 
+AIDE1 = 'Harmonic constants extracted from the tidalmodel file' 
+
+NOM = 'FICHIER DU MODELE DE MAREE' 
+NOM1 = 'TIDAL MODEL FILE' 
+TYPE = CARACTERE 
+INDEX = 84 
+MNEMO = 'T2D_FILES(T2DTID)' 
+SUBMIT = 'NTID-READ-14;T2DTID;FACUL;BIN;LIT;SCAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de geometrie du modele dont sont extraites 
+les constantes harmoniques' 
+AIDE1 = 'Geometry file of the model from which harmonic constituents 
+are extracted' 
+
+NOM = 'BASE ASCII DE DONNEES DE MAREE' 
+NOM1 = 'ASCII DATABASE FOR TIDE' 
+TYPE = CARACTERE 
+INDEX = 85 
+MNEMO = 'T2D_FILES(T2DBDD)' 
+SUBMIT = 'NBDD-READ-15;T2DBDD;FACUL;ASC;LIT;PARAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Base de donnees de constantes harmoniques 
+tirees du fichier du modele de maree. 
+Ancien nom en version 6.1 : BASE DE DONNEES DE MAREE' 
+AIDE1 = 'Tide data base of harmonic constituents 
+extracted from the tidal model file.
+Old name in 6.1 version: TIDE DATA BASE' 
+/ 
+/ VERSION 6.2
+/
+NOM = 'PLUIE OU EVAPORATION'
+NOM1 = 'RAIN OR EVAPORATION'
+TYPE = LOGIQUE
+INDEX = 19
+MNEMO = 'RAIN'
+TAILLE = 0
+DEFAUT = NON
+DEFAUT1 = NO
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL'
+NIVEAU = 1
+AIDE  = 'Pour ajouter un apport ou une perte d''eau en surface.
+Voir le mot-cle PLUIE OU EVAPORATION EN MM PAR JOUR'
+AIDE1 = 'to add or remove water at the free surface. See the key-word
+RAIN OR EVAPORATION IN MM PER DAY'
+/ 
+NOM = 'PLUIE OU EVAPORATION EN MM PAR JOUR'
+NOM1 = 'RAIN OR EVAPORATION IN MM PER DAY'
+TYPE = REAL
+INDEX = 61
+MNEMO = 'RAIN_MMPD'
+TAILLE = 0
+DEFAUT = 0.D0
+DEFAUT1 = 0.D0
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL'
+NIVEAU = 1
+AIDE  = 'Pour ajouter un apport ou une perte d''eau en surface'
+AIDE1 = 'to add or remove water at the free surface'
+/
+NOM = 'BASE BINAIRE 1 DE DONNEES DE MAREE'
+NOM1 = 'BINARY DATABASE 1 FOR TIDE'
+TYPE = CARACTERE
+INDEX = 86
+MNEMO = 'T2D_FILES(T2DBB1)'
+SUBMIT = 'NBB1-READ-16;T2DBB1;FACUL;BIN;LIT;PARAL'
+DEFAUT = ' '
+DEFAUT1 = ' '
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS'
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES'
+NIVEAU = 1
+AIDE = 'Base de donnees binaire 1 tiree du fichier du modele de maree.
+ Dans le cas des donnees satellitaires de TPXO, ce fichier correspond
+ aux donnees de niveau d''eau, par exemple h_tpxo7.2'
+AIDE1 = 'Binary database 1 extracted from the tidal model file.
+ In the case of the TPXO satellite altimetry model, this file should
+ be for free surface level, for instance h_tpxo7.2'
+
+NOM = 'BASE BINAIRE 2 DE DONNEES DE MAREE'
+NOM1 = 'BINARY DATABASE 2 FOR TIDE'
+TYPE = CARACTERE
+INDEX = 87
+MNEMO = 'T2D_FILES(T2DBB2)'
+SUBMIT = 'NBB2-READ-17;T2DBB2;FACUL;BIN;LIT;PARAL'
+DEFAUT = ' '
+DEFAUT1 = ' '
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS'
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES'
+NIVEAU = 1
+AIDE = 'Base de donnees binaire 2 tiree du fichier du modele de maree.
+ Dans le cas des donnees satellitaires de TPXO, ce fichier correspond
+ aux donnees de vitesse de marrees, par exemple u_tpxo7.2'
+AIDE1 = 'Binary database 2 extracted from the tidal model file.
+ In the case of the TPXO satellite altimetry model, this file should
+ be for tidal velocities, for instance u_tpxo7.2'
+
+NOM = 'OPTION POUR LA GENERATION DE TSUNAMI'
+NOM1 = 'OPTION FOR TSUNAMI GENERATION'
+TYPE = INTEGER
+INDEX = 76
+MNEMO = 'OPTTSUNAMI'
+TAILLE = 0
+DEFAUT = 0
+DEFAUT1= 0
+CHOIX=
+'0="Pas de Tsunami"';
+'1="Generation d''un Tsunami sur la base du modele de Okada 1992"'
+CHOIX1=
+'0="No Tsunami"';
+'1="Tsunami generated on the basis of the Okada model 1992"'
+RUBRIQUE = 'PARAMETRES PHYSIQUES, CONDITIONS INITIALES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS, INITIAL CONDITIONS'
+NIVEAU = 1
+AIDE = ''
+/'Option pour la generation de Tsunami.
+/Pour l''instant, seul de modele de Okada est programme.
+/Les parametres physiques du modele chosit sont definis avec
+/PARAMETRES PHYSIQUES DU TSUNAMI.'
+AIDE1= ''
+/'Option for the generation of Tsunami.
+/Only the Okada model 1992 is programmed.
+/The physical characteristics of the chosen Tsunami are set in
+/PHYSICAL CHARACTERISTICS OF THE TSUNAMI.'
+
+NOM = 'PARAMETRES PHYSIQUES DU TSUNAMI'
+NOM1 = 'PHYSICAL CHARACTERISTICS OF THE TSUNAMI'
+TYPE = REEL
+INDEX = 62
+MNEMO = 'COETSUNAMI'
+TAILLE = 10
+DEFAUT = 100.;210000.;75000.;13.6;81.;41.;110.;0.;0.;3.
+DEFAUT1= 100.;210000.;75000.;13.6;81.;41.;110.;0.;0.;3.
+RUBRIQUE = 'PARAMETRES PHYSIQUES, CONDITIONS INITIALES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS, INITIAL CONDITIONS'
+NIVEAU = 1
+AIDE = ''
+/'Parametres physiques du modele de generation de tsunami'
+AIDE1 = ''
+/'Physical characteristics of the chosen Tsunami model:
+/ - the focal depth (HH),
+/ - the fault length (L),
+/ - the fault width (W)
+/ - the dislocation (D),
+/ - the strike direction (TH),
+/ - the dip angle (DL),
+/ - the slip (RD),
+/ - the epicentre latitude (Y0) and
+/ - the epicentre longitude (X0)
+/ - the ellipse ( WxL ) area of influence'
+
+NOM = 'VALEURS DES TRACEURS DANS LA PLUIE'
+NOM1 = 'VALUES OF TRACERS IN THE RAIN'
+TYPE = REEL
+INDEX = 63
+MNEMO = 'TRAIN'
+TAILLE = 2
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE = ''
+AIDE1 = ''
+
+NOM = 'NOMBRE DE BUSES' 
+NOM1 = 'NUMBER OF TUBES' 
+TYPE = ENTIER 
+INDEX = 6 
+MNEMO = 'NBUSE' 
+CONTROLE = 0; 100 
+TAILLE = 0 
+DEFAUT = 0 
+DEFAUT1 = 0 
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 2 
+AIDE = 'Nombre de buses ou ponts traites comme des termes sources ou 
+puits. Ces buses doivent etre decrits comme des sources dans le 
+fichier cas. Leurs caracteristiques sont donnees dans le 
+fichier de donnees des buses (voir la documentation ecrite)' 
+AIDE1 = 'Number of tubes or bridges treated as source terms. 
+They must be described as sources in the domain and their features 
+are given in the tubes data file (see written documentation)' 
+
+NOM = 'FICHIER DE DONNEES DES SEUILS'
+NOM1 = 'WEIRS DATA FILE'
+TYPE = CARACTERE
+INDEX = 88
+MNEMO = 'T2D_FILES(T2DSEU)%NAME' 
+SUBMIT = 'T2DSEU-READ-18;T2DSEU;FACUL;ASC;LIT;SCAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de description des seuils presents dans le modele' 
+AIDE1 = 'Description of weirs existing in the model' 
+
+NOM = 'FICHIER DE DONNEES DES SIPHONS'
+NOM1 = 'CULVERT DATA FILE'
+TYPE = CARACTERE
+INDEX = 89
+MNEMO = 'T2D_FILES(T2DSIP)%NAME' 
+SUBMIT = 'T2DSIP-READ-19;T2DSIP;FACUL;ASC;LIT;SCAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de description des siphons presents dans le modele' 
+AIDE1 = 'Description of culvert existing in the model' 
+
+NOM = 'FICHIER DE DONNEES DES BUSES'
+NOM1 = 'TUBES DATA FILE'
+TYPE = CARACTERE 
+INDEX = 90
+MNEMO = 'T2D_FILES(T2DBUS)%NAME' 
+SUBMIT = 'T2DBUS-READ-20;T2DBUS;FACUL;ASC;LIT;SCAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de description des buses/ponts presents dans le modele' 
+AIDE1 = 'Description of tubes/bridges existing in the model' 
+
+NOM = 'COEFFICIENT DE CALAGE DU MARNAGE'
+NOM1 = 'COEFFICIENT TO CALIBRATE TIDAL RANGE'
+TYPE = REEL
+INDEX = 64
+MNEMO = 'CTIDE'
+TAILLE = 0
+DEFAUT = 1. 
+DEFAUT1 = 1. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE = 'Coefficient pour ajuster le marnage de l''onde de maree 
+aux frontieres maritimes'
+AIDE1 = 'Coefficient to calibrate the tidal range of tidal wave 
+at tidal open boundary conditions'
+
+NOM = 'COEFFICIENT DE CALAGE DES VITESSES DE COURANT'
+NOM1 = 'COEFFICIENT TO CALIBRATE TIDAL VELOCITIES'
+TYPE = REEL
+INDEX = 65
+MNEMO = 'CTIDEV'
+TAILLE = 0
+DEFAUT = 999999. 
+DEFAUT1 = 999999. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE = 'Coefficient pour ajuster les composantes de vitesse 
+de l''onde de maree aux frontieres maritimes.
+La valeur par defaut 999999. signifie que c''est la racine carree 
+du COEFFICIENT DE CALAGE DU MARNAGE qui est prise'
+AIDE1 = 'Coefficient to calibrate the tidal velocities of tidal wave 
+at tidal open boundary conditions.
+Default value 999999. means that the square root of 
+COEFFICIENT TO CALIBRATE TIDAL RANGE is taken'
+
+NOM = 'COEFFICIENT DE CALAGE DU NIVEAU DE MER'
+NOM1 = 'COEFFICIENT TO CALIBRATE SEA LEVEL'
+TYPE = REEL
+INDEX = 66
+MNEMO = 'MSL'
+TAILLE = 0
+DEFAUT = 0. 
+DEFAUT1 = 0. 
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE = 'Coefficient pour ajuster le niveau de mer'
+AIDE1 = 'Coefficient to calibrate the sea level'
+
+NOM = 'BASE DE DONNEES DE MAREE'
+NOM1 = 'TIDAL DATA BASE'
+TYPE = ENTIER
+INDEX = 77
+MNEMO = 'TIDALDB'
+TAILLE = 0
+DEFAUT = -1 
+DEFAUT1 = -1 
+CHOIX=
+'-1="PAS DE VALEUR PAR DEFAUT. CHOISIR LA BASE PARMI LES CHOIX POSSIBLES"';
+'1="JMJ"';
+'2="TPXO"';
+'3="LEGOS-NEA"';
+'4="FES2004"'
+CHOIX1=
+'-1="NO DEFAULT VALUE. CHOOSE THE BASE AMONG THE POSSIBLE CHOICES"';
+'1="JMJ"';
+'2="TPXO"';
+'3="LEGOS-NEA"';
+'4="FES2004"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE = 'Pour JMJ, renseigner la localisation du fichier bdd_jmj et geofin
+dans les mots-cles BASE DE DONNEES DE MAREE et FICHIER DU MODELE DE MAREE.
+Pour TPXO et LEGOS-NEA, l''utilisateur doit telecharger
+les fichiers de constantes harmoniques sur internet.
+Pour FES2004 : pas encore disponible'
+AIDE1 = 'For JMJ, indicate the location of the files bdd_jmj and geofin with keywords 
+TIDE DATA BASE and TIDAL MODEL FILE.
+For TPXO and LEGOS-NEA, the user have to download
+files of harmonic constituents on the internet.
+For FES2004: not yet available'
+
+NOM = 'SYSTEME GEOGRAPHIQUE'
+NOM1 = 'GEOGRAPHIC SYSTEM'
+TYPE = ENTIER
+INDEX = 78
+MNEMO = 'GEOSYST'
+TAILLE = 0
+DEFAUT = -1 
+DEFAUT1 = -1 
+CHOIX=
+'-1="PAS DE VALEUR PAR DEFAUT. CHOISIR LE SYSTEME PARMI LES CHOIX POSSIBLES"';
+'0="DEFINI PAR L''UTILISATEUR"';
+'1="WGS84 LONGITUDE/LATITUDE EN DEGRES REELS"';
+'2="WGS84 NORD UTM"';
+'3="WGS84 SUD UTM"';
+'4="LAMBERT"';
+'5="MERCATOR POUR TELEMAC"'
+CHOIX1=
+'-1="NO DEFAULT VALUE. CHOOSE THE SYSTEM AMONG THE POSSIBLE CHOICES"';
+'0="DEFINED BY USER"';
+'1="WGS84 LONGITUDE/LATITUDE IN REAL DEGREES"';
+'2="WGS84 NORTHERN UTM"';
+'3="WGS84 SOUTHERN UTM"';
+'4="LAMBERT"';
+'5="MERCATOR FOR TELEMAC"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE = 'Systeme de coordonnees geographiques dans lequel est construit 
+le modele numerique. 
+Indiquer la zone correspondante avec le mot-cle '
+AIDE1 = 'Geographic coordinates system in which the numerical model is built.
+Indicate the corresponding zone with the keyword '
+
+NOM = 'NUMERO DE FUSEAU OU PROJECTION DANS LE SYSTEME GEOGRAPHIQUE'
+NOM1 = 'ZONE NUMBER IN GEOGRAPHIC SYSTEM'
+TYPE = ENTIER
+INDEX = 79
+MNEMO = 'NUMZONE'
+TAILLE = 0
+DEFAUT = -1 
+DEFAUT1 = -1 
+CHOIX=
+'-1="PAS DE VALEUR PAR DEFAUT. CHOISIR LE NUMERO PARMI LES CHOIX POSSIBLES"';
+'1="LAMBERT 1 NORD"';
+'2="LAMBERT 2 CENTRE"';
+'3="LAMBERT 3 SUD"';
+'4="LAMBERT 4 CORSE"';
+'22="LAMBERT 2 ETENDU"';
+'30="ZONE UTM, PAR EXEMPLE"'
+CHOIX1=
+'-1="NO DEFAULT VALUE. CHOOSE THE NUMBER AMONG THE POSSIBLE CHOICES"';
+'1="LAMBERT 1 NORTH"';
+'2="LAMBERT 2 CENTER"';
+'3="LAMBERT 3 SOUTH"';
+'4="LAMBERT 4 CORSICA"';
+'22="LAMBERT 2 EXTENDED"';
+'30="UTM ZONE, E.G."'
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE = 'Numero de zone (fuseau ou type de projection) 
+lors de l''utilisation d''une projection plane. 
+Indiquer le systeme geographique dans lequel est construit le modele numerique 
+avec le mot-cle SYSTEME GEOGRAPHIQUE'
+AIDE1 = 'Number of zone when using a plane projection. 
+Indicate the geographic system in which the numerical model is built 
+with the keyword GEOGRAPHIC SYSTEM'
+
+NOM = 'INTERPOLATION DE COMPOSANTES MINEURES'
+NOM1 = 'MINOR CONSTITUENTS INFERENCE'
+TYPE = LOGIQUE
+INDEX = 46
+MNEMO = 'INTMICON'
+TAILLE = 0
+DEFAUT = NON
+DEFAUT1 = NO
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 1
+AIDE  = 'Pour la base de donnees TPXO uniquement. 
+Interpolation de composantes harmoniques mineures 
+a partir de celles lues dans les fichiers d''entree 
+lies aux mots-cles BASE BINAIRE 1 DE DONNEES DE MAREE
+et BASE BINAIRE 2 DE DONNEES DE MAREE'
+AIDE1 = 'For TPXO tidal data base only. 
+Inference of minor constituents from the one read in input files 
+linked to keywords BINARY DATABASE 1 FOR TIDE 
+and BINARY DATABASE 2 FOR TIDE'
+
+NOM = 'LOI DE DEGRADATION DES TRACEURS'
+NOM1 = 'LAW OF TRACERS DEGRADATION'
+TYPE = ENTIER
+INDEX = 80
+MNEMO = 'LOITRAC'
+TAILLE = 2
+DEFAUT = 0;0
+DEFAUT1 = 0;0
+CHOIX=
+'0="PAS DE DEGRADATION"';
+'1="LOI EN F(T90)"'
+CHOIX1=
+'0="NO DEGRADATION"';
+'1="F(T90) LAW"'
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 1
+AIDE = 'Prise en compte d''une loi de decroissance des traceurs'
+AIDE1 = 'Take in account a law for tracers decrease'
+
+NOM = 'COEFFICIENT 1 DE LA LOI DE DEGRADATION DES TRACEURS'
+NOM1 = 'COEFFICIENT 1 FOR LAW OF TRACERS DEGRADATION'
+TYPE = REAL
+INDEX = 67
+MNEMO = 'COEF1TRAC'
+TAILLE = 2
+RUBRIQUE = 'EQUATIONS';'TRACEUR';'OPTIONS TRACEUR' 
+RUBRIQUE1 = 'EQUATIONS';'TRACER';'TRACER OPTIONS' 
+NIVEAU = 1
+AIDE = 'Coefficient 1 de la loi de decroissance des traceurs'
+AIDE1 = 'Coefficient 1 of law for tracers decrease'
+
+NOM = 'BRECHE' 
+NOM1 = 'BREACH' 
+TYPE = LOGIQUE 
+INDEX = 2 
+MNEMO = 'BRECHE' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS'
+NIVEAU = 1 
+AIDE = 'Prise en compte de breches dans le calcul par 
+modification altimetrique dans le maillage. La description 
+des breches se fait avec le fichier de donnees des breches.' 
+AIDE1 = 'Take in account some breaches during the computation
+by modifying the bottom level of the mesh. Brech description 
+is done with the breaches data file.' 
+NOM = 'FICHIER DE DONNEES DES BRECHES'
+NOM1 = 'BREACHES DATA FILE'
+TYPE = CARACTERE 
+INDEX = 91
+MNEMO = 'T2D_FILES(T2DBRC)%NAME' 
+SUBMIT = 'T2DBUS-READ-21;T2DBRC;FACUL;ASC;LIT;SCAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de description des breches' 
+AIDE1 = 'Description of breaches' 
+/ 
+/ VERSION 6.3
+/
+NOM = 'FICHIER DES FLOTTEURS'
+NOM1 = 'DROGUES FILE'
+TYPE = CARACTERE 
+INDEX = 92
+MNEMO = 'T2D_FILES(T2DFLO)%NAME' 
+SUBMIT = 'T2DFLO-WRITE-09;T2DFLO;FACUL;ASC;ECR;SCAL' 
+DEFAUT = ' ' 
+DEFAUT1 = ' ' 
+RUBRIQUE = 'ENTREES-SORTIES, FICHIERS';'NOMS' 
+RUBRIQUE1 = 'INPUT-OUTPUT, FILES';'NAMES' 
+NIVEAU = 1 
+AIDE = 'Fichier de resultat avec les positions des flotteurs' 
+AIDE1 = 'Results file with positions of drogues' 
+
+NOM = 'TYPE DE PROJECTION SPATIALE'
+NOM1 = 'SPATIAL PROJECTION TYPE'
+TYPE = ENTIER
+INDEX = 81
+MNEMO = 'PROTYP'
+TAILLE = 0
+DEFAUT = 1
+DEFAUT1 = 1
+CHOIX = '1="CARTESIEN, NON GEOREFERENCE"';
+        '2="MERCATOR"';
+        '3="LATITUDE LONGITUDE"'
+CHOIX1 = '1="CARTESIAN, NOT GEOREFERENCED"';
+         '2="MERCATOR"';
+         '3="LATITUDE LONGITUDE"'
+CONTROLE = 1 ; 3
+RUBRIQUE = 'EQUATIONS';'GENERAL'
+RUBRIQUE1 = 'EQUATIONS';'GENERAL'
+NIVEAU = 1
+AIDE = 'Option 2 ou 3 obligatoire pour les coordonnees spheriques'
+AIDE1 = 'Option 2 or 3 mandatory for spherical coordinates'
+
+NOM = 'MODELE DE TRANSPORT DES ALGUES' 
+NOM1 = 'ALGAE TRANSPORT MODEL' 
+TYPE = LOGIQUE 
+INDEX = 47 
+MNEMO = 'ALGAE' 
+TAILLE = 0 
+DEFAUT = NON 
+DEFAUT1 = NO 
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Si oui, les flotteurs seront des algues' 
+AIDE1 = 'If yes, the floats or particles will be algae' 
+
+NOM = 'DIAMETRE DES ALGUES'
+NOM1 = 'DIAMETRE OF ALGAE'
+TYPE = REAL
+INDEX = 68
+MNEMO = 'DALGAE'
+TAILLE = 0
+DEFAUT = 0.1
+DEFAUT1 = 0.1
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Diametre des algues en m'
+AIDE1 = 'Diametre of algae in m'
+
+NOM = 'MASSE VOLUMIQUE DES ALGUES'
+NOM1 = 'DENSITY OF ALGAE'
+TYPE = REAL
+INDEX = 69
+MNEMO = 'RALGAE'
+TAILLE = 0
+DEFAUT = 1050.
+DEFAUT1 = 1050.
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Masse volumique des algues en kg/m3'
+AIDE1 = 'Density of algae in kg/m3'
+
+NOM = 'EPAISSEUR DES ALGUES'
+NOM1 = 'THICKNESS OF ALGAE'
+TYPE = REAL
+INDEX = 70
+MNEMO = 'EALGAE'
+TAILLE = 0
+DEFAUT = 0.01
+DEFAUT1 = 0.01
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Epaisseur des algues en m'
+AIDE1 = 'Thickness of algae in m'
+
+NOM = 'TYPE DES ALGUES'
+NOM1 = 'ALGAE TYPE'
+TYPE = ENTIER
+INDEX = 82
+MNEMO = 'ALGTYP'
+TAILLE = 0
+DEFAUT = 1
+DEFAUT1 = 1
+CHOIX = '1="SPHERE"';
+        '2="IRIDAEA FLACCIDA (PROCHE DES ULVES)"';
+        '3="PELVETIOPSIS LIMITATA"';
+        '4="GIGARTINA LEPTORHYNCHOS"'
+CHOIX1= '1="SPHERE"';
+        '2="IRIDAEA FLACCIDA (CLOSE TO ULVA)"';
+        '3="PELVETIOPSIS LIMITATA"';
+        '4="GIGARTINA LEPTORHYNCHOS"'
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS' 
+NIVEAU = 2
+AIDE = 'Type des algues. Pour le choix 1 les algues seront 
+modelisees comme des spheres, pour les autres choix voir Gaylord 
+et al. (1994).'
+AIDE1 = 'Algae type. For choice 1 the algae particles will be 
+modeled as spheres, and for the other choices see Gaylord et
+al. (1994)'
+
+NOM = 'OPTION POUR LES CARACTERISTIQUES'
+NOM1 = 'OPTION FOR CHARACTERISTICS'
+TYPE = ENTIER
+INDEX = 83
+MNEMO = 'OPTCHA'
+TAILLE = 0
+DEFAUT = 1
+DEFAUT1 = 1
+CHOIX='1="fortes"';'2="faibles"'
+CHOIX1='1="strong"';'2="weak"'
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS' 
+NIVEAU = 2
+AIDE = '1: forme forte 2: forme faible'
+AIDE1 = '1: strong form 2: weak form'
+
+NOM = 'MAXIMUM D''ITERATIONS POUR LES SCHEMAS DE CONVECTION' 
+NOM1 = 'MAXIMUM NUMBER OF ITERATIONS FOR ADVECTION SCHEMES' 
+TYPE = ENTIER
+INDEX = 84
+MNEMO = 'MAXADV'
+TAILLE = 0
+DEFAUT = 10
+DEFAUT1 = 10
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Seulement pour schemes 13 et 14'
+AIDE1 = 'Only for schemes 13 and 14'
+
+NOM = 'MODELE DE DIFFUSION STOCHASTIQUE' 
+NOM1 = 'STOCHASTIC DIFFUSION MODEL' 
+TYPE = ENTIER
+INDEX = 85
+MNEMO = 'STOCHA'
+TAILLE = 0
+DEFAUT = 0
+DEFAUT1 = 0
+CHOIX='0="Pas de modele"';'1="??"';'2="??"'
+CHOIX1='0="No model"';'1="??"';'2="??"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Pour les particules : flotteurs, algues, hydrocarbures'
+AIDE1 = 'Meant for particles: drogues, algae, oil spills'
+
+NOM = 'NOMBRE DE POINTS DE GAUSS POUR LES CARACTERISTIQUES FAIBLES' 
+NOM1 = 'NUMBER OF GAUSS POINTS FOR WEAK CHARACTERISTICS' 
+TYPE = ENTIER
+INDEX = 86
+MNEMO = 'NGAUSS'
+TAILLE = 0
+DEFAUT = 3
+DEFAUT1 = 3
+CHOIX='1="1 point"';'3="3 points"';'6="6 points"'
+CHOIX1='1="1 point"';'3="3 points"';'6="6 points"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES'
+RUBRIQUE1 = 'NUMERICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Voir les release notes 6.3'
+AIDE1 = 'See release notes 6.3'
+
+NOM = 'MASS-LUMPING POUR LES CARACTERISTIQUES FAIBLES'
+NOM1 = 'MASS-LUMPING FOR WEAK CHARACTERISTICS'
+TYPE = REAL
+INDEX = 71
+MNEMO = 'AGGLOW'
+TAILLE = 0
+DEFAUT = 0.
+DEFAUT1 = 0.
+RUBRIQUE = 'PARAMETRES PHYSIQUES'
+RUBRIQUE1 = 'PHYSICAL PARAMETERS'
+NIVEAU = 2
+AIDE = 'Applique a la matrice de masse'
+AIDE1 = 'To be applied to the mass matrix'
+
+NOM = 'TYPE DES SEUILS'
+NOM1 = 'TYPE OF WEIRS'
+TYPE = ENTIER
+INDEX = 87
+MNEMO = 'TYPSEUIL'
+TAILLE = 1
+DEFAUT = 1
+DEFAUT1 = 1
+CHOIX=
+'1="HORIZONTAL AVEC MEME NOMBRE DE NOEUDS AMONT/AVAL (Solution historique avec bord)"';
+'2="GENERALE (Nouvelle solution avec pts sources)"'
+CHOIX1=
+'1="HORIZONTAL WITH SAME NUMBER OF NODES UPSTREAM/DOWNSTREAM (Historical solution with bord)"';
+'2="GENERAL (New solution with sources points)"'
+RUBRIQUE = 'PARAMETRES NUMERIQUES';'GENERAL' 
+RUBRIQUE1 = 'NUMERICAL PARAMETERS';'GENERAL' 
+NIVEAU = 1
+AIDE = 'Méthode de traitement des seuils'
+AIDE1 = 'Method for treatment of weirs'
+
+/ 
+/ POUR LES LANCEURS PERL : 
+/ 
+
+NOM = 'LISTE DES FICHIERS' 
+NOM1 = 'LIST OF FILES' 
+TYPE = CARACTERE 
+INDEX = 99 
+MNEMO = '' 
+TAILLE = 43
+DEFAUT = 'FICHIER DES PARAMETRES'; 
+         'DICTIONNAIRE'; 
+         'FICHIER FORTRAN'; 
+         'FICHIER DE GEOMETRIE'; 
+         'FICHIER DES CONDITIONS AUX LIMITES'; 
+         'FICHIER DES RESULTATS'; 
+         'FICHIER DU CALCUL PRECEDENT'; 
+         'FICHIER DES FONDS'; 
+         'FICHIER DE DONNEES BINAIRE 1'; 
+         'FICHIER DE DONNEES BINAIRE 2'; 
+         'FICHIER DE DONNEES FORMATE 1'; 
+         'FICHIER DE DONNEES FORMATE 2'; 
+         'FICHIER DE RESULTATS BINAIRE'; 
+         'FICHIER DE RESULTATS FORMATE'; 
+         'FICHIER DE REFERENCE'; 
+         'FICHIER DES FRONTIERES LIQUIDES'; 
+         'FICHIER DE DONNEES POUR LE FROTTEMENT'; 
+         'FICHIER DELWAQ DES VOLUMES'; 
+         'FICHIER DELWAQ DES SURFACES DE FLUX'; 
+         'FICHIER DELWAQ DES FLUX VERTICAUX'; 
+         'FICHIER DELWAQ DE LA SALINITE'; 
+         'FICHIER DELWAQ DES SURFACES DU FOND'; 
+         'FICHIER DELWAQ DES ECHANGES ENTRE NOEUDS'; 
+         'FICHIER DELWAQ DES DISTANCES ENTRE NOEUDS'; 
+         'FICHIER DELWAQ DE LA TEMPERATURE'; 
+         'FICHIER DELWAQ DE LA VITESSE'; 
+         'FICHIER DELWAQ DE LA DIFFUSION'; 
+         'FICHIER DE COMMANDE DELWAQ'; 
+         'FICHIER DES COURBES DE TARAGE'; 
+         'FICHIER DES SOURCES'; 
+         'FICHIER DES SECTIONS DE CONTROLE'; 
+         'FICHIER DE SORTIE DES SECTIONS DE CONTROLE'; 
+         'FICHIER DE COMMANDES HYDROCARBURES';
+         'FICHIER DES CONSTANTES HARMONIQUES';
+         'FICHIER DU MODELE DE MAREE';
+         'BASE ASCII DE DONNEES DE MAREE';
+         'BASE BINAIRE 1 DE DONNEES DE MAREE';
+         'BASE BINAIRE 2 DE DONNEES DE MAREE';
+         'FICHIER DE DONNEES DES SEUILS';
+         'FICHIER DE DONNEES DES SIPHONS';
+         'FICHIER DE DONNEES DES BUSES';
+         'FICHIER DE DONNEES DES BRECHES';
+         'FICHIER DES FLOTTEURS'
+DEFAUT1 ='STEERING FILE'; 
+         'DICTIONARY'; 
+         'FORTRAN FILE'; 
+         'GEOMETRY FILE'; 
+         'BOUNDARY CONDITIONS FILE'; 
+         'RESULTS FILE'; 
+         'PREVIOUS COMPUTATION FILE'; 
+         'BOTTOM TOPOGRAPHY FILE'; 
+         'BINARY DATA FILE 1'; 
+         'BINARY DATA FILE 2'; 
+         'FORMATTED DATA FILE 1'; 
+         'FORMATTED DATA FILE 2'; 
+         'BINARY RESULTS FILE'; 
+         'FORMATTED RESULTS FILE'; 
+         'REFERENCE FILE'; 
+         'LIQUID BOUNDARIES FILE'; 
+         'FRICTION DATA FILE'; 
+         'VOLUMES DELWAQ FILE'; 
+         'EXCHANGE AREAS DELWAQ FILE'; 
+         'VERTICAL FLUXES DELWAQ FILE'; 
+         'SALINITY DELWAQ FILE'; 
+         'VELOCITY DELWAQ FILE'; 
+         'DIFFUSIVITY DELWAQ FILE'; 
+         'BOTTOM SURFACES DELWAQ FILE'; 
+         'EXCHANGES BETWEEN NODES DELWAQ FILE'; 
+         'NODES DISTANCES DELWAQ FILE'; 
+         'TEMPERATURE DELWAQ FILE'; 
+         'DELWAQ STEERING FILE'; 
+         'STAGE-DISCHARGE CURVES FILE'; 
+         'SOURCES FILE'; 
+         'SECTIONS INPUT FILE'; 
+         'SECTIONS OUTPUT FILE'; 
+         'OILSPILL STEERING FILE';
+         'HARMONIC CONSTANTS FILE';
+         'TIDAL MODEL FILE';
+         'ASCII DATABASE FOR TIDE';
+         'BINARY DATABASE 1 FOR TIDE';
+         'BINARY DATABASE 2 FOR TIDE'; 
+         'WEIRS DATA FILE';
+         'CULVERT DATA FILE';
+         'TUBES DATA FILE';
+         'BREACHES DATA FILE';
+         'DROGUES FILE'
+RUBRIQUE  = 'FICHIERS' 
+RUBRIQUE1 = 'FILES' 
+NIVEAU = 1 
+AIDE = 'Noms des fichiers exploites par le code' 
+AIDE1= 'File names of the used files' 
+// 
+//----Librairies du code------------------------------------------- 
+// 
+//Conventions de notation : 
+//   VVV = version 
+//   MMM = mode (debug ou non) 
+//   PPP = plateforme 
+//   LLL = extension d'une librairie ("a" ou "lib") 
+//    |  = separateur dans un path (/ sous Unix, \ sous NT) 
+// 
+//    ex : "telemac2d|tel2d_VVV|PPP|telemac2dMMMVVV.LLL" 
+NOM = 'DESCRIPTION DES LIBRAIRIES' 
+NOM1 = 'DESCRIPTION OF LIBRARIES' 
+TYPE = CARACTERE 
+INDEX = 54 
+MNEMO = 'LINKLIBS' 
+TAILLE = 8
+DEFAUT = 'builds|PPP|lib|telemac2dMMMVVV.LLL'; 
+'builds|PPP|lib|sisypheMMMVVV.LLL'; 
+'builds|PPP|lib|tomawacMMMVVV.LLL'; 
+'builds|PPP|lib|dredgesimMMMVVV.LLL'; 
+'builds|PPP|lib|biefMMMVVV.LLL'; 
+'builds|PPP|lib|damoMMMVVV.LLL'; 
+'builds|PPP|lib|parallelMMMVVV.LLL'; 
+'builds|PPP|lib|specialMMMVVV.LLL' 
+DEFAUT1 = 'builds|PPP|lib|telemac2dMMMVVV.LLL';  
+'builds|PPP|lib|sisypheMMMVVV.LLL'; 
+'builds|PPP|lib|tomawacMMMVVV.LLL'; 
+'builds|PPP|lib|dredgesimMMMVVV.LLL';
+'builds|PPP|lib|biefMMMVVV.LLL'; 
+'builds|PPP|lib|damoMMMVVV.LLL'; 
+'builds|PPP|lib|parallelMMMVVV.LLL'; 
+'builds|PPP|lib|specialMMMVVV.LLL' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 1 
+AIDE  = 'Description des librairies de T2D' 
+AIDE1 = 'LIBRARIES description' 
+//----Executable par defaut du code--------------------------------- 
+// 
+//Conventions de notation : 
+//   VVV = version 
+//   MMM = mode (debug ou non) 
+//   PPP = plateforme 
+//    |  = separateur dans un path (/ sous Unix, \ sous NT) 
+// 
+//    ex : "telemac2d|tel2d_VVV|PPP|telemac2dMMMVVV.LLL" 
+NOM = 'EXECUTABLE PAR DEFAUT' 
+NOM1 = 'DEFAULT EXECUTABLE' 
+TYPE = CARACTERE 
+INDEX = 57 
+MNEMO = 'EXEDEF' 
+TAILLE = 1 
+DEFAUT = 'builds|PPP|bin|telemac2dMMMVVV.exe' 
+DEFAUT1 = 'builds|PPP|bin|telemac2dMMMVVV.exe' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 1 
+AIDE  = 'Executable par defaut de T2D' 
+AIDE1 = 'Default executable for T2D' 
+NOM = 'EXECUTABLE PARALLELE PAR DEFAUT' 
+NOM1 = 'DEFAULT PARALLEL EXECUTABLE' 
+TYPE = CARACTERE 
+INDEX = 58 
+MNEMO = 'EXEDEFPARA' 
+TAILLE = 1 
+DEFAUT = 'builds|PPP|bin|telemac2dMMMVVV.exe' 
+DEFAUT1 = 'builds|PPP|bin|telemac2dMMMVVV.exe' 
+RUBRIQUE = 'ENTREES-SORTIES, GENERALITES';'CALCUL' 
+RUBRIQUE1 = 'INPUT-OUTPUT, INFORMATION';'COMPUTATIONAL INFORMATION' 
+NIVEAU = 1 
+AIDE  = 'Executable parallele par defaut de T2D' 
+AIDE1 = 'Default parallel executable for T2D' 
+
diff --git a/ts/test_cata.py b/ts/test_cata.py
new file mode 100644 (file)
index 0000000..748fd68
--- /dev/null
@@ -0,0 +1,22 @@
+from Accas import *
+import types
+
+JdC = JDC_CATA (code = 'MAP',
+                execmodul = None,
+                )
+# ======================================================================
+# Catalog entry for the MAP function : c_pre_interfaceBody_mesh
+# ======================================================================
+INITIALIZATION=PROC(nom="INITIALIZATION",op=None,
+Control_Of_Limits = SIMP( statut='o',typ='bool',
+    defaut=False ,
+    fr = 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME SARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES',
+    ang= 'USE WITH THE KEY-WORD : LIMIT VALUES, THE PROGRAM IS STOPPED IF THE LIMITS ON U,V,H, OR T ARE TRESPASSED',
+     ),
+
+Limit_Values = SIMP( statut='o',typ='R',
+    defaut=(-1000.0, 9000.0, -1000.0, 1000.0, -1000.0, 1000.0, -1000.0, 1000.0) ,
+    max=8 ,
+    fr = 'Utilise avec le mot-cle CONTROLE DES LIMITES  valeurs mini et maxi acceptables pour H,U,V et T dans lordre suivant : min(H) max(H) min(U) max(U) min(V) max(V) min(T) max(T)',
+    ang= 'To be used with the key-word CONTROL OF LIMITS min and max acceptable values for H,U,V et T in the following order   : min(H) max(H) min(U) max(U) min(V) max(V) min(T) max(T)',
+     ) )
diff --git a/ts/test_dicoparser.py b/ts/test_dicoparser.py
new file mode 100644 (file)
index 0000000..c3ac9df
--- /dev/null
@@ -0,0 +1,140 @@
+
+import dicoparser
+import unittest
+
+class Test1( unittest.TestCase ):
+    def runTest(self):
+               d = dicoparser.DicoParser( '', '', '' )
+               t = d.parse_tokens( """
+  / comment
+  TYPE = LOGIQUE
+  INDEX = 23 
+  MNEMO = 'VERLIM'
+  MNEMO1 = ''
+  NOM = 'CONTROLE DES LIMITES'
+  RUBRIQUE1 = 'ENTREES-SORTIES, GENERALITES';'CONTROLE' 
+  CHOIX1 = '0="list of tests"';  
+  '1="gradient simple"'; 
+  '2="conj gradient"'; 
+  '3="Lagrange interp."'
+  AIDE = 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME 
+  S''ARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES' 
+  DEFAUT = -1000.;9000.;-1000. 
+""" )
+               self.assertEqual( len(t), 39 )
+               self.assertEqual( t[0], 'TYPE' )
+               self.assertEqual( t[1], '=' )
+               self.assertEqual( t[2], 'LOGIQUE' )
+               self.assertEqual( t[3], 'INDEX' )
+               self.assertEqual( t[4], '=' )
+               self.assertEqual( t[5], '23' )
+               self.assertEqual( t[6], 'MNEMO' )
+               self.assertEqual( t[7], '=' )
+               self.assertEqual( t[8], 'VERLIM' )
+               self.assertEqual( t[9], 'MNEMO1' )
+               self.assertEqual( t[10], '=' )
+               self.assertEqual( t[11], '' )
+               self.assertEqual( t[12], 'NOM' )
+               self.assertEqual( t[13], '=' )
+               self.assertEqual( t[14], 'CONTROLE DES LIMITES' )
+               self.assertEqual( t[15], 'RUBRIQUE1' )
+               self.assertEqual( t[16], '=' )
+               self.assertEqual( t[17], 'ENTREES-SORTIES, GENERALITES' )
+               self.assertEqual( t[18], ';' )
+               self.assertEqual( t[19], 'CONTROLE' )
+               self.assertEqual( t[20], 'CHOIX1' )
+               self.assertEqual( t[21], '=' )
+               self.assertEqual( t[22], '0="list of tests"' )
+               self.assertEqual( t[23], ';' )
+               self.assertEqual( t[24], '1="gradient simple"' )
+               self.assertEqual( t[25], ';' )
+               self.assertEqual( t[26], '2="conj gradient"' )
+               self.assertEqual( t[27], ';' )
+               self.assertEqual( t[28], '3="Lagrange interp."' )
+               self.assertEqual( t[29], 'AIDE' )
+               self.assertEqual( t[30], '=' )
+               self.assertEqual( t[31], 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME S\'ARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES' )
+               self.assertEqual( t[32], 'DEFAUT' )
+               self.assertEqual( t[33], '=' )
+               self.assertEqual( t[34], '-1000.' )
+               self.assertEqual( t[35], ';' )
+               self.assertEqual( t[36], '9000.' )
+               self.assertEqual( t[37], ';' )
+               self.assertEqual( t[38], '-1000.' )
+               
+               d.expand_values( t )
+               self.assertEqual( t[24], ( '1', 'gradient simple' ) )
+               self.assertEqual( t[26], ( '2', 'conj gradient' ) )
+               self.assertEqual( t[28], ( '3', 'Lagrange interp.' ) )
+               
+               lst = d.convert_to_tuples( t )
+               self.assertEqual( len(lst), 9 )
+               self.assertEqual( lst[0], ( 'TYPE', 'LOGIQUE' ) )
+               self.assertEqual( lst[1], ( 'INDEX', '23' ) )
+               self.assertEqual( lst[2], ( 'MNEMO', 'VERLIM' ) )
+               self.assertEqual( lst[3], ( 'MNEMO1', '' ) )
+               self.assertEqual( lst[4], ( 'NOM', 'CONTROLE DES LIMITES' ) )
+               self.assertEqual( lst[5], ( 'RUBRIQUE1', ['ENTREES-SORTIES, GENERALITES', 'CONTROLE'] ) )
+               self.assertEqual( lst[6], ( 'CHOIX1', [('0','list of tests'), ('1','gradient simple'), ('2','conj gradient'), ('3','Lagrange interp.') ] ) )
+               self.assertEqual( lst[7], ( 'AIDE', 'UTILISER AVEC LE MOT-CLE : VALEURS LIMITES, LE PROGRAMME S\'ARRETE SI LES LIMITES SUR U,V,H OU T SONT DEPASSEES' ) )
+               self.assertEqual( lst[8], ( 'DEFAUT', ['-1000.', '9000.', '-1000.' ] ) )
+
+class Test2( unittest.TestCase ):
+    def runTest(self):
+               d = dicoparser.DicoParser( '', '', '' )
+               self.assertEqual( d.are_equal( 'WIND IN SUMMER', 'Wind_In_Summer' ), True )
+               self.assertEqual( d.are_equal( 'HELLO', 'Bonjour' ), False )
+               self.assertEqual( d.are_equal( 'MAXIMUM NUMBER OF ITERATIONS FOR SOLVER', 'Maximum_Number_Of_Iterations_For_Solver' ), True )
+               #self.assertEqual( d.are_equal( 'WIND IN SUMMER', 'Wind' ), True ) #TODO: check the specification about this issue
+
+class Test3( unittest.TestCase ):
+    def runTest(self):
+               d = dicoparser.DicoParser( 'test', 'NOM', 'NOM1' )
+               #print d.data.keys()
+               #for aKey, aValue in d.data['TYPE OF ADVECTION'].iteritems():
+               #       print aKey, aValue 
+               
+               self.assertEqual( d.data['TYPE OF ADVECTION'].keys(), ['AIDE', 'NOM', 'DEFAUT1', 'INDEX', 'NIVEAU', 'TAILLE', 'CHOIX1', 'RUBRIQUE1', 'MNEMO', 'NOM1', 'AIDE1', 'COMPORT', 'DEFAUT', 'CHOIX', 'RUBRIQUE', 'TYPE' ] )
+               self.assertEqual( d.translate( 'Control_Of_Limits', 'NOM' ), 'Controle Des Limites' )
+               self.assertEqual( d.translate( 'Type_Of_Advection', 'NOM' ), 'Forme De La Convection' )
+               self.assertEqual( d.translate( 'Type_Of_Advection', '', 'Characteristics', 'CHOIX1', 'CHOIX' ), 'Caracteristiques' )
+
+class Test4( unittest.TestCase ):
+    def runTest(self):
+               d = dicoparser.DicoParser( 'telemac2dv6p3.dico', 'NOM', 'NOM1' )
+               self.assertEqual( d.translate( 'Reference_File_Format', 'NOM' ), 'Format Du Fichier De Reference' )
+               self.assertEqual( d.translate( 'Reference_File_Format', '', 'Serafin', 'CHOIX1', 'CHOIX' ), 'Serafin' )
+               self.assertEqual( d.translate( 'Reference_File_Format', '', 'Serafin', 'DEFAUT1', 'DEFAUT' ), 'Serafin' )
+               self.assertEqual( d.translate( 'Destination', '', 'CHE43A', 'DEFAUT1', 'DEFAUT' ), 'Che43a' )
+               self.assertEqual( d.translate( 'Destination', '', 0.0, 'DEFAUT1', 'DEFAUT' ), '' )
+               self.assertEqual( d.translate( 'Destination', '', (1,2,3), 'DEFAUT1', 'DEFAUT' ), '' )
+
+class Test5( unittest.TestCase ):
+    def runTest(self):
+               d = dicoparser.DicoParser( '', '', '' )
+               t = d.parse_tokens( """
+CHOIX = '" "="pas de biliotheque"';
+'"$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a"="bibliotheque PVM1"' 
+""" )
+               self.assertEqual( len(t), 5 )
+               self.assertEqual( t[0], 'CHOIX' )
+               self.assertEqual( t[1], '=' )
+               self.assertEqual( t[2], '" "="pas de biliotheque"' )
+               self.assertEqual( t[3], ';' )
+               self.assertEqual( t[4], '"$PVM_ROOT/lib/$PVM_ARCH/libpvm3.a"="bibliotheque PVM1"' )
+
+
+t1 = Test1()
+t1.runTest()
+
+t2 = Test2()
+t2.runTest()
+
+t3 = Test3()
+t3.runTest()
+
+t4 = Test4()
+t4.runTest()
+
+t5 = Test5()
+t5.runTest()
diff --git a/ts/test_translator.py b/ts/test_translator.py
new file mode 100755 (executable)
index 0000000..6f0a7e2
--- /dev/null
@@ -0,0 +1,16 @@
+
+from translator import *
+import unittest
+
+class Test1( unittest.TestCase ):
+    def runTest(self):
+               self.assertEqual( normalize( 'a_b' ), 'a__b' )
+               self.assertEqual( normalize( 'a b' ), 'a b'  )
+               self.assertEqual( normalize( 'a__b' ), 'a____b' )
+
+t1 = Test1()
+t1.runTest()
+
+#translate( 'telemac2dv6p3', 'test_cata', 'test' )
+#translate( 'telemac2dv6p3', 'Telemac_Cata_nouveau', 'test' )
+translate( 'telemac2dv6p3', 'Telemac_Cata', 'main', 'not_translated.txt' )
diff --git a/ts/translator.py b/ts/translator.py
new file mode 100755 (executable)
index 0000000..9ebca3a
--- /dev/null
@@ -0,0 +1,87 @@
+
+import copy
+from tsparser import *
+from Accas import *
+from Noyau import *
+from dicoparser import *
+
+def normalize( theTranslation ):
+       if '_' in theTranslation:
+               return '__'.join( theTranslation.split( '_' ) )
+       else:
+               return theTranslation
+
+def translate( theDicoFile, theCataFile, theTSFile, theNotTranslatedFile = '' ):
+       
+       SPECIAL = ['into', 'defaut']
+       DICO = DicoParser( theDicoFile, 'NOM', 'NOM1' )
+       PARSER = TSParser()
+       
+       def is_ok( theName, theObject ):
+               ok = isinstance( theObject, N_ENTITE.ENTITE ) or theName in SPECIAL
+               return ok
+
+       def name_to_attr( theName ):
+               if theName=='into':
+                       return 'CHOIX'
+               else:
+                       return theName.upper()
+               
+       def dico_tr( theObject, theName, theParentObj, theParentName ):
+               #print "dicotr:", theObject, theName, theParentObj, theParentName
+               aTrans = ''
+               if theName in SPECIAL:
+                       if theObject!=None:
+                               #print theName, theObject
+                               anAttrTr = name_to_attr( theName )
+                               anAttr = anAttrTr + '1'
+                               if isinstance( theObject, basestring ):
+                                       #print theParentName, theName, theObject, '=>',
+                                       aTrans = DICO.translate( theParentName, '', theObject, anAttr, anAttrTr )
+                                       #print aTrans
+                               elif isinstance( theObject, tuple ):
+                                       #print theParentName, theName
+                                       for anItem in theObject:
+                                               #print anItem
+                                               if isinstance( anItem, basestring ) and '=' in anItem:
+                                                       aList = DICO.convert_to_tuples( DICO.parse_tokens( anItem ) )
+                                                       #print "   ", aList
+                                                       for aListItem in aList:
+                                                               if isinstance( aListItem, tuple ):
+                                                                       aKey, aValue = aListItem
+                                                                       #print "     ", aValue, '=>', 
+                                                                       aTrans = DICO.translate( theParentName, '', aValue, anAttr, anAttrTr )
+                                                                       #print aTrans
+                                       #print
+                                       pass
+                                       
+               else:
+                       #print theName, '=>',
+                       aTrans = DICO.translate( theName, 'NOM' )
+                       #print aTrans
+                       
+               aTrans = normalize( aTrans )
+               return '', aTrans
+
+       def sub( theObject ):
+               aDict = {}
+               if hasattr( theObject, 'entites' ):
+                       aDict = copy.copy( theObject.entites );
+               for s in SPECIAL:
+                       if hasattr( theObject, s ):
+                               aDict[s] = getattr( theObject, s )
+               return aDict
+       
+       PARSER.check_object = is_ok
+       PARSER.translation = dico_tr
+       PARSER.sub_objects = sub
+       PARSER.parse( theCataFile, theTSFile )
+       
+       if len( theNotTranslatedFile ) > 0:
+               PARSER.saveNotTranslated( theNotTranslatedFile )
+       
+       #print
+       #print "Translations:"
+       #for key, value in p.data[''].iteritems():
+       #       print key, "=>", value
+
diff --git a/ts/tsparser.py b/ts/tsparser.py
new file mode 100644 (file)
index 0000000..b7f6e8f
--- /dev/null
@@ -0,0 +1,123 @@
+
+import os.path
+from xml.etree import ElementTree as ET
+from xml.etree.ElementTree import *
+from xml.dom import minidom
+
+def get_file_name( theScript, theFileName, theExtension ):
+       anExt = '.'+theExtension
+       if theFileName=='':
+               return theScript+anExt
+       if theFileName.lower().endswith( anExt ):
+               return theFileName
+       else:
+               return theFileName + anExt
+
+class TSParser:
+       def __init__( self ):
+               self.data = {}
+               self.check_object = None # the function to check if the object is suitable for translation
+               self.translation  = None # the function to translate the object's name
+               self.sub_objects  = None # the function to get sub-objects of the given object
+               self.not_translated = {}
+               
+       def add( self, theContext, theSource, theTranslation ):
+               if len(theSource)==0 or len(theTranslation)==0:
+                       return
+               if not theContext in self.data:
+                       self.data[theContext] = {}
+               self.data[theContext][theSource] = theTranslation
+
+       def saveXML( self, theFileName, theEncoding, theDocType, theRootElem ):
+               aRoughRepr = ET.tostring( theRootElem, theEncoding )
+               aDoc = minidom.parseString( aRoughRepr )
+               aDocType = minidom.getDOMImplementation( '' ).createDocumentType( theDocType, '', '' )
+               aDoc.insertBefore( aDocType, aDoc.documentElement )
+               anXmlRepr = aDoc.toprettyxml( indent='  ' )
+               anXmlLines = anXmlRepr.split( '\n' )[1:]
+               anXmlRepr = '\n'.join( anXmlLines )
+               #print anXmlRepr
+               aFile = open( theFileName, 'w' )
+               aFile.write( anXmlRepr )
+               aFile.close()
+
+       def load( self, theFileName ):
+               if not os.path.isfile( theFileName ):
+                       return
+                       
+               aTree = ET.parse( theFileName )
+               aRoot = aTree.getroot()
+               for aContextElem in aRoot:
+                       aContext = aContextElem[0].text;
+                       if not aContext:
+                               aContext = ''
+                       #print aContext
+                       for aMessageElem in aContextElem[1:]:
+                               aSource = aMessageElem[0].text.strip()
+                               aTranslation = aMessageElem[1].text.strip()
+                               #print aSource
+                               #print aTranslation
+                               self.add( aContext, aSource, aTranslation )
+               
+       def save( self, theFileName ):
+               aRoot = Element( 'TS' )
+               for aContext, aData in self.data.iteritems():
+                       aContextElem = SubElement( aRoot, 'context' )
+                       aName = SubElement( aContextElem, 'name' )
+                       aName.text = aContext
+                       for aSource, aTranslation in aData.iteritems():
+                               aMessage = SubElement( aContextElem, 'message' )
+                               aSourceElem = SubElement( aMessage, 'source' )
+                               aSourceElem.text = aSource
+                               aTranslationElem = SubElement( aMessage, 'translation' )
+                               aTranslationElem.text = aTranslation
+               
+               self.saveXML( theFileName, 'utf-8', 'TS', aRoot )
+
+       def isOK( self, theName, theObject ):
+               if theName.startswith( '__' ):
+                       return False
+               if self.check_object:
+                       return self.check_object( theName, theObject )
+               return True
+               
+       def parse( self, theScript, theFileName = '' ):
+               self.data = {}
+               aFileName = get_file_name( theScript, theFileName, 'ts' )
+               self.load( aFileName )
+               aModule = __import__( theScript )
+               self.parseObjects( aModule.__dict__, None, '' )
+               self.save( aFileName )
+               
+       def parseObjects( self, theDict, theParentObj, theParentName ):
+               
+               for aName, anObject in theDict.iteritems():
+                       
+                       if not self.isOK( aName, anObject ):
+                               continue
+                               
+                       if self.translation:
+                               aContext, aTranslation = self.translation( anObject, aName, theParentObj, theParentName )
+                       else:
+                               aContext = ''
+                               aTranslation = aName
+                               
+                       #print "Found:", aName
+                       if len( aTranslation ) > 0:
+                               self.add( aContext, aName, aTranslation )
+                       elif self.isOK( '', anObject ) and len( aName ) > 0:
+                               #print anObject, aName
+                               self.not_translated[aName] = ''
+                               
+                       aSubObjects = {}
+                       if self.sub_objects:
+                               aSubObjects = self.sub_objects( anObject )
+                       self.parseObjects( aSubObjects, anObject, aName )
+
+       def saveNotTranslated( self, theFileName ):
+               aFile = open( theFileName, 'w' )
+               aNotTranslated = self.not_translated.keys()
+               aNotTranslated.sort()
+               for aKey in aNotTranslated:
+                       aFile.write( aKey + '\n' )
+               aFile.close()