]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
PN
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 30 May 2006 09:06:12 +0000 (09:06 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 30 May 2006 09:06:12 +0000 (09:06 +0000)
33 files changed:
Aster/Cata/cataSTA8/Macro/calc_fonction_ops.py
Aster/Cata/cataSTA8/Macro/calc_precont_ops.py
Aster/Cata/cataSTA8/Macro/defi_cable_bp_ops.py
Aster/Cata/cataSTA8/Macro/defi_part_feti_ops.py
Aster/Cata/cataSTA8/Macro/fiabilite_mefisto.py
Aster/Cata/cataSTA8/Macro/impr_fonction_ops.py
Aster/Cata/cataSTA8/Macro/impr_table_ops.py
Aster/Cata/cataSTA8/Macro/info_fonction_ops.py
Aster/Cata/cataSTA8/Macro/lire_inte_spec_ops.py
Aster/Cata/cataSTA8/Macro/lire_table_ops.py
Aster/Cata/cataSTA8/Macro/macr_adap_mail_ops.py
Aster/Cata/cataSTA8/Macro/macr_ascouf_calc_ops.py
Aster/Cata/cataSTA8/Macro/macr_ascouf_mail_ops.py
Aster/Cata/cataSTA8/Macro/macr_aspic_calc_ops.py
Aster/Cata/cataSTA8/Macro/macr_aspic_mail_ops.py
Aster/Cata/cataSTA8/Macro/macr_cabri_calc_ops.py
Aster/Cata/cataSTA8/Macro/macr_cara_poutre_ops.py
Aster/Cata/cataSTA8/Macro/macr_lign_coupe_ops.py
Aster/Cata/cataSTA8/Macro/macr_recal_ops.py
Aster/Cata/cataSTA8/Macro/macro_elas_mult_ops.py
Aster/Cata/cataSTA8/Macro/macro_matr_ajou_ops.py
Aster/Cata/cataSTA8/Macro/macro_matr_asse_ops.py
Aster/Cata/cataSTA8/Macro/macro_miss_3d_ops.py
Aster/Cata/cataSTA8/Macro/macro_mode_meca_ops.py
Aster/Cata/cataSTA8/Macro/macro_proj_base_ops.py
Aster/Cata/cataSTA8/Macro/reca_algo.py
Aster/Cata/cataSTA8/Macro/reca_interp.py
Aster/Cata/cataSTA8/Macro/recal.py
Aster/Cata/cataSTA8/Macro/stanley_ops.py
Aster/Cata/cataSTA8/Macro/test_fichier_ops.py
Aster/Cata/cataSTA8/__init__.py
Aster/Cata/cataSTA8/cata.py
Aster/Cata/cataSTA8c_clefs_docu [new file with mode: 0644]

index b3199f0612a2ba95590e2ce51f7c312071274e74..a541180fca87b1633af2430e053f2e9b7f3d0e05 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF calc_fonction_ops Macro  DATE 31/05/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
   """
@@ -38,6 +38,7 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP,
   import copy
   from math import pi
   from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe
+  from Utilitai import liss_enveloppe
   from Accas import _F
   from Cata.cata import nappe_sdaster,fonction_sdaster,fonction_c
   from Utilitai.Utmess import UTMESS
@@ -48,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
@@ -127,14 +129,22 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP,
 
      __ex=list_fonc[0]
      if COMB_C[0]['COEF_R']!=None: __ex=__ex*complex(COMB_C[0]['COEF_R'])
-     if COMB_C[0]['COEF_C']!=None: __ex=__ex*tocomplex(COMB_C[0]['COEF_C'])
+     if COMB_C[0]['COEF_C']!=None:
+         if type(COMB_C[0]['COEF_C']) in EnumType        : __ex=__ex*tocomplex(COMB_C[0]['COEF_C'])
+         else                                            : __ex=__ex*COMB_C[0]['COEF_C']
      i=1
      for item in list_fonc[1:] :
         if COMB_C[i]['COEF_R']!=None: coef=complex(COMB_C[i]['COEF_R'])
-        if COMB_C[i]['COEF_C']!=None: coef=tocomplex(COMB_C[i]['COEF_C'])
+        if COMB_C[i]['COEF_C']!=None:
+            if type(COMB_C[i]['COEF_C']) in EnumType        : coef=tocomplex(COMB_C[i]['COEF_C'])
+            else                                            : coef=COMB_C[i]['COEF_C']
         item=item*coef
         __ex=__ex+item
         i=i+1
+  ### mot clé LIST_PARA uniquement présent si COMB ou COMB_C
+  if (COMB != None) or (COMB_C != None) :
+    if (args['LIST_PARA'] != None) :
+        __ex=__ex.evalfonc(args['LIST_PARA'].Valeurs())
   ###
   if (PUISSANCE   != None): 
      __ff=PUISSANCE['FONCTION'].convert()
@@ -274,7 +284,15 @@ def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP,
        l_fonc.append(t_fonction(l_freq,spectr[iamor,ideb,:]/SPEC_OSCI['NORME'],para_fonc))
      __ex=t_nappe(vale_para,l_fonc,para)
   ###
-  if (LISS_ENVELOP!= None): return
+  if (LISS_ENVELOP!= None):
+     __ff=LISS_ENVELOP['NAPPE'].convert()
+     sp_nappe=liss_enveloppe.nappe(listFreq=__ff.l_fonc[0].vale_x, listeTable=[f.vale_y for f in __ff.l_fonc], listAmor=__ff.vale_para, entete="")
+     sp_lisse=liss_enveloppe.lissage(nappe=sp_nappe,fmin=LISS_ENVELOP['FREQ_MIN'],fmax=LISS_ENVELOP['FREQ_MAX'],elarg=LISS_ENVELOP['ELARG'],tole_liss=LISS_ENVELOP['TOLE_LISS'])
+     para_fonc=__ff.l_fonc[0].para
+     l_fonc=[]
+     for val in sp_lisse.listTable : 
+       l_fonc.append(t_fonction(sp_lisse.listFreq,val,para_fonc))
+     __ex=t_nappe(vale_para=sp_lisse.listAmor,l_fonc=l_fonc,para=__ff.para)
 
   ### creation de la fonction produite par appel à DEFI_FONCTION
   ### on récupère les paramètres issus du calcul de __ex
@@ -307,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 a012dfb5bb500367588be2bc9d677c08096082f5..68ddb8104cfda249991657a7b49f9d2d6830cb6b 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF calc_precont_ops Macro  DATE 07/03/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF calc_precont_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -37,6 +37,7 @@ def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT,
   import types
   from Accas import _F
   from Noyau.N_utils import AsType
+  from Utilitai.Utmess     import UTMESS
   ier=0
 
   # On importe les definitions des commandes a utiliser dans la macro
@@ -53,7 +54,7 @@ def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT,
   AFFE_MATERIAU    = self.get_cmd('AFFE_MATERIAU')
 
   # La macro compte pour 1 dans la numerotation des commandes
-  self.icmd=1
+  self.set_icmd(1)
 
   # Le concept sortant (de type evol_noli) est nomme RES dans 
   # le contexte de la macro
@@ -109,9 +110,7 @@ def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT,
 
   # Teste si INST_INIT est bien plus petit que INST_FIN
   if __TMAX <= __TMIN:
-    ier=ier+1
-    self.cr.fatal("""<F> <CALC_PRECONT> ERREUR : INST_FIN PLUS PETIT QUE INST_INIT""")
-    return ier
+    UTMESS('F','CALC_PRECONT','INST_FIN PLUS PETIT QUE INST_INIT')
 
   # Cree la liste d'instant __L2 allant de __TMIN a __TMAX et contenant 
   # un instant supplementaire __TINT
index 3d234d7628ba57172b1cf5060105a5dde5aa5f91..552fe5e0c661f2a53f905c1159c80b91bd9e2d5a 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF defi_cable_bp_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF defi_cable_bp_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -55,6 +55,7 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
   """
   from Accas import _F
   import aster,string
+  from Utilitai.Utmess import UTMESS
   ier=0
 
   # On importe les definitions des commandes a utiliser dans la macro
@@ -96,17 +97,15 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
 
     __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE    .NOMA        ' )
     if string.ljust(MAILLAGE.nom,8) != __MAIL[0] :
-      self.DeclareOut(MAILLAGE.nom,maillage)
-      print ' '
-      print '  # ---------------------------------------------------------------------------'
-      print '  # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND'
-      print '  #                            PAS A CELUI UTILISE DANS LE MODELE !'
-      print '  # ',MAILLAGE.nom,' - ',__MAIL[0]
-      print '  # ---------------------------------------------------------------------------'
-      print ' '
-      ier=ier+1
-      self.cr.fatal("""<F> <DEFI_CABLE_BP> Erreur dans la macro""")
-      return ier
+      echo_mess=[]
+      echo_mess.append( ' \n' )
+      echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
+      echo_mess.append( ' # DEFI_CABLE_BP - Erreur : LE CONCEPT MAILLAGE RENSEIGNE NE CORRESPOND       \n' )
+      echo_mess.append( ' #                          PAS A CELUI UTILISE DANS LE MODELE !              \n' )
+      echo_mess.append( ' # '+MAILLAGE.nom+' - '+__MAIL[0]+'\n' )
+      echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
+      message=string.join(echo_mess)
+      UTMESS('F',message)
 
 
   # DEFINITION DU NOM DES GROUP_NO
@@ -153,14 +152,13 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
           __CAB = i['GROUP_MA']
           motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM1}]}
         if i.has_key('MAILLE') == 1: 
-          print ' '
-          print '  # ---------------------------------------------------------------------------'
-          print '  # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA'
-          print '  # ---------------------------------------------------------------------------'
-          print ' '
-          ier=ier+1
-          self.cr.fatal("""<F> <DEFI_CABLE_BP> Erreur dans la macro""")
-          return ier
+          echo_mess=[]
+          echo_mess.append( ' \n' )
+          echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
+          echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA               \n' )
+          echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
+          message=string.join(echo_mess)
+          UTMESS('F',message)
         if i.has_key('GROUP_NO_ANCRAGE') == 1: 
           __PC1 = i['GROUP_NO_ANCRAGE'][0]
           motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1
@@ -189,14 +187,13 @@ def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
           __CAB = i['GROUP_MA']
           motscle2= {'CREA_GROUP_NO': [{'LONGUEUR': LONGUEUR, 'RAYON': RAYON, 'OPTION': 'TUNNEL', 'GROUP_MA': [ GROUP_MA_BETON, __CAB ], 'GROUP_MA_AXE': __CAB, 'NOM': __NOM2}]}
         if i.has_key('MAILLE') == 1: 
-          print ' '
-          print '  # ---------------------------------------------------------------------------'
-          print '  # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA'
-          print '  # ---------------------------------------------------------------------------'
-          print ' '
-          ier=ier+1
-          self.cr.fatal("""<F> <DEFI_CABLE_BP> Erreur dans la macro""")
-          return ier
+          echo_mess=[]
+          echo_mess.append( ' \n' )
+          echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
+          echo_mess.append( ' # DEFI_CABLE_BP - Erreur : MAILLE INTERDIT - UTILISER GROUP_MA               \n' )
+          echo_mess.append( ' # ---------------------------------------------------------------------------\n' )
+          message=string.join(echo_mess)
+          UTMESS('F',message)
         if i.has_key('GROUP_NO_ANCRAGE') == 1: 
           __PC1 = i['GROUP_NO_ANCRAGE'][1]
           motscle2['CREA_GROUP_NO'][0]['GROUP_NO_ORIG'] = __PC1
index bf46f88139598524a9890f5537467fb7f5415260..9e4466132db0eaf6c1733b40ff7a9b2aca331858 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF defi_part_feti_ops Macro  DATE 23/11/2004   AUTEUR ASSIRE A.ASSIRE 
+#@ MODIF defi_part_feti_ops Macro  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 #  INFO            1,2
 #  
 # ===========================================================================
-# script PYTHON : appel a Metis et lancement de DEFI_PART_OPS
+# script PYTHON : lancement de DEFI_PART_PA_OPS et de DEFI_PART_OPS
 
 
-def defi_part_feti_ops(self,MAILLAGE,MODELE,NB_PART,EXCIT,METHODE,NOM_GROUP_MA,INFO,**args):
+def defi_part_feti_ops(self,NB_PART,METHODE,TRAITER_BORDS,NOM_GROUP_MA,CORRECTION_CONNEX,INFO,**args):
 
   import aster, string, sys
 
   from Accas import _F
   from Noyau.N_utils import AsType
-
   from Utilitai import partition
 
   # DEBUT DE LA MACRO
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.set_icmd(1)
   ier=0
-
-  INCLUSE='NON'  # On cree des GROUP_MA pour les mailles de bords (pour developpeur)
-
+  
+  # On importe les definitions des commandes a utiliser dans la macro
+  DEFI_PART_OPS   = self.get_cmd('DEFI_PART_OPS')
+  INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER')
+  DEFI_FICHIER    = self.get_cmd('DEFI_FICHIER')
+  DETRUIRE        = self.get_cmd('DETRUIRE')
+  DEFI_PART_PA_OPS   = self.get_cmd('DEFI_PART_PA_OPS')
+  
+  nompro='DEFI_PART_FETI'
+  
+  # Maillage
+  if args.has_key('MODELE'):
+    if args['MODELE'] != None:
+      __MOD = string.ljust(args['MODELE'].nom,8)
+      __MOD =__MOD+'.MODELE    .NOMA        '
+      __LMAIL = aster.getvectjev(__MOD)
+      __MAIL  = string.strip(__LMAIL[0])
+      MAILLAGE=self.get_sd_avant_etape(__MAIL,self)
+    else:
+      MAILLAGE=args['MAILLAGE']
+  
   # Nom des GROUP_MA générés
   NOM_GROUP_MA = string.strip(NOM_GROUP_MA)
-  NOM_GROUP_MA_BORD = '_' + NOM_GROUP_MA
 
   # Test sur le nombre de caractères de NOM_GROUP_MA
   if ( len(NOM_GROUP_MA)+len(str(NB_PART)) > 7 ):
-    print '\n\n        ERREUR : Afin de pouvoir générer les GROUP_MA, réduisez le nombre \n                 de caractères de NOM_GROUP_MA à un maximum de :', 7-len(str(NB_PART))
-    print '\n\n'
-    sys.exit(1)
+    ln=7-len(str(NB_PART))
+    UTMESS('F', nompro, 'Afin de pouvoir générer les GROUP_MA, réduisez le nombre '\
+                        'de caractères de NOM_GROUP_MA à un maximum de : %i' %ln)
 
   # Verification que des GROUP_MA ne portent pas deja les memes noms
   _lst = []
@@ -67,116 +86,109 @@ def defi_part_feti_ops(self,MAILLAGE,MODELE,NB_PART,EXCIT,METHODE,NOM_GROUP_MA,I
     _lst.append( string.strip(i[0]) )
   for i in range(NB_PART):
     if ( NOM_GROUP_MA+str(i) in _lst ):
-      print '\n\n        ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA+str(i)
-      print '\n\n'
-      sys.exit(1)
-    if ( NOM_GROUP_MA_BORD+str(i) in _lst ):
-      print '\n\n        ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA_BORD+str(i)
-      print '\n\n'
-      sys.exit(1)
-
-  # Executable du partitionneur
-  if METHODE=="AUTRE":
-    exe_metis = arg['LOGICIEL']
-  else:
-    exe_metis = aster.repout() + string.lower(METHODE)
-
-  # On importe les definitions des commandes a utiliser dans la macro
-  DEFI_PART_OPS   = self.get_cmd('DEFI_PART_OPS')
-  INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER')
-  DEFI_FICHIER    = self.get_cmd('DEFI_FICHIER')
-  DETRUIRE        = self.get_cmd('DETRUIRE')
-
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.icmd=1
+      ngrma=NOM_GROUP_MA+str(i)
+      UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma)
+    if args.has_key('NOM_GROUP_MA_BORD') :
+      if args['NOM_GROUP_MA_BORD'] != None :
+        if ( args['NOM_GROUP_MA_BORD']+str(i) in _lst ):
+          ngrma=args['NOM_GROUP_MA_BORD']+str(i)
+          UTMESS('F', nompro, "Il existe déjà un GROUP_MA nommé : %s" %ngrma)
 
   # Le concept sortant dans le contexte de la macro
   self.DeclareOut('_SDFETI',self.sd)
 
   # Debut :
-  print """
-
-  #  ---------------------------------------------------------------------------
-  #  MACRO-COMMANDE : DEFI_PART_FETI
-  #  ----------------
-"""
-
-  # Objet Partition
-  _part = partition.PARTITION(jdc=self);
-
-  # Recuperation de deux UL libres
-  _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE')
-  ul1=_UL['UNITE_LIBRE',1]
-  DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1)
-  DEFI_FICHIER(UNITE=ul1)
-  _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE')
-  ul2=_UL['UNITE_LIBRE',1]
-  DEFI_FICHIER(ACTION='LIBERER',UNITE=ul1)
-
-  fichier_in  = 'fort.' + str(ul1)
-  fichier_out = 'fort.' + str(ul2)
-
-  # Options de la classe Partition
-  _part.OPTIONS['exe_metis']   = exe_metis
-  _part.OPTIONS['fichier_in']  = fichier_in
-  _part.OPTIONS['fichier_out'] = fichier_out
 
+  # Regeneration des mots-cles GROUPAGE passés en argument de la macro
+  motscle1= {}
+  if args.has_key('GROUPAGE'):
+    if args['GROUPAGE'] != None :
+      dGroup=[]
+      for j in args['GROUPAGE']:
+        dGroup.append(j.cree_dict_valeurs(j.mc_liste))
+        for i in dGroup[-1].keys():
+          if dGroup[-1][i]==None : del dGroup[-1][i]
+        motscle1['GROUPAGE']=dGroup
+  
+  # Regeneration des mots-cles POIDS_MAILLES passés en argument de la macro
+  if args.has_key('POIDS_MAILLES'):
+    if args['POIDS_MAILLES'] != None :
+      dEval=[]
+      for j in args['POIDS_MAILLES']:
+        dEval.append(j.cree_dict_valeurs(j.mc_liste))
+        for i in dEval[-1].keys():
+          if dEval[-1][i]==None : del dEval[-1][i]
+        motscle1['POIDS_MAILLES']=dEval
+  # Y a t'il présence du mot clé : NOM_GROUP_MA_BORD 
+  if args.has_key('GROUP_MA_BORD'):
+    if args['GROUP_MA_BORD'] != None :
+      motscle1['GROUP_MA_BORD']=args['GROUP_MA_BORD']
+
+  # Y a t'il présence du mot clé : LOGICIEL
+  if args.has_key('LOGICIEL'):
+    if args['LOGICIEL'] != None :
+      motscle1['LOGICIEL']=args['LOGICIEL']
+
+  # Y a t'il présence du mot clé : MODELE
+  if args.has_key('MODELE'):
+    if args['MODELE'] != None :
+      motscle1['MODELE']=args['MODELE']
 
   # Partitionnement
-  if MODELE:
-    _part.Partitionne_Aster(
-                       MAILLAGE = MAILLAGE,
-                       MODELE   = MODELE,
-                       NB_PART  = NB_PART,
-                       INFO     = INFO,
-                       );
-
-  elif MAILLAGE:
-    _part.Partitionne_Aster(
-                       MAILLAGE = MAILLAGE,
-                       NB_PART  = NB_PART,
-                       INFO     = INFO,
-                       );
-
-
-  # Creation des group_ma dans le maillage Aster
-  _part.Creation_Group_ma_Aster_par_SD(NOM=NOM_GROUP_MA, NOM2=NOM_GROUP_MA_BORD, INCLUSE=INCLUSE)
-
+  _SDFETI=DEFI_PART_PA_OPS(
+                   MAILLAGE=MAILLAGE,
+                   INFO=INFO,
+                   METHODE=METHODE,
+                   NB_PART=NB_PART, 
+                   CORRECTION_CONNEX=CORRECTION_CONNEX,
+                   TRAITER_BORDS=TRAITER_BORDS,
+                   NOM_GROUP_MA=NOM_GROUP_MA, 
+                   **motscle1
+                     ); 
+  
+  # Liste des groupes de mailles du maillage
+  _LST_GMA = MAILLAGE.LIST_GROUP_MA()
+  _LST_GMA = map(lambda x: x[0], _LST_GMA)
 
   # Creation de la SDFETI
-  if MODELE:
-    _tmp  = []
-    for i in range(NB_PART):
-      txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) }
-      if ( NOM_GROUP_MA_BORD+str(i) in _part.ASTER['GROUP_MA_BORD'] ):
-        txt['GROUP_MA_BORD'] = NOM_GROUP_MA_BORD + str(i)
-      _tmp.append( txt )
+  if args.has_key('MODELE'):
+    if args['MODELE'] != None :
+      _tmp  = []
+      for i in range(NB_PART):
+        txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) }
+        _tmp.append( txt )
+   
+        if args.has_key('NOM_GROUP_MA_BORD') :
+          if args['NOM_GROUP_MA_BORD'] != None :
+            if ( args['NOM_GROUP_MA_BORD']+str(i) in _LST_GMA ):
+              txt['GROUP_MA_BORD'] = string.strip(args['NOM_GROUP_MA_BORD']) + str(i)
+            _tmp.append( txt )  
+    
+      motscle2= {'DEFI': _tmp }
   
-    motscle2= {'DEFI': _tmp }
+      # Regeneration des mots-cles EXCIT passés en argument de la macro
+      if args.has_key('EXCIT'):
+        if args['EXCIT'] != None :
+          dExcit=[]
+          for j in args['EXCIT']:
+            dExcit.append(j.cree_dict_valeurs(j.mc_liste))
+            for i in dExcit[-1].keys():
+              if dExcit[-1][i]==None : del dExcit[-1][i]
+          motscle2['EXCIT']=dExcit
   
-    # Regeneration des mots-cles EXCIT passés en argument de la macro
-    if EXCIT:
-      dExcit=[]
-      for j in EXCIT :
-        dExcit.append(j.cree_dict_valeurs(j.mc_liste))
-        for i in dExcit[-1].keys():
-          if dExcit[-1][i]==None : del dExcit[-1][i]
-      motscle2['EXCIT']=dExcit
+      _SDFETI=DEFI_PART_OPS(NOM='SDD',
+                            MODELE=args['MODELE'],
+                            INFO=1,
+                            **motscle2
+                            );
+    else:
+      _SDFETI=None
   
-    _SDFETI=DEFI_PART_OPS(NOM='SDD',
-                          MODELE=MODELE,
-                          INFO=1,
-                          **motscle2
-                          );
   else:
     _SDFETI=None
 
 
   # Fin :
-  print """
-
-  %  FIN MACRO-COMMANDE: DEFI_PART_FETI
-
-"""
 
   return ier
index 3f82084392ae5935cd0de1d8011e910b1001e913..b74d7e5486a5f854ed6ec42fddf0f575698f8873 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF fiabilite_mefisto Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF fiabilite_mefisto Macro  DATE 04/10/2005   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -47,6 +47,8 @@ def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global,
   from Macro import fiabilite_fichier
   import os
   import string
+  import Numeric
+  from Utilitai.Utmess import UTMESS
 #
 #____________________________________________________________________
 #
@@ -232,11 +234,22 @@ def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global,
       f_stoch.Ecrit_Valeurs ( aux )
 #
     f_stoch.Ecrit_Titre ("Correlation matrix fictive")
-    for m in range(nb_occu_variable) :
-      aux = [ ]
-      for n in range(nb_occu_variable) :
-        aux.append(args["MATRICE"][n + m*nb_occu_variable])
-      f_stoch.Ecrit_Valeurs ( aux )
+#    if args.has_key('MATRICE'):
+    if args["MATRICE"] != None:
+      if len(args["MATRICE"]) != nb_occu_variable**2:
+        UTMESS('F','FIABILITE_MEPHISTO',' LE NOMBRE D ELEMENTS' 
+        +' DU MOT CLE MATRICE DOIT ETRE EGAL A : '
+        +str(nb_occu_variable**2))
+      for m in range(nb_occu_variable) :
+        aux = [ ]
+        for n in range(nb_occu_variable) :
+          aux.append(args["MATRICE"][n + m*nb_occu_variable])
+        f_stoch.Ecrit_Valeurs ( aux )
+    else:
+        aux=Numeric.identity(nb_occu_variable)
+        aux=Numeric.concatenate(aux)
+        aux=aux.tolist()
+        f_stoch.Ecrit_Valeurs ( aux )
 #
     f_stoch.Ecrit_Titre ("Parameter threshold value")
     if SEUIL_TYPE == "MAXIMUM" :
index 1e9d6e49201d64514bea657ac57088995203de0a..dd50f8ebb269309a99a984d3253ff6c85da1b7e5 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF impr_fonction_ops Macro  DATE 11/05/2005   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF impr_fonction_ops Macro  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -30,8 +30,10 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
    Erreurs<S> dans IMPR_FONCTION pour ne pas perdre la base.
    """
    macro='IMPR_FONCTION'
+   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
@@ -53,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:
-         print ' Nom du fichier :',nomfich
-   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:
@@ -81,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:
-      print ' Nombre de fonctions à analyser : ',len(Courbe)
+      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
@@ -97,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:
@@ -113,7 +114,8 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
             linterp=obj
          linter__=DEFI_LIST_REEL(VALE=linterp)
       if INFO==2:
-         print ' Interpolation globale sur la liste :\n',linter__.Valeurs()
+         aster.affiche('MESSAGE', ' Interpolation globale sur la liste :')
+         aster.affiche('MESSAGE', pprint.pformat(linter__.Valeurs()))
 
 
    #----------------------------------------------
@@ -130,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()
@@ -141,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']
@@ -200,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,
@@ -226,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={
@@ -242,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
@@ -308,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={
@@ -326,9 +327,10 @@ def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
 
    # 1.3. dbg
    if INFO==2:
-      print '\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70
-      print graph
-      print '-'*70+'\n'
+      message='\n'+'-'*70+'\n Contenu du Graph : \n'+'-'*70+'\n'
+      message=message+graph.__repr__()
+      message=message+'-'*70+'\n'
+      aster.affiche('MESSAGE',message)
 
    #----------------------------------------------
    # 2. Impression du 'tableau' de valeurs
@@ -336,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,
@@ -370,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' }
@@ -387,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 74776f0bd78d390a5fd1f183763760e0c42b1146..4b90940debdbb01986d453869a77f3b9556410fb 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF impr_table_ops Macro  DATE 11/05/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])
 
@@ -109,6 +99,8 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args):
    nom_para=ltab[0][0].para
    if args['NOM_PARA']:
       nom_para=args['NOM_PARA']
+   if not type(nom_para) in EnumTypes:
+      nom_para=[nom_para,]
 
    # 0.4.2. Traiter le cas des UL réservées
    if args['UNITE'] and args['UNITE'] in ul_reserve:
@@ -148,7 +140,14 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args):
          tab.sort(CLES=dT['NOM_PARA'], ORDRE=dT['ORDRE'])
 
       # ----- 4. Impression
+      # vérification des paramètres
+      for p in nom_para:
+         if not p in tab.para:
+            UTMESS('A', 'IMPR_TABLE', 'Paramètre absent de la table : %s' % p)
+      
+      # sélection des paramètres
       timp=tab[nom_para]
+      
       # passage des mots-clés de mise en forme à la méthode Impr
       kargs=args.copy()
       kargs.update({
@@ -179,7 +178,14 @@ def impr_table_ops(self, FORMAT, TABLE, INFO, **args):
 
       # 4.4. regroupement par paramètre : PAGINATION
       if args['PAGINATION']:
-         kargs['PAGINATION']=args['PAGINATION']
+         l_ppag=args['PAGINATION']
+         if not type(l_ppag) in EnumTypes:
+            l_ppag=[l_ppag,]
+         kargs['PAGINATION'] = [p for p in l_ppag if p in nom_para]
+         l_para_err          = [p for p in l_ppag if not p in nom_para]
+         if len(l_para_err)>0:
+            UTMESS('A', 'IMPR_TABLE', 'Paramètres absents de la table (ou de '\
+                   'NOM_PARA) : %s' % ', '.join(l_para_err))
 
       timp.Impr(**kargs)
 
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 1a9209a6c62285d90fe49329fb4a0a2bcbf4110b..a2bd9567368cc3232b20c0ce43a29d84018b9845 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF lire_inte_spec_ops Macro  DATE 24/05/2005   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF lire_inte_spec_ops Macro  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -50,14 +50,10 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL,
     entete=entete[entete.index('DIM'):]
     dim=int(entete[entete.index('=')+1:entete.index('\n')])
   except ValueError : 
-    ier=ier+1
-    self.cr.fatal("<F> <LIRE_INTE_SPEC> la dimension DIM n est pas précisée dans le fichier lu")
-    return ier
+    UTMESS('F', nompro, "la dimension DIM n est pas précisée dans le fichier lu")
 
   if len(list_fonc)!=(dim*(dim+1)/2):
-    ier=ier+1
-    self.cr.fatal("<F> <LIRE_INTE_SPEC> nombre de fonctions incorrect")
-    return ier
+    UTMESS('F', nompro, "nombre de fonctions incorrect")
 
   nume_i=[]
   nume_j=[]
@@ -74,9 +70,7 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL,
       vale_fonc=vale_fonc.replace('\n',' ')
       vale_fonc=map(float,vale_fonc.split())
     except ValueError : 
-      ier=ier+1
-      self.cr.fatal("<F> <LIRE_INTE_SPEC> erreur dans les données de fonctions")
-      return ier
+      UTMESS('F', nompro, "erreur dans les données de fonctions")
 
     liste=[]
     if   FORMAT=='REEL_IMAG':
@@ -105,9 +99,7 @@ def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL,
       nume_ib.append(i+1)
       nume_jb.append(j+1)
   if nume_i!=nume_ib or nume_j!=nume_jb : 
-      ier=ier+1
-      self.cr.fatal("<F> <LIRE_INTE_SPEC> erreur dans les indices")
-      return ier
+      UTMESS('F', nompro, "erreur dans les indices")
   mcfact=[]
   mcfact.append(_F(PARA='NOM_CHAM'    ,LISTE_K=(NOM_RESU),NUME_LIGN=(1,)))
   mcfact.append(_F(PARA='OPTION'      ,LISTE_K=('TOUT',) ,NUME_LIGN=(1,)))
@@ -116,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 acf3a9142c3f5d36d0ddf946677f79070a44efd7..5d4edeff5f9d3ada647ad6eb341017de753cb6f3 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF lire_table_ops Macro  DATE 24/05/2005   AUTEUR MCOURTOI M.COURTOIS 
+#@ 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
@@ -122,6 +122,7 @@ def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR,
   from Utilitai.UniteAster import UniteAster
 
   ier=0
+  nompro='LIRE_TABLE'
   ### On importe les definitions des commandes a utiliser dans la macro
   CREA_TABLE  =self.get_cmd('CREA_TABLE')
 
@@ -142,8 +143,7 @@ def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR,
   if FORMAT=='ASTER':
     ier,message,titr_tab,list_para,tab_lue=lecture_table(texte,NUME_TABLE,SEPARATEUR)
     if ier!=0 :
-       self.cr.fatal(message)
-       return ier
+       UTMESS('F', nompro, message)
   else                : pass
 
   ### création de la table ASTER :
@@ -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 16625395d727453f597f2ba2a96d0eb17fdb5f93..0d1234c483d6972c71df51608a5cdf8911054573 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_adap_mail_ops Macro  DATE 05/10/2004   AUTEUR CIBHHLV L.VIVAN 
+#@ MODIF macr_adap_mail_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # RESPONSABLE GNICOLAS G.NICOLAS
 #
 def macr_adap_mail_ops ( self,
-                         INFO, VERSION_HOMARD, LANGUE,
-                         NOMBRE, QUALITE, CONNEXITE, TAILLE, INTERPENETRATION,
-                         NON_SIMPLEXE, MAILLAGE_FRONTIERE,
+                         INFO, VERSION_HOMARD, MAILLAGE_FRONTIERE,
                          **args):
   """
-     Ecriture des macros MACR_ADAP_MAIL/MACR_INFO_MAIL
-     Remarque : on ne mentionne explicitement que les mots-clés communs aux
-                deux macros. Les autres sont dans le dictionnaire args
+     Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL
   """
 #
 #  1. args est le dictionnaire des arguments
@@ -57,7 +53,7 @@ def macr_adap_mail_ops ( self,
 #     dictionnaires que de maillages manipulés. L'ensemble de ces dictionnaires est conservé
 #     dans la liste Liste_Maillages.
 #     Description du dictionnaire de maillages :
-#        dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1" ou "MAILLAGE_FRONTIERE"
+#        dico["Type_Maillage"] = o ; string ; "MAILLAGE_N", "MAILLAGE_NP1", "MAILLAGE_NP1_ANNEXE" ou "MAILLAGE_FRONTIERE"
 #        dico["Nom_ASTER"]     = o ; concept ASTER associé
 #        dico["Action"]        = o ; string ; "A_ecrire" ou "A_lire"
 #        dico["NOM_MED"]       = o ; string ; Nom MED du maillage
@@ -66,9 +62,10 @@ def macr_adap_mail_ops ( self,
 #     dictionnaires que de champs manipulés. L'ensemble de ces dictionnaires est conservé
 #     dans la liste Liste_Champs.
 #     Description du dictionnaire de champs :
-#        dico["Type_Champ"]   = o ; string ; "INDICATEUR" ou "CHAMP"
-#        dico["RESULTAT"]     = o ; concept ASTER du résutat associé
-#        dico["NOM_CHAM"]     = o ; string ; Nom ASTER du champ
+#        dico["Type_Champ"]   = o ; string ; "INDICATEUR" ou "CHAMP_MAJ"
+#        dico["RESULTAT"]     = f ; concept ASTER du résutat associé
+#        dico["NOM_CHAM"]     = f ; string ; Nom ASTER du champ
+#        dico["CHAM_GD"]      = f ; concept ASTER du champ de grandeur associée
 #        dico["COMPOSANTE"]   = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur)
 #        dico["NUME_ORDRE"]   = f ; entier ; Numéro d'ordre du champ
 #        dico["INST"]         = f ; entier ; Instant du champ
@@ -78,16 +75,18 @@ def macr_adap_mail_ops ( self,
 #        dico["NOM_MED"]      = o ; string ; Nom MED du champ
 #
   from Accas import _F
+  from Macro import creation_donnees_homard 
+  from Utilitai.Utmess     import UTMESS
   import aster 
   import string
-  import types
   import os
+#gn  import shutil
 #
   global Liste_Passages
 #
-#--------------------------------------------------------------------
+#====================================================================
 # 1. Préalables
-#--------------------------------------------------------------------
+#====================================================================
 #
 # 1.1. ==> La macro compte pour 1 dans la numerotation des commandes
 #
@@ -100,18 +99,16 @@ def macr_adap_mail_ops ( self,
   except :
     self.jdc.indice_macro_homard = 1
     Liste_Passages = []
-  Numero_Passage_Fonction = self.jdc.indice_macro_homard
-###  print "Numero_Passage_Fonction = ",Numero_Passage_Fonction
+  numero_passage_fonction = self.jdc.indice_macro_homard
+###  print "numero_passage_fonction = ",numero_passage_fonction
 #
 # 1.3. ==> On importe les definitions des commandes a utiliser dans la macro
 #
   DEFI_FICHIER    = self.get_cmd("DEFI_FICHIER")
   IMPR_RESU       = self.get_cmd("IMPR_RESU")
   EXEC_LOGICIEL   = self.get_cmd("EXEC_LOGICIEL")
-  IMPR_FICO_HOMA  = self.get_cmd("IMPR_FICO_HOMA")
   LIRE_MAILLAGE   = self.get_cmd("LIRE_MAILLAGE")
   LIRE_CHAMP      = self.get_cmd("LIRE_CHAMP")
-  DETRUIRE        = self.get_cmd('DETRUIRE')
 #
 # 1.4. ==> Le nom du programme HOMARD à lancer
 #
@@ -120,92 +117,151 @@ def macr_adap_mail_ops ( self,
 #
 # 1.5. ==> Initialisations
 #
-  codret = 0
   codret_partiel = [0]
   Rep_Calc_ASTER = os.getcwd()
 #
   Liste_Maillages = []
   Liste_Champs    = []
+  Liste_Zones     = []
   dico_indi = {}
 #
-  ADAPTATION = None
-  MAJ_CHAM = None
+  LISTE_ADAPTATION_LIBRE = ("RAFF_DERA" , "RAFFINEMENT" , "DERAFFINEMENT")
 #
-  unite = 71
-#
-#--------------------------------------------------------------------
+#====================================================================
 # 2. Décodage des arguments de la macro-commande
-#--------------------------------------------------------------------
+#====================================================================
 # 2.1. ==> Données de pilotage de l'adaptation
 #
   if ( self.nom == "MACR_ADAP_MAIL" ) :
 #
-    modhom = "ADAP"
-#
-    ADAPTATION = args["ADAPTATION"]
-    if args.has_key("MAJ_CHAM") :
-      MAJ_CHAM = args["MAJ_CHAM"]
+    mode_homard = "ADAP"
 #
 # 2.1.1. ==> Les concepts "maillage"
 #
-    for mot_cle in ["MAILLAGE_N","MAILLAGE_NP1"] :
+#gn    print "\n.. Debut de 2.1.1"
+#    for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1"] :
+    for mot_cle in ["MAILLAGE_N" , "MAILLAGE_NP1" , "MAILLAGE_NP1_ANNEXE"] :
+#gn      print "\nmot_cle = ",mot_cle
       dico = {}
       dico["Type_Maillage"] = mot_cle
-      dico["Nom_ASTER"]     = ADAPTATION[mot_cle]
-      if ( mot_cle == "MAILLAGE_N" ) :
-        dico["Action"] = "A_ecrire"
+      if ( args[mot_cle] != None ) :
+#gn        print "==> args[",mot_cle,"] = ",args[mot_cle]
+        dico["Nom_ASTER"] = args[mot_cle]
+        if ( mot_cle == "MAILLAGE_N" ) :
+          dico["Action"] = "A_ecrire"
+        else :
+          dico["Action"] = "A_lire"
       else :
-        dico["Action"] = "A_lire"
+        dico["Action"] = "Rien"
+#gn      print "dico = ",dico
       Liste_Maillages.append(dico)
 #
 # 2.1.2. ==> L'éventuel indicateur d'erreur
 #
-    if ADAPTATION["LIBRE"] != None :
+#gn   print "\n.. Debut de 2.1.2"
+    if args["ADAPTATION"] in LISTE_ADAPTATION_LIBRE :
       dico = {}
       dico["Type_Champ"] = "INDICATEUR"
-      dico["RESULTAT"]   = ADAPTATION["RESULTAT_N"]
-      dico["NOM_CHAM"]   = ADAPTATION["INDICATEUR"]
-      dico["COMPOSANTE"] = ADAPTATION["NOM_CMP_INDICA"]
-      if ( ADAPTATION["NUME_ORDRE"] != None ) :
-        dico["NUME_ORDRE"] = ADAPTATION["NUME_ORDRE"]
-      if ( ADAPTATION["INST"] != None ) :
-        dico["INST"] = ADAPTATION["INST"]
-        for cle in [ "PRECISION", "CRITERE" ] :
-          if ( ADAPTATION[cle] != None ) :
-            dico[cle] = ADAPTATION[cle]
-      dico["NOM_MED"] = aster.mdnoch ( dico["RESULTAT"].nom , dico["NOM_CHAM"] )
+      if ( args["RESULTAT_N"] != None ) :
+        lresu = 1
+        dico["RESULTAT"]   = args["RESULTAT_N"]
+        noresu = dico["RESULTAT"].nom
+        dico["NOM_CHAM"]   = args["INDICATEUR"]
+        nomsym = dico["NOM_CHAM"]
+        if ( args["NUME_ORDRE"] != None ) :
+          dico["NUME_ORDRE"] = args["NUME_ORDRE"]
+        if ( args["INST"] != None ) :
+          dico["INST"] = args["INST"]
+          for cle in [ "PRECISION", "CRITERE" ] :
+            if ( args[cle] != None ) :
+              dico[cle] = args[cle]
+      else :
+        lresu = 0
+        dico["CHAM_GD"] = args["CHAM_GD"]
+        noresu = dico["CHAM_GD"].nom
+        nomsym = " "
+      nopase = " "
+#
+###      print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase
+      dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase )
+###      print "dico[\"NOM_MED\"] = ", dico["NOM_MED"]
+      dico["COMPOSANTE"] = args["NOM_CMP_INDICA"]
       Liste_Champs.append(dico)
       dico_indi = dico
 ###      print dico
 #
 # 2.1.3. ==> Les champs à mettre à jour
 #
-    if ( MAJ_CHAM != None ) :
+#gn     print "\n.. Debut de 2.1.3."
 #
-      for maj_cham in MAJ_CHAM :
-###        print maj_cham
+    if args.has_key("MAJ_CHAM") :
+#
+      if args["MAJ_CHAM"] is None :
+        les_champs = []
+      else :
+        les_champs = args["MAJ_CHAM"]
+#
+      for maj_cham in les_champs :
+#gn        print maj_cham
+#gn        print type(maj_cham)
 #
         dico = {}
-        dico["Type_Champ"] = "CHAMP"
-        for cle in [ "CHAM_MAJ", "TYPE_CHAM", "RESULTAT", "NOM_CHAM" ] :
+        dico["Type_Champ"] = "CHAMP_MAJ"
+        Liste_aux = [ "CHAM_MAJ", "TYPE_CHAM", "NOM_CHAM" ]
+        if ( maj_cham["RESULTAT"] != None ) :
+          lresu = 1
+          Liste_aux.append("RESULTAT")
+          if ( maj_cham["NUME_ORDRE"] != None ) :
+            dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"]
+          elif ( maj_cham["INST"] != None ) :
+            dico["INST"] = maj_cham["INST"]
+            for cle in [ "PRECISION", "CRITERE" ] :
+              if ( maj_cham[cle] != None ) :
+                dico[cle] = maj_cham[cle]
+          noresu = maj_cham["RESULTAT"].nom
+          nomsym = maj_cham["NOM_CHAM"]
+        else :
+          lresu = 0
+          Liste_aux.append("CHAM_GD")
+          noresu = maj_cham["CHAM_GD"].nom
+          nomsym = " "
+        for cle in Liste_aux :
           dico[cle] = maj_cham[cle]
-        if ( maj_cham["NUME_ORDRE"] != None ) :
-          dico["NUME_ORDRE"] = maj_cham["NUME_ORDRE"]
-        elif ( maj_cham["INST"] != None ) :
-          dico["INST"] = maj_cham["INST"]
-          for cle in [ "PRECISION", "CRITERE" ] :
-            if ( maj_cham[cle] != None ) :
-              dico[cle] = maj_cham[cle]
-        dico["NOM_MED"] = aster.mdnoch ( dico["RESULTAT"].nom , dico["NOM_CHAM"] )
+        nopase = " "
+###        print "Avant appel a aster.mdnoch, lresu = ",lresu,", noresu =", noresu ,", nomsym = ", nomsym ,", nopase = ", nopase
+        dico["NOM_MED"] = aster.mdnoch ( lresu, noresu, nomsym, nopase )
 #
 ###        print dico
         Liste_Champs.append(dico)
 #
+# 2.1.4. ==> Les zones de raffinement
+#
+###    print "\n.. Debut de 2.1.4."
+#
+    if args.has_key("ZONE") :
+#
+      if args["ZONE"] is None :
+        les_zones = []
+      else :
+        les_zones = args["ZONE"]
+#
+      for zone in les_zones :
+###        print zone
+###        print type(zone)
+        dico = {}
+        for aux in ['X_MINI','X_MAXI','Y_MINI','Y_MAXI','Z_MINI','Z_MAXI','X_CENTRE','Y_CENTRE','Z_CENTRE','RAYON'] :
+          if ( zone[aux] != None ) :
+            dico[aux] = zone[aux]
+###        print dico
+        Liste_Zones.append(dico)
+#
+###    print Liste_Zones
+#
 # 2.2. ==> Données de pilotage de l'information
 #
   else :
 #
-    modhom = "INFO"
+    mode_homard = "INFO"
 #
     dico = {}
     dico["Type_Maillage"] = "MAILLAGE_N"
@@ -214,6 +270,8 @@ def macr_adap_mail_ops ( self,
     Liste_Maillages.append(dico)
 #
 # 2.3. ==> Suivi de frontière
+#
+#gn   print "\n.. Debut de 2.3."
 #
   if ( MAILLAGE_FRONTIERE != None ) :
 #
@@ -223,24 +281,53 @@ def macr_adap_mail_ops ( self,
     dico["Action"]        = "A_ecrire"
     Liste_Maillages.append(dico)
 #
-#--------------------------------------------------------------------
+# 2.4. ==> Le numéro de version de HOMARD
+#    Remarque : dans la donnée de la version de HOMARD, il faut remplacer
+#               le _ de la donnee par un ., qui est interdit dans la
+#               syntaxe du langage de commandes ASTER
+#    Remarque : il faut remplacer le N majuscule de la donnee par
+#               un n minuscule, qui est interdit dans la syntaxe du langage
+#               de commandes ASTER
+#
+#gn  print "\n.. Debut de 2.4. avec VERSION_HOMARD = ", VERSION_HOMARD
+  VERSION_HOMARD = string.replace(VERSION_HOMARD,"_" , ".")
+  VERSION_HOMARD = string.replace(VERSION_HOMARD,"N" , "n")
+#
+  if ( VERSION_HOMARD[-6:]==".PERSO" ):
+    VERSION_HOMARD = VERSION_HOMARD[:-6]
+    version_perso = 1
+  else :
+    version_perso = 0
+#gn  print ".... VERSION_HOMARD = ", VERSION_HOMARD
+#gn  print ".... version_perso  = ", version_perso
+#
+#====================================================================
 # 3. Préparation du lancement des commandes
-#--------------------------------------------------------------------
+#====================================================================
 #
 # 3.1. ==> . Elaboration des noms MED des concepts de maillage
 #          . Memorisation des noms ASTER du maillage en entrée et en sortie (sous forme string)
+#
 #          On crée une nouvelle liste des dictionnaires décrivant les maillages
 #          et à la fin on écrase l'ancienne liste par cette nouvelle.
 #
-  L = []
+#gn  print "\n.. Debut de 3.1."
+#
+  Nom_Concept_Maillage_NP1_ANNEXE = None
+  l_aux = []
   for dico in Liste_Maillages :
-    dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom)
-    L.append(dico)
-    if ( dico["Type_Maillage"] == "MAILLAGE_N" ) :
-      Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom
-    elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) :
-      Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom
-  Liste_Maillages = L
+#gn     print "\ndico avant = ",dico
+    if ( dico["Action"] != "Rien" ) :
+      dico["NOM_MED"] = aster.mdnoma(dico["Nom_ASTER"].nom)
+      l_aux.append(dico)
+      if ( dico["Type_Maillage"] == "MAILLAGE_N" ) :
+        Nom_Concept_Maillage_N = dico["Nom_ASTER"].nom
+      elif ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) :
+        Nom_Concept_Maillage_NP1 = dico["Nom_ASTER"].nom
+      elif ( dico["Type_Maillage"] == "MAILLAGE_NP1_ANNEXE" ) :
+        Nom_Concept_Maillage_NP1_ANNEXE = dico["Nom_ASTER"].nom
+#gn     print "\ndico apres = ",dico
+  Liste_Maillages = l_aux
 #
 # 3.2. ==> Recherche du numéro d'itération et du répertoire de travail
 #
@@ -248,23 +335,29 @@ def macr_adap_mail_ops ( self,
 #            . le numéro d'itération est nul
 #            . le nom du répertoire de lancement de HOMARD est construit sur le nom
 #              du maillage en entrée et le numéro de passage dans la fonction
+#
+#gn  print "\.. Debut de 3.2.1."
 #
   niter = 0
-  Nom_Rep_local = Nom_Concept_Maillage_N + "_" + modhom + "_" + str(Numero_Passage_Fonction)
-  Rep_Calc_HOMARD_local = os.path.join(".",Nom_Rep_local)
-  Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER,Nom_Rep_local)
+  Nom_Rep_local = Nom_Concept_Maillage_N + "_" + mode_homard + "_" + str(numero_passage_fonction)
+  Rep_Calc_HOMARD_local = os.path.join(".", Nom_Rep_local)
+  Rep_Calc_HOMARD_global = os.path.join(Rep_Calc_ASTER, Nom_Rep_local)
 ###  print "Rep_Calc_HOMARD_local  = ", Rep_Calc_HOMARD_local
 ###  print "Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global
 #
-# 3.2.2. ==> En adaptation :
+# 3.2.2. ==> En adaptation : il faut repartir du répertoire de l'itération précédente
+#
+#gn  print "\.. Debut de 3.2.2."
 #
-  if ( modhom == "ADAP" ) :
+  if ( mode_homard == "ADAP" ) :
 #
 # 3.2.2.1. ==> On recherche si dans les passages déjà effectués, il en existe un
 #              dont le maillage d'arrivée était l'actuel maillage d'entrée. Si c'est
 #              le cas, cela veut dire que l'adaptation en cours est la suite d'une
 #              précédente. On doit donc utiliser le meme répertoire. Le numéro
 #              d'itération est celui de l'adaptation précédente augmenté de 1.
+#
+#gn     print "\.. Debut de 3.2.2.1."
 #
     for dico in Liste_Passages :
       if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) :
@@ -274,12 +367,15 @@ def macr_adap_mail_ops ( self,
 #
 # 3.2.2.2. ==> Memorisation de ce passage
 #
+#gn     print "\.. Debut de 3.2.2.2."
+#
 # 3.2.2.2.1. ==> Enregistrement d'un nouveau cas de figure
 #
     if ( niter == 0 ) :
       dico = {}
       dico["Maillage_0"]   = Nom_Concept_Maillage_N
       dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1
+      dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE
       dico["Rep_Calc_HOMARD_local"]  = Rep_Calc_HOMARD_local
       dico["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global
       dico["niter"]        = niter
@@ -288,23 +384,22 @@ def macr_adap_mail_ops ( self,
 # 3.2.2.2.2. ==> Modification du cas en cours
 #
     else :
-      L = []
+      l_aux = []
       for dico in Liste_Passages :
         if ( dico["Maillage_NP1"] == Nom_Concept_Maillage_N ) :
           dico["Maillage_NP1"] = Nom_Concept_Maillage_NP1
+          dico["Maillage_NP1_ANNEXE"] = Nom_Concept_Maillage_NP1_ANNEXE
           dico["niter"]        = niter
-        L.append(dico)
-      Liste_Passages = L
+        l_aux.append(dico)
+      Liste_Passages = l_aux
 #
 ###  print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global
 #
-#--------------------------------------------------------------------
-# 4. Ecriture des commandes
-#--------------------------------------------------------------------
+# 3.2.3. Création du répertoire pour homard
+#        attention : on ne fait cette creation qu'une seule fois par cas
+#                    d'adaptation ou d'information
 #
-# 4.1. ==> Création du répertoire pour homard
-#          attention : on ne fait cette creation qu'une seule fois par cas
-#                      d'adaptation ou d'information
+#gn  print "\.. Debut de 3.2.3."
 #
   if ( niter == 0 ) :
 #
@@ -312,10 +407,13 @@ def macr_adap_mail_ops ( self,
       os.mkdir(Rep_Calc_HOMARD_global)
     except os.error,codret_partiel :
       self.cr.warn("Code d'erreur de mkdir : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
-      self.cr.fatal("<F> <MACR_ADAP_MAIL> Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global)
-      codret = codret + 1
+      UTMESS("F", self.nom, "Impossible de créer le répertoire de travail pour HOMARD : "+Rep_Calc_HOMARD_global)
+#
+#====================================================================
+# 4. Ecriture des commandes de creation des donnees MED
+#====================================================================
 #
-# 4.2. ==> Ecriture des commandes de creation des donnees MED
+#gn  print "\.. Debut de 4."
 #
 #  On doit écrire : le maillage,
 #                   le champ d'indicateur d'erreur
@@ -324,53 +422,36 @@ def macr_adap_mail_ops ( self,
 #
 #  Chacune de ces écritures est optionnelle selon le contexte.
 #
-  if ( INFO > 1 ) : infomail = "OUI"
-  else :            infomail = "NON"
-#
-# 4.2.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER
-#            Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur
-#                       un fichier de nom fort.n, placé dans le répertoire de calcul
-#                       Dans le fichier de configuration, on donne comme nom MAILL.(niter).MED en entrée et
-#                       MAILL.(niter+1).MED en sortie (cf. adhc00)
-#                       Tant que les E/S MED n'ont pas évolué, on fait un lien pour assurer la cohérence.
+  if ( INFO > 1 ) :
+    infomail = "OUI"
+  else :
+    infomail = "NON"
 #
-# 4.2.1.1. ==> D'ASTER vers HOMARD
+# 4.1. ==> Noms des fichiers d'ASTER vers HOMARD et éventuellement de HOMARD vers ASTER
+#          Remarque : aujourd'hui, les écritures ou les lectures au format MED se font obligatoirement sur
+#                     un fichier de nom fort.n, placé dans le répertoire de calcul
+##
+# 4.1.1. ==> D'ASTER vers HOMARD
 #
-  Unite_Fichier_ASTER_vers_HOMARD = 1787 + 2*Numero_Passage_Fonction
+  Unite_Fichier_ASTER_vers_HOMARD = 1787 + 2*numero_passage_fonction
   Fichier_ASTER_vers_HOMARD = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_ASTER_vers_HOMARD))
-  Fichier_HOMARD_Entree = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".MED")
 ###  print "Fichier_ASTER_vers_HOMARD = ",Fichier_ASTER_vers_HOMARD
-###  print "Fichier_HOMARD_Entree = ",Fichier_HOMARD_Entree
-  try :
-    os.symlink(Fichier_ASTER_vers_HOMARD,Fichier_HOMARD_Entree)
-  except os.error,codret_partiel :
-    self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
-    self.cr.fatal("<F> <MACR_ADAP_MAIL> Probleme au lien entre " + Fichier_ASTER_vers_HOMARD + " et " + Fichier_HOMARD_Entree)
-    codret = codret + 1
 #
-# 4.2.1.2. ==> De HOMARD vers ASTER
+# 4.1.2. ==> De HOMARD vers ASTER
 #  
-  if ( modhom == "ADAP" ) :
+  if ( mode_homard == "ADAP" ) :
     Unite_Fichier_HOMARD_vers_ASTER = Unite_Fichier_ASTER_vers_HOMARD + 1
     Fichier_HOMARD_vers_ASTER = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_HOMARD_vers_ASTER))
-    Fichier_HOMARD_Sortie = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter+1)+".MED")
 ###    print "Fichier_HOMARD_vers_ASTER = ",Fichier_HOMARD_vers_ASTER
-###    print "Fichier_HOMARD_Sortie = ",Fichier_HOMARD_Sortie
-    try :
-      os.symlink(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_Sortie)
-    except os.error,codret_partiel :
-      self.cr.warn("Code d'erreur de symlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
-      self.cr.fatal("<F> <MACR_ADAP_MAIL> Probleme au lien entre " + Fichier_HOMARD_vers_ASTER + " et " + Fichier_HOMARD_Sortie)
-      codret = codret + 1
 #
-# 4.2.2. La définition du fichier de ASTER vers HOMARD
+# 4.2. La définition du fichier de ASTER vers HOMARD
 # 
   DEFI_FICHIER ( ACTION= "ASSOCIER",
                  UNITE = Unite_Fichier_ASTER_vers_HOMARD,
                  TYPE = "LIBRE",
                  INFO = INFO )
 #
-# 4.2.3. Le(s) maillage(s)
+# 4.3. Le(s) maillage(s)
 # Le maillage de calcul et l'éventuel maillage de la frontiere sont écrits
 # dans le meme fichier MED
 # En fait, on pourrait s'en passer au dela de la 1ère itération
@@ -380,17 +461,17 @@ def macr_adap_mail_ops ( self,
 #
   for dico in Liste_Maillages :
     if ( dico["Action"] == "A_ecrire" ) :
-      motscsi={}
+      motscsi = {}
       motscsi["MAILLAGE"] = dico["Nom_ASTER"]
-      motscfa={}
-      motscfa["RESU"]=_F( INFO_MAILLAGE=infomail,
+      motscfa = {}
+      motscfa["RESU"] = _F( INFO_MAILLAGE=infomail,
                           **motscsi )
 #
       IMPR_RESU ( INFO = INFO, 
                   FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD,
                   **motscfa )
 #
-# 4.2.4. Le(s) champ(s)
+# 4.4. Le(s) champ(s)
 #        Attention : il se peut que l'on demande la mise à jour du champ qui a servi comme
 #                    indicateur d'erreur. Si c'est le cas, il ne faut pas demander son
 #                    impression sinon il y a plantage d'IMPR_RESU qui ne sait pas substituer
@@ -398,9 +479,10 @@ def macr_adap_mail_ops ( self,
 #        Remarque : pour l'adaptation, on ne demande a priori qu'une composante du champ d'indicateur.
 #                   s'il y a demande de mise à jour, toutes les composantes sont concernées. Il faut
 #                   donc dans ce cas imprimer le champ total.
-#        dico["Type_Champ"]   = o ; string ; "INDICATEUR" ou "CHAMP"
-#        dico["RESULTAT"]     = o ; concept ASTER du résutat associé
-#        dico["NOM_CHAM"]     = o ; string ; Nom ASTER du champ
+#        dico["Type_Champ"]   = o ; string ; "INDICATEUR" ou "CHAMP_MAJ"
+#        dico["RESULTAT"]     = f ; concept ASTER du résutat associé
+#        dico["NOM_CHAM"]     = f ; string ; Nom ASTER du champ
+#        dico["CHAM_GD"]      = f ; concept ASTER du champ de grandeur associée
 #        dico["COMPOSANTE"]   = f ; string ; Nom ASTER de la composante (dans le cas de l'indicateur)
 #        dico["NUME_ORDRE"]   = f ; entier ; Numéro d'ordre du champ
 #        dico["INST"]         = f ; entier ; Instant du champ
@@ -409,160 +491,143 @@ def macr_adap_mail_ops ( self,
 #        dico["CHAM_MAJ"]     = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage
 #        dico["NOM_MED"]      = o ; string ; Nom MED du champ
 #
-# 4.2.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur
+# 4.4.1. Recherche d'un doublon éventuel sur le champ d'indicateur d'erreur
 #
+###  print "dico_indi = ",dico_indi
   if len(dico_indi) > 0 :
-    imprime_indic = 0
+    indic_est_deja_imprime = 0
+    if dico_indi.has_key("RESULTAT") :
+      Liste_aux = [ "RESULTAT", "NOM_CHAM" ]
+    else :
+      Liste_aux = [ "CHAM_GD" ]
   else :
-    imprime_indic = 1
+    indic_est_deja_imprime = 1
+    Liste_aux = [ ]
+###  print ".. Au debut de la boucle, Liste_aux = ",Liste_aux
+###  print ".. Au debut de la boucle, indic_est_deja_imprime = ",indic_est_deja_imprime
 #
   Liste_Champs_imprime = []
   for dico in Liste_Champs :
+###    print "\n.... dico = ",dico
 #   Pour un champ à mettre à jour, on a toujours impression
-    if ( dico["Type_Champ"] == "CHAMP" ) :
+    if ( dico["Type_Champ"] == "CHAMP_MAJ" ) :
       Liste_Champs_imprime.append(dico)
-#     Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour :
-      if not imprime_indic :
+#     Si le champ d'indicateur n'a toujours pas été repéré comme champ à mettre à jour :
+      if not indic_est_deja_imprime :
 #       Est-ce le meme champ ?
-        ok = 1
-        for cle in [ "RESULTAT", "NOM_CHAM" ] :
-          if ( dico_indi[cle] != dico[cle] ) :
-            ok = 0
+        on_a_le_champ = 1
+        for cle in Liste_aux :
+          if ( dico.has_key(cle) ) :
+###            print "...... dico_indi[cle] = ",dico_indi[cle]
+###            print "...... dico[cle]      = ",dico[cle]
+            if ( dico_indi[cle] != dico[cle] ) :
+              on_a_le_champ = 0
+              break
+          else :
+            on_a_le_champ = 0
             break
 #       Si oui, est-ce au meme moment ? (remarque : si rien n'est désigné, c'est qu'il n'y a qu'un
 #       seul instant ... donc c'est le meme ! En revanche, on ne sait pas comparer une donnée
 #       en numéro d'ordre et une donnée en instant. On croise les doigts.)
-        if ok :
+        if on_a_le_champ :
           for cle in [ "NUME_ORDRE", "INST" ] :
             if dico.has_key(cle) :
               if ( dico[cle] != None ) :
                 if dico_indi.has_key(cle) :
                   if ( dico_indi[cle] != dico[cle] ) :
-                    ok = 0
+                    on_a_le_champ = 0
                     break
-        if ok : imprime_indic = 1
+        if on_a_le_champ :
+          indic_est_deja_imprime = 1
+###  print "\n\nFin de la boucle .. indic_est_deja_imprime = ",indic_est_deja_imprime
 #   Si le champ d'indicateur n'a pas été repéré comme champ à mettre à jour, il faut
 #   l'inclure dans les champs à imprimer
-  if not imprime_indic : Liste_Champs_imprime.append(dico_indi)
+  if not indic_est_deja_imprime :
+    Liste_Champs_imprime.append(dico_indi)
 #
-# 4.2.4.2. Impressions après le filtrage précédent
+# 4.4.2. Impressions après le filtrage précédent
+#gn  print "\n.... Debut de 4.2.4.2."
 #
   for dico in Liste_Champs_imprime :
-    motscsi={}
-    for cle in [ "RESULTAT", "NOM_CHAM", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] :
+    motscsi = {}
+    for cle in [ "RESULTAT", "NOM_CHAM", "CHAM_GD", "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] :
       if dico.has_key(cle) :
         if ( dico[cle] != None ) :
           motscsi[cle] = dico[cle]
     if dico.has_key("COMPOSANTE") :
       motscsi["NOM_CMP"] = dico["COMPOSANTE"]
-    motscfa={}
-    motscfa["RESU"]=_F( INFO_MAILLAGE=infomail,
+    motscfa = {}
+    motscfa["RESU"] = _F( INFO_MAILLAGE=infomail,
                         **motscsi
                       )
+###    print ".. motscfa = ",motscfa
 #
     IMPR_RESU ( INFO = INFO, 
                 FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD,
                 **motscfa )
 #
-# 4.3. ==> Ecriture de la commande d'écriture des fichiers de données pour HOMARD
+#====================================================================
+# 5. ==> Création des fichiers de données pour HOMARD
+#====================================================================
 #
-  motscfa={}
-#  
-# 4.3.1. ==> Le traitement
+#gn  print "\.. Debut de 5."
 #
-  motscsi={}
+  dico_configuration = {}
 #
-# 4.3.1.1. ==> Le type de traitement
+# 5.1. ==> Les généralités
 #
-  if ( modhom == "ADAP" ) :
-    if ( ADAPTATION["UNIFORME"] != None ) :
-      motscsi["UNIFORME"] = ADAPTATION["UNIFORME"]
-    else :
-      motscsi["ADAPTATION"] = ADAPTATION["LIBRE"]
-  else :
-    motscsi["INFORMATION"] = "OUI"
+  dico_configuration["INFO"] = INFO
 #
-# 4.3.1.2. ==> Les noms med des maillages
+  dico_configuration["Rep_Calc_HOMARD_global"] = Rep_Calc_HOMARD_global
+  dico_configuration["VERSION_HOMARD"] = VERSION_HOMARD
+  dico_configuration["version_perso"] = version_perso
+#
+  dico_configuration["niter"] = niter
+  dico_configuration["Fichier_ASTER_vers_HOMARD"] = Fichier_ASTER_vers_HOMARD
+  if ( mode_homard == "ADAP" ) :
+    dico_configuration["Fichier_HOMARD_vers_ASTER"] = Fichier_HOMARD_vers_ASTER
+#  
+# 5.2. ==> Les noms med des maillages
 #
   for dico in Liste_Maillages :
-###    print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"]
-    motscsi[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"]
+#gn    print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"]
+    dico_configuration[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"]
 #
-# 4.3.1.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur
+# 5.3. ==> Les caracteristiques de l'éventuel indicateur d'erreur
 #
   for dico in Liste_Champs :
+    dico_aux = {}
     if ( dico["Type_Champ"] == "INDICATEUR" ) :
       Liste_aux = [ "NOM_MED", "COMPOSANTE" ]
       if dico.has_key("NUME_ORDRE") :
         Liste_aux.append("NUME_ORDRE")
-      else :
-        for cle in [ "RESULTAT", "NOM_CHAM", "INST", "PRECISION", "CRITERE" ] :
-          Liste_aux.append(cle)
       for cle in Liste_aux :
-        if dico.has_key(cle) :
-          if ( dico[cle] != None ) :
-            motscsi[cle] = dico[cle]
+        if ( dico[cle] != None ) :
+          dico_aux[cle] = dico[cle]
+      dico_configuration["Indicateur"] = dico_aux
+#gn  if dico_configuration.has_key("Indicateur") :
+#gn    print "dico_configuration[Indicateur] = ", dico_configuration["Indicateur"]
 #
-# 4.3.1.4. ==> Les critères de raffinement et les niveaux extremes
+# 5.4. ==> Les zones de raffinement
 #
-  if ( modhom == "ADAP" ) :
-    Liste_aux = [ ]
-    if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" ) :
-      Liste_aux.append("CRIT_RAFF_ABS")
-      Liste_aux.append("CRIT_RAFF_REL")
-      Liste_aux.append("CRIT_RAFF_PE")
-    if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" ) :
-      Liste_aux.append("CRIT_DERA_ABS")
-      Liste_aux.append("CRIT_DERA_REL")
-      Liste_aux.append("CRIT_DERA_PE")
-    niveau = 0
-    if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "RAFFINEMENT" or ADAPTATION["UNIFORME"] == "RAFFINEMENT" ) :
-      Liste_aux.append("NIVE_MAX")
-      niveau = niveau + 1
-    if ( ADAPTATION["LIBRE"] == "RAFF_DERA" or ADAPTATION["LIBRE"] == "DERAFFINEMENT" or ADAPTATION["UNIFORME"] == "DERAFFINEMENT" ) :
-      Liste_aux.append("NIVE_MIN")
-      niveau = niveau + 2
-    for mot_cle in Liste_aux :
-      if ( ADAPTATION[mot_cle] != None ) :
-        motscsi[mot_cle] = ADAPTATION[mot_cle]
-#
-    if ( niveau == 2 ) : 
-      if ( ADAPTATION["NIVE_MIN"] > ADAPTATION["NIVE_MAX"] ) :
-        self.cr.fatal("<F> <MACR_ADAP_MAIL> Le niveau minimum doit etre inferieur au niveau maximum.")
-        codret = codret + 1
-#
-# 4.3.1.5. ==> Numéro d'itération
-#
-  if ( modhom == "ADAP" ) :
-    motscsi["NITER"] = niter
-#
-# 4.3.1.6. ==> Suivi de la frontiere
-#
-  if args.has_key("GROUP_MA") :
-    if ( args["GROUP_MA"] != None ) :
-      motscsi["GROUP_MA"] = args["GROUP_MA"]
-#
-# 4.3.1.7. ==> Bilan
-#
-  motscfa["TRAITEMENT"] = _F(**motscsi)
-#
-# 4.3.2. ==> L'analyse
-#
-  motscsi={}
-  if ( NOMBRE != None )           : motscsi["NOMBRE" ]           = NOMBRE
-  if ( QUALITE != None )          : motscsi["QUALITE" ]          = QUALITE
-  if ( CONNEXITE != None )        : motscsi["CONNEXITE" ]        = CONNEXITE
-  if ( TAILLE != None )           : motscsi["TAILLE" ]           = TAILLE
-  if ( INTERPENETRATION != None ) : motscsi["INTERPENETRATION" ] = INTERPENETRATION
-#
-  motscfa["ANALYSE"] = _F(**motscsi)
-#
-# 4.3.3. ==> La mise à jour de champs
+  prem = 1
+  for dico in Liste_Zones :
+    if prem :
+      l_aux = [dico]
+      prem = 0
+    else :
+      l_aux = dico_configuration["Zones"]
+      l_aux.append(dico)
+    dico_configuration["Zones"] = l_aux
+###  if dico_configuration.has_key("Zones") :
+###    print "dico_configuration[Zones] = ", dico_configuration["Zones"]
+#
+# 5.5. ==> La mise à jour de champs
 #
   prem = 1
   for dico in Liste_Champs :
-    motscsi={}
-    if ( dico["Type_Champ"] == "CHAMP" ) :
+    dico_aux = {}
+    if ( dico["Type_Champ"] == "CHAMP_MAJ" ) :
       Liste_aux = [ "NOM_MED", "COMPOSANTE" ]
       if dico.has_key("NUME_ORDRE") :
         Liste_aux.append("NUME_ORDRE")
@@ -572,76 +637,62 @@ def macr_adap_mail_ops ( self,
       for cle in Liste_aux :
         if dico.has_key(cle) :
           if ( dico[cle] != None ) :
-            motscsi[cle] = dico[cle]
-###      print motscsi
+            dico_aux[cle] = dico[cle]
+#gn      print dico_aux
       if prem :
-        motscfa["MAJ_CHAM"] = [_F(**motscsi),]
+        l_aux = [dico_aux]
         prem = 0
       else :
-        motscfa["MAJ_CHAM"].append(_F(**motscsi))
-#
-# 4.3.4. ==> La commande
-#
-# 4.3.4.1. ==> Les fichiers annexes
-#
-  dico = {}
-#
-  Nom_Fichier_Configuration = "HOMARD.Configuration"
-  Fichier_Configuration = os.path.join(Rep_Calc_HOMARD_local,Nom_Fichier_Configuration)
-  dico[Fichier_Configuration] = ("HOMARD_CONFIG","UNITE_CONF",unite)
-#
-  if ( modhom != "ADAP" ) :
-    unite = unite + 1
-    Nom_Fichier_Donnees = "HOMARD.Donnees"
-    Fichier_Donnees = os.path.join(Rep_Calc_HOMARD_local,Nom_Fichier_Donnees)
-#                             1234567890123456
-    dico[Fichier_Donnees] = ("HOMARD_DONN","UNITE_DONN",unite)
-#
-# 4.3.4.2. ==> L'ouverture de ces fichiers
-#
-  for fic in dico.keys() :
-    DEFI_FICHIER ( ACTION= "ASSOCIER", FICHIER = fic, UNITE = dico[fic][2],
-                   TYPE = "ASCII", ACCES = "NEW", INFO = INFO )
-    motscfa[dico[fic][1]] = dico[fic][2]
-#
-# 4.3.4.3. ==> Ecriture
-#
-###  print motscfa
-  IMPR_FICO_HOMA ( INFO=INFO, LANGUE = LANGUE, NON_SIMPLEXE = NON_SIMPLEXE, **motscfa )
-#
-###  for fic in dico.keys() :
-###    print "\nContenu de ", fic
-###    fichier = open (fic,"r")
-###    les_lignes = fichier.readlines()
-###    fichier.close()
-###    for ligne in les_lignes :
-###      print ligne[:-1]
-#
-# 4.3.4.4. ==> La fermeture des fichiers locaux
-#              Remarque : il faut le faire ici pour que le gestionnaire de DEFI_FICHIER soit à jour
-#              Remarque : aujourd'hui on est obligé de passer par le numéro d'unité logique
-#
-  for fic in dico.keys() :
-    DEFI_FICHIER ( ACTION= "LIBERER", UNITE = dico[fic][2], INFO = INFO )
-#
-# 4.4. ==> Ecriture de la commande d'exécution de homard
-#    Remarque : dans la donnée de la version de HOMARD, il faut remplacer
-#               le _ de la donnee par un ., qui
-#               est interdit dans la syntaxe du langage de commandes ASTER
-#    Remarque : il faut remplacer le N majuscule de la donnee par
-#               un n minuscule, qui est interdit dans la syntaxe du langage
-#               de commandes ASTER
-#    Remarque : pour le nommage des fichiers d'échange entre ASTER et HOMARD, on utilise
-#               la convention implicite du fort.n des entrees/sorties au format MED
+        l_aux = dico_configuration["Champs"]
+        l_aux.append(dico_aux)
+      dico_configuration["Champs"] = l_aux
+#gn  if dico_configuration.has_key("Champs") :
+#gn   print "dico_configuration[Champs] = ", dico_configuration["Champs"]
+#
+# 5.6. ==> Appel de la fonction de création
+#
+  donnees_homard = creation_donnees_homard.creation_donnees_homard ( self.nom, args, dico_configuration )
+  if ( INFO > 1 ) :
+    donnees_homard.quel_mode ( )
+  fic_homard_niter = donnees_homard.creation_configuration ( )
+  donnees_homard.ecrire_fichier_configuration ( )
+  if ( mode_homard == "INFO" ) :
+    Nom_Fichier_Donnees = donnees_homard.ecrire_fichier_donnees ( )
+  else :
+    Nom_Fichier_Donnees = "0"
 #
-  VERSION_HOMARD=string.replace(VERSION_HOMARD,"_",".")
-  VERSION_HOMARD=string.replace(VERSION_HOMARD,"N","n")
-  if ( VERSION_HOMARD[-6:]=="_PERSO" ):
-#    motscsi["ARGUMENT"]=_F("TYPEXE"="-PERSO")
-    VERSION_HOMARD=VERSION_HOMARD[:-6]
+# 5.7. ==> Impression eventuelle des fichiers créés
 #
-  if ( modhom == "ADAP" ) :
-    Nom_Fichier_Donnees = "0"
+#gn#gn  print "Répertoire ",Rep_Calc_HOMARD_global
+  os.system("ls -la "+Rep_Calc_HOMARD_global)
+  if ( INFO > 1 ) :
+    L_aux = ["HOMARD.Donnees" , "HOMARD.Configuration"]
+  else :
+    L_aux = [ ]
+  for nomfic in L_aux :
+    fic = os.path.join(Rep_Calc_HOMARD_global, nomfic)
+    if os.path.isfile (fic) :
+      print "\n\n=============================================================="
+      print "Contenu de", nomfic
+      fichier = open (fic,"r")
+      les_lignes = fichier.readlines()
+      fichier.close()
+      for ligne in les_lignes :
+        print ligne[:-1]
+      print "==============================================================\n"
+#gn  if ( mode_homard == "ADAP" ) :
+#gn    if args.has_key("MAJ_CHAM") :
+#gn      if args["MAJ_CHAM"] is not None :
+#gn        os.system("sleep 1000")
+#
+#====================================================================
+# 6. Ecriture de la commande d'exécution de homard
+#====================================================================
+#
+#
+#gn  print "\.. Debut de 7."
+###  Fichier_ASTER_vers_HOMARD_2 = os.path.join("/home/gnicolas" , "fort." + str(Unite_Fichier_ASTER_vers_HOMARD))
+###  shutil.copyfile(Fichier_ASTER_vers_HOMARD,Fichier_ASTER_vers_HOMARD_2)
 #
   EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_HOMARD_global), # nom du repertoire
                               _F(NOM_PARA=VERSION_HOMARD),  # version de homard
@@ -651,35 +702,45 @@ def macr_adap_mail_ops ( self,
                   LOGICIEL = homard
                 )
 #
-# 4.5. ==> Ecriture de la commande de lecture des resultats med
-#          Remarque :
-#          La fonction self.DeclareOut(a,b) focntionne ainsi :
-#          a est une chaine de caracteres
-#          b est la variable déclarée dans la commande
-#          le but est de associer le contenu de b à la variable locale qui sera désignée par a
-#          Exemple :
-#          self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"])
-#          ==> la variable maillage_np1 est identifiée à l'argument "MAILLAGE_NP1" du mot-clé ADAPTATION
+###  if ( mode_homard == "ADAP" ) :
+###    Fichier_HOMARD_vers_ASTER_2 = os.path.join("/home/gnicolas" , "fort." + str(Unite_Fichier_HOMARD_vers_ASTER))
+###    shutil.copyfile(Fichier_HOMARD_vers_ASTER,Fichier_HOMARD_vers_ASTER_2)
 #
-  if ( modhom == "ADAP" ) :
+#====================================================================
+# 7. ==> Ecriture de la commande de lecture des resultats med
+#        Remarque :
+#        La fonction self.DeclareOut(a,b) fonctionne ainsi :
+#        a est une chaine de caracteres
+#        b est la variable déclarée dans la commande
+#        le but est de associer le contenu de b à la variable locale qui sera désignée par a
+#        Exemple :
+#        self.DeclareOut("maillage_a_lire",args["MAILLAGE_NP1"])
+#        ==> la variable maillage_a_lire est identifiée à l'argument "MAILLAGE_NP1"
+#====================================================================
 #
-# 4.5.1. ==> Le maillage
+  if ( mode_homard == "ADAP" ) :
 #
-    self.DeclareOut("maillage_np1",ADAPTATION["MAILLAGE_NP1"])
+# 7.1. ==> Le maillage
+#
+#gn    print "args = ",args
     for dico in Liste_Maillages :
+#gn      print dico
       if ( dico["Action"] == "A_lire" ) :
-        maillage_np1 = LIRE_MAILLAGE ( UNITE = Unite_Fichier_HOMARD_vers_ASTER,
+        self.DeclareOut("maillage_a_lire", dico["Nom_ASTER"])
+        maillage_a_lire = LIRE_MAILLAGE ( UNITE = Unite_Fichier_HOMARD_vers_ASTER,
                                        FORMAT = "MED",
                                        NOM_MED = dico["NOM_MED"],
                                        VERI_MAIL = _F(VERIF="NON"), INFO_MED = INFO, INFO = INFO )
+        if ( dico["Type_Maillage"] == "MAILLAGE_NP1" ) :
+          maillage_np1 = maillage_a_lire
 #
-# 4.5.2. ==> Les champs
+# 7.2. ==> Les champs
 #
     for dico in Liste_Champs :
-      if ( dico["Type_Champ"] == "CHAMP" ) :
-###        print dico
-        self.DeclareOut("champ_maj",dico["CHAM_MAJ"])
-        motscsi={}
+      if ( dico["Type_Champ"] == "CHAMP_MAJ" ) :
+#gn        print dico
+        self.DeclareOut("champ_maj", dico["CHAM_MAJ"])
+        motscsi = {}
         for cle in [ "NUME_ORDRE", "INST", "PRECISION", "CRITERE" ] :
           if dico.has_key(cle) :
             if ( dico[cle] != None ) :
@@ -691,37 +752,36 @@ def macr_adap_mail_ops ( self,
                                  NOM_MED = dico["NOM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"],
                                  INFO = INFO, **motscsi )
 #
-#--------------------------------------------------------------------
-# 5. Menage des fichiers MED et HOMARD devenus inutiles
-#--------------------------------------------------------------------
+#====================================================================
+# 8. Menage des fichiers MED et HOMARD devenus inutiles
+#====================================================================
 #
-  fic = os.path.join(Rep_Calc_HOMARD_global,"MAILL."+str(niter)+".HOM")
-  Liste_aux = [ Fichier_ASTER_vers_HOMARD, Fichier_HOMARD_Entree, fic ]
-  if ( modhom == "ADAP" ) :
+  Liste_aux = [ Fichier_ASTER_vers_HOMARD ]
+  if ( mode_homard == "ADAP" ) :
     Liste_aux.append(Fichier_HOMARD_vers_ASTER)
-    Liste_aux.append(Fichier_HOMARD_Sortie)
+    fic = os.path.join(Rep_Calc_HOMARD_global, fic_homard_niter)
+    Liste_aux.append(fic)
+#gn  print "Liste_aux = ",Liste_aux
 #
   for fic in Liste_aux :
-    if ( INFO > 1 ) : print "Destruction du fichier ", fic
-    if os.path.islink(fic) :
-      try :
-        os.unlink(fic)
-      except os.error,codret_partiel :
-        self.cr.warn("Code d'erreur de unlink : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
-        self.cr.warn("Impossible d'enlever le lien sur le fichier : "+fic)
-        codret = codret + 1
+    if ( INFO > 1 ) :
+      print "Destruction du fichier ", fic
     if os.path.isfile(fic) :
       try :
         os.remove(fic)
       except os.error,codret_partiel :
         self.cr.warn("Code d'erreur de remove : " + str(codret_partiel[0]) + " : " + codret_partiel[1])
-        self.cr.warn("Impossible de détruire le fichier : "+fic)
-        codret = codret + 1
-###  print os.listdir(Rep_Calc_ASTER)
-###  print os.listdir(Rep_Calc_HOMARD_global)
+        UTMESS("F", self.nom, "Impossible de détruire le fichier : "+fic)
+#gn  print "Répertoire ",Rep_Calc_HOMARD_global
+#gn  os.system("ls -la "+Rep_Calc_HOMARD_global)
+#gn  print "Répertoire ",Rep_Calc_ASTER
+#gn  os.system("ls -la "+Rep_Calc_ASTER)
+#
+#====================================================================
+#  C'est fini !
+#====================================================================
 #
-#--------------------------------------------------------------------
-# 6. C'est fini !
-#--------------------------------------------------------------------
+#gn  if ( mode_homard == "ADAP" ) :
+#gn    os.system("sleep 1")
 #
-  return codret
+  return
index 4c7c9b96e6b9725a9e87e22d52922804dae2db3c..fcb37351f3820f19e89cd49c79678e3e53a15ef0 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_ascouf_calc_ops Macro  DATE 08/02/2005   AUTEUR CIBHHLV L.VIVAN 
+#@ MODIF macr_ascouf_calc_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -32,6 +32,7 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
   import math
   import aster
   from math import pi,sin,cos,sqrt,atan2
+  from Utilitai.Utmess     import UTMESS
   ier=0
 # On recopie les mots cles affe_materiau et impr_table pour les proteger
   mc_AFFE_MATERIAU=AFFE_MATERIAU
@@ -49,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)
@@ -63,18 +63,16 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
 #  
   if CL_BOL_P2_GV!=None :
     if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE' :
-       print '<A> <MACR_ASCOUF_CALC> la condition aux limites sur bol a section conique'
-       print '                       est ignoree pour un coude avec sous-epaisseurs'
+       message=        ' la condition aux limites sur bol a section conique \n'
+       message=message+' est ignoree pour un coude avec sous-epaisseurs \n'
+       UTMESS('A', "MACR_ASCOUF_CALC", message)
     elif (TYPE_MAILLAGE[:4]!='FISS') and (CL_BOL_P2_GV['AZIMUT']!=None) :
-       ier=ier+1
-       self.cr.fatal("""<E> <MACR_ASCOUF_CALC> mot-cle AZIMUT non autorise dans le cas d''un coude sain""")
-       return ier
+       UTMESS('E', "MACR_ASCOUF_CALC", "mot-cle AZIMUT non autorise dans le cas d un coude sain")
 #
   if mc_IMPR_TABLE!=None :
     FLAG = 0
     if (mc_IMPR_TABLE['NOM_PARA']==None) and (mc_IMPR_TABLE['POSI_ANGUL']==None) and (mc_IMPR_TABLE['POSI_CURV_LONGI']==None) :
-       ier=ier+1
-       self.cr.fatal("""<E> <MACR_ASCOUF_CALC> POSI_ANGUL POSI_CURV_LONGI est obligatoire""")
+       UTMESS('E', "MACR_ASCOUF_CALC", "POSI_ANGUL POSI_CURV_LONGI est obligatoire")
        return ier
     if (mc_IMPR_TABLE['NOM_PARA']!=None) :
        impr_table_nom_para= mc_IMPR_TABLE['NOM_PARA']
@@ -83,11 +81,9 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
            FLAG = 1
            if (((impt['ANGLE']==None) and (impt['POSI_ANGUL']==None) and (impt['R_CINTR'        ]==None)) or
                ((impt['ANGLE']==None) and (impt['R_CINTR'   ]==None) and (impt['POSI_CURV_LONGI']==None))   )  :
-             ier=ier+1
-             self.cr.fatal("""<E> <MACR_ASCOUF_CALC> il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI""")
-             return ier
+             UTMESS('E', "MACR_ASCOUF_CALC", "il faut renseigner : ANGLE, R_CINTR et POSI_ANGUL ou ANGLE, R_CINTR et POSI_CURV_LONGI")
     if (mc_IMPR_TABLE['NOM_PARA']==None) : FLAG = 1
-    if not FLAG : print '<A> <MACR_ASCOUF_CALC> ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas'
+    if not FLAG : UTMESS('A', "MACR_ASCOUF_CALC","ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas")
 #
 #------------------------------------------------------------------
 #
@@ -226,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 
@@ -244,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={}
@@ -261,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 ---
@@ -270,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
 #
@@ -620,7 +616,7 @@ def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MA
     fonfis=DEFI_FOND_FISS(MAILLAGE=MAILLAGE,
                           LEVRE_SUP=_F(GROUP_MA='FACE1'),
                           LEVRE_INF=_F(GROUP_MA='FACE2'),
-                          INFO=2,**motscles
+                          INFO=INFO,**motscles
                           );
     if THETA_3D!=None :
       for thet in THETA_3D:
@@ -634,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,);
 #
@@ -648,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 fe02927abf74a0bfd4a6a7b974ce96c26c5999c2..3495d88d785a060f11f564b5148d3771cc70e677 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_ascouf_mail_ops Macro  DATE 09/05/2005   AUTEUR LEBOUVIE F.LEBOUVIER 
+#@ MODIF macr_ascouf_mail_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # ======================================================================
 
 
-
+import os.path
 from math import sqrt,cos,sin,pi,tan,log,fabs,ceil,fmod,floor
+import aster
+import string
+from Utilitai.Utmess     import UTMESS
 
 # ------------------------------------------------------------------------------
 def ASCFON(RC,RM,EP,ORIEN,AZIM,AXEC,POS,Y):
@@ -89,6 +92,7 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
 
   """
   from Utilitai import funct_root
+  echo_mess=['MACR_ASCOUF_MAIL ASCFIS \n',]
   if POS=='DEB_INT':
      if (AZIM>=120.) and (AZIM<=240.0): X = RM-EP/2.0 - SUREP
      else:                              X = RM-EP/2.0
@@ -110,9 +114,9 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
     else:
        SF  = BETAR*RC
        SFP = SF
-  if (GEOM=='COUDE'): print 'COTE AXIALE CENTRE FISSURE SUR COUDE : %.2f'%SF
-  if (GEOM=='TUBE') : print 'COTE AXIALE CENTRE FISSURE SUR TUBE  : %.2f'%SF 
-  print 'COTE AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP
+  if (GEOM=='COUDE'): echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR COUDE : %.2f \n'%SF)
+  if (GEOM=='TUBE') : echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR TUBE  : %.2f \n'%SF )
+  echo_mess.append( 'COTE AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP)
 #
 #   ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES
 #   DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA 
@@ -158,8 +162,8 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
        BEMB  = abs(BINF)*sqrt(2.0)
      elif (BINF>=0. and BSUP<=DIST):
        BCOUD = 2.0*AXEC
-  print 'PARTIE DU GRAND AXE DANS LE COUDE  : %.2f'%BCOUD
-  print 'PARTIE DU GRAND AXE DANS L EMBOUT  : %.2f'%BEMB
+  echo_mess.append( 'PARTIE DU GRAND AXE DANS LE COUDE  : %.2f \n'%BCOUD)
+  echo_mess.append( 'PARTIE DU GRAND AXE DANS L EMBOUT  : %.2f \n'%BEMB)
 #
 # -- CALCUL DE LA TAILLE DU GRAND AXE FISSURE SUR LA PLAQUE
 #
@@ -190,21 +194,21 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
        AXECP = BCOUD + BEMB
 #
   if GEOM=='COUDE':
-    print 'TAILLE GRAND AXE COUDE DONNE : %.2f'%(2.*AXEC)
+    echo_mess.append( 'TAILLE GRAND AXE COUDE DONNE : %.2f \n'%(2.*AXEC))
   elif GEOM=='TUBE':
-    print 'TAILLE GRAND AXE TUBE  DONNE : %.2f'%(2.*AXEC)
-  print 'TAILLE GRAND AXE PLAQUE DEDUIT : %.2f'%AXECP
+    echo_mess.append( 'TAILLE GRAND AXE TUBE  DONNE : %.2f \n'%(2.*AXEC))
+  echo_mess.append( 'TAILLE GRAND AXE PLAQUE DEDUIT : %.2f \n'%AXECP)
   if NEWT:
-    print 'METHODE DE NEWTON FISSURE A 45 DEGRES -->'
-    print 'TAILLE GRAND AXE COUDE RECALCULE : %.2f'%AXECC
+    echo_mess.append( 'METHODE DE NEWTON FISSURE A 45 DEGRES --> \n')
+    echo_mess.append( 'TAILLE GRAND AXE COUDE RECALCULE : %.2f \n'%AXECC)
   if GEOM=='COUDE' and BEMB>0. and BSUP>DIST :
     SFP =  ALPHA*2.*pi*RC/360. - AXECP/2. + BEMB
-    print 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT'
-    print 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP
+    echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n')
+    echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP)
   if GEOM=='COUDE' and BEMB>0. and BINF<0. :
     SFP = + AXECP/2. - BEMB
-    print 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT'
-    print 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f'%SFP
+    echo_mess.append( 'CORRECTION CENTRE : FISSURE A CHEVAL SUR EMBOUT \n')
+    echo_mess.append( 'ABSC. CURV. AXIALE CENTRE FISSURE SUR PLAQUE : %.2f \n'%SFP)
 #
 # -- CORRECTION DU PETIT AXE DE LA FISSURE QUAND CELLE-CI SE TROUVE SUR
 #    LA ZONE DE SUREPAISSEUR
@@ -229,10 +233,12 @@ def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
 #
   if SUREP!=0.:
      AXEAP = AXEA * EP / ( EP + MU*SUREP )
-     print '--> CORRECTION DUE A LA SUREPAISSEUR'     
-     print '--> TAILLE PETIT AXE PLAQUE : %.2f'%AXEAP
+     echo_mess.append( '--> CORRECTION DUE A LA SUREPAISSEUR \n' )
+     echo_mess.append( '--> TAILLE PETIT AXE PLAQUE : %.2f \n'%AXEAP )
   else: AXEAP = AXEA
 #
+  texte_final=string.join(echo_mess)
+  aster.affiche('MESSAGE',texte_final)
   return AXEAP,AXECP,SFP 
 
 
@@ -254,21 +260,22 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME):
   """
   ier=0
   CG=pi/180.
+  echo_mess=['MACR_ASCOUF_MAIL ASCSEP \n',]
 #
 # --- BOUCLE SUR L ENSEMBLE DES SOUS-EPAISSEURS
 #
   i=0
   for ssep in MCL_SOUS_EPAIS :
       i=i+1
-      print '-------------------------------------'
-      print 'SOUS-EPAISSEUR NUMERO %d'%i
-      print '-------------------------------------'
+      echo_mess.append( '-------------------------------------\n')
+      echo_mess.append( 'SOUS-EPAISSEUR NUMERO %d\n'%i)
+      echo_mess.append( '-------------------------------------\n')
 #
 # --- CAS DES SOUS-EPAISSEURS AXISYMETRIQUES 
 #
       if ssep['TYPE']=='AXIS':
-         print 'SOUS-EPAISSEUR AXISYMETRIQUE : '
-         print 'CALCUL DE LA TAILLE LONGI ENVELOPPE EN INTRADOS (AZIMUT PI)'
+         echo_mess.append( 'SOUS-EPAISSEUR AXISYMETRIQUE : \n')
+         echo_mess.append( 'CALCUL DE LA TAILLE LONGI ENVELOPPE EN INTRADOS (AZIMUT PI)\n')
          ssep.ICIRP = 2.*pi*RM
          ssep.ISCP  =    pi*RM
          ssep.IPHIC = 180.
@@ -284,33 +291,34 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME):
            ssep.ISCP  = ssep['POSI_CURV_CIRC']*RM/(RM+EP/2.)
            AZIMC      = ssep.ISCP/RM
            ssep.IPHIC = ssep['POSI_CURV_CIRC']/(RM+EP/2.)*180./pi
-           print 'AZIMUT CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f'%ssep.IPHIC
+           echo_mess.append( 'AZIMUT CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%ssep.IPHIC)
          else:
            ssep.ISCP  = ssep['AZIMUT']*pi*RM/180. 
            AZIMC      = ssep['AZIMUT']*pi/180.
-           print 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f'%(AZIMC*(RM+EP/2.))
+           echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%(AZIMC*(RM+EP/2.)))
 #
 #    PASSAGE DANS LE REPERE PLAQUE (0,2PI) AVEC ORIGINE FLANC DROIT
 #    CAR L ORIGINE DES DONNEES CIRCONF. EST EN EXTRADOS 
 #
          if ssep.ISCP>(3.*pi*RM/2.): ssep.ISCP = ssep.ISCP - 3.*pi*RM/2.
          else:                       ssep.ISCP = ssep.ISCP + pi*RM/2.
-         print 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISCP
+         echo_mess.append( 'ABSC. CURV. CIRCONF. CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISCP)
 #
 # -- CALCUL DE LA TAILLE CIRCONFERENTIELLE 
 #    NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE
 #
          ssep.ICIRP = ssep['AXE_CIRC']*(RM/(RM+EP/2.))
          if ssep.ICIRP>(2.*pi*RM) :
-            print ' <MACR_ASCOUF_MAIL> ASCSEP valeur hors domaine'
-            print ' <MACR_ASCOUF_MAIL> sous-epaisseur numero : %d'%i
-            print ' <MACR_ASCOUF_MAIL> taille axe circonferentiel : %.2f'%ssep.ICIRP
-            print ' <MACR_ASCOUF_MAIL> bord plaque : %.2f'%2*pi*RM
-            self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-            ier = ier+1
-            return ier
-         print 'TAILLE CIRCONFERENTIELLE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ICIRP
-         print '<=> TAILLE EQUIVALENTE SUR LA CIRCONFERENCE (DEGRES) : %.2f'%(ssep.ICIRP*360./(2.*pi*RM))  
+            texte_final=string.join(echo_mess)
+            aster.affiche("MESSAGE",texte_final)
+            message=        ' ASCSEP valeur hors domaine \n'
+            message=message+' sous-epaisseur numero : %d \n'%i
+            message=message+' taille axe circonferentiel : %.2f \n'%ssep.ICIRP
+            message=message+' bord plaque : %.2f \n'%2*pi*RM
+            UTMESS('F', "MACR_ASCOUF_MAIL", message)
+         echo_mess.append( 'TAILLE CIRCONFERENTIELLE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ICIRP)
+         echo_mess.append( '<=> TAILLE EQUIVALENTE SUR LA CIRCONFERENCE (DEGRES) : %.2f \n'%(ssep.ICIRP*360./(2.*pi*RM)))  
+
 #
 # -- CALCUL COTE AXIALE DU CENTRE SOUS-EPAISSEUR SUR LA PLAQUE 
 #    EN FONCTION DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE 
@@ -321,29 +329,29 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME):
          if GEOM=='COUDE':
             ssep.ISLP = ssep['POSI_CURV_LONGI']/(1.+(RM+EP/2.)/RC*cos(AZIMC))
             AZIML     = ssep.ISLP/RC
-            print 'ANGLE COUDE CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f'%(AZIML*180./pi)
+            echo_mess.append( 'ANGLE COUDE CENTRE SOUS-EPAISSEUR (DEGRES) : %.2f \n'%(AZIML*180./pi))
          else :
             ssep.ISLP = ssep['POSI_CURV_LONGI']
          if (SYME in ('QUART','DEMI')) and (ssep.ISLP!=ALPHA*CG*RC/2.) :
-            print ' <MACR_ASCOUF_MAIL> ASCSEP cas de symetrie :'
-            print ' <MACR_ASCOUF_MAIL> la sous-epaisseur doit etre dans la section mediane du coude !'
-            self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-            ier = ier+1
-            return ier
+            texte_final=string.join(echo_mess)
+            aster.affiche("MESSAGE",texte_final)
+            message=         ' ASCSEP cas de symetrie :\n'
+            message=message+ ' la sous-epaisseur doit etre dans la section mediane du coude !\n'
+            UTMESS('F', "MACR_ASCOUF_MAIL", message)
       else :
          if GEOM=='COUDE':
-            print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f'%((ssep.BETA)*CG*(RC+(RM+EP/2.)*cos(AZIMC)))
+            echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR COUDE : %.2f \n'%((ssep.BETA)*CG*(RC+(RM+EP/2.)*cos(AZIMC))))
             AZIML = (ssep.BETA)*CG
          else :
-            print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR TUBE  : %.2f'%((ssep.BETA)*CG*RC)
+            echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR TUBE  : %.2f \n'%((ssep.BETA)*CG*RC) )
          ssep.ISLP =  (ssep.BETA)*CG*RC
          if (SYME in ('QUART','DEMI')) and (ssep.BETA!=ALPHA/2.) :
-            print ' <MACR_ASCOUF_MAIL> ASCSEP cas de symetrie :'
-            print ' <MACR_ASCOUF_MAIL> la sous-epaisseur doit etre dans la section mediane du coude !'
-            self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-            ier = ier+1
-            return ier
-      print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP
+            texte_final=string.join(echo_mess)
+            aster.affiche("MESSAGE",texte_final)
+            message=          ' ASCSEP cas de symetrie :\n'
+            message=message+  ' la sous-epaisseur doit etre dans la section mediane du coude !\n'
+            UTMESS('F', "MACR_ASCOUF_MAIL", message)
+      echo_mess.append( 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP)
 #
 # -- CALCUL DE LA TAILLE LONGITUDINALE 
 #    NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE
@@ -386,12 +394,12 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME):
       ssep.ILONP = BPLAQ+BEMB
       if BEMB1>0.:
          ssep.ISLP =  ALPHA*CG*RC - ssep.ILONP/2. + BEMB1
-         print 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT'
-         print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP
+         echo_mess.append(  'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n')
+         echo_mess.append(  'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP)
       if BEMB2>0.:
          ssep.ISLP =  ssep.ILONP/2. - BEMB2
-         print 'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT'
-         print 'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ISLP
+         echo_mess.append(  'CORRECTION CENTRE : SOUS-EP. A CHEVAL SUR EMBOUT \n')
+         echo_mess.append(  'ABSC. CURV. AXIALE CENTRE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ISLP)
       if ssep.ISLP<0.            : ssep.ISLP = 0.
       if (ssep.ISLP>ALPHA*CG*RC) : ssep.ISLP = ALPHA*CG*RC 
 #
@@ -399,9 +407,11 @@ def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME):
 #     ON CORRIGE SA POSITION EN LE METTANT A L INTERFACE SINON CA PLANTE
 #     DANS LA PROC DE MAILLAGE (A AMELIORER)
 #
-      print 'TAILLE LONGITUDINALE SOUS-EPAISSEUR SUR PLAQUE : %.2f'%ssep.ILONP
-      print '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f'%(ssep.ILONP*360/(2*pi*RC))  
+      echo_mess.append(  'TAILLE LONGITUDINALE SOUS-EPAISSEUR SUR PLAQUE : %.2f \n'%ssep.ILONP)
+      echo_mess.append(  '<=> TAILLE EQUIVALENTE PAR RAPPORT A L ANGLE DU COUDE (DEGRES): %.2f \n'%(ssep.ILONP*360/(2*pi*RC)))  
 #
+  texte_final=string.join(echo_mess)
+  aster.affiche('MESSAGE',texte_final)
   return ier
 
 # ------------------------------------------------------------------------------
@@ -426,6 +436,7 @@ def ASCTCI(MCL_SOUS_EPAIS,RM):
 #
 # --- tri du tableau des abscisses curvilignes circonf. plaque
 #
+  echo_mess=['MACR_ASCOUF_MAIL ASCTCI \n',]
   TAMPON = []
   COORXG = []
   COORYG = []
@@ -433,25 +444,25 @@ def ASCTCI(MCL_SOUS_EPAIS,RM):
   for ssep in MCL_SOUS_EPAIS :
       i=i+1
       if (ssep.ISCP>2.*pi*RM) or (ssep.ISCP<0.) : 
-         print ' <MACR_ASCOUF_MAIL> valeur hors domaine'
-         print ' <MACR_ASCOUF_MAIL> SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep)
-         print ' <MACR_ASCOUF_MAIL> ABSC. CURV. CIRCONF.  :%.2f'%ssep.ISCP
-         print ' <MACR_ASCOUF_MAIL> BORD PLAQUE :%.2f'%(2.*pi*RM)
-         self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-         ier = ier+1
-         return ier
+         texte_final=string.join(echo_mess)
+         aster.affiche("MESSAGE",texte_final)
+         message=         ' valeur hors domaine \n'
+         message=message+ ' SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep)
+         message=message+ ' ABSC. CURV. CIRCONF.  :%.2f \n'%ssep.ISCP
+         message=message+ ' BORD PLAQUE :%.2f \n'%(2.*pi*RM)
+         UTMESS('F', "MACR_ASCOUF_MAIL", message)
       TAMPON.append((ssep.ISCP,i))
   TAMPON.sort()
   IABSC1=[]
   for j in range(i):
     IABSC1.append(TAMPON[j][1])
-  print
-  print 'TRI DES CENTRES ABSC. CURV. CIRCONF. :'
-  print '------------------------------------'
+  echo_mess.append( ' \n')
+  echo_mess.append( 'TRI DES CENTRES ABSC. CURV. CIRCONF. :\n ')
+  echo_mess.append( '------------------------------------\n')
   i=0
   for ssep in TAMPON :
     i=i+1
-    print '%d) SOUS-EP NO %d <> XC = %.2f'%(i,ssep[1],ssep[0])
+    echo_mess.append( '%d) SOUS-EP NO %d <> XC = %.2f \n'%(i,ssep[1],ssep[0]) )
 #
 # --- calcul des abcisses droites et gauches des sous-epaisseurs
 #
@@ -475,15 +486,17 @@ def ASCTCI(MCL_SOUS_EPAIS,RM):
   IABSC2=[]
   for j in range(2*len(MCL_SOUS_EPAIS)):
     IABSC2.append(TAMPON[j][1])
-  print
-  print 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :'
-  print '-----------------------------------------------'  
+  echo_mess.append( '\n')
+  echo_mess.append( 'TRI DES INTERVALLES G ET D ABSC. CURV. CIRCONF. :\n')
+  echo_mess.append( '-----------------------------------------------\n' ) 
   for j in range(2*len(MCL_SOUS_EPAIS)):
     if fmod(IABSC2[j],2):
-       print '%d) SOUS-EP NO %d <> XG = %.2f'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0])
+       echo_mess.append( '%d) SOUS-EP NO %d <> XG = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0]))
     else:
-       print '%d) SOUS-EP NO %d <> XD = %.2f'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0])
+       echo_mess.append( '%d) SOUS-EP NO %d <> XD = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2-1],TAMPON[j][0]))
 #    
+  texte_final=string.join(echo_mess)
+  aster.affiche('MESSAGE',texte_final)
   return TAMPON,IABSC1,IABSC2,COORXD,COORXG
 
 # ------------------------------------------------------------------------------
@@ -511,31 +524,32 @@ def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM):
 #
 # tri du tableau des abscisses curvilignes axiales plaque
 #
+  echo_mess=['MACR_ASCOUF_MAIL ASCTLO \n',]
   ALPHAR = 2.*ALPHA*pi/360.
   TAMPON = []
   i=0
   for ssep in MCL_SOUS_EPAIS :
       i=i+1
       if (ssep.ISLP>ALPHAR*RC) or (ssep.ISLP<0.) : 
-         print ' <MACR_ASCOUF_MAIL> valeur hors domaine'
-         print ' <MACR_ASCOUF_MAIL> SOUS-EPAISSEUR NUMERO :%d'%MCL_SOUS_EPAIS.index(ssep)
-         print ' <MACR_ASCOUF_MAIL> ABSC. CURV. LONGIT.  :%.2f'%ssep.ISLP
-         print ' <MACR_ASCOUF_MAIL> BORDS PLAQUE :%.2f'%(ALPHAR*RC)
-         self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-         ier = ier+1
-         return ier
+         texte_final=string.join(echo_mess)
+         aster.affiche("MESSAGE",texte_final)
+         message=         ' valeur hors domaine \n'
+         message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%MCL_SOUS_EPAIS.index(ssep)
+         message=message+ ' ABSC. CURV. LONGIT.  :%.2f \n'%ssep.ISLP
+         message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC)
+         UTMESS('F', "MACR_ASCOUF_MAIL", message)
       TAMPON.append((ssep.ISLP,i))
   TAMPON.sort()
   IORDO1=[]
   for j in range(i):
     IORDO1.append(TAMPON[j][1])
-  print
-  print 'TRI DES CENTRES ABSC. CURV. LONGIT. :'
-  print '------------------------------------'
+  echo_mess.append( '\n')
+  echo_mess.append( 'TRI DES CENTRES ABSC. CURV. LONGIT. : \n')
+  echo_mess.append( '------------------------------------ \n')
   i=0
   for ssep in TAMPON :
     i=i+1
-    print '%d) SOUS-EP NO %d <> YC = %.2f'%(i,ssep[1],ssep[0])
+    echo_mess.append( '%d) SOUS-EP NO %d <> YC = %.2f \n'%(i,ssep[1],ssep[0]))
 #
 # calcul des abscisses sup. et inf. des sous-ep.
 #
@@ -553,21 +567,21 @@ def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM):
          YI=ALPHAR*RC-(MCL_SOUS_EPAIS[bid[1]-1].ILONP-(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.)
          YS=ALPHAR*RC+(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.
       if YI<(-LTCHAR):
-         print ' <MACR_ASCOUF_MAIL> valeur hors domaine'
-         print ' <MACR_ASCOUF_MAIL> SOUS-EPAISSEUR NUMERO :',bid[1]
-         print ' <MACR_ASCOUF_MAIL> BORD INFERIEUR  :',YI
-         print ' <MACR_ASCOUF_MAIL> BORD PLAQUE :',-LTCHAR
-         self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-         ier = ier+1
-         return ier
+         texte_final=string.join(echo_mess)
+         aster.affiche("MESSAGE",texte_final)
+         message=         ' valeur hors domaine \n'
+         message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%bid[1]
+         message=message+ ' BORD INFERIEUR  :%.2f \n'%YI
+         message=message+ ' BORDS PLAQUE :%.2f \n'%(-1*LTCHAR)
+         UTMESS('F', "MACR_ASCOUF_MAIL", message)
       if YS>(ALPHAR*RC+LTCLIM):
-         print ' <MACR_ASCOUF_MAIL> valeur hors domaine'
-         print ' <MACR_ASCOUF_MAIL> SOUS-EPAISSEUR NUMERO :',bid[1]
-         print ' <MACR_ASCOUF_MAIL> BORD INFERIEUR  :',YS
-         print ' <MACR_ASCOUF_MAIL> BORD PLAQUE :',ALPHAR*RC+LTCLIM
-         self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-         ier = ier+1
-         return ier
+         texte_final=string.join(echo_mess)
+         aster.affiche("MESSAGE",texte_final)
+         message=         ' valeur hors domaine \n'
+         message=message+ ' SOUS-EPAISSEUR NUMERO :%d \n'%bid[1]
+         message=message+ ' BORD INFERIEUR  :%.2f \n'%YI
+         message=message+ ' BORDS PLAQUE :%.2f \n'%(ALPHAR*RC+LTCLIM)
+         UTMESS('F', "MACR_ASCOUF_MAIL", message)
       COORYI.append(YI) 
       COORYS.append(YS)
 #
@@ -581,15 +595,17 @@ def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM):
   IORDO2=[]
   for j in range(2*len(MCL_SOUS_EPAIS)):
     IORDO2.append(TAMPON[j][1])      
-  print
-  print 'TRI DES INTERVALLES I ET S ABSC. CURV. LONGIT. :'
-  print '-----------------------------------------------'
+  echo_mess.append( '\n')
+  echo_mess.append( 'TRI DES INTERVALLES I ET S ABSC. CURV. LONGIT. : \n')
+  echo_mess.append( '----------------------------------------------- \n')
   for j in range(2*len(MCL_SOUS_EPAIS)):
     if fmod(IORDO2[j],2):
-       print '%d) SOUS-EP NO %d <> YI = %.2f'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0])
+       echo_mess.append( '%d) SOUS-EP NO %d <> YI = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0]))
     else:
-       print '%d) SOUS-EP NO %d <> YS = %.2f'%(j+1,IORDO1[IORDO2[j]/2-1],TAMPON[j][0])
+       echo_mess.append( '%d) SOUS-EP NO %d <> YS = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2-1],TAMPON[j][0]))
 #
+  texte_final=string.join(echo_mess)
+  aster.affiche('MESSAGE',texte_final)
   return TAMPON,IORDO1,IORDO2,COORYI,COORYS
 #
 #
@@ -630,9 +646,10 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC,
 #
 #  calcul du nombre d'elements longi. et circonf. dans les sous-epaisseurs:
 #
-  print
-  print 'DETERMINATION DU NOMBRE D''ELEMENTS DANS LES SOUS-EPAISSEURS :'
-  print '------------------------------------------------------------'
+  echo_mess=['MACR_ASCOUF_MAIL ASCNBE \n',]
+  echo_mess.append( '\n')
+  echo_mess.append( 'DETERMINATION DU NOMBRE D''ELEMENTS DANS LES SOUS-EPAISSEURS :\n')
+  echo_mess.append( '------------------------------------------------------------\n')
   NLX=[0]*len(MCL_SOUS_EPAIS)
   NLY=[0]*len(MCL_SOUS_EPAIS)
   for j in range(len(BD)):
@@ -649,7 +666,7 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC,
          if ((COORXG[l]<COORXD[l] and BG[j]>=COORXG[l] and BD[j]<=COORXD[l])\
          or (COORXG[l]>=COORXD[l] and (BG[j]<=COORXG[l] or BD[j]>=COORXD[l]))):
             NLX[i]=NLX[i]+NBEL
-            print 'SOUS-EP NO %d ZONE CIRC. NO %d NB ELEM. = %d'%(i+1,j+1,NBEL)
+            echo_mess.append( 'SOUS-EP NO %d ZONE CIRC. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL))
 
   for j in range(len(BS)):
     if INDSEY[j]!=0:
@@ -665,13 +682,15 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC,
          l=IORDO1[i]-1
          if (BI[j]>=COORYI[l] and BS[j]<=COORYS[l]):
             NLY[i]=NLY[i]+NBEL
-            print 'SOUS-EP NO %d ZONE LONGI. NO %d NB ELEM. = %d'%(i+1,j+1,NBEL)
+            echo_mess.append( 'SOUS-EP NO %d ZONE LONGI. NO %d NB ELEM. = %d \n'%(i+1,j+1,NBEL) )
 
   for j in range(len(NLX)):
-    print 'SOUS-EP NO %d NBE TOTAL ELEMENTS CIRCONF. : %d'%(j+1,NLX[j])
-    print 'SOUS-EP NO %d NBE TOTAL ELEMENTS LONGI.   : %d'%(j+1,NLY[j])
+    echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS CIRCONF. : %d \n'%(j+1,NLX[j]))
+    echo_mess.append( 'SOUS-EP NO %d NBE TOTAL ELEMENTS LONGI.   : %d \n'%(j+1,NLY[j]))
 
 #
+  texte_final=string.join(echo_mess)
+  aster.affiche('MESSAGE',texte_final)
   return NLX,NLY
 #
 ################################################################################
@@ -702,6 +721,7 @@ def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC,
 # ------------------------------------------------------------------------------
 def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM):
   ier=0
+  echo_mess=['MACR_ASCOUF_MAIL ASCSYM \n',]
   DERAFC = 18.
   DERAFL =  5.       
   INDSEX = []
@@ -777,18 +797,18 @@ def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM):
      INDSEX.append(1)
 
 
-  print
-  print 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. :'
-  print '---------------------------------------------'
+  echo_mess.append( '\n')
+  echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. :\n')
+  echo_mess.append( '--------------------------------------------- \n')
   EPS=0.000000000001
   NZONEX=len(BG)
   for j in range(NZONEX) :
     if ( fabs(BG[j]) < EPS ) and ( fabs(BD[j]) < EPS ) :
-      print 'ZONE NO %d BORNE GAUCHE = %.2f'\
-      ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(j+1,BG[j],BD[j])
+      echo_mess.append( 'ZONE NO %d BORNE GAUCHE = %.2f'\
+      ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR \n'%(j+1,BG[j],BD[j]) )
     else:
-      print 'ZONE NO %d BORNE GAUCHE = %.2f'\
-      ' / BORNE DROITE = %.2f'%(j+1,BG[j],BD[j])
+      echo_mess.append( 'ZONE NO %d BORNE GAUCHE = %.2f \n'\
+      ' / BORNE DROITE = %.2f \n'%(j+1,BG[j],BD[j]))
 
     
 # tri des donnees sous-epaisseurs en axial
@@ -816,22 +836,24 @@ def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM):
   DNY.append(0)
   INDSEY.append(0)
   INDSEY.append(1)
-  print
-  print 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. :'
-  print '-----------------------------------------------'
+  echo_mess.append( '\n')
+  echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. : \n')
+  echo_mess.append( '----------------------------------------------- \n')
   NZONEY=len(BI)
   for j in range(NZONEY) :
     if ( fabs(BI[j]) < EPS ) and ( fabs(BS[j]) < EPS ) :
-      print 'ZONE NO %d <> BORNE INF. = %.2f'\
-      ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j])
+      echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\
+      ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j]))
     else:
-      print 'ZONE NO %d <> BORNE INF. = %.2f'\
-      ' / BORNE SUP. = %.2f'%(j+1,BI[j],BS[j])
+      echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\
+      ' / BORNE SUP. = %.2f'%(j+1,BI[j],BS[j]))
  
 # calcul du nombre d'elements longi. et circonf. dans les soue-ep
   NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,
                  DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1)
 
+  texte_final=string.join(echo_mess)
+  aster.affiche('MESSAGE',texte_final)
   return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY
 ################################################################################
 ################################################################################
@@ -861,12 +883,13 @@ def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM):
 # ------------------------------------------------------------------------------
 def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM):
   ier=0
+  echo_mess=['MACR_ASCOUF_MAIL ASCPRE \n',]
   ALPHAR = 2.*ALPHA*pi/360.
   DERAFC = 18.
   DERAFL =  5.
   EPSI   =  0.001      
   NBSEP  = len(MCL_SOUS_EPAIS)
-  print 'RECHERCHE DES ZONES DE SOUS-EPAISSEURS DANS LE COUDE\n'
+  echo_mess.append( 'RECHERCHE DES ZONES DE SOUS-EPAISSEURS DANS LE COUDE\n' )
   
 # tri des donnees sous-epaisseurs en circonferentiel
   TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM)
@@ -1112,16 +1135,16 @@ def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM):
 #  un centre de sous-ep.
   if fabs(BG[NZONEX-1]-BD[NZONEX-1])<EPSI: NZONEX = NZONEX-1
 
-  print
-  print 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. :'
-  print '-----------------------------------------------'
+  echo_mess.append( '\n')
+  echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. CIRCONF. : \n')
+  echo_mess.append( '----------------------------------------------- \n')
   for j in range(NZONEX) :
     if INDBG[j]==0 and INDBD[j]==0 :
-      print 'ZONE NO',j+1,'<> BORNE GAUCHE = %.2f'\
-      ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(BG[j],BD[j])
+      echo_mess.append( 'ZONE NO %d <> BORNE GAUCHE = %.2f \n'\
+      ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(j+1,BG[j],BD[j]))
     else:
-      print 'ZONE NO',j+1,'<> BORNE GAUCHE = %.2f'\
-      ' / BORNE DROITE = %.2f'%(BG[j],BD[j])
+      echo_mess.append( 'ZONE NO %d <> BORNE GAUCHE = %.2f \n'\
+      ' / BORNE DROITE = %.2f'%(j+1,BG[j],BD[j]))
 
       
 # --- tri des donnees sous-ep. en axial
@@ -1375,24 +1398,27 @@ def ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM):
           INDSEY.append(0)
        else:pass
 
-    print
-    print 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. :'
-    print '-----------------------------------------------'
+    echo_mess.append( '\n')
+    echo_mess.append( 'ZONES APRES RECOUVREMENT ABSC. CURV. LONGIT. :\n')
+    echo_mess.append( '----------------------------------------------- \n')
 
     for j in range(NZONEY) :
       if INDBI[j]==0 and INDBS[j]==0 :
-        print 'ZONE NO',j+1,'<> BORNE INF. = %.2f'\
-        ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(BI[j],BS[j])
+        echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\
+        ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j]))
       else:
-        print 'ZONE NO',j+1,'<> BORNE INF. = %.2f'\
-        ' / BORNE SUP. = %.2f '%(BI[j],BS[j])
+        echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\
+        ' / BORNE SUP. = %.2f '%(j+1,BI[j],BS[j]))
 
 #   calcul du nombre d'elements longi. et circonf. dans les sous-ep
     NLX,NLY=ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,
                    DNX,DNY,RM,RC,INDSEX,INDSEY,IABSC1,IORDO1)
   
 
+  texte_final=string.join(echo_mess)
+  aster.affiche('MESSAGE',texte_final)
   return ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY
+
 ################################################################################
 ################################################################################
 ################################################################################
@@ -1458,8 +1484,7 @@ def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1,
   texte=texte+'nivmag   = '+str(NIVMAG)       +POIVIR
   texte=texte+'*\n'
   texte=texte+'* FIN PARAMETRES UTILISATEUR\n'
-  texte=texte+'opti donn '
-  texte=texte+"'"+loc_datg+'ascouf_fiss_v4.datg'+"';\n"
+  texte = texte + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read()
   fdgib=open(nomFichierDATG,'w')
   fdgib.write(texte)
   fdgib.close()
@@ -1576,8 +1601,7 @@ def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2,
      texte=texte+" sousep .                      1  = 'non'"+POIVIR
   texte=texte+'*\n'
   texte=texte+'* FIN PARAMETRES UTILISATEUR \n'
-  texte=texte+'opti donn '
-  texte=texte+"'"+loc_datg+'ascouf_ssep_mono_v1.datg'+"'"+POIVIR
+  texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read()
   fdgib=open(nomFichierDATG,'w')
   fdgib.write(texte)
   fdgib.close()
@@ -1718,8 +1742,7 @@ def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg)
   texte=texte+'axisym  = table '+POIVIR
   texte=texte+'sousep  = table '+POIVIR
   texte=texte+'* \n'     
-  texte=texte+'opti donn '
-  texte=texte+"'"+loc_datg+'ascouf_ssep_mult_v1.datg'+"';\n"
+  texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mult_v1.datg'), 'r').read()
   fdgib=open(nomFichierDATG,'w')
   fdgib.write(texte)
   fdgib.close()
@@ -1987,8 +2010,7 @@ def write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP,SU
   texte=texte+'nzgv     = '+str(NZGV)         +POIVIR
   texte=texte+'*\n'
   texte=texte+'* FIN PARAMETRES UTILISATEUR\n'
-  texte=texte+'opti donn '
-  texte=texte+"'"+loc_datg+'ascouf_regl_v1.datg'+"';\n"
+  texte = texte + open(os.path.join(loc_datg, 'ascouf_regl_v1.datg'), 'r').read()
   fdgib=open(nomFichierDATG,'w')
   fdgib.write(texte)
   fdgib.close()
@@ -2063,13 +2085,11 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
   else:
      NBTRAN = 1
      if COUDE['SYME']!='ENTIER':
-        print ' <MACR_ASCOUF_MAIL> les quart et demi structure'
-        print ' <MACR_ASCOUF_MAIL> ne peuvent etre realisees '
-        print ' <MACR_ASCOUF_MAIL> sur un modele comportant une transition '
-        print ' <MACR_ASCOUF_MAIL> d epaisseur '
-        self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-        ier = ier+1
-        return ier
+        message=        ' les quart et demi structure \n'
+        message=message+' ne peuvent etre realisees   \n'
+        message=message+' sur un modele comportant une transition \n'
+        message=message+' d epaisseur \n'
+        UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
      DEXT  = COUDE['DEXT_T1']
      EP1   = COUDE['EPAIS_T1']
@@ -2094,31 +2114,29 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
   E   = EP1
 #
   if COUDE['SYME']!='ENTIER' and (LTCHAR!=LTCLIM) :
-     print ' <MACR_ASCOUF_MAIL> les deux embouts doivent etre'
-     print ' <MACR_ASCOUF_MAIL> de meme longueur pour les cas de symetrie '
-     self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-     ier = ier+1
-     return ier
+     message=        ' les deux embouts doivent etre \n'
+     message=message+' de meme longueur pour les cas de symetrie \n'
+     UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
   LAMOR = 3.0/2.0 * sqrt( RM*RM*RM / EP1)
   if LTCHAR<LAMOR :
-     print ' <MACR_ASCOUF_MAIL> longueur d embout P1 inferieure'
-     print ' <MACR_ASCOUF_MAIL> a la longueur d amortissement = ',LAMOR
-     print ' <A> <MACR_ASCOUF_MAIL> alarme'
+     message=        ' longueur d embout P1 inferieure \n'
+     message=message+' a la longueur d amortissement = %.2f \n'%LAMOR
+     UTMESS('A', "MACR_ASCOUF_MAIL", message)
 #
   LAMOR = 3.0/2.0 * sqrt( RM2*RM2*RM2 / EP2)
   if LTCLIM<LAMOR :
-     print ' <MACR_ASCOUF_MAIL> longueur d embout P2 inferieure'
-     print ' <MACR_ASCOUF_MAIL> a la longueur d amortissement = ',LAMOR
-     print ' <A> <MACR_ASCOUF_MAIL> alarme'
+     message=        ' longueur d embout P2 inferieure \n'
+     message=message+' a la longueur d amortissement = %.2f \n'%LAMOR
+     UTMESS('A', "MACR_ASCOUF_MAIL", message)
 #
   if TYPBOL!=None:
    if TYPBOL[:1]=='GV' :
-     print ' <MACR_ASCOUF_MAIL> la condition aux limites raccord'
-     print ' <MACR_ASCOUF_MAIL> 3d-poutre appliquee avec la macro de calcul'
-     print ' <MACR_ASCOUF_MAIL> ascouf n est pas licite avec un embout'
-     print ' <MACR_ASCOUF_MAIL> de type conique'
-     print ' <A> <MACR_ASCOUF_MAIL> alarme'
+     message=        ' la condition aux limites raccord \n'
+     message=message+' 3d-poutre appliquee avec la macro de calcul \n '
+     message=message+' ascouf n est pas licite avec un embout \n'
+     message=message+' de type conique \n'
+     UTMESS('A', "MACR_ASCOUF_MAIL", message)
 #
 ################################################################################
 #     --- caracteristiques de la fissure ---
@@ -2126,23 +2144,21 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
 #
   if FISS_COUDE!=None:
      if NBEP!=3:
-        print ' <MACR_ASCOUF_MAIL> le nombre d elements dans l epaisseur'
-        print ' <MACR_ASCOUF_MAIL> du coude n est pas parametrable pour'
-        print ' <MACR_ASCOUF_MAIL> un coude avec fissure'
-        print ' <MACR_ASCOUF_MAIL> mot-cle NB_ELEM_EPAIS ignore'
-        print ' <A> <MACR_ASCOUF_MAIL> alarme'
+        message=        ' le nombre d elements dans l epaisseur \n'
+        message=message+' du coude n est pas parametrable pour \n'
+        message=message+' un coude avec fissure \n'
+        message=message+' mot-cle NB_ELEM_EPAIS ignore \n'
+        UTMESS('A', "MACR_ASCOUF_MAIL", message)
      FPROF = FISS_COUDE['PROFONDEUR']
      FAXI  = FISS_COUDE['AXIS']
      if FAXI=='NON' and FISS_COUDE['LONGUEUR']==None :
-        print ' <MACR_ASCOUF_MAIL> pour les fissures non axisymetriques'
-        print ' <MACR_ASCOUF_MAIL> la longueur doit etre specifiee '
-        self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-        ier = ier+1
-        return ier
+        message=        ' pour les fissures non axisymetriques \n'
+        message=message+' la longueur doit etre specifiee  \n'
+        UTMESS('F', "MACR_ASCOUF_MAIL", message)
      if FAXI=='OUI' and FISS_COUDE['LONGUEUR']!=None :
-        print ' <MACR_ASCOUF_MAIL> la fissure est axisymetrique : on ne'
-        print ' <MACR_ASCOUF_MAIL> tient pas compte de la longueur specifiee'
-        print ' <A> <MACR_ASCOUF_MAIL> alarme'
+        message=        ' la fissure est axisymetrique : on ne \n'
+        message=message+' tient pas compte de la longueur specifiee \n'
+        UTMESS('A', "MACR_ASCOUF_MAIL", message)
      if FISS_COUDE['LONGUEUR']!=None : FLONG = FISS_COUDE['LONGUEUR']
      if FAXI=='OUI' :
 ####    on prend une marge de securite a cause des modifs dans ascfis
@@ -2174,30 +2190,22 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
      DGAXEC = FLONG/2.0
      DC     = DGAXEC
      if ORIEN!=90.0 and NBTRAN!=0 :
-        print ' <MACR_ASCOUF_MAIL> avec une transition d epaisseur'
-        print ' <MACR_ASCOUF_MAIL> la fissure doit obligatoirement etre transverse '
-        self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-        ier = ier+1
-        return ier
+        message=        ' avec une transition d epaisseur \n'
+        message=message+' la fissure doit obligatoirement etre transverse  \n'
+        UTMESS('F', "MACR_ASCOUF_MAIL", message)
      if ORIEN!=90.0 and NBTRAN!=0 :
-        print ' <MACR_ASCOUF_MAIL> avec une transition d epaisseur'
-        print ' <MACR_ASCOUF_MAIL> la fissure doit obligatoirement etre transverse '
-        self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-        ier = ier+1
-        return ier
+        message=        ' avec une transition d epaisseur \n'
+        message=message+' la fissure doit obligatoirement etre transverse  \n'
+        UTMESS('F', "MACR_ASCOUF_MAIL", message)
      if ORIEN!=90.0 and COUDE['SYME']!='ENTIER' :
-        print ' <MACR_ASCOUF_MAIL> l orientation de la fissure doit'
-        print ' <MACR_ASCOUF_MAIL> etre transverse (orien : 90.) pour modeliser '
-        print ' <MACR_ASCOUF_MAIL> un quart ou une demi structure '
-        self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-        ier = ier+1
-        return ier
+        message=        ' l orientation de la fissure doit \n'
+        message=message+' etre transverse (orien : 90.) pour modeliser  \n'
+        message=message+' un quart ou une demi structure  \n'
+        UTMESS('F', "MACR_ASCOUF_MAIL", message)
      if ORIEN!=90.0 and FAXI=='OUI' :
-        print ' <MACR_ASCOUF_MAIL> la fissure est axisymetrique : son'
-        print ' <MACR_ASCOUF_MAIL> orientation doit etre transverse (ORIEN : 90.)'
-        self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-        ier = ier+1
-        return ier
+        message=        ' la fissure est axisymetrique : son \n'
+        message=message+' orientation doit etre transverse (ORIEN : 90.) \n'
+        UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
 ################################################################################
 #     --- caracteristiques des sous epaisseurs ---
@@ -2208,92 +2216,72 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
   if SOUS_EPAIS_MULTI!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_MULTI
   if SOUS_EPAIS_COUDE!=None : MCL_SOUS_EPAIS = SOUS_EPAIS_COUDE
   if SOUS_EPAIS_MULTI!=None and NBTRAN!=0 :
-     print ' <MACR_ASCOUF_MAIL> il ne peut pas y avoir plusieurs'
-     print ' <MACR_ASCOUF_MAIL> sous-epaisseurs en meme temps qu une'
-     print ' <MACR_ASCOUF_MAIL> transition d epaisseur : si une seule'
-     print ' <MACR_ASCOUF_MAIL> sous-epaisseur utiliser sous_epais_coude'
-     self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-     ier = ier+1
-     return ier
+     message=        ' il ne peut pas y avoir plusieurs \n'
+     message=message+' sous-epaisseurs en meme temps qu une \n'
+     message=message+' transition d epaisseur : si une seule \n'
+     message=message+' sous-epaisseur utiliser sous_epais_coude \n'
+     UTMESS('F', "MACR_ASCOUF_MAIL", message)
   if SOUS_EPAIS_COUDE!=None and FISS_COUDE!=None and NBTRAN!=0 :
-     print ' <MACR_ASCOUF_MAIL> avec une transition d epaisseur'
-     print ' <MACR_ASCOUF_MAIL> il doit obligatoirement y avoir un defaut'
-     print ' <MACR_ASCOUF_MAIL> soit une fissure  soit une sous-epaisseur'
-     self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-     ier = ier+1
-     return ier
+     message=        ' avec une transition d epaisseur'
+     message=message+' il doit obligatoirement y avoir un defaut \n'
+     message=message+' soit une fissure  soit une sous-epaisseur \n'
+     UTMESS('F', "MACR_ASCOUF_MAIL", message)
   if MCL_SOUS_EPAIS!=None :
      AZIM = 90.0
      if MCL_SOUS_EPAIS.__class__.__name__  !='MCList' : MCL_SOUS_EPAIS=[MCL_SOUS_EPAIS,]
      if len(MCL_SOUS_EPAIS)!=1 and COUDE['SYME']!='ENTIER' :
-        print ' <MACR_ASCOUF_MAIL> ne modeliser qu une seule'
-        print ' <MACR_ASCOUF_MAIL> sous-epaisseur pour un quart ou demi-coude'
-        self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-        ier = ier+1
-        return ier
+        message=        ' ne modeliser qu une seule \n'
+        message=message+' sous-epaisseur pour un quart ou demi-coude\n '
+        UTMESS('F', "MACR_ASCOUF_MAIL", message)
      for ssep in MCL_SOUS_EPAIS :
         isep=isep+1
         if ssep['AXE_CIRC']!=None and ssep['TYPE']=='AXIS' :
-           print ' <MACR_ASCOUF_MAIL> vous ne pouvez declarer la sous-'
-           print ' <MACR_ASCOUF_MAIL> epaisseur comme axisymetrique et donner'
-           print ' <MACR_ASCOUF_MAIL> une taille d axe circonferentiel'
-           self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-           ier = ier+1
-           return ier
+           message=        ' vous ne pouvez declarer la sous- \n'
+           message=message+' epaisseur comme axisymetrique et donner \n'
+           message=message+' une taille d axe circonferentiel \n'
+           UTMESS('F', "MACR_ASCOUF_MAIL", message)
         if ssep['AXE_CIRC']==None and ssep['TYPE']=='ELLI' :
-           print ' <MACR_ASCOUF_MAIL> vous devez donner une taille d axe'
-           print ' <MACR_ASCOUF_MAIL> circonferentiel pour une sous-epaisseur de'
-           print ' <MACR_ASCOUF_MAIL> type elliptique'
-           self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-           ier = ier+1
-           return ier
+           message=        ' vous devez donner une taille d axe \n'
+           message=message+' circonferentiel pour une sous-epaisseur de \n'
+           message=message+' type elliptique \n'
+           UTMESS('F', "MACR_ASCOUF_MAIL", message)
         if ssep['POSI_CURV_LONGI']!=None:
            if ssep['POSI_CURV_LONGI']>(ALPHA*RC*pi/180.0) :
-              print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-              print ' <MACR_ASCOUF_MAIL> sous-epaisseur numero :',isep
-              print ' <MACR_ASCOUF_MAIL> abscisse curv. longit. :',ssep['POSI_CURV_LONGI']
-              print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',(ALPHA*RC*pi/180.0)
-              self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-              ier = ier+1
-              return ier
+              message=        ' valeur hors domaine de validite \n'
+              message=message+' sous-epaisseur numero : %d \n'%isep
+              message=message+' abscisse curv. longit. : %.2f \n'%ssep['POSI_CURV_LONGI']
+              message=message+' valeur maximale autorisee : %.2f \n'%(ALPHA*RC*pi/180.0)
+              UTMESS('F', "MACR_ASCOUF_MAIL", message)
            LDEFAU = ssep['POSI_CURV_LONGI'] + ssep['AXE_LONGI']/2.0
            BETA = 0.0
         else:
            BETA=ssep['POSI_ANGUL']
            if (BETA<0.) or (BETA>ALPHA) :
-              print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-              print ' <MACR_ASCOUF_MAIL> sous-epaisseur numero :',isep
-              print ' <MACR_ASCOUF_MAIL> position angulaire centre sous-ep :',BETA
-              print ' <MACR_ASCOUF_MAIL> valeur limite autorisee :',ALPHA
-              self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-              ier = ier+1
-              return ier
+              message=        ' valeur hors domaine de validite \n'
+              message=message+' sous-epaisseur numero : %d \n'%isep
+              message=message+' position angulaire centre sous-ep : %.2f \n'%BETA
+              message=message+' valeur limite autorisee : %.2f \n'%ALPHA
+              UTMESS('F', "MACR_ASCOUF_MAIL", message)
            LDEFAU = (BETA*RC*pi/180.0) + ssep['AXE_LONGI']/2.0
 #
         if ssep['POSI_CURV_CIRC']!=None:
            if ssep['POSI_CURV_CIRC']>(2*pi*RM) :
-              print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-              print ' <MACR_ASCOUF_MAIL> sous-epaisseur numero :',isep
-              print ' <MACR_ASCOUF_MAIL> abscisse curv. circonf. :',ssep['POSI_CURV_CIRC']
-              print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',(2*pi*RM)
-              self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-              ier = ier+1
-              return ier
+              message=        ' valeur hors domaine de validite \n'
+              message=message+' sous-epaisseur numero : %d \n'%isep
+              message=message+' abscisse curv. circonf. : %.2f \n'%ssep['POSI_CURV_CIRC']
+              message=message+' valeur limite autorisee : %.2f \n'%(2*pi*RM)
+              UTMESS('F', "MACR_ASCOUF_MAIL", message)
            if ssep['POSI_CURV_CIRC']!=(pi*RM) and ssep['TYPE']=='AXIS':
-              print ' <MACR_ASCOUF_MAIL> le centre d une sous-epaisseur'
-              print ' <MACR_ASCOUF_MAIL> axisymetrique est impose en intrados (pi*RM)'
-              self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-              ier = ier+1
-              return ier
+              message=        ' le centre d une sous-epaisseur \n'
+              message=message+' axisymetrique est impose en intrados (pi*RM) \n'
+              UTMESS('F', "MACR_ASCOUF_MAIL", message)
         else:
            ssep.IPHIC=ssep['AZIMUT']
            if ssep['AZIMUT']!=180. and ssep['TYPE']=='AXIS':
-              print ' <MACR_ASCOUF_MAIL> le centre d une sous-epaisseur'
-              print ' <MACR_ASCOUF_MAIL> axisymetrique est impose en intrados'
-              print ' <MACR_ASCOUF_MAIL> l azimut est fixe a 180 degres'
-              self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-              ier = ier+1
-              return ier
+              message=        ' le centre d une sous-epaisseur \n'
+              message=message+' axisymetrique est impose en intrados \n'
+              message=message+' l azimut est fixe a 180 degres \n'
+              UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #        l_ITYPE.append(ssep['TYPE'           ])
 #        l_ICIRC.append(ssep['AXE_CIRC'       ])
 #        l_ILONC.append(ssep['AXE_LONGI'      ])
@@ -2309,11 +2297,11 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
 #        l_IEVID.append(ssep['EMPREINTE'      ])
 
      if SOUS_EPAIS_COUDE!=None and COUDE['NB_ELEM_EPAIS']!=3 :
-        print ' <MACR_ASCOUF_MAIL> le nombre d elements dans l'
-        print ' <MACR_ASCOUF_MAIL> epaisseur du coude n est pas parametrable pour'
-        print ' <MACR_ASCOUF_MAIL> la version 2 de la procedure de plaque avec sous'
-        print ' <MACR_ASCOUF_MAIL> -epaisseur : mot-cle NB_ELEM_EPAIS ignore'
-        print ' <A> <MACR_ASCOUF_MAIL> alarme'
+        message=        ' le nombre d elements dans l \n'
+        message=message+' epaisseur du coude n est pas parametrable pour \n'
+        message=message+' la version 2 de la procedure de plaque avec sous \n'
+        message=message+' -epaisseur : mot-cle NB_ELEM_EPAIS ignore \n'
+        UTMESS('A', "MACR_ASCOUF_MAIL", message)
 #
 ################################################################################
 #     --- verifications de coherences ---
@@ -2322,50 +2310,38 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
 # donnees globales
   if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' :
     if SUREP<0. or SUREP>(RM-EP1/2.0):
-       print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-       print ' <MACR_ASCOUF_MAIL> surepaisseur :',SUREP
-       print ' <MACR_ASCOUF_MAIL> valeur limite autorisee (RM-EP1/2) :',(RM-EP1/2.0)
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=        ' valeur hors domaine de validite \n'
+       message=message+' surepaisseur : \n',SUREP
+       message=message+' valeur limite autorisee (RM-EP1/2) : %.2f \n'%(RM-EP1/2.0)
+       UTMESS('F', "MACR_ASCOUF_MAIL", message)
   if RC<=(RM+EP1/2.0):
-     print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-     print ' <MACR_ASCOUF_MAIL> le rayon de cintrage :',RC
-     print ' <MACR_ASCOUF_MAIL> doit etre superieur a (RM+EP1/2) :',(RM+EP1/2.0)
-     self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-     ier = ier+1
-     return ier
+     message=        ' valeur hors domaine de validite \n'
+     message=message+' le rayon de cintrage : %.2f \n',RC
+     message=message+' doit etre superieur a (RM+EP1/2) : %.2f \n'%(RM+EP1/2.0)
+     UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
 # coude fissure
 #
   if FISS_COUDE!=None:
     if (RM/EP1)<5. or (RM/EP1)>50.:
-       print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite (5,50)'
-       print ' <MACR_ASCOUF_MAIL> rapport RM/EP1 :',(RM/EP1)
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=        ' valeur hors domaine de validite (5,50) \n'
+       message=message+' rapport RM/EP1 : %.2f \n'%(RM/EP1)
+       UTMESS('F', "MACR_ASCOUF_MAIL", message)
     if FISS_COUDE['ABSC_CURV']!=None:
      if SF<0. or SF>(ALPHA*RC*pi/180.0) :
-       print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-       print ' <MACR_ASCOUF_MAIL> abscisse curviligne centre fissure :',SF
-       print ' <MACR_ASCOUF_MAIL> valeur limite autorisee :',(ALPHA*RC*pi/180.0)
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=        ' valeur hors domaine de validite \n'
+       message=message+' abscisse curviligne centre fissure : %.2f \n'%SF
+       message=message+' valeur limite autorisee : %.2f \n'%(ALPHA*RC*pi/180.0)
+       UTMESS('F', "MACR_ASCOUF_MAIL", message)
     if (NT-2*(NT/2))!=0:
-       print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-       print ' <MACR_ASCOUF_MAIL> nombre de tranches :',NT
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=        ' valeur hors domaine de validite \n'
+       message=message+' nombre de tranches : %d \n'%NT
+       UTMESS('F', "MACR_ASCOUF_MAIL", message)
     if FISS_COUDE['ABSC_CURV'] and ((BETA<0.) or (BETA>ALPHA)):
-       print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-       print ' <MACR_ASCOUF_MAIL> position angulaire  centre fissure :',BETA
-       print ' <MACR_ASCOUF_MAIL> posi_angul doit etre >= 0 et <= ',ALPHA
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=        ' valeur hors domaine de validite \n'
+       message=message+' position angulaire  centre fissure : %.2f \n'%BETA
+       message=message+' posi_angul doit etre >= 0 et <=  %.2f \n'%ALPHA
+       UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
 # transition d epaisseur
 #
@@ -2373,131 +2349,101 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
     LCOUDE = ALPHA * RC * pi / 180.0
     DEXT = 2.0*RM + EP1
     if (LTRAN<LDEFAU) and (LTRAN>LCOUDE) :
-       print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-       print ' <MACR_ASCOUF_MAIL> debut transition d epaisseur :',LTRAN
-       print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',LDEFAU
-       print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',LCOUDE
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=        ' valeur hors domaine de validite \n'
+       message=message+' debut transition d epaisseur : %.2f \n'%LTRAN
+       message=message+' valeur minimale autorisee : %.2f \n'%LDEFAU
+       message=message+' valeur maximale autorisee : %.2f \n'%LCOUDE
+       UTMESS('F', "MACR_ASCOUF_MAIL", message)
     if (TETA1<0.) or (TETA1>30.) :
-       print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-       print ' <MACR_ASCOUF_MAIL> angle de transition TETA1 :',TETA1
-       print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',0.
-       print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',30.
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=        ' valeur hors domaine de validite \n'
+       message=message+' angle de transition TETA1 : %.2f \n'%TETA1
+       message=message+' valeur minimale autorisee : %.2f \n'%0.
+       message=message+' valeur maximale autorisee : %.2f \n'%30.
+       UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
 # transition d epaisseur a une pente
 #
     if NBTRAN==1:
        if (EP1<12.) or (EP1>80.) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> epaisseur avant la transition :',EP1
-          print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',12.
-          print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',80.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite \n'
+          message=message+' epaisseur avant la transition : %.2f \n'%EP1
+          message=message+' valeur minimale autorisee : %.2f \n'%12.
+          message=message+' valeur maximale autorisee : %.2f \n'%80.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (EP2<20.) or (EP2>110.) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> epaisseur apres la transition :',EP2
-          print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',20.
-          print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',110.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite \n'
+          message=message+' epaisseur apres la transition : %.2f \n'%EP2
+          message=message+' valeur minimale autorisee : %.2f \n'%20.
+          message=message+' valeur maximale autorisee : %.2f \n'%110.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (EP1>EP2) :
-          print ' <MACR_ASCOUF_MAIL> l epaisseur avant la transition'
-          print ' <MACR_ASCOUF_MAIL> doit etre inferieure '
-          print ' <MACR_ASCOUF_MAIL> a celle apres la transition'
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' l epaisseur avant la transition \n'
+          message=message+' doit etre inferieure  \n'
+          message=message+' a celle apres la transition \n'
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        LTRANF = LTRAN + ((EP2-EP1)/(tan(TETA1)))
        if (LTRANF>LCOUDE) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> fin transition d epaisseur :',LTRANF
-          print ' <MACR_ASCOUF_MAIL> valeur limite autorisee :',LCOUDE
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite \n'
+          message=message+' fin transition d epaisseur : %.2f \n'%LTRANF
+          message=message+' valeur limite autorisee : %.2f \n'%LCOUDE
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if DEXT<112. or DEXT>880. :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> diam ext du tube avant transition:',DEXT
-          print ' <MACR_ASCOUF_MAIL> valeur minimum autorisee :',112.
-          print ' <MACR_ASCOUF_MAIL> valeur maximum autorisee :',880.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' diam ext du tube avant transition: %.2f \n'%DEXT
+          message=message+' valeur minimum autorisee : %.2f \n'%112.
+          message=message+' valeur maximum autorisee : %.2f \n'%880.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
 # transition d epaisseur a une pente
 #
     else:
        if (TETA2<0.) or (TETA2>45.) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> angle de transition TETA2 :',TETA2
-          print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',0.
-          print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',45.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' angle de transition TETA2: %.2f \n'%TETA2
+          message=message+' valeur minimum autorisee : %.2f \n'%0.
+          message=message+' valeur maximum autorisee : %.2f \n'%45.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (EP1<7.) or (EP1>35.) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> epaisseur avant 1ere transition :',EP1
-          print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',7.
-          print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',35.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' epaisseur avant 1ere transition: %.2f \n'%EP1
+          message=message+' valeur minimum autorisee : %.2f \n'%7.
+          message=message+' valeur maximum autorisee : %.2f \n'%35.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (EP2<15.) or (EP2>40.) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> epaisseur avant 2eme transition :',EP2
-          print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',15.
-          print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',40.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' epaisseur avant 2eme transition: %.2f \n'%EP2
+          message=message+' valeur minimum autorisee : %.2f \n'%15.
+          message=message+' valeur maximum autorisee : %.2f \n'%40.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (EPI<15.) or (EPI>40.) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> epaisseur intermediaire :',EPI
-          print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',15.
-          print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',40.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' epaisseur intermediaire: %.2f \n'%EPI
+          message=message+' valeur minimum autorisee : %.2f \n'%15.
+          message=message+' valeur maximum autorisee : %.2f \n'%40.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (EP1>EPI) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> l epaisseur avant la transition'
-          print ' <MACR_ASCOUF_MAIL> doit etre inferieure a l epaisseur intermediaire'
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' l epaisseur avant la transition \n'
+          message=message+' doit etre inferieure a l epaisseur intermediaire \n'
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (EP2<EPI) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> l epaisseur apres la transition'
-          print ' <MACR_ASCOUF_MAIL> doit etre inferieure a l epaisseur intermediaire'
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' l epaisseur apres la transition \n'
+          message=message+' doit etre inferieure a l epaisseur intermediaire \n'
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        LTRANF = LTRAN  + (EPI-EP1)/(tan(TETA1))
        LTRANF = LTRANF + (EP2-EPI)/(tan(TETA2))
        if (LTRANF>LCOUDE) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> fin transition d epaisseur :',LTRANF
-          print ' <MACR_ASCOUF_MAIL> valeur limite autorisee :',LCOUDE
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' fin transition d epaisseur: %.2f \n'%LTRANF
+          message=message+' valeur limite autorisee : %.2f \n'%LCOUDE
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
        if (DEXT<77.) or (DEXT>355.) :
-          print ' <MACR_ASCOUF_MAIL> valeur hors domaine de validite'
-          print ' <MACR_ASCOUF_MAIL> diam ext du tube avant transition:',LTRANF
-          print ' <MACR_ASCOUF_MAIL> valeur minimale autorisee :',77.
-          print ' <MACR_ASCOUF_MAIL> valeur maximale autorisee :',355.
-          self.cr.fatal("<F> <MACR_ASCOUF_MAIL> erreur donnees ")
-          ier = ier+1
-          return ier
+          message=        ' valeur hors domaine de validite\n'
+          message=message+' diam ext du tube avant transition: %.2f \n'%LTRANF
+          message=message+' valeur minimum autorisee : %.2f \n'%77.
+          message=message+' valeur maximum autorisee : %.2f \n'%355.
+          UTMESS('F', "MACR_ASCOUF_MAIL", message)
 #
 ################################################################################
 #     --- calcul taille initiale des defauts sur la plaque ---
@@ -2530,9 +2476,7 @@ def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
   if   logiel=='GIBI98'  : logiel = loc_gibi+'gibi98'
   elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000'
   else                   :
-       self.cr.fatal("<F> <MACR_ASCOUF_MAIL> seuls gibi98 et gibi2000 sont appelableS")
-       ier = ier+1
-       return ier
+       UTMESS('F', "MACR_ASCOUF_MAIL", "seuls gibi98 et gibi2000 sont appelables")
 #
 #     --- ecriture sur le fichier .datg  de la procedure ---
 #
index 5426c3958b71597413f025effeac2e76efe90440..eda90f99df8c264edefe974670e746753de38cda 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_aspic_calc_ops Macro  DATE 08/02/2005   AUTEUR CIBHHLV L.VIVAN 
+#@ MODIF macr_aspic_calc_ops Macro  DATE 09/05/2006   AUTEUR REZETTE C.REZETTE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -23,12 +23,13 @@ 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
   """
   from Accas import _F
   import types
+  from Utilitai.Utmess     import UTMESS
   ier=0
 #------------------------------------------------------------------
   # On recopie le mot cle affe_materiau pour le proteger
@@ -48,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
@@ -77,63 +77,40 @@ def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,C
         i=i+1
         MRCCM=mate['MATER']
   if i>1 :
-     ier=ier+1
-     self.cr.fatal("""<E> <MACR_ASPIC_CALC> vous affectez plus d un materiau contenant l option rccm""")
-     return ier
+     UTMESS('E', "MACR_ASPIC_CALC", "vous affectez plus d un materiau contenant l option rccm")
 #
   if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) :
-     ier=ier+1
-     self.cr.fatal("""<E> <MACR_ASPIC_CALC> pour les piquages sains, TUBULURE doit etre renseigne""")
-     return ier
+     UTMESS('E', "MACR_ASPIC_CALC", "pour les piquages sains, TUBULURE doit etre renseigne")
 #
   if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') :
-     ier=ier+1
-     self.cr.fatal("""<E> <MACR_ASPIC_CALC> EQUILIBRE[NOEUD] : on attend 'P1_CORP ' ou 'P2_CORP'""")
-     return ier
+     UTMESS('E', "MACR_ASPIC_CALC", "EQUILIBRE[NOEUD] : on attend P1_CORP ou P2_CORP")
 #
   if PRES_REP['EFFE_FOND']=='OUI' :
      if PRES_REP['NOEUD']==None :
-       ier=ier+1
-       self.cr.fatal("""<E> <MACR_ASPIC_CALC> il faut preciser un noeud pour EFFE_FOND""")
-       return ier
+       UTMESS('E', "MACR_ASPIC_CALC", "il faut preciser un noeud pour EFFE_FOND")
      if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') :
-       ier=ier+1
-       self.cr.fatal("""<E> <MACR_ASPIC_CALC> PRES_REP[NOEUD] : on attend 'P1_CORP' ou 'P2_CORP'""")
-       return ier
+       UTMESS('E', "MACR_ASPIC_CALC", "PRES_REP[NOEUD] : on attend P1_CORP ou P2_CORP")
      if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] :
-       ier=ier+1
-       self.cr.fatal("""<E> <MACR_ASPIC_CALC> on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque""")
-       return ier
+       UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un EFFE_FOND sur PRES_REP[NOEUD] car ce noeud est bloque")
 #
   if TORS_CORP!=None :
      for tors in TORS_CORP :
          if tors['NOEUD'] not in ('P1_CORP','P2_CORP') :
-            ier=ier+1
-            self.cr.fatal("""<E> <MACR_ASPIC_CALC> TORS_CORP[NOEUD] : on attend 'P1_CORP' ou 'P2_CORP'""")
-            return ier
+            UTMESS('E', "MACR_ASPIC_CALC", "TORS_CORP[NOEUD] : on attend P1_CORP ou P2_CORP")
          if tors['NOEUD']==EQUILIBRE['NOEUD'] :
-           ier=ier+1
-           self.cr.fatal("""<E> <MACR_ASPIC_CALC> on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque""")
-           return ier
+            UTMESS('E', "MACR_ASPIC_CALC", "on ne peut appliquer un torseur sur TORS_CORP[NOEUD] car ce noeud est bloque")
 #
   if (TYPE_MAILLAGE[:4]=='SAIN') and (THETA_3D!=None) :
-     ier=ier+1
-     self.cr.fatal("""<E> <MACR_ASPIC_CALC> si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible""")
-     return ier
+     UTMESS('E', "MACR_ASPIC_CALC", "si TYPE_MAILLAGE SAIN : mecanique de la rupture impossible")
 #
   if OPTION in ('CALC_G_MAX','CALC_G_MAX_LOCAL') :
     if BORNES==None :
-       ier=ier+1
-       self.cr.fatal("""<E> <MACR_ASPIC_CALC> mot-clef <BORNES> obligatoire avec cette option""")
-       return ier
+       UTMESS('E', "MACR_ASPIC_CALC", "mot-clef <BORNES> obligatoire avec cette option")
 #
   if IMPRESSION!=None :
     if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') :
       if IMPRESSION['NOM_CHAM']==None :
-        ier=ier+1
-        self.cr.fatal("""<E> <MACR_ASPIC_CALC> impression de resultats demandée sans preciser le nom des champs
-                                               cf. la documentation utilisateur : U4.PC.20.""")
-        return ier
+       UTMESS('E', "MACR_ASPIC_CALC", "impression de resultats demandée sans preciser le nom des champs cf. la documentation utilisateur : U4.PC.20.")
 #
 #------------------------------------------------------------------
 #
@@ -223,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'),
@@ -256,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={}
@@ -273,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
 #
@@ -281,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={}
@@ -292,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
 #
@@ -301,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
 #
@@ -686,20 +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'],)
-          print motscles
-          __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
@@ -711,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
 #
@@ -748,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  ---
@@ -781,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 :
@@ -804,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 :
@@ -819,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 296cab1dd537b19983735a3a4d4bf985ef296e45..783db3abb89ae12eeb38f7864669da40757fa00a 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_aspic_mail_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macr_aspic_mail_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # ======================================================================
 
 
-
-from math import sqrt,cos,sin,pi,pow,tan
+import os.path
+from math import sqrt, cos, sin, pi, pow, tan
 
 # Ecriture du fichier GIBI principal (dgib) - ASPID0
 def write_file_dgib_ASPID0(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H,
                            ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE,
-                           ITYPSO, DPENE, NIVMAG, loc_datg) :
-
+                           ITYPSO, DPENE, NIVMAG, loc_datg):
+  import aster
 # Ouverture du fichier d'entrée de commandes
   fdgib=open(nomFichierDATG,'w')
-  POIVIR = ' ;                                         \n'
-  texte='****************************************************************\n'
-  texte=texte+'opti echo 0 ;                                                   \n'
-  texte=texte+'epT1   = '+str(EPT1)         +POIVIR
-  texte=texte+'DeT1   = '+str(DET1)         +POIVIR
-  texte=texte+'d1     = '+str(D1)           +POIVIR
-  texte=texte+'d2     = '+str(D2)           +POIVIR
-  texte=texte+'epT2   = '+str(EPT2)         +POIVIR
-  texte=texte+'DeT2   = '+str(DET2)         +POIVIR
-  texte=texte+'Zmax   = '+str(ZMAX)         +POIVIR
-  texte=texte+'type_s = '+str(ITYPSO)       +POIVIR
-  texte=texte+'d_pene = '+str(DPENE)        +POIVIR
-  texte=texte+'h      = '+str(H)            +POIVIR
-  texte=texte+'angl_s = '+str(ALPHA)        +POIVIR
-  texte=texte+'jeu    = '+str(JEU)          +POIVIR
-  texte=texte+'epC    = '+str(EPC)          +POIVIR
-  texte=texte+'DeC    = '+str(DEC)          +POIVIR
-  texte=texte+'Xmax   = '+str(XMAX)         +POIVIR
-  texte=texte+'typmai =  MOT '+TYPMAI       +POIVIR
-  texte=texte+'theta  = '+str(THETA)        +POIVIR
-  texte=texte+'typele =  MOT '+TYPELE       +POIVIR
-  texte=texte+'typ_eque = MOT '+'SAINE'     +POIVIR
-  texte=texte+'nivmag = '+str(NIVMAG)       +POIVIR
-  texte=texte+'*                                                               \n'
-  texte=texte+'opti donn '
-  texte=texte+"'"+loc_datg+'aspic.datg'+"';\n"
-  print texte
+  texte = """
+****************************************************************
+opti echo 0;
+epT1     = %s;
+DeT1     = %s;
+d1       = %s;
+d2       = %s;
+epT2     = %s;
+DeT2     = %s;
+Zmax     = %s;
+type_s   = %s;
+d_pene   = %s;
+h        = %s;
+angl_s   = %s;
+jeu      = %s;
+epC      = %s;
+DeC      = %s;
+Xmax     = %s;
+typmai   = MOT %s;
+theta    = %s;
+typele   = MOT %s;
+typ_eque = MOT SAINE;
+nivmag   = %s;
+****************************************************************
+""" % (EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, ITYPSO, DPENE, H,
+       ALPHA, JEU, EPC, DEC, XMAX, TYPMAI, THETA, TYPELE, NIVMAG)
+  aster.affiche('MESSAGE',texte + ' + aspic.datg...\n')
+  texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read()
   fdgib.write(texte)
   fdgib.close()
 
@@ -65,6 +66,7 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
                            A,C,EPS, RC0, NS,NC,NT,POSI, NDT,FETIRF,FETIRP,
                            TFISS,ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) :
 
+  import aster
 # Ouverture du fichier d'entrée de commandes
   fdgib=open(nomFichierDATG,'w')
   POIVIR = ' ;                                         \n'
@@ -103,9 +105,8 @@ def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
   texte=texte+'typ_eque = MOT '+'FISS_LON'  +POIVIR
   texte=texte+'nivmag = '+str(NIVMAG)       +POIVIR
   texte=texte+'*                                                               \n'
-  texte=texte+'opti donn '
-  texte=texte+"'"+loc_datg+'aspic_v2.datg'+"';\n"
-  print texte
+  aster.affiche('MESSAGE',texte + ' + aspic_v2.datg...\n')
+  texte = texte + open(os.path.join(loc_datg, 'aspic_v2.datg'), 'r').read()
   fdgib.write(texte)
   fdgib.close()
 
@@ -116,6 +117,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
                            ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS,
                            ZETA,ITYPSO,DPENE, NIVMAG, loc_datg) :
 # 
+  import aster
   CALPHA = cos(ALPHA*pi/180.)
   SALPHA = sin(ALPHA*pi/180.)
   CTHETA = cos(THETA*pi/180.)
@@ -172,10 +174,10 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
         EPSIL = STHETA * tan(ALPHA*pi/180.0) 
         PHI = (EPSIL * ZA) - YA
         DELTA = pow(PHI,2) - ((1 + pow(EPSIL,2))*(pow(PHI,2) - (pow((DEC/2.0),2)*pow(EPSIL,2))))
-        if (THETA > 0) :          
+        if (STHETA > 0) :          
            YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
         else :
-          YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
+           YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
 
         ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2))  
 
@@ -193,6 +195,14 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
            ZN0 = ZD0 - A*CALPHA 
            XN = XN0 * CTHETA 
            YN = XN0 * STHETA
+           DNXY = sqrt(pow(XD,2) + pow(YD,2)) - sqrt(pow(XN,2) + pow(YN,2))
+           DNXY0 = XD0 - XN0
+           RAPP = DNXY/DNXY0
+           # Correction necessaire dans le cas theta et/ou alpha grand
+           if (RAPP < 0.5) :
+              DXY = sqrt(pow(XD,2) + pow(YD,2) ) 
+              XN = XN * DXY/XD0
+              YN = YN * DXY/XD0
            SGAMN = YN / ZN0
            ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2))
            D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) )
@@ -234,7 +244,7 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
         EPSIL =  STHETA * TGALP
         PHI = (EPSIL * ZA) - YA
         DELTA = pow(PHI,2) - (1.0 + pow(EPSIL,2))*(pow(PHI,2) - pow((DEC/2.0),2)*pow(EPSIL,2)) 
-        if (THETA > 0) :          
+        if (STHETA > 0) :          
            YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
         else :
            YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
@@ -336,9 +346,10 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
            ECART = (RAPP - 1.0) * B0N0
            A = A + ECART
 
-  print ' <MACR_ASPIC_MAIL> CORRECTION PROFONDEUR DEFAUT'
-  print ' PROFONDEUR SUR PIQUAGE   : ', AOLD
-  print ' PROFONDEUR SUR EQUERRE   : ', A
+  message= ' <MACR_ASPIC_MAIL> CORRECTION PROFONDEUR DEFAUT \n'
+  message=message+ ' PROFONDEUR SUR PIQUAGE   : %.2f \n'%AOLD
+  message=message+ ' PROFONDEUR SUR EQUERRE   : %.2f \n'%A
+  aster.affiche('MESSAGE',message)
 
 # Ouverture du fichier d'entrée de commandes
 
@@ -384,9 +395,8 @@ def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2,
   texte=texte+'nivmag = '+str(NIVMAG)       +POIVIR
   texte=texte+'*                                                               \n'
   texte=texte+'list epc ;\n'
-  texte=texte+'opti donn '
-  texte=texte+"'"+loc_datg+'aspic.datg'+"';\n"
-  print texte
+  aster.affiche('MESSAGE',texte + ' + aspic.datg...\n')
+  texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read()
   fdgib.write(texte)
   fdgib.close()
 
@@ -399,6 +409,7 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
   from Accas import _F
   import types
   import aster 
+  from Utilitai.Utmess import UTMESS
   ier=0
   
 # On importe les definitions des commandes a utiliser dans la macro
@@ -436,9 +447,7 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
   TYPSOU= TUBULURE['TYPE'     ]
   DPENE = TUBULURE['L_PENETR' ]
   if TYPSOU=='TYPE_2' and DPENE>0.0 : 
-    self.cr.fatal("<F> <MACR_ASPIC_MAIL> les piquages penetrants sont autorises uniquement avec les soudures de type 1")
-    ier = ier+1
-    return ier
+    UTMESS('F', "MACR_ASPIC_MAIL", "les piquages penetrants sont autorises uniquement avec les soudures de type 1")
   if TYPSOU=='TYPE_2' :
      ITYPSO = 2
   else :
@@ -466,12 +475,10 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
   ZMAXC = LZMAX + ( DEC/2.0 ) + D1 + D2
   LOK = ( abs(ZMAX-ZMAXC) <= EPSI * abs(ZMAXC) )
   if not LOK :
-    print ' <MACR_ASPIC_MAIL> erreur donnees'
-    print ' <MACR_ASPIC_MAIL> Z_MAX FOURNIE   : ', ZMAX
-    print ' <MACR_ASPIC_MAIL> Z_MAX CALCULEE  : ', ZMAXC
-    self.cr.fatal("<F> <MACR_ASPIC_MAIL> erreur donnees ")
-    ier = ier+1
-    return ier
+    message=         ' erreur donnees \n'
+    message=message+ ' Z_MAX FOURNIE   :  %.2f \n'%ZMAX
+    message=message+ ' Z_MAX CALCULEE  :  %.2f \n'%ZMAXC
+    UTMESS('F', "MACR_ASPIC_MAIL", message)
   RMC   = ( DEC - EPC ) / 2.0
   VAL1  = 1.5 * sqrt( RMC**3 / EPC )
   VAL2  = 3.0 * sqrt( RMC    * EPC )
@@ -479,14 +486,13 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
   XMAXC = LXMAX + ( DET1 / 2.0 )
   LOK = ( abs(XMAX-XMAXC) <= EPSI * abs(XMAXC) )
   if not LOK :
-    print ' <MACR_ASPIC_MAIL> erreur donnees'
-    print ' <MACR_ASPIC_MAIL> Z_MAX FOURNIE   : ', ZMAX
-    print ' <MACR_ASPIC_MAIL> Z_MAX CALCULEE  : ', ZMAXC
-    self.cr.fatal("<F> <MACR_ASPIC_MAIL> erreur donnees ")
-    ier = ier+1
-    return ier
-  print ' MACR_ASPIC_MAIL / X_MAX CALCULEE : ',XMAX
-  print ' MACR_ASPIC_MAIL / Z_MAX CALCULEE : ',XMAXC
+    message=         ' erreur donnees \n'
+    message=message+ ' Z_MAX FOURNIE   :  %.2f \n'%ZMAX
+    message=message+ ' Z_MAX CALCULEE  :  %.2f \n'%ZMAXC
+    UTMESS('F', "MACR_ASPIC_MAIL", message)
+  message=         ' MACR_ASPIC_MAIL / X_MAX CALCULEE : %.2f \n'%XMAX
+  message=message+ ' MACR_ASPIC_MAIL / Z_MAX CALCULEE : %.2f \n'%XMAXC
+  aster.affiche('MESSAGE',message)
 #
 #     --- caracteristiques de la fissure ---
 #
@@ -511,22 +517,18 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
         N1 = 1
      else : N1 = 0
      if (TFISS=='DEB_INT') and (POSI=='INCLINE') and (DPENE>0.0) and (JEU>0.0) : 
-       print ' <MACR_ASPIC_MAIL> erreur donnees'
-       print ' <MACR_ASPIC_MAIL> dans le cas de fissures'
-       print ' <MACR_ASPIC_MAIL> inclinees debouchant en peau interne avec'
-       print ' <MACR_ASPIC_MAIL> piquage penetrant le jeu doit etre nul'
-       self.cr.fatal("<F> <MACR_ASPIC_MAIL> erreur donnees ")
-       ier = ier+1
-       return ier
+       message=         ' erreur donnees \n'
+       message=message+ ' dans le cas de fissures \n'
+       message=message+ ' inclinees debouchant en peau interne avec \n'
+       message=message+ ' piquage penetrant le jeu doit etre nul \n'
+       UTMESS('F', "MACR_ASPIC_MAIL", message)
      ZETA = 0.5
      if TFISS not in ('DEB_INT','DEB_EXT') :
         if FISS_SOUDURE['LIGA_INT']==None : 
-           print ' <MACR_ASPIC_MAIL> erreur donnees'
-           print ' <MACR_ASPIC_MAIL> dans le cas de fissures internes'
-           print ' <MACR_ASPIC_MAIL> (NON_DEB) le ligament inferieur est obligatoire'
-           self.cr.fatal("<F> <MACR_ASPIC_MAIL> erreur donnees ")
-           ier = ier+1
-           return ier
+           message=         ' erreur donnees \n'
+           message=message+ ' dans le cas de fissures internes\n'
+           message=message+ ' (NON_DEB) le ligament inferieur est obligatoire \n'
+           UTMESS('F', "MACR_ASPIC_MAIL", message)
         LIGA  = FISS_SOUDURE['LIGA_INT']
         if POSI=='DROIT' :
            if ITYPSO==1 : ZETA = (A+LIGA)/(EPC+H)
@@ -535,33 +537,21 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
            if ITYPSO==1 : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPC
            else         : ZETA = (A+LIGA)*cos(ALPHA*pi/180.0)/EPT1
         if ZETA < 0.1   :
-           self.cr.fatal("<F> <MACR_ASPIC_MAIL> dans le cas de fissures internes (NON_DEB) le ligament est trop petit ")
-           ier = ier+1
-           return ier
+           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ")
         if ZETA > 0.9   :
-           self.cr.fatal("<F> <MACR_ASPIC_MAIL> dans le cas de fissures internes (NON_DEB) le ligament est trop grand ")
-           ier = ier+1
-           return ier
+           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ")
         if LIGA < 0.1*EPC :
-           self.cr.fatal("<F> <MACR_ASPIC_MAIL> dans le cas de fissures internes (NON_DEB) le ligament est trop petit ")
-           ier = ier+1
-           return ier
+           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ")
         if (LIGA + 2.0*A) > 0.9*EPC :
-           self.cr.fatal("<F> <MACR_ASPIC_MAIL> dans le cas de fissures internes (NON_DEB) le ligament est trop grand ")
-           ier = ier+1
-           return ier
+           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ")
      if N1==0 :
         if FISCOU      :
-           self.cr.fatal("<F> <MACR_ASPIC_MAIL> dans le cas de fissures courte il faut preciser la longueur ")
-           ier = ier+1
-           return ier
+           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures courte il faut preciser la longueur")
         if AXIS=='NON' :
-           self.cr.fatal("<F> <MACR_ASPIC_MAIL> dans le cas de la fissure longue il faut preciser la longueur ou axis=oui ")
-           ier = ier+1
-           return ier
+           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de la fissure longue il faut preciser la longueur ou axis=oui ")
         C = 0.0
      else :
-        if AXIS=='OUI' : print '<A> <MACR_ASPIC_MAIL> fissure axisymetrique : le mot clef <LONGUEUR> ne doit pas etre renseigne'
+        if AXIS=='OUI' : UTMESS('A', "MACR_ASPIC_MAIL", "fissure axisymetrique : le mot clef <LONGUEUR> ne doit pas etre renseigne")
      C = 0.5 * C
      LEQU=2.*(pi*(DEC-EPC)-DET1+2.*EPT1)
 #
@@ -654,9 +644,7 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
   if   logiel=='GIBI98'  : logiel = loc_gibi+'gibi98'
   elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000'
   else                   :
-       self.cr.fatal("<F> <MACR_ASPIC_MAIL> seuls gibi98 et gibi2000 sont appelableS")
-       ier = ier+1
-       return ier
+       UTMESS('F', "MACR_ASPIC_MAIL", "seuls gibi98 et gibi2000 sont appelables ")
 #
 #     --- ecriture sur le fichier .datg  de la procedure ---
 #
@@ -841,5 +829,80 @@ def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
          IMPR_RESU( RESU = impr_resu, 
                     FORMAT = impr['FORMAT'],**motscles )
 #
+#
+#     --- Verification profondeur fissure (courte débouchante) ---
+#
+  if FISCOU  and not (TFISS=='NON_DEB')    :
+      nomres=DEFI_GROUP( reuse=nomres,
+                         MAILLAGE=nomres,
+                         CREA_GROUP_NO=(_F( GROUP_MA = 'LEVRTUBU',),
+                                        _F( NOM = 'FONDORDO',
+                                            GROUP_MA = 'FONDFISS',
+                                            OPTION = 'NOEUD_ORDO',),),);
+
+      nommail=nomres.nom
+      coord   =aster.getvectjev(nommail.ljust(8)+'.COORDO    .VALE')
+      collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO')
+
+      grfo=collgrno['FONDORDO']
+      Nbno = len(grfo)  
+      listx = [None]*Nbno
+      listy = [None]*Nbno
+      listz = [None]*Nbno
+      k = 0
+      for node in grfo:
+         listx[k] = coord[3*(node-1)]
+         listy[k] = coord[3*(node-1)+1]
+         listz[k] = coord[3*(node-1)+2]
+         k = k+1
+
+      XAB = listx[Nbno-1] - listx[0]
+      YAB = listy[Nbno-1] - listy[0]
+      ZAB = listz[Nbno-1] - listz[0]
+      AB = sqrt(XAB*XAB + YAB*YAB +ZAB*ZAB)
+      d = 0
+      for k in range(0,Nbno) :
+         XAM = listx[k] - listx[0]
+         YAM = listy[k] - listy[0]
+         ZAM = listz[k] - listz[0]
+         Xvect = YAB*ZAM-ZAB*YAM
+         Yvect = ZAB*XAM-XAB*ZAM
+         Zvect = XAB*YAM-YAB*XAM
+         AM = sqrt(Xvect*Xvect+ Yvect*Yvect +Zvect*Zvect)
+         dk = AM/AB
+         if dk > d :
+            XC = listx[k]
+            YC = listy[k]
+            ZC = listz[k]
+         d = max(dk, d)
+   
+      grlev=collgrno['LEVRTUBU']
+      Nbnol = len(grlev)  
+      listxl = [None]*Nbnol
+      listyl = [None]*Nbnol
+      listzl = [None]*Nbnol
+      k = 0
+      for node in grlev:
+         listxl[k] = coord[3*(node-1)]
+         listyl[k] = coord[3*(node-1)+1]
+         listzl[k] = coord[3*(node-1)+2]
+         k = k+1
+      dist = 0
+      for k in range(0,Nbnol) :
+         XAM = listxl[k] - listx[0]
+         YAM = listyl[k] - listy[0]
+         ZAM = listzl[k] - listz[0]
+         Scal = (XAB*XAM + YAB*YAM + ZAB*ZAM)/(AB*AB)
+         if (abs(Scal) < 0.51) and (abs(Scal) > 0.49) :
+            Xk = listxl[k] -XC
+            Yk = listyl[k] -YC
+            Zk = listzl[k] -ZC
+            dk = sqrt(Xk**2+ Yk**2 +Zk**2)
+            dist = max(dk, dist)
+      
+      texte="<MACR_ASPIC_MAIL> PROFONDEUR DE LA FISSURE DANS LE MAILLAGE : %.2f \n"%dist
+      aster.affiche('MESSAGE',texte)
+#      
   return ier
 
+
index a829425f877796bfced239fc836a2b1b4d95686d..da2fa29f2908d484b8e86e8dc09eae5117df8500 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_cabri_calc_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macr_cabri_calc_ops Macro  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -22,7 +22,7 @@
 
 
 def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
-    CHAR_MECA,RESU_THER,
+    CHAR_MECA,RESU_THER,RESO_INTE,
     AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON, 
     INCREMENT,CHAM_MATER,**args):
    """
@@ -40,7 +40,7 @@ def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
    # On met certains mots-clefs dans des variables locales pour les proteger
    affemateriau = AFFE_MATERIAU
    mail         = MAILLAGE  
-   
+   resointe     = RESO_INTE
 
    # On importe les definitions des commandes a utiliser dans la macro
    # Le nom de la variable doit etre obligatoirement le nom de la commande
@@ -511,7 +511,7 @@ def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
                          _F(CHARGE=cl_me11,),                            
                   ),
                   SOLVEUR        = solveur, 
-                  COMP_INCR      =_F(RELATION=relation,),
+                  COMP_INCR      =_F(RELATION=relation,RESO_INTE=resointe),
                   NEWTON         = newton,
                   INCREMENT      = increment,
                   CONVERGENCE    = convergence,
@@ -532,7 +532,7 @@ def macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
                          _F(CHARGE=cl_me11,),                            
                   ),
                   SOLVEUR        = solveur, 
-                  COMP_ELAS      =_F(RELATION=relation,),
+                  COMP_ELAS      =_F(RELATION=relation,RESO_INTE=resointe),
                   NEWTON         = newton,
                   INCREMENT      = increment,
                   CONVERGENCE    = convergence,
index e0849aff5b761e5ca5a179f2e1cb29ee29d46220..89195496e4e33a7bfe6cb77ac8cb9c7841bcb7dd 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_cara_poutre_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macr_cara_poutre_ops Macro  DATE 27/02/2006   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -26,6 +26,7 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
   """
   import types
   from Accas import _F
+  from Utilitai.Utmess     import UTMESS
   ier=0
   # On importe les definitions des commandes a utiliser dans la macro
   # Le nom de la variable doit etre obligatoirement le nom de la commande
@@ -49,21 +50,18 @@ 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.icmd=1
   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)
 
 #  if GROUP_MA_BORD and GROUP_MA:
 #     if not LIAISON:
-#        ier=ier+1
-#        self.cr.fatal("<F> <MACR_CARA_POUTRE> Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU")
-#        return ier
+#        UTMESS('F', "MACR_CARA_POUTRE", "Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU")
 #
   __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,)
 
@@ -79,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 :
 #     ------------------------------------------------------
 
@@ -88,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é
 
 #
@@ -106,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 :
 #     ---------------------------------------------------------
@@ -128,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
@@ -355,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',),  )
      
 
 #
@@ -410,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
@@ -542,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'),  )
@@ -565,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:
@@ -581,14 +580,11 @@ def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
           l_noeud= args['NOEUD']
 
      if len(l_group_ma)!=len(l_group_ma_bord):
-        ier=ier+1
-        self.cr.fatal("<F> <MACR_CARA_POUTRE> GROUP_MA et GROUP_MA_BORD incoherents")
-        return ier
+        UTMESS('F', "MACR_CARA_POUTRE", "GROUP_MA et GROUP_MA_BORD incoherents")
      if args.has_key('NOEUD') and (len(l_group_ma)!=len(l_noeud)):
-        ier=ier+1
-        self.cr.fatal("<F> <MACR_CARA_POUTRE> GROUP_MA et NOEUD incoherents")
-        return ier
+        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
@@ -606,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],  ),  )
 
@@ -787,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 aa2648c8013113743723c0d3cd857fc3f25092f5..a2912b6e8336061068430139d36e152bfddcf6e9 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_lign_coupe_ops Macro  DATE 24/05/2005   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macr_lign_coupe_ops Macro  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -26,6 +26,7 @@
 def crea_mail_lig_coup(dimension,lignes,groups):
 
   import os,sys,copy
+  from Utilitai.Utmess     import UTMESS
 
 # construction du maillage au format Aster des segments de lignes de coupe
 
@@ -113,15 +114,17 @@ 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
   """
   import os,string,types
   from Accas import _F
   from Noyau.N_utils import AsType
-  import aster
+  import aster,math
   from Utilitai.UniteAster import UniteAster
+  from Utilitai.Utmess import UTMESS
   ier=0
 
   # On importe les definitions des commandes a utiliser dans la macro
@@ -131,9 +134,9 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,
   PROJ_CHAMP     =self.get_cmd('PROJ_CHAMP')
   POST_RELEVE_T  =self.get_cmd('POST_RELEVE_T')
   CREA_TABLE     =self.get_cmd('CREA_TABLE')
+  MODI_REPERE    =self.get_cmd('MODI_REPERE')
 
   # La macro compte pour 1 dans la numerotation des commandes
-  #self.icmd=1
   self.set_icmd(1)
   
   nomresu=RESULTAT.nom
@@ -141,9 +144,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,
   n_modele=string.strip(l_modele[0])
   if n_modele=='' :
      if MODELE==None:
-       ier=ier+1
-       self.cr.fatal("<F> <MACR_LIGN_COUPE> nom du modele absent dans le concept resultat "+nomresu)
-       return ier
+       UTMESS('F', "MACR_LIGN_COUPE", "nom du modele absent dans le concept resultat "+nomresu)
      else : n_modele=MODELE.nom
   l_mailla=aster.getvectjev(n_modele.ljust(8)+'.MODELE    .NOMA')
   n_mailla=string.strip(l_mailla[0])
@@ -160,9 +161,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,
       elif m['GROUP_NO']!=None :
         ngrno=m['GROUP_NO'].ljust(8).upper()
         if ngrno not in collgrno.keys() :
-          ier=ier+1
-          self.cr.fatal("<F> <MACR_LIGN_COUPE> le group_no "+ngrno+" n est pas dans le maillage "+n_mailla)
-          return ier
+          UTMESS('F', "MACR_LIGN_COUPE", "le group_no "+ngrno+" n est pas dans le maillage "+n_mailla)
         grpn=collgrno[ngrno]
         l_coor_group=[ngrno,]
         for node in grpn:
@@ -170,9 +169,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,
         groups.append(l_coor_group)
 
   if minidim!=dime:
-    ier=ier+1
-    self.cr.fatal("<F> <MACR_LIGN_COUPE> dimensions de maillage et de coordonnees incoherentes")
-    return ier
+    UTMESS('F', "MACR_LIGN_COUPE", "dimensions de maillage et de coordonnees incoherentes")
 
 
   # Création du maillage des NB_POINTS segments entre COOR_ORIG et COOR_EXTR
@@ -214,12 +211,124 @@ 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
+  if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') :
+   for m in LIGN_COUPE :
+      if m['VECT_Y'] !=None :
+        epsi=0.00000001
+        # --- determination des angles nautiques
+        cx1=m['COOR_EXTR'][0]-m['COOR_ORIG'][0]
+        cx2=m['COOR_EXTR'][1]-m['COOR_ORIG'][1]
+        cx3=0.
+        if dime == 3:
+          cx3=m['COOR_EXTR'][2]-m['COOR_ORIG'][2]
+        nvx=math.sqrt(cx1**2+cx2**2+cx3**2)
+        if abs(nvx) < epsi:
+            UTMESS('F', "MACR_LIGN_COUPE", "definition incorrecte de la ligne de coupe")
+        cx1=cx1/nvx
+        cx2=cx2/nvx
+        cx3=cx3/nvx
+        cy1=m['VECT_Y'][0]
+        cy2=m['VECT_Y'][1]
+        cy3=0.
+        if dime == 3:
+          cy3=m['VECT_Y'][2]
+        nvy=math.sqrt(cy1**2+cy2**2+cy3**2)
+        if abs(nvy) < epsi:
+            UTMESS('F', "MACR_LIGN_COUPE", "valeurs incorrectes pour VECT_Y")
+        cy1=cy1/nvy
+        cy2=cy2/nvy
+        cy3=cy3/nvy
+        if ((abs(cx1-cy1)<epsi and abs(cx2-cy2)<epsi and  abs(cx3-cy3)<epsi) or \
+           (abs(cx1+cy1)<epsi and abs(cx2+cy2)<epsi and  abs(cx3+cy3)<epsi)):
+            UTMESS('F', "MACR_LIGN_COUPE", "valeurs incorrectes pour VECT_Y: x colineaire a y")
+        if abs(cx1*cy1+cx2*cy2+cx3*cy3) > epsi  :
+          cz1=cx2*cy3-cx3*cy2
+          cz2=cx3*cy1-cx1*cy3
+          cz3=cx1*cy2-cx2*cy1
+          nvz=math.sqrt(cz1**2+cz2**2+cz3**2)
+          cz1=cz1/nvz
+          cz2=cz2/nvz
+          cz3=cz3/nvz
+          cy1=cz2*cx3-cz3*cx2
+          cy2=cz3*cx1-cz1*cx3
+          cy3=cz1*cx2-cz2*cx1
+          nvy=math.sqrt(cy1**2+cy2**2+cy3**2)
+          cy1=cy1/nvy
+          cy2=cy2/nvy
+          cy3=cy3/nvy
+          UTMESS('A','MACR_LIGN_COUPE','LE VECTEUR Y N EST PAS ORTHOGONAL A LA LIGNE DE COUPE'
+                  +'LE VECTEUR Y A ETE ORTHONORMALISE POUR VOUS')
+          UTMESS('A','MACR_LIGN_COUPE','VECT_Y=('+str(cy1)+','+str(cy2)+','+str(cy3)+')')
+        else:     
+          cz1=cx2*cy3-cx3*cy2
+          cz2=cx3*cy1-cx1*cy3
+          cz3=cx1*cy2-cx2*cy1
+        beta=0.
+        gamma=0.
+        if dime ==2:
+          alpha = math.atan2(cx2,cx1)
+        else:
+          if cx1**2 + cx2**2 > epsi :
+            alpha=math.atan2(cx2,cx1)
+            beta=math.asin(cx3)
+            gamma=math.atan2(cy3,cz3)
+          else:
+            alpha=math.atan2(cy1,cz1)
+            beta=math.asin(cx3)
+            gamma=0.
+        alpha=alpha*180/math.pi
+        beta=beta*180/math.pi
+        gamma=gamma*180/math.pi
+
+        # --- MODI_REPERE
+        motscles={}
+        motscles['MODI_CHAM']=[]
+        motscles['DEFI_REPERE']=[]
+        # MODI_CHAM
+        if NOM_CHAM == 'DEPL':
+           if dime == 2:
+              LCMP=['DX','DY']
+              TYPE_CHAM='VECT_2D'
+           elif dime ==3 :
+              LCMP=['DX','DY','DZ']
+              TYPE_CHAM='VECT_3D'
+           motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),)
+        elif NOM_CHAM in ('SIGM_NOEU_DEPL','SIGM_NOEU_SIEF','SIGM_NOEU_ELGA','SIGM_NOEU_COQU'):
+           if dime == 2:
+              LCMP=['SIXX','SIYY','SIZZ','SIXY']
+              TYPE_CHAM='TENS_2D'
+           elif dime ==3 :
+              LCMP=['SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ']
+              TYPE_CHAM='TENS_3D'
+           motscles['MODI_CHAM'].append(_F(NOM_CHAM=NOM_CHAM,NOM_CMP=LCMP,TYPE_CHAM=TYPE_CHAM),)
+        # DEFI_REPERE
+        ANGL_NAUT=[]
+        ANGL_NAUT.append(alpha)
+        if dime ==3:
+           ANGL_NAUT.append(beta)
+           ANGL_NAUT.append(gamma)
+        motscles['DEFI_REPERE'].append(_F(REPERE='UTILISATEUR',ANGL_NAUT=ANGL_NAUT),)
+        __remodr=MODI_REPERE(RESULTAT=__recou,**motscles)
+
+
 
   # Production d'une table pour toutes les lignes de coupe
 
@@ -236,7 +345,7 @@ def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,NOM_CHAM,MODELE,
         if m['INTITULE'] !=None : intitl=m['INTITULE']
         else                    : intitl=groupe
       mcACTION.append( _F(INTITULE  = intitl,
-                          RESULTAT  = __recou,
+                          RESULTAT  = __remodr,
                           GROUP_NO  = groupe,
                           NOM_CHAM  = NOM_CHAM,
                           TOUT_CMP  = 'OUI',
index 17597e9045ca72bda20113bef5396f5087b2f865..40e793af9f0fa9db842d21ff6ca78424b9689901 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macr_recal_ops Macro  DATE 14/03/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF macr_recal_ops Macro  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 
 def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC, 
                         ITER_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI,
-                        GRAPHIQUE, **args ):
+                        GRAPHIQUE, INFO, **args ):
    """Macro commande réalisant le recalage de modèles Aster""",
    # Initialisation du compteur d'erreurs
    ier=0
-   # On essaie d'importer Numeric -> ERREUR FATALE
-   try:
-     import Numeric
-   except ImportError:
-     ier=ier+1
-     self.cr.fatal("<F> <MACR_RECAL> Le module Numeric de Python n'a pu etre chargé")
-     return ier
-   # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE
-   try:
-     import Gnuplot
-     gnuplot=1
-   except ImportError:
-     gnuplot=0
-   import string
-   import copy
-   import types
+
+   import string, copy, types, Numeric
    import Macro
    from Cata import cata
    from Cata.cata import DEFI_LIST_REEL
-   from Macro.recal import gestion,transforme_list_Num,calcul_F,graphique
+   from Macro.recal import gestion,transforme_list_Num,calcul_F
    from Macro import reca_message
    from Macro import reca_algo
    from Macro import reca_interp
+   from Macro import reca_graphique
+
+   try:
+      from Utilitai.Utmess import UTMESS
+   except ImportError:
+      def UTMESS(code,sprg,texte):
+         fmt='\n <%s> <%s> %s\n\n'
+         print fmt % (code,sprg,texte)
+
+   # Test du mot-clé GRAPHIQUE
+   if GRAPHIQUE:
+     dGRAPHIQUE=GRAPHIQUE[0].cree_dict_valeurs(GRAPHIQUE[0].mc_liste)
+     if dGRAPHIQUE.has_key('FORMAT') and dGRAPHIQUE['FORMAT'] == 'GNUPLOT':
+       # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE
+       try:
+         import Gnuplot
+       except ImportError:
+         GRAPHIQUE == None
+         UTMESS('A','MACR_RECAL',"Le logiciel Gnuplot ou le module python Gnuplot.py n'est pas disponible. On desactive l'affichage des courbes.")
+
    # La macro compte pour 1 dans l'execution des commandes
-   #self.icmd=1
    self.set_icmd(1)
 
    self.DeclareOut('nomres',self.sd)
@@ -68,10 +73,7 @@ def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC,
    #_____________________________________________
    texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU)
    if (texte_erreur != ""):
-      ier=ier+1
-      texte_erreur='<F> <MACR_RECAL>'+texte_erreur
-      self.cr.fatal(texte_erreur)
-      return ier
+      UTMESS('F', "MACR_RECAL", texte_erreur)
 
    #_____________________________________________
    #
@@ -132,16 +134,19 @@ def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, POIDS, LIST_PARA, RESU_CALC,
       A = Dim.adim_sensi(A)
       residu = reca_algo.test_convergence(gradient_init,erreur,A,s)
       Mess.affiche_result_iter(iter,J,val,residu,Act,UNITE_RESU)
-      if (gnuplot):
-         if (GRAPHIQUE):
+
+      # Affichage des courbes
+      if GRAPHIQUE:
             GRAPHE_UL_OUT=GRAPHIQUE['UNITE']
             interactif=(GRAPHIQUE['INTERACTIF']=='OUI')
-            graphique(L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif)
+            reca_graphique.graphique(GRAPHIQUE['FORMAT'],L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif)
+
       # On teste un manque de temps CPU
       restant,temps_iter,err=reca_algo.temps_CPU(self,restant,temps_iter)
       if (err==1):
          ier=ier+1
          return ier
+
    #_____________________________________________
    #
    # FIN DES ITERATIONS
index 38d6e265040291f868a4207bf303f383861ff3b4..bdd9e7df3566d92b00fd540e2865ca38e1d21448 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_elas_mult_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macro_elas_mult_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -29,6 +29,7 @@ def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL,
   ier=0
   import types
   from Accas import _F
+  from Utilitai.Utmess     import UTMESS
 
   # On met le mot cle NUME_DDL dans une variable locale pour le proteger
   numeddl=NUME_DDL
@@ -44,7 +45,6 @@ def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL,
   CALC_ELEM       =self.get_cmd('CALC_ELEM')
   CALC_NO         =self.get_cmd('CALC_NO')
   # La macro compte pour 1 dans la numerotation des commandes
-  #self.icmd=1
   self.set_icmd(1)
 
   # Le concept sortant (de type mult_elas ou fourier_elas) est nommé
@@ -62,9 +62,7 @@ def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL,
         ifour=1                 # mot clé MODE_FOURIER présent sous CAS_CHARGE
         tyresu = 'FOURIER_ELAS'
   if ielas==1 and ifour==1:
-     ier=ier+1
-     self.cr.fatal("""<F> <MACRO_ELAS_MULT> On ne peut avoir a la fois NOM_CAS et MODE_FOURIER""")
-     return ier
+     UTMESS('F', "MACRO_ELAS_MULT", "On ne peut avoir a la fois NOM_CAS et MODE_FOURIER")
 
   if (numeddl in self.sdprods) or (numeddl==None):
     # Si le concept numeddl est dans self.sdprods ou n est pas nommé
index 34595923db015c6a629fd2c579d718aa330b267e..c3b17003a4483635e244abed900de5568e9604ff 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_matr_ajou_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macro_matr_ajou_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -29,6 +29,8 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI
   """
   from Accas import _F
   import types
+  import aster
+  from Utilitai.Utmess     import UTMESS
   ier=0
   
   # On importe les definitions des commandes a utiliser dans la macro
@@ -44,17 +46,17 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI
   self.set_icmd(1)
  
   if len(FLUIDE)==1 :
-     print '<I> <MACRO_MATR_AJOU> tout le domaine fluide specifie dans GROUP_MA_INTERF et GROUP_MA_FLUIDE'
-     print '                      sera affecte par la masse volumique RHO = ',FLUIDE['RHO']
+     message=         '<I> <MACRO_MATR_AJOU> tout le domaine fluide specifie dans GROUP_MA_INTERF et GROUP_MA_FLUIDE \n'
+     message=message+ '                      sera affecte par la masse volumique RHO = '+str(FLUIDE['RHO'])+' \n'
+     aster.affiche('MESSAGE',message)
      if FLUIDE['GROUP_MA']!=None :
-       print '<I> <MACRO_MATR_AJOU> cas fluide simple : le group_ma dans lequel vous affectez la masse'
-       print 'volumique RHO doit etre la reunion de GROUP_MA_INTERF et GROUP_MA_FLUIDE.'
+       message=         '<I> <MACRO_MATR_AJOU> cas fluide simple : le group_ma dans lequel vous affectez la masse \n'
+       message=message+ 'volumique RHO doit etre la reunion de GROUP_MA_INTERF et GROUP_MA_FLUIDE. \n'
+       aster.affiche('MESSAGE',message)
   else :
      for flu in FLUIDE :
          if flu['GROUP_MA']==None :
-            self.cr.fatal("<F> <MACRO_MATR_AJOU> cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez  la masse volumique RHO.")
-            ier=ier+1
-            return ier
+            UTMESS('F', "MACRO_MATR_AJOU", "cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez  la masse volumique RHO")
 
   IOCFLU=len(FLUIDE)
 
@@ -109,9 +111,7 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI
         if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_FLUIDE'])
         affimp.append(mfact)
   if nflui==0:
-     self.cr.fatal("<F> <MACRO_MATR_AJOU> PRES_FLUIDE obligatoire une fois")
-     ier=ier+1
-     return ier
+     UTMESS('F', "MACRO_MATR_AJOU", "PRES_FLUIDE obligatoire une fois")
 
   __CHARGE=AFFE_CHAR_THER( MODELE    = __NOMFLU,
                            TEMP_IMPO = affimp )
@@ -190,9 +190,7 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI
      if   MODE_MECA    !=None : mostcles['MODE_MECA']     =MODE_MECA
      elif DEPL_IMPO    !=None : mostcles['CHAM_NO']       =DEPL_IMPO
      else :
-       self.cr.fatal("<F> <MACRO_MATR_AJOU> amortissement ajoute sur modele generalise non encore implante")
-       ier=ier+1
-       return ier
+       UTMESS('F', "MACRO_MATR_AJOU", "amortissement ajoute sur modele generalise non encore implante")
 
      AMORAJ = CALC_MATR_AJOU(MODELE_FLUIDE    = __NOMFLU,
                              MODELE_INTERFACE = __NOMINT,
@@ -214,9 +212,7 @@ def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATI
      if   MODE_MECA    !=None : mostcles['MODE_MECA']     =MODE_MECA
      elif DEPL_IMPO    !=None : mostcles['CHAM_NO']       =DEPL_IMPO
      else :
-       self.cr.fatal("<F> <MACRO_MATR_AJOU> rigidite ajoutee sur modele generalise non encore implante")
-       ier=ier+1
-       return ier
+       UTMESS('F', "MACRO_MATR_AJOU", "rigidite ajoute sur modele generalise non encore implante")
 
      RIGIAJ = CALC_MATR_AJOU(MODELE_FLUIDE    = __NOMFLU,
                              MODELE_INTERFACE = __NOMINT,
index 4c7f99f1a176a859840cb11cdb8d7166ac68d892..60374b6cd1f204900a4facfc8e72bbea765ff6c8 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_matr_asse_ops Macro  DATE 01/04/2005   AUTEUR VABHHTS J.PELLET 
+#@ MODIF macro_matr_asse_ops Macro  DATE 30/01/2006   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -26,6 +26,7 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
      Ecriture de la macro MACRO_MATR_ASSE
   """
   ier=0
+  from Utilitai.Utmess     import UTMESS
 
   # On met le mot cle NUME_DDL dans une variable locale pour le proteger
   numeddl=NUME_DDL
@@ -35,7 +36,6 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
   NUME_DDL      =self.get_cmd('NUME_DDL')
   ASSE_MATRICE  =self.get_cmd('ASSE_MATRICE')
   # La macro compte pour 1 dans la numerotation des commandes
-  #self.icmd=1
   self.set_icmd(1)
 
   if SOLVEUR:
@@ -46,36 +46,28 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
       else:
          renum='RCMK'
       if renum not in ('SANS','RCMK'):
-        ier=ier+1
-        self.cr.fatal("<F> <MACRO_MATR_ASSE> Avec methode LDLT, RENUM doit etre SANS ou RCMK.")
-        return ier
+        UTMESS('F', "MACRO_MATR_ASSE", "Avec methode LDLT, RENUM doit etre SANS ou RCMK")
     elif methode=='MULT_FRONT':
       if SOLVEUR['RENUM']:
          renum=SOLVEUR['RENUM']
       else:
          renum='MDA'
       if renum not in ('MDA','MD','METIS'):
-        ier=ier+1
-        self.cr.fatal("<F> <MACRO_MATR_ASSE> Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK.")
-        return ier
+        UTMESS('F', "MACRO_MATR_ASSE", "Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK")
     elif methode=='MUMPS':
       if SOLVEUR['RENUM']:
          renum=SOLVEUR['RENUM']
       else:
          renum='SANS'
       if renum not in ('SANS',):
-        ier=ier+1
-        self.cr.fatal("<F> <MACRO_MATR_ASSE> Avec methode MUMPS, RENUM doit etre SANS.")
-        return ier
+        UTMESS('F', "MACRO_MATR_ASSE", "Avec methode MUMPS, RENUM doit etre SANS")
     elif methode=='GCPC':
       if SOLVEUR['RENUM']:
          renum=SOLVEUR['RENUM']
       else:
          renum='SANS'
       if renum not in ('SANS','RCMK'):
-        ier=ier+1
-        self.cr.fatal("<F> <MACRO_MATR_ASSE> Avec methode GCPC, RENUM doit etre SANS ou RCMK.")
-        return ier
+        UTMESS('F', "MACRO_MATR_ASSE", "Avec methode GCPC, RENUM doit etre SANS ou RCMK")
   else:
     methode='MULT_FRONT'
     renum  ='MDA'
@@ -108,18 +100,13 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
     option=m['OPTION']
     if iocc == 1 and lnume == 1 and option not in ('RIGI_MECA','RIGI_MECA_LAGR',
                                                    'RIGI_THER','RIGI_ACOU')      :
-      ier=ier+1
-      self.cr.fatal("<F> <MACRO_MATR_ASSE> UNE DES OPTIONS DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR")
-      return ier
+      UTMESS('F', "MACRO_MATR_ASSE", "UNE DES OPTIONS DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR")
 
 
     motscles={'OPTION':option}
     if option == 'AMOR_MECA':
        if (not lrigel or not lmasel):
-          ier=ier+1
-          self.cr.fatal("""<F> <MACRO_MATR_ASSE> POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE
-                           RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)""")
-          return ier
+          UTMESS('F', "MACRO_MATR_ASSE", "POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)")
        if CHAM_MATER != None:
           motscles['RIGI_MECA']   =rigel
           motscles['MASS_MECA']   =masel
@@ -141,23 +128,22 @@ def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
 
     try : motscles['PROPAGATION']   =m['PROPAGATION']
     except IndexError : pass
-    print motscles
-    __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 0d5d360b714aab0b738ee9601f9bfcc7bc3ef6a5..54af120b2109e285a3f37e38ea56309e23094611 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_miss_3d_ops Macro  DATE 03/11/2004   AUTEUR ACBHHCD G.DEVESA 
+#@ 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
@@ -35,7 +38,6 @@ def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
   DEFI_FICHIER  =self.get_cmd('DEFI_FICHIER')
   EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL')
   # La macro compte pour 1 dans la numerotation des commandes
-  #self.icmd=1
   self.set_icmd(1)
 
   DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER)
@@ -60,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),
@@ -70,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
index efbd4db3df06fda6d65f4229770be4de59900c18..a24af1f6456f6db545e7b45564b79dc9bc13fff3 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_mode_meca_ops Macro  DATE 30/11/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macro_mode_meca_ops Macro  DATE 14/06/2005   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -40,7 +40,6 @@ def macro_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ,
   EXTR_MODE         =self.get_cmd('EXTR_MODE')
   DETRUIRE          =self.get_cmd('DETRUIRE')
   # La macro compte pour 1 dans la numerotation des commandes
-  #self.icmd=1
   self.set_icmd(1)
 
   nompro=None
index edfee0293ff48be0a844bc1b5b04532a81afad3d..589dde018183dea17ba040d8ae4d1904263f01d8 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF macro_proj_base_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF macro_proj_base_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -25,12 +25,12 @@ def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,*
      Ecriture de la macro MACRO_PROJ_BASE
   """
   ier=0
+  from Utilitai.Utmess     import UTMESS
   # On importe les definitions des commandes a utiliser dans la macro
   NUME_DDL_GENE  =self.get_cmd('NUME_DDL_GENE')
   PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE')
   PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE')
   # La macro compte pour 1 dans la numerotation des commandes
-  #self.icmd=1
   self.set_icmd(1)
 
   _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL)
@@ -40,9 +40,7 @@ def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,*
       if   m['MATR_ASSE']     :  motscles['MATR_ASSE']     =m['MATR_ASSE']
       elif m['MATR_ASSE_GENE']:  motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE']
       else:
-          ier=ier+1
-          self.cr.fatal("<F> <MACRO_PROJ_BASE> MATR_ASSE et MATR_ASSE_GENE absents")
-          return ier
+          UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents")
       self.DeclareOut('mm',m['MATRICE'])
       mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles)
 
@@ -53,9 +51,7 @@ def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,*
       if   v['VECT_ASSE']     :  motscles['VECT_ASSE']     =v['VECT_ASSE']
       elif v['VECT_ASSE_GENE']:  motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE']
       else:
-          ier=ier+1
-          self.cr.fatal("<F> <MACRO_PROJ_BASE>MATR_ASSE et MATR_ASSE_GENE absents")
-          return ier
+          UTMESS('F', "MACRO_PROJ_BASE", "MATR_ASSE et MATR_ASSE_GENE absents")
       motscles['TYPE_VECT']=v['TYPE_VECT']
       self.DeclareOut('vv',v['VECTEUR'])
       vv=PROJ_VECT_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles)
index 65e02bd15a80f43d1f29bcd748cda08baec6a320..429de101746f4f8cc6c58504f8065e55c5b24b82 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF reca_algo Macro  DATE 14/03/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
 # ======================================================================
 
 
 import Numeric
-from Numeric import take
+from Numeric import take, size
 import copy,os
 import LinearAlgebra 
 from Cata.cata import INFO_EXEC_ASTER
 from Cata.cata import DETRUIRE
 from Accas import _F
+from Utilitai.Utmess     import UTMESS
 
 
 def calcul_gradient(A,erreur):
@@ -132,7 +133,7 @@ def temps_CPU(self,restant_old,temps_iter_old):
             temps_iter=(temps_iter_old + (restant_old-restant))/2.
          if ((temps_iter>0.96*restant)or(restant<0.)):
             err=1
-            self.cr.fatal("<F> <MACR_RECAL> Arret de MACR_RECAL par manque de temps CPU")
+            UTMESS('F', "MACR_RECAL", 'Arret de MACR_RECAL par manque de temps CPU')
    return restant,temps_iter,err
 
 
@@ -174,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):
@@ -203,7 +211,7 @@ def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out
              res.write('\n\nval_ini= '+Numeric.array2string(val_init,array_output=1,separator=','))
              res.write('\n\nborne_inf= '+Numeric.array2string(borne_inf,array_output=1,separator=','))
              res.write('\n\nborne_sup= '+Numeric.array2string(borne_sup,array_output=1,separator=','))
-             self.cr.fatal("<F> <MACR_RECAL> Erreur dans l'algorithme de bornes de MACR_RECAL")
+             UTMESS('F', "MACR_RECAL", "Erreur dans l'algorithme de bornes de MACR_RECAL")
              return 
    newval=copy.copy(val+dval)
    return newval,s,l,Act
index 00ad62d2e72f279b397c676ebf2251c6735f2fd4..0d04cc216037d79de9c3c987117f41250d779042 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF reca_interp Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF reca_interp Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -22,6 +22,7 @@ import os
 import Numeric
 import Macro
 from Macro.recal import calcul_F
+from Utilitai.Utmess     import UTMESS
 
 #===========================================================================================
 
@@ -121,12 +122,12 @@ class Sim_exp :
          try:
             L_J[i] = L_J[i]/L_J_init[i]
          except ZeroDivisionError:
+            message=        'Problème de division par zéro dans la normalisation de la fonctionnelle.\n'
+            message=message+'Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine : %.2f \n'%L_J_init
             fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
-            fic.write('\n Problème de division par zéro dans la normalisation de la fonctionnelle.')
-            fic.write('\n Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :'+ str(L_J_init))
+            fic.write(message)
             fic.close()
-            self.cr.fatal("<F> <MACR_RECAL> Problème de division par zéro dans la normalisation de la fonctionnelle.\nUne des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :"+ str(L_J_init))
-            return
+            UTMESS('F', "MACR_RECAL", message)
             
       J = Numeric.sum(L_J)
       J = J/len(L_J)
@@ -155,12 +156,12 @@ class Sim_exp :
                try:
                   L_A[j][i,k] = -1*(F_interp[j][i] - F_perturbe_interp[j][i])/h
                except ZeroDivisionError:
+                  message=        'Probleme de division par zéro dans le calcul de la matrice de sensiblité\n '
+                  message=message+'Le parametre '+para[k]+'est nul ou plus petit que la précision machine \n'
                   fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
-                  fic.write('\n Probleme de division par zéro dans le calcul de la matrice de sensiblité')
-                  fic.write('\n Le parametre '+para[k]+'est nul ou plus petit que la précision machine')
-                  fic.close() 
-                  self.cr.fatal("<F> <MACR_RECAL> Probleme de division par zéro dans le calcul de la matrice de sensiblité.\n Le parametre "+para[k]+"est nul ou plus petit que la précision machine")
-                  return
+                  fic.write(message)
+                  fic.close()
+                  UTMESS('F', "MACR_RECAL", message)
       #on construit la matrice de sensiblité sous forme d'un tab num
       dim =[]
       for i in range(len(L_A)):
index 591614c84636251a5ca1ff82ab385fd1255b072d..2e43b0883ea237ab0656b7321ad28ba1b9df93a7 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF recal Macro  DATE 14/03/2005   AUTEUR DURAND C.DURAND 
+#@ MODIF recal Macro  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 
 
 
-import string
-import copy
-import Numeric
-import types
-import Gnuplot
+import string, copy, Numeric, types
+# import Gnuplot
 import Cata
-from Cata.cata import INCLUDE,DETRUIRE
+from Cata.cata import INCLUDE, DETRUIRE, FIN, EXEC_LOGICIEL, DEFI_FICHIER, IMPR_TABLE, LIRE_TABLE, INFO_EXEC_ASTER, EXTR_TABLE
+from Utilitai.Utmess import UTMESS
 from Accas import _F
 
-import os
+import os, aster, cPickle, sys
+
+# try:
+#   import Gnuplot
+# except: pass
+
+try:
+   from Utilitai.Utmess import UTMESS
+except ImportError:
+   def UTMESS(code,sprg,texte):
+      fmt='\n <%s> <%s> %s\n\n'
+      print fmt % (code,sprg,texte)
 
 
 #_____________________________________________
@@ -39,7 +48,7 @@ import os
 #_____________________________________________
 
 
-# Transforme les donneés entrées par l'utilsateur en tableau Numeric
+# Transforme les données entrées par l'utilisateur en tableau Numeric
 def transforme_list_Num(parametres,res_exp):
    dim_para = len(parametres)  #donne le nb de parametres
    val_para = Numeric.zeros(dim_para,Numeric.Float)
@@ -157,8 +166,8 @@ def calcul_F(self,UL,para,val,reponses):
       Fichier_Resu.append('Lrep=[]'+'\n')
       for i in range(len(reponses)):
          Fichier_Resu.append('t'+str(reponses[i][0])+'='+str(reponses[i][0])+'.EXTR_TABLE()'+'\n')
-         Fichier_Resu.append('F = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n')
-         Fichier_Resu.append('Lrep.append(F)'+'\n')
+         Fichier_Resu.append('_F_ = '+'t'+str(reponses[i][0])+'.Array('+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n')
+         Fichier_Resu.append('Lrep.append(_F_)'+'\n')
       
       #ouverture du fichier fort.3 et mise a jour de celui ci
       x=open('fort.'+str(UL),'w')
@@ -178,37 +187,6 @@ def calcul_F(self,UL,para,val,reponses):
       x.close()
       return self.g_context['Lrep']
 
-#_____________________________________________
-#
-# IMPRESSIONS GRAPHIQUES
-#_____________________________________________
-
-def graphique(L_F,res_exp,reponses,iter,UL_out,interactif):
-   graphe=[]
-   impr=Gnuplot.Gnuplot()
-   Gnuplot.GnuplotOpts.prefer_inline_data=1
-   impr('set data style linespoints')
-   impr('set grid')
-   impr('set pointsize 2.')
-   impr('set terminal postscript color')
-   impr('set output "fort.'+str(UL_out)+'"')
-   for i in range(len(L_F)):
-         if interactif:
-            graphe.append(Gnuplot.Gnuplot(persist=0))
-            graphe[i]('set data style linespoints')
-            graphe[i]('set grid')
-            graphe[i]('set pointsize 2.')
-            graphe[i].xlabel(reponses[i][1])
-            graphe[i].ylabel(reponses[i][2])
-            graphe[i].title(reponses[i][0]+'  Iteration '+str(iter))
-            graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
-            graphe[i]('pause 5')
-#
-         impr.xlabel(reponses[i][1])
-         impr.ylabel(reponses[i][2])
-         impr.title(reponses[i][0]+'  Iteration '+str(iter))
-         impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
-
 
 #_____________________________________________
 #
index a38f2808061dda1868540f4e949b9dfcf35af3b6..51af193acb8f40f432ad30ea07b04e42da14781d 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF stanley_ops Macro  DATE 30/11/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF stanley_ops Macro  DATE 15/05/2006   AUTEUR ASSIRE A.ASSIRE 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -20,7 +20,7 @@
 
 
 
-def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args):
+def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args):
 
   """
      Importation et lancement de Stanley
@@ -31,19 +31,32 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args):
   from Accas import _F
   from Noyau.N_utils import AsType
   from Utilitai.Utmess import UTMESS
+  from Utilitai.UniteAster import UniteAster
 
   ier=0
 
   # La macro compte pour 1 dans la numerotation des commandes
-  self.icmd=1
+  self.set_icmd(1)
 
+  # Redefinition eventuelle du DISPLAY
+  if DISPLAY:
+    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'):
   
     import Stanley
     from Stanley import stanley
-  
+
     if (RESULTAT and MODELE and CHAM_MATER):
       _MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE    .NOMA        ' )
       _MAIL = string.strip(_MAIL[0])
@@ -53,7 +66,7 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args):
       else:
         stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None)
     else:
-      stanley.PRE_STANLEY()
+      stanley.PRE_STANLEY(FICHIER_VALID)
 
   else:
       UTMESS('A','STANLEY',
@@ -61,6 +74,11 @@ def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,**args):
                STANLEY ne pourra pas fonctionner. On l'ignore.
 
                Si vous etes en Interactif, cochez le bouton Suivi Interactif
-               dans ASTK.""")
+               dans ASTK.
+
+               Vous pouvez également préciser votre DISPLAY dans les arguments
+               de la commande STANLEY :
+
+               STANLEY(DISPLAY='adresse_ip:0.0');""")
 
   return ier
index 5f4ac116da1e79445523d4014f043450e8c6cd5a..35d34da1ae782470a49e6f73da8ef825a85b2ed7 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF test_fichier_ops Macro  DATE 03/11/2004   AUTEUR MCOURTOI M.COURTOIS 
+#@ MODIF test_fichier_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
 
+import sys
+import os.path
+import re
+from math import floor, log10
+from types import StringType
+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
      le md5sum.
    """
-   import aster
-   from Accas import _F
-   ier=0
+   ier = 0
    # La macro compte pour 1 dans la numerotation des commandes
-   #self.icmd=1
    self.set_icmd(1)
 
    # On importe les definitions des commandes a utiliser dans la macro
@@ -38,14 +42,14 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **
    DETRUIRE        = self.get_cmd('DETRUIRE')
    CREA_TABLE      = self.get_cmd('CREA_TABLE')
    TEST_TABLE      = self.get_cmd('TEST_TABLE')
-
-   import os.path
-   import re
-   from types import StringType
+   
+   import aster
+   from Accas import _F
    from Macro.test_fichier_ops import md5file
+   from Utilitai.Utmess import UTMESS
 
    # vérifie la syntaxe des expressions régulières fournies
-   l_regexp=[]
+   l_regexp = []
    if args['EXPR_IGNORE']:
       if type(args['EXPR_IGNORE']) is StringType:
          lexp = [args['EXPR_IGNORE']]
@@ -53,54 +57,51 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **
          lexp = args['EXPR_IGNORE']
       for exp in lexp:
          try:
-            obj=re.compile(exp)
+            obj = re.compile(exp)
          except re.error, s:
-            print '<F> <TEST_FICHIER> <INVALID_REGEXP> '+str(s)+' pour "'+exp+'"'
+            UTMESS('F', 'TEST_FICHIER',
+                   '<INVALID_REGEXP> %s pour %s' % (str(s), repr(exp)))
          else:
             l_regexp.append(exp)
-      if len(l_regexp) < len(lexp):
-         self.cr.fatal(' <F> <TEST_FICHIER> Expression régulière invalide (voir <INVALID_REGEXP>)')
 
-
-   is_ok=0
+   is_ok = 0
 
    # vérifier que le fichier a été fermé
    tinfo__ = INFO_EXEC_ASTER(LISTE_INFO='ETAT_UNITE', FICHIER=FICHIER)
    
-   if tinfo__['ETAT_UNITE',1].find('OUVERT')>-1:
-      print "<A> <TEST_FICHIER> LE FICHIER N'A PAS ETE FERME :\n",FICHIER
+   if tinfo__['ETAT_UNITE', 1].find('OUVERT')>-1:
+      UTMESS('A',  'TEST_FICHIER',
+             "LE FICHIER N'A PAS ETE FERME :\n%s" % FICHIER)
 
    # fichier correctement fermé
    else:
       # calcule le md5sum du fichier
       ier, mdsum = md5file(FICHIER, NB_CHIFFRE, EPSILON, l_regexp, INFO)
       if ier != 0:
-         if ier==4:
-            texte_erreur='Fichier inexistant : '+FICHIER
+         if ier == 4:
+            texte_erreur = 'Fichier inexistant : '+FICHIER
          else:
-            texte_erreur='Erreur dans md5file, code retour = '+str(ier)
-         texte_erreur='<S> <TEST_FICHIER> '+texte_erreur
+            texte_erreur = 'Erreur dans md5file, code retour = '+str(ier)
+         texte_erreur = '<S> <TEST_FICHIER> '+texte_erreur
          # aujourd'hui, je ne sais pas déclencher autre chose que <F>...
          self.cr.fatal(texte_erreur)
          return ier
 
       # comparaison a la reference
       if INFO > 0 :
-         print ' %-20s : %32s' % ('REFERENCE',VALE_K)
-         print
+         aster.affiche('MESSAGE', ' %-20s : %32s\n' % ('REFERENCE', VALE_K))
 
       if mdsum == VALE_K:
-         is_ok=1
+         is_ok = 1
 
    # produit le TEST_TABLE
-   tab1__=CREA_TABLE(LISTE=(_F(PARA='TEST',
-                               TYPE_K='K8',
-                               LISTE_K='VALEUR  ',),
-                            _F(PARA='BOOLEEN',
-                               LISTE_I=is_ok,),),)
+   tab1__ = CREA_TABLE(LISTE=(_F(PARA='TEST',
+                                 TYPE_K='K8',
+                                 LISTE_K='VALEUR  ',),
+                              _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',
@@ -110,8 +111,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',
@@ -126,7 +126,33 @@ def test_fichier_ops(self, UNITE, FICHIER, NB_CHIFFRE, EPSILON, VALE_K, INFO, **
 
 
 #-------------------------------------------------------------------------------
-def md5file(fich,nbch,epsi,regexp_ignore=[],info=0):
+def sign(x):
+   return int(x/abs(x))
+
+def _round(x, n, exp):
+   v = x * 10**(-exp+n)
+   val = int(v + sign(x)*0.4999)
+   return val
+
+def entier_ini(x, nbch, exp=None):
+   #if exp is None:
+      #exp = int(floor(log10(abs(x))))
+   val = _round(x, nbch-1, exp)
+   return val, exp-nbch+1
+
+def entier_triple(x, nbch, exp_epsi):
+   #if abs(x) <= 10**exp_epsi:
+      #return '0'
+   y = _round(x * 10**(-exp_epsi), 0, 0) * 10**exp_epsi
+   exp = int(floor(log10(abs(y))))
+   z1, e1 = entier_ini(y,           nbch+2, exp)
+   z2, e2 = entier_ini(z1 * 10**e1, nbch+1, exp)
+   z3, e3 = entier_ini(z2 * 10**e2, nbch,   exp)
+   return '%sE%d' % (z3, e3)
+
+#-------------------------------------------------------------------------------
+def md5file(fich, nbch, epsi,
+            regexp_ignore=[], info=0, output=None, format_func=entier_triple):
    """
    Cette methode retourne le md5sum d'un fichier en arrondissant les nombres
    reels a la valeur significative.
@@ -136,60 +162,116 @@ def md5file(fich,nbch,epsi,regexp_ignore=[],info=0):
       epsi          : valeur en deca de laquelle on prend 0
       regexp_ignore : liste d'expressions régulières permettant d'ignorer
          certaines lignes
+      output        : pour rediriger l'interprétation du fichier (INFO=2)
+         dans le fichier de nom `output`,
+      info          : on affiche le résumé si info>0
+      format_func   : on peut préciser une autre fonction pour formatter 
+         les réels...
    OUT :
       code retour : 0 si ok, >0 sinon
       md5sum
-   """
-   import os.path
-   import re
-   import string
-   import math
-   import md5
+   
+         NE PAS AJOUTER D'IMPORT QUI RENDRAIT CETTE FONCTION
+               INUTILISABLE EN DEHORS DE CODE_ASTER.
+   """   
+   if output != None:
+      try:
+         sys.stdout = open(output, 'w')
+      except IOError, msg:
+         print "Erreur d'écriture sur %s : %s" % (output, msg)
+   
    #      1 Mo   10 Mo   100 Mo
    # v0   2.6 s  20.4 s  196.6 s
    # v1   2.0 s  10.3 s  94.9 s (pas de distinction entier/reel)
    # remplacer le try/except par if re.search(...), 80% plus lent
+   # v2  10.7 s
    if not os.path.isfile(fich):
       return 4, ''
-   f=open(fich,'r')
-   format_float='%'+str(nbch+7)+'.'+str(nbch)+'g'
-   m=md5.new()
-   i=0
+   f = open(fich,'r')
+   m = md5.new()
+   exp_epsi = int(floor(log10(abs(epsi))))
+   i = 0
    for ligne in f:
-      i=i+1
-      if info>=2:
-         print 'LIGNE',i,
-      keep=True
+      i = i+1
+      if info >= 2:
+         print 'LIGNE', i,
+      keep = True
       for exp in regexp_ignore:
-         if re.search(exp,ligne):
-            keep=False
-            if info>=2:
+         if re.search(exp, ligne):
+            keep = False
+            if info >= 2:
                print ' >>>>>>>>>> IGNOREE <<<<<<<<<<',
             break
       if keep:
-         #r=string.split(ligne)
          # découpe des nombres collés : 1.34E-142-1.233D+09
-         r=string.split(re.sub('([0-9]+)\-','\g<1> -',ligne))
+         ligne = re.sub('([0-9]+)\-', '\g<1> -', ligne)
+         # conversion des DOUBLE fortran en 'E'
+         ligne = re.sub('([0-9]+)[dD]([\-\+]{0,1}[0-9]+)', '\g<1>E\g<2>', ligne)
+         r = ligne.split()
          for x in r:
             try:
-               if abs(float(x))<epsi:
-                  s='0'
+               xv = float(x)
+               if abs(xv)<epsi:
+                  s = '0'
                else:
-                  s=format_float % float(x)
+                  #s = format_float % float(x)
+                  s = format_func(xv, nbch, exp_epsi)
             except ValueError:
-               s=x
-            if info>=2:
+               s = x
+            if info >= 2:
                print (' %'+str(nbch+7)+'s') % s,
             m.update(s)
-      if info>=2:
+      if info >= 2:
          print
    f.close()
-   md5sum=m.hexdigest()
-   if info>=1:
-      form=' %-20s : %32s'
-      print form % ('Fichier',fich)
-      print form % ('Nombre de lignes',str(i))
-      print form % ('Format des reels',format_float)
-      print form % ('Epsilon',str(epsi))
-      print form % ('md5sum',md5sum)
+   md5sum = m.hexdigest()
+   
+   affich_resu = True
+   if info >= 1:
+      while affich_resu:
+         form = ' %-20s : %32s'
+         print form % ('Fichier', fich)
+         print form % ('Nombre de lignes', str(i))
+         #print form % ('Format des reels',format_float)
+         print form % ('Nombre de chiffres', str(nbch))
+         print form % ('Epsilon', str(epsi))
+         print form % ('md5sum', md5sum)
+         if output == None:
+            affich_resu = False
+         else:
+            sys.stdout = sys.__stdout__
+            output = None
    return 0, md5sum
+
+
+#-------------------------------------------------------------------------------
+if __name__ == '__main__':
+   from optparse import OptionParser, OptionGroup
+
+   p = OptionParser(usage='usage: %s a_tester [options]' % sys.argv[0])
+   p.add_option('-n', '--nbch',
+      action='store', dest='nbch', type='int', default=6,
+      help='nombre de chiffres significatifs')
+   p.add_option('-e', '--epsilon',
+      action='store', dest='epsi', type='float', default=1.e-14,
+      help='epsilon en dessous duquel on considère les nombres nuls')
+   p.add_option('--expr_ignore',
+      action='store', dest='exp', type='string',
+      help='expression régulière à ignorer')
+   p.add_option('-o', '--output',
+      action='store', dest='output', type='string', default='output.txt',
+      help='fichier de sortie')
+   opts, args = p.parse_args()
+
+   if len(args)<1:
+      p.print_usage()
+      sys.exit(1)
+   if opts.exp is None:
+      exp = []
+   else:
+      exp = [opts.exp]
+
+   print 'Lignes retenues dans %s' % opts.output
+   iret = md5file(args[0], opts.nbch, opts.epsi,
+                  regexp_ignore=exp, info=2, output=opts.output)
+
index 0acf34ea387b4d564596fdcfa8afdb86c8448d89..d35c1bb0dffdb11cd774671aacb65f51d359f207 100644 (file)
@@ -1,6 +1,9 @@
 import os,sys
 import prefs
 import sys
-rep_macro = os.path.join(prefs.REPINI,'Cata/cataSTA8')
+rep_macro = os.path.join(prefs.REPINI,'Cata/cataSTA81')
 sys.path.insert(0,rep_macro)
 from cata import *
+from math import ceil
+from Extensions import param2
+pi=param2.Variable('pi',pi)
index 24fbd7f487e051dc4c9ce5e5b81e04197704c70f..10543f5847eb60a6791b3fdc0acdefca7ddae845 100755 (executable)
@@ -1,4 +1,4 @@
-#& MODIF ENTETE  DATE 12/05/2005   AUTEUR DURAND C.DURAND 
+#& MODIF ENTETE  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 # -*- coding: iso-8859-1 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -22,24 +22,23 @@ 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
 import ops
 
-# pas d'import aster, Utilitai... pour ne pas gener eficas
-from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe
-
 try:
   import aster
 except:
   pass
 
-#
-__version__="$Name:  $"
-__Id__="$Id: cata_STA8.py,v 1.2 2005/06/03 10:22:14 eficas Exp $"
-#
+__version__="$Name: BR_dev_mars_06 $"
+__Id__="$Id: cata.py,v 1.3.6.3 2006/05/29 07:47:37 cchris Exp $"
+
+EnumTypes = (ListType, TupleType)
+
+# -----------------------------------------------------------------------------
 JdC = JDC_CATA(code='ASTER',
                execmodul=None,
                regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
@@ -51,16 +50,46 @@ class entier   (ASSD):
       ASSD.__init__(self,**args)
       self.valeur=valeur
 
+   def __adapt__(self,validator):
+      if validator.name == "list":
+          #validateur liste,cardinalité
+          return (self,)
+      elif validator.name == "type":
+          #validateur type
+          return validator.adapt(self.valeur or 0)
+      else:
+          #validateur into et valid
+          return self
+
+class reel(ASSD):
+   def __init__(self,valeur=None,**args):
+      ASSD.__init__(self,**args)
+      self.valeur=valeur
+
+   def __call__(self):
+      return self.valeur
+
+   def __adapt__(self,validator):
+      if validator.name == "list":
+          #validateur liste,cardinalité
+          return (self,)
+      elif validator.name == "type":
+          #validateur type
+          return validator.adapt(self.valeur or 0.)
+      else:
+          #validateur into et valid
+          return self
+
+
+# -----------------------------------------------------------------------------
 # 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 +106,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 +116,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')
@@ -102,55 +132,89 @@ class modele_gene     (ASSD):
     return [([ssno[ind], ssme[ind+1]]) for ind in range(len(ssno))]
   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), ...] """    
+        [ (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'
-    nombase=aster.getvectjev(ncham+(19-len(ncham))*' '+'.REFE')[0]
+    nombase=aster.getvectjev(ncham+'_REFE')[0]
     nbmode=Numeric.array(aster.getvectjev(nombase[0:8]+(19-len(nombase[0:8]))*' '+'.UTIL'))
     nbmodtot=nbmode[1]
     nbmoddyn=nbmode[2]
     nbmodint=nbmode[3]
     return [nbmodtot,nbmoddyn,nbmodint]
-    
+
   def EXTR_MATR_GENE(self,typmat) :
-    """ retourne les valeurs des matrices generalisees reelles 
+    """ retourne les valeurs des matrices generalisees reelles
     dans un format Numerical Array
         typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
         typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
         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') :
-       ext='.MAEL.MASS '
-    elif (typmat=='RIGI_GENE') :   
-       ext='.MAEL.RAID '
-    elif (typmat=='AMOR_GENE') :   
-       ext='.MAEL.AMOR '
+       ext='.MAEL_MASS'
+    elif (typmat=='RIGI_GENE') :
+       ext='.MAEL_RAID'
+    elif (typmat=='AMOR_GENE') :
+       ext='.MAEL_AMOR'
     else:
        raise Accas.AsException("Le type de la matrice est incorrect")
     ncham=nommacr+(8-len(nommacr))*' '+ext
-    desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
+    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")
 
-    tmp=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'))
+    tmp=Numeric.array(aster.getvectjev(ncham+'_VALE'))
     matrice=Numeric.zeros([desc[1],desc[1]],Numeric.Float)
     for j in range(desc[1]+1):
       for i in range(j):
@@ -158,46 +222,48 @@ class macr_elem_dyna  (ASSD):
         matrice[j-1,i]=tmp[k]
     matrice=(matrice+Numeric.transpose(matrice))
     for i in range(desc[1]):
-      matrice[i,i]=0.5*matrice[i,i]        
+      matrice[i,i]=0.5*matrice[i,i]
     return matrice
 
   def RECU_MATR_GENE(self,typmat,matrice) :
-    """ envoie les valeurs d'un Numerical Array dans des matrices generalisees 
+    """ envoie les valeurs d'un Numerical Array dans des matrices generalisees
     reelles definies dans jeveux
         typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
         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()
     if (typmat=='MASS_GENE') :
-       ext='.MAEL.MASS '
-    elif (typmat=='RIGI_GENE') :   
-       ext='.MAEL.RAID '
-    elif (typmat=='AMOR_GENE') :   
-       ext='.MAEL.AMOR '
+       ext='.MAEL_MASS'
+    elif (typmat=='RIGI_GENE') :
+       ext='.MAEL_RAID'
+    elif (typmat=='AMOR_GENE') :
+       ext='.MAEL_AMOR'
     else:
        raise Accas.AsException("Le type de la matrice \
                                 est incorrect")
     ncham=nommacr+(8-len(nommacr))*' '+ext
-    desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
+    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
-    if (len(Numeric.shape(matrice))<>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")
@@ -207,27 +273,32 @@ class macr_elem_dyna  (ASSD):
       for i in range(j):
         k=j*(j-1)/2+i
         tmp[k]=matrice[j-1,i]
-    aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmp),tuple((
+    aster.putvectjev(ncham+'_VALE',len(tmp),tuple((
     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
@@ -240,76 +311,48 @@ 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_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_r   (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
-        de groupes de mailles lgma avec eventuellement l'info de la 
+      """ 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
         Attributs retourne
@@ -318,139 +361,92 @@ 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 """
-    
-  
-    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)
-    
-    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
-    
-    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_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 :
-#--------------------------------
-class cham_no_sdaster(cham_gd_sdaster):  
+      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))*' '
+
+      aster.prepcompcham(ncham,nchams,ncmp,"EL      ",topo,lgma)
+
+      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
+
+      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
-        de groupes de noeuds lgno avec eventuellement l'info de la 
+      """ 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
         Attributs retourne
           - self.valeurs : Numeric.array contenant les valeurs
         Si on a demande la topo (i.e. self.topo = 1) :
           - self.noeud  : numero de noeud """
-    
-  
-    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)
-    
-    valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
-    
-    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_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_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_r   (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
+      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))*' '
 
-# resultat_sdaster : (evol_sdaster,mode_stat,mode_meca)
-#--------------------------------------
+      aster.prepcompcham(ncham,nchams,ncmp,"NO      ",topo,lgno)
+
+      valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
+
+      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)
 
+# -----------------------------------------------------------------------------
+# 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
@@ -465,8 +461,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
@@ -474,22 +470,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):
@@ -498,7 +494,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'],
@@ -506,36 +515,32 @@ 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'):
       """
       Retourne un objet de la classe t_fonction
       représentation python de la fonction
       """
+      from Utilitai.t_fonction import t_fonction,t_fonction_c
       if arg=='real' :
         return t_fonction(self.Absc(),
                           self.Ordo(),
@@ -548,7 +553,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)
@@ -558,12 +573,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]
@@ -573,17 +583,21 @@ 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'):
       """
       Retourne un objet de la classe t_fonction ou t_fonction_c,
       représentation python de la fonction complexe
       """
+      from Utilitai.t_fonction import t_fonction,t_fonction_c
       if arg=='real' :
         return t_fonction(self.Absc(),
                           self.Ordo(),
@@ -611,16 +625,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=[]
@@ -629,6 +639,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]
@@ -640,6 +659,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(),
@@ -648,16 +669,18 @@ 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):
       """
       Retourne un objet de la classe t_nappe, représentation python de la nappe
       """
+      from Utilitai.t_fonction import t_fonction,t_nappe
       para=self.Parametres()
       vale=self.Valeurs()
       l_fonc=[]
@@ -679,10 +702,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]
@@ -696,8 +723,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]),
@@ -721,6 +753,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]
@@ -729,28 +763,30 @@ 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
 
 class matr_asse_gene_r(matr_asse_gene):
   def EXTR_MATR_GENE(self) :
-    """ retourne les valeurs de la matrice generalisee reelle 
+    """ retourne les valeurs de la matrice generalisee reelle
     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):
@@ -758,46 +794,48 @@ class matr_asse_gene_r(matr_asse_gene):
           valeur[j-1,i]=tmp[k]
       valeur=(valeur+Numeric.transpose(valeur))
       for i in range(desc[1]):
-        valeur[i,i]=0.5*valeur[i,i]        
-# Si le stockage est diagonal
-    elif desc[2]==1 :      
-      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1])
+        valeur[i,i]=0.5*valeur[i,i]
+    # Si le stockage est diagonal
+    elif desc[2]==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
 
   def RECU_MATR_GENE(self,matrice) :
-    """ envoie les valeurs d'un Numerical Array dans des matrices 
+    """ 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)
@@ -805,27 +843,29 @@ 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((\
-      range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)        
-# Si le stockage est diagonal
-    elif desc[2]==1 :      
+      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
+    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((\
-      range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)        
-# Sinon on arrete tout
+      aster.putcolljev(ncham+(19-len(ncham))*' '+'.VALM',len(tmp),tuple((\
+      range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
+    # Sinon on arrete tout
     else:
       raise KeyError
     return
 
-    
+
 class matr_asse_gene_c(matr_asse_gene):
   def EXTR_MATR_GENE(self) :
-    """ retourne les valeurs de la matrice generalisee complexe 
+    """ retourne les valeurs de la matrice generalisee complexe
     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))*' '
@@ -833,9 +873,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):
@@ -843,25 +883,27 @@ class matr_asse_gene_c(matr_asse_gene):
           valeur[j-1,i]=tmp[k]
       valeur=(valeur+Numeric.transpose(valeur))
       for i in range(desc[1]):
-        valeur[i,i]=0.5*valeur[i,i]        
-# Si le stockage est diagonal
-    elif desc[2]==1 :      
-      tmp=Numeric.array(aster.getcolljev(ncham+(19-len(ncham))*' '+'.VALE')[1])
+        valeur[i,i]=0.5*valeur[i,i]
+    # Si le stockage est diagonal
+    elif desc[2]==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
 
   def RECU_MATR_GENE(self,matrice) :
-    """ envoie les valeurs d'un Numerical Array dans des matrices 
+    """ 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)
@@ -869,21 +911,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)
@@ -893,23 +935,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((\
-                       range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)        
-# Si le stockage est diagonal
-    elif desc[2]==1 :      
+      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
+    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((\
-                       range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1) 
-# Sinon on arrete tout
+      aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALM',len(tmpr),tuple((\
+                       range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
+    # 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
@@ -918,41 +960,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={}
@@ -972,100 +1043,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) :
-    """ retourne les valeurs du vecteur generalisee 
+
+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) :
-    """ envoie les valeurs d'un Numerical Array dans un vecteur generalise 
+  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)        
+    range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1)
     return
 
-
-class vect_asse_gene_c(vect_asse_gene):
-  def EXTR_VECT_GENE(self) :
-    """ retourne les valeurs du vecteur generalisee 
+  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))*' '
@@ -1073,43 +1109,45 @@ class vect_asse_gene_c(vect_asse_gene):
 
     return valeur
 
-  def RECU_VECT_GENE(self,vecteur) :
-    """ envoie les valeurs d'un Numerical Array dans un vecteur generalise 
+  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
     tmpc=vecteur.imag
     aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(tmpr),tuple((
-    range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)        
+    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 26/04/2005   AUTEUR LAVERNE J.LAVERNE 
+#& 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  
@@ -1129,6 +1167,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",
@@ -1171,8 +1210,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",
@@ -1189,6 +1229,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",
@@ -1197,6 +1238,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "NADAI_B",
                                         "DIS_CONTACT",
                                         "DIS_CHOC",
+                                        "DIS_GRICRA",
                                         "DIS_GOUJ2E_PLAS",
                                         "DIS_GOUJ2E_ELAS",
                                         "GRILLE_ISOT_LINE",
@@ -1208,7 +1250,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "BARCELONE",
                                         "LAIGLE",
                                         "DRUCKER_PRAGER",
-                                        "OHNO",
+                                        "HOEK_BROWN",
+                                        "HOEK_BROWN_EFF",
+                                        "HOEK_BROWN_TOT",
                                         "GRANGER_FP",
                                         "GRANGER_FP_INDT",
                                         "GRANGER_FP_V",
@@ -1222,10 +1266,7 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                         "KIT_THM",
                                         "KIT_THHM",
                                         "VMIS_ASYM_LINE",
-                                        "ELAS_THM",
-                                        "SURF_ETAT_NSAT",
-                                        "SURF_ETAT_SATU",
-                                        "CAM_CLAY_THM",
+                                        "ELAS_THER",
                                         "KIT_DDI",
                                         "GLRC",
                                         "SANS",
@@ -1236,6 +1277,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,)),
@@ -1279,8 +1321,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,)),
@@ -1292,11 +1335,12 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
           ROUSS_VISC      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
           VMIS_POU_LINE   =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
           VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)),
-          ASSE_CORN       =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
+          ASSE_CORN       =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
           ARME            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           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,)),
@@ -1309,6 +1353,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=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,)),
@@ -1317,7 +1362,9 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
           BARCELONE       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
           LAIGLE          =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           DRUCKER_PRAGER  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-          OHNO            =SIMP(statut='c',typ='I',defaut=32,into=(32,)),
+          HOEK_BROWN      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
+          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,)),
@@ -1358,21 +1405,18 @@ def C_COMP_INCR() : return FACT(statut='f',min=1,max='**',  #COMMUN#
                                        "BARCELONE",
                                        "LAIGLE",
                                        "DRUCKER_PRAGER",
-                                       "ELAS_THM",
-                                       "SURF_ETAT_NSAT",
-                                       "SURF_ETAT_SATU",
-                                       "CAM_CLAY_THM",
+                                       "HOEK_BROWN_EFF",
+                                       "HOEK_BROWN_TOT",
+                                       "ELAS_THER",
                                        "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",
@@ -1390,25 +1434,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,)),
@@ -1416,15 +1453,21 @@ 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'),),
            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")),
          ) ;
-#& MODIF COMMUN  DATE 08/02/2005   AUTEUR CIBHHPD L.SALMONA 
+#& 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
@@ -1513,13 +1556,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",
-                        "ERTH_ELEM_TEMP",
-                        "ERTH_ELNO_ELEM",
+                        "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",
                         "ETOT_ELEM",
                         "ETOT_ELGA",
                         "ETOT_ELNO_ELGA",
@@ -1535,7 +1583,6 @@ def C_NOM_CHAM_INTO() : return  ("ACCE",    #COMMUN#
                         "FVOL_2D",
                         "FVOL_3D",
                         "GRAD_NOEU_THETA",
-                        "HYDR_ELGA",
                         "HYDR_ELNO_ELGA",
                         "HYDR_NOEU_ELGA",
                         "INDI_LOCA_ELGA",
@@ -1608,7 +1655,34 @@ def C_NOM_CHAM_INTO() : return  ("ACCE",    #COMMUN#
                         "VITE_ABSOLU",
                         "VITE_VENT",
                         )
-#& MODIF COMMUN  DATE 16/06/2004   AUTEUR DURAND C.DURAND 
+#& 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
@@ -1631,11 +1705,12 @@ 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",)
-#& MODIF COMMUN  DATE 03/11/2004   AUTEUR CIBHHPD L.SALMONA 
+                   "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 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# 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     
@@ -1650,39 +1725,135 @@ def C_PARA_FONCTION() : return  ( #COMMUN#
 # 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
-# c'est a dire les noms des types de champ des SD RESULTAT (DATA de la routine RSCRSD)
-def C_TYPE_CHAM_INTO() : return  ("ACCE",    #COMMUN#
-             "CART_CORR_R",
-                             "NOEU_DBEL_R",  "ELEM_DBEL_R",  "ELNO_DBEL_R",  "ELGA_DBEL_R",
-                             "NOEU_DEPL_C",  "ELEM_DEPL_C",  "ELNO_DEPL_C",  "ELGA_DEPL_C",
-             "CART_DEPL_F",  "NOEU_DEPL_F",  "ELEM_DEPL_F",  "ELNO_DEPL_F",  "ELGA_DEPL_F",
-             "CART_DEPL_R",  "NOEU_DEPL_R",  "ELEM_DEPL_R",  "ELNO_DEPL_R",  "ELGA_DEPL_R",
-                             "NOEU_DURT_R",  "ELEM_DURT_R",  "ELNO_DURT_R",  "ELGA_DURT_R",
-             "CART_ENER_R",  "NOEU_ENER_R",  "ELEM_ENER_R",  "ELNO_ENER_R",  "ELGA_ENER_R",
-                             "NOEU_EPSI_R",  "ELEM_EPSI_R",  "ELNO_EPSI_R",  "ELGA_EPSI_R",
-                             "NOEU_ERREUR",  "ELEM_ERREUR",  "ELNO_ERREUR",  "ELGA_ERREUR",
-                             "NOEU_FLUX_R",  "ELEM_FLUX_R",  "ELNO_FLUX_R",  "ELGA_FLUX_R",
-             "CART_GEOM_R",  "NOEU_GEOM_R",  "ELEM_GEOM_R",  "ELNO_GEOM_R",  "ELGA_GEOM_R",
-                             "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R","ELGA_G_DEPL_R",
-                             "NOEU_HYDR_R",  "ELEM_HYDR_R",  "ELNO_HYDR_R",  "ELGA_HYDR_R",
-                             "NOEU_INST_R",  "ELEM_INST_R",  "ELNO_INST_R",  "ELGA_INST_R",
-                             "NOEU_INTE_R",  "ELEM_INTE_R",  "ELNO_INTE_R",  "ELGA_INTE_R",
-             "CART_IRRA_R",  "NOEU_IRRA_R",  "ELEM_IRRA_R",  "ELNO_IRRA_R",  "ELGA_IRRA_R",
-                             "NOEU_META_R",  "ELEM_META_R",  "ELNO_META_R",  "ELGA_META_R",
-                             "NOEU_NEUT_F",  "ELEM_NEUT_F",  "ELNO_NEUT_F",  "ELGA_NEUT_F",
-             "CART_NEUT_R",  "NOEU_NEUT_R",  "ELEM_NEUT_R",  "ELNO_NEUT_R",  "ELGA_NEUT_R",
-                             "NOEU_PRES_R",  "ELEM_PRES_R",  "ELNO_PRES_R",  "ELGA_PRES_R",
-             "CART_SIEF_R",  "NOEU_SIEF_R",  "ELEM_SIEF_R",  "ELNO_SIEF_R",  "ELGA_SIEF_R",
-                             "NOEU_SOUR_R",  "ELEM_SOUR_R",  "ELNO_SOUR_R",  "ELGA_SOUR_R",
-             "CART_TEMP_F",  "NOEU_TEMP_F",  "ELEM_SPMA_R",  "ELNO_TEMP_F",  "ELGA_TEMP_F",
-             "CART_TEMP_R",  "NOEU_TEMP_R",  "ELEM_TEMP_F",  "ELNO_TEMP_R",  "ELGA_TEMP_R",
-             "CART_VAR2_R",  "NOEU_VAR2_R",  "ELEM_TEMP_R",  "ELNO_VARI_R",  "ELGA_VARI_R",
-                             "NOEU_VNOR_C",  "ELEM_VARI_R",  "ELNO_VNOR_C",  "ELGA_VNOR_C",
-                                             "ELEM_VNOR_C",
+# ce fichier contient la liste des  noms des grandeurs de CODE_ASTER
+def C_NOM_GRANDEUR() : return  ( #COMMUN# 
+"ABSC_R",
+"ADRSJEVE",
+"ADRSJEVN",
+"CAARPO",
+"CACABL",
+"CACOQU",
+"CADISA",
+"CADISK",
+"CADISM",
+"CAFI_R",
+"CAGEBA",
+"CAGEPO",
+"CAGNBA",
+"CAGNPO",
+"CAMASS",
+"CAORIE",
+"CAPOUF",
+"CARCRI",
+"CASECT",
+"CHLI_R",
+"CODE_I",
+"COEH_F",
+"COEH_R",
+"COMPOR",
+"CORR_R",
+"CRRU_R",
+"DBEL_R",
+"DCEL_I",
+"DDLI_C",
+"DDLI_F",
+"DDLI_R",
+"DDLM_C",
+"DDLM_R",
+"DEPL_C",
+"DEPL_F",
+"DEPL_R",
+"DOMMAG",
+"DURT_R",
+"ENER_R",
+"EPSI_F",
+"EPSI_R",
+"ERREUR",
+"FACY_R",
+"FELECR",
+"FISS_R",
+"FLAPLA",
+"FLUN_F",
+"FLUN_R",
+"FLUX_F",
+"FLUX_R",
+"FORC_C",
+"FORC_F",
+"FORC_R",
+"FREQ_R",
+"FTHM_F",
+"FTHM_R",
+"G",
+"GEOM_R",
+"G_DEPL_R",
+"HARMON",
+"HYDR_R",
+"IMPE_C",
+"IMPE_F",
+"IMPE_R",
+"IND_LOCA",
+"INFC_R",
+"INST_R",
+"INTE_R",
+"INTLOC",
+"IRRA_R",
+"ITECREL",
+"ITEDEC",
+"J",
+"LISTMA",
+"MACOMP",
+"MASS_R",
+"MATE_F",
+"NBSP_I",
+"NEUT_F",
+"NEUT_I",
+"NEUT_K16",
+"NEUT_K24",
+"NEUT_K8",
+"NEUT_R",
+"NUMC_I",
+"NUMMOD",
+"ONDE_F",
+"ONDE_R",
+"PESA_R",
+"PILO_K",
+"PILO_R",
+"POSI",
+"PREC",
+"PRES_C",
+"PRES_F",
+"PRES_R",
+"RAYO_F",
+"RAYO_R",
+"RCCM_K",
+"RCCM_R",
+"RESCREL",
+"RICE_TRA",
+"ROTA_R",
+"SECTION",
+"SIEF_C",
+"SIEF_R",
+"SIZZ_R",
+"SOUR_F",
+"SOUR_R",
+"SPMA_R",
+"STAOUDYN",
+"TEMP_C",
+"TEMP_F",
+"TEMP_R",
+"THETA",
+"VALO_R",
+"VANL_R",
+"VAR2_R",
+"VARI_R",
+"VENTCX_F",
+"VNOR_C",
+"VNOR_F",
+"VOISIN",
+"WEIBULL",
+"XCONTAC",
                                  )
-#& 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
@@ -1706,7 +1877,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") ),
@@ -1829,11 +2000,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,
@@ -1847,50 +2013,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,
@@ -1904,40 +2123,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),),
          ),
 
@@ -2061,21 +2338,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'),
@@ -2171,7 +2433,7 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
            DDL             =SIMP(statut='o',typ='TXM',max='**'),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 28/01/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 05/09/2005   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2197,7 +2459,7 @@ def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
   raise AsException("type de concept resultat non prevu")
 
 AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
-                    ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
+                    ,fr="Affectation de conditions aux limites cinématiques constantes pour un traitement sans dualisation",
                      reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'),
@@ -2207,22 +2469,82 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
          MECA_IMPO       =FACT(statut='f',max='**',
            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
-                   AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),),
-           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='**'),
-           DX              =SIMP(statut='f',typ='R' ),
-           DY              =SIMP(statut='f',typ='R' ),
-           DZ              =SIMP(statut='f',typ='R' ),
-           DRX             =SIMP(statut='f',typ='R' ),
-           DRY             =SIMP(statut='f',typ='R' ),
-           DRZ             =SIMP(statut='f',typ='R' ),
-           GRX             =SIMP(statut='f',typ='R' ),
-           PRES            =SIMP(statut='f',typ='R' ),
-           TEMP            =SIMP(statut='f',typ='R' ),
-           PHI             =SIMP(statut='f',typ='R' ),
+                   AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
+                               'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
+                               'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
+                               'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
+                               'VO6','WI6','WO6','WO','WI1','WO1','GONF','DCX','DCY','DCZ',
+                               'H1X','H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
+                               'E3X','E3Y','E3Z','E4X','E4Y','E4Z'),),
+             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='**'),
+             DX              =SIMP(statut='f',typ='R' ),
+             DY              =SIMP(statut='f',typ='R' ),
+             DZ              =SIMP(statut='f',typ='R' ),
+             DRX             =SIMP(statut='f',typ='R' ),
+             DRY             =SIMP(statut='f',typ='R' ),
+             DRZ             =SIMP(statut='f',typ='R' ),
+             GRX             =SIMP(statut='f',typ='R' ),
+             PRES            =SIMP(statut='f',typ='R' ),
+             PHI             =SIMP(statut='f',typ='R' ),
+             TEMP            =SIMP(statut='f',typ='R' ),
+             PRE1            =SIMP(statut='f',typ='R' ),
+             PRE2            =SIMP(statut='f',typ='R' ),
+             UI2             =SIMP(statut='f',typ='R' ),
+             UI3             =SIMP(statut='f',typ='R' ),
+             UI4             =SIMP(statut='f',typ='R' ),
+             UI5             =SIMP(statut='f',typ='R' ),
+             UI6             =SIMP(statut='f',typ='R' ),
+             UO2             =SIMP(statut='f',typ='R' ),
+             UO3             =SIMP(statut='f',typ='R' ),
+             UO4             =SIMP(statut='f',typ='R' ),
+             UO5             =SIMP(statut='f',typ='R' ),
+             UO6             =SIMP(statut='f',typ='R' ),
+             VI2             =SIMP(statut='f',typ='R' ),
+             VI3             =SIMP(statut='f',typ='R' ),
+             VI4             =SIMP(statut='f',typ='R' ),
+             VI5             =SIMP(statut='f',typ='R' ),
+             VI6             =SIMP(statut='f',typ='R' ),
+             VO2             =SIMP(statut='f',typ='R' ),
+             VO3             =SIMP(statut='f',typ='R' ),
+             VO4             =SIMP(statut='f',typ='R' ),
+             VO5             =SIMP(statut='f',typ='R' ),
+             VO6             =SIMP(statut='f',typ='R' ),
+             WI2             =SIMP(statut='f',typ='R' ),
+             WI3             =SIMP(statut='f',typ='R' ),
+             WI4             =SIMP(statut='f',typ='R' ),
+             WI5             =SIMP(statut='f',typ='R' ),
+             WI6             =SIMP(statut='f',typ='R' ),
+             WO2             =SIMP(statut='f',typ='R' ),
+             WO3             =SIMP(statut='f',typ='R' ),
+             WO4             =SIMP(statut='f',typ='R' ),
+             WO5             =SIMP(statut='f',typ='R' ),
+             WO6             =SIMP(statut='f',typ='R' ),
+             WO              =SIMP(statut='f',typ='R' ),
+             WI1             =SIMP(statut='f',typ='R' ),
+             WO1             =SIMP(statut='f',typ='R' ),
+             GONF            =SIMP(statut='f',typ='R' ),
+             DCX             =SIMP(statut='f',typ='R' ),
+             DCY             =SIMP(statut='f',typ='R' ),
+             DCZ             =SIMP(statut='f',typ='R' ),
+             H1X             =SIMP(statut='f',typ='R' ),
+             H1Y             =SIMP(statut='f',typ='R' ),
+             H1Z             =SIMP(statut='f',typ='R' ),                  
+             E1X             =SIMP(statut='f',typ='R' ),
+             E1Y             =SIMP(statut='f',typ='R' ),
+             E1Z             =SIMP(statut='f',typ='R' ),      
+             E2X             =SIMP(statut='f',typ='R' ),
+             E2Y             =SIMP(statut='f',typ='R' ),
+             E2Z             =SIMP(statut='f',typ='R' ),      
+             E3X             =SIMP(statut='f',typ='R' ),
+             E3Y             =SIMP(statut='f',typ='R' ),
+             E3Z             =SIMP(statut='f',typ='R' ),      
+             E4X             =SIMP(statut='f',typ='R' ),
+             E4Y             =SIMP(statut='f',typ='R' ),
+             E4Z             =SIMP(statut='f',typ='R' ),      
          ),
          THER_IMPO       =FACT(statut='f',max='**',
            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
@@ -2247,7 +2569,7 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 28/01/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 05/09/2005   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2270,8 +2592,9 @@ def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
   if THER_IMPO != None  : return char_cine_ther
   raise AsException("type de concept resultat non prevu")
 
-AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod
-                    ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
+AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod,
+                      fr="Affectation de conditions aux limites cinématiques fonction d'un (ou plusieurs) paramètres"
+                        +" pour un traitement sans dualisation",
                      reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'),
@@ -2310,7 +2633,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/05/2005   AUTEUR MABBAS M.ABBAS 
+#& 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
@@ -2329,9 +2652,8 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_pr
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
-
-AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
-                    ,fr="Affectation de charges et conditions aux limites mécaniques constantes",
+AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca,
+                    fr="Affectation de charges et conditions aux limites mécaniques constantes",
                      reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','CHAMNO_IMPO','LIAISON_DDL','LIAISON_XFEM','FORCE_NODALE',
@@ -2340,27 +2662,22 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
                              'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE',
                              'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT',
                              'LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP',
-                             'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE',
+                             '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'),
-                 EXCLUS('PRES_CALCULEE','EVOL_CHAR'),),
-         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+                             '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 ),
-#    A TERME PRES_CALCULEE N'EXISTERA PLUS
          EVOL_CHAR       =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
                                typ=evol_char ),
-         PRES_CALCULEE   =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
-                               typ=evol_char ),
 
          PESANTEUR       =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=4,max=4),
          ROTATION        =SIMP(statut='f',typ='R',fr="Champ de rotation", min=4,max=4),
@@ -2368,12 +2685,15 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            CENTRE          =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=3),),
 
          DDL_IMPO        =FACT(statut='f',max='**',
+             fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
                                  'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
                                  'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
                                  'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
-                                 'VO6','WI6','WO6','WO','WI1','WO1','GONF','LIAISON'),),
+                                 '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','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='**'),
@@ -2426,11 +2746,31 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
              WI1             =SIMP(statut='f',typ='R' ),
              WO1             =SIMP(statut='f',typ='R' ),
              GONF            =SIMP(statut='f',typ='R' ),
+             DCX             =SIMP(statut='f',typ='R' ),
+             DCY             =SIMP(statut='f',typ='R' ),
+             DCZ             =SIMP(statut='f',typ='R' ),
+             H1X             =SIMP(statut='f',typ='R' ),
+             H1Y             =SIMP(statut='f',typ='R' ),
+             H1Z             =SIMP(statut='f',typ='R' ),                  
+             E1X             =SIMP(statut='f',typ='R' ),
+             E1Y             =SIMP(statut='f',typ='R' ),
+             E1Z             =SIMP(statut='f',typ='R' ),      
+             E2X             =SIMP(statut='f',typ='R' ),
+             E2Y             =SIMP(statut='f',typ='R' ),
+             E2Z             =SIMP(statut='f',typ='R' ),      
+             E3X             =SIMP(statut='f',typ='R' ),
+             E3Y             =SIMP(statut='f',typ='R' ),
+             E3Z             =SIMP(statut='f',typ='R' ),      
+             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' ),
            ),
 
 
 
          DDL_POUTRE    =FACT(statut='f',max='**',
+             fr="Bloque des DDLs dans un repère local d'une poutre",
              regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ'),
                      UN_PARMI('VECT_Y','ANGL_VRIL'),),
@@ -2453,6 +2793,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
 
            FACE_IMPO       =FACT(statut='f',max='**',
+             fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)",
              regles=(UN_PARMI('GROUP_MA','MAILLE',),
                      AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
                                  'TEMP','PRE1','PRE2','DNOR','DTAN'),
@@ -2471,6 +2812,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' ),
@@ -2488,7 +2831,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          CHAMNO_IMPO  =FACT(statut='f',max='**',
-                               fr="imposer des ddls aux valeurs d'un concept cham_no_sdaster",
+             fr="Impose des DDLs aux valeurs d'un concept cham_no_sdaster",
 #  type de cham_no_sdaster CO()
              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
              COEF_MULT       =SIMP(statut='o',typ='R' ),
@@ -2497,7 +2840,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
 
            LIAISON_DDL     =FACT(statut='f',max='**',
-                                 fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
+             fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds",
              regles=(UN_PARMI('GROUP_NO','NOEUD'),),
              GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
              NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
@@ -2507,7 +2850,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
            LIAISON_OBLIQUE =FACT(statut='f',max='**',
-                                 fr="Appliquer à des noeuds une valeur de déplacement dans un repere oblique",
+             fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante"
+              +" dans un repère oblique quelconque",
              regles=(UN_PARMI('GROUP_NO','NOEUD'),
                      UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -2522,7 +2866,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
            LIAISON_GROUP   =FACT(statut='f',max='**',
-                                 fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
+             fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds",
              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
                      UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
                      EXCLUS('GROUP_MA_1','GROUP_NO_2'),
@@ -2558,6 +2902,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
            LIAISON_MAIL    =FACT(statut='f',max='**',
+             fr="Définit des relations linéaires permettant de recoller deux bords d'une structure",
              regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
@@ -2576,6 +2921,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
          ),
 
            LIAISON_CYCL    =FACT(statut='f',max='**',
+             fr="Définit des relations linéaires permettant de recoller les bords de deux parties symétriquement cycliques",
              regles=(AU_MOINS_UN('GROUP_MA_MAIT1','MAILLE_MAIT1'),
                      AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
                      PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),
@@ -2599,7 +2945,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
          ),
 
 
-           LIAISON_SOLIDE  =FACT(statut='f',fr="Modéliser une partie indéformable d'une structure",max='**',
+           LIAISON_SOLIDE  =FACT(statut='f',fr="Modélise une partie indéformable d'une structure",max='**',
              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
@@ -2608,7 +2954,9 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
              NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
            ),
 
-           LIAISON_ELEM    =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque",max='**',
+           LIAISON_ELEM    =FACT(statut='f',max='**',
+             fr="Modélise le raccord d'une partie massive 3D avec une poutre ou avec un tuyau, le raccord d'une coque"
+              +" avec une poutre ou avec un tuyau",
              regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
                      UN_PARMI('GROUP_NO_2','NOEUD_2'),),
              OPTION          =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ),
@@ -2623,7 +2971,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
            LIAISON_UNIF    =FACT(statut='f',max='**',
-                                 fr="Imposer une meme valeur (inconnue) à des ddls d'un emsemble de noeuds",
+             fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
              regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
@@ -2633,7 +2981,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          LIAISON_CHAMNO  =FACT(statut='f',max='**',
-                               fr="définir une relation linéaire entre tous les ddls d'un concept cham_no_sdaster",
+             fr="Définit une relation linéaire entre tous les DDLs présents dans un concept CHAM_NO",
 #  type de cham_no_sdaster CO()
              CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster), #CO()
              COEF_IMPO       =SIMP(statut='o',typ='R' ),
@@ -2642,26 +2990,61 @@ 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 ),
-
-         CONTACT         =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",max='**',
-           regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
-           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
-                                 into=("NON","NODAL","MAIT_ESCL","MAIT_ESCL_SYME")),
+         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'),),
+           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
+                                 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=("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",
@@ -2671,7 +3054,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' ",
@@ -2687,7 +3070,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 ),
@@ -2695,20 +3077,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='**'),
@@ -2716,7 +3092,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'),
 
@@ -2727,7 +3103,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 ),
@@ -2736,27 +3111,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),
@@ -2769,7 +3143,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 ),
@@ -2778,18 +3151,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='**'),
@@ -2797,7 +3164,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',),
@@ -2808,24 +3177,88 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
            b_continue      =BLOC(condition = "METHODE == 'CONTINUE' ",
                                  fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
+#                regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),),
                 NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")),
+                GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
+                                      into=("OUI","NON")),
+                b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",                    
+                      ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
+                                 ),
                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
-                INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")),
+                COMPLIANCE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
+                INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
+                                                                                                "NCOTES","NCOTES1","NCOTES2")),
                 COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
                 MODL_AXIS       =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
                 FORMULATION     =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")),
                 DIRE_APPA       =SIMP(statut='f',typ='R',max=3,defaut=(0.,0.,0.,)),
                 ITER_GEOM_MAXI  =SIMP(statut='f',typ='I',defaut=2),
                 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',),
+                     E_N             =SIMP(statut='o',typ='R',),
+                     E_V             =SIMP(statut='f',typ='R',defaut=0.E+0),),
                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
                      COULOMB         =SIMP(statut='o',typ='R',),
+                     SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                     SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                     VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                     VECT_Z          =SIMP(statut='f',typ='R',min=3,max=3),
                      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="Imposer des forces nodales en des noeuds",max='**',
+         FORCE_NODALE    =FACT(statut='f',fr="Applique à des noeuds des forces nodales",max='**',
            regles=(AU_MOINS_UN('GROUP_NO','NOEUD'),
                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -2840,7 +3273,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
          ),
 
          FORCE_FACE      =FACT(statut='f',max='**',
-                               fr="Appliquer des forces surfaciques sur une face d'éléments volumiques",
+             fr="Applique des forces surfaciques sur une face d'élément volumique",
              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
                      AU_MOINS_UN('FX','FY','FZ'),),
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -2851,7 +3284,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          FORCE_ARETE     =FACT(statut='f',max='**',
-                               fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",
+         fr="Applique des forces linéiques à une arete d'élément volumique ou de coque",
              regles=(AU_MOINS_UN('GROUP_MA','MAILLE',),
                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -2865,7 +3298,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          FORCE_CONTOUR   =FACT(statut='f',max='**',
-                               fr="Appliquer des forces linéiques au bord d'un domaine 2D ou AXIS_FOURIER",
+             fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER",
              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -2879,7 +3312,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          FORCE_INTERNE   =FACT(statut='f',max='**',
-                               fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",
+             fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                      AU_MOINS_UN('FX','FY','FZ' ),),
@@ -2892,7 +3325,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          PRES_REP        =FACT(statut='f',max='**',
-                               fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",
+             fr="Applique une pression à un domaine de milieu continu 2D ou 3D, ou à un domaine de coques et tuyaux",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                      AU_MOINS_UN('PRES','CISA_2D' ),),
@@ -2903,7 +3336,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
              CISA_2D         =SIMP(statut='f',typ='R' ),
            ),
 
-         EFFE_FOND       =FACT(statut='f',fr="Imposer un effet de fond",max='**',
+         EFFE_FOND       =FACT(statut='f',max='**',
+           fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise à une pression",
            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -2912,7 +3346,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
          ),
 
          EPSI_INIT       =FACT(statut='f',max='**',
-                               fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",
+             fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                      AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX',
@@ -2938,6 +3372,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          ARLEQUIN        =FACT(statut='f',min=1,max='**',
+           fr="Définit les paramètres de la méthode Arlequin",
            GROUP_MA_1     =SIMP(statut='o',typ=grma,max='**'),
            GROUP_MA_2     =SIMP(statut='o',typ=grma,max='**'),
            GROUP_MA_COLL  =SIMP(statut='f',typ=grma,max='**'),
@@ -2950,7 +3385,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            POIDS_GROSSIER =SIMP(statut='f',typ='R'),
            POIDS_FIN      =SIMP(statut='f',typ='R'),),
 
-        FORCE_POUTRE    =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",max='**',
+        FORCE_POUTRE    =FACT(statut='f',max='**',
+             fr="Applique des forces linéiques sur des éléments de type poutre",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                      AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
@@ -2975,7 +3411,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
            ),
 
-         FORCE_TUYAU     =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",max='**',
+         FORCE_TUYAU     =FACT(statut='f',max='**',
+             fr="Applique une pression sur des éléments TUYAU",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
@@ -2984,7 +3421,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
              PRES            =SIMP(statut='f',typ='R' ),
            ),
 
-         FORCE_COQUE     =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",max='**',
+         FORCE_COQUE     =FACT(statut='f',max='**',
+             fr="Applique des forces surfaciques sur des éléments de types coques",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                      AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
@@ -3024,6 +3462,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
 
            GRAPPE_FLUIDE   =FACT(statut='f',max='**',
+             fr="Définit les données de calcul des forces fluides lors des études de chute de grappe",
              regles=(EXCLUS('GROUP_NO_EXTR','NOEUD_EXTR'),
                      EXCLUS('GROUP_NO_ORIG','NOEUD_ORIG'),
                      PRESENT_PRESENT('CARA_HYDR','VALE_HYDR'),
@@ -3098,7 +3537,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",),
@@ -3107,6 +3546,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
            LIAISON_COQUE   =FACT(statut='f',max='**',
+             fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
              GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
              MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
              GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -3119,13 +3559,16 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          RELA_CINE_BP    =FACT(statut='f',max='**',
+           fr="Etablir des relations cinématiques permettant de relier les noeuds cable aux noeuds du béton, et spécifier"
+              +" la prise en compte des contraintes initiales dans les cables",
            CABLE_BP        =SIMP(statut='o',typ=cabl_precont ),
            SIGM_BPEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
            RELA_CINE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          ),
 
          FORCE_ELEC      =FACT(statut='f',max='**',
-                               fr="Force de Laplace due à la présence d'un conducteur rectiligne secondaire non maillé",
+             fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
+                 +" secondaire droit",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
 
@@ -3158,7 +3601,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
 
         INTE_ELEC       =FACT(statut='f',max='**',
-                              fr="Force de Laplace due à la présence d'un conducteur non rectiligne secondaire",
+             fr="Appliquer la force de LAPLACE agissant sur un conducteur principal, due à la présence d'un conducteur"
+               +" secondaire non nécessairement droit",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                      AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'),
@@ -3173,14 +3617,14 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
 
-         IMPE_FACE       =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",max='**',
+         IMPE_FACE       =FACT(statut='f',fr="Applique une impédance acoustique à une face",max='**',
              regles=(AU_MOINS_UN('GROUP_MA','MAILLE' ),),
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
              IMPE            =SIMP(statut='o',typ='R' ),
            ),
 
-         VITE_FACE       =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",max='**',
+         VITE_FACE       =FACT(statut='f',fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE), ",max='**',
              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
@@ -3189,7 +3633,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
 
 
-         ONDE_FLUI       =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",max='**',
+         ONDE_FLUI       =FACT(statut='f',max='**',
+             fr="Applique une amplitude de pression d'onde incidente sinusoidale arrivant normalement à une face",
              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
@@ -3197,6 +3642,8 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
            ),
 
          FLUX_THM_REP    =FACT(statut='f',max='**',
+             fr="Applique à un domaine de milieu continu 2D ou 3D un flux de chaleur et/ou un apport de masse fluide"
+                 +" (flux hydraulique)",
              regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                      PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                      AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
@@ -3212,7 +3659,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 )  ;
 
 
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 24/08/2005   AUTEUR MABBAS M.ABBAS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3239,6 +3686,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
          VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          DDL_IMPO        =FACT(statut='f',max='**',
+           fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées)",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','LIAISON', ),),
            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
@@ -3258,6 +3706,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
            PHI             =SIMP(statut='f',typ='C' ),
          ),
          FORCE_POUTRE    =FACT(statut='f',max='**',
+           fr="Applique des forces linéiques sur des éléments de type poutre",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
@@ -3279,6 +3728,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
            VZ              =SIMP(statut='f',typ='C' ),
          ),
          LIAISON_DDL     =FACT(statut='f',max='**',
+           fr="Définit une relation linéaire entre les DDLs de deux ou plusieurs noeuds",
            regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
@@ -3288,7 +3738,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 24/05/2005   AUTEUR MABBAS M.ABBAS 
+#& 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
@@ -3308,7 +3758,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
 AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
-                      fr="Affectation de charges et conditions aux limites mécaniques fonction d une grandeur",
+                      fr="Affectation de charges et conditions aux limites mécaniques fonction d'un (ou plusieurs) paramètres",
                       reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
         regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',
@@ -3316,15 +3766,20 @@ 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),
 
          DDL_IMPO        =FACT(statut='f',max='**',
+           fr="Impose à des noeuds une ou plusieurs valeurs de déplacement (ou de certaines grandeurs asscociées) fournies"
+               +" par l'intermédiaire d'un concept fonction ",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
-                               'TEMP','PRE1','PRE2','LIAISON',),),
+                               'TEMP','PRE1','PRE2','LIAISON','DCX','DCY','DCZ','H1X',
+                               'H1Y','H1Z','E1X','E1Y','E1Z','E2X','E2Y','E2Z',
+                               '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='**'),
@@ -3343,9 +3798,30 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            PRE1            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
            PRE2            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           DCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           DCY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           DCZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           H1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           H1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           H1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),                  
+           E1X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           E1Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           E1Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
+           E2X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           E2Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           E2Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
+           E3X             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           E3Y             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
+           E3Z             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),      
+           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='**',
+           fr="Impose à tous les noeuds d'une face une ou plusieurs valeurs de déplacement (ou de certaines grandeurs associées)"
+              +" fournies par l'intérmédiaire d'un concept fonction",
            regles=(UN_PARMI('GROUP_MA','MAILLE'),
                    AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'),
                    EXCLUS('DNOR','DX'),
@@ -3363,6 +3839,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) ),
@@ -3380,7 +3858,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
          
          LIAISON_DDL     =FACT(statut='f',max='**',
-                               fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
+           fr="Définit une relation linéaire entre des DDLs de deux ou plusieurs noeuds, les valeurs sont fournies par"
+               +" l'intermediaire d'un concept de type fonction",
            regles=(UN_PARMI('GROUP_NO','NOEUD'),),
            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
            NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
@@ -3390,7 +3869,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
 
          LIAISON_OBLIQUE =FACT(statut='f',max='**',
-                               fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
+           fr="Applique à des noeuds la meme valeur de déplacement définie composante par composante dans un repère oblique"
+              +" quelconque, les valeurs sont fournis par l'intermédiaire d'un concept fonction",
            regles=(UN_PARMI('GROUP_NO','NOEUD'),
                    UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
@@ -3405,7 +3885,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),         
          
          LIAISON_GROUP   =FACT(statut='f',max='**',
-                               fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
+           fr="Définit la meme relation linéaire entre certains DDLs de couples de noeuds, les valeurs sont fournies par"
+               +" l'intermédiaire de concept fonction",
            regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
                    UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
                    EXCLUS('GROUP_MA_1','GROUP_NO_2'),
@@ -3437,21 +3918,54 @@ 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='**'),   
 
-         CONTACT         =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",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='**',
            regles=(UN_PARMI('GROUP_MA_ESCL','MAILLE_ESCL'),),
            APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
                                  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",
@@ -3461,7 +3975,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' ",
@@ -3477,7 +3991,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 ),
@@ -3486,19 +3999,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='**'),
@@ -3506,7 +4014,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)),
             ),
@@ -3516,7 +4024,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 ),
@@ -3525,18 +4032,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='**'),
@@ -3544,8 +4046,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),  
@@ -3557,7 +4060,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 ),
@@ -3566,26 +4068,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',
@@ -3594,24 +4091,87 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                      ),),
            b_continue      =BLOC(condition = "METHODE == 'CONTINUE' ",
                                  fr="Paramètres de la méthode continue (contact avec ou sans frottement)",
+#                regles=(UN_PARMI('GLISSIERE','FROTTEMENT'),),
                 NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
+                GLISSIERE       =SIMP(statut='f',typ='TXM',defaut="NON",
+                                      into=("OUI","NON")),
+                b_glissiere     =BLOC(condition = "GLISSIERE == 'OUI' ",                    
+                      ALARME_JEU  =SIMP(statut='f',typ='R',defaut=0.),
+                                 ),
                 FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), 
-                INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2")),
+                COMPLIANCE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
+                INTEGRATION     =SIMP(statut='f',typ='TXM',defaut="NOEUD",into=("GAUSS","NOEUD","SIMPSON","SIMPSON1","SIMPSON2",
+                                                                                                "NCOTES","NCOTES1","NCOTES2")),
                 COEF_REGU_CONT  =SIMP(statut='f',typ='R',defaut=100.E+0),
                 FORMULATION     =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE")),
                 MODL_AXIS       =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
                 DIRE_APPA       =SIMP(statut='f',typ='R',max=3),
                 ITER_GEOM_MAXI  =SIMP(statut='f',typ='I',defaut=2),
                 ITER_CONT_MAXI  =SIMP(statut='f',typ='I',defaut=30),
+                DIST_MAIT       =SIMP(statut='f',typ='R'),
+                DIST_ESCL       =SIMP(statut='f',typ='R'),
+                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',),
+                     E_N             =SIMP(statut='o',typ='R',),
+                     E_V             =SIMP(statut='f',typ='R',defaut=0.E+0),),
                 b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres du frottement de Coulomb",
                      COULOMB         =SIMP(statut='o',typ='R',),
+                     SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+                     SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                     VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
+                     VECT_Z          =SIMP(statut='f',typ='R',min=3,max=3),
                      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='**',
-                               fr="Imposer une meme valeur (inconnue) a des ddls d un emsemble de noeuds",
+           fr="Impose une meme valeur (inconnue) à des DDLs d'un ensemble de noeuds",
            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
@@ -3621,7 +4181,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
 
          LIAISON_SOLIDE  =FACT(statut='f',max='**',
-                               fr="Modéliser une partie indéformable d une structure",
+           fr="Modélise une partie indéformable d'une structure",
            regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
@@ -3633,6 +4193,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
 
 
          FORCE_NODALE    =FACT(statut='f',max='**',
+           fr="Applique à des noeuds des forces nodales dont les valeurs des composantes sont fournies par l'intermédiaire"
+               +" d'un concept fonction",
            regles=(UN_PARMI('GROUP_NO','NOEUD'),
                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
            GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -3647,6 +4209,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
 
          FORCE_FACE      =FACT(statut='f',max='**',
+           fr="Applique des forces surfaciques sur une face d'élément volumique dont les valeurs des composantes sont fournies"
+               +" par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FX','FY','FZ'),),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -3656,6 +4220,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
          ),
          FORCE_ARETE     =FACT(statut='f',max='**',
+           fr="Applique des forces linéiques à une arete d'élément volumique ou de coque dont les valeurs des composantes sont"
+               +" fournies par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -3668,6 +4234,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
          ),
          FORCE_CONTOUR   =FACT(statut='f',max='**',
+           fr="Applique des forces linéiques au bord d'un domaine 2D ou AXIS ou AXIS_FOURIER, dont les valeurs des composantes"
+               +" sont fournies par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -3681,6 +4249,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
 
          FORCE_INTERNE   =FACT(statut='f',max='**',
+           fr="Applique des forces volumiques (2D ou 3D) à un domaine volumique, dont les valeurs des composantes sont fournies"
+               +" par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FX','FY','FZ'),),
@@ -3693,6 +4263,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
          
          PRES_REP        =FACT(statut='f',max='**',
+           fr="Applique une pression à un domaine de milieu continu 2D ou 3D ou à un domaine de coques et tuyaux, dont les"
+               +" valeurs imposées (pression et/ou cisaillement) sont fournies par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                    AU_MOINS_UN('PRES','CISA_2D'),),
@@ -3703,7 +4275,9 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            CISA_2D         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
          ),
 
-         EFFE_FOND       =FACT(statut='f',fr="Imposer un effet de fond",max='**',
+         EFFE_FOND       =FACT(statut='f',max='**',
+           fr="Calcul l'effet de fond sur une branche de tuyauterie (modélisation 3D) soumise"
+               +" à une pression dont la valeur est fournie par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
            GROUP_MA_INT    =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -3712,6 +4286,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
 
          EPSI_INIT       =FACT(statut='f',max='**',
+           fr="Applique un chargement de déformation initiale à un élément 2D, 3D ou de structure dont les composantes"
+               +" du tenseur de déformation sont fournies par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                    AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),),
@@ -3727,6 +4303,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
          
          FORCE_POUTRE    =FACT(statut='f',max='**',
+           fr="Applique des forces linéiques sur des éléments de type poutre dont les valeurs sont fournies par"
+               +" l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
@@ -3750,6 +4328,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
 
          FORCE_TUYAU     =FACT(statut='f',max='**',
+           fr="Applique une pression sur des éléments TUYAU, la valeur est fournie par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
@@ -3759,6 +4338,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
          
          FORCE_COQUE     =FACT(statut='f',max='**',
+           fr="Applique des forces surfaciques sur des éléments de types coques dont les valeurs sont fournies par"
+               +" l'intermédiaires d'un concept fonction",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
@@ -3795,6 +4376,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          ),
 
          LIAISON_COQUE   =FACT(statut='f',max='**',
+           fr="Permet de représenter le raccord entre des éléments de coques au moyen des relations linéaires",
            GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
            MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
            GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -3808,6 +4390,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
          
 
          VITE_FACE       =FACT(statut='f',max='**',
+           fr="Impose des vitesses normales à une face (phénomène ACOUSTIQUE) dont les valeurs sont fournies par"
+               +" l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -3815,6 +4399,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            VNOR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
          ),
          IMPE_FACE       =FACT(statut='f',max='**',
+           fr="Applique à une face une impédance acoustique dont la valeur est fournie par l'intermédiaire"
+               +" d'un concept fonction",
            regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('GROUP_MA','MAILLE'),),
            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -3822,6 +4408,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
            IMPE            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
          ),
          ONDE_PLANE      =FACT(statut='f',max='**',
+           fr="Impose un chargement sismique par onde plane dont la valeur est fournie par l'intermédiaire"
+               +" d'un concept fonction",
            DIRECTION       =SIMP(statut='o',typ='R',max='**'),
            TYPE_ONDE       =SIMP(statut='o',typ='TXM' ),
            FONC_SIGNAL     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
@@ -3831,6 +4419,8 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
 
 
          FLUX_THM_REP    =FACT(statut='f',max='**',
+           fr="Applique à un domaine continue 2D ou 3D un flux de chaleur et/ou un apport de masse fluide (flux hydraulique)"
+               +" dont les valeurs des flux sont fournies par l'intermédiaire d'un concept fonction",
            regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
                    PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
                    AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
@@ -3846,7 +4436,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
 )  ;
 
 
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -3865,7 +4455,7 @@ AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
-                      fr=" ",
+                      fr="Affectation de charges et conditions limites thermiques spécifique à CARA_TORSION",
                       reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
          regles=(AU_MOINS_UN('CARA_TORSION', ),),
@@ -3879,7 +4469,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/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
@@ -3904,7 +4494,6 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE',
                           'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP',
                           'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),),
-         VERI_DDL        =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"),
          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
 
          TEMP_IMPO       =FACT(statut='f',max='**',
@@ -3930,7 +4519,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),
          ),
 
 
@@ -3972,7 +4561,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='**',
@@ -4078,13 +4667,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 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& 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
@@ -4103,13 +4692,13 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
-                     fr="Affectation de charges et conditions aux limites thermiques fonction dune grandeur (temps, ...)",
+                     fr="Affectation de charges et conditions aux limites thermiques fonction d'un (ou plusieurs)"
+                         +" paramètres (temps, ...)",
                      reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
       regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE',
                           'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF',
                           'GRAD_TEMP_INIT','RAYONNEMENT'),),
-         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
          MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
 
          TEMP_IMPO       =FACT(statut='f',max='**',
@@ -4274,12 +4863,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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -4299,11 +4888,14 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
-                   fr="Affectation de caractéristiques de matériaux à un maillage",
+                   fr="Affecter des matériaux à des zones géométriques d'un maillage",
                          reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
          MODELE          =SIMP(statut='f',typ=modele_sdaster),
+
+         #  affectation du nom du matériau :
+         #  -------------------------------
          AFFE            =FACT(statut='o',max='**',
            regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
@@ -4313,93 +4905,306 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
            SECH_REF        =SIMP(statut='f',typ='R',val_min=0.E+0),
          ),
+
+         #  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","HYDR","NEUT1","NEUT2")),
+
+         AFFE_VARC    =FACT(statut='f',max='**',
+
+           regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
+                   PRESENT_ABSENT('GROUP_MA','TOUT'),
+                   PRESENT_ABSENT('MAILLE','TOUT'),
+                   UN_PARMI('EVOL','CHAMP_GD'),),
+
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ), # [défaut]
+           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+
+           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","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","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") ),
+               PROL_GAUCHE =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
+           ),
+           VALE_REF        =SIMP(statut='f',typ='R'),
+         ),
+
+         #  mots clés cachés pour les variables de commande NEUTi :
+         #  -------------------------------------------------------
+         VARC_NEUT1   =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT1"),
+           GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
+           CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
+           CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT1")),
+         ),
+         VARC_NEUT2   =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="NEUT2"),
+           GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="NEUT_R"),
+           CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("X1")),
+           CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("NEUT2")),
+         ),
+
+         #  mots clés cachés pour variable de commande TEMP :
+         #  --------------------------------------------------
+         VARC_TEMP    =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="TEMP"),
+           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=("TEMP",)),
+         ),
+
+         #  mots clés cachés pour variable de commande SECH :
+         #  --------------------------------------------------
+         VARC_SECH    =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="SECH"),
+           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 :
+         #  --------------------------------------------------
+         VARC_HYDR    =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="HYDR"),
+           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 :
+         #  --------------------------------------------------
+         VARC_CORR    =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="CORR"),
+           GRANDEUR        =SIMP(statut='c',typ='TXM',defaut="CORR_R"),
+           CMP_GD          =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
+           CMP_VARC        =SIMP(statut='c',typ='TXM',max=1,min=1,defaut=("CORR",)),
+         ),
+
+         #  mots clés cachés pour variable de commande IRRA :
+         #  --------------------------------------------------
+         VARC_IRRA    =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="IRRA"),
+           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='R',max=1,min=1,defaut=(0.,)),
+         ),
+
+         #  mots clés cachés pour variable de commande EPSA :
+         #  --------------------------------------------------
+         VARC_EPSA    =FACT(statut='d',
+           NOM_VARC        =SIMP(statut='c',typ='TXM',defaut="EPSA"),
+           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='R',max=6,min=6,defaut=( 0.,    0.,    0.,    0.,    0.,    0.,   )),
+         ),
 )  ;
-#& MODIF COMMANDE  DATE 26/04/2005   AUTEUR LAVERNE J.LAVERNE 
+
+
+#& 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.
+# 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 JMBHH01 J.M.PROIX
-AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
-            UIinfo={"groupes":("Modélisation",)},
-                 fr="Affectation des éléments finis sur le maillage",reentrant='n',
-         regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
-         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-         VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ),
-         AFFE_SOUS_STRUC =FACT(statut='f',
-           regles=(UN_PARMI('TOUT','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-           PHENOMENE       =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
+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",) ),
          ),
-         AFFE            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           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='**'),
-           PHENOMENE       =SIMP(statut='o',typ='TXM',
-                                 into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ),
-                b_mecanique     =BLOC( condition = "PHENOMENE=='MECANIQUE'",
-                                        fr="modelisations mécaniques",
-                    MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
-                                                                      "2D_DIS_T",
-                                                                      "2D_DIS_TR",
-                                                                      "2D_FLUI_ABSO",
-                                                                      "2D_FLUI_PESA",
-                                                                      "2D_FLUI_STRU",
-                                                                      "2D_FLUIDE",
-                                                                      "3D",
-                                                                      "3D_ABSO",
-                                                                      "3D_FAISCEAU",
-                                                                      "3D_FLUI_ABSO",
-                                                                      "3D_FLUIDE",
-                                                                      "3D_HHM" ,
-                                                                      "3D_HM",
-                                                                      "3D_INCO",
-                                                                      "3D_JOINT_CT",
-                                                                      "3D_SI",
-                                                                      "3D_THH",
-                                                                      "3D_THHM",
-                                                                      "3D_THM",
-                                                                      "3D_GRAD_EPSI",
-                                                                      "3D_GRAD_VARI",
-                                                                      "3D_XFEM",
-                                                                      "APPUI_REP",
-                                                                      "ASSE_GRIL",
-                                                                      "AXIS",
+) ;
+#& 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
+# 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
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
+            UIinfo={"groupes":("Modélisation",)},
+                 fr="Définir le phénomène physique modélisé et le type d'éléments finis sur le maillage",reentrant='n',
+         regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
+         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+         VERIF           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,into=("MAILLE","NOEUD") ),
+         AFFE_SOUS_STRUC =FACT(statut='f',
+           regles=(UN_PARMI('TOUT','MAILLE'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
+           PHENOMENE       =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
+         ),
+         AFFE            =FACT(statut='f',max='**',
+           regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           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='**'),
+           PHENOMENE       =SIMP(statut='o',typ='TXM',
+                                 into=("MECANIQUE","THERMIQUE","ACOUSTIQUE") ),
+                b_mecanique     =BLOC( condition = "PHENOMENE=='MECANIQUE'",
+                                        fr="modelisations mécaniques",
+                    MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
+                                                                      "2D_DIS_T",
+                                                                      "2D_DIS_TR",
+                                                                      "2D_FLUI_ABSO",
+                                                                      "2D_FLUI_PESA",
+                                                                      "2D_FLUI_STRU",
+                                                                      "2D_FLUIDE",
+                                                                      "3D",
+                                                                      "3D_ABSO",
+                                                                      "3D_FAISCEAU",
+                                                                      "3D_FLUI_ABSO",
+                                                                      "3D_FLUIDE",
+                                                                      "3D_INCO",
+                                                                      "3D_JOINT_CT",
+                                                                      "3D_SI",
+                                                                      "3D_GRAD_EPSI",
+                                                                      "3D_GRAD_VARI",
+                                                                      "3D_XFEM",
+                                                                      "AXIS",
                                                                       "AXIS_FLUI_STRU",
                                                                       "AXIS_FLUIDE",
                                                                       "AXIS_FOURIER",
-                                                                      "AXIS_HHM",
-                                                                      "AXIS_HM",
                                                                       "AXIS_INCO",
                                                                       "AXIS_NS",
                                                                       "AXIS_SI",
-                                                                      "AXIS_THH",
-                                                                      "AXIS_THHM",
-                                                                      "AXIS_THM",
                                                                       "AXIS_GRAD_VARI",
                                                                       "AXIS_JOINT",
                                                                       "AXIS_ELDI",
                                                                       "BARRE",
                                                                       "2D_BARRE",
                                                                       "C_PLAN",
+                                                                      "C_PLAN_X",
                                                                       "C_PLAN_NS",
                                                                       "C_PLAN_SI",
                                                                       "C_PLAN_GRAD_EPSI",
@@ -4411,43 +5216,15 @@ 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",
                                                                       "PLAN_JOINT",
                                                                       "PLAN_ELDI",
                                                                       "D_PLAN_ABSO",
-                                                                      "D_PLAN_HHM",
-                                                                      "D_PLAN_HM",
                                                                       "D_PLAN_INCO",
                                                                       "D_PLAN_SI",
-                                                                      "D_PLAN_THH",
-                                                                      "D_PLAN_THHM",
-                                                                      "D_PLAN_THM",
-                                                                       "3D_HHMD",
-                                                                       "3D_HMD",
-                                                                       "3D_THHD",
-                                                                       "3D_THVD",
-                                                                       "3D_THHMD",
-                                                                       "3D_THMD",
-                                                                       "AXIS_HH2MD",
-                                                                       "AXIS_HHMD",
-                                                                       "AXIS_HMD",
-                                                                       "AXIS_THHD",
-                                                                       "AXIS_THH2D",
-                                                                       "AXIS_THVD",
-                                                                       "AXIS_THHMD",
-                                                                       "AXIS_THH2MD",
-                                                                       "AXIS_THMD",
-                                                                       "D_PLAN_HHMD",
-                                                                       "D_PLAN_HH2MD",
-                                                                       "D_PLAN_HMD",
-                                                                       "D_PLAN_THHD",
-                                                                       "D_PLAN_THH2D",
-                                                                       "D_PLAN_THVD",
-                                                                       "D_PLAN_THH2MD",
-                                                                       "D_PLAN_THHMD",
-                                                                       "D_PLAN_THMD", 
                                                                       "DIS_T",
                                                                       "DIS_TR",
                                                                       "DKT",
@@ -4466,7 +5243,78 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
                                                                       "Q4G",
                                                                       "TUYAU_3M",
                                                                       "TUYAU_6M",
-                                                                      "SHB8"
+                                                                      "SHB8",
+                                                                      "D_PLAN_HHM",
+                                                                      "D_PLAN_HM",
+                                                                      "D_PLAN_THH",
+                                                                      "D_PLAN_THHM",
+                                                                      "D_PLAN_THM",
+                                                                      "D_PLAN_HHMD",
+                                                                      "D_PLAN_HH2MD",
+                                                                      "D_PLAN_HMD",
+                                                                      "D_PLAN_THHD",
+                                                                      "D_PLAN_THH2D",
+                                                                      "D_PLAN_THVD",
+                                                                      "D_PLAN_THH2MD",
+                                                                      "D_PLAN_THHMD",
+                                                                      "D_PLAN_THMD", 
+                                                                      "D_PLAN_HHMS",
+                                                                      "D_PLAN_HH2MS",
+                                                                      "D_PLAN_HMS",
+                                                                      "D_PLAN_THHS",
+                                                                      "D_PLAN_THH2S",
+                                                                      "D_PLAN_THVS",
+                                                                      "D_PLAN_THH2MS",
+                                                                      "D_PLAN_THHMS",
+                                                                      "D_PLAN_THMS", 
+                                                                      "AXIS_THH",
+                                                                      "AXIS_THHM",
+                                                                      "AXIS_THM",
+                                                                      "AXIS_HHM",
+                                                                      "AXIS_HM",
+                                                                      "AXIS_HH2MD",
+                                                                      "AXIS_HHMD",
+                                                                      "AXIS_HMD",
+                                                                      "AXIS_THHD",
+                                                                      "AXIS_THH2D",
+                                                                      "AXIS_THVD",
+                                                                      "AXIS_THHMD",
+                                                                      "AXIS_THH2MD",
+                                                                      "AXIS_THMD",
+                                                                      "AXIS_HH2MS",
+                                                                      "AXIS_HHMS",
+                                                                      "AXIS_HMS",
+                                                                      "AXIS_THHS",
+                                                                      "AXIS_THH2S",
+                                                                      "AXIS_THVS",
+                                                                      "AXIS_THHMS",
+                                                                      "AXIS_THH2MS",
+                                                                      "AXIS_THMS",
+                                                                      "3D_HHM" ,
+                                                                      "3D_HM",
+                                                                      "3D_THH",
+                                                                      "3D_THV",
+                                                                      "3D_THHM",
+                                                                      "3D_THM",
+                                                                      "3D_HHMD",
+                                                                      "3D_HMD",
+                                                                      "3D_THHD",
+                                                                      "3D_THVD",
+                                                                      "3D_THHMD",
+                                                                      "3D_THMD",
+                                                                      "3D_HHMS",
+                                                                      "3D_HMS",
+                                                                      "3D_THHS",
+                                                                      "3D_THVS",
+                                                                      "3D_THHMS",
+                                                                      "3D_THMS",
+                                                                      "3D_THH2MD",
+                                                                      "3D_THH2MS",
+                                                                      "3D_HH2MD",
+                                                                      "3D_HH2MS",
+                                                                      "3D_THH2S",
+                                                                      "3D_THH2D",
+                                                                      
                                                                      )  )  ),
 
                 b_thermique     =BLOC( condition = "PHENOMENE=='THERMIQUE'",
@@ -4493,39 +5341,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele_sdaster,
 
          ),
 ) ;
-#& MODIF COMMANDE  DATE 23/08/2004   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    
-# 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="Interrogation sur le catalogue des commandes et les concepts produits",
-       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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -4545,7 +5361,7 @@ AIDE=PROC(nom="AIDE",op=42,
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster,
-                   fr="Assembler deux maillages sous un seul nom",
+                   fr="Assembler deux maillages pour en former un nouveau",
                    reentrant='n',
                    UIinfo={"groupes":("Maillage",)},
          MAILLAGE_1 =  SIMP(statut='o',typ=maillage_sdaster,),
@@ -4586,7 +5402,7 @@ ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r,
            OPTION          =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ),
            ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -4613,7 +5429,7 @@ def asse_matrice_prod(MATR_ELEM,**args):
   raise AsException("type de concept resultat non prevu")
 
 ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
-                  fr="Construction d une matrice assemblée",reentrant='n',
+                  fr="Construction d'une matrice assemblée",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          MATR_ELEM       =SIMP(statut='o',
                                typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ),
@@ -4621,7 +5437,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 18/04/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
@@ -4639,8 +5455,8 @@ 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,
-                    fr="Assemblage de vecteurs de chargement en coordonnées généralisées",
+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",)},
          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
@@ -4648,11 +5464,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 10/06/2004   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
@@ -4671,21 +5487,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,
-                  fr="Assemblage d un second membre",reentrant='n',
+
+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
@@ -4733,7 +5543,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='**'),
          ),
@@ -4744,7 +5554,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 24/01/2005   AUTEUR DURAND C.DURAND 
+#& 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
@@ -4763,28 +5573,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="Calcul de champs par éléments à partir de champs solution ou de champs par éléments",
+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),
@@ -4807,11 +5598,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,)),
          ),
 
 
@@ -4823,13 +5614,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
@@ -4848,13 +5639,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",)},
@@ -4863,7 +5649,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 10/06/2004   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
@@ -4882,11 +5668,11 @@ 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,
-                      reentrant='n',
+                      reentrant='n',fr="Calcul du chargement sismique",
             UIinfo={"groupes":("Matrices/vecteurs",)},
          regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),),
          MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ),
@@ -4900,7 +5686,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 08/02/2005   AUTEUR CIBHHPD L.SALMONA 
+#& 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
@@ -4938,7 +5724,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='**'),
@@ -4982,8 +5770,10 @@ 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",
                                  "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
@@ -5004,7 +5794,17 @@ 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.,
+                                  fr="precision demandee pour calculer la carte de taille des elements"),),   
+               
                EXCIT           =FACT(statut='f',max='**',
                                      fr="Charges contenant les températures, les efforts répartis pour les poutres...",
                                      regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
@@ -5173,11 +5973,25 @@ 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",
-                                 ) ),
-                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
+               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.,
+                                  fr="precision demandee pour calculer la de taille des elements" ),),     
+
+               EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
                      CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
                                  ),
                                  ),
@@ -5205,11 +6019,12 @@ 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",
-                                 "ENDO_ELNO_SIGA","ENDO_ELNO_SINO",
+                                 "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM",
+                                 "SING_ELNO_ELEM","ENDO_ELNO_SIGA","ENDO_ELNO_SINO",
                                  "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","ENEL_ELGA","ENEL_ELNO_ELGA",
                                  "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","VALE_NCOU_MAXI"),
                                ),
@@ -5224,7 +6039,19 @@ b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_
                NOM_CHAM  =SIMP(statut='f',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI"),
                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.,
+                                  fr="precision demandee pour calculer la carte de taille des elements" ),),     
+
+               
                b_extr = BLOC( condition = "OPTION in ('EXTR_ELNO_VARI','EXTR_ELGA_VARI')",
                              NOM_VARI =SIMP(statut='o',typ='TXM',min= 1,max=1,fr="nom de la variable à extraire",
                          into=("DPORO","DRHOLQ","DPVP","SATLIQ","EVP","IND_ETA","D","IND_END","TEMP_MAX","GAMP","PCR",
@@ -5364,10 +6191,23 @@ 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.,
+                                  fr="precision demandee pour calculer la carte de taille des elements" ),), 
+               
                b_indic = BLOC( condition ="OPTION in ('DCHA_ELNO_SIGM','DCHA_ELGA_SIGM','RADI_ELNO_SIGM','RADI_ELGA_SIGM') or\
                                             (type(OPTION)==type(()) and 'DCHA_ELNO_SIGM' in OPTION) or\
                                             (type(OPTION)==type(()) and 'DCHA_ELGA_SIGM' in OPTION) or\
@@ -5385,7 +6225,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 ),
@@ -5419,14 +6259,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 10/01/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
@@ -5445,13 +6285,14 @@ 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',
-                  fr="Calcul d un cham de dommage ou d un cisaillement maximal dans le plan critique.",
+                  fr="Calculer un champ de dommage de fatigue subit par une structure et déterminer le plan critique"
+                      +" dans lequel le cisaillement est maximal.",
             UIinfo={"groupes":("Post traitements",)},
 
          TYPE_CALCUL = SIMP(statut='o',typ='TXM',
@@ -5494,9 +6335,9 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant
                METHODE       =SIMP(statut='o',typ='TXM',into=("CERCLE_EXACT",) ),
            ),
            b_non_period   =BLOC(condition = "TYPE_CHARGE == 'NON_PERIODIQUE'",
-               CRITERE       =SIMP(statut='o',typ='TXM',into=("DOMM_MAXI","DANG_VAN_MODI_AV") ),
+               CRITERE       =SIMP(statut='o',typ='TXM',into=("DOMM_MAXI","DANG_VAN_MODI_AV","FATEMI_SOCIE") ),
                PROJECTION    =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ),
-               DELTA_OSCI    = SIMP(statut='f',typ='R',defaut= 0.0E+0),  
+               DELTA_OSCI    =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
            ),
            b_fati_grmano  =BLOC(condition = "(GROUP_MA != None or MAILLE != None or GROUP_NO != None or NOEUD != None)",
                MAILLAGE      =SIMP(statut='o',typ=maillage_sdaster ),
@@ -5505,7 +6346,7 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -5525,20 +6366,22 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant
 # ======================================================================
 CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu_sdaster,
                     reentrant='n',
+                    fr="Calculer les paramètres modaux d'une structure soumise à un écoulement",
             UIinfo={"groupes":("Matrices/vecteurs",)},
-         VITE_FLUI       =FACT(statut='o',
+         VITE_FLUI       =FACT(statut='f',
                                fr="Définir la plage de vitesse fluide étudiée",
-           VITE_MIN        =SIMP(statut='o',typ='R' ),
-           VITE_MAX        =SIMP(statut='o',typ='R' ),
-           NB_POIN         =SIMP(statut='o',typ='I' ),
+           VITE_MIN        =SIMP(statut='f',typ='R' ),
+           VITE_MAX        =SIMP(statut='f',typ='R' ),
+           NB_POIN         =SIMP(statut='f',typ='I' ),
          ),
          BASE_MODALE     =FACT(statut='o',
                                
-           regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),),
+           regles=(AU_MOINS_UN('AMOR_REDUIT','AMOR_UNIF','AMOR_REDUIT_CONN'),),
            MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
            NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
-           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
-           AMOR_UNIF       =SIMP(statut='f',typ='R' ),
+           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
+           AMOR_UNIF       =SIMP(statut='f',typ='R',val_min=0.E+00 ),
+           AMOR_REDUIT_CONN=SIMP(statut='f',typ='R',max='**',val_min=0.E+00),
          ),
          TYPE_FLUI_STRU  =SIMP(statut='o',typ=type_flui_stru ),
          IMPRESSION      =FACT(statut='f',
@@ -5547,7 +6390,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 07/03/2005   AUTEUR DURAND C.DURAND 
+#& 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
@@ -5565,16 +6408,24 @@ 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',
+           fr="Définit une fonction (ou une nappe) à partir d'une fonction FORMULE à 1 ou 2 variables",
            UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE_PARA','LIST_PARA'),),
          FONCTION        =SIMP(statut='o',typ=(formule,fonction_sdaster,nappe_sdaster,fonction_c) ),
@@ -5597,7 +6448,7 @@ CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=calc_fonc_interp_pr
          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 
+#& MODIF COMMANDE  DATE 19/09/2005   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5652,13 +6503,13 @@ def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C,
       if (AsType(vale) == fonction_sdaster )  : return fonction_c
       if (AsType(vale) == fonction_c) : return fonction_sdaster
    if (CORR_ACCE   != None): return fonction_sdaster
-   if (LISS_ENVELOP!= None): return AsType(LISS_ENVELOP[0]['FONCTION'])
+   if (LISS_ENVELOP!= None): return nappe_sdaster
    if (PUISSANCE   != None): return AsType(PUISSANCE[0]['FONCTION'])
    if (ABS         != None): return fonction_sdaster
    raise AsException("type de concept resultat non prevu")
 
 CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_fonction_prod
-                    ,fr="Opérations mathématiques sur des concepts de type fonction, fonction_c ou nappe",
+                    ,fr="Effectue des opérations mathématiques sur des concepts de type fonction",
                      reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','COMB','COMB_C','ENVELOPPE',
@@ -5681,29 +6532,11 @@ CALC_FONCTION=MACRO(nom="CALC_FONCTION",op=calc_fonction_ops,sd_prod=calc_foncti
            COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
          ),
          LISS_ENVELOP    = FACT(statut='f',fr="Lissage d une enveloppe",
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
-           AMOR            =SIMP(statut='f',typ='R',max='**'),
-           FREQ_MIN        =SIMP(statut='f',typ='R'),
-           FREQ_MAX        =SIMP(statut='f',typ='R'),
-           FREQ_CREUX      =SIMP(statut='f',typ='R',max='**'),
-           ELARG           =SIMP(statut='f',typ='TXM',defaut="GLOBAL",into=("GLOBAL","LOCAL") ),
-              b_elarg_glob = BLOC ( condition = " (ELARG=='GLOBAL') ",
-                   GAUCHE       =SIMP(statut='f',typ='R',defaut =10.0E0 ),  
-                   DROITE       =SIMP(statut='f',typ='R',defaut =10.0E0 ),  
-                ),
-              b_elarg_loc = BLOC ( condition = " (ELARG=='LOCAL') ",
-                   FREQ_1       =SIMP(statut='o',typ='R'),  
-                   FREQ_2       =SIMP(statut='o',typ='R' ),  
-                   GAUCHE       =SIMP(statut='f',typ='R',defaut =10.0E0 ),  
-                   DROITE       =SIMP(statut='f',typ='R',defaut =10.0E0 ),  
-                ),
-           TOLE_LISS      =SIMP(statut='f',typ='R',defaut=25.0E0),
-           ECH_FREQ_REF = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-               b_oui    =BLOC ( condition = "(ECH_FREQ_REF=='OUI') ",
-                    regles=(UN_PARMI("LIST_FREQ", "AMOR_ECH"),),
-                       LIST_FREQ   =SIMP(statut='f',typ=listr8_sdaster ),
-                       AMOR_ECH    =SIMP(statut='f',typ='R',max='**'),
-                              ),
+           NAPPE           =SIMP(statut='o',typ=nappe_sdaster ),
+           FREQ_MIN        =SIMP(statut='f',typ='R',defaut =0.2),
+           FREQ_MAX        =SIMP(statut='f',typ='R',defaut =35.5),
+           ELARG           =SIMP(statut='f',typ='R',defaut =0.1 ),
+           TOLE_LISS       =SIMP(statut='f',typ='R',defaut =0.25 ),
          ),
          SPEC_OSCI       =FACT(statut='f',fr="Spectre d'oscillateur",
            METHODE         =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
@@ -5769,7 +6602,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/02/2005   AUTEUR DURAND C.DURAND 
+#& 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
@@ -5787,8 +6620,9 @@ 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,
-                   fr="calcul de la force ajoutee ",
+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',
             UIinfo={"groupes":("Matrices/vecteurs",)},
 
@@ -5841,7 +6675,7 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene_r,
                            ),
 
            ) ;
-#& MODIF COMMANDE  DATE 11/10/2004   AUTEUR LEBOUVIE F.LEBOUVIER 
+#& 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
@@ -5859,238 +6693,8 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene_r,
 # 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="Calcul du taux de restitution local d énergie",reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-         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),),
-         b_extrac        =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
-             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-             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),
-             
-             b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != 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") ),
-         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") ),
-         ),
-           
-         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 11/10/2004   AUTEUR LEBOUVIE F.LEBOUVIER 
-#            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",
-                    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),),
-
-         b_extrac        =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
-           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-           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),
-            
-           b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != 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",) ),
-         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'),
-         ),
-
-         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 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.                                 
-#
-# 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_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
-                    fr="Calcul d une matrice interspectrale d une fonction du temps",
+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",)},
          INST_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
@@ -6102,7 +6706,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 10/06/2004   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
@@ -6121,7 +6725,7 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
-                    fr="Calcul des matrices de masse, d amortissement ou de raideur ajoutées",
+                    fr="Calcul des matrices de masse, d'amortissement ou de rigidité ajoutés",
                     reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
@@ -6132,7 +6736,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 ),
@@ -6165,7 +6769,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
@@ -6199,6 +6803,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
@@ -6215,7 +6820,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",
@@ -6266,7 +6871,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 ),
          ),
 
@@ -6286,7 +6891,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='**' ),
@@ -6345,7 +6961,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 04/04/2005   AUTEUR CIBHHPD L.SALMONA 
+#& 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
@@ -6365,20 +6981,23 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
 # ======================================================================
 CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
             UIinfo={"groupes":("Post traitements",)},
-               fr="Calcule la métallurgie a partir du résultat du calcul thermique",
+               fr="Calcule l'évolution métallurgique à partir du résultat d'un calcul thermique",
          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
          RESULTAT        =SIMP(statut='o',typ=evol_ther ),
          ETAT_INIT       =FACT(statut='o',
-      regles=(UN_PARMI('NUME_INIT', 'INST_INIT', 'META_INIT_ELNO',),),
-           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
-           NUME_INIT       =SIMP(statut='f',typ='I' ),  
-           INST_INIT       =SIMP(statut='f',typ='R'),
-             b_inst     =BLOC(condition="(INST_INIT != None)",
-               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
-               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-                             ),
-           META_INIT_ELNO       =SIMP(statut='f',typ=carte_var2_r ),
+            regles=(UN_PARMI('EVOL_THER', 'META_INIT_ELNO'),),
+            EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
+            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'),
+               INST_INIT       =SIMP(statut='f',typ='R'),
+               b_inst     =BLOC(condition="INST_INIT != None",
+                  PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
+                  CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") )
+               ),
+            ),
          ),
          COMP_INCR       =FACT(statut='o',max='**',
            RELATION        =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
@@ -6392,7 +7011,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 08/02/2005   AUTEUR CIBHHPD L.SALMONA 
+#& 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
@@ -6416,6 +7035,7 @@ def calc_no_prod(RESULTAT,**args):
    raise AsException("type de concept resultat non prevu")
 
 CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,reentrant='o',
+            fr="Enrichir une SD Résultat par des champs aux noeuds calculés à partir de champs aux éléments évalués aux noeuds",
             UIinfo={"groupes":("Post traitements",)},
          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
                                                mode_acou,mode_stat,mode_stat_depl,mode_stat_acce,
@@ -6426,7 +7046,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='**'),
@@ -6457,7 +7079,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",
@@ -6493,213 +7115,59 @@ 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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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 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 definie par le BPEL dans les cables",
-                   reentrant='f',
-         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"),
-            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','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 23/08/2004   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    
-# 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_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-                fr="Affectation d un champ sur le maillage (mécanique de la rupture)",
-         regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
-                 PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
-                 EXCLUS('DIRECTION','DIRE_THETA'),),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
-         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-         THETA_3D        =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
-                   UN_PARMI('MODULE','MODULE_FO'),
-                   ENSEMBLE('MODULE','R_INF','R_SUP'),
-                   ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),),
-           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='**'),
-           MODULE          =SIMP(statut='f',typ='R'),
-           R_INF           =SIMP(statut='f',typ='R'),
-           R_SUP           =SIMP(statut='f',typ='R'),
-           MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                         ),
-         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) ),
-         DIRECTION       =SIMP(statut='f',typ='R',max='**'),
-         THETA_2D        =FACT(statut='f',max='**',
-           regles=(UN_PARMI('GROUP_NO','NOEUD'),),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           MODULE          =SIMP(statut='o',typ='R'),
-           R_INF           =SIMP(statut='o',typ='R'),
-           R_SUP           =SIMP(statut='o',typ='R'),
+CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,reentrant='n',
+            UIinfo={"groupes":("Post traitements",)},
+                fr="Définir un champ theta pour le calcul du taux de restitution d'énergie"
+                    +" ou des facteurs d'intensité de contraintes",
+         regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
+                 PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
+                 EXCLUS('DIRECTION','DIRE_THETA'),),
+         OPTION          =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
+         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
+         THETA_3D        =FACT(statut='f',max='**',
+           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
+                   UN_PARMI('MODULE','MODULE_FO'),
+                   ENSEMBLE('MODULE','R_INF','R_SUP'),
+                   ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),),
+           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='**'),
+           MODULE          =SIMP(statut='f',typ='R'),
+           R_INF           =SIMP(statut='f',typ='R'),
+           R_SUP           =SIMP(statut='f',typ='R'),
+           MODULE_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           R_INF_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+           R_SUP_FO        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                         ),
+         b_theta_3d     =BLOC(condition="THETA_3D != None",
+           FOND_FISS       =SIMP(statut='f',typ=fond_fiss),),
+         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'),),
+           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           MODULE          =SIMP(statut='o',typ='R'),
+           R_INF           =SIMP(statut='o',typ='R'),
+           R_SUP           =SIMP(statut='o',typ='R'),
          ),
          THETA_BANDE     =FACT(statut='f',max='**',
            MODULE          =SIMP(statut='o',typ='R'),
@@ -6712,7 +7180,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
@@ -6775,7 +7243,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),
          ),
@@ -6788,7 +7256,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 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
@@ -6807,56 +7275,33 @@ 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',
-                    fr="Combinaison linéaire de champs par éléments",
+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'),
               PRESENT_PRESENT('COMB_FOURIER','ANGL'),),
       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 10/06/2004   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
@@ -6875,45 +7320,31 @@ 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="Combinaison linéaire de champs aux noeuds",
+                    ,fr="Effectuer la combinaison linéaire de champs aux noeuds",
                      reentrant='f',
             UIinfo={"groupes":("Résultats et champs",)},
          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") ),
@@ -6922,7 +7353,7 @@ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
            ANGL            =SIMP(statut='o',typ='R' ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -6942,14 +7373,14 @@ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
 COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
-                  reentrant='n',
+                  reentrant='n',fr="Recombiner les modes de Fourier d'une SD Résultat dans des directions particulières",
             UIinfo={"groupes":("Post traitements",)},
          RESULTAT        =SIMP(statut='o',typ=fourier_elas ),
          ANGL            =SIMP(statut='o',typ='R',max='**'),
          NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=5,
                                into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -6985,7 +7416,7 @@ def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
   raise AsException("type de concept resultat non prevu")
 
 COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
-                    fr="Combinaison linéaire de matrices assemblées",
+                    fr="Effectuer la combinaison linéaire de matrices assemblées",
                     reentrant='f',
             UIinfo={"groupes":("Résultats et champs",)},
          regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
@@ -7011,7 +7442,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
@@ -7052,7 +7483,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='**',
@@ -7125,7 +7556,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 28/01/2005   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
 # RESPONSABLE VABHHTS J.PELLET
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -7145,28 +7576,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")
 
-  vv=eval(uu) ; return vv
-
 
 CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
-                fr="  ",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',)),
@@ -7178,8 +7603,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) ),
@@ -7201,6 +7634,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) ),
@@ -7215,34 +7649,47 @@ 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=(UN_PARMI('MAILLAGE','FISSURE','RESULTAT'),),
+             regles=(AU_MOINS_UN('MAILLAGE','FISSURE','RESULTAT','TABLE'),),
              MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
              FISSURE         =SIMP(statut='f',typ=(fiss_xfem) ),
              RESULTAT        =SIMP(statut='f',typ=(resultat_sdaster) ),
-             b_extr_maillage =BLOC(condition = "MAILLAGE != None",
+             TABLE           =SIMP(statut='f',typ=(table_sdaster),min=1,max=1),
+             b_extr_maillage =BLOC(condition = "MAILLAGE != None and TABLE == None",
                  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'),
+                               EXCLUS('PROL_ZERO','MAILLAGE'),),
+                      MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster),),
+                      MODELE          =SIMP(statut='f',typ=(modele_sdaster),),
+                      OPTION          =SIMP(statut='f',typ='TXM'),
+                      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"),
@@ -7253,8 +7700,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='**'),
@@ -7264,18 +7712,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'),
@@ -7283,11 +7725,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",) ),
                  ),
 
@@ -7297,12 +7734,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 26/04/2005   AUTEUR LAVERNE J.LAVERN
+#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETT
 # RESPONSABLE MCOURTOI M.COURTOIS
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -7322,7 +7759,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
-                     reentrant='n',
+            reentrant='n',fr="Crée un maillage à partir d'un maillage existant",
             UIinfo={"groupes":("Maillage",)},
          regles=(EXCLUS('ECLA_PG','CREA_MAILLE'),
                  EXCLUS('ECLA_PG','CREA_GROUP_MA'),
@@ -7433,8 +7870,8 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
            GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
          ),
          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,
+                               fr="changement de repère servant à déterminer les caractéristiques d'une section de poutre",
+           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"  ),
@@ -7458,7 +7895,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 17/08/2004   AUTEUR DURAND C.DURAND 
+#& 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
@@ -7483,19 +7920,20 @@ def crea_resu_prod(TYPE_RESU,**args):
   if TYPE_RESU == "MULT_ELAS"    : return mult_elas
   if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
   if TYPE_RESU == "EVOL_VARC"    : return evol_varc
+  if TYPE_RESU == "EVOL_CHAR"    : return evol_char
   raise AsException("type de concept resultat non prevu")
 
 CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
             UIinfo={"groupes":("Modélisation",)},
-               fr="Engendrer ou enrichir une structure de donnees en affectant les cham_gd associes",
+               fr="Créer ou enrichir une structure de donnees resultat à partir de champs aux noeuds",
 
          OPERATION =SIMP(statut='o',typ='TXM',into=("AFFE","ECLA_PG","PERM_CHAM","PROL_RTZ",),
                          fr="choix de la fonction a activer",),
 
          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",) ),
+           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='**',
@@ -7504,8 +7942,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),
@@ -7513,19 +7955,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") ),
              ),
            ),
          ),
@@ -7580,7 +8012,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)",
@@ -7596,7 +8028,63 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,reentrant='f',
          ),
 
 )  ;
-#& MODIF COMMANDE  DATE 20/09/2004   AUTEUR DURAND C.DURAND 
+#& 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
+# 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_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=base_modale,
+                     reentrant='f',
+                     fr="Définit la base d'une sous-structuration dynamique ou d'une recombinaison modale",
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+         regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS','ORTHO_BASE'),),
+         CLASSIQUE       =FACT(statut='f',
+           INTERF_DYNA     =SIMP(statut='o',typ=interf_dyna_clas ),
+           MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**' ),
+           NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 10 ),
+         ),
+         RITZ            =FACT(statut='f',max='**',
+           regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),),
+           MODE_MECA       =SIMP(statut='f',typ=mode_meca,max='**'  ),
+           NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 999 ),
+           MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
+           MULT_ELAS       =SIMP(statut='f',typ=mult_elas ),
+           BASE_MODALE     =SIMP(statut='f',typ=base_modale ),
+         ),
+         b_ritz          =BLOC(condition = "RITZ != None",
+           INTERF_DYNA     =SIMP(statut='f',typ=interf_dyna_clas ),
+           NUME_REF        =SIMP(statut='o',typ=nume_ddl_sdaster ),
+           ORTHO           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+                               fr="Reorthonormalisation de la base de Ritz" ),
+           b_ortho          =BLOC(condition = "ORTHO == 'OUI' ",
+             MATRICE          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
+               ),
+         ),
+        DIAG_MASS        =FACT(statut='f',max='**',
+           MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**'  ),
+           MODE_STAT       =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
+         ),
+        ORTHO_BASE        =FACT(statut='f',max='**',
+           BASE       =SIMP(statut='o',typ=(mode_meca,mode_stat_depl,mode_stat_acce,mode_stat_forc,mult_elas,base_modale)),
+           MATRICE    =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_gene_r,matr_asse_pres_r ) ),
+         ),
+         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
@@ -7614,196 +8102,12 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_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.        
 # ======================================================================
-def crea_table_prod(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
-  if TYPE_TABLE == "TABL_INTE_SPEC" : return tabl_intsp
-  raise AsException("type de concept resultat non prevu")
-
-CREA_TABLE=OPER(nom="CREA_TABLE",op=  36,sd_prod=crea_table_prod,
-                fr="Creation d'une table a 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=("TABLE",
-                                 "TABL_CARA_GEOM",
-                                 "TABL_POST_RELE",
-                                 "TABL_POST_USUR",
-                                 "TABL_POST_ALEA",
-                                 "TABL_INTE_SPEC" ) ),
-           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='**'),
-)  ;
-
 
+from Macro.defi_cable_bp_ops import defi_cable_bp_ops
 
-#& MODIF COMMANDE  DATE 22/03/2005   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",
-          sd_prod=ops.DEBUT,
-
-         PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
-                           into=("OUI","NON"),defaut="OUI"),
-         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),
-         ),
-         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 10/06/2004   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_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=base_modale,
-                     reentrant='f',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),),
-         CLASSIQUE       =FACT(statut='f',
-           INTERF_DYNA     =SIMP(statut='o',typ=interf_dyna_clas ),
-           MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**' ),
-           NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 10 ),
-         ),
-         RITZ            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),),
-           MODE_MECA       =SIMP(statut='f',typ=mode_meca,max='**'  ),
-           NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 999 ),
-           MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
-           MULT_ELAS       =SIMP(statut='f',typ=mult_elas ),
-           BASE_MODALE     =SIMP(statut='f',typ=base_modale ),
-         ),
-        DIAG_MASS        =FACT(statut='f',max='**',
-           MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**'  ),
-           MODE_STAT       =SIMP(statut='o',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
-         ),
-#  le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'),
-#                                     PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'),        
-         b_ritz          =BLOC(condition = "RITZ != None",
-           INTERF_DYNA     =SIMP(statut='f',typ=interf_dyna_clas ),
-           NUME_REF        =SIMP(statut='o',typ=nume_ddl_sdaster ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
-#            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.defi_cable_bp_ops import defi_cable_bp_ops
-
-# ===========================================================================
-#           CATALOGUE DE LA MACRO "DEFI_CABLE_BP"
-#           -----------------------------------------
+# ===========================================================================
+#           CATALOGUE DE LA MACRO "DEFI_CABLE_BP"
+#           -----------------------------------------
 #
 # USAGE :
 # Entrée :
@@ -7827,8 +8131,8 @@ from Macro.defi_cable_bp_ops import defi_cable_bp_ops
 # ===========================================================================
 
 DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont,
-                   fr="",
-                   reentrant='n',
+                   fr="Calculer les profils initiaux de tension le long des cables de précontrainte d'une structure en béton",
+                   reentrant='n',UIinfo={"groupe":("Modélisation",)},
          regles=(ENSEMBLE('MAILLAGE','CONE'),),
          MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
          MODELE          =SIMP(statut='o',typ=modele_sdaster ),
@@ -7857,117 +8161,7 @@ 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 24/08/2004   AUTEUR CIBHHPD S.VANDENBERGHE 
-#            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,
-                   fr=" ",
-                   reentrant='n',
-            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 27/09/2004   AUTEUR JMBHH01 J.M.PROIX 
-# 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éfinition du comportement monocristallin",
-                   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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -7986,14 +8180,14 @@ DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction_sdaster,
-                    fr="Définition d une fonction constante",
+                    fr="Définir la valeur d'une grandeur invariante",
                     reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
          VALE            =SIMP(statut='o',typ='R',),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
+#& 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
@@ -8013,7 +8207,8 @@ DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction_sdaster,
 # ======================================================================
 DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
-                    fr="Définition d une coque composite couche par couche",
+                    fr="Déterminer les caractéristiques matériaux homogénéisées d'une coque multicouche à partir"
+                        +" des caractéristiques de chaque couche",
          COUCHE          =FACT(statut='o',max='**',
            EPAIS           =SIMP(statut='o',typ='R',val_min=0.E+0 ),
            MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
@@ -8024,131 +8219,7 @@ DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='
            UNITE           =SIMP(statut='f',typ='I',defaut=8),  
          ),
 )  ;
-#& MODIF COMMANDE  DATE 11/05/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.        
-# ======================================================================
-# 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="Gestion d une unité logique : ajout, suppression",
-
-            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 25/01/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.        
-# ======================================================================
-
-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 XFEM",
-
-    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),
-    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='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="GAUSS",into=("GAUSS",) ),
-      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",) ),
-      b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramètres 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 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& 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
@@ -8167,10 +8238,11 @@ DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='f'
 #    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',
+                    reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement",
             UIinfo={"groupes":("Maillage",)},
          regles=(  UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
          FAISCEAU_TRANS  =FACT(statut='f',max='**',
+           regles=(  ENSEMBLE('CSTE_CONNORS','NB_CONNORS','RHO_TUBE'),),
            COUPLAGE        =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
            CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
            PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
@@ -8183,6 +8255,9 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
            UNITE_CD        =SIMP(statut='f',typ='I',defaut=70),
            UNITE_CK        =SIMP(statut='f',typ='I',defaut=71),            
            PAS             =SIMP(statut='f',typ='R' ),
+           CSTE_CONNORS    =SIMP(statut='f',typ='R',min=2,max=2,val_min=0.E+00),
+           NB_CONNORS      =SIMP(statut='f',typ='I',val_min=2,),
+           RHO_TUBE        =SIMP(statut='f',typ='R' ),
          ),
          GRAPPE          =FACT(statut='f',
            regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
@@ -8249,7 +8324,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -8269,7 +8344,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
 # ======================================================================
 DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
-                    fr="Définition d une fonction du temps pour calculer des forces de LAPLACE",
+                    fr="Définir une fonction du temps intervenant dans le calcul des forces de LAPLACE",
       regles=(UN_PARMI('COUR_PRIN','COUR'),
               EXCLUS('COUR','COUR_SECO'), ),
          FREQ            =SIMP(statut='f',typ='R',defaut= 50.),
@@ -8318,7 +8393,7 @@ DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentran
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -8338,6 +8413,7 @@ DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentran
 # ======================================================================
 DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster,
                     reentrant='n',
+            fr="Définit un profil de vitesse d'écoulement fluide le long d'une poutre",
             UIinfo={"groupes":("Fonction",)},
          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
          NOEUD_INIT      =SIMP(statut='o',typ=no),
@@ -8356,7 +8432,7 @@ DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction_sdaster,
          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 
+#& 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
@@ -8383,7 +8459,7 @@ def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args):
   raise AsException("type de concept resultat non prevu")
 
 DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
-                    ,fr="Définition des valeurs réelles ou complexes d une fonction réelle",
+                    ,fr="Définit une fonction réelle ou complexe d'une variable réelle",
                      reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),),
@@ -8412,7 +8488,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 10/06/2004   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
@@ -8432,8 +8508,8 @@ 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'),
+                    fr="Définition de lèvres et d'un fond de fissure en 3D",
+         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'),
@@ -8441,6 +8517,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') ,),
@@ -8471,6 +8550,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='**'),
@@ -8482,13 +8581,14 @@ 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),
            VECT_GRNO_EXTR  =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=2),
            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 25/10/2004   AUTEUR CIBHHLV L.VIVAN 
+#& MODIF COMMANDE  DATE 04/07/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8516,9 +8616,12 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
                 fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
                 reentrant='o',
             UIinfo={"groupes":("Maillage",)},
-         regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),),
+         regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO','DETR_GROUP_NO','DETR_GROUP_MA'),),
          MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
-
+         DETR_GROUP_MA   =FACT(statut='f',max='**',
+           NOM             =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),),
+         DETR_GROUP_NO   =FACT(statut='f',max='**',
+           NOM             =SIMP(statut='o',typ=grno,validators=NoRepeat(),max='**'),),
          CREA_GROUP_MA   =FACT(statut='f',max='**',
 
 regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),),
@@ -8687,7 +8790,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 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
@@ -8705,8 +8808,8 @@ 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,
-                    reentrant='n',
+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",)},
 
          DIMENSION       =SIMP(statut='f',typ='I',defaut= 1 ),
@@ -8747,7 +8850,7 @@ DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -8768,6 +8871,7 @@ DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
 DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
                       reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
+            fr="Définir les interfaces d'une structure et leur affecter un type",
          NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
          INTERFACE       =FACT(statut='o',max='**',
            regles=(ENSEMBLE('NOM','TYPE'),
@@ -8783,7 +8887,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
          FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -8803,7 +8907,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
-                    fr="Définition d une suite croissante d entiers",
+                    fr="Définir une liste d'entier strictement croissante",
                     reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE','DEBUT'),
@@ -8819,7 +8923,7 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
          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 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8839,7 +8943,7 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
-                    fr="Définition d une suite croissante de réels",
+                    fr="Définir une liste de réels strictement croissante",
                     reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE','DEBUT',),
@@ -8856,7 +8960,7 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
          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 22/06/2005   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8876,7 +8980,7 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
-                   fr="Définition d un nouveau maillage à partir de macro éléments",
+                   fr="Définition d'un nouveau maillage à partir de macro-éléments",
                    reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          DEFI_MAILLE     =FACT(statut='o',max='**',
@@ -8935,7 +9039,7 @@ DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
            GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 18/04/2005   AUTEUR PBADEL P.BADEL 
+#& 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
@@ -8959,7 +9063,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'),
@@ -8972,7 +9076,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'),
@@ -8983,10 +9086,12 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
                PRESENT_PRESENT('CAM_CLAY','ELAS'),
                PRESENT_PRESENT('LAIGLE','ELAS'),
                PRESENT_PRESENT('DRUCK_PRAGER','ELAS'),
+               PRESENT_PRESENT('HOEK_BROWN','ELAS'),
                EXCLUS('MAZARS','MAZARS_FO'),
                PRESENT_PRESENT('BAZANT_FD','ELAS_FO'),
                EXCLUS('GLRC','GLRC_FO'),
                PRESENT_PRESENT('JOINT_BA','ELAS'),
+               PRESENT_PRESENT('CABLE','ELAS'),
                ),
 #
 # comportement élastique
@@ -9014,7 +9119,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              K_DESSIC        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
              B_ENDOGE        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
              FONC_DESORP     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ),
+             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH","NEUT1","NEUT2",) ),
            ),
            ELAS_FLUI       =FACT(statut='f',
              E               =SIMP(statut='o',typ='R'),
@@ -9071,6 +9176,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=(
@@ -9094,72 +9202,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',),
@@ -9278,12 +9332,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              E_TAN           =SIMP(statut='f',typ='R',defaut= 0.E+0),
            ),
            CABLE           =FACT(statut='f',
-             E               =SIMP(statut='o',typ='R'),
              EC_SUR_E        =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
-             RHO             =SIMP(statut='f',typ='R'),
-             ALPHA           =SIMP(statut='f',typ='R'),
-             AMOR_ALPHA      =SIMP(statut='f',typ='R'),
-             AMOR_BETA       =SIMP(statut='f',typ='R'),
            ),
 #
 # comportement mécanique non linéaire
@@ -9381,17 +9430,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'),
@@ -9494,7 +9532,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'),
@@ -9510,7 +9548,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)),
@@ -9609,6 +9647,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'),
@@ -9620,49 +9670,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'),
@@ -9773,6 +9780,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              KZ              =SIMP(statut='o',typ='R'),
              KRX             =SIMP(statut='o',typ='R'),
              KRZ             =SIMP(statut='o',typ='R'),
+             R_P0            =SIMP(statut='f',typ='R',defaut= 1.E+4 ),
            ),
            DIS_CONTACT     =FACT(statut='f',
              RIGI_NOR        =SIMP(statut='f',typ='R' ),
@@ -9803,6 +9811,33 @@ 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_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',
              F_C             =SIMP(statut='o',typ='R'),
              F_T             =SIMP(statut='o',typ='R'),
@@ -10143,7 +10178,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'),
@@ -10312,8 +10347,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
@@ -10321,8 +10354,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',
@@ -10332,8 +10363,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" ,
                                           ) ),
 # =================================================================================
@@ -11358,254 +11387,79 @@ 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",)),
+# courbes et coefficients associés à la fatigue et au dommage
+#
+           FATIGUE         =FACT(statut='f',
+             regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
+                     PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
+                     PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
+                     ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
+                     ENSEMBLE('A0','A1','A2','A3','SL'),
+                     PRESENT_PRESENT('A0','E_REFE'),
+                     ENSEMBLE('D0','TAU0'),),
+             WOHLER          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             A_BASQUIN       =SIMP(statut='f',typ='R'),
+             BETA_BASQUIN    =SIMP(statut='f',typ='R'),
+             A0              =SIMP(statut='f',typ='R'),
+             A1              =SIMP(statut='f',typ='R'),
+             A2              =SIMP(statut='f',typ='R'),
+             A3              =SIMP(statut='f',typ='R'),
+             SL              =SIMP(statut='f',typ='R'),
+             MANSON_COFFIN   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             E_REFE          =SIMP(statut='f',typ='R'),
+             D0              =SIMP(statut='f',typ='R'),
+             TAU0            =SIMP(statut='f',typ='R'),
+             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ),
            ),
-           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",)),
+           DOMMA_LEMAITRE  =FACT(statut='f',
+             S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             EPSP_SEUIL      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             EXP_S           =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0),
+             VERI_P          =SIMP(statut='c',typ='TXM',max='**',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",)),
+           CISA_PLAN_CRIT  =FACT(statut='f',
+             CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE",
+                                                            "DANG_VAN_MODI_AC",
+                                                            "DANG_VAN_MODI_AV",
+                                                            "DOMM_MAXI",
+                                                            "FATEMI_SOCIE",
+                                                            ) ),
+
+             b_critere_matake =BLOC(condition="CRITERE=='MATAKE'",
+                                    fr="Cisaillement plan critique  critère de matake",
+               MATAKE_A         =SIMP(statut='o',typ='R'),
+               MATAKE_B         =SIMP(statut='o',typ='R'),
+               COEF_FLEX_TORS   =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
+             ),
+
+             b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')",
+                                 fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable",
+               D_VAN_A            =SIMP(statut='o',typ='R'),
+               D_VAN_B            =SIMP(statut='o',typ='R'),
+               COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
+             ),
+
+             b_crit_domm_maxi  =BLOC(condition="CRITERE=='DOMM_MAXI'",
+                                      fr="Critère pour chargement non périodique : domm_maxi",
+               DOMM_A             =SIMP(statut='o',typ='R'),
+               DOMM_B             =SIMP(statut='o',typ='R'),
+               COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
+             ),
+
+             b_critere_fate_soci =BLOC(condition="CRITERE=='FATEMI_SOCIE'",
+                               fr="Critère de Fatemi et Socie, en élasticité ou élastoplasticité, pour le cas amplitude variable",
+               FATSOC_A           =SIMP(statut='o',typ='R'),
+               COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
+             ),
            ),
-            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',
-             regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
-                     PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
-                     PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
-                     ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
-                     ENSEMBLE('A0','A1','A2','A3','SL'),
-                     PRESENT_PRESENT('A0','E_REFE'),
-                     ENSEMBLE('D0','TAU0'),),
-             WOHLER          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_BASQUIN       =SIMP(statut='f',typ='R'),
-             BETA_BASQUIN    =SIMP(statut='f',typ='R'),
-             A0              =SIMP(statut='f',typ='R'),
-             A1              =SIMP(statut='f',typ='R'),
-             A2              =SIMP(statut='f',typ='R'),
-             A3              =SIMP(statut='f',typ='R'),
-             SL              =SIMP(statut='f',typ='R'),
-             MANSON_COFFIN   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             E_REFE          =SIMP(statut='f',typ='R'),
-             D0              =SIMP(statut='f',typ='R'),
-             TAU0            =SIMP(statut='f',typ='R'),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("SIGM","EPSI",) ),
-           ),
-           DOMMA_LEMAITRE  =FACT(statut='f',
-             S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             EPSP_SEUIL      =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             EXP_S           =SIMP(statut='f',typ='R',val_min=0.0E0,defaut=1.0),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           CISA_PLAN_CRIT  =FACT(statut='f',
-             CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC","DANG_VAN_MODI_AV","DOMM_MAXI") ),
-
-             b_critere_matake =BLOC(condition="CRITERE=='MATAKE'",
-                                    fr="Cisaillement plan critique  critère de matake",
-               MATAKE_A         =SIMP(statut='o',typ='R'),
-               MATAKE_B         =SIMP(statut='o',typ='R'),
-               COEF_FLEX_TORS   =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
-             ),
-
-             b_critere_dang_van =BLOC(condition="(CRITERE=='DANG_VAN_MODI_AC' or CRITERE=='DANG_VAN_MODI_AV')",
-                                 fr="Critère de Dang Van modifié pour les cas amplitude constante et amplitude variable",
-               D_VAN_A            =SIMP(statut='o',typ='R'),
-               D_VAN_B            =SIMP(statut='o',typ='R'),
-               COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
-             ),
-
-             b_crit_domm_maxi  =BLOC(condition="CRITERE=='DOMM_MAXI'",
-                                      fr="Critère pour chargement non périodique : domm_maxi",
-               DOMM_A             =SIMP(statut='o',typ='R'),
-               DOMM_B             =SIMP(statut='o',typ='R'),
-               COEF_CISA_TRAC     =SIMP(statut='o',typ='R',val_min=1.0E0,val_max=1.7321E0),
-             ),
-           ),
-#
-# autres comportements ...
-#
-           WEIBULL         =FACT(statut='f',
-             M               =SIMP(statut='o',typ='R'),
-             VOLU_REFE       =SIMP(statut='o',typ='R'),
-             SIGM_REFE       =SIMP(statut='o',typ='R'),
-             SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
+#
+# autres comportements ...
+#
+           WEIBULL         =FACT(statut='f',
+             M               =SIMP(statut='o',typ='R'),
+             VOLU_REFE       =SIMP(statut='o',typ='R'),
+             SIGM_REFE       =SIMP(statut='o',typ='R'),
+             SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
            ),
            WEIBULL_FO      =FACT(statut='f',
              M               =SIMP(statut='o',typ='R'),
@@ -11623,13 +11477,13 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
              GC              =SIMP(statut='o',typ='R'),
              SIGM_C          =SIMP(statut='f',typ='R'),
              PENA_ADHERENCE  =SIMP(statut='f',typ='R'),
-             PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),                          
+             PENA_CONTACT    =SIMP(statut='f',typ='R',defaut=1.),
            ),
            RUPT_FRAG_FO   =FACT(statut='f',
              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',
@@ -11682,6 +11536,19 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
                     TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
              ),
            ),
+           HOEK_BROWN          =FACT(statut='f',
+             GAMMA_RUP       =SIMP(statut='o',typ='R'),
+             GAMMA_RES       =SIMP(statut='o',typ='R'),
+             S_END           =SIMP(statut='o',typ='R'),
+             S_RUP           =SIMP(statut='o',typ='R'),
+             M_END           =SIMP(statut='o',typ='R'),
+             M_RUP           =SIMP(statut='o',typ='R'),
+             BETA            =SIMP(statut='o',typ='R'),
+             ALPHAHB         =SIMP(statut='o',typ='R'),
+             PHI_RUP         =SIMP(statut='o',typ='R'),
+             PHI_RES         =SIMP(statut='o',typ='R'),
+             PHI_END         =SIMP(statut='f',typ='R'),
+           ),
 ####  MONOCRISTAL
 
            ECOU_VISC1      =FACT(statut='f',
@@ -11760,7 +11627,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
 
            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 30/08/2004   AUTEUR NICOLAS O.NICOLAS 
+#& 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
@@ -11780,6 +11647,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
 # ======================================================================
 DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
                       reentrant='n',
+            fr="Créer la structure globale à partir des sous-structures en sous-structuration dynamique", 
             UIinfo={"groupes":("Matrices/vecteurs",)},
          SOUS_STRUC      =FACT(statut='o',max='**',
            NOM             =SIMP(statut='o',typ='TXM' ),
@@ -11808,7 +11676,7 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& 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
@@ -11827,7 +11695,7 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=nappe_sdaster,
-                fr="Définition des valeurs d une fonction de deux variables réelles",
+                fr="Définir une fonction réelle de deux variables réelles",
                 reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
@@ -11852,7 +11720,7 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=nappe_sdaster,
          VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -11871,7 +11739,7 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=nappe_sdaster,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=obstacle_sdaster
-                    ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire",
+                    ,fr="Définition d'un obstacle plan perpendiculaire à une structure filaire",
                      reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          TYPE            =SIMP(statut='o',typ='TXM',defaut="CERCLE",
@@ -11937,80 +11805,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 15/11/2004   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 BOITEAU O.BOITEAU
-
-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',
-                     fr="Creation partitionnement en sous-domaines pour FETI",
-         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
-         MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         NB_PART         =SIMP(statut='o',typ='I'),
-         EXCIT           =FACT(statut='f',max='**',
-           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
-         METHODE         =SIMP(statut='o',typ='TXM',into=("PMETIS","KMETIS","AUTRE",), defaut="PMETIS" ),
-         b_methode       =BLOC(condition="METHODE == 'AUTRE'", fr="Autre logiciel",
-             LOGICIEL        =SIMP(statut='f',typ='TXM'),
-             ),
-         NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
-         INFO            =SIMP(statut='f',typ='I',into=(1, 2, 3, 4,5), 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/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
@@ -12091,7 +11886,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),
@@ -12100,7 +11895,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
@@ -12118,7 +11913,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 15/02/2005   AUTEUR NICOLAS O.NICOLAS 
+#& 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
@@ -12137,7 +11932,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
-                    fr="Définition d un maillage de visualisation",
+                    fr="Définit un maillage pour visualiser les résultats d'une sous-structuration dynamique",
                     reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          regles=(UN_PARMI('CYCLIQUE','MODELE_GENE','MAILLAGE'),
@@ -12194,7 +11989,7 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 22/11/2004   AUTEUR JMBHH01 J.M.PROIX 
+#& 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
@@ -12212,8 +12007,8 @@ 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,
-                  fr=" ",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,
            N               =SIMP(statut='o',typ='R',min=12,max=12 ),  
@@ -12225,49 +12020,7 @@ DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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 la fonction d évolution temporelle de température due à l effet JOULE dans un cable",
-         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 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
@@ -12285,9 +12038,10 @@ 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éfinition d un diagramme de transformations en refroidissement continu d un acier",
+              fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier"
+                +" pour les calculs métallurgiques.",
          HIST_EXP        =FACT(statut='o',max='**',
            VALE            =SIMP(statut='o',typ='R',max='**'),
          ),
@@ -12302,39 +12056,76 @@ DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,reentrant='n',
            A              =SIMP(statut='f',typ='R'),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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.      
-# ======================================================================
-DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-                  fr="Récupération du champ de déplacement interne à une sous-structure",
-         DEPL_GLOBAL     =SIMP(statut='o',typ=cham_no_depl_r),
-         MAILLE          =SIMP(statut='o',typ=ma,),
-         NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
-)  ;
-#& MODIF COMMANDE  DATE 03/11/2004   AUTEUR MCOURTOI M.COURTOIS 
-#            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.        
 # ======================================================================
-# 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.                                 
+
+
+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
+# 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          
@@ -12345,23 +12136,14 @@ DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,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.      
 # ======================================================================
-DETRUIRE=PROC(nom="DETRUIRE",op=-7,
-            UIinfo={"groupes":("Gestion du travail",)},
-              fr="Destruction d un concept utilisateur dans la base GLOBALE",
-             op_init=ops.detruire,
-             regles=(UN_PARMI('CONCEPT','OBJET',),), 
-            CONCEPT     =FACT(statut='f',max='**',
-                NOM         =SIMP(statut='o',typ=assd,validators=NoRepeat(),max='**'),
-            ),
-            OBJET  =FACT(statut='f',max='**',
-               CLASSE      =SIMP(statut='f',typ='TXM',into=('G','V','L'),defaut='G'),  
-               CHAINE      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
-               POSITION    =SIMP(statut='f',typ='I'  ,max='**'),
-            ),
-            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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+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_sdaster),
+         MAILLE          =SIMP(statut='o',typ=ma,),
+         NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
+)  ;
+#& 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
@@ -12379,26 +12161,27 @@ DETRUIRE=PROC(nom="DETRUIRE",op=-7,
 # 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 sous forme d une fonction du temps de la distance minimale entre deux structures filaires",
-      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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+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',),),
+            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'),  
+               CHAINE      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
+               POSITION    =SIMP(statut='f',typ='I'  ,max='**'),
+            ),
+            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 03/01/2006   AUTEUR REZETTE C.REZETTE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12416,8 +12199,8 @@ 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
-                    ,fr="Calcule la réponse spectrale d une structure linéaire sous une excitation connue par sa DSP",
+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",)},
          BASE_MODALE     =FACT(statut='o',
@@ -12436,7 +12219,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") ),
@@ -12500,7 +12283,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 22/02/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
@@ -12518,22 +12301,23 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,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.      
 # ======================================================================
-def dyna_line_harm_prod(MATR_MASS,**args):
-  if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo
-  if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo
-  if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo
-  if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene
-  if AsType(MATR_MASS) == matr_asse_gene_c : return harm_gene
-  raise AsException("type de concept resultat non prevu")
+def dyna_line_harm_prod(MATR_RIGI,**args):
+   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="Réponse dynamique complexe d un système à une excitation harmonique",
-                    reentrant='n',
+                    fr="Calcul de la réponse dynamique complexe d'un système à une excitation harmonique",
+                    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 ),
@@ -12548,10 +12332,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 ) ),
+                   UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_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 ),
@@ -12569,30 +12357,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 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& 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="Réponse temporelle d un système à une excitation transitoire",
+                    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 ),
@@ -12612,8 +12401,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' ),),
@@ -12624,8 +12413,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'),
@@ -12636,7 +12426,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' ),
@@ -12655,26 +12445,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 ),
@@ -12691,13 +12507,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 01/04/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
@@ -12716,10 +12532,11 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
-                   fr="Analyse mécanique dynamique non linéaire",
+            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,)),
@@ -12748,24 +12565,22 @@ 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") ),
          ),
-         VARI_COMM           =FACT(statut='f',
-           regles=(AU_MOINS_UN('IRRA',),),
-           IRRA     =SIMP(statut='f',typ=evol_varc),
-           CORROSION  =SIMP(statut='f',typ=carte_corr_r),
-         ),
          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_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",) ),
@@ -12773,22 +12588,29 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
            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")),
          ),
 #-------------------------------------------------------------------
          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'),
@@ -12799,18 +12621,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'),
@@ -12845,8 +12669,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'
@@ -12860,6 +12684,7 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
            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","MUMPS") ),
            b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
@@ -12927,12 +12752,53 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
            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")),
+         ),
+#-------------------------------------------------------------------
+         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",
+                                     ),
+                               ),
+            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',
@@ -12966,6 +12832,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é",
@@ -13004,14 +12880,11 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","
              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',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
@@ -13029,322 +12902,63 @@ 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 12/04/2005   AUTEUR PBADEL P.BADEL 
+#& 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',
-                   fr="Analyse mecanique dynamique explicite",
-         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='**'),
-         ),
-#-------------------------------------------------------------------
-         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'),
-         ),
-#-------------------------------------------------------------------
-         NEWMARK         =FACT(statut='d',
-           ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25),
-           DELTA           =SIMP(statut='f',typ='R',defaut= 0.5),
-         ),
-         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),
-         ),
-         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")),
-         ),
-#-------------------------------------------------------------------
-         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),
-           ),
-#-------------------------------------------------------------------
-         PARM_THETA      =SIMP(statut='f',typ='R'
-                              ,defaut= 1. ),
-#-------------------------------------------------------------------
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& 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.      
-# ======================================================================
-DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
-                     fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale",
-                     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 ),
+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 ),
+           VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
          ),
          INCREMENT       =FACT(statut='o',max='**',
            INST_INIT       =SIMP(statut='f',typ='R' ),
@@ -13376,7 +12990,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
                    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 ),
+           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' ),
@@ -13395,10 +13009,13 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
            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),
@@ -13433,8 +13050,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),
@@ -13454,9 +13070,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),
@@ -13508,7 +13122,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
  )  ;
-#& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
+#& 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
@@ -13529,6 +13143,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
 # RESPONSABLE VABHHTS J.PELLET
 ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,
             UIinfo={"groupes":("Impression",)},
+      fr="Engendre des tests pour la non régression du code (pour développeurs)",
       regles=(UN_PARMI('TOUT','CO'),),
          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
@@ -13537,7 +13152,7 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,
          FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
          PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-5"),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -13555,14 +13170,15 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",
+EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,
+            fr="Exécute un logiciel ou une commande système depuis Aster",
             UIinfo={"groupes":("Impression",)},
          LOGICIEL        =SIMP(statut='f',typ='TXM' ),  
          ARGUMENT        =FACT(statut='f',max='**',
            NOM_PARA        =SIMP(statut='f',typ='TXM' ),  
          ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 14/10/2005   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13588,7 +13204,7 @@ def extr_mode_prod(FILTRE_MODE,**args):
   raise AsException("type de concept resultat non prevu")
 
 EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
-               reentrant='n',
+               reentrant='n',fr="Extraire séléctivement des modes des structures de données modales",
             UIinfo={"groupes":("Résolution",)},
          FILTRE_MODE     =FACT(statut='o',max='**',
            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),),
@@ -13604,7 +13220,11 @@ EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
              PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
            ),
            b_crit_extr     =BLOC(condition = "CRIT_EXTR != None",
-             SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+             regles=(AU_MOINS_UN('SEUIL','SEUIL_X','SEUIL_Y','SEUIL_Z'),),
+             SEUIL           =SIMP(statut='f',typ='R'),
+             SEUIL_X         =SIMP(statut='f',typ='R'),
+             SEUIL_Y         =SIMP(statut='f',typ='R'),
+             SEUIL_Z         =SIMP(statut='f',typ='R'),
            ),    
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
@@ -13613,7 +13233,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 10/06/2004   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
@@ -13650,6 +13270,9 @@ 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 ) ),
@@ -13682,56 +13305,7 @@ EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,reentrant='f',
 
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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",)},
-
-         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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -13757,7 +13331,7 @@ def fact_grad_prod(MATR_ASSE,**args):
 
 FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,
             UIinfo={"groupes":("Résolution",)},
-               fr="Préconditionnement pour résolution par gradient conjugué",
+               fr="Construire une matrice de préconditionnement pour une résolution par gradient conjugué",
                reentrant='n',
          MATR_ASSE       =SIMP(statut='o',
                                typ=(matr_asse_depl_r,matr_asse_temp_r,
@@ -13766,7 +13340,77 @@ FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,
          NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),  
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 01/04/2005   AUTEUR VABHHTS J.PELLET 
+#& 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
@@ -13794,7 +13438,8 @@ def fact_ldlt_prod(MATR_ASSE,**args):
   if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
   raise AsException("type de concept resultat non prevu")
 
-FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place",
+FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,
+               fr="Factoriser une matrice assemblée en un produit de deux matrices triangulaires",
                reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
@@ -13818,7 +13463,7 @@ FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
+#& 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
@@ -13836,7 +13481,7 @@ FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
+FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude, fin du travail engagé par une des commandes DEBUT ou POURSUITE",
             UIinfo={"groupes":("Gestion du travail",)},
          FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
                                typ='TXM',defaut="NON",into=("OUI","NON",) ), 
@@ -13848,7 +13493,7 @@ FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une 
                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
          UNITE           =SIMP(statut='f',typ='I',defaut=6),  
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -13867,11 +13512,11 @@ FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une 
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster,
-                    reentrant='n',
+                    reentrant='n',fr="Crée une fonction constante paramètrée par l'abscisse curviligne",
             UIinfo={"groupes":("Fonction",)},
          TYPE_FLUI_STRU  =SIMP(statut='o',typ=(type_flui_stru) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/11/2004   AUTEUR DURAND C.DURAND 
+#& 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
@@ -13901,10 +13546,11 @@ def form_pyth_ops(self,d):
 
 FORMULE=FORM(nom="FORMULE",op_init=form_pyth_ops,op=-5,
              sd_prod=formule,UIinfo={"groupes":("Fonction",)},
+             fr="Définit une formule réelle à partir de son expression mathématique",
          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
@@ -13927,7 +13573,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",
@@ -13941,76 +13587,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 10/06/2004   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_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,sd_prod=matr_asse_gene_r,
-               fr="Generateur de matrice aleatoire",
-               reentrant='n',
-            UIinfo={"groupes":("Fonction",)},
-   MATR_MOYEN   = SIMP(statut='o', typ=matr_asse_gene_r),
-   COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1),
-   INIT_ALEA    =SIMP(statut='f',typ='I'),
-) ;
-   
-#& MODIF COMMANDE  DATE 10/06/2004   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="Generateur de variable aleatoire",
-               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
 # ======================================================================
@@ -14037,7 +13613,7 @@ IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
          VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
          CHARGE          =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**', ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -14056,7 +13632,7 @@ IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,
-            UIinfo={"groupes":("Fonction",)},
+            UIinfo={"groupes":("Fonction",)},fr="Ecrit le résultat d'une analyse modale au format du code CLASSI",
          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ',
                         'LIST_ORDRE' ),),
          UNITE_CLASSI    =SIMP(statut='o',typ='I' ),
@@ -14080,473 +13656,46 @@ IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,
          ),
          AMOR            =SIMP(statut='o',typ='R',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
+#& 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="Impression du contenu d un concept utilisateur (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 05/10/2004   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    
-# 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
-IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b",
-            UIinfo={"groupes":("Fonction",)},
-                    fr="Imprime le fichier de configuration de HOMARD.",
-                    ang="Writes the configuration file for HOMARD.",
-#
-# 1. Le niveau d'information
-#
-         INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. 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." ),
-#
-# 3. Le nom local du fichier de configuration HOMARD
-#
-         UNITE_CONF    =SIMP(statut='o',typ='I'),
-#
-# 4. Le nom local du fichier de données HOMARD
-#
-         UNITE_DONN    =SIMP(statut='f',typ='I'),
-#
-# 5. Gestion des éléments autres que des simplexes
-#       0 : autres elements refuses (defaut)
-#       1 : raffinement sur les simplexes, mais autres acceptes
-#       2 : tous
-#
-         NON_SIMPLEXE   = SIMP(statut='f',typ='I',defaut=0,into=(0,1,2),
-                          fr="Type d'éléments acceptés.",
-                          ang="Type of authorized elements." ),
-#
-# 6. Le type de traitement :
-#
-         TRAITEMENT      =FACT(statut='o',
-#
-# 6.1. TROIS CHOIX EXCLUSIFS :
-#
-#      A. ADAPTATION PAR UN INDICATEUR D'ERREUR, AVEC TROIS VARIANTES :
-#         . RAFFINEMENT ET DERAFFINEMENT
-#         . RAFFINEMENT SEUL
-#         . DERAFFINEMENT SEUL
-#      B. ADAPTATION UNIFORME, AVEC DEUX VARIANTES :
-#         . RAFFINEMENT SEUL
-#         . DERAFFINEMENT SEUL
-#         . RIEN : LE MAILLAGE EST LE MEME A LA SORTIE ET A L'ENTREE
-#      C. INFORMATION SUR UN MAILLAGE
-#
-           regles=( UN_PARMI('ADAPTATION','UNIFORME','INFORMATION'),),
-           ADAPTATION      =SIMP(statut='f',typ='TXM',     
-                                 fr="Adaptation libre",
-                                 ang="Free adaptation",
-                                 into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ),
-           UNIFORME        =SIMP(statut='f',typ='TXM',     
-                                 fr="Adaptation uniforme",
-                                 ang="Uniforme adaptation",
-                                 into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
-           INFORMATION     =SIMP(statut='f',typ='TXM',
-                                 fr="Information sur un maillage",
-                                 ang="Information on a mesh",
-                                 into=("OUI",) ),
-#
-# 6.2. LES CONTRAINTES :
-#
-# 6.2.1. POUR DE L'ADAPTATION LIBRE, IL FAUT :
-#      A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
-#      B. LE NOM MED DU MAILLAGE D'ENTREE
-#      C. LE NOM MED DE L'INDICATEUR D'ERREUR
-#      D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
-#      E. LA MISE A JOUR DE SOLUTION
-#      F. LE NOM MED DU MAILLAGE DE SORTIE
-#      REMARQUE : IL FAUT DES CRITERES, MAIS ON NE SAIT PAS LESQUELS
-#
-# 6.2.2. POUR DE L'ADAPTATION UNIFORME
-#          IL FAUT :
-#      A. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
-#      B. LE NOM MED DU MAILLAGE DE SORTIE
-#          IL NE FAUT PAS :
-#      A. LE NOM MED DE L'INDICATEUR D'ERREUR
-#      B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR
-#      C. LES CRITERES
-#      REMARQUE : A L'ITERATION 0, OU AUX ITERATIONS SUIVANTES SI MAJ DE SOLUTION,
-#                 IL FAUT LE NOM MED DU MAILLAGE D'ENTREE
-#
-# 6.2.3. POUR DE L'INFORMATION :
-#          IL FAUT :
-#      A. LE NOM MED DU MAILLAGE D'ENTREE
-#          IL NE FAUT PAS :
-#      A. LE NOM MED DE L'INDICATEUR D'ERREUR
-#      B. LE NOM DE LA COMPOSANTE DE L'INDICATEUR D'ERREUR
-#      C. LES CRITERES
-#      D. LE NUMERO D'ITERATION DU MAILLAGE DE DEPART
-#      E. LA MISE A JOUR DE SOLUTION
-#
-           b_maillage_initial =BLOC(condition = "( INFORMATION != None ) or ( ADAPTATION != None ) ",
-                           fr="Nom MED du maillage en entrée",
-                           ang="MED name of the in-mesh",
-                           NOM_MED_MAILLAGE_N   =SIMP(statut='o',typ='TXM',),
-                           ) ,
-#
-           b_maillage_initial_uniforme =BLOC(condition = "( UNIFORME != None ) ",
-                           fr="Nom MED du maillage en entrée",
-                           ang="MED name of the in-mesh",
-                           NOM_MED_MAILLAGE_N   =SIMP(statut='f',typ='TXM',),
-                           ) ,
-#
-           b_iteration =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) ",
-                           fr="Nom MED du maillage en sortie, numero d'iteration",
-                           ang="MED name of the out-mesh, iteration rank",
-                           NITER                =SIMP(statut='o',typ='I',
-                           fr="Numéro d'itération.",
-                           ang="Iteration number." ),
-                           NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',
-                           fr="Nom MED du maillage en sortie",
-                           ang="MED name of the out-mesh" ),
-                           ) ,
-#
-           b_indicateur_d_erreur  =BLOC(condition = "ADAPTATION != None",
-                           fr="Indicateur d'erreur",
-                           ang="Error indicator",
-                           regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'),
-                                   EXCLUS('NUME_ORDRE','INST'),
-                                   EXCLUS('NUME_ORDRE','RESULTAT'),
-                                   PRESENT_PRESENT('RESULTAT','NOM_CHAM'),),
-                           NOM_MED  =SIMP(statut='o',typ='TXM',
-                           fr="Nom MED de l'indicateur d'erreur.",
-                           ang="MED name of error indicator.",),
-                           COMPOSANTE  =SIMP(statut='o',typ='TXM',
-                           fr="Nom de la composante de l'indicateur d'erreur retenue.",
-                           ang="Name of the selected component of the error indicator.",),
-                           NUME_ORDRE  =SIMP(statut='f',typ='I',
-                           fr="Numero d'ordre de l'indicateur.",
-                           ang="Rank number of the error indicator.",),
-                           INST        =SIMP(statut='f',typ='R',
-                           fr="Instant de l'indicateur.",
-                           ang="Instant of the error indicator.",),
-                           b_precision     =BLOC(condition="(INST != None)",
-                             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,
-                             fr="Précision sur le choix de l'instant associé",
-                             ang="Accuracy over instant choice" ),
-                             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
-                             fr="Critère de précision sur le choix de l'instant associé",
-                             ang="Accuracy criterium over instant choice" ),),
-                           RESULTAT  =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
-                           fr="Concept contenant l'indicateur.",
-                           ang="Conceipt wich contains the error indicator.",),
-                           NOM_CHAM  =SIMP(statut='f',typ='TXM',
-                           fr="Nom du champ dans le résultat de l'indicateur.",
-                           ang="Name of the field of the error indicator.",),
-                           ) ,
-#
-           b_critere_de_raffinement =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" ,
-                           fr="Critère de raffinement.",
-                           ang="Refinement threshold.",
-                           regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
-                           CRIT_RAFF_ABS   =SIMP(statut='f',typ='R',
-                                                 fr="Critère absolu",
-                                                 ang="Absolute threshold"  ),
-                           CRIT_RAFF_REL   =SIMP(statut='f',typ='R',
-                                                 fr="Critère relatif",
-                                                 ang="Relative threshold" ),
-                           CRIT_RAFF_PE    =SIMP(statut='f',typ='R',
-                                                 fr="Pourcentage d'éléments",
-                                                 ang="Percentage of elements" ),
-                           ) ,
-#
-           b_critere_de_deraffinement =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" ,
-                           fr="Critère de déraffinement.",
-                           ang="Unrefinement threshold.",
-                           regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
-                           CRIT_DERA_ABS   =SIMP(statut='f',typ='R' ,
-                                                 fr="Critère absolu",
-                                                 ang="Absolute threshold" ),
-                           CRIT_DERA_REL   =SIMP(statut='f',typ='R',
-                                                 fr="Critère relatif",
-                                                 ang="Relative threshold" ),
-                           CRIT_DERA_PE    =SIMP(statut='f',typ='R',
-                                                 fr="Pourcentage d'éléments",
-                                                 ang="Percentage of elements" ),
-                           ) ,
-#
-           b_niveau_maximum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or \
-                                                  ( UNIFORME == 'RAFFINEMENT' )" ,
-                           NIVE_MAX        =SIMP(statut='f',typ='I',
-                                                 fr="Niveau maximum de profondeur de raffinement",
-                                                 ang="Maximum level for refinement"),
-                           ) ,
-#
-           b_niveau_minimum =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or \
-                                                  ( UNIFORME == 'DERAFFINEMENT' )" ,
-                           NIVE_MIN        =SIMP(statut='f',typ='I',
-                                                 fr="Niveau minimum de déraffinement",
-                                                 ang="Minimum level for unrefinement" ),
-                           ) ,
-#
-# 6.3. Le suivi de frontiere eventuel :
-#
-         NOM_MED_MAILLAGE_FRONTIERE =SIMP(statut='f',typ='TXM',
-                           fr="Nom MED du maillage de la frontiere à suivre",
-                           ang="MED name of the boundary mesh" ),
-#
-         b_frontiere_1 =BLOC ( condition = "NOM_MED_MAILLAGE_FRONTIERE != None" ,
-                           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-                                                 fr="Groupes définissant la frontière",
-                                                 ang="Groups which define the boundary" ),
-                               ) ,
-#
-         ),
-#
-# 7. Mise à jour de champs sur le nouveau maillage
-#
-         MAJ_CHAM        =FACT(statut='f',max='**',
-                           fr="Mise à jour de champs sur le nouveau maillage.",
-                           ang="Updating of fields over the new mesh.",
-                           regles=(AU_MOINS_UN('NUME_ORDRE','INST','RESULTAT'),
-                                   EXCLUS('NUME_ORDRE','INST'),
-                                   EXCLUS('NUME_ORDRE','RESULTAT'),
-                                   PRESENT_PRESENT('RESULTAT','NOM_CHAM'),),
-                           NOM_MED  =SIMP(statut='o',typ='TXM',
-                           fr="Nom MED du champ à mettre à jour.",
-                           ang="MED name of field.",),
-                           NUME_ORDRE  =SIMP(statut='f',typ='I',
-                           fr="Numero d'ordre du champ à mettre à jour.",
-                           ang="Rank number of field.",),
-                           INST        =SIMP(statut='f',typ='R',
-                           fr="Instant du champ à mettre à jour.",
-                           ang="Instant of field.",),
-                           b_precision     =BLOC(condition="(INST != None)",
-                             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,
-                             fr="Précision sur le choix de l'instant associé",
-                             ang="Accuracy over instant choice" ),
-                             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
-                             fr="Critère de précision sur le choix de l'instant associé",
-                             ang="Accuracy criterium over instant choice" ),),
-                           RESULTAT  =SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
-                           fr="Concept contenant le champ à mettre à jour.",
-                           ang="Conceipt wich contains the field.",),
-                           NOM_CHAM  =SIMP(statut='f',typ='TXM',
-                           fr="Nom du champ dans le résultat du champ à mettre à jour.",
-                           ang="Name of the field.",),
-         ),
-#
-# 8. L'ANALYSE DU MAILLAGE
-#
-         ANALYSE         =FACT(statut='f',
-                               fr="Analyse du maillage.",
-                               ang="Mesh analysis.",
-#
-#    5 CHOIX NON EXCLUSIFS, AVEC DEUX VARIANTES (OUI/NON) :
-#    A. NOMBRE DES ELEMENTS
-#    B. QUALITE DES ELEMENTS
-#    C. INTERPENETRATION DES ELEMENTS
-#    D. CONNEXITE DU MAILLAGE
-#    E. TAILLE DES DIFFERENTS SOUS-DOMAINES
-#
-           regles=(AU_MOINS_UN('NOMBRE','QUALITE','INTERPENETRATION','CONNEXITE','TAILLE'),),
-#
-         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" ),
-#
-         QUALITE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
-                          fr="Qualité du maillage",
-                          ang="Mesh quality" ),
-#
-         INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
-                          fr="Controle de la non interpénétration des éléments.",
-                          ang="Overlapping checking." ),
-#
-         CONNEXITE       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
-                          fr="Connexité du maillage.",
-                          ang="Mesh connexity." ),
-#
-         TAILLE          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
-                          fr="Tailles des sous-domaines du maillage.",
-                          ang="Sizes of mesh sub-domains." ),
-#
-         ),
-#
-)  ;
-#& MODIF COMMANDE  DATE 15/11/2004   AUTEUR MCOURTOI M.COURTOIS 
-#            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="Impression de fonctions sur fichiers, les valeurs ayant été récupérées par RECU_FONCTION",
-            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 17/05/2005   AUTEUR CIBHHLV L.VIVAN 
+#& 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
@@ -14565,7 +13714,7 @@ IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
-               fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire",
+            fr="Imprimer le résultat d'un calcul dynamique en variables généralisées au format RESULTAT",
             UIinfo={"groupes":("Impression",)},
          FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
          UNITE           =SIMP(statut='f',typ='I',defaut=8),  
@@ -14580,22 +13729,20 @@ 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 ),
-           TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_MODE       =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 ),
            TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
            FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
            LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
-           b_prec_crit     =BLOC(condition = "LIST_FREQ != None or FREQ != None",
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
+           TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
                                    into=("RELATIF","ABSOLU") ),
-           ),
            TOUT_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
            NUME_CMP_GENE   =SIMP(statut='f',typ='I',max='**'),
            TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
@@ -14607,7 +13754,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
            INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -14627,7 +13774,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
 # ======================================================================
 IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
             UIinfo={"groupes":("Impression",)},
-                 fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)",
+                 fr="Imprimer le contenu des objets créés par JEVEUX (pour développeur)",
          ENTITE          =SIMP(fr="choix de l'observation",statut='o',typ='TXM',
                                into=("DISQUE","MEMOIRE","REPERTOIRE",    
                                      "OBJET","ATTRIBUT","SYSTEME") ),
@@ -14662,7 +13809,7 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
          ),
          COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
 )  ;
-#& MODIF COMMANDE  DATE 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
+#& 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
@@ -14682,6 +13829,7 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
 # ======================================================================
 IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
                     UIinfo={"groupes":("Impression",)},
+         fr="Impression d'une structure de données MACR_ELEM_DYNA au format IDEAS MISS3D PLEXUS ou CADYRO",
          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
          FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
                                into=("MISS_3D","IDEAS","CADYRO","PLEXUS") ),
@@ -14720,7 +13868,7 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
          ),
 
 )  ;
-#& MODIF COMMANDE  DATE 08/02/2005   AUTEUR CIBHHLV L.VIVAN 
+#& 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
@@ -14739,7 +13887,7 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
-                  fr="Impression des matrices élémentaires et des matrices assemblées",
+                  fr="Imprimer sur un fichier au format IDEAS ou RESULTAT des matrices élémentaires et assemblées",
                   UIinfo={"groupes":("Impression",)},
                   regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
 # ======================================================================
@@ -14791,7 +13939,7 @@ IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
          ),
 # ======================================================================
 )  ;
-#& MODIF COMMANDE  DATE 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& 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
@@ -14811,13 +13959,14 @@ IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
 # ======================================================================
 IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
             UIinfo={"groupes":("Impression",)},
+         fr="Impression des données d'entrée pour une étude sismique avec MISS3D",
          regles=(UN_PARMI('INST_INIT','FREQ_INIT'),
                  PRESENT_PRESENT('INST_INIT','INST_FIN'),
                  PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),),
          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' ),
          ),
@@ -14836,53 +13985,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 12/04/2005   AUTEUR CIBHHPD L.SALMONA 
+#& 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
@@ -14902,7 +14005,7 @@ IMPR_OAR =PROC(nom="IMPR_OAR",op= 40,
 # ======================================================================
 IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
             UIinfo={"groupes":("Impression",)},
-               fr="Impression du résultat d un calcul (différents formats)",
+               fr="Imprimer un maillage et/ou les résultats d'un calcul (différents formats)",
          MODELE          =SIMP(statut='f',typ=modele_sdaster),
 
          FORMAT          =SIMP(statut='f',typ='TXM',position='global',defaut="RESULTAT",
@@ -14951,10 +14054,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)!=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'),
@@ -15005,8 +14113,8 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
            ),
 ###
            b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
-           ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""",
-                                fr="sélection des entités toplogiques",
+           ((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'MED'))""",
+                                fr="sélection des entités topologiques",
              TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
              GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
@@ -15068,7 +14176,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 15/11/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& 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
@@ -15091,7 +14199,8 @@ 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 d un concept de type table_sdaster",
+                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é.",
@@ -15200,7 +14309,7 @@ INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include,
          UNITE = SIMP(statut='o',typ='I'),
          INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 );
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -15220,7 +14329,7 @@ INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include,
 # ======================================================================
 INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,
             UIinfo={"groupes":("Modélisation",)},
-                       fr=" ",
+         fr="Récupérer les caractéristiques d'un matériau dans le Catalogue Materiaux d'Aster ",
          sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0,
          NOM_AFNOR       =SIMP(statut='o',typ='TXM' ),  
          TYPE_MODELE     =SIMP(statut='o',typ='TXM',into=("REF","PAR") ),
@@ -15238,151 +14347,28 @@ 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",)},
-
-         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 10/06/2004   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 sur un maillage 2D",reentrant='n',
+# 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) ),
 
@@ -15443,7 +14429,7 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -15464,7 +14450,7 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
 # RESPONSABLE G8BHHXD X.DESROCHES
 INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster,
             UIinfo={"groupes":("Post traitements",)},
-                  fr="Définition d un chemin sur un maillage 3D",reentrant='n',
+                  fr="Définir un chemin de type segment de droite dans un maillage 3D",reentrant='n',
          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
          TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
@@ -15482,7 +14468,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 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
@@ -15505,18 +14491,13 @@ 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,
-                fr="Lire un champ dans un fichier et le stocker dans un concept.",
-                reentrant='n',
+                fr="Lire un champ dans un fichier au format MED et le stocker dans un concept.",
+                reentrant='n',UIinfo={"groupe":("Résultats et champs",)},
          MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster,),
          FORMAT          =SIMP(statut='f',typ='TXM',defaut="MED",into=("MED",),),
          UNITE           =SIMP(statut='f',typ='I',defaut= 81,),  
@@ -15551,7 +14532,7 @@ LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
                   ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 20/09/2004   AUTEUR DURAND C.DURAND 
+#& 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
@@ -15579,7 +14560,8 @@ def lire_fonction_prod(self,TYPE,**args):
   raise AsException("type de concept resultat non prevu")
 
 LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod,
-                   fr="Lecture d une fonction ou d une nappe dans un fichier ",
+                   fr="Lit les valeurs réelles dans un fichier de données représentant une fonction et"
+                     +" crée un concept de type fonction ou nappe",
                    reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          FORMAT          =SIMP(statut='f',typ='TXM',into=("LIBRE",),defaut="LIBRE"  ),
@@ -15614,7 +14596,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 20/09/2004   AUTEUR DURAND C.DURAND 
+#& 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
@@ -15635,8 +14617,8 @@ LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_foncti
 
 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,
-                    fr="Lecture sur un fichier externe de  fonctions complexes pour créer une matrice interspectrale",
+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",)},
          UNITE           =SIMP(statut='o',typ='I' ),
@@ -15651,7 +14633,7 @@ LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_int
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -15671,7 +14653,7 @@ LIRE_INTE_SPEC=MACRO(nom="LIRE_INTE_SPEC",op=lire_inte_spec_ops,sd_prod=tabl_int
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage_sdaster,
-                   fr="Lecture d'un fichier de maillage",
+                   fr="Crée un maillage par lecture d'un fichier au format Aster ou Med",
                    ang="Readings of a mesh file",
                    reentrant='n',
             UIinfo={"groupes":("Maillage",)},
@@ -15709,7 +14691,7 @@ LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage_sdaster,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 #
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -15733,7 +14715,7 @@ def lire_miss_3d_prod(TYPE_RESU,**args):
   raise AsException("type de concept resultat non prevu")
 
 LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
-                  fr="Restitution au format MISS3D d une évolution harmonique ou transitoire",
+                  fr="Restituer sur base physique une réponse harmonique ou transitoire issue de MISS3D",
                   reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
@@ -15742,7 +14724,7 @@ LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -15761,7 +14743,7 @@ LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
-                 fr=" ",
+                 fr="Lire le fichier de résultats au format IDEAS produit par le logiciel EUROPLEXUS",
                  reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
@@ -15782,7 +14764,7 @@ LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 11/05/2005   AUTEUR MCOURTOI M.COURTOI
+#& MODIF COMMANDE  DATE 03/10/2005   AUTEUR NICOLAS O.NICOLA
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15846,8 +14828,9 @@ def l_nom_cham_pas_elga(): return (
                            )
 
 LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
-            UIinfo={"groupes":("Maillage",)},
-               fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight",
+            UIinfo={"groupes":("Résultats et champs",)},
+               fr="Lire dans un fichier, soit format IDEAS, soit au format ENSIGHT soit au format MED,"
+                 +" des champs et les stocker dans une SD résultat",
 
 
 # 0) mots clés généraux :
@@ -15903,6 +14886,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
              POSI_ORDRE      =SIMP(statut='o',typ='I',min=2,max=2),
              POSI_NUME_MODE  =SIMP(statut='f',typ='I',min=2,max=2),
              POSI_MASS_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
+             POSI_AMOR_GENE  =SIMP(statut='f',typ='I',min=2,max=2),
              POSI_INST       =SIMP(statut='f',typ='I',min=2,max=2),
              POSI_FREQ       =SIMP(statut='f',typ='I',min=2,max=2),
              NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),),
@@ -15953,53 +14937,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
            ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 16/06/2004   AUTEUR DURAND C.DURAND 
-#            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 concept de type table",
-            UIinfo={"groupes":("Maillage",)},
-         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 22/02/2005   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16019,312 +14957,426 @@ LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=lire_table_prod,
 # ======================================================================
 # 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):
-  maillage_np1=ADAPTATION['MAILLAGE_NP1']
+#
+# 0. Typage des structures produites
+#
+  maillage_np1=args['MAILLAGE_NP1']
   self.type_sdprod(maillage_np1,maillage_sdaster)
+#
+  if ( args['MAILLAGE_NP1_ANNEXE'] is not None ) :
+    maillage_np1_annexe=args['MAILLAGE_NP1_ANNEXE']
+    self.type_sdprod(maillage_np1_annexe,maillage_sdaster)
+#
   if MAJ_CHAM == None:return None
 # 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.",
-                     docu="U7.03.01-b",
+                     docu="U7.03.01-b",UIinfo={"groupe":("Maillage",)},
 #
 # 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. Version de HOMARD
 #
-         VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V7_1",
-                               into=("V7_1", "V7_N", "V7_N_PERSO"),
-                           fr="Version de HOMARD",
-                           ang="HOMARD release"),
+  VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_2",
+                        into=("V8_2", "V8_N", "V8_N_PERSO"),
+                        fr="Version de HOMARD",
+                        ang="HOMARD release"),
 #
-# 3. Langue des messages issus de HOMARD
+# 3. Langue des messages produits par 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." ),
+  LANGUE = SIMP(statut='f',typ='TXM',defaut="FRANCAIS",    
+                into=("FRANCAIS","FRENCH","ANGLAIS","ENGLISH",),
+                fr="Langue des messages produits par HOMARD.",
+                ang="Language for HOMARD messages." ),
 #
-# 4. Gestion des éléments autres que des simplexes
-#       0 : autres elements refuses
-#       1 : raffinement sur les simplexes, mais autres acceptes
-#       2 : tous (defaut)
+# 4. Les maillages
+# 4.1. Quel que soit le type de traitement, il faut donner  :
+#      A. Le concept du maillage initial (entree)
+#      B. Le concept du maillage final (sortie)
 #
-         NON_SIMPLEXE   = SIMP(statut='f',typ='I',defaut=2,into=(0,1,2),
-                          fr="Type d'éléments acceptés.",
-                          ang="Type of authorized elements." ),
+  MAILLAGE_N   = SIMP(statut='o',typ=maillage_sdaster,
+                      fr="Maillage avant adaptation",
+                      ang="Mesh before adaptation" ),
 #
-# 5. Le type de traitement :
+  MAILLAGE_NP1 = SIMP(statut='o',typ=CO,
+                      fr="Maillage apres adaptation",
+                      ang="Mesh after adaptation" ),
 #
-         ADAPTATION      =FACT(statut='o',
-                           fr="Type d'adaptation",
-                           ang="Type of adaptation",
+# 4.2. Eventuellement, on peut produire un maillage annexe
+#      Actuellement, c'est le maillage n+1, mais de degré différent.
 #
-# 5.1. Deux choix d'adaptation exclusifs :
+  MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO,
+                             fr="Maillage annexe apres adaptation",
+                             ang="Additional mesh after adaptation" ),
 #
-# 5.1.
-#      A. Selon un indicateur d'erreur, avec trois variantes :
-#         . Raffinement et deraffinement
-#         . Raffinement seul
-#         . Deraffinement seul
-#      B. Uniforme, avec trois variantes :
-#         . Raffinement seul
-#         . Deraffinement seul
-#         . Rien : le maillage est le meme a la sortie et a l'entree
+# 5. Le pilotage de l'adaptation, avec les variantes suivantes :
+#  . Raffinement et deraffinement, selon un champ d'indicateurs d'erreur
+#  . Raffinement seul, selon un champ d'indicateurs d'erreur
+#  . Deraffinement seul, selon un champ d'indicateurs d'erreur
+#  . Raffinement uniforme : toutes les mailles sont divisées
+#  . Deraffinement uniforme : toutes les mailles sont regroupées
+#  . Rien : le maillage est le meme a la sortie et a l'entree
 #
-           regles=(
-                   UN_PARMI('LIBRE','UNIFORME'),
-                  ),
-           LIBRE          = SIMP(statut='f',typ='TXM',
-                                 into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT"),    
-                           fr="Adaptation selon un indicateur d'erreur.",
-                           ang="Adaptation among an error indicator" ),
-           UNIFORME       = SIMP(statut='f',typ='TXM',
-                                 into=("RAFFINEMENT","DERAFFINEMENT","RIEN"),    
-                           fr="Adaptation uniforme.",
-                           ang="Uniform adaptation" ),
+  ADAPTATION = SIMP(statut='f',typ='TXM',
+                    into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT","RAFFINEMENT_ZONE", \
+                          "RAFFINEMENT_UNIFORME","DERAFFINEMENT_UNIFORME","RIEN"),    
+                    fr="Pilotage de l'adaptation : selon un indicateur d'erreur ou uniforme.",
+                    ang="Adaptation control : among an error indicator or uniform" ),
 #
-# 5.2. Quel que soit le type de traitement, il faut donner  :
-#      A. Le concept du maillage initial
-#      B. Le concept du maillage final
+# 6. Pour de l'adaptation libre, il faut un indicateur d'erreur
 #
-           MAILLAGE_N     = SIMP(statut='o',typ=maillage_sdaster,
-                           fr="Maillage avant adaptation",
-                           ang="Mesh before adaptation" ),
-           MAILLAGE_NP1   = SIMP(statut='o',typ=CO,
-                           fr="Maillage apres adaptation",
-                           ang="Mesh after adaptation" ),
+  b_indicateur_d_erreur = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
+                                              (ADAPTATION == 'RAFFINEMENT') or \
+                                              (ADAPTATION == 'DERAFFINEMENT') " ,
+                                fr="Pour une adaptation libre, choix de l'indicateur d'erreur ou d'une zone à raffiner",
+                                ang="For free adaptation, selection of error indicator or zone",
 #
-# 5.3. Pour de l'adaptation libre, il faut l'indicateur d'erreur
+    regles=(UN_PARMI('CHAM_GD','RESULTAT_N')),
 #
+# 6.1. Repérage de la zone à raffiner à l'aide d'un indicateur
 #
-           b_indicateur_d_erreur   =BLOC( condition = " LIBRE != None " ,
-                           fr="Choix de l'indicateur d'erreur",
-                           ang="Selection of error indicator",
+# 6.1.1. Sous forme de champ de grandeur
 #
-# 5.3.1. Le nom du concept resultat_sdaster
+    CHAM_GD    = SIMP(statut='f',typ=cham_gd_sdaster,
+                      fr="Champ de grandeur Code_Aster contenant l'indicateur d'erreur",
+                      ang="Code_Aster champ de grandeur with error indicator" ),
 #
-                           RESULTAT_N     = SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ,
-                           fr="Concept resultat Code_Aster contenant l'indicateur d'erreur",
-                           ang="Result with error indicator" ),
+# 6.1.2. Sous forme de concept resultat_sdaster
 #
-# 5.3.2. Le champ d'indicateur d'erreur
+    RESULTAT_N = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther) ,
+                      fr="Concept resultat Code_Aster contenant l'indicateur d'erreur",
+                      ang="Code_Aster result with error indicator" ),
 #
-                           INDICATEUR     = SIMP(statut='o',typ='TXM',     
-                           fr="Champ de l'indicateur d'erreur",
-                           ang="Error indicator field" ),
+    b_champ_indicateur = BLOC(condition="(RESULTAT_N != None)",
+      INDICATEUR = SIMP(statut='o',typ='TXM',     
+                        fr="Champ de l'indicateur d'erreur dans le résultat",
+                        ang="Error indicator field in the result structure" ),
+    ),
 #
-# 5.3.3. La composante retenue
+# 6.1.3. La composante retenue
 #
-                           NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
-                           fr="Composante retenue",
-                           ang="Selected component" ),
+    b_composante = BLOC(condition=" (RESULTAT_N != None) or (CHAM_GD != None) ",
+                        fr="Choix de la composante pour l'indicateur",
+                        ang="Component selection for error indicator",
 #
-# 5.3.4. Le paramètre temporel pour l'indicateur
+      NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
+                            fr="Composante retenue pour l'indicateur d'erreur",
+                            ang="Selected component for error indicator" ),
 #
-                           regles=(EXCLUS('NUME_ORDRE','INST'),),
+    ),
 #
-# 5.3.4.1. Soit le numero d'ordre
+# 6.1.4. Le paramètre temporel pour l'indicateur
 #
-                           NUME_ORDRE     = SIMP(statut='f',typ='I',
-                           fr="Numero d ordre",
-                           ang="Rank" ),  
+    b_parametre_temporel = BLOC(condition="(RESULTAT_N != None)",
+                                fr="Choix éventuel du paramètre temporel pour l'indicateur",
+                                ang="Time selection for error indicator (option)",
 #
-# 5.3.4.2. Soit l'instant
-# 5.3.4.2.1. Sa valeur
+      regles=(EXCLUS('NUME_ORDRE','INST'),),
 #
-                           INST           = SIMP(statut='f',typ='R',
-                           fr="Instant associé",
-                           ang="Instant" ),
+# 6.1.4.1. Soit le numero d'ordre
 #
-# 5.3.4.2.2. La précision du choix de l'instant
+      NUME_ORDRE = SIMP(statut='f',typ='I',
+                        fr="Numero d ordre",
+                        ang="Rank" ),  
 #
-                           b_precision     =BLOC(condition="(INST != None)",
-                             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,
-                             fr="Précision sur le choix de l'instant associé",
-                             ang="Accuracy over instant choice" ),
-                             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
-                             fr="Critère de précision sur le choix de l'instant associé",
-                             ang="Accuracy criterium over instant choice" ),),
+# 6.1.4.2. Soit l'instant
+# 6.1.4.2.1. Sa valeur
 #
-                           ) ,
+      INST       = SIMP(statut='f',typ='R',
+                        fr="Instant associé",
+                        ang="Instant" ),
 #
-# 5.4. Les criteres pour de l'adaptation libre :
-#        absolu, relatif, en proportion d'entite
-# 5.4.1. Pour le raffinement :
-#
-           b_critere_de_raffinement =BLOC( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) " ,
-                           fr="Critère de raffinement.",
-                           ang="Refinement threshold.",
-                           regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
-                           CRIT_RAFF_ABS  = SIMP(statut='f',typ='R',
-                                                   fr="Critère absolu",
-                                                   ang="Absolute threshold" ),  
-                           CRIT_RAFF_REL  = SIMP(statut='f',typ='R',
-                                                   fr="Critère relatif : fraction entre 0 et 1",
-                                                   ang="Relative threshold : ratio between 0 and 1" ),  
-                           CRIT_RAFF_PE   = SIMP(statut='f',typ='R',
-                                                   fr="Pourcentage d'éléments : fraction entre 0 et 1",
-                                                   ang="Percentage of elements : ratio between 0 and 1" ),  
-                           ) ,
+# 6.1.4.2.2. La précision du choix de l'instant
 #
-# 5.4.2. Pour le deraffinement :
-#
-           b_critere_de_deraffinement =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) " ,
-                           fr="Critère de déraffinement.",
-                           ang="Unrefinement threshold.",
-                           regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
-                           CRIT_DERA_ABS  = SIMP(statut='f',typ='R' ,
-                                                 fr="Critère absolu",
-                                                 ang="Absolute threshold" ),  
-                           CRIT_DERA_REL  = SIMP(statut='f',typ='R',
-                                                 fr="Critère relatif : fraction entre 0 et 1",
-                                                 ang="Relative threshold : ratio between 0 and 1" ),  
-                           CRIT_DERA_PE   = SIMP(statut='f',typ='R',
-                                                 fr="Pourcentage d'éléments : fraction entre 0 et 1",
-                                                 ang="Percentage of elements : ratio between 0 and 1" ),  
-                           ) ,
+      b_precision = BLOC(condition="(INST != None)",
+                         fr="Choix de la précision du choix de l'instant",
+                         ang="Selection for instant choice",
+        PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
+                         fr="Précision sur le choix de l'instant associé",
+                         ang="Accuracy over instant choice" ),
+        CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
+                         fr="Critère de précision sur le choix de l'instant associé",
+                         ang="Accuracy criterium over instant choice" ),
+      ),
 #
-# 5.5. Les niveaux extremes pour le maillage adapte
-# 5.5.1. Pour le raffinement :
+    ),
+#
+  ) ,
 #
-           b_niveau_maximum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) or \
-                                                  ( UNIFORME == 'RAFFINEMENT' ) " ,
+# 7. Les criteres pour de l'adaptation libre avec un indicateur d'erreur :
+#        absolu, relatif, en proportion d'entite
+# 7.1. Pour le raffinement :
+#
+  b_critere_de_raffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
+                                                 (ADAPTATION == 'RAFFINEMENT') " ,
+                                fr="Critère de raffinement.",
+                                ang="Refinement threshold.",
+#
+    regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
+#
+    CRIT_RAFF_ABS = SIMP(statut='f',typ='R',
+                         fr="Critère absolu",
+                         ang="Absolute threshold" ),  
+    CRIT_RAFF_REL = SIMP(statut='f',typ='R',
+                         fr="Critère relatif : fraction réelle entre 0. et 1.",
+                         ang="Relative threshold : ratio between 0. and 1." ),  
+    CRIT_RAFF_PE  = SIMP(statut='f',typ='R',
+                         fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.",
+                         ang="Percentage of elements : ratio between 0. and 1." ),  
+  ) ,
+#
+# 7.2. Pour le deraffinement :
+#
+  b_critere_de_deraffinement = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
+                                                   (ADAPTATION == 'DERAFFINEMENT') " ,
+                                     fr="Critère de déraffinement.",
+                                     ang="Unrefinement threshold.",
+#
+    regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
+#
+    CRIT_DERA_ABS = SIMP(statut='f',typ='R' ,
+                         fr="Critère absolu",
+                         ang="Absolute threshold" ),  
+    CRIT_DERA_REL = SIMP(statut='f',typ='R',
+                         fr="Critère relatif : fraction réelle entre 0. et 1.",
+                         ang="Relative threshold : ratio between 0. and 1." ),  
+    CRIT_DERA_PE  = SIMP(statut='f',typ='R',
+                         fr="Pourcentage d'éléments : fraction réelle entre 0. et 1.",
+                         ang="Percentage of elements : ratio between 0. and 1." ),  
+  ) ,
+#
+# 8. Pour de l'adaptation par zone, définitions des zones
+# Remarque : on impose le 3D
+#
+  b_zone = BLOC( condition = " (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
+                                fr="Pour une adaptation selon une zone à raffiner",
+                                ang="For adaptation among zone",
+    ZONE = FACT(statut='f',max='**',
+                  fr="Définition de zones à raffiner.",
+                  ang="Refined zone definition.",
+#
+      regles=(AU_MOINS_UN('X_MINI','X_CENTRE'),
+              EXCLUS('X_MINI','X_CENTRE',),
+              PRESENT_PRESENT('X_MINI','X_MAXI','Y_MINI','Y_MAXI','Z_MINI','Z_MAXI'),
+              PRESENT_PRESENT('X_CENTRE','Y_CENTRE','Z_CENTRE','RAYON'),),
+#
+# 6.2.1. Une boite parallelepipedique
+#
+      X_MINI = SIMP(statut='f',typ='R',
+                    fr="Abscisse minimum de la boite",
+                    ang="Minimum X for the box"),
+      X_MAXI = SIMP(statut='f',typ='R',
+                    fr="Abscisse maximum de la boite",
+                    ang="Maximum X for the box"),
+#
+      Y_MINI = SIMP(statut='f',typ='R',
+                    fr="Orodnnée minimum de la boite",
+                    ang="Minimum Y for the box"),
+      Y_MAXI = SIMP(statut='f',typ='R',
+                    fr="Abscisse maximum de la boite",
+                    ang="Maximum Y for the box"),
+#
+      Z_MINI = SIMP(statut='f',typ='R',
+                    fr="Cote minimum de la boite",
+                    ang="Minimum Z for the box"),
+      Z_MAXI = SIMP(statut='f',typ='R',
+                    fr="Cote maximum de la boite",
+                    ang="Maximum Z for the box"),
+#
+# 6.2.2. Une sphere
+#
+      X_CENTRE = SIMP(statut='f',typ='R',
+                      fr="Abscisse du centre de la sphere",
+                      ang="X for the center of the sphere"),
+      Y_CENTRE = SIMP(statut='f',typ='R',
+                      fr="Ordonnee du centre de la sphere",
+                      ang="Y for the center of the sphere"),
+      Z_CENTRE = SIMP(statut='f',typ='R',
+                      fr="Cote du centre de la sphere",
+                      ang="Z for the center of the sphere"),
+      RAYON = SIMP(statut='f',typ='R',
+                   fr="Rayon de la sphere",
+                   ang="Radius of the sphere"),
+#
+    ) ,
+#
+  ) ,
+#
+# 9. Les niveaux extremes pour le maillage adapte
+# 9.1. Pour le raffinement :
+#
+  b_niveau_maximum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
+                                         (ADAPTATION == 'RAFFINEMENT') or \
+                                         (ADAPTATION == 'RAFFINEMENT_UNIFORME') or \
+                                         (ADAPTATION == 'RAFFINEMENT_ZONE') " ,
                            fr="Niveau maximum de profondeur de raffinement",
                            ang="Maximum level for refinement",
-                           NIVE_MAX       = SIMP(statut='f',typ='I' ),
-                           ) ,
+    NIVE_MAX = SIMP(statut='f',typ='I',
+                    fr="Niveau maximum de profondeur de raffinement",
+                    ang="Maximum level for refinement"),
+  ) ,
 #
-# 5.5.2. Pour le deraffinement :
+# 9.2. Pour le deraffinement :
 #
-           b_niveau_minimum =BLOC ( condition = " ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) or \
-                                                  ( UNIFORME == 'DERAFFINEMENT' ) " ,
+  b_niveau_minimum = BLOC( condition = " (ADAPTATION == 'RAFF_DERA') or \
+                                         (ADAPTATION == 'DERAFFINEMENT') or \
+                                         (ADAPTATION == 'DERAFFINEMENT_UNIFORME') " ,
                            fr="Niveau minimum de profondeur de déraffinement",
                            ang="Minimum level for unrefinement",
-                           NIVE_MIN       = SIMP(statut='f',typ='I' ),
-                           ) ,
-#
-         ),
+    NIVE_MIN = SIMP(statut='f',typ='I',
+                    fr="Niveau minimum de profondeur de déraffinement",
+                    ang="Minimum level for unrefinement"),
+  ,
 #
-# 6. Suivi d'une frontiere
+# 10. Suivi d'une frontiere
 #
-         MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
+  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='**' ),
-                           ) ,
+  b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
+                      fr="Information complémentaire sur la frontière",
+                      ang="Further information about boundary",
 #
-# 7. Mise à jour de champs sur le nouveau maillage
+    GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+                    fr="Liste des groupes de mailles définissant la frontière",
+                    ang="Mesh groups which define the boundary" ),
 #
-         MAJ_CHAM        =FACT(statut='f',max='**',
-                           fr="Mise à jour de champs sur le nouveau maillage.",
-                           ang="Updating of fields over the new mesh.",
+  ) ,
 #
-# 7.1. Le nom du champ qui contiendra le resultat de la mise a jour
+# 11. Mise à jour de champs sur le nouveau maillage
 #
-           CHAM_MAJ       = SIMP(statut='o',typ=CO,
-                           fr="Nom du champ qui contiendra le champ mis à jour",
-                           ang="Name of the field for the updated field"),
+  MAJ_CHAM = FACT(statut='f',max='**',
+                  fr="Mise à jour de champs sur le nouveau maillage.",
+                  ang="Updating of fields over the new mesh.",
 #
-# 7.2. Le type du champ qui contiendra le resultat de la mise a jour
+# 11.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour
 #
-           TYPE_CHAM      = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(),
-                           fr="Type du champ qui contiendra le champ mis à jour",
-                           ang="Type of the field for the updated field" ),
+    CHAM_MAJ = SIMP(statut='o',typ=CO,
+                    fr="Nom du champ de grandeur qui contiendra le champ mis à jour",
+                    ang="Name of the field for the updated field"),
 #
-# 7.3. Le nom du resultat du champ a interpoler
+# 11.2. Le type du champ qui contiendra le resultat de la mise a jour
 #
-           RESULTAT       = SIMP(statut='o',
-                                 typ=(evol_elas,evol_noli,evol_ther),
-                           fr="Resultat contenant le champ à mettre à jour",
-                           ang="Result with field to be updated" ),
+    TYPE_CHAM = SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO(),
+                     fr="Type du champ qui contiendra le champ mis à jour",
+                     ang="Type of the field for the updated field" ),
 #
-# 7.4. Le nom du champ a interpoler
+# 11.3. Le champ a interpoler
 #
-           NOM_CHAM       = SIMP(statut='o',typ='TXM',
-                           fr="Nom du champ à mettre à jour",
-                           ang="Name of the field to be updated" ),
+    regles=(UN_PARMI('CHAM_GD','RESULTAT')),
 #
-# 7.5. Le paramètre temporel pour le champ a interpoler
+# 11.3.1. Sous forme de champ de grandeur
 #
-                           regles=(EXCLUS('NUME_ORDRE','INST'),),
+    CHAM_GD = SIMP(statut='f',typ=cham_gd_sdaster,
+                   fr="Champ de grandeur Code_Aster contenant le champ à mettre à jour",
+                   ang="Champ de grandeur with field to be updated" ),
 #
-# 7.5.1. Soit le numero d'ordre
+# 11.3.2. Sous forme de champ dans un resultat
 #
-           NUME_ORDRE     = SIMP(statut='f',typ='I',
-                           fr="Numero d ordre du champ à mettre à jour",
-                           ang="Rank of the field to be updated" ),
+    RESULTAT = SIMP(statut='f',typ=(evol_elas,evol_noli,evol_ther),
+                    fr="Resultat contenant le champ à mettre à jour",
+                    ang="Result with field to be updated" ),
 #
-# 7.5.2. Soit l'instant
-# 7.5.2.1. Sa valeur
+    NOM_CHAM = SIMP(statut='f',typ='TXM',
+                    fr="Nom du champ à mettre à jour",
+                    ang="Name of the field to be updated" ),
 #
-           INST           = SIMP(statut='f',typ='R',
-                           fr="Instant associé",
-                           ang="Instant" ),
+# 11.4. Le paramètre temporel pour le champ a interpoler
 #
-# 7.5.2.2. La précision du choix de l'instant
+    b_parametre_temporel = BLOC(condition="(RESULTAT != None)",
+                                fr="Choix éventuel du paramètre temporel pour l'indicateur",
+                                ang="Time selection for error indicator (option)",
 #
-                           b_precision     =BLOC(condition="(INST != None)",
-                             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3,
-                             fr="Précision sur le choix de l'instant associé",
-                             ang="Accuracy over instant choice" ),
-                             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
-                             fr="Critère de précision sur le choix de l'instant associé",
-                             ang="Accuracy criterium over instant choice" ),),
-         ),
+      regles=(EXCLUS('NUME_ORDRE','INST'),),
+#
+# 11.4.1. Soit le numero d'ordre
+#
+      NUME_ORDRE = SIMP(statut='f',typ='I',
+                        fr="Numero d ordre du champ à mettre à jour",
+                        ang="Rank of the field to be updated" ),
+#
+# 11.4.2. Soit l'instant
+# 11.4.2.1. Sa valeur
+#
+      INST = SIMP(statut='f',typ='R',
+                  fr="Instant associé",
+                  ang="Instant" ),
+#
+# 11.4.2.2. La précision du choix de l'instant
+#
+      b_precision = BLOC(condition="(INST != None)",
+                         fr="Choix de la précision du choix de l'instant",
+                         ang="Selection for instant choice",
+#
+        PRECISION = SIMP(statut='f',typ='R',defaut=1.0E-3,
+                         fr="Précision sur le choix de l'instant associé",
+                         ang="Accuracy over instant choice" ),
+#
+        CRITERE = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"),
+                       fr="Critère de précision sur le choix de l'instant associé",
+                       ang="Accuracy criterium over instant choice" ),
+#
+      ),
+#
+    ),
+  ),
 #
-# 8. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres
-# 8.1. Nombre de noeuds et éléments
+# 12. Les options d'analyse de maillage ; par defaut, on ne fait que les nombres
+# 12.1. Nombre de noeuds et éléments
 #
-         NOMBRE         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+  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 éléments in the mesh" ),
 #
-# 8.2. Determination de la qualité des éléments du maillage
+# 12.2. Determination de la qualité des éléments du maillage
 #
-         QUALITE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+  QUALITE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
                           fr="Qualité du maillage",
                           ang="Mesh quality" ),
 #
-# 8.3. Connexite du maillage
+# 12.3. Connexite du maillage
 #
-         CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+  CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
                           fr="Connexité du maillage.",
                           ang="Mesh connexity." ),
 #
-# 8.4. Taille des sous-domaines du maillage
+# 12.4. Taille des sous-domaines du maillage
 #
-         TAILLE         = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+  TAILLE         = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
                           fr="Tailles des sous-domaines du maillage.",
                           ang="Sizes of mesh sub-domains." ),
 #
-# 8.5. Controle de la non-interpenetration des éléments
+# 12.5. Controle de la non-interpenetration des éléments
 #
-         INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
+  INTERPENETRATION= SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
                           fr="Controle de la non interpénétration des éléments.",
                           ang="Overlapping checking." ),
 #
-)  ;
-#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
+# 13. Gestion des éléments autres que ceux compatibles avec HOMARD
+#       "REFUSER" : ils sont refuses (defaut)
+#       "IGNORER" : ils sont ignorés
+#
+  ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
+                             fr="Acceptation d'éléments incompatibles avec HOMARD",
+                             ang="Incompatible elements for HOMARD" ),
+#
+) ;
+#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16354,7 +15406,7 @@ def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU
   return evol_noli
 
 MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod,
-                      fr=" ",
+                      fr="Réalise l'analyse thermomécanique du coude dont le maillage a été concu par MACR_ASCOUF_MAIL",
                       reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
@@ -16413,12 +15465,23 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma
          COMP_INCR       =FACT(statut='f',
            RELATION        =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
            VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
+           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")),
          ),
 
          COMP_ELAS       =FACT(statut='f',
            RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
            ELAS            =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
+           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")),
          ),
 
          SOLVEUR         =FACT(statut='d',
@@ -16449,11 +15512,6 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma
            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
            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")),
          ),
 
          NEWTON          =FACT(statut='d',
@@ -16529,7 +15587,7 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 17/08/2004   AUTEUR DURAND C.DURAND 
+#& 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
@@ -16550,8 +15608,8 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=ma
 # RESPONSABLE F1BHHAJ J.ANGLES
 from Macro.macr_ascouf_mail_ops import macr_ascouf_mail_ops
 MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=maillage_sdaster,
-                      fr=" ",reentrant='n',
-            UIinfo={"groupes":("Outils métier",)},
+            fr="Engendre le maillage d'un coude sain ou comportant une fissure ou une (ou plusieurs) sous-épaisseur(s)",
+            UIinfo={"groupes":("Outils métier",)},reentrant='n',
 
          regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
 
@@ -16677,7 +15735,7 @@ MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op=macr_ascouf_mail_ops,sd_prod=ma
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16709,8 +15767,8 @@ def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_
   return evol_noli
 
 MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod,
-                    fr=" ",reentrant='n',
-            UIinfo={"groupes":("Outils métier",)},
+            fr="Réalise un calcul prédéfini de piquages sains ou fissurés ainsi que les post-traitements associés ",
+            UIinfo={"groupes":("Outils métier",)},reentrant='n',
          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
 
          TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
@@ -16782,12 +15840,22 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_
          COMP_INCR       =FACT(statut='f',
            RELATION        =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
            VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
+           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")),
          ),
 
          COMP_ELAS       =FACT(statut='f',
            RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
            ELAS            =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
            ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
+           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")),
          ),
 
          THETA_3D        =FACT(statut='f',max='**',
@@ -16830,10 +15898,6 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_
            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
            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")),
          ),
 
          NEWTON          =FACT(statut='d',
@@ -16894,7 +15958,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_
 
          TITRE           =SIMP(statut='f',typ='TXM'),
 )
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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
@@ -16917,7 +15981,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_
 from Macro.macr_aspic_mail_ops import macr_aspic_mail_ops
 
 MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= macr_aspic_mail_ops,sd_prod=maillage_sdaster,reentrant='n',
-                    fr=" ",
+            fr="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)",
             UIinfo={"groupes":("Outils métier",)},
 
          EXEC_MAILLAGE   =FACT(statut='o',
@@ -16991,165 +16055,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 22/02/2005   AUTEUR DURAND C.DURAND 
+#& 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 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),
-                      ),
-                      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),
-                        RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                 into=("IMPLICITE",)),
-                      ),
-                     );
-
-#& 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
+# 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.      
+# ======================================================================
+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 - 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     
@@ -17164,234 +16152,93 @@ MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC",
 # 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()         ),
 
-from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops
+         CHARGE           =FACT(statut='o',max='**',
 
-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 10/06/2004   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
+              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_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=tabl_cara_geom,
-                       reentrant='n',
-          UIinfo={"groupes":("Modélisation",)},
-          fr="caractéristiques d'une section transversale de poutre à partir d'un maillage 2D",
-          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/02/2005   AUTEUR DURAND C.DURAND 
+           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 - 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.",
-                    
-
-             # 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 10/06/2004   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.                                 
+# 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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -17409,110 +16256,98 @@ 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 07/10/2004   AUTEUR GNICOLAS G.NICOLAS 
-#            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",
-                     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="V8_2",
+                        into=("V8_2", "V8_N", "V8_N_PERSO"),
+                        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. Le nom du maillage a analyser
 #
-# 3. Impressions des valeurs des éventuels gradients
+  MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,
+                  fr="Maillage à analyser.",
+                  ang="Mesh to be checked." ),
 #
-   GRADIENTS = FACT(statut='f',min=1,max='**',
+# 5. Suivi d'une frontiere
 #
-# 3.1. ==> La table contenant la valeur à imprimer
+  MAILLAGE_FRONTIERE = SIMP(statut='f',typ=maillage_sdaster,
+                           fr="Maillage de la frontiere à suivre",
+                           ang="Boundary mesh" ),
 #
-       TABLE = SIMP(statut='o',typ=table_sdaster,
-                    fr="Table contenant le gradient.",
-                    ang="Table which includes the gradient."),
+  b_frontiere = BLOC( condition = " MAILLAGE_FRONTIERE != None " ,
+                      fr="Information complémentaire sur la frontière",
+                      ang="Further information about boundary",
 #
-# 3.2. ==> Le paramètre sensible
+    GROUP_MA = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+                    fr="Groupes de mailles définissant la frontière",
+                    ang="Mesh groups which define the boundary" ),
 #
-       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
+# 6. Les options ; par defaut, on controle tout
+# 6.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" ),
 #
-         ),
+# 6.2. Determination de la qualite des elements du maillage
 #
-);
-#& MODIF COMMANDE  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+  QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                        fr="Qualité du maillage",
+                        ang="Mesh quality" ),
+#
+# 6.3. Connexite du maillage
+#
+  CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
+                        fr="Connexité du maillage.",
+                        ang="Mesh connexity." ),
+#
+# 6.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." ),
+#
+# 6.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." ),
+#
+# 7. Gestion des éléments autres que ceux compatibles avec HOMARD
+#       "REFUSER" : ils sont refuses (defaut)
+#       "IGNORER" : ils sont ignorés
+#
+  ELEMENTS_NON_HOMARD = SIMP(statut='f',typ='TXM',defaut="REFUSER",into=("REFUSER","IGNORER"),
+                             fr="Acceptation d'éléments incompatibles avec HOMARD",
+                             ang="Incompatible elements for HOMARD" ),
+)  ;
+#& 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     
@@ -17527,368 +16362,3378 @@ 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
 
+
+# ===========================================================================
+#           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_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),
+          ),
+
+         COMP_INCR       =C_COMP_INCR(),
+  )  ;
+#& 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 04/04/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.                                 
 #
-#====
-# 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",
-                         sd_prod=macr_fiabilite_prod,
-                         fr="Faire de la mécanique fiabiliste.",
-                         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."),
+# 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.                            
 #
-#====
-# 5. Les entrees-sorties du calcul ASTER déterministe
-#====
-#
-# 5.1. ==> Le jeu de commandes déterministe
+# 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
+
+from Macro.macro_elas_mult_ops import macro_elas_mult_ops
+
+def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
+  if isinstance(NUME_DDL,CO) :
+    self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
+  else:
+    self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
+  if CAS_CHARGE[0]['NOM_CAS']      != None : return mult_elas
+  if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
+  raise AsException("type de concept resultat non prevu")
+
+MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f',
+            UIinfo={"groupes":("Résolution",)},
+         fr="Calculer les réponses statiques linéaires pour différents cas de charges ou modes de Fourier",
+         regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),),
+         MODELE          =SIMP(statut='o',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
+         NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)),
+         CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+         CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+         LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
+         CAS_CHARGE      =FACT(statut='o',max='**',
+           regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'),
+                   UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),),
+           NOM_CAS         =SIMP(statut='f',typ='TXM' ),
+           MODE_FOURIER    =SIMP(statut='f',typ='I' ),
+           TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
+           CHAR_MECA       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+           CHAR_CINE       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
+           OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
+                                 into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
+                                       "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL",
+                                       "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","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_sdaster),
+         ),
+         SOLVEUR         =FACT(statut='d',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
+           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") ),
+           ),
+         ),
+         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 - 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.                                 
 #
-   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."),
+# 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.                            
 #
-# 5.2. ==> Le destin des messages produits par ASTER
+# 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.macro_matr_ajou_ops import macro_matr_ajou_ops
+
+def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
+  self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r)
+  self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r)
+  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)
+
+  return None
+
+MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_prod,
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+            fr="Calculer de facon plus condensée qu'avec CALC_MATR_AJOU des matrices de masse, d'amortissement"
+              +" ou de rigidité ajoutés",
+      regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
+              AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
+              EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
+              EXCLUS('MONO_APPUI','MODE_STAT',),
+             ),
+         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
+         GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma),
+         GROUP_MA_INTERF =SIMP(statut='o',typ=grma),
+         MODELISATION    =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")),
+         FLUIDE          =FACT(statut='o',max='**',
+           RHO             =SIMP(statut='o',typ='R'),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           GROUP_MA        =SIMP(statut='f',typ=grma),
+           MAILLE          =SIMP(statut='f',typ=ma),
+         ),
+         DDL_IMPO        =FACT(statut='o',max='**',
+           regles=(UN_PARMI('NOEUD','GROUP_NO'),
+                   UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
+           NOEUD           =SIMP(statut='f',typ=no),
+           GROUP_NO        =SIMP(statut='f',typ=grno),
+           PRES_FLUIDE     =SIMP(statut='f',typ='R'),
+           PRES_SORTIE     =SIMP(statut='f',typ='R'),
+         ),
+         ECOULEMENT      =FACT(statut='f',
+           GROUP_MA_1      =SIMP(statut='o',typ=grma),
+           GROUP_MA_2      =SIMP(statut='o',typ=grma),
+           VNOR_1          =SIMP(statut='o',typ='R'),
+           VNOR_2          =SIMP(statut='f',typ='R'),
+           POTENTIEL       =SIMP(statut='f',typ=evol_ther),
+         ),
+         MODE_MECA       =SIMP(statut='f',typ=mode_meca),
+         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),
+         MATR_MASS_AJOU  =SIMP(statut='f',typ=CO,),
+         MATR_RIGI_AJOU  =SIMP(statut='f',typ=CO,),
+         MATR_AMOR_AJOU  =SIMP(statut='f',typ=CO,),
+         MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
+         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),),
+         FORC_AJOU       =FACT(statut='f',max='**',
+           DIRECTION     =SIMP(statut='o',typ='R',max=3),
+           NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+           VECTEUR       =SIMP(statut='o',typ=CO),
+         ),
+         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 iversibilité 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 ),
+           ),
+         ),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+         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 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.
 #
-   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."),
+# 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.
 #
-#====
-# 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."),
+# 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.macro_matr_asse_ops import macro_matr_asse_ops
+
+def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
+  if not MATR_ASSE:  raise AsException("Impossible de typer les concepts resultats")
+  if not NUME_DDL :  raise AsException("Impossible de typer les concepts resultats")
+  if isinstance(NUME_DDL,CO) :
+    self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
+  else:
+    self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
+  for m in MATR_ASSE:
+    opti=m['OPTION']
+
+    if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
+       "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
+       "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R",
+       "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r
+
+    if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
+
+    if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
+       "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_r
+
+    if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
+
+    self.type_sdprod(m['MATRICE'],t)
+  return None
+
+MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+                      sd_prod=macro_matr_asse_prod,
+                      fr="Calcul des matrices assemblées (rigidité, masse, amortissement,...) ",
+         MODELE          =SIMP(statut='o',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
+         INST            =SIMP(statut='f',typ='R',defaut=0.),
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
+         CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
+         NUME_DDL        =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)),
+         SOLVEUR         =FACT(statut='d',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",
+                                 into=("LDLT","MULT_FRONT","GCPC","MUMPS")),
+           RENUM           =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")),
+         ),
+
+         MATR_ASSE       =FACT(statut='o',max='**',
+             MATRICE         =SIMP(statut='o',typ=CO),
+             OPTION          =SIMP(statut='o',typ='TXM',
+                                   into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
+                                         "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
+                                         "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
+                                         "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR",
+                                         "RIGI_THER","MASS_THER",
+                                         "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",
+                                         "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",)
+                                   ),
+
+             b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
+               MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
+             ),
+
+             b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'",
+               SIEF_ELGA       =SIMP(statut='o',typ=cham_elem),
+               MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
+             ),
+
+             b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'",
+               THETA           =SIMP(statut='o',typ=theta_geom),
+               PROPAGATION     =SIMP(statut='f',typ='R'),
+             ),
+
+             b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'",
+               MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
+             ),
+
+         ), # fin MATR_ASSE
+
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,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.                                 
 #
-     b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'",
+# 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.                            
 #
-       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."),
+# 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.macro_miss_3d_ops import macro_miss_3d_ops
+
+MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,
+            fr="Préparation des données puis exécution du logiciel MISS3D",
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+         OPTION          =FACT(statut='o',
+           regles=(UN_PARMI('TOUT','MODULE'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           MODULE          =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
+         ),
+         PROJET          =SIMP(statut='o',typ='TXM'),  
+         REPERTOIRE      =SIMP(statut='f',typ='TXM'),
+         VERSION         =SIMP(statut='f',typ='TXM',into=("V1_2","V1_3",),defaut="V1_2"),
+         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_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 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.                                 
 #
-       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."),
+# 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.                            
 #
-       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."),
+# 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.macro_mode_meca_ops import macro_mode_meca_ops
+
+MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca,
+                     reentrant='n',fr="Lancer une succession de calculs de modes propres réels",
+            UIinfo={"groupes":("Résolution",)},
+         MATR_A          =SIMP(statut='o',typ=matr_asse_depl_r ),
+         MATR_B          =SIMP(statut='o',typ=matr_asse_depl_r ),
+         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
+#  ce mot cle ne devrait il pas etre dans calc_freq  
+         METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",    
+                               into=("TRI_DIAG","JACOBI","SORENSEN",) ),
+         b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
+           PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
+           NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+           PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
+           NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
+         ),
+         b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
+           PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
+           NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
+           PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
+           NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
+         ),
+         b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
+           PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
+           NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
+           PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
+         ),
+         OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",    
+                               into=("MODE_RIGIDE","SANS") ),
+         CALC_FREQ       =FACT(statut='d',min=0,
+           regles=(UN_PARMI('FREQ','FREQ_MAX'),
+                   PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'),
+                   PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),
+                   EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
+           FREQ            =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**',val_min=0.E+0 ),  
+           FREQ_MIN        =SIMP(statut='f',typ='R' ),  
+           FREQ_MAX        =SIMP(statut='f',typ='R' ),  
+           NB_BLOC_FREQ    =SIMP(statut='f',typ='I' ),  
+           DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),  
+           COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
+           NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),  
+           NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),  
+           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),  
+           SEUIL_FREQ      =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),  
+           STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
+         ),
+         VERI_MODE       =FACT(statut='d',min=0,
+           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),  
+           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),  
+           STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+         ),
+         NORM_MODE       =FACT(statut='o',max='**',
+           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") ),
+           INFO            =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ),
+         ),
+         FILTRE_MODE     =FACT(statut='f',
+           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
+                                 into=("MASS_EFFE_UN","MASS_GENE") ),
+           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
+         ),
+         IMPRESSION      =FACT(statut='d',
+           TOUT_PARA       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           CUMUL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
+                                 into=("MASS_EFFE_UN","MASS_GENE",) ),
+         ),
+)  ;
+#& 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.                                 
 #
-       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."),
+# 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.                            
 #
-       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."),
+# 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.macro_proj_base_ops import macro_proj_base_ops
+
+def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ):
+  if MATR_ASSE_GENE != None:
+    for m in MATR_ASSE_GENE:
+      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)
+  return None
+
+MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
+         regles=(AU_MOINS_UN('MATR_ASSE_GENE','VECT_ASSE_GENE')),
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+                      sd_prod=macro_proj_base_prod,
+         fr="Projection des matrices et/ou vecteurs assemblés sur une base (modale ou de RITZ)",
+         BASE            =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ),
+         NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999),
+         PROFIL          =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
+         MATR_ASSE_GENE  =FACT(statut='f',max='**',
+           MATRICE         =SIMP(statut='o',typ=CO,),
+           regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE',),),
+           MATR_ASSE       =SIMP(statut='f',typ=matr_asse_depl_r),
+           MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r),
+         ),
+         VECT_ASSE_GENE  =FACT(statut='f',max='**',
+           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_sdaster),
+           VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
+         ),
+         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.                            
 #
-# 6.2.3. ==> Création d'une surface de réponse polynomiale
+# 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.      
+# ======================================================================
+MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
+            UIinfo={"groupes":("Gestion du travail",)},
+              fr="Compilation des catalogues de commandes et d'éléments",
+
+         ELEMENT         =FACT(statut='f',),
+
+)  ;
+#& 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.
 #
-     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."),
+# 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.
 #
-# 6.2.4. ==> Recherche d'un plan d'expérience
+# 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
+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',),
+                 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)",
+         ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
+         CARA_ELEM       =SIMP(statut='f',typ=cara_elem,
+         fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
+         ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         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",into=("FIXE",) ),
+         ),
+         INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
+         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+         INST_FIN        =SIMP(statut='f',typ='R'),
+         OPTION          =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1,
+             fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.",
+                          ),
+         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","FETI","MUMPS") ),
+
+           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") ),
+           ),
+
+           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' or METHODE == 'FETI' ",
+                                   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),
+           ),
+         ),
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+)  ;
+#& MODIF COMMANDE  DATE 10/06/2004   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.                                 
 #
-     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."),
+# 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.                            
 #
-     b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'",
+# 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
+MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,
+            UIinfo={"groupes":("Fonction",)},
+                    fr="Mémorisation des noms des concepts dérivés.",
+                    ang="Memorisation of the names of the sensitive concepts.",
+
+         regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),),
+
+         NOM=FACT(statut='f',max='**',
+             regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),),
+
+             NOM_SD=SIMP(statut='o',typ='TXM',
+                         fr="Nom de la structure de base",
+                         ang="Name of the basic structure"),
+
+             PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom),
+                         fr="Nom du paramètre sensible",
+                         ang="Name of the sensitive parameter"),
+
+             NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ",
+                         fr="Nom de la structure composée",
+                         ang="Name of the built structure"),
+
+             MOT_FACT=SIMP(statut='f',typ='TXM',max='**',
+                         fr="Liste des mots clés facteurs concernés par la dérivation",
+                         ang="Factor keyword list involved in derivation"),
+
+             MOT_CLE=SIMP(statut='f',typ='TXM',max='**',
+                         fr="Liste des mots clés concernés par la dérivation",
+                         ang="Keyword list involved in derivation"),
+
+             VALEUR=SIMP(statut='f',typ='TXM',max='**',
+                         fr="Liste des objets concernés par la dérivation",
+                         ang="Object list involved in derivation"),
+
+                 ),
+
+         NOM_ZERO=SIMP(statut='f',typ=fonction_sdaster,
+                       fr="Nom de la fonction nulle",
+                       ang="Name of the zero fonction"),
+
+         NOM_UN  =SIMP(statut='f',typ=fonction_sdaster,
+                       fr="Nom de la fonction unité",
+                       ang="Name of the one fonction"),
+
+)  ;
+#& 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.                                 
 #
-       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."),
+# 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.                            
 #
-       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="o",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'",
+# 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.      
+# ======================================================================
+MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
+                    fr="Calcul des modes propres d'une structure à répétitivité cyclique à partir"
+                        +" d'une base de modes propres réels",
+                    reentrant='n',
+            UIinfo={"groupes":("Résolution",)},
+         BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
+         NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
+         NB_SECTEUR      =SIMP(statut='o',typ='I' ),
+         LIAISON         =FACT(statut='o',
+           DROITE          =SIMP(statut='o',typ='TXM' ),
+           GAUCHE          =SIMP(statut='o',typ='TXM' ),
+           AXE             =SIMP(statut='f',typ='TXM' ),
+         ),
+         VERI_CYCL       =FACT(statut='f',
+           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ),
+           DIST_REFE       =SIMP(statut='f',typ='R' ),
+         ),
+         CALCUL          =FACT(statut='o',
+           TOUT_DIAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           NB_DIAM         =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+           OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE"
+                                ,into=("PLUS_PETITE","CENTRE","BANDE") ),
+           b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
+             FREQ            =SIMP(statut='o',typ='R',),
+           ),
+           b_bande       =BLOC(condition = "OPTION == 'BANDE'",
+             FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2),
+           ),
+#  NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE                                
+           NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
+           PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 100. ),
+           PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 50 ),
+         ),
+         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.                                 
 #
-         VALE_MOY   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur moyenne.",
-                               ang="Mean 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.                            
 #
-         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
-                               fr="Ecart type.",
-                               ang="Standard deviation."),
+# 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 mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
+  if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
+  if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
+  if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
+  if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
+  if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
+  raise AsException("type de concept resultat non prevu")
+
+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 ),
+         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",   
+                               into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ),
+         b_dynam         =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
+           CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
+           
+             OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
+                                   fr="Choix de l option pour estimer les valeurs propres"  ),
+             FREQ            =SIMP(statut='o',typ='R',max='**'),
+             AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),     
+             NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
+             NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
+             PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
+             NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ),
+             PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
+
+             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
+             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
+             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
+           ),
+         ),
+         b_flamb        =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
+           CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
+           
+             OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
+                                 fr="Choix de l option pour estimer les valeurs propres"  ),
+             CHAR_CRIT       =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
+             NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
+             NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
+             PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
+             NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
+             PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
+           
+             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
+             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
+             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
+           ),
+         ),
+         CALC_MODE       =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres",
+           OPTION          =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ),
+           PREC            =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ),
+           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
+         ),
+         VERI_MODE       =FACT(statut='d',min=0,
+           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0,
+                                 fr="Valeur limite admise pour l ereur a posteriori des modes"  ),
+         ),
+         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                               fr="Liste des param\350tres de sensibilit\351.",
+                               ang="List of sensitivity parameters",
+         ),
+         b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
+             CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
+             CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
+             EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
+         ),
+         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
+         TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),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.                            
 #
-# 7.2.2. ==> Loi lognormale
+# 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 mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
+  if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
+  if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
+  if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
+  if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c
+  if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
+  if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
+  raise AsException("type de concept resultat non prevu")
+
+MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_prod,
+                      fr="Calcul des modes propres par itérations simultanées ; valeurs propres et"
+                         +" 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) ),
+         METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
+                               into=("TRI_DIAG","JACOBI","SORENSEN") ),
+         b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
+           PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
+           NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+           PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
+           NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
+         ),
+         b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
+           PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
+           NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
+           PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
+           NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
+         ),
+         b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
+           PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
+           NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
+           PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
+         ),
+         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",
+                               into=("MODE_FLAMB","DYNAMIQUE"),
+                               fr="Type d analyse" ),
+         OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
+                               fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
+
+         b_flamb         =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
+           CALC_FREQ       =FACT(statut='d',min=0,
+             OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
+                                   fr="Choix de l option et par conséquent du shift du problème modal" ),
+             b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
+               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
+             ),
+             b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
+                                 fr="Recherche des valeurs propres les plus proches d une valeur donnée",
+               CHAR_CRIT       =SIMP(statut='o',typ='R',
+                                     fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
+               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
+             ),
+             b_bande       =BLOC(condition = "(OPTION == 'BANDE')",
+                                 fr="Recherche des valeurs propres dans une bande donnée",
+               CHAR_CRIT       =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
+                                     fr="Valeur des deux charges critiques délimitant la bande de recherche"),
+             ),           
+             APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
+                                   fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
+             regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
+             DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
+             COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
+             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
+             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
+             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
+           ),
+         ),
+
+         b_dynam        =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
+           CALC_FREQ       =FACT(statut='d',min=0,
+             OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
+                                   fr="Choix de l option et par conséquent du shift du problème modal" ),
+             b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
+               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
+             ),
+             b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
+                                  fr="Recherche des valeurs propres les plus proches d une valeur donnée",
+               FREQ            =SIMP(statut='o',typ='R',
+                                     fr="Fréquence autour de laquelle on cherche les fréquences propres"),
+               AMOR_REDUIT     =SIMP(statut='f',typ='R',),
+               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
+             ),
+             b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
+                                   fr="Recherche des valeurs propres dans une bande donnée",
+               FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
+                                     fr="Valeur des deux fréquences délimitant la bande de recherche"),
+             ),           
+             APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
+                                   fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
+             regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
+             DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
+             COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
+             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
+             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
+             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
+             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
+           ),
+         ),
+
+         VERI_MODE       =FACT(statut='d',min=0,
+           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
+           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
+                                 fr="Valeur limite admise pour l ereur a posteriori des modes" ),
+           STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+         ),
+         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                               fr="Liste des param\350tres de sensibilit\351.",
+                               ang="List of sensitivity parameters",
+         ),
+         b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
+             CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
+             CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
+             EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
+         ),
+         STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+         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.      
+# ======================================================================
+def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
+ if (MODE_STAT != None)          : return mode_stat_depl
+ if (PSEUDO_MODE !=None)         : return mode_stat_acce
+ if (FORCE_NODALE != None)       : return mode_stat_forc
+ raise AsException("type de concept resultat non prevu")
+MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
+                   fr="Calcul de modes statiques pour un déplacement, une force ou une accélération unitaire imposé",
+                   reentrant='n',
+            UIinfo={"groupes":("Résolution",)},
+         MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
+         MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
+               regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),),
+         MODE_STAT       =FACT(statut='f',max='**',
+           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
+                   UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
+           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
+           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
+           AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
+           SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
+         ),
+         FORCE_NODALE    =FACT(statut='f',max='**',
+           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
+                   UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
+           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
+           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",), ),
+           AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
+           SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
+         ),
+         PSEUDO_MODE       =FACT(statut='f',max='**',
+           regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
+           AXE             =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
+           DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3),
+           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
+           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
+           b_dir           =BLOC(condition = "DIRECTION != None",
+             NOM_DIR         =SIMP(statut='f',typ='TXM' ),),
+           b_cmp          =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
+             regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
+             TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+             AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
+             SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'), 
+        ),
+         ),
+         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 - 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.      
+# ======================================================================
+MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
+                      reentrant='f',
+            fr="Définir la base modale d'une structure sous écoulement",
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+#  la commande modi_base _modale : reentrant = f ou o                      
+         regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
+         BASE            =SIMP(statut='o',typ=mode_meca ),
+         BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
+         NUME_VITE_FLUI  =SIMP(statut='o',typ='I' ),
+         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
+         AMOR_UNIF       =SIMP(statut='f',typ='R' ),
+         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
+         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.      
+# ======================================================================
+# RESPONSABLE G8BHHXD X.DESROCHES
+MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
+                   fr="Effectuer des modifications sur un maillage existant: réorienter des mailles servant,"
+                      +" à l'application d'une pression, à la modélisation du contact,...",
+                   reentrant='o',
+            UIinfo={"groupes":("Maillage",)},
+      regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
+                       'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE',
+                       ),
+              PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+              PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D',
+                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+              PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D',
+                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+              PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA',
+                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
+              PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+                       'PLAQ_TUBE','MODI_MAILLE',),
+              PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+                       'PLAQ_TUBE','MODI_MAILLE',),
+              PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',),
+              PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
+                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',),
+              EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
+              EXCLUS('EQUE_PIQUA','TUBE_COUDE'),
+              EXCLUS('ROTATION','MODI_BASE'),
+              EXCLUS('SYMETRIE','ROTATION'),
+              EXCLUS('SYMETRIE','TRANSLATION'),
+              EXCLUS('SYMETRIE','MODI_BASE'),
+              EXCLUS('SYMETRIE','ECHELLE'),
+              ),
+         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
+
+         ORIE_FISSURE    =FACT(statut='f',
+           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+         ),
+
+         DEFORME         =FACT(statut='f',
+           OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
+           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='**' ),),
+         ),
+
+         EQUE_PIQUA      =FACT(statut='f',
+           GROUP_NO        =SIMP(statut='o',typ=grno),
+           E_BASE          =SIMP(statut='o',typ='R' ),
+           DEXT_BASE       =SIMP(statut='o',typ='R' ),
+           L_BASE          =SIMP(statut='o',typ='R' ),
+           L_CHANF         =SIMP(statut='o',typ='R' ),
+           TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
+           H_SOUD          =SIMP(statut='o',typ='R' ),
+           ANGL_SOUD       =SIMP(statut='o',typ='R' ),
+           JEU_SOUD        =SIMP(statut='o',typ='R' ),
+           E_CORP          =SIMP(statut='o',typ='R' ),
+           DEXT_CORP       =SIMP(statut='o',typ='R' ),
+           AZIMUT          =SIMP(statut='o',typ='R' ),
+           RAFF_MAIL       =SIMP(statut='o',typ='TXM' ),
+           X_MAX           =SIMP(statut='o',typ='R' ),
+         ),
+         ORIE_PEAU_2D    =FACT(statut='f',max='**',
+           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+         ),
+         ORIE_PEAU_3D    =FACT(statut='f',max='**',
+           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+         ),
+         ORIE_SHB8       =FACT(statut='f',max=1,
+           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+         ),
+         ORIE_NORM_COQUE =FACT(statut='f',max='**',
+           regles=(EXCLUS('NOEUD','GROUP_NO'),
+                   PRESENT_PRESENT('NOEUD','VECT_NORM'),
+                   PRESENT_PRESENT('GROUP_NO','VECT_NORM'),),
+           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+           VECT_NORM       =SIMP(statut='f',typ='R',max=3),
+           NOEUD           =SIMP(statut='f',typ=no),
+           GROUP_NO        =SIMP(statut='f',typ=grno),
+         ),
+         b_modele        =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)",
+           MODELE          =SIMP(statut='o',typ=modele_sdaster ),
+         ),
+         PLAQ_TUBE       =FACT(statut='f',
+           DEXT            =SIMP(statut='o',typ='R' ),
+           EPAIS           =SIMP(statut='o',typ='R' ),
+           L_TUBE_P1       =SIMP(statut='o',typ='R' ),
+           AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
+           COUTURE         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",)  ),
+         ),
+         TUBE_COUDE      =FACT(statut='f',
+           ANGLE           =SIMP(statut='o',typ='R' ),
+           R_CINTR         =SIMP(statut='o',typ='R' ),
+           L_TUBE_P1       =SIMP(statut='o',typ='R' ),
+         ),
+         MODI_MAILLE     =FACT(statut='f',max=1,
+           regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),),
+           OPTION          =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ),
+           GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
+           MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
+           GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
+           NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
+         ),
+         MODI_BASE       =FACT(statut='f',
+           VECT_X          =SIMP(statut='o',typ='R',min=2,max=3),
+           VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),
+         ),
+         ECHELLE         =SIMP(statut='f',typ='R',),        
+         TRANSLATION     =SIMP(statut='f',typ='R',min=2,max=3),
+         ROTATION        =FACT(statut='f',max='**',
+           POIN_1           =SIMP(statut='o',typ='R',min=2,max=3),
+           ANGL             =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
+           regles=(EXCLUS('DIR','POIN_2'),),
+           POIN_2           =SIMP(statut='f',typ='R',min=2,max=3),
+           DIR              =SIMP(statut='f',typ='R',min=2,max=3),
+         ),
+         SYMETRIE        =FACT(statut='f',max='**',
+                          fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.",
+           POINT           =SIMP(statut='o',typ='R',min=2,max=3,
+                            fr="Point appartenant à la droite ou au plan."),
+           AXE_1           =SIMP(statut='o',typ='R',min=2,max=3,
+                            fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."),
+           AXE_2           =SIMP(statut='f',typ='R',min=3,max=3,
+                            fr="2nd vecteur appartenant du plan."),
+         ),
+         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 - 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.      
+# ======================================================================
+MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster,
+            fr="Calculer les obstacles dans les systèmes guidage-tube après usure",reentrant='f',
+            UIinfo={"groupes":("Modélisation",)},
+      regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
+              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=table_sdaster),
+         INST            =SIMP(statut='f',typ='R'),  
+         OBSTACLE        =SIMP(statut='f',typ=obstacle_sdaster),
+         GUIDE           =SIMP(statut='o',typ=obstacle_sdaster),
+         CRAYON          =SIMP(statut='f',typ=obstacle_sdaster),
+         R_MOBILE        =SIMP(statut='f',typ='R'),  
+         PERCEMENT       =SIMP(statut='f',typ='R',defaut=1),  
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+)  ;
+#& MODIF COMMANDE  DATE 12/09/2005   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
+# 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
+def modi_repere_prod(RESULTAT,**args):
+  if AsType(RESULTAT) == evol_elas :    return evol_elas
+  if AsType(RESULTAT) == evol_noli :    return evol_noli
+  if AsType(RESULTAT) == evol_ther :    return evol_ther
+  if AsType(RESULTAT) == dyna_trans :   return dyna_trans
+  if AsType(RESULTAT) == dyna_harmo :   return dyna_harmo
+  if AsType(RESULTAT) == mode_meca :    return mode_meca
+  if AsType(RESULTAT) == mode_flamb :   return mode_flamb
+  if AsType(RESULTAT) == mult_elas :    return mult_elas
+  if AsType(RESULTAT) == base_modale  : return base_modale
+  raise AsException("type de concept resultat non prevu")
+
+MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n',
+            UIinfo={"groupes":("Résultats et champs",)},
+                    fr="Calcule des résultats dans le repère cylindrique",
+         RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
+                                               evol_noli,mult_elas,
+                                               evol_ther,base_modale,mode_flamb) ),
+         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
+                        'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
+         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='**'),
+         NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+         NOM_CAS         =SIMP(statut='f',typ='TXM' ),
+
+         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+         LIST_FREQ       =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",),),
+
+         MODI_CHAM       =FACT(statut='o',max='**',
+           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           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='**'),
+           TYPE_CHAM       =SIMP(statut='o',typ='TXM',
+                                 into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),),
+           NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
+           b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
+              NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
+           b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
+              NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
+           b_tors_3d       =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
+              NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
+           b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
+              NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
+           b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
+              NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
+         ),
+         DEFI_REPERE     =FACT(statut='o',
+         regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),),
+           REPERE          =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",
+                                 into=("UTILISATEUR","CYLINDRIQUE"),),
+           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
+           ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
+           AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),
+         ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         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.      
+# ======================================================================
+def norm_mode_prod(MODE,**args ):
+  if AsType(MODE) == mode_meca   : return mode_meca
+  if AsType(MODE) == mode_meca_c : return mode_meca_c
+  if AsType(MODE) == mode_flamb  : return mode_flamb
+  raise AsException("type de concept resultat non prevu")
+
+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'),
+                 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") ),
+         NOEUD      =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
+         b_noeud    =BLOC(condition = "NOEUD != None",
+           NOM_CMP    =SIMP(statut='o',typ='TXM' ),
+         ),
+         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=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" ),
+           SIGNE      =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
+                            fr="Choix du signe" ),
+         ),
+         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
+                               fr="Liste des param\350tres de sensibilit\351.",
+                               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 01/04/2005   AUTEUR 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.
+# ======================================================================
+# RESPONSABLE VABHHTS J.PELLET
+NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n',
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+              fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
+                  regles=(UN_PARMI('MATR_RIGI','MODELE'),),
+         MATR_RIGI       =SIMP(statut='f',validators=NoRepeat(),max=100,
+                               typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ),
+         MODELE          =SIMP(statut='f',typ=modele_sdaster ),
+         b_modele        =BLOC(condition = "MODELE != None",
+           CHARGE     =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
+         ),
+         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 associés à la méthode multifrontale",
+           RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
+         ),
+         b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
+           RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
+         ),
+         b_mumps          =BLOC(condition="METHODE=='MUMPS'",fr="paramètres associés à la méthode MUMPS",
+           RENUM           =SIMP(statut='f',typ='TXM',into=("SANS",),defaut="SANS"  ),
+         ),
+         b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué",
+           RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
+         ),
+         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.      
+# ======================================================================
+NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
+                   fr="Etablissement de la numérotation des ddl d'un modèle établi en coordonnées généralisées",
+                    reentrant='n',
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+         regles=UN_PARMI('MODELE_GENE','BASE'),
+         MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
+             b_modele_gene     =BLOC(condition = "MODELE_GENE != None",
+               STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
+               METHODE            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE") ),
+                                    ),
+         BASE     =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ),
+             b_base     =BLOC(condition = "BASE != None",
+               STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ),
+               NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
+                             ),
+)  ;
+#& 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.      
+# ======================================================================
+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=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='**' ),
+         NOEUD_I         =SIMP(statut='f',typ=no,max='**'),         
+         OPTION          =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
+         b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
+           NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**' ),   
+         ),  
+         b_noeud_i      =BLOC(condition = "NOEUD_I != None",
+           NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
+           NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**' ),  
+           NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**' ),     
+         ),  
+         DEPASSEMENT     =FACT(statut='f',max='**',
+           fr="Loi de dépassement d un seuil pendant une durée donnée",
+           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
+           VALE_MIN        =SIMP(statut='f',typ='R' ),  
+           VALE_MAX        =SIMP(statut='f',typ='R' ),  
+           PAS             =SIMP(statut='f',typ='R' ),  
+           DUREE           =SIMP(statut='f',typ='R',defaut= 1. ),  
+         ),
+         RAYLEIGH        =FACT(statut='f',max='**',
+           fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite",
+           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
+           VALE_MIN        =SIMP(statut='f',typ='R' ),  
+           VALE_MAX        =SIMP(statut='f',typ='R' ),  
+           PAS             =SIMP(statut='f',typ='R' ),  
+         ),
+         GAUSS           =FACT(statut='f',max='**',
+           fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande",
+           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
+           VALE_MIN        =SIMP(statut='f',typ='R' ),  
+           VALE_MAX        =SIMP(statut='f',typ='R' ),  
+           PAS             =SIMP(statut='f',typ='R' ),  
+         ),
+         VANMARCKE       =FACT(statut='f',max='**',
+           fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)",
+           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
+           VALE_MIN        =SIMP(statut='f',typ='R' ),  
+           VALE_MAX        =SIMP(statut='f',typ='R' ),  
+           PAS             =SIMP(statut='f',typ='R' ),  
+           DUREE           =SIMP(statut='f',typ='R',defaut= 10. ),  
+         ),
+         MOMENT          =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ),  
+         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 - 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_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",)},
+        regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
+         RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
+         CHOC            =FACT(statut='f',max='**',
+                               fr="Analyse des non linéarités de choc",
+           INST_INIT       =SIMP(statut='f',typ='R',defaut= -1. ),  
+           INST_FIN        =SIMP(statut='f',typ='R',defaut= 999. ),  
+           NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
+           SEUIL_FORCE     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
+           DUREE_REPOS     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
+           OPTION          =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
+           NB_CLASSE       =SIMP(statut='f',typ='I',defaut= 10 ),  
+         ),
+         RELA_EFFO_DEPL  =FACT(statut='f',
+                               fr="Analyse des relationsnon linéaires effort-déplacement",
+           NOEUD           =SIMP(statut='o',typ=no),
+           NOM_CMP         =SIMP(statut='o',typ='TXM' ),  
+         ),
+         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
+         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 G8BHHXD X.DESROCHES
+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','INTEGRALE'),
+                ),
+
+         MASS_INER      = 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='**'),
+                               ORIG_INER    = SIMP(statut='f',typ='R',min=3,max=3 ),
+                              ),
+         b_mass_iner = BLOC(condition = "( MASS_INER != None )",
+                       fr="calcul de la masse, les inerties et le centre de gravité",
+                       regles=(EXCLUS('CHAM_GD','RESULTAT'),
+                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
+                                      'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       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),
+                       GEOMETRIE      = SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
+                       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),
+                       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',),
+                       LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
+                       INST           = SIMP(statut='f',typ='R',),
+                       LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
+                       FREQ           = SIMP(statut='f',typ='R',),
+                       LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
+                       NUME_MODE      = SIMP(statut='f',typ='I',),
+                       NOEUD_CMP      = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2),
+                       NOM_CAS        = SIMP(statut='f',typ='TXM',),
+         ),
+
+         ENER_POT       = 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='**'),
+                              ),
+         b_ener_pot = BLOC(condition = "( ENER_POT  != None )",
+                       fr="calcul de l'énergie potentielle de déformation",
+                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
+                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
+                                      'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
+                       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_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")),
+                       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),
+                       FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+                       LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
+                       NUME_MODE      = SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
+                       NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+                       NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+         ),
+
+         ENER_CIN       = FACT(statut='f',max='**',
+                               regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
+                               OPTION       = SIMP(statut='f',typ='TXM',
+                                                   into=("MASS_MECA","MASS_MECA_DIAG"),
+                                                   defaut="MASS_MECA" ),
+                               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='**'),
+                              ),
+         b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
+                       fr="calcul de l'énergie cinétique",
+                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
+                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
+                                      'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
+                       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_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")),
+                       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),
+                       FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+                       LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
+                       NUME_MODE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+                       NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+                       NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+         ),
+
+         ENER_ELAS      = 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='**'),
+                              ),
+         b_ener_elas = BLOC(condition = "( ENER_ELAS != None )",
+                       fr="calcul de l'énergie de déformation élastique",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       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),
+                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
+                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       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),
+         ),
+
+         ENER_TOTALE    = 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='**'),
+                              ),
+         b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )",
+                       fr="calcul de l'énergie de déformation totale",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       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),
+                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
+                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       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),
+         ),
+
+         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",) ),
+                               MAILLE       = SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+                               GROUP_MA     = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+                               OPTION       = SIMP(statut='f',typ='TXM',
+                                                   into=("SIGM_ELGA","SIGM_ELMOY"),
+                                                   defaut="SIGM_ELGA"),
+                               CORR_PLAST   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
+                               COEF_MULT    = SIMP(statut='f',typ='R',defaut=1.),
+                              ),
+         b_weibull = BLOC(condition = "( WEIBULL != None )",
+                       fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull",
+                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
+                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       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_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")),
+                       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),
+         ),
+
+         RICE_TRACEY    = 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='**'),
+                               OPTION       = SIMP(statut='f',typ='TXM',
+                                                   into=("SIGM_ELGA","SIGM_ELMOY"),
+                                                   defaut="SIGM_ELGA"),
+                               LOCAL        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
+                              ),
+         b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )",
+                       fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine",
+                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
+                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       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_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")),
+                       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),
+         ),
+
+         INDIC_ENER     = 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='**'),
+                              ),
+         b_indic_ener = BLOC(condition = "( INDIC_ENER != None )",
+                       fr="calcul un indicateur global de perte de proportionnalité du chargement",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
+                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
+                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       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),
+         ),
+
+         INDIC_SEUIL    = 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='**'),
+                              ),
+         b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )",
+                       fr="calcul un indicateur global de perte de proportionnalité du chargement",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
+                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
+                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       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),
+         ),
+
+         CHAR_LIMITE    = FACT(statut='f',min=0,
+                               CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
+                              ),
+         b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )",
+                       fr="post-traitement du calcul de la charge limite",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
+                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
+                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
+                       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),
+         ),
+
+         CARA_GEOM      = 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='**'),
+                               SYME_X       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+                               SYME_Y       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
+                               ORIG_INER    = SIMP(statut='f',typ='R',min=2,max=2),
+                              ),
+         b_cara_geom = BLOC(condition = "( CARA_GEOM != None )",
+                       fr="calcul des caractéristiques géométriques d'un section de poutre",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
+         ),
+
+         CARA_POUTRE    = FACT(statut='f',max='**',
+                               regles=(AU_MOINS_UN('TOUT','GROUP_MA'),
+                                       ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
+                               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='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),
+                               LAPL_PHI_Z    = SIMP(statut='f',typ=evol_ther),
+                               LIAISON       = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
+                               LONGUEUR      = SIMP(statut='f',typ='R'),
+                               MATERIAU      = SIMP(statut='f',typ=mater_sdaster),
+                               OPTION        = SIMP(statut='f',typ='TXM',
+                                                    into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
+                             ),
+         b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )",
+                       fr="calcul des caractéristiques mécaniques d'un section de poutre",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
+                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
+                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
+         ),
+
+          AIRE_INTERNE   = FACT(statut='f',max='**',
+                                GROUP_MA_BORD  = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+                               ),
+         b_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )",
+                       fr="calcul de l'aire d'un trou dans un maillage 2D",
+                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+         ),
+
+         TRAV_EXT       = FACT(statut='f',),
+         b_trav_ext = BLOC(condition = "( TRAV_EXT != None )",
+                       fr="calcul du travail des efforts extérieurs",
+                       RESULTAT       = SIMP(statut='o',typ=(evol_elas,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")),
+                       TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
+         ),
+
+         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 - 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.                                 
 #
-       b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
+# 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.      
+# ======================================================================
+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'),
+                 PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
+                 UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
+         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=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",)),
+         DOMMAGE         =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
+         MATER           =SIMP(statut='o',typ=mater_sdaster),
+         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.
 #
-         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."),
+# 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.
 #
-         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."),
+# 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_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",
+
+         CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")),
+
+         b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
+                      regles=(PRESENT_PRESENT('CORR_KE','MATER'),
+                              PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
+                              PRESENT_PRESENT('DOMMAGE','MATER'),),
+             HISTOIRE       = FACT(statut='o',
+                                 regles=(UN_PARMI('SIGM','EPSI'),),
+                                 SIGM  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 EPSI  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
+             COMPTAGE       = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")),
+             DELTA_OSCI     = SIMP(statut='f',typ='R',defaut= 0.0E+0),
+             COEF_MULT      = FACT(statut='f',
+                                 KT    = SIMP(statut='o',typ='R'),),
+             CORR_KE        = SIMP(statut='f',typ='TXM',into=("RCCM",)),
+             DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN",
+                                                              "TAHERI_MANSON","TAHERI_MIXTE")),
+             MATER          = SIMP(statut='f',typ=mater_sdaster),
+             CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
+             TAHERI_NAPPE   = SIMP(statut='f',typ=(nappe_sdaster,formule)),
+             TAHERI_FONC    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+             CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
+         ),
+
+         b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
+             HISTOIRE       = FACT(statut='o',
+                                 SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
+             CRITERE        = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
+             DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER",)),
+             MATER          = SIMP(statut='o',typ=mater_sdaster),
+             COEF_CORR      = SIMP(statut='f',typ='R'),
+         ),
+
+         b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
+             HISTOIRE       = FACT(statut='o',
+                                 SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 EPSP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
+                                 TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),),
+             DOMMAGE        = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),),
+             MATER          = SIMP(statut='o',typ=mater_sdaster),
+             CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
+         ),
+
+         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+         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 - 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_MOY_PHY   = SIMP(statut="f",typ="R",max=1,
-                                   fr="Valeur moyenne dans l'espace physique.",
-                                   ang="Mean value in the physical space."),
+# 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.                            
 #
-         ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1,
-                                   fr="Ecart type dans l'espace physique.",
-                                   ang="Standard deviation in the physical space."),
+# 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 GALENNE E.GALENNE
+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',
+            UIinfo={"groupes":("Post traitements",)},
+
+           regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'),
+                   PRESENT_PRESENT('RESULTAT','FOND_FISS'),),
+
+         MODELISATION  =SIMP(statut='o',typ='TXM',
+                             into=("3D","AXIS","D_PLAN","C_PLAN"),
+                             fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
+         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='**'),
+                         SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+                         TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) )
+                         ),
+         MATER         =SIMP(statut='o',typ=mater_sdaster,
+                             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=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=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"),  
+         PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1),
+         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),
+             b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
+               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
+               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+             ),
+         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ),
+         INFO          =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+         VECT_K1       =SIMP(statut='o',typ='R',max=3,
+                             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 03/01/2006   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.                                 
 #
-         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")),
+# 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.      
+#                                                                       
+#                                                                       
+# ======================================================================
 #
-# 7.2.3. ==> Loi uniforme
+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",)},
+         MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
+         MATER_REV     = SIMP(statut='o',typ=mater_sdaster),
+         EPAIS_REV     = SIMP(statut='o',typ='R'),
+         FISSURE       = FACT(statut='o',
+            DECALAGE       = SIMP(statut='f',typ='R',defaut=-2.e-04),
+            PROFONDEUR     = SIMP(statut='o',typ='R'),
+            LONGUEUR       = SIMP(statut='o',typ='R'),
+            ORIENTATION    = SIMP(statut='o',typ='TXM',
+                                 into=("CIRC","LONGI"),),
+         ),
+         K1D           = FACT(statut='o',max='**',
+            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 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.                                 
 #
-       b_uniforme=BLOC(condition="LOI=='UNIFORME'",
+# 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 PARTIC               
 #
-         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 JMBHH01 J.M.PROIX
+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",)},
+         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ),
+         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         TYPE_RESU_MECA  =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ),
+
+# ======================================================================
+     b_evolution  =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')",
+
+         OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+                               into=("PM_PB","SN","FATIGUE_ZH210") ),
+         MATER           =SIMP(statut='o',typ=mater_sdaster ),
+
+         TRANSITOIRE     =FACT(statut='o',max='**',fr="transitoire à dépouiller",
+           regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'),),
+           NB_OCCUR        =SIMP(statut='f',typ='I',defaut= 1,
+                                 fr="nombre d occurences réelles de ce transitoire" ),
+           TABL_RESU_MECA  =SIMP(statut='o',typ=table_sdaster,
+                                 fr="relevé des contraintes sur le chemin"),
+           TABL_SIGM_THER  =SIMP(statut='f',typ=table_sdaster,
+                                 fr="résultat sous chargement thermique seul" ),
+           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
+           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
+           b_inst          =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
+             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
+                                 ), 
+                             ),
+         ),
+
+# ======================================================================
+     b_unitaire  =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')",
+
+         OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
+                               into=("PM_PB","SN","FATIGUE") ),
+         MATER           =SIMP(statut='o',typ=mater_sdaster ),
+         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",),
+           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",
+                              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"),
+                         ),
+
+          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,
+                              fr="table relevé des contraintes sous chargement thermique seul" ),
+                           ),
+         SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
+              NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
+              NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
+              NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
+              NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
+              COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
+              NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ),
+              NUME_PASSAGE     =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ),
+              NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
+              CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
+              CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
+              PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
+              PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
+              TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
+              TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
+                               ),
+                      ),
+# ======================================================================
+     b_tuyauterie  =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')",
+
+         OPTION          =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ),
+         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
+         TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
+                               fr="Ke meca seul ou partition mecanique + thermique" ),
+         MODELE          =SIMP(statut='o',typ=modele_sdaster),
+         CARA_ELEM       =SIMP(statut='o',typ=cara_elem),
+         ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés",
+            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('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='**'),
+            ),
+         RESU_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
+           regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
+           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",),
+           CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
+           RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
+           b_extrac        =BLOC(condition="RESULTAT != None",
+                                 fr="extraction d un champ de grandeur",
+             regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),),
+             NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),),
+             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+             NUME_ORDRE      =SIMP(statut='f',typ='I',),
+             INST            =SIMP(statut='f',typ='R',),
+             NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+             b_acce_reel     =BLOC(condition="(INST != None)",
+               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
+               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ),
+             ),
+           ),
+                          ),
+         INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes",
+            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
+            C1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"),
+            K1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"),
+            C2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"),
+            K2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"),
+            C3              =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"),
+            K3              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"),
+            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),),
+            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
+                             fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
+            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',
+                             fr="liste des mailles ou sont affectés les indices de contraintes"),
+            b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
+               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+            ),
+            TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"),
+                              fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"),
+                         ),
+          RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
+            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
+            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,
+                              fr="table relevé des températures sur la section"),
+            TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster,
+                              fr="table relevé des moyennes sur la section"),
+            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_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
+               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+            ),
+                           ),
+         SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
+              NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
+              NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
+              NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
+              NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
+              COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
+              NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ),
+              NUME_PASSAGE     =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ),
+              NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
+              CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
+              CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
+              PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
+              PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
+              TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
+              TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
+                               ),
+               ),
+)  ;
+#& 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.                                 
 #
-         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.      
+# ======================================================================
+# RESPONSABLE G8BHHXD X.DESROCHES
+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=(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'),  
+
+           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"),
+           ),
+
+           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'), ),           
+             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='**'),  
+             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
+             NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
+             LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
+             NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+             NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),  
+             FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
+             LIST_FREQ       =SIMP(statut='f',typ=listr8_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-6),  
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+           ),
+
+           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),  
+
+              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")),
+           ),
+
+           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 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.                                 
 #
-# 7.2.4. ==> Loi normale tronquée
+# 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.                            
 #
-       b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'",
+# 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_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'),
+                 PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'),
+                 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=table_sdaster),
+           INST_INIT       =SIMP(statut='f',typ='R'),  
+                         ),
+         RESU_GENE       =SIMP(statut='f',typ=tran_gene),
+         NOEUD           =SIMP(statut='f',typ=no,),
+         INST_INIT       =SIMP(statut='f',typ='R',defaut=-1.0E+0),  
+         INST_FIN        =SIMP(statut='f',typ='R'),  
+         NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
+         PUIS_USURE      =SIMP(statut='f',typ='R'),  
+         LOI_USURE       =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
+         b_archard       =BLOC(condition = "LOI_USURE == 'ARCHARD'",
+           regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), 
+                   EXCLUS('MATER_USURE','OBSTACLE'),
+                   EXCLUS('MOBILE','USURE_OBST'),),
+           MOBILE          =FACT(statut='f',
+             COEF_USURE      =SIMP(statut='o',typ='R'), 
+           ),   
+           OBSTACLE        =FACT(statut='f',
+             COEF_USURE      =SIMP(statut='o',typ='R'), 
+           ),
+           SECTEUR         =FACT(statut='f',max='**',
+             CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",  
+                                                              "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", 
+                                                              "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
+             COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),  
+             COEF_USUR_OBST  =SIMP(statut='f',typ='R'),  
+             ANGL_INIT       =SIMP(statut='f',typ='R'),  
+             ANGL_FIN        =SIMP(statut='f',typ='R'),  
+           ),
+           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
+           USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
+         ),
+         b_kwu_epri        =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
+           regles=(UN_PARMI('MOBILE','MATER_USURE'), 
+                   EXCLUS('MATER_USURE','OBSTACLE'),
+                   EXCLUS('MOBILE','USURE_OBST'),),
+           MOBILE          =FACT(statut='f',
+             COEF_FNOR       =SIMP(statut='f',typ='R'),  
+             COEF_VTAN       =SIMP(statut='f',typ='R'),  
+             COEF_USURE      =SIMP(statut='f',typ='R'),  
+             COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
+             COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
+           ),   
+           OBSTACLE        =FACT(statut='f',
+             COEF_FNOR       =SIMP(statut='f',typ='R' ),  
+             COEF_VTAN       =SIMP(statut='f',typ='R' ),  
+             COEF_USURE      =SIMP(statut='o',typ='R'), 
+             COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
+             COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
+           ),   
+           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
+           USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
+           FNOR_MAXI       =SIMP(statut='f',typ='R' ),  
+           VTAN_MAXI       =SIMP(statut='f',typ='R' ),  
+         ),
+         b_edf_mz          =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
+           regles=(UN_PARMI('MOBILE','MATER_USURE'), 
+                   EXCLUS('MATER_USURE','OBSTACLE'),
+                   EXCLUS('MOBILE','USURE_OBST'),),
+           MOBILE          =FACT(statut='f',
+             COEF_USURE      =SIMP(statut='f',typ='R',defaut=1.0E-13),  
+             COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
+             COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
+             COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
+           ),   
+           OBSTACLE        =FACT(statut='f',
+             COEF_USURE      =SIMP(statut='o',typ='R',defaut=1.0E-13), 
+             COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
+             COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
+             COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
+           ),   
+           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
+           USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
+         ),
+         b_tube_neuf       =BLOC(condition = "TUBE_NEUF == 'OUI'",
+            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",    
+                                                          "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",        
+                                                          "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
+         RAYON_MOBILE    =SIMP(statut='f',typ='R'),  
+         RAYON_OBST      =SIMP(statut='f',typ='R'),  
+         LARGEUR_OBST    =SIMP(statut='f',typ='R'),  
+         ANGL_INCLI      =SIMP(statut='f',typ='R'),  
+         ANGL_ISTHME     =SIMP(statut='f',typ='R'),  
+         ANGL_IMPACT     =SIMP(statut='f',typ='R'),  
+         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
+         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+         COEF_INST       =SIMP(statut='f',typ='R',defaut=1.0E+0),  
+         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.                                 
 #
-         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."),
+# 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.                            
 #
-         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."),
+# 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_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n',
+            UIinfo={"groupes":("Post traitements",)},
+              fr="Déterminer l'état adapté ou accommodé par la méthode de Zarka-Casier d'une structure sous"
+                +" chargement cyclique élastique affine ou non",
+         MODELE          =SIMP(statut='o',typ=modele_sdaster),
+         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
+         EXCIT           =FACT(statut='o',max='**',
+           CHARGE          =SIMP(statut='o',typ=char_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",)),
+         ),
+         EVOL_ELAS       =SIMP(statut='o',typ=evol_elas),
+         b_evol_elas     =BLOC(condition="EVOL_ELAS != None",
+           regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),),
+           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
+           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
+           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
+         ),
+         TEMP_ZAC        =SIMP(statut='f',typ='R',defaut=0.0E+0),  
+         EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
+         b_evol_noli     =BLOC(condition="EVOL_NOLI != None",
+           INST_MAX        =SIMP(statut='o',typ='R'),  
+         ),
+         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
+         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
+
+)  ;
+#& 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.                                 
 #
-         VALE_MIN   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur minimale.",
-                               ang="Minimal 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.                            
 #
-         VALE_MAX   = SIMP(statut="o",typ="R.",max=1,
-                               fr="Valeur maximale.",
-                               ang="Maximal 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.      
+# ======================================================================
+POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',
+                fr="Poursuite d'une étude à partir de la sauvegarde au format JEVEUX ou HDF de sa base globale",
+                sd_prod = ops.POURSUITE,
+            UIinfo={"groupes":("Gestion du travail",)},
+                op_init = ops.POURSUITE_context,fichier_ini = 1,
+         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
+                               typ='TXM',defaut="NON",into=("OUI","NON",) ), 
+         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"),
+         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'),
+           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'),
+         ),
+         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)
+         ),
+         CODE            =FACT("définition d un nom pour l'esemble d'une étude",
+                               statut='f',min=1,max=1,
+           NOM             =SIMP(statut='o',typ='TXM'),
+           UNITE           =SIMP(statut='f',typ='I',defaut=15),
+         ),
+)  ;
+#& MODIF COMMANDE  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
+#            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.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='o',typ='I',),   # defaut=6        pas de defaut, il faut
+   EPSILON         =SIMP(statut='o',typ='R',),   # defaut=1.E-12   se poser la question !
+   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.                            
 #
-# 7.3. ==> Paramètres de calcul
-# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja
+# 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.      
+# ======================================================================
+PRE_GIBI=PROC(nom="PRE_GIBI",op=49,
+            UIinfo={"groupes":("Gestion du travail",)},
+              fr="Conversion d'un fichier de maillage GIBI au format Aster",
+         UNITE_GIBI      =SIMP(statut='f',typ='I',defaut=19),  
+         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
+)  ;
+#& 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.                                 
 #
-       regles=(EXCLUS("POINT_INI","POINT_CONCEPT"),
-               EXCLUS("POINT_REF","POINT_CONCEPT"),),
+# 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.                            
 #
-# 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.
+# 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.      
+# ======================================================================
+
+PRE_GMSH=PROC(nom="PRE_GMSH",op=47,
+            UIinfo={"groupes":("Gestion du travail",)},
+               fr="Conversion d'un fichier de maillage GMSH au format Aster",
+         UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
+         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
+)  ;
+#& 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.                                 
 #
-       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."),
+# 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.                            
 #
-# 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.
+# 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.      
+# ======================================================================
+PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
+            UIinfo={"groupes":("Gestion du travail",)},
+               fr="Conversion d'un fichier universel IDEAS-SUPERTAB au format Aster",
+         UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
+         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 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
+# 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.                                 
 #
-       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."),
+# 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.                            
 #
-# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception
+# 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.      
+# ======================================================================
+
+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_sdaster),
+         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.
 #
-       POINT_CONCEPT = SIMP(statut="f",typ="R",max=1,
-                              fr="Point de conception.",
-                              ang="Design point."),
+# 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.
 #
-# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre
+# 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 proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
+    if AsType(RESULTAT)     == evol_ther      : return evol_ther
+    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 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',
+            UIinfo={"groupes":("Résultats et champs",)},
+                fr="Projeter les champs aux noeuds d'une SD résultat de type evol_xxx sur un autre maillage",
 #
-       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."),
+         METHODE         =SIMP(statut='f',typ='TXM',defaut="ELEM",
+                               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_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',),
+                   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",),
+           MODELE_1        =SIMP(statut='o',typ=modele_sdaster),
+           MODELE_2        =SIMP(statut='o',typ=modele_sdaster),
 
-       b_gradient=BLOC(condition="GRADIENT=='NON'",
-         INCREMENT = SIMP(statut="o",typ="R",max=1,
-                             fr="Incrément dans la direction.",
-                         ang="Direction increment."),
-       ),
+           TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
 
-   ),
-#
-);
-#& MODIF COMMANDE  DATE 03/11/2004   AUTEUR MCOURTOI M.COURTOIS 
+#          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),
+           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),
+           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
+           NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+
+           CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
+           DISTANCE_MAX    =SIMP(statut='f',typ='R',
+                fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
+           ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
+
+           TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
+                fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
+
+           PROL_ZERO       =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON",
+                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."),
+
+         ),
+
+         VIS_A_VIS       =FACT(statut='f',max='**',
+           regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
+                   AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
+           TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+           GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+           NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
+           MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
+           GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
+           NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
+           CAS_FIGURE      =SIMP(statut='f',typ='TXM',into=("2D","3D","2.5D","1.5D",) ),
+         ),
+
+         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 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -17906,179 +19751,86 @@ MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_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
-
-from Macro.macr_adap_mail_ops import macr_adap_mail_ops
+def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
+  if AsType(MATR_ASSE) == matr_asse_depl_r  : return matr_asse_gene_r
+  if AsType(MATR_ASSE_GENE) == matr_asse_gene_r  : return matr_asse_gene_r
+  if AsType(MATR_ASSE) == matr_asse_depl_c  : return matr_asse_gene_c
+  if AsType(MATR_ASSE_GENE) == matr_asse_gene_c  : return matr_asse_gene_c
+  raise AsException("type de concept resultat non prevu")
 
-MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops,
-                     docu="U7.03.02-b",
-                     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_1",
-                               into=("V7_1", "V7_N", "V7_N_PERSO"),
-                           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="NON",into=("OUI","NON"),
-                          fr="Qualité du maillage",
-                          ang="Mesh quality" ),
-#
-# 7.3. Connexite du maillage
-#
-         CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="NON",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="NON",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="NON",into=("OUI","NON"),
-                          fr="Controle de la non interpénétration des éléments.",
-                          ang="Overlapping checking." ),
-#
+PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_prod,
+                    fr="Projection d'une matrice assemblée sur une base (modale ou de RITZ)",
+                    reentrant='n',
+            UIinfo={"groupes":("Matrices/vecteurs",)},
+         regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),),            
+         BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ),
+         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
+         MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
+         MATR_ASSE_GENE  =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
 )  ;
-#& MODIF COMMANDE  DATE 14/02/2005   AUTEUR DURAND C.DURAND 
-#            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 d un résultat sur des lignes de coupes définies par 2 points ou un group_no",
-         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,validators=NoRepeat(),),
-           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), ), 
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& 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.      
 # ======================================================================
-   
-from Macro.macr_recal_ops import macr_recal_ops
-
-def macr_recal_prod(self,**args ):
-  return listr8_sdaster
+def proj_mesu_modal_prod(MODELE_MESURE,**args):
+     vale=MODELE_MESURE['MESURE']
+     if  AsType(vale) == dyna_trans   : return tran_gene
+     if  AsType(vale) == dyna_harmo   : return harm_gene
+     if  AsType(vale) == mode_meca    : return mode_gene
+#     if  AsType(vale) == mode_meca_c  : return mode_gene_c
+     if  AsType(vale) == base_modale  : return mode_gene
+     raise AsException("type de concept resultat non prevu")
 
-MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,
+PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
+                     sd_prod=proj_mesu_modal_prod,
+                     reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
-                      sd_prod=macr_recal_prod,
-                      fr="Réalise le recalage de modèles Aster",
-         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),
-           INTERACTIF      =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),)
-)  ;
-#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
+                     fr="Calcul des coordonnees généralisees de mesure experimentale relatives a une base de projection",
+
+         MODELE_CALCUL   =FACT(statut='o',
+           MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
+           BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,) ),
+                         ),
+         MODELE_MESURE   =FACT(statut='o',
+           MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
+           MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ),
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
+                         ),
+         CORR_MANU       =FACT(statut='f',max='**',
+           regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
+           NOEU_CALCUL     =SIMP(statut='f',typ=no),
+           NOEU_MESURE     =SIMP(statut='f',typ=no),
+                         ),
+         RESOLUTION      =FACT(statut='f',
+           METHODE         =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
+           b_svd =BLOC(condition="METHODE=='SVD'",
+                       EPS=SIMP(statut='f',typ='R',defaut=0. ),
+                      ),
+           REGUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
+           b_regul =BLOC(condition="REGUL!='NON'",
+                         regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
+                         COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),  
+                         COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),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
@@ -18096,72 +19848,28 @@ MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_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 G8BHHXD X.DESROCHES
-
-from Macro.macro_elas_mult_ops import macro_elas_mult_ops
-
-def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
-  if isinstance(NUME_DDL,CO) :
-    self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
-  else:
-    self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
-  if CAS_CHARGE[0]['NOM_CAS']      != None : return mult_elas
-  if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
-  raise AsException("type de concept resultat non prevu")
-
-MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster,CO)),
-         CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-         CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-         LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
-         CAS_CHARGE      =FACT(statut='o',max='**',
-           regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'),
-                   UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),),
-           NOM_CAS         =SIMP(statut='f',typ='TXM' ),
-           MODE_FOURIER    =SIMP(statut='f',typ='I' ),
-           TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
-           CHAR_MECA       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-           CHAR_CINE       =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-           OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
-                                       "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL",
-                                       "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",
-                                       "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),
-         ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
-           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") ),
-           ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+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'),
+              ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),),
+         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_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' ),  
+         OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
+         GROUP_MA        =SIMP(statut='f',typ=grma),
+#  Quel est le type attendu derriere  MODELE_INTERFACE         
+         MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster),
+         VECT_X          =SIMP(statut='f',typ='R',min=3,max=3 ),  
+         VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3 ),  
+         ORIG_AXE        =SIMP(statut='f',typ='R',min=3,max=3 ),  
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
+#& 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
@@ -18180,92 +19888,64 @@ MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 
-from Macro.macro_matr_ajou_ops import macro_matr_ajou_ops
-
-def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_AJOU,**args):
-  self.type_sdprod(MATR_AMOR_AJOU,matr_asse_gene_r)
-  self.type_sdprod(MATR_MASS_AJOU,matr_asse_gene_r)
-  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)
-
-  return None
-
-MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro_matr_ajou_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",)},
-      regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
-              AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
-              EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
-              EXCLUS('MONO_APPUI','MODE_STAT',),
-             ),
-         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
-         GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma),
-         GROUP_MA_INTERF =SIMP(statut='o',typ=grma),
-         MODELISATION    =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")),
-         FLUIDE          =FACT(statut='o',max='**',
-           RHO             =SIMP(statut='o',typ='R'),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           GROUP_MA        =SIMP(statut='f',typ=grma),
-           MAILLE          =SIMP(statut='f',typ=ma),
-         ),
-         DDL_IMPO        =FACT(statut='o',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO'),
-                   UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
-           NOEUD           =SIMP(statut='f',typ=no),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
-           PRES_FLUIDE     =SIMP(statut='f',typ='R'),
-           PRES_SORTIE     =SIMP(statut='f',typ='R'),
-         ),
-         ECOULEMENT      =FACT(statut='f',
-           GROUP_MA_1      =SIMP(statut='o',typ=grma),
-           GROUP_MA_2      =SIMP(statut='o',typ=grma),
-           VNOR_1          =SIMP(statut='o',typ='R'),
-           VNOR_2          =SIMP(statut='f',typ='R'),
-           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),
-         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),
-         MATR_MASS_AJOU  =SIMP(statut='f',typ=CO,),
-         MATR_RIGI_AJOU  =SIMP(statut='f',typ=CO,),
-         MATR_AMOR_AJOU  =SIMP(statut='f',typ=CO,),
-         MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",),),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),),
-         FORC_AJOU       =FACT(statut='f',max='**',
-           DIRECTION     =SIMP(statut='o',typ='R',max=3),
-           NOEUD         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           VECTEUR       =SIMP(statut='o',typ=CO),
-         ),
-         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 iversibilité 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 ),
-           ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-         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 01/04/2005   AUTEUR VABHHTS J.PELLET 
+         regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),),              
+         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_sdaster),
+         VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
+)  ;
+#& 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.      
+# ======================================================================
+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",) ),
+         RESU            =FACT(statut='o',max='**',
+           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',),
+                   AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),),
+           EVOL_NOLI       =SIMP(statut='o',typ=(evol_noli) ),
+           MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
+           CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
+           TEMPE           =SIMP(statut='f',typ='R' ),
+           LIST_INST_RUPT  =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
+           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) ),
+           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='**'),
+           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.E0 ),
+                         ),
+         OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ),
+         CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
+         METHODE         =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
+         INCO_GLOB_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
+         ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
+         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
+                       )  ;
+#& 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
@@ -18283,86 +19963,229 @@ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=macro_matr_ajou_ops,sd_prod=macro
 # 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
+def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None,
+                       RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None,
+                       TYPE_RESU=None,**args):
+  if AsType(RESULTAT)  == dyna_harmo : return fonction_c
+  if AsType(RESU_GENE) == harm_gene  : return fonction_c
+#  On ne sait pas interpreter les deux conditions suivantes
+  if TABLE != None :
+     if TYPE_RESU != None :
+        if TYPE_RESU == "FONCTION_C" : return fonction_c
+        if TYPE_RESU == "FONCTION"   : return fonction_sdaster
+     else:
+        return fonction_sdaster
+  if RESU_GENE      != None         : return fonction_sdaster
+  if BASE_ELAS_FLUI != None         : return fonction_sdaster
+  if RESULTAT       != None         : return fonction_sdaster
+  if CHAM_GD        != None         : return fonction_sdaster
+  if OBSTACLE       != None         : return fonction_sdaster
+  raise AsException("type de concept resultat non prevu")
 
-from Macro.macro_matr_asse_ops import macro_matr_asse_ops
-
-def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
-  if not MATR_ASSE:  raise AsException("Impossible de typer les concepts resultats")
-  if not NUME_DDL :  raise AsException("Impossible de typer les concepts resultats")
-  if isinstance(NUME_DDL,CO) :
-    self.type_sdprod(NUME_DDL,nume_ddl_sdaster)
-  else:
-    self.type_sdprod(NUME_DDL,NUME_DDL.__class__)
-  for m in MATR_ASSE:
-    opti=m['OPTION']
-
-    if opti in ( "RIGI_MECA","RIGI_FLUI_STRU","RIGI_MECA_LAGR" ,
-       "MASS_MECA" , "MASS_FLUI_STRU" ,"RIGI_GEOM" ,"RIGI_ROTA",
-       "AMOR_MECA","IMPE_MECA","MASS_ID_MDEP_R","MASS_ID_MDNS_R",
-       "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r
-
-    if opti in ( "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",) : t=matr_asse_pres_c
+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='f',
+            UIinfo={"groupes":("Fonction",)},
+         regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),),
 
-    if opti in ( "RIGI_THER","MASS_THER","RIGI_THER_CONV" ,
-       "RIGI_THER_CONV_D","MASS_ID_MTEM_R","MASS_ID_MTNS_R",) : t=matr_asse_temp_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),
 
-    if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
+# ======= 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",
+# on ne peut pas mettre de regles, le défaut TOUT_ORDRE est pris en compte dans le fortran
+           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 ),
+           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 ),
+           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+           b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
+             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
+             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
+             INTERP_NUME     =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
+           ),
+         ),
+# ======= BASE_ELAS_FLUI =================================================
+         b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
+                                   fr="Récupération de la fonction à partir d un concept melasflu",
+           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
+           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
+           NUME_MODE       =SIMP(statut='o',typ='I' ),
+           PARA_X          =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ),
+           PARA_Y          =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ),
+         ),
 
-    self.type_sdprod(m['MATRICE'],t)
-  return None
+# ======= TABLE =================================================
+         b_table = BLOC ( condition = "TABLE != None",
+                          fr="Récupération de la fonction à partir d un concept table",
+                          regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
+                                  PRESENT_PRESENT('PARA_X','PARA_Y'),),
+           PARA_X          =SIMP(statut='f',typ='TXM',
+                                 fr="1ère colonne de la table qui définit la fonction à récupérer", ),
+           PARA_Y          =SIMP(statut='f',typ='TXM',
+                                 fr="2ème colonne de la table qui définit la fonction à récupérer", ),
+           NOM_PARA_TABL   =SIMP(statut='f',typ='TXM',into=("FONCTION",),
+                                 fr="Nom du paramètre de la table à qui est associé la fonction" ),
+           b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None",
+             TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ),
+           ),
 
-MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-                      sd_prod=macro_matr_asse_prod,
-                      fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-         INST            =SIMP(statut='f',typ='R',defaut=0.),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**'),
-         NUME_DDL        =SIMP(statut='o',typ=(nume_ddl_sdaster,CO)),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",
-                                 into=("LDLT","MULT_FRONT","GCPC","MUMPS")),
-           RENUM           =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")),
+           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 ),
+           ),
          ),
 
-         MATR_ASSE       =FACT(statut='o',max='**',
-             MATRICE         =SIMP(statut='o',typ=CO),
-             OPTION          =SIMP(statut='o',typ='TXM',
-                                   into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG",
-                                         "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",
-                                         "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",
-                                         "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR",
-                                         "RIGI_THER","MASS_THER",
-                                         "RIGI_ACOU","MASS_ACOU","AMOR_ACOU",
-                                         "MASS_ID_MTEM_R","MASS_ID_MTNS_R","MASS_ID_MDEP_R","MASS_ID_MDNS_R",)
-                                   ),
+# ======= RESULTAT =================================================
+         b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
+                         regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
+           NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
+           b_cham = BLOC ( condition = "NOM_CHAM != None",
+                           regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
+                                   PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
+                                   PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
+                                   EXCLUS('GROUP_MA','MAILLE'),
+                                   EXCLUS('GROUP_NO','NOEUD'),),
+             NOM_CMP         =SIMP(statut='o',typ='TXM' ),
+             MAILLE          =SIMP(statut='f',typ=ma),
+             GROUP_MA        =SIMP(statut='f',typ=grma),
+             NOEUD           =SIMP(statut='f',typ=no),
+             GROUP_NO        =SIMP(statut='f',typ=grno),
+             POINT           =SIMP(statut='f',typ='I' ),
+             SOUS_POINT      =SIMP(statut='f',typ='I' ),
+           ),
+         ),
 
-             b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
-               MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
+# ======= RESU_GENE =================================================
+         b_tran_gene = BLOC ( condition = "AsType(RESU_GENE) == tran_gene",
+                              fr="Récupération d'une fonction à partir d un concept TRAN_GENE",
+                              regles=(UN_PARMI('NOM_CHAM','NOEUD_CHOC','GROUP_NO_CHOC'),),
+             NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
+             NOEUD_CHOC      =SIMP(statut='f',typ=no),
+             GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
+           b_cham = BLOC ( condition = "(NOM_CHAM=='DEPL') or (NOM_CHAM=='VITE') or (NOM_CHAM=='ACCE')",
+                           regles=(UN_PARMI('GROUP_NO','NOEUD'),
+                                   EXCLUS('MULT_APPUI','CORR_STAT'),),
+             NOM_CMP         =SIMP(statut='o',typ='TXM' ),
+             NOEUD           =SIMP(statut='f',typ=no),
+             GROUP_NO        =SIMP(statut='f',typ=grno),
+             MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+             CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+             ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)),
+           ),
+           b_choc = BLOC ( condition = "(NOEUD_CHOC != None) or (GROUP_NO_CHOC != None)",
+                           regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),),
+             PARA_X          =SIMP(statut='o',typ='TXM',
+                              into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
+             PARA_Y          =SIMP(statut='o',typ='TXM',
+                              into=("INST","FN","FT1","FT2","VN","VT1","VT2","DXLOC","DYLOC","DZLOC") ),
+             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
+             INTITULE        =SIMP(statut='f',typ='TXM' ),
+             SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
+           ),
+         ),
+         b_harm_gene = BLOC ( condition = "AsType(RESU_GENE)==harm_gene",
+                              fr="Récupération d'une fonction à partir d un concept HARM_GENE",
+                              regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
+             NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
+             NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
+           b_cham = BLOC ( condition = "NOM_CHAM != None",
+                           regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
+             NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
+             NOM_CMP         =SIMP(statut='f',typ='TXM' ),
+             b_cmp = BLOC ( condition = "NOM_CMP != None",
+                            regles=(UN_PARMI('NOEUD','GROUP_NO'),),
+               NOEUD         =SIMP(statut='f',typ=no),
+               GROUP_NO      =SIMP(statut='f',typ=grno),
              ),
-
-             b_rigi_geom = BLOC( condition = "OPTION=='RIGI_GEOM'",
-               SIEF_ELGA       =SIMP(statut='o',typ=cham_elem_sief_r),
-               MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
+           ),
+         ),
+         b_mode_gene = BLOC ( condition = "AsType(RESU_GENE)==mode_gene",
+                              fr="Récupération d'une fonction à partir d un concept MODE_GENE",
+                              regles=(UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
+             NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
+             NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
+           b_cham = BLOC ( condition = "NOM_CHAM != None",
+                           regles=(UN_PARMI('NUME_CMP_GENE','NOM_CMP'),),
+             NUME_CMP_GENE   =SIMP(statut='f',typ='I' ),
+             NOM_CMP         =SIMP(statut='f',typ='TXM' ),
+             b_cmp = BLOC ( condition = "NOM_CMP != None",
+                            regles=(UN_PARMI('NOEUD','GROUP_NO'),
+                                    UN_PARMI('SQUELETTE','SOUS_STRUC'),),
+               NOEUD         =SIMP(statut='f',typ=no),
+               GROUP_NO      =SIMP(statut='f',typ=grno),
+               SQUELETTE     =SIMP(statut='f',typ=squelette ),
+               SOUS_STRUC    =SIMP(statut='f',typ='TXM' ),  
              ),
+           ),
+         ),
 
-             b_rigi_meca_lagr = BLOC( condition = "OPTION=='RIGI_MECA_LAGR'",
-               THETA           =SIMP(statut='o',typ=theta_geom),
-               PROPAGATION     =SIMP(statut='f',typ='R'),
-             ),
+# ======= CHAM_GD =================================================
+         b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
+                            regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD'),
+                                    PRESENT_ABSENT('POINT','NOEUD','GROUP_NO'),
+                                    PRESENT_ABSENT('SOUS_POINT','NOEUD','GROUP_NO'),
+                                    EXCLUS('GROUP_MA','MAILLE'),
+                                    EXCLUS('GROUP_NO','NOEUD'),),
+           NOM_CMP         =SIMP(statut='o',typ='TXM' ),
+           MAILLE          =SIMP(statut='f',typ=ma),
+           GROUP_MA        =SIMP(statut='f',typ=grma),
+           NOEUD           =SIMP(statut='f',typ=no),
+           GROUP_NO        =SIMP(statut='f',typ=grno),
+           POINT           =SIMP(statut='f',typ='I' ),
+           SOUS_POINT      =SIMP(statut='f',typ='I' ),
+         ),
 
-             b_rigi_ther = BLOC( condition = "OPTION=='RIGI_THER'",
-               MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0),
-             ),
+# ======= OBSTACLE =================================================
+         b_obstacle = BLOC ( condition = "OBSTACLE != None",
+                              fr="Choix du repère",
+            REPERE          =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ),
+         ),
 
-         ), # fin MATR_ASSE
+# ======= SURCHARGE DES ATTRIBUTS =================================================
+         NOM_PARA        =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ),
+         NOM_RESU        =SIMP(statut='f',typ='TXM' ),
+         INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
+         PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
+         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
 
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         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 03/11/2004   AUTEUR ACBHHCD G.DEVESA 
+#& 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
@@ -18380,25 +20203,47 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,
 # 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.macro_miss_3d_ops import macro_miss_3d_ops
-
-MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ",
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         OPTION          =FACT(statut='o',
-           regles=(UN_PARMI('TOUT','MODULE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           MODULE          =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
-         ),
-         PROJET          =SIMP(statut='o',typ='TXM'),  
-         REPERTOIRE      =SIMP(statut='f',typ='TXM'),
-         VERSION         =SIMP(statut='f',typ='TXM',into=("V1_2","V1_3",),defaut="V1_2"),
-         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),  
+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/02/2005   AUTEUR DURAND C.DURAND 
+#& 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
+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
@@ -18417,79 +20262,52 @@ MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ",
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 
-from Macro.macro_mode_meca_ops import macro_mode_meca_ops
+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
 
-MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_meca,
-                     reentrant='n',
+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_A          =SIMP(statut='o',typ=matr_asse_depl_r ),
-         MATR_B          =SIMP(statut='o',typ=matr_asse_depl_r ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#  ce mot cle ne devrait il pas etre dans calc_freq  
-         METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",    
-                               into=("TRI_DIAG","JACOBI","SORENSEN",) ),
-         b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
-           PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
-           NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
-           PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
-           NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
-         ),
-         b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
-           PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
-           NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
-           PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
-           NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
-         ),
-         b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
-           PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
-           NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
-           PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,val_min=0.E+0 ),
-         ),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",    
-                               into=("MODE_RIGIDE","SANS") ),
-         CALC_FREQ       =FACT(statut='d',min=0,
-           regles=(UN_PARMI('FREQ','FREQ_MAX'),
-                   PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'),
-                   PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),
-                   EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
-           FREQ            =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max='**',val_min=0.E+0 ),  
-           FREQ_MIN        =SIMP(statut='f',typ='R' ),  
-           FREQ_MAX        =SIMP(statut='f',typ='R' ),  
-           NB_BLOC_FREQ    =SIMP(statut='f',typ='I' ),  
-           DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),  
-           COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
-           NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),  
-           NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),  
-           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),  
-           SEUIL_FREQ      =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),  
-           STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
-         ),
-         VERI_MODE       =FACT(statut='d',min=0,
-           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),  
-           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),  
-           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 ),
-           NORME           =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA",    
-                                 into=("MASS_GENE","RIGI_GENE","EUCL",           
-                                       "EUCL_TRAN","TRAN","TRAN_ROTA") ),
-           INFO            =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ),
-         ),
-         FILTRE_MODE     =FACT(statut='f',
-           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
-                                 into=("MASS_EFFE_UN","MASS_GENE") ),
-           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
-         ),
-         IMPRESSION      =FACT(statut='d',
-           TOUT_PARA       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           CUMUL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
-                                 into=("MASS_EFFE_UN","MASS_GENE",) ),
-         ),
+         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 22/02/2005   AUTEUR DURAND C.DURAND 
+#& 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
@@ -18507,39 +20325,81 @@ MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=mode_
 # 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")
 
-from Macro.macro_proj_base_ops import macro_proj_base_ops
-
-def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args ):
-  if MATR_ASSE_GENE != None:
-    for m in MATR_ASSE_GENE:
-      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)
-  return None
+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 ),
 
-MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-                      sd_prod=macro_proj_base_prod,
-                      fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs",
-         BASE            =SIMP(statut='o',typ=(mode_meca,mode_stat,base_modale,mode_gene) ),
-         NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999),
-         PROFIL          =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
-         MATR_ASSE_GENE  =FACT(statut='f',max='**',
-           MATRICE         =SIMP(statut='o',typ=CO,),
-           MATR_ASSE       =SIMP(statut='f',typ=matr_asse_depl_r),
-           MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r),
-         ),
-         VECT_ASSE_GENE  =FACT(statut='f',max='**',
-           VECTEUR         =SIMP(statut='o',typ=CO,),
-           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),
+         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) ),
          ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
+
+         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 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
@@ -18557,14 +20417,33 @@ MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
-            UIinfo={"groupes":("Gestion du travail",)},
-              fr="Compilation des catalogues de commandes et d éléments",
-
-         ELEMENT         =FACT(statut='f',),
-
+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 01/04/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
@@ -18582,296 +20461,330 @@ MAJ_CATA=PROC(nom="MAJ_CATA",op=20,
 # 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
-MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
-                   fr="Analyse mécanique statique linéaire",reentrant='f',
+# 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=(EXCLUS("INST","LIST_INST"),
-                           AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ),
+         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
+                 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)",
-         ang="CHAM_MATER is compulsory, except if the model contains only discret elements (modelizations DIS_XXX)"),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem,
-         fr="le CARA_ELEM est nécessaire dès que le modèle contient des éléments de structure : coques, poutres, ...",
-         ang="CARA_ELEM is compulsory as soon as the model contains structural elements : plates, beams, ..."),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
+         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",into=("FIXE",) ),
+           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
+                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
          ),
-         INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-         INST_FIN        =SIMP(statut='f',typ='R'),
-         OPTION          =SIMP(statut='f',typ='TXM',into=("SIEF_ELGA_DEPL","SANS"),defaut="SIEF_ELGA_DEPL",max=1,
-             fr="seule option : contraintes aux points de Gauss. Utiliser CALC_ELEM pour les autres.",
-                          ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               ang="List of sensitivity parameters"),
-
+         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","FETI","MUMPS") ),
-
-           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),
-             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='FFFFFFFFF'),
-             STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="CAL",into=("OUI","NON","CAL") ),
-           ),
-
+           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",
+           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' or METHODE == 'FETI' ",
+           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") ),
+             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),
+             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),
+             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='**'),
          ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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 GNICOLAS G.NICOLAS
-MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,
-            UIinfo={"groupes":("Fonction",)},
-                    fr="Mémorisation des noms des concepts dérivés.",
-                    ang="Memorisation of the names of the sensitive concepts.",
-
-         regles=(AU_MOINS_UN('NOM','NOM_ZERO','NOM_UN'),),
-
-         NOM=FACT(statut='f',max='**',
-             regles=(PRESENT_PRESENT('MOT_CLE','VALEUR','MOT_FACT' ),),
-
-             NOM_SD=SIMP(statut='o',typ='TXM',
-                         fr="Nom de la structure de base",
-                         ang="Name of the basic structure"),
-
-             PARA_SENSI=SIMP(statut='o',typ=(para_sensi,theta_geom),
-                         fr="Nom du paramètre sensible",
-                         ang="Name of the sensitive parameter"),
-
-             NOM_COMPOSE=SIMP(statut='f',typ='TXM',defaut=" ",
-                         fr="Nom de la structure composée",
-                         ang="Name of the built structure"),
-
-             MOT_FACT=SIMP(statut='f',typ='TXM',max='**',
-                         fr="Liste des mots clés facteurs concernés par la dérivation",
-                         ang="Factor keyword list involved in derivation"),
-
-             MOT_CLE=SIMP(statut='f',typ='TXM',max='**',
-                         fr="Liste des mots clés concernés par la dérivation",
-                         ang="Keyword list involved in derivation"),
-
-             VALEUR=SIMP(statut='f',typ='TXM',max='**',
-                         fr="Liste des objets concernés par la dérivation",
-                         ang="Object list involved in derivation"),
 
-                 ),
+         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),
+         ),
 
-         NOM_ZERO=SIMP(statut='f',typ=fonction_sdaster,
-                       fr="Nom de la fonction nulle",
-                       ang="Name of the zero fonction"),
+         AFFICHAGE      = FACT(statut='f',max=16,
 
-         NOM_UN  =SIMP(statut='f',typ=fonction_sdaster,
-                       fr="Nom de la fonction unité",
-                       ang="Name of the one fonction"),
+            UNITE       = SIMP(statut='f',typ='I',val_min=1),
 
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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.      
-# ======================================================================
-MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
-                    fr="Modes propres d une structure à répétitivité cyclique à partir d une base de modes propres réels",
-                    reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
-         NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
-         NB_SECTEUR      =SIMP(statut='o',typ='I' ),
-         LIAISON         =FACT(statut='o',
-           DROITE          =SIMP(statut='o',typ='TXM' ),
-           GAUCHE          =SIMP(statut='o',typ='TXM' ),
-           AXE             =SIMP(statut='f',typ='TXM' ),
-         ),
-         VERI_CYCL       =FACT(statut='f',
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ),
-           DIST_REFE       =SIMP(statut='f',typ='R' ),
-         ),
-         CALCUL          =FACT(statut='o',
-           TOUT_DIAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NB_DIAM         =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE"
-                                ,into=("PLUS_PETITE","CENTRE","BANDE") ),
-           b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
-             FREQ            =SIMP(statut='o',typ='R',),
-           ),
-           b_bande       =BLOC(condition = "OPTION == 'BANDE'",
-             FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2),
-           ),
-#  NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE                                
-           NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
-           PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 100. ),
-           PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 50 ),
+            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")),   
+                          ),
          ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& MODIF COMMANDE  DATE 20/10/2004   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.      
-# ======================================================================
-def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
-  if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
-  if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
-  if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
-  if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
-  if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
-  raise AsException("type de concept resultat non prevu")
 
-MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
-                    ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
-                     reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         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 ),
-         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",   
-                               into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ),
-         b_dynam         =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
-           CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
-           
-             OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
-                                   fr="Choix de l option pour estimer les valeurs propres"  ),
-             FREQ            =SIMP(statut='o',typ='R',max='**'),
-             AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),     
-             NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
-             NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
-             PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
-             NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15,val_min=0 ),
-             PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0 ),
 
-             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
-             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
-             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
-             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
-           ),
+
+         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_flamb        =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
-           CALC_FREQ       =FACT(statut='o',fr="Choix des paramètres pour le calcul des valeurs propres",
-           
-             OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
-                                 fr="Choix de l option pour estimer les valeurs propres"  ),
-             CHAR_CRIT       =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
-             NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0,val_min=0 ),           
-             NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30,val_min=0 ),
-             PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
-             NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
-             PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4,val_min=0.E+0, ),
-           
-             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
-             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
-             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0, ),
-             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0, ),
+           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 ),
            ),
-         ),
-         CALC_MODE       =FACT(statut='d',min=0,fr="Choix des paramètres pour le calcul des vecteurs propres",
-           OPTION          =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ),
-           PREC            =SIMP(statut='f',typ='R',defaut= 1.E-5,val_min=0.E+0,fr="Précision de convergence" ),
-           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ),
-         ),
-         VERI_MODE       =FACT(statut='d',min=0,
-           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0,
-                                 fr="Valeur limite admise pour l ereur a posteriori des modes"  ),
-         ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des param\350tres de sensibilit\351.",
-                               ang="List of sensitivity parameters",
-         ),
-         b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
-             CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
-             CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
-             EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 21/03/2005   AUTEUR DURAND C.DURAND 
+           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
@@ -18889,129 +20802,248 @@ MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
-  if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
-  if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
-  if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
-  if AsType(MATR_A) == matr_asse_depl_c : return mode_meca_c
-  if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
-  if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
-  raise AsException("type de concept resultat non prevu")
-
-MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_prod,
-                      fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes",
-                      reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         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) ),
-         METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",
-                               into=("TRI_DIAG","JACOBI","SORENSEN") ),
-         b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
-           PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12,val_min=0.E+0 ),
-           NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
-           PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8,val_min=0.E+0 ),
-           NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30,val_min=0 ), 
+# 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' ),
+           ),
          ),
-         b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
-           PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10,val_min=0.E+0 ),
-           NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40,val_min=0 ),
-           PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
-           NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12,val_min=0 ),
+         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' ),
+           ),
          ),
-         b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
-           PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0,val_min=0.E+0 ),  
-           NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20,val_min=0 ),  
-           PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717,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=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' ),
+           ),
          ),
-         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",
-                               into=("MODE_FLAMB","DYNAMIQUE"),
-                               fr="Type d analyse" ),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),
-                               fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),
+)  ;
+#& 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')),
 
-         b_flamb         =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
-           CALC_FREQ       =FACT(statut='d',min=0,
-             OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
-                                   fr="Choix de l option et par conséquent du shift du problème modal" ),
-             b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
-               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
-             ),
-             b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
-                                 fr="Recherche des valeurs propres les plus proches d une valeur donnée",
-               CHAR_CRIT       =SIMP(statut='o',typ='R',
-                                     fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
-               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
-             ),
-             b_bande       =BLOC(condition = "(OPTION == 'BANDE')",
-                                 fr="Recherche des valeurs propres dans une bande donnée",
-               CHAR_CRIT       =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
-                                     fr="Valeur des deux charges critiques délimitant la bande de recherche"),
-             ),           
-             APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),
-                                   fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
-             regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
-             DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
-             COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
-             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
-             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
-             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
-             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
-           ),
+         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' ),
          ),
 
-         b_dynam        =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
-           CALC_FREQ       =FACT(statut='d',min=0,
-             OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
-                                   fr="Choix de l option et par conséquent du shift du problème modal" ),
-             b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
-               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
-             ),
-             b_centre       =BLOC(condition = "OPTION == 'CENTRE'",
-                                  fr="Recherche des valeurs propres les plus proches d une valeur donnée",
-               FREQ            =SIMP(statut='o',typ='R',
-                                     fr="Fréquence autour de laquelle on cherche les fréquences propres"),
-               AMOR_REDUIT     =SIMP(statut='f',typ='R',),
-               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10,val_min=0 ),
-             ),
-             b_bande         =BLOC(condition = "(OPTION == 'BANDE')",
-                                   fr="Recherche des valeurs propres dans une bande donnée",
-               FREQ            =SIMP(statut='o',typ='R',min=2,validators=NoRepeat(),max=2,
-                                     fr="Valeur des deux fréquences délimitant la bande de recherche"),
-             ),           
-             APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG","COMPLEXE"),
-                                   fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
-             regles=(EXCLUS('DIM_SOUS_ESPACE','COEF_DIM_ESPACE'),),
-             DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
-             COEF_DIM_ESPACE =SIMP(statut='f',typ='I' ),
-             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8,val_min=0 ),
-             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5,val_min=0 ),
-             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2,val_min=0.E+0 ),
-             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2,val_min=0.E+0 ),
+         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' ),
          ),
 
-         VERI_MODE       =FACT(statut='d',min=0,
-           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3,val_min=0.E+0 ),
-           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,val_min=0.E+0,
-                                 fr="Valeur limite admise pour l ereur a posteriori des modes" ),
-           STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des param\350tres de sensibilit\351.",
-                               ang="List of sensitivity parameters",
-         ),
-         b_sensibilite   =BLOC(condition = "SENSIBILITE != None",
-             CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
-             CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
-             EXCIT           =FACT(statut='f',max='**',),  # que pour NMDOME
+         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' ),
          ),
-         STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         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 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -19029,239 +21061,329 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_pr
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
- if (MODE_STAT != None)          : return mode_stat_depl
- if (PSEUDO_MODE !=None)         : return mode_stat_acce
- if (FORCE_NODALE != None)       : return mode_stat_forc
- raise AsException("type de concept resultat non prevu")
-MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
-                   fr="Calcul de modes statiques",
-                   reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
-         MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
-               regles=(UN_PARMI('MODE_STAT','FORCE_NODALE','PSEUDO_MODE'),),
-         MODE_STAT       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
-                   UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
-           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
-           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ,),
-           AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
-           SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
-         ),
-         FORCE_NODALE    =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
-                   UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",), ),
-           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
-           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",), ),
-           AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
-           SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
+# 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 ),
          ),
-         PSEUDO_MODE       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('AXE','DIRECTION','TOUT','NOEUD','GROUP_NO' ),),
-           AXE             =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=3),
-           DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
-           b_dir           =BLOC(condition = "DIRECTION != None",
-             NOM_DIR         =SIMP(statut='f',typ='TXM' ),),
-           b_cmp          =BLOC(condition="TOUT!= None or NOEUD!=None or GROUP_NO!=None",
-             regles=(UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
-             TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
-             SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'), 
-        ),
+         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) ),
          ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
 )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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.
 # ======================================================================
-MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
-                      reentrant='f',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-#  la commande modi_base _modale : reentrant = f ou o                      
-         regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
-         BASE            =SIMP(statut='o',typ=mode_meca ),
-         BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu_sdaster ),
-         NUME_VITE_FLUI  =SIMP(statut='o',typ='I' ),
-         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
-         AMOR_UNIF       =SIMP(statut='f',typ='R' ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
+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 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& 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 G8BHHXD X.DESROCHES
-MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_sdaster,
-                   fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact",
-                   reentrant='o',
-            UIinfo={"groupes":("Maillage",)},
-      regles=(AU_MOINS_UN('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
-                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
-                       'TRANSLATION','ROTATION','MODI_BASE','ECHELLE','ORIE_SHB8','SYMETRIE',
-                       ),
-              PRESENT_ABSENT('ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
-                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
-              PRESENT_ABSENT('DEFORME','ORIE_FISSURE','EQUE_PIQUA','ORIE_PEAU_2D',
-                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
-              PRESENT_ABSENT('EQUE_PIQUA','ORIE_FISSURE','DEFORME','ORIE_PEAU_2D',
-                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
-              PRESENT_ABSENT('ORIE_PEAU_2D','ORIE_FISSURE','DEFORME','EQUE_PIQUA',
-                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',),
-              PRESENT_ABSENT('ORIE_PEAU_3D','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
-                       'PLAQ_TUBE','MODI_MAILLE',),
-              PRESENT_ABSENT('ORIE_NORM_COQUE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
-                       'PLAQ_TUBE','MODI_MAILLE',),
-              PRESENT_ABSENT('PLAQ_TUBE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
-                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','MODI_MAILLE',),
-              PRESENT_ABSENT('MODI_MAILLE','ORIE_FISSURE','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
-                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE',),
-              EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
-              EXCLUS('EQUE_PIQUA','TUBE_COUDE'),
-              EXCLUS('ROTATION','MODI_BASE'),
-              EXCLUS('SYMETRIE','ROTATION'),
-              EXCLUS('SYMETRIE','TRANSLATION'),
-              EXCLUS('SYMETRIE','MODI_BASE'),
-              EXCLUS('SYMETRIE','ECHELLE'),
-              ),
-         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
-
-         ORIE_FISSURE    =FACT(statut='f',
-           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
-         ),
-
-         DEFORME         =FACT(statut='f',
-           OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN","TRAN_APPUI") ),
-           DEPL            =SIMP(statut='o',typ=cham_no_depl_r ),
-        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='**' ),),
+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='**'),
          ),
-
-         EQUE_PIQUA      =FACT(statut='f',
-           GROUP_NO        =SIMP(statut='o',typ=grno),
-           E_BASE          =SIMP(statut='o',typ='R' ),
-           DEXT_BASE       =SIMP(statut='o',typ='R' ),
-           L_BASE          =SIMP(statut='o',typ='R' ),
-           L_CHANF         =SIMP(statut='o',typ='R' ),
-           TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
-           H_SOUD          =SIMP(statut='o',typ='R' ),
-           ANGL_SOUD       =SIMP(statut='o',typ='R' ),
-           JEU_SOUD        =SIMP(statut='o',typ='R' ),
-           E_CORP          =SIMP(statut='o',typ='R' ),
-           DEXT_CORP       =SIMP(statut='o',typ='R' ),
-           AZIMUT          =SIMP(statut='o',typ='R' ),
-           RAFF_MAIL       =SIMP(statut='o',typ='TXM' ),
-           X_MAX           =SIMP(statut='o',typ='R' ),
+         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)),
          ),
-         ORIE_PEAU_2D    =FACT(statut='f',max='**',
-           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+         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'),
          ),
-         ORIE_PEAU_3D    =FACT(statut='f',max='**',
-           GROUP_MA        =SIMP(statut='o',typ=grma,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_sdaster),
+           VALE            =SIMP(statut='f',typ='R'),
+           NUME_INIT       =SIMP(statut='f',typ='I'),
          ),
-         ORIE_SHB8       =FACT(statut='f',max=1,
-           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+         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 ),
          ),
-         ORIE_NORM_COQUE =FACT(statut='f',max='**',
-           regles=(EXCLUS('NOEUD','GROUP_NO'),
-                   PRESENT_PRESENT('NOEUD','VECT_NORM'),
-                   PRESENT_PRESENT('GROUP_NO','VECT_NORM'),),
-           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
-           VECT_NORM       =SIMP(statut='f',typ='R',max=3),
-           NOEUD           =SIMP(statut='f',typ=no),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
+         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 ),
          ),
-         b_modele        =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)",
-           MODELE          =SIMP(statut='o',typ=modele_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",
          ),
-         PLAQ_TUBE       =FACT(statut='f',
-           DEXT            =SIMP(statut='o',typ='R' ),
-           EPAIS           =SIMP(statut='o',typ='R' ),
-           L_TUBE_P1       =SIMP(statut='o',typ='R' ),
-           AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
-           COUTURE         =SIMP(statut='f',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","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",) ),
          ),
-         TUBE_COUDE      =FACT(statut='f',
-           ANGLE           =SIMP(statut='o',typ='R' ),
-           R_CINTR         =SIMP(statut='o',typ='R' ),
-           L_TUBE_P1       =SIMP(statut='o',typ='R' ),
+         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",)),
          ),
-         MODI_MAILLE     =FACT(statut='f',max=1,
-           regles=(AU_MOINS_UN('GROUP_MA_FOND','MAILLE_FOND','GROUP_NO_FOND','NOEUD_FOND'),),
-           OPTION          =SIMP(statut='o',typ='TXM',into=("NOEUD_QUART",) ),
-           GROUP_MA_FOND   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max=1),
-           MAILLE_FOND     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
-           GROUP_NO_FOND   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
-           NOEUD_FOND      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
+         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) ),
          ),
-         MODI_BASE       =FACT(statut='f',
-           VECT_X          =SIMP(statut='o',typ='R',min=2,max=3),
-           VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),
+         TEMP_INIT       =FACT(statut='f',
+           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
+           NUME_INIT       =SIMP(statut='f',typ='I',defaut= 0 ),
          ),
-         ECHELLE         =SIMP(statut='f',typ='R',),        
-         TRANSLATION     =SIMP(statut='f',typ='R',min=2,max=3),
-         ROTATION        =FACT(statut='f',max='**',
-           POIN_1           =SIMP(statut='o',typ='R',min=2,max=3),
-           ANGL             =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
-           regles=(EXCLUS('DIR','POIN_2'),),
-           POIN_2           =SIMP(statut='f',typ='R',min=2,max=3),
-           DIR              =SIMP(statut='f',typ='R',min=2,max=3),
+         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") ),
          ),
-         SYMETRIE        =FACT(statut='f',max='**',
-                          fr = "Symétrie du maillage par rapport à un plan en 3D ou à une droite en 2D.",
-           POINT           =SIMP(statut='o',typ='R',min=2,max=3,
-                            fr="Point appartenant à la droite ou au plan."),
-           AXE_1           =SIMP(statut='o',typ='R',min=2,max=3,
-                            fr="Vecteur directeur de la droite ou 1er vecteur appartenant au plan."),
-           AXE_2           =SIMP(statut='f',typ='R',min=3,max=3,
-                            fr="2nd vecteur appartenant du plan."),
+         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") ),
          ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
+         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
+         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 05/07/2004   AUTEUR GENIAUT S.GENIAUT 
+
+
+
+#& 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
+# 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     
@@ -19276,266 +21398,360 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage_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 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")
 
-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",
+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",) ),
 
-    MODELE_IN       =SIMP(statut='o',typ=modele_sdaster,min=01,max=01,),
-    FISSURE         =SIMP(statut='o',typ=fiss_xfem,min=01,max=01,),
-    INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,)),
+         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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+#& MODIF COMMANDE  DATE 28/02/2006   AUTEUR 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.      
+# 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.        
 # ======================================================================
-MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle_sdaster,
-                   fr=" ",reentrant='f',
-            UIinfo={"groupes":("Modélisation",)},
-      regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
-              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),
-         INST            =SIMP(statut='f',typ='R'),  
-         OBSTACLE        =SIMP(statut='f',typ=obstacle_sdaster),
-         GUIDE           =SIMP(statut='o',typ=obstacle_sdaster),
-         CRAYON          =SIMP(statut='f',typ=obstacle_sdaster),
-         R_MOBILE        =SIMP(statut='f',typ='R'),  
-         PERCEMENT       =SIMP(statut='f',typ='R',defaut=1),  
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   AUTEUR REZETTE C.REZETTE 
+# 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 - 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 - 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 JMBHH01 J.M.PROIX
-def modi_repere_prod(RESULTAT,**args):
-  if AsType(RESULTAT) == evol_elas :    return evol_elas
-  if AsType(RESULTAT) == evol_noli :    return evol_noli
-  if AsType(RESULTAT) == evol_ther :    return evol_ther
-  if AsType(RESULTAT) == dyna_trans :   return dyna_trans
-  if AsType(RESULTAT) == dyna_harmo :   return dyna_harmo
-  if AsType(RESULTAT) == mode_meca :    return mode_meca
-  if AsType(RESULTAT) == mode_flamb :   return mode_flamb
-  if AsType(RESULTAT) == mult_elas :    return mult_elas
-  if AsType(RESULTAT) == base_modale  : return base_modale
+# 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")
 
-MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-                    fr="Impression des resultats dans un repere cylindrique",
-         RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
-                                               evol_noli,mult_elas,
-                                               evol_ther,base_modale,mode_flamb) ),
-         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                        'NOEUD_CMP','LIST_INST','LIST_FREQ','NOM_CAS'),),
-         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='**'),
-         NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-         NOM_CAS         =SIMP(statut='f',typ='TXM' ),
-
-         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-         LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
+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" ),),
 
-         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",),),
+   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.        
+# ======================================================================
 
-         MODI_CHAM       =FACT(statut='o',max='**',
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           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='**'),
-           TYPE_CHAM       =SIMP(statut='o',typ='TXM',
-                                 into=("VECT_2D","VECT_3D","TORS_3D","TENS_2D","TENS_3D"),),
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
-           b_vect_2d       =BLOC(condition = "TYPE_CHAM=='VECT_2D'",
-              NOM_CMP         =SIMP(statut='o',typ='TXM',min=2,max=2 ),),
-           b_vect_3d       =BLOC(condition = "TYPE_CHAM=='VECT_3D'",
-              NOM_CMP         =SIMP(statut='o',typ='TXM',min=3,max=3 ),),
-           b_tors_3d       =BLOC(condition = "TYPE_CHAM=='TORS_3D'",
-              NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
-           b_tens_2d       =BLOC(condition = "TYPE_CHAM=='TENS_2D'",
-              NOM_CMP         =SIMP(statut='o',typ='TXM',min=4,max=4 ),),
-           b_tens_3d       =BLOC(condition = "TYPE_CHAM=='TENS_3D'",
-              NOM_CMP         =SIMP(statut='o',typ='TXM',min=6,max=6 ),),
-         ),
-         DEFI_REPERE     =FACT(statut='o',
-         regles=(UN_PARMI('ANGL_NAUT','ORIGINE'),),
-           REPERE          =SIMP(statut='f',typ='TXM',defaut="UTILISATEUR",
-                                 into=("UTILISATEUR","CYLINDRIQUE"),),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-           ORIGINE         =SIMP(statut='f',typ='R',min=2,max=3),
-           AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-)  ;
-#& MODIF COMMANDE  DATE 11/08/2004   AUTEUR A3BHHAE H.ANDRIAMBOLOLONA 
+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 - 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 - 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.        
 # ======================================================================
-def norm_mode_prod(MODE,**args ):
-  if AsType(MODE) == mode_meca   : return mode_meca
-  if AsType(MODE) == mode_meca_c : return mode_meca_c
-  if AsType(MODE) == mode_flamb  : return mode_flamb
-  raise AsException("type de concept resultat non prevu")
 
-NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
-               fr="Normalisation de modes propres",
-               reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),),
-         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") ),
-         NOEUD      =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
-         b_noeud    =BLOC(condition = "NOEUD != None",
-           NOM_CMP    =SIMP(statut='o',typ='TXM' ),
+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' ),  
          ),
-         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 ),
-         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" ),
-           SIGNE      =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),
-                            fr="Choix du signe" ),
+         b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
+           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='TEMP' ),  
          ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des param\350tres de sensibilit\351.",
-                               ang="List of sensitivity parameters",
+         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),), 
          ),
-         TITRE      =SIMP(statut='f',typ='TXM',max='**'),
-         INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 01/04/2005   AUTEUR VABHHTS J.PELLET 
+
+
+#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
 #            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 - 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 VABHHTS J.PELLET
-NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl_sdaster,reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-              fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
-                  regles=(UN_PARMI('MATR_RIGI','MODELE'),),
-         MATR_RIGI       =SIMP(statut='f',validators=NoRepeat(),max=100,
-                               typ=(matr_elem_depl_r ,matr_elem_depl_c,matr_elem_temp_r ,matr_elem_pres_c) ),
-         MODELE          =SIMP(statut='f',typ=modele_sdaster ),
-         b_modele        =BLOC(condition = "MODELE != None",
-           CHARGE     =SIMP(statut='f',validators=NoRepeat(),max='**',typ=(char_meca,char_ther,char_acou, ),),
-         ),
-         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 associés à la méthode multifrontale",
-           RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS"),defaut="METIS" ),
-         ),
-         b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
-           RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
-         ),
-         b_mumps          =BLOC(condition="METHODE=='MUMPS'",fr="paramètres associés à la méthode MUMPS",
-           RENUM           =SIMP(statut='f',typ='TXM',into=("SANS",),defaut="SANS"  ),
-         ),
-         b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué",
-           RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS"),defaut="RCMK"  ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2)),
+   
+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 18/04/2005   AUTEUR NICOLAS O.NICOLA
+#& MODIF COMMANDE  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOI
 #            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 - 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.        
 # ======================================================================
-NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
-                   fr="Etablissement de la numérotation des ddl d un modèle établi en coordonnées généralisées",
+# 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":("Matrices/vecteurs",)},
-         regles=UN_PARMI('MODELE_GENE','BASE'),
-         MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
-             b_modele_gene     =BLOC(condition = "MODELE_GENE != None",
-               STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("LIGN_CIEL","PLEIN") ),
-               METHODE            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("INITIAL","CLASSIQUE") ),
-                                    ),
-         BASE     =SIMP(statut='f',typ=(mode_meca,mode_stat,base_modale,mode_gene ) ),
-             b_base     =BLOC(condition = "BASE != None",
-               STOCKAGE     =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("DIAG","PLEIN") ),
-               NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
-                             ),
+                    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 09/05/2005   AUTEUR REZETTE C.REZETTE 
+#& 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 - 2005  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     
@@ -19550,2246 +21766,1137 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
 # 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="expression 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 
-#            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_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
-                    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 ),
-         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='**' ),
-         NOEUD_I         =SIMP(statut='f',typ=no,max='**'),         
-         OPTION          =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
-         b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
-           NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**' ),   
-         ),  
-         b_noeud_i      =BLOC(condition = "NOEUD_I != None",
-           NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
-           NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**' ),  
-           NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**' ),     
-         ),  
-         DEPASSEMENT     =FACT(statut='f',max='**',
-           fr="Loi de dépassement d un seuil pendant une durée donnée",
-           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
-           VALE_MIN        =SIMP(statut='f',typ='R' ),  
-           VALE_MAX        =SIMP(statut='f',typ='R' ),  
-           PAS             =SIMP(statut='f',typ='R' ),  
-           DUREE           =SIMP(statut='f',typ='R',defaut= 1. ),  
-         ),
-         RAYLEIGH        =FACT(statut='f',max='**',
-           fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite",
-           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
-           VALE_MIN        =SIMP(statut='f',typ='R' ),  
-           VALE_MAX        =SIMP(statut='f',typ='R' ),  
-           PAS             =SIMP(statut='f',typ='R' ),  
-         ),
-         GAUSS           =FACT(statut='f',max='**',
-           fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande",
-           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
-           VALE_MIN        =SIMP(statut='f',typ='R' ),  
-           VALE_MAX        =SIMP(statut='f',typ='R' ),  
-           PAS             =SIMP(statut='f',typ='R' ),  
-         ),
-         VANMARCKE       =FACT(statut='f',max='**',
-           fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)",
-           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
-           VALE_MIN        =SIMP(statut='f',typ='R' ),  
-           VALE_MAX        =SIMP(statut='f',typ='R' ),  
-           PAS             =SIMP(statut='f',typ='R' ),  
-           DUREE           =SIMP(statut='f',typ='R',defaut= 10. ),  
-         ),
-         MOMENT          =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ),  
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna,
-                      fr="Post-traitements en coordonnées généralisées issus de DYNA_TRAN_MODAL",
-                      reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-        regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
-         RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
-         CHOC            =FACT(statut='f',max='**',
-                               fr="Analyse des non linéarités de choc",
-           INST_INIT       =SIMP(statut='f',typ='R',defaut= -1. ),  
-           INST_FIN        =SIMP(statut='f',typ='R',defaut= 999. ),  
-           NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
-           SEUIL_FORCE     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
-           DUREE_REPOS     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
-           OPTION          =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
-           NB_CLASSE       =SIMP(statut='f',typ='I',defaut= 10 ),  
-         ),
-         RELA_EFFO_DEPL  =FACT(statut='f',
-                               fr="Analyse des relationsnon linéaires effort-déplacement",
-           NOEUD           =SIMP(statut='o',typ=no),
-           NOM_CMP         =SIMP(statut='o',typ='TXM' ),  
-         ),
-         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 
-#            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
-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',
-            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'),
-                ),
+from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops
 
-         MASS_INER      = 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='**'),
-                               ORIG_INER    = SIMP(statut='f',typ='R',min=3,max=3 ),
-                              ),
-         b_mass_iner = BLOC(condition = "( MASS_INER != None )",
-                       fr="calcul de la masse, les inerties et le centre de gravité",
-                       regles=(EXCLUS('CHAM_GD','RESULTAT'),
-                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                                      'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       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),
-                       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) ),
-                       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),
-                       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',),
-                       LIST_ORDRE     = SIMP(statut='f',typ=listis_sdaster),
-                       INST           = SIMP(statut='f',typ='R',),
-                       LIST_INST      = SIMP(statut='f',typ=listr8_sdaster),
-                       FREQ           = SIMP(statut='f',typ='R',),
-                       LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
-                       NUME_MODE      = SIMP(statut='f',typ='I',),
-                       NOEUD_CMP      = SIMP(statut='f',typ='TXM',min=2,validators=NoRepeat(),max=2),
-                       NOM_CAS        = SIMP(statut='f',typ='TXM',),
-         ),
+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),),
+                                            ),
+                                          ),
+                     );
 
-         ENER_POT       = 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='**'),
-                              ),
-         b_ener_pot = BLOC(condition = "( ENER_POT  != None )",
-                       fr="calcul de l'énergie potentielle de déformation",
-                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
-                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                                      'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
-                       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) ),
-                       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")),
-                       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),
-                       FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-                       LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
-                       NUME_MODE      = SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**'),
-                       NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-                       NOM_CAS        = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
+#& 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='**'),
          ),
-
-         ENER_CIN       = FACT(statut='f',max='**',
-                               regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
-                               OPTION       = SIMP(statut='f',typ='TXM',
-                                                   into=("MASS_MECA","MASS_MECA_DIAG"),
-                                                   defaut="MASS_MECA" ),
-                               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='**'),
-                              ),
-         b_ener_cin = BLOC(condition = "( ENER_CIN != None )",
-                       fr="calcul de l'énergie cinétique",
-                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
-                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                                      'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),),
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       NUME_COUCHE    = SIMP(statut='f',typ='I',defaut=1),
-                       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) ),
-                       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")),
-                       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),
-                       FREQ           = SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-                       LIST_FREQ      = SIMP(statut='f',typ=listr8_sdaster),
-                       NUME_MODE      = SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-                       NOEUD_CMP      = SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-                       NOM_CAS        = SIMP(statut='f',typ='TXM',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") ),
          ),
-
-         ENER_ELAS      = 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='**'),
-                              ),
-         b_ener_elas = BLOC(condition = "( ENER_ELAS != None )",
-                       fr="calcul de l'énergie de déformation élastique",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       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),
-                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
-                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-                       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),
+         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),
          ),
-
-         ENER_TOTALE    = 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='**'),
-                              ),
-         b_ener_totale = BLOC(condition = "( ENER_TOTALE != None )",
-                       fr="calcul de l'énergie de déformation totale",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       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),
-                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
-                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-                       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),
+         EXCIT_GENE      =FACT(statut='f',
+           FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
+           VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
          ),
-
-         WEIBULL        = 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='**'),
-                               OPTION       = SIMP(statut='f',typ='TXM',
-                                                   into=("SIGM_ELGA","SIGM_ELMOY"),
-                                                   defaut="SIGM_ELGA"),
-                               CORR_PLAST   = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
-                               COEF_MULT    = SIMP(statut='f',typ='R',defaut=1.),
-                              ),
-         b_weibull = BLOC(condition = "( WEIBULL != None )",
-                       fr="calcul du champ élémentaire de la puissance m-ième de la contrainte de Weibull",
-                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
-                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       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) ),
-                       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")),
-                       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),
+         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'),
          ),
-
-         RICE_TRACEY    = 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='**'),
-                               OPTION       = SIMP(statut='f',typ='TXM',
-                                                   into=("SIGM_ELGA","SIGM_ELMOY"),
-                                                   defaut="SIGM_ELGA"),
-                               LOCAL        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-                              ),
-         b_rice_tracey = BLOC(condition = "( RICE_TRACEY != None )",
-                       fr="calcul du taux de croissance d'une cavité sphérique par rapport à un domaine",
-                       regles=(UN_PARMI('CHAM_GD','RESULTAT'),
-                               EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       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) ),
-                       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")),
-                       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),
+#-------------------------------------------------------------------
+         DIFF_CENT       =FACT(statut='f',
          ),
-
-         INDIC_ENER     = 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='**'),
-                              ),
-         b_indic_ener = BLOC(condition = "( INDIC_ENER != None )",
-                       fr="calcul un indicateur global de perte de proportionnalité du chargement",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
-                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
-                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-                       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),
+         TCHAMWA         =FACT(statut='f',
+           PHI             =SIMP(statut='f',typ='R',defaut= 1.05),
          ),
-
-         INDIC_SEUIL    = 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='**'),
-                              ),
-         b_indic_seuil = BLOC(condition = "( INDIC_SEUIL != None )",
-                       fr="calcul un indicateur global de perte de proportionnalité du chargement",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
-                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
-                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-                       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),
+         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),
          ),
-
-         CHAR_LIMITE    = FACT(statut='f',min=0,
-                               CHAR_CSTE = SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON")
-                              ),
-         b_char_limite = BLOC(condition = "( CHAR_LIMITE != None )",
-                       fr="post-traitement du calcul de la charge limite",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CARA_ELEM      = SIMP(statut='f',typ=cara_elem),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
-                       RESULTAT       = SIMP(statut='o',typ=(evol_noli) ),
-                       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
-                       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),
+         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") ),
          ),
-
-         CARA_GEOM      = 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='**'),
-                               SYME_X       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-                               SYME_Y       = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-                               ORIG_INER    = SIMP(statut='f',typ='R',min=2,max=2),
-                              ),
-         b_cara_geom = BLOC(condition = "( CARA_GEOM != None )",
-                       fr="calcul des caractéristiques géométriques d'un section de poutre",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
+#-------------------------------------------------------------------
+         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),
          ),
-
-         CARA_POUTRE    = FACT(statut='f',max='**',
-                               regles=(AU_MOINS_UN('TOUT','GROUP_MA'),
-                                       ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
-                               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),
-                               RT            = SIMP(statut='f',typ='R'),
-                               LAPL_PHI      = SIMP(statut='f',typ=evol_ther),
-                               LAPL_PHI_Y    = SIMP(statut='f',typ=evol_ther),
-                               LAPL_PHI_Z    = SIMP(statut='f',typ=evol_ther),
-                               LIAISON       = SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
-                               LONGUEUR      = SIMP(statut='f',typ='R'),
-                               MATERIAU      = SIMP(statut='f',typ=mater_sdaster),
-                               OPTION        = SIMP(statut='f',typ='TXM',
-                                                    into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
-                             ),
-         b_cara_poutre = BLOC(condition = "( CARA_POUTRE != None )",
-                       fr="calcul des caractéristiques mécaniques d'un section de poutre",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
-                       CHAM_MATER     = SIMP(statut='f',typ=cham_mater),
-                       CHARGE         = SIMP(statut='f',typ=(char_meca,char_ther,char_acou),validators=NoRepeat(),max='**' ),
-                       MODE_FOURIER   = SIMP(statut='f',typ='I',defaut=0),
+         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,
 
-          AIRE_INTERNE   = FACT(statut='f',max='**',
-                                GROUP_MA_BORD  = SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
+            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_aire_interne = BLOC(condition = "( AIRE_INTERNE != None )",
-                       fr="calcul de l'aire d'un trou dans un maillage 2D",
-                       MODELE         = SIMP(statut='f',typ=modele_sdaster),
+            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='**',
 
-         TRAV_EXT       = FACT(statut='f',),
-         b_trav_ext = BLOC(condition = "( TRAV_EXT != None )",
-                       fr="calcul du travail des efforts extérieurs",
-                       RESULTAT       = SIMP(statut='o',typ=(evol_elas,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")),
-                       TOUT_ORDRE     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
+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='**'),
          ),
-
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-
- )  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-                    fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire",
-         regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
-                 PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
-                 UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
-         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),
-         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",)),
-         DOMMAGE         =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
-         MATER           =SIMP(statut='o',typ=mater_sdaster),
-         TITRE           =SIMP(statut='f',typ='TXM',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 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
 #            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 - 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.        
 # ======================================================================
-POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-                  fr="Calcul du dommage subi par une structure soumise à une histoire de chargement",
 
-         CHARGEMENT = SIMP(statut='o',typ='TXM',into=("UNIAXIAL","PERIODIQUE","QUELCONQUE")),
+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
 
-         b_uniaxial = BLOC( condition = "CHARGEMENT=='UNIAXIAL'",
-                      regles=(PRESENT_PRESENT('CORR_KE','MATER'),
-                              PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
-                              PRESENT_PRESENT('DOMMAGE','MATER'),),
-             HISTOIRE       = FACT(statut='o',
-                                 regles=(UN_PARMI('SIGM','EPSI'),),
-                                 SIGM  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 EPSI  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
-             COMPTAGE       = SIMP(statut='o',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")),
-             DELTA_OSCI     = SIMP(statut='f',typ='R',defaut= 0.0E+0),
-             COEF_MULT      = FACT(statut='f',
-                                 KT    = SIMP(statut='o',typ='R'),),
-             CORR_KE        = SIMP(statut='f',typ='TXM',into=("RCCM",)),
-             DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN",
-                                                              "TAHERI_MANSON","TAHERI_MIXTE")),
-             MATER          = SIMP(statut='f',typ=mater_sdaster),
-             CORR_SIGM_MOYE = SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
-             TAHERI_NAPPE   = SIMP(statut='f',typ=(nappe_sdaster,formule)),
-             TAHERI_FONC    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
-         ),
 
-         b_periodique = BLOC( condition = "CHARGEMENT=='PERIODIQUE'",
-             HISTOIRE       = FACT(statut='o',
-                                 SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),),
-             CRITERE        = SIMP(statut='o',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
-             DOMMAGE        = SIMP(statut='f',typ='TXM',into=("WOHLER",)),
-             MATER          = SIMP(statut='o',typ=mater_sdaster),
-             COEF_CORR      = SIMP(statut='f',typ='R'),
-         ),
+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"),)
+                                       ),
 
-         b_quelconque = BLOC( condition = "CHARGEMENT=='QUELCONQUE'",
-             HISTOIRE       = FACT(statut='o',
-                                 SIGM_XX  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_YY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_ZZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_XY  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_XZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 SIGM_YZ  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 EPSP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                 TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),),
-             DOMMAGE        = SIMP(statut='f',typ='TXM',into=("LEMAITRE",),),
-             MATER          = SIMP(statut='o',typ=mater_sdaster),
-             CUMUL          = SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
-         ),
+                      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),
+                      ),
+                     );
 
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 01/02/2005   AUTEUR GALENNE E.GALENNE 
+#& 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 - 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 GALENNE E.GALENNE
-
-POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
-                   fr="Calcul des FIC par extrapolation du champ de déplacements sur les lèvres de la fissure",
-                   reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
+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=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'),
-                   PRESENT_PRESENT('RESULTAT','FOND_FISS'),),
+           regles=(EXCLUS('FONCTION','LISTE'),),
 
-         MODELISATION  =SIMP(statut='o',typ='TXM',
-                             into=("3D","AXIS","D_PLAN","C_PLAN"),
-                             fr="Modélisation cohérente avec celle utilisée pour le calcul des déplacements"),
-         FOND_FISS     =SIMP(statut='f',typ=fond_fiss),
-         b_fond_fiss   =BLOC (condition="(FOND_FISS!= None)",
-                         MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
-                         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='**'),
-                         SANS_GROUP_NO = SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-                         TOUT          = SIMP(statut='f',typ='TXM',into=("OUI",) )
-                         ),
-         MATER         =SIMP(statut='o',typ=mater_sdaster,
-                             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,
-                             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,
-                             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"),  
-         PREC_VIS_A_VIS= SIMP(statut='f',typ='R',defaut=0.1),
-         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),
-             b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
-               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
-               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             ),
-         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","SANS") ),
-         INFO          =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-         VECT_K1       =SIMP(statut='o',typ='R',max=3,
-                             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='**'),  
+           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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+
+
+
+#& MODIF COMMANDE  DATE 04/10/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.                                 
+# 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."),
 #
-# 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.      
-#                                                                       
-#                                                                       
-# ======================================================================
+# 6.2.3. ==> Création d'une surface de réponse polynomiale
 #
-POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta,
-                   fr="Calcul des FIC par la méthode K_BETA",
-                   reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-         MAILLAGE      = SIMP(statut='o',typ=maillage_sdaster),
-         MATER_REV     = SIMP(statut='o',typ=mater_sdaster),
-         EPAIS_REV     = SIMP(statut='o',typ='R'),
-         FISSURE       = FACT(statut='o',
-            DECALAGE       = SIMP(statut='f',typ='R',defaut=-2.e-04),
-            PROFONDEUR     = SIMP(statut='o',typ='R'),
-            LONGUEUR       = SIMP(statut='o',typ='R'),
-            ORIENTATION    = SIMP(statut='o',typ='TXM',
-                                 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)),
-            INTITULE       = SIMP(statut='o',typ='TXM' ), 
-         ),
-         TITRE         = SIMP(statut='f',typ='TXM',max='**'),  
-);
-#& MODIF COMMANDE  DATE 09/05/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="maillage fissuré 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 
-#            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.                                 
+     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."),
 #
-# 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 PARTIC               
+# 6.2.4. ==> Recherche d'un plan d'expérience
 #
-# 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
-POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
-               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",)},
-         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","DETAILS") ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         TYPE_RESU_MECA  =SIMP(statut='o',typ='TXM',into=("EVOLUTION","UNITAIRE","TUYAUTERIE") ),
-
-# ======================================================================
-     b_evolution  =BLOC(condition="(TYPE_RESU_MECA == 'EVOLUTION')",
-
-         OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                               into=("PM_PB","SN","FATIGUE_ZH210") ),
-         MATER           =SIMP(statut='o',typ=mater_sdaster ),
-
-         TRANSITOIRE     =FACT(statut='o',max='**',fr="transitoire à dépouiller",
-           regles=(EXCLUS('TOUT_ORDRE','INST','LIST_INST'),),
-           NB_OCCUR        =SIMP(statut='f',typ='I',defaut= 1,
-                                 fr="nombre d occurences réelles de ce transitoire" ),
-           TABL_RESU_MECA  =SIMP(statut='o',typ=table_sdaster,
-                                 fr="relevé des contraintes sur le chemin"),
-           TABL_SIGM_THER  =SIMP(statut='f',typ=table_sdaster,
-                                 fr="résultat sous chargement thermique seul" ),
-           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
-           b_inst          =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
-                                 ), 
-                             ),
-         ),
-
-# ======================================================================
-     b_unitaire  =BLOC(condition="(TYPE_RESU_MECA == 'UNITAIRE')",
-
-         OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                               into=("PM_PB","SN","FATIGUE") ),
-         MATER           =SIMP(statut='o',typ=mater_sdaster ),
-         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",
-           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", ),
-                         ),
-         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"),
-           TABL_PRES     =SIMP(statut='o',typ=table_sdaster,
-                              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,
-                              fr="table relevé des contraintes sous chargement thermique seul" ),
-                           ),
-         SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
-              NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
-              NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
-              NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
-              NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
-              COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
-              NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ),
-              NUME_PASSAGE     =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ),
-              NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
-              CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
-              CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
-              PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
-              PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
-              TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
-              TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
-                               ),
-                      ),
-# ======================================================================
-     b_tuyauterie  =BLOC(condition="(TYPE_RESU_MECA == 'TUYAUTERIE')",
-
-         OPTION          =SIMP(statut='o',typ='TXM',into=("FATIGUE",) ),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
-         TYPE_KE         =SIMP(statut='f',typ='TXM',defaut="KE_MECA",into=("KE_MECA","KE_MIXTE"),
-                               fr="Ke meca seul ou partition mecanique + thermique" ),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CARA_ELEM       =SIMP(statut='o',typ=cara_elem),
-         ZONE_ANALYSE =FACT(statut='o',fr="liste des mailles ou des noeuds analysés",
-            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('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='**'),
-            ),
-         RESU_MECA   =FACT(statut='o',max='**',fr="Chargements mécaniques",
-           regles=(UN_PARMI('CHAM_GD','RESULTAT'),),
-           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",),
-           CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
-           RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),
-           b_extrac        =BLOC(condition="RESULTAT != None",
-                                 fr="extraction d un champ de grandeur",
-             regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','NOEUD_CMP'),),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("EFGE_ELNO_DEPL","SIEF_ELNO_ELGA"),),
-             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             NUME_ORDRE      =SIMP(statut='f',typ='I',),
-             INST            =SIMP(statut='f',typ='R',),
-             NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-             b_acce_reel     =BLOC(condition="(INST != None)",
-               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
-               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU"), ),
-             ),
-           ),
-                          ),
-         INDI_SIGM =FACT(statut='o',max='**',fr="indices de contraintes",
-            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
-            C1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C1 du RCCM"),
-            K1              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K1 du RCCM"),
-            C2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes C2 du RCCM"),
-            K2              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K2 du RCCM"),
-            C3              =SIMP(statut='f',typ='R',defaut=0.5,fr="indice de contraintes C3 du RCCM"),
-            K3              =SIMP(statut='f',typ='R',defaut=1.0,fr="indice de contraintes K3 du RCCM"),
-            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),),
-            GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-                             fr="groupe(s) de mailles ou sont affectés les indices de contraintes"),
-            MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',
-                             fr="liste des mailles ou sont affectés les indices de contraintes"),
-            b_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
-               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-            ),
-            TYPE_ELEM_STANDARD =SIMP(statut='f',typ='TXM',into=("DRO","COU","TRN","TEE"),
-                              fr="type d'élément de tuyauterie ou sont affectés les indices de contraintes"),
-                         ),
-          RESU_THER   =FACT(statut='f',max='**',fr="resultats thermiques",
-            regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
-            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,
-                              fr="table relevé des températures sur la section"),
-            TABL_MOYE_THER =SIMP(statut='o',typ=table_sdaster,
-                              fr="table relevé des moyennes sur la section"),
-            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_grma     =BLOC(condition="(GROUP_MA != None)or(MAILLE != None)",
-               GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-               NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-            ),
-                           ),
-         SITUATION         =FACT(statut='o',max='**',fr="Situation",ang="situation_ang",
-              NB_OCCUR         =SIMP(statut='o',typ='I',fr="nombre d'occurences de la situation" ),
-              NB_CYCL_SEISME   =SIMP(statut='f',typ='I',fr="nombre de cycles associé au séisme" ),
-              NUME_SITU        =SIMP(statut='o',typ='I',fr="numéro de la situation" ),
-              NOM_SITU         =SIMP(statut='f',typ='TXM',fr="nom de la situation" ),
-              COMBINABLE       =SIMP(statut='f',typ='TXM',defaut= "OUI",into=("OUI","NON"),fr="non = sous-cycle" ),
-              NUME_GROUPE      =SIMP(statut='o',typ='I',fr="numéro du groupe de la situation" ),
-              NUME_PASSAGE     =SIMP(statut='f',typ='I',max=2,fr="numéro des deux groupes en relation" ),
-              NUME_RESU_THER   =SIMP(statut='f',typ='I',max='**',fr="numeros de transitoires thermiques" ),
-              CHAR_ETAT_A      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat A" ),
-              CHAR_ETAT_B      =SIMP(statut='o',typ='I',max='**',fr="numeros de chargements etat B" ),
-              PRES_A           =SIMP(statut='o',typ='R',fr="pression etat A"),
-              PRES_B           =SIMP(statut='o',typ='R',fr="pression etat B"),
-              TEMP_REF_A       =SIMP(statut='f',typ='R',fr="temperature référence etat A"),
-              TEMP_REF_B       =SIMP(statut='f',typ='R',fr="temperature référence etat B"),
-                               ),
-               ),
-)  ;
-#& MODIF COMMANDE  DATE 07/10/2004   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.                                 
+     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."),
 #
-# 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
-POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,reentrant='f',
-            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'),),
-           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)),
-           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",
-             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_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'), ),           
-             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='**'),  
-             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-             NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
-             LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
-             NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-             NOM_CAS         =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),  
-             FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
-             LIST_FREQ       =SIMP(statut='f',typ=listr8_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-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",
-                                 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),  
-
-           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),
-         ),
-         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 
-#            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.                                 
+# 6.2.5. ==> Les tests
+# 6.2.5.1. ==> Test de la sphere
 #
-# 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.                            
+     T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
+                     fr="Test de la sphère.",
+                     ang="Sphere test."),
 #
-# 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=" ",reentrant='n',
-            UIinfo={"groupes":("Outils métier",)},
-         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 10/06/2004   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.                                 
+     b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'",
 #
-# 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.                            
+       METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE",
+                           into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"),
+                           fr="Type de méthode.",
+                           ang="Method."),
 #
-# 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_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,reentrant='f',
-            UIinfo={"groupes":("Post traitements",)},
-                fr="Calcul des volumes d'usure et des profondeurs d'usure",
-         regles=(UN_PARMI('TUBE_NEUF','RESU_GENE','PUIS_USURE'),
-                 PRESENT_PRESENT('RESU_GENE','NOEUD','LOI_USURE'),
-                 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),
-           INST_INIT       =SIMP(statut='f',typ='R'),  
-                         ),
-         RESU_GENE       =SIMP(statut='f',typ=tran_gene),
-         NOEUD           =SIMP(statut='f',typ=no,),
-         INST_INIT       =SIMP(statut='f',typ='R',defaut=-1.0E+0),  
-         INST_FIN        =SIMP(statut='f',typ='R'),  
-         NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
-         PUIS_USURE      =SIMP(statut='f',typ='R'),  
-         LOI_USURE       =SIMP(statut='f',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
-         b_archard       =BLOC(condition = "LOI_USURE == 'ARCHARD'",
-           regles=(UN_PARMI('MOBILE','MATER_USURE','SECTEUR'), 
-                   EXCLUS('MATER_USURE','OBSTACLE'),
-                   EXCLUS('MOBILE','USURE_OBST'),),
-           MOBILE          =FACT(statut='f',
-             COEF_USURE      =SIMP(statut='o',typ='R'), 
-           ),   
-           OBSTACLE        =FACT(statut='f',
-             COEF_USURE      =SIMP(statut='o',typ='R'), 
-           ),
-           SECTEUR         =FACT(statut='f',max='**',
-             CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",  
-                                                              "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", 
-                                                              "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
-             COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),  
-             COEF_USUR_OBST  =SIMP(statut='f',typ='R'),  
-             ANGL_INIT       =SIMP(statut='f',typ='R'),  
-             ANGL_FIN        =SIMP(statut='f',typ='R'),  
-           ),
-           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
-           USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
-         ),
-         b_kwu_epri        =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
-           regles=(UN_PARMI('MOBILE','MATER_USURE'), 
-                   EXCLUS('MATER_USURE','OBSTACLE'),
-                   EXCLUS('MOBILE','USURE_OBST'),),
-           MOBILE          =FACT(statut='f',
-             COEF_FNOR       =SIMP(statut='f',typ='R'),  
-             COEF_VTAN       =SIMP(statut='f',typ='R'),  
-             COEF_USURE      =SIMP(statut='f',typ='R'),  
-             COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
-             COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
-           ),   
-           OBSTACLE        =FACT(statut='f',
-             COEF_FNOR       =SIMP(statut='f',typ='R' ),  
-             COEF_VTAN       =SIMP(statut='f',typ='R' ),  
-             COEF_USURE      =SIMP(statut='o',typ='R'), 
-             COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
-             COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
-           ),   
-           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
-           USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           FNOR_MAXI       =SIMP(statut='f',typ='R' ),  
-           VTAN_MAXI       =SIMP(statut='f',typ='R' ),  
-         ),
-         b_edf_mz          =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
-           regles=(UN_PARMI('MOBILE','MATER_USURE'), 
-                   EXCLUS('MATER_USURE','OBSTACLE'),
-                   EXCLUS('MOBILE','USURE_OBST'),),
-           MOBILE          =FACT(statut='f',
-             COEF_USURE      =SIMP(statut='f',typ='R',defaut=1.0E-13),  
-             COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
-             COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
-             COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
-           ),   
-           OBSTACLE        =FACT(statut='f',
-             COEF_USURE      =SIMP(statut='o',typ='R',defaut=1.0E-13), 
-             COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
-             COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
-             COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
-           ),   
-           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
-           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),
-            INST            =SIMP(statut='f',typ='R'),
-         ),
-         CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",    
-                                                          "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",        
-                                                          "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
-         RAYON_MOBILE    =SIMP(statut='f',typ='R'),  
-         RAYON_OBST      =SIMP(statut='f',typ='R'),  
-         LARGEUR_OBST    =SIMP(statut='f',typ='R'),  
-         ANGL_INCLI      =SIMP(statut='f',typ='R'),  
-         ANGL_ISTHME     =SIMP(statut='f',typ='R'),  
-         ANGL_IMPACT     =SIMP(statut='f',typ='R'),  
-         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
-         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-         COEF_INST       =SIMP(statut='f',typ='R',defaut=1.0E+0),  
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& 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.                                 
+       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.")
+     ),
 #
-# 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.                            
+# 6.2.5.2. ==> Test du maximum fort
 #
-# 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_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-              fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non",
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=char_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",)),
-         ),
-         EVOL_ELAS       =SIMP(statut='o',typ=evol_elas),
-         b_evol_elas     =BLOC(condition="EVOL_ELAS != None",
-           regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),),
-           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),  
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),  
-         ),
-         TEMP_ZAC        =SIMP(statut='f',typ='R',defaut=0.0E+0),  
-         EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-         b_evol_noli     =BLOC(condition="EVOL_NOLI != None",
-           INST_MAX        =SIMP(statut='o',typ='R'),  
-         ),
-         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/03/2005   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.                                 
+     T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
+                           fr="Test du maximum fort.",
+                           ang="Strong maximum test."),
 #
-# 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.                            
+     b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'",
 #
-# 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.      
-# ======================================================================
-POURSUITE=MACRO(nom="POURSUITE",op=ops.build_poursuite,repetable='n',fr="Poursuite d une étude",
-                sd_prod = ops.POURSUITE,
-            UIinfo={"groupes":("Gestion du travail",)},
-                op_init = ops.POURSUITE_context,fichier_ini = 1,
-         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
-                               typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-         PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
-                           into=("OUI","NON"),defaut="OUI"),
-         BASE            =FACT(fr="définition des parmètres associés aux bases JEVEUX",
-                               statut='f',min=1,max=3,
-           FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
-           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'),
-         ),
-         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=('TES',)),
-         ),
-         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)
-         ),
-         CODE            =FACT("définition d un nom pour l'esemble d'une étude",
-                               statut='f',min=1,max=1,
-           NOM             =SIMP(statut='o',typ='TXM'),
-           UNITE           =SIMP(statut='f',typ='I',defaut=15),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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.                                 
+       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."),
 #
-# 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.                            
+       DPROB   = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1,
+                      fr="Fraction d'iso-densité de probabilité de défaillance.",
+                      ang="Fraction.")
 #
-# 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.      
-# ======================================================================
-PRE_GIBI=PROC(nom="PRE_GIBI",op=49,
-            UIinfo={"groupes":("Gestion du travail",)},
-              fr="Conversion d un fichier de maillage GIBI",
-         UNITE_GIBI      =SIMP(statut='f',typ='I',defaut=19),  
-         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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.                            
+# 6.2.5.3. ==> Test du hessien
 #
-# 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.      
-# ======================================================================
-
-PRE_GMSH=PROC(nom="PRE_GMSH",op=47,
-            UIinfo={"groupes":("Gestion du travail",)},
-               fr="Conversion d un fichier universel GMSH au format Aster",
-         UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
-         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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.                                 
+     T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
+                      fr="Test du hessien.",
+                      ang="Hessian test."),
 #
-# 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.                            
+# 6.2.6. ==> Les correlations entre les variables
 #
-# 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.      
-# ======================================================================
-PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,
-            UIinfo={"groupes":("Gestion du travail",)},
-               fr="Conversion d un fichier universel IDEAS-SUPERTAB au format Aster",
-         UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
-         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 10/06/2004   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.                                 
+     MATRICE = SIMP(statut="f",typ="R",max="**",
+                    fr="Matrice de corrélation entre les variables.",
+                    ang="Correlation matrix."), 
 #
-# 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.                            
+### en attente de résolution de AL 2004-006 (2/2)   ),
 #
-# 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 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,
-                    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 ) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 21/03/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.
+#====
+# 7. Definition des paramètres
+#====
 #
-# 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.
+   VARIABLE = FACT(statut="o",min=1,max="**",
 #
-# 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 proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
-    if AsType(RESULTAT)     == evol_ther      : return evol_ther
-    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)     == 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
-    raise AsException("type de concept resultat non prevu")
-
-PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,reentrant='f',
-            UIinfo={"groupes":("Résultats et champs",)},
-                fr="Projection d'un champ aux noeuds sur les noeuds d'un autre maillage",
+# 7.1. ==> Nom de la variable
 #
-         METHODE         =SIMP(statut='f',typ='TXM',defaut="ELEM",
-                               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)),
-         ),
-         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) ),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               ang="List of sensitivity parameters",),
-           MODELE_1        =SIMP(statut='o',typ=modele_sdaster),
-           MODELE_2        =SIMP(statut='o',typ=modele_sdaster),
-
-           TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-
-           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),
-           FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
-           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
-           NOEUD_CMP       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-           DISTANCE_MAX    =SIMP(statut='f',typ='R',
-                fr="Distance maximale entre le noeud et l'élément le plus proche, lorsque le noeud n'est dans aucun élément."),
-           TYPE_CHAM       =SIMP(statut='f',typ='TXM',into=("NOEU",),
-                fr="Pour forcer le type des champs projetés. NOEU -> cham_no"),
-           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='**',
-           regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
-                   AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
-           TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_NO_1      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_NO_2      =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD_2         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-         ),
-
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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.                                 
+       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
 #
-# 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.                            
+       LOI = SIMP(statut="o",typ="TXM",
+                  into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"),
+                  fr="Choix de la loi",
+                  ang="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.      
-# ======================================================================
-def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
-  if AsType(MATR_ASSE) == matr_asse_depl_r  : return matr_asse_gene_r
-  if AsType(MATR_ASSE_GENE) == matr_asse_gene_r  : return matr_asse_gene_r
-  if AsType(MATR_ASSE) == matr_asse_depl_c  : return matr_asse_gene_c
-  if AsType(MATR_ASSE_GENE) == matr_asse_gene_c  : return matr_asse_gene_c
-  raise AsException("type de concept resultat non prevu")
-
-PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_prod,
-                    fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),),            
-         BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene,mode_stat ) ),
-         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
-         MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
-         MATR_ASSE_GENE  =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
-)  ;
-
-#& MODIF COMMANDE  DATE 15/02/2005   AUTEUR NICOLAS O.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.                                 
+# 7.2.1. ==> Loi normale
 #
-# 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.                            
+       b_normale=BLOC(condition="LOI=='NORMALE'",
 #
-# 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 proj_mesu_modal_prod(MODELE_MESURE,**args):
-     vale=MODELE_MESURE['MESURE']
-     if  AsType(vale) == dyna_trans   : return tran_gene
-     if  AsType(vale) == dyna_harmo   : return harm_gene
-     if  AsType(vale) == mode_meca    : return mode_gene
-#     if  AsType(vale) == mode_meca_c  : return mode_gene_c
-     if  AsType(vale) == base_modale  : return mode_gene
-     raise AsException("type de concept resultat non prevu")
-
-PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
-                     sd_prod=proj_mesu_modal_prod,
-                     reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-                     fr="Calcul de coordonnees generalisees de mesure experimentale relatives a une base de projection",
-
-         MODELE_CALCUL   =FACT(statut='o',
-           MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-           BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,) ),
-                         ),
-         MODELE_MESURE   =FACT(statut='o',
-           MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-           MESURE          =SIMP(statut='o',typ=(dyna_trans,dyna_harmo,base_modale,mode_meca,mode_meca_c,) ),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE","SIEF_NOEU","EPSI_NOEU_DEPL",) ),
-                         ),
-         CORR_MANU       =FACT(statut='f',max='**',
-           regles=(PRESENT_PRESENT('NOEU_CALCUL','NOEU_MESURE'),),
-           NOEU_CALCUL     =SIMP(statut='f',typ=no),
-           NOEU_MESURE     =SIMP(statut='f',typ=no),
-                         ),
-         RESOLUTION      =FACT(statut='f',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="LU",into=("LU","SVD",) ),
-           b_svd =BLOC(condition="METHODE=='SVD'",
-                       EPS=SIMP(statut='f',typ='R',defaut=0. ),
-                      ),
-           REGUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","NORM_MIN","TIK_RELA",) ),
-           b_regul =BLOC(condition="REGUL!='NON'",
-                         regles=(PRESENT_ABSENT('COEF_PONDER','COEF_PONDER_F', ),),
-                         COEF_PONDER   =SIMP(statut='f',typ='R',defaut=0.     ,max='**' ),  
-                         COEF_PONDER_F =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
-                        ),
-             ),
-
-          ); 
-#& MODIF COMMANDE  DATE 10/06/2004   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_MOY   = SIMP(statut="o",typ="R",max=1,
+                               fr="Valeur moyenne.",
+                               ang="Mean 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.                            
+         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
+                               fr="Ecart type.",
+                               ang="Standard deviation."),
 #
-# 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.      
-# ======================================================================
-PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-                    fr="Projection d un ou plusieurs spectres de turbulenc sur un ensemble de bases modales ",
-      regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),
-              ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),),
-         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 ),
-         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' ),  
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
-         GROUP_MA        =SIMP(statut='f',typ=grma),
-#  Quel est le type attendu derriere  MODELE_INTERFACE         
-         MODELE_INTERFACE=SIMP(statut='f',typ=modele_sdaster),
-         VECT_X          =SIMP(statut='f',typ='R',min=3,max=3 ),  
-         VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3 ),  
-         ORIG_AXE        =SIMP(statut='f',typ='R',min=3,max=3 ),  
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& 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.                            
+# 7.2.2. ==> Loi lognormale
 #
-# 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 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,
-                    fr="Projection d un vecteur assemblé sur une base (modale ou de RITZ)",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),),              
-         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) ),
-)  ;
-#& MODIF COMMANDE  DATE 10/06/2004   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.                                 
+       b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
 #
-# 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.      
-# ======================================================================
-RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
-                     fr=" ",reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-         LIST_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,into=("SIGM_REFE","M",) ),
-         RESU            =FACT(statut='o',max='**',
-           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',),
-                   AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),),
-           EVOL_NOLI       =SIMP(statut='o',typ=(evol_noli) ),
-           MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-           CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
-           TEMPE           =SIMP(statut='f',typ='R' ),
-           LIST_INST_RUPT  =SIMP(statut='o',typ='R',validators=NoRepeat(),max='**' ),
-           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) ),
-           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='**'),
-           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.E0 ),
-                         ),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ),
-         CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-         METHODE         =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
-         INCO_GLOB_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-         ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
-                       )  ;
-#& MODIF COMMANDE  DATE 16/06/2004   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.
+         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."),
 #
-# 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 MCOURTOI M.COURTOIS
-def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None,
-                       RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None,
-                       TYPE_RESU=None,**args):
-  if AsType(RESULTAT) == dyna_harmo : return fonction_c
-#  On ne sait pas interpreter les deux conditions suivantes
-  if TABLE != None :
-     if TYPE_RESU != None :
-        if TYPE_RESU == "FONCTION_C" : return fonction_c
-        if TYPE_RESU == "FONCTION"   : return fonction_sdaster
-     else:
-        return fonction_sdaster
-  if RESU_GENE      != None         : return fonction_sdaster
-  if BASE_ELAS_FLUI != None         : return fonction_sdaster
-  if RESULTAT       != None         : return fonction_sdaster
-  if CHAM_GD        != None         : return fonction_sdaster
-  if OBSTACLE       != None         : return fonction_sdaster
-  raise AsException("type de concept resultat non prevu")
-
-RECU_FONCTION=OPER(nom="RECU_FONCTION",op=90,sd_prod=recu_fonction_prod,
-                   fr="Extraire sous forme d une fonction, l évolution temporelle d une composante d un champ ou d une table",
-                   reentrant='n',
-            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,) ),
-         RESULTAT        =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ),
-         RESU_GENE       =SIMP(statut='f',typ=tran_gene),
-#  concept table à créer
-         TABLE           =SIMP(statut='f',typ=table_sdaster),
-         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster),
-         OBSTACLE        =SIMP(statut='f',typ=obstacle_sdaster),
-
-         b_tran_gene = BLOC ( condition = "RESU_GENE != None",
-                              fr="Récupération de la fonction concernant les chocs à partir d un concept TRAN_GENE",
-            regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),
-                    EXCLUS('MULT_APPUI','CORR_STAT'),),
-             MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,formule)),
-             PARA_X          =SIMP(statut='f',typ='TXM' ),
-             PARA_Y          =SIMP(statut='f',typ='TXM' ),
-             SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
-             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
-             INTITULE        =SIMP(statut='f',typ='TXM' ),
-         ),
-         b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",
-                                   fr="Récupération de la fonction à partir d un concept melasflu",
-           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
-           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           NUME_MODE       =SIMP(statut='o',typ='I' ),
-           PARA_X          =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ),
-           PARA_Y          =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ),
-         ),
-         b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table",
-           regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
-                   PRESENT_PRESENT('PARA_X','PARA_Y'),),
-           PARA_X          =SIMP(statut='f',typ='TXM',
-                                 fr="1ère colonne de la table qui définit la fonction à récupérer", ),
-           PARA_Y          =SIMP(statut='f',typ='TXM',
-                                 fr="2ème colonne de la table qui définit la fonction à récupérer", ),
-           NOM_PARA_TABL   =SIMP(statut='f',typ='TXM',into=("FONCTION",),
-                                 fr="Nom du paramètre de la table à qui est associé la fonction" ),
-           b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None",
-             TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ),
-           ),
-
-           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 ),
-           ),
-         ),
-# RESULTAT
-         b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
-           regles=(
-#    A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-#           UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),
-                   AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC','NOM_PARA_RESU'),
-                   PRESENT_PRESENT('MAILLE','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
-                   PRESENT_PRESENT('POINT','NOM_CMP'),
-                   EXCLUS('POINT','NOEUD'),
-                   EXCLUS('GROUP_MA','MAILLE'),
-                   EXCLUS('GROUP_NO','NOEUD'),
-                   EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),
-                   UN_PARMI('NOM_CHAM','NOM_PARA_RESU'),),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
-           NOM_PARA_RESU   =SIMP(statut='f',typ='TXM' ),
-           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 ),
-           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 ),
-           b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             INTERP_NUME     =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
-           ),
-           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
-
-           MAILLE          =SIMP(statut='f',typ=ma),
-           GROUP_MA        =SIMP(statut='f',typ=grma),
-           NOEUD           =SIMP(statut='f',typ=no),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
-           POINT           =SIMP(statut='f',typ='I' ),
-           SOUS_POINT      =SIMP(statut='f',typ='I' ),
-           NOEUD_CHOC      =SIMP(statut='f',typ=no),
-           GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
-         ),
-# RESU_GENE
-         b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE",
-#    A voir par Mathieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
-#           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
-           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 ),
-           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 ),
-           b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             INTERP_NUME     =SIMP(statut='f',typ='TXM',into=("NON","LIN") ),
-           ),
-           b_local_cham = BLOC ( condition = "NOM_CHAM!='PTEM'", fr="Opérandes de localisation du champ",
-             regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
-                     PRESENT_PRESENT('MAILLE','NOM_CMP'),
-                     PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
-                     PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                     PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
-                     PRESENT_PRESENT('POINT','NOM_CMP'),
-                     EXCLUS('POINT','NOEUD'),
-                     EXCLUS('GROUP_MA','MAILLE'),
-                     EXCLUS('GROUP_NO','NOEUD'),
-                     EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
-             NOM_CMP         =SIMP(statut='f',typ='TXM' ),
-
-             MAILLE          =SIMP(statut='f',typ=ma),
-             GROUP_MA        =SIMP(statut='f',typ=grma),
-             NOEUD           =SIMP(statut='f',typ=no),
-             GROUP_NO        =SIMP(statut='f',typ=grno),
-             POINT           =SIMP(statut='f',typ='I' ),
-             SOUS_POINT      =SIMP(statut='f',typ='I' ),
-             NOEUD_CHOC      =SIMP(statut='f',typ=no),
-             GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
-           ),
-         ),
-# CHAM_GD
-         b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
-
-           regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
-                   PRESENT_PRESENT('MAILLE','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
-                   PRESENT_PRESENT('POINT','NOM_CMP'),
-                   EXCLUS('POINT','NOEUD'),
-                   EXCLUS('GROUP_MA','MAILLE'),
-                   EXCLUS('GROUP_NO','NOEUD'),
-                   EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
-           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
-
-           MAILLE          =SIMP(statut='f',typ=ma),
-           GROUP_MA        =SIMP(statut='f',typ=grma),
-           NOEUD           =SIMP(statut='f',typ=no),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
-           POINT           =SIMP(statut='f',typ='I' ),
-           SOUS_POINT      =SIMP(statut='f',typ='I' ),
-           NOEUD_CHOC      =SIMP(statut='f',typ=no),
-           GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
-         ),
-         b_obstacle = BLOC ( condition = "OBSTACLE != None",
-                              fr="Choix du repère",
-            REPERE          =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ),
-         ),
-###
-         NOM_PARA        =SIMP(statut='f',typ='TXM', into=C_PARA_FONCTION() ),
-         NOM_RESU        =SIMP(statut='f',typ='TXM' ),
-         INTERPOL        =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
-         PROL_DROITE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
-         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
-
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-)  ;
-#& 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.                                 
+         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.      
-# ======================================================================
-RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene_r,reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-               fr="Récupération d un champ de grandeur à partir d un résultat 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 10/06/2004   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
-RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table_sdaster,
-                fr=" ",reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-         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 10/06/2004   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.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.      
-# ======================================================================
-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")
+# 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."),
 
-RESO_GRAD=OPER(nom="RESO_GRAD",op=  84,sd_prod=reso_grad_prod,
-               fr="Résolution 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 01/04/2005   AUTEUR VABHHTS J.PELLET 
+       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 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.
+# 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 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")
+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'),),
 
-RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f',
-               fr="Résolution en place ou hors place d un système factorisé",
-            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 
+          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 - 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 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")
+# RESPONSABLE ASSIRE A.ASSIRE
 
-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 ),
+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" ),
          
-         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 ),
+         LOGICIEL      =SIMP(statut='f',typ='TXM'),
 
-         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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+         # 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.        
 # ======================================================================
-REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
-                    reentrant='n',
-            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='**'),  
+# 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),
          ),
-         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 10/06/2004   AUTEUR REZETTE C.REZETTE 
+         EXCIT           =FACT(statut='f',max='**',
+           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
+         ),
+);
+#& 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
@@ -21807,299 +22914,291 @@ 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 MCOURTOI M.COURTOIS
+from Macro.impr_fonction_ops import impr_fonction_ops
 
-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) ),
-         MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-)  ;
-#& MODIF COMMANDE  DATE 01/04/2005   AUTEUR 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.
-# ======================================================================
-# RESPONSABLE PBADEL P.BADEL
-STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
-                   fr="Analyse mécanique statique 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='**',),
-              ),
-         VARI_COMM           =FACT(statut='f',
-           regles=(AU_MOINS_UN('IRRA','CORROSION'),),
-           IRRA       =SIMP(statut='f',typ=evol_varc),
-           CORROSION  =SIMP(statut='f',typ=carte_corr_r),
-         ),
-         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='**'),
-         ),
-         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'),
-         ),
-         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),
+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")),
-           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")),
+         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") ),
+
+           # 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") ),
          ),
-         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")),
+         # 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"),
          ),
-         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' ,validators=NoRepeat(),max='**'),
+         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" ),
          ),
-         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"),
+         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 
+#            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 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 ),
          ),
-           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),
+         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") ),
            ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
- )  ;
-#& MODIF COMMANDE  DATE 05/10/2004   AUTEUR CIBHHLV L.VIVAN 
+         ),
+         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 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# 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     
@@ -22114,607 +23213,418 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
 # 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
 
-from Macro.test_fichier_ops import test_fichier_ops
+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")
 
-TEST_FICHIER=MACRO(nom="TEST_FICHIER", op=test_fichier_ops,
-                   UIinfo={"groupes":("Impression",)},
-                   
-   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") ),
+from Macro.calc_table_ops import calc_table_ops
 
-   b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
-      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"),
+      ),
    ),
-
-   INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
+   
+   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 23/08/2004   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    
-# 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",
-            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' ),
-           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=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' ),
-           ),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 09/05/2005   AUTEUR CIBHHLV L.VIVAN 
-# RESPONSABLE VABHHTS J.PELLET
+#& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
 #            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 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),  
+# RESPONSABLE ASSIRE A.ASSIRE
 
-         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'),
-           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'),
-         ),
+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',),
 
-         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' ),
-           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' ),
-         ),
+         # Methode de partitionnement
+         METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
+         
+         LOGICIEL      =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') ,),
-           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'),
-           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' ),
-         ),
+         # 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),
 
-         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'),
-           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' ),
-         ),
+);
+#& MODIF COMMANDE  DATE 13/02/2006   AUTEUR DURAND C.DURAND 
+#            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.        
+# ======================================================================
+# ======================================================================
 
-         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'),
-           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' ),
-         ),
+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 23/08/2004   AUTEUR CIBHHLV L.VIVAN 
+#& MODIF COMMANDE  DATE 08/11/2005   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.      
+# 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",)},
-         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' ),),
+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' ),
-         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 01/04/2005   AUTEUR VABHHTS J.PELLET 
+
+#& MODIF COMMANDE  DATE 22/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="Analyse 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 01/04/2005   AUTEUR 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.
-# ======================================================================
-THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-                   fr="Analyse thermique non linéaire 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 30/06/2004   AUTEUR MCOURTOI M.COURTOIS 
+         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="Thermique non lineaire en repere 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) ),
+)  ;
diff --git a/Aster/Cata/cataSTA8c_clefs_docu b/Aster/Cata/cataSTA8c_clefs_docu
new file mode 100644 (file)
index 0000000..1967bad
--- /dev/null
@@ -0,0 +1,204 @@
+AFFE_CARA_ELEM:U4.42.01-h
+AFFE_CHAR_ACOU:U4.44.04-g
+AFFE_CHAR_CINE_F:U4.44.03-g
+AFFE_CHAR_CINE:U4.44.03-g
+AFFE_CHAR_MECA:U4.44.01-h
+AFFE_CHAR_MECA_F:U4.44.01-h
+AFFE_CHAR_MECA_C:U4.44.05-e
+AFFE_CHAR_THER_F:U4.44.02-h
+AFFE_CHAR_THER:U4.44.02-h
+AFFE_MATERIAU:U4.43.03-h
+AFFE_MODELE:U4.41.01-h
+AIDE:U4.02.01-h
+ASSE_MAILLAGE:U4.23.03-g
+ASSE_MATRICE:U4.61.22-h
+ASSE_MATR_GENE:U4.65.04-f
+ASSE_VECTEUR:U4.61.23-h
+ASSE_VECT_GENE:U4.65.05-f
+CALC_AMOR_MODAL:U4.52.13-f
+CALC_CHAM_ELEM:U4.81.03-h
+CALC_CHAR_CINE:U4.61.03-g
+CALC_CHAR_SEISME:U4.63.01-g
+CALC_ELEM:U4.81.01-h
+CALC_FATIGUE:U4.83.02-e
+CALC_FLUI_STRU:U4.66.02-f
+CALC_FONCTION:U4.32.04-h
+CALC_FONC_INTERP:U4.32.01-f
+CALC_FORC_AJOU:U4.66.03-b
+CALC_G_LOCAL_T:U4.82.04-g
+CALC_G_THETA_T:U4.82.03-g
+CALC_INTE_SPEC:U4.36.03-g
+CALC_MATR_AJOU:U4.66.01-e
+CALC_MATR_ELEM:U4.61.01-h
+CALC_META:U4.85.01-c
+CALC_NO:U4.81.02-g
+CALC_PRECONT:U4.42.05-a
+CALC_THETA:U4.82.02-f
+CALC_VECT_ELEM:U4.61.02-h
+COMB_CHAM_ELEM:U4.72.03-g
+COMB_CHAM_NO:U4.72.02-h
+COMB_FOURIER:U4.83.31-e
+COMB_MATR_ASSE:U4.72.01-h
+COMB_SISM_MODAL:U4.84.01-f
+COMP_INCR:U4.51.11-a
+CREA_CHAMP:U4.72.04-c
+CREA_MAILLAGE:U4.23.02-e
+CREA_RESU:U4.44.12-f
+CREA_TABLE:U4.33.02-a
+DEBUT:U4.11.01-h
+DEFI_BASE_MODALE:U4.64.02-g
+DEFI_CABLE_BP:U4.42.04-c
+DEFI_COMPOR:U4.43.06-a
+DEFI_CONSTANTE:U4.31.01-h
+DEFI_COQU_MULT:U4.42.03-g
+DEFI_FICHIER:U4.12.03-a
+DEFI_FISS_XFEM:U4.82.08-a
+DEFI_FLUI_STRU:U4.25.01-f
+DEFI_FONCTION:U4.31.02-h
+DEFI_FONC_ELEC:U4.mk.10-g
+DEFI_FONC_FLUI:U4.35.01-e
+DEFI_FOND_FISS:U4.82.01-g
+DEFI_GROUP:U4.22.01-g
+DEFI_INTERF_DYNA:U4.64.01-g
+DEFI_INTE_SPEC:U4.36.02-g
+DEFI_LIST_ENTI:U4.34.02-h
+DEFI_LIST_REEL:U4.34.01-h
+DEFI_MAILLAGE:U4.23.01-g
+DEFI_MATERIAU:U4.43.01-h
+DEFI_MODELE_GENE:U4.65.02-f
+DEFI_NAPPE:U4.31.03-h
+DEFI_OBSTACLE:U4.44.21-g
+DEFI_PARA_SENSI:U4.31.06-b
+DEFI_SPEC_TURB:U4.44.31-e
+DEFI_SQUELETTE:U4.24.01-h
+DEFI_TEXTURE:U4.43.05-c
+DEFI_THER_JOULE:U4.mk.20-f
+DEFI_TRC:U4.43.04-g
+DEPL_INTERNE:U4.62.02-g
+DETRUIRE:U4.14.01-f
+DIST_LIGN_3D:U4.mk.30-f
+DYNA_ALEA_MODAL:U4.53.22-g
+DYNA_LINE_HARM:U4.53.11-g
+DYNA_LINE_TRAN:U4.53.02-h
+DYNA_NON_LINE:U4.53.01-g
+DYNA_SPEC_MODAL:U4.53.23-e
+DYNA_TRAN_EXPLI:U4.53.03-a
+DYNA_TRAN_MODAL:U4.53.21-g
+ENGENDRE_TEST:U4.92.11-d
+EXEC_LOGICIEL:U7.00.01-c
+EXTR_MODE:U4.52.12-e
+EXTR_RESU:U4.71.04-d
+EXTR_TABLE:U4.71.05-a
+FACT_GRAD:U4.55.03-g
+FACT_LDLT:U4.55.01-h
+FIN:U4.11.02-h
+FONC_FLUI_STRU:U4.35.02-e
+FORMULE:U4.31.05-f
+GENE_FONC_ALEA:U4.36.05-g
+GENE_MATR_ALEA:U4.36.06-b
+GENE_VARI_ALEA:U4.36.07-b
+IMPR_CLASSI:U7.04.21-c
+IMPR_CO:U4.91.11-h
+IMPR_COURBE:U4.33.01-e
+IMPR_FICO_HOMA:U7.04.01-c
+IMPR_FONCTION:U4.33.01-f
+IMPR_GENE:U4.91.02-e
+IMPR_JEVEUX:U4.91.21-h
+IMPR_MACR_ELEM:U7.04.33-e
+IMPR_MATRICE:U7.04.32-e
+IMPR_MISS_3D:U7.04.11-e
+IMPR_OAR:U7.04.51-a
+IMPR_RESU:U4.91.01-h
+IMPR_STURM:U4.52.01-h
+IMPR_TABLE:U4.91.03-e
+INCLUDE:U4.13.01-g
+INCLUDE_MATERIAU:U4.43.02-c
+INFO_EXEC_ASTER:U4.13.04-a
+INTE_MAIL_2D:U4.81.11-g
+INTE_MAIL_3D:U4.81.12-g
+LIRE_CHAMP:U7.02.02-c
+LIRE_FONCTION:U4.32.02-g
+LIRE_INTE_SPEC:U4.36.01-g
+LIRE_MAILLAGE:U4.21.01-h
+LIRE_MISS_3D:U7.02.31-e
+LIRE_PLEXUS:U7.02.11-c
+LIRE_RESU:U7.02.01-e
+LIRE_TABLE:U7.02.03-b
+MACRO_CARA_POUTRE:U4.42.02-d
+MACRO_ELAS_MULT:U4.51.02-e
+MACRO_MATR_AJOU:U4.66.11-d
+MACRO_MATR_ASSE:U4.61.21-e
+MACRO_MISS_3D:U7.03.11-c
+MACRO_MODE_MECA:U4.52.02-e
+MACRO_PROJ_BASE:U4.63.11-e
+MACR_ADAP_MAIL:U7.03.01-c
+MACR_ASCOUF_CALC:U4.cf.20-c
+MACR_ASCOUF_MAIL:U4.cf.10-c
+MACR_ASPIC_CALC:U4.pc.20-c
+MACR_ASPIC_MAIL:U4.pc.10-c
+MACR_CABRI_CALC:U4.cb.20-a
+MACR_CABRI_MAIL:U4.cb.10-a
+MACR_CARA_POUTRE:U4.42.02-e
+MACR_ECLA_PG:U4.44.14-a
+MACR_ELEM_DYNA:U4.65.01-f
+MACR_ELEM_STAT:U4.62.01-g
+MACR_FIABILITE:U7.03.31-a
+MACR_FIAB_IMPR:U7.04.41-a
+MACR_INFO_MAIL:U7.03.02-c
+MACR_LIGN_COUPE:U4.81.13-b
+MACR_RECAL:U4.73.02-b
+MAJ_CATA:U4.15.01-f
+MECA_STATIQUE:U4.51.01-h
+MEMO_NOM_SENSI:U4.31.07-b
+MODE_ITER_CYCL:U4.52.05-g
+MODE_ITER_INV:U4.52.04-h
+MODE_ITER_SIMULT:U4.52.03-g
+MODE_STATIQUE:U4.52.14-g
+MODI_BASE_MODALE:U4.66.21-e
+MODI_MAILLAGE:U4.23.04-e
+MODI_MODELE_XFEM:U4.41.11-a
+MODI_OBSTACLE:U4.44.22-c
+MODI_REPERE:U4.74.01-b
+NORM_MODE:U4.52.11-g
+NUME_DDL:U4.61.11-h
+NUME_DDL_GENE:U4.65.03-f
+POST_DYNA_ALEA:U4.84.04-f
+POST_DYNA_MODA_T:U4.84.02-f
+POST_ELEM:U4.81.22-f
+POST_FATIGUE:U4.83.01-e
+POST_FATI_ALEA:U4.84.03-e
+POST_K1_K2_K3:U4.82.05-c
+POST_K_BETA:U4.82.07-b
+POST_RCCM:U4.83.11-e
+POST_RELEVE_T:U4.81.21-f
+POST_USURE:U4.84.05-f
+POST_ZAC:U4.83.21-d
+POURSUITE:U4.11.03-h
+PRE_GIBI:U7.01.11-h
+PRE_GMSH:U7.01.31-b
+PRE_IDEAS:U7.01.01-h
+PROD_MATR_CHAM:U4.72.06-d
+PROJ_CHAMP:U4.72.05-e
+PROJ_MATR_BASE:U4.63.12-g
+PROJ_MESU_MODAL:U4.73.01-c
+PROJ_SPEC_BASE:U4.63.14-e
+PROJ_VECT_BASE:U4.63.13-g
+RECA_WEIBULL:U4.82.06-c
+RECU_FONCTION:U4.32.03-g
+RECU_GENE:U4.71.03-g
+RECU_TABLE:U4.71.02-c
+RESO_GRAD:U4.55.04-g
+RESO_LDLT:U4.55.02-h
+REST_BASE_PHYS:U4.63.21-g
+REST_SPEC_PHYS:U4.63.22-e
+SENSIBILITE:U4.50.02-b
+SOLVEUR:U4.50.01-e
+STANLEY:U4.81.31-b
+STAT_NON_LINE:U4.51.03-g
+TEST_FICHIER:U4.92.04-a
+TEST_FONCTION:U4.92.02-g
+TEST_RESU:U4.92.01-h
+TEST_TABLE:U4.92.03-d
+THER_LINEAIRE:U4.54.01-h
+THER_NON_LINE:U4.54.02-f
+THER_NON_LINE_MO:U4.54.03-d