]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
CCAR: mise a niveau catalogue avec version stabilisee Aster 8.2
authorChristian Caremoli <>
Fri, 19 May 2006 15:25:45 +0000 (15:25 +0000)
committerChristian Caremoli <>
Fri, 19 May 2006 15:25:45 +0000 (15:25 +0000)
19 files changed:
Aster/Cata/cataSTA81/Macro/calc_fonction_ops.py
Aster/Cata/cataSTA81/Macro/calc_table_ops.py
Aster/Cata/cataSTA81/Macro/gene_vari_alea_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA81/Macro/impr_fonction_ops.py
Aster/Cata/cataSTA81/Macro/impr_table_ops.py
Aster/Cata/cataSTA81/Macro/info_fonction_ops.py
Aster/Cata/cataSTA81/Macro/lire_inte_spec_ops.py
Aster/Cata/cataSTA81/Macro/lire_table_ops.py
Aster/Cata/cataSTA81/Macro/macr_ascouf_calc_ops.py
Aster/Cata/cataSTA81/Macro/macr_aspic_calc_ops.py
Aster/Cata/cataSTA81/Macro/macr_cara_poutre_ops.py
Aster/Cata/cataSTA81/Macro/macr_lign_coupe_ops.py
Aster/Cata/cataSTA81/Macro/macro_matr_asse_ops.py
Aster/Cata/cataSTA81/Macro/macro_miss_3d_ops.py
Aster/Cata/cataSTA81/Macro/post_k1_k2_k3_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA81/Macro/reca_algo.py
Aster/Cata/cataSTA81/Macro/stanley_ops.py
Aster/Cata/cataSTA81/Macro/test_fichier_ops.py
Aster/Cata/cataSTA81/cata.py

index 4169d1a64a5d41924491a4d84ce00cbca7e9a02e..a541180fca87b1633af2430e053f2e9b7f3d0e05 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF calc_fonction_ops Macro  DATE 19/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF calc_fonction_ops Macro  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -28,7 +28,7 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP,
                       ENVELOPPE,ASSE,CORR_ACCE,PUISSANCE,INVERSE,
                       NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE,
                       PROL_GAUCHE,NOM_PARA_FONC,INTERPOL_FONC,PROL_DROITE_FONC,
-                      PROL_GAUCHE_FONC,**args):
+                      PROL_GAUCHE_FONC,INFO,**args):
   """
      Ecriture de la macro CALC_FONCTION
   """
@@ -49,6 +49,7 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP,
   
   ### On importe les definitions des commandes a utiliser dans la macro
   DEFI_FONCTION  = self.get_cmd('DEFI_FONCTION')
+  IMPR_FONCTION  = self.get_cmd('IMPR_FONCTION')
   DEFI_NAPPE     = self.get_cmd('DEFI_NAPPE')
   
   ### Comptage commandes + déclaration concept sortant
@@ -324,5 +325,9 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP,
      if NOM_PARA_FONC !=None : para['NOM_PARA_FONC']   =INTERPOL
      if INTERPOL_FONC !=None : para['INTERPOL']   =INTERPOL
      C_out=DEFI_NAPPE(PARA=__ex.vale_para.tolist(),DEFI_FONCTION=def_fonc,**para)
+  if INFO > 1:
+     IMPR_FONCTION(FORMAT='TABLEAU',
+                   UNITE=6,
+                   COURBE=_F(FONCTION=C_out),)
   return ier
 
index 0360d14f646670939fdc678d293c482041e711d5..cd62da2398ed6bf6a4907c73940460cac67defc8 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF calc_table_ops Macro  DATE 14/11/2005   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF calc_table_ops Macro  DATE 10/04/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -22,8 +22,7 @@
 from types import *
 EnumTypes = (ListType, TupleType)
 
-def calc_table_ops(self, TABLE, FILTRE, EXTR, RENOMME, TRI, COMB, OPER,
-                   INFO, **args):
+def calc_table_ops(self, TABLE, ACTION, INFO, **args):
    """
    Macro CALC_TABLE permettant de faire des opérations sur une table
    """
@@ -31,9 +30,11 @@ def calc_table_ops(self, TABLE, FILTRE, EXTR, RENOMME, TRI, COMB, OPER,
 
    macro = 'CALC_TABLE'
    from Accas               import _F
+   from Cata.cata import table_jeveux
    from Utilitai.Utmess     import UTMESS
    from Utilitai            import transpose
    from Utilitai.Table      import Table, merge
+   from Utilitai.Sensibilite import NomCompose
 
    ier = 0
    # La macro compte pour 1 dans la numerotation des commandes
@@ -47,105 +48,90 @@ def calc_table_ops(self, TABLE, FILTRE, EXTR, RENOMME, TRI, COMB, OPER,
    CREA_TABLE    = self.get_cmd('CREA_TABLE')
    DETRUIRE      = self.get_cmd('DETRUIRE')
 
-   tab = TABLE.EXTR_TABLE()
+   # 0. faut-il utiliser une table dérivée
+   form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)'
+   if args['SENSIBILITE']:
+      ncomp = NomCompose(TABLE, args['SENSIBILITE'], msg='F')
+      sdtab = table_jeveux(ncomp)
+      tab = sdtab.EXTR_TABLE()
+   else:
+      tab = TABLE.EXTR_TABLE()
 
    #----------------------------------------------
-   # 1. Traitement du FILTRE
-   Filtre = []
-   # format pour l'impression des filtres
-   form_filtre = '\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s'
-   if FILTRE != None:
-      for Fi in FILTRE:
-         dF = Fi.cree_dict_valeurs(Fi.mc_liste)
-         for mc in dF.keys():
-            if dF[mc] == None:
-               del dF[mc]
-         Filtre.append(dF)
-
-   for Fi in Filtre:
-      col = getattr(tab, Fi['NOM_PARA'])
-      # peu importe le type
-      opts = [Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)]
-      kargs = {}
-      for k in ('CRITERE','PRECISION'):
-         if Fi.has_key(k):
-            kargs[k] = Fi[k]
-      tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) )
-      # trace l'operation dans le titre
-      #if FORMAT in ('TABLEAU','ASTER'):
-      tab.titr += form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \
-         ' '.join([str(v) for v in opts]))
-
-   #----------------------------------------------
-   # 2. Traitement de EXTR
-   if EXTR != None:
-      lpar = EXTR['NOM_PARA']
-      if not type(lpar) in EnumTypes:
-         lpar = [lpar]
-      for p in lpar:
-         if not p in tab.para:
-            UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom))
-      tab = tab[EXTR['NOM_PARA']]
-
-   #----------------------------------------------
-   # 3. Traitement de RENOMME
-   if RENOMME != None:
-      for MCFi in RENOMME:
-         try:
-            tab.Renomme(*MCFi['NOM_PARA'])
-         except KeyError, msg:
-            UTMESS('F', macro, msg)
-
-   #----------------------------------------------
-   # 4. Traitement du TRI
-   if TRI != None:
-      tab.sort(CLES=TRI['NOM_PARA'], ORDRE=TRI['ORDRE'])
-
-   #----------------------------------------------
-   # 5. Traitement de COMB
-   if COMB != None:
-      tab2 = COMB['TABLE'].EXTR_TABLE()
-      opts = [tab, tab2]
-      if COMB['NOM_PARA']<>None:
-         lpar = COMB['NOM_PARA']
+   # Boucle sur les actions à effectuer
+   for fOP in ACTION:
+      occ = fOP.cree_dict_valeurs(fOP.mc_liste)
+      for mc, val in occ.items():
+         if val == None:
+            del occ[mc]
+   
+      #----------------------------------------------
+      # 1. Traitement du FILTRE
+      # format pour l'impression des filtres
+      form_filtre = '\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s'
+      if occ['OPERATION'] == 'FILTRE':
+         col = getattr(tab, occ['NOM_PARA'])
+         # peu importe le type, c'est la meme méthode d'appel
+         opts = [occ[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if occ.has_key(k)]
+         kargs = {}
+         for k in ('CRITERE','PRECISION'):
+            if occ.has_key(k):
+               kargs[k] = occ[k]
+         tab = tab & ( getattr(col, occ['CRIT_COMP'])(*opts,**kargs) )
+         # trace l'operation dans le titre
+         #if FORMAT in ('TABLEAU','ASTER'):
+         tab.titr += form_filtre % (occ['NOM_PARA'], occ['CRIT_COMP'], \
+            ' '.join([str(v) for v in opts]))
+
+      #----------------------------------------------
+      # 2. Traitement de EXTR
+      if occ['OPERATION'] == 'EXTR':
+         lpar = occ['NOM_PARA']
          if not type(lpar) in EnumTypes:
             lpar = [lpar]
          for p in lpar:
             if not p in tab.para:
                UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom))
-            if not p in tab2.para:
-               UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, COMB['TABLE'].nom))
-         opts.append(lpar)
-      tab = merge(*opts)
+         tab = tab[occ['NOM_PARA']]
 
-   #----------------------------------------------
-   # 6. Traitement de OPER
-   if OPER != None:
-      for MCFi in OPER:
-         if MCFi['NOM_PARA'] in tab.para :
-            UTMESS('F', macro, 'Le paramètre %s existe déjà dans la table %s' % (MCFi['NOM_PARA'], TABLE.nom))
-         func = MCFi['FORMULE']
-         tabpar = []
-         for para in func.nompar :
-            if para not in tab.para :
-               UTMESS('F', macro, 'Le paramètre de la formule %s est inexistant dans la table %s' % (para, TABLE.nom))
-#             i = tab.para.index(para)
-#             if tab.type[i] != 'R' :
-#                UTMESS('F', macro, 'Le paramètre %s doit etre réel dans la table %s' % (para, TABLE.nom))
-            vals = getattr(tab,para).values()
-            tabpar.append(vals)
-         tabpar = transpose.transpose(tabpar)
-         vectval = []
-         for lpar in tabpar:
-            # si un paramètre est absent, on ne peut pas évaluer la formule
-            if None in lpar:
-               vectval.append(None)
-            else:
-               vectval.append(func(*lpar))
+      #----------------------------------------------
+      # 3. Traitement de RENOMME
+      if occ['OPERATION'] == 'RENOMME':
+         try:
+            tab.Renomme(*occ['NOM_PARA'])
+         except KeyError, msg:
+            UTMESS('F', macro, msg)
+
+      #----------------------------------------------
+      # 4. Traitement du TRI
+      if occ['OPERATION'] == 'TRI':
+         tab.sort(CLES=occ['NOM_PARA'], ORDRE=occ['ORDRE'])
+   
+      #----------------------------------------------
+      # 5. Traitement de COMB
+      if occ['OPERATION'] == 'COMB':
+         tab2 = occ['TABLE'].EXTR_TABLE()
+         opts = [tab, tab2]
+         if occ['NOM_PARA']<>None:
+            lpar = occ['NOM_PARA']
+            if not type(lpar) in EnumTypes:
+               lpar = [lpar]
+            for p in lpar:
+               if not p in tab.para:
+                  UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom))
+               if not p in tab2.para:
+                  UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, occ['TABLE'].nom))
+            opts.append(lpar)
+         tab = merge(*opts)
+   
+      #----------------------------------------------
+      # 6. Traitement de OPER
+      if occ['OPERATION'] == 'OPER':
          # ajout de la colonne dans la table
+         tab.fromfunction(occ['NOM_PARA'], occ['FORMULE'])
          if INFO == 2:
-            aster.affiche('MESSAGE', 'Ajout de la colonne %s : %s' % (MCFi['NOM_PARA']+repr(vectval))+'\n')
-         tab[MCFi['NOM_PARA']] = vectval
+            vectval = getattr(tab, occ['NOM_PARA']).values()
+            aster.affiche('MESSAGE', 'Ajout de la colonne %s : %s' % (occ['NOM_PARA']+repr(vectval))+'\n')
 
    #----------------------------------------------
    # 99. Création de la table_sdaster résultat
@@ -171,7 +157,6 @@ def calc_table_ops(self, TABLE, FILTRE, EXTR, RENOMME, TRI, COMB, OPER,
          tit = [tit]
       dprod['TITRE'] = tuple(['%-80s' % lig for lig in tit])
    # type de la table de sortie à passer à CREA_TABLE
-   dprod['TYPE_TABLE'] = self.sd.__class__.__name__.upper()
    tabout = CREA_TABLE(**dprod)
    
    return ier
diff --git a/Aster/Cata/cataSTA81/Macro/gene_vari_alea_ops.py b/Aster/Cata/cataSTA81/Macro/gene_vari_alea_ops.py
new file mode 100644 (file)
index 0000000..829a93e
--- /dev/null
@@ -0,0 +1,109 @@
+#@ MODIF gene_vari_alea_ops Macro  DATE 28/02/2006   AUTEUR VABHHTS J.PELLET 
+# -*- coding: iso-8859-1 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+from math import sqrt,log,exp,pi,atan2,tan
+
+def gene_vari_alea_ops(self,**args):
+  self.set_icmd(1)
+  return 0
+
+def gene_vari_alea_init(self,d):
+  from Utilitai.Utmess import UTMESS
+  a     =self.etape['BORNE_INF']
+  moyen =self.etape['VALE_MOY' ]
+  TYPE  =self.etape['TYPE']
+  if self['INIT_ALEA']!=None :
+     jump =self.etape['INIT_ALEA' ]
+     self.iniran(jump)
+  if   TYPE=='EXP_TRONQUEE' :
+     b     =self.etape['BORNE_SUP']
+     if (a>=b) :
+         message=' : il faut BORNE_INF < BORNE_SUP \n'
+         message=message+'  BORNE_INF = '+str(a)+'\n'
+         message=message+'  BORNE_SUP = '+str(b)+'\n'
+         UTMESS('F','GENE_VARI_ALEA',message)
+     elif (moyen<=a)or(moyen>=b) :
+         message=' : VALE_MOY trop grand ou trop petit\n'
+         message=message+'  BORNE_INF = '+str(a)+'\n'
+         message=message+'  VALE_MOY  = '+str(moyen)+'\n'
+         message=message+'  BORNE_SUP = '+str(b)+'\n'
+         UTMESS('F','GENE_VARI_ALEA',message)
+     k=1./(moyen-a)
+     if (exp(-b*k)<1.E-12) :
+         message=' : BORNE SUP très grande \n'
+         message=message+'pb précision possible, vérifiez'+'\n'
+         message=message+'la distribution des valeurs générées \n'
+         UTMESS('F','GENE_VARI_ALEA',message)
+     # résolution par point fixe
+     eps   =1.E-4
+     nitmax=100000
+     test  =0.
+     while abs((test-k)/k)>eps :
+         test = k
+         k    = 1./(moyen-(a*exp(-a*k) - b*exp(-b*k))/(exp(-a*k) - exp(-b*k)))
+     # génération de la variable aléatoire
+     alpha = exp(-a*k) - exp(-b*k)
+     self.sd.valeur=-( log(exp(-a*k)-alpha*self.getran()[0] ) ) /k
+  elif TYPE=='EXPONENTIELLE' :
+     if (moyen<=a) :
+        message=' : on doit avoir : VALE_MOY > BORNE_INF \n'
+        message=message+'  VALE_MOY  = '+str(moyen)+'\n'
+        message=message+'  BORNE_INF = '+str(a)+'\n'
+        UTMESS('F','GENE_VARI_ALEA',message)
+     v = moyen-a
+     u=self.getran()[0]
+     x = -log(1-u)
+     self.sd.valeur=a + v*x
+  elif TYPE=='GAMMA'         :
+     delta =self.etape['COEF_VAR' ]
+     if (moyen<=a) :
+        message=' : on doit avoir : VALE_MOY > BORNE_INF \n'
+        message=message+'  VALE_MOY  = '+str(moyen)+'\n'
+        message=message+'  BORNE_INF = '+str(a)+'\n'
+        UTMESS('F','GENE_VARI_ALEA',message)
+     v = moyen-a
+     alpha = 1./(delta**2)
+     if (alpha<=1.) :
+        message=' : erreur : ALPHA < 1\n'
+        UTMESS('F','GENE_VARI_ALEA',message)
+     gamma2 = alpha-1.
+     gamm1  = 1./gamma2
+     beta   = sqrt(2.*alpha-1.)
+     beta2  = 1./(beta**2)
+     f0     = 0.5+(1./pi)*atan2(-gamma2/beta,1.)
+     c1     = 1.-f0
+     c2     = f0-0.5
+     vref   = 0.
+     vv     = -1.
+#
+     while (-vv>vref) :
+        u=self.getran()[0]
+        gamdev = beta*tan(pi*(u*c1+c2))+gamma2
+        unif=self.getran()[0]
+        if unif<0. :
+           message=' : erreur : unif < 0\n'
+           UTMESS('F','GENE_VARI_ALEA',message)
+        vv= -log(unif)
+        vref = log(1+beta2*((gamdev-gamma2)**2))+gamma2*log(gamdev*gamm1)-gamdev+gamma2
+#
+     if vv<=0. :
+        message=' : erreur : GAMDEV(ALPHA) < 0\n'
+        UTMESS('F','GENE_VARI_ALEA',message)
+     self.sd.valeur = a + v*(delta**2)*gamdev
index a05fff1cab0929c6e90940af5594a72063ba0bd0..dd50f8ebb269309a99a984d3253ff6c85da1b7e5 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF impr_fonction_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF impr_fonction_ops Macro  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -33,6 +33,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
    import pprint
    import aster
    from Accas               import _F
+   from Cata.cata           import nappe_sdaster, fonction_c
    from Utilitai            import Graph
    from Utilitai.Utmess     import UTMESS
    from Utilitai.UniteAster import UniteAster
@@ -54,11 +55,11 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
 
    # 0.1. Fichier
    nomfich=None
-   if args['UNITE'] and args['UNITE']<>6:
+   if args['UNITE'] and args['UNITE']!=6:
       nomfich=UL.Nom(args['UNITE'])
       if INFO==2:
-         aster.affiche('MESSAGE', ' Nom du fichier :'+nomfich+'\n')
-   if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0:
+         aster.affiche('MESSAGE', ' Nom du fichier :'+nomfich)
+   if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size!=0:
       if FORMAT=='XMGRACE':
          niv='A'
       else:
@@ -82,7 +83,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
          if dC[mc]==None: del dC[mc]
       Courbe.append(dC)
    if INFO==2:
-      aster.affiche('MESSAGE',' Nombre de fonctions à analyser : '+str(len(Courbe))+'\n')
+      aster.affiche('MESSAGE',' Nombre de fonctions à analyser : '+str(len(Courbe)))
 
    # 0.3. Devra-t-on interpoler globalement ?
    #      Dans ce cas, linter__ est le LIST_PARA
@@ -98,12 +99,11 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
          for typi in unparmi:
             if dCi.has_key(typi):
                obj=dCi[typi]
-               typ=obj.__class__.__name__
                break
          if obj==None:
             UTMESS('S',macro,'incohérence entre le catalogue et la macro.')
          if typi=='FONCTION':
-            if typ=='nappe_sdaster':
+            if isinstance(obj, nappe_sdaster):
                lpar,lval=obj.Valeurs()
                linterp=lval[0][0]
             else:
@@ -114,7 +114,8 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
             linterp=obj
          linter__=DEFI_LIST_REEL(VALE=linterp)
       if INFO==2:
-         aster.affiche('MESSAGE', ' Interpolation globale sur la liste :\n'+pprint.pformat(linter__.Valeurs())+'\n')
+         aster.affiche('MESSAGE', ' Interpolation globale sur la liste :')
+         aster.affiche('MESSAGE', pprint.pformat(linter__.Valeurs()))
 
 
    #----------------------------------------------
@@ -131,7 +132,6 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
       for typi in unparmi:
          if dCi.has_key(typi):
             obj=dCi[typi]
-            typ=obj.__class__.__name__
             break
       if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'):
             dCi['LEGENDE']=obj.get_name()
@@ -142,7 +142,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
 
       # 1.2.1. Mot-clé FONCTION
       if   typi=='FONCTION':
-         if typ=='nappe_sdaster':
+         if isinstance(obj, nappe_sdaster):
             lpar,lval=obj.Valeurs()
             dico,ldicf=obj.Parametres()
             Leg=dCi['LEGENDE']
@@ -201,10 +201,10 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
             lval=list(ftmp__.Valeurs())
             lx=lval[0]
             lr=lval[1]
-            if typ=='fonction_c' and dCi.has_key('PARTIE'):
-               if dCi['PARTIE']=='IMAG' : lr=lval[2]
+            if isinstance(obj, fonction_c) and dCi.get('PARTIE') == 'IMAG':
+               lr=lval[2]
             # on stocke les données dans le Graph
-            if typ=='fonction_c' and not dCi.has_key('PARTIE'):
+            if isinstance(obj, fonction_c) and not dCi.has_key('PARTIE'):
                nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes))
                dicC={
                   'Val' : lval,
@@ -227,7 +227,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
      et à la première occurence de COURBE""")
          lx=dCi['LIST_PARA'].Valeurs()
          lr=obj.Valeurs()
-         if len(lx)<>len(lr):
+         if len(lx)!=len(lr):
             UTMESS('S',macro,"LIST_PARA et LIST_RESU n'ont pas la meme taille")
          # on stocke les données dans le Graph
          dicC={
@@ -243,7 +243,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
       elif typi=='FONC_X':
          ob2=dCi['FONC_Y']
          # peut-on blinder au niveau du catalogue
-         if typ=="nappe_sdaster" or ob2.__class__.__name__=="nappe_sdaster":
+         if isinstance(obj, nappe_sdaster) or isinstance(ob2, nappe_sdaster):
             UTMESS('S',macro,"FONC_X/FONC_Y ne peuvent pas etre des nappes !")
          if interp and iocc>0:
             UTMESS('S',macro,"""Au format 'TABLEAU' ,FONC_X/FONC_Y ne peut apparaitre qu'une seule fois
@@ -309,7 +309,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
      et à la première occurence de COURBE""")
          lx=obj
          lr=dCi['ORDONNEE']
-         if len(lx)<>len(lr):
+         if len(lx)!=len(lr):
             UTMESS('S',macro,"ABSCISSE et ORDONNEE n'ont pas la meme taille")
          # on stocke les données dans le Graph
          dicC={
@@ -327,7 +327,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
 
    # 1.3. dbg
    if INFO==2:
-      message='\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70
+      message='\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70+'\n'
       message=message+graph.__repr__()
       message=message+'-'*70+'\n'
       aster.affiche('MESSAGE',message)
@@ -338,21 +338,21 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
 
    # 2.0. Surcharge des propriétés du graphique et des axes
    # (bloc quasiment identique dans Table)
-   if args['TITRE']<>None:          graph.Titre=args['TITRE']
-   if args['SOUS_TITRE']<>None:     graph.SousTitre=args['SOUS_TITRE']
+   if args['TITRE']!=None:          graph.Titre=args['TITRE']
+   if args['SOUS_TITRE']!=None:     graph.SousTitre=args['SOUS_TITRE']
    if FORMAT in ('XMGRACE','AGRAF'):
-      if args['BORNE_X']<>None:
+      if args['BORNE_X']!=None:
                                        graph.Min_X=args['BORNE_X'][0]
                                        graph.Max_X=args['BORNE_X'][1]
-      if args['BORNE_Y']<>None:
+      if args['BORNE_Y']!=None:
                                        graph.Min_Y=args['BORNE_Y'][0]
                                        graph.Max_Y=args['BORNE_Y'][1]
-      if args['LEGENDE_X']<>None:      graph.Legende_X=args['LEGENDE_X']
-      if args['LEGENDE_Y']<>None:      graph.Legende_Y=args['LEGENDE_Y']
-      if args['ECHELLE_X']<>None:      graph.Echelle_X=args['ECHELLE_X']
-      if args['ECHELLE_Y']<>None:      graph.Echelle_Y=args['ECHELLE_Y']
-      if args['GRILLE_X']<>None:       graph.Grille_X=args['GRILLE_X']
-      if args['GRILLE_Y']<>None:       graph.Grille_Y=args['GRILLE_Y']
+      if args['LEGENDE_X']!=None:      graph.Legende_X=args['LEGENDE_X']
+      if args['LEGENDE_Y']!=None:      graph.Legende_Y=args['LEGENDE_Y']
+      if args['ECHELLE_X']!=None:      graph.Echelle_X=args['ECHELLE_X']
+      if args['ECHELLE_Y']!=None:      graph.Echelle_Y=args['ECHELLE_Y']
+      if args['GRILLE_X']!=None:       graph.Grille_X=args['GRILLE_X']
+      if args['GRILLE_Y']!=None:       graph.Grille_Y=args['GRILLE_Y']
 
    kargs={
       'FORMAT'    : FORMAT,
@@ -372,7 +372,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
    # 2.2. au format AGRAF
    elif FORMAT=='AGRAF':
       nomdigr=None
-      if args['UNITE_DIGR']<>6:
+      if args['UNITE_DIGR']!=6:
          nomdigr=UL.Nom(args['UNITE_DIGR'])
       kargs['FICHIER']=[nomfich, nomdigr]
       kargs['dform']={ 'formR' : '%12.5E' }
@@ -389,7 +389,7 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
    # Traiter le cas des UL réservées
    if args['UNITE'] and args['UNITE'] in ul_reserve:
       UL.Etat(args['UNITE'], etat='F')
-   if FORMAT=='AGRAF' and args['UNITE_DIGR']<>args['UNITE'] \
+   if FORMAT=='AGRAF' and args['UNITE_DIGR']!=args['UNITE'] \
          and args['UNITE_DIGR'] in ul_reserve:
       UL.Etat(args['UNITE_DIGR'], etat='F')
 
index 49aacd3ebfcd4dbb5746758a8c61809a76bc119c..4b90940debdbb01986d453869a77f3b9556410fb 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF impr_table_ops Macro  DATE 21/11/2005   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF impr_table_ops Macro  DATE 07/03/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -35,10 +35,11 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args):
    """
    macro='IMPR_TABLE'
    import aster
-   from Accas               import _F
-   from Cata.cata           import table_jeveux
-   from Utilitai.Utmess     import UTMESS
+   from Accas import _F
+   from Cata.cata import table_jeveux
+   from Utilitai.Utmess  import UTMESS
    from Utilitai.UniteAster import UniteAster
+   from Utilitai.Sensibilite import NomCompose
    ier=0
    # La macro compte pour 1 dans la numerotation des commandes
    self.set_icmd(1)
@@ -75,30 +76,19 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args):
    form_filtre='\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s'
 
    # 0.3. Création de la liste des tables (une seule sans SENSIBILITE)
-   form_sens='\n... SENSIBILITE AU PARAMETRE %s'
+   form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)'
    ltab=[]
    if args['SENSIBILITE']:
-      nmemo='&NOSENSI.MEMO.CORR'.ljust(24)
-      vect=aster.getvectjev(nmemo)
-      if vect:
-         lps=args['SENSIBILITE']
-         if not type(lps) in EnumTypes:
-            lps=[lps,]
-         for ps in [ps.get_name() for ps in lps]:
-            trouv=False
-            for ch in vect[0:len(vect):2]:
-               if ch[0:8].strip()==TABLE.get_name() and ch[8:16].strip()==ps:
-                  trouv=True
-                  ncomp=ch[16:24].strip()
-                  sdtab=table_jeveux(ncomp)
-                  tabs=sdtab.EXTR_TABLE()
-                  tabs.titr+=form_sens % ps
-                  ltab.append([tabs, sdtab])
-            if not trouv:
-               UTMESS('A',macro,'Dérivée de %s par rapport à %s non disponible'\
-                     % (TABLE.get_name(), ps))
-      else:
-         UTMESS('A',macro,'Pas de calcul de sensibilité accessible.')
+      lps=args['SENSIBILITE']
+      if not type(lps) in EnumTypes:
+         lps=[lps,]
+      for ps in lps:
+         ncomp = NomCompose(TABLE, ps)
+         if ncomp != None:
+            sdtab = table_jeveux(ncomp)
+            tabs = sdtab.EXTR_TABLE()
+            tabs.titr = TABLE.TITRE() + tabs.titr + form_sens % (ps.get_name(), ncomp)
+            ltab.append([tabs, sdtab])
    else:
       ltab.append([TABLE.EXTR_TABLE(), TABLE])
 
index b728f6a4532ebf7a8582eaee8580e4f1d2c30dfd..0554e0cdfd4f1e95992af59882cf3eab3d6c9d91 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF info_fonction_ops Macro  DATE 12/05/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF info_fonction_ops Macro  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -17,7 +17,7 @@
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,**args):
+def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,INFO,**args):
   """
      Ecriture de la macro INFO_FONCTION
   """
@@ -30,6 +30,7 @@ def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,**args):
 
   ### On importe les definitions des commandes a utiliser dans la macro
   CREA_TABLE     = self.get_cmd('CREA_TABLE')
+  IMPR_TABLE     = self.get_cmd('IMPR_TABLE')
   CALC_FONCTION  = self.get_cmd('CALC_FONCTION')
   
   ### Comptage commandes + déclaration concept sortant
@@ -249,4 +250,7 @@ porte le calcul, ceci peut etre une source d erreurs.''')
            l_table.append(_F(LISTE_R=dphfor,PARA='DUREE_PHAS_FORT'))
      C_out=CREA_TABLE(LISTE=l_table)
 
+  if INFO > 1:
+     IMPR_TABLE(UNITE=6,
+                TABLE=C_out)
   return ier
index 21e7724b9d1a33b36ecb1f0b74d5ce9d4ef44680..a2bd9567368cc3232b20c0ce43a29d84018b9845 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF lire_inte_spec_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF lire_inte_spec_ops Macro  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -108,8 +108,7 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL,
   mcfact.append(_F(PARA='NUME_ORDRE_J',LISTE_I=nume_j    ,NUME_LIGN=range(2,len(nume_j)+2)))
   mcfact.append(_F(PARA='FONCTION'    ,LISTE_K=l_fonc    ,NUME_LIGN=range(2,len(list_fonc)+2)))
   self.DeclareOut('tab_inte',self.sd)
-  tab_inte=CREA_TABLE(TYPE_TABLE='TABL_INTE_SPEC',
-                      LISTE=mcfact,
+  tab_inte=CREA_TABLE(LISTE=mcfact,
                       TITRE=TITRE,)
 
   # remet UNITE dans son état initial
index ea470c6d0aa5279fb23ef335bdf37814a4514a4e..5d4edeff5f9d3ada647ad6eb341017de753cb6f3 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF lire_table_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF lire_table_ops Macro  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -113,7 +113,7 @@ def lecture_table(texte,nume,separ):
 
 # ------------------------------------------------------------------------------
 def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR,
-                        TYPE_TABLE,PARA,TITRE,**args):   
+                        PARA,TITRE,**args):   
   """Méthode corps de la macro LIRE_TABLE
   """
   import os
@@ -170,7 +170,7 @@ def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR,
   motscles={}
   motscles['LISTE']=mcfact
 
-  ut_tab=CREA_TABLE(TITRE=titr_tab,TYPE_TABLE=TYPE_TABLE, **motscles)
+  ut_tab=CREA_TABLE(TITRE=titr_tab,**motscles)
 
   # remet UNITE dans son état initial
   UL.EtatInit()
index f72ebd5885390a98b8c9a491125690d2900490a2..1d48ecf9f66db410c5736610a54922064b32dabb 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_ascouf_calc_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF macr_ascouf_calc_ops Macro  DATE 09/05/2006   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -50,10 +50,9 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
   IMPR_TABLE       =self.get_cmd('IMPR_TABLE'      )
   DEFI_FOND_FISS   =self.get_cmd('DEFI_FOND_FISS'  )
   CALC_THETA       =self.get_cmd('CALC_THETA'      )
-  CALC_G_THETA_T   =self.get_cmd('CALC_G_THETA_T'  )
-  CALC_G_LOCAL_T   =self.get_cmd('CALC_G_LOCAL_T'  )
-  POST_RCCM        =self.get_cmd('POST_RCCM'  )
-  POST_RELEVE_T    =self.get_cmd('POST_RELEVE_T'  )
+  CALC_G           =self.get_cmd('CALC_G'          )
+  POST_RCCM        =self.get_cmd('POST_RCCM'       )
+  POST_RELEVE_T    =self.get_cmd('POST_RELEVE_T'   )
 
   # La macro compte pour 1 dans la numerotation des commandes
   self.set_icmd(1)
@@ -223,7 +222,7 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
                                 COEF_MULT = COEFB1 ,
                                 COEF_IMPO = 0.0    , )
 
-  __conlim = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
+  _conlim = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
 #
 #     --- commande AFFE_CHAR_MECA ---
 #         chargement mecanique :  pres_rep, effet de fond 
@@ -241,13 +240,13 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
                                 GROUP_MA      = 'EXTUBE'  ,
                                 PRES          = PRES_REP['PRES'] ,)
 #
-    __chpres = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
+    _chpres = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
 #
 #     --- commande AFFE_CHAR_MECA ---
 #         chargement mecanique : torseur d efforts 
 #
   if TORS_P1!=None :
-    __chtor = [None]*6
+    _chtor = [None]*6
     i=0
     for tors in TORS_P1:
       mcsimp={}
@@ -258,8 +257,8 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
       if tors['MY']!=None : mcsimp['MY']=tors['MY']
       if tors['MZ']!=None : mcsimp['MZ']=tors['MZ']
       mcfact=_F(GROUP_NO='P1',**mcsimp)
-      __chtor[i] = AFFE_CHAR_MECA( MODELE       = modele ,
-                                   FORCE_NODALE = mcfact , )
+      _chtor[i] = AFFE_CHAR_MECA( MODELE       = modele ,
+                                  FORCE_NODALE = mcfact , )
       i=i+1
 #
 #     --- commande STAT_NON_LINE ---
@@ -267,21 +266,21 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
   motscles={}
 #
   mcfex=[]  # mot clé facteur EXCIT
-  mcfex.append(_F(CHARGE=__conlim,))
+  mcfex.append(_F(CHARGE=_conlim,))
   if ECHANGE!=None :
      mcfex.append(_F(CHARGE=chmeth,))
   if PRES_REP!=None:
     if PRES_REP['FONC_MULT']!=None :
-      mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT']))
+      mcfex.append(_F(CHARGE=_chpres,FONC_MULT=PRES_REP['FONC_MULT']))
     else :
-      mcfex.append(_F(CHARGE=__chpres,))
+      mcfex.append(_F(CHARGE=_chpres,))
   if TORS_P1!=None:
      i=0
      for tors in TORS_P1 :
        if tors['FONC_MULT']!=None :
-          mcfex.append(_F(CHARGE=__chtor[i],FONC_MULT=tors['FONC_MULT']))
+          mcfex.append(_F(CHARGE=_chtor[i],FONC_MULT=tors['FONC_MULT']))
        else :
-          mcfex.append(_F(CHARGE=__chtor[i],))
+          mcfex.append(_F(CHARGE=_chtor[i],))
        i=i+1
   motscles['EXCIT'] =mcfex
 #
@@ -631,12 +630,10 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
         motscles = {}
         if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION'])
         if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION'])
-        _nogthe=CALC_G_THETA_T(
-                               RESULTAT   =nomres,
-                               TOUT_ORDRE ='OUI',
-                               THETA      =_nothet,
-                               **motscles
-                               );
+        _nogthe=CALC_G( RESULTAT   =nomres,
+                        OPTION='CALC_G_GLOB',
+                        TOUT_ORDRE ='OUI',
+                        THETA      =_F(THETA=_nothet),**motscles);
 #
         IMPR_TABLE(TABLE=_nogthe,);
 #
@@ -645,21 +642,20 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
         if COMP_INCR!=None : motscles['COMP_INCR']=_F(RELATION=COMP_INCR['RELATION'])
         if COMP_ELAS!=None : motscles['COMP_ELAS']=_F(RELATION=COMP_ELAS['RELATION'])
         if   TYPE_MAILLAGE =='FISS_COUDE' :
-                             motscles['LISSAGE_THETA']='LEGENDRE'
-                             motscles['LISSAGE_G']    ='LEGENDRE'
+                             motscles['LISSAGE']=_F(LISSAGE_THETA='LEGENDRE',
+                                                    LISSAGE_G='LEGENDRE',
+                                                    DEGRE=4,)
         elif TYPE_MAILLAGE =='FISS_AXIS_DEB' :
-                             motscles['LISSAGE_THETA']='LAGRANGE'
-                             motscles['LISSAGE_G']    ='LAGRANGE'
-        _nogloc=CALC_G_LOCAL_T(MODELE     =modele,
-                               RESULTAT   =nomres,
-                               TOUT_ORDRE ='OUI',
-                               CHAM_MATER =affmat,
-                               FOND_FISS  =fonfis,
-                               DEGRE      = 4,
-                               R_INF      = thet['R_INF'],
-                               R_SUP      = thet['R_SUP'],
-                               **motscles
-                               );
+                             motscles['LISSAGE']=_F(LISSAGE_THETA='LAGRANGE',
+                                                    LISSAGE_G='LAGRANGE',
+                                                    DEGRE=4,)
+        _nogloc=CALC_G (MODELE     =modele,
+                        RESULTAT   =nomres,
+                        TOUT_ORDRE ='OUI',
+                        CHAM_MATER =affmat,
+                        THETA=_F( FOND_FISS  =fonfis,
+                                  R_INF      = thet['R_INF'],
+                                  R_SUP      = thet['R_SUP'],),**motscles);
 
         IMPR_TABLE(TABLE=_nogloc,);
 #
index 2bef7b6ca19f579fd3ed92c1af1f5e0574987818..eda90f99df8c264edefe974670e746753de38cda 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_aspic_calc_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF macr_aspic_calc_ops Macro  DATE 09/05/2006   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -23,7 +23,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
                              FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,AFFE_MATERIAU,EQUILIBRE,
                              PRES_REP,ECHANGE,TORS_CORP,TORS_TUBU,COMP_INCR,COMP_ELAS,
                              THETA_3D,OPTION,SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE,
-                             INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE ,**args):          
+                             INCREMENT,PAS_AZIMUT,IMPRESSION,INFO,TITRE,BORNES ,**args):          
   """
      Ecriture de la macro MACR_ASPIC_CALC
   """
@@ -49,8 +49,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
   POST_RCCM        =self.get_cmd('POST_RCCM'       )
   DEFI_FOND_FISS   =self.get_cmd('DEFI_FOND_FISS'  )
   CALC_THETA       =self.get_cmd('CALC_THETA'      )
-  CALC_G_THETA_T   =self.get_cmd('CALC_G_THETA_T'  )
-  CALC_G_LOCAL_T   =self.get_cmd('CALC_G_LOCAL_T'  )
+  CALC_G           =self.get_cmd('CALC_G'          )
   IMPR_RESU        =self.get_cmd('IMPR_RESU'       )
 
   # La macro compte pour 1 dans la numerotation des commandes
@@ -201,7 +200,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
          AEFOCO = 'EXCORP1'
          ATORCO = 'P1_CORP'
          LINTC  = 'L_INT_C1'
-  __conlim = AFFE_CHAR_MECA( MODELE   = modele ,
+  _conlim = AFFE_CHAR_MECA(  MODELE   = modele ,
                              LIAISON_ELEM  = ( _F( OPTION    ='3D_POU'  ,
                                                    GROUP_MA_1='EXCORP1',
                                                    GROUP_NO_2='P1_CORP'),
@@ -234,13 +233,13 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
                               _F(GROUP_MA    =AEFOCO,
                                  GROUP_MA_INT=LINTC,
                                  PRES        =PRES_REP['PRES']))
-  __chpres = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
+  _chpres = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
 #
 #     --- commande AFFE_CHAR_MECA ---
 #         chargement mecanique : torseur sur le corps
 #
   if TORS_CORP!=None:
-     __chtrc = [None]*6
+     _chtrc = [None]*6
      i=0
      for tors in TORS_CORP :
        mcsimp={}
@@ -251,7 +250,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
        if tors['MY']!=None : mcsimp['MY']=tors['MY']
        if tors['MZ']!=None : mcsimp['MZ']=tors['MZ']
        mcfact=_F(GROUP_NO=ATORCO,**mcsimp)
-       __chtrc[i] = AFFE_CHAR_MECA( MODELE       = modele ,
+       _chtrc[i] = AFFE_CHAR_MECA(  MODELE       = modele ,
                                     FORCE_NODALE = mcfact , )
        i=i+1
 #
@@ -259,7 +258,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
 #         chargement mecanique : torseur sur la tubulure
 #
   if TORS_TUBU!=None:
-     __chtrt = [None]*6
+     _chtrt = [None]*6
      i=0
      for tors in TORS_TUBU :
        mcsimp={}
@@ -270,7 +269,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
        if tors['MY']!=None : mcsimp['MY']=tors['MY']
        if tors['MZ']!=None : mcsimp['MZ']=tors['MZ']
        mcfact=_F(GROUP_NO='P_TUBU  ',**mcsimp)
-       __chtrt[i] = AFFE_CHAR_MECA( MODELE       = modele ,
+       _chtrt[i] = AFFE_CHAR_MECA( MODELE       = modele ,
                                     FORCE_NODALE = mcfact , )
        i=i+1
 #
@@ -279,28 +278,28 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
   motscles={}
 #
   mcfex=[]  # mot clé facteur EXCIT
-  mcfex.append(_F(CHARGE=__conlim,))
+  mcfex.append(_F(CHARGE=_conlim,))
   if ECHANGE!=None :
      mcfex.append(_F(CHARGE=chmeth,))
   if PRES_REP['FONC_MULT']!=None :
-     mcfex.append(_F(CHARGE=__chpres,FONC_MULT=PRES_REP['FONC_MULT']))
+     mcfex.append(_F(CHARGE=_chpres,FONC_MULT=PRES_REP['FONC_MULT']))
   else :
-     mcfex.append(_F(CHARGE=__chpres,))
+     mcfex.append(_F(CHARGE=_chpres,))
   if TORS_CORP!=None:
      i=0
      for tors in TORS_CORP :
        if tors['FONC_MULT']!=None :
-          mcfex.append(_F(CHARGE=__chtrc[i],FONC_MULT=tors['FONC_MULT']))
+          mcfex.append(_F(CHARGE=_chtrc[i],FONC_MULT=tors['FONC_MULT']))
        else :
-          mcfex.append(_F(CHARGE=__chtrc[i],))
+          mcfex.append(_F(CHARGE=_chtrc[i],))
        i=i+1
   if TORS_TUBU!=None:
      i=0
      for tors in TORS_TUBU :
        if tors['FONC_MULT']!=None :
-          mcfex.append(_F(CHARGE=__chtrt[i],FONC_MULT=tors['FONC_MULT']))
+          mcfex.append(_F(CHARGE=_chtrt[i],FONC_MULT=tors['FONC_MULT']))
        else :
-          mcfex.append(_F(CHARGE=__chtrt[i],))
+          mcfex.append(_F(CHARGE=_chtrt[i],))
        i=i+1
   motscles['EXCIT'] =mcfex
 #
@@ -664,19 +663,20 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
                                                 R_INF   = tht3d['R_INF'],
                                                 R_SUP   = tht3d['R_SUP'], ) )
 #
-#          --- commande CALC_G_THETA_T ---
+#          --- commande CALC_G (3D GLOBAL) ---
 #
           montit = 'G_THETA AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP'])
           motscles={}
           if COMP_ELAS!=None:  motscles['COMP_ELAS']=  _F(TOUT     = 'OUI',
                                                           RELATION = COMP_ELAS['RELATION'],)
           if COMP_INCR!=None:  motscles['COMP_INCR']=  _F(RELATION = COMP_INCR['RELATION'],)
-          __gtheta = CALC_G_THETA_T( MODELE     = modele,
-                                     CHAM_MATER = affmat,
-                                     THETA      = __theta,
-                                     RESULTAT   = nomres,
-                                     TOUT_ORDRE = 'OUI',
-                                     TITRE      = montit,**motscles)
+          __gtheta = CALC_G ( MODELE     = modele,
+                              CHAM_MATER = affmat,
+                              THETA      = _F(THETA=__theta),
+                              OPTION     = 'CALC_G_GLOB',
+                              RESULTAT   = nomres,
+                              TOUT_ORDRE = 'OUI',
+                              TITRE      = montit,**motscles)
           IMPR_TABLE(TABLE = __gtheta, )
 #
 #           recherche du g max
@@ -688,35 +688,36 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
                 mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] ,
                                   VALE_MIN   = born['VALE_MIN'  ] ,
                                   VALE_MAX   = born['VALE_MAX'  ]   ) )
-              __gbil = CALC_G_THETA_T( MODELE     = modele,
-                                       CHAM_MATER = affmat,
-                                       THETA      = __theta,
-                                       RESULTAT   = nomres,
-                                       TOUT_ORDRE = 'OUI',
-                                       COMP_ELAS  =  _F(TOUT     = 'OUI',
-                                                        RELATION = COMP_ELAS['RELATION'],),
-                                       TITRE    = montit,
-                                       OPTION   = OPTION,
-                                       BORNES   = mcfact,)
+              __gbil = CALC_G( MODELE     = modele,
+                               CHAM_MATER = affmat,
+                               THETA      = _F(THETA=__theta),
+                               RESULTAT   = nomres,
+                               TOUT_ORDRE = 'OUI',
+                               COMP_ELAS  =  _F(TOUT     = 'OUI',
+                                                RELATION = COMP_ELAS['RELATION'],),
+                               TITRE    = montit,
+                               OPTION   = 'G_MAX_GLOB',
+                               BORNES   = mcfact,)
               IMPR_TABLE(TABLE = __gbil, )
 #
-#          --- commande CALC_G_LOCAL_T ---
+#          --- commande CALC_G (3D LOCAL) ---
 #
           montit = 'G_LOCAL AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP'])
           motscles={}
           if COMP_ELAS!=None:  motscles['COMP_ELAS'    ]=  _F(TOUT     = 'OUI',
                                                               RELATION = COMP_ELAS['RELATION'],)
           if FERME:
-                               motscles['LISSAGE_THETA']= 'LAGRANGE'
-                               motscles['LISSAGE_G'    ]= 'LAGRANGE'
-          __glocal = CALC_G_LOCAL_T( MODELE     = modele,
-                                     CHAM_MATER = affmat,
-                                     FOND_FISS  = fond3d[j],
-                                     RESULTAT   = nomres,
-                                     TOUT_ORDRE = 'OUI',
-                                     R_INF      = tht3d['R_INF'],
-                                     R_SUP      = tht3d['R_SUP'],
-                                     TITRE      = montit,**motscles)
+                               motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE',
+                                                      LISSAGE_G= 'LAGRANGE',)
+          __glocal = CALC_G( MODELE     = modele,
+                             CHAM_MATER = affmat,
+                             THETA=_F( FOND_FISS  = fond3d[j],
+                                       R_INF      = tht3d['R_INF'],
+                                       R_SUP      = tht3d['R_SUP'],),
+                             RESULTAT   = nomres,
+                             TOUT_ORDRE = 'OUI',
+                             TITRE      = montit,**motscles)
+          IMPR_TABLE(TABLE = __glocal, )
 #
 #          recherche du g max local
 #
@@ -725,24 +726,24 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
               motscles={}
               mcfact=[]
               if FERME:
-                        motscles['LISSAGE_THETA']= 'LAGRANGE'
-                        motscles['LISSAGE_G'    ]= 'LAGRANGE'
+                motscles['LISSAGE']=_F(LISSAGE_THETA= 'LAGRANGE',
+                                       LISSAGE_G= 'LAGRANGE',)
               for born in BORNES :
                 mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] ,
                                   VALE_MIN   = born['VALE_MIN'  ] ,
                                   VALE_MAX   = born['VALE_MAX'  ]   ) )
               motscles['BORNES']=mcfact
-              __glbil = CALC_G_LOCAL_T( MODELE     = modele,
-                                        CHAM_MATER = affmat,
-                                        FOND_FISS  = fond3d[j],
-                                        RESULTAT   = nomres,
-                                        TOUT_ORDRE = 'OUI',
-                                        COMP_ELAS  =  _F(TOUT     = 'OUI',
-                                                         RELATION = COMP_ELAS['RELATION'],),
-                                        TITRE      = montit,
-                                        OPTION     = 'CALC_G_MAX',
-                                        R_INF      = tht3d['R_INF'],
-                                        R_SUP      = tht3d['R_SUP'],**motscles)
+              __glbil = CALC_G( MODELE     = modele,
+                                CHAM_MATER = affmat,
+                                THETA=_F( FOND_FISS  = fond3d[j],
+                                          R_INF      = tht3d['R_INF'],
+                                          R_SUP      = tht3d['R_SUP'],),
+                                RESULTAT   = nomres,
+                                TOUT_ORDRE = 'OUI',
+                                COMP_ELAS  =  _F(TOUT     = 'OUI',
+                                                 RELATION = COMP_ELAS['RELATION'],),
+                                TITRE      = montit,
+                                OPTION     = 'G_MAX',**motscles)
               IMPR_TABLE(TABLE = __glbil, )
 #
 #     --- commande IMPR_RESU  ---
@@ -758,13 +759,13 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
          else                                                                : ncham=[IMPRESSION['NOM_CHAM'],]
       if    len(ncham)==3       : motscles['NOM_CHAM'  ]=('DEPL','EQUI_ELNO_SIGM')
       elif (len(ncham)==1) and (ncham[0][:4]!='TEMP')  :
-                                  motscles['NOM_CHAM'  ]= ncham[0]['NOM_CHAM']
+                                  motscles['NOM_CHAM'  ]= ncham[0]
       elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP')  :
-                                  motscles['NOM_CHAM'  ]=(ncham[0]['NOM_CHAM'],ncham[1]['NOM_CHAM'])
+                                  motscles['NOM_CHAM'  ]=(ncham[0],ncham[1])
       elif (len(ncham)==2) and (ncham[0][:4]=='TEMP')  :
-                                  motscles['NOM_CHAM'  ]= ncham[1]['NOM_CHAM']
+                                  motscles['NOM_CHAM'  ]= ncham[1]
       elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') :
-                                  motscles['NOM_CHAM'  ]= ncham[0]['NOM_CHAM']
+                                  motscles['NOM_CHAM'  ]= ncham[0]
       if   IMPRESSION['TOUT_ORDRE']!=None :
                                   motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE']
       elif IMPRESSION['NUME_ORDRE']!=None :
@@ -781,11 +782,11 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
       if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') :
         if    len(ncham)==3       : motscles['NOM_CHAM'  ]=('TEMP',)
         elif (len(ncham)==1) and (ncham[0][:4]=='TEMP') :
-                                    motscles['NOM_CHAM'  ]= ncham[0]['NOM_CHAM']
+                                    motscles['NOM_CHAM'  ]= ncham[0]
         elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') :
-                                    motscles['NOM_CHAM'  ]= ncham[0]['NOM_CHAM']
+                                    motscles['NOM_CHAM'  ]= ncham[0]
         elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') :
-                                    motscles['NOM_CHAM'  ]= ncham[1]['NOM_CHAM']
+                                    motscles['NOM_CHAM'  ]= ncham[1]
         if   IMPRESSION['TOUT_ORDRE']!=None :
                                     motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE']
         elif IMPRESSION['NUME_ORDRE']!=None :
@@ -796,7 +797,7 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
                                     motsclei['VERSION'   ]= IMPRESSION['VERSION']
       if IMPRESSION['FORMAT']=='CASTEM' :
                                     motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI']
-      mcfresu.append(_F(RESULTAT=nomres,**motscles))
+      mcfresu.append(_F(RESULTAT=resuth,**motscles))
     IMPR_RESU( MODELE = modele,
                RESU   = mcfresu,
                FORMAT=IMPRESSION['FORMAT'],**motsclei)
index 7332377066736426e3bce7204b7ae166f5eb9a7e..89195496e4e33a7bfe6cb77ac8cb9c7841bcb7dd 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_cara_poutre_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF macr_cara_poutre_ops Macro  DATE 27/02/2006   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -50,11 +50,11 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
   INTE_MAIL_2D    =self.get_cmd('INTE_MAIL_2D')
   POST_RELEVE_T   =self.get_cmd('POST_RELEVE_T')
   IMPR_TABLE      =self.get_cmd('IMPR_TABLE')
-  IMPR_CO         =self.get_cmd('IMPR_CO')
+  CREA_TABLE      =self.get_cmd('CREA_TABLE')
   # La macro compte pour 1 dans la numerotation des commandes
   self.set_icmd(1)
 
-  # Le concept sortant (de type tabl_cara_geom) est nommé 'nomres' dans 
+  # Le concept sortant (de type table_sdaster) est nommé 'nomres' dans 
   # le contexte de la macro
   
   self.DeclareOut('nomres',self.sd)
@@ -77,6 +77,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
                          AFFE=_F(TOUT='OUI',
                                  MATER=__nomdma,),  )
 
+
 # --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION :
 #     ------------------------------------------------------
 
@@ -86,10 +87,9 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
   if SYME_Y    : motsimps['SYME_Y']    = SYME_Y
   motsimps['ORIG_INER'] = ORIG_INER
   mfact=_F(TOUT='OUI',**motsimps)
-  nomres=POST_ELEM(MODELE=__nomamo,
-                   CHAM_MATER=__nomama,
-                   CARA_GEOM=mfact    )
-
+  __cageo=POST_ELEM(MODELE=__nomamo,
+                    CHAM_MATER=__nomama,
+                    CARA_GEOM=mfact    )
 # nb  :  si GROUP_MA n existe pas : le mot clé est ignoré
 
 #
@@ -104,6 +104,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
 #     ==================================================================
 
   if GROUP_MA_BORD and not GROUP_MA:
+
 # --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS
 # --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE :
 #     ---------------------------------------------------------
@@ -126,7 +127,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
 #     ---------------------------------------------------------------
 
      __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma,
-                            REPERE=_F(TABLE=nomres,
+                            REPERE=_F(TABLE=__cageo,
                                       NOM_ORIG='CDG',  ),  )
 
 # --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
@@ -353,36 +354,34 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
      if args.has_key('GROUP_MA_INTE'):
         lgmaint=args['GROUP_MA_INTE']
         if lgmaint != None :
-           motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres,
+           motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo,
                                    LAPL_PHI=__tempe1,
                                    RT=__rt,
                                    TOUT='OUI',
                                    OPTION='CARA_TORSION',
                                    GROUP_MA_INTE=args['GROUP_MA_INTE'],)
         else:
-           motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres,
+           motscles['CARA_POUTRE']=_F(CARA_GEOM=__cageo,
                                     LAPL_PHI=__tempe1,
                                     RT=__rt,  
                                     TOUT='OUI',
                                     OPTION='CARA_TORSION',      )
-     nomres=POST_ELEM(reuse=nomres,
-                      MODELE=__nomoth,
-                      CHAM_MATER=__chmath,
-                      **motscles  )
+     __cator=POST_ELEM(MODELE=__nomoth,
+                       CHAM_MATER=__chmath,
+                       **motscles  )
  
 
 # --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
 # --- CENTRE DE CISAILLEMENT/TORSION :
 #     ------------------------------
 
-     nomres=POST_ELEM(reuse=nomres,
-                      MODELE=__nomoth,
-                      CHAM_MATER=__chmath,
-                      CARA_POUTRE=_F(CARA_GEOM=nomres,
-                                     LAPL_PHI_Y=__tempe2,
-                                     LAPL_PHI_Z=__tempe3,
-                                     TOUT='OUI',
-                                     OPTION='CARA_CISAILLEMENT',),  )
+     __cacis=POST_ELEM(MODELE=__nomoth,
+                       CHAM_MATER=__chmath,
+                       CARA_POUTRE=_F(CARA_GEOM=__cator,
+                                      LAPL_PHI_Y=__tempe2,
+                                      LAPL_PHI_Z=__tempe3,
+                                      TOUT='OUI',
+                                      OPTION='CARA_CISAILLEMENT',),  )
      
 
 #
@@ -408,7 +407,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
 #     ----------
 
      __nomapt=CREA_MAILLAGE(MAILLAGE=__nomapi,
-                            REPERE=_F(TABLE=nomres,
+                            REPERE=_F(TABLE=__cacis,
                                       NOM_ORIG='TORSION',)  )
 
 # --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
@@ -540,10 +539,9 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
 # --- CALCUL DE L INERTIE DE GAUCHISSEMENT :
 #     -------------------------------------
 
-     nomres=POST_ELEM(reuse=nomres,
-                      MODELE=__nomot2,
+     nomres=POST_ELEM(MODELE=__nomot2,
                       CHAM_MATER=__chmat2,
-                      CARA_POUTRE=_F(CARA_GEOM=nomres,
+                      CARA_POUTRE=_F(CARA_GEOM=__cacis,
                                      LAPL_PHI=__tempe4,
                                      TOUT='OUI',
                                      OPTION='CARA_GAUCHI'),  )
@@ -563,6 +561,9 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
 
   if GROUP_MA_BORD and GROUP_MA:
 
+# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION :
+#     ------------------------------------------------------
+
      if type(GROUP_MA_BORD)==types.StringType :
         l_group_ma_bord=[GROUP_MA_BORD,]
      else:
@@ -583,6 +584,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
      if args.has_key('NOEUD') and (len(l_group_ma)!=len(l_noeud)):
         UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et NOEUD incoherents")
 
+     __catp2=__cageo
      for i in range(0,len(l_group_ma_bord)):
 
 # --- TRANSFORMATION DES GROUP_MA EN GROUP_NO SUR-LESQUELS
@@ -600,7 +602,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
 #     ---------------------------------------------------------------
 
         __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma,
-                               REPERE=_F(TABLE=nomres,
+                               REPERE=_F(TABLE=__cageo,
                                          NOM_ORIG='CDG',
                                          GROUP_MA=l_group_ma[i],  ),  )
 
@@ -781,30 +783,35 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
 # --- CALCUL DE LA CONSTANTE DE TORSION :
 #     ---------------------------------
              
-        nomres=POST_ELEM(reuse=nomres,
-                         MODELE=__nomoth,
-                         CHAM_MATER=__chmath,
-                         CARA_POUTRE=_F(CARA_GEOM=nomres,
-                                        LAPL_PHI=__tempe1,
-                                        RT=__rt,
-                                        GROUP_MA=l_group_ma[i],
-                                        OPTION='CARA_TORSION' ),     )
+        __catp1=POST_ELEM(MODELE=__nomoth,
+                          CHAM_MATER=__chmath,
+                          CARA_POUTRE=_F(CARA_GEOM=__catp2,
+                                         LAPL_PHI=__tempe1,
+                                         RT=__rt,
+                                         GROUP_MA=l_group_ma[i],
+                                         OPTION='CARA_TORSION' ),     )
 
 # --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
 # --- CENTRE DE CISAILLEMENT/TORSION :
 #     ------------------------------
 
-        nomres=POST_ELEM(reuse=nomres,
-                         MODELE=__nomoth,
-                         CHAM_MATER=__chmath,
-                         CARA_POUTRE=_F(CARA_GEOM=nomres,
-                                        LAPL_PHI_Y=__tempe2,
-                                        LAPL_PHI_Z=__tempe3,
-                                        GROUP_MA=l_group_ma[i],
-                                        LONGUEUR=args['LONGUEUR'],
-                                        MATERIAU=args['MATERIAU'],
-                                        LIAISON =args['LIAISON'],
-                                        OPTION='CARA_CISAILLEMENT' ),   )
+        __catp2=POST_ELEM(MODELE=__nomoth,
+                          CHAM_MATER=__chmath,
+                          CARA_POUTRE=_F(CARA_GEOM=__catp1,
+                                         LAPL_PHI_Y=__tempe2,
+                                         LAPL_PHI_Z=__tempe3,
+                                         GROUP_MA=l_group_ma[i],
+                                         LONGUEUR=args['LONGUEUR'],
+                                         MATERIAU=args['MATERIAU'],
+                                         LIAISON =args['LIAISON'],
+                                         OPTION='CARA_CISAILLEMENT' ),   )
+        IMPR_TABLE(TABLE=__catp2)
+     dprod  = __catp2.EXTR_TABLE().dict_CREA_TABLE()
+     nomres = CREA_TABLE(**dprod)
+  if not GROUP_MA_BORD :
+     nomres=POST_ELEM(MODELE=__nomamo,
+                      CHAM_MATER=__nomama,
+                      CARA_GEOM=mfact    )
   IMPR_TABLE(TABLE=nomres)
 
   return ier
index 389998c4d6ea4a30795a734f9f82c1b05abc249d..a2912b6e8336061068430139d36e152bfddcf6e9 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_lign_coupe_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF macr_lign_coupe_ops Macro  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -114,7 +114,8 @@ def crea_mail_lig_coup(dimension,lignes,groups):
 
 
 ########################################################################
-def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,**args):
+def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,
+               MODELE,GROUP_MA,MAILLE,**args):
   """
      Ecriture de la macro MACR_LIGN_COUPE
   """
@@ -210,12 +211,21 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,
                                 PHENOMENE='THERMIQUE',
                                 MODELISATION='PLAN',),);
 
+  motscles={}
+  motscles['VIS_A_VIS']=[]
+  if GROUP_MA != None :
+    motscles['VIS_A_VIS'].append(_F(GROUP_MA_1 = GROUP_MA,TOUT_2='OUI'),)     
+  if MAILLE != None :
+    motscles['VIS_A_VIS'].append(_F(MAILLE_1 = MAILLE,TOUT_2='OUI'),)     
+    
   __recou=PROJ_CHAMP(METHODE='ELEM',
                      RESULTAT=RESULTAT,
                      MODELE_1=self.jdc.current_context[n_modele],
                      MODELE_2=__mocou,
                      TYPE_CHAM='NOEU',
-                     NOM_CHAM=NOM_CHAM,);
+                     NOM_CHAM=NOM_CHAM, **motscles);     
+
+
 
   # Expression des contraintes aux noeuds ou des déplacements dans le repere local
   __remodr=__recou
index 10d54f30d18f90a22f3275c0e668c75120731250..60374b6cd1f204900a4facfc8e72bbea765ff6c8 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_matr_asse_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF macro_matr_asse_ops Macro  DATE 30/01/2006   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -128,22 +128,22 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
 
     try : motscles['PROPAGATION']   =m['PROPAGATION']
     except IndexError : pass
-    __a=CALC_MATR_ELEM(MODELE=MODELE,**motscles)
+    _a=CALC_MATR_ELEM(MODELE=MODELE,**motscles)
 
     if option == 'RIGI_MECA':
-      rigel  = __a
+      rigel  = _a
       lrigel = 1
     if option == 'MASS_MECA':
-      masel  = __a
+      masel  = _a
       lmasel = 1
 
     if lnume and option in ('RIGI_MECA','RIGI_THER','RIGI_ACOU','RIGI_MECA_LAGR'):
       self.DeclareOut('num',numeddl)
       # On peut passer des mots cles egaux a None. Ils sont ignores
-      num=NUME_DDL(MATR_RIGI=__a,METHODE=methode,RENUM=renum)
+      num=NUME_DDL(MATR_RIGI=_a,METHODE=methode,RENUM=renum)
     else:
       num=numeddl
 
     self.DeclareOut('mm',m['MATRICE'])
-    mm=ASSE_MATRICE(MATR_ELEM=__a,NUME_DDL=num)
+    mm=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=num)
   return ier
index 0ecfe72d4c552ed383c5608cc2ad6deaac7c1a0a..54af120b2109e285a3f37e38ea56309e23094611 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_miss_3d_ops Macro  DATE 14/06/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF macro_miss_3d_ops Macro  DATE 20/03/2006   AUTEUR ACBHHCD G.DEVESA 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 
 def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
                            UNITE_MODELE_SOL,UNITE_RESU_IMPE,
-                           PROJET,REPERTOIRE,OPTION,VERSION,**args):
+                           PROJET,REPERTOIRE,OPTION,VERSION,
+                           UNITE_RESU_FORC,PARAMETRE,**args):
   """
      Ecriture de la macro MACRO_MISS_3D
   """
   import types
   from Accas import _F
+  from Utilitai.Utmess import UTMESS
+  from types import TupleType, ListType
 
   ier=0
   # On importe les definitions des commandes a utiliser dans la macro
@@ -59,7 +62,32 @@ def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
   popti = 'fort.'+str(UNITE_OPTI_MISS)
   pdsol = 'fort.'+str(UNITE_MODELE_SOL)
   primp = 'fort.'+str(UNITE_RESU_IMPE)
-
+  prfor = 'fort.'+str(UNITE_RESU_FORC)
+  
+  l_para = ['FREQ_MIN','FREQ_MAX','FREQ_PAS','Z0','RFIC','SURF',
+            'FICH_RESU_IMPE','FICH_RESU_FORC','DREF','ALGO',
+            'OFFSET_MAX','OFFSET_NB','SPEC_MAX','SPEC_NB','ISSF',
+            'FICH_POST_TRAI','CONTR_NB','CONTR_LISTE','LFREQ_NB',
+            'LFREQ_LISTE']
+  if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None:
+    if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']:
+      UTMESS('F', 'MACRO_MISS3D', 'Longueur de LFREQ_LISTE incorrecte')
+  if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None:
+    if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']:
+      UTMESS('F', 'MACRO_MISS3D', 'Longueur de CONTR_LISTE incorrecte')
+  
+  dpara = {}
+  for cle in l_para:
+    if cle in ('SURF', 'ISSF'):
+      dpara[cle] = 'NON'
+    else:
+      dpara[cle] = '0'
+    if PARAMETRE != None and PARAMETRE[cle] != None:
+      if type(PARAMETRE[cle]) in (TupleType, ListType):
+        dpara[cle] = ' '.join([str(s) for s in PARAMETRE[cle]])
+      else:
+        dpara[cle] = str(PARAMETRE[cle])
+  
   EXEC_LOGICIEL(
                 LOGICIEL=miss3d,
                 ARGUMENT=(_F(NOM_PARA=MODUL2),
@@ -69,7 +97,29 @@ def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
                           _F(NOM_PARA=popti),
                           _F(NOM_PARA=pdsol),
                           _F(NOM_PARA=primp),
-                          _F(NOM_PARA=VERSION),  ),
+                          _F(NOM_PARA=VERSION),
+                          _F(NOM_PARA=dpara['FREQ_MIN']), 
+                          _F(NOM_PARA=dpara['FREQ_MAX']),
+                          _F(NOM_PARA=dpara['FREQ_PAS']),
+                          _F(NOM_PARA=dpara['Z0']), 
+                          _F(NOM_PARA=dpara['SURF']), 
+                          _F(NOM_PARA=dpara['RFIC']),
+                          _F(NOM_PARA=dpara['FICH_RESU_IMPE']),
+                          _F(NOM_PARA=dpara['FICH_RESU_FORC']),
+                          _F(NOM_PARA=dpara['DREF']), 
+                          _F(NOM_PARA=dpara['ALGO']),
+                          _F(NOM_PARA=dpara['OFFSET_MAX']),
+                          _F(NOM_PARA=dpara['OFFSET_NB']),
+                          _F(NOM_PARA=dpara['SPEC_MAX']),
+                          _F(NOM_PARA=dpara['SPEC_NB']),
+                          _F(NOM_PARA=dpara['ISSF']),
+                          _F(NOM_PARA=dpara['FICH_POST_TRAI']),
+                          _F(NOM_PARA=dpara['CONTR_NB']),
+                          _F(NOM_PARA=dpara['CONTR_LISTE']),
+                          _F(NOM_PARA=dpara['LFREQ_NB']),
+                          _F(NOM_PARA=dpara['LFREQ_LISTE']),
+                          _F(NOM_PARA=prfor),
+                         ),
                 )
 
   return ier
diff --git a/Aster/Cata/cataSTA81/Macro/post_k1_k2_k3_ops.py b/Aster/Cata/cataSTA81/Macro/post_k1_k2_k3_ops.py
new file mode 100644 (file)
index 0000000..d621503
--- /dev/null
@@ -0,0 +1,891 @@
+#@ MODIF post_k1_k2_k3_ops Macro  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
+# -*- coding: iso-8859-1 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+def veri_tab(tab,nom,ndim) :
+   from Utilitai.Utmess     import UTMESS
+   macro = 'POST_K1_K2_K3'
+   for label in ('DX','DY','COOR_X','COOR_Y','ABSC_CURV') :
+       if label not in tab.para :
+          message='le label '+label+' doit etre present dans la table : '+nom
+          UTMESS('F', macro, message)
+   if ndim==3 :
+      if 'DZ'     not in tab.para :
+          message='le label DZ doit etre present dans la table : '+nom
+          UTMESS('F', macro, message)
+      if 'COOR_Z' not in tab.para :
+          message='le label COOR_Z doit etre present dans la table : '+nom
+          UTMESS('F', macro, message)
+
+def cross_product(a,b):
+    cross = [0]*3
+    cross[0] = a[1]*b[2]-a[2]*b[1]
+    cross[1] = a[2]*b[0]-a[0]*b[2]
+    cross[2] = a[0]*b[1]-a[1]*b[0]
+    return cross
+    
+def post_k1_k2_k3_ops(self,MODELISATION,FOND_FISS,MATER,RESULTAT,
+                   TABL_DEPL_SUP,TABL_DEPL_INF,ABSC_CURV_MAXI,PREC_VIS_A_VIS,
+                   TOUT_ORDRE,NUME_ORDRE,LIST_ORDRE,INST,LIST_INST,SYME_CHAR,
+                   INFO,VECT_K1,TITRE,**args):
+   """
+   Macro POST_K1_K2_K3
+   Calcul des facteurs d'intensité de contraintes en 2D et en 3D
+   par extrapolation des sauts de déplacements sur les lèvres de
+   la fissure. Produit une table.
+   """
+   import aster
+   import string
+   import copy
+   import math
+   import Numeric
+   from Numeric import array,asarray,Float,sqrt,matrixmultiply,transpose,sign,resize,dot,multiply
+   from math import pi
+   from types import ListType, TupleType
+   from Accas import _F
+   from Utilitai.Table      import Table, merge
+   EnumTypes = (ListType, TupleType)
+
+   macro = 'POST_K1_K2_K3'
+   from Accas               import _F
+   from Utilitai.Utmess     import UTMESS
+
+   ier = 0
+   # La macro compte pour 1 dans la numerotation des commandes
+   self.set_icmd(1)
+
+   # Le concept sortant (de type table_sdaster ou dérivé) est tab
+   self.DeclareOut('tabout', self.sd)
+   
+   # On importe les definitions des commandes a utiliser dans la macro
+   # Le nom de la variable doit etre obligatoirement le nom de la commande
+   CREA_TABLE    = self.get_cmd('CREA_TABLE')
+   CALC_TABLE    = self.get_cmd('CALC_TABLE')
+   IMPR_TABLE    = self.get_cmd('IMPR_TABLE')
+   POST_RELEVE_T    = self.get_cmd('POST_RELEVE_T')
+   DETRUIRE      = self.get_cmd('DETRUIRE')
+   MACR_LIGN_COUPE      = self.get_cmd('MACR_LIGN_COUPE')
+
+#   ------------------------------------------------------------------
+#                         CARACTERISTIQUES MATERIAUX
+#   ------------------------------------------------------------------
+   matph = aster.getvectjev( string.ljust(MATER.nom,8)+'.MATERIAU.NOMRC         ')
+   phenom=None
+   for cmpt in matph :
+       if cmpt[:4]=='ELAS' :
+          phenom=cmpt
+          break
+   if phenom==None : UTMESS('F', macro, 'IL FAUT DEFINIR ELAS DANS DEFI_MATERIAU')
+#   --- RECHERCHE SI LE MATERIAU DEPEND DE LA TEMPERATURE:
+   valk = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALK')
+   valk = [x.strip() for x in valk]
+   valr = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALR')
+   dicmat=dict(zip(valk,valr))
+#   --- PROPRIETES MATERIAUX DEPENDANTES DE LA TEMPERATURE
+   Tempe3D = False
+   if dicmat.has_key('TEMP_DEF') and FOND_FISS and RESULTAT : 
+# on recupere juste le nom du resultat thermique
+      ndim   = 3
+      Lchar = aster.getvectjev(string.ljust(RESULTAT.nom,8)+'.0000.EXCIT.LCHA        ')
+      for i in range(len(Lchar)):
+         resuth = aster.getvectjev(Lchar[i][0:8]+'.CHME.TEMPE.TEMP        ')
+         if resuth !=None :
+            Tempe3D = True
+            break
+   elif dicmat.has_key('TEMP_DEF') and not Tempe3D :
+      message = 'LES PROPRIETES MATERIAUX, NECESSAIRES AUX CALCULS \n'
+      message = message +'DES COEFFICIENTS D INTENSITE DES CONTRAINTES, ONT ETE OBTENUES A LA\n'
+      message = message +'TEMPERATURE DE REFERENCE DU MATERIAU ET NON A LA TEMPERATURE CALCULEE.'
+      UTMESS('A', macro, message)
+      nompar = ('TEMP',)
+      valpar = (dicmat['TEMP_DEF'],)
+      nomres=['E','NU']
+      valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F')
+      e = valres[0]
+      nu = valres[1]
+      
+
+#   --- PROPRIETES MATERIAUX INDEPENDANTES DE LA TEMPERATURE
+   else :
+      e  = dicmat['E']
+      nu = dicmat['NU']  
+   
+   if not Tempe3D :
+      coefd3 = 0.
+      coefd  = e * sqrt(2.*pi)
+      unmnu2 = 1. - nu**2
+      unpnu  = 1. + nu
+      if MODELISATION=='3D' :
+         UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2 K3')
+         ndim   = 3
+         coefd  = coefd      / ( 8.0 * unmnu2 )
+         coefd3 = e*sqrt(2*pi) / ( 8.0 * unpnu )
+         coefg  = unmnu2 / e
+         coefg3 = unpnu  / e
+      elif MODELISATION=='AXIS' :
+         ndim   = 2
+         coefd  = coefd  / ( 8. * unmnu2 )
+         coefg  = unmnu2 / e
+         coefg3 = unpnu  / e
+      elif MODELISATION=='D_PLAN' :
+         UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2')
+         ndim   = 2
+         coefd  = coefd / ( 8. * unmnu2 )
+         coefg  = unmnu2 / e
+         coefg3 = unpnu  / e
+      elif MODELISATION=='C_PLAN' :
+         UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2')
+         ndim   = 2
+         coefd  = coefd / 8.
+         coefg  = 1. / e
+         coefg3 = unpnu / e
+      else :
+         UTMESS('F', macro, 'modélisation non implantée')
+
+
+#   ------------------------------------------------------------------
+#                        CAS FOND_FISS
+#   ------------------------------------------------------------------
+   if FOND_FISS : 
+      MAILLAGE = args['MAILLAGE']
+      NOEUD = args['NOEUD']
+      SANS_NOEUD = args['SANS_NOEUD']
+      GROUP_NO = args['GROUP_NO']
+      SANS_GROUP_NO = args['SANS_GROUP_NO']
+      TOUT = args['TOUT']
+      TYPE_MAILLAGE = args['TYPE_MAILLAGE']
+      NB_NOEUD_COUPE = args['NB_NOEUD_COUPE']
+      LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND      .NOEU        ')
+      RECOL = False
+# Cas double fond de fissure : par convention les noeuds sont ceux de fond_inf
+      if LNOFO==None :
+         RECOL = True
+         LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND_INF  .NOEU        ')
+         if LNOFO==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DES NOEUDS DU FOND DE FISSURE')
+      LNOFO = map(string.rstrip,LNOFO)
+      Nbfond = len(LNOFO)
+
+#   ----------Mots cles TOUT, NOEUD, SANS_NOEUD -------------
+      Typ = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND      .TYPE        ')
+      if (Typ[0]=='SEG2    ') or (Typ[0]=='SEG3    ' and TOUT=='OUI') :
+         pas = 1
+      elif (Typ[0]=='SEG3    ') : 
+         pas = 2
+      else :
+         UTMESS('F', macro, 'TYPE DE MAILLES DU FOND DE FISSURE NON DEFINI')
+####
+      NO_SANS = []
+      NO_AVEC = []
+      if GROUP_NO!=None :
+        collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO')
+        cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE')
+        if type(GROUP_NO) not in EnumTypes : GROUP_NO = (GROUP_NO,)
+        for m in range(len(GROUP_NO)) :
+          ngrno=GROUP_NO[m].ljust(8).upper()
+          if ngrno not in collgrno.keys() :
+            UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE")
+          for i in range(len(collgrno[ngrno])) : NO_AVEC.append(cnom[collgrno[ngrno][i]-1])
+        NO_AVEC= map(string.rstrip,NO_AVEC)
+      if NOEUD!=None : 
+        if type(NOEUD) not in EnumTypes : NO_AVEC = (NOEUD,)
+        else : NO_AVEC = NOEUD
+      if SANS_GROUP_NO!=None :
+        collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO')
+        cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE')
+        if type(SANS_GROUP_NO) not in EnumTypes : SANS_GROUP_NO = (SANS_GROUP_NO,)
+        for m in range(len(SANS_GROUP_NO)) :
+          ngrno=SANS_GROUP_NO[m].ljust(8).upper()
+          if ngrno not in collgrno.keys() :
+            UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE")
+          for i in range(len(collgrno[ngrno])) : NO_SANS.append(cnom[collgrno[ngrno][i]-1])
+        NO_SANS= map(string.rstrip,NO_SANS)
+      if SANS_NOEUD!=None : 
+        if type(SANS_NOEUD) not in EnumTypes : NO_SANS = (SANS_NOEUD,)
+        else : NO_SANS = SANS_NOEUD
+# Creation de la liste des noeuds du fond a traiter : Lnf1
+      Lnf1 = []
+      Nbf1 = 0
+      if len(NO_AVEC)!=0 :
+        for i in range(len(NO_AVEC)) :
+          if NO_AVEC[i] in LNOFO : 
+            Lnf1.append(NO_AVEC[i])
+            Nbf1 = Nbf1 +1
+          else : 
+            UTMESS('F', macro, 'LE NOEUD %s N APPARTIENT PAS AU FOND DE FISSURE'%NO_AVEC[i])
+      else :
+         for i in range(0,Nbfond,pas) :
+            if not (LNOFO[i] in NO_SANS) :
+               Lnf1.append(LNOFO[i])
+               Nbf1 = Nbf1 +1
+
+##### Cas maillage libre###########
+# creation des directions normales et macr_lign_coup
+      if TYPE_MAILLAGE =='LIBRE':
+        if not RESULTAT : UTMESS('F', macro, 'MOT CLE RESULTAT OBLIGATOIRE POUR TYPE_MAILLAGE = LIBRE')
+        Lnofon = Lnf1
+        Nbnofo = Nbf1
+        ListmaS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVRESUP  .MAIL        ')
+        if SYME_CHAR=='SANS':
+          ListmaI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVREINF  .MAIL        ')
+        __NCOFON=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds du fond',
+                                            NOEUD=LNOFO,
+                                            RESULTAT=RESULTAT,
+                                            NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',),
+                                            OPERATION='EXTRACTION',),);
+        tcoorf=__NCOFON.EXTR_TABLE()
+        DETRUIRE(CONCEPT=_F(NOM=__NCOFON),INFO=1) 
+        nbt = len(tcoorf['NOEUD'].values()['NOEUD'])
+        xs=array(tcoorf['COOR_X'].values()['COOR_X'][:nbt],Float)
+        ys=array(tcoorf['COOR_Y'].values()['COOR_Y'][:nbt],Float)
+        if ndim==2 : zs=Numeric.zeros(nbval,Float)
+        elif ndim==3 : zs=array(tcoorf['COOR_Z'].values()['COOR_Z'][:nbt],Float)
+        ns = tcoorf['NOEUD'].values()['NOEUD'][:nbt]
+        ns = map(string.rstrip,ns)
+        l_coorf =  [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)]
+        l_coorf = [(i[0],i[1:]) for i in l_coorf]
+        d_coorf = dict(l_coorf) 
+# Calcul des normales a chaque noeud du fond
+        v1 =  array(VECT_K1)
+        VN = [None]*Nbfond
+        absfon = [0,]
+        DTANOR = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_ORIGINE')
+        if DTANOR != None :
+          VN[0] = array(DTANOR)
+        else :
+          Pfon2 = array([d_coorf[LNOFO[0]][0],d_coorf[LNOFO[0]][1],d_coorf[LNOFO[0]][2]])
+          Pfon3 = array([d_coorf[LNOFO[1]][0],d_coorf[LNOFO[1]][1],d_coorf[LNOFO[1]][2]])
+          VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2))
+          VN[i] = array(cross_product(VT,v1))
+        for i in range(1,Nbfond-1):
+          Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]])
+          Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]])
+          Pfon3 = array([d_coorf[LNOFO[i+1]][0],d_coorf[LNOFO[i+1]][1],d_coorf[LNOFO[i+1]][2]])
+          absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
+          absfon.append(absf)
+          VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2))
+          VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1))
+          VN[i] = array(cross_product(VT,v1)) 
+          VN[i] = VN[i]/sqrt(dot(transpose(VN[i]),VN[i]))
+        i = Nbfond-1
+        Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]])
+        Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]])
+        absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
+        absfon.append(absf)
+        DTANEX = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_EXTREMITE')
+        if DTANEX != None :
+          VN[i] = array(DTANEX)
+        else :
+          VT = (Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1))
+          VN[i] = array(cross_product(VT,v1))
+        dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)])  
+        dicVN = dict([(LNOFO[i],VN[i]) for i in range(Nbfond)])
+#Extraction dep sup/inf sur les normales          
+        TlibS = [None]*Nbf1
+        TlibI = [None]*Nbf1
+        if NB_NOEUD_COUPE < 3 : 
+          message = 'LE NOMBRE DE NOEUDS NB_NOEUD_COUPE DOIT ETRE SUPERIEUR A 3 : ON PREND LA VALEUR PAR DEFAUT'
+          UTMESS('A', macro, message)
+          NB_NOEUD_COUPE = 5
+        MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL        ')
+        if MOD==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DU MODELE DANS LA SD RESULTAT FOURNIE')
+        MOD = map(string.rstrip,MOD)
+        MODEL = self.jdc.sds_dict[MOD[0]]
+        for i in range(Nbf1):
+          Porig = array(d_coorf[Lnf1[i]] )
+          Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]]
+          TlibS[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT,
+                NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaS,
+                LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],),
+                                          COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),),);
+          if SYME_CHAR=='SANS':
+            TlibI[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT,
+                  NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaI,
+                LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],),
+                                          COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),),);
+
+
+##### Cas maillage regle###########
+      else:
+#   ---------- Dictionnaires des levres  -------------  
+        NnormS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.SUPNORM   .NOEU        ')
+        if NnormS==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DES NOEUDS DES LEVRES')
+        NnormS = map(string.rstrip,NnormS)
+        if LNOFO[0]==LNOFO[-1] : Nbfond=Nbfond-1  # Cas fond de fissure ferme
+        NnormS = [[LNOFO[i],NnormS[i*20:(i+1)*20]] for i in range(0,Nbfond)]
+        NnormS = [(i[0],i[1][0:]) for i in NnormS]
+        dicoS = dict(NnormS)
+        if SYME_CHAR=='SANS':
+           NnormI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.INFNORM   .NOEU        ')
+           NnormI = map(string.rstrip,NnormI)
+           NnormI = [[LNOFO[i],NnormI[i*20:(i+1)*20]] for i in range(0,Nbfond)]
+           NnormI = [(i[0],i[1][0:]) for i in NnormI]
+           dicoI = dict(NnormI)
+
+#   ---------- Dictionnaire des coordonnees  -------------  
+        if RESULTAT :
+          Ltot = LNOFO
+          for i in range(Nbf1) :
+            for k in range(0,20) :
+              if dicoS[Lnf1[i]][k] !='': Ltot.append(dicoS[Lnf1[i]][k])
+          if SYME_CHAR=='SANS':
+            for i in range(Nbf1) :
+              for k in range(0,20) :
+                if dicoI[Lnf1[i]][k] !='': Ltot.append(dicoI[Lnf1[i]][k])
+          Ltot=dict([(i,0) for i in Ltot]).keys()
+          __NCOOR=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds des levres',
+                                            NOEUD=Ltot,
+                                            RESULTAT=RESULTAT,
+                                            NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',),
+                                            OPERATION='EXTRACTION',),);
+          tcoor=__NCOOR.EXTR_TABLE()
+          DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1)  
+        else :  
+          if SYME_CHAR=='SANS':
+            __NCOOR=CALC_TABLE(TABLE=TABL_DEPL_SUP,
+                        ACTION=_F(OPERATION = 'COMB',NOM_PARA='NOEUD',TABLE=TABL_DEPL_INF,))
+            tcoor=__NCOOR.EXTR_TABLE()
+            DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1)  
+          else :
+            tcoor=TABL_DEPL_SUP.EXTR_TABLE()
+        nbt = len(tcoor['NOEUD'].values()['NOEUD'])
+        xs=array(tcoor['COOR_X'].values()['COOR_X'][:nbt],Float)
+        ys=array(tcoor['COOR_Y'].values()['COOR_Y'][:nbt],Float)
+        if ndim==2 : zs=Numeric.zeros(nbval,Float)
+        elif ndim==3 : zs=array(tcoor['COOR_Z'].values()['COOR_Z'][:nbt],Float)
+        ns = tcoor['NOEUD'].values()['NOEUD'][:nbt]
+        ns = map(string.rstrip,ns)
+        l_coor =  [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)]
+        l_coor = [(i[0],i[1:]) for i in l_coor]
+        d_coor = dict(l_coor)
+
+#   ---------- Abscisse curviligne du fond  -------------  
+        absfon = [0,]
+        for i in range(Nbfond-1) :
+          Pfon1 = array([d_coor[LNOFO[i]][0],d_coor[LNOFO[i]][1],d_coor[LNOFO[i]][2]])
+          Pfon2 = array([d_coor[LNOFO[i+1]][0],d_coor[LNOFO[i+1]][1],d_coor[LNOFO[i+1]][2]])
+          absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i]
+          absfon.append(absf)
+        dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)])
+
+     
+# ---Noeuds LEVRE_SUP et LEVRE_INF: ABSC_CURV_MAXI et PREC_VIS_A_VIS-----
+   
+        NBTRLS = 0
+        NBTRLI = 0
+        Lnosup = [None]*Nbf1
+        Lnoinf = [None]*Nbf1
+        Nbnofo = 0
+        Lnofon = []
+        precv = PREC_VIS_A_VIS
+        if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI
+        else                   : rmax = 100
+        precn = precv * rmax
+        rmprec= rmax*(1.+precv/10.)
+        for i in range(0,Nbf1) :
+           Pfon = array([d_coor[Lnf1[i]][0],d_coor[Lnf1[i]][1],d_coor[Lnf1[i]][2]])
+           Tmpsup = []
+           Tmpinf = []
+           itots = 0
+           itoti = 0
+           NBTRLS = 0
+           NBTRLI = 0
+           for k in range(0,20) :
+              if dicoS[Lnf1[i]][k] !='':
+                 itots = itots +1
+                 Nsup =  dicoS[Lnf1[i]][k]
+                 Psup = array([d_coor[Nsup][0],d_coor[Nsup][1],d_coor[Nsup][2]])
+                 abss = sqrt(dot(transpose(Pfon-Psup),Pfon-Psup))
+                 if abss<rmprec :
+                    NBTRLS = NBTRLS +1
+                    Tmpsup.append(dicoS[Lnf1[i]][k])
+              if SYME_CHAR=='SANS':
+                 if dicoI[Lnf1[i]][k] !='':
+                    itoti = itoti +1
+                    Ninf =  dicoI[Lnf1[i]][k]
+                    Pinf = array([d_coor[Ninf][0],d_coor[Ninf][1],d_coor[Ninf][2]])
+                    absi = sqrt(dot(transpose(Pfon-Pinf),Pfon-Pinf))
+# On verifie que les noeuds sont en vis a vis
+                    if abss<rmprec :
+                      dist = sqrt(dot(transpose(Psup-Pinf),Psup-Pinf))
+                      if dist>precn : 
+                        message= 'LES NOEUDS NE SONT PAS EN VIS-A-VIS \n'
+                        message=message+'DANS LE PLAN PERPENDICULAIRE AU NOEUD %s \n'%Lnf1[i]
+                        UTMESS('A', macro, message)
+                      else :
+                        NBTRLI = NBTRLI +1
+                        Tmpinf.append(dicoI[Lnf1[i]][k])
+# On verifie qu il y a assez de noeuds
+           if NBTRLS < 3 : 
+              message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n'
+              message=message+'SUPERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i]
+              if itots<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n'
+              else : message=message+' Augmenter ABSC_CURV_MAXI'
+              if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES'
+              UTMESS('A',macro, message)
+           elif (SYME_CHAR=='SANS') and (NBTRLI < 3) :
+              message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n'
+              message=message+'INFERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i]
+              if itoti<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n'
+              else : message=message+' Augmenter ABSC_CURV_MAXI'
+              if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES'
+              UTMESS('A',macro, message)
+           else :
+              Lnosup[Nbnofo] = Tmpsup
+              if SYME_CHAR=='SANS' : Lnoinf[Nbnofo] = Tmpinf
+              Lnofon.append(Lnf1[i])
+              Nbnofo = Nbnofo+1
+              
+   else :
+     Nbnofo = 1
+  
+#   ----------Recuperation de la temperature au fond -------------  
+   if Tempe3D :
+      resuth = map(string.rstrip,resuth)
+      Rth = self.jdc.sds_dict[resuth[0]]
+      __TEMP=POST_RELEVE_T(ACTION=_F(INTITULE='Temperature fond de fissure',
+                                       NOEUD=Lnofon,TOUT_CMP='OUI',
+                                       RESULTAT=Rth,NOM_CHAM='TEMP',TOUT_ORDRE='OUI',
+                                       OPERATION='EXTRACTION',),);
+      tabtemp=__TEMP.EXTR_TABLE()
+      DETRUIRE(CONCEPT=_F(NOM=__TEMP),INFO=1) 
+   
+
+#   ------------------------------------------------------------------
+#                         BOUCLE SUR NOEUDS DU FOND
+#   ------------------------------------------------------------------
+   for ino in range(0,Nbnofo) :
+      if FOND_FISS and INFO==2 :
+            texte="\n\n--> TRAITEMENT DU NOEUD DU FOND DE FISSURE: %s"%Lnofon[ino]
+            aster.affiche('MESSAGE',texte)
+#   ------------------------------------------------------------------
+#                         TABLE 'DEPSUP'
+#   ------------------------------------------------------------------
+      if FOND_FISS : 
+         if TYPE_MAILLAGE =='LIBRE':
+            tabsup=TlibS[ino].EXTR_TABLE()
+            DETRUIRE(CONCEPT=_F(NOM=TlibS[ino]),INFO=1)
+         elif RESULTAT :
+            __TSUP=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement SUP',
+                                          NOEUD=Lnosup[ino],
+                                          RESULTAT=RESULTAT,
+                                          NOM_CHAM='DEPL',
+                                          TOUT_ORDRE='OUI',
+                                          NOM_CMP=('DX','DY','DZ',),
+                                          OPERATION='EXTRACTION',),);
+            tabsup=__TSUP.EXTR_TABLE()
+            DETRUIRE(CONCEPT=_F(NOM=__TSUP),INFO=1)      
+         else :
+            tabsup=TABL_DEPL_SUP.EXTR_TABLE()
+            veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim)
+            Ls = [string.ljust(Lnosup[ino][i],8) for i in range(len(Lnosup[ino]))]
+            tabsup=tabsup.NOEUD==Ls
+      else :
+         tabsup=TABL_DEPL_SUP.EXTR_TABLE()
+         veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim)
+
+#   ------------------------------------------------------------------
+#                          TABLE 'DEPINF'
+#   ------------------------------------------------------------------
+      if SYME_CHAR=='SANS': 
+         if FOND_FISS : 
+            if TYPE_MAILLAGE =='LIBRE':
+               tabinf=TlibI[ino].EXTR_TABLE()
+               DETRUIRE(CONCEPT=_F(NOM=TlibI[ino]),INFO=1)
+            elif RESULTAT :
+               __TINF=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement INF',
+                                          NOEUD=Lnoinf[ino],
+                                          RESULTAT=RESULTAT,
+                                          NOM_CHAM='DEPL',
+                                          TOUT_ORDRE='OUI',
+                                          NOM_CMP=('DX','DY','DZ',),
+                                          OPERATION='EXTRACTION',),);
+               tabinf=__TINF.EXTR_TABLE()   
+               DETRUIRE(CONCEPT=_F(NOM=__TINF),INFO=1)                 
+            else :
+               tabinf=TABL_DEPL_INF.EXTR_TABLE()
+               if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS')
+               veri_tab(tabinf,TABL_DEPL_INF.nom,ndim)
+               Li = [string.ljust(Lnoinf[ino][i],8) for i in range(len(Lnoinf[ino]))]
+               tabinf=tabinf.NOEUD==Li
+         else :
+            if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS')
+            tabinf=TABL_DEPL_INF.EXTR_TABLE()
+            veri_tab(tabinf,TABL_DEPL_INF.nom,ndim)
+
+
+#   ------------------------------------------------------------------
+#               LES INSTANTS DE POST-TRAITEMENT
+#   ------------------------------------------------------------------
+      if 'INST' in tabsup.para : 
+         l_inst=None
+         l_inst_tab=tabsup['INST'].values()['INST']
+         l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys() #elimine les doublons
+         if LIST_ORDRE !=None or NUME_ORDRE !=None :
+           l_ord_tab = tabsup['NUME_ORDRE'].values()['NUME_ORDRE']
+           l_ord_tab=dict([(i,0) for i in l_ord_tab]).keys() 
+           d_ord_tab= [[l_ord_tab[i],l_inst_tab[i]] for i in range(0,len(l_ord_tab))]
+           d_ord_tab= [(i[0],i[1]) for i in d_ord_tab]
+           d_ord_tab = dict(d_ord_tab)
+           if NUME_ORDRE !=None : 
+             if type(NUME_ORDRE) not in EnumTypes : NUME_ORDRE=(NUME_ORDRE,)
+             l_ord=list(NUME_ORDRE)
+           elif LIST_ORDRE !=None : 
+              l_ord= aster.getvectjev(string.ljust(LIST_ORDRE.nom,19)+'.VALE') 
+           l_inst = []
+           for ord in l_ord :
+             if ord in l_ord_tab : l_inst.append(d_ord_tab[ord])
+             else :  
+               message ='LE NUMERO D ORDRE %i N A PAS ETE ETE TROUVE DANS LA TABLE\n'%ord 
+               UTMESS('F', macro, message)
+         if INST !=None or LIST_INST !=None :
+            CRITERE = args['CRITERE']
+            PRECISION = args['PRECISION']
+         else :
+            l_inst=l_inst_tab
+            PRECISION = 1.E-6
+            CRITERE='ABSOLU'
+         if        INST !=None : 
+            if type(INST) not in EnumTypes : INST=(INST,)
+            l_inst=list(INST)
+         elif LIST_INST !=None : l_inst=LIST_INST.Valeurs()
+         if      l_inst !=None :
+           for inst in l_inst  :
+               if CRITERE=='RELATIF' and inst!=0.: match=[x for x in l_inst_tab if abs((inst-x)/inst)<PRECISION]
+               else                              : match=[x for x in l_inst_tab if abs(inst-x)<PRECISION]
+               if len(match)==0 : 
+                 message = 'PAS D INSTANT TROUVE DANS LA TABLE POUR L INSTANT %f\n'%inst
+                 UTMESS('F', macro, message)
+               if len(match)>=2 :
+                 message = 'PLUSIEURS INSTANTS TROUVES DANS LA TABLE POUR L INSTANT %f\n'%inst 
+                 UTMESS('F', macro, message)
+         else                  :
+           l_inst  = l_inst_tab
+      else :
+         l_inst  = [None,]
+   
+#   ------------------------------------------------------------------
+#                         BOUCLE SUR LES INSTANTS
+#   ------------------------------------------------------------------
+      for iord in range(len(l_inst)) :
+        inst=l_inst[iord]
+        if INFO==2 and inst!=None:
+            texte="==> INSTANT: %f"%inst
+            aster.affiche('MESSAGE',texte)
+        if inst!=None:
+           if PRECISION == None : PRECISION = 1.E-6
+           if CRITERE == None : CRITERE='ABSOLU'
+           if inst==0. :
+             tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION)
+             if SYME_CHAR=='SANS': tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION)
+           else :
+             tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION)
+             if SYME_CHAR=='SANS': tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION)
+        else :
+           tabsupi=tabsup
+           if SYME_CHAR=='SANS': tabinfi=tabinf
+
+#     --- LEVRE SUP :  "ABSC_CURV" CROISSANTES, < RMAX ET DEP ---
+        abscs = getattr(tabsupi,'ABSC_CURV').values()
+        if not FOND_FISS :
+          refs=copy.copy(abscs)
+          refs.sort()
+          if refs!=abscs : UTMESS('F', macro, 'ABSC_CURV NON CROISSANTS POUR TABL_DEPL_INF')
+          if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI
+          else                    : rmax = abscs[-1]
+          precv = PREC_VIS_A_VIS
+          rmprec= rmax*(1.+precv/10.)
+          refsc=[x for x in refs if x<rmprec]
+          nbval = len(refsc)
+        else :
+          nbval=len(abscs)
+        abscs=array(abscs[:nbval])
+        coxs=array(tabsupi['COOR_X'].values()['COOR_X'][:nbval],Float)
+        coys=array(tabsupi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
+        if ndim==2 :  cozs=Numeric.zeros(nbval,Float)
+        elif ndim==3 :  cozs=array(tabsupi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
+
+        if FOND_FISS and not RESULTAT : #tri des noeuds avec abscisse
+          Pfon = array([d_coor[Lnofon[ino]][0],d_coor[Lnofon[ino]][1],d_coor[Lnofon[ino]][2]])
+          abscs = sqrt((coxs-Pfon[0])**2+(coys-Pfon[1])**2+(cozs-Pfon[2])**2)
+          tabsupi['Abs_fo'] = abscs
+          tabsupi.sort('Abs_fo')
+          abscs = getattr(tabsupi,'Abs_fo').values()
+          abscs=array(abscs[:nbval])
+          coxs=array(tabsupi['COOR_X'].values()['COOR_X'][:nbval],Float)
+          coys=array(tabsupi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
+          if ndim==2 :  cozs=Numeric.zeros(nbval,Float)
+          elif ndim==3 :  cozs=array(tabsupi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
+          
+        if FOND_FISS and INFO==2 and iord==0 and not TYPE_MAILLAGE =='LIBRE':
+          for ks in range(0,nbval) :
+            texte="NOEUD RETENU POUR LA LEVRE SUP: %s  %f"%(Lnosup[ino][ks],abscs[ks])
+            aster.affiche('MESSAGE',texte)
+        dxs=array(tabsupi['DX'].values()['DX'][:nbval],Float)
+        dys=array(tabsupi['DY'].values()['DY'][:nbval],Float)
+        if ndim==2 : dzs=Numeric.zeros(nbval,Float)
+        elif ndim==3 : dzs=array(tabsupi['DZ'].values()['DZ'][:nbval],Float)
+        
+#     --- LEVRE INF :  "ABSC_CURV" CROISSANTES et < RMAX ---
+        if SYME_CHAR=='SANS': 
+          absci = getattr(tabinfi,'ABSC_CURV').values()
+          if not FOND_FISS :
+            refi=copy.copy(absci)
+            refi.sort()
+            if refi!=absci : UTMESS('F', macro, 'ABSC_CURV NON CROISSANTS POUR TABL_DEPL_SUP')
+            refic=[x for x in refi if x<rmprec]
+            nbvali=len(refic)
+          else :
+            nbvali=len(absci)
+          if nbvali!=nbval :
+             message= 'DIFFERENCE DE POINTS ENTRE LA LEVRE SUPERIEURE ET LA LEVRE INFERIEURE'
+             if FOND_FISS : message=message+' POUR TRAITER LE NOEUD %.s \n'%Lnofon[i]
+             message=message+' Nombre de points - levre superieure : %i\n'%len(refsc)
+             message=message+' Nombre de points - levre inferieure : %i\n'%len(refic)
+             UTMESS('A',macro, message)
+          nbval=min(nbval,nbvali)
+          absci=array(absci[:nbval])
+          coxi=array(tabinfi['COOR_X'].values()['COOR_X'][:nbval],Float)
+          coyi=array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
+          if ndim==2 : cozi=Numeric.zeros(nbval,Float)
+          elif ndim==3 : cozi=array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
+#     --- ON VERIFIE QUE LES NOEUDS SONT EN VIS_A_VIS  (SYME=SANS)   ---
+          if not FOND_FISS :
+            precn = precv * rmax
+            dist=(coxs-coxi)**2+(coys-coyi)**2+(cozs-cozi)**2
+            dist=sqrt(dist)
+            for d in dist :
+               if d>precn : UTMESS('F', macro, 'LES NOEUDS NE SONT PAS EN VIS_A_VIS')
+          
+          if FOND_FISS and not RESULTAT :#tri des noeuds avec abscisse
+            Pfon = array([d_coor[Lnofon[ino]][0],d_coor[Lnofon[ino]][1],d_coor[Lnofon[ino]][2]])
+            absci = sqrt((coxi-Pfon[0])**2+(coyi-Pfon[1])**2+(cozi-Pfon[2])**2)
+            tabinfi['Abs_fo'] = absci
+            tabinfi.sort('Abs_fo')
+            absci = getattr(tabinfi,'Abs_fo').values()
+            absci=array(abscs[:nbval])
+            coxi=array(tabinfi['COOR_X'].values()['COOR_X'][:nbval],Float)
+            coyi=array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
+            if ndim==2 :  cozi=Numeric.zeros(nbval,Float)
+            elif ndim==3 :  cozi=array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
+
+          dxi=array(tabinfi['DX'].values()['DX'][:nbval],Float)
+          dyi=array(tabinfi['DY'].values()['DY'][:nbval],Float)
+          if ndim==2 : dzi=Numeric.zeros(nbval,Float)
+          elif ndim==3 : dzi=array(tabinfi['DZ'].values()['DZ'][:nbval],Float)
+          
+          if FOND_FISS and INFO==2 and iord==0 and not TYPE_MAILLAGE =='LIBRE':
+            for ki in range(0,nbval) :
+               texte="NOEUD RETENU POUR LA LEVRE INF: %s  %f"%(Lnoinf[ino][ki],absci[ki])
+               aster.affiche('MESSAGE',texte)
+
+#     --- TESTS NOMBRE DE NOEUDS---
+        if nbval<3 :
+           message= 'IL FAUT AU MOINS TROIS NOEUDS DANS LE PLAN DEFINI PAR LES LEVRES ET PERPENDICULAIRE AU FOND DE FISSURE'
+           if FOND_FISS : message=message+'Noeud %.s \n'%Lnofon[ino]
+           message=message+' : augmenter ABSC_CURV_MAXI\n'
+           UTMESS('F',macro, message)
+           
+#   ---------- CALCUL PROP. MATERIAU AVEC TEMPERATURE -----------  
+        if Tempe3D :
+           tempeno=tabtemp.NOEUD==Lnofon[ino]
+           tempeno=tempeno.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION)
+           nompar = ('TEMP',)
+           valpar = (tempeno.values(),)
+           nomres=['E','NU']
+           valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F')
+           e = valres[0]
+           nu = valres[1] 
+           coefd  = e * sqrt(2.*pi)      / ( 8.0 * (1. - nu**2))
+           coefd3 = e*sqrt(2*pi) / ( 8.0 * (1. + nu))
+           coefg  = (1. - nu**2) / e
+           coefg3 = (1. + nu)  / e
+
+#     ------------------------------------------------------------------
+#                           CHANGEMENT DE REPERE
+#     ------------------------------------------------------------------
+#
+#       1 : VECTEUR NORMAL AU PLAN DE LA FISSURE
+#           ORIENTE LEVRE INFERIEURE VERS LEVRE SUPERIEURE
+#       2 : VECTEUR NORMAL AU FOND DE FISSURE EN M
+#       3 : VECTEUR TANGENT AU FOND DE FISSURE EN M
+#
+        if SYME_CHAR=='SANS' :
+           vo =  array([( coxs[-1]+coxi[-1] )/2.,( coys[-1]+coyi[-1] )/2.,( cozs[-1]+cozi[-1] )/2.])
+           ve =  array([( coxs[0 ]+coxi[0 ] )/2.,( coys[0 ]+coyi[0 ] )/2.,( cozs[0 ]+cozi[0 ] )/2.])
+        else :
+           vo = array([ coxs[-1], coys[-1], cozs[-1]])
+           ve = array([ coxs[0], coys[0], cozs[0]])
+        v1 =  array(VECT_K1)
+        v2 =  ve-vo
+        v2 =  v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2)
+        v1p = sum(v2*v1)
+        v1  = v1-v1p*v2
+        v1  = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2)
+        v3  = array([v1[1]*v2[2]-v2[1]*v1[2],v1[2]*v2[0]-v2[2]*v1[0],v1[0]*v2[1]-v2[0]*v1[1]])
+        pgl  = asarray([v1,v2,v3])
+        dpls = asarray([dxs,dys,dzs])
+        dpls = matrixmultiply(pgl,dpls)
+        if SYME_CHAR=='SANS' :
+           dpli = asarray([dxi,dyi,dzi])
+           dpli = matrixmultiply(pgl,dpli)
+        else :
+           dpli = [multiply(dpls[0],-1.),dpls[1],dpls[2]]
+#     ------------------------------------------------------------------
+#                           CALCUL DES K1, K2, K3
+#     ------------------------------------------------------------------
+        saut=(dpls-dpli)
+        isig=sign(transpose(resize(saut[:,-1],(nbval-1,3))))
+        isig=sign(isig+0.001)
+        saut=saut*array([[coefd]*nbval,[coefd]*nbval,[coefd3]*nbval])
+        saut=saut**2
+        ksig = isig[:,1]
+        ksig = array([ksig,ksig])
+        ksig = transpose(ksig)
+        kgsig=resize(ksig,(1,6))[0]
+        if INFO==2 :
+          mcfact=[]
+          mcfact.append(_F(PARA='ABSC_CURV'  ,LISTE_R=abscs.tolist() ))
+          mcfact.append(_F(PARA='DEPL_SUP_DX',LISTE_R=dpls[0].tolist() ))
+          mcfact.append(_F(PARA='DEPL_INF_DX',LISTE_R=dpli[0].tolist() ))
+          mcfact.append(_F(PARA='SAUT_DX'    ,LISTE_R=saut[0].tolist() ))
+          mcfact.append(_F(PARA='DEPL_SUP_DY',LISTE_R=dpls[1].tolist() ))
+          mcfact.append(_F(PARA='DEPL_INF_DY',LISTE_R=dpli[1].tolist() ))
+          mcfact.append(_F(PARA='SAUT_DY'    ,LISTE_R=saut[1].tolist() ))
+          if ndim==3 :
+            mcfact.append(_F(PARA='DEPL_SUP_DZ',LISTE_R=dpls[2].tolist() ))
+            mcfact.append(_F(PARA='DEPL_INF_DZ',LISTE_R=dpli[2].tolist() ))
+            mcfact.append(_F(PARA='SAUT_DZ'    ,LISTE_R=saut[2].tolist() ))
+          __resu0=CREA_TABLE(LISTE=mcfact,TITRE='--> SAUTS')
+          aster.affiche('MESSAGE',__resu0.EXTR_TABLE().__repr__())
+          DETRUIRE(CONCEPT=_F(NOM=__resu0),INFO=1)
+#     ------------------------------------------------------------------
+#                           --- METHODE 1 ---
+#     ------------------------------------------------------------------
+        x1 = abscs[1:-1]
+        x2 = abscs[2:  ]
+        y1 = saut[:,1:-1]/x1
+        y2 = saut[:,2:  ]/x2
+        k  = abs(y1-x1*(y2-y1)/(x2-x1))
+        g  = coefg*(k[0]+k[1])+coefg3*k[2]
+        kg1 = [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
+        kg1 = sqrt(kg1)*kgsig
+        kg1=Numeric.concatenate([kg1,[max(g),min(g)]])
+        vk  = sqrt(k)*isig[:,:-1]
+        if INFO==2 :
+          mcfact=[]
+          mcfact.append(_F(PARA='ABSC_CURV_1' ,LISTE_R=x1.tolist() ))
+          mcfact.append(_F(PARA='ABSC_CURV_2' ,LISTE_R=x2.tolist() ))
+          mcfact.append(_F(PARA='K1'          ,LISTE_R=vk[0].tolist() ))
+          mcfact.append(_F(PARA='K2'          ,LISTE_R=vk[1].tolist() ))
+          if ndim==3 :
+            mcfact.append(_F(PARA='K3'        ,LISTE_R=vk[2].tolist() ))
+          mcfact.append(_F(PARA='G'           ,LISTE_R=g.tolist() ))
+          __resu1=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 1')
+          aster.affiche('MESSAGE',__resu1.EXTR_TABLE().__repr__())
+          DETRUIRE(CONCEPT=_F(NOM=__resu1),INFO=1)
+#     ------------------------------------------------------------------
+#                           --- METHODE 2 ---
+#     ------------------------------------------------------------------
+        x1 = abscs[1: ]
+        y1 = saut[:,1:]
+        k  = abs(y1/x1)
+        g  = coefg*(k[0]+k[1])+coefg3*k[2]
+        kg2= [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
+        kg2 = sqrt(kg2)*kgsig
+        kg2=Numeric.concatenate([kg2,[max(g),min(g)]])
+        vk = sqrt(k)*isig
+        if INFO==2 :
+          mcfact=[]
+          mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=x1.tolist() ))
+          mcfact.append(_F(PARA='K1'        ,LISTE_R=vk[0].tolist() ))
+          mcfact.append(_F(PARA='K2'        ,LISTE_R=vk[1].tolist() ))
+          if ndim==3 :
+            mcfact.append(_F(PARA='K3'      ,LISTE_R=vk[2].tolist() ))
+          mcfact.append(_F(PARA='G'         ,LISTE_R=g.tolist() ))
+          __resu2=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 2')
+          aster.affiche('MESSAGE',__resu2.EXTR_TABLE().__repr__())
+          DETRUIRE(CONCEPT=_F(NOM=__resu2),INFO=1)
+#     ------------------------------------------------------------------
+#                           --- METHODE 3 ---
+#     ------------------------------------------------------------------
+        x1 = abscs[:-1]
+        x2 = abscs[1: ]
+        y1 = saut[:,:-1]
+        y2 = saut[:,1: ]
+        k  = (sqrt(y2)*sqrt(x2)+sqrt(y1)*sqrt(x1))*(x2-x1)
+        k  = Numeric.sum(transpose(k))
+        de = abscs[-1]
+        vk = (k/de**2)*isig[:,0]
+        g  = coefg*(vk[0]**2+vk[1]**2)+coefg3*vk[2]**2
+        kg3=Numeric.concatenate([[vk[0]]*2,[vk[1]]*2,[vk[2]]*2,[g]*2])
+        if INFO==2 :
+          mcfact=[]
+          mcfact.append(_F(PARA='K1'        ,LISTE_R=vk[0] ))
+          mcfact.append(_F(PARA='K2'        ,LISTE_R=vk[1] ))
+          if ndim==3 :
+            mcfact.append(_F(PARA='K3'      ,LISTE_R=vk[2] ))
+          mcfact.append(_F(PARA='G'         ,LISTE_R=g ))
+          __resu3=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 3')
+          aster.affiche('MESSAGE',__resu3.EXTR_TABLE().__repr__())
+          DETRUIRE(CONCEPT=_F(NOM=__resu3),INFO=1)
+#     ------------------------------------------------------------------
+#                           CREATION DE LA TABLE 
+#     ------------------------------------------------------------------
+        kg=array([kg1,kg2,kg3])
+        kg=transpose(kg)
+        mcfact=[]
+        if TITRE != None :
+          titre = TITRE
+        else :
+          v = aster.__version__
+          titre = 'ASTER %s - CONCEPT CALCULE PAR POST_K1_K2_K3 LE &DATE A &HEURE \n'%v
+        if FOND_FISS : 
+          mcfact.append(_F(PARA='NOEUD_FOND',LISTE_K=[Lnofon[ino],]*3))
+          mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[dicoF[Lnofon[ino]]]*3))
+        mcfact.append(_F(PARA='METHODE',LISTE_I=(1,2,3)))
+        mcfact.append(_F(PARA='K1_MAX' ,LISTE_R=kg[0].tolist() ))
+        mcfact.append(_F(PARA='K1_MIN' ,LISTE_R=kg[1].tolist() ))
+        mcfact.append(_F(PARA='K2_MAX' ,LISTE_R=kg[2].tolist() ))
+        mcfact.append(_F(PARA='K2_MIN' ,LISTE_R=kg[3].tolist() ))
+        if ndim==3 :
+          mcfact.append(_F(PARA='K3_MAX' ,LISTE_R=kg[4].tolist() ))
+          mcfact.append(_F(PARA='K3_MIN' ,LISTE_R=kg[5].tolist() ))
+        mcfact.append(_F(PARA='G_MAX'  ,LISTE_R=kg[6].tolist() ))
+        mcfact.append(_F(PARA='G_MIN'  ,LISTE_R=kg[7].tolist() ))
+        if  (ino==0 and iord==0) and inst==None :
+           tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre)
+        elif iord==0 and ino==0 and inst!=None :
+           mcfact=[_F(PARA='INST'  ,LISTE_R=[inst,]*3      )]+mcfact
+           tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre)
+        else :
+           if inst!=None : mcfact=[_F(PARA='INST'  ,LISTE_R=[inst,]*3     )]+mcfact
+           __tabi=CREA_TABLE(LISTE=mcfact,)
+           npara = ['K1_MAX','METHODE']
+           if inst!=None : npara.append('INST')
+           if FOND_FISS : npara.append('NOEUD_FOND')
+           tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,TITRE = titre,
+                              ACTION=_F(OPERATION = 'COMB',NOM_PARA=npara,TABLE=__tabi,))
+
+# Tri pour conserver le meme ordre que operateur initial en fortran
+   if len(l_inst)!=1 and FOND_FISS :
+      tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,
+                      ACTION=_F(OPERATION = 'TRI',NOM_PARA=('INST','ABSC_CURV','METHODE'),ORDRE='CROISSANT'))
+
+   return ier
index 051cc4b4b11ec62c332d3ac90dd0c6c0f512e198..429de101746f4f8cc6c58504f8065e55c5b24b82 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF reca_algo Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF reca_algo Macro  DATE 31/01/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -21,7 +21,7 @@
 
 
 import Numeric
-from Numeric import take
+from Numeric import take, size
 import copy,os
 import LinearAlgebra 
 from Cata.cata import INFO_EXEC_ASTER
@@ -175,8 +175,15 @@ def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out
             dval[i]=borne_inf[i]-val[i]
             s[i]=-1.
       if (len(I)!=0):
-         # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act))
-          xi=-LinearAlgebra.solve_linear_equations(take(take(Q,I),I,1),(take(d,I)+Numeric.dot(take(take(Q,I),Act,1),take(Dim.adim(dval),Act))))
+          # xi=-Q(I)-1.(d(I)+Q(I,Act).dval(Act))
+          t_QI = take(Q, I)
+          t_tQI_Act = take(t_QI, Act, 1)
+          t_adim_Act = take(Dim.adim(dval), Act)
+          if size(t_tQI_Act) > 0 and size(t_adim_Act) > 0:
+             smemb = take(d, I) + Numeric.dot(t_tQI_Act, t_adim_Act)
+          else:
+             smemb = take(d, I)
+          xi=-LinearAlgebra.solve_linear_equations(take(t_QI, I, 1), smemb)
           for i in Numeric.arange(len(I)):
              dval[I[i]]=xi[i]*val_init[I[i]]
       if (len(Act)!=0):
index b159c615c60414dddab0c46738604addd33a2467..51af193acb8f40f432ad30ea07b04e42da14781d 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF stanley_ops Macro  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
+#@ MODIF stanley_ops Macro  DATE 15/05/2006   AUTEUR ASSIRE A.ASSIRE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -31,6 +31,7 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args):
   from Accas import _F
   from Noyau.N_utils import AsType
   from Utilitai.Utmess import UTMESS
+  from Utilitai.UniteAster import UniteAster
 
   ier=0
 
@@ -42,6 +43,14 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args):
     UTMESS('I','STANLEY', 'Redefinition du DISPLAY vers : ' + DISPLAY)
     os.environ['DISPLAY'] = DISPLAY
 
+  # Mode validation de la non-regression
+  if args['UNITE_VALIDATION']:
+     UTMESS('I','STANLEY', 'Stanley fonctionne en mode validation de non-regresion')
+     UL = UniteAster()
+     FICHIER_VALID=UL.Nom(args['UNITE_VALIDATION'])
+  else:
+     FICHIER_VALID=None
+
   # On ne lance Stanley que si la variable DISPLAY est définie
   if os.environ.has_key('DISPLAY'):
   
@@ -57,7 +66,7 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args):
       else:
         stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None)
     else:
-      stanley.PRE_STANLEY()
+      stanley.PRE_STANLEY(FICHIER_VALID)
 
   else:
       UTMESS('A','STANLEY',
index 13487d1f2651483b93d5c865b450632b37ba3723..878b87832884eabeeaffd58a237298f7f8fd4529 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF test_fichier_ops Macro  DATE 19/09/2005   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF test_fichier_ops Macro  DATE 13/03/2006   AUTEUR CIBHHLV L.VIVAN 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -26,7 +26,7 @@ import math
 import md5
 
 #-------------------------------------------------------------------------------
-def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args):
+def test_fichier_ops(self, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **args):
    """
      Macro TEST_FICHIER permettant de tester la non-regression d'un fichier
      'a une tolerance' pres pour les nombres reels en calculant
@@ -109,8 +109,7 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **
                             _F(PARA='BOOLEEN',
                                LISTE_I=is_ok,),),)
    if args['REFERENCE'] == 'NON_REGRESSION':
-      TEST_TABLE(UNITE=UNITE,
-                 TABLE=tab1__,
+      TEST_TABLE(TABLE=tab1__,
                  FILTRE=_F(NOM_PARA='TEST',
                            VALE_K='VALEUR  ',),
                  NOM_PARA='BOOLEEN',
@@ -120,8 +119,7 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **
                  REFERENCE=args['REFERENCE'],
                  VERSION=args['VERSION'],)
    else:
-      TEST_TABLE(UNITE=UNITE,
-                 TABLE=tab1__,
+      TEST_TABLE(TABLE=tab1__,
                  FILTRE=_F(NOM_PARA='TEST',
                            VALE_K='VALEUR  ',),
                  NOM_PARA='BOOLEEN',
index 1d33463aa4191a09256e2851da638f77a54e619a..ad2f62f18fb9fa09e8e49dc85dfc7e52cee63b2d 100755 (executable)
@@ -1,4 +1,4 @@
-#& MODIF ENTETE  DATE 08/11/2005   AUTEUR CIBHHLV L.VIVAN 
+#& MODIF ENTETE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -22,7 +22,7 @@ import Accas
 from Accas import *
 from Accas import _F
 import string
-import types
+from types import TupleType, ListType, StringType, InstanceType
 import Numeric
 from math import sin,cos,tan,asin,acos,atan2,atan,sinh,cosh,tanh,exp,log,log10
 from math import sqrt,pi
@@ -33,10 +33,12 @@ try:
 except:
   pass
 
-#
-__version__="$Name: BR_dev_mars_06 $"
-__Id__="$Id: cata.py,v 1.3 2005/12/12 09:30:13 eficas Exp $"
-#
+__version__="$Name:  $"
+__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $"
+
+EnumTypes = (ListType, TupleType)
+
+# -----------------------------------------------------------------------------
 JdC = JDC_CATA(code='ASTER',
                execmodul=None,
                regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
@@ -47,20 +49,22 @@ class entier   (ASSD):
    def __init__(self,valeur=None,**args):
       ASSD.__init__(self,**args)
       self.valeur=valeur
-   def __adapt__(self,validator):
-      return validator(self.valeur)
-
+class reel(ASSD):
+   def __init__(self,valeur=None,**args):
+      ASSD.__init__(self,**args)
+      self.valeur=valeur
+   def __call__(self):
+      return self.valeur
 
+# -----------------------------------------------------------------------------
 # Type geometriques
 class no  (GEOM):pass
 class grno(GEOM):pass
 class ma  (GEOM):pass
 class grma(GEOM):pass
 
-
-
+# -----------------------------------------------------------------------------
 # Autres
-
 class cabl_precont    (ASSD):pass
 class cara_elem       (ASSD):pass
 class cham_mater      (ASSD):pass
@@ -77,7 +81,6 @@ class fond_fiss       (ASSD):pass
 class interf_dyna_clas(ASSD):pass
 class interspfact     (ASSD):pass
 class listis_sdaster  (ASSD):pass
-class mater_sdaster   (ASSD):pass
 class melasflu_sdaster(ASSD):pass
 class nume_ddl_sdaster(ASSD):pass
 class nume_ddl_gene   (ASSD):pass
@@ -88,13 +91,15 @@ class surface_sdaster (ASSD):pass
 class tran_gene       (ASSD):pass
 class type_flui_stru  (ASSD):pass
 
+# -----------------------------------------------------------------------------
 # modeles :
-#--------------------------------
 class modele_sdaster  (ASSD):pass
 class modele_gene     (ASSD):
   def LIST_SOUS_STRUCT(self) :
     """ retourne la liste des sous structures du modele generalise
         la liste des macro-elements sous-jacents"""
+    if self.par_lot():
+      raise Accas.AsException("Erreur dans modele_gene.LIST_SOUS_STRUCT en PAR_LOT='OUI'")
     nommodgen=self.get_name()
     ncham=nommodgen+(8-len(nommodgen))*' '
     ssno=aster.getvectjev(ncham+(14-len(ncham))*' '+'.MODG.SSNO')
@@ -103,17 +108,48 @@ class modele_gene     (ASSD):
   def LIST_LIAIS_STRUCT(self) :
     """ retourne la liste des liaisons entre sous structures du modele generalise sous la forme :
         [ (ss1, nom_liais1,  ss2 , nom_liais2), ...] """
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans modele_gene.LIST_LIAIS_STRUCT en PAR_LOT='OUI'")
     nommodgen=self.get_name()
     ncham=nommodgen+(8-len(nommodgen))*' '
     lidf=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.LIDF')
     return [([(lidf[ind][indb]) for indb in range(4)]) for ind in lidf]
 
 
+# -----------------------------------------------------------------------------
+# materiau
+class mater_sdaster(ASSD):
+   def RCVALE(self, phenomene, nompar=(), valpar=(), nomres=(), stop='F'):
+      """Appel à la routine fortran RCVALE pour récupérer les valeurs des
+      propriétés du matériau.
+      """
+      if self.par_lot() :
+         raise Accas.AsException("Erreur dans mater.RCVALE en PAR_LOT='OUI'")
+      from Utilitai.Utmess import UTMESS
+      # vérification des arguments
+      if not nompar in EnumTypes:
+         nompar = tuple(nompar)
+      if not valpar in EnumTypes:
+         valpar = tuple(valpar)
+      if not nomres in EnumTypes:
+         nomres = tuple(nomres)
+      if len(nompar) != len(valpar):
+         UTMESS('F', 'RCVALE', """Arguments incohérents :
+      Nom des paramètres : %s
+   Valeur des paramètres : %s""" \
+         % (', '.join(nompar), ', '.join([repr(v) for v in valpar])))
+      if len(nomres) < 1:
+         UTMESS('F', 'RCVALE', 'Argument invalide : "nomres" vide !')
+      # appel à l'interface Python/C
+      return aster.rcvale(self.nom, phenomene, nompar, valpar, nomres, stop)
+
+# -----------------------------------------------------------------------------
 # macro-elements :
-#--------------------------------
 class macr_elem_dyna  (ASSD):
   def NBRE_MODES(self) :
     """ retourne le nombre de modes total, dynamiques et d'interface """
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans macr_elem_dyna.NBRE_MODES en PAR_LOT='OUI'")
     nommacr=self.get_name()
     ncham=nommacr+(8-len(nommacr))*' '
     ncham=nommacr+(8-len(nommacr))*' '+'.MAEL'
@@ -132,6 +168,8 @@ class macr_elem_dyna  (ASSD):
         typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee
         Attributs retourne
           - self.valeurs : Numeric.array contenant les valeurs """
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'")
 
     nommacr=self.get_name()
     if (typmat=='MASS_GENE') :
@@ -146,7 +184,7 @@ class macr_elem_dyna  (ASSD):
     print ncham
     desc=Numeric.array(aster.getvectjev(ncham+'_DESC'))
 
-# On teste si le DESC du vecteur existe
+    # On teste si le DESC du vecteur existe
     if (desc==None):
        raise Accas.AsException("L'objet matrice n'existe pas ou \
        est mal cree par Code Aster")
@@ -169,9 +207,11 @@ class macr_elem_dyna  (ASSD):
         typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
         typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee
         Attributs ne retourne rien """
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans macr_elem_dyna.RECU_MATR_GENE en PAR_LOT='OUI'")
     from Utilitai.Utmess import UTMESS
 
-# avertissement generique
+    # avertissement generique
     UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
 
     nommacr=self.get_name()
@@ -187,18 +227,18 @@ class macr_elem_dyna  (ASSD):
     ncham=nommacr+(8-len(nommacr))*' '+ext
     desc=Numeric.array(aster.getvectjev(ncham+'_DESC'))
 
-# On teste si le DESC de la matrice jeveux existe
+    # On teste si le DESC de la matrice jeveux existe
     if (desc==None):
        raise Accas.AsException("L'objet matrice n'existe pas ou \
                                 est mal cree par Code Aster")
     Numeric.asarray(matrice)
 
-# On teste si la matrice python est de dimension 2
+    # On teste si la matrice python est de dimension 2
     if (len(Numeric.shape(matrice))<>2):
        raise Accas.AsException("La dimension de la matrice \
                                 est incorrecte")
 
-# On teste si les tailles de la matrice jeveux et python sont identiques
+    # On teste si les tailles de la matrice jeveux et python sont identiques
     if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
        raise Accas.AsException("La dimension de la matrice \
                                 est incorrecte")
@@ -212,23 +252,28 @@ class macr_elem_dyna  (ASSD):
     range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
     return
 
-
 class macr_elem_stat  (ASSD):pass
 
 
+# -----------------------------------------------------------------------------
 # liste :
-#--------------------------------
 class listr8_sdaster   (ASSD):
-  def Valeurs(self) :
-    """
-    Retourne la liste des valeurs : [val1, ..., valN]
-    """
-    vale=string.ljust(self.get_name(),19)+'.VALE'
-    return list(aster.getvectjev(vale))
+   def Valeurs(self) :
+      """
+      Retourne la liste des valeurs : [val1, ..., valN]
+      """
+      if not self.par_lot():
+         vale='%-19s.VALE' % self.get_name()
+         t_vale = aster.getvectjev(vale)
+         if t_vale == None:
+            UTMESS('F', 'listr8.Valeurs', "Objet '%s' inexistant" % vale)
+         return list(t_vale)
+      else:
+         raise Accas.AsException("Erreur dans listr8.Valeurs en PAR_LOT='OUI'")
 
 
+# -----------------------------------------------------------------------------
 # post-traitement :
-#--------------------------------
 class post_comp_cham_el :
   def __init__(self,valeurs,maille=None,point=None,sous_point=None) :
     self.valeurs=valeurs
@@ -241,78 +286,47 @@ class post_comp_cham_no :
     self.valeurs=valeurs
     self.noeud=noeud
 
+# -----------------------------------------------------------------------------
 # maillage :
-#--------------------------------
 class maillage_sdaster(ASSD):
   def LIST_GROUP_NO(self) :
-    """ retourne la liste des groupes de noeuds sous la forme :
+      """ retourne la liste des groupes de noeuds sous la forme :
         [ (gno1, nb noeuds  gno1), ...] """
-    nommail=self.get_name()
-    dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO")
-    return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno]
+      if self.par_lot() :
+         raise Accas.AsException("Erreur dans maillage.LIST_GROUP_NO en PAR_LOT='OUI'")
+      nommail=self.get_name()
+      dic_gpno=aster.getcolljev(nommail.ljust(8)+".GROUPENO")
+      return [(gpno.strip(),len(dic_gpno[gpno])) for gpno in dic_gpno]
   def LIST_GROUP_MA(self) :
-    """ retourne la liste des groupes de mailles sous la forme :
+      """ retourne la liste des groupes de mailles sous la forme :
         [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """
-    nommail=self.get_name()
-    nommail=nommail.ljust(8)
-    ngpma=[]
-    ltyma =aster.getvectjev("&CATA.TM.NOMTM")
-    catama=aster.getcolljev("&CATA.TM.TMDIM")
-    dic_gpma=aster.getcolljev(nommail+".GROUPEMA")
-    dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")]
-    for grp in dic_gpma.keys():
-        dim=max([dimama[ma-1] for ma in dic_gpma[grp]])
-        ngpma.append((grp.strip(),len(dic_gpma[grp]),dim))
-    return ngpma
-
+      if self.par_lot() :
+         raise Accas.AsException("Erreur dans maillage.LIST_GROUP_MA en PAR_LOT='OUI'")
+      nommail=self.get_name()
+      nommail=nommail.ljust(8)
+      ngpma=[]
+      ltyma =aster.getvectjev("&CATA.TM.NOMTM")
+      catama=aster.getcolljev("&CATA.TM.TMDIM")
+      dic_gpma=aster.getcolljev(nommail+".GROUPEMA")
+      dimama=[catama[ltyma[ma-1]][0] for ma in aster.getvectjev(nommail+".TYPMAIL")]
+      for grp in dic_gpma.keys():
+         dim=max([dimama[ma-1] for ma in dic_gpma[grp]])
+         ngpma.append((grp.strip(),len(dic_gpma[grp]),dim))
+      return ngpma
 
 class squelette     (maillage_sdaster):pass
 
 
-# cham_gd_sdaster (carte_sdaster,cham_no_sdaster,cham_elem_sdaster)
-#--------------------------------
-
+# -----------------------------------------------------------------------------
+# champ_gd/carte
 class cham_gd_sdaster(ASSD):pass
-
-# cham_gd_sdaster/carte_sdaster :
-#--------------------------------
 class carte_sdaster  (cham_gd_sdaster):pass
-class carte_dbel_r   (carte_sdaster):pass
-class carte_depl_c   (carte_sdaster):pass
-class carte_depl_f   (carte_sdaster):pass
-class carte_depl_r   (carte_sdaster):pass
-class carte_durt_r   (carte_sdaster):pass
-class carte_ener_r   (carte_sdaster):pass
-class carte_epsi_c   (carte_sdaster):pass
-class carte_epsi_r   (carte_sdaster):pass
-class carte_erreur   (carte_sdaster):pass
-class carte_flux_r   (carte_sdaster):pass
-class carte_g_depl_r (carte_sdaster):pass
-class carte_geom_r   (carte_sdaster):pass
-class carte_hydr_r   (carte_sdaster):pass
-class carte_inst_r   (carte_sdaster):pass
-class carte_inte_r   (carte_sdaster):pass
-class carte_irra_r   (carte_sdaster):pass
-class carte_neut_f   (carte_sdaster):pass
-class carte_neut_r   (carte_sdaster):pass
-class carte_pres_f   (carte_sdaster):pass
-class carte_pres_r   (carte_sdaster):pass
-class carte_sief_c   (carte_sdaster):pass
-class carte_sief_r   (carte_sdaster):pass
-class carte_sour_r   (carte_sdaster):pass
-class carte_temp_f   (carte_sdaster):pass
-class carte_temp_r   (carte_sdaster):pass
-class carte_var2_r   (carte_sdaster):pass
-class carte_vnor_c   (carte_sdaster):pass
-class carte_corr_r   (carte_sdaster):pass
-
-
-# cham_gd_sdaster/cham_elem_sdaster :
-#--------------------------------
-class cham_elem_sdaster(cham_gd_sdaster):
 
+# -----------------------------------------------------------------------------
+# cham_elem
+class cham_elem(cham_gd_sdaster):
   def EXTR_COMP(self,comp,lgma,topo=0) :
-    """ retourne les valeurs de la composante comp du champ sur la liste
+      """ retourne les valeurs de la composante comp du champ sur la liste
         de groupes de mailles lgma avec eventuellement l'info de la
         topologie si topo>0. Si lgma est une liste vide, c'est equivalent
         a un TOUT='OUI' dans les commandes aster
@@ -322,69 +336,37 @@ class cham_elem_sdaster(cham_gd_sdaster):
           - self.maille  : numero de mailles
           - self.point   : numero du point dans la maille
           - self.sous_point : numero du sous point dans la maille """
+      if self.par_lot() :
+         raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'")
 
+      ncham=self.get_name()
+      ncham=ncham+(8-len(ncham))*' '
+      nchams=ncham[0:7]+'S'
+      ncmp=comp+(8-len(comp))*' '
 
-    ncham=self.get_name()
-    ncham=ncham+(8-len(ncham))*' '
-    nchams=ncham[0:7]+'S'
-    ncmp=comp+(8-len(comp))*' '
+      aster.prepcompcham(ncham,nchams,ncmp,"EL      ",topo,lgma)
 
-    aster.prepcompcham(ncham,nchams,ncmp,"EL      ",topo,lgma)
+      valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
 
-    valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
+      if (topo>0) :
+         maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M'))
+         point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P'))
+         sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP'))
+      else :
+         maille=None
+         point=None
+         sous_point=None
 
-    if (topo>0) :
-      maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M'))
-      point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.P'))
-      sous_point=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.SP'))
-    else :
-      maille=None
-      point=None
-      sous_point=None
-
-    aster.prepcompcham("__DETR__",nchams,ncmp,"EL      ",topo,lgma)
-
-    return post_comp_cham_el(valeurs,maille,point,sous_point)
-
-class cham_elem_crit_r(cham_elem_sdaster):pass
-class cham_elem_dbel_r(cham_elem_sdaster):pass
-class cham_elem_depl_c(cham_elem_sdaster):pass
-class cham_elem_depl_f(cham_elem_sdaster):pass
-class cham_elem_depl_r(cham_elem_sdaster):pass
-class cham_elem_dommag(cham_elem_sdaster):pass
-class cham_elem_durt_r(cham_elem_sdaster):pass
-class cham_elem_ener_r(cham_elem_sdaster):pass
-class cham_elem_epsi_c(cham_elem_sdaster):pass
-class cham_elem_epsi_r(cham_elem_sdaster):pass
-class cham_elem_erreur(cham_elem_sdaster):pass
-class cham_elem_facy_r(cham_elem_sdaster):pass
-class cham_elem_flux_r(cham_elem_sdaster):pass
-class cham_elem_g_depl(cham_elem_sdaster):pass
-class cham_elem_geom_r(cham_elem_sdaster):pass
-class cham_elem_hydr_r(cham_elem_sdaster):pass
-class cham_elem_inst_r(cham_elem_sdaster):pass
-class cham_elem_inte_r(cham_elem_sdaster):pass
-class cham_elem_irra_r(cham_elem_sdaster):pass
-class cham_elem_neut_f(cham_elem_sdaster):pass
-class cham_elem_neut_r(cham_elem_sdaster):pass
-class cham_elem_pres_f(cham_elem_sdaster):pass
-class cham_elem_pres_r(cham_elem_sdaster):pass
-class cham_elem_sief_c(cham_elem_sdaster):pass
-class cham_elem_sief_r(cham_elem_sdaster):pass
-class cham_elem_sour_r(cham_elem_sdaster):pass
-class cham_elem_spma_r(cham_elem_sdaster):pass
-class cham_elem_temp_f(cham_elem_sdaster):pass
-class cham_elem_temp_r(cham_elem_sdaster):pass
-class cham_elem_vari_r(cham_elem_sdaster):pass
-class cham_elem_vnor_c(cham_elem_sdaster):pass
-
-
-# cham_gd/cham_no :
-#--------------------------------
+      aster.prepcompcham("__DETR__",nchams,ncmp,"EL      ",topo,lgma)
+
+      return post_comp_cham_el(valeurs,maille,point,sous_point)
+
+# -----------------------------------------------------------------------------
+# cham_no :
 class cham_no_sdaster(cham_gd_sdaster):
 
   def EXTR_COMP(self,comp,lgno,topo=0) :
-    """ retourne les valeurs de la composante comp du champ sur la liste
+      """ retourne les valeurs de la composante comp du champ sur la liste
         de groupes de noeuds lgno avec eventuellement l'info de la
         topologie si topo>0. Si lgno est une liste vide, c'est equivalent
         a un TOUT='OUI' dans les commandes aster
@@ -392,74 +374,54 @@ class cham_no_sdaster(cham_gd_sdaster):
           - self.valeurs : Numeric.array contenant les valeurs
         Si on a demande la topo (i.e. self.topo = 1) :
           - self.noeud  : numero de noeud """
+      if self.par_lot() :
+         raise Accas.AsException("Erreur dans cham_no.EXTR_COMP en PAR_LOT='OUI'")
 
+      ncham=self.get_name()
+      ncham=ncham+(8-len(ncham))*' '
+      nchams=ncham[0:7]+'S'
+      ncmp=comp+(8-len(comp))*' '
 
-    ncham=self.get_name()
-    ncham=ncham+(8-len(ncham))*' '
-    nchams=ncham[0:7]+'S'
-    ncmp=comp+(8-len(comp))*' '
+      aster.prepcompcham(ncham,nchams,ncmp,"NO      ",topo,lgno)
 
-    aster.prepcompcham(ncham,nchams,ncmp,"NO      ",topo,lgno)
+      valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
 
-    valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
+      if (topo>0) :
+         noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N'))
+      else :
+         noeud=None
 
-    if (topo>0) :
-      noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N'))
-    else :
-      noeud=None
-
-    aster.prepcompcham("__DETR__",nchams,ncmp,"NO      ",topo,lgno)
-
-    return post_comp_cham_no(valeurs,noeud)
-
-class cham_no_corr_r   (cham_no_sdaster):pass
-class cham_no_dbel_r   (cham_no_sdaster):pass
-class cham_no_depl_c   (cham_no_sdaster):pass
-class cham_no_depl_f   (cham_no_sdaster):pass
-class cham_no_depl_r   (cham_no_sdaster):pass
-class cham_no_durt_r   (cham_no_sdaster):pass
-class cham_no_ener_r   (cham_no_sdaster):pass
-class cham_no_epsi_c   (cham_no_sdaster):pass
-class cham_no_epsi_r   (cham_no_sdaster):pass
-class cham_no_erreur   (cham_no_sdaster):pass
-class cham_no_facy_r   (cham_no_sdaster):pass
-class cham_no_flux_r   (cham_no_sdaster):pass
-class cham_no_g_depl_r (cham_no_sdaster):pass
-class cham_no_geom_r   (cham_no_sdaster):pass
-class cham_no_hydr_r   (cham_no_sdaster):pass
-class cham_no_inst_r   (cham_no_sdaster):pass
-class cham_no_inte_r   (cham_no_sdaster):pass
-class cham_no_irra_r   (cham_no_sdaster):pass
-class cham_no_neut_f   (cham_no_sdaster):pass
-class cham_no_neut_r   (cham_no_sdaster):pass
-class cham_no_pres_c   (cham_no_sdaster):pass
-class cham_no_pres_f   (cham_no_sdaster):pass
-class cham_no_pres_r   (cham_no_sdaster):pass
-class cham_no_sief_c   (cham_no_sdaster):pass
-class cham_no_sief_r   (cham_no_sdaster):pass
-class cham_no_sour_r   (cham_no_sdaster):pass
-class cham_no_spma_r   (cham_no_sdaster):pass
-class cham_no_temp_c   (cham_no_sdaster):pass
-class cham_no_temp_f   (cham_no_sdaster):pass
-class cham_no_temp_r   (cham_no_sdaster):pass
-class cham_no_vanl_r   (cham_no_sdaster):pass
-class cham_no_var2_r   (cham_no_sdaster):pass
-class cham_no_vnor_c   (cham_no_sdaster):pass
+      aster.prepcompcham("__DETR__",nchams,ncmp,"NO      ",topo,lgno)
 
+      return post_comp_cham_no(valeurs,noeud)
 
+# -----------------------------------------------------------------------------
 # resultat_sdaster : (evol_sdaster,mode_stat,mode_meca)
-#--------------------------------------
-
 class resultat_sdaster(ASSD):
   def LIST_CHAMPS (self) :
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans resultat.LIST_CHAMPS en PAR_LOT='OUI'")
     return aster.GetResu(self.get_name(), "CHAMPS")
   def LIST_NOM_CMP (self) :
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans resultat.LIST_NOM_CMP en PAR_LOT='OUI'")
     return aster.GetResu(self.get_name(), "COMPOSANTES")
   def LIST_VARI_ACCES (self) :
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans resultat.LIST_VARI_ACCES en PAR_LOT='OUI'")
     return aster.GetResu(self.get_name(), "VARI_ACCES")
   def LIST_PARA (self) :
+    if self.par_lot() :
+      raise Accas.AsException("Erreur dans resultat.LIST_PARA en PAR_LOT='OUI'")
     return aster.GetResu(self.get_name(), "PARAMETRES")
 
+class resultat_jeveux(resultat_sdaster):
+   """Classe permettant d'accéder à un resultat jeveux qui n'a pas d'ASSD associée,
+   c'est le cas des concepts résultats (table, evol_xxxx) dérivés."""
+   def __init__(self,nom_jeveux):
+      self.nom=nom_jeveux
+
+# -----------------------------------------------------------------------------
 class acou_harmo    (resultat_sdaster):pass
 class base_modale   (resultat_sdaster):pass
 class comb_fourier  (resultat_sdaster):pass
@@ -474,8 +436,8 @@ class mode_gene     (resultat_sdaster):pass
 class mult_elas     (resultat_sdaster):pass
 class theta_geom    (resultat_sdaster):pass
 
+# -----------------------------------------------------------------------------
 # resultat_sdaster/evol_sdaster :
-#--------------------------------
 class evol_sdaster(resultat_sdaster):pass
 class evol_char(evol_sdaster):pass
 class evol_elas(evol_sdaster):pass
@@ -483,22 +445,22 @@ class evol_noli(evol_sdaster):pass
 class evol_ther(evol_sdaster):pass
 class evol_varc(evol_sdaster):pass
 
+# -----------------------------------------------------------------------------
 # resultat_sdaster/mode_stat :
-#--------------------------------
 class mode_stat(resultat_sdaster):pass
 class mode_stat_depl(mode_stat):pass
 class mode_stat_acce(mode_stat):pass
 class mode_stat_forc(mode_stat):pass
 
 
+# -----------------------------------------------------------------------------
 # resultat_sdaster/mode_meca :
-#--------------------------------
 class mode_meca(resultat_sdaster):pass
 class mode_meca_c(mode_meca):pass
 
 
+# -----------------------------------------------------------------------------
 # types 'fonction' :
-#--------------------------------
 class fonction_class(ASSD):
    def Valeurs(self):pass
    def Parametres(self):
@@ -507,7 +469,20 @@ class fonction_class(ASSD):
       le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne,
       le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel.
       """
-      if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' :
+      if not self.par_lot():
+        TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' }
+        objev = '%-19s.PROL' % self.get_name()
+        prol = aster.getvectjev(objev)
+        if prol == None:
+           UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev)
+        dico={
+         'INTERPOL'    : [prol[1][0:3],prol[1][4:7]],
+         'NOM_PARA'    : string.strip(prol[2][0:16]),
+         'NOM_RESU'    : string.strip(prol[3][0:16]),
+         'PROL_DROITE' : TypeProl[prol[4][1]],
+         'PROL_GAUCHE' : TypeProl[prol[4][0]],
+        }
+      elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' :
         dico={
          'INTERPOL'    : self.etape['INTERPOL'],
          'NOM_PARA'    : self.etape['NOM_PARA'],
@@ -515,30 +490,25 @@ class fonction_class(ASSD):
          'PROL_DROITE' : self.etape['PROL_DROITE'],
          'PROL_GAUCHE' : self.etape['PROL_GAUCHE'],
         }
-        if   type(dico['INTERPOL'])==types.TupleType :
+        if   type(dico['INTERPOL'])==TupleType :
                   dico['INTERPOL']=list(dico['INTERPOL'])
-        elif type(dico['INTERPOL'])==types.StringType :
+        elif type(dico['INTERPOL'])==StringType :
                   dico['INTERPOL']=[dico['INTERPOL'],]
         if len(dico['INTERPOL'])==1 :
            dico['INTERPOL']=dico['INTERPOL']*2
-      else :
-        TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' }
-        prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL')
-        dico={
-         'INTERPOL'    : [prol[1][0:3],prol[1][4:7]],
-         'NOM_PARA'    : string.strip(prol[2][0:16]),
-         'NOM_RESU'    : string.strip(prol[3][0:16]),
-         'PROL_DROITE' : TypeProl[prol[4][1]],
-         'PROL_GAUCHE' : TypeProl[prol[4][0]],
-        }
+      else:
+         raise Accas.AsException("Erreur dans fonction.Parametres en PAR_LOT='OUI'")
       return dico
    def Trace(self,FORMAT='TABLEAU',**kargs):
       """Tracé d'une fonction"""
+      if self.par_lot() :
+         raise Accas.AsException("Erreur dans fonction.Trace en PAR_LOT='OUI'")
       from Utilitai.Graph import Graph
       gr=Graph()
       gr.AjoutCourbe(Val=self.Valeurs(),
             Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU']])
       gr.Trace(FORMAT=FORMAT,**kargs)
+
 class fonction_sdaster(fonction_class):
    def convert(self,arg='real'):
       """
@@ -558,7 +528,17 @@ class fonction_sdaster(fonction_class):
       """
       Retourne deux listes de valeurs : abscisses et ordonnees
       """
-      if hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' :
+      if not self.par_lot():
+        vale = '%-19s.VALE' % self.get_name()
+        lbl = aster.getvectjev(vale)
+        if lbl == None:
+           UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale)
+        lbl = list(lbl)
+        dim=len(lbl)/2
+        lx=lbl[0:dim]
+        ly=lbl[dim:2*dim]
+        return [lx,ly]
+      elif hasattr(self,'etape') and self.etape.nom=='DEFI_FONCTION' :
         if self.etape['VALE']!=None:
            lbl=list(self.etape['VALE'])
            dim=len(lbl)
@@ -568,12 +548,7 @@ class fonction_sdaster(fonction_class):
         elif self.etape['VALE_PARA']!=None:
            return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()]
       else :
-        vale=string.ljust(self.get_name(),19)+'.VALE'
-        lbl=list(aster.getvectjev(vale))
-        dim=len(lbl)/2
-        lx=lbl[0:dim]
-        ly=lbl[dim:2*dim]
-        return [lx,ly]
+         raise Accas.AsException("Erreur dans fonction.Valeurs en PAR_LOT='OUI'")
    def Absc(self):
       """Retourne la liste des abscisses"""
       return self.Valeurs()[0]
@@ -583,11 +558,14 @@ class fonction_sdaster(fonction_class):
    def __call__(self,val):
       ### Pour EFICAS : substitution de l'instance de classe
       ### parametre par sa valeur
-      if type(val)==types.InstanceType : val=val.valeur
+      if type(val)==InstanceType:
+         val=val.valeur
       ###
       __ff=self.convert()
       return __ff(val)
+
 class para_sensi(fonction_sdaster): pass
+
 class fonction_c(fonction_class):
    def convert(self,arg='real'):
       """
@@ -622,16 +600,12 @@ class fonction_c(fonction_class):
       """
       Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires.
       """
-      if self.etape.nom=='DEFI_FONCTION' :
-        lbl=list(self.etape['VALE_C'])
-        dim=len(lbl)
-        lx=[lbl[i] for i in range(0,dim,3)]
-        lr=[lbl[i] for i in range(1,dim,3)]
-        li=[lbl[i] for i in range(2,dim,3)]
-        return [lx,lr,li]
-      else :
-        vale=string.ljust(self.get_name(),19)+'.VALE'
-        lbl=list(aster.getvectjev(vale))
+      if not self.par_lot():
+        vale = '%-19s.VALE' % self.get_name()
+        lbl = aster.getvectjev(vale)
+        if lbl == None:
+           UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % vale)
+        lbl = list(lbl)
         dim=len(lbl)/3
         lx=lbl[0:dim]
         lr=[]
@@ -640,6 +614,15 @@ class fonction_c(fonction_class):
            lr.append(lbl[dim+2*i])
            li.append(lbl[dim+2*i+1])
         return [lx,lr,li]
+      if self.etape.nom=='DEFI_FONCTION' :
+        lbl=list(self.etape['VALE_C'])
+        dim=len(lbl)
+        lx=[lbl[i] for i in range(0,dim,3)]
+        lr=[lbl[i] for i in range(1,dim,3)]
+        li=[lbl[i] for i in range(2,dim,3)]
+        return [lx,lr,li]
+      else :
+         raise Accas.AsException("Erreur dans fonction_c.Valeurs en PAR_LOT='OUI'")
    def Absc(self):
       """Retourne la liste des abscisses"""
       return self.Valeurs()[0]
@@ -651,6 +634,8 @@ class fonction_c(fonction_class):
       return self.Valeurs()[2]
    def Trace(self,FORMAT='TABLEAU',**kargs):
       """Tracé d'une fonction complexe"""
+      if self.par_lot() :
+         raise Accas.AsException("Erreur dans fonction_c.Trace en PAR_LOT='OUI'")
       from Utilitai.Graph import Graph
       gr=Graph()
       gr.AjoutCourbe(Val=self.Valeurs(),
@@ -659,11 +644,12 @@ class fonction_c(fonction_class):
    def __call__(self,val):
       ### Pour EFICAS : substitution de l'instance de classe
       ### parametre par sa valeur
-      import types
-      if type(val)==types.InstanceType : val=val.valeur
+      if type(val)==InstanceType:
+         val=val.valeur
       ###
       __ff=convert(self)
       return __ff(val)
+
 class nappe_sdaster(fonction_class):
    def convert(self):
       """
@@ -691,10 +677,14 @@ class nappe_sdaster(fonction_class):
       Retourne la liste des valeurs du parametre,
       et une liste de couples (abscisses,ordonnees) de chaque fonction.
       """
-      nsd=string.ljust(self.get_name(),19)
+      if self.par_lot():
+         raise Accas.AsException("Erreur dans nappe.Valeurs en PAR_LOT='OUI'")
+      nsd = '%-19s' % self.get_name()
       dicv=aster.getcolljev(nsd+'.VALE')
       # les cles de dicv sont 1,...,N (indice du parametre)
       lpar=aster.getvectjev(nsd+'.PARA')
+      if lpar == None:
+         UTMESS('F', 'fonction.Valeurs', "Objet '%s' inexistant" % (nsd+'.PARA'))
       lval=[]
       for k in range(len(dicv)):
          lbl=dicv[k+1]
@@ -708,8 +698,13 @@ class nappe_sdaster(fonction_class):
       le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel,
       et une liste de dictionnaire des parametres de chaque fonction.
       """
+      if self.par_lot():
+         raise Accas.AsException("Erreur dans nappe.Parametres en PAR_LOT='OUI'")
       TypeProl={'E':'EXCLU', 'L':'LINEAIRE', 'C':'CONSTANT' }
-      prol=aster.getvectjev(string.ljust(self.get_name(),19)+'.PROL')
+      objev = '%-19s.PROL' % self.get_name()
+      prol=aster.getvectjev(objev)
+      if prol == None:
+         UTMESS('F', 'fonction.Parametres', "Objet '%s' inexistant" % objev)
       dico={
          'INTERPOL'      : [prol[1][0:3],prol[1][4:7]],
          'NOM_PARA'      : string.strip(prol[2][0:16]),
@@ -733,6 +728,8 @@ class nappe_sdaster(fonction_class):
       return self.Valeurs()[0]
    def Trace(self,FORMAT='TABLEAU',**kargs):
       """Tracé d'une nappe"""
+      if self.par_lot():
+         raise Accas.AsException("Erreur dans nappe.Trace en PAR_LOT='OUI'")
       from Utilitai.Graph import Graph
       gr=Graph()
       lv=self.Valeurs()[1]
@@ -741,8 +738,8 @@ class nappe_sdaster(fonction_class):
          gr.AjoutCourbe(Val=[lx,ly], Lab=[dp['NOM_PARA_FONC'],dp['NOM_RESU']])
       gr.Trace(FORMAT=FORMAT,**kargs)
 
+# -----------------------------------------------------------------------------
 # matr_asse :
-#--------------------------------
 class matr_asse(ASSD):pass
 class matr_asse_gene(matr_asse):pass
 
@@ -752,17 +749,19 @@ class matr_asse_gene_r(matr_asse_gene):
     dans un format Numerical Array
         Attributs retourne
           - self.valeurs : Numeric.array contenant les valeurs """
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'")
 
     ncham=self.get_name()
     ncham=ncham+(8-len(ncham))*' '
     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
-# On teste si le DESC de la matrice existe
+    # On teste si le DESC de la matrice existe
     if (desc==None):
        raise Accas.AsException("L'objet matrice n'existe pas ou \
                                 est mal cree par Code Aster")
-# Si le stockage est plein
+    # Si le stockage est plein
     if desc[2]==2 :
-      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1])
+      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float)
       for j in range(desc[1]+1):
         for i in range(j):
@@ -771,13 +770,13 @@ class matr_asse_gene_r(matr_asse_gene):
       valeur=(valeur+Numeric.transpose(valeur))
       for i in range(desc[1]):
         valeur[i,i]=0.5*valeur[i,i]
-# Si le stockage est diagonal
+    # Si le stockage est diagonal
     elif desc[2]==1 :
-      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1])
+      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Float)
       for i in range(desc[1]):
         valeur[i,i]=tmp[i]
-# Sinon on arrete tout
+    # Sinon on arrete tout
     else:
       raise KeyError
     return valeur
@@ -786,30 +785,32 @@ class matr_asse_gene_r(matr_asse_gene):
     """ envoie les valeurs d'un Numerical Array dans des matrices
     generalisees reelles definies dans jeveux
         Attributs ne retourne rien """
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'")
     from Utilitai.Utmess import UTMESS
 
-# avertissement generique
+    # avertissement generique
     UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
 
     ncham=self.get_name()
     ncham=ncham+(8-len(ncham))*' '
     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
 
-# On teste si le DESC de la matrice existe
+    # On teste si le DESC de la matrice existe
     if (desc==None):
        raise Accas.AsException("L'objet matrice n'existe pas ou \
                                 est mal cree par Code Aster")
     Numeric.asarray(matrice)
 
-# On teste si la dimension de la matrice python est 2
+    # On teste si la dimension de la matrice python est 2
     if (len(Numeric.shape(matrice))<>2) :
        raise Accas.AsException("La dimension de la matrice est incorrecte ")
 
-# On teste si les tailles des matrices jeveux et python sont identiques
+    # On teste si les tailles des matrices jeveux et python sont identiques
     if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
        raise Accas.AsException("La taille de la matrice est incorrecte ")
 
-# Si le stockage est plein
+    # Si le stockage est plein
     if desc[2]==2 :
       taille=desc[1]*desc[1]/2.0+desc[1]/2.0
       tmp=Numeric.zeros([int(taille)],Numeric.Float)
@@ -817,16 +818,16 @@ class matr_asse_gene_r(matr_asse_gene):
         for i in range(j):
           k=j*(j-1)/2+i
           tmp[k]=matrice[j-1,i]
-      aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple((\
+      aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\
       range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
-# Si le stockage est diagonal
+    # Si le stockage est diagonal
     elif desc[2]==1 :
       tmp=Numeric.zeros(desc[1],Numeric.Float)
       for j in range(desc[1]):
           tmp[j]=matrice[j,j]
-      aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple((\
+      aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\
       range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
-# Sinon on arrete tout
+    # Sinon on arrete tout
     else:
       raise KeyError
     return
@@ -838,6 +839,8 @@ class matr_asse_gene_c(matr_asse_gene):
     dans un format Numerical Array
         Attributs retourne
           - self.valeurs : Numeric.array contenant les valeurs """
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'")
 
     ncham=self.get_name()
     ncham=ncham+(8-len(ncham))*' '
@@ -845,9 +848,9 @@ class matr_asse_gene_c(matr_asse_gene):
     if (desc==None):
        raise Accas.AsException("L'objet matrice n'existe pas ou \
        est mal cree par Code Aster ")
-# Si le stockage est plein
+    # Si le stockage est plein
     if desc[2]==2 :
-      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1])
+      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex)
       for j in range(desc[1]+1):
         for i in range(j):
@@ -856,13 +859,13 @@ class matr_asse_gene_c(matr_asse_gene):
       valeur=(valeur+Numeric.transpose(valeur))
       for i in range(desc[1]):
         valeur[i,i]=0.5*valeur[i,i]
-# Si le stockage est diagonal
+    # Si le stockage est diagonal
     elif desc[2]==1 :
-      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1])
+      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALM')[1])
       valeur=Numeric.zeros([desc[1],desc[1]],Numeric.Complex)
       for i in range(desc[1]):
         valeur[i,i]=tmp[i]
-# Sinon on arrete tout
+    # Sinon on arrete tout
     else:
       raise KeyError
     return valeur
@@ -871,9 +874,11 @@ class matr_asse_gene_c(matr_asse_gene):
     """ envoie les valeurs d'un Numerical Array dans des matrices
     generalisees reelles definies dans jeveux
         Attributs ne retourne rien """
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'")
     from Utilitai.Utmess import UTMESS
 
-# avertissement generique
+    # avertissement generique
     UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
 
     Numeric.asarray(matrice)
@@ -881,21 +886,21 @@ class matr_asse_gene_c(matr_asse_gene):
     ncham=ncham+(8-len(ncham))*' '
     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
 
-# On teste si le DESC de la matrice existe
+    # On teste si le DESC de la matrice existe
     if (desc==None):
        raise Accas.AsException("L'objet matrice n'existe pas ou \
        est mal cree par Code Aster")
     Numeric.asarray(matrice)
 
-# On teste si la dimension de la matrice python est 2
+    # On teste si la dimension de la matrice python est 2
     if (len(Numeric.shape(matrice))<>2) :
        raise Accas.AsException("La dimension de la matrice est incorrecte ")
 
-# On teste si la taille de la matrice jeveux et python est identique
+    # On teste si la taille de la matrice jeveux et python est identique
     if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
        raise Accas.AsException("La taille de la matrice est incorrecte ")
 
-# Si le stockage est plein
+    # Si le stockage est plein
     if desc[2]==2 :
       taille=desc[1]*desc[1]/2.0+desc[1]/2.0
       tmpr=Numeric.zeros([int(taille)],Numeric.Float)
@@ -905,23 +910,23 @@ class matr_asse_gene_c(matr_asse_gene):
           k=j*(j-1)/2+i
           tmpr[k]=matrice[j-1,i].real
           tmpc[k]=matrice[j-1,i].imag
-      aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((\
+      aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\
                        range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
-# Si le stockage est diagonal
+    # Si le stockage est diagonal
     elif desc[2]==1 :
       tmpr=Numeric.zeros(desc[1],Numeric.Float)
       tmpc=Numeric.zeros(desc[1],Numeric.Float)
       for j in range(desc[1]):
           tmpr[j]=matrice[j,j].real
           tmpc[j]=matrice[j,j].imag
-      aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((\
+      aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\
                        range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
-# Sinon on arrete tout
+    # Sinon on arrete tout
     else:
       raise KeyError
     return
 
-
+# -----------------------------------------------------------------------------
 class matr_asse_gd(matr_asse):pass
 class matr_asse_depl_c(matr_asse_gd):pass
 class matr_asse_depl_r(matr_asse_gd):pass
@@ -930,41 +935,70 @@ class matr_asse_pres_r(matr_asse_gd):pass
 class matr_asse_temp_c(matr_asse_gd):pass
 class matr_asse_temp_r(matr_asse_gd):pass
 
+# -----------------------------------------------------------------------------
 # matr_elem :
-#--------------------------------
 class matr_elem(ASSD):pass
 class matr_elem_depl_c(matr_elem):pass
 class matr_elem_depl_r(matr_elem):pass
 class matr_elem_pres_c(matr_elem):pass
 class matr_elem_temp_r(matr_elem):pass
 
-
-
-
+# -----------------------------------------------------------------------------
 # table :
-#--------------------------------
 class table_sdaster(ASSD):
-  def __getitem__(self,key):
-      requete=string.ljust(key[0],24)
-      tblp=string.ljust(self.get_name(),19)+'.TBLP'
-      tabnom=list(aster.getvectjev(tblp))
+   def __getitem__(self,key):
+      from Utilitai.Utmess import UTMESS
+      if self.par_lot():
+         raise Accas.AsException("Erreur dans table.__getitem__ en PAR_LOT='OUI'")
+      requete = '%-24s' % key[0]
+      tblp = '%-19s.TBLP' % self.get_name()
+      tabnom = aster.getvectjev(tblp)
+      if tabnom == None:
+         UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tblp)
       for i in range(len(tabnom)) :
          if tabnom[i]==requete: break
       resu=aster.getvectjev(tabnom[i+2])
+      if resu == None:
+         UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+2])
       exist=aster.getvectjev(tabnom[i+3])
+      if exist == None:
+         UTMESS('F', 'TABLE[]', "Objet '%s' inexistant" % tabnom[i+3])
       if key[1]>len(resu) or exist[key[1]-1]==0:
          raise KeyError
       else:
          return resu[key[1]-1]
-  def EXTR_TABLE(self) :
+   
+   def TITRE(self):
+      """Retourne le titre d'une table Aster
+      (Utile pour récupérer le titre et uniquement le titre d'une table dont
+      on souhaite manipuler la dérivée).
+      """
+      if self.par_lot():
+         raise Accas.AsException("Erreur dans table.TITRE en PAR_LOT='OUI'")
+      titj=aster.getvectjev('%-19s.TITR' % self.get_name())
+      if titj<>None:
+         titr='\n'.join(titj)
+      else:
+         titr=''
+      return titr
+      
+   def EXTR_TABLE(self) :
       """Produit un objet Table à partir du contenu d'une table Aster
       """
       def Nonefy(l1,l2) :
           if l2==0 : return None
           else     : return l1
+      if self.par_lot():
+         raise Accas.AsException("Erreur dans table.EXTR_TABLE en PAR_LOT='OUI'")
       from Utilitai.Table import Table
-      tblp=string.ljust(self.get_name(),19)+'.TBLP'
-      tabnom=list(aster.getvectjev(tblp))
+      # titre
+      titr = self.TITRE()
+      # récupération des paramètres
+      v_tblp = aster.getvectjev('%-19s.TBLP' % self.get_name())
+      if v_tblp == None:
+         # retourne une table vide
+         return Table(titr=titr)
+      tabnom=list(v_tblp)
       nparam=len(tabnom)/4
       lparam=[tabnom[4*i:4*i+4] for i in range(nparam)]
       dval={}
@@ -984,100 +1018,65 @@ class table_sdaster(ASSD):
         d={}
         for p in lpar : d[p]=dval[p][i]
         lisdic.append(d)
-      # titre
-      titj=aster.getvectjev(self.get_name().ljust(19)+'.TITR')
-      if titj<>None:
-         titr='\n'.join(titj)
-      else:
-         titr=''
       return Table(lisdic, lpar, ltyp, titr)
 
+# -----------------------------------------------------------------------------
 class table_jeveux(table_sdaster):
    """Classe permettant d'accéder à une table jeveux qui n'a pas d'ASSD associée,
    c'est le cas des concepts résultats (table, evol_xxxx) dérivés."""
    def __init__(self,nom_jeveux):
       self.nom=nom_jeveux
 
-class tabl_aire_int   (table_sdaster):pass
-class tabl_calc_g_loca(table_sdaster):pass
-class tabl_calc_g_th  (table_sdaster):pass
-class tabl_cara_geom  (table_sdaster):pass
-class tabl_char_limite(table_sdaster):pass
-class tabl_ener_elas  (table_sdaster):pass
-class tabl_ener_pot   (table_sdaster):pass
-class tabl_ener_cin   (table_sdaster):pass
-class tabl_trav_ext   (table_sdaster):pass
-class tabl_ener_totale(table_sdaster):pass
-class tabl_indic_ener (table_sdaster):pass
-class tabl_indic_seuil(table_sdaster):pass
-class tabl_intsp      (table_sdaster):pass
-class tabl_mass_iner  (table_sdaster):pass
-class tabl_post_alea  (table_sdaster):pass
-class tabl_post_beta  (table_sdaster):pass
-class tabl_post_dyna  (table_sdaster):pass
-class tabl_post_f_alea(table_sdaster):pass
-class tabl_post_fatig (table_sdaster):pass
-class tabl_post_gouj2e(table_sdaster):pass
-class tabl_post_k     (table_sdaster):pass
-class tabl_post_rccm  (table_sdaster):pass
-class tabl_post_rele  (table_sdaster):pass
-class tabl_post_simpli(table_sdaster):pass
-class tabl_post_usur  (table_sdaster):pass
-class tabl_reca_weib  (table_sdaster):pass
-class tabl_rice_tracey(table_sdaster):pass
-class tabl_texture    (table_sdaster):pass
-class tabl_trc        (table_sdaster):pass
-class tabl_weibull    (table_sdaster):pass
-
-
+# -----------------------------------------------------------------------------
 # vect_asse :
-#--------------------------------
 class vect_asse(ASSD):pass
-class vect_asse_gene(vect_asse):pass
-class vect_asse_gene_r(vect_asse_gene):
-  def EXTR_VECT_GENE(self) :
+
+class vect_asse_gene(vect_asse):
+  def EXTR_VECT_GENE_R(self) :
     """ retourne les valeurs du vecteur generalisee
     dans un format Numerical Array
         Attributs retourne
           - self.valeurs : Numeric.array contenant les valeurs """
-
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans vect_asse_gene_r.EXTR_VECT_GENE en PAR_LOT='OUI'")
     ncham=self.get_name()
     ncham=ncham+(8-len(ncham))*' '
     valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'))
-
     return valeur
 
-  def RECU_VECT_GENE(self,vecteur) :
+  def RECU_VECT_GENE_R(self,vecteur) :
     """ envoie les valeurs d'un Numerical Array dans un vecteur generalise
     reel definie dans jeveux
         Attributs ne retourne rien """
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'")
     from Utilitai.Utmess import UTMESS
 
-# avertissement generique
+    # avertissement generique
     UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
 
     Numeric.asarray(vecteur)
     ncham=self.get_name()
     ncham=ncham+(8-len(ncham))*' '
     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
-# On teste si le DESC du vecteur existe
+    # On teste si le DESC du vecteur existe
     if (desc==None):
        raise Accas.AsException("L'objet vecteur n'existe pas ou \
        est mal cree par Code Aster")
-# On teste si la taille du vecteur jeveux et python est identique
+    # On teste si la taille du vecteur jeveux et python est identique
     if desc[1]<>Numeric.shape(vecteur)[0] :
        raise Accas.AsException("La taille du vecteur python est incorrecte")
     aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\
     range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1)
     return
 
-
-class vect_asse_gene_c(vect_asse_gene):
-  def EXTR_VECT_GENE(self) :
+  def EXTR_VECT_GENE_C(self) :
     """ retourne les valeurs du vecteur generalisee
     dans un format Numerical Array
         Attributs retourne
           - self.valeurs : Numeric.array contenant les valeurs """
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'")
 
     ncham=self.get_name()
     ncham=ncham+(8-len(ncham))*' '
@@ -1085,24 +1084,26 @@ class vect_asse_gene_c(vect_asse_gene):
 
     return valeur
 
-  def RECU_VECT_GENE(self,vecteur) :
+  def RECU_VECT_GENE_C(self,vecteur) :
     """ envoie les valeurs d'un Numerical Array dans un vecteur generalise
     complexe definie dans jeveux
         Attributs ne retourne rien """
+    if self.par_lot():
+       raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'")
     from Utilitai.Utmess import UTMESS
 
-# avertissement generique
+    # avertissement generique
     UTMESS('A','RECU_VECT_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
 
     Numeric.asarray(vecteur)
     ncham=self.get_name()
     ncham=ncham+(8-len(ncham))*' '
     desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
-# On teste si le DESC de la matrice existe
+    # On teste si le DESC de la matrice existe
     if (desc==None):
        raise Accas.AsException("L'objet vecteur n'existe pas ou \
        est mal cree par Code Aster")
-# On teste si la taille de la matrice jeveux et python est identique
+    # On teste si la taille de la matrice jeveux et python est identique
     if desc[1]<>Numeric.shape(vecteur)[0] :
        raise Accas.AsException("La taille du vecteur python est incorrecte")
     tmpr=vecteur.real
@@ -1111,17 +1112,17 @@ class vect_asse_gene_c(vect_asse_gene):
     range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
     return
 
-
+# -----------------------------------------------------------------------------
 # vect_elem :
-#--------------------------------
 class vect_elem(ASSD):pass
 class vect_elem_depl_r(vect_elem):pass
 class vect_elem_pres_c(vect_elem):pass
 class vect_elem_pres_r(vect_elem):pass
 class vect_elem_temp_r(vect_elem):pass
 
-#& MODIF COMMUN  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
+#& MODIF COMMUN  DATE 09/05/2006   AUTEUR JMBHH01 J.M.PROIX 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
+# RESPONSABLE JMBHH01 J.M.PROIX
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
@@ -1141,6 +1142,7 @@ class vect_elem_temp_r(vect_elem):pass
 def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
            RELATION        =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",
                                  into=( "ELAS",
+                                        "ELAS_HYPER",
                                         "VMIS_ISOT_TRAC",
                                         "VISC_ISOT_TRAC",
                                         "VMIS_ISOT_LINE",
@@ -1183,8 +1185,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "META_V_CL_PT_RE",
                                         "VMIS_CINE_LINE",
                                         "VISC_TAHERI",
-                                        "CHABOCHE",
                                         "VISCOCHAB",
+                                        "VMIS_CIN1_CHAB",
+                                        "VMIS_CIN2_CHAB",
                                         "VISC_CIN1_CHAB",
                                         "VISC_CIN2_CHAB",
                                         "POLY_CFC",
@@ -1201,6 +1204,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "LEMAITRE",
                                         "LEMAITRE_IRRA",
                                         "LEMA_SEUIL",
+                                        "IRRAD3M",
                                         "ZIRC_CYRA2",
                                         "VISC_IRRA_LOG",
                                         "GRAN_IRRA_LOG",
@@ -1222,7 +1226,8 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "LAIGLE",
                                         "DRUCKER_PRAGER",
                                         "HOEK_BROWN",
-                                        "OHNO",
+                                        "HOEK_BROWN_EFF",
+                                        "HOEK_BROWN_TOT",
                                         "GRANGER_FP",
                                         "GRANGER_FP_INDT",
                                         "GRANGER_FP_V",
@@ -1236,11 +1241,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "KIT_THM",
                                         "KIT_THHM",
                                         "VMIS_ASYM_LINE",
-                                        "ELAS_THM",
                                         "ELAS_THER",
-                                        "SURF_ETAT_NSAT",
-                                        "SURF_ETAT_SATU",
-                                        "CAM_CLAY_THM",
                                         "KIT_DDI",
                                         "GLRC",
                                         "SANS",
@@ -1251,6 +1252,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "GATT_MONERIE",
                                      ) ),
           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+          ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           SANS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           CORR_ACIER      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),        
           VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
@@ -1294,8 +1296,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
           META_V_CL_RE       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
           META_V_CL_PT_RE    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
           VMIS_CINE_LINE  =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
-          CHABOCHE        =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
           VISCOCHAB       =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
+          VMIS_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
+          VMIS_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
           VISC_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
           VISC_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
           POLY_CFC        =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)),
@@ -1312,6 +1315,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
           NORTON_HOFF     =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           LEMAITRE        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           LEMA_SEUIL      =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
+          IRRAD3M         =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
           LEMAITRE_IRRA   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           ZIRC_CYRA2      =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           ZIRC_EPRI       =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
@@ -1324,7 +1328,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
           GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)),
           DIS_CONTACT     =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
           DIS_CHOC        =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
-          DIS_GRICRA     =SIMP(statut='c',typ='I',defaut=12,into=(12,)),
+          DIS_GRICRA     =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
           DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
@@ -1334,7 +1338,8 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
           LAIGLE          =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           DRUCKER_PRAGER  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
           HOEK_BROWN      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-          OHNO            =SIMP(statut='c',typ='I',defaut=32,into=(32,)),
+          HOEK_BROWN_EFF  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+          HOEK_BROWN_TOT  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
           GRANGER_FP      =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
           GRANGER_FP_INDT =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
           GRANGER_FP_V    =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
@@ -1375,23 +1380,18 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                        "BARCELONE",
                                        "LAIGLE",
                                        "DRUCKER_PRAGER",
-                                       "HOEK_BROWN",
-                                       "ELAS_THM",
+                                       "HOEK_BROWN_EFF",
+                                       "HOEK_BROWN_TOT",
                                        "ELAS_THER",
-                                       "SURF_ETAT_NSAT",
-                                       "SURF_ETAT_SATU",
-                                       "CAM_CLAY_THM",
                                        "MAZARS",
                                        "ENDO_ISOT_BETON",
 # THMC
                                        "GAZ",
                                        "LIQU_SATU",
-                                       "LIQU_SATU_GAT",
                                        "LIQU_GAZ_ATM",
                                        "LIQU_VAPE_GAZ",
                                        "LIQU_AD_GAZ_VAPE",
                                        "LIQU_VAPE",
-                                       "LIQU_NSAT_GAT",
                                        "LIQU_GAZ",
 # HYDR
                                        "HYDR_UTIL",
@@ -1409,25 +1409,18 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                        "GRANGER_FP_V",
                                        "BETON_UMLV_FP",
                                        "ROUSS_PR",
-                                       "CHABOCHE",
-                                       "OHNO",
                                        "NADAI_B",
                                        "BETON_DOUBLE_DP",
                                        ),),
                             
                                         
-           ELAS_THM        =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           SURF_ETAT_NSAT  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           SURF_ETAT_SATU  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           CAM_CLAY_THM    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
+           ELAS_THER       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
            GAZ             =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
            LIQU_SATU       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           LIQU_SATU_GAT   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
            LIQU_GAZ_ATM    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
            LIQU_VAPE_GAZ   =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
            LIQU_AD_GAZ_VAPE=SIMP(statut='c',typ='I',defaut=3,into=(3,)),
            LIQU_VAPE       =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-           LIQU_NSAT_GAT   =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
            LIQU_GAZ        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
            HYDR_UTIL       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
            HYDR            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
@@ -1435,7 +1428,8 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
            ACIER           =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
            ZIRC            =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
 
-           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN",)),
+           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",
+                             into=("PETIT","PETIT_REAC","SIMO_MIEHE","GREEN_GR","GREEN","COROTATIONNEL")),
            ALGO_C_PLAN     =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
            ALGO_1D         =SIMP(statut='f',typ='TXM',defaut="ANALYTIQUE",into=("DEBORST","ANALYTIQUE",)),
       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
@@ -1448,7 +1442,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
            RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
                                  into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
          ) ;
-#& MODIF COMMUN  DATE 18/07/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMUN  DATE 04/04/2006   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -1537,15 +1531,18 @@ def C_NOM_CHAM_INTO() : return  ("ACCE",    #COMMUN#
                         "EQUI_NOEU_EPME",
                         "EQUI_NOEU_EPSI",
                         "EQUI_NOEU_SIGM",
-                        "ERRE_ELEM_NOZ1",
-                        "ERRE_ELEM_NOZ2",
-                        "ERRE_ELGA_NORE",
-                        "ERRE_ELNO_ELGA",
-                        "ERRE_NOEU_ELGA",
+                        "ERRE_ELEM_SIGM",
+                        "ERRE_ELEM_TEMP",
+                        "ERRE_ELNO_ELEM",
+                        "ERRE_NOEU_ELEM",
+                        "ERZ1_ELEM_SIGM",
+                        "ERZ2_ELEM_SIGM",
+                        "QIRE_ELEM_SIGM",
+                        "QIRE_ELNO_ELEM",
+                        "QIZ1_ELEM_SIGM",
+                        "QIZ2_ELEM_SIGM",
                         "SING_ELEM",
                         "SING_ELNO_ELEM",
-                        "ERTH_ELEM_TEMP",
-                        "ERTH_ELNO_ELEM",
                         "ETOT_ELEM",
                         "ETOT_ELGA",
                         "ETOT_ELNO_ELGA",
@@ -1636,6 +1633,58 @@ def C_NOM_CHAM_INTO() : return  ("ACCE",    #COMMUN#
 #& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+#
+# ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM
+def C_TYPE_CHAM_INTO() : #COMMUN#
+   l=[]
+   for gd in C_NOM_GRANDEUR() :
+        for typ in ("ELEM","ELNO","ELGA","CART","NOEU") :
+             l.append(typ+"_"+gd)
+   return tuple(l)
+
+#& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# ce fichier contient la liste des PARA possibles pour les fonctions et les nappes
+def C_PARA_FONCTION() : return  ( #COMMUN#
+                   "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC",
+                   "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP",
+                   "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
+                   "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS",
+                   "NEUT1","NEUT2",)
+#& MODIF COMMUN  DATE 04/04/2006   AUTEUR CIBHHLV L.VIVAN 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
 # COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
@@ -1694,7 +1743,6 @@ def C_NOM_GRANDEUR() : return  ( #COMMUN#
 "ENER_R",
 "EPSI_F",
 "EPSI_R",
-"ERRETEMP",
 "ERREUR",
 "FACY_R",
 "FELECR",
@@ -1780,59 +1828,7 @@ def C_NOM_GRANDEUR() : return  ( #COMMUN#
 "WEIBULL",
 "XCONTAC",
                                  )
-#& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# ce fichier contient la liste des PARA possibles pour les fonctions et les nappes
-def C_PARA_FONCTION() : return  ( #COMMUN#
-                   "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC",
-                   "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP",
-                   "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
-                   "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS",
-                   "NEUT1","NEUT2",)
-#& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-#
-# ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM
-def C_TYPE_CHAM_INTO() : #COMMUN#
-   l=[]
-   for gd in C_NOM_GRANDEUR() :
-        for typ in ("ELEM","ELNO","ELGA","CART","NOEU") :
-             l.append(typ+"_"+gd)
-   return tuple(l)
-
-#& MODIF COMMANDE  DATE 09/05/2005   AUTEUR MJBHHPE J.L.FLEJOU 
+#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR JMBHH01 J.M.PROIX 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -1856,7 +1852,7 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
                     reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF',
-                             'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE','RIGI_PARASOL'),),
+                             'GRILLE','AFFE_SECT','AFFE_FIBRE','RIGI_PARASOL'),),
          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
          INFO            =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
          VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("MAILLE","NOEUD") ),
@@ -1979,11 +1975,6 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
 
 #============================================================================
          DISCRET         =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
            REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
            AMOR_HYST       =SIMP(statut='f',typ='R' ),
            CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
@@ -1997,50 +1988,103 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
 
 # affection des caractéristiques de RIGIDITE/AMORTISSEMENT
               b_K_T_D_N  =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
-                               VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),),
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                               VALE     =SIMP(statut='o',typ='R',min=3 ,max=3 ),),
               b_K_T_D_L  =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),),
               b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),),
               b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),),
               b_K_T_N    =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),),
               b_K_T_L    =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=21,max=21),),
               b_K_TR_N   =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=21,max=21),),
               b_K_TR_L   =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=78,max=78),),
 
 # affection des caractéristiques de MASSE
               b_M_T_D_N  =BLOC(condition = "CARA=='M_T_D_N'",
           fr="NOEUD: 1 valeur de masse",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),),
               b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'",
           fr="NOEUD: 1 valeur de masse, 6 valeurs du tenseur d'inertie, 3 composantes du vecteur d'excentricité",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=10,max=10),),
               b_M_T_N    =BLOC(condition = "CARA=='M_T_N'",
           fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),),
               b_M_T_L    =BLOC(condition = "CARA=='M_T_L'",
           fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=21,max=21),),
               b_M_TR_N   =BLOC(condition = "CARA=='M_TR_N'",
           fr="NOEUD: 21 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=21,max=21),),
               b_M_TR_L   =BLOC(condition = "CARA=='M_TR_L'",
           fr="SEGMENT: 78 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=78,max=78),),
          ),
 
 #============================================================================
          DISCRET_2D      =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
            REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
            AMOR_HYST       =SIMP(statut='f',typ='R' ),
            CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
@@ -2054,40 +2098,98 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
 
 # affection des caractéristiques de RIGIDITE/AMORTISSEMENT
               b_K_T_D_N  =BLOC(condition = "(CARA=='K_T_D_N')or(CARA=='A_T_D_N')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),),
               b_K_T_D_L  =BLOC(condition = "(CARA=='K_T_D_L')or(CARA=='A_T_D_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=2 ,max=2 ),),
               b_K_TR_D_N =BLOC(condition = "(CARA=='K_TR_D_N')or(CARA=='A_TR_D_N')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),),
               b_K_TR_D_L =BLOC(condition = "(CARA=='K_TR_D_L')or(CARA=='A_TR_D_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),),
               b_K_T_N    =BLOC(condition = "(CARA=='K_T_N')or(CARA=='A_T_N')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),),
               b_K_T_L    =BLOC(condition = "(CARA=='K_T_L')or(CARA=='A_T_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=10,max=10),),
               b_K_TR_N   =BLOC(condition = "(CARA=='K_TR_N')or(CARA=='A_TR_N')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=6 ,max=6),),
               b_K_TR_L   =BLOC(condition = "(CARA=='K_TR_L')or(CARA=='A_TR_L')",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=21,max=21),),
 
 # affection des caractéristiques de MASSE
               b_M_T_D_N  =BLOC(condition = "CARA=='M_T_D_N'",
           fr="NOEUD: 1 valeur de masse",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=1 ,max=1 ),),
               b_M_TR_D_N =BLOC(condition = "CARA=='M_TR_D_N'",
           fr="NOEUD: 1 valeur de masse(m), 1 valeur d'inertie(Izz), 2 composantes du vecteur d'excentricité(ex,ey) ",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=4 ,max=4 ),),
               b_M_T_N    =BLOC(condition = "CARA=='M_T_N'",
           fr="NOEUD: 3 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=3 ,max=3 ),),
               b_M_T_L    =BLOC(condition = "CARA=='M_T_L'",
           fr="SEGMENT: 10 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=10,max=10),),
               b_M_TR_N   =BLOC(condition = "CARA=='M_TR_N'",
           fr="NOEUD: 6 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
+                               NOEUD    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               GROUP_NO =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=6 ,max=6 ),),
               b_M_TR_L   =BLOC(condition = "CARA=='M_TR_L'",
           fr="SEGMENT: 21 valeurs de masse (triangulaire supérieure par colonne)",
+                               regles=(UN_PARMI('MAILLE','GROUP_MA'),),
+                               MAILLE   =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                VALE =SIMP(statut='o',typ='R',min=21,max=21),),
          ),
 
@@ -2211,21 +2313,6 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
            UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
          ),
          
-#============================================================================
-         ASSE_GRIL       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA'),),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                                 into=("K_TR_D_N","K_TR_D_L_T","K_TR_D_L_N",) ),
-           VALE            =SIMP(statut='o',typ='R',max='**'),
-           PAS_T           =SIMP(statut='o',typ='R'),
-           PAS_N           =SIMP(statut='o',typ='R'),
-           ANGL_REP        =SIMP(statut='o',typ='R',max='**'),
-           COEF_ECHELLE    =SIMP(statut='o',typ='R'),
-         ),
-
-
 #============================================================================
          AFFE_SECT     =FACT(statut='f',max='**',
               regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
@@ -2521,7 +2608,7 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_pr
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 24/10/2005   AUTEUR KHAM M.KHAM 
+#& MODIF COMMANDE  DATE 03/05/2006   AUTEUR MABBAS M.ABBAS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2552,17 +2639,16 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                              'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP',
                              'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI',
                              'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',
-                             'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE',
-                             'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE'),
+                             'LIAISON_MAIL','LIAISON_CYCL','FORCE_TUYAU','SECH_CALCULEE',
+                             'EFFE_FOND','EVOL_CHAR','ARLEQUIN','DDL_POUTRE','GRAPPE_FLUIDE',
+                             'LIAISON_UNILATER'),
                          ),
          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
          TEMP_CALCULEE   =SIMP(statut='f',fr="Champ de température issu d'un autre calcul",
-                               typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
-         HYDR_CALCULEE   =SIMP(statut='f',fr="Champ d hydratation issu d'un autre calcul",
-                               typ=evol_ther ),
+                               typ=(evol_ther,cham_no_sdaster,carte_sdaster) ),
          SECH_CALCULEE   =SIMP(statut='f',fr="Champ de séchage issu d'un autre calcul",
-                               typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
+                               typ=(evol_ther,cham_no_sdaster,carte_sdaster ) ),
          EPSA_CALCULEE   =SIMP(statut='f',fr="Champ de déformation anélastique issu d'un autre calcul",
                                typ=evol_noli ),
          EVOL_CHAR       =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
@@ -2582,7 +2668,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                                  'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
                                  'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON','DCX',
                                  'DCY','DCZ','H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
-                                 'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),),
+                                 'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),),
              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
@@ -2653,6 +2739,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
              E4X             =SIMP(statut='f',typ='R' ),
              E4Y             =SIMP(statut='f',typ='R' ),
              E4Z             =SIMP(statut='f',typ='R' ),      
+             LAGS_C          =SIMP(statut='f',typ='R' ),
            ),
 
 
@@ -2700,6 +2787,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
 #  rajout d'un mot clé REPERE :/ LOCAL /GLOBAL
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+             SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+             SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
              DX              =SIMP(statut='f',typ='R' ),
              DY              =SIMP(statut='f',typ='R' ),
              DZ              =SIMP(statut='f',typ='R' ),
@@ -2876,8 +2965,37 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
 
          LIAISON_XFEM      =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
 
-         VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
+         VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster ),
+#
+# LIAISON UNILATERALE
+# 
+         LIAISON_UNILATER=FACT(statut='f',max='**',
+           fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)",
+           regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
+                                         
+           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
+           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),   
+
+           SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                 
+           NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
+
+           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),           
+           
+           COEF_IMPO       =SIMP(statut='f',typ='R'),
+           COEF_MULT       =SIMP(statut='f',typ='R',max='**'),         
 
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
+                                 into=("CONTRAINTE","GCPC",) ),
+           
+                 
+        ),
+#
+# CONTACT
+#       
          CONTACT         =FACT(statut='f',max='**',
            fr="Définit les zones soumises à des conditions de contact unilatéral avec ou sans frottement",
            regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
@@ -2887,16 +3005,21 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                                  into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
            LISSAGE         =SIMP(statut='f',typ='TXM',defaut="NON",
                                  into=("OUI","NON")),
+           DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
+           DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
            NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",
                                  into=("MAIT","MAIT_ESCL")),
            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
-                                 into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE") ),
+                                 into=("VERIF","CONTRAINTE","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ),
            PROJECTION      =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",
                                  into=("LINEAIRE","QUADRATIQUE") ),
            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
            MAILLE_MAIT     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
            MAILLE_ESCL     =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),          
+           b_cara         =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
+               CARA_ELEM       =SIMP(statut='o',typ=(cara_elem) ),
+           ),
          
            b_verif         =BLOC(condition = "METHODE == 'VERIF' ",
                                  fr="Paramètres de la méthode sans calcul de contact",
@@ -2906,7 +3029,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 DIST_MAIT       =SIMP(statut='f',typ='R'),
                 DIST_ESCL       =SIMP(statut='f',typ='R'),
                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
-                VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
            ),
 
            b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
@@ -2922,7 +3045,6 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                                  ),
                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
                                       into=("OUI","NON")),
                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
@@ -2930,20 +3052,14 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                         into=("AUTOMATIQUE","CONTROLE","SANS")),
                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",
                                  fr="Paramètre de la réactualisation géométrique",
-                      
-                      STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON",
-                                           into=("OUI","NON")),
                                  ),
                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
                                  fr="Paramètre de la réactualisation géométrique",
                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
-                      
-                      STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("OUI","NON")),
+
                                  ),
                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
                       fr="Paramètre de la réactualisation géométrique auto",
-                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
                                  ), 
                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -2951,7 +3067,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 COEF_IMPO       =SIMP(statut='f',typ='R'),
                 COEF_MULT_ESCL  =SIMP(statut='f',typ='R'),
                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
-                VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
                 DIST_MAIT       =SIMP(statut='f',typ='R'),
                 DIST_ESCL       =SIMP(statut='f',typ='R'),
 
@@ -2962,7 +3078,6 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
                                       into=("OUI","NON")),
                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
@@ -2971,27 +3086,26 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique",
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
-                      
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
+
                                  ),
                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
                       fr="Paramètre de la réactualisation géométrique auto",
-                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
-                                 ), 
-
+                                  ), 
 
+               
                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
                 DIST_MAIT       =SIMP(statut='f',typ='R'),
                 DIST_ESCL       =SIMP(statut='f',typ='R'),
+                
+                regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
+                
                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
                      COULOMB         =SIMP(statut='o',typ='R',),
                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
@@ -3004,7 +3118,6 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
                                       into=("OUI","NON")),
                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
@@ -3013,18 +3126,12 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique",
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
-                      
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
                       fr="Paramètre de la réactualisation géométrique auto",
-                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
                                  ), 
 
                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
@@ -3032,7 +3139,9 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
                 DIST_MAIT       =SIMP(statut='f',typ='R'),
                 DIST_ESCL       =SIMP(statut='f',typ='R'),
+                regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
                 
                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
                      COULOMB         =SIMP(statut='o',typ='R',),
@@ -3062,6 +3171,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                 ITER_CONT_MAXI  =SIMP(statut='f',typ='I',defaut=30),
                 DIST_MAIT       =SIMP(statut='f',typ='R',defaut=0.),
                 DIST_ESCL       =SIMP(statut='f',typ='R',defaut=0.),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
+                TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
                 CONTACT_INIT    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
                 b_compliance    =BLOC(condition = "COMPLIANCE == 'OUI' ",fr="Parametres de la compliance",
                      ASPERITE        =SIMP(statut='o',typ='R',),
@@ -3076,6 +3187,50 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                      ITER_FROT_MAXI  =SIMP(statut='f',typ='I',defaut=2),
                      COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
                      SEUIL_INIT      =SIMP(statut='f',typ='R',defaut=0.E+0),),),
+
+           b_gcp        =BLOC(condition = "METHODE == 'GCP' ",
+                                 fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)",
+                regles=(EXCLUS('DIST_ESCL','COEF_IMPO'),
+                        EXCLUS('DIST_MAIT','COEF_IMPO'),),
+                NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",
+                                      into=("DEPL","PRES","TEMP","PRE1","PRE2")),
+                RESI_ABSO       =SIMP(statut='o',typ='R',
+                                      fr="Critère de convergence (niveau d'interpénétration autorisé)"),
+                REAC_ITER       =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"),
+                TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
+                TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
+                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
+                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
+                                      into=("OUI","NON")),
+                REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
+                        into=("AUTOMATIQUE","CONTROLE","SANS")),
+                b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",
+                                 fr="Paramètre de la réactualisation géométrique",
+                      
+                      STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON",
+                                           into=("OUI","NON")),
+                                 ),
+                b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
+                                 fr="Paramètre de la réactualisation géométrique",
+                      NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
+                      
+                      STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
+                                           into=("OUI","NON")),
+                                 ),
+                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
+                      fr="Paramètre de la réactualisation géométrique auto",
+                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
+                                 ), 
+                SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+                COEF_IMPO       =SIMP(statut='f',typ='R'),
+                COEF_MULT_ESCL  =SIMP(statut='f',typ='R'),
+                VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
+                DIST_MAIT       =SIMP(statut='f',typ='R'),
+                DIST_ESCL       =SIMP(statut='f',typ='R'),
+           ),
          ),
 
          FORCE_NODALE    =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**',
@@ -3357,7 +3512,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
                                  fr="direction d'application de la force de plaquage",),
              b_CDG    =BLOC(condition = "(APPL_FORC_ARCHI == 'CDG') or (APPL_FORC_FPLAQ == 'CDG') or \
                                          (APPL_FORC_FMEC  == 'CDG') or (APPL_FORC_FTG   == 'CDG')",
-                MASS_INER        =SIMP(statut='o',typ=tabl_mass_iner ),
+                MASS_INER        =SIMP(statut='o',typ=table_sdaster ),
              ),
              UNITE_IMPR_FORCE =SIMP(statut='f',typ='I',
                                  fr="unité d'impression des forces",),
@@ -3558,7 +3713,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 11/10/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 03/05/2006   AUTEUR MABBAS M.ABBAS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3586,7 +3741,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                             'PRES_REP','FORCE_POUTRE','VITE_FACE','IMPE_FACE','ONDE_PLANE',
                             'LIAISON_OBLIQUE','EPSI_INIT','LIAISON_GROUP','LIAISON_UNIF',
                             'LIAISON_SOLIDE','FORCE_COQUE','LIAISON_COQUE','FORCE_TUYAU',
-                            'CONTACT','EFFE_FOND','FLUX_THM_REP'),),
+                           
+'CONTACT','EFFE_FOND','FLUX_THM_REP','LIAISON_UNILATER'),),
          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          MODELE          =SIMP(statut='o',typ=modele_sdaster),
@@ -3598,7 +3754,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
                                'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X',
                                'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
-                               'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),),
+                               'E3X','E3Y','E3Z','E4X','E4Y','E4Z','LAGS_C'),),
            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
@@ -3635,6 +3791,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            E4X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            E4Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            E4Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
+           LAGS_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),     
          ),
 
          FACE_IMPO       =FACT(statut='f',max='**',
@@ -3657,6 +3814,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
 #  rajout d un mot cle REPERE : / GLOBAL / LOCAL
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+           SANS_GROUP_MA   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           SANS_MAILLE     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
            DX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            DY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            DZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
@@ -3734,7 +3893,33 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
            CENTRE          =SIMP(statut='f',typ='R',max=3),
          ),
+#
+# LIAISON UNILATERALE
+# 
+         LIAISON_UNILATER=FACT(statut='f',max='**',
+           fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)",
+           regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
+                                         
+           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
+           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),   
 
+           SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                 
+           NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
+
+           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),           
+           
+           COEF_IMPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           COEF_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),         
+
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
+                                 into=("CONTRAINTE","GCPC",) ),
+           
+                 
+        ),
          CONTACT         =FACT(statut='f',
            fr="Définit les zones soumises à des conditions de contact unilatéral avec ou \sans frottement, certaines valeurs"
            +" sont données par l'intermédiaire de concept fonction",max='**',
@@ -3743,14 +3928,19 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                                  into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")),
            RECHERCHE       =SIMP(statut='f',typ='TXM',defaut="NOEUD_BOUCLE",into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
            LISSAGE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),                 
+           DIST_POUTRE     =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
+           DIST_COQUE      =SIMP(statut='f',typ='TXM',defaut="NON", into=("OUI","NON")),
            NORMALE         =SIMP(statut='f',typ='TXM',defaut="MAIT",into=("MAIT","MAIT_ESCL")),
            METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",    
-                                 into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE") ),           
+                                 into=("CONTRAINTE","VERIF","LAGRANGIEN","PENALISATION","CONTINUE","GCP") ),           
            PROJECTION      =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","QUADRATIQUE") ),
            GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE_MAIT     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
            GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE_ESCL     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+           b_cara         =BLOC(condition = "DIST_POUTRE == 'OUI' or DIST_COQUE == 'OUI'",
+               CARA_ELEM       =SIMP(statut='o',typ=(cara_elem) ),
+           ),
                     
            b_verif         =BLOC(condition = "METHODE == 'VERIF' ",
                                  fr="Paramètres de la méthode sans calcul de contact",
@@ -3760,7 +3950,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 DIST_MAIT       =SIMP(statut='f',typ='R'),
                 DIST_ESCL       =SIMP(statut='f',typ='R'),
                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
-                VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
            ),
 
            b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
@@ -3776,7 +3966,6 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                                  ),
                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
                                       into=("OUI","NON")),
                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
@@ -3785,19 +3974,14 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",
                                  fr="Parametre de la reactualisation geometrique",
                       
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
                                  fr="Parametre de la reactualisation geometrique",
                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
                       
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
                       fr="Parametre de la reactualisation geometrique auto",
-                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
                                  ), 
                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -3805,7 +3989,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 COEF_IMPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
                 COEF_MULT_ESCL  =SIMP(statut='f',typ='R'),
                 VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
-                VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
                 DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
                 DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
             ),
@@ -3815,7 +3999,6 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
                                       into=("OUI","NON")),
                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
@@ -3824,18 +4007,13 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Parametre de la reactualisation geometrique",
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique",
                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
-                      
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
+
                                  ),
                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
                       fr="Parametre de la reactualisation geometrique auto",
-                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
                                  ), 
 
                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
@@ -3843,8 +4021,9 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
                 DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
                 DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
-                
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),                
                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
                      COULOMB         =SIMP(statut='o',typ='R',),
                      COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),  
@@ -3856,7 +4035,6 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
                 TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
                 TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
                 STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
                                       into=("OUI","NON")),
                 NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
@@ -3865,26 +4043,21 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                 REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
                                       into=("AUTOMATIQUE","CONTROLE","SANS")),
                 b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",fr="Paramètre de la réactualisation géométrique",
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Paramètre de la réactualisation géométrique",
                       NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
-                      
-                      VERI_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
-                                           into=("ALARME","ERREUR","NON")),
                                  ),
                 b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
                      fr="Paramètre de la réactualisation géométrique auto",
-                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
                                  ), 
                 SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
                 SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                 SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
                 DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
                 DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                regles=(EXCLUS('VECT_Y','VECT_ORIE_POU')),
                 VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
-                
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),                
                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
                      COULOMB         =SIMP(statut='o',typ='R',),
                      E_T             =SIMP(statut='f',typ='R',
@@ -3926,6 +4099,50 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                      ITER_FROT_MAXI  =SIMP(statut='f',typ='I',defaut=2),
                      COEF_REGU_FROT  =SIMP(statut='f',typ='R',defaut=100.E+0),
                      SEUIL_INIT      =SIMP(statut='f',typ='I',defaut=0),),),
+
+           b_gcp        =BLOC(condition = "METHODE == 'GCP' ",
+                                 fr="Paramètres de la méthode du gradient conjugué projeté (contact uniquement)",
+                regles=(EXCLUS('DIST_ESCL','COEF_IMPO'),
+                        EXCLUS('DIST_MAIT','COEF_IMPO'),),
+                NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",
+                                      into=("DEPL","PRES","TEMP","PRE1","PRE2")),
+                RESI_ABSO       =SIMP(statut='o',typ='R',
+                                      fr="Critère de convergence (niveau d'interpénétration autorisé)"),
+                REAC_ITER       =SIMP(statut='f',typ='I',defaut=3, fr="Fréquence de réinitialisation de la conjugaison"),
+                TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
+                TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
+                TOLE_REAC_GEOM  =SIMP(statut='f',typ='R'  ,defaut=0.05),
+                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
+                                      into=("OUI","NON")),
+                REAC_GEOM       =SIMP(statut='f',typ='TXM',defaut="AUTOMATIQUE",
+                        into=("AUTOMATIQUE","CONTROLE","SANS")),
+                b_reac_sans     =BLOC(condition = "REAC_GEOM == 'SANS' ",
+                                 fr="Paramètre de la réactualisation géométrique",
+                      
+                      STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="NON",
+                                           into=("OUI","NON")),
+                                 ),
+                b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
+                                 fr="Paramètre de la réactualisation géométrique",
+                      NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
+                      
+                      STOP_REAC_GEOM =SIMP(statut='f',typ='TXM',defaut="ALARME",
+                                           into=("OUI","NON")),
+                                 ),
+                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
+                      fr="Paramètre de la réactualisation géométrique auto",
+                      NB_REAC_MAXI   =SIMP(statut='o',typ='I',defaut = 10),
+                                 ), 
+                SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                SANS_NOEUD_QUAD =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+                COEF_IMPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                COEF_MULT_ESCL  =SIMP(statut='f',typ='R'),
+                VECT_NORM_ESCL  =SIMP(statut='f',typ='R',max=3),
+                VECT_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
+                DIST_MAIT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                DIST_ESCL       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           ),
          ),        
          
           LIAISON_UNIF    =FACT(statut='f',max='**',
@@ -4227,7 +4444,7 @@ AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 11/10/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4277,7 +4494,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
            FLUN            =SIMP(statut='f',typ='R'),
            FLUN_INF        =SIMP(statut='f',typ='R'),
            FLUN_SUP        =SIMP(statut='f',typ='R'),
-           CARA_TORSION    =SIMP(statut='f',typ=tabl_aire_int ),
+           CARA_TORSION    =SIMP(statut='f',typ=table_sdaster),
          ),
 
 
@@ -4319,7 +4536,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
            SOUR            =SIMP(statut='f',typ='R'),
-           SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem_sour_r) ),
+           SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem) ),
          ),
 
          GRAD_TEMP_INIT  =FACT(statut='f',max='**',
@@ -4425,13 +4642,13 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
          ),
 
          CONVECTION      =FACT(statut='f',max='**',
-           VITESSE         =SIMP(statut='o',typ=(cham_no_depl_r) ),
+           VITESSE         =SIMP(statut='o',typ=(cham_no_sdaster) ),
          ),
 
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 11/10/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4621,12 +4838,12 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
          ),
 
          CONVECTION      =FACT(statut='f',max='**',
-           VITESSE         =SIMP(statut='o',typ=(cham_no_depl_r) ),
+           VITESSE         =SIMP(statut='o',typ=cham_no_sdaster ),
          ),
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
+#& MODIF COMMANDE  DATE 25/04/2006   AUTEUR CIBHHPD L.SALMONA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4667,7 +4884,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
          #  affectation des variables de commande :
          #  --------------------------------------------------
          # un mot clé caché qui ne sert qu'à boucler sur les VARC possibles :
-         LIST_NOM_VARC    =SIMP(statut='c',typ='TXM', defaut=("CORR","IRRA","NEUT1","NEUT2")),
+         LIST_NOM_VARC    =SIMP(statut='c',typ='TXM', defaut=("CORR","IRRA","HYDR","NEUT1","NEUT2")),
 
          AFFE_VARC    =FACT(statut='f',max='**',
 
@@ -4682,13 +4899,14 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
 
            CHAMP_GD        =SIMP(statut='f',typ=cham_gd_sdaster,),
            B_CHAMP_GD      =BLOC(condition="CHAMP_GD!=None",
-               NOM_VARC    =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","NEUT1","NEUT2")),
+               NOM_VARC    =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","NEUT1","NEUT2")),
            ),
            EVOL            =SIMP(statut='f',typ=evol_sdaster,),
            B_EVOL          =BLOC(condition="EVOL!=None",
-               NOM_VARC    =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","NEUT1","NEUT2")),
+               NOM_VARC    =SIMP(statut='o',typ='TXM', into=("CORR","IRRA","HYDR","NEUT1","NEUT2")),
                B_NOM_CORR  =BLOC(condition="NOM_VARC=='CORR'",  NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'CORR',),),
                B_NOM_IRRA  =BLOC(condition="NOM_VARC=='IRRA'",  NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'IRRA',),),
+               B_NOM_HYDR  =BLOC(condition="NOM_VARC=='HYDR'",  NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'HYDR_ELNO_ELGA',),),
                B_NOM_NEUT1 =BLOC(condition="NOM_VARC=='NEUT1'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),),
                B_NOM_NEUT2 =BLOC(condition="NOM_VARC=='NEUT2'", NOM_CHAM=SIMP(statut='f',typ='TXM',defaut= 'NEUT',),),
                PROL_DROITE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
@@ -4728,6 +4946,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="TEMP_R"),
            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("TEMP",)),
            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("SECH",)),
+           VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
          ),
 
          #  mots clés cachés pour variable de commande HYDR :
@@ -4737,6 +4956,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="HYDR_R"),
            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("HYDR",)),
+           VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
          ),
 
          #  mots clés cachés pour variable de commande CORR :
@@ -4755,7 +4975,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="IRRA_R"),
            CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
            CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("IRRA",)),
-           VALE_DEF        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=(0.,)),
+           VALE_DEF        =SIMP(statut='c',typ='R',max=1,min=1,defaut=(0.,)),
          ),
 
          #  mots clés cachés pour variable de commande EPSA :
@@ -4765,12 +4985,127 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
            GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="EPSI_R"),
            CMP_GD          =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)),
            CMP_VARC        =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=("EPXX","EPYY","EPZZ","EPXY","EPXZ","EPYZ",)),
-           VALE_DEF        =SIMP(statut='c',typ='TXM',max=6,min=6,defaut=( 0.,    0.,    0.,    0.,    0.,    0.,   )),
+           VALE_DEF        =SIMP(statut='c',typ='R',max=6,min=6,defaut=( 0.,    0.,    0.,    0.,    0.,    0.,   )),
          ),
 )  ;
 
 
-#& MODIF COMMANDE  DATE 16/08/2005   AUTEUR ROMEO R.FERNANDES 
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+AIDE=PROC(nom="AIDE",op=42,
+       UIinfo={"groupes":("Modélisation",)},
+       fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples"
+           +" (type d'éléments, option) disponibles dans la version.",
+       regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
+       UNITE       =SIMP(statut='f',typ='I',defaut=8),  
+       TYPE_ELEM   =FACT(fr="couple type_elem option",statut='f',
+         INITEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
+                        ),
+       CONCEPT     =FACT(statut='f',max='**',
+         NOM          =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"),
+         OPTION       =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE",
+                                 into=("TOUT_TYPE","CREER","A_CREER",) ),
+         ),
+) ;
+#& MODIF COMMANDE  DATE 16/01/2006   AUTEUR D6BHHJP J.P.LEFEBVRE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n',
+            UIinfo={"groupes":("Gestion du travail",)},
+           fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers",
+          sd_prod=ops.DEBUT,
+
+         PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
+                           into=("OUI","NON"),defaut="OUI"),
+         IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
+                           statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
+#         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
+#                               typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+         BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
+                               statut='f',min=1,max=2,
+           FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
+                                 into=('GLOBALE','VOLATILE'),),
+           TITRE           =SIMP(statut='f',typ='TXM'),
+           CAS             =SIMP(statut='f',typ='TXM'),
+           NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
+           LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
+           LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
+         ),
+         IMPRESSION      =FACT(statut='f',min=1,max=3,
+           FICHIER         =SIMP(statut='o',typ='TXM'),
+           UNITE           =SIMP(statut='o',typ='I'),
+         ),
+         CATALOGUE       =FACT(statut='f',min=1,max=10,
+           FICHIER         =SIMP(statut='o',typ='TXM'),
+           TITRE           =SIMP(statut='f',typ='TXM'),
+           UNITE           =SIMP(statut='f',typ='I'),
+         ),
+         CODE            =FACT(fr="définition d un nom pour l'ensemble d'une étude",
+                               statut='f',min=1,max=1,
+           NOM             =SIMP(statut='o',typ='TXM'),
+           NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
+           VISU_EFICAS     =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'),
+           UNITE           =SIMP(statut='f',typ='I',defaut=15),
+         ),
+         ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
+           ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
+         ),
+         DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
+                               statut='f',min=1,max=1,
+           JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
+                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
+           JEVEUX          =SIMP(fr="force les déchargement sur disque",
+                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
+           ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
+                                 statut='f',typ='TXM',into=('TEST',)),
+         ),
+         MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
+           GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
+           TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
+           TAILLE          =SIMP(statut='f',typ='I'),
+           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
+           PARTITION       =SIMP(statut='f',typ='R'),
+         ),
+         RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1,
+           regles=(EXCLUS('VALE','POURCENTAGE'),),
+           VALE            =SIMP(statut='f',typ='I',val_min=0),
+           POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
+#          valeur en pourcentage du temps maximum bornée à 180 secondes
+           BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=180)
+         ),
+ );
+#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR JMBHH01 J.M.PROIX 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4831,8 +5166,6 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
                                                                       "3D_GRAD_EPSI",
                                                                       "3D_GRAD_VARI",
                                                                       "3D_XFEM",
-                                                                      "APPUI_REP",
-                                                                      "ASSE_GRIL",
                                                                       "AXIS",
                                                                       "AXIS_FLUI_STRU",
                                                                       "AXIS_FLUIDE",
@@ -4846,6 +5179,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
                                                                       "BARRE",
                                                                       "2D_BARRE",
                                                                       "C_PLAN",
+                                                                      "C_PLAN_X",
                                                                       "C_PLAN_NS",
                                                                       "C_PLAN_SI",
                                                                       "C_PLAN_GRAD_EPSI",
@@ -4857,6 +5191,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
                                                                       "COQUE_C_PLAN",
                                                                       "COQUE_D_PLAN",
                                                                       "D_PLAN",
+                                                                      "D_PLAN_X",
                                                                       "D_PLAN_GRAD_EPSI",
                                                                       "D_PLAN_GRAD_VARI",
                                                                       "D_PLAN_NS",
@@ -4948,6 +5283,13 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
                                                                       "3D_THVS",
                                                                       "3D_THHMS",
                                                                       "3D_THMS",
+                                                                      "3D_THH2MD",
+                                                                      "3D_THH2MS",
+                                                                      "3D_HH2MD",
+                                                                      "3D_HH2MS",
+                                                                      "3D_THH2S",
+                                                                      "3D_THH2D",
+                                                                      
                                                                      )  )  ),
 
                 b_thermique     =BLOC( condition = "PHENOMENE=='THERMIQUE'",
@@ -4992,39 +5334,6 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-AIDE=PROC(nom="AIDE",op=42,
-       UIinfo={"groupes":("Modélisation",)},
-       fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples"
-           +" (type d'éléments, option) disponibles dans la version.",
-       regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
-       UNITE       =SIMP(statut='f',typ='I',defaut=8),  
-       TYPE_ELEM   =FACT(fr="couple type_elem option",statut='f',
-         INITEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-                        ),
-       CONCEPT     =FACT(statut='f',max='**',
-         NOM          =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"),
-         OPTION       =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE",
-                                 into=("TOUT_TYPE","CREER","A_CREER",) ),
-         ),
-) ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster,
                    fr="Assembler deux maillages pour en former un nouveau",
@@ -5103,7 +5412,7 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5121,7 +5430,7 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene_r,
+ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
                     fr="Projection des chargements sur la base modale d'une sous structure",
                     reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
@@ -5130,11 +5439,11 @@ ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene_r,
          b_nume     =BLOC(condition = "METHODE == 'CLASSIQUE'",
              CHAR_SOUS_STRUC =FACT(statut='o',max='**',
              SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
-             VECT_ASSE       =SIMP(statut='o',typ=cham_no_depl_r ),
+             VECT_ASSE       =SIMP(statut='o',typ=cham_no_sdaster ),
            ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5153,21 +5462,15 @@ ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene_r,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
-def asse_vecteur_prod(VECT_ELEM,**args):
-  if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r
-  if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r
-  if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r
-  if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c
-  raise AsException("type de concept resultat non prevu ")
-
-ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=asse_vecteur_prod,
+
+ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=cham_no_sdaster,
                   fr="Construire un champ aux noeuds par assemblage de vecteurs élémentaires",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          VECT_ELEM       =SIMP(statut='o',typ=vect_elem,max='**'),
          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
          INFO            =SIMP(statut='f',typ='I',into=(1,2,) ),
 )  ;
-#& MODIF COMMANDE  DATE 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5215,7 +5518,7 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
            COOR_CENTRE     =SIMP(statut='f',typ='R',max=3),
          ),
          AMOR_INTERNE    =FACT(statut='o',
-           ENER_POT        =SIMP(statut='o',typ=tabl_ener_pot ),
+           ENER_POT        =SIMP(statut='o',typ=table_sdaster ),
            GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
            AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
          ),
@@ -5226,7 +5529,7 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5245,29 +5548,9 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE JMBHH01 J.M.PROIX
-def calc_cham_elem_prod(OPTION,**args):
-
-
-# options thermiques
-
-  if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r
-  if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r
-
-# options acoustiques
-
-  if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r
-  if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r
-  if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r
-
-# autres options
-
-  if OPTION == "COOR_ELGA" :      return cham_elem_geom_r
 
-  raise AsException("type de concept resultat non prevu")
-
-CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
-                    fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés"
-                        +" de type cham_no",
+CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=cham_elem,
+                    fr="Calculer un champ élémentaire en thermique et en accoustique à partir de champs déjà calculés",
                     reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          MODELE          =SIMP(statut='o',typ=modele_sdaster),
@@ -5290,11 +5573,11 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
                                      "COOR_ELGA"), ),
 
          b_thermique  =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)",
-           TEMP            =SIMP(statut='o',typ=(cham_no_temp_r,)),
+           TEMP            =SIMP(statut='o',typ=(cham_no_sdaster,)),
          ),
 
          b_acoustique  =BLOC(condition="OPTION in ('PRES_ELNO_DBEL','PRES_ELNO_REEL','PRES_ELNO_IMAG',)",
-           PRES            =SIMP(statut='o',typ=(cham_no_pres_c,)),
+           PRES            =SIMP(statut='o',typ=(cham_no_sdaster,)),
          ),
 
 
@@ -5306,13 +5589,13 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
                COEF_MULT       =SIMP(statut='f',typ='R'), ),
 
          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0),
-         ACCE            =SIMP(statut='f',typ=cham_no_depl_r),
+         ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
          NUME_COUCHE     =SIMP(statut='f',typ='I',defaut= 1),
          NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
          MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
          ANGLE           =SIMP(statut='f',typ='I',defaut= 0),
 )  ;
-#& MODIF COMMANDE  DATE 24/01/2005   AUTEUR LEBOUVIE F.LEBOUVIER 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5331,13 +5614,8 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
-def calc_char_cine_prod(CHAR_CINE,**args):
-  if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r
-  if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r
-  if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c
-  raise AsException("type de concept resultat non prevu")
 
-CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod,
+CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=cham_no_sdaster,
                     fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)",
                     reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
@@ -5346,7 +5624,7 @@ CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod,
          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5365,7 +5643,7 @@ CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 def calc_char_seisme_prod(MATR_MASS,**args ):
-  if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r
+  if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_sdaster
   raise AsException("type de concept resultat non prevu")
 
 CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_prod,
@@ -5383,7 +5661,7 @@ CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_pr
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 11/07/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5421,7 +5699,9 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f',
                 fr="Résultat d'une commande globale"),
                                            
      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                    'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),),
+                    'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
+             CONCEPT_SENSIBLE("SEPARE"),
+             DERIVABLE('RESULTAT'),),
      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
      NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
      NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
@@ -5465,8 +5745,9 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f',
                                  "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",
                               #  estimateurs erreur 
-                                 "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2",
-                                 "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA",
+                                 "SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM",
+                                 "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM",
+                                 "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
                                  "SING_ELEM","SING_ELNO_ELEM",
                               #  CRIT    
                                  "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","CRIT_ELNO_RUPT",
@@ -5488,6 +5769,12 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f',
                PLAN =     SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"),
                                fr="Plan de calcul pour les plaques excentrées" ),
               
+                b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
+                                        (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
+                    RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
+
                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max= 1.,
@@ -5661,12 +5948,19 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
                                  ),
 
           b_indi_erre         =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE",
-                           into=("SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2",
-                                 "SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA",
+               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
+                           into=("SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA","ERZ2_ELEM_SIGM",
+                                 "SIRE_ELNO_DEPL","ERRE_ELEM_SIGM","ERRE_ELNO_ELEM",
+                                 "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
                                  "SING_ELEM","SING_ELNO_ELEM",
                                  )),
                
+               b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
+                                        (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
+                    RESU_DUAL=SIMP(statut='o',typ=evol_elas,fr="resultat du probleme dual"),),
+
                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
@@ -5700,7 +5994,8 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
                                  "EXTR_ELGA_VARI","EXTR_ELNO_VARI",
                                  # CRIT
                                  "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
-                                 "ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",
+                                 "ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
+                                 "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
                                  "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
                                  "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM",
@@ -5720,6 +6015,12 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
                NOM_CMP   =SIMP(statut='f',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),
                PLAN =     SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ),
                
+               b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
+                                        (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
+                    RESU_DUAL=SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual"),),
+
                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
@@ -5865,11 +6166,18 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
 
 
           b_indi_erre         =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELGA_NORE",
-                           into=("ERRE_ELGA_NORE","ERRE_ELNO_ELGA","ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",
+               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="ERRE_ELEM_SIGM",
+                           into=("ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
                                  "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
+                                 "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
                                  "SING_ELEM","SING_ELNO_ELEM",) ),
                
+               b_erre_qi =BLOC(condition = "OPTION in ('QIRE_ELEM_SIGM','QIZ1_ELEM_SIGM','QIZ2_ELEM_SIGM') or \
+                                        (type(OPTION)==type(()) and 'QIRE_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ1_ELEM_SIGM' in OPTION) or \
+                                        (type(OPTION)==type(()) and 'QIZ2_ELEM_SIGM' in OPTION)",
+                RESU_DUAL    =SIMP(statut='o',typ=(evol_elas,evol_noli),fr="resultat du probleme dual")),
+
                b_sing =BLOC(condition= "OPTION == 'SING_ELEM' or \
                                (type(OPTION)==type(()) and  'SING_ELEM' in OPTION)",
                     PREC_ERR=SIMP(statut='o',typ='R',val_min= 0.,val_max=1.,
@@ -5892,7 +6200,7 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
           OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
                            into=("DEUL_ELGA_TEMP","DETE_ELNO_DLTE","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
                                   "HYDR_ELNO_ELGA","DURT_ELGA_META","DURT_ELNO_META",
-                                 "SOUR_ELGA_ELEC","ERTH_ELEM_TEMP","ERTH_ELNO_ELEM",),),
+                                  "SOUR_ELGA_ELEC","ERRE_ELEM_TEMP","ERRE_ELNO_ELEM",),),
                EXCIT           =FACT(statut='f',max='**',
                     regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
                     CHARGE          =SIMP(statut='o',typ=char_ther ),
@@ -5926,14 +6234,14 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
                 PUIS_PULS       =SIMP(statut='f',typ='I'),
                 TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
                                  ),
-                                 
+             
      SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
                            fr="Liste des paramètres de sensibilité.",
                            ang="List of sensitivity parameters"),
      INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
      TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 ) ;
-#& MODIF COMMANDE  DATE 28/06/2005   AUTEUR F1BHHAJ J.ANGLES 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5952,9 +6260,9 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args):
-  if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem_dommag
-  if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem_facy_r
-  if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_facy_r
+  if TYPE_CALCUL == "CUMUL_DOMMAGE" : return cham_elem
+  if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_ELGA": return cham_elem
+  if TYPE_CALCUL == "FATIGUE_MULTI" and OPTION == "DOMA_NOEUD": return cham_no_sdaster
   raise AsException("type de calcul non prevu")
 
 CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
@@ -6057,7 +6365,7 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster,
            DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6075,13 +6383,20 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-def calc_fonc_interp_prod(FONCTION,**args):
-  if   AsType(FONCTION)  ==nappe_sdaster  : return nappe_sdaster
-  elif AsType(FONCTION)==fonction_sdaster : return fonction_sdaster
-  elif AsType(FONCTION)==fonction_c       : return fonction_c
-  elif AsType(FONCTION)==formule          : return fonction_sdaster
-  elif AsType(FONCTION)==para_sensi       : return para_sensi
-  raise AsException("type de concept resultat non prevu")
+def calc_fonc_interp_prod(FONCTION, NOM_PARA_FONC, **args):
+   if   AsType(FONCTION) == nappe_sdaster:
+      return nappe_sdaster
+   elif AsType(FONCTION) == fonction_sdaster:
+      return fonction_sdaster
+   elif AsType(FONCTION) == fonction_c:
+      return fonction_c
+   elif AsType(FONCTION) == formule:
+      if NOM_PARA_FONC != None:
+         return nappe_sdaster
+      return fonction_sdaster
+   elif AsType(FONCTION) == para_sensi:
+      return para_sensi
+   raise AsException("type de concept resultat non prevu")
 
 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_prod,
                       docu="U4.32.01-e",reentrant='n',
@@ -6262,7 +6577,7 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_foncti
          PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6280,7 +6595,7 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_foncti
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene_r,
+CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
                    fr="Calculer l'effet de surpression hydrodynamique due au mouvement d'entrainement de la structure"
                        +" en analyse sismique",
                    reentrant ='n',
@@ -6335,259 +6650,7 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene_r,
                            ),
 
            ) ;
-#& MODIF COMMANDE  DATE 03/10/2005   AUTEUR GALENNE E.GALENNE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca,
-                    fr="Calculer le taux de restitution d'énergie local et sous certaines conditions"
-                       +" les facteurs d'intensité de contraintes en 3D par la méthode théta",
-            UIinfo={"groupes":("Post traitements",)},reentrant='n',
-         MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-         regles=(UN_PARMI('RESULTAT','DEPL'),
-                 PRESENT_PRESENT('VITE','ACCE'),
-                 UN_PARMI('R_INF','R_INF_FO'),
-                 PRESENT_PRESENT('R_INF','R_SUP'),
-                 PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
-         FOND_FISS       =SIMP(statut='f',typ=fond_fiss),               
-         DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-         VITE            =SIMP(statut='f',typ=cham_no_depl_r),
-         ACCE            =SIMP(statut='f',typ=cham_no_depl_r),
-         RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),),
-    b_extrac        =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
-           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
-                           'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),),
-           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
-           FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           
-           b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
-               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
-               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             ),
-         ),
-         EXCIT           =FACT(statut='f',max='**',
-               CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
-               FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-               TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
-         ),
-         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
-         COMP_ELAS       =FACT(statut='f',
-               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
-                                     into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
-               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-         ),
-         COMP_INCR       =FACT(statut='f',
-               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
-                                     into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
-               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
-               VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
-               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-         ),
-         
-         ETAT_INIT       =FACT(statut='f',
-           SIGM            =SIMP(statut='f',typ=cham_elem_sief_r),
-           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-         ),
-
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="CALC_G",
-                               into=("CALC_G","CALC_K_G","CALC_G_LGLO","G_BILINEAIRE","CALC_G_MAX","K_G_MODA") ),
-         b_g             =BLOC(condition="OPTION=='CALC_G'",
-           LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-           LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
-         ), 
-         b_g_lglo        =BLOC(condition="OPTION=='CALC_G_LGLO'",
-           PROPAGATION     =SIMP(statut='o',typ='R'),
-           THETA           =SIMP(statut='o',typ=theta_geom),
-           DIRE_THETA      =SIMP(statut='f',typ=cham_no_depl_r),
-           LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-           LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
-         ), 
-         b_g_bilin       =BLOC(condition="OPTION=='G_BILINEAIRE'",
-           LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-           LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-         ), 
-         b_k_g           =BLOC(condition="OPTION=='CALC_K_G'",
-           LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-           LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-           FISSURE         =SIMP(statut='o',typ=fiss_xfem,max=1),
-         ),
-         b_calc_g_max    =BLOC(condition="OPTION=='CALC_G_MAX'",
-           BORNES          =FACT(statut='o',max='**',
-              NUME_ORDRE     =SIMP(statut='o',typ='I'),
-              VALE_MIN       =SIMP(statut='o',typ='R'),
-              VALE_MAX       =SIMP(statut='o',typ='R'),
-                                ),
-           LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-           LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
-         ),
-         b_k_g_moda        =BLOC(condition="OPTION=='K_G_MODA'",
-           LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LAGRANGE",into=("LEGENDRE","LAGRANGE") ),
-           LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LAGRANGE",into=("LEGENDRE","LAGRANGE") ),
-           FISSURE         =SIMP(statut='o',typ=fiss_xfem,max=1),
-         ),
-           
-         DEGRE           =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
-
-         R_INF           =SIMP(statut='f',typ='R'),
-         R_SUP           =SIMP(statut='f',typ='R'),
-         R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 03/10/2005   AUTEUR GALENNE E.GALENNE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
-                    fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité en 2D ou en 3D"
-                        +" et les facteurs d'intensité de contraintes en 2D.",
-                    reentrant='f',
-            UIinfo={"groupes":("Post traitements",)},
-         regles=(UN_PARMI('RESULTAT','DEPL'),
-                 PRESENT_PRESENT('VITE','ACCE'),
-                 EXCLUS('COMP_ELAS','COMP_INCR'),),
-         MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-         THETA           =SIMP(statut='o',typ=(theta_geom,cham_no_depl_r),),
-         DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-         VITE            =SIMP(statut='f',typ=cham_no_depl_r),
-         ACCE            =SIMP(statut='f',typ=cham_no_depl_r),
-         RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),),
-
-         b_extrac        =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
-           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
-                           'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),),
-           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
-           FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           
-           b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
-             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           ),
-         ),         
-         EXCIT           =FACT(statut='f',max='**',
-               CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
-               FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-               TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
-         ),
-         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
-         COMP_ELAS       =FACT(statut='f',
-               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
-                                     into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
-               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-         ),  
-         COMP_INCR       =FACT(statut='f',
-               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
-                                     into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
-               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
-               VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
-               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-         ),
-         ETAT_INIT       =FACT(statut='f',
-           SIGM            =SIMP(statut='f',typ=cham_elem_sief_r),
-           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-         ),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="CALC_G",
-                               into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX","K_G_MODA") ),
-         b_calc_g_max    =BLOC(condition="OPTION=='CALC_G_MAX'",
-           BORNES          =FACT(statut='o',max='**',
-                NUME_ORDRE     =SIMP(statut='o',typ='I'),
-                VALE_MIN       =SIMP(statut='o',typ='R'),
-                VALE_MAX       =SIMP(statut='o',typ='R'),
-                                ),
-         ),
-         b_calc_k_g      =BLOC(condition="OPTION=='CALC_K_G'",
-           FOND_FISS       =SIMP(statut='o',typ=fond_fiss),
-         ),
-         b_calc_g_lagr   =BLOC(condition="OPTION=='CALC_G_LAGR'",
-           PROPAGATION     =SIMP(statut='o',typ='R'),
-         ),
-         b_k_g_moda        =BLOC(condition="OPTION=='K_G_MODA'",
-           FOND_FISS         =SIMP(statut='o',typ=fond_fiss,max=1),
-         ),
-
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                           fr="Liste des paramètres de sensibilité.",
-                           ang="List of sensitivity parameters"),
-
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6605,7 +6668,7 @@ CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
+CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=table_sdaster,
                     fr="Calcul d'une matrice interspectrale à partir d'une fonction du temps",
                     reentrant='n',
             UIinfo={"groupes":("Fonction",)},
@@ -6618,7 +6681,7 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6648,7 +6711,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
          CHARGE          =SIMP(statut='o',typ=char_ther ),
          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
-         CHAM_NO         =SIMP(statut='f',typ=cham_no_depl_r ),
+         CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster ),
          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ),
          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
@@ -6681,7 +6744,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
            ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 28/01/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6715,6 +6778,7 @@ def calc_matr_elem_prod(OPTION,**args):
   if OPTION == "AMOR_MECA"        : return matr_elem_depl_r
   if OPTION == "IMPE_MECA"        : return matr_elem_depl_r
   if OPTION == "ONDE_FLUI"        : return matr_elem_depl_r
+  if OPTION == "AMOR_MECA_ABSO"   : return matr_elem_depl_r
   if OPTION == "RIGI_MECA_HYST"   : return matr_elem_depl_c
   if OPTION == "RIGI_THER"        : return matr_elem_temp_r
   if OPTION == "MASS_THER"        : return matr_elem_temp_r
@@ -6731,7 +6795,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
          OPTION          =SIMP(statut='o',typ='TXM',
                                into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
                                      "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
-                                     "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU",
+                                     "ONDE_FLUI","AMOR_MECA_ABSO","MASS_FLUI_STRU","RIGI_FLUI_STRU",
                                      "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU",
                                      "MASS_ID_MDEP_R","MASS_ID_MDNS_R","MASS_ID_MTEM_R","MASS_ID_MTNS_R",
                                      "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST",
@@ -6782,7 +6846,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
          b_rigi_geom       =BLOC(condition = "OPTION=='RIGI_GEOM'",
            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
            CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
-           SIEF_ELGA         =SIMP(statut='o',typ=cham_elem_sief_r ),
+           SIEF_ELGA         =SIMP(statut='o',typ=cham_elem ),
            MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
          ),
 
@@ -6802,7 +6866,18 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
            MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
            CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
          ),
-
+         
+         b_amor_meca_abso  =BLOC(condition = "OPTION=='AMOR_MECA_ABSO'",
+           regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
+                   ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
+           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
+           CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
+           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
+           RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
+           MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
+           CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+         ),
+         
          b_rigi_meca_hyst  =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
            MODELE            =SIMP(statut='o',typ=modele_sdaster ),
            CHARGE            =SIMP(statut='f',typ=char_meca ,validators=NoRepeat(),max='**' ),
@@ -6861,7 +6936,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
            CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 24/10/2005   AUTEUR ADBHHVV V.CANO 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6888,7 +6963,7 @@ CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
          ETAT_INIT       =FACT(statut='o',
             regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),),
             EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
-            META_INIT_ELNO  =SIMP(statut='f',typ=carte_var2_r ),
+            META_INIT_ELNO  =SIMP(statut='f',typ=carte_sdaster ),
             b_etat     =BLOC(condition="EVOL_THER != None",
                regles=(UN_PARMI('NUME_INIT', 'INST_INIT',),),
                NUME_INIT       =SIMP(statut='f',typ='I'),
@@ -6911,7 +6986,7 @@ CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
          OPTION          =SIMP(statut='f',typ='TXM'     
                              ,into=("META_ELNO_TEMP",) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6946,7 +7021,9 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o',
                                ang="List of sensitivity parameters"),
 
          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                        'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),),
+                        'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),
+                 CONCEPT_SENSIBLE("SEPARE"),
+                 DERIVABLE('RESULTAT'),),
          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
          NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
          NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
@@ -6977,7 +7054,7 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o',
                                      "EPSI_NOEU_DEPL",
                                      "EPSP_NOEU"     ,"EPSP_NOEU_ZAC",
                                      "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM",
-                                     "ERRE_NOEU_ELGA",
+                                     "ERRE_NOEU_ELEM","QIRE_NOEU_ELEM",
                                      "FLUX_NOEU_TEMP",
                                      "HYDR_NOEU_ELGA",
                                      "INTE_NOEU_ACTI","INTE_NOEU_REAC",
@@ -7013,246 +7090,7 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o',
          GROUP_NO_RESU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
          NOEUD_RESU      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-from Macro.calc_precont_ops import calc_precont_ops
-
-
-# ===========================================================================
-#           CATALOGUE DE LA MACRO "CALC_PRECONT"
-#           -----------------------------------------
-# USAGE :
-# 
-#  
-# ===========================================================================
-
-CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli,
-                   fr="Imposer la tension définie par le BPEL dans les cables",
-                   reentrant='f',UIinfo={"groupe":("Modélisation",)},
-         reuse =SIMP(statut='f',typ='evol_noli'),
-         MODELE           =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER       =SIMP(statut='o',typ=cham_mater),
-         CARA_ELEM        =SIMP(statut='o',typ=cara_elem),
-         CABLE_BP         =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'),
-         CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'),
-         INCREMENT        =FACT(statut='o',
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           INST_FIN        =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-         ),
-
-         NEWTON          =FACT(statut='d',
-            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
-            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
-            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-          ),
-         RECH_LINEAIRE   =FACT(statut='f',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
-         ),
-          CONVERGENCE     =FACT(statut='d',
-            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
-          ),
-          ETAT_INIT       =FACT(statut='f',
-            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
-                    EXCLUS('EVOL_NOLI','DEPL',),
-                    EXCLUS('EVOL_NOLI','SIGM',),
-                    EXCLUS('EVOL_NOLI','VARI',),
-                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                    EXCLUS('NUME_ORDRE','INST'), ),
-            DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-            SIGM            =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
-            VARI            =SIMP(statut='f',typ=cham_elem_vari_r),
-            VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_vanl_r),
-            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-            NUME_ORDRE      =SIMP(statut='f',typ='I'),
-            INST            =SIMP(statut='f',typ='R'),
-            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-            NUME_DIDI       =SIMP(statut='f',typ='I'),
-            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
-          ),
-          SOLVEUR         =FACT(statut='d',
-            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-            ),
-            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-            ),
-            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
-            ),
-            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-            ),
-            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-          ),
-            SOLV_NON_LOCAL  =FACT(statut='f',
-              METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-              b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-                RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-              ),
-              b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-                RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-              ),
-              b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                     fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-                NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-              ),
-              b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-                PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-                NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-                RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-                NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-              ),
-              EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-            ),
-            LAGR_NON_LOCAL  =FACT(statut='f',
-              ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
-              RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
-              RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
-              R               =SIMP(statut='f',typ='R',defaut= 1000.),
-              ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
-            ),
-          PARM_THETA      =SIMP(statut='f',typ='R'
-                               ,defaut= 1. ),
-          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
-
-          EXCIT           =FACT(statut='o',max='**',
-            CHARGE          =SIMP(statut='o',typ=char_meca),
-          ),
-
-         COMP_INCR       =C_COMP_INCR(),
-  )  ;
-#& MODIF COMMANDE  DATE 14/11/2005   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# -*- coding: iso-8859-1 -*-
-
-# RESPONSABLE MCOURTOI M.COURTOIS
-
-def calc_table_prod(self, TABLE, **kargs):
-   """Typage du concept produit.
-   """
-   typ_table = AsType(TABLE)
-   if issubclass(typ_table, table_sdaster):
-      return typ_table
-   raise AsException("type de concept resultat non prevu")
-
-from Macro.calc_table_ops import calc_table_ops
-
-CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod,
-                     fr="Opérations sur une table",
-                     reentrant='f',
-   TABLE  = SIMP(statut='o',typ=table_sdaster),
-   regles=(UN_PARMI('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',),),
-   FILTRE = FACT(statut='f',max='**',
-         fr="Sélectionne les lignes de la table vérifiant un critère",
-      NOM_PARA   = SIMP(statut='o',typ='TXM'),
-      CRIT_COMP  = SIMP(statut='f',typ='TXM',defaut="EQ",
-            into=("EQ","LT","GT","NE","LE","GE","VIDE",
-           "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI"),),
-      b_vale         =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
-         regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
-         VALE           =SIMP(statut='f',typ='R'),
-         VALE_I         =SIMP(statut='f',typ='I'),
-         VALE_C         =SIMP(statut='f',typ='C'),
-         VALE_K         =SIMP(statut='f',typ='TXM'),
-      ),
-      b_crit         =BLOC(condition = "CRIT_COMP in ('EQ','NE')",
-         CRITERE        =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-         PRECISION      =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-      ),
-   ),
-   EXTR           =FACT(statut='f',
-         fr="Extrait une ou plusieurs colonnes de la table",
-      NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-         fr="Noms des colonnes à extraire"),
-   ),
-   RENOMME        =FACT(statut='f', max='**',
-         fr="Renomme un ou plusieurs paramètres de la table",
-      NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2,max=2,
-         fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",),
-   ),
-   TRI            =FACT(statut='f',
-         fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres",
-      NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
-      ORDRE          =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**',
-                              into=("CROISSANT","DECROISSANT") ),
-   ),
-   COMB           =FACT(statut='f',
-         fr="Combine deux tables ayant éventuellement des paramètres communs",
-      TABLE          =SIMP(statut='o',typ=table_sdaster,
-         fr="Table dont les colonnes vont venir surcharger la table initiale"),
-      NOM_PARA       =SIMP(statut='f',typ='TXM',max='**',
-         fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\
-            "pour que les colonnes soient combinées"),
-   ),
-   OPER           =FACT(statut='f', max='**',
-         fr="Applique une formule dans laquelle les variables sont les paramètres de la table",
-      FORMULE        =SIMP(statut='o',typ=formule,
-         fr="Formule à appliquer aux colonnes de la table"),
-      NOM_PARA       =SIMP(statut='o',typ='TXM',
-         fr="Nom de la nouvelle colonne"),
-   ),
-   TITRE           =SIMP(statut='f',typ='TXM',max='**',
-      fr="Titre de la table produite"),
-   INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7296,7 +7134,7 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
                          ),
          b_theta_3d     =BLOC(condition="THETA_3D != None",
            FOND_FISS       =SIMP(statut='f',typ=fond_fiss),),
-         DIRE_THETA      =SIMP(statut='f',typ=(cham_no_depl_r) ),
+         DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
          DIRECTION       =SIMP(statut='f',typ='R',max='**'),
          THETA_2D        =FACT(statut='f',max='**',
            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
@@ -7317,7 +7155,7 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
            FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7380,7 +7218,7 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr
          ),
          
          b_forc_noda     =BLOC(condition = "OPTION=='FORC_NODA'",
-           SIEF_ELGA         =SIMP(statut='o',typ=cham_elem_sief_r),
+           SIEF_ELGA         =SIMP(statut='o',typ=cham_elem),
            CARA_ELEM         =SIMP(statut='f',typ=cara_elem),
            MODELE            =SIMP(statut='f',typ=modele_sdaster),
          ),
@@ -7393,7 +7231,7 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr
            INST              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          ),
 ) ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7412,28 +7250,8 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentr
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
-def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args):
-
-  if COMB_R != None:
-    vale=COMB_R[0]['CHAM_ELEM']
-  elif COMB_C != None:
-    vale=COMB_C[0]['CHAM_ELEM']
-  elif COMB_FOURIER != None:
-    vale=COMB_FOURIER[0]['CHAM_ELEM']
-  else :
-    raise AsException("type de concept resultat non prevu")
 
-  if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r
-  if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r
-  if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r
-  if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r
-  if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r
-  if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r
-  if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r
-  if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c
-  raise AsException("type de concept resultat non prevu")
-
-COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,reentrant='f',
+COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=cham_elem,reentrant='f',
                     fr="Effectuer la combinaison linéaire de champs par éléments",
             UIinfo={"groupes":("Résultats et champs",)},
       regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),
@@ -7441,27 +7259,24 @@ COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,ree
       COMB_R          =FACT(statut='f',max='**',
         PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
         COEF_R          =SIMP(statut='o',typ='R'),
-        CHAM_ELEM       =SIMP(statut='o',
-                              typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r,
-                                   cham_elem_ener_r,cham_elem_crit_r,cham_elem_dbel_r,
-                                   cham_elem_pres_r,cham_elem_sief_c ) ),
+        CHAM_ELEM       =SIMP(statut='o',typ=cham_elem),
       ),
       COMB_C          =FACT(statut='f',max='**',
         regles=(UN_PARMI('COEF_R','COEF_C', ),),
         COEF_R          =SIMP(statut='f',typ='R'),
         COEF_C          =SIMP(statut='f',typ='C'),
-        CHAM_ELEM       =SIMP(statut='o',typ=(cham_elem_sief_r) ),
+        CHAM_ELEM       =SIMP(statut='o',typ=cham_elem),
       ),
       COMB_FOURIER    =FACT(statut='f',max='**',
         COEF_R          =SIMP(statut='f',typ='R',defaut= 1.),
         NUME_MODE       =SIMP(statut='o',typ='I'),
         TYPE_MODE       =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
-        CHAM_ELEM       =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ),
+        CHAM_ELEM       =SIMP(statut='o',typ=cham_elem),
       ),
       ANGL            =SIMP(statut='f',typ='R' ),
 )  ;
 
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7480,24 +7295,12 @@ COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,ree
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
-def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args):
-  if COMB_C != None:
-    type_mat = AsType(COMB_C[0]['CHAM_NO'])
-    if type_mat in  (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c
-    if type_mat in  (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c
-    if type_mat in  (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c
-  elif COMB_R != None:
+def comb_cham_no_prod(COMB_R,**args):
+  typ=cham_no_sdaster
+  if COMB_R != None:
     type_mat = AsType(COMB_R[0]['CHAM_NO'])
-    if type_mat in  (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r
-    if type_mat in  (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r
-    if type_mat in  (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r
-    if type_mat ==  matr_asse_gene_r : return matr_asse_gene_r
-  elif COMB_FOURIER != None:
-    type_mat = AsType(COMB_FOURIER[0]['CHAM_NO'])
-    if type_mat == cham_no_temp_r : return cham_no_temp_r
-    if type_mat == cham_no_depl_r : return cham_no_depl_r
-  raise AsException("type de concept resultat non prevu")
-
+    if type_mat ==  matr_asse_gene_r : typ= matr_asse_gene_r
+  return typ
 
 COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
                     ,fr="Effectuer la combinaison linéaire de champs aux noeuds",
@@ -7506,19 +7309,17 @@ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
          regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),),
          COMB_R          =FACT(statut='f',max='**',
            PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ),
-           CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c
-                                                ,cham_no_pres_r,cham_no_pres_c ) ),
+           CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
            COEF_R          =SIMP(statut='o',typ='R' ),
          ),
          COMB_C          =FACT(statut='f',max='**',
            regles=(UN_PARMI('COEF_R','COEF_C' ),),
-           CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c
-                                                ,cham_no_depl_c,cham_no_pres_c ) ),
+           CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
            COEF_R          =SIMP(statut='f',typ='R' ),
            COEF_C          =SIMP(statut='f',typ='C' ),
          ),
          COMB_FOURIER    =FACT(statut='f',max='**',
-           CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ),
+           CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
            COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),
            NUME_MODE       =SIMP(statut='o',typ='I' ),
            TYPE_MODE       =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
@@ -7616,7 +7417,7 @@ COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
          ),         
          SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
 )  ;
-#& MODIF COMMANDE  DATE 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7657,7 +7458,7 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
          LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
          AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
          
-         MASS_INER       =SIMP(statut='f',typ=tabl_mass_iner ),
+         MASS_INER       =SIMP(statut='f',typ=table_sdaster ),
          CORR_FREQ       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          
          EXCIT           =FACT(statut='o',max='**',
@@ -7730,7 +7531,7 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 14/11/2005   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 # RESPONSABLE VABHHTS J.PELLET
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -7750,32 +7551,22 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 def crea_champ_prod(TYPE_CHAM,**args):
-  import string
-  grandeur=string.lower(TYPE_CHAM[5:])
-
   if TYPE_CHAM[0:5] == "CART_" :
-     uu="carte_"+grandeur
+     return carte_sdaster
   elif TYPE_CHAM[0:5] == "NOEU_" :
-     uu="cham_no_"+grandeur
+     return cham_no_sdaster
   elif TYPE_CHAM[0:2] == "EL"    :
-     uu="cham_elem_"+grandeur
+     return cham_elem
   else :
      raise AsException("type de concept resultat_sdaster non prevu")
 
-  try :
-     vv=eval(uu)
-  except :
-     raise AsException("type de concept champ non prevu : %s" % uu)
-  return vv
-
 
 CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
-                fr="Création d'un champ de type CHAM_NO, CARTE ou CHAM_ELEM",reentrant='n',
+                fr="Création d'un champ ",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
          TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
       # TYPE_CHAM doit etre de la forme : CART_xx, NOEU_xx, ELEM_xx, ELGA_xx ou ELNO_xx
-      # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs
-
+      # ou xx est le nom d'une grandeur définie dans le catalogue des grandeurs 
 #        SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
 #        ------------------------------------------------------------------
          regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
@@ -7787,8 +7578,16 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
 #        ------------------------------------------------------------------
          OPTION         =SIMP(statut='f',typ='TXM'),
 
-         OPERATION       =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ),
+         OPERATION       =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC","NORMALE") ),
 
+#        ------------------------------------------------------------------
+         b_norm          =BLOC(condition = "OPERATION == 'NORMALE'",
+                               regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),),
+             MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
+             GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
+             MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
+                             ),
+#        ------------------------------------------------------------------
          b_affe          =BLOC(condition = "OPERATION == 'AFFE'",
              regles=(UN_PARMI('MAILLAGE','MODELE'),),
              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
@@ -7810,6 +7609,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
                 VALE_F          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
                                    ),
                              ),
+#        ------------------------------------------------------------------
          b_asse          =BLOC(condition = "OPERATION == 'ASSE'",
              regles=(UN_PARMI('MAILLAGE','MODELE'),),
              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
@@ -7824,22 +7624,25 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
                 GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                 MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
                 NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-                CHAM_GD         =SIMP(statut='o',typ=(cham_gd_sdaster)),
+                CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
                 NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
                 NOM_CMP_RESU    =SIMP(statut='f',typ='TXM',max='**' ),
                 CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
                 COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),
                                     ),
                              ),
+#        ------------------------------------------------------------------
          b_eval          =BLOC(condition = "OPERATION == 'EVAL'",
-             CHAM_F          =SIMP(statut='o',typ=(cham_gd_sdaster)),
-             CHAM_PARA       =SIMP(statut='o',typ=(cham_gd_sdaster),max='**'),
+             CHAM_F          =SIMP(statut='o',typ=cham_gd_sdaster),
+             CHAM_PARA       =SIMP(statut='o',typ=cham_gd_sdaster,max='**'),
                              ),
+#        ------------------------------------------------------------------
          b_disc          =BLOC(condition = "OPERATION == 'DISC'",
              MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
              PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-             CHAM_GD         =SIMP(statut='o',typ=(cham_gd_sdaster)),
+             CHAM_GD         =SIMP(statut='o',typ=cham_gd_sdaster),
                              ),
+#        ------------------------------------------------------------------
          b_extr          =BLOC(condition = "OPERATION == 'EXTR'",
              regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),),
              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
@@ -7850,7 +7653,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
                  NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("GEOMETRIE",)),
              ),
              b_extr_fissure  =BLOC(condition = "FISSURE != None",
-                 NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO",)),
+                 NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("LTNO","LNNO","GRLTNO","GRLNNO","STNO","STNOR","BASLOC")),
              ),
              b_extr_table    =BLOC(condition = "TABLE != None",
                       regles=( EXCLUS('MODELE','MAILLAGE'),
@@ -7861,6 +7664,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
                       PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
                  ),
              b_extr_resultat =BLOC(condition = "RESULTAT != None",
+                 regles=(DERIVABLE('RESULTAT'),),
                  SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
                                    fr="Paramètre de sensibilité.",
                                    ang="Sensitivity parameter"),
@@ -7871,8 +7675,9 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
                  b_type_maxi =BLOC(condition = "TYPE_MAXI != None",
                       TYPE_RESU       =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
 
-                      regles=(AU_PLUS_UN('LIST_INST','LIST_FREQ','NUME_ORDRE','INST',
+                      regles=(EXCLUS('TOUT_ORDRE','LIST_INST','LIST_FREQ','NUME_ORDRE','INST',
                                       'FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
+                      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
                       LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
                       LIST_FREQ       =SIMP(statut='f',typ=(listr8_sdaster) ),
                       NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
@@ -7882,18 +7687,12 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
                       NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
                       NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),
                       ANGL            =SIMP(statut='f',typ='R',max='**'),
-
-                      b_tout =BLOC(condition = "(LIST_INST,LIST_FREQ,NUME_ORDRE,INST,\
-                                                 FREQ,NUME_MODE,NOEUD_CMP,NOM_CAS,ANGL)\
-                                              ==(None     ,None     ,None      ,None,\
-                                                 None,None     ,None     ,None   ,None)",
-                                      TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",),defaut="OUI",),
-                      ),
                  ),
 
                  # si .not. TYPE_MAXI, on ne doit spécifier qu'un seul numéro d'ordre :
                  b_non_type_maxi =BLOC(condition = "TYPE_MAXI == None",
-                      regles=(AU_PLUS_UN('INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
+                      regles=(EXCLUS('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),),
+                      NUME_ORDRE      =SIMP(statut='f',typ='I'),
                       INST            =SIMP(statut='f',typ='R'),
                       FREQ            =SIMP(statut='f',typ='R'),
                       NUME_MODE       =SIMP(statut='f',typ='I'),
@@ -7901,11 +7700,6 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
                       NOM_CAS         =SIMP(statut='f',typ='TXM'),
                       ANGL            =SIMP(statut='f',typ='R'),
 
-                      b_nume_1 =BLOC(condition = "(INST,FREQ,NUME_MODE,NOEUD_CMP,NOM_CAS,ANGL)\
-                                                ==(None,None,None     ,None     ,None   ,None)",
-                                     NUME_ORDRE =SIMP(statut='f',typ='I',defaut=1,),
-                      ),
-
                       INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
                  ),
 
@@ -7915,12 +7709,12 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
          ),  # fin bloc b_extr
 
                 ),
-# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULAT :
+# FIN DU CATALOGUE : INFO,TITRE ET TYPAGE DU RESULTAT :
 #-----------------------------------------------------
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 # RESPONSABLE MCOURTOI M.COURTOIS
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -8052,7 +7846,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
          ),
          REPERE          =FACT(statut='f',max='**',
                                fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre",
-           TABLE           =SIMP(statut='o',typ=tabl_cara_geom,
+           TABLE           =SIMP(statut='o',typ=table_sdaster,
                                  fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
            NOM_ORIG        =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
            NOM_ROTA        =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére"  ),
@@ -8076,7 +7870,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
 #
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 24/10/2005   AUTEUR CIBHHLV L.VIVAN 
+#& MODIF COMMANDE  DATE 24/01/2006   AUTEUR D6BHHJP J.P.LEFEBVRE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8113,8 +7907,8 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
 
          b_affe       =BLOC(condition = "OPERATION == 'AFFE'",
 
-           TYPE_RESU    =SIMP(statut='o',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
-                                                         "EVOL_THER","EVOL_VARC","EVOL_CHAR",) ),
+           TYPE_RESU    =SIMP(statut='o',position='global',typ='TXM',into=("MULT_ELAS","EVOL_ELAS","EVOL_NOLI","FOURIER_ELAS",
+                                                                           "EVOL_THER","EVOL_VARC","EVOL_CHAR",) ),
            NOM_CHAM     =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
 
            AFFE         =FACT(statut='o',max='**',
@@ -8123,8 +7917,12 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
              CHAM_MATER    =SIMP(statut='f',typ=cham_mater),
              CARA_ELEM     =SIMP(statut='f',typ=cara_elem),
 
-            # affectation de plusieurs instants à l'aide d'un champ aux noeuds de fonctions du temps:
-             b_fonc       =BLOC(condition = "AsType(CHAM_GD) in (cham_no_temp_f,cham_no_depl_f)",
+             b_mult_elas     =BLOC(condition = "TYPE_RESU == 'MULT_ELAS' ",
+                NOM_CAS         =SIMP(statut='f',typ='TXM' ),
+             ),
+             b_evol          =BLOC(condition = "((TYPE_RESU=='EVOL_ELAS') or (TYPE_RESU=='EVOL_NOLI') or (TYPE_RESU=='EVOL_THER')\
+                                                                          or (TYPE_RESU=='EVOL_VARC') or (TYPE_RESU=='EVOL_CHAR'))",
+                regles=(UN_PARMI('INST','LIST_INST'),),
                 INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
                 LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
                 NUME_INIT       =SIMP(statut='f',typ='I', val_min=1),
@@ -8132,19 +7930,9 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
              ),
-
-            # affectation d'un seul nume_ordre :
-             b_reel       =BLOC(condition = "AsType(CHAM_GD) not in (cham_no_temp_f,cham_no_depl_f)",
-                regles=(UN_PARMI('NOM_CAS','NUME_MODE','INST','LIST_INST'),),
-                NOM_CAS         =SIMP(statut='f',typ='TXM' ),
+             b_fourier       =BLOC(condition = "TYPE_RESU == 'FOURIER_ELAS' ",
                 NUME_MODE       =SIMP(statut='f',typ='I'),
                 TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
-                INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-                LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-                NUME_INIT       =SIMP(statut='f',typ='I', val_min=1),
-                NUME_FIN        =SIMP(statut='f',typ='I', val_min=1),
-                PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
              ),
            ),
          ),
@@ -8199,7 +7987,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
            PROL_RTZ        =FACT(statut='o',
               regles=(EXCLUS('INST','LIST_INST'),),
               MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
-              TABLE           =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t"),
+              TABLE           =SIMP(statut='o',typ=table_sdaster,fr="Table issue de post_releve_t"),
               INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
               LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
               b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
@@ -8215,161 +8003,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
          ),
 
 )  ;
-#& MODIF COMMANDE  DATE 14/11/2005   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-def dict_table_types():
-   """Extraction des types de table
-   """
-   from types import ClassType
-   # en attendant la résorption des 30 types de table !
-   d_table = {}
-   for k, v in globals().items():
-      if type(v) is ClassType and issubclass(v, table_sdaster):
-         d_table[k] = v
-   # traduction de type
-   d_table['table']          = d_table['table_sdaster']
-   d_table['tabl_inte_spec'] = d_table['tabl_intsp']
-   return d_table
-
-def into_table_types():
-   """Récupération de la liste des type de table.
-   """
-   return tuple([typ.upper() for typ in dict_table_types().keys()])
-
-def crea_table_prod(TYPE_TABLE,**args):
-   """Typage du concept résultat
-   """
-   d_table = dict_table_types()
-   if TYPE_TABLE.lower() in d_table.keys():
-      return d_table[TYPE_TABLE.lower()]
-   raise AsException("type de concept resultat non prevu")
-
-CREA_TABLE=OPER(nom="CREA_TABLE",op=  36,sd_prod=crea_table_prod,
-                fr="Création d'une table à partir d'une fonction ou de deux listes",
-                reentrant='n',UIinfo={"groupes":("Table",)},
-
-           regles=(EXCLUS('FONCTION','LISTE')),
-
-           TYPE_TABLE=SIMP(statut='f',typ='TXM',defaut="TABLE",
-                           into=into_table_types(),),
-           LISTE=FACT(statut='f',min=2,max='**',
-                 fr="Creation d'une table a partir de listes",
-                 regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), 
-                        PARA=SIMP(statut='o',typ='TXM'),
-                        TYPE_K=SIMP(statut='f',typ='TXM',defaut='K8',
-                                    into=('K8','K16','K24')),
-                        NUME_LIGN=SIMP(statut='f',typ='I',max='**'),
-                        LISTE_I=SIMP(statut='f',typ='I',max='**'),
-                        LISTE_R=SIMP(statut='f',typ='R',max='**'),
-                        LISTE_K=SIMP(statut='f',typ='TXM', max='**')),
-           FONCTION=FACT(statut='f',min=1,max=1,
-                    fr="Creation d'une table a partir d'une fonction",
-                        FONCTION=SIMP(statut='o',typ=fonction_sdaster),
-                        PARA=SIMP(statut='f',typ='TXM',min=2,max=2)),  
-           TITRE=SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-
-
-
-#& MODIF COMMANDE  DATE 17/10/2005   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n',
-            UIinfo={"groupes":("Gestion du travail",)},
-           fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers",
-          sd_prod=ops.DEBUT,
-
-         PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
-                           into=("OUI","NON"),defaut="OUI"),
-         IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
-                           statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
-         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
-                               typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-         BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
-                               statut='f',min=1,max=3,
-           FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
-                                 into=('GLOBALE','VOLATILE','LOCALE'),),
-           TITRE           =SIMP(statut='f',typ='TXM'),
-           CAS             =SIMP(statut='f',typ='TXM'),
-           NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
-           LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
-           LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
-         ),
-         IMPRESSION      =FACT(statut='f',min=1,max=3,
-           FICHIER         =SIMP(statut='o',typ='TXM'),
-           UNITE           =SIMP(statut='o',typ='I'),
-         ),
-         CATALOGUE       =FACT(statut='f',min=1,max=10,
-           FICHIER         =SIMP(statut='o',typ='TXM'),
-           TITRE           =SIMP(statut='f',typ='TXM'),
-           UNITE           =SIMP(statut='f',typ='I'),
-         ),
-         CODE            =FACT(fr="définition d un nom pour l'ensemble d'une étude",
-                               statut='f',min=1,max=1,
-           NOM             =SIMP(statut='o',typ='TXM'),
-           NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
-           VISU_EFICAS     =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'),
-           UNITE           =SIMP(statut='f',typ='I',defaut=15),
-         ),
-         ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
-           ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
-         ),
-         DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
-                               statut='f',min=1,max=1,
-           JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
-                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
-           JEVEUX          =SIMP(fr="force les déchargement sur disque",
-                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
-           ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
-                                 statut='f',typ='TXM',into=('TEST',)),
-         ),
-         MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
-           GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
-           TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
-           TAILLE          =SIMP(statut='f',typ='I'),
-           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
-           PARTITION       =SIMP(statut='f',typ='R'),
-         ),
-         RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1,
-           regles=(EXCLUS('VALE','POURCENTAGE'),),
-           VALE            =SIMP(statut='f',typ='I',val_min=0),
-           POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
-#          valeur en pourcentage du temps maximum bornée à 180 secondes
-           BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=180)
-         ),
- );
-#& MODIF COMMANDE  DATE 03/10/2005   AUTEUR NICOLAS O.NICOLAS 
+#& MODIF COMMANDE  DATE 03/10/2005   AUTEUR NICOLAS O.NICOLAS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8502,116 +8136,6 @@ DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precon
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n',
-            fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte"
-               +" (utilisée par la macro DEFI_CABLE_BP)",
-            UIinfo={"groupes":("Modélisation",)},
-         MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
-         CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
-         GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
-         DEFI_CABLE      =FACT(statut='o',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA'),
-                   UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
-           MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma),
-           NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
-           GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
-           GROUP_NO_FUT    =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
-         ),
-         TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
-         TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
-         RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
-         RELAXATION      =FACT(statut='f',min=0,
-           R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-         CONE            =FACT(statut='f',min=0,
-           RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
-           LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ),  
-           PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-# RESPONSABLE JMBHH01 J.M.PROIX
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
-                   fr="Définir le comportement d'un monocristal ou d'un polycristal",
-                   reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-                  regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),),
-
-          MONOCRISTAL    =FACT(statut='f', max='**',
-             MATER           =SIMP(statut='o', typ=mater_sdaster, max=1),
-             ECOULEMENT      =SIMP(statut='o', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"),
-             ECRO_ISOT       =SIMP(statut='o', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"),
-             ECRO_CINE       =SIMP(statut='o', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"),
-             ELAS            =SIMP(statut='f', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"),
-             FAMI_SYST_GLIS  =SIMP(statut='o',typ='TXM', max=1, 
-                                into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1',
-                                'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL'),),
-                                ),
-                                
-                                
-          POLYCRISTAL    =FACT(statut='f', max='**',
-             MONOCRISTAL     =SIMP(statut='o', typ=compor_sdaster, max=1),
-             FRAC_VOL  =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"),
-             ANGL_REP  =SIMP(statut='o',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"),
-                                ),
-                                
-                                
-          b_poly      =BLOC( condition = "POLYCRISTAL!='None'",
-          LOCALISATION     =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',),
-                fr="Donner le nom de la règle de localisation"),
-          
-           b_beta      =BLOC( condition = "LOCALISATION=='BETA'",
-             DL            =SIMP(statut='o',typ='R',max=1),
-             DA            =SIMP(statut='o',typ='R',max=1),
-             ),
-             ),
-                                
-                                );
-                   
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -8673,151 +8197,20 @@ DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE D6BHHJP J.P.LEFEBVRE
-def DEFIC_prod(self,ACTION,UNITE,**args):
-  if ACTION == "ASSOCIER" or ACTION == "RESERVER":
-    if UNITE != None :
-      return
-    else :
-      return entier
-  elif ACTION == "LIBERER"  :
-    return
-  else :
-    raise AsException("ACTION non prevue : %s" % ACTION)
-
-def DEFI_FICHIER_ops(self,d):
-  if self.sd is not None:
-     self.sd.valeur=1
-
-DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n',
-                   op_init=DEFI_FICHIER_ops,
-                  UIinfo={"groupes":("Gestion du travail",)},
-                  fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique",
-
-            ACTION        =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"),
-
-            b_associer    =BLOC(condition = "ACTION == 'ASSOCIER'",
-                                fr="Paramètres pour l'ouverture du fichier",
-                                regles=(AU_MOINS_UN('FICHIER','UNITE'),),
-               UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
-               FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
-               TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"),
-
-               b_type_ascii  =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII",
-                  ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"),
-               ),
-               b_type_autre  =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE",
-                  ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"),
-               ),
-            ),
-
-            b_reserver    =BLOC(condition = "ACTION == 'RESERVER'",
-                                fr="Paramètres pour la réservation de l'unité du fichier",
-                                regles=(AU_MOINS_UN('FICHIER','UNITE'),),
-               UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
-               FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
-               TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"),
-               ACCES      =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"),
-            ),
-
-            b_liberer    =BLOC(condition = "ACTION == 'LIBERER'",
-                               fr="Paramètres pour la fermeture du fichier",
-                               regles=(UN_PARMI('FICHIER','UNITE'),),
-                  UNITE         =SIMP(statut='f',typ='I' ,val_min=1),
-                  FICHIER   =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
-           ),
-
-           INFO          =SIMP(statut='f',typ='I',into=(1,2) ),           
-           )
-#& MODIF COMMANDE  DATE 11/10/2005   AUTEUR VABHHTS J.PELLET 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='f',
-            UIinfo={"groupes":("Modélisation",)},
-               fr="Définition des caratéristiques d'une fissure avec X-FEM",
-
-    MODELE                =SIMP(statut='o',typ=modele_sdaster),
-    DEFI_FISS             =FACT(statut='o',max=01,
-      regles              =(UN_PARMI('GROUP_MA_FISS','FONC_LT'),
-                            ENSEMBLE('FONC_LT','FONC_LN'),
-                            ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')),
-      FONC_LT             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
-      FONC_LN             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
-      GROUP_MA_FISS       =SIMP(statut='f',typ=grma,max=01),
-      GROUP_MA_FOND       =SIMP(statut='f',typ=grma),
-    ),
-    GROUP_MA_ENRI         =SIMP(statut='o',typ=grma,max=01),
-    RAYON_ENRI            =SIMP(statut='f',typ='R',defaut=0.E+0),
-    ORIE_FOND             =FACT(statut='o',max=01,
-      PFON_INI            =SIMP(statut='o',typ='R',max=03),
-      VECT_ORIE           =SIMP(statut='o',typ='R',max=03),
-      PT_ORIGIN           =SIMP(statut='o',typ='R',max=03),
-    ),
-    CONTACT               =FACT(statut='o',max=01,
-      NOM_CHAM            =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",) ),
-      FROTTEMENT          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
-      INTEGRATION         =SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ),
-      COEF_REGU_CONT      =SIMP(statut='f',typ='R',defaut=100.E+0),
-      MODL_AXIS           =SIMP(statut='f',typ='TXM',into=("NON",)),
-      ITER_CONT_MAXI      =SIMP(statut='f',typ='I',defaut=30),
-      CONTACT_INIT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-      ALGO_LAGR           =SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ),
-      b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramères du frottement de Coulomb",
-           COULOMB        =SIMP(statut='o',typ='R',),
-           ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
-           COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
-           SEUIL_INIT     =SIMP(statut='f',typ='R',defaut=0.E+0),),
-    ),
-    INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
                     reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement",
@@ -9070,7 +8463,7 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETT
+#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR GALENNE E.GALENN
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9091,7 +8484,7 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
 DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                     fr="Définition de lèvres et d'un fond de fissure en 3D",
-         regles=(UN_PARMI('FOND_FISS','FOND_FERME'),
+         regles=(UN_PARMI('FOND_FISS','FOND_FERME','FOND_INF'),
                  EXCLUS('FOND_FERME','DTAN_ORIG'),
                  EXCLUS('FOND_FERME','DTAN_EXTR'),
                       EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
@@ -9099,6 +8492,9 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n',
                  UN_PARMI('LEVRE_SUP','NORMALE'),
                       EXCLUS('LEVRE_INF','NORMALE'),
                  ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
+                 ENSEMBLE('FOND_SUP','FOND_INF'),
+                 EXCLUS('FOND_INF','FOND_FISS'),
+                 EXCLUS('FOND_INF','FOND_FERME'),
                       ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
                       EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
                       EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
@@ -9129,6 +8525,26 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n',
              MAILLE_ORIG     =SIMP(statut='f',typ=ma,),
              GROUP_MA_ORIG   =SIMP(statut='f',typ=ma,),
            ),
+           FOND_INF       =FACT(statut='f',
+             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+             NOEUD_ORIG      =SIMP(statut='f',typ=no,),
+             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
+             MAILLE_ORIG     =SIMP(statut='f',typ=ma,),
+             GROUP_MA_ORIG   =SIMP(statut='f',typ=ma,),
+           ),
+           FOND_SUP       =FACT(statut='f',
+             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'), 
+             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+             NOEUD_ORIG      =SIMP(statut='f',typ=no,),
+             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
+             MAILLE_ORIG     =SIMP(statut='f',typ=ma,),
+             GROUP_MA_ORIG   =SIMP(statut='f',typ=ma,),
+           ),
            LEVRE_SUP       =FACT(statut='f',
              regles=(UN_PARMI('GROUP_MA','MAILLE'),),
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -9140,6 +8556,7 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,reentrant='n',
              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
            ),
            NORMALE         =SIMP(statut='f',typ='R',max='**'),
+           PREC_NORM       =SIMP(statut='f',typ='R',defaut=0.1),
            DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
            DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
            VECT_GRNO_ORIG  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
@@ -9348,7 +8765,7 @@ regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION')
          ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          INFO            =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9366,7 +8783,7 @@ regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION')
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
+DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=table_sdaster,
                     reentrant='n',fr="Définit une matrice interspectrale",
             UIinfo={"groupes":("Fonction",)},
 
@@ -9597,7 +9014,7 @@ DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
            GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 04/10/2005   AUTEUR CIBHHPD L.SALMONA 
+#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR JMBHH01 J.M.PROIX 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9621,7 +9038,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
             UIinfo={"groupes":("Modélisation",)},
        regles=(EXCLUS('ELAS','ELAS_FO','ELAS_FLUI','ELAS_ISTR','ELAS_ISTR_FO','ELAS_ORTH',
                       'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO',
-                      'SURF_ETAT_SATU','CAM_CLAY_THM','SURF_ETAT_NSAT'),
+                      'ELAS_HYPER',),
                EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
                EXCLUS('ECRO_LINE','ECRO_LINE_FO'),
                EXCLUS('TAHERI','TAHERI_FO'),
@@ -9634,7 +9051,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
                EXCLUS('POLY_CFC','POLY_CFC_FO'),
                EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI','VISC_IRRA_LOG',
                'LEMA_SEUIL','LEMA_SEUIL_FO','LEMAITRE_IRRA','LMARC_IRRA',),
-               EXCLUS('OHNO','OHNO_FO'),
                EXCLUS('LMARC','LMARC_FO'),
                EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
                EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
@@ -9735,6 +9151,9 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              YT              =SIMP(statut='f',typ='R',defaut= 1. ),
              YC              =SIMP(statut='f',typ='R',defaut= 1. ),
              S_LT            =SIMP(statut='f',typ='R',defaut= 1. ),
+             AMOR_ALPHA      =SIMP(statut='f',typ='R'),
+             AMOR_BETA       =SIMP(statut='f',typ='R'),
+             AMOR_HYST       =SIMP(statut='f',typ='R'),
            ),
            ELAS_ORTH_FO    =FACT(statut='f',
              regles=(
@@ -9758,72 +9177,18 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              ALPHA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
              ALPHA_N         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST",) ),
+             AMOR_ALPHA      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             AMOR_BETA       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             AMOR_HYST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
            ),
-           ELAS_THM        =FACT(statut='f',
-             RHO_S           =SIMP(statut='o',typ='R'),
-             UN_SUR_KS       =SIMP(statut='o',typ='R'),
-             E               =SIMP(statut='f',typ='R'),
-             KB              =SIMP(statut='f',typ='R'),
-             D_KB_T          =SIMP(statut='f',typ='R'),
-             ALPHA_S         =SIMP(statut='f',typ='R'),
-             ALPHA_D         =SIMP(statut='f',typ='R'),
-           ),
-           SURF_ETAT_SATU  =FACT(statut='f',
-             E_CHAR          =SIMP(statut='o',typ='R'),
-             E_DECHAR        =SIMP(statut='o',typ='R'),
-             XN              =SIMP(statut='f',typ='R'),
-             RF              =SIMP(statut='f',typ='R'),
-             EV_KB           =SIMP(statut='f',typ='R'),
-             EV_XM           =SIMP(statut='f',typ='R'),
-             D_E_T           =SIMP(statut='f',typ='R'),
-             ALPHA0          =SIMP(statut='f',typ='R'),
-             ALPHA1          =SIMP(statut='f',typ='R'),
-             ALPHA2          =SIMP(statut='f',typ='R'),
-             ALPHA3          =SIMP(statut='f',typ='R'),
-             ALPHA_S         =SIMP(statut='f',typ='R'),
-             ANG_FRT         =SIMP(statut='o',typ='R'),
-             COHE            =SIMP(statut='o',typ='R'),
-             RESI_TRAC       =SIMP(statut='o',typ='R'),
-           ),
-           CAM_CLAY_THM    =FACT(statut='f',
-             NU              =SIMP(statut='f',typ='R'),
-             LAMBDA          =SIMP(statut='o',typ='R'),
-             KAPA            =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='f',typ='R'),
-             PRES_CRIT       =SIMP(statut='f',typ='R'),
-             GAMA            =SIMP(statut='o',typ='R'),
-             A0_PC           =SIMP(statut='o',typ='R'),
-             A1_PC           =SIMP(statut='f',typ='R'),
-             A2_PC           =SIMP(statut='f',typ='R'),
-             ALPHA0_PC       =SIMP(statut='f',typ='R'),
-             ALPHA1_PC       =SIMP(statut='f',typ='R'),
-             ALPHA2_PC       =SIMP(statut='f',typ='R'),
-             ALPHA3_PC       =SIMP(statut='f',typ='R'),
-             ALPHA_S         =SIMP(statut='f',typ='R'),
-                         ),
-           SURF_ETAT_NSAT  =FACT(statut='f',
-             E_CHAR          =SIMP(statut='o',typ='R'),
-             E_DECHAR        =SIMP(statut='o',typ='R'),
-             XN              =SIMP(statut='f',typ='R'),
-             RF              =SIMP(statut='f',typ='R'),
-             EV_KB           =SIMP(statut='f',typ='R'),
-             EV_XM           =SIMP(statut='f',typ='R'),
-             EV_A            =SIMP(statut='f',typ='R'),
-             EV_B            =SIMP(statut='f',typ='R'),
-             EV_CT           =SIMP(statut='f',typ='R'),
-             EV_SIGB         =SIMP(statut='f',typ='R'),
-             D_E_T           =SIMP(statut='f',typ='R'),
-             D_E_SUCC        =SIMP(statut='f',typ='R'),
-             ANG_FRT         =SIMP(statut='o',typ='R'),
-             COHE            =SIMP(statut='o',typ='R'),
-             D_COEH_SUCC     =SIMP(statut='f',typ='R'),
-             ANG_FRT_ULT     =SIMP(statut='f',typ='R'),
-             SUCC_ULTM       =SIMP(statut='f',typ='R'),
-             RESI_TRAC       =SIMP(statut='f',typ='R'),
-             A_SURF_SATU     =SIMP(statut='f',typ='R'),
-             B_SURF_SATU     =SIMP(statut='f',typ='R'),
-             C_SURF_SATU     =SIMP(statut='f',typ='R'),
-             D_SURF_SATU     =SIMP(statut='f',typ='R'),
+           ELAS_HYPER      =FACT(statut='f',
+                                 regles=(UN_PARMI('K','NU'),),
+             C10             =SIMP(statut='f',typ='R',defaut=0.0),        
+             C01             =SIMP(statut='o',typ='R'),            
+             C20             =SIMP(statut='f',typ='R',defaut=0.0),            
+             K               =SIMP(statut='f',typ='R'), 
+             RHO             =SIMP(statut='f',typ='R',defaut=0.0),  
+             NU              =SIMP(statut='f',typ='R',val_min=-1.E+0,val_max=0.5E+0),          
            ),
            ELAS_COQUE      =FACT(statut='f',
              regles=(EXCLUS('MEMB_L','M_LLLL',),
@@ -10040,17 +9405,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              EPSI_0          =SIMP(statut='o',typ='R'),
              M               =SIMP(statut='o',typ='R'),
            ),
-           CHABOCHE        =FACT(statut='f',
-             R_I             =SIMP(statut='o',typ='R'),
-             R_0             =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='o',typ='R'),
-             W               =SIMP(statut='o',typ='R'),
-             A1              =SIMP(statut='o',typ='R'),
-             A2              =SIMP(statut='o',typ='R'),
-             C1              =SIMP(statut='o',typ='R'),
-             C2              =SIMP(statut='o',typ='R'),
-           ),
            CIN1_CHAB  =FACT(statut='f',
              R_0             =SIMP(statut='o',typ='R'),
              R_I             =SIMP(statut='f',typ='R'),
@@ -10153,7 +9507,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
            ),
            POLY_CFC        =FACT(statut='f',
-             TEXTURE         =SIMP(statut='o',typ=(tabl_texture) ),
+             TEXTURE         =SIMP(statut='o',typ=(table_sdaster) ),
              DL              =SIMP(statut='f',typ='R'),
              DA              =SIMP(statut='f',typ='R'),
              N               =SIMP(statut='o',typ='R'),
@@ -10169,7 +9523,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              C2              =SIMP(statut='o',typ='R'),
            ),
            POLY_CFC_FO     =FACT(statut='f',
-             TEXTURE         =SIMP(statut='o',typ=(tabl_texture) ),
+             TEXTURE         =SIMP(statut='o',typ=(table_sdaster) ),
              DL              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
              DA              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
              N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
@@ -10268,6 +9622,18 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
            ),
+          IRRAD3M=FACT(statut='f',
+                     R02      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                     EPSILON_U=SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                     RM       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                     AI0      =SIMP(statut='o',typ='R',val_min=0.),
+                     ETAI_S   =SIMP(statut='o',typ='R',val_min=0.),
+                     R        =SIMP(statut='o',typ='R',val_min=0.),
+                     ALPHA    =SIMP(statut='o',typ='R',val_min=0.),
+                     PHI0     =SIMP(statut='o',typ='R',val_min=0.),
+                     KAPPA    =SIMP(statut='f',typ='R',val_min=0.,defaut=0.8),
+             VERI_P           =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","IRRA") ),
+           ),
            ZIRC_EPRI       =FACT(statut='f',
              FLUX_PHI        =SIMP(statut='o',typ='R'),
              R_P             =SIMP(statut='o',typ='R'),
@@ -10279,49 +9645,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              UN_SUR_M        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
            ),
-           OHNO            =FACT(statut='f',
-             R_I             =SIMP(statut='o',typ='R'),
-             R_0             =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             PHI             =SIMP(statut='o',typ='R'),
-             A1              =SIMP(statut='o',typ='R'),
-             A2              =SIMP(statut='o',typ='R'),
-             A3              =SIMP(statut='o',typ='R'),
-             A4              =SIMP(statut='o',typ='R'),
-             A5              =SIMP(statut='o',typ='R'),
-             GAMMA1          =SIMP(statut='o',typ='R'),
-             GAMMA2          =SIMP(statut='o',typ='R'),
-             GAMMA3          =SIMP(statut='o',typ='R'),
-             GAMMA4          =SIMP(statut='o',typ='R'),
-             GAMMA5          =SIMP(statut='o',typ='R'),
-             M1              =SIMP(statut='o',typ='R'),
-             M2              =SIMP(statut='o',typ='R'),
-             M3              =SIMP(statut='o',typ='R'),
-             M4              =SIMP(statut='o',typ='R'),
-             M5              =SIMP(statut='o',typ='R'),
-                           ),
-           OHNO_FO         =FACT(statut='f',
-             R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PHI             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A3              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A4              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A5              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             GAMMA1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             GAMMA2          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             GAMMA3          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             GAMMA4          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             GAMMA5          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M3              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M4              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M5              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
            LMARC           =FACT(statut='f',
              DE_0            =SIMP(statut='o',typ='R'),
              R_0             =SIMP(statut='o',typ='R'),
@@ -10463,27 +9786,31 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              C_PRAGER_MZ     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ),
            ),
-           DIS_GRICRA     =FACT(statut='f',
-             KN_BOS      =SIMP(statut='o',typ='R' ),
-             KT_BOS      =SIMP(statut='o',typ='R' ),
-             KN_RES      =SIMP(statut='o',typ='R' ),
-             KT_RES      =SIMP(statut='o',typ='R' ),
-             DIST_BOS    =SIMP(statut='o',typ='R' ),
-             FORC_SER    =SIMP(statut='o',typ='R' ),
-             COUL_BOS    =SIMP(statut='o',typ='R' ),
-             COUL_RES    =SIMP(statut='o',typ='R' ),
-             ECRO_BOS    =SIMP(statut='o',typ='R' ),
-             ECRO_RES    =SIMP(statut='o',typ='R' ),
-             F_IRRA_0    =SIMP(statut='f',typ='R' ),
-             F_IRRA_1    =SIMP(statut='f',typ='R' ),
-             F_IRRA_2    =SIMP(statut='f',typ='R' ),
-             F_IRRA_3    =SIMP(statut='f',typ='R' ),
-             F_IRRA_4    =SIMP(statut='f',typ='R' ),
-             F_IRRA_5    =SIMP(statut='f',typ='R' ),
-             F_TEMP_1    =SIMP(statut='f',typ='R' ),
-             F_TEMP_2    =SIMP(statut='f',typ='R' ),
-             TEMP_1      =SIMP(statut='f',typ='R' ),
-             TEMP_2      =SIMP(statut='f',typ='R' ),
+           DIS_GRICRA    =FACT(statut='f',
+             KN_AX       =SIMP(statut='o',typ='R' ),
+             KT_AX       =SIMP(statut='o',typ='R' ),
+             COUL_AX     =SIMP(statut='o',typ='R' ),
+             F_SER       =SIMP(statut='f',typ='R' ),
+             F_SER_FO    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             ET_AX       =SIMP(statut='f',typ='R',defaut=1.e-7 ),
+             ET_ROT      =SIMP(statut='f',typ='R',defaut=1.e-7 ),
+             ANG1        =SIMP(statut='f',typ='R' ),
+             ANG2        =SIMP(statut='f',typ='R' ),
+             PEN1        =SIMP(statut='f',typ='R' ),
+             PEN2        =SIMP(statut='f',typ='R' ),
+             PEN3        =SIMP(statut='f',typ='R' ),
+             ANG1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             ANG2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             PEN1_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             PEN2_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             PEN3_FO     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             regles=(EXCLUS('ANG1','ANG1_FO',),
+                     UN_PARMI('ANG1','ANG1_FO',),
+                     EXCLUS('F_SER','F_SER_FO',),
+                     UN_PARMI('F_SER','F_SER_FO',),
+                     PRESENT_PRESENT('ANG1','ANG2','PEN1','PEN2','PEN3',),
+                     PRESENT_PRESENT('ANG1_FO','ANG2_FO','PEN1_FO','PEN2_FO','PEN3_FO',),
+                                     ),
              VERI_P      =SIMP(statut='c',typ='TXM',max='**',defaut=("DRZ","INST","TEMP",) ),
            ),
            NADAI_B         =FACT(statut='f',
@@ -10826,7 +10153,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
 # comportement métallurgique
 #
            META_ACIER      =FACT(statut='f',
-             TRC             =SIMP(statut='o',typ=(tabl_trc) ),
+             TRC             =SIMP(statut='o',typ=(table_sdaster) ),
              AR3             =SIMP(statut='o',typ='R'),
              ALPHA           =SIMP(statut='o',typ='R'),
              MS0             =SIMP(statut='o',typ='R'),
@@ -10995,8 +10322,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
 # LE COMPORTEMENT DE COUPLAGE COMP_THM N EST VALABLE QUE POUR LES LOIS
 # DE COUPLAGE : LIQU_SATU,LIQU_GAZ,GAZ,LIQU_GAZ_ATM,LIQU_VAPE_GAZ,LIQU_VAPE
 # ET LIQU_AD_GAZ_VAPE
-# POUR LES LOIS DE COUPLAGE LIQU_SATU_GAT ET LIQU_NSAT_GAT
-# ON NE MODIFIE RIEN
 # LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE :
 # 1 -->  LIQU_SATU
 # 2 -->  GAZ
@@ -11004,8 +10329,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
 # 4 -->  LIQU_VAPE_GAZ
 # 5 -->  LIQU_GAZ
 # 6 -->  LIQU_GAZ_ATM
-# 7 -->  LIQU_SATU_GAT
-# 8 -->  LIQU_NSAT_GAT
 # 9 -->  LIQU_AD_GAZ_VAPE
 # =================================================================================
            COMP_THM        = SIMP(statut='f', typ='TXM',
@@ -11015,8 +10338,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
                                            "LIQU_GAZ_ATM"  ,
                                            "LIQU_VAPE_GAZ" ,
                                            "LIQU_VAPE"     ,
-                                           "LIQU_SATU_GAT" ,
-                                           "LIQU_NSAT_GAT" ,
                                            "LIQU_AD_GAZ_VAPE" ,
                                           ) ),
 # =================================================================================
@@ -12041,192 +11362,6 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
            ),
                                  ),
-# =================================================================================
-           b_liqusatugat   = BLOC(condition = "COMP_THM == 'LIQU_SATU_GAT' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU_GAT",
-           THM_LIQU        =FACT(statut='f',
-             RHO             =SIMP(statut='o',typ='R'),
-             UN_SUR_K        =SIMP(statut='f',typ='R'),
-             ALPHA           =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             LAMBDA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_LAMBDA_TEMP   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COEF_HENRY      =SIMP(statut='f',typ='R'),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-           THM_GAZ         =FACT(statut='f',
-             MASS_MOL        =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             LAMBDA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_LAMBDA_TEMP   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-           THM_VAPE_GAZ    =FACT(statut='f',
-             MASS_MOL        =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-            THM_AIR_DISS = FACT(statut='f',
-                            CP               = SIMP(statut='f',typ='R'),
-                            COEF_HENRY       = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                            VERI_P      = SIMP(statut='c',typ='TXM',defaut=("TEMP",),),
-                              ),
-           THM_INIT        =FACT(statut='f',
-             TEMP            =SIMP(statut='o',typ='R'),
-             PRE1            =SIMP(statut='o',typ='R'),
-             PRE2            =SIMP(statut='o',typ='R'),
-             PORO            =SIMP(statut='o',typ='R'),
-             PRES_VAPE       =SIMP(statut='o',typ='R'),
-             DEGR_SATU       =SIMP(statut='f',typ='R'),
-             PRES_ATMO       =SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEE CACHEE ---------------------------------------------
-# ---------------------------------------------------------------------------------
-             COMP_THM         = SIMP(statut='c',typ='R',defaut= 7.0,),
-           ),
-           THM_DIFFU       =FACT(statut='f',
-             R_GAZ           =SIMP(statut='o',typ='R'),
-             RHO             =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             BIOT_COEF       =SIMP(statut='f',typ='R'),
-             SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PESA_X          =SIMP(statut='f',typ='R'),
-             PESA_Y          =SIMP(statut='f',typ='R'),
-             PESA_Z          =SIMP(statut='f',typ='R'),
-             PERM_IN         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_END       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                          regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
-                           PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
-             PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICK            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FICK_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             LAMBDA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_LAMBDA_TEMP   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_PV         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_PG         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FV_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FV_PG          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_T          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_PA         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_PL         = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_S          = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FA_T           = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
-           ),
-           ),
-           b_liqunsatgat   = BLOC(condition = "COMP_THM == 'LIQU_NSAT_GAT' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_NSAT_GAT",
-           THM_LIQU        =FACT(statut='f',
-             RHO             =SIMP(statut='o',typ='R'),
-             UN_SUR_K        =SIMP(statut='f',typ='R'),
-             ALPHA           =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             LAMBDA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_LAMBDA_TEMP   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COEF_HENRY      =SIMP(statut='f',typ='R'),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-           THM_GAZ         =FACT(statut='f',
-             MASS_MOL        =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             LAMBDA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_LAMBDA_TEMP   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-            THM_AIR_DISS = FACT(statut='f',
-                            CP               = SIMP(statut='f',typ='R'),
-                            COEF_HENRY       = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                              ),
-           THM_VAPE_GAZ    =FACT(statut='f',
-             MASS_MOL        =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             VISC            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_VISC_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-           THM_INIT        =FACT(statut='f',
-             TEMP            =SIMP(statut='o',typ='R'),
-             PRE1            =SIMP(statut='o',typ='R'),
-             PRE2            =SIMP(statut='o',typ='R'),
-             PORO            =SIMP(statut='o',typ='R'),
-             PRES_VAPE       =SIMP(statut='o',typ='R'),
-             DEGR_SATU       =SIMP(statut='f',typ='R'),
-             PRES_ATMO       =SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEE CACHEE ---------------------------------------------
-# ---------------------------------------------------------------------------------
-             COMP_THM         = SIMP(statut='c',typ='R',defaut= 8.0,),
-           ),
-           THM_DIFFU       =FACT(statut='f',
-             R_GAZ           =SIMP(statut='o',typ='R'),
-             RHO             =SIMP(statut='f',typ='R'),
-             CP              =SIMP(statut='f',typ='R'),
-             BIOT_COEF       =SIMP(statut='f',typ='R'),
-             SATU_PRES       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_SATU_PRES     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PESA_X          =SIMP(statut='f',typ='R'),
-             PESA_Y          =SIMP(statut='f',typ='R'),
-             PESA_Z          =SIMP(statut='f',typ='R'),
-             PERM_IN         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_END       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                          regles = (EXCLUS('PERM_IN','PERM_END','PERMIN_X',),
-                           PRESENT_PRESENT('PERMIN_X','PERMIN_Y','PERMIN_Z',), ),
-             PERMIN_X      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERMIN_Y      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERMIN_Z      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_LIQU       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_PERM_LIQU_SATU=SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_GAZ        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_PERM_SATU_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_PERM_PRES_GAZ =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICK            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FICK_TEMP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FICK_GAZ_PRES =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             LAMBDA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_LAMBDA_TEMP   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SIGMA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_SIGMA_T       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PERM_G_INTR     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CHAL_VAPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_PV        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_PG        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKV_S         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FV_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FV_PG         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_T         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_PA        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_PL        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FICKA_S         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D_FA_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
-           ),
-           ),
 # courbes et coefficients associés à la fatigue et au dommage
 #
            FATIGUE         =FACT(statut='f',
@@ -12323,7 +11458,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              GC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
              SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
              PENA_ADHERENCE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PENA_CONTACT    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),defaut=1.),
+             PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
              VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
            ),
            RCCM            =FACT(statut='f',
@@ -12645,166 +11780,7 @@ DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op=   2,sd_prod=para_sensi,
                                ang="Value of the parameter"),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-from Macro.defi_part_feti_ops import defi_part_feti_ops
-
-DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster,
-                     reentrant='n',UIinfo={"groupe":("Maillage",)},
-                     fr="Creation partitionnement en sous-domaines pour FETI",
-         regles=(UN_PARMI('MAILLAGE','MODELE'),),
-         MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
-         MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         NB_PART         =SIMP(statut='o',typ='I',val_min=2),
-         EXCIT           =FACT(statut='f',max='**',
-           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
-
-         # Methode de partitionnement
-         METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
-         
-         LOGICIEL      =SIMP(statut='f',typ='TXM'),
-
-         # Corrige les problemes possibles de non-connexite des sous-domaines
-         CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
-
-         # Permet de grouper des mailles dans un meme sous-doamine
-         GROUPAGE        =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-                          ),
-         # Permet d'appliquer des poids sur certaines mailles
-         POIDS_MAILLES   =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-           POIDS          =SIMP(statut='f',typ='I',val_min=2),
-                          ),
-         # Prefixe pour le nom des group_ma definissant les sous-domaines 
-         NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
-
-         # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
-         TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
-         
-         # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
-         # Note : le calcul FETI sera impossible
-         b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
-           NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
-             ),
-
-         INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
-);
-#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster,
-                    fr="Creation partitionnement en sous-domaines pour FETI",
-                    docu="U4.23.05",reentrant='n',
-                    UIinfo={"groupes":("Résolution",)},
-         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-         MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
-         NOM             =SIMP(statut='f',typ='TXM',defaut='SD'),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ),
-         DEFI          =FACT(statut='f',max='**',
-           GROUP_MA        =SIMP(statut='o',typ=grma),
-           GROUP_MA_BORD   =SIMP(statut='f',typ=grma),
-         ),
-         EXCIT           =FACT(statut='f',max='**',
-           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
-         ),
-);
-#& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-DEFI_PART_PA_OPS=OPER(nom="DEFI_PART_PA_OPS",op=29,sd_prod=sd_feti_sdaster,
-                    fr="Creation partitionnement en sous-domaines pour FETI",
-                    docu="U4.00.00",reentrant='n',
-                    UIinfo={"groupes":("Résolution",)},
-         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
-         MODELE          =SIMP(statut='f',typ=(modele_sdaster)),
-         NB_PART         =SIMP(statut='o',typ='I',),
-
-         # Methode de partitionnement
-         METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
-         
-         LOGICIEL      =SIMP(statut='f',typ='TXM'),
-
-         # Corrige les problemes possibles de non-connexite des sous-domaines
-         CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
-
-         # Permet de grouper des mailles dans un meme sous-doamine
-         GROUPAGE        =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-                          ),
-         # Permet d'appliquer des poids sur certaines mailles
-         POIDS_MAILLES   =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-           POIDS          =SIMP(statut='f',typ='I'),
-                          ),
-         # Prefixe pour le nom des group_ma definissant les sous-domaines 
-         NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
-
-         # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
-         TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
-
-         # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
-         # Note : le calcul FETI sera impossible
-         b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
-           NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
-             ),
-
-         INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
-
-);
-#& MODIF COMMANDE  DATE 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12885,7 +11861,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
          SPEC_FONC_FORME =FACT(statut='f',
            regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
                    ENSEMBLE('INTE_SPEC','FONCTION'),),
-           INTE_SPEC       =SIMP(statut='f',typ=tabl_intsp ),
+           INTE_SPEC       =SIMP(statut='f',typ=table_sdaster),
            FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),
            GRAPPE_1        =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
            NOEUD           =SIMP(statut='o',typ=no),
@@ -12894,7 +11870,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
          ),
          SPEC_EXCI_POINT =FACT(statut='f',
            regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
-           INTE_SPEC       =SIMP(statut='f',typ=tabl_intsp ),
+           INTE_SPEC       =SIMP(statut='f',typ=table_sdaster),
            GRAPPE_2        =SIMP(statut='f',typ='TXM',
                                  into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
 #  Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
@@ -12988,7 +11964,7 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13006,7 +11982,7 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,reentrant='n',
+DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=table_sdaster,reentrant='n',
             fr="Définir pour un materiau CFC, les orientations cristillographiques et leur système de glissement ",
             UIinfo={"groupes":("Modélisation",)},
          SYST_GLISSEMENT =FACT(statut='o',min=3,max=3,
@@ -13019,50 +11995,7 @@ DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,reentrant='n',
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction_sdaster,reentrant='n',
-            UIinfo={"groupes":("Outils métier",)},
-                    fr="Calculer l'évolution temporelle de la température due à l'effet JOULE d'un courant de court-circuit"
-                     +" dans un cable conducteur",
-         LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-         INST_CC_INIT    =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
-         INST_CC_FIN     =SIMP(statut='f',typ='R',defaut= 1.0E+10),
-         INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 1.0E+10),
-         INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 1.0E+10),
-         TEMP_EXT_POSE   =SIMP(statut='f',typ='R',defaut= 15.0E+0),
-         TEMP_EXT        =SIMP(statut='f',typ='R',defaut= 15.0E+0),
-         TEMP_RESI_REF   =SIMP(statut='f',typ='R',defaut= 20.0E+0),
-         PARA_COND_1D    =FACT(statut='f',max='**',
-           INTE_CC         =SIMP(statut='f',typ='R',defaut= 0.0E+0),
-           INTE_RENC       =SIMP(statut='f',typ='R',defaut= 0.0E+0),
-           A               =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           SECTION         =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ),
-           RESI_R0         =SIMP(statut='f',typ='R',defaut= 0.0E+0),
-           RESI_R1         =SIMP(statut='f',typ='R',defaut= 0.E+0),
-           RHO_CP          =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           COEF_H          =SIMP(statut='f',typ='R',defaut= 40.0E+0),
-           TEMP_INIT       =SIMP(statut='f',typ='R',defaut= 15.0E+0),
-         ),
-)  ;
-
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13080,7 +12013,7 @@ DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction_sdaster,reen
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,reentrant='n',
+DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
               fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier"
                 +" pour les calculs métallurgiques.",
@@ -13101,6 +12034,68 @@ DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,reentrant='n',
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+
+from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops
+
+def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args):
+  self.type_sdprod(RESULTAT,AsType(RESU_INIT))   
+  self.type_sdprod(MAILLAGE,maillage_sdaster)
+  return None
+
+
+MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n',
+             UIinfo={"groupes":("Post traitements",)},
+             fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation",
+                    
+
+             # SD résultat ,modèle et champs à "éclater" :
+             RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",),
+             MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"),
+             NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+                                   into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
+                                   
+             # paramètres numériques de la commande :
+             SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
+             TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
+             
+             # concepts produits par la commande :
+             RESULTAT        =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"),
+             MAILLAGE        =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"),
+                     
+             # Sélection éventuelle d'un sous-ensemble des éléments à visualiser :           
+             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+             
+             # Sélection des numéros d'ordre :
+             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
+             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+             NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
+             INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+             LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+            )
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
@@ -13116,14 +12111,14 @@ DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,reentrant='n',
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,reentrant='n',
+DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_sdaster,reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
                   fr="Calculer le champ de déplacement à l'intérieur d'une sous-structure statique",
-         DEPL_GLOBAL     =SIMP(statut='o',typ=cham_no_depl_r),
+         DEPL_GLOBAL     =SIMP(statut='o',typ=cham_no_sdaster),
          MAILLE          =SIMP(statut='o',typ=ma,),
          NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
 )  ;
-#& MODIF COMMANDE  DATE 17/10/2005   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13145,9 +12140,13 @@ DETRUIRE=MACRO(nom="DETRUIRE",op=-7,
             UIinfo={"groupes":("Gestion du travail",)},
               fr="Détruit des concepts utilisateurs dans la base GLOBALE ou des objets JEVEUX",
              op_init=ops.detruire,
-             regles=(UN_PARMI('CONCEPT','OBJET',),), 
+             regles=(UN_PARMI('CONCEPT','OBJET',),),
             CONCEPT     =FACT(statut='f',max='**',
+                regles=(DERIVABLE('NOM'),),
                 NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
+                SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
+                                 fr="Paramètre de sensibilité.",
+                                 ang="Sensitivity parameter",max='**'),
             ),
             OBJET  =FACT(statut='f',max='**',
                CLASSE      =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'),  
@@ -13157,45 +12156,7 @@ DETRUIRE=MACRO(nom="DETRUIRE",op=-7,
             ALARME        =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI',),
             INFO          =SIMP(statut='f',typ='I',into=(1,2),defaut=2, ),           
 );
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction_sdaster,reentrant='n', 
-            UIinfo={"groupes":("Outils métier",)},
-      fr="Calcul (au cours d'un transitoire) de la distance minimale entre deux structures filaires ou entre une structure"
-         +" et un point fixe",
-      regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),
-              UN_PARMI('GROUP_MA_2','POIN_FIXE'),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ),
-         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",)),
-         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-         LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-         GROUP_MA_1      =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
-         GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-         POIN_FIXE       =SIMP(statut='f',typ='R',min=3,max=3),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13213,7 +12174,7 @@ DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction_sdaster,reentrant=
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
+DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=table_sdaster
                     ,fr="Calcul de la réponse spectrale d'une structure linéaire sous une excitation connue par sa DSP",
                      reentrant='n',
             UIinfo={"groupes":("Résolution",)},
@@ -13233,7 +12194,7 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
 # MODE_STAT devrait etre dans EXCIT car est utile et obligatoire que si NOM_CMP=depl_r, on pourrait
 # ainsi rajouter un bloc du genre  b_mod_stat= BLOC(condition = "(GRANDEUR == None) or (GRANDEUR == 'DEPL_R')",        
          EXCIT           =FACT(statut='o',
-           INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
+           INTE_SPEC       =SIMP(statut='o',typ=table_sdaster),
            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ),
            MODAL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
@@ -13297,7 +12258,7 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 12/09/2005   AUTEUR NICOLAS O.NICOLA
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOI
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13316,21 +12277,22 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 def dyna_line_harm_prod(MATR_RIGI,**args):
-  if AsType(MATR_RIGI) == matr_asse_depl_r : return dyna_harmo
-  if AsType(MATR_RIGI) == matr_asse_depl_c : return dyna_harmo
-  if AsType(MATR_RIGI) == matr_asse_pres_c : return acou_harmo
-  if AsType(MATR_RIGI) == matr_asse_gene_r : return harm_gene
-  if AsType(MATR_RIGI) == matr_asse_gene_c : return harm_gene
-  raise AsException("type de concept resultat non prevu")
+   if (AsType(MATR_RIGI) == matr_asse_depl_r) : return dyna_harmo
+   elif (AsType(MATR_RIGI) == matr_asse_depl_c) : return dyna_harmo
+   elif (AsType(MATR_RIGI) == matr_asse_pres_c) : return acou_harmo
+   elif (AsType(MATR_RIGI) == matr_asse_gene_r) : return harm_gene
+   elif (AsType(MATR_RIGI) == matr_asse_gene_c) : return harm_gene
+   raise AsException("type de concept resultat non prevu")
 
 DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
                     fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique",
-                    reentrant='n',
+                    reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
                  PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
                  PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
-                 UN_PARMI('FREQ','LIST_FREQ'),),
+                 UN_PARMI('FREQ','LIST_FREQ'),
+                 CONCEPT_SENSIBLE('ENSEMBLE'),),
          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
@@ -13345,11 +12307,14 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
          LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
          TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
          NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,into=("DEPL","VITE","ACCE") ),
+         b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : RESULTAT obligatoire",
+             RESULTAT      =SIMP(statut='o',typ=(dyna_harmo,harm_gene)),
+         ),         
          EXCIT           =FACT(statut='o',max='**',
            regles=(UN_PARMI('VECT_ASSE','CHARGE'),
                    UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),
                   ),
-           VECT_ASSE       =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,vect_asse_gene_r,vect_asse_gene_c ) ),
+           VECT_ASSE       =SIMP(statut='f',typ=(cham_no_sdaster,vect_asse_gene) ),
            CHARGE          =SIMP(statut='f',typ=char_meca ),
            TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
            FONC_MULT_C     =SIMP(statut='f',typ=fonction_c ),
@@ -13367,30 +12332,31 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
 # Rajouter test icompatibilite vect_asse et sensibilite
 # Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation 
 #  presents dans le Fortran          
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
 #
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
                     fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque",
                     reentrant='f',
             UIinfo={"groupes":("Résolution",)},
 #         regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),),
-         regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),),
+         regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),
+                 CONCEPT_SENSIBLE('ENSEMBLE'),),
          MODELE          =SIMP(statut='f',typ=modele_sdaster ),
          CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
          CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
@@ -13410,8 +12376,8 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
          ADAPT           =FACT(statut='f',
          ),
          ETAT_INIT       =FACT(statut='f',
-           regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT',),
-                   PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT'),),
+           regles=(AU_MOINS_UN('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),
+                   PRESENT_ABSENT('DYNA_TRANS', 'DEPL_INIT', 'VITE_INIT', 'ACCE_INIT'),),
            DYNA_TRANS      =SIMP(statut='f',typ=dyna_trans ),
            b_dyna_trans    =BLOC(condition = "DYNA_TRANS != None",
              regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
@@ -13422,8 +12388,9 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
                CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
              ),
            ),
-           DEPL_INIT       =SIMP(statut='f',typ=(cham_no_depl_r) ),
-           VITE_INIT       =SIMP(statut='f',typ=(cham_no_depl_r) ),
+           DEPL_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
+           VITE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
+           ACCE_INIT       =SIMP(statut='f',typ=cham_no_sdaster),
          ),
          EXCIT           =FACT(statut='f',max='**',
            regles=(UN_PARMI('CHARGE','VECT_ASSE'),
@@ -13434,7 +12401,7 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
                    # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
                    ),
-           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
+           VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
            CHARGE          =SIMP(statut='f',typ=char_meca ),
            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            COEF_MULT       =SIMP(statut='f',typ='R' ),
@@ -13453,26 +12420,52 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
          ),
-#  ce n est pas le mot clesolveur standard
+
          SOLVEUR         =FACT(statut='d',
-           NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-           STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+         METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
+
+           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+           ),
+
+           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+           ),
+
+           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
+                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+             NPREC           =SIMP(statut='f',typ='I',defaut=8),
+             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           ),
+
+           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
+             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+           ),
+
+           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
+             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
+           ),
          ),
+
          INCREMENT       =FACT(statut='o',max='**',
            regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ), 
-           FONC_INST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),       
+           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
+           FONC_INST       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            PAS             =SIMP(statut='f',typ='R' ),
            b_pas           =BLOC(condition = "PAS != None",
                INST_INIT       =SIMP(statut='f',typ='R' ),
-               INST_FIN        =SIMP(statut='f',typ='R' ),    
+               INST_FIN        =SIMP(statut='f',typ='R' ),
            ),
            b_list_fonc     =BLOC(condition = "LIST_INST != None or FONC_INST != None",
                regles=(EXCLUS('INST_FIN','NUME_FIN'),),
-               NUME_FIN        =SIMP(statut='f',typ='I' ), 
-               INST_FIN        =SIMP(statut='f',typ='R' ),   
+               NUME_FIN        =SIMP(statut='f',typ='I' ),
+               INST_FIN        =SIMP(statut='f',typ='R' ),
            ),
            VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
            COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
@@ -13489,13 +12482,13 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
            CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE") ),
          ),
          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des param\350tres de sensibilit\351.",
+                               fr="Liste des paramétres de sensibilité.",
                                ang="List of sensitivity parameters",
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13517,7 +12510,8 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
             fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire",
             UIinfo={"groupes":("Résolution",)},
          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
-                 UN_PARMI('NEWMARK','HHT','TETA_METHODE', ),),
+                 UN_PARMI('NEWMARK','HHT','TETA_METHODE',),
+                 CONCEPT_SENSIBLE('ENSEMBLE'),),
          MODELE          =SIMP(statut='o',typ=modele_sdaster),
          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
          MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
@@ -13546,8 +12540,10 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
                 MAILLE      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
               ),
          AMOR_MODAL      =FACT(statut='f',
+           regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
            MODE_MECA       =SIMP(statut='f',typ=mode_meca),
            AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
+           LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
            NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
            REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          ),
@@ -13555,10 +12551,11 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
          COMP_ELAS       =FACT(statut='f',max='**',
            RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
                                  into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
-                                       "ELAS_POUTRE_GR","CABLE")),
+                                      "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
            ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
            ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),           
            ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
            CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
            DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
@@ -13575,18 +12572,20 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
 #-------------------------------------------------------------------
          b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
          ETAT_INIT       =FACT(statut='o',
-           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',),
+           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',),
                    EXCLUS('EVOL_NOLI','DEPL',),
                    EXCLUS('EVOL_NOLI','VITE'),
+                   EXCLUS('EVOL_NOLI','ACCE'),
                    EXCLUS('EVOL_NOLI','SIGM',),
                    EXCLUS('EVOL_NOLI','VARI',),
                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
                    EXCLUS('NUME_ORDRE','INST'), ),
-           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-           VITE            =SIMP(statut='f',typ=cham_no_depl_r),
-           SIGM            =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
-           VARI            =SIMP(statut='f',typ=cham_elem_vari_r),
-           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_vanl_r),
+           DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
+           VITE            =SIMP(statut='f',typ=cham_no_sdaster),
+           ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
+           SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
+           VARI            =SIMP(statut='f',typ=cham_elem),
+           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
            NUME_ORDRE      =SIMP(statut='f',typ='I'),
            INST            =SIMP(statut='f',typ='R'),
@@ -13597,18 +12596,20 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
          ),),
          b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
          ETAT_INIT       =FACT(statut='f',
-           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',),
+           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',),
                    EXCLUS('EVOL_NOLI','DEPL',),
                    EXCLUS('EVOL_NOLI','VITE'),
+                   EXCLUS('EVOL_NOLI','ACCE'),
                    EXCLUS('EVOL_NOLI','SIGM',),
                    EXCLUS('EVOL_NOLI','VARI',),
                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
                    EXCLUS('NUME_ORDRE','INST'), ),
-           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-           VITE            =SIMP(statut='f',typ=cham_no_depl_r),
-           SIGM            =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
-           VARI            =SIMP(statut='f',typ=cham_elem_vari_r),
-           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_vanl_r),
+           DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
+           VITE            =SIMP(statut='f',typ=cham_no_sdaster),
+           ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
+           SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
+           VARI            =SIMP(statut='f',typ=cham_elem),
+           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
            NUME_ORDRE      =SIMP(statut='f',typ='I'),
            INST            =SIMP(statut='f',typ='R'),
@@ -13643,8 +12644,8 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
            DELTA           =SIMP(statut='f',typ='R',defaut= 0.5),
          ),
          HHT             =FACT(statut='f',
-           ALPHA           =SIMP(statut='f',typ='R'
-                                ,defaut= -0.29999999999999999 ),
+           ALPHA           =SIMP(statut='f',typ='R',defaut= -0.3 ),
+           MODI_EQUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
          ),
          TETA_METHODE      =FACT(statut='f',
            TETA            =SIMP(statut='f',typ='R'
@@ -13806,6 +12807,16 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","
            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
            POINT           =SIMP(statut='f',typ='I' ,max='**'),
          ),
+#-------------------------------------------------------------------
+         CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
+           NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
+           CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10.),
+                            fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
+         ),
+         MODE_VIBR     =FACT(statut='f',min=1,max=1,
+           MATR_RIGI        =SIMP(statut='f',typ='TXM',defaut="ELASTIQUE",into=("ELASTIQUE","TANGENTE") ),
+           NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
+         ),
 #-------------------------------------------------------------------
            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
                                fr="Liste des paramètres de sensibilité",
@@ -13848,7 +12859,7 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13866,415 +12877,120 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp,
+DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=table_sdaster,
                      fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire",
                      reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
          EXCIT           =FACT(statut='o',
-           INTE_SPEC_GENE  =SIMP(statut='o',typ=tabl_intsp ),
+           INTE_SPEC_GENE  =SIMP(statut='o',typ=table_sdaster),
          ),
          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-#& RESPONSABLE
-DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f',UIinfo={"groupe":("Résolution",)},
-                   fr="Calcul de l'évolution dynamique d'une structure dont la géométrie ou le matériau ont un comportement"
-                       +" non linéaire, par une méthode explicite sur les accélérations ",
-         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         EXCIT           =FACT(statut='o',max='**',
-           regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
-                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
-                   # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
-                   ),
-           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
-                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
-           CHARGE          =SIMP(statut='o',typ=char_meca),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           DIRECTION       =SIMP(statut='f',typ='R',max=3),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-         ),
-         AMOR_MODAL      =FACT(statut='f',
-           MODE_MECA       =SIMP(statut='f',typ=mode_meca),
-           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
-           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
-           REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-         PROJ_MODAL      =FACT(statut='f',
-           MODE_MECA       =SIMP(statut='f',typ=mode_meca),
-           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
-         ),
-         COMP_INCR       =C_COMP_INCR(),
-         COMP_ELAS       =FACT(statut='f',max='**',
-           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
-                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
-                                       "ELAS_POUTRE_GR","CABLE")),
-           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
-           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
-         ),
-#-------------------------------------------------------------------
+DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
+                     fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées"
+                        +" par superposition modale ou par sous structuration",
+                     reentrant='f',
+            UIinfo={"groupes":("Résolution",)},
+      regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), 
+              PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
+         METHODE         =SIMP(statut='f',typ='TXM',defaut="EULER",
+                               into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
+         MASS_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
+         RIGI_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
+         AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
+         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
+         LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
+         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ),
+         MODE_CORR       =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,),
+         
          ETAT_INIT       =FACT(statut='f',
-           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','SIGM','VARI','VARI_NON_LOCAL',),
-                   EXCLUS('EVOL_NOLI','DEPL',),
-                   EXCLUS('EVOL_NOLI','VITE'),
-                   EXCLUS('EVOL_NOLI','SIGM',),
-                   EXCLUS('EVOL_NOLI','VARI',),
-                   EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                   EXCLUS('NUME_ORDRE','INST'), ),
-           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-           VITE            =SIMP(statut='f',typ=cham_no_depl_r),
-           SIGM            =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
-           VARI            =SIMP(statut='f',typ=cham_elem_vari_r),
-           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_vanl_r),
-           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-           NUME_ORDRE      =SIMP(statut='f',typ='I'),
-           INST            =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           NUME_DIDI       =SIMP(statut='f',typ='I'),
-           INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
-         ),
-#-------------------------------------------------------------------
-         INCREMENT       =FACT(statut='o',
-           regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
-                   EXCLUS('NUME_INST_FIN','INST_FIN'),),
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
-                                 into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
-           NUME_INST_INIT  =SIMP(statut='f',typ='I'),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           NUME_INST_FIN   =SIMP(statut='f',typ='I'),
-           INST_FIN        =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',),
-           VALE            =SIMP(statut='f',typ='R'),
+           regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
+                   EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
+           RESU_GENE       =SIMP(statut='f',typ=tran_gene ),
+           b_resu_gene     =BLOC(condition = "RESU_GENE != None",
+             INST_INIT       =SIMP(statut='f',typ='R' ),
+             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           ),
+           DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
+           VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
          ),
-#-------------------------------------------------------------------
-         NEWMARK         =FACT(statut='d',
-           ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25),
-           DELTA           =SIMP(statut='f',typ='R',defaut= 0.5),
+         INCREMENT       =FACT(statut='o',max='**',
+           INST_INIT       =SIMP(statut='f',typ='R' ),
+           INST_FIN        =SIMP(statut='o',typ='R' ),
+           PAS             =SIMP(statut='f',typ='R' ),
+           VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
+           COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
+           COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
+           PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
+           NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
+           NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
          ),
-         NEWTON          =FACT(statut='c',
-           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-           PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
-           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
-           REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
-           PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
+         ARCHIVAGE       =FACT(statut='f',
+           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
+           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
+           PAS_ARCH        =SIMP(statut='f',typ='I' ),
          ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-           b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult     =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
-           ),
-           b_gcpc          =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-#-------------------------------------------------------------------
-         RECH_LINEAIRE   =FACT(statut='c',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
-           ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
-           PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-           RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
-           RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
-           RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2),
-         ),
-         PILOTAGE        =FACT(statut='c',
-           regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
-           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
-           ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
-           PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-           SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
-                         ),
-         CONVERGENCE     =FACT(statut='d',
-           regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
-           SIGM_REFE       =SIMP(statut='f',typ='R'),
-           EPSI_REFE       =SIMP(statut='f',typ='R'),
-           FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),           
-           RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-           ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
-           RESI_INTE_RELA  =SIMP(statut='f',typ='R'
-                                ,defaut= 1.0E-6),
-           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
-         ),
-#-------------------------------------------------------------------
-        AFFICHAGE      = FACT(statut='f',max=16,
-
-            UNITE       = SIMP(statut='f',typ='I',val_min=1),
-
-            LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
-            PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
-            LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
-            
-            NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
-                                into=("STANDARD","MINIMUM",
-                                      "ITER_NEWT",
-                                      "INCR_TPS",
-                                      "RESI_RELA","RELA_NOEU",
-                                      "RESI_MAXI","MAXI_NOEU",
-                                      "RESI_REFE","REFE_NOEU",
-                                      "RELI_ITER","RELI_COEF",
-                                      "PILO_PARA",
-                                      "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
-                                      "MATR_ASSE",
-                                      "ITER_DEBO",
-                                      "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
-                                      "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
-                                      "SUIV_1","SUIV_2","SUIV_3","SUIV_4",
-                                     ),
-                               ),
-            b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
-                    NOM_COLONNE == 'RESI_MAXI' or\
-                    NOM_COLONNE == 'RESI_REFE' or\
-                    NOM_COLONNE == 'CTCD_GEOM' or\
-                    NOM_COLONNE == 'STANDARD' ",
-                            INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
-                          ),
-         ),
-#-------------------------------------------------------------------
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
-                   EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
-           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PAS_ARCH        =SIMP(statut='f',typ='I' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-           ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-           into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
-         ),
-         OBSERVATION     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
-                   PRESENT_PRESENT('MAILLE','POINT'),),
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-
-into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ),
-           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PAS_OBSE        =SIMP(statut='f',typ='I'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           POINT           =SIMP(statut='f',typ='I' ,max='**'),
-         ),
-#-------------------------------------------------------------------
-           SOLV_NON_LOCAL  =FACT(statut='f',
-             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-             ),
-             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-             ),
-             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-             ),
-             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-             ),
-           ),
-           LAGR_NON_LOCAL  =FACT(statut='f',
-             ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
-             RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
-             RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
-             R               =SIMP(statut='f',typ='R',defaut= 1000.),
-             ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
-           ),
-#-------------------------------------------------------------------
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
-                     fr="Calcul de la réponse dynamique transitoire d'un système amorti ou non en coordonées généralisées"
-                        +" par superposition modale ou par sous structuration",
-                     reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-      regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), 
-              PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
-         METHODE         =SIMP(statut='f',typ='TXM',defaut="EULER",
-                               into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
-         MASS_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
-         RIGI_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
-         AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
-         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
-         LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc) ),
-         MODE_CORR       =SIMP(statut='f',typ=(mult_elas,mode_stat_acce) ,),
-         
-         ETAT_INIT       =FACT(statut='f',
-           regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
-                   EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
-           RESU_GENE       =SIMP(statut='f',typ=tran_gene ),
-           b_resu_gene     =BLOC(condition = "RESU_GENE != None",
-             INST_INIT       =SIMP(statut='f',typ='R' ),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           ),
-           DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene_r ),
-           VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene_r ),
-         ),
-         INCREMENT       =FACT(statut='o',max='**',
-           INST_INIT       =SIMP(statut='f',typ='R' ),
-           INST_FIN        =SIMP(statut='o',typ='R' ),
-           PAS             =SIMP(statut='f',typ='R' ),
-           VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
-           COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
-           COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
-           PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
-           NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
-           NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
-         ),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
-           PAS_ARCH        =SIMP(statut='f',typ='I' ),
-         ),
-         
-         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 20 ),
-         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-         LAMBDA          =SIMP(statut='f',typ='R',defaut= 10. ),
-         
-         EXCIT           =FACT(statut='f',max='**',
-           regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
-                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
-                   PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
-                   PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'),
-                   EXCLUS('MULT_APPUI','CORR_STAT'),
-                   PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
-                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
-           VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene_r ),
-           NUME_MODE       =SIMP(statut='f',typ='I' ),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           COEF_MULT       =SIMP(statut='f',typ='R' ),
-           ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           DIRECTION       =SIMP(statut='f',typ='R',max='**'),
-           b_loca          =BLOC(condition= "DIRECTION != None",
-             regles=(EXCLUS('NOEUD','GROUP_NO'),),
-             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+         
+         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 20 ),
+         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+         LAMBDA          =SIMP(statut='f',typ='R',defaut= 10. ),
+         
+         EXCIT           =FACT(statut='f',max='**',
+           regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
+                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
+                   PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
+                   PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'),
+                   EXCLUS('MULT_APPUI','CORR_STAT'),
+                   PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
+                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
+           VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene ),
+           NUME_MODE       =SIMP(statut='f',typ='I' ),
+           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           COEF_MULT       =SIMP(statut='f',typ='R' ),
+           ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           DIRECTION       =SIMP(statut='f',typ='R',max='**'),
+           b_loca          =BLOC(condition= "DIRECTION != None",
+             regles=(EXCLUS('NOEUD','GROUP_NO'),),
+             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
            ),
            CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
            D_FONC_DT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            D_FONC_DT2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
          ),
          CHOC            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
-                   PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
-                   PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
+           regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD_1','GROUP_NO_1' ),
+                   EXCLUS('NOEUD_2','GROUP_NO_2'),
+                   PRESENT_ABSENT('GROUP_MA','NOEUD_2','GROUP_NO_2'),
+                   PRESENT_ABSENT('MAILLE','NOEUD_2','GROUP_NO_2'),),
            INTITULE        =SIMP(statut='f',typ='TXM' ),
+           GROUP_MA        =SIMP(statut='f',typ=grma),
+           MAILLE          =SIMP(statut='f',typ=ma),
            NOEUD_1         =SIMP(statut='f',typ=no),
            NOEUD_2         =SIMP(statut='f',typ=no),
            GROUP_NO_1      =SIMP(statut='f',typ=grno),
@@ -14309,8 +13025,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
          ),
          FLAMBAGE        =FACT(statut='f',max='**',
            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
-                   PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
-                   PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
+                   EXCLUS('NOEUD_2','GROUP_NO_2'),),
            NOEUD_1         =SIMP(statut='f',typ=no),
            NOEUD_2         =SIMP(statut='f',typ=no),
            GROUP_NO_1      =SIMP(statut='f',typ=grno),
@@ -14330,9 +13045,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
          ),
          ANTI_SISM       =FACT(statut='f',max='**',
            regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
-                   UN_PARMI('NOEUD_2','GROUP_NO_2'),
-                   PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
-                   PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
+                   UN_PARMI('NOEUD_2','GROUP_NO_2'),),
            NOEUD_1         =SIMP(statut='f',typ=no),
            NOEUD_2         =SIMP(statut='f',typ=no),
            GROUP_NO_1      =SIMP(statut='f',typ=grno),
@@ -14495,7 +13208,7 @@ EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14533,6 +13246,8 @@ def extr_resu_prod(RESULTAT,**args):
 EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f',
             UIinfo={"groupes":("Résultats et champs",)},
             fr="Extraire des champs au sein d'une SD Résultat",
+         regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
+                 DERIVABLE('RESULTAT'),),
          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
                                                mode_acou,mode_stat_depl,mode_stat_acce,mode_stat_forc,evol_ther,evol_noli,
                                                mult_elas,fourier_elas ) ),
@@ -14568,55 +13283,6 @@ EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f',
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-def extr_table_prod(TYPE_RESU,**args):
-  if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r
-  raise AsException("type de concept resultat non prevu")
-
-EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-         fr="Extraire d'une table la matrice de masse généralisée assemblée",
-         TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ),
-
-         TABLE           =SIMP(statut='o',typ=table_sdaster),
-
-         NOM_PARA        =SIMP(statut='o',typ='TXM'),
-
-         FILTRE          =FACT(statut='f',min=1,max='**',
-           NOM_PARA        =SIMP(statut='o',typ='TXM'),
-           CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
-                                 into=("EQ","LT","GT","NE","LE","GE","VIDE",
-                                       "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
-           b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
-              regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
-              VALE            =SIMP(statut='f',typ='R'),
-              VALE_I          =SIMP(statut='f',typ='I'),
-              VALE_C          =SIMP(statut='f',typ='C'),
-              VALE_K          =SIMP(statut='f',typ='TXM'),),
-
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-         ),
-
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
@@ -14652,6 +13318,76 @@ FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE GNICOLAS G.NICOLAS
+
+from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops
+
+MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops,
+                     docu="U7.04.41",UIinfo={"groupe":("Impression",)},
+                     fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.",
+                     ang="Print values for the fiability software",
+#
+# 1. Le niveau d'information
+#
+   INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+#
+# 2. Impression de la valeur de la cible
+#
+# 2.1. ==> La table contenant la valeur à imprimer
+#
+   TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster,
+                 fr="Table contenant la valeur cible.",
+                 ang="Table which includes the target value."),
+#
+# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table
+#
+   NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM',
+                    fr="Nom du paramètre associé à la valeur cible.",
+                    ang="Name of the parameter connected to the target value."),
+#
+# 3. Impressions des valeurs des éventuels gradients
+#
+   GRADIENTS = FACT(statut='f',min=1,max='**',
+#
+# 3.1. ==> La table contenant la valeur à imprimer
+#
+       TABLE = SIMP(statut='o',typ=table_sdaster,
+                    fr="Table contenant le gradient.",
+                    ang="Table which includes the gradient."),
+#
+# 3.2. ==> Le paramètre sensible
+#
+       PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom),
+                       fr="Paramètre sensible associé au gradient.",
+                       ang="Sensitivity parameter connected to the gradient."),
+#
+# 3.3. ==> Le nom du paramètre associé au gradient dans cette table
+#
+       NOM_PARA = SIMP(statut='o',typ='TXM',
+                       fr="Nom du paramètre associé au gradient.",
+                       ang="Name of the parameter connected to the gradient."),
+#
+         ),
+#
+);
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
@@ -14789,7 +13525,7 @@ FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5,
          VALE     =SIMP(statut='f',typ='TXM'),
          NOM_PARA =SIMP(statut='o',typ='TXM',max='**'),
 );
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14812,7 +13548,7 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster,
                     fr="Génération de la fonction temporelle à partir d une matrice interspectrale",
                     reentrant='n',
             UIinfo={"groupes":("Fonction",)},
-         INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
+         INTE_SPEC       =SIMP(statut='o',typ=table_sdaster),
          NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
          INTERPOL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
          b_interpol_oui    =BLOC(condition = "INTERPOL == 'OUI' ",fr="Parametres cas interpolation autorisee",
@@ -14826,98 +13562,6 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=table_sdaster,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 11/07/2005   AUTEUR CAMBIER S.CAMBIER 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE CAMBIER S.CAMBIER
-def gene_matr_alea_prod(MATR_MOYEN,**args ):
-  if (AsType(MATR_MOYEN) == matr_asse_gene_r )  : return matr_asse_gene_r
-  if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna
-  raise AsException("type de concept resultat non prevu")
-
-GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,
-#sd_prod=matr_asse_gene_r,
-sd_prod=gene_matr_alea_prod,
-               fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique",
-               reentrant='n',
-            UIinfo={"groupes":("Matrice",)},
-   MATR_MOYEN   = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)),
-
-#    cas matrice generalisee 
-   b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)",
-           COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice a generer" ),
-           ),
-#    cas macr_elem_dyna 
-   b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)",
-           fr="cas macr_elem_dyna (sous-structuratio)",
-           COEF_VAR_RIGI     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice de raideur" ),
-           COEF_VAR_MASS     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice de masse" ),
-           COEF_VAR_AMOR     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice d'amortissement" ),),
-
-   INIT_ALEA    =SIMP(statut='f',typ='I'),
-) ;
-   
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE CAMBIER S.CAMBIER
-GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op=  28,sd_prod=table_sdaster,
-               fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)",
-               reentrant='n',
-            UIinfo={"groupes":("Fonction",)},
-   TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"),
-   b_gamma    =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma",
-           VALE_MOY   = SIMP(statut='f', typ='R', defaut=1.),
-           BORNE_INF  = SIMP(statut='f', typ='R', defaut=0.),
-           COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
-             ),
-   b_expo    =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle",
-           VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
-           BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
-             ),
-   b_expo_tronq    =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee",
-           VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
-           BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
-           BORNE_SUP  = SIMP(statut='f', typ='R', defaut=1.),
-           COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
-             ),
-   INIT_ALEA       =SIMP(statut='f',typ='I'),
-) ;
-   
 #& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -14987,37 +13631,44 @@ IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,
          ),
          AMOR            =SIMP(statut='o',typ='R',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
 #
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 IMPR_CO=PROC(nom="IMPR_CO",op=17,
             UIinfo={"groupes":("Impression",)},
-             fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour développeur)",
-         regles=(UN_PARMI('CO','CHAINE', ),),
-         UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-         NIVEAU          =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ),
+             fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour les développeurs)",
+         regles=(UN_PARMI('CONCEPT','CHAINE','TOUT' ),),
+
+         UNITE           =SIMP(statut='f',typ='I',defaut=8),
+         NIVEAU          =SIMP(statut='f',typ='I',defaut=2,into=(-1,0,1,2) ),
          ATTRIBUT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
          CONTENU         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
-         BASE            =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ),
-         CO              =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
+         BASE            =SIMP(statut='f',typ='TXM',defaut="G",into=(" ","G","V","L") ),
+         CONCEPT    =FACT(statut='f',max='**',
+             regles=(DERIVABLE('NOM'),),
+             NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
+             SENSIBILITE =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),
+                                 fr="Paramètre de sensibilité.",
+                                 ang="Sensitivity parameter",max='**'),),        
          CHAINE          =SIMP(statut='f',typ='TXM'),
          POSITION        =SIMP(statut='f',typ='I',defaut=1),
+         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
 )  ;
 #& MODIF COMMANDE  DATE 04/07/2005   AUTEUR GNICOLAS G.NICOLAS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
@@ -15317,141 +13968,7 @@ IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b",
          ),
 #
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-from Macro.impr_fonction_ops import impr_fonction_ops
-
-IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None,
-                 fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe",
-            UIinfo={"groupes":("Fonction",)},
-         FORMAT          =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU',
-                               into=("TABLEAU","AGRAF","XMGRACE",),),
-         b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
-                        fr="Mots-clés propres à XMGRACE",
-           PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
-                                 into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
-                            fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
-           UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
-                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
-         ),
-         b_agraf = BLOC(condition = "FORMAT == 'AGRAF'",
-                        fr="Mots-clés propres à AGRAF",
-           UNITE           =SIMP(statut='o',typ='I',defaut=25,
-                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
-           UNITE_DIGR      =SIMP(statut='o',typ='I',defaut=26,
-                                 fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"),
-         ),
-         # unite pour TABLEAU dans le bloc de mise en forme spécifique
-
-         COURBE          =FACT(statut='o',max='**',fr="Définition de la fonction à tracer",
-           regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),),
-           FONCTION        =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster),
-                                 fr="Fonction réelle ou complexe", ),
-           LIST_RESU       =SIMP(statut='f',typ=listr8_sdaster,
-                                 fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ),
-           FONC_X          =SIMP(statut='f',typ=(fonction_sdaster,formule),
-                                 fr="Fonction abscisses d'une fonction paramétrique",),
-           ABSCISSE        =SIMP(statut='f',typ='R',max='**',
-                                 fr="Valeurs des abscisses", ),
-           b_fonction      =BLOC(condition = "FONCTION != None",
-             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
-           ),
-           b_fonction_c  =BLOC(condition = "AsType(FONCTION) == fonction_c",
-                                 fr="Fonction complexe définie par le mot-clé fonction",
-             PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
-           ),
-           b_list_resu     =BLOC(condition = "LIST_RESU != None",
-             LIST_PARA       =SIMP(statut='o',typ=listr8_sdaster ),
-           ),
-           b_fonc_x        =BLOC(condition = "FONC_X != None",
-             FONC_Y          =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ),
-             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
-           ),
-           b_vale_resu     =BLOC(condition = "ABSCISSE != None",
-             ORDONNEE      =SIMP(statut='o',typ='R',max='**',
-                                 fr="Valeurs des ordonnées"),
-           ),
-
-           # le bloc n'est pas activé (vide) car position n'est pas pris en compte
-           b_forme         =BLOC(condition = "FORMAT != 'TABLEAU'",
-                                 fr="Données de mise en forme de la fonction (cf. doc)",
-           ),
-              LEGENDE         =SIMP(statut='f',typ='TXM',
-                                    fr="Légende associée à la fonction" ),
-              STYLE           =SIMP(statut='f',typ='I',val_min=0,
-                                    fr="Style de la ligne représentant la fonction",),
-              COULEUR         =SIMP(statut='f',typ='I',val_min=0,
-                                    fr="Couleur associée à la fonction",),
-              MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
-                                    fr="Type du marqueur associé à la fonction",),
-              FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
-                                    fr="Fréquence d impression du marqueur associé à la fonction", ),
-           # fin bloc b_forme
-           TRI             =SIMP(statut='f',typ='TXM',defaut="N",
-                                 fr="Choix du tri effectué sur les abscisses ou sur les ordonnées",
-                                 into=("N","X","Y","XY","YX") ),
-         ),
-         # Mise en page du tableau ou du graphique
-         b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
-                          fr="Mots-clés propres au format Tableau",
-           UNITE           =SIMP(statut='o',typ='I',defaut=8,
-                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
-           TITRE           =SIMP(statut='f',typ='TXM',
-                                 fr="Titre associé au graphique" ),
-           SOUS_TITRE      =SIMP(statut='f',typ='TXM',
-                                 fr="Sous-titre du graphique" ),
-           SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
-                                 fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
-           COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
-                                 fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
-           DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
-                                 fr="Caractère de debut de ligne"),
-           FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
-                                 fr="Caractère de fin de ligne"),
-         ),
-         b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'",
-                        fr="Mise en page du graphique",
-           TITRE           =SIMP(statut='f',typ='TXM',
-                                 fr="Titre associé au graphique" ),
-           SOUS_TITRE      =SIMP(statut='f',typ='TXM',
-                                 fr="Sous-titre du graphique" ),
-           BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
-                                 fr="Intervalles de variation des abscisses"),
-           BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
-                                 fr="Intervalles de variation des ordonnées"),
-           ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
-                                 fr="Type d'échelle pour les abscisses" ),
-           ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
-                                 fr="Type d'échelle pour les ordonnées" ),
-           GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
-                                 fr="Pas du quadrillage vertical" ),
-           GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
-                                 fr="Pas du quadrillage horizontal" ),
-           LEGENDE_X       =SIMP(statut='f',typ='TXM',
-                                 fr="Légende associée à l'axe des abscisses" ),
-           LEGENDE_Y       =SIMP(statut='f',typ='TXM',
-                                 fr="Légende associée à l'axe des ordonnées" ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 12/09/2005   AUTEUR NICOLAS O.NICOLAS 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15485,7 +14002,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
                    EXCLUS('TOUT_CHAM','NOM_CHAM'),
                    EXCLUS('TOUT_PARA','NOM_PARA'),),
 #  faut-il faire des blocs selon le type de RESU_GENE                   
-           RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene_r, tran_gene, mode_gene, harm_gene)),
+           RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster ),
@@ -15695,7 +14212,7 @@ IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
          ),
 # ======================================================================
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15722,7 +14239,7 @@ IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
          EXCIT           =FACT(statut='f',max='**',
            regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),),
-           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
+           VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
            FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            COEF_MULT       =SIMP(statut='f',typ='R' ),
          ),
@@ -15741,53 +14258,7 @@ IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 16/06/2004   AUTEUR DURAND C.DURAND 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE D6BHHAM A.M.DONORE
-#
-IMPR_OAR =PROC(nom="IMPR_OAR",op= 40,
-               fr="Impression au format OAR",
-               UIinfo={"groupes":("Impression",)},
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem                          ),
-         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster                        ),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster                          ),
-         MAILLE          =SIMP(statut='o',typ=ma  ,validators=NoRepeat(),max=2   ),
-         NOEUD           =SIMP(statut='o',typ=no  ,validators=NoRepeat()         ),
-
-         CHARGE           =FACT(statut='o',max='**',
-
-              NUM_CHAR        =SIMP(statut='o',typ='I'),
-              TEMP_NOEUD      =SIMP(statut='f',typ='R',defaut=20.),
-              TYPE            =SIMP(statut='f',typ='TXM',defaut="DILA",
-                                 into=("POIDS","DILA","SEISME","DEPL","EFFO","STRATIF","CONDITIONNEL","COMBINAISON") ),
-              NATURE          =SIMP(statut='f',typ='TXM',defaut="PRIMAIRE",
-                                 into=("PRIMAIRE","SECONDAIRE","TOTAL") ),
-              SIGNE           =SIMP(statut='f',typ='TXM',defaut="S",
-                                 into=("S","NS") ),
-              RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),# CO() sd a creer !!!
-           ),
-
-
-           UNITE           =SIMP(statut='f',typ='I',defaut=38),  
-           INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-) ;
-#& MODIF COMMANDE  DATE 05/09/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15856,16 +14327,15 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
            b_sensibilite   =BLOC(condition="RESULTAT != None",
                                  fr="Définition des paramètres de sensibilité",
                                  ang="Definition of sensitivity parameters",
+             regles=(DERIVABLE('RESULTAT'),),
              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
                                    fr="Liste des paramètres de sensibilité.",
                                    ang="List of sensitivity parameters"),),
 
-           b_partie        =BLOC(condition="""((AsType(RESULTAT)==dyna_harmo) or (AsType(CHAM_GD)==cham_elem_epsi_c) 
-                            or (AsType(CHAM_GD)==cham_elem_depl_c) or (AsType(CHAM_GD)==cham_elem_sief_c) or 
-                            (AsType(CHAM_GD)==cham_no_depl_c) or (AsType(CHAM_GD)==cham_no_pres_c) or 
-                            (AsType(CHAM_GD)==cham_no_temp_c)) and ((FORMAT=='CASTEM') or (FORMAT=='GMSH'))""",
-             PARTIE          =SIMP(statut='o',typ='TXM',into=("REEL","IMAG") ),
-           ),
+#           b_partie        =BLOC(condition="""((AsType(RESULTAT)==dyna_harmo) or  
+#                           (AsType(CHAM_GD)!=carte_sdaster))  and ((FORMAT=='CASTEM') or (FORMAT=='GMSH'))""",
+             PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
+#           ),
            b_extrac        =BLOC(condition="RESULTAT != None",
                                  fr="extraction d un champ de grandeur",
              regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
@@ -15979,7 +14449,7 @@ IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de val
          PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
          SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16003,6 +14473,7 @@ from Macro.impr_table_ops import impr_table_ops
 IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None,
             UIinfo={"groupes":("Impression",)},
                 fr="Impression du contenu d'une table dans un fichier",
+           regles=(DERIVABLE("TABLE"),),
    TABLE          =SIMP(statut='o',typ=table_sdaster),
    SENSIBILITE    =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
                          fr="Liste des paramètres de sensibilité.",
@@ -16149,153 +14620,30 @@ INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,
          UNITE_LONGUEUR  =SIMP(statut='f',typ='TXM',into=("M","MM"),defaut="M" ),  
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-# RESPONSABLE D6BHHJP J.P.LEFEBVRE
-INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster,
-                    fr="Récupère différentes informations propres à l'exécution en cours",
-                    reentrant='n',
-                    UIinfo={"groupes":("Gestion du travail",)},
+# RESPONSABLE G8BHHXD X.DESROCHES
+INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
+            UIinfo={"groupes":("Post traitements",)},
+                  fr="Définition d'une courbe dans un maillage 2D",reentrant='n',
 
-         regles=(),
-         LISTE_INFO     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3,
-                              into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),),
-         b_etat_unite   =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", 
-            regles=(UN_PARMI('UNITE','FICHIER'),),
-            UNITE          =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1,
-                                 fr="Unité logique dont on veut obtenir l'état",),
-            FICHIER        =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),
-                                 fr="Nom du fichier dont on veut obtenir l'état",),
-         ),
-         TITRE          =SIMP(statut='f',typ='TXM',max='**'),
-         INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 24/05/2005   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-from Macro.info_fonction_ops import info_fonction_ops
-def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args):
-   if (RMS         != None): return table_sdaster
-   if (MAX         != None): return table_sdaster
-   if (NOCI_SEISME != None): return table_sdaster
-   if (ECART_TYPE  != None): return table_sdaster
-   if (NORME       != None): return table_sdaster
-   raise AsException("type de concept resultat non prevu")
-
-INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_fonction_prod
-                    ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe",
-                     reentrant='n',
-            UIinfo={"groupes":("Fonction",)},
-         regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),),
-         RMS             =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
-           FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
-           INST_INIT       =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
-           INST_FIN        =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
-         ),
-         NOCI_SEISME     =FACT(statut='f',
-           regles=(UN_PARMI('FONCTION','SPEC_OSCI',),),
-           FONCTION        =SIMP(statut='f',typ=fonction_sdaster ),
-           SPEC_OSCI       =SIMP(statut='f',typ=nappe_sdaster ),
-           b_option_f      =BLOC(condition="""FONCTION !=None""",
-             OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**',
-                                   into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU",
-                                         "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ),
-             b_amor          =BLOC(condition="""OPTION=="TOUT" or OPTION=="INTE_SPEC" """,
-               AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),),
-           b_option_n      =BLOC(condition="""SPEC_OSCI !=None""",
-             OPTION          =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ),
-             NATURE          =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ),
-             AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           INST_FIN        =SIMP(statut='f',typ='R'),
-           COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           PESANTEUR       =SIMP(statut='f',typ='R',defaut= 9.81E+0 ),
-           FREQ_INIT       =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
-           FREQ_FIN        =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
-           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
-           FREQ            =SIMP(statut='f',typ='R',max='**'),
-           NORME           =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
-           BORNE_INF       =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
-           BORNE_SUP       =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
-           b_acce_reel     =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
-             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,val_min=0.E+0),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           ),
-         ),
-         MAX             =FACT(statut='f',fr="Extrémas locaux d'une fonction",
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
-         ),
-         NORME           =FACT(statut='f',fr="Norme L2 d'une fonction",
-            FONCTION      =SIMP(statut='o', typ=nappe_sdaster),
-         ),     
-         ECART_TYPE      =FACT(statut='f',fr="Ecart-type d'une fonction",
-            METHODE       =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
-            FONCTION      =SIMP(statut='o',typ=fonction_sdaster),
-            INST_INIT     =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
-            INST_FIN      =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
-            CRITERE       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-            PRECISION     =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
-         ),     
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
-            UIinfo={"groupes":("Post traitements",)},
-                  fr="Définition d'une courbe dans un maillage 2D",reentrant='n',
-
-         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
+         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
 
          regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                  AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
@@ -16393,7 +14741,7 @@ INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster,
          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16416,13 +14764,8 @@ def lire_champ_prod(TYPE_CHAM=None,**args):
 #            homologue dans macr_adap_mail
   import string
 #  
-  if TYPE_CHAM[0:5] == "NOEU_" : return eval("cham_no_"+string.lower(TYPE_CHAM[5:]))
-  if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl
-  if TYPE_CHAM[0:5] == "ELEM_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:]))
-  if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl
-  if TYPE_CHAM[0:5] == "ELNO_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:]))
-  if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl
-  if TYPE_CHAM[0:5] == "ELGA_" : return eval("cham_elem_"+string.lower(TYPE_CHAM[5:]))
+  if TYPE_CHAM[0:5] == "NOEU_" : return cham_no_sdaster
+  if TYPE_CHAM[0:2] == "EL"    : return cham_elem
   raise AsException("type de concept resultat non prevu")
 
 LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
@@ -16526,65 +14869,7 @@ LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_foncti
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ACBHHCD G.DEVESA 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene_c,
-                    fr="Création d un vecteur assemblé à partir de base modale",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},           
-         BASE            =SIMP(statut='o',typ=base_modale ),
-         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
-         FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
-         NOM_CMP         =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
-         NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"),
-         UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30),
-)  ;
-
-#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ACBHHCD G.DEVESA 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
-                    fr="Création d une matrice assemblée à partir de base modale",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},           
-         BASE            =SIMP(statut='o',typ=base_modale ),
-         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
-         FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
-         UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
-)  ;
-
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16605,7 +14890,7 @@ LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
 
 from Macro.lire_inte_spec_ops import lire_inte_spec_ops
 
-LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_intsp,
+LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=table_sdaster,
                     fr="Lecture sur un fichier externe de fonctions complexes pour créer une matrice interspectrale",
                     reentrant='n',
             UIinfo={"groupes":("Fonction",)},
@@ -16925,83 +15210,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
            ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-from Macro.lire_table_ops import lire_table_ops
-
-def lire_table_prod(self,TYPE_TABLE,**args):
-  if TYPE_TABLE == "TABLE"          : return table_sdaster
-  if TYPE_TABLE == "TABL_CARA_GEOM" : return tabl_cara_geom
-  if TYPE_TABLE == "TABL_POST_RELE" : return tabl_post_rele
-  if TYPE_TABLE == "TABL_POST_USUR" : return tabl_post_usur
-  if TYPE_TABLE == "TABL_POST_ALEA" : return tabl_post_alea
-  raise AsException("type de concept resultat non prevu")
-
-LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=lire_table_prod,
-                 fr="Lecture d'un fichier contenant une table",
-            UIinfo={"groupes":("Table",)},
-         UNITE           =SIMP(statut='o',typ='I' ),
-         FORMAT          =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"),
-         NUME_TABLE      =SIMP(statut='f',typ='I',defaut=1),
-         TYPE_TABLE      =SIMP(statut='f',typ='TXM',defaut="TABLE",
-                              into=("TABLE",
-                                    "TABL_CARA_GEOM",
-                                    "TABL_POST_RELE",
-                                    "TABL_POST_USUR",
-                                    "TABL_POST_ALEA" ) ),
-         SEPARATEUR      =SIMP(statut='o',typ='TXM'),
-         PARA            =SIMP(statut='f',typ='TXM',max='**'),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         )  ;
-
-#& MODIF COMMANDE  DATE 12/09/2005   AUTEUR NICOLAS O.NICOLAS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# ======================================================================
-
-MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
-               fr="Normalisation de modes propres",
-               reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         BASE_1       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
-         BASE_2       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
-         MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
-         TITRE      =SIMP(statut='f',typ='TXM',max='**'),
-         INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& MODIF COMMANDE  DATE 07/11/2005   AUTEUR GNICOLAS G.NICOLAS 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -17021,6 +15230,7 @@ MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
 # ======================================================================
 # RESPONSABLE GNICOLAS G.NICOLAS
 
+
 from Macro.macr_adap_mail_ops import macr_adap_mail_ops
 
 def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
@@ -17030,15 +15240,11 @@ def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
 # Remarque : la liste qui suit doit etre conforme à son homologue de LIRE_CHAMP
   for ch in MAJ_CHAM:
     t=ch['TYPE_CHAM']
-    if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_no_"+string.lower(t[5:])))
-    if t == "ELEM_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl)
-    if t[0:5] == "ELEM_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:])))
-    if t == "ELNO_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl)
-    if t[0:5] == "ELNO_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:])))
-    if t == "ELGA_G_DEPL_R":self.type_sdprod(ch['CHAM_MAJ'],cham_elem_g_depl)
-    if t[0:5] == "ELGA_":self.type_sdprod(ch['CHAM_MAJ'],eval("cham_elem_"+string.lower(t[5:])))
+    if t[0:5] == "NOEU_":self.type_sdprod(ch['CHAM_MAJ'],cham_no_sdaster)
+    if t[0:2] == "EL":   self.type_sdprod(ch['CHAM_MAJ'],cham_elem)
   return None
 
+
 MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=macr_adap_mail_ops,sd_prod=macr_adap_mail_prod,
                      fr="Adapter un maillage avec le logiciel HOMARD.",
                      ang="Mesh adaptation with HOMARD software.",
@@ -18031,256 +16237,89 @@ MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=mail
 
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-
-from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops
-   
-def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER,
-                         CHAR_THER,CHAR_MECA,RESU_THER,**args):
-  if MODELE_THER != None:
-   self.type_sdprod(MODELE_THER,modele_sdaster)   
-  if MODELE_MECA != None:
-   self.type_sdprod(MODELE_MECA,modele_sdaster)  
-  if RESU_THER != None:
-   self.type_sdprod(RESU_THER,evol_ther)     
-  if CHAM_MATER != None:
-   self.type_sdprod(CHAM_MATER,cham_mater)     
-  if CHAR_THER != None: 
-    for m in CHAR_THER:
-      self.type_sdprod(m['CHARGE'],char_ther)
-  if CHAR_MECA != None: 
-    for m in CHAR_MECA:
-      self.type_sdprod(m['CHARGE'],char_meca)
-  return evol_noli
-
-
-MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC",
-                      op=macr_cabri_calc_ops,
-                      sd_prod=macr_cabri_calc_prod,
-                      fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie",
-                      reentrant='n',
-                      UIinfo={"groupes":("Outils métier",)},
-                      MAILLAGE   = SIMP(statut='o',typ=maillage_sdaster,),
-                      AFFE_MATERIAU = FACT(statut='o',max='**',
-                        regles=(UN_PARMI('TOUT','GROUP_MA',),),
-                        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
-                        GROUP_MA = SIMP(statut='f',typ='TXM',into=(
-                                                                  "BRIDE",
-                                                                  "GOUJON",
-                                                                  "ROND",
-                                                                  "ECROU",
-                                                                  "JOINT",) ),
-                        MATER    = SIMP(statut='o',typ=mater_sdaster),
-                        TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
-                      ),                      
-                      CHAM_MATER = SIMP(statut = 'f',typ=CO,),
-                      MODELE_THER= SIMP(statut = 'f',typ=CO,),
-                      
-                      DEFI_CHAR_THER = FACT(statut ='d',
-                        TEMP_INIT     = SIMP(statut='d',typ='R',defaut= 25.,),
-                        COEF_H_FLUI   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        COEF_H_AIR    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        TEMP_EXT_AIR  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        LIST_INST     = SIMP(statut='f',typ=listr8_sdaster),
-                      ),                      
-                      
-                      CHAR_THER  = FACT(statut = 'f',max=4,
-                        CHARGE    = SIMP(statut='o',typ=CO),
-                        TYPE      = SIMP(statut='o',typ='TXM',
-                                 into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON",
-                                       "BRIDE_JOINT"),)
-                                       ),
-
-                      RESU_THER  = SIMP(statut = 'f',typ=CO,),                                       
-
-                                       
-                      MODELE_MECA= SIMP(statut = 'f',typ=CO,),
-
-                      DEFI_CHAR_MECA   = FACT(statut='o',
-                        PRETENS    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        PRES_REP   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        EFFE_FOND  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                      ),                                                             
-
-                      CHAR_MECA  = FACT(statut = 'f',max=11,
-                        CHARGE    = SIMP(statut='o',typ=CO),
-                        TYPE      = SIMP(statut='o',typ='TXM',
-                                 into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT",
-                                       "BLOC_LAT_ALES","BLOC_LAT_NALES",
-                                       "PLAN_TUBE",
-                                       "PRES_FLU","EFFET_FOND",
-                                       "CONT_JOINT",
-                                       "DEFO_THER",
-                                       "SERR_ECROU_1","SERR_ECROU_2",),)
-                                       ),
-                     
-                      RELATION = SIMP(statut='f',typ='TXM',
-                                       into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),),
-                        
-                      SOLVEUR   = FACT(statut='d',
-                        METHODE  = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ),
-                        b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ",
-                           fr="Paramètres de la méthode multi frontale",
-                           RENUM           = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-                           NPREC           = SIMP(statut='d',typ='I',defaut=8),
-                           STOP_SINGULIER  = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-                           ),                 
-                      ),                                             
-                      INCREMENT = FACT(statut='f',
-                        regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
-                                EXCLUS('NUME_INST_FIN','INST_FIN'),),
-                        LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-                        EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
-                                 into=("CHRONOLOGIQUE",) ),                                 
-                        NUME_INST_INIT  =SIMP(statut='f',typ='I'),
-                        INST_INIT       =SIMP(statut='f',typ='R'),
-                        NUME_INST_FIN   =SIMP(statut='f',typ='I'),
-                        INST_FIN        =SIMP(statut='f',typ='R'),
-                        PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-                        SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-                        SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-                        COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-                        OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
-                        NOM_CHAM        =SIMP(statut='f',typ='TXM',),
-                        NOM_CMP         =SIMP(statut='f',typ='TXM',),
-                        VALE            =SIMP(statut='f',typ='R'),
-                      ),
-                      NEWTON          =FACT(statut='d',
-                        REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-                        PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
-                        MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-                        PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-                        REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
-                        EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-                      ),
-                      RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                into=("IMPLICITE",)),
-                      CONVERGENCE     =FACT(statut='d',
-                        regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
-                        SIGM_REFE       =SIMP(statut='f',typ='R'),
-                        EPSI_REFE       =SIMP(statut='f',typ='R'),
-                        FLUX_THER_REFE  =SIMP(statut='f',typ='R'),        
-                        RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
-                        RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-                        RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-                        ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-                        ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-                      ),
-                     );
-
-#& MODIF COMMANDE  DATE 07/02/2005   AUTEUR MABBAS M.ABBAS 
+MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
+                    fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique",
+                    reentrant='n',
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+         regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
+         BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
+         MATR_RIGI       =SIMP(statut='f',typ=matr_asse_depl_r ),
+         MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
+         MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
+         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),         
+         OPTION          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
+                          "DIAG_MASS") ),
+)  ;
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-
-from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops
-
-MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL",
-                      op=macr_cabri_mail_ops,
-                      sd_prod=maillage_sdaster,
-                      fr="maillage d'une jonction boulonnée de tuyauterie",
-                      reentrant='n',
-                      UIinfo={"groupes":("Outils métier",)},
-                      EXEC_MAILLAGE = FACT(statut='o',
-                        LOGICIEL      = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),),
-                        UNITE_DATG    = SIMP(statut = 'f',typ='I',defaut=70,),
-                        UNITE_MGIB    = SIMP(statut = 'f',typ='I',defaut=19,),
-                        NIVE_GIBI     = SIMP(statut = 'f',typ='I',defaut=10,
-                                          into = (3,4,5,6,7,8,9,10,11),
-                                            ),
-                                          ),
-                      RAFF_MAILLAGE   = FACT(statut = 'd',
-                        NB_RADIAL    = SIMP(statut = 'f',typ='I',defaut=2,),
-                        NB_CIRCONF   = SIMP(statut = 'f',typ='I',defaut=3,),
-                        NB_VERTICAL  = SIMP(statut = 'f',typ='I',defaut=6,),
-                        NB_ALESAGE   = SIMP(statut = 'f',typ='I',defaut=5,),
-                                          ),
-                      VERI_MAIL     = FACT(statut='d',
-                        VERIF         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),  
-                        APLAT         = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
-                                          ),                                          
-                      GEOM_BRID     = FACT(statut = 'o',
-                        NORME         = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),),
-                        b_bride_iso   = BLOC(condition = "NORME == 'OUI'",
-                          TYPE           = SIMP(statut='o',typ='TXM',
-                                                into=('A','AA','B','B1','C','D','D1','E','F',
-                                                      'FF','G','GG','H','H1','I','J','J1',
-                                                      'K','L','L1','M','N','O','P','S','T','W'), 
-                                               ),
-                                            ),
-                        b_bride_niso  = BLOC(condition = "NORME == 'NON'",
-                          TUBU_D_EXT     = SIMP(statut='o',typ='R',),
-                          TUBU_H         = SIMP(statut='o',typ='R',),
-                          BRID_D_EXT     = SIMP(statut='o',typ='R',),
-                          BRID_D_INT     = SIMP(statut='o',typ='R',),
-                          BRID_H         = SIMP(statut='o',typ='R',),
-                          BRID_D_CONGE   = SIMP(statut='o',typ='R',),
-                          BRID_R_CONGE   = SIMP(statut='o',typ='R',),
-                          BRID_D_EPAUL   = SIMP(statut='o',typ='R',),
-                          BRID_H_EPAUL   = SIMP(statut='o',typ='R',),
-                          BRID_D_ALESAG  = SIMP(statut='o',typ='R',),
-                          BRID_P_ALESAG  = SIMP(statut='o',typ='R',),
-                          BRID_H_ALESAG  = SIMP(statut='o',typ='R',),
-                          GOUJ_N_GOUJON  = SIMP(statut='o',typ='I',),
-                          GOUJ_D_GOUJON  = SIMP(statut='o',typ='R',),
-                          GOUJ_E_FILET   = SIMP(statut='o',typ='R',),
-                          GOUJ_D_RONDEL  = SIMP(statut='o',typ='R',),
-                          GOUJ_E_RONDEL  = SIMP(statut='o',typ='R',),
-                          GOUJ_D_ECROU   = SIMP(statut='o',typ='R',),
-                          GOUJ_E_ECROU   = SIMP(statut='o',typ='R',),
-                          ETAN_E_JOINT   = SIMP(statut='o',typ='R',),
-                                            ),
-                                         ),
-                      IMPRESSION    = FACT(statut='d',
-                        UNITE          = SIMP(statut='f',typ='I'),
-                        FORMAT         = SIMP(statut='f',typ='TXM',defaut="ASTER",    
-                                              into=("ASTER","CASTEM","IDEAS"),
-                                             ),
-                        b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'",
-                          NIVE_GIBI      = SIMP(statut='f',typ='I',defaut=10,into=(3,10),),
-                                            ),
-                        b_impr_ideas  = BLOC(condition = "FORMAT == 'IDEAS'",
-                          VERSION        = SIMP(statut='f',typ='I',defaut=5,into=(4,5),),
-                                            ),
-                                          ),
-                     );
-
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f',
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+                    fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration",
+        regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'),
+                ENSEMBLE('DEFINITION','EXTERIEUR'),),
+         DEFINITION      =FACT(statut='f',
+           MODELE          =SIMP(statut='o',typ=modele_sdaster),
+           CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
+           CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
+           CHAR_MACR_ELEM  =SIMP(statut='f',typ=char_meca),
+           INST            =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
+           NMAX_CAS        =SIMP(statut='f',typ='I',defaut=10),
+           NMAX_CHAR       =SIMP(statut='f',typ='I',defaut=10),
+         ),
+         EXTERIEUR       =FACT(statut='f',
+           regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
+           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+         ),
+         RIGI_MECA       =FACT(statut='f',
+         ),
+         MASS_MECA       =FACT(statut='f',
+         ),
+         CAS_CHARGE      =FACT(statut='f',max='**',
+           NOM_CAS         =SIMP(statut='o',typ='TXM'),
+           SUIV            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+           CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+           INST            =SIMP(statut='f',typ='R',defaut=0.E+0),
+         ),
+)  ;
+#& MODIF COMMANDE  DATE 16/06/2004   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
@@ -18295,143 +16334,93 @@ MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL",
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-
-from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops
-
-MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=tabl_cara_geom,
-                       reentrant='n',
-          UIinfo={"groupes":("Modélisation",)},
-          fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
-          regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
-                  EXCLUS('SYME_Y','GROUP_MA_BORD'),),
-                 
-          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 20 ),  
-          ORIG_INER       =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
-                                fr="Point par rapport auquel sont calculées les inerties"),  
-          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-         
-          SYME_X          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"),
-          SYME_Y          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"),
-         
-          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-          fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
-          
-          GROUP_MA_BORD   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-                               fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
-         
-               b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None",
-                            fr=" calcul des carac. mecaniques",
-
-                    NOEUD           =SIMP(statut='f',typ=no,max='**',
-                    fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
-                    GROUP_MA_INTE   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-                    fr="groupes de mailles linéiques bordant des trous dans la section"),
-                    ),
-                    
-               b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
-                           fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
-                            regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
-                            LONGUEUR        =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"),  
-                            MATERIAU        =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"),
-                            LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
-                            fr="type de conditions aux limites sur le plancher supérieur" ),
-                              ), 
-                    )
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-
-from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops
+# RESPONSABLE D6BHHAM A.M.DONORE
+#
+IMPR_OAR =PROC(nom="IMPR_OAR",op= 40,
+               fr="Impression au format OAR",
+               UIinfo={"groupes":("Impression",)},
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem                          ),
+         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster                        ),
+         MODELE          =SIMP(statut='o',typ=modele_sdaster                          ),
+         MAILLE          =SIMP(statut='o',typ=ma  ,validators=NoRepeat(),max=2   ),
+         NOEUD           =SIMP(statut='o',typ=no  ,validators=NoRepeat()         ),
 
-def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args):
-  self.type_sdprod(RESULTAT,AsType(RESU_INIT))   
-  self.type_sdprod(MAILLAGE,maillage_sdaster)
-  return None
+         CHARGE           =FACT(statut='o',max='**',
 
+              NUM_CHAR        =SIMP(statut='o',typ='I'),
+              TEMP_NOEUD      =SIMP(statut='f',typ='R',defaut=20.),
+              TYPE            =SIMP(statut='f',typ='TXM',defaut="DILA",
+                                 into=("POIDS","DILA","SEISME","DEPL","EFFO","STRATIF","CONDITIONNEL","COMBINAISON") ),
+              NATURE          =SIMP(statut='f',typ='TXM',defaut="PRIMAIRE",
+                                 into=("PRIMAIRE","SECONDAIRE","TOTAL") ),
+              SIGNE           =SIMP(statut='f',typ='TXM',defaut="S",
+                                 into=("S","NS") ),
+              RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),# CO() sd a creer !!!
+           ),
 
-MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n',
-             UIinfo={"groupes":("Post traitements",)},
-             fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation",
-                    
 
-             # SD résultat ,modèle et champs à "éclater" :
-             RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",),
-             MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                                   into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
-                                   
-             # paramètres numériques de la commande :
-             SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
-             TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
-             
-             # concepts produits par la commande :
-             RESULTAT        =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"),
-             MAILLAGE        =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"),
-                     
-             # Sélection éventuelle d'un sous-ensemble des éléments à visualiser :           
-             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             
-             # Sélection des numéros d'ordre :
-             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
-             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-             INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-             LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
-            )
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+           UNITE           =SIMP(statut='f',typ='I',defaut=38),  
+           INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+) ;
+#& MODIF COMMANDE  DATE 25/04/2006   AUTEUR CIBHHPD L.SALMONA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
 #
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
-MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
-                    fr="Définition d'un macro élément pour analyse modale ou harmonique par sous structuration dynamique",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
-         BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
-         MATR_RIGI       =SIMP(statut='f',typ=matr_asse_depl_r ),
-         MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
-         MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
-         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),         
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
-                          "DIAG_MASS") ),
+
+DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='n',
+            UIinfo={"groupes":("Modélisation",)},
+               fr="Définition des caratéristiques d'une fissure avec X-FEM",
+
+    MODELE                =SIMP(statut='o',typ=modele_sdaster),
+    DEFI_FISS             =FACT(statut='o',max=01,
+      regles              =(UN_PARMI('GROUP_MA_FISS','FONC_LT'),
+                            ENSEMBLE('FONC_LT','FONC_LN'),
+                            ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')),
+      FONC_LT             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
+      FONC_LN             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
+      GROUP_MA_FISS       =SIMP(statut='f',typ=grma,max=01),
+      GROUP_MA_FOND       =SIMP(statut='f',typ=grma),
+    ),
+    GROUP_MA_ENRI         =SIMP(statut='o',typ=grma,max=01),
+    RAYON_ENRI            =SIMP(statut='f',typ='R',defaut=0.E+0),
+    ORIE_FOND             =FACT(statut='f',max=01,
+      PFON_INI            =SIMP(statut='o',typ='R',max=03),
+      VECT_ORIE           =SIMP(statut='o',typ='R',max=03),
+      PT_ORIGIN           =SIMP(statut='o',typ='R',max=03),
+    ),
+    CONTACT               =FACT(statut='f',max=01,
+      NOM_CHAM            =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",) ),
+      FROTTEMENT          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
+      INTEGRATION         =SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ),
+      COEF_REGU_CONT      =SIMP(statut='f',typ='R',defaut=100.E+0),
+      MODL_AXIS           =SIMP(statut='f',typ='TXM',into=("NON",)),
+      ITER_CONT_MAXI      =SIMP(statut='f',typ='I',defaut=30),
+      CONTACT_INIT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
+      ALGO_LAGR           =SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ),
+      COEF_ECHELLE        =SIMP(statut='f',typ='R',defaut=1.E+6),
+      b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramères du frottement de Coulomb",
+           COULOMB        =SIMP(statut='o',typ='R',),
+           ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
+           COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
+           SEUIL_INIT     =SIMP(statut='f',typ='R',defaut=0.E+0),),
+    ),
+    INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 07/11/2005   AUTEUR GNICOLAS G.NICOLAS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -18449,110 +16438,96 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,reentrant='f',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-                    fr="Définition d'un macro-élément pour l'analyse statique par sous-structuration",
-        regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'),
-                ENSEMBLE('DEFINITION','EXTERIEUR'),),
-         DEFINITION      =FACT(statut='f',
-           MODELE          =SIMP(statut='o',typ=modele_sdaster),
-           CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-           CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-           CHAR_MACR_ELEM  =SIMP(statut='f',typ=char_meca),
-           INST            =SIMP(statut='f',typ='R',defaut=0.0E+0 ),
-           NMAX_CAS        =SIMP(statut='f',typ='I',defaut=10),
-           NMAX_CHAR       =SIMP(statut='f',typ='I',defaut=10),
-         ),
-         EXTERIEUR       =FACT(statut='f',
-           regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-         ),
-         RIGI_MECA       =FACT(statut='f',
-         ),
-         MASS_MECA       =FACT(statut='f',
-         ),
-         CAS_CHARGE      =FACT(statut='f',max='**',
-           NOM_CAS         =SIMP(statut='o',typ='TXM'),
-           SUIV            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-           CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-           INST            =SIMP(statut='f',typ='R',defaut=0.E+0),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
 # RESPONSABLE GNICOLAS G.NICOLAS
 
-from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops
+from Macro.macr_adap_mail_ops import macr_adap_mail_ops
 
-MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops,
-                     docu="U7.04.41",UIinfo={"groupe":("Impression",)},
-                     fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.",
-                     ang="Print values for the fiability software",
+MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops,
+                     docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)},
+                     fr="Donner des informations sur un maillage.",
+                     ang="To give information about a mesh.",
 #
 # 1. Le niveau d'information
 #
-   INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+         INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 #
-# 2. Impression de la valeur de la cible
+# 2. Version de HOMARD
 #
-# 2.1. ==> La table contenant la valeur à imprimer
+         VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_7",
+                               into=("V7_7", "V7_N", "V7_N_PERSO", "V8_N"),
+                           fr="Version de HOMARD",
+                           ang="HOMARD release"),
 #
-   TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster,
-                 fr="Table contenant la valeur cible.",
-                 ang="Table which includes the target value."),
+# 3. Langue des messages issus de HOMARD
 #
-# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table
+         LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
+                               into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
+                           fr="Langue des messages issus de HOMARD.",
+                           ang="Language for HOMARD messages." ),
 #
-   NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM',
-                    fr="Nom du paramètre associé à la valeur cible.",
-                    ang="Name of the parameter connected to the target value."),
+# 4. Gestion des éléments autres que des simplexes
+#       0 : autres elements refusés
+#       1 : analyse exclusivement sur les simplexes, mais autres éléments acceptés
+#       2 : tous (defaut)
 #
-# 3. Impressions des valeurs des éventuels gradients
+         NON_SIMPLEXE   = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2),
+                          fr="Acceptation d'éléments quad, hexa et penta",
+                          ang="quad, hexa and penta elements allowed" ),
 #
-   GRADIENTS = FACT(statut='f',min=1,max='**',
+# 5. Le nom du maillage a analyser
 #
-# 3.1. ==> La table contenant la valeur à imprimer
+         MAILLAGE       = SIMP(statut='o',typ=maillage_sdaster,
+                           fr="Maillage à analyser.",
+                           ang="Mesh to be checked." ),
 #
-       TABLE = SIMP(statut='o',typ=table_sdaster,
-                    fr="Table contenant le gradient.",
-                    ang="Table which includes the gradient."),
+# 6. Suivi d'une frontiere
 #
-# 3.2. ==> Le paramètre sensible
+         MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
+                           fr="Maillage de la frontiere à suivre",
+                           ang="Boundary mesh" ),
 #
-       PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom),
-                       fr="Paramètre sensible associé au gradient.",
-                       ang="Sensitivity parameter connected to the gradient."),
+         b_frontiere   =BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
+                           fr="Groupes définissant la frontière",
+                           ang="Groups which define the boundary",
+                           GROUP_MA       = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
+                           ) ,
 #
-# 3.3. ==> Le nom du paramètre associé au gradient dans cette table
+# 7. Les options ; par defaut, on ne fait que les nombres
+# 7.1. Nombre de noeuds et elements
 #
-       NOM_PARA = SIMP(statut='o',typ='TXM',
-                       fr="Nom du paramètre associé au gradient.",
-                       ang="Name of the parameter connected to the gradient."),
+         NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                          fr="Nombre de noeuds et éléments du maillage",
+                          ang="Number of nodes and elements in the mesh" ),
 #
-         ),
+# 7.2. Determination de la qualite des elements du maillage
 #
-);
-#& MODIF COMMANDE  DATE 04/10/2005   AUTEUR REZETTE C.REZETTE 
+         QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                          fr="Qualité du maillage",
+                          ang="Mesh quality" ),
+#
+# 7.3. Connexite du maillage
+#
+         CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                          fr="Connexité du maillage.",
+                          ang="Mesh connexity." ),
+#
+# 7.4. Taille des sous-domaines du maillage
+#
+         TAILLE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                          fr="Tailles des sous-domaines du maillage.",
+                          ang="Sizes of mesh sub-domains." ),
+#
+# 7.5. Controle de la non-interpenetration des elements
+#
+         INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                          fr="Controle de la non interpénétration des éléments.",
+                          ang="Overlapping checking." ),
+#
+)  ;
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
@@ -18567,524 +16542,141 @@ MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
+# RESPONSABLE ASSIRE A.ASSIRE
 
-from Macro.macr_fiabilite_ops import macr_fiabilite_ops
+from Macro.calc_precont_ops import calc_precont_ops
 
-#
-#====
-# 1. Le retour : une liste de rééls.
-#====
-#
-def macr_fiabilite_prod ( self , **args ):
-  return listr8_sdaster
-#
-#====
-# 2. L'entete
-#====
-#
-MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops,
-                         docu="U7.03.31",UIinfo={"groupe":("Post traitements",)},
-                         sd_prod=macr_fiabilite_prod,
-                         fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).",
-                         ang="Fiability mechanics.",
-#
-#====
-# 3. Le niveau d'information
-#====
-#
-   INFO           = SIMP(statut="f",typ="I",defaut=1,into=(1,2)),
-#
-#====
-# 4. Nom et Version du logiciel de fiabilité
-#====
-#
-   LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO",
-                   into=("MEFISTO",),
-                   fr="Nom du logiciel de fiabilité.",
-                   ang="Fiability software name."),
-#
-   VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2",
-                  into=("V3_2", "V3_N"),
-                  fr="Version du logiciel de fiabilité.",
-                  ang="Fiability software release."),
-#
-#====
-# 5. Les entrees-sorties du calcul ASTER déterministe
-#====
-#
-# 5.1. ==> Le jeu de commandes déterministe
-#
-   UNITE_ESCL = SIMP(statut="o",typ="I",
-                     fr="Unité logique associée aux commandes du calcul ASTER déterministe.",
-                     ang="Logical unit for the commands of the ASTER deterministic calculation."),
-#
-# 5.2. ==> Le destin des messages produits par ASTER
-#
-   MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER",
-                        into=("AUCUN", "DERNIER", "TOUS"),
-                        fr="Quels messages ASTER récupérer.",
-                        ang="Which ASTER messages must be kept."),
-#
-#====
-# 6. Options
-#====
-# 6.1. ==> Générales
-#
-# 6.1.1. ==> La valeur du seuil
-#
-   SEUIL = SIMP(statut="o",typ="R",max=1,
-                fr="Le seuil de défaillance.",
-                ang="Failure threshold."),
-#
-# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que
-#            la défaillance a lieu au dessus d'un seuil maximum ou
-#            en dessous d'un seuil minimum
-#
-   SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1,
-                     into=("MINIMUM","MAXIMUM"),
-                     fr="Que faut-il ne pas dépasser : un maximum ou un minimum.",
-                     ang="What is the failure threshold : maximum or minimum."),
-#
-# 6.2. ==> Pour MEFISTO
-#
-### en attente de résolution de AL 2004-006 (1/2)   b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'",
-#
-# 6.2.1. ==> Pilotage de la recherche du point de conception
-#
-     RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI",
-                            into=("OUI","NON"),
-                            fr="Pour trouver le point de conception.",
-                            ang="To find the design point."),
-#
-     b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'",
-#
-       EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                        fr="Précision du test d'arret sur les points itératifs dans l'espace standard.",
-                        ang="Precision of stop test for iterative points in standard space."),
-#
-       EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                        fr="Précision du test d'arret sur la proximité de la surface d'état limite.",
-                        ang="Precision of stop test for limit state surface."),
-#
-       TAU       = SIMP(statut="f",typ="R",defaut=5.0E-1,
-                        fr="Paramètre de la méthode de minimisation.",
-                        ang="Parameter for the minimization method."),
-#
-       OMEGA     = SIMP(statut="f",typ="R",defaut=1.0E-4,
-                        fr="Paramètre de la méthode de minimisation.",
-                        ang="Parameter for the minimization method."),
-#
-       ITER_MAX  = SIMP(statut="f",typ="I",defaut=50,
-                        fr="Nombre maximum d'itérations.",
-                        ang="Maximum number of iterations."),
-     ),
-#
-# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance
-#
-     METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI",
-                         into=("OUI","NON"),
-                         fr="Recherche de la probabilité de défaillance avec la méthode FORM.",
-                         ang="Research of failure probability with FORM method."),
-#
-     METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON",
-                         into=("OUI","NON"),
-                         fr="Recherche de la probabilité de défaillance avec la méthode SORM.",
-                         ang="Research of failure probability with SORM method."),
-#
-     TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON",
-                              into=("OUI","NON"),
-                              fr="Recherche de la probabilité de défaillance avec le tirage d'importance.",
-                              ang="Research of failure probability with ."),
-#
-     b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'",
-#
-       NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3,
-                            fr="Nombre de simulations pour le tirage d'importance.",
-                            ang="Number of simulation for."),
-#
-     ),
-#
-# 6.2.3. ==> Création d'une surface de réponse polynomiale
-#
-     POLYNOME_TAYLOR   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),),
-     HGRAD             = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                              fr="Pas incrémental pour le calcul des gradients.",
-                              ang="Step for calculation of gradients."),
-     HHESS             = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                              fr="Pas incrémental pour le calcul des dérivées secondes.",
-                              ang="Step for calculation of second derivatives."),
-#
-# 6.2.4. ==> Recherche d'un plan d'expérience
-#
-     PLAN_EXPERIENCE   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                              fr="Construction d'un plan d'expérience.",
-                              ang="Construction of an experiment plan."),
-#
-     b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'",
-#
-       ALPHA         = SIMP(statut="f",typ="R",defaut=2.0E-1,
-                            fr="Plan d'expérience : maille du plan de type composite centré.",
-                            ang="Experiment plane : mesh centered composite."),
-#
-       BETA          = SIMP(statut="f",typ="R",defaut=4.0E-1,
-                            fr="Plan d'expérience : maille du plan de type factoriel.",
-                            ang="Experiment plane : mesh factor."),
-#
-     ),
-#
-# 6.2.5. ==> Les tests
-# 6.2.5.1. ==> Test de la sphere
-#
-     T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                     fr="Test de la sphère.",
-                     ang="Sphere test."),
-#
-     b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'",
-#
-       METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE",
-                           into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"),
-                           fr="Type de méthode.",
-                           ang="Method."),
-#
-       NB_POINT     = SIMP(statut="f",typ="I",max=1,defaut=60,
-                           fr="Nombre de points de la sphere.",
-                           ang="Number of points over the sphere.")
-     ),
-#
-# 6.2.5.2. ==> Test du maximum fort
-#
-     T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                           fr="Test du maximum fort.",
-                           ang="Strong maximum test."),
-#
-     b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'",
-#
-       COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0,
-                      fr="Cosinus de l'angle d'exclusion.",
-                      ang="Cosine of angle of exclusion."),
-#
-       DPROB   = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1,
-                      fr="Fraction d'iso-densité de probabilité de défaillance.",
-                      ang="Fraction.")
-#
-     ),
-#
-# 6.2.5.3. ==> Test du hessien
-#
-     T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                      fr="Test du hessien.",
-                      ang="Hessian test."),
-#
-# 6.2.6. ==> Les correlations entre les variables
-#
-     MATRICE = SIMP(statut="f",typ="R",max="**",
-                    fr="Matrice de corrélation entre les variables.",
-                    ang="Correlation matrix."), 
-#
-### en attente de résolution de AL 2004-006 (2/2)   ),
-#
-#====
-# 7. Definition des paramètres
-#====
-#
-   VARIABLE = FACT(statut="o",min=1,max="**",
-#
-# 7.1. ==> Nom de la variable
-#
-       NOM = SIMP(statut="o",typ="TXM",
-                  fr="Nom de la variable, identique au nom de concept PARA_SENSI.",
-                  ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."),
-#
-# 7.2. ==> Loi de distribution
-#
-       LOI = SIMP(statut="o",typ="TXM",
-                  into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"),
-                  fr="Choix de la loi",
-                  ang="Law."),
-#
-# 7.2.1. ==> Loi normale
-#
-       b_normale=BLOC(condition="LOI=='NORMALE'",
-#
-         VALE_MOY   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur moyenne.",
-                               ang="Mean value."),
-#
-         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
-                               fr="Ecart type.",
-                               ang="Standard deviation."),
-#
-       ),
-#
-# 7.2.2. ==> Loi lognormale
-#
-       b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
-#
-         VALE_MIN       = SIMP(statut="o",typ="R",max=1,
-                                   fr="Valeur minimale.",
-                                   ang="Minimal value."),
-#
-         VALE_MOY       = SIMP(statut="f",typ="R",max=1,
-                                   fr="Valeur moyenne dans l'espace de la loi normale.",
-                                   ang="Mean value in the space of the normal law."),
-#
-         ECART_TYPE     = SIMP(statut="f",typ="R",max=1,
-                                   fr="Ecart type dans l'espace de la loi normale.",
-                                   ang="Standard deviation in the space of the normal law."),
-#
-         VALE_MOY_PHY   = SIMP(statut="f",typ="R",max=1,
-                                   fr="Valeur moyenne dans l'espace physique.",
-                                   ang="Mean value in the physical space."),
-#
-         ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1,
-                                   fr="Ecart type dans l'espace physique.",
-                                   ang="Standard deviation in the physical space."),
-#
-         regles=(AU_MOINS_UN("VALE_MOY"  ,"VALE_MOY_PHY"),
-                 AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"),
-                 EXCLUS  ("VALE_MOY"  ,"VALE_MOY_PHY"),
-                 EXCLUS  ("VALE_MOY"  ,"ECART_TYPE_PHY"),
-                 EXCLUS  ("ECART_TYPE","VALE_MOY_PHY"),
-                 EXCLUS  ("ECART_TYPE","ECART_TYPE_PHY")),
-#
-       ),
-#
-# 7.2.3. ==> Loi uniforme
-#
-       b_uniforme=BLOC(condition="LOI=='UNIFORME'",
-#
-         VALE_MIN = SIMP(statut="o",typ="R",max=1,
-                             fr="Valeur minimale.",
-                             ang="Minimal value."),
-#
-         VALE_MAX = SIMP(statut="o",typ="R",max=1,
-                             fr="Valeur maximale.",
-                             ang="Maximal value."),
-#
-       ),
-#
-# 7.2.4. ==> Loi normale tronquée
-#
-       b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'",
-#
-         VALE_MOY   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur moyenne de la loi normale complète.",
-                               ang="Mean value for the entire normal law."),
-#
-         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
-                               fr="Ecart type de la loi normale complète.",
-                               ang="Standard deviation for the entire normal law."),
-#
-         VALE_MIN   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur minimale.",
-                               ang="Minimal value."),
-#
-         VALE_MAX   = SIMP(statut="o",typ="R.",max=1,
-                               fr="Valeur maximale.",
-                               ang="Maximal value."),
-#
-       ),
-#
-# 7.3. ==> Paramètres de calcul
-# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja
-#
-       regles=(EXCLUS("POINT_INI","POINT_CONCEPT"),
-               EXCLUS("POINT_REF","POINT_CONCEPT"),),
-#
-# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme.
-#            Si on ne le fait pas, le programme prendra la valeur moyenne.
-#
-       POINT_INI = SIMP(statut="f",typ="R",max=1,
-                          fr="Point de démarrage de l'algorithme itératif.",
-                          ang="Initial point for iterative process."),
-#
-# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser.
-#            Si on ne le fait pas, le programme prendra la valeur moyenne.
-#
-       POINT_REF = SIMP(statut="f",typ="R",max=1,
-                          fr="Point de référence de l'algorithme itératif.",
-                          ang="Reference point for iterative process."),
-#
-# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception
-#
-       POINT_CONCEPT = SIMP(statut="f",typ="R",max=1,
-                              fr="Point de conception.",
-                              ang="Design point."),
-#
-# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre
-#
-       GRADIENT = SIMP(statut="o",typ="TXM",max=1,
-                           into=("OUI","NON"),
-                           fr="ASTER calcule directement le gradient.",
-                       ang="ASTER computes the gradient for this parameter."),
-
-       b_gradient=BLOC(condition="GRADIENT=='NON'",
-         INCREMENT = SIMP(statut="o",typ="R",max=1,
-                             fr="Incrément dans la direction.",
-                         ang="Direction increment."),
-       ),
 
-   ),
-#
-);
-#& MODIF COMMANDE  DATE 07/11/2005   AUTEUR GNICOLAS G.NICOLAS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
+# ===========================================================================
+#           CATALOGUE DE LA MACRO "CALC_PRECONT"
+#           -----------------------------------------
+# USAGE :
+# 
+#  
+# ===========================================================================
 
-from Macro.macr_adap_mail_ops import macr_adap_mail_ops
+CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli,
+                   fr="Imposer la tension définie par le BPEL dans les cables",
+                   reentrant='f',UIinfo={"groupe":("Modélisation",)},
+         reuse =SIMP(statut='f',typ='evol_noli'),
+         MODELE           =SIMP(statut='o',typ=modele_sdaster),
+         CHAM_MATER       =SIMP(statut='o',typ=cham_mater),
+         CARA_ELEM        =SIMP(statut='o',typ=cara_elem),
+         CABLE_BP         =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'),
+         CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'),
+         INCREMENT        =FACT(statut='o',
+           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
+           INST_INIT       =SIMP(statut='f',typ='R'),
+           INST_FIN        =SIMP(statut='f',typ='R'),
+           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
+           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
+           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
+         ),
 
-MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops,
-                     docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)},
-                     fr="Donner des informations sur un maillage.",
-                     ang="To give information about a mesh.",
-#
-# 1. Le niveau d'information
-#
-         INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. Version de HOMARD
-#
-         VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_7",
-                               into=("V7_7", "V7_N", "V7_N_PERSO", "V8_N"),
-                           fr="Version de HOMARD",
-                           ang="HOMARD release"),
-#
-# 3. Langue des messages issus de HOMARD
-#
-         LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
-                               into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
-                           fr="Langue des messages issus de HOMARD.",
-                           ang="Language for HOMARD messages." ),
-#
-# 4. Gestion des éléments autres que des simplexes
-#       0 : autres elements refusés
-#       1 : analyse exclusivement sur les simplexes, mais autres éléments acceptés
-#       2 : tous (defaut)
-#
-         NON_SIMPLEXE   = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2),
-                          fr="Acceptation d'éléments quad, hexa et penta",
-                          ang="quad, hexa and penta elements allowed" ),
-#
-# 5. Le nom du maillage a analyser
-#
-         MAILLAGE       = SIMP(statut='o',typ=maillage_sdaster,
-                           fr="Maillage à analyser.",
-                           ang="Mesh to be checked." ),
-#
-# 6. Suivi d'une frontiere
-#
-         MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
-                           fr="Maillage de la frontiere à suivre",
-                           ang="Boundary mesh" ),
-#
-         b_frontiere   =BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
-                           fr="Groupes définissant la frontière",
-                           ang="Groups which define the boundary",
-                           GROUP_MA       = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**' ),
-                           ) ,
-#
-# 7. Les options ; par defaut, on ne fait que les nombres
-# 7.1. Nombre de noeuds et elements
-#
-         NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
-                          fr="Nombre de noeuds et éléments du maillage",
-                          ang="Number of nodes and elements in the mesh" ),
-#
-# 7.2. Determination de la qualite des elements du maillage
-#
-         QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
-                          fr="Qualité du maillage",
-                          ang="Mesh quality" ),
-#
-# 7.3. Connexite du maillage
-#
-         CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
-                          fr="Connexité du maillage.",
-                          ang="Mesh connexity." ),
-#
-# 7.4. Taille des sous-domaines du maillage
-#
-         TAILLE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
-                          fr="Tailles des sous-domaines du maillage.",
-                          ang="Sizes of mesh sub-domains." ),
-#
-# 7.5. Controle de la non-interpenetration des elements
-#
-         INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
-                          fr="Controle de la non interpénétration des éléments.",
-                          ang="Overlapping checking." ),
-#
-)  ;
-#& MODIF COMMANDE  DATE 04/07/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops
-
-MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster,
-                       reentrant='n',
-            UIinfo={"groupes":("Outils métier",)},
-            fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies"
-             +" par deux points et un intervalle",
-         RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ),
-# extraction des résultats
-         b_meca        =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique",
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ),  
-         ),
-         b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='TEMP' ),  
-         ),
-         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=25),  
-         MODELE          =SIMP(statut='f',typ=modele_sdaster ),
-         LIGN_COUPE     =FACT(statut='o',max='**',
-           regles=(UN_PARMI('NB_POINTS','GROUP_NO'),),
-           INTITULE        =SIMP(statut='f',typ='TXM',),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
-           NB_POINTS       =SIMP(statut='f',typ='I'),
-           b_nbpts = BLOC(condition = "NB_POINTS != None",
-              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),  
-              COOR_EXTR       =SIMP(statut='o',typ='R',min=2,max=3),
-              VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),), 
+         NEWTON          =FACT(statut='d',
+            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
+            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
+            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
+            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
+            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
+            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+          ),
+         RECH_LINEAIRE   =FACT(statut='f',
+           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
+           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
          ),
-)  ;
+          CONVERGENCE     =FACT(statut='d',
+            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
+            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
+            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
+            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
+            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
+          ),
+          ETAT_INIT       =FACT(statut='f',
+            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
+                    EXCLUS('EVOL_NOLI','DEPL',),
+                    EXCLUS('EVOL_NOLI','SIGM',),
+                    EXCLUS('EVOL_NOLI','VARI',),
+                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
+                    EXCLUS('NUME_ORDRE','INST'), ),
+            DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
+            SIGM            =SIMP(statut='f',typ=(carte_sdaster,cham_elem)),
+            VARI            =SIMP(statut='f',typ=cham_elem),
+            VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
+            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+            NUME_ORDRE      =SIMP(statut='f',typ='I'),
+            INST            =SIMP(statut='f',typ='R'),
+            PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+            NUME_DIDI       =SIMP(statut='f',typ='I'),
+            INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
+          ),
+          SOLVEUR         =FACT(statut='d',
+            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+            b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+              RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+            ),
+            b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+            ),
+            b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+              NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+              STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
+            ),
+            b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+              PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+              NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+              RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+              RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+              NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+            ),
+            SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+          ),
+            SOLV_NON_LOCAL  =FACT(statut='f',
+              METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+              b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+                RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+              ),
+              b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+                RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+              ),
+              b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                     fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+                NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+              ),
+              b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+                PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+                NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+                RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+                NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+              ),
+              EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
+            ),
+            LAGR_NON_LOCAL  =FACT(statut='f',
+              ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
+              RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
+              RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
+              R               =SIMP(statut='f',typ='R',defaut= 1000.),
+              ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
+            ),
+          PARM_THETA      =SIMP(statut='f',typ='R'
+                               ,defaut= 1. ),
+          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
 
+          EXCIT           =FACT(statut='o',max='**',
+            CHARGE          =SIMP(statut='o',typ=char_meca),
+          ),
 
-#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
+         COMP_INCR       =C_COMP_INCR(),
+  )  ;
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
@@ -19099,33 +16691,39 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-   
-from Macro.macr_recal_ops import macr_recal_ops
-
-def macr_recal_prod(self,**args ):
-  return listr8_sdaster
 
-MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,
-            UIinfo={"groupes":("Résultats et champs",)},
-                      sd_prod=macr_recal_prod,
-                      fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux"
-                        +" ou sur d'autres résultats de calculs",
-         UNITE_ESCL      =SIMP(statut='o',typ='I'),
-         RESU_EXP        =SIMP(statut='o',typ=assd,max='**'),
-         POIDS           =SIMP(statut='f',typ=assd,max='**'),
-         RESU_CALC       =SIMP(statut='o',typ=assd,max='**'),
-         LIST_PARA       =SIMP(statut='o',typ=assd,max='**'),
-         ITER_MAXI       =SIMP(statut='f',typ='I',defaut=10),
-         RESI_GLOB_RELA  =SIMP(statut='f',typ='R',defaut=1.E-3),
-         UNITE_RESU      =SIMP(statut='f',typ='I',defaut=91),
-         PARA_DIFF_FINI  =SIMP(statut='f',typ='R',defaut=0.001),
-         GRAPHIQUE       =FACT(statut='d',
-           UNITE           =SIMP(statut='f',typ='I',defaut=90),
-           FORMAT          =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")),
-           INTERACTIF      =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ),
+DEFI_CABLE_OP=OPER(nom="DEFI_CABLE_OP",op= 180,sd_prod=cabl_precont,reentrant='n',
+            fr="Définit les profils initiaux de tension d'une structure en béton le long des cables de précontrainte"
+               +" (utilisée par la macro DEFI_CABLE_BP)",
+            UIinfo={"groupes":("Modélisation",)},
+         MODELE          =SIMP(statut='o',typ=modele_sdaster ),
+         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
+         CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
+         GROUP_MA_BETON  =SIMP(statut='o',typ=grma,max='**'),
+         DEFI_CABLE      =FACT(statut='o',max='**',
+           regles=(UN_PARMI('MAILLE','GROUP_MA'),
+                   UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
+           MAILLE          =SIMP(statut='f',typ=ma,min=2,validators=NoRepeat(),max='**'),
+           GROUP_MA        =SIMP(statut='f',typ=grma),
+           NOEUD_ANCRAGE   =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=2),
+           GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
+           GROUP_NO_FUT    =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
+         ),
+         TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',min=2,max=2,into=("ACTIF","PASSIF") ),
+         TENSION_INIT    =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
+         RECUL_ANCRAGE   =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
+         RELAXATION      =FACT(statut='f',min=0,
+           R_J             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
+         ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
+         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
+         CONE            =FACT(statut='f',min=0,
+           RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
+           LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0, defaut=0.E+0 ),  
+           PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
+         ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 04/04/2006   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19181,15 +16779,16 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro
                                        "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA",
                                        "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",
                                        "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI",
-                                       "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA",
-                                       "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL",
-                                       "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
+                                       "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERZ1_ELEM_SIGM","SIGM_NOZ2_ELGA",
+                                       "ERZ2_ELEM_SIGM","VNOR_ELEM_DEPL","ERRE_ELNO_ELEM","SIRE_ELNO_DEPL",
+                                       "ERRE_ELEM_SIGM","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",
+                                       "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
                                        "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",
                                        "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ),
            NUME_COUCHE     =SIMP(statut='f',typ='I',defaut=1),
            NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
            SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
-           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r),
+           VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
          ),
          SOLVEUR         =FACT(statut='d',
            METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
@@ -19212,12 +16811,81 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE D6BHHJP J.P.LEFEBVRE
+def DEFIC_prod(self,ACTION,UNITE,**args):
+  if ACTION == "ASSOCIER" or ACTION == "RESERVER":
+    if UNITE != None :
+      return
+    else :
+      return entier
+  elif ACTION == "LIBERER"  :
+    return
+  else :
+    raise AsException("ACTION non prevue : %s" % ACTION)
+
+DEFI_FICHIER=MACRO(nom="DEFI_FICHIER",op=ops.build_DEFI_FICHIER,sd_prod=DEFIC_prod,reentrant='n',
+                  UIinfo={"groupes":("Gestion du travail",)},
+                  fr="Ouvre ou ferme un fichier associé à un numéro d'unité logique",
+
+            ACTION        =SIMP(statut='f',typ='TXM',into=("ASSOCIER","LIBERER","RESERVER"),defaut="ASSOCIER"),
+
+            b_associer    =BLOC(condition = "ACTION == 'ASSOCIER'",
+                                fr="Paramètres pour l'ouverture du fichier",
+                                regles=(AU_MOINS_UN('FICHIER','UNITE'),),
+               UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
+               FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
+               TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII","BINARY","LIBRE"),defaut="ASCII"),
+
+               b_type_ascii  =BLOC(condition = "TYPE == 'ASCII'",fr="Paramètres pour le type ASCII",
+                  ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","APPEND","OLD"),defaut="NEW"),
+               ),
+               b_type_autre  =BLOC(condition = "TYPE != 'ASCII'",fr="Paramètres pour les types BINARY et LIBRE",
+                  ACCES      =SIMP(statut='f',typ='TXM',into=("NEW","OLD"),defaut="NEW"),
+               ),
+            ),
+
+            b_reserver    =BLOC(condition = "ACTION == 'RESERVER'",
+                                fr="Paramètres pour la réservation de l'unité du fichier",
+                                regles=(AU_MOINS_UN('FICHIER','UNITE'),),
+               UNITE      =SIMP(statut='f',typ='I' ,val_min=1),
+               FICHIER    =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
+               TYPE       =SIMP(statut='f',typ='TXM',into=("ASCII",),defaut="ASCII"),
+               ACCES      =SIMP(statut='f',typ='TXM',into=("APPEND",),defaut="APPEND"),
+            ),
+
+            b_liberer    =BLOC(condition = "ACTION == 'LIBERER'",
+                               fr="Paramètres pour la fermeture du fichier",
+                               regles=(UN_PARMI('FICHIER','UNITE'),),
+                  UNITE         =SIMP(statut='f',typ='I' ,val_min=1),
+                  FICHIER   =SIMP(statut='f',typ='TXM',validators=LongStr(1,255)),
+           ),
+
+           INFO          =SIMP(statut='f',typ='I',into=(1,2) ),           
+           )
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
 # THIS PROGRAM 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    
@@ -19236,7 +16904,7 @@ def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_
   self.type_sdprod(MATR_RIGI_AJOU,matr_asse_gene_r)
   if FORC_AJOU != None:
     for m in FORC_AJOU:
-      self.type_sdprod(m['VECTEUR'],vect_asse_gene_r)
+      self.type_sdprod(m['VECTEUR'],vect_asse_gene)
 
   return None
 
@@ -19275,7 +16943,7 @@ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro
            POTENTIEL       =SIMP(statut='f',typ=evol_ther),
          ),
          MODE_MECA       =SIMP(statut='f',typ=mode_meca),
-         DEPL_IMPO       =SIMP(statut='f',typ=cham_no_depl_r),
+         DEPL_IMPO       =SIMP(statut='f',typ=cham_no_sdaster),
          MODELE_GENE     =SIMP(statut='f',typ=modele_gene),
          NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene),
          DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.0E-2),
@@ -19315,7 +16983,7 @@ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro
          NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
          AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
 )
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19394,7 +17062,7 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
              ),
 
              b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'",
-               SIEF_ELGA       =SIMP(statut='o',typ=cham_elem_sief_r),
+               SIEF_ELGA       =SIMP(statut='o',typ=cham_elem),
                MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
              ),
 
@@ -19412,7 +17080,7 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 20/03/2006   AUTEUR ACBHHCD G.DEVESA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19447,9 +17115,37 @@ MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,
          UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),  
          UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),  
          UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),  
-         UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),  
+         UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
+         UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=0),
+         PARAMETRE       =FACT(statut='f',         
+           regles=(PRESENT_PRESENT('FREQ_MIN','FREQ_MAX','FREQ_PAS'),
+                   PRESENT_PRESENT('CONTR_NB','CONTR_LISTE'),
+                   PRESENT_PRESENT('LFREQ_NB','LFREQ_LISTE'),
+                   PRESENT_PRESENT('OFFSET_MAX','OFFSET_NB'),
+                   PRESENT_PRESENT('SPEC_MAX','SPEC_NB'),),
+           FREQ_MIN        =SIMP(statut='f',typ='R'), 
+           FREQ_MAX        =SIMP(statut='f',typ='R'),
+           FREQ_PAS        =SIMP(statut='f',typ='R'),
+           Z0              =SIMP(statut='f',typ='R'), 
+           SURF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
+           RFIC            =SIMP(statut='f',typ='R'),
+           FICH_RESU_IMPE  =SIMP(statut='f',typ='TXM'),
+           FICH_RESU_FORC  =SIMP(statut='f',typ='TXM'),
+           DREF            =SIMP(statut='f',typ='R'),
+           ALGO            =SIMP(statut='f',typ='TXM',into=("DEPL","REGU")),
+           OFFSET_MAX      =SIMP(statut='f',typ='R'),
+           OFFSET_NB       =SIMP(statut='f',typ='I'),
+           SPEC_MAX        =SIMP(statut='f',typ='R'),
+           SPEC_NB         =SIMP(statut='f',typ='I'),
+           ISSF            =SIMP(statut='f',typ='TXM',into=("OUI","NON",),defaut="NON"),
+           FICH_POST_TRAI  =SIMP(statut='f',typ='TXM'),
+           CONTR_NB        =SIMP(statut='f',typ='I'),
+           CONTR_LISTE     =SIMP(statut='f',typ='R',max='**'),
+           LFREQ_NB        =SIMP(statut='f',typ='I'),
+           LFREQ_LISTE     =SIMP(statut='f',typ='R',max='**'),
+         ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19522,7 +17218,7 @@ MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_
            STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          ),
          NORM_MODE       =FACT(statut='o',max='**',
-           MASS_INER       =SIMP(statut='o',typ=tabl_mass_iner ),
+           MASS_INER       =SIMP(statut='o',typ=table_sdaster),
            NORME           =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA",    
                                  into=("MASS_GENE","RIGI_GENE","EUCL",           
                                        "EUCL_TRAN","TRAN","TRAN_ROTA") ),
@@ -19540,7 +17236,7 @@ MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_
                                  into=("MASS_EFFE_UN","MASS_GENE",) ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 20/06/2005   AUTEUR BOYERE E.BOYER
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETT
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19567,7 +17263,7 @@ def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ):
       self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
   if VECT_ASSE_GENE != None:
     for v in VECT_ASSE_GENE:
-      self.type_sdprod(v['VECTEUR'],vect_asse_gene_r)
+      self.type_sdprod(v['VECTEUR'],vect_asse_gene)
   return None
 
 MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
@@ -19588,8 +17284,8 @@ MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
            VECTEUR         =SIMP(statut='o',typ=CO,),
            regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE',),),
            TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
-           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r),
-           VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene_r),
+           VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
+           VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
@@ -19618,7 +17314,7 @@ MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
          ELEMENT         =FACT(statut='f',),
 
 )  ;
-#& MODIF COMMANDE  DATE 10/10/2005   AUTEUR BOITEAU O.BOITEAU 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19640,8 +17336,9 @@ MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
 MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
                    fr="Résoudre un problème de mécanique statique linéaire",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
-                   regles=(EXCLUS("INST","LIST_INST"),
-                           AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ),
+         regles=(EXCLUS("INST","LIST_INST"),
+                 AU_MOINS_UN('CHAM_MATER','CARA_ELEM',),
+                 CONCEPT_SENSIBLE('ENSEMBLE'),),
          MODELE          =SIMP(statut='o',typ=modele_sdaster),
          CHAM_MATER      =SIMP(statut='f',typ=cham_mater,
          fr="le CHAM_MATER est nécessaire, sauf si le modèle ne contient que des éléments discrets (modélisations DIS_XXX)",
@@ -19680,7 +17377,7 @@ MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
              SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
              VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
              TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
-             INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFF'),
+             INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
              STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
              NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
              ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
@@ -19835,7 +17532,7 @@ MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19865,6 +17562,7 @@ MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
                     ,fr="Calcul des modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
                      reentrant='n',
             UIinfo={"groupes":("Résolution",)},
+         regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
          MATR_C          =SIMP(statut='f',typ=matr_asse_depl_r ),
@@ -19929,7 +17627,7 @@ MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19961,6 +17659,7 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_pr
                          +" modes propres réels ou complexes",
                       reentrant='n',
             UIinfo={"groupes":("Résolution",)},
+         regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
          MATR_C          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
@@ -20172,7 +17871,7 @@ MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -20232,7 +17931,7 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
 
          DEFORME         =FACT(statut='f',
            OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
-           DEPL            =SIMP(statut='o',typ=cham_no_depl_r ),
+           DEPL            =SIMP(statut='o',typ=cham_no_sdaster ),
         b_deform        =BLOC(condition = "OPTION=='TRAN_APPUI'", 
            GROUP_NO_APPUI = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),
            GROUP_NO_STRU  = SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**' ),),
@@ -20319,36 +18018,7 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 06/07/2005   AUTEUR GENIAUT S.GENIAUT 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f',
-            UIinfo={"groupes":("Modélisation",)},
-               fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
-
-    MODELE_IN       =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,),
-    FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,),
-    CRITERE         =SIMP(statut='f',typ='R',defaut=1.1E-4),
-    INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)),
-
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -20373,7 +18043,7 @@ MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster,
               PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),),
          V_USUR_TUBE     =SIMP(statut='f',typ='R',max='**'),
          V_USUR_OBST     =SIMP(statut='f',typ='R',max='**'),
-         TABL_USURE      =SIMP(statut='f',typ=tabl_post_usur),
+         TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
          INST            =SIMP(statut='f',typ='R'),  
          OBSTACLE        =SIMP(statut='f',typ=obstacle_sdaster),
          GUIDE           =SIMP(statut='o',typ=obstacle_sdaster),
@@ -20465,7 +18135,7 @@ MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n'
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -20493,7 +18163,9 @@ NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
                fr="Normer des modes propres en fonction d'un critère choisi par l'utilisateur",
                reentrant='f',
             UIinfo={"groupes":("Résolution",)},
-         regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),),
+         regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),
+                 CONCEPT_SENSIBLE('SEPARE'),
+                 DERIVABLE('MODE'),),
          MODE       =SIMP(statut='o',typ=(mode_meca,mode_flamb) ),
          NORME      =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
                           into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
@@ -20503,7 +18175,7 @@ NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
          ),
          AVEC_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
          SANS_CMP   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-         MASS_INER  =SIMP(statut='f',typ=tabl_mass_iner ),
+         MASS_INER  =SIMP(statut='f',typ=table_sdaster),
          MODE_SIGNE =FACT(statut='f',fr="Imposer un signe sur une des composantes des modes",
            NOEUD      =SIMP(statut='o',typ=no,fr="Noeud ou sera imposé le signe"),
            NOM_CMP    =SIMP(statut='o',typ='TXM',fr="Composante du noeud ou sera imposé le signe" ),
@@ -20595,33 +18267,7 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
                NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
                              ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster,
-                    reentrant='n',UIinfo={"groupes":("Post traitements",)},
-            fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré",
-    MAILLAGE = SIMP(statut='o',typ=maillage_sdaster),
-    MODELE   = SIMP(statut='o',typ=modele_sdaster,),
-    RESULTAT = SIMP(statut='o',typ=resultat_sdaster),
-    NOM_CHAM = SIMP(statut='o',typ='TXM',into=("DEPL","SIEF_ELGA"),)
-);                     
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -20639,12 +18285,12 @@ POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
+POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=table_sdaster,
                     fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers",
                     reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
-         INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
+         INTE_SPEC       =SIMP(statut='o',typ=table_sdaster),
          NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),  
          TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
          NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**' ),
@@ -20692,7 +18338,7 @@ POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -20710,7 +18356,7 @@ POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna,
+POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=table_sdaster,
                       fr="Post-traiter les résultats en coordonnées généralisées produit par DYNA_TRAN_MODAL",
                       reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
@@ -20734,7 +18380,7 @@ POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -20753,34 +18399,14 @@ POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
-def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,TRAV_EXT,WEIBULL,
-                    CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE,
-                    INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE,
-                    AIRE_INTERNE,**args ):
-  if MASS_INER    != None  : return tabl_mass_iner
-  if ENER_POT     != None  : return tabl_ener_pot
-  if ENER_CIN     != None  : return tabl_ener_cin
-  if TRAV_EXT     != None  : return tabl_trav_ext
-  if WEIBULL      != None  : return tabl_weibull
-  if CARA_GEOM    != None  : return tabl_cara_geom
-  if CARA_POUTRE  != None  : return tabl_cara_geom
-  if RICE_TRACEY  != None  : return tabl_rice_tracey
-  if CHAR_LIMITE  != None  : return tabl_char_limite
-  if INDIC_ENER   != None  : return tabl_indic_ener
-  if INDIC_SEUIL  != None  : return tabl_indic_seuil
-  if ENER_ELAS    != None  : return tabl_ener_elas
-  if ENER_TOTALE  != None  : return tabl_ener_totale
-  if AIRE_INTERNE != None  : return tabl_aire_int
-  raise AsException("type de concept resultat_sdaster non prevu")
-
-POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
+POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=table_sdaster,reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
 
          regles=(UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN','TRAV_EXT',
                           'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
                           'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL',
-                          'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'),
+                          'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE','INTEGRALE'),
                 ),
 
          MASS_INER      = FACT(statut='f',max='**',
@@ -20803,7 +18429,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
                        GEOMETRIE      = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
-                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
+                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_noli,mult_elas,
                                                              fourier_elas,dyna_trans) ),
                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
@@ -20839,7 +18465,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
-                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
+                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans,mult_elas) ),
                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
@@ -20877,7 +18503,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
                        ANGLE          = SIMP(statut='f',typ='I',defaut=0),
                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
-                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
+                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
                        RESULTAT       = SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,dyna_trans) ),
                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
@@ -20945,6 +18571,28 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
                        LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
          ),
 
+         INTEGRALE  = FACT(statut='f',max='**',
+                               regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
+                               TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
+                               MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               NOM_CHAM       = SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
+                               NOM_CMP        = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
+                              ),
+         b_integrale = BLOC(condition = "( INTEGRALE != None )",
+                       fr="calcul de la moyenne d'une composante",
+                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       RESULTAT       = SIMP(statut='o',typ=(evol_noli,evol_ther,evol_elas) ),
+                       PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
+                       CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+                       TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
+                       NUME_ORDRE     = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+                       LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
+                       INST           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+                       LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
+         ),
+
          WEIBULL        = FACT(statut='f',max='**',
                                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
                                TOUT         = SIMP(statut='f',typ='TXM',into=("OUI",) ),
@@ -20967,7 +18615,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
-                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
+                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
@@ -20999,7 +18647,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
                        NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
                        NIVE_COUCHE    = SIMP(statut='f',typ='TXM',defaut="MOY",into=("INF","SUP","MOY"),),
                        MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
-                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
+                       CHAM_GD        = SIMP(statut='f',typ=(cham_no_sdaster,cham_elem) ),
                        RESULTAT       = SIMP(statut='f',typ=(evol_noli) ),
                        PRECISION      = SIMP(statut='f',typ='R',defaut= 1.0E-3),
                        CRITERE        = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
@@ -21100,7 +18748,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
                                TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) ),
                                GROUP_MA      = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
                                GROUP_MA_INTE = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-                               CARA_GEOM     = SIMP(statut='f',typ=tabl_cara_geom),
+                               CARA_GEOM     = SIMP(statut='o',typ=table_sdaster),
                                RT            = SIMP(statut='f',typ='R'),
                                LAPL_PHI      = SIMP(statut='f',typ=evol_ther),
                                LAPL_PHI_Y    = SIMP(statut='f',typ=evol_ther),
@@ -21140,7 +18788,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 
  )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21158,7 +18806,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,reentrant='f',
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentrant='n',
+POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=table_sdaster,reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                     fr="Calculer le dommage de fatigue subi par une structure soumise à une sollicitation de type aléatoire",
          regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
@@ -21167,7 +18815,7 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentra
          MOMENT_SPEC_0   =SIMP(statut='f',typ='R'),  
          MOMENT_SPEC_2   =SIMP(statut='f',typ='R'),  
          MOMENT_SPEC_4   =SIMP(statut='f',typ='R'),  
-         TABL_POST_ALEA  =SIMP(statut='f',typ=tabl_post_alea),
+         TABL_POST_ALEA  =SIMP(statut='f',typ=table_sdaster),
          COMPTAGE        =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
          DUREE           =SIMP(statut='f',typ='R',defaut= 1.),  
          CORR_KE         =SIMP(statut='f',typ='TXM',into=("RCCM",)),
@@ -21175,7 +18823,7 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentra
          MATER           =SIMP(statut='o',typ=mater_sdaster),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21193,7 +18841,7 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentra
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
-POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n',
+POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=table_sdaster,reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                   fr="Calculer en un point, le dommage de fatigue subi par une structure soumise à une histoire de chargement",
 
@@ -21253,7 +18901,7 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETT
+#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR GALENNE E.GALENN
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21272,8 +18920,8 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE GALENNE E.GALENNE
-
-POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
+from Macro.post_k1_k2_k3_ops import post_k1_k2_k3_ops
+POST_K1_K2_K3=MACRO(nom="POST_K1_K2_K3",op=post_k1_k2_k3_ops,sd_prod=table_sdaster,
                    fr="Calcul des facteurs d'intensité de contraintes en 2D et en 3D par extrapolation des sauts de déplacements"
                      +" sur les lèvres de la fissure",
                    reentrant='n',
@@ -21288,6 +18936,8 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
          FOND_FISS     =SIMP(statut='f',typ=fond_fiss),
          b_fond_fiss   =BLOC (condition="(FOND_FISS!= None)",
                          MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
+                         TYPE_MAILLAGE = SIMP(statut='f',typ='TXM',into=("LIBRE","REGLE"),defaut="REGLE"),
+                         NB_NOEUD_COUPE= SIMP(statut='f',typ='I' ,defaut=5 ),
                          NOEUD         = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
                          GROUP_NO      = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
                          SANS_NOEUD    = SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
@@ -21298,9 +18948,9 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
                              fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
          RESULTAT      =SIMP(statut='f',typ=(evol_elas,evol_noli),
                              fr="Table déplacement des noeuds de la lèvre supérieure et inférieure"),
-         TABL_DEPL_SUP =SIMP(statut='f',typ=tabl_post_rele,
+         TABL_DEPL_SUP =SIMP(statut='f',typ=table_sdaster,
                              fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
-         TABL_DEPL_INF =SIMP(statut='f',typ=tabl_post_rele,
+         TABL_DEPL_INF =SIMP(statut='f',typ=table_sdaster,
                              fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
          ABSC_CURV_MAXI=SIMP(statut='f',typ='R',
                              fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"),  
@@ -21320,7 +18970,7 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
                              fr="Vecteur normal au plan de fissure, orienté de la lèvre inférieure vers la lèvre supérieure"),  
          TITRE         =SIMP(statut='f',typ='TXM',max='**'),  
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21341,7 +18991,7 @@ POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
 #                                                                       
 # ======================================================================
 #
-POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta,
+POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=table_sdaster,
                    fr="Calcul des facteurs d'intensité de contraintes par la méthode K_BETA",
                    reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
@@ -21356,38 +19006,14 @@ POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta,
                                  into=("CIRC","LONGI"),),
          ),
          K1D           = FACT(statut='o',max='**',
-            TABL_MECA_REV  = SIMP(statut='o',typ=(tabl_post_rele)),
-            TABL_MECA_MDB  = SIMP(statut='o',typ=(tabl_post_rele)),
-            TABL_THER      = SIMP(statut='o',typ=(tabl_post_rele)),
+            TABL_MECA_REV  = SIMP(statut='o',typ=(table_sdaster)),
+            TABL_MECA_MDB  = SIMP(statut='o',typ=(table_sdaster)),
+            TABL_THER      = SIMP(statut='o',typ=(table_sdaster)),
             INTITULE       = SIMP(statut='o',typ='TXM' ), 
          ),
          TITRE         = SIMP(statut='f',typ='TXM',max='**'),  
 );
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM 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      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster,
-                    reentrant='n',UIinfo={"groupes":("Maillage",)},
-            fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM",
-    MODELE  = SIMP(statut='o',typ=modele_sdaster),
-    TITRE   = SIMP(statut='f',typ='TXM',max='**'),
-);                     
-#& MODIF COMMANDE  DATE 21/03/2005   AUTEUR CIBHHLV L.VIVAN 
+#& MODIF COMMANDE  DATE 13/03/2006   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21405,7 +19031,7 @@ POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE JMBHH01 J.M.PROIX
-POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
+POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=table_sdaster,
                fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)",
                reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
@@ -21448,32 +19074,80 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
          TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
                                fr="Ke meca seul ou partition mecanique + thermique" ),
          CHAR_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
+                           regles=(UN_PARMI('MX','MX_TUBU'),),
            NUME_CHAR     =SIMP(statut='o',typ='I',fr="numéro du chargement" ),
            NOM_CHAR      =SIMP(statut='f',typ='TXM',fr="nom du chargement" ),
            TYPE_CHAR     =SIMP(statut='f',typ='TXM',fr="nature du chargement",into=( "SEISME","AUTRE"),defaut="AUTRE",),
-           FX            =SIMP(statut='f',typ='R',fr="effort suivant x", ),
-           FY            =SIMP(statut='f',typ='R',fr="effort suivant y", ),
-           FZ            =SIMP(statut='f',typ='R',fr="effort suivant z", ),
-           MX            =SIMP(statut='o',typ='R',fr="moment suivant x", ),
-           MY            =SIMP(statut='o',typ='R',fr="moment suivant y", ),
-           MZ            =SIMP(statut='o',typ='R',fr="moment suivant z", ),
+           MX            =SIMP(statut='f',typ='R',fr="moment suivant x", ),
+           MX_TUBU       =SIMP(statut='f',typ='R',fr="moment suivant x, tubulure", ),
+           b_1_tenseur     =BLOC( condition = "MX != None",
+             FX            =SIMP(statut='f',typ='R',fr="effort suivant x", ),
+             FY            =SIMP(statut='f',typ='R',fr="effort suivant y", ),
+             FZ            =SIMP(statut='f',typ='R',fr="effort suivant z", ),
+             MY            =SIMP(statut='o',typ='R',fr="moment suivant y", ),
+             MZ            =SIMP(statut='o',typ='R',fr="moment suivant z", ),
+           ),
+           b_2_tenseurs    =BLOC( condition = "MX_TUBU != None",
+             FX_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant x, tubulure", ),
+             FY_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant y, tubulure", ),
+             FZ_TUBU       =SIMP(statut='f',typ='R',fr="effort suivant z, tubulure", ),
+             MY_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant y, tubulure", ),
+             MZ_TUBU       =SIMP(statut='o',typ='R',fr="moment suivant z, tubulure", ),
+             FX_CORP       =SIMP(statut='f',typ='R',fr="effort suivant x, corps du piquage", ),
+             FY_CORP       =SIMP(statut='f',typ='R',fr="effort suivant y, corps du piquage", ),
+             FZ_CORP       =SIMP(statut='f',typ='R',fr="effort suivant z, corps du piquage", ),
+             MX_CORP       =SIMP(statut='o',typ='R',fr="moment suivant x, corps du piquage", ),
+             MY_CORP       =SIMP(statut='o',typ='R',fr="moment suivant y, corps du piquage", ),
+             MZ_CORP       =SIMP(statut='o',typ='R',fr="moment suivant z, corps du piquage", ),
+           ),
+
                          ),
          RESU_MECA_UNIT =FACT(statut='o',fr="resultats mécaniques unitaires",
-           TABL_FX       =SIMP(statut='f',typ=table_sdaster,
-                              fr="table relevé des contraintes pour chargement unitaire FX"),
-           TABL_FY       =SIMP(statut='f',typ=table_sdaster,
-                              fr="table relevé des contraintes pour chargement unitaire FY"),
-           TABL_FZ       =SIMP(statut='f',typ=table_sdaster,
-                              fr="table relevé des contraintes pour chargement unitaire FZ"),
-           TABL_MX       =SIMP(statut='o',typ=table_sdaster,
-                              fr="table relevé des contraintes pour chargement unitaire MX"),
-           TABL_MY       =SIMP(statut='o',typ=table_sdaster,
-                              fr="table relevé des contraintes pour chargement unitaire MY"),
-           TABL_MZ       =SIMP(statut='o',typ=table_sdaster,
-                              fr="table relevé des contraintes pour chargement unitaire MZ"),
+                              regles=(UN_PARMI('TABL_MX','TABL_MX_TUBU'),),
+           TABL_MX       =SIMP(statut='f',typ=table_sdaster,
+                               fr="table relevé des contraintes pour chargement unitaire MX"),
+           TABL_MX_TUBU  =SIMP(statut='f',typ=table_sdaster,
+                               fr="table relevé des contraintes pour chargement unitaire MX_TUBU"),
+           b_1_tenseur     =BLOC( condition = "TABL_MX != None",
+             TABL_FX       =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FX"),
+             TABL_FY       =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FY"),
+             TABL_FZ       =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FZ"),
+             TABL_MY       =SIMP(statut='o',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire MY"),
+             TABL_MZ       =SIMP(statut='o',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire MZ"),
+           ),
+           b_2_tenseurs    =BLOC( condition = "TABL_MX_TUBU != None",
+             TABL_FX_TUBU  =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FX_TUBU"),
+             TABL_FY_TUBU  =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FY_TUBU"),
+             TABL_FZ_TUBU  =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FZ_TUBU"),
+             TABL_MY_TUBU  =SIMP(statut='o',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire MY_TUBU"),
+             TABL_MZ_TUBU  =SIMP(statut='o',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire MZ_TUBU"),
+             TABL_FX_CORP  =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FX_CORP"),
+             TABL_FY_CORP  =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FY_CORP"),
+             TABL_FZ_CORP  =SIMP(statut='f',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire FZ_CORP"),
+             TABL_MX_CORP  =SIMP(statut='o',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire MX_CORP"),
+             TABL_MY_CORP  =SIMP(statut='o',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire MY_CORP"),
+             TABL_MZ_CORP  =SIMP(statut='o',typ=table_sdaster,
+                                 fr="table relevé des contraintes pour chargement unitaire MZ_CORP"),
+           ),
            TABL_PRES     =SIMP(statut='o',typ=table_sdaster,
-                              fr="table relevé des contraintes pour chargement unitaire de pression"),
+                               fr="table relevé des contraintes pour chargement unitaire de pression"),
                          ),
+
           RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
            NUME_RESU_THER =SIMP(statut='o',typ='I',fr="numéro de la table de résultat thermique" ),
            TABL_RESU_THER =SIMP(statut='o',typ=table_sdaster,
@@ -21585,7 +19259,7 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
                                ),
                ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 # ======================================================================
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21604,49 +19278,36 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
-POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,reentrant='f',
+POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=table_sdaster,reentrant='f',
             fr="Extraire des valeurs de composantes de champs de grandeurs pour y effectuer des calculs (moyenne,invariants,..)"
                +" ou pour les exprimer dans d'autres repères",
             UIinfo={"groupes":("Post traitements",)},
+
          ACTION          =FACT(statut='o',max='**',
-           regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
-                   EXCLUS('CHEMIN','GROUP_NO'),
-                   EXCLUS('CHEMIN','NOEUD'),
-                   PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
-                   UN_PARMI('RESULTAT','CHAM_GD'),            
-                   UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
-                   PRESENT_PRESENT('TRAC_DIR','DIRECTION'),          
-                   ENSEMBLE('MOMENT','POINT'),
-                   PRESENT_PRESENT('MOMENT','RESULTANTE'),
-                   PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
-                   EXCLUS('TRAC_DIR','TRAC_NOR'),
-                   PRESENT_PRESENT('ORIGINE','AXE_Z'),),
+                               regles=(UN_PARMI('RESULTAT','CHAM_GD'),), 
+
+           OPERATION       =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","EXTREMA"),validators=NoRepeat(),max=2),
            INTITULE        =SIMP(statut='o',typ='TXM'),  
-           CHEMIN          =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
-           CHAM_GD         =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_no_var2_r,
-                                                 cham_elem_sief_r,cham_elem_epsi_r,cham_elem_flux_r,cham_elem_crit_r,
-                                                 cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur,
-                                                 cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c,
-                                                 cham_elem_sief_c,cham_elem_epsi_c,cham_no_facy_r)),
+
+           CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
+                                                 cham_elem,),),
            RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans,
                                                  mode_meca,mode_flamb,mode_acou,base_modale,mode_stat,
                                                  mult_elas,fourier_elas,dyna_harmo,acou_harmo)),
+
            b_sensibilite   =BLOC(condition="RESULTAT != None",
                                  fr="Définition des paramètres de sensibilité",
                                  ang="Definition of sensitivity parameters",
+             regles=(CONCEPT_SENSIBLE("SEPARE"), REUSE_SENSIBLE(),
+                     DERIVABLE('RESULTAT'),),
              SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
                                    fr="Liste des paramètres de sensibilité.",
-                                   ang="List of sensitivity parameters"),),
+                                   ang="List of sensitivity parameters"),
+           ),
 
            b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
-             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',         
-                            'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),           
+                                 regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',         
+                                                'INST','LIST_INST','FREQ','LIST_FREQ','NOEUD_CMP','NOM_CAS'), ),           
              NOM_CHAM        =SIMP(statut='o',typ='TXM' ),  
              TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
              NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
@@ -21662,64 +19323,70 @@ POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,reentrant='f
              PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
              CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
            ),
-           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
-           INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),  
-           MOMENT          =SIMP(statut='f',typ='TXM',max='**'),  
-           POINT           =SIMP(statut='f',typ='R',max='**'),  
 
-           REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
+           b_extrema   =BLOC(condition="OPERATION == 'EXTREMA'",
+                             fr="recherche de MIN MAX",
+                             regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
+              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
+              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
+           ),
+
+           b_autre   =BLOC(condition="OPERATION != 'EXTREMA'",
+                           fr="extraction et moyenne",
+                           regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
+                                   EXCLUS('CHEMIN','GROUP_NO'),
+                                   EXCLUS('CHEMIN','NOEUD'),
+                                   PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
+                                   UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
+                                   PRESENT_PRESENT('TRAC_DIR','DIRECTION'),          
+                                   ENSEMBLE('MOMENT','POINT'),
+                                   PRESENT_PRESENT('MOMENT','RESULTANTE'),
+                                   PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
+                                   EXCLUS('TRAC_DIR','TRAC_NOR'),
+                                   PRESENT_PRESENT('ORIGINE','AXE_Z'),),
+                   
+              CHEMIN          =SIMP(statut='f',typ=(courbe_sdaster,surface_sdaster) ),
+              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+
+              TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
+              NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
+              INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",)),
+              ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+              RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),  
+
+              MOMENT          =SIMP(statut='f',typ='TXM',max='**'),  
+              POINT           =SIMP(statut='f',typ='R',max='**'),  
+
+              REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
                                  into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),  
-           ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
-           AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),  
+              ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),  
+              ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
+              AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),  
 
-           TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           DIRECTION       =SIMP(statut='f',typ='R',max='**'),  
+              TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
+              TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
+              DIRECTION       =SIMP(statut='f',typ='R',max='**'),  
  
-           VECT_Y          =SIMP(statut='f',typ='R',max='**'),  
-           MOYE_NOEUD      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-           OPERATION       =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE"),validators=NoRepeat(),max=2),
+              VECT_Y          =SIMP(statut='f',typ='R',max='**'),  
+              MOYE_NOEUD      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+           ),
+
+           FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
+
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
-                    fr="Permet d'utiliser des méthodes simplifiées autres que celles du RCCM",
-            UIinfo={"groupes":("Outils métier",)},reentrant='n',
-         MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
-         DEF_EQUI        =FACT(statut='f',
-           METHODE         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="UTO_2_3",
-                                 into=("UTO_2_3",) ),
-           EPAIS           =SIMP(statut='o',typ='R'),  
-           LONG_FISS       =SIMP(statut='o',typ='R'),  
-           LONG_LIGA_INT   =SIMP(statut='o',typ='R'),  
-           DEXT            =SIMP(statut='o',typ='R'),  
-           TEMP_ANALYSE    =SIMP(statut='f',typ='R'),  
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21737,7 +19404,7 @@ POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f',
+POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=table_sdaster,reentrant='f',
             UIinfo={"groupes":("Post traitements",)},
                 fr="Calcul des volumes d'usure et des profondeurs d'usure d'après la puissance d'usure",
          regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'),
@@ -21745,7 +19412,7 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f',
                  PRESENT_PRESENT('PUIS_USURE','LOI_USURE'),),
          TUBE_NEUF       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
          ETAT_INIT       =FACT(statut='f',
-           TABL_USURE      =SIMP(statut='f',typ=tabl_post_usur),
+           TABL_USURE      =SIMP(statut='f',typ=table_sdaster),
            INST_INIT       =SIMP(statut='f',typ='R'),  
                          ),
          RESU_GENE       =SIMP(statut='f',typ=tran_gene),
@@ -21820,7 +19487,7 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f',
            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
          ),
          b_tube_neuf       =BLOC(condition = "TUBE_NEUF == 'OUI'",
-            TABL_USURE      =SIMP(statut='o',typ=tabl_post_usur),
+            TABL_USURE      =SIMP(statut='o',typ=table_sdaster),
             INST            =SIMP(statut='f',typ='R'),
          ),
          CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",    
@@ -21883,7 +19550,7 @@ POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n',
          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
 
 )  ;
-#& MODIF COMMANDE  DATE 17/10/2005   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 16/01/2006   AUTEUR D6BHHJP J.P.LEFEBVRE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -21912,8 +19579,8 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',
                            into=("OUI","NON"),defaut="OUI"),
          IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
                            statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
-         BASE            =FACT(fr="définition des parmètres associés aux bases JEVEUX",
-                               statut='f',min=1,max=3,
+         BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
+                               statut='f',min=1,max=2,
            FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
            TITRE           =SIMP(statut='f',typ='TXM'),
            CAS             =SIMP(statut='f',typ='TXM'),
@@ -21940,7 +19607,7 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',
            JEVEUX          =SIMP(fr="force les déchargement sur disque",
                                  statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
            ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
-                                 statut='f',typ='TXM',into=('TES',)),
+                                 statut='f',typ='TXM',into=('TEST',)),
          ),
          MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
            GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
@@ -21962,18 +19629,59 @@ POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',
            UNITE           =SIMP(statut='f',typ='I',defaut=15),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 13/03/2006   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+# RESPONSABLE MCOURTOI M.COURTOIS
+
+from Macro.test_fichier_ops import test_fichier_ops
+
+TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops,
+                   UIinfo={"groupes":("Impression",)},
+                   fr="Tester la non régression de fichiers produits par des commandes aster",
+   FICHIER          =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)),
+   NB_CHIFFRE      =SIMP(statut='f',typ='I',defaut=6),
+   EPSILON         =SIMP(statut='f',typ='R',defaut=1.E-14),
+   EXPR_IGNORE     =SIMP(statut='f',typ='TXM',max='**',
+                         fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"),
+   VALE_K          =SIMP(statut='o',typ='TXM' ),
+   REFERENCE       =SIMP(statut='f',typ='TXM',
+                         into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
+
+   b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
+      VERSION         =SIMP(statut='f',typ='TXM' ),
+   ),
+
+   INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
 #
 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
@@ -22036,7 +19744,41 @@ PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
          CREA_GROUP_COUL =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 15/05/2006   AUTEUR ASSIRE A.ASSIRE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+from Macro.stanley_ops import stanley_ops
+
+STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None,
+                       reentrant='n',
+              UIinfo={"groupes":("Outils métier",)},
+                       fr="Outil de post-traitement interactif Stanley ",
+         RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ),
+         MODELE          =SIMP(statut='f',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
+         DISPLAY         =SIMP(statut='f',typ='TXM'),
+         UNITE_VALIDATION=SIMP(statut='c',typ='I',val_min=10,val_max=90,
+                               fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit les md5"),
+
+)  ;
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -22054,22 +19796,16 @@ PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-def prod_matr_cham_prod(MATR_ASSE,**args):
-  if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
-  if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c
-  if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
-  if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c
-  raise AsException("type de concept resultat non prevu")
 
-PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=prod_matr_cham_prod,
+PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=cham_no_sdaster,
                     fr="Effectuer le produit d'une matrice par un vecteur",
                     reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ),
-         CHAM_NO         =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_temp_r,cham_no_pres_c ) ),
+         CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 11/10/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -22093,16 +19829,11 @@ def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
     if AsType(RESULTAT)     == evol_elas      : return evol_elas
     if AsType(RESULTAT)     == evol_noli      : return evol_noli
     if AsType(RESULTAT)     == evol_char      : return evol_char
+    if AsType(RESULTAT)     == dyna_trans     : return dyna_trans
     if AsType(RESULTAT)     == mode_meca      : return mode_meca
     if AsType(RESULTAT)     == mode_stat_depl : return mode_stat_depl
     if AsType(RESULTAT)     == base_modale    : return base_modale
-    if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r
-    if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c
-    if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c
-    if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r
-    if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r
-    if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r
-    if AsType(CHAM_NO_REFE) == cham_no_flux_r : return cham_no_flux_r
+    if CHAM_NO_REFE         != None           : return cham_no_sdaster
     raise AsException("type de concept resultat non prevu")
 
 PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
@@ -22113,16 +19844,18 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
                                into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ),
          b_nuage         =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')",
                                fr="Lissage d'un nuage de points",
-           CHAM_NO         =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
-                                                 cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
-           CHAM_NO_REFE    =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,
-                                                 cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
+           CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
+           CHAM_NO_REFE    =SIMP(statut='o',typ=cham_no_sdaster),
          ),
          b_elem          =BLOC(condition="METHODE=='ELEM'",
                               fr="Utilisation des fonctions de forme du maillage initial",
            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),
-                   EXCLUS('TOUT_CHAM','NOM_CHAM',), ),
-           RESULTAT        =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,evol_char,mode_meca,mode_stat_depl,base_modale) ),
+                   EXCLUS('TOUT_CHAM','NOM_CHAM',),
+                   CONCEPT_SENSIBLE('SEPARE'),
+                   REUSE_SENSIBLE(),
+                   DERIVABLE('RESULTAT'),),
+           RESULTAT        =SIMP(statut='o',typ=(evol_ther,evol_elas,evol_noli,dyna_trans,evol_char,
+                                                 mode_meca,mode_stat_depl,base_modale) ),
            SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
                                fr="Liste des paramètres de sensibilité.",
                                ang="List of sensitivity parameters",),
@@ -22132,6 +19865,11 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
            NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
 
+#          POUR IMPOSER LA NUMEROTATION DES DDLS :
+#          ------------------------------------------------------------------
+           NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
+
+
            TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
            NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
            LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
@@ -22154,11 +19892,6 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
                 fr="Si le résultat est un mode_xxx ou une base_xxx, on peut prolonger"
                    +" les champs par zéro la ou la projection ne donne pas de valeurs."),
 
-           b_modele_gene     =BLOC(condition = "AsType(RESULTAT)     == mode_meca",
-             RIGI_MECA          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
-             MASS_MECA          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
-             AMOR_MECA          =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
-                                    ),
          ),
 
          VIS_A_VIS       =FACT(statut='f',max='**',
@@ -22277,7 +20010,7 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
              ),
 
           ); 
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -22295,7 +20028,7 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n',
+PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=table_sdaster,reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
             fr="Projecter un ou plusieurs spectres de turbulence sur une (ou plusieurs) base(s) modale(s) ",
       regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),
@@ -22303,7 +20036,7 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n
          SPEC_TURB       =SIMP(statut='o',typ=spectre_sdaster,validators=NoRepeat(),max='**' ),
          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
          MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
-         CHAM_NO         =SIMP(statut='f',typ=cham_no_depl_r ),
+         CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
          FREQ_INIT       =SIMP(statut='f',typ='R',val_min=0.E+0 ),  
          FREQ_FIN        =SIMP(statut='f',typ='R',val_min=0.E+0 ),  
          NB_POIN         =SIMP(statut='f',typ='I' ),  
@@ -22316,7 +20049,7 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n
          ORIG_AXE        =SIMP(statut='f',typ='R',min=3,max=3 ),  
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -22334,14 +20067,8 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-def vect_asse_gene_prod(VECT_ASSE,VECT_ASSE_GENE,**args):
-  if AsType(VECT_ASSE) == cham_no_depl_r  : return vect_asse_gene_r
-  if AsType(VECT_ASSE_GENE) == vect_asse_gene_r  : return vect_asse_gene_r
-  if AsType(VECT_ASSE) == cham_no_depl_c  : return vect_asse_gene_c
-  if AsType(VECT_ASSE_GENE) == vect_asse_gene_c  : return vect_asse_gene_c
-  raise AsException("type de concept resultat non prevu")
 
-PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene_prod,
+PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene,
                     fr="Projection d'un vecteur assemblé sur une base (modale ou de RITZ)",
                     reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
@@ -22349,10 +20076,10 @@ PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene_prod,
          BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ),
          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
          TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
-         VECT_ASSE       =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c) ),
-         VECT_ASSE_GENE  =SIMP(statut='f',typ=(vect_asse_gene_r,vect_asse_gene_c) ),
+         VECT_ASSE       =SIMP(statut='f',typ=cham_no_sdaster),
+         VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -22370,7 +20097,7 @@ PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene_prod,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
+RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=table_sdaster,
                      fr="Recaler les paramètres du modèle de WEIBULL sur des données expérimentales",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          LIST_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ),
@@ -22398,7 +20125,7 @@ RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
          ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
                        )  ;
-#& MODIF COMMANDE  DATE 04/07/2005   AUTEUR CIBHHLV L.VIVAN 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -22438,19 +20165,27 @@ def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None,
 
 RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
                    fr="Extraire sous forme d'une fonction, l'évolution d'une grandeur en fonction d'une autre",
-                   reentrant='n',
+                   reentrant='f',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),),
 
-         CHAM_GD         =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_elem_sief_r,
-                                               cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_r,
-                                               cham_elem_pres_r,) ),
+         CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
+                                               cham_elem,),),
          RESULTAT        =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ),
          RESU_GENE       =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)),
          TABLE           =SIMP(statut='f',typ=table_sdaster),
          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster),
          OBSTACLE        =SIMP(statut='f',typ=obstacle_sdaster),
 
+# ======= SENSIBILITE =================================================
+         b_sensibilite   =BLOC(condition="RESULTAT != None",
+                                 fr="Définition des paramètres de sensibilité",
+                                 ang="Definition of sensitivity parameters",
+           regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
+                   DERIVABLE('RESULTAT'),),
+           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                                   fr="Liste des paramètres de sensibilité.",
+                                   ang="List of sensitivity parameters"),),
 # ======= ACCES A LA SD RESULTAT =================================================
          b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)",
                           fr="acces a une SD résultat",
@@ -22630,6 +20365,35 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
 )  ;
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,reentrant='n',
+            UIinfo={"groupes":("Résultats et champs",)},
+               fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats"
+                  +" en coordonnées généralisées",
+         RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
+         INST            =SIMP(statut='o',typ='R' ),
+         NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
+         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
+         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
+         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+)  ;
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -22639,250 +20403,2581 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
 # (AT YOUR OPTION) ANY LATER VERSION.                                 
 #
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+# RESPONSABLE VABHHTS J.PELLET
+RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster,
+         fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue"
+            +" dans une autre SD pour celles qui le permettent",
+         UIinfo={"groupes":("Résultats et champs",)},reentrant='n',
+         CO              =SIMP(statut='o',typ=assd),
+         regles=(UN_PARMI('NOM_TABLE','NOM_PARA')),
+         NOM_TABLE       =SIMP(statut='f',typ='TXM' ),
+         NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
+)  ;
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+
+RESO_GRAD=OPER(nom="RESO_GRAD",op=  84,sd_prod=cham_no_sdaster,
+               fr="Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
+               reentrant='f',
+            UIinfo={"groupes":("Résolution",)},
+         MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
+         CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
+         CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
+         MATR_FACT       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
+         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),  
+         REPRISE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1E-6 ),  
+         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+)  ;
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE VABHHTS J.PELLET
+
+RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=cham_no_sdaster,reentrant='f',
+               fr="Résoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT",
+            UIinfo={"groupes":("Résolution",)},
+         MATR_FACT       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
+                                               matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
+         CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
+         CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
+         # RESI_RELA : précision utilisée si SOLVEUR=MUMPS
+         RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.e-6),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+)  ;
+#& MODIF COMMANDE  DATE 20/03/2006   AUTEUR ACBHHCD G.DEVESA 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+# RESPONSABLE BOYERE E.BOYERE
+def rest_base_phys_prod(RESU_GENE,RESU_PHYS,RESULTAT,**args ):
+  if AsType(RESU_GENE) == tran_gene : return dyna_trans
+  if AsType(RESU_GENE) == mode_gene : return mode_meca
+  if AsType(RESU_GENE) == mode_cycl : return mode_meca
+  if AsType(RESU_GENE) == harm_gene : return dyna_harmo
+  if AsType(RESU_PHYS) == evol_noli : return dyna_trans
+  if AsType(RESULTAT)  == evol_elas      : return evol_elas
+  if AsType(RESULTAT)  == evol_noli      : return evol_noli
+  if AsType(RESULTAT)  == evol_char      : return evol_char
+  if AsType(RESULTAT)  == dyna_trans     : return dyna_trans
+  if AsType(RESULTAT)  == mode_meca      : return mode_meca
+  if AsType(RESULTAT)  == mode_stat_depl : return mode_stat_depl
+  if AsType(RESULTAT)  == base_modale    : return base_modale
+  raise AsException("type de concept resultat non prevu")
+
+REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
+                    fr="Restituer dans la base physique des résultats en coordonnées généralisées",
+                    reentrant='n',
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+        regles=(UN_PARMI('RESU_GENE','RESU_PHYS','RESULTAT'),
+                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
+                EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
+#  Doc U à revoir
+                EXCLUS('MULT_APPUI','CORR_STAT'),
+                EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
+                EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
+                EXCLUS('NOEUD','GROUP_NO'),
+                PRESENT_PRESENT('RESU_PHYS','BASE_MODALE'),
+                PRESENT_PRESENT('RESULTAT','SQUELETTE'),
+                PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
+         RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
+                                               mode_meca,mode_stat_depl,base_modale) ),
+         
+         RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ),
+         RESU_PHYS       =SIMP(statut='f',typ=evol_noli ),
+         BASE_MODALE     =SIMP(statut='f',typ=(base_modale,mode_meca) ),
+         NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
+         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
+         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
+         NUME_MODE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
+         TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
+         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
+         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
+         LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
+         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
+         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
+         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
+         MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+         CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+         NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",   
+                               into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",                 
+                                     "SIGM_ELNO_DEPL","FORC_NODA",) ),
+         TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+         GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+         NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+         ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+         DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3 ),
+
+         CYCLIQUE    =FACT(statut='f',max='**',
+           NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
+           NUME_DIAMETRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
+           RESULTAT2       =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
+                                               mode_meca,mode_stat_depl,base_modale) ),
+         ),
+
+         SQUELETTE       =SIMP(statut='f',typ=squelette ),
+         SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
+         SECTEUR         =SIMP(statut='f',typ='I',defaut= 1 ),  
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
+)  ;
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_sdaster,
+                    reentrant='n',
+            fr="Calculer la réponse d'une structure dans la base physique",
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+         regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
+         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
+         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
+         BANDE           =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2    ),  
+         NUME_ORDRE      =SIMP(statut='f',typ='I'      ,validators=NoRepeat(),max='**' ),  
+         INTE_SPEC_GENE  =SIMP(statut='o',typ=table_sdaster),
+         NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
+         MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
+         NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
+         NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7,    
+                               into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL",
+                                     "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ),
+         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ),
+         EXCIT           =FACT(statut='f',
+           NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
+           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
+         ),
+         MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
+         OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
+                               into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
+)  ;
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+# RESPONSABLE MABBAS M.ABBAS
+STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
+                   fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
+                      +" d'une structure en non linéaire",
+                   reentrant='f',
+            UIinfo={"groupes":("Résolution",)},
+         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
+                 CONCEPT_SENSIBLE('ENSEMBLE'),),
+         MODELE          =SIMP(statut='o',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
+         EXCIT           =FACT(statut='o',max='**',
+           CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
+           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
+                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
+         ),
+         SOUS_STRUC      =FACT(statut='f',min=01,max='**',
+                regles=(UN_PARMI('TOUT','MAILLE'),),
+                CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
+                TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+                MAILLE      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
+              ),
+         COMP_INCR       =C_COMP_INCR(),
+         COMP_ELAS       =FACT(statut='f',max='**',
+           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
+           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
+           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
+           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
+                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
+           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
+                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
+                                      "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
+           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),           
+           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
+      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+         ),
+         b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
+           ETAT_INIT       =FACT(statut='o',
+             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
+                     EXCLUS('EVOL_NOLI','DEPL',),
+                     EXCLUS('EVOL_NOLI','SIGM',),
+                     EXCLUS('EVOL_NOLI','VARI',),
+                     EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
+                     EXCLUS('NUME_ORDRE','INST'), ),
+             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
+             SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
+             VARI            =SIMP(statut='f',typ=cham_elem),
+             VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
+             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+             NUME_ORDRE      =SIMP(statut='f',typ='I'),
+             INST            =SIMP(statut='f',typ='R'),
+             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+             NUME_DIDI       =SIMP(statut='f',typ='I'),
+             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
+         ),),
+         b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
+           ETAT_INIT       =FACT(statut='f',
+             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
+                     EXCLUS('EVOL_NOLI','DEPL',),
+                     EXCLUS('EVOL_NOLI','SIGM',),
+                     EXCLUS('EVOL_NOLI','VARI',),
+                     EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
+                     EXCLUS('NUME_ORDRE','INST'), ),
+             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
+             SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
+             VARI            =SIMP(statut='f',typ=cham_elem),
+             VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
+             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+             NUME_ORDRE      =SIMP(statut='f',typ='I'),
+             INST            =SIMP(statut='f',typ='R'),
+             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+             NUME_DIDI       =SIMP(statut='f',typ='I'),
+             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
+         ),),
+         INCREMENT       =FACT(statut='o',
+           regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
+                   EXCLUS('NUME_INST_FIN','INST_FIN'),),
+           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
+           EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
+                                 into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
+           NUME_INST_INIT  =SIMP(statut='f',typ='I'),
+           INST_INIT       =SIMP(statut='f',typ='R'),
+           NUME_INST_FIN   =SIMP(statut='f',typ='I'),
+           INST_FIN        =SIMP(statut='f',typ='R'),
+           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
+           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
+           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
+           OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',),
+           NOM_CMP         =SIMP(statut='f',typ='TXM',),
+           VALE            =SIMP(statut='f',typ='R'),
+         ),
+         NEWTON          =FACT(statut='d',
+           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
+           PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
+           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
+           PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
+           REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
+           REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
+           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+         ),
+         RECH_LINEAIRE   =FACT(statut='f',
+           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
+           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
+           ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
+           PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
+           RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
+           RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
+           RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2),
+         ),
+         PILOTAGE        =FACT(statut='f',
+           regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
+           TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
+           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
+           ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
+           ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
+           ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
+           ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
+           PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+           SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
+           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
+           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
+                         ),
+         CONVERGENCE     =FACT(statut='d',
+           regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
+           SIGM_REFE       =SIMP(statut='f',typ='R'),
+           EPSI_REFE       =SIMP(statut='f',typ='R'),
+           FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
+           FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
+           FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
+           RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
+           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
+           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
+           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
+           ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
+           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+         ),
+         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
+         SOLVEUR         =FACT(statut='d',
+           METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI") ),
+           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+           ),
+           b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+           ),
+           b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
+           ),
+           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+           ),
+           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
+             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.,),
+           ),
+           b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
+             PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
+             NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
+             TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
+             NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
+             NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
+             PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
+             SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
+             VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+             TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
+             INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
+             STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
+             NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
+             ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           ),
+           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+         ),
+         ARCHIVAGE       =FACT(statut='f',
+           regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
+                   EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
+           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+           PAS_ARCH        =SIMP(statut='f',typ='I' ),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+           ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           NUME_INIT       =SIMP(statut='f',typ='I'),
+           DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
+                                                                     "VARI_NON_LOCAL","LANL_ELGA")),
+         ),
+         OBSERVATION     =FACT(statut='f',max='**',
+           regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
+                   PRESENT_PRESENT('MAILLE','POINT'),),
+           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
+                                              "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")),
+           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
+           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
+           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PAS_OBSE        =SIMP(statut='f',typ='I'),
+           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+           POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
+         ),
+
+         SUIVI_DDL      = FACT(statut='f',max=4,
+                               regles=(UN_PARMI('NOEUD','MAILLE'),
+                                       PRESENT_PRESENT('MAILLE','POINT'),),
+             NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),
+             NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
+                                   into=("DEPL","VITE","ACCE","SIEF_ELGA",
+                                         "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
+             NOM_CMP         =SIMP(statut='o',typ='TXM',max=1 ),
+             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
+             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
+             POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max=1),
+         ),
+
+         AFFICHAGE      = FACT(statut='f',max=16,
+
+            UNITE       = SIMP(statut='f',typ='I',val_min=1),
+
+            LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
+            PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
+            LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
+            
+            NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
+                                into=("STANDARD","MINIMUM",
+                                      "ITER_NEWT",
+                                      "INCR_TPS",
+                                      "RESI_RELA","RELA_NOEU",
+                                      "RESI_MAXI","MAXI_NOEU",
+                                      "RESI_REFE","REFE_NOEU",
+                                      "RELI_ITER","RELI_COEF",
+                                      "PILO_PARA",
+                                      "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
+                                      "MATR_ASSE",
+                                      "ITER_DEBO",
+                                      "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
+                                      "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
+                                      "SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI",
+                                     ),
+                               ),
+            b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
+                    NOM_COLONNE == 'RESI_MAXI' or\
+                    NOM_COLONNE == 'RESI_REFE' or\
+                    NOM_COLONNE == 'CTCD_GEOM' or\
+                    NOM_COLONNE == 'STANDARD' ",
+                            INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
+                          ),
+         ),
+
+
+
+         CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
+           NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
+           CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10),
+                            fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
+         ),
+           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                               fr="Liste des paramètres de sensibilité",
+                               ang="List of sensitivity parameters"),
+           SOLV_NON_LOCAL  =FACT(statut='f',
+             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
+             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+             ),
+             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+             ),
+             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+             ),
+             b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+               TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
+               PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
+               RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
+             ),
+             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+             ),
+             EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
+           ),
+           LAGR_NON_LOCAL  =FACT(statut='f',
+             ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
+             RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
+             RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
+             R               =SIMP(statut='f',typ='R',defaut= 1000.),
+             ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
+           ),
+         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
+ )
+
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+# RESPONSABLE MCOURTOI M.COURTOIS
+TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,
+            fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence",
+            UIinfo={"groupes":("Impression",)},
+         TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+         VALEUR          =FACT(statut='f',max='**',
+                               fr="Tester la valeur d une fonction ou d une nappe",
+           regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',),
+                   DERIVABLE('FONCTION'),),
+           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
+           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
+                                 fr="Paramètre de sensibilité.",
+                                 ang="Sensitivity parameter"),
+           NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
+           VALE_PARA       =SIMP(statut='o',typ='R'  ,validators=NoRepeat(),max=2),
+           VALE_REFE       =SIMP(statut='f',typ='R' ),
+           VALE_REFE_C     =SIMP(statut='f',typ='C' ),
+           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
+                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
+                                 defaut= 1.E-3 ),
+           REFERENCE       =SIMP(statut='f',typ='TXM',
+                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
+           b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", 
+             VERSION         =SIMP(statut='f',typ='TXM' ),
+           ),
+         ),
+         ATTRIBUT        =FACT(statut='f',max='**',
+                               fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
+           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
+           PARA            =SIMP(statut='f',typ='R' ),
+           CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+           ATTR            =SIMP(statut='o',typ='TXM',
+                                 into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
+                                       "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
+           ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
+           REFERENCE       =SIMP(statut='f',typ='TXM',
+                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
+           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
+             VERSION         =SIMP(statut='f',typ='TXM' ),
+           ),
+         ),
+         TABL_INTSP      =FACT(statut='f',max='**',
+                               fr="Tester la valeur d une fonction contenue dans une table interspectrale",
+           regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
+           INTE_SPEC       =SIMP(statut='o',typ=table_sdaster),
+           NOEUD_I         =SIMP(statut='f',typ=no),
+           NUME_ORDRE_I    =SIMP(statut='f',typ='I' ),
+           b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", 
+             NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
+           ),
+           b_noeud_i = BLOC (condition = "NOEUD_I != None",             
+             NOEUD_J         =SIMP(statut='o',typ=no),
+             NOM_CMP_I       =SIMP(statut='o',typ='TXM' ),
+             NOM_CMP_J       =SIMP(statut='o',typ='TXM' ),
+           ),
+           NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
+           VALE_PARA       =SIMP(statut='o',typ='R' ),
+           VALE_REFE_C     =SIMP(statut='o',typ='C' ),
+           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
+                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
+                                 defaut= 1.E-3 ),
+           REFERENCE       =SIMP(statut='f',typ='TXM',
+                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
+           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
+             VERSION         =SIMP(statut='f',typ='TXM' ),
+           ),
+         ),
+)  ;
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
+# RESPONSABLE VABHHTS J.PELLET
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
+# ======================================================================
+TEST_RESU=PROC(nom="TEST_RESU",op=23,
+            UIinfo={"groupes":("Impression",)},
+         fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence",
+         regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')),
+
+         CHAM_NO         =FACT(statut='f',max='**',
+           regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
+                   EXCLUS('NOEUD','GROUP_NO'),
+                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
+                   PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),
+                   UN_PARMI('VALE','VALE_I','VALE_C'),),
+           CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
+           NOEUD           =SIMP(statut='f',typ=no   ),
+           GROUP_NO        =SIMP(statut='f',typ=grno ),
+           NOM_CMP         =SIMP(statut='f',typ='TXM'),
+           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
+           VALE            =SIMP(statut='f',typ='R'),
+           VALE_I          =SIMP(statut='f',typ='I'),
+           VALE_C          =SIMP(statut='f',typ='C'),
+           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
+                                                            "NON_REGRESSION","AUTRE_ASTER")),
+           VERSION         =SIMP(statut='f',typ='TXM'),
+         ),
+
+         CHAM_ELEM       =FACT(statut='f',max='**',
+           regles=(UN_PARMI('MAILLE','TYPE_TEST',),
+                   EXCLUS('NOEUD','GROUP_NO','POINT'),
+                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
+                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
+                   PRESENT_PRESENT('POINT','NOM_CMP'),
+                   UN_PARMI('VALE','VALE_I','VALE_C'), ),
+           CHAM_GD         =SIMP(statut='o',typ=cham_elem),
+           MAILLE          =SIMP(statut='f',typ=ma),
+           POINT           =SIMP(statut='f',typ='I' ),
+           SOUS_POINT      =SIMP(statut='f',typ='I'),
+           NOEUD           =SIMP(statut='f',typ=no),
+           GROUP_NO        =SIMP(statut='f',typ=grno),
+           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
+           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
+           VALE            =SIMP(statut='f',typ='R' ),
+           VALE_I          =SIMP(statut='f',typ='I' ),
+           VALE_C          =SIMP(statut='f',typ='C' ),
+           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
+                                                            "NON_REGRESSION","AUTRE_ASTER") ),
+           VERSION         =SIMP(statut='f',typ='TXM' ),
+         ),
+
+         RESU            =FACT(statut='f',max='**',
+           regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
+                   UN_PARMI('NOM_CHAM','PARA'),
+                   PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
+                   PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
+                   EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
+                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
+                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
+                   PRESENT_PRESENT('POINT','NOM_CMP'),
+                   UN_PARMI('VALE','VALE_I','VALE_C'),
+                   DERIVABLE('RESULTAT'),),
+           RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
+           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
+                                 fr="Paramètre de sensibilité.",
+                                 ang="Sensitivity parameter"),
+           NUME_ORDRE      =SIMP(statut='f',typ='I'),
+           INST            =SIMP(statut='f',typ='R'),
+           FREQ            =SIMP(statut='f',typ='R'),
+           NUME_MODE       =SIMP(statut='f',typ='I'),
+           NOEUD_CMP       =SIMP(statut='f',typ='TXM',min=2,max=2),
+           NOM_CAS         =SIMP(statut='f',typ='TXM'),
+           ANGL            =SIMP(statut='f',typ='R'),
+           PARA            =SIMP(statut='f',typ='TXM'),
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
+           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
+           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
+           POINT           =SIMP(statut='f',typ='I'),
+           SOUS_POINT      =SIMP(statut='f',typ='I'),
+           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
+           VALE            =SIMP(statut='f',typ='R'),
+           VALE_I          =SIMP(statut='f',typ='I'),
+           VALE_C          =SIMP(statut='f',typ='C'),
+           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
+           PRECISION       =SIMP(statut='f',typ='R',max=2),
+           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
+                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
+           VERSION         =SIMP(statut='f',typ='TXM' ),
+         ),
+
+         GENE            =FACT(statut='f',max='**',
+           regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,),
+           RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
+           b_vect_asse     =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene",
+             NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
+           ),
+           b_mode          =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)",
+                            regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'),
+                                    UN_PARMI('NOM_CHAM','PARA'),
+                                    PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),),
+             NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
+             NUME_CMP_GENE   =SIMP(statut='f',typ='I'),
+             PARA            =SIMP(statut='f',typ='TXM'),
+             NUME_ORDRE      =SIMP(statut='f',typ='I'),
+             NUME_MODE       =SIMP(statut='f',typ='I'),
+             FREQ            =SIMP(statut='f',typ='R'),
+           ),
+           b_tran          =BLOC(condition = "AsType(RESU_GENE) == tran_gene",
+                            regles=(UN_PARMI('NUME_ORDRE','INST') ,),
+             NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
+             NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
+             NUME_ORDRE      =SIMP(statut='f',typ='I'),
+             INST            =SIMP(statut='f',typ='R'),
+           ),
+           VALE            =SIMP(statut='f',typ='R'),
+           VALE_I          =SIMP(statut='f',typ='I'),
+           VALE_C          =SIMP(statut='f',typ='C'),
+           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
+           PRECISION       =SIMP(statut='f',typ='R',max=2),
+           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
+                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
+           VERSION         =SIMP(statut='f',typ='TXM' ),
+         ),
+
+         OBJET           =FACT(statut='f',max='**',
+           regles=(UN_PARMI('S_I','S_R','RESUME',),
+                   UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
+           NOM             =SIMP(statut='o',typ='TXM'),
+           S_R             =SIMP(statut='f',typ='R'),
+           S_I             =SIMP(statut='f',typ='I'),
+           RESUME          =SIMP(statut='f',typ='I'),
+           VALE            =SIMP(statut='f',typ='R'),
+           VALE_I          =SIMP(statut='f',typ='I'),
+           VALE_C          =SIMP(statut='f',typ='C'),
+           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
+                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
+           VERSION         =SIMP(statut='f',typ='TXM' ),
+         ),
+)  ;
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM 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    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# ======================================================================
+# RESPONSABLE VABHHTS J.PELLET
+TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
+            UIinfo={"groupes":("Impression",)},
+         fr="Tester une cellule ou une colonne d'une table",
+         regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),
+                 DERIVABLE('TABLE'),),
+#  concept table_sdaster à tester
+         TABLE           =SIMP(statut='o',typ=table_sdaster),
+
+         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
+                                 fr="Paramètre de sensibilité.",
+                                 ang="Sensitivity parameter"),
+         FILTRE          =FACT(statut='f',max='**',
+           NOM_PARA        =SIMP(statut='o',typ='TXM' ),
+           CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
+                                 into=("EQ","LT","GT","NE","LE","GE","VIDE",
+                                       "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
+           b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
+              regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
+              VALE            =SIMP(statut='f',typ='R' ),
+              VALE_I          =SIMP(statut='f',typ='I' ),
+              VALE_C          =SIMP(statut='f',typ='C' ),
+              VALE_K          =SIMP(statut='f',typ='TXM' ),),
+
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+         ),
+         TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
+         NOM_PARA        =SIMP(statut='o',typ='TXM' ),
+         VALE            =SIMP(statut='f',typ='R' ),
+         VALE_I          =SIMP(statut='f',typ='I' ),
+         VALE_C          =SIMP(statut='f',typ='C' ),
+         VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.2E-3 ),
+         REFERENCE       =SIMP(statut='f',typ='TXM',
+                               into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
+         b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
+             VERSION         =SIMP(statut='f',typ='TXM' ),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+         ),
+)  ;
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f',
+            UIinfo={"groupes":("Résolution",)},
+                   fr="Résoudre un problème thermique linéaire stationnaire ou transitoire",
+         regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
+         MODELE          =SIMP(statut='o',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
+         EXCIT           =FACT(statut='o',max='**',
+           CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
+           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+         ),
+         INCREMENT       =FACT(statut='f',
+           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster ),
+           NUME_INIT       =SIMP(statut='f',typ='I'),
+           NUME_FIN        =SIMP(statut='f',typ='I'),
+         ),
+         TEMP_INIT       =FACT(statut='f',
+           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
+           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
+           CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
+           VALE            =SIMP(statut='f',typ='R'),
+           NUME_INIT       =SIMP(statut='f',typ='I'),
+         ),
+         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                               fr="Liste des paramètres de sensibilité.",
+                               ang="List of sensitivity parameters",
+         ),
+           SENS_INIT       =FACT(statut='f',
+             regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),),
+             STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+             EVOL_THER       =SIMP(statut='f',typ=evol_ther),
+             NUME_INIT       =SIMP(statut='f',typ='I'),
+           ),
+         SOLVEUR         =FACT(statut='d',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
+           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+           ),
+           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+           ),
+           b_ldlt_mult      =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           ),
+           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+           ),
+           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
+             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
+           ),
+         ),
+         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
+         ARCHIVAGE       =FACT(statut='f',
+           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),),
+           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
+           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
+                                 into=("RELATIF","ABSOLU")),
+           PAS_ARCH        =SIMP(statut='f',typ='I'),
+           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
+         ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         INFO            =SIMP(statut='f',typ='I',into=(1,2)),
+)  ;
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
+            UIinfo={"groupes":("Résolution",)},
+                   fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
+                      +" stationnaire ou transitoire" ,
+         regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
+         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
+         CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
+         CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
+         COMP_THER_NL    =FACT(statut='d',max='**',
+           RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
+                                 into=("THER_NL",
+                                       "THER_HYDR",
+                                       "SECH_GRANGER",
+                                       "SECH_MENSI",
+                                       "SECH_BAZANT",
+                                       "SECH_NAPPE"
+                                       ) ),
+         regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+         ),
+         EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
+         EXCIT           =FACT(statut='o',max='**',
+           CHARGE          =SIMP(statut='o',typ=char_ther),
+           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+         ),
+         INCREMENT       =FACT(statut='f',
+           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
+           NUME_INIT       =SIMP(statut='f',typ='I'),
+           NUME_FIN        =SIMP(statut='f',typ='I'),
+         ),
+         TEMP_INIT       =FACT(statut='f',
+           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
+           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
+           CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
+           VALE            =SIMP(statut='f',typ='R'),
+           NUME_INIT       =SIMP(statut='f',typ='I'),
+         ),
+         NEWTON          =FACT(statut='d',
+           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
+         ),
+         CONVERGENCE     =FACT(statut='d',
+           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
+           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
+           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
+         ),
+         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                               fr="Liste des paramètres de sensibilité.",
+                               ang="List of sensitivity parameters",
+         ),
+         SOLVEUR         =FACT(statut='d',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
+           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+           ),
+           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+           ),
+           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                   fr="Parametres relatifs a la non inversibilité de la matrice a factorise",
+             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           ),
+           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué",
+             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I'  ,defaut= 0 ),
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+             RESI_RELA       =SIMP(statut='f',typ='R'  ,defaut= 1.E-6 ),
+             NMAX_ITER       =SIMP(statut='f',typ='I'  ,defaut= 0 ),
+           ),
+           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
+             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
+             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.,),
+           ),
+           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
+         ),
+         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
+         ARCHIVAGE       =FACT(statut='f',
+           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),),
+           LIST_ARCH       =SIMP(statut='f',typ=(listis_sdaster) ),
+           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
+           PAS_ARCH        =SIMP(statut='f',typ='I'),
+           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
+         ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,
+                               into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
+         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+
+)  ;
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM 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
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
+                     fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
+                        +" stationnaire avec chargement mobile",
+                     reentrant='n',
+            UIinfo={"groupes":("Résolution",)},
+         MODELE          =SIMP(statut='o',typ=modele_sdaster ),
+         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
+         CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
+         EXCIT           =FACT(statut='o',max='**',
+           CHARGE          =SIMP(statut='o',typ=char_ther ),
+           FONC_MULT       =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+         ),
+         TEMP_INIT       =FACT(statut='f',
+           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
+           NUME_INIT       =SIMP(statut='f',typ='I',defaut= 0 ),
+         ),
+         CONVERGENCE     =FACT(statut='d',
+           CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+           CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
+           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
+           ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+         ),
+         SOLVEUR         =FACT(statut='d',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+           ),
+           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+           ),
+           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           ),
+           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+           ),
+           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+         ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
+         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+)  ;
+
+
+
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+def extr_table_prod(TYPE_RESU,**args):
+  if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r
+  raise AsException("type de concept resultat non prevu")
+
+EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n',
+            UIinfo={"groupes":("Résultats et champs",)},
+         fr="Extraire d'une table la matrice de masse généralisée assemblée",
+         TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ),
+
+         TABLE           =SIMP(statut='o',typ=table_sdaster),
+
+         NOM_PARA        =SIMP(statut='o',typ='TXM'),
+
+         FILTRE          =FACT(statut='f',min=1,max='**',
+           NOM_PARA        =SIMP(statut='o',typ='TXM'),
+           CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
+                                 into=("EQ","LT","GT","NE","LE","GE","VIDE",
+                                       "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
+           b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
+              regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
+              VALE            =SIMP(statut='f',typ='R'),
+              VALE_I          =SIMP(statut='f',typ='I'),
+              VALE_C          =SIMP(statut='f',typ='C'),
+              VALE_K          =SIMP(statut='f',typ='TXM'),),
+
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+         ),
+
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
+)  ;
+#& MODIF COMMANDE  DATE 28/02/2006   AUTEUR VABHHTS J.PELLET 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE CAMBIER S.CAMBIER
+from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init
+GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA",
+               op_init=gene_vari_alea_init,op=gene_vari_alea_ops,
+               sd_prod=reel,reentrant='n',
+               fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)",
+               UIinfo={"groupes":("Fonction",)},
+   TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"),
+   b_gamma    =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma",
+           VALE_MOY   = SIMP(statut='f', typ='R', defaut=1.),
+           BORNE_INF  = SIMP(statut='f', typ='R', defaut=0.),
+           COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
+             ),
+   b_expo    =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle",
+           VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
+           BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
+             ),
+   b_expo_tronq    =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee",
+           VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
+           BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
+           BORNE_SUP  = SIMP(statut='f', typ='R', defaut=1.),
+           COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1,val_min=0.),
+             ),
+   INIT_ALEA       =SIMP(statut='f',typ='I'),
+)
+#& MODIF COMMANDE  DATE 11/07/2005   AUTEUR CAMBIER S.CAMBIER 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE CAMBIER S.CAMBIER
+def gene_matr_alea_prod(MATR_MOYEN,**args ):
+  if (AsType(MATR_MOYEN) == matr_asse_gene_r )  : return matr_asse_gene_r
+  if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna
+  raise AsException("type de concept resultat non prevu")
+
+GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,
+#sd_prod=matr_asse_gene_r,
+sd_prod=gene_matr_alea_prod,
+               fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique",
+               reentrant='n',
+            UIinfo={"groupes":("Matrice",)},
+   MATR_MOYEN   = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)),
+
+#    cas matrice generalisee 
+   b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)",
+           COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
+                                fr="coefficient de variation de la matrice a generer" ),
+           ),
+#    cas macr_elem_dyna 
+   b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)",
+           fr="cas macr_elem_dyna (sous-structuratio)",
+           COEF_VAR_RIGI     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
+                                fr="coefficient de variation de la matrice de raideur" ),
+           COEF_VAR_MASS     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
+                                fr="coefficient de variation de la matrice de masse" ),
+           COEF_VAR_AMOR     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
+                                fr="coefficient de variation de la matrice d'amortissement" ),),
+
+   INIT_ALEA    =SIMP(statut='f',typ='I'),
+) ;
+   
+#& MODIF COMMANDE  DATE 03/04/2006   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+from Macro.lire_table_ops import lire_table_ops
+
+LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster,
+                 fr="Lecture d'un fichier contenant une table",
+            UIinfo={"groupes":("Table",)},
+         UNITE           =SIMP(statut='o',typ='I' ),
+         FORMAT          =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"),
+         NUME_TABLE      =SIMP(statut='f',typ='I',defaut=1),
+         SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' '),
+         PARA            =SIMP(statut='f',typ='TXM',max='**'),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         )  ;
+
+#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops
+
+MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster,
+                       reentrant='n',
+            UIinfo={"groupes":("Outils métier",)},
+            fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies"
+             +" par deux points et un intervalle",
+         RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ),
+# extraction des résultats
+         b_meca        =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique",
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ),  
+         ),
+         b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='TEMP' ),  
+         ),
+         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=25),  
+         MODELE          =SIMP(statut='f',typ=modele_sdaster ),
+         GROUP_MA        =SIMP(statut='f',typ=grma),
+         MAILLE          =SIMP(statut='f',typ=ma,max='**'),
+         regles=(EXCLUS('GROUP_MA','MAILLE'),),
+         LIGN_COUPE     =FACT(statut='o',max='**',
+           regles=(UN_PARMI('NB_POINTS','GROUP_NO'),),
+           INTITULE        =SIMP(statut='f',typ='TXM',),
+           GROUP_NO        =SIMP(statut='f',typ=grno),
+           NB_POINTS       =SIMP(statut='f',typ='I'),
+           b_nbpts = BLOC(condition = "NB_POINTS != None",
+              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),  
+              COOR_EXTR       =SIMP(statut='o',typ='R',min=2,max=3),
+              VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),), 
+         ),
+)  ;
+
+
+#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+   
+from Macro.macr_recal_ops import macr_recal_ops
+
+def macr_recal_prod(self,**args ):
+  return listr8_sdaster
+
+MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,
+            UIinfo={"groupes":("Résultats et champs",)},
+                      sd_prod=macr_recal_prod,
+                      fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux"
+                        +" ou sur d'autres résultats de calculs",
+         UNITE_ESCL      =SIMP(statut='o',typ='I'),
+         RESU_EXP        =SIMP(statut='o',typ=assd,max='**'),
+         POIDS           =SIMP(statut='f',typ=assd,max='**'),
+         RESU_CALC       =SIMP(statut='o',typ=assd,max='**'),
+         LIST_PARA       =SIMP(statut='o',typ=assd,max='**'),
+         ITER_MAXI       =SIMP(statut='f',typ='I',defaut=10),
+         RESI_GLOB_RELA  =SIMP(statut='f',typ='R',defaut=1.E-3),
+         UNITE_RESU      =SIMP(statut='f',typ='I',defaut=91),
+         PARA_DIFF_FINI  =SIMP(statut='f',typ='R',defaut=0.001),
+         GRAPHIQUE       =FACT(statut='d',
+           UNITE           =SIMP(statut='f',typ='I',defaut=90),
+           FORMAT          =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")),
+           INTERACTIF      =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ),
+)  ;
+#& MODIF COMMANDE  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE D6BHHJP J.P.LEFEBVRE
+INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster,
+                    fr="Récupère différentes informations propres à l'exécution en cours",
+                    reentrant='n',
+                    UIinfo={"groupes":("Gestion du travail",)},
+
+         regles=(),
+         LISTE_INFO     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3,
+                              into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),),
+         b_etat_unite   =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", 
+            regles=(UN_PARMI('UNITE','FICHIER'),),
+            UNITE          =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1,
+                                 fr="Unité logique dont on veut obtenir l'état",),
+            FICHIER        =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),
+                                 fr="Nom du fichier dont on veut obtenir l'état",),
+         ),
+         TITRE          =SIMP(statut='f',typ='TXM',max='**'),
+         INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)  ;
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE JMBHH01 J.M.PROIX
+
+from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops
+
+MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster,
+                       reentrant='n',
+          UIinfo={"groupes":("Modélisation",)},
+          fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
+          regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
+                  EXCLUS('SYME_Y','GROUP_MA_BORD'),),
+                 
+          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 20 ),  
+          ORIG_INER       =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
+                                fr="Point par rapport auquel sont calculées les inerties"),  
+          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+         
+          SYME_X          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"),
+          SYME_Y          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"),
+         
+          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+          fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
+          
+          GROUP_MA_BORD   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+                               fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
+         
+               b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None",
+                            fr=" calcul des carac. mecaniques",
+
+                    NOEUD           =SIMP(statut='f',typ=no,max='**',
+                    fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
+                    GROUP_MA_INTE   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+                    fr="groupes de mailles linéiques bordant des trous dans la section"),
+                    ),
+                    
+               b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
+                           fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
+                            regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
+                            LONGUEUR        =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"),  
+                            MATERIAU        =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"),
+                            LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
+                            fr="type de conditions aux limites sur le plancher supérieur" ),
+                              ), 
+                    )
+#& MODIF COMMANDE  DATE 07/02/2005   AUTEUR MABBAS M.ABBAS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops
+
+MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL",
+                      op=macr_cabri_mail_ops,
+                      sd_prod=maillage_sdaster,
+                      fr="maillage d'une jonction boulonnée de tuyauterie",
+                      reentrant='n',
+                      UIinfo={"groupes":("Outils métier",)},
+                      EXEC_MAILLAGE = FACT(statut='o',
+                        LOGICIEL      = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),),
+                        UNITE_DATG    = SIMP(statut = 'f',typ='I',defaut=70,),
+                        UNITE_MGIB    = SIMP(statut = 'f',typ='I',defaut=19,),
+                        NIVE_GIBI     = SIMP(statut = 'f',typ='I',defaut=10,
+                                          into = (3,4,5,6,7,8,9,10,11),
+                                            ),
+                                          ),
+                      RAFF_MAILLAGE   = FACT(statut = 'd',
+                        NB_RADIAL    = SIMP(statut = 'f',typ='I',defaut=2,),
+                        NB_CIRCONF   = SIMP(statut = 'f',typ='I',defaut=3,),
+                        NB_VERTICAL  = SIMP(statut = 'f',typ='I',defaut=6,),
+                        NB_ALESAGE   = SIMP(statut = 'f',typ='I',defaut=5,),
+                                          ),
+                      VERI_MAIL     = FACT(statut='d',
+                        VERIF         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),  
+                        APLAT         = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
+                                          ),                                          
+                      GEOM_BRID     = FACT(statut = 'o',
+                        NORME         = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),),
+                        b_bride_iso   = BLOC(condition = "NORME == 'OUI'",
+                          TYPE           = SIMP(statut='o',typ='TXM',
+                                                into=('A','AA','B','B1','C','D','D1','E','F',
+                                                      'FF','G','GG','H','H1','I','J','J1',
+                                                      'K','L','L1','M','N','O','P','S','T','W'), 
+                                               ),
+                                            ),
+                        b_bride_niso  = BLOC(condition = "NORME == 'NON'",
+                          TUBU_D_EXT     = SIMP(statut='o',typ='R',),
+                          TUBU_H         = SIMP(statut='o',typ='R',),
+                          BRID_D_EXT     = SIMP(statut='o',typ='R',),
+                          BRID_D_INT     = SIMP(statut='o',typ='R',),
+                          BRID_H         = SIMP(statut='o',typ='R',),
+                          BRID_D_CONGE   = SIMP(statut='o',typ='R',),
+                          BRID_R_CONGE   = SIMP(statut='o',typ='R',),
+                          BRID_D_EPAUL   = SIMP(statut='o',typ='R',),
+                          BRID_H_EPAUL   = SIMP(statut='o',typ='R',),
+                          BRID_D_ALESAG  = SIMP(statut='o',typ='R',),
+                          BRID_P_ALESAG  = SIMP(statut='o',typ='R',),
+                          BRID_H_ALESAG  = SIMP(statut='o',typ='R',),
+                          GOUJ_N_GOUJON  = SIMP(statut='o',typ='I',),
+                          GOUJ_D_GOUJON  = SIMP(statut='o',typ='R',),
+                          GOUJ_E_FILET   = SIMP(statut='o',typ='R',),
+                          GOUJ_D_RONDEL  = SIMP(statut='o',typ='R',),
+                          GOUJ_E_RONDEL  = SIMP(statut='o',typ='R',),
+                          GOUJ_D_ECROU   = SIMP(statut='o',typ='R',),
+                          GOUJ_E_ECROU   = SIMP(statut='o',typ='R',),
+                          ETAN_E_JOINT   = SIMP(statut='o',typ='R',),
+                                            ),
+                                         ),
+                      IMPRESSION    = FACT(statut='d',
+                        UNITE          = SIMP(statut='f',typ='I'),
+                        FORMAT         = SIMP(statut='f',typ='TXM',defaut="ASTER",    
+                                              into=("ASTER","CASTEM","IDEAS"),
+                                             ),
+                        b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'",
+                          NIVE_GIBI      = SIMP(statut='f',typ='I',defaut=10,into=(3,10),),
+                                            ),
+                        b_impr_ideas  = BLOC(condition = "FORMAT == 'IDEAS'",
+                          VERSION        = SIMP(statut='f',typ='I',defaut=5,into=(4,5),),
+                                            ),
+                                          ),
+                     );
+
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+#& RESPONSABLE
+DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f',UIinfo={"groupe":("Résolution",)},
+                   fr="Calcul de l'évolution dynamique d'une structure dont la géométrie ou le matériau ont un comportement"
+                       +" non linéaire, par une méthode explicite sur les accélérations ",
+         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),UN_PARMI('DIFF_CENT','TCHAMWA'),),
+         MODELE          =SIMP(statut='o',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
+         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
+         MASS_DIAG       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+         EXCIT           =FACT(statut='o',max='**',
+           regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
+                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
+                   # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
+                   ),
+           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
+                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
+           CHARGE          =SIMP(statut='o',typ=char_meca),
+           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+           DIRECTION       =SIMP(statut='f',typ='R',max=3),
+           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+         ),
+         AMOR_MODAL      =FACT(statut='f',
+           MODE_MECA       =SIMP(statut='o',typ=mode_meca),
+           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
+           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
+           REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+         ),
+         PROJ_MODAL      =FACT(statut='f',max='**',
+           MODE_MECA       =SIMP(statut='o',typ=mode_meca),
+           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
+           regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
+           MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
+           RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
+           AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
+         ),
+         EXCIT_GENE      =FACT(statut='f',
+           FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
+           VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
+         ),
+         COMP_INCR       =C_COMP_INCR(),
+         COMP_ELAS       =FACT(statut='f',max='**',
+           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
+                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
+                                      "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
+           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),           
+           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
+      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
+           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
+           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
+           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
+                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
+         ),
+#-------------------------------------------------------------------
+         ETAT_INIT       =FACT(statut='f',
+           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',),
+                   EXCLUS('EVOL_NOLI','DEPL',),
+                   EXCLUS('EVOL_NOLI','VITE'),
+                   EXCLUS('EVOL_NOLI','ACCE'),
+                   EXCLUS('EVOL_NOLI','SIGM',),
+                   EXCLUS('EVOL_NOLI','VARI',),
+                   EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
+                   EXCLUS('NUME_ORDRE','INST'), ),
+           DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
+           VITE            =SIMP(statut='f',typ=cham_no_sdaster),
+           ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
+           SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
+           VARI            =SIMP(statut='f',typ=cham_elem),
+           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
+           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+           NUME_ORDRE      =SIMP(statut='f',typ='I'),
+           INST            =SIMP(statut='f',typ='R'),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           NUME_DIDI       =SIMP(statut='f',typ='I'),
+           INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
+         ),
+#-------------------------------------------------------------------
+         INCREMENT       =FACT(statut='o',
+           regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
+                   EXCLUS('NUME_INST_FIN','INST_FIN'),),
+           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
+           EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
+                                 into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
+           NUME_INST_INIT  =SIMP(statut='f',typ='I'),
+           INST_INIT       =SIMP(statut='f',typ='R'),
+           NUME_INST_FIN   =SIMP(statut='f',typ='I'),
+           INST_FIN        =SIMP(statut='f',typ='R'),
+           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
+           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
+           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
+           OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',),
+           NOM_CMP         =SIMP(statut='f',typ='TXM',),
+           VALE            =SIMP(statut='f',typ='R'),
+         ),
+#-------------------------------------------------------------------
+         DIFF_CENT       =FACT(statut='f',
+         ),
+         TCHAMWA         =FACT(statut='f',
+           PHI             =SIMP(statut='f',typ='R',defaut= 1.05),
+         ),
+         STOP_CFL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+         NEWTON          =FACT(statut='c',
+           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
+           PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
+           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
+           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
+           REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
+           PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
+         ),
+         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
+         SOLVEUR         =FACT(statut='d',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+           b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+           ),
+           b_ldlt          =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+           ),
+           b_ldlt_mult     =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
+                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
+           ),
+           b_gcpc          =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
+             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
+             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
+             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+           ),
+           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+         ),
+#-------------------------------------------------------------------
+         RECH_LINEAIRE   =FACT(statut='c',
+           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
+           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
+           ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
+           PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
+           RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
+           RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
+           RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2),
+         ),
+         PILOTAGE        =FACT(statut='c',
+           regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
+           TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
+           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
+           ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
+           ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
+           ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
+           ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
+           PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+           SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
+           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
+           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
+                         ),
+         CONVERGENCE     =FACT(statut='d',
+           regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
+           SIGM_REFE       =SIMP(statut='f',typ='R'),
+           EPSI_REFE       =SIMP(statut='f',typ='R'),
+           FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
+           FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
+           FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),           
+           RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
+           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
+           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
+           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
+           ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
+           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
+           RESI_INTE_RELA  =SIMP(statut='f',typ='R'
+                                ,defaut= 1.0E-6),
+           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
+           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
+           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
+                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
+         ),
+#-------------------------------------------------------------------
+        AFFICHAGE      = FACT(statut='f',max=16,
+
+            UNITE       = SIMP(statut='f',typ='I',val_min=1),
+
+            LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
+            PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
+            LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
+            
+            NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
+                                into=("STANDARD","MINIMUM",
+                                      "ITER_NEWT",
+                                      "INCR_TPS",
+                                      "RESI_RELA","RELA_NOEU",
+                                      "RESI_MAXI","MAXI_NOEU",
+                                      "RESI_REFE","REFE_NOEU",
+                                      "RELI_ITER","RELI_COEF",
+                                      "PILO_PARA",
+                                      "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
+                                      "MATR_ASSE",
+                                      "ITER_DEBO",
+                                      "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
+                                      "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
+                                      "SUIV_1","SUIV_2","SUIV_3","SUIV_4",
+                                     ),
+                               ),
+            b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
+                    NOM_COLONNE == 'RESI_MAXI' or\
+                    NOM_COLONNE == 'RESI_REFE' or\
+                    NOM_COLONNE == 'CTCD_GEOM' or\
+                    NOM_COLONNE == 'STANDARD' ",
+                            INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
+                          ),
+         ),
+#-------------------------------------------------------------------
+         ARCHIVAGE       =FACT(statut='f',
+           regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
+                   EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
+           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+           PAS_ARCH        =SIMP(statut='f',typ='I' ),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
+           ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           NUME_INIT       =SIMP(statut='f',typ='I'),
+           DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
+           into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
+         ),
+         OBSERVATION     =FACT(statut='f',max='**',
+           regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
+                   PRESENT_PRESENT('MAILLE','POINT'),),
+           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+
+into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ),
+           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
+           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
+           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PAS_OBSE        =SIMP(statut='f',typ='I'),
+           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+           POINT           =SIMP(statut='f',typ='I' ,max='**'),
+         ),
+#-------------------------------------------------------------------
+           SOLV_NON_LOCAL  =FACT(statut='f',
+             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
+             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
+               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+             ),
+             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
+               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+             ),
+             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
+                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
+               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
+               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+             ),
+             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
+               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
+               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
+               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+             ),
+           ),
+           LAGR_NON_LOCAL  =FACT(statut='f',
+             ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
+             RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
+             RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
+             R               =SIMP(statut='f',typ='R',defaut= 1000.),
+             ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
+           ),
+#-------------------------------------------------------------------
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+)  ;
+#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops
+   
+def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER,
+                         CHAR_THER,CHAR_MECA,RESU_THER,**args):
+  if MODELE_THER != None:
+   self.type_sdprod(MODELE_THER,modele_sdaster)   
+  if MODELE_MECA != None:
+   self.type_sdprod(MODELE_MECA,modele_sdaster)  
+  if RESU_THER != None:
+   self.type_sdprod(RESU_THER,evol_ther)     
+  if CHAM_MATER != None:
+   self.type_sdprod(CHAM_MATER,cham_mater)     
+  if CHAR_THER != None: 
+    for m in CHAR_THER:
+      self.type_sdprod(m['CHARGE'],char_ther)
+  if CHAR_MECA != None: 
+    for m in CHAR_MECA:
+      self.type_sdprod(m['CHARGE'],char_meca)
+  return evol_noli
+
+
+MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC",
+                      op=macr_cabri_calc_ops,
+                      sd_prod=macr_cabri_calc_prod,
+                      fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie",
+                      reentrant='n',
+                      UIinfo={"groupes":("Outils métier",)},
+                      MAILLAGE   = SIMP(statut='o',typ=maillage_sdaster,),
+                      AFFE_MATERIAU = FACT(statut='o',max='**',
+                        regles=(UN_PARMI('TOUT','GROUP_MA',),),
+                        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
+                        GROUP_MA = SIMP(statut='f',typ='TXM',into=(
+                                                                  "BRIDE",
+                                                                  "GOUJON",
+                                                                  "ROND",
+                                                                  "ECROU",
+                                                                  "JOINT",) ),
+                        MATER    = SIMP(statut='o',typ=mater_sdaster),
+                        TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
+                      ),                      
+                      CHAM_MATER = SIMP(statut = 'f',typ=CO,),
+                      MODELE_THER= SIMP(statut = 'f',typ=CO,),
+                      
+                      DEFI_CHAR_THER = FACT(statut ='d',
+                        TEMP_INIT     = SIMP(statut='d',typ='R',defaut= 25.,),
+                        COEF_H_FLUI   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+                        TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+                        COEF_H_AIR    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+                        TEMP_EXT_AIR  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+                        LIST_INST     = SIMP(statut='f',typ=listr8_sdaster),
+                      ),                      
+                      
+                      CHAR_THER  = FACT(statut = 'f',max=4,
+                        CHARGE    = SIMP(statut='o',typ=CO),
+                        TYPE      = SIMP(statut='o',typ='TXM',
+                                 into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON",
+                                       "BRIDE_JOINT"),)
+                                       ),
+
+                      RESU_THER  = SIMP(statut = 'f',typ=CO,),                                       
+
+                                       
+                      MODELE_MECA= SIMP(statut = 'f',typ=CO,),
+
+                      DEFI_CHAR_MECA   = FACT(statut='o',
+                        PRETENS    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+                        PRES_REP   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+                        EFFE_FOND  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
+                      ),                                                             
+
+                      CHAR_MECA  = FACT(statut = 'f',max=11,
+                        CHARGE    = SIMP(statut='o',typ=CO),
+                        TYPE      = SIMP(statut='o',typ='TXM',
+                                 into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT",
+                                       "BLOC_LAT_ALES","BLOC_LAT_NALES",
+                                       "PLAN_TUBE",
+                                       "PRES_FLU","EFFET_FOND",
+                                       "CONT_JOINT",
+                                       "DEFO_THER",
+                                       "SERR_ECROU_1","SERR_ECROU_2",),)
+                                       ),
+                     
+                      RELATION = SIMP(statut='f',typ='TXM',
+                                       into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),),
+                        
+                      SOLVEUR   = FACT(statut='d',
+                        METHODE  = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ),
+                        b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ",
+                           fr="Paramètres de la méthode multi frontale",
+                           RENUM           = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+                           NPREC           = SIMP(statut='d',typ='I',defaut=8),
+                           STOP_SINGULIER  = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+                           ),                 
+                      ),                                             
+                      INCREMENT = FACT(statut='f',
+                        regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
+                                EXCLUS('NUME_INST_FIN','INST_FIN'),),
+                        LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+                        EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
+                                 into=("CHRONOLOGIQUE",) ),                                 
+                        NUME_INST_INIT  =SIMP(statut='f',typ='I'),
+                        INST_INIT       =SIMP(statut='f',typ='R'),
+                        NUME_INST_FIN   =SIMP(statut='f',typ='I'),
+                        INST_FIN        =SIMP(statut='f',typ='R'),
+                        PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
+                        SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
+                        SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
+                        COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
+                        OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
+                        NOM_CHAM        =SIMP(statut='f',typ='TXM',),
+                        NOM_CMP         =SIMP(statut='f',typ='TXM',),
+                        VALE            =SIMP(statut='f',typ='R'),
+                      ),
+                      NEWTON          =FACT(statut='d',
+                        REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
+                        PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
+                        MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
+                        PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
+                        REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
+                        EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+                      ),
+                      RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
+                                into=("IMPLICITE",)),
+                      CONVERGENCE     =FACT(statut='d',
+                        regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
+                        SIGM_REFE       =SIMP(statut='f',typ='R'),
+                        EPSI_REFE       =SIMP(statut='f',typ='R'),
+                        FLUX_THER_REFE  =SIMP(statut='f',typ='R'),        
+                        RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
+                        RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
+                        RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
+                        ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
+                        ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
+                      ),
+                     );
+
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+CREA_TABLE=OPER(nom="CREA_TABLE",op=  36,sd_prod=table_sdaster,
+                fr="Création d'une table à partir d'une fonction ou de deux listes",
+                reentrant='f',UIinfo={"groupes":("Table",)},
+
+           regles=(EXCLUS('FONCTION','LISTE'),),
+
+           LISTE=FACT(statut='f',max='**',
+                 fr="Creation d'une table a partir de listes",
+                 regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), 
+                        PARA     =SIMP(statut='o',typ='TXM'),
+                        TYPE_K   =SIMP(statut='f',typ='TXM',defaut='K8',
+                                    into=('K8','K16','K24')),
+                        NUME_LIGN=SIMP(statut='f',typ='I',max='**'),
+                        LISTE_I  =SIMP(statut='f',typ='I',max='**'),
+                        LISTE_R  =SIMP(statut='f',typ='R',max='**'),
+                        LISTE_K  =SIMP(statut='f',typ='TXM', max='**'),
+           ),
+           FONCTION=FACT(statut='f',
+                    fr="Creation d'une table a partir d'une fonction",
+                        FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)),
+                        PARA=SIMP(statut='f',typ='TXM',min=2,max=2),
+           ),
+           b_fonction = BLOC(condition='FONCTION != None',
+               regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
+                       DERIVABLE('FONCTION'),),
+               SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                                    fr="Liste des paramètres de sensibilité.",
+                                    ang="List of sensitivity parameters"),
+           ),
+           TITRE=SIMP(statut='f',typ='TXM',max='**'),
+)  ;
+
+
+
+#& MODIF COMMANDE  DATE 04/10/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE GNICOLAS G.NICOLAS
+
+from Macro.macr_fiabilite_ops import macr_fiabilite_ops
+
+#
+#====
+# 1. Le retour : une liste de rééls.
+#====
+#
+def macr_fiabilite_prod ( self , **args ):
+  return listr8_sdaster
+#
+#====
+# 2. L'entete
+#====
+#
+MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops,
+                         docu="U7.03.31",UIinfo={"groupe":("Post traitements",)},
+                         sd_prod=macr_fiabilite_prod,
+                         fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).",
+                         ang="Fiability mechanics.",
+#
+#====
+# 3. Le niveau d'information
+#====
+#
+   INFO           = SIMP(statut="f",typ="I",defaut=1,into=(1,2)),
+#
+#====
+# 4. Nom et Version du logiciel de fiabilité
+#====
+#
+   LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO",
+                   into=("MEFISTO",),
+                   fr="Nom du logiciel de fiabilité.",
+                   ang="Fiability software name."),
+#
+   VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2",
+                  into=("V3_2", "V3_N"),
+                  fr="Version du logiciel de fiabilité.",
+                  ang="Fiability software release."),
+#
+#====
+# 5. Les entrees-sorties du calcul ASTER déterministe
+#====
+#
+# 5.1. ==> Le jeu de commandes déterministe
+#
+   UNITE_ESCL = SIMP(statut="o",typ="I",
+                     fr="Unité logique associée aux commandes du calcul ASTER déterministe.",
+                     ang="Logical unit for the commands of the ASTER deterministic calculation."),
+#
+# 5.2. ==> Le destin des messages produits par ASTER
+#
+   MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER",
+                        into=("AUCUN", "DERNIER", "TOUS"),
+                        fr="Quels messages ASTER récupérer.",
+                        ang="Which ASTER messages must be kept."),
+#
+#====
+# 6. Options
+#====
+# 6.1. ==> Générales
+#
+# 6.1.1. ==> La valeur du seuil
+#
+   SEUIL = SIMP(statut="o",typ="R",max=1,
+                fr="Le seuil de défaillance.",
+                ang="Failure threshold."),
+#
+# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que
+#            la défaillance a lieu au dessus d'un seuil maximum ou
+#            en dessous d'un seuil minimum
+#
+   SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1,
+                     into=("MINIMUM","MAXIMUM"),
+                     fr="Que faut-il ne pas dépasser : un maximum ou un minimum.",
+                     ang="What is the failure threshold : maximum or minimum."),
+#
+# 6.2. ==> Pour MEFISTO
+#
+### en attente de résolution de AL 2004-006 (1/2)   b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'",
+#
+# 6.2.1. ==> Pilotage de la recherche du point de conception
+#
+     RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI",
+                            into=("OUI","NON"),
+                            fr="Pour trouver le point de conception.",
+                            ang="To find the design point."),
+#
+     b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'",
+#
+       EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2,
+                        fr="Précision du test d'arret sur les points itératifs dans l'espace standard.",
+                        ang="Precision of stop test for iterative points in standard space."),
+#
+       EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2,
+                        fr="Précision du test d'arret sur la proximité de la surface d'état limite.",
+                        ang="Precision of stop test for limit state surface."),
+#
+       TAU       = SIMP(statut="f",typ="R",defaut=5.0E-1,
+                        fr="Paramètre de la méthode de minimisation.",
+                        ang="Parameter for the minimization method."),
+#
+       OMEGA     = SIMP(statut="f",typ="R",defaut=1.0E-4,
+                        fr="Paramètre de la méthode de minimisation.",
+                        ang="Parameter for the minimization method."),
+#
+       ITER_MAX  = SIMP(statut="f",typ="I",defaut=50,
+                        fr="Nombre maximum d'itérations.",
+                        ang="Maximum number of iterations."),
+     ),
+#
+# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance
+#
+     METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI",
+                         into=("OUI","NON"),
+                         fr="Recherche de la probabilité de défaillance avec la méthode FORM.",
+                         ang="Research of failure probability with FORM method."),
+#
+     METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON",
+                         into=("OUI","NON"),
+                         fr="Recherche de la probabilité de défaillance avec la méthode SORM.",
+                         ang="Research of failure probability with SORM method."),
+#
+     TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON",
+                              into=("OUI","NON"),
+                              fr="Recherche de la probabilité de défaillance avec le tirage d'importance.",
+                              ang="Research of failure probability with ."),
+#
+     b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'",
+#
+       NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3,
+                            fr="Nombre de simulations pour le tirage d'importance.",
+                            ang="Number of simulation for."),
+#
+     ),
+#
+# 6.2.3. ==> Création d'une surface de réponse polynomiale
+#
+     POLYNOME_TAYLOR   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),),
+     HGRAD             = SIMP(statut="f",typ="R",defaut=1.0E-2,
+                              fr="Pas incrémental pour le calcul des gradients.",
+                              ang="Step for calculation of gradients."),
+     HHESS             = SIMP(statut="f",typ="R",defaut=1.0E-2,
+                              fr="Pas incrémental pour le calcul des dérivées secondes.",
+                              ang="Step for calculation of second derivatives."),
+#
+# 6.2.4. ==> Recherche d'un plan d'expérience
+#
+     PLAN_EXPERIENCE   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
+                              fr="Construction d'un plan d'expérience.",
+                              ang="Construction of an experiment plan."),
+#
+     b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'",
+#
+       ALPHA         = SIMP(statut="f",typ="R",defaut=2.0E-1,
+                            fr="Plan d'expérience : maille du plan de type composite centré.",
+                            ang="Experiment plane : mesh centered composite."),
+#
+       BETA          = SIMP(statut="f",typ="R",defaut=4.0E-1,
+                            fr="Plan d'expérience : maille du plan de type factoriel.",
+                            ang="Experiment plane : mesh factor."),
+#
+     ),
+#
+# 6.2.5. ==> Les tests
+# 6.2.5.1. ==> Test de la sphere
+#
+     T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
+                     fr="Test de la sphère.",
+                     ang="Sphere test."),
+#
+     b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'",
+#
+       METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE",
+                           into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"),
+                           fr="Type de méthode.",
+                           ang="Method."),
+#
+       NB_POINT     = SIMP(statut="f",typ="I",max=1,defaut=60,
+                           fr="Nombre de points de la sphere.",
+                           ang="Number of points over the sphere.")
+     ),
+#
+# 6.2.5.2. ==> Test du maximum fort
+#
+     T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
+                           fr="Test du maximum fort.",
+                           ang="Strong maximum test."),
+#
+     b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'",
+#
+       COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0,
+                      fr="Cosinus de l'angle d'exclusion.",
+                      ang="Cosine of angle of exclusion."),
+#
+       DPROB   = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1,
+                      fr="Fraction d'iso-densité de probabilité de défaillance.",
+                      ang="Fraction.")
+#
+     ),
+#
+# 6.2.5.3. ==> Test du hessien
+#
+     T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
+                      fr="Test du hessien.",
+                      ang="Hessian test."),
+#
+# 6.2.6. ==> Les correlations entre les variables
+#
+     MATRICE = SIMP(statut="f",typ="R",max="**",
+                    fr="Matrice de corrélation entre les variables.",
+                    ang="Correlation matrix."), 
+#
+### en attente de résolution de AL 2004-006 (2/2)   ),
+#
+#====
+# 7. Definition des paramètres
+#====
+#
+   VARIABLE = FACT(statut="o",min=1,max="**",
+#
+# 7.1. ==> Nom de la variable
+#
+       NOM = SIMP(statut="o",typ="TXM",
+                  fr="Nom de la variable, identique au nom de concept PARA_SENSI.",
+                  ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."),
+#
+# 7.2. ==> Loi de distribution
+#
+       LOI = SIMP(statut="o",typ="TXM",
+                  into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"),
+                  fr="Choix de la loi",
+                  ang="Law."),
+#
+# 7.2.1. ==> Loi normale
+#
+       b_normale=BLOC(condition="LOI=='NORMALE'",
+#
+         VALE_MOY   = SIMP(statut="o",typ="R",max=1,
+                               fr="Valeur moyenne.",
+                               ang="Mean value."),
+#
+         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
+                               fr="Ecart type.",
+                               ang="Standard deviation."),
+#
+       ),
+#
+# 7.2.2. ==> Loi lognormale
+#
+       b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
+#
+         VALE_MIN       = SIMP(statut="o",typ="R",max=1,
+                                   fr="Valeur minimale.",
+                                   ang="Minimal value."),
+#
+         VALE_MOY       = SIMP(statut="f",typ="R",max=1,
+                                   fr="Valeur moyenne dans l'espace de la loi normale.",
+                                   ang="Mean value in the space of the normal law."),
+#
+         ECART_TYPE     = SIMP(statut="f",typ="R",max=1,
+                                   fr="Ecart type dans l'espace de la loi normale.",
+                                   ang="Standard deviation in the space of the normal law."),
+#
+         VALE_MOY_PHY   = SIMP(statut="f",typ="R",max=1,
+                                   fr="Valeur moyenne dans l'espace physique.",
+                                   ang="Mean value in the physical space."),
+#
+         ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1,
+                                   fr="Ecart type dans l'espace physique.",
+                                   ang="Standard deviation in the physical space."),
+#
+         regles=(AU_MOINS_UN("VALE_MOY"  ,"VALE_MOY_PHY"),
+                 AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"),
+                 EXCLUS  ("VALE_MOY"  ,"VALE_MOY_PHY"),
+                 EXCLUS  ("VALE_MOY"  ,"ECART_TYPE_PHY"),
+                 EXCLUS  ("ECART_TYPE","VALE_MOY_PHY"),
+                 EXCLUS  ("ECART_TYPE","ECART_TYPE_PHY")),
+#
+       ),
+#
+# 7.2.3. ==> Loi uniforme
+#
+       b_uniforme=BLOC(condition="LOI=='UNIFORME'",
+#
+         VALE_MIN = SIMP(statut="o",typ="R",max=1,
+                             fr="Valeur minimale.",
+                             ang="Minimal value."),
+#
+         VALE_MAX = SIMP(statut="o",typ="R",max=1,
+                             fr="Valeur maximale.",
+                             ang="Maximal value."),
+#
+       ),
+#
+# 7.2.4. ==> Loi normale tronquée
+#
+       b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'",
+#
+         VALE_MOY   = SIMP(statut="o",typ="R",max=1,
+                               fr="Valeur moyenne de la loi normale complète.",
+                               ang="Mean value for the entire normal law."),
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene_r,reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-               fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats"
-                  +" en coordonnées généralisées",
-         RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
-         INST            =SIMP(statut='o',typ='R' ),
-         NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
-         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
-         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
+                               fr="Ecart type de la loi normale complète.",
+                               ang="Standard deviation for the entire normal law."),
 #
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+         VALE_MIN   = SIMP(statut="o",typ="R",max=1,
+                               fr="Valeur minimale.",
+                               ang="Minimal value."),
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster,
-         fr="Récupérer dans une table les valeurs d'un paramètre d'une SD Résultat ou d'extraire une table contenue"
-            +" dans une autre SD pour celles qui le permettent",
-         UIinfo={"groupes":("Résultats et champs",)},reentrant='n',
-         CO              =SIMP(statut='o',typ=assd),
-         regles=(UN_PARMI('NOM_TABLE','NOM_PARA')),
-         NOM_TABLE       =SIMP(statut='f',typ='TXM' ),
-         NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+         VALE_MAX   = SIMP(statut="o",typ="R.",max=1,
+                               fr="Valeur maximale.",
+                               ang="Maximal value."),
 #
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+       ),
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-def reso_grad_prod(MATR_ASSE,**args ):
-  if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
-  if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
-  if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r
-  raise AsException("type de concept resultat non prevu")
-
-RESO_GRAD=OPER(nom="RESO_GRAD",op=  84,sd_prod=reso_grad_prod,
-               fr="Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
-               reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
-         CHAM_NO         =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r ) ),
-         CHAM_CINE       =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r ) ),
-         MATR_FACT       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
-         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),  
-         REPRISE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1E-6 ),  
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# 7.3. ==> Paramètres de calcul
+# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja
 #
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+       regles=(EXCLUS("POINT_INI","POINT_CONCEPT"),
+               EXCLUS("POINT_REF","POINT_CONCEPT"),),
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-def reso_ldlt_prod(CHAM_NO,**args ):
-  if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r
-  if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r
-  if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r
-  if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c
-  if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c
-  if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c
-  raise AsException("type de concept resultat non prevu")
-
-RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f',
-               fr="Résoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT",
-            UIinfo={"groupes":("Résolution",)},
-         MATR_FACT       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
-                                               matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
-         CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,
-                                               cham_no_temp_c,cham_no_depl_c,cham_no_pres_c) ),
-         CHAM_CINE       =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_c) ),
-         # RESI_RELA : précision utilisée si SOLVEUR=MUMPS
-         RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.e-6),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
+# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme.
+#            Si on ne le fait pas, le programme prendra la valeur moyenne.
 #
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+       POINT_INI = SIMP(statut="f",typ="R",max=1,
+                          fr="Point de démarrage de l'algorithme itératif.",
+                          ang="Initial point for iterative process."),
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE BOYERE E.BOYERE
-def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ):
-  if AsType(RESU_GENE) == tran_gene : return dyna_trans
-  if AsType(RESU_GENE) == mode_gene : return mode_meca
-  if AsType(RESU_GENE) == mode_cycl : return mode_meca
-  if AsType(RESU_GENE) == harm_gene : return dyna_harmo
-  if AsType(RESULTAT)  == mode_meca : return mode_meca
-  raise AsException("type de concept resultat non prevu")
+# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser.
+#            Si on ne le fait pas, le programme prendra la valeur moyenne.
+#
+       POINT_REF = SIMP(statut="f",typ="R",max=1,
+                          fr="Point de référence de l'algorithme itératif.",
+                          ang="Reference point for iterative process."),
+#
+# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception
+#
+       POINT_CONCEPT = SIMP(statut="f",typ="R",max=1,
+                              fr="Point de conception.",
+                              ang="Design point."),
+#
+# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre
+#
+       GRADIENT = SIMP(statut="o",typ="TXM",max=1,
+                           into=("OUI","NON"),
+                           fr="ASTER calcule directement le gradient.",
+                       ang="ASTER computes the gradient for this parameter."),
 
-REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
-                    fr="Restituer dans la base physique des résultats en coordonnées généralisées",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-        regles=(UN_PARMI('RESU_GENE','RESULTAT'),
-                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
-                EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
-#  Doc U à revoir
-                EXCLUS('MULT_APPUI','CORR_STAT'),
-                EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
-                EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
-                EXCLUS('NOEUD','GROUP_NO'), 
-                PRESENT_PRESENT('RESULTAT','SQUELETTE'),
-                PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
-         RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ),
-         RESULTAT        =SIMP(statut='f',typ=mode_meca ),
-         
-         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
-         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
-         TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
-         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
-         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
-         LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
-         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
-         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
-         MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",   
-                               into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",                 
-                                     "SIGM_ELNO_DEPL","FORC_NODA",) ),
-         TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-         NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-         ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3 ),
+       b_gradient=BLOC(condition="GRADIENT=='NON'",
+         INCREMENT = SIMP(statut="o",typ="R",max=1,
+                             fr="Incrément dans la direction.",
+                         ang="Direction increment."),
+       ),
 
-         SQUELETTE       =SIMP(statut='f',typ=squelette ),
-         SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
-         SECTEUR         =SIMP(statut='f',typ='I',defaut= 1 ),  
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
+   ),
+#
+);
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+# RESPONSABLE JMBHH01 J.M.PROIX
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
-                    reentrant='n',
-            fr="Calculer la réponse d'une structure dans la base physique",
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
-         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
-         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
-         BANDE           =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2    ),  
-         NUME_ORDRE      =SIMP(statut='f',typ='I'      ,validators=NoRepeat(),max='**' ),  
-         INTE_SPEC_GENE  =SIMP(statut='o',typ=tabl_intsp ),
-         NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
-         MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
-         NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
-         NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7,    
-                               into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL",
-                                     "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ),
-         EXCIT           =FACT(statut='f',
-           NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
-           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
-         ),
-         MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
-                               into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
+                   fr="Définir le comportement d'un monocristal ou d'un polycristal",
+                   reentrant='n',
+            UIinfo={"groupes":("Modélisation",)},
+                  regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),),
+
+          MONOCRISTAL    =FACT(statut='f', max='**',
+             MATER           =SIMP(statut='o', typ=mater_sdaster, max=1),
+             ECOULEMENT      =SIMP(statut='o', typ='TXM', max=1,
+                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"),
+             ECRO_ISOT       =SIMP(statut='o', typ='TXM', max=1,
+                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"),
+             ECRO_CINE       =SIMP(statut='o', typ='TXM', max=1,
+                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"),
+             ELAS            =SIMP(statut='f', typ='TXM', max=1,
+                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"),
+             FAMI_SYST_GLIS  =SIMP(statut='o',typ='TXM', max=1, 
+                                into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1',
+                                'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL'),),
+                                ),
+                                
+                                
+          POLYCRISTAL    =FACT(statut='f', max='**',
+             MONOCRISTAL     =SIMP(statut='o', typ=compor_sdaster, max=1),
+             FRAC_VOL  =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"),
+             ANGL_REP  =SIMP(statut='o',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"),
+                                ),
+                                
+                                
+          b_poly      =BLOC( condition = "POLYCRISTAL!='None'",
+          LOCALISATION     =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',),
+                fr="Donner le nom de la règle de localisation"),
+          
+           b_beta      =BLOC( condition = "LOCALISATION=='BETA'",
+             DL            =SIMP(statut='o',typ='R',max=1),
+             DA            =SIMP(statut='o',typ='R',max=1),
+             ),
+             ),
+                                
+                                );
+                   
+#& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -22900,342 +22995,222 @@ REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
+# RESPONSABLE ASSIRE A.ASSIRE
 
-from Macro.stanley_ops import stanley_ops
+from Macro.defi_part_feti_ops import defi_part_feti_ops
 
-STANLEY=MACRO(nom="STANLEY",op=stanley_ops,sd_prod=None,
-                       reentrant='n',
-              UIinfo={"groupes":("Outils métier",)},
-                       fr="Outil de post-traitement interactif Stanley ",
-         RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther,mode_meca,mode_stat,dyna_harmo,dyna_trans) ),
+DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster,
+                     reentrant='n',UIinfo={"groupe":("Maillage",)},
+                     fr="Creation partitionnement en sous-domaines pour FETI",
+         regles=(UN_PARMI('MAILLAGE','MODELE'),),
+         MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
          MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         DISPLAY         =SIMP(statut='f',typ='TXM'),
-)  ;
-#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
+         NB_PART         =SIMP(statut='o',typ='I',val_min=2),
+         EXCIT           =FACT(statut='f',max='**',
+           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
+
+         # Methode de partitionnement
+         METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
+         
+         LOGICIEL      =SIMP(statut='f',typ='TXM'),
+
+         # Corrige les problemes possibles de non-connexite des sous-domaines
+         CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
+
+         # Permet de grouper des mailles dans un meme sous-doamine
+         GROUPAGE        =FACT(statut='f',max='**',
+           GROUP_MA       =SIMP(statut='o',typ=grma,),
+                          ),
+         # Permet d'appliquer des poids sur certaines mailles
+         POIDS_MAILLES   =FACT(statut='f',max='**',
+           GROUP_MA       =SIMP(statut='o',typ=grma,),
+           POIDS          =SIMP(statut='f',typ='I',val_min=2),
+                          ),
+         # Prefixe pour le nom des group_ma definissant les sous-domaines 
+         NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
+
+         # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
+         TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
+         
+         # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
+         # Note : le calcul FETI sera impossible
+         b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
+           NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
+             ),
+
+         INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
+);
+#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-# RESPONSABLE PBADEL P.BADEL
-STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
-                   fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
-                      +" d'une structure en non linéaire",
-                   reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
-                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
-         ),
-         SOUS_STRUC      =FACT(statut='f',min=01,max='**',
-                regles=(UN_PARMI('TOUT','MAILLE'),),
-                CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
-                TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-                MAILLE      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
-              ),
-         COMP_INCR       =C_COMP_INCR(),
-         COMP_ELAS       =FACT(statut='f',max='**',
-           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
-           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
-           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
-                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
-                                       "ELAS_POUTRE_GR","CABLE")),
-           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-         ),
-         b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
-           ETAT_INIT       =FACT(statut='o',
-             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
-                     EXCLUS('EVOL_NOLI','DEPL',),
-                     EXCLUS('EVOL_NOLI','SIGM',),
-                     EXCLUS('EVOL_NOLI','VARI',),
-                     EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                     EXCLUS('NUME_ORDRE','INST'), ),
-             DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-             SIGM            =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
-             VARI            =SIMP(statut='f',typ=cham_elem_vari_r),
-             VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_vanl_r),
-             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             INST            =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             NUME_DIDI       =SIMP(statut='f',typ='I'),
-             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
-         ),),
-         b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
-           ETAT_INIT       =FACT(statut='f',
-             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
-                     EXCLUS('EVOL_NOLI','DEPL',),
-                     EXCLUS('EVOL_NOLI','SIGM',),
-                     EXCLUS('EVOL_NOLI','VARI',),
-                     EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                     EXCLUS('NUME_ORDRE','INST'), ),
-             DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
-             SIGM            =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
-             VARI            =SIMP(statut='f',typ=cham_elem_vari_r),
-             VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_vanl_r),
-             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             INST            =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             NUME_DIDI       =SIMP(statut='f',typ='I'),
-             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
-         ),),
-         INCREMENT       =FACT(statut='o',
-           regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
-                   EXCLUS('NUME_INST_FIN','INST_FIN'),),
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
-                                 into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
-           NUME_INST_INIT  =SIMP(statut='f',typ='I'),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           NUME_INST_FIN   =SIMP(statut='f',typ='I'),
-           INST_FIN        =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',),
-           VALE            =SIMP(statut='f',typ='R'),
+# RESPONSABLE ASSIRE A.ASSIRE
+
+DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster,
+                    fr="Creation partitionnement en sous-domaines pour FETI",
+                    docu="U4.23.05",reentrant='n',
+                    UIinfo={"groupes":("Résolution",)},
+         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
+         MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
+         NOM             =SIMP(statut='f',typ='TXM',defaut='SD'),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ),
+         DEFI          =FACT(statut='f',max='**',
+           GROUP_MA        =SIMP(statut='o',typ=grma),
+           GROUP_MA_BORD   =SIMP(statut='f',typ=grma),
          ),
-         NEWTON          =FACT(statut='d',
-           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-           PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
-           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-           PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
-           REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
-           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+         EXCIT           =FACT(statut='f',max='**',
+           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
          ),
-         RECH_LINEAIRE   =FACT(statut='f',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
-           ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
-           PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-           RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
-           RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
-           RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2),
+);
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE MCOURTOI M.COURTOIS
+from Macro.impr_fonction_ops import impr_fonction_ops
+
+IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None,
+                 fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe",
+            UIinfo={"groupes":("Fonction",)},
+         FORMAT          =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU',
+                               into=("TABLEAU","AGRAF","XMGRACE",),),
+         b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
+                        fr="Mots-clés propres à XMGRACE",
+           PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
+                                 into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
+                            fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
+           UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
+                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
          ),
-         PILOTAGE        =FACT(statut='f',
-           regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
-           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
-           ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
-           PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-           SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-                         ),
-         CONVERGENCE     =FACT(statut='d',
-           regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
-           SIGM_REFE       =SIMP(statut='f',typ='R'),
-           EPSI_REFE       =SIMP(statut='f',typ='R'),
-           FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
-           RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-           ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+         b_agraf = BLOC(condition = "FORMAT == 'AGRAF'",
+                        fr="Mots-clés propres à AGRAF",
+           UNITE           =SIMP(statut='o',typ='I',defaut=25,
+                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
+           UNITE_DIGR      =SIMP(statut='o',typ='I',defaut=26,
+                                 fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"),
          ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
+         # unite pour TABLEAU dans le bloc de mise en forme spécifique
+
+         COURBE          =FACT(statut='o',max='**',fr="Définition de la fonction à tracer",
+           regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),),
+           FONCTION        =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster),
+                                 fr="Fonction réelle ou complexe", ),
+           LIST_RESU       =SIMP(statut='f',typ=listr8_sdaster,
+                                 fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ),
+           FONC_X          =SIMP(statut='f',typ=(fonction_sdaster,formule),
+                                 fr="Fonction abscisses d'une fonction paramétrique",),
+           ABSCISSE        =SIMP(statut='f',typ='R',max='**',
+                                 fr="Valeurs des abscisses", ),
+           b_fonction      =BLOC(condition = "FONCTION != None",
+             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
            ),
-           b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
+           b_fonction_c  =BLOC(condition = "AsType(FONCTION) == fonction_c",
+                                 fr="Fonction complexe définie par le mot-clé fonction",
+             PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
            ),
-           b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
+           b_list_resu     =BLOC(condition = "LIST_RESU != None",
+             LIST_PARA       =SIMP(statut='o',typ=listr8_sdaster ),
            ),
-           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
+           b_fonc_x        =BLOC(condition = "FONC_X != None",
+             FONC_Y          =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ),
+             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
            ),
-           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.,),
+           b_vale_resu     =BLOC(condition = "ABSCISSE != None",
+             ORDONNEE      =SIMP(statut='o',typ='R',max='**',
+                                 fr="Valeurs des ordonnées"),
            ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
-                   EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
-           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PAS_ARCH        =SIMP(statut='f',typ='I' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-           ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
-                                                                     "VARI_NON_LOCAL","LANL_ELGA")),
-         ),
-         OBSERVATION     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
-                   PRESENT_PRESENT('MAILLE','POINT'),),
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
-                                              "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")),
-           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PAS_OBSE        =SIMP(statut='f',typ='I'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
-         ),
 
-         SUIVI_DDL      = FACT(statut='f',max=4,
-                               regles=(UN_PARMI('NOEUD','MAILLE'),
-                                       PRESENT_PRESENT('MAILLE','POINT'),),
-             NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
-                                   into=("DEPL","VITE","ACCE","SIEF_ELGA",
-                                         "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
-             NOM_CMP         =SIMP(statut='o',typ='TXM',max=1 ),
-             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
-             POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max=1),
+           # le bloc n'est pas activé (vide) car position n'est pas pris en compte
+           b_forme         =BLOC(condition = "FORMAT != 'TABLEAU'",
+                                 fr="Données de mise en forme de la fonction (cf. doc)",
+           ),
+              LEGENDE         =SIMP(statut='f',typ='TXM',
+                                    fr="Légende associée à la fonction" ),
+              STYLE           =SIMP(statut='f',typ='I',val_min=0,
+                                    fr="Style de la ligne représentant la fonction",),
+              COULEUR         =SIMP(statut='f',typ='I',val_min=0,
+                                    fr="Couleur associée à la fonction",),
+              MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
+                                    fr="Type du marqueur associé à la fonction",),
+              FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
+                                    fr="Fréquence d impression du marqueur associé à la fonction", ),
+           # fin bloc b_forme
+           TRI             =SIMP(statut='f',typ='TXM',defaut="N",
+                                 fr="Choix du tri effectué sur les abscisses ou sur les ordonnées",
+                                 into=("N","X","Y","XY","YX") ),
          ),
-
-         AFFICHAGE      = FACT(statut='f',max=16,
-
-            UNITE       = SIMP(statut='f',typ='I',val_min=1),
-
-            LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
-            PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
-            LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
-            
-            NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
-                                into=("STANDARD","MINIMUM",
-                                      "ITER_NEWT",
-                                      "INCR_TPS",
-                                      "RESI_RELA","RELA_NOEU",
-                                      "RESI_MAXI","MAXI_NOEU",
-                                      "RESI_REFE","REFE_NOEU",
-                                      "RELI_ITER","RELI_COEF",
-                                      "PILO_PARA",
-                                      "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
-                                      "MATR_ASSE",
-                                      "ITER_DEBO",
-                                      "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
-                                      "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
-                                      "SUIV_1","SUIV_2","SUIV_3","SUIV_4",
-                                     ),
-                               ),
-            b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
-                    NOM_COLONNE == 'RESI_MAXI' or\
-                    NOM_COLONNE == 'RESI_REFE' or\
-                    NOM_COLONNE == 'CTCD_GEOM' or\
-                    NOM_COLONNE == 'STANDARD' ",
-                            INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
-                          ),
+         # Mise en page du tableau ou du graphique
+         b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
+                          fr="Mots-clés propres au format Tableau",
+           UNITE           =SIMP(statut='o',typ='I',defaut=8,
+                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
+           TITRE           =SIMP(statut='f',typ='TXM',
+                                 fr="Titre associé au graphique" ),
+           SOUS_TITRE      =SIMP(statut='f',typ='TXM',
+                                 fr="Sous-titre du graphique" ),
+           SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
+                                 fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
+           COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
+                                 fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
+           DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
+                                 fr="Caractère de debut de ligne"),
+           FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
+                                 fr="Caractère de fin de ligne"),
          ),
-
-
-
-         CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
-           NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
-           CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10),
-                            fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
+         b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'",
+                        fr="Mise en page du graphique",
+           TITRE           =SIMP(statut='f',typ='TXM',
+                                 fr="Titre associé au graphique" ),
+           SOUS_TITRE      =SIMP(statut='f',typ='TXM',
+                                 fr="Sous-titre du graphique" ),
+           BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
+                                 fr="Intervalles de variation des abscisses"),
+           BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
+                                 fr="Intervalles de variation des ordonnées"),
+           ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
+                                 fr="Type d'échelle pour les abscisses" ),
+           ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
+                                 fr="Type d'échelle pour les ordonnées" ),
+           GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
+                                 fr="Pas du quadrillage vertical" ),
+           GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
+                                 fr="Pas du quadrillage horizontal" ),
+           LEGENDE_X       =SIMP(statut='f',typ='TXM',
+                                 fr="Légende associée à l'axe des abscisses" ),
+           LEGENDE_Y       =SIMP(statut='f',typ='TXM',
+                                 fr="Légende associée à l'axe des ordonnées" ),
          ),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité",
-                               ang="List of sensitivity parameters"),
-           SOLV_NON_LOCAL  =FACT(statut='f',
-             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-             ),
-             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-             ),
-             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-             ),
-             b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-               TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-               PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
-             ),
-             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-             ),
-             EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           LAGR_NON_LOCAL  =FACT(statut='f',
-             ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
-             RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
-             RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
-             R               =SIMP(statut='f',typ='R',defaut= 1000.),
-             ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
-           ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
- )
-
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)  ;
+#& MODIF COMMANDE  DATE 06/07/2005   AUTEUR GENIAUT S.GENIAUT 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -23254,617 +23229,582 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
 
-# RESPONSABLE MCOURTOI M.COURTOIS
-
-from Macro.test_fichier_ops import test_fichier_ops
-
-TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops,
-                   UIinfo={"groupes":("Impression",)},
-                   fr="Tester la non régression de fichiers produits par des commandes aster",
-   UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-   FICHIER          =SIMP(statut='o',typ='TXM',validators=LongStr(1,255)),
-   NB_CHIFFRE      =SIMP(statut='f',typ='I',defaut=6),
-   EPSILON         =SIMP(statut='f',typ='R',defaut=1.E-14),
-   EXPR_IGNORE     =SIMP(statut='f',typ='TXM',max='**',
-                         fr="Liste d'expressions régulières permettant d'ignorer certaines lignes"),
-   VALE_K          =SIMP(statut='o',typ='TXM' ),
-   REFERENCE       =SIMP(statut='f',typ='TXM',
-                         into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
+MODI_MODELE_XFEM=OPER(nom="MODI_MODELE_XFEM",op= 113,sd_prod=modele_sdaster,docu="U4.44.12-e",reentrant='f',
+            UIinfo={"groupes":("Modélisation",)},
+               fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
 
-   b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
-      VERSION         =SIMP(statut='f',typ='TXM' ),
-   ),
+    MODELE_IN       =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,),
+    FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,),
+    CRITERE         =SIMP(statut='f',typ='R',defaut=1.1E-4),
+    INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)),
 
-   INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)
+)  ;
 #& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,
-            fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence",
-            UIinfo={"groupes":("Impression",)},
-         UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-         TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         VALEUR          =FACT(statut='f',max='**',
-                               fr="Tester la valeur d une fonction ou d une nappe",
-           regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),),
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
-           NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
-           VALE_PARA       =SIMP(statut='o',typ='R'  ,validators=NoRepeat(),max=2),
-           VALE_REFE       =SIMP(statut='f',typ='R' ),
-           VALE_REFE_C     =SIMP(statut='f',typ='C' ),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
-                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
-                                 defaut= 1.E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',
-                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-           b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", 
-             VERSION         =SIMP(statut='f',typ='TXM' ),
-           ),
-         ),
-         ATTRIBUT        =FACT(statut='f',max='**',
-                               fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
-           PARA            =SIMP(statut='f',typ='R' ),
-           CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           ATTR            =SIMP(statut='o',typ='TXM',
-                                 into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
-                                       "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
-           ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',
-                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
-             VERSION         =SIMP(statut='f',typ='TXM' ),
-           ),
+POST_CHAM_XFEM=OPER(nom="POST_CHAM_XFEM",op= 196,sd_prod=resultat_sdaster,
+                    reentrant='n',UIinfo={"groupes":("Post traitements",)},
+            fr="Calcul des champs DEPL et SIEF_ELGA sur le maillage fissuré",
+    MAILLAGE = SIMP(statut='o',typ=maillage_sdaster),
+    MODELE   = SIMP(statut='o',typ=modele_sdaster,),
+    RESULTAT = SIMP(statut='o',typ=resultat_sdaster),
+    NOM_CHAM = SIMP(statut='o',typ='TXM',into=("DEPL","SIEF_ELGA"),)
+);                     
+#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+POST_MAIL_XFEM=OPER(nom="POST_MAIL_XFEM",op= 187,sd_prod=maillage_sdaster,
+                    reentrant='n',UIinfo={"groupes":("Maillage",)},
+            fr="Crée un maillage se conformant à la fissure pour le post-traitement des éléments XFEM",
+    MODELE  = SIMP(statut='o',typ=modele_sdaster),
+    TITRE   = SIMP(statut='f',typ='TXM',max='**'),
+);                     
+#& MODIF COMMANDE  DATE 24/05/2005   AUTEUR MCOURTOI M.COURTOIS 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+from Macro.info_fonction_ops import info_fonction_ops
+def info_fonction_prod(self,ECART_TYPE,RMS,NOCI_SEISME,MAX,NORME, **args):
+   if (RMS         != None): return table_sdaster
+   if (MAX         != None): return table_sdaster
+   if (NOCI_SEISME != None): return table_sdaster
+   if (ECART_TYPE  != None): return table_sdaster
+   if (NORME       != None): return table_sdaster
+   raise AsException("type de concept resultat non prevu")
+
+INFO_FONCTION=MACRO(nom="INFO_FONCTION",op=info_fonction_ops,sd_prod=info_fonction_prod
+                    ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe",
+                     reentrant='n',
+            UIinfo={"groupes":("Fonction",)},
+         regles=(UN_PARMI('MAX','RMS','NOCI_SEISME','NORME','ECART_TYPE',),),
+         RMS             =FACT(statut='f',fr="Valeur RMS d'une fonction",max='**',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
+           FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
+           INST_INIT       =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
+           INST_FIN        =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
          ),
-         TABL_INTSP      =FACT(statut='f',max='**',
-                               fr="Tester la valeur d une fonction contenue dans une table interspectrale",
-           regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
-           INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
-           NOEUD_I         =SIMP(statut='f',typ=no),
-           NUME_ORDRE_I    =SIMP(statut='f',typ='I' ),
-           b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", 
-             NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
-           ),
-           b_noeud_i = BLOC (condition = "NOEUD_I != None",             
-             NOEUD_J         =SIMP(statut='o',typ=no),
-             NOM_CMP_I       =SIMP(statut='o',typ='TXM' ),
-             NOM_CMP_J       =SIMP(statut='o',typ='TXM' ),
-           ),
-           NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
-           VALE_PARA       =SIMP(statut='o',typ='R' ),
-           VALE_REFE_C     =SIMP(statut='o',typ='C' ),
-           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
-                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
-                                 defaut= 1.E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',
-                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
-             VERSION         =SIMP(statut='f',typ='TXM' ),
+         NOCI_SEISME     =FACT(statut='f',
+           regles=(UN_PARMI('FONCTION','SPEC_OSCI',),),
+           FONCTION        =SIMP(statut='f',typ=fonction_sdaster ),
+           SPEC_OSCI       =SIMP(statut='f',typ=nappe_sdaster ),
+           b_option_f      =BLOC(condition="""FONCTION !=None""",
+             OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",validators=NoRepeat(),max='**',
+                                   into=("INTE_ARIAS","POUV_DEST","INTE_SPEC","VITE_ABSO_CUMU",
+                                         "DUREE_PHAS_FORT","MAXI","ACCE_SUR_VITE","TOUT",), ),
+             b_amor          =BLOC(condition="""OPTION=="TOUT" or OPTION=="INTE_SPEC" """,
+               AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),),
+           b_option_n      =BLOC(condition="""SPEC_OSCI !=None""",
+             OPTION          =SIMP(statut='f',typ='TXM',defaut="INTE_SPEC",into=("INTE_SPEC",), ),
+             NATURE          =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE") ),
+             AMOR_REDUIT     =SIMP(statut='o',typ='R'), ),
+           INST_INIT       =SIMP(statut='f',typ='R'),
+           INST_FIN        =SIMP(statut='f',typ='R'),
+           COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
+           PESANTEUR       =SIMP(statut='f',typ='R',defaut= 9.81E+0 ),
+           FREQ_INIT       =SIMP(statut='f',typ='R',defaut= 4.E-1 ),
+           FREQ_FIN        =SIMP(statut='f',typ='R',defaut= 10.E+0 ),
+           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
+           FREQ            =SIMP(statut='f',typ='R',max='**'),
+           NORME           =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
+           BORNE_INF       =SIMP(statut='f',typ='R',defaut= 0.05E+0 ),
+           BORNE_SUP       =SIMP(statut='f',typ='R',defaut= 0.95E+0 ),
+           b_acce_reel     =BLOC(condition="(INST_INIT != None)or(INST_FIN != None)or(FREQ_INIT != None)or(FREQ_FIN != None)",
+             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,val_min=0.E+0),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
            ),
          ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-# RESPONSABLE VABHHTS J.PELLET
+         MAX             =FACT(statut='f',fr="Extrémas locaux d'une fonction",
+           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
+         ),
+         NORME           =FACT(statut='f',fr="Norme L2 d'une fonction",
+            FONCTION      =SIMP(statut='o', typ=nappe_sdaster),
+         ),     
+         ECART_TYPE      =FACT(statut='f',fr="Ecart-type d'une fonction",
+            METHODE       =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
+            FONCTION      =SIMP(statut='o',typ=fonction_sdaster),
+            INST_INIT     =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
+            INST_FIN      =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
+            CRITERE       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+            PRECISION     =SIMP(statut='f',typ='R',defaut= 1.E-3,val_min=0.E+0 ),
+         ),     
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)
+#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-TEST_RESU=PROC(nom="TEST_RESU",op=23,
-            UIinfo={"groupes":("Impression",)},
-         fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence",
-         regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')),
-         UNITE           =SIMP(statut='f',typ='I',defaut=8),  
+# -*- coding: iso-8859-1 -*-
 
-         CHAM_NO         =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
-                   EXCLUS('NOEUD','GROUP_NO'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),
-                   UN_PARMI('VALE','VALE_I','VALE_C'),),
-           CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
-           NOEUD           =SIMP(statut='f',typ=no   ),
-           GROUP_NO        =SIMP(statut='f',typ=grno ),
-           NOM_CMP         =SIMP(statut='f',typ='TXM'),
-           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER")),
-           VERSION         =SIMP(statut='f',typ='TXM'),
-         ),
+# RESPONSABLE MCOURTOI M.COURTOIS
 
-         CHAM_ELEM       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','TYPE_TEST',),
-                   EXCLUS('NOEUD','GROUP_NO','POINT'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
-                   PRESENT_PRESENT('POINT','NOM_CMP'),
-                   UN_PARMI('VALE','VALE_I','VALE_C'), ),
-           CHAM_GD         =SIMP(statut='o',typ=cham_elem_sdaster),
-           MAILLE          =SIMP(statut='f',typ=ma),
-           POINT           =SIMP(statut='f',typ='I' ),
-           SOUS_POINT      =SIMP(statut='f',typ='I'),
-           NOEUD           =SIMP(statut='f',typ=no),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
-           VALE            =SIMP(statut='f',typ='R' ),
-           VALE_I          =SIMP(statut='f',typ='I' ),
-           VALE_C          =SIMP(statut='f',typ='C' ),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER") ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
-         ),
+def calc_table_prod(self, TABLE, **kargs):
+   """Typage du concept produit.
+   """
+   typ_table = AsType(TABLE)
+   if issubclass(typ_table, table_sdaster):
+      return typ_table
+   raise AsException("type de concept resultat non prevu")
 
-         RESU            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
-                   UN_PARMI('NOM_CHAM','PARA'),
-                   PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
-                   PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
-                   EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
-                   PRESENT_PRESENT('POINT','NOM_CMP'),
-                   UN_PARMI('VALE','VALE_I','VALE_C') ,),
-           RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
-                                 fr="Paramètre de sensibilité.",
-                                 ang="Sensitivity parameter"),
-           NUME_ORDRE      =SIMP(statut='f',typ='I'),
-           INST            =SIMP(statut='f',typ='R'),
-           FREQ            =SIMP(statut='f',typ='R'),
-           NUME_MODE       =SIMP(statut='f',typ='I'),
-           NOEUD_CMP       =SIMP(statut='f',typ='TXM',min=2,max=2),
-           NOM_CAS         =SIMP(statut='f',typ='TXM'),
-           ANGL            =SIMP(statut='f',typ='R'),
-           PARA            =SIMP(statut='f',typ='TXM'),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
-           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
-           POINT           =SIMP(statut='f',typ='I'),
-           SOUS_POINT      =SIMP(statut='f',typ='I'),
-           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
-           PRECISION       =SIMP(statut='f',typ='R',max=2),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
-         ),
+from Macro.calc_table_ops import calc_table_ops
 
-         GENE            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,),
-           RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene_r, tran_gene, mode_gene, harm_gene)),
-           b_vect_asse     =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene_r",
-             NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
-           ),
-           b_mode          =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)",
-                            regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'),
-                                    UN_PARMI('NOM_CHAM','PARA'),
-                                    PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),),
-             NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
-             NUME_CMP_GENE   =SIMP(statut='f',typ='I'),
-             PARA            =SIMP(statut='f',typ='TXM'),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             NUME_MODE       =SIMP(statut='f',typ='I'),
-             FREQ            =SIMP(statut='f',typ='R'),
-           ),
-           b_tran          =BLOC(condition = "AsType(RESU_GENE) == tran_gene",
-                            regles=(UN_PARMI('NUME_ORDRE','INST') ,),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
-             NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             INST            =SIMP(statut='f',typ='R'),
-           ),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
-           PRECISION       =SIMP(statut='f',typ='R',max=2),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
+CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod,
+                     fr="Opérations sur une table",
+                     reentrant='f',
+   regles=(DERIVABLE('TABLE'),),
+   TABLE  = SIMP(statut='o',typ=table_sdaster),
+   ACTION = FACT(statut='o', max='**',
+                    fr = "Suite des opérations à effectuer sur la table",
+      OPERATION = SIMP(statut='o', typ='TXM',
+                  into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',)),
+      
+      b_filtre = BLOC(condition="OPERATION == 'FILTRE'",
+                      fr="Sélectionne les lignes de la table vérifiant un critère",
+         NOM_PARA  = SIMP(statut='o',typ='TXM'),
+         CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ",
+                          into=('EQ','NE','GT','LT','GE','LE','REGEXP',
+                                'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),),
+         b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
+            regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
+            VALE   = SIMP(statut='f',typ='R'),
+            VALE_I = SIMP(statut='f',typ='I'),
+            VALE_C = SIMP(statut='f',typ='C'),
+            VALE_K = SIMP(statut='f',typ='TXM'),
+         ),
+         b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'",
+            VALE_K = SIMP(statut='f',typ='TXM'),
+         ),
+         b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')",
+            CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+            PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
          ),
+      ),
+      
+      b_extr = BLOC(condition="OPERATION ==  'EXTR'",
+                    fr="Extrait une ou plusieurs colonnes de la table",
+         NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+                         fr="Noms des colonnes à extraire"),
+      ),
+   
+      b_renomme = BLOC(condition="OPERATION == 'RENOMME'",
+                       fr="Renomme un ou plusieurs paramètres de la table",
+         NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2,
+                         fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",),
+      ),
+   
+      b_tri = BLOC(condition="OPERATION == 'TRI'",
+                   fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres",
+         NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
+         ORDRE    = SIMP(statut='f',typ='TXM',defaut="CROISSANT",
+                         into=("CROISSANT","DECROISSANT") ),
+      ),
+      
+      b_comb = BLOC(condition="OPERATION == 'COMB'",
+                    fr="Combine deux tables ayant éventuellement des paramètres communs",
+         TABLE    = SIMP(statut='o',typ=table_sdaster,
+                         fr="Table dont les colonnes vont venir surcharger la table initiale"),
+         NOM_PARA = SIMP(statut='f',typ='TXM',max='**',
+                         fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\
+                            "pour que les colonnes soient combinées"),
+      ),
+      
+      b_oper = BLOC(condition="OPERATION == 'OPER'",
+                    fr="Applique une formule dans laquelle les variables sont les paramètres de la table",
+         FORMULE  = SIMP(statut='o',typ=formule,
+                         fr="Formule à appliquer aux colonnes de la table"),
+         NOM_PARA = SIMP(statut='o',typ='TXM',
+                         fr="Nom de la nouvelle colonne"),
+      ),
+   ),
+   
+   SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1,
+                      fr="Paramètre de sensibilité",
+                      ang="Sensitivity parameter"),
+   TITRE = SIMP(statut='f',typ='TXM',max='**',
+                fr="Titre de la table produite"),
+   INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)
+#& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE ASSIRE A.ASSIRE
+
+DEFI_PART_PA_OPS=OPER(nom="DEFI_PART_PA_OPS",op=29,sd_prod=sd_feti_sdaster,
+                    fr="Creation partitionnement en sous-domaines pour FETI",
+                    docu="U4.00.00",reentrant='n',
+                    UIinfo={"groupes":("Résolution",)},
+         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
+         MODELE          =SIMP(statut='f',typ=(modele_sdaster)),
+         NB_PART         =SIMP(statut='o',typ='I',),
+
+         # Methode de partitionnement
+         METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
+         
+         LOGICIEL      =SIMP(statut='f',typ='TXM'),
+
+         # Corrige les problemes possibles de non-connexite des sous-domaines
+         CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
+
+         # Permet de grouper des mailles dans un meme sous-doamine
+         GROUPAGE        =FACT(statut='f',max='**',
+           GROUP_MA       =SIMP(statut='o',typ=grma,),
+                          ),
+         # Permet d'appliquer des poids sur certaines mailles
+         POIDS_MAILLES   =FACT(statut='f',max='**',
+           GROUP_MA       =SIMP(statut='o',typ=grma,),
+           POIDS          =SIMP(statut='f',typ='I'),
+                          ),
+         # Prefixe pour le nom des group_ma definissant les sous-domaines 
+         NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
+
+         # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
+         TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
+
+         # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
+         # Note : le calcul FETI sera impossible
+         b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
+           NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
+             ),
 
-         OBJET           =FACT(statut='f',max='**',
-           regles=(UN_PARMI('S_I','S_R','RESUME',),
-                   UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
-           NOM             =SIMP(statut='o',typ='TXM'),
-           S_R             =SIMP(statut='f',typ='R'),
-           S_I             =SIMP(statut='f',typ='I'),
-           RESUME          =SIMP(statut='f',typ='I'),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+         INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
+
+);
+#& MODIF COMMANDE  DATE 13/02/2006   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM 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    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
 # ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
-            UIinfo={"groupes":("Impression",)},
-         fr="Tester une cellule ou une colonne d'une table",
-         regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),),
-         UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-#  concept table_sdaster à tester
-         TABLE           =SIMP(statut='o',typ=table_sdaster),
 
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
-                                 fr="Paramètre de sensibilité.",
-                                 ang="Sensitivity parameter"),
-         FILTRE          =FACT(statut='f',max='**',
-           NOM_PARA        =SIMP(statut='o',typ='TXM' ),
-           CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
-                                 into=("EQ","LT","GT","NE","LE","GE","VIDE",
-                                       "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
-           b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
-              regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
-              VALE            =SIMP(statut='f',typ='R' ),
-              VALE_I          =SIMP(statut='f',typ='I' ),
-              VALE_C          =SIMP(statut='f',typ='C' ),
-              VALE_K          =SIMP(statut='f',typ='TXM' ),),
+MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
+               fr="Normalisation de modes propres",
+               reentrant='n',
+            UIinfo={"groupes":("Résolution",)},
+         BASE_1       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
+         BASE_2       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
+         MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
+         TITRE      =SIMP(statut='f',typ='TXM',max='**'),
+         INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
+)  ;
+#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ACBHHCD G.DEVESA 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
+                    fr="Création d une matrice assemblée à partir de base modale",
+                    reentrant='n',
+            UIinfo={"groupes":("Matrices/vecteurs",)},           
+         BASE            =SIMP(statut='o',typ=base_modale ),
+         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
+         FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
+         UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
+)  ;
 
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-         ),
-         TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
-         NOM_PARA        =SIMP(statut='o',typ='TXM' ),
-         VALE            =SIMP(statut='f',typ='R' ),
-         VALE_I          =SIMP(statut='f',typ='I' ),
-         VALE_C          =SIMP(statut='f',typ='C' ),
-         VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.2E-3 ),
-         REFERENCE       =SIMP(statut='f',typ='TXM',
-                               into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-         b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
-             VERSION         =SIMP(statut='f',typ='TXM' ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-         ),
+#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene,
+                    fr="Création d un vecteur assemblé à partir de base modale",
+                    reentrant='n',
+            UIinfo={"groupes":("Matrices/vecteurs",)},           
+         BASE            =SIMP(statut='o',typ=base_modale ),
+         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
+         FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
+         NOM_CMP         =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
+         NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"),
+         UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30),
 )  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-                   fr="Résoudre un problème thermique linéaire stationnaire ou transitoire",
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-         INCREMENT       =FACT(statut='f',
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster ),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           NUME_FIN        =SIMP(statut='f',typ='I'),
-         ),
-         TEMP_INIT       =FACT(statut='f',
-           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
-           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
-           CHAM_NO         =SIMP(statut='f',typ=cham_no_temp_r),
-           VALE            =SIMP(statut='f',typ='R'),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-         ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               ang="List of sensitivity parameters",
-         ),
-           SENS_INIT       =FACT(statut='f',
-             regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),),
-             STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             EVOL_THER       =SIMP(statut='f',typ=evol_ther),
-             NUME_INIT       =SIMP(statut='f',typ='I'),
-           ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult      =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
-           ),
-         ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+CALC_G=OPER(nom="CALC_G",op=100,sd_prod=table_sdaster,
+            fr="Calcul du taux de restitution d'énergie par la méthode theta en thermo-élasticité"
+                        +" et les facteurs d'intensité de contraintes.",
+                    reentrant='f',
+            UIinfo={"groupes":("Post traitements",)},
+         regles=(UN_PARMI('RESULTAT','DEPL'),
+                 PRESENT_PRESENT('VITE','ACCE'),
+                 EXCLUS('COMP_ELAS','COMP_INCR'),
+                 CONCEPT_SENSIBLE("ENSEMBLE"),
+                 REUSE_SENSIBLE(),
+                 DERIVABLE('RESULTAT'),),
+         MODELE          =SIMP(statut='f',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
+
+         THETA          =FACT(statut='o',
+         THETA           =SIMP(statut='f',typ=(theta_geom,cham_no_sdaster),),
+
+         b_theta        =BLOC(condition="THETA == None",fr="calcul de theta",
+            regles=(UN_PARMI('R_INF','R_INF_FO'),
+                 EXCLUS('MODULE','MODULE_FO'),
+                 UN_PARMI('FOND_FISS','FISSURE'),
+                 PRESENT_PRESENT('R_INF','R_SUP'),
+                 PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),         
+             R_INF           =SIMP(statut='f',typ='R'),
+             R_SUP           =SIMP(statut='f',typ='R'),
+             MODULE          =SIMP(statut='f',typ='R'),
+             DIRE_THETA      =SIMP(statut='f',typ=cham_no_sdaster ),
+             DIRECTION       =SIMP(statut='f',typ='R',max='**'),
+             R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),             
+             MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             FOND_FISS       =SIMP(statut='f',typ=fond_fiss,max=1),
+             FISSURE         =SIMP(statut='f',typ=fiss_xfem,max=1),),
+            ),
+
+         DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
+         VITE            =SIMP(statut='f',typ=cham_no_sdaster),
+         ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
+         RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,mode_meca),),
+
+         b_extrac        =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
+           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST',
+                           'TOUT_MODE','NUME_MODE','LIST_MODE','FREQ','LIST_FREQ',),),
+           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+           LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
            INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
-                                 into=("RELATIF","ABSOLU")),
-           PAS_ARCH        =SIMP(statut='f',typ='I'),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
+           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+           TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+           LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
+           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
+           FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+           
+           b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
+             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+           ),
+         ),         
+         EXCIT           =FACT(statut='f',max='**',
+               CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
+               FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+               TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
          ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2)),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-                   fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
-                      +" stationnaire ou transitoire" ,
-         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-         CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
-         CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
-         COMP_THER_NL    =FACT(statut='d',max='**',
-           RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
-                                 into=("THER_NL",
-                                       "THER_HYDR",
-                                       "SECH_GRANGER",
-                                       "SECH_MENSI",
-                                       "SECH_BAZANT",
-                                       "SECH_NAPPE"
-                                       ) ),
+         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
+         COMP_ELAS       =FACT(statut='f',
+               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
+                                     into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
+               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
+               ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
+               ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
+               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
       regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-         ),
-         EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=char_ther),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-         INCREMENT       =FACT(statut='f',
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           NUME_FIN        =SIMP(statut='f',typ='I'),
+               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+         ),  
+         COMP_INCR       =FACT(statut='f',
+               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
+                                     into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
+               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
+               VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
+               VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
+               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
+      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
+               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
          ),
-         TEMP_INIT       =FACT(statut='f',
-           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
-           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
-           CHAM_NO         =SIMP(statut='f',typ=cham_no_temp_r),
-           VALE            =SIMP(statut='f',typ='R'),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
+         ETAT_INIT       =FACT(statut='f',
+           SIGM            =SIMP(statut='f',typ=cham_elem),
+           DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
          ),
-         NEWTON          =FACT(statut='d',
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
+          
+         LISSAGE         =FACT(statut='d',
+           DEGRE           =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),
+           LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE"),),
+           LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO"),),
          ),
-         CONVERGENCE     =FACT(statut='d',
-           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
+
+         OPTION          =SIMP(statut='o',typ='TXM',max=1,defaut='CALC_G',
+              into=("CALC_G","CALC_G_GLOB","CALC_K_G","K_G_MODA","G_MAX","G_MAX_GLOB","G_BILI",
+                    "G_BILI_GLOB","G_LAGR","G_LAGR_GLOB"),),
+
+         b_g_max    =BLOC(condition="(OPTION=='G_MAX') or (OPTION=='G_MAX_GLOB')",
+           BORNES          =FACT(statut='o',max='**',
+                NUME_ORDRE     =SIMP(statut='o',typ='I'),
+                VALE_MIN       =SIMP(statut='o',typ='R'),
+                VALE_MAX       =SIMP(statut='o',typ='R'),
+                                ),
          ),
+         PROPAGATION     =SIMP(statut='f',typ='R'),
+         THETA_LAGR      =SIMP(statut='f',typ=theta_geom),
+         DIRE_THETA_LAGR =SIMP(statut='f',typ=cham_no_sdaster),
          SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               ang="List of sensitivity parameters",
-         ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Parametres relatifs a la non inversibilité de la matrice a factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I'  ,defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R'  ,defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I'  ,defaut= 0 ),
-           ),
-           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.,),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-         ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),),
-           LIST_ARCH       =SIMP(statut='f',typ=(listis_sdaster) ),
-           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
-           PAS_ARCH        =SIMP(statut='f',typ='I'),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,
-                               into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+                           fr="Liste des paramètres de sensibilité.",
+                           ang="List of sensitivity parameters"),
 
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+);
+#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR MASSIN P.MASSIN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM 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
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM 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      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
-THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
-                     fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
-                        +" stationnaire avec chargement mobile",
-                     reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
-         CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=char_ther ),
-           FONC_MULT       =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         TEMP_INIT       =FACT(statut='f',
-           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
-           NUME_INIT       =SIMP(statut='f',typ='I',defaut= 0 ),
-         ),
-         CONVERGENCE     =FACT(statut='d',
-           CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-)  ;
-
 
+PROPA_XFEM=OPER(nom="PROPA_XFEM",op=10,sd_prod=fiss_xfem,reentrant='n',
+                UIinfo={"groupes":("Modélisation",)},
+                fr="Propagation de fissure avec X-FEM",
+    
+    MODELE        =SIMP(statut='o',typ=modele_sdaster),
+        
+    TABLE         =SIMP(statut='o',typ=table_sdaster),
 
+    LOI_PROPA     =FACT(statut='o',max=01,
+      LOI            =SIMP(statut='o',typ='TXM',into=("PARIS",),defaut="PARIS"),
+      b_paris        =BLOC( condition = "LOI=='PARIS'",
+        C            =SIMP(statut='o',typ='R',),
+        M            =SIMP(statut='o',typ='R',),),
+            ),
+    GROUP_MA_ENRI         =SIMP(statut='o',typ=grma,max=01),
+           
+    INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
+)  ;