]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
PN : changement de catalogue
authorPascale Noyret <pascale.noyret@edf.fr>
Tue, 30 May 2006 09:14:53 +0000 (09:14 +0000)
committerPascale Noyret <pascale.noyret@edf.fr>
Tue, 30 May 2006 09:14:53 +0000 (09:14 +0000)
46 files changed:
Aster/Cata/cataSTA81/Macro/__init__.py [deleted file]
Aster/Cata/cataSTA81/Macro/calc_fonction_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/calc_precont_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/calc_table_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/creation_donnees_homard.py [deleted file]
Aster/Cata/cataSTA81/Macro/defi_cable_bp_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/defi_part_feti_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/fiabilite_fichier.py [deleted file]
Aster/Cata/cataSTA81/Macro/fiabilite_mefisto.py [deleted file]
Aster/Cata/cataSTA81/Macro/gene_vari_alea_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/impr_fonction_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/impr_table_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/info_fonction_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/lire_fonction_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/lire_inte_spec_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/lire_table_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_adap_mail_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_ascouf_calc_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_ascouf_mail_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_aspic_calc_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_aspic_mail_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_cabri_calc_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_cabri_mail_dat.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_cabri_mail_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_cara_poutre_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_ecla_pg_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_fiab_impr_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_fiabilite_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_lign_coupe_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macr_recal_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macro_elas_mult_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macro_matr_ajou_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macro_matr_asse_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macro_miss_3d_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macro_mode_meca_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/macro_proj_base_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/post_k1_k2_k3_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/reca_algo.py [deleted file]
Aster/Cata/cataSTA81/Macro/reca_graphique.py [deleted file]
Aster/Cata/cataSTA81/Macro/reca_interp.py [deleted file]
Aster/Cata/cataSTA81/Macro/reca_message.py [deleted file]
Aster/Cata/cataSTA81/Macro/recal.py [deleted file]
Aster/Cata/cataSTA81/Macro/stanley_ops.py [deleted file]
Aster/Cata/cataSTA81/Macro/test_fichier_ops.py [deleted file]
Aster/Cata/cataSTA81/__init__.py [deleted file]
Aster/Cata/cataSTA81/cata.py [deleted file]

diff --git a/Aster/Cata/cataSTA81/Macro/__init__.py b/Aster/Cata/cataSTA81/Macro/__init__.py
deleted file mode 100644 (file)
index 4aebb58..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#@ MODIF __init__ Macro  DATE 20/09/2004   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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.      
-#                                                                       
-#                                                                       
-# ======================================================================
diff --git a/Aster/Cata/cataSTA81/Macro/calc_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/calc_fonction_ops.py
deleted file mode 100644 (file)
index a541180..0000000
+++ /dev/null
@@ -1,333 +0,0 @@
-#@ MODIF calc_fonction_ops Macro  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-def tocomplex(arg):
-    if arg[0]=='RI' : return complex(arg[1],arg[2])
-    if arg[0]=='MP' : return complex(arg[1]*cos(arg[2]),arg[1]*sin(arg[2]))
-
-def calc_fonction_ops(self,FFT,DERIVE,INTEGRE,LISS_ENVELOP,
-                      SPEC_OSCI,ABS,COMB,COMB_C,COMPOSE,EXTRACTION,
-                      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,INFO,**args):
-  """
-     Ecriture de la macro CALC_FONCTION
-  """
-  ier=0
-  import types
-  import string
-  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
-  from Numeric import alltrue,less,array,reshape,cos,sin,exp,sqrt
-  from Numeric import choose,zeros,Float
-  import aster_fonctions
-  EnumType = (types.ListType,types.TupleType)
-  
-  ### 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
-  self.set_icmd(1)
-  self.DeclareOut('C_out',self.sd)
-
-  ### type de traitement
-  ###
-  if (INTEGRE     != None):
-     __ff=INTEGRE['FONCTION'].convert()
-     if INTEGRE['METHODE']=='TRAPEZE' : __ex=__ff.trapeze(INTEGRE['COEF'])
-     if INTEGRE['METHODE']=='SIMPSON' : __ex=__ff.simpson(INTEGRE['COEF'])
-  ###
-  if (DERIVE      != None):
-     __ff=DERIVE['FONCTION'].convert()
-     __ex=__ff.derive()
-  ###
-  if (INVERSE     != None):
-     __ff=INVERSE['FONCTION'].convert()
-     __ex=__ff.inverse()
-  ###
-  if (ABS         != None): 
-     __ff=ABS['FONCTION'].convert()
-     __ex=__ff.abs()
-  ###
-  if (COMPOSE     != None): 
-     __ff=COMPOSE['FONC_RESU'].convert()
-     __fg=COMPOSE['FONC_PARA'].convert()
-     __ex=__ff[__fg]
-  ###
-  if (ASSE        != None):
-     __f0=ASSE['FONCTION'][0].convert()
-     __f1=ASSE['FONCTION'][1].convert()
-     __ex=__f0.cat(__f1,ASSE['SURCHARGE'])
-  ###
-  if (COMB        != None):
-     list_fonc=[]  
-     if   isinstance(self.sd,nappe_sdaster):
-        for mcfact in COMB :
-           list_fonc.append(mcfact['FONCTION'].convert())
-        list_fonch=[]  
-        for f in list_fonc :
-            __ex=f
-            for g in list_fonc :
-               __ex=__ex.homo_support(g)
-            list_fonch.append(__ex)
-        list_fonc=list_fonch
-     elif isinstance(self.sd,fonction_sdaster):
-        for mcfact in COMB :
-           __ex=mcfact['FONCTION'].convert()
-           list_fonc.append(__ex)
-
-     __ex=list_fonc[0]
-     __ex=__ex*COMB[0]['COEF']
-     i=1
-     for item in list_fonc[1:] :
-        item=item*COMB[i]['COEF']
-        __ex=__ex+item
-        i=i+1
-  ###
-  if (COMB_C    != None):
-     list_fonc=[]  
-     if   isinstance(self.sd,nappe_sdaster):
-        for mcfact in COMB_C :
-           list_fonc.append(mcfact['FONCTION'].convert())
-        list_fonch=[]  
-        for f in list_fonc :
-            __ex=f
-            for g in list_fonc :
-               __ex=__ex.homo_support(g)
-            list_fonch.appen(__ex)
-        list_fonc=list_fonch
-     elif isinstance(self.sd,fonction_sdaster) or isinstance(self.sd,fonction_c):
-        for mcfact in COMB_C :
-           __ex=mcfact['FONCTION'].convert(arg='complex')
-           list_fonc.append(__ex)
-
-     __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:
-         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:
-            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()
-     __ex=__ff
-     for i in range(PUISSANCE['EXPOSANT']-1) : __ex=__ex*__ff
-  ###
-  if (EXTRACTION  != None):
-     if EXTRACTION['PARTIE']=='REEL'   : __ex=EXTRACTION['FONCTION'].convert(arg='real')
-     if EXTRACTION['PARTIE']=='IMAG'   : __ex=EXTRACTION['FONCTION'].convert(arg='imag')
-     if EXTRACTION['PARTIE']=='MODULE' : __ex=EXTRACTION['FONCTION'].convert(arg='modul')
-     if EXTRACTION['PARTIE']=='PHASE'  : __ex=EXTRACTION['FONCTION'].convert(arg='phase')
-  ###
-  if (ENVELOPPE   != None):
-     list_fonc=[]
-     l_env=ENVELOPPE['FONCTION']
-     if type(l_env) not in EnumType : l_env=(l_env,)
-     if isinstance(self.sd,nappe_sdaster):
-        for f in l_env : list_fonc.append(f.convert())
-        list_fonch=[]  
-        for f in list_fonc :
-            __ff=f
-            for g in list_fonc :
-               __ff=__ff.homo_support(g)
-            list_fonch.append(__ff)
-        list_fonc=list_fonch
-        vale_para=list_fonc[0].vale_para
-        para     =list_fonc[0].para
-        l_fonc_f =[]
-        for i in range(len(vale_para)):
-            __ff=list_fonc[0].l_fonc[i]
-            if ENVELOPPE['CRITERE']=='SUP' :
-              for f in list_fonc[1:] : __ff=__ff.sup(f.l_fonc[i])
-            if ENVELOPPE['CRITERE']=='INF' :
-              for f in list_fonc[1:] : __ff=__ff.inf(f.l_fonc[i])
-            l_fonc_f.append(__ff)
-        __ex=t_nappe(vale_para,l_fonc_f,para)
-     elif isinstance(self.sd,fonction_sdaster):
-        for f in l_env : list_fonc.append(f.convert())
-        __ex=list_fonc[0]
-        if ENVELOPPE['CRITERE']=='SUP' :
-           for f in list_fonc[1:] : __ex=__ex.sup(f)
-        if ENVELOPPE['CRITERE']=='INF' :
-           for f in list_fonc[1:] : __ex=__ex.inf(f)
-  ###
-  if (CORR_ACCE   != None):
-     __ex=CORR_ACCE['FONCTION'].convert()
-     para=copy.copy(__ex.para)
-     # suppression de la tendance de l accelero
-     __ex=__ex.suppr_tend()
-     # calcul de la vitesse
-     __ex=__ex.trapeze(0.)
-     # calcul de la tendance de la vitesse : y = a1*x +a0
-     __ex=__ex.suppr_tend()
-     if CORR_ACCE['CORR_DEPL']=='OUI':
-        # suppression de la tendance deplacement
-        # calcul du deplacement : integration
-        __ex=__ex.trapeze(0.)
-        # calcul de la tendance du déplacement : y = a1*x +a0
-        __ex=__ex.suppr_tend()
-        # regeneration de la vitesse : derivation
-        __ex=__ex.derive()
-     # regeneration de l accelero : derivation
-     __ex=__ex.derive()
-     __ex.para=para
-  ###
-  if (FFT         != None):
-     if isinstance(self.sd,fonction_c):
-        __ff=FFT['FONCTION'].convert()
-        __ex=__ff.fft(FFT['METHODE'])
-     if isinstance(self.sd,fonction_sdaster):
-        __ff=FFT['FONCTION'].convert(arg='complex')
-        __ex=__ff.fft(FFT['METHODE'],FFT['SYME'])
-  ###
-  if (SPEC_OSCI   != None):
-     if SPEC_OSCI['AMOR_REDUIT']==None :
-        l_amor=[0.02,0.05,0.1]
-        UTMESS('I','CALC_FONCTION',' : génération par défaut de 3 amortissements :'+str(l_amor))
-     else :
-        if type(SPEC_OSCI['AMOR_REDUIT']) not in EnumType :
-               l_amor=[SPEC_OSCI['AMOR_REDUIT'],]
-        else : l_amor= SPEC_OSCI['AMOR_REDUIT']
-     if SPEC_OSCI['FREQ']==None and SPEC_OSCI['LIST_FREQ']==None:
-        l_freq=[]
-        for i in range(56) : l_freq.append( 0.2+0.050*i)
-        for i in range( 8) : l_freq.append( 3.0+0.075*i)
-        for i in range(14) : l_freq.append( 3.6+0.100*i)
-        for i in range(24) : l_freq.append( 5.0+0.125*i)
-        for i in range(28) : l_freq.append( 8.0+0.250*i)
-        for i in range( 6) : l_freq.append(15.0+0.500*i)
-        for i in range( 4) : l_freq.append(18.0+1.000*i)
-        for i in range(10) : l_freq.append(22.0+1.500*i)
-        texte=[]
-        for i in range(len(l_freq)/5) :
-            texte.append(' %f %f %f %f %f' %tuple(l_freq[i*5:i*5+5]))
-        UTMESS('I','CALC_FONCTION',' : génération par défaut de 150 fréquences :\n'+'\n'.join(texte))
-     elif SPEC_OSCI['LIST_FREQ']!=None:
-        l_freq=SPEC_OSCI['LIST_FREQ'].Valeurs()
-     elif SPEC_OSCI['FREQ']!=None:
-        if type(SPEC_OSCI['FREQ']) not in EnumType:
-               l_freq=[SPEC_OSCI['FREQ'],]
-        else : l_freq= SPEC_OSCI['FREQ']
-     if abs(SPEC_OSCI['NORME'])<1.E-10 :
-        UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la norme ne peut etre nulle')
-     if SPEC_OSCI['NATURE_FONC']!='ACCE' :
-        UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, le type de la fonction doit etre ACCE')
-     if SPEC_OSCI['METHODE']!='NIGAM' :
-        UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, seule la méthode NIGAM est codée')
-     eps=1.e-6
-     for amor in l_amor :
-         if amor>(1-eps) :
-            UTMESS('S','CALC_FONCTION',' : SPEC_OSCI, la méthode choisie '\
-                   'suppose des amortissements sous-critiques, amor<1.')
-
-     __ff=SPEC_OSCI['FONCTION'].convert()
-     
-     # appel à SPEC_OSCI
-     spectr = aster_fonctions.SPEC_OSCI(__ff.vale_x, __ff.vale_y, l_freq, l_amor)
-
-     # construction de la nappe
-     vale_para = l_amor
-     para      = { 'INTERPOL'      : ['LIN','LOG'],
-                   'NOM_PARA_FONC' : 'FREQ',
-                   'NOM_PARA'      : 'AMOR',
-                   'PROL_DROITE'   : 'EXCLU',
-                   'PROL_GAUCHE'   : 'EXCLU',
-                   'NOM_RESU'      : SPEC_OSCI['NATURE'] }
-     para_fonc = { 'INTERPOL'      : ['LOG','LOG'],
-                   'NOM_PARA'      : 'FREQ',
-                   'PROL_DROITE'   : 'CONSTANT',
-                   'PROL_GAUCHE'   : 'EXCLU',
-                   'NOM_RESU'      : SPEC_OSCI['NATURE'] }
-     if   SPEC_OSCI['NATURE']=='DEPL' : ideb = 0
-     elif SPEC_OSCI['NATURE']=='VITE' : ideb = 1
-     else                             : ideb = 2
-     l_fonc = []
-     for iamor in range(len(l_amor)) :
-       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):
-     __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
-  ### et on les surcharge par ceux imposés par l'utilisateur
-
-  if isinstance(__ex,t_fonction) or isinstance(__ex,t_fonction_c):
-     para=__ex.para
-     if NOM_PARA   !=None : para['NOM_PARA']   =NOM_PARA
-     if NOM_RESU   !=None : para['NOM_RESU']   =NOM_RESU
-     if PROL_DROITE!=None : para['PROL_DROITE']=PROL_DROITE
-     if PROL_GAUCHE!=None : para['PROL_GAUCHE']=PROL_GAUCHE
-     if INTERPOL   !=None : para['INTERPOL']   =INTERPOL
-     if   isinstance(__ex,t_fonction_c): para['VALE_C'] = __ex.tabul()
-     elif isinstance(__ex,t_fonction)  : para['VALE']   = __ex.tabul()
-     C_out=DEFI_FONCTION(**para)
-  elif isinstance(__ex,t_nappe):
-     def_fonc=[]
-     for f in __ex.l_fonc :
-       para=f.para
-       def_fonc.append(_F(VALE       =f.tabul(),
-                          INTERPOL   =f.para['INTERPOL'],
-                          PROL_DROITE=f.para['PROL_DROITE'],
-                          PROL_GAUCHE=f.para['PROL_GAUCHE'],)
-                       )
-     para=__ex.para
-     if NOM_PARA      !=None : para['NOM_PARA']   =NOM_PARA
-     if NOM_RESU      !=None : para['NOM_RESU']   =NOM_RESU
-     if PROL_DROITE   !=None : para['PROL_DROITE']=PROL_DROITE
-     if PROL_GAUCHE   !=None : para['PROL_GAUCHE']=PROL_GAUCHE
-     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
-
diff --git a/Aster/Cata/cataSTA81/Macro/calc_precont_ops.py b/Aster/Cata/cataSTA81/Macro/calc_precont_ops.py
deleted file mode 100644 (file)
index 68ddb81..0000000
+++ /dev/null
@@ -1,467 +0,0 @@
-#@ MODIF calc_precont_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-
-# RESPONSABLE ASSIRE A.ASSIRE
-
-def calc_precont_ops(self,reuse,MODELE,CHAM_MATER,CARA_ELEM,EXCIT,
-                                CABLE_BP,CABLE_BP_INACTIF,
-                                COMP_INCR,ETAT_INIT,NEWTON,RECH_LINEAIRE,
-                                CONVERGENCE,INCREMENT,SOLVEUR,SOLV_NON_LOCAL,
-                                LAGR_NON_LOCAL,PARM_THETA,INFO,TITRE,**args):
-
-
-  """
-     Ecriture de la macro CALC_PRECONT
-  """
-  import copy
-  import aster
-  import string
-  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
-  AFFE_MODELE      = self.get_cmd('AFFE_MODELE')
-  CREA_CHAMP       = self.get_cmd('CREA_CHAMP')
-  AFFE_CHAR_MECA   = self.get_cmd('AFFE_CHAR_MECA')
-  DEFI_LIST_REEL   = self.get_cmd('DEFI_LIST_REEL')
-  STAT_NON_LINE    = self.get_cmd('STAT_NON_LINE')
-  CALC_NO          = self.get_cmd('CALC_NO')
-  CREA_CHAMP       = self.get_cmd('CREA_CHAMP')
-  DEFI_FONCTION    = self.get_cmd('DEFI_FONCTION')
-  RECU_TABLE       = self.get_cmd('RECU_TABLE')
-  DEFI_MATERIAU    = self.get_cmd('DEFI_MATERIAU')
-  AFFE_MATERIAU    = self.get_cmd('AFFE_MATERIAU')
-
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  # Le concept sortant (de type evol_noli) est nomme RES dans 
-  # le contexte de la macro
-
-  self.DeclareOut('RES',self.sd)
-
-  # -------------------------------------------------------------
-  # 1. CREATION DES MOTS-CLES ET CONCEPTS POUR LES STAT_NON_LINE 
-  # ------------------------------------------------------------
-
-
-  # 1.1 Recuperation de la liste d'instants, de l'instant initial et final
-  #     Creation de la nouvelle liste d'instants
-  # ----------------------------------------------------------   
-
-  dIncrement=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
-  
-  __prec = dIncrement['PRECISION']
-  __L0   = dIncrement['LIST_INST']
-  __L1   = __L0.Valeurs()
-     
-  # Traitement de l'etat initial
-  if ETAT_INIT:
-      dEtatInit=ETAT_INIT[0].cree_dict_valeurs(ETAT_INIT[0].mc_liste)
-      for i in dEtatInit.keys():
-          if dEtatInit[i]==None : del dEtatInit[i]
-
-      __EVINIT = dEtatInit['EVOL_NOLI']
-  else :
-      dEtatInit=None
-      
-  # Test de la presence de reuse=
-  if self.reuse == None:
-      dReuse=None
-  else :
-      dReuse='RES'
-
-  # Teste si INST_INIT est donné ou bien recalcule __TMIN
-  if dIncrement['INST_INIT'] == None:
-    if self.reuse == None:
-      __TMIN = __L1[0]
-    else:
-      __dico = __EVINIT.LIST_VARI_ACCES()
-      __TMIN = __dico['INST'][-1]
-  else:
-    __TMIN = dIncrement['INST_INIT']
-
-  # Teste si INST_FIN est donné ou bien recalcule __TMAX
-  if dIncrement['INST_FIN'] == None:
-    __TMAX = __L1[-1]
-  else:
-    __TMAX = dIncrement['INST_FIN']
-
-  # Teste si INST_INIT est bien plus petit que INST_FIN
-  if __TMAX <= __TMIN:
-    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
-  __L2=[]
-  for m in __L1:
-    if m>=__TMIN and m<=__TMAX:
-      __L2.append(m)
-  
-  __TINT = (9.*__L2[-1] + __L2[-2])/10.
-  __L2[-1:-1] = [__TINT]
-
-  # __LST0 est la liste d'instants utilisée pour l'etape 1 
-  __LST0=DEFI_LIST_REEL( DEBUT = __TMIN,
-                        INTERVALLE = _F(JUSQU_A = __TMAX, NOMBRE = 1),)
-
-  # __LST et __FCT sont utilisés pour les etapes 2 et 3
-  __LST=DEFI_LIST_REEL(VALE=__L2,);
-  __FCT=DEFI_FONCTION(INTERPOL=('LIN','LIN'),
-                         NOM_PARA='INST',
-                         VALE=(__TMIN,0.0,__TINT,1.0,__TMAX,1.0),);
-
-  for i in dIncrement.keys():
-      if dIncrement[i]==None : del dIncrement[i] 
-  dIncrement['LIST_INST']= __LST
-  dIncrement['INST_FIN'] = __TINT
-
-
-
-  # 1.2 Recuperation des parametres pour STAT_NON_LINE
-  # -------------------------------------------------------
-
-  dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
-  for i in dNewton.keys():
-      if dNewton[i]==None : del dNewton[i]
-
-  dConvergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste)
-  for i in dConvergence.keys():
-      if dConvergence[i]==None : del dConvergence[i]
-
-  dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-  for i in dSolveur.keys():
-      if dSolveur[i]==None : del dSolveur[i]
-
-  if RECH_LINEAIRE:
-    dRech_lin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste)
-    for i in dRech_lin.keys():
-        if dRech_lin[i]==None : del dRech_lin[i]
-  else :
-    dRech_lin=None
-    
-  if SOLV_NON_LOCAL:
-    dSolv_nonloc=SOLV_NON_LOCAL[0].cree_dict_valeurs(SOLV_NON_LOCAL[0].mc_liste)
-    for i in dSolv_nonloc.keys():
-        if dSolv_nonloc[i]==None : del dSolv_nonloc[i]
-  else :
-    dSolv_nonloc=None
-        
-  if LAGR_NON_LOCAL:
-    dLagr_nonloc=LAGR_NON_LOCAL[0].cree_dict_valeurs(LAGR_NON_LOCAL[0].mc_liste)
-    for i in dLagr_nonloc.keys():
-        if dLagr_nonloc[i]==None : del dLagr_nonloc[i]
-  else :
-    dLagr_nonloc=None   
-    
-
-
-  # 1.3 Creation des mots-cles pour les 3 AFFE_CHAR_MECA
-  #     Recuperation des cables dans les concepts CABLE_BP
-  #     et CABLE_BP_INACTIF
-  # ------------------------------------------------------
-  if type(CABLE_BP) is not types.NoneType:
-    if type(CABLE_BP) is not types.TupleType:
-      CABLE_BP0 = CABLE_BP
-      CABLE_BP = []
-      CABLE_BP.append ( CABLE_BP0 )
-
-  if type(CABLE_BP_INACTIF) is not types.NoneType:
-    if type(CABLE_BP_INACTIF) is not types.TupleType:
-      CABLE_BP_INACTIF0 = CABLE_BP_INACTIF
-      CABLE_BP_INACTIF = []
-      CABLE_BP_INACTIF.append ( CABLE_BP_INACTIF0 )
-
-  motscles={}
-  motscles['RELA_CINE_BP']=[]
-  motscle2={}
-  motscle2['RELA_CINE_BP']=[]
-  motscle3={}
-  motscle3['RELA_CINE_BP']=[]
-  __GROUP_MA_A=[]
-  Result = [[None]*1]
-  for mcabl in CABLE_BP:
-    # Creation de mots-cles pour les AFFE_CHAR_MECA
-    motscles['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl,
-                                       SIGM_BPEL = 'OUI',
-                                       RELA_CINE = 'NON',) )
-    motscle2['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl,
-                                       SIGM_BPEL = 'NON',
-                                       RELA_CINE = 'OUI',) )
-    motscle3['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl,
-                                       SIGM_BPEL = 'OUI',
-                                       RELA_CINE = 'OUI',) )
-
-    # Creation de __GROUP_MA_A : liste des noms des cables contenus 
-    # dans chaque concept CABLE_BP = cables  a activer 
-    __TCAB = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP');
-    __nb = 0
-    while 1: 
-      try:
-          Result[__nb][0] = __TCAB['NOM_CABLE',__nb+1]
-          __CAB = __TCAB['NOM_CABLE',__nb+1]
-          if __nb == 0:
-            __GROUP_MA_A.append(__CAB)
-          else:
-            i = 0
-            # enlève les doublons
-            for m in __GROUP_MA_A:
-              i=i+1
-              if __CAB == m:
-                break
-              if i == len(__GROUP_MA_A):
-                __GROUP_MA_A.append(__CAB)
-    
-          __nb = __nb + 1  
-          Result.append([None]*1)
-    #   Si on a lu toutes les valeurs alors on sort de la boucle
-      except KeyError:
-        break
-
-  # Creation de __GROUP_MA_I : liste des noms des cables contenus 
-  # dans chaque CABLE_BP_INACTIF
-  # __GROUP_MA_CABLE = liste des cables actifs et inactifs
-  Result = [[None]*1]
-  __GROUP_MA_I=[]
-
-  if CABLE_BP_INACTIF:
-    for mcabl in CABLE_BP_INACTIF:
-      __TCA0 = RECU_TABLE(CO=mcabl,NOM_TABLE='CABLE_BP');
-      __nb = 0
-      while 1: 
-        try:
-            Result[__nb][0] = __TCA0['NOM_CABLE',__nb+1]
-            __CA0 = __TCA0['NOM_CABLE',__nb+1]
-            if __nb == 0:
-              __GROUP_MA_I.append(__CA0)
-            else:
-              i = 0
-              # enlève les doublons
-              for m in __GROUP_MA_I:
-                i=i+1
-                if __CA0 == m:
-                  break
-                if i == len(__GROUP_MA_I):
-                  __GROUP_MA_I.append(__CA0)
-      
-            __nb = __nb + 1  
-            Result.append([None]*1)
-      #   Si on a lu toutes les valeurs alors on sort de la boucle
-        except KeyError:
-          break
-    motscle6={}
-    motscle6['RELA_CINE_BP']=[]
-    for mcabl in CABLE_BP_INACTIF:
-      # Creation de mots-cles pour les AFFE_CHAR_MECA
-      motscle6['RELA_CINE_BP'].append(_F(CABLE_BP=mcabl,
-                                         SIGM_BPEL = 'NON',
-                                         RELA_CINE = 'OUI',) )  
-                                               
-  __GROUP_MA_CABLES = __GROUP_MA_A + __GROUP_MA_I
-
-
-  # 1.4 Creation des mots-clés facteurs COMP_INCR 
-  # pour étape 2 (dComp_incr0) et étape 3 (dComp_incr1)
-  # ------------------------------------------------------
-
-  dComp_incr=[]
-  for j in COMP_INCR :
-      dComp_incr.append(j.cree_dict_valeurs(j.mc_liste))
-      for i in dComp_incr[-1].keys():
-          if dComp_incr[-1][i]==None : del dComp_incr[-1][i]
-
-  dComp_incr0=copy.copy(dComp_incr)
-  dComp_incr1=copy.copy(dComp_incr)
-   
-  dComp_incr0.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_CABLES) )
-  if __GROUP_MA_I:
-    dComp_incr1.append(_F(RELATION='SANS',GROUP_MA=__GROUP_MA_I) )
-
-
-  # 1.5 Modele contenant uniquement les cables de precontrainte
-  # ---------------------------------------------------------
-
-  __MOD = string.ljust(MODELE.nom,8)
-  __MOD =__MOD+'.MODELE    .NOMA        '
-  __LMAIL = aster.getvectjev(__MOD)
-  __MAIL  = string.strip(__LMAIL[0])
-
-  objma=self.get_sd_avant_etape(__MAIL,self)
-
-  __M_CA=AFFE_MODELE( MAILLAGE=objma,
-                       AFFE    =_F( GROUP_MA     = __GROUP_MA_A,
-                                    PHENOMENE    = 'MECANIQUE',
-                                    MODELISATION = 'BARRE') )
-  
-
-  # 1.6 Blocage de tous les noeuds des cables actifs
-  # --------------------------------------------------
-  
-  _B_CA=AFFE_CHAR_MECA(MODELE=__M_CA,
-                        DDL_IMPO= _F( GROUP_MA = __GROUP_MA_A,
-                                      DX = 0.,
-                                      DY = 0.,
-                                      DZ = 0.),)                                                 
-
-
-  # 1.7 Chargements concernant les cables
-  # -------------------------------------
-  _C_CN=AFFE_CHAR_MECA(MODELE=__M_CA,**motscles)
-  _C_CA=AFFE_CHAR_MECA(MODELE=MODELE,**motscle2)
-  _C_CT=AFFE_CHAR_MECA(MODELE=MODELE,**motscle3)
-  if CABLE_BP_INACTIF:
-    _C_CI=AFFE_CHAR_MECA(MODELE=MODELE,**motscle6)
-
-
-
-  # -------------------------------------------------------------
-  # 2. CALCULS 
-  # ------------------------------------------------------------
-
-
-  #------------------------------------------------------------------- 
-  # 2.1 Premiere etape : calcul sur le(s) cable(s) et 
-  #     recuperation des _F_CAs aux noeuds 
-  #     on travaile entre tmin et tmax
-  #-------------------------------------------------------------------
-
-  __EV1=STAT_NON_LINE(
-                         MODELE     = __M_CA,
-                         CHAM_MATER = CHAM_MATER,
-                         CARA_ELEM  = CARA_ELEM,
-                         EXCIT      =(_F(CHARGE = _B_CA),
-                                      _F(CHARGE = _C_CN),),
-                         COMP_INCR  =_F( RELATION = 'ELAS',
-                                         DEFORMATION = 'PETIT',
-                                         TOUT = 'OUI'),
-                         INCREMENT  =_F(LIST_INST = __LST0,
-                                        PRECISION = __prec),
-                         SOLVEUR = dSolveur,
-                         PARM_THETA = PARM_THETA,
-                         INFO     =INFO,
-                         TITRE = TITRE,  )                      
-                   
-  __EV1 = CALC_NO( reuse    = __EV1,
-                   RESULTAT = __EV1,
-                   GROUP_MA = __GROUP_MA_A,
-                   OPTION = 'FORC_NODA' )
-                           
-  __REA = CREA_CHAMP (
-                     TYPE_CHAM = 'NOEU_DEPL_R',
-                     OPERATION = 'EXTR',
-                     RESULTAT  =  __EV1,
-                     NOM_CHAM  = 'FORC_NODA',
-                     INST      = __TMAX);
-
-  __REAC = CREA_CHAMP (TYPE_CHAM='NOEU_DEPL_R',
-                     OPERATION = 'ASSE',
-                     MODELE    = MODELE,
-                     ASSE= _F(GROUP_MA=__GROUP_MA_A,
-                              CHAM_GD=__REA,
-                              COEF_R = -1.), )
-                  
-  _F_CA=AFFE_CHAR_MECA(MODELE=__M_CA,
-                          VECT_ASSE = __REAC )      
-  
-  
-  
-  #-----------------------------------------------------------------------
-  # 2.2 Deuxieme etape : application de la precontrainte sur le beton
-  #     en desactivant les cables                         
-  #-----------------------------------------------------------------------
-
-  # Regeneration des mots-cles EXCIT passés en argument de la macro
-  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]
-
-  if CABLE_BP_INACTIF:
-    dExcit.append(_F(CHARGE=_C_CI),)
-
-  # Creation du mots-cle EXCIT pour le STAT_NON_LINE
-  dExcit1=copy.copy(dExcit)
-  dExcit1.append(_F(CHARGE=_C_CA),)
-  dExcit1.append(_F(CHARGE = _F_CA,
-                    FONC_MULT=__FCT ),)
-
-  RES=STAT_NON_LINE( 
-                     MODELE      =MODELE,
-                     CARA_ELEM   =CARA_ELEM,
-                     CHAM_MATER  = CHAM_MATER,
-                     COMP_INCR=dComp_incr0,
-                     INCREMENT=dIncrement,
-                     ETAT_INIT = dEtatInit,
-                     NEWTON =dNewton,
-                     CONVERGENCE=dConvergence,
-                     RECH_LINEAIRE = dRech_lin,
-                     SOLVEUR = dSolveur,
-                     SOLV_NON_LOCAL = dSolv_nonloc,
-                     LAGR_NON_LOCAL = dLagr_nonloc,
-                     ARCHIVAGE = _F(INST = __TINT),
-                     PARM_THETA = PARM_THETA,
-                     INFO     =INFO,
-                     TITRE = TITRE,
-                     EXCIT = dExcit1,
-                     )
-
-  # Recuperation du dernier numero d'ordre pour pouvoir  l'écraser dans RES
-  __dico2 = RES.LIST_VARI_ACCES()
-  __no = __dico2['NUME_ORDRE'][-1]
-
-
-  #-----------------------------------------------------------------------
-  # 2.2 Troisieme etape : on remet la tension dans les cables
-  #-----------------------------------------------------------------------
-
-  # Creation du mots-cles EXCIT pour le STAT_NON_LINE
-  dExcit2=copy.copy(dExcit)
-  dExcit2.append(_F(CHARGE=_C_CT,) )
-   
-  # Calcul sur un seul pas (de __TINT a __TMAX)
-  RES=STAT_NON_LINE( reuse      = RES,
-                     ETAT_INIT  = _F(EVOL_NOLI =RES),
-                     MODELE     = MODELE,
-                     CHAM_MATER = CHAM_MATER,
-                     CARA_ELEM  = CARA_ELEM,
-                     COMP_INCR=dComp_incr1, 
-                     INCREMENT=_F(LIST_INST = __LST, 
-                                  PRECISION = __prec),
-                     NEWTON =dNewton,
-                     RECH_LINEAIRE = dRech_lin,
-                     CONVERGENCE=dConvergence,
-                     SOLVEUR = dSolveur,
-                     SOLV_NON_LOCAL = dSolv_nonloc,
-                     LAGR_NON_LOCAL = dLagr_nonloc,
-                     ARCHIVAGE = _F(NUME_INIT = __no,
-                                    DETR_NUME_SUIV = 'OUI' ),
-                     PARM_THETA = PARM_THETA,
-                     INFO  =INFO,
-                     TITRE = TITRE,    
-                     EXCIT =dExcit2,                 
-                     )  
-
-  return ier
-
diff --git a/Aster/Cata/cataSTA81/Macro/calc_table_ops.py b/Aster/Cata/cataSTA81/Macro/calc_table_ops.py
deleted file mode 100644 (file)
index cd62da2..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#@ MODIF calc_table_ops Macro  DATE 10/04/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-# RESPONSABLE MCOURTOI M.COURTOIS
-from types import *
-EnumTypes = (ListType, TupleType)
-
-def calc_table_ops(self, TABLE, ACTION, INFO, **args):
-   """
-   Macro CALC_TABLE permettant de faire des opérations sur une table
-   """
-   import aster
-
-   macro = 'CALC_TABLE'
-   from Accas               import _F
-   from Cata.cata import table_jeveux
-   from Utilitai.Utmess     import UTMESS
-   from Utilitai            import transpose
-   from Utilitai.Table      import Table, merge
-   from Utilitai.Sensibilite import NomCompose
-
-   ier = 0
-   # La macro compte pour 1 dans la numerotation des commandes
-   self.set_icmd(1)
-
-   # Le concept sortant (de type table_sdaster ou dérivé) est tab
-   self.DeclareOut('tabout', self.sd)
-
-   # On importe les definitions des commandes a utiliser dans la macro
-   # Le nom de la variable doit etre obligatoirement le nom de la commande
-   CREA_TABLE    = self.get_cmd('CREA_TABLE')
-   DETRUIRE      = self.get_cmd('DETRUIRE')
-
-   # 0. faut-il utiliser une table dérivée
-   form_sens='\n... SENSIBILITE AU PARAMETRE %s (SD COMP %s)'
-   if args['SENSIBILITE']:
-      ncomp = NomCompose(TABLE, args['SENSIBILITE'], msg='F')
-      sdtab = table_jeveux(ncomp)
-      tab = sdtab.EXTR_TABLE()
-   else:
-      tab = TABLE.EXTR_TABLE()
-
-   #----------------------------------------------
-   # Boucle sur les actions à effectuer
-   for fOP in ACTION:
-      occ = fOP.cree_dict_valeurs(fOP.mc_liste)
-      for mc, val in occ.items():
-         if val == None:
-            del occ[mc]
-   
-      #----------------------------------------------
-      # 1. Traitement du FILTRE
-      # format pour l'impression des filtres
-      form_filtre = '\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s'
-      if occ['OPERATION'] == 'FILTRE':
-         col = getattr(tab, occ['NOM_PARA'])
-         # peu importe le type, c'est la meme méthode d'appel
-         opts = [occ[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if occ.has_key(k)]
-         kargs = {}
-         for k in ('CRITERE','PRECISION'):
-            if occ.has_key(k):
-               kargs[k] = occ[k]
-         tab = tab & ( getattr(col, occ['CRIT_COMP'])(*opts,**kargs) )
-         # trace l'operation dans le titre
-         #if FORMAT in ('TABLEAU','ASTER'):
-         tab.titr += form_filtre % (occ['NOM_PARA'], occ['CRIT_COMP'], \
-            ' '.join([str(v) for v in opts]))
-
-      #----------------------------------------------
-      # 2. Traitement de EXTR
-      if occ['OPERATION'] == 'EXTR':
-         lpar = occ['NOM_PARA']
-         if not type(lpar) in EnumTypes:
-            lpar = [lpar]
-         for p in lpar:
-            if not p in tab.para:
-               UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom))
-         tab = tab[occ['NOM_PARA']]
-
-      #----------------------------------------------
-      # 3. Traitement de RENOMME
-      if occ['OPERATION'] == 'RENOMME':
-         try:
-            tab.Renomme(*occ['NOM_PARA'])
-         except KeyError, msg:
-            UTMESS('F', macro, msg)
-
-      #----------------------------------------------
-      # 4. Traitement du TRI
-      if occ['OPERATION'] == 'TRI':
-         tab.sort(CLES=occ['NOM_PARA'], ORDRE=occ['ORDRE'])
-   
-      #----------------------------------------------
-      # 5. Traitement de COMB
-      if occ['OPERATION'] == 'COMB':
-         tab2 = occ['TABLE'].EXTR_TABLE()
-         opts = [tab, tab2]
-         if occ['NOM_PARA']<>None:
-            lpar = occ['NOM_PARA']
-            if not type(lpar) in EnumTypes:
-               lpar = [lpar]
-            for p in lpar:
-               if not p in tab.para:
-                  UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, TABLE.nom))
-               if not p in tab2.para:
-                  UTMESS('F', macro, 'Paramètre %s inexistant dans la table %s' % (p, occ['TABLE'].nom))
-            opts.append(lpar)
-         tab = merge(*opts)
-   
-      #----------------------------------------------
-      # 6. Traitement de OPER
-      if occ['OPERATION'] == 'OPER':
-         # ajout de la colonne dans la table
-         tab.fromfunction(occ['NOM_PARA'], occ['FORMULE'])
-         if INFO == 2:
-            vectval = getattr(tab, occ['NOM_PARA']).values()
-            aster.affiche('MESSAGE', 'Ajout de la colonne %s : %s' % (occ['NOM_PARA']+repr(vectval))+'\n')
-
-   #----------------------------------------------
-   # 99. Création de la table_sdaster résultat
-   # cas réentrant : il faut détruire l'ancienne table_sdaster
-   if self.sd.nom == TABLE.nom:
-      DETRUIRE(CONCEPT=_F(NOM=TABLE.nom,), INFO=1)
-
-   dprod = tab.dict_CREA_TABLE()
-   if INFO == 2:
-      echo_mess = []
-      echo_mess.append( '@-'*30+'\n' )
-      echo_mess.append( tab )
-      from pprint import pformat
-      echo_mess.append( pformat(dprod) )
-      echo_mess.append( '@-'*30+'\n' )
-      texte_final = ' '.join(echo_mess)
-      aster.affiche('MESSAGE', texte_final)
-
-   # surcharge par le titre fourni
-   tit = args['TITRE']
-   if tit != None:
-      if not type(tit) in EnumTypes:
-         tit = [tit]
-      dprod['TITRE'] = tuple(['%-80s' % lig for lig in tit])
-   # type de la table de sortie à passer à CREA_TABLE
-   tabout = CREA_TABLE(**dprod)
-   
-   return ier
diff --git a/Aster/Cata/cataSTA81/Macro/creation_donnees_homard.py b/Aster/Cata/cataSTA81/Macro/creation_donnees_homard.py
deleted file mode 100644 (file)
index 3c41ecc..0000000
+++ /dev/null
@@ -1,522 +0,0 @@
-#@ MODIF creation_donnees_homard Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-__all__ = [ ]
-"""
-Cette classe crée le fichier de configuration permettant de lancer HOMARD depuis Code_Aster.
-"""
-__revision__ = "V1.0"
-import os
-import os.path
-
-try:
-  from Utilitai.Utmess import UTMESS
-except ImportError:
-  def UTMESS(code, sprg, texte) :
-    """Clone de utmess si on ne reussit pas à le charger
-    """
-    fmt = '\n <%s> <%s> %s\n\n'
-    print fmt % (code, sprg, texte)
-
-# ------------------------------------------------------------------------------
-class creation_donnees_homard:
-  """Cette classe crée les données permettant de lancer HOMARD depuis Code_Aster.
-      Ce sont :
-      . le fichier de configuration
-      . le fichier des données dans le cas d'information
-   
-   Arguments (stockés en tant qu'attribut) :
-      . nom_macro : nom de la macro-commande qui appelle :
-                      'MACR_ADAP_MAIL' pour une adaptation
-                      'MACR_INFO_MAIL' pour une information sur un maillage
-      . mots_cles : mots-clés de la macro-commande
-      . dico_configuration : dictionnaire des options
-
-   Attributs :
-      . Nom_Fichier_Configuration : nom du fichier de configuration (immuable)
-      . Nom_Fichier_Donnees : nom du fichier de données (immuable)
-      . mode_homard : le mode pour filtrer ici ("ADAP" ou "INFO")
-      . ModeHOMA : le mode pour HOMARD (1 ou 2)
-      . mode_homard_texte : le mode d'utilisation, en francais ("ADAPTATION" ou "INFORMATION")
-      . elements_incompatibles : que faire des éléments incompatibles avec HOMARD
-   """
-# ------------------------------------------------------------------------------
-  def __init__(self, nom_macro, mots_cles, dico_configuration ) :
-    """Construction + valeurs par défaut des attributs
-    """
-#
-# 1. Vérification de la macro qui appelle
-#
-    d_aux = {}
-    d_aux["MACR_ADAP_MAIL"] = ( "ADAP", 1, "ADAPTATION" )
-    d_aux["MACR_INFO_MAIL"] = ( "INFO", 2, "INFORMATION" )
-    if d_aux.has_key(nom_macro) :
-      self.mode_homard = d_aux[nom_macro][0]
-      self.ModeHOMA = d_aux[nom_macro][1]
-      self.mode_homard_texte = d_aux[nom_macro][2]
-    else :
-      UTMESS("F", nom_macro, "Cette macro commande est inconnue.")
-#
-# 2. Données générales de cette initialisation
-#
-#gn    for mot_cle in mots_cles.keys() :
-#gn      print "mots_cles[", mot_cle, "] = ", mots_cles[mot_cle]
-#gn    for mot_cle in dico_configuration.keys() :
-#gn      print "dico_configuration[", mot_cle, "] = ", dico_configuration[mot_cle]
-#
-    self.nom_macro = nom_macro
-    self.mots_cles = mots_cles
-    self.dico_configuration = dico_configuration
-#
-# 3. Quel type de traitement des elemenst incompatibles
-#
-    if mots_cles.has_key("ELEMENTS_NON_HOMARD") :
-      d_aux = {}
-      d_aux["REFUSER"] = "TOUS"
-      d_aux["IGNORER"] = "IGNORE_QUAD"
-      self.elements_incompatibles = d_aux[mots_cles["ELEMENTS_NON_HOMARD"]]
-    else :
-      self.elements_incompatibles = None
-#
-# 4. Attributs immuables
-#
-    self.Nom_Fichier_Configuration = "HOMARD.Configuration"
-    self.Nom_Fichier_Donnees = "HOMARD.Donnees"
-#
-# ------------------------------------------------------------------------------
-  def int_to_str2 (self, entier) :
-    """
-    Transforme un entier compris entre 0 et 99 en une chaine sur deux caractères
-    """
-#    print "\nArguments a l'entree de", __name__, ":", entier
-#
-    try:
-       la_chaine = '%02d' % entier
-    except TypeError:
-       la_chaine = None
-#
-    return la_chaine
-# ------------------------------------------------------------------------------
-  def quel_mode (self) :
-    """Informe sur le mode de lancement de HOMARD
-    """
-###    print self.mode_homard_texte
-    print "Lancement de creation_donnees_homard en mode", self.mode_homard_texte
-    return
-# ------------------------------------------------------------------------------
-  def creation_configuration (self) :
-    """Crée les données nécessaires à la configuration
-    """
-#
-    message_erreur = None
-#
-    while message_erreur is None :
-#
-#     1. Les chaines liées aux numéros d'itération
-#
-      if self.mode_homard == "ADAP" :
-        niter = self.dico_configuration["niter"]
-        self.str_niter = self.int_to_str2 (niter)
-        self.str_niterp1 = self.int_to_str2 (niter+1)
-        self.niter_vers_niterp1 = self.str_niter + ".vers." + self.str_niterp1
-#
-#     2. La liste standard
-#
-      if self.mode_homard == "INFO" :
-        aux = "Liste.info"
-      else :
-        aux = "Liste." + self.niter_vers_niterp1
-      self.ListeStd = aux
-#
-#     3. Le type de bilan : il faut convertir la donnée textuelle en un entier,
-#        produit de nombres premiers.
-#        Si rien n'est demandé, on met 0.
-#
-      aux = 1
-      dico_aux = {}
-      dico_aux["INTERPENETRATION"] = 3
-      dico_aux["NOMBRE"] = 7
-      dico_aux["QUALITE"] = 5
-      dico_aux["CONNEXITE"] = 11
-      dico_aux["TAILLE"] = 13
-      l_aux = dico_aux.keys()
-      for choix in l_aux :
-        if self.mots_cles.has_key(choix) :
-          if self.mots_cles[choix] == "OUI" :
-            aux = aux * dico_aux[choix]
-      if aux == 1 :
-        aux = 0
-      self.TypeBila = aux
-#
-#     4. Les entrées/sorties au format MED
-#
-      self.CCNoMN__ = self.dico_configuration["NOM_MED_MAILLAGE_N"]
-      if self.mode_homard == "ADAP" :
-        self.CCNoMNP1 = self.dico_configuration["NOM_MED_MAILLAGE_NP1"]
-        if self.dico_configuration.has_key("NOM_MED_MAILLAGE_NP1_ANNEXE") :
-          self.CCMaiAnn = self.dico_configuration["NOM_MED_MAILLAGE_NP1_ANNEXE"]
-#
-#     5. Les entrées/sorties au format HOMARD
-#
-      if self.mode_homard == "ADAP" :
-        self.fic_homard_niter   = "M_" + self.str_niter   + ".hom"
-        self.fic_homard_niterp1 = "M_" + self.str_niterp1 + ".hom"
-      else :
-        self.fic_homard_niter = None
-#
-#     6.1. Le pilotage de l'adaptation
-#
-      if self.mode_homard == "ADAP" :
-#
-#     6.1. Le type d'adaptation
-#
-        if self.mots_cles["ADAPTATION"] == "RAFFINEMENT" or self.mots_cles["ADAPTATION"] == "RAFFINEMENT_ZONE" :
-          self.TypeRaff = "libre"
-          self.TypeDera = "non"
-        elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT" :
-          self.TypeRaff = "non"
-          self.TypeDera = "libre"
-        elif self.mots_cles["ADAPTATION"] == "RAFF_DERA" :
-          self.TypeRaff = "libre"
-          self.TypeDera = "libre"
-        elif self.mots_cles["ADAPTATION"] == "RAFFINEMENT_UNIFORME" :
-          self.TypeRaff = "uniforme"
-          self.TypeDera = "non"
-        elif self.mots_cles["ADAPTATION"] == "DERAFFINEMENT_UNIFORME" :
-          self.TypeRaff = "non"
-          self.TypeDera = "uniforme"
-        elif self.mots_cles["ADAPTATION"] == "RIEN" :
-          self.TypeRaff = "non"
-          self.TypeDera = "non"
-#gn        print "... self.TypeRaff = ",self.TypeRaff
-#gn        print "... self.TypeDera = ",self.TypeDera
-#
-#     6.2. L'éventuel seuil de raffinement
-#
-        if self.TypeRaff == "libre" and self.mots_cles["ADAPTATION"] != "RAFFINEMENT_ZONE" :
-          d_aux = {}
-          d_aux["CRIT_RAFF_ABS"] = ("SeuilHau",   1)
-          d_aux["CRIT_RAFF_REL"] = ("SeuilHRe", 100)
-          d_aux["CRIT_RAFF_PE" ] = ("SeuilHPE", 100)
-          l_aux = d_aux.keys()
-          for mot_cle in l_aux :
-            if self.mots_cles[mot_cle] is not None :
-              aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1]
-              self.critere_raffinement = (d_aux[mot_cle][0], aux)
-        else :
-          self.critere_raffinement = None
-#gn          print "... self.critere_raffinement = ", self.critere_raffinement
-#
-#       6.3. L'éventuel seuil de déraffinement
-#
-        if self.TypeDera == "libre" :
-          d_aux = {}
-          d_aux["CRIT_DERA_ABS"] = ("SeuilBas",   1)
-          d_aux["CRIT_DERA_REL"] = ("SeuilBRe", 100)
-          d_aux["CRIT_DERA_PE" ] = ("SeuilBPE", 100)
-          l_aux = d_aux.keys()
-          for mot_cle in l_aux :
-            if self.mots_cles[mot_cle] is not None :
-              aux = self.mots_cles[mot_cle]*d_aux[mot_cle][1]
-              self.critere_deraffinement = (d_aux[mot_cle][0], aux)
-        else :
-          self.critere_deraffinement = None
-#gn          print "... self.critere_deraffinement = ", self.critere_deraffinement
-#
-#       6.4. Les niveaux extremes
-#
-        self.niveau = []
-        for mot_cle in [ "NIVE_MIN", "NIVE_MAX" ] :
-          if self.mots_cles.has_key(mot_cle) :
-            if self.mots_cles[mot_cle] is not None :
-              if mot_cle == "NIVE_MIN" :
-                aux = "NiveauMi"
-              else :
-                aux = "NiveauMa"
-              self.niveau.append((aux, self.mots_cles[mot_cle]))
-        if len(self.niveau) == 2 :
-#gn          print self.mots_cles["NIVE_MIN"]
-#gn          print self.mots_cles["NIVE_MAX"]
-          if self.mots_cles["NIVE_MIN"] >= self.mots_cles["NIVE_MAX"] :
-            message_erreur = "Le niveau mini ,"+str(self.mots_cles["NIVE_MIN"])+\
-                             ", doit etre < au niveau maxi, "+str(self.mots_cles["NIVE_MAX"])+"."
-            break
-#
-#       6.5. Les éventuelles zones de raffinement
-#
-        if self.dico_configuration.has_key("Zones") :
-          iaux = 0
-          for zone in self.dico_configuration["Zones"] :
-            iaux = iaux + 1
-            s_aux_1 = "Zone numero "+str(iaux)+" : "
-            s_aux_2 = ", doit etre < au "
-            if zone.has_key("X_MINI") :
-              if zone["X_MINI"] >= zone["X_MAXI"] :
-                message_erreur = s_aux_1+"X mini ,"+str(zone["X_MINI"])+s_aux_2+"X maxi, "+str(zone["X_MAXI"])+"."
-              if zone["Y_MINI"] >= zone["Y_MAXI"] :
-                message_erreur = s_aux_1+"Y mini ,"+str(zone["Y_MINI"])+s_aux_2+"Y maxi, "+str(zone["Y_MAXI"])+"."
-            if zone.has_key("Z_MINI") :
-              if zone["Z_MINI"] >= zone["Z_MAXI"] :
-                message_erreur = s_aux_1+"Z mini ,"+str(zone["Z_MINI"])+s_aux_2+"Z maxi, "+str(zone["Z_MAXI"])+"."
-#
-      break
-#
-    if message_erreur is not None :
-      UTMESS("F", self.nom_macro, message_erreur)
-#
-    return self.fic_homard_niter
-# ------------------------------------------------------------------------------
-  def ouvre_fichier (self, nomfic_local) :
-    """Ouvre en écriture un fichier après l'avoir éventuellement détruit
-    """
-    codret_partiel = [0]
-###    print nomfic_local
-    Rep_Calc_HOMARD_global = self.dico_configuration["Rep_Calc_HOMARD_global"]
-    nomfic = os.path.join ( Rep_Calc_HOMARD_global , nomfic_local )
-#
-    if os.path.isfile (nomfic) :
-      try :
-        os.remove (nomfic)
-      except os.error, codret_partiel :
-        print "Probleme au remove, erreur numéro ", codret_partiel[0], ":", codret_partiel[1]
-        UTMESS("F", self.nom_macro, "Impossible de tuer le fichier "+nomfic)
-#
-    fichier = open (nomfic,"w")
-    self.fichier = fichier
-#
-    return fichier, nomfic
-# ------------------------------------------------------------------------------
-  def ecrire_ligne_configuration_0 (self, commentaire) :
-    """Ecrit une ligne de commentaires du fichier de configuration
-   Arguments :
-      . commentaire : le commentaire à écrire
-    """
-#
-    ligne = "#\n"
-    ligne = ligne + "# " + commentaire + "\n"
-    ligne = ligne + "#\n"
-    self.fichier.write(ligne)
-#
-    return
-# ------------------------------------------------------------------------------
-  def ecrire_ligne_configuration_2 (self, motcle, valeur) :
-    """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur
-   Arguments :
-      . motcle : le mot-clé HOMARD à écrire
-      . valeur : la valeur associée
-    """
-#
-    ligne = motcle + " " + str(valeur) + "\n"
-    self.fichier.write(ligne)
-#
-    return
-# ------------------------------------------------------------------------------
-  def ecrire_ligne_configuration_3 (self, motcle, valeur1, valeur2) :
-    """Ecrit une ligne du fichier de configuration dans le cas : motcle + valeur1 + valeur2
-   Arguments :
-      . motcle : le mot-clé HOMARD à écrire
-      . valeur : la valeur associée
-    """
-#
-    ligne = motcle + " " + str(valeur1) + " " + str(valeur2) + "\n"
-    self.fichier.write(ligne)
-#
-    return
-# ------------------------------------------------------------------------------
-  def ecrire_fichier_configuration (self) :
-    """Ecrit le fichier de configuration
-    """
-    message_erreur = None
-#
-    while message_erreur is None :
-#
-#     1. Ouverture du fichier
-#
-      fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Configuration)
-#
-#     2. Généralités
-#
-      self.ecrire_ligne_configuration_0("Generalites")
-      self.ecrire_ligne_configuration_2("ModeHOMA", self.ModeHOMA)
-      self.ecrire_ligne_configuration_2("ListeStd", self.ListeStd)
-      self.ecrire_ligne_configuration_2("TypeBila", self.TypeBila)
-      self.ecrire_ligne_configuration_2("CCAssoci", "MED")
-      self.ecrire_ligne_configuration_2("NumeIter", self.dico_configuration["niter"])
-#
-#     3. Les fichiers externes
-#
-      self.ecrire_ligne_configuration_0("Les fichiers au format MED")
-      self.ecrire_ligne_configuration_2("CCNoMN__", self.CCNoMN__)
-      self.ecrire_ligne_configuration_2("CCMaiN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"])
-      if self.mode_homard == "ADAP" :
-        self.ecrire_ligne_configuration_2("CCNoMNP1", self.CCNoMNP1)
-        self.ecrire_ligne_configuration_2("CCMaiNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"])
-#
-      self.ecrire_ligne_configuration_0("Les fichiers de bilan")
-      self.ecrire_ligne_configuration_2("PPBasFic", "info")
-#
-#     4. Les fichiers HOMARD
-#
-      self.ecrire_ligne_configuration_0("Les fichiers au format HOMARD")
-      if self.mode_homard == "ADAP" :
-        self.ecrire_ligne_configuration_3("HOMaiN__", "M_"+self.str_niter  , self.fic_homard_niter )
-        self.ecrire_ligne_configuration_3("HOMaiNP1", "M_"+self.str_niterp1, self.fic_homard_niterp1)
-        aux = "oui"
-      else :
-        aux = "non"
-      self.ecrire_ligne_configuration_2("EcriFiHO", aux)
-#
-#     5. Le pilotage de l'adaptation
-#
-      if self.mode_homard == "ADAP" :
-        self.ecrire_ligne_configuration_0("Le pilotage de l'adaptation")
-#
-#     5.1. Type d'adaptation
-#
-        self.ecrire_ligne_configuration_2("TypeRaff", self.TypeRaff)
-        if self.critere_raffinement is not None :
-          self.ecrire_ligne_configuration_2(self.critere_raffinement[0], self.critere_raffinement[1])
-        self.ecrire_ligne_configuration_2("TypeDera", self.TypeDera)
-        if self.critere_deraffinement is not None :
-          self.ecrire_ligne_configuration_2(self.critere_deraffinement[0], self.critere_deraffinement[1])
-#
-#     5.2. L'eventuel indicateur d'erreur
-#
-        if self.dico_configuration.has_key("Indicateur") :
-#
-          self.ecrire_ligne_configuration_0("L'indicateur d'erreur")
-          self.ecrire_ligne_configuration_2("CCIndica", self.dico_configuration["Fichier_ASTER_vers_HOMARD"])
-          self.ecrire_ligne_configuration_2("CCNoChaI", self.dico_configuration["Indicateur"]["NOM_MED"])
-          self.ecrire_ligne_configuration_2("CCCoChaI", self.dico_configuration["Indicateur"]["COMPOSANTE"])
-          if self.dico_configuration["Indicateur"].has_key("NUME_ORDRE") :
-            self.ecrire_ligne_configuration_2("CCNumOrI", self.dico_configuration["Indicateur"]["NUME_ORDRE"])
-            self.ecrire_ligne_configuration_2("CCNumPTI", self.dico_configuration["Indicateur"]["NUME_ORDRE"])
-#
-#     5.3. Les niveaux extremes
-#
-        for aux in self.niveau :
-          self.ecrire_ligne_configuration_2(aux[0], aux[1])
-#
-#     6. Les éventuelles zones de raffinement
-#
-      if self.dico_configuration.has_key("Zones") :
-        iaux = 0
-        for zone in self.dico_configuration["Zones"] :
-          iaux = iaux + 1
-          self.ecrire_ligne_configuration_0("Zone de raffinement numéro "+str(iaux))
-          if zone.has_key("X_MINI") :
-            self.ecrire_ligne_configuration_3("ZoRaXmin", iaux, zone["X_MINI"])
-            self.ecrire_ligne_configuration_3("ZoRaXmax", iaux, zone["X_MAXI"])
-            self.ecrire_ligne_configuration_3("ZoRaYmin", iaux, zone["Y_MINI"])
-            self.ecrire_ligne_configuration_3("ZoRaYmax", iaux, zone["Y_MAXI"])
-          if zone.has_key("Z_MINI") :
-            self.ecrire_ligne_configuration_3("ZoRaZmin", iaux, zone["Z_MINI"])
-            self.ecrire_ligne_configuration_3("ZoRaZmax", iaux, zone["Z_MAXI"])
-          if zone.has_key("X_CENTRE") :
-            self.ecrire_ligne_configuration_3("ZoRaXCen", iaux, zone["X_CENTRE"])
-            self.ecrire_ligne_configuration_3("ZoRaYCen", iaux, zone["Y_CENTRE"])
-            self.ecrire_ligne_configuration_3("ZoRaRayo", iaux, zone["RAYON"])
-          if zone.has_key("Z_CENTRE") :
-            self.ecrire_ligne_configuration_3("ZoRaZCen", iaux, zone["Z_CENTRE"])
-#
-#     7. Les éventuels champs à mettre à jour
-#
-      if self.dico_configuration.has_key("Champs") :
-        self.ecrire_ligne_configuration_0("Champs à mettre à jour")
-        self.ecrire_ligne_configuration_2("CCSolN__", self.dico_configuration["Fichier_ASTER_vers_HOMARD"])
-        self.ecrire_ligne_configuration_2("CCSolNP1", self.dico_configuration["Fichier_HOMARD_vers_ASTER"])
-        iaux = 0
-        for maj_champ in self.dico_configuration["Champs"] :
-          iaux = iaux + 1
-          self.ecrire_ligne_configuration_0("Mise à jour du champ numéro "+str(iaux))
-          self.ecrire_ligne_configuration_3("CCChaNom", iaux, maj_champ["NOM_MED"])
-          if maj_champ.has_key("NUME_ORDRE") :
-            self.ecrire_ligne_configuration_3("CCChaNuO", iaux, maj_champ["NUME_ORDRE"])
-            self.ecrire_ligne_configuration_3("CCChaPdT", iaux, maj_champ["NUME_ORDRE"])
-          elif maj_champ.has_key("INST") :
-            self.ecrire_ligne_configuration_3("CCChaIns", iaux, maj_champ["INST"])
-#
-#     8. L'éventuel maillage de frontière
-#
-      if self.dico_configuration.has_key("NOM_MED_MAILLAGE_FRONTIERE") :
-        self.ecrire_ligne_configuration_0("Maillage de frontière")
-        self.ecrire_ligne_configuration_2("SuivFron", "oui")
-        self.ecrire_ligne_configuration_2("CCFronti", self.dico_configuration["Fichier_ASTER_vers_HOMARD"])
-        self.ecrire_ligne_configuration_2("CCNoMFro", self.dico_configuration["NOM_MED_MAILLAGE_FRONTIERE"])
-        if self.mots_cles.has_key("GROUP_MA") :
-          if self.mots_cles["GROUP_MA"] is not None :
-            for group_ma in self.mots_cles["GROUP_MA"] :
-              self.ecrire_ligne_configuration_2("CCGroFro", group_ma)
-#
-#     9. L'usage des éléments incompatibles avec HOMARD
-#
-      if self.elements_incompatibles is not None :
-        self.ecrire_ligne_configuration_0("Les éléments incompatibles avec HOMARD")
-        self.ecrire_ligne_configuration_2("TypeElem", self.elements_incompatibles)
-#
-#     10. Options particulières
-#
-      self.ecrire_ligne_configuration_0("Autres options")
-      if self.mots_cles.has_key("LANGUE") :
-        self.ecrire_ligne_configuration_2("Langue", self.mots_cles["LANGUE"])
-      self.ecrire_ligne_configuration_2("MessInfo", self.dico_configuration["INFO"])
-      if self.dico_configuration["version_perso"] :
-        VERSION_HOMARD = self.dico_configuration["VERSION_HOMARD"]
-        self.ecrire_ligne_configuration_2("DicoOSGM", "$HOMARD_USER/"+VERSION_HOMARD+"/CONFIG/typobj.stu")
-#
-#     11. Fermeture du fichier
-#
-      fichier.close()
-      break
-#
-    if message_erreur is not None :
-      message_erreur = "Ecriture de "+nomfic_global+". "+message_erreur
-      UTMESS("F", self.nom_macro, message_erreur)
-#
-    return
-# ------------------------------------------------------------------------------
-  def ecrire_fichier_donnees (self) :
-    """Ecrit le fichier des donnees dans le cas d'une demande d'information
-    """
-    message_erreur = None
-#
-    while message_erreur is None :
-#
-#     1. Ouverture du fichier
-#
-      fichier, nomfic_global = self.ouvre_fichier(self.Nom_Fichier_Donnees)
-#
-#     2. On ne demande rien pour le moment
-#
-      fichier.write("0\n")
-      fichier.write("0\n")
-      fichier.write("0\n")
-      fichier.write("q\n")
-#
-#     n. Fermeture du fichier
-#
-      fichier.close()
-      break
-#
-    if message_erreur is not None :
-      UTMESS("F", self.nom_macro, message_erreur)
-#
-    return nomfic_global
diff --git a/Aster/Cata/cataSTA81/Macro/defi_cable_bp_ops.py b/Aster/Cata/cataSTA81/Macro/defi_cable_bp_ops.py
deleted file mode 100644 (file)
index 552fe5e..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-#@ MODIF defi_cable_bp_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-# ===========================================================================
-#           CORPS DE LA MACRO "DEFI_CABLE_BP"
-#           -------------------------------------
-# USAGE :
-# Entrée :
-#  - MAILLAGE
-#  - MODELE
-#  - CABLE
-#  - CHAM_MATER
-#  - CARA_ELEM
-#  - GROUP_MA_BETON
-#  - DEFI_CABLE
-#  - TYPE_ANCRAGE
-#  - TENSION_INIT
-#  - RECUL_ANCRAGE
-#  - RELAXATION
-#  - CONE
-#      RAYON
-#      LONGUEUR
-#      PRESENT          OUI ou NON deux fois
-#  - TITRE
-#  - INFO               1 / 2
-#
-# ===========================================================================
-
-
-
-def defi_cable_bp_ops(self,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,GROUP_MA_BETON,
-                           DEFI_CABLE,TYPE_ANCRAGE,TENSION_INIT,RECUL_ANCRAGE,
-                           RELAXATION,CONE,TITRE,INFO,**args):
-
-  """
-     Ecriture de la macro DEFI_CABLE_BP
-  """
-  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
-  DEFI_GROUP      = self.get_cmd('DEFI_GROUP')
-  IMPR_RESU       = self.get_cmd('IMPR_RESU')
-  DEFI_CABLE_OP   = self.get_cmd('DEFI_CABLE_OP')
-  RECU_TABLE      = self.get_cmd('RECU_TABLE')
-  IMPR_TABLE      = self.get_cmd('IMPR_TABLE')
-  IMPR_CO         = self.get_cmd('IMPR_CO')
-
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  # Le concept sortant (de type char_meca) est nomme CHCABLE dans 
-  # le contexte de la macro
-
-  self.DeclareOut('__DC',self.sd)
-
-  # ---------------------------------------------------------------------------- #
-  #                  Début de la Macro :
-
-  motscles={}
-
-  # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE"
-
-  if CONE:
-    dCONE=CONE[0].cree_dict_valeurs(CONE[0].mc_liste)
-    for i in dCONE.keys():
-      if dCONE[i]==None : del dCONE[i]
-
-    RAYON    = dCONE['RAYON']
-    LONGUEUR = dCONE['LONGUEUR']
-    
-    motscles['CONE']=[]
-    motscles['CONE'].append( dCONE )
-
-
-  # VERIFICATION QUE LE MAILLAGE EST COHERENT AVEC LE MODELE
-
-    __MAIL = aster.getvectjev( string.ljust(MODELE.nom,8) + '.MODELE    .NOMA        ' )
-    if string.ljust(MAILLAGE.nom,8) != __MAIL[0] :
-      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
-
-    __NOM = '_AN_'
-    __LGNO = MAILLAGE.LIST_GROUP_NO()
-    __LGN1 = []
-    for i in __LGNO : 
-      __LGN1.append( i[0][:len(__NOM)] )
-  
-    __NB  = __LGN1.count(__NOM)
-
-# FIN RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "CONE"
-
-
-  # RECUPERATION DES INFOS DONNEES PAR LE MOT-CLE "DEFI_CABLE"
-
-  dDEFI_CABLE=[]
-  for j in DEFI_CABLE :
-      dDEFI_CABLE.append(j.cree_dict_valeurs(j.mc_liste))
-      for i in dDEFI_CABLE[-1].keys():
-          if dDEFI_CABLE[-1][i]==None : del dDEFI_CABLE[-1][i]
-
-
-  # BOUCLE SUR LES FACTEURS DU MOT-CLE "DEFI_CABLE"
-
-  motscles['DEFI_CABLE']=[]
-
-  for i in dDEFI_CABLE:
-    
-    # CAS OU L'ON A DEFINI LE MOT-CLE "CONE"
-    if CONE:
-
-      # CREATION DU PREMIER TUNNEL
-    
-      if dCONE['PRESENT'][0] == 'OUI':
-        __NB = __NB + 1
-        __NOM1 = __NOM + str( int(__NB) )
-
-        motscle2={}
-        motscle2['CREA_GROUP_NO']=[]
-
-        if i.has_key('GROUP_MA') == 1: 
-          __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: 
-          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
-        if i.has_key('NOEUD_ANCRAGE') == 1: 
-          __PC1 = i['NOEUD_ANCRAGE'][0]
-          motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1
-
-
-        DEFI_GROUP( reuse=MAILLAGE,
-                    MAILLAGE=MAILLAGE,
-                    INFO=INFO,
-                    ALARME='NON',
-                    **motscle2
-                   ) ;
-    
-      # CREATION DU DEUXIEME TUNNEL
-    
-      if dCONE['PRESENT'][1] == 'OUI':
-        __NB = __NB + 1
-        __NOM2 = __NOM + str( int(__NB) )
-
-        motscle2={}
-        motscle2['CREA_GROUP_NO']=[]
-
-        if i.has_key('GROUP_MA') == 1: 
-          __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: 
-          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
-        if i.has_key('NOEUD_ANCRAGE') == 1: 
-          __PC1 = i['NOEUD_ANCRAGE'][1]
-          motscle2['CREA_GROUP_NO'][0]['NOEUD_ORIG'] = __PC1
-
-        DEFI_GROUP( reuse=MAILLAGE,
-                    MAILLAGE=MAILLAGE,
-                    INFO=INFO,
-                    ALARME='NON',
-                    **motscle2
-                   ) ;
-
-  
-      # CREATION DES NOUVEAUX FACTEURS DU MOT-CLE "DEFI_CABLE" POUR DEFI_CABLE_BP
-  
-      if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'OUI':
-        if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
-                                            GROUP_NO_FUT=( __NOM1,__NOM2, ), ), )
-        if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
-                                            GROUP_NO_FUT=( __NOM1,__NOM2, ), ), )
-  
-      if dCONE['PRESENT'][0] == 'OUI' and dCONE['PRESENT'][1] == 'NON':
-        if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
-                                            GROUP_NO_FUT=( __NOM1, ), ), )
-        if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
-                                            GROUP_NO_FUT=( __NOM1, ), ), )
-  
-      if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'OUI':
-        if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'],
-                                            GROUP_NO_FUT=( __NOM2, ), ), )
-        if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'],
-                                            GROUP_NO_FUT=( __NOM2, ), ), )
-      if dCONE['PRESENT'][0] == 'NON' and dCONE['PRESENT'][1] == 'NON':
-        if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
-        if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: 
-          motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                            NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
-
-
-    # CAS OU L'ON A PAS DEFINI LE MOT-CLE "CONE"
-    else:
-      if i.has_key('GROUP_MA') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: 
-        motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                          GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
-
-      if i.has_key('GROUP_MA') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: 
-        motscles['DEFI_CABLE'].append( _F(GROUP_MA=i['GROUP_MA'],
-                                          NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
-
-      if i.has_key('MAILLE') == 1 and i.has_key('GROUP_NO_ANCRAGE') == 1: 
-        motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'],
-                                          GROUP_NO_ANCRAGE=i['GROUP_NO_ANCRAGE'], ), )
-
-      if i.has_key('MAILLE') == 1 and i.has_key('NOEUD_ANCRAGE') == 1: 
-        motscles['DEFI_CABLE'].append( _F(MAILLE=i['MAILLE'],
-                                          NOEUD_ANCRAGE=i['NOEUD_ANCRAGE'], ), )
-
-
-# FIN BOUCLE sur i in DEFI_CABLE
-
-
-  # LANCEMENT DE DEFI_CABLE_BP
-
-  if RELAXATION:
-    dRelaxation=RELAXATION[0].cree_dict_valeurs(RELAXATION[0].mc_liste)
-    for i in dRelaxation.keys():
-      if dRelaxation[i]==None : del dRelaxation[i]
-
-    __DC=DEFI_CABLE_OP(MODELE=MODELE,
-                       CHAM_MATER=CHAM_MATER,
-                       CARA_ELEM=CARA_ELEM,
-                       GROUP_MA_BETON=GROUP_MA_BETON,
-                       TYPE_ANCRAGE=TYPE_ANCRAGE,
-                       TENSION_INIT=TENSION_INIT,
-                       RECUL_ANCRAGE=RECUL_ANCRAGE,
-                       RELAXATION=dRelaxation,
-                       INFO=INFO,
-                       **motscles
-                       );
-
-  else:
-
-    __DC=DEFI_CABLE_OP(MODELE=MODELE,
-                       CHAM_MATER=CHAM_MATER,
-                       CARA_ELEM=CARA_ELEM,
-                       GROUP_MA_BETON=GROUP_MA_BETON,
-                       TYPE_ANCRAGE=TYPE_ANCRAGE,
-                       TENSION_INIT=TENSION_INIT,
-                       RECUL_ANCRAGE=RECUL_ANCRAGE,
-                       INFO=INFO,
-                       **motscles
-                       );
-
-#   __TCAB = RECU_TABLE(CO=__DC,NOM_TABLE='CABLE_BP');
-#   IMPR_TABLE(TABLE=__TCAB);
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/defi_part_feti_ops.py b/Aster/Cata/cataSTA81/Macro/defi_part_feti_ops.py
deleted file mode 100644 (file)
index 9e44661..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-#@ MODIF defi_part_feti_ops Macro  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
-# -*- coding: iso-8859-1 -*-
-#            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
-
-
-# ===========================================================================
-#           CORPS DE LA MACRO "DEFI_PART_FETI"
-#           -------------------------------------
-# USAGE :
-#  MAILLAGE        maillage a partitionner
-#  MODELE          modele (facultatif)
-#  NB_PART         nb de sous-domaines
-#  EXCIT           liste des chargements
-#  METHODE         PMETIS, KMETIS ou AUTRE
-#  LOGICIEL        si AUTRE alors on attend un chemin complet vers executable
-#  NOM_GROUP_MA    Un nom de base pour les group_ma contenant les SD
-#  INFO            1,2
-#  
-# ===========================================================================
-# script PYTHON : lancement de DEFI_PART_PA_OPS et de DEFI_PART_OPS
-
-
-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
-  
-  # 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)
-
-  # Test sur le nombre de caractères de NOM_GROUP_MA
-  if ( len(NOM_GROUP_MA)+len(str(NB_PART)) > 7 ):
-    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 = []
-  for i in MAILLAGE.LIST_GROUP_MA():
-    _lst.append( string.strip(i[0]) )
-  for i in range(NB_PART):
-    if ( NOM_GROUP_MA+str(i) in _lst ):
-      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 :
-
-  # 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
-  _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 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 }
-  
-      # 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
-  
-      _SDFETI=DEFI_PART_OPS(NOM='SDD',
-                            MODELE=args['MODELE'],
-                            INFO=1,
-                            **motscle2
-                            );
-    else:
-      _SDFETI=None
-  
-  else:
-    _SDFETI=None
-
-
-  # Fin :
-
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/fiabilite_fichier.py b/Aster/Cata/cataSTA81/Macro/fiabilite_fichier.py
deleted file mode 100644 (file)
index 1462a5e..0000000
+++ /dev/null
@@ -1,335 +0,0 @@
-#@ MODIF fiabilite_fichier Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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
-#
-class fiabilite_fichier :
-#
-  """ Classe des fichiers de données des logiciels fiabilistes
-      Cette classe a été mise au point pour le couplage entre
-      Code_ASTER et MEFISTO, mais pourrait servir ailleurs.
-  """
-#
-#
-#====
-# 1. Le constructeur
-#====
-#
-#
-  def __init__ ( self, jdc, Rep_Calc_LOGICIEL_global, nomfic, info = 1 ) :
-#
-#   jdc : le jeu de commandes en cours de traitement
-#
-    self.jdc = jdc
-#
-#   Rep_Calc_LOGICIEL_global : le répertoire d'exécution du logiciel de fiabilité
-#
-    self.Rep_Calc_LOGICIEL_global = Rep_Calc_LOGICIEL_global
-#
-#   nomfic : nom local du fichier à créer
-#
-    self.nomfic = nomfic
-#
-#   messages_erreur : messages d'erreur
-#
-    self.messages_erreur = { 0 : "Tout va bien",
-                             1 : "==> Ce fichier est inconnu.",
-                             2 : "==> Ce type d'ouverture est inconnu.",
-                            10 : "==> Problème à l'ouverture.",
-                            11 : "==> Problème à la fermeture.",
-                            20 : "==> Problème à l'impression." }
-#
-#   info : niveau d'information au sens ASTER
-#
-    self.info = info
-#
-#   ligne_sep : ligne de séparation
-#
-    self.ligne_sep = "========================================================="
-    self.ligne_commentaire = "#" + self.ligne_sep + "\n"
-#
-    if info >= 2 :
-      print "Création du fichier : "+self.nomfic
-#
-#====
-# 2. Ouverture du fichier
-#====
-#
-  def Ouvre_Fichier ( self, type_ouvr ) :
-#
-# 2.0. ==> Préalables
-#
-    """
-    Ouvre le fichier en lecture ou écriture.
-    0 : tout s'est bien passé
-    1 : on veut ouvrir en lecture un fichier qui n'existe pas
-    2 : le mode d'ouverture est inconnu
-   10 : impossible d'ouvrir
-    """
-#
-    import os
-#
-# 2.1. ==> Le nom global du fichier
-#
-    self.nomfic_global = os.path.join(self.Rep_Calc_LOGICIEL_global,self.nomfic)
-#
-# 2.2. ==> Controles
-#
-    erreur = 0
-#
-    if ( type_ouvr == "w" or type_ouvr == "r" ) :
-#
-      if ( type_ouvr == "r" ) :
-        if not os.path.isfile(self.nomfic_global) :
-          erreur = 1          
-
-    else :
-#
-      self.jdc.cr.warn("Type d'ouverture : "+type_ouvr)
-      erreur = 2
-#
-# 2.3. ==> Ouverture vraie
-#
-    if not erreur :
-#
-      erreur_partiel = [0]
-      try :
-        self.fic = open( self.nomfic_global, type_ouvr )
-      except os.error,erreur_partiel :
-        self.jdc.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1])
-        erreur = 10
-#
-# 2.4. ==> C'est fini
-#
-    if erreur :
-      self.jdc.cr.warn("Fichier : "+self.nomfic)
-      self.jdc.cr.warn(self.messages_erreur[erreur])
-#
-    return erreur
-#
-#====
-# 3. Fermeture du fichier
-#====
-#
-  def Ferme_Fichier ( self ) :
-#
-# 3.0. ==> Préalables
-#
-    """
-    Ferme le fichier.
-    0 : tout s'est bien passé
-   20 : impossible d'imprimer
-    """
-#
-    import os
-#
-# 3.1. ==> Controles
-#
-    erreur = 0
-#
-    if not os.path.isfile(self.nomfic_global) :
-      erreur = 1          
-#
-# 3.2. ==> Fermeture vraie
-#
-    if not erreur :
-#
-      erreur_partiel = [0]
-      try :
-        self.fic.close( )
-      except os.error,erreur_partiel :
-        self.jdc.cr.warn("Code d'erreur de close : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1])
-        erreur = 11
-#
-# 3.3. ==> C'est fini
-#
-    if erreur :
-      self.jdc.cr.warn("Fichier : "+self.nomfic)
-      self.jdc.cr.warn(self.messages_erreur[erreur])
-#
-    return erreur
-#
-#====
-# 4. Impression du contenu du fichier
-#====
-#
-  def Imprime_Fichier ( self ) :
-#
-# 4.0. ==> Préalables
-#
-    """
-    Imprime le fichier.
-    0 : tout s'est bien passé
-   20 : impossible d'imprimer
-    """
-#
-# 4.1. ==> Lecture
-#
-    erreur = self.Ouvre_Fichier ( "r" )         
-    if not erreur :
-      les_lignes = self.fic.readlines()
-      erreur = self.Ferme_Fichier ( )         
-#
-# 4.2. ==> Impression
-#
-    if not erreur :
-#
-      print "\n"+self.ligne_sep
-      print "Contenu du fichier " + self.nomfic," :"
-      for ligne in les_lignes :
-        print ligne[:-1]
-      print self.ligne_sep+"\n"
-#
-# 4.4. ==> C'est fini
-#
-    if erreur :
-      erreur = 20
-      self.jdc.cr.warn("Fichier : "+self.nomfic)
-      self.jdc.cr.warn(self.messages_erreur[erreur])
-#
-    return erreur
-#
-#====
-# 5. Ecriture de lignes de commentaires
-#====
-#
-  def Ecrit_Commentaires ( self, comm ) :
-#
-    """
-    Liste = commentaires à écrire
-    Soit c'est une chaine qu'on écrit sur une ligne ;
-    Soit c'est une liste, qu'on écrit à raison de une par ligne.
-    Remarque : cela suppose que le fichier est ouvert en écriture
-    """
-#
-    if type(comm) == type([ ]) :
-      Liste = comm
-    else :
-      Liste = [comm]
-#
-    for ligne in Liste :
-      self.fic.write("# "+str(ligne)+"\n")
-#
-#====
-# 6. Ecriture de lignes de titres
-#====
-#
-  def Ecrit_Titre ( self, comm ) :
-#
-    """
-    Liste = commentaires à écrire, encadrés par des séparateurs
-    Soit c'est une chaine qu'on écrit sur une ligne ;
-    Soit c'est une liste, qu'on écrit à raison de une par ligne.
-    Remarque : cela suppose que le fichier est ouvert en écriture
-    """
-#
-    self.fic.write(self.ligne_commentaire)
-    self.Ecrit_Commentaires(comm)
-    self.fic.write(self.ligne_commentaire)
-#
-#====
-# 7. Ecriture d'une ligne de valeurs
-#====
-#
-  def Ecrit_Valeurs ( self, val ) :
-#
-    """
-    Liste = liste des valeurs à écrire, représenatn une ligne
-    Remarque : cela suppose que le fichier est ouvert en écriture
-    """
-#
-    if type(val) == type([ ]) :
-      ligne = " "
-      for aux in val :
-        ligne = ligne + " " + str(aux)
-    else :
-      ligne = str(val)
-#
-    self.fic.write(ligne+"\n")
-#
-#
-#=======================================================================================
-#=======================================================================================
-
-
-#
-#
-if __name__ == "__main__" :
-#
-  import os
-  import sys
-  import tempfile
-#
-# 1. ==> Préalable
-#
-  Rep_Calc_LOGICIEL_global = tempfile.mktemp()
-  os.mkdir(Rep_Calc_LOGICIEL_global)
-#
-  jdc = None
-#
-# 2. ==> Création de la classe
-#
-  nomfic = "dataGrad"
-  fic = fiabilite_fichier ( jdc, Rep_Calc_LOGICIEL_global , nomfic )
-#
-# 3. ==> Ouverture du fichier
-#
-  erreur = fic.Ouvre_Fichier ( "w" )
-#
-# 4. ==> Remplissage du fichier
-#
-  if not erreur :
-    aux = ["Titre 1", "Titre 2"]
-    fic.Ecrit_Titre (aux)
-    aux = ["Ligne 1", "Ligne 2"]
-    fic.Ecrit_Commentaires (aux)
-    aux = "Ligne en forme de chaine"
-    fic.Ecrit_Commentaires (aux)
-    aux = 1789.1792
-    fic.Ecrit_Commentaires (aux)
-    aux = [1, 0.0]
-    fic.Ecrit_Valeurs (aux)
-    aux = 1958.
-    fic.Ecrit_Valeurs (aux)
-#
-# 5. ==> Fermeture du fichier
-#
-  if not erreur :
-    erreur = fic.Ferme_Fichier ( )
-#
-# 4. ==> Impression du fichier
-#
-  if not erreur :
-    erreur = fic.Imprime_Fichier ( )
-#
-# 4. ==> La fin
-#
-  Liste = os.listdir(Rep_Calc_LOGICIEL_global)
-#
-  for nomfic in Liste :
-    fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic)
-    os.chmod  (fic_total,0755)
-    os.remove (fic_total)
-  os.rmdir (Rep_Calc_LOGICIEL_global)
-#
-  if erreur :
-    mess = "Erreur " + str(erreur)
-  else :
-    mess = "Fin normale."
-  sys.exit(mess)
diff --git a/Aster/Cata/cataSTA81/Macro/fiabilite_mefisto.py b/Aster/Cata/cataSTA81/Macro/fiabilite_mefisto.py
deleted file mode 100644 (file)
index b74d7e5..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-#@ MODIF fiabilite_mefisto Macro  DATE 04/10/2005   AUTEUR REZETTE C.REZETTE 
-# -*- coding: iso-8859-1 -*-
-#            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
-#
-def fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global,
-                        INFO, VERSION,
-                        SEUIL, SEUIL_TYPE,
-                        VARIABLE,
-                        valeurs_lois,
-                        **args ) :
-#
-#    valeurs_lois est un dictionnaire indexé sur les variables.
-#    Chaque case, valeurs_lois[m], est un dictionnaire contenant :
-#    d["v_moy_physique"] = valeur moyenne physique
-#    d["v_moy_loi"] = valeur moyenne de la loi
-#    d["v_min_loi"] = valeur minimale de la loi
-#    d["v_max_loi"] = valeur maximale de la loi
-#    d["sigma_loi"] = ecart type de la loi
-#
-#    args est le dictionnaire des arguments optionnels
-#    args.keys() est la liste des mots-clés
-#    args.keys()[0] est la premiere valeur de cette liste
-#    args.keys()[1:] est la liste des valeurs suivantes dans cette liste
-#    args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante.
-#
-  """ Ecriture des données spécifiques à MEFISTO. """
-#
-  from Macro import fiabilite_fichier
-  import os
-  import string
-  import Numeric
-  from Utilitai.Utmess import UTMESS
-#
-#____________________________________________________________________
-#
-# 1. Préalables
-#____________________________________________________________________
-#
-#
-  messages_erreur = { 0 : "Tout va bien",
-                      1 : "Fichier inconnu.",
-                      2 : "Problème d'ouverture de fichier.",
-                     10 : "Problème d'ouverture de fichier.",
-                     11 : "Problème de fermeture de fichier.",
-                     20 : "Problème d'impression de fichier.",
-                     50 : "Donnée inacceptable.",
-                    100 : "Erreur." }
-#
-  trad_oui_non = { "OUI" : 1,
-                   "NON" : 0 }
-#
-  erreur = 0
-#
-  while not erreur :
-#
-#____________________________________________________________________
-#
-# 2. Les fichiers pour le logiciel de fiabilité
-#    Ils sont créés dans le répertoire d'exécution du logiciel de fiabilité, avec leurs noms officiels
-#____________________________________________________________________
-#
-#
-    fic_dataMenu  = "dataMenu"
-    fic_dataStoch = "dataStoch"
-    fic_dataNum   = "dataNum"
-    fic_dataGrad  = "dataGrad"
-#
-#____________________________________________________________________
-#
-# 3. Construction du fichier 'dataMenu'
-#____________________________________________________________________
-#
-# 3.1 ==> Ouverture du fichier
-#
-    f_menu = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataMenu, INFO )
-    erreur = f_menu.Ouvre_Fichier ( "w" )
-    if erreur :
-      break
-#
-# 3.2 ==> Ecriture des données nécessaires
-#
-    f_menu.Ecrit_Titre ("MENU DU PROGRAMME MEFISTO")
-    f_menu.Ecrit_Titre ("1 <=> OUI et 0 <=> NON (entiers)")
-#
-    f_menu.Ecrit_Titre ("Recherche du point de conception")
-    aux = trad_oui_non[args["RECH_PT_CONCEPT"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("First Order Reliability Analyses")
-    aux = trad_oui_non[args["METHODE_FORM"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("Second Order Reliability Analyses")
-    aux = trad_oui_non[args["METHODE_SORM"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("Importance Sampling Analyses")
-    aux = trad_oui_non[args["TIRAGE_IMPORTANCE"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("Optimality Test (1) : Hessian Test")
-    aux = trad_oui_non[args["T_HESSIEN"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("Optimality Test (2) : Sphere Test")
-    aux = trad_oui_non[args["T_SPHERE"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("Optimality Test (3) : Strong Max Test")
-    aux = trad_oui_non[args["T_MAXIMUM_FORT"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("Experiment Plan")
-    aux = trad_oui_non[args["PLAN_EXPERIENCE"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-    f_menu.Ecrit_Titre ("Polynomial Taylor Approximation (order 2)")
-    aux = trad_oui_non[args["POLYNOME_TAYLOR"]]
-    f_menu.Ecrit_Valeurs (aux)
-#
-# 3.3 ==> Fermeture du fichier
-#
-    erreur = f_menu.Ferme_Fichier ( )
-    if erreur :
-      break
-#
-    if INFO >= 2 :
-      erreur = f_menu.Imprime_Fichier ( )
-      if erreur :
-        break
-#
-#____________________________________________________________________
-#
-# 4. Construction du fichier "dataStoch"
-#____________________________________________________________________
-#
-# 4.1 ==> Ouverture du fichier
-#
-    f_stoch = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataStoch, INFO )
-    erreur = f_stoch.Ouvre_Fichier ( "w" )
-    if erreur :
-      break
-#
-# 4.2 ==> Nombre d'occurence de VARIABLE
-#
-    nb_occu_variable = len(VARIABLE)
-#
-# 4.3 ==> Ecriture des données nécessaires
-#
-    f_stoch.Ecrit_Titre ("Code name")
-    aux=string.replace(VERSION,"_",".")
-    aux=string.replace(aux,"N","n")
-    aux=string.replace(aux,"V","v")
-    f_stoch.Ecrit_Valeurs ( "aster_" + aux )
-#
-    aux = [ "Gradients evaluated by the code" ]
-    aux.append("1 : Au moins 1 ; 0 : aucun")
-    f_stoch.Ecrit_Titre (aux)
-    gradient = 0
-    for m in VARIABLE :
-      if m["GRADIENT"] == "OUI" : gradient = 1
-    f_stoch.Ecrit_Valeurs (gradient)
-#
-    f_stoch.Ecrit_Titre ("Variates number")
-    f_stoch.Ecrit_Valeurs ( nb_occu_variable )
-#
-    aux = [ "Stochastic Variates" ]
-    aux.append("1: Uniforme (min, max)")
-    aux.append("2: Normal (mean, std dev)")
-    aux.append("3: LogNormal (mean, std dev, min)")
-    aux.append("4: Normal Truncated (mean, std dev, min, max)")
-    f_stoch.Ecrit_Titre (aux)
-#
-    for m in VARIABLE :
-#
-      d = valeurs_lois[m]
-      if m["LOI"] == "UNIFORME" :
-        f_stoch.Ecrit_Valeurs ( [ m["NOM"],  1 , d["v_min_loi"] , d["v_max_loi"] ] )
-      elif m["LOI"] == "NORMALE" :
-        f_stoch.Ecrit_Valeurs ( [ m["NOM"],  2 , d["v_moy_loi"] , d["sigma_loi"] ] )
-      elif m["LOI"] == "LOGNORMALE" :
-        f_stoch.Ecrit_Valeurs ( [ m["NOM"],  3 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] ] )
-      elif m["LOI"] == "NORMALE_TRONQUEE" :
-        f_stoch.Ecrit_Valeurs ( [ m["NOM"],  4 , d["v_moy_loi"] , d["sigma_loi"] , d["v_min_loi"] , d["v_max_loi"] ] )
-      else :
-        erreur = 50
-#
-    if erreur :
-      break
-#
-    f_stoch.Ecrit_Titre ("Initial Points")
-    for m in VARIABLE :
-      if m["POINT_INI"] is None :
-        aux = valeurs_lois[m]["v_moy_physique"]
-      else :
-        aux = m["POINT_INI"]
-      f_stoch.Ecrit_Valeurs ( aux )
-#
-    f_stoch.Ecrit_Titre ("Reference Points")
-    for m in VARIABLE :
-      if m["POINT_REF"] is None :
-        aux = valeurs_lois[m]["v_moy_physique"]
-      else :
-        aux = m["POINT_REF"]
-      f_stoch.Ecrit_Valeurs ( aux )
-#
-    f_stoch.Ecrit_Titre ("Design Points")
-    for m in VARIABLE :
-      if args["RECH_PT_CONCEPT"] == "OUI" :
-        aux = 1792.
-      elif m["POINT_CONCEPT"] is None :
-        aux = valeurs_lois[m]["v_moy_physique"]
-      else :
-        aux = m["POINT_CONCEPT"]
-      f_stoch.Ecrit_Valeurs ( aux )
-#
-    f_stoch.Ecrit_Titre ("Correlation matrix fictive")
-#    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" :
-      aux = SEUIL
-    else :
-      aux = -SEUIL
-    f_stoch.Ecrit_Valeurs ( aux )
-#
-# 4.4 ==> Fermeture du fichier
-#
-    erreur = f_stoch.Ferme_Fichier ( )
-    if erreur :
-      break
-#
-    if INFO >= 2 :
-      erreur = f_stoch.Imprime_Fichier ( )
-      if erreur :
-        break
-#
-#____________________________________________________________________
-#
-# 5. Construction du fichier 'dataNum'
-#____________________________________________________________________
-#
-# 5.1 ==> Ouverture du fichier
-#
-    f_num = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataNum, INFO )
-    erreur = f_num.Ouvre_Fichier ( "w" )
-    if erreur :
-      break
-#
-# 5.2 ==> Ecriture des données nécessaires
-#
-    f_num.Ecrit_Titre ("Parameters : EpsU, EpsG, Tau, Omega, iterMax")
-    if args["RECH_PT_CONCEPT"] == "OUI" :
-      f_num.Ecrit_Valeurs (args["EPSILON_U"])
-      f_num.Ecrit_Valeurs (args["EPSILON_G"])
-      f_num.Ecrit_Valeurs (args["TAU"])
-      f_num.Ecrit_Valeurs (args["OMEGA"])
-      f_num.Ecrit_Valeurs (args["ITER_MAX"])
-    else :
-      aux = 0.1848
-      for k in range(5) :
-        f_num.Ecrit_Valeurs (aux)
-#
-    f_num.Ecrit_Titre ("Parameters : hgrad, hhess")
-    f_num.Ecrit_Valeurs (args["HGRAD"])
-    f_num.Ecrit_Valeurs (args["HHESS"])
-#
-    aux = [ "Parameter Optimality Test(sphere)" ]
-    aux.append("1: Parametric Method (Point Number in each direction)")
-    aux.append("2: Gaussian Method (Total Point Number)")
-    aux.append("3: Rejection Method (Total Point Number)")
-    f_num.Ecrit_Titre (aux)
-#
-    if args["T_SPHERE"] == "OUI" :
-#
-      if args["METHODE_TEST"] == "PARAMETRIQUE" :
-        aux1 = 1
-      elif args["METHODE_TEST"] == "GAUSSIENNE" :
-        aux1 = 2
-      elif args["METHODE_TEST"] == "REJECTION" :
-        aux1 = 3
-      else :
-        self.cr.warn("METHODE DE TEST : "+args["METHODE_TEST"])
-        erreur = 50
-        break
-#
-      aux2 = args["NB_POINT"]
-#
-    else :
-#
-#     remarque : il faut mettre une valeur plausible en aux1, sinon plantage violent ...
-      aux1 = 1
-      aux2 = 1789
-#
-    f_num.Ecrit_Valeurs ( [ aux1 , aux2 ] )
-#
-    aux = [ "Parameters : alpha, beta" ]
-    aux.append("alpha: common net")
-    aux.append("beta: extreme net")
-    f_num.Ecrit_Titre (aux)
-    if args["PLAN_EXPERIENCE"] == "OUI" :
-      aux1 = args["ALPHA"]
-      aux2 = args["BETA"]
-    else :
-      aux1 = 1789.0
-      aux2 = 1789.0
-    f_num.Ecrit_Valeurs ( aux1 )
-    f_num.Ecrit_Valeurs ( aux2 )
-#
-    f_num.Ecrit_Titre ("Parameters Strong Max Test : cosLim, dProb")
-    if args["T_MAXIMUM_FORT"] == "OUI" :
-      aux1 = args["COS_LIM"]
-      aux2 = args["DPROB"]
-    else :
-      aux1 = 0.1789
-      aux2 = 0.1789
-    f_num.Ecrit_Valeurs ( aux1 )
-    f_num.Ecrit_Valeurs ( aux2 )
-#
-    f_num.Ecrit_Titre ("Parameter Importance Samplings : Simulation Number")
-    if args["TIRAGE_IMPORTANCE"] == "OUI" :
-      aux = args["NB_SIMULATION"]
-    else :
-      aux = 1945
-    f_num.Ecrit_Valeurs ( aux )
-#
-# 5.3 ==> Fermeture du fichier
-#
-    erreur = f_num.Ferme_Fichier ( )
-    if erreur :
-      break
-#
-    if INFO >= 2 :
-      erreur = f_num.Imprime_Fichier ( )
-      if erreur :
-        break
-#
-#____________________________________________________________________
-#
-# 6. Construction du fichier 'dataGrad'
-#____________________________________________________________________
-#
-# 6.1 ==> Création du fichier
-#
-    f_grad = fiabilite_fichier.fiabilite_fichier ( self, Rep_Calc_LOGICIEL_global, fic_dataGrad, INFO )
-    erreur = f_grad.Ouvre_Fichier ( "w" )
-    if erreur :
-      break
-#
-# 6.2 ==> Ecriture des données nécessaires
-#
-    f_grad.Ecrit_Titre ("Commentaires")
-#
-    for m in VARIABLE :
-      f_grad.Ecrit_Commentaires (m["NOM"])
-      if m["GRADIENT"] == "OUI" :
-        gradient = 1
-        increment = 0.0
-      else :
-        gradient = 0
-        increment = m["INCREMENT"]
-      aux = [gradient,increment]
-      f_grad.Ecrit_Valeurs (aux)
-#
-# 6.3 ==> Fermeture du fichier
-#
-    erreur = f_grad.Ferme_Fichier ( )
-    if erreur :
-      break
-#
-    if INFO >= 2 :
-      erreur = f_grad.Imprime_Fichier ( )
-      if erreur :
-        break
-#
-#____________________________________________________________________
-#
-# 7. C'est fini !
-#____________________________________________________________________
-#
-    break
-#
-  if erreur :
-    if not messages_erreur.has_key(erreur) :
-      erreur = 100
-    self.cr.warn(messages_erreur[erreur])
-    erreur = 11
-#
-  return erreur
-#
-##########################  Fin de la fonction##################################
-#
-##########################   Auto-test##################################
-#
-if __name__ == "__main__" :
-#
-  import os
-  import sys
-  import tempfile
-#
-  Rep_Calc_LOGICIEL_global = tempfile.mktemp()
-  os.mkdir(Rep_Calc_LOGICIEL_global)
-#
-  INFO = 2
-  VERSION = "V3_2"
-  SEUIL = 1789.
-  SEUIL_TYPE = "MAXIMUM"
-  VARIABLE = []
-  args = {}
-  valeurs = {}
-#
-  erreur = fiabilite_mefisto ( None, Rep_Calc_LOGICIEL_global,
-                        INFO, VERSION,
-                        SEUIL, SEUIL_TYPE,
-                        VARIABLE,
-                        valeurs,
-                        **args )
-###  print "Erreur = ", erreur
-  Liste = os.listdir(Rep_Calc_LOGICIEL_global)
-#
-  for nomfic in Liste :
-    fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic)
-    os.chmod  (fic_total,0755)
-    os.remove (fic_total)
-  os.rmdir (Rep_Calc_LOGICIEL_global)
-#
-  sys.exit("blabla")
diff --git a/Aster/Cata/cataSTA81/Macro/gene_vari_alea_ops.py b/Aster/Cata/cataSTA81/Macro/gene_vari_alea_ops.py
deleted file mode 100644 (file)
index 829a93e..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#@ MODIF gene_vari_alea_ops Macro  DATE 28/02/2006   AUTEUR VABHHTS J.PELLET 
-# -*- coding: iso-8859-1 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-from math import sqrt,log,exp,pi,atan2,tan
-
-def gene_vari_alea_ops(self,**args):
-  self.set_icmd(1)
-  return 0
-
-def gene_vari_alea_init(self,d):
-  from Utilitai.Utmess import UTMESS
-  a     =self.etape['BORNE_INF']
-  moyen =self.etape['VALE_MOY' ]
-  TYPE  =self.etape['TYPE']
-  if self['INIT_ALEA']!=None :
-     jump =self.etape['INIT_ALEA' ]
-     self.iniran(jump)
-  if   TYPE=='EXP_TRONQUEE' :
-     b     =self.etape['BORNE_SUP']
-     if (a>=b) :
-         message=' : il faut BORNE_INF < BORNE_SUP \n'
-         message=message+'  BORNE_INF = '+str(a)+'\n'
-         message=message+'  BORNE_SUP = '+str(b)+'\n'
-         UTMESS('F','GENE_VARI_ALEA',message)
-     elif (moyen<=a)or(moyen>=b) :
-         message=' : VALE_MOY trop grand ou trop petit\n'
-         message=message+'  BORNE_INF = '+str(a)+'\n'
-         message=message+'  VALE_MOY  = '+str(moyen)+'\n'
-         message=message+'  BORNE_SUP = '+str(b)+'\n'
-         UTMESS('F','GENE_VARI_ALEA',message)
-     k=1./(moyen-a)
-     if (exp(-b*k)<1.E-12) :
-         message=' : BORNE SUP très grande \n'
-         message=message+'pb précision possible, vérifiez'+'\n'
-         message=message+'la distribution des valeurs générées \n'
-         UTMESS('F','GENE_VARI_ALEA',message)
-     # résolution par point fixe
-     eps   =1.E-4
-     nitmax=100000
-     test  =0.
-     while abs((test-k)/k)>eps :
-         test = k
-         k    = 1./(moyen-(a*exp(-a*k) - b*exp(-b*k))/(exp(-a*k) - exp(-b*k)))
-     # génération de la variable aléatoire
-     alpha = exp(-a*k) - exp(-b*k)
-     self.sd.valeur=-( log(exp(-a*k)-alpha*self.getran()[0] ) ) /k
-  elif TYPE=='EXPONENTIELLE' :
-     if (moyen<=a) :
-        message=' : on doit avoir : VALE_MOY > BORNE_INF \n'
-        message=message+'  VALE_MOY  = '+str(moyen)+'\n'
-        message=message+'  BORNE_INF = '+str(a)+'\n'
-        UTMESS('F','GENE_VARI_ALEA',message)
-     v = moyen-a
-     u=self.getran()[0]
-     x = -log(1-u)
-     self.sd.valeur=a + v*x
-  elif TYPE=='GAMMA'         :
-     delta =self.etape['COEF_VAR' ]
-     if (moyen<=a) :
-        message=' : on doit avoir : VALE_MOY > BORNE_INF \n'
-        message=message+'  VALE_MOY  = '+str(moyen)+'\n'
-        message=message+'  BORNE_INF = '+str(a)+'\n'
-        UTMESS('F','GENE_VARI_ALEA',message)
-     v = moyen-a
-     alpha = 1./(delta**2)
-     if (alpha<=1.) :
-        message=' : erreur : ALPHA < 1\n'
-        UTMESS('F','GENE_VARI_ALEA',message)
-     gamma2 = alpha-1.
-     gamm1  = 1./gamma2
-     beta   = sqrt(2.*alpha-1.)
-     beta2  = 1./(beta**2)
-     f0     = 0.5+(1./pi)*atan2(-gamma2/beta,1.)
-     c1     = 1.-f0
-     c2     = f0-0.5
-     vref   = 0.
-     vv     = -1.
-#
-     while (-vv>vref) :
-        u=self.getran()[0]
-        gamdev = beta*tan(pi*(u*c1+c2))+gamma2
-        unif=self.getran()[0]
-        if unif<0. :
-           message=' : erreur : unif < 0\n'
-           UTMESS('F','GENE_VARI_ALEA',message)
-        vv= -log(unif)
-        vref = log(1+beta2*((gamdev-gamma2)**2))+gamma2*log(gamdev*gamm1)-gamdev+gamma2
-#
-     if vv<=0. :
-        message=' : erreur : GAMDEV(ALPHA) < 0\n'
-        UTMESS('F','GENE_VARI_ALEA',message)
-     self.sd.valeur = a + v*(delta**2)*gamdev
diff --git a/Aster/Cata/cataSTA81/Macro/impr_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/impr_fonction_ops.py
deleted file mode 100644 (file)
index dd50f8e..0000000
+++ /dev/null
@@ -1,402 +0,0 @@
-#@ MODIF impr_fonction_ops Macro  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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
-
-import os.path
-
-# ------------------------------------------------------------------------------
-def impr_fonction_ops(self, FORMAT, COURBE, INFO, **args):
-   """
-   Macro IMPR_FONCTION permettant d'imprimer dans un fichier des fonctions,
-   colonnes de table...
-   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
-   ier=0
-   # La macro compte pour 1 dans la numerotation des commandes
-   self.set_icmd(1)
-
-   # On importe les definitions des commandes a utiliser dans la macro
-   # Le nom de la variable doit etre obligatoirement le nom de la commande
-   CALC_FONC_INTERP = self.get_cmd('CALC_FONC_INTERP')
-   DEFI_LIST_REEL   = self.get_cmd('DEFI_LIST_REEL')
-   DETRUIRE         = self.get_cmd('DETRUIRE')
-
-   #----------------------------------------------
-   # 0. Traitement des arguments, initialisations
-   # unité logique des fichiers réservés
-   ul_reserve=(8,)
-   UL = UniteAster()
-
-   # 0.1. Fichier
-   nomfich=None
-   if args['UNITE'] and args['UNITE']!=6:
-      nomfich=UL.Nom(args['UNITE'])
-      if INFO==2:
-         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:
-         niv='I'
-      UTMESS(niv,macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \
-             'à la suite.')
-
-   # 0.2. Récupération des valeurs sous COURBE
-   unparmi=('FONCTION','LIST_RESU','FONC_X','ABSCISSE')
-
-   # i0 : indice du mot-clé facteur qui contient LIST_PARA, sinon i0=0
-   i0=0
-   Courbe=[]
-   iocc=-1
-   for Ci in COURBE:
-      iocc+=1
-      dC = Ci.cree_dict_valeurs(Ci.mc_liste)
-      if dC.has_key('LIST_PARA') and dC['LIST_PARA']!=None and i0==0:
-         i0=iocc
-      for mc in dC.keys():
-         if dC[mc]==None: del dC[mc]
-      Courbe.append(dC)
-   if INFO==2:
-      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
-   #      ou, à défaut, les abscisses de la première courbe
-   interp=False
-   if FORMAT=='TABLEAU':
-      interp=True
-      dCi=Courbe[i0]
-      if dCi.has_key('LIST_PARA'):
-         linter__=dCi['LIST_PARA']
-      else:
-         obj=None
-         for typi in unparmi:
-            if dCi.has_key(typi):
-               obj=dCi[typi]
-               break
-         if obj==None:
-            UTMESS('S',macro,'incohérence entre le catalogue et la macro.')
-         if typi=='FONCTION':
-            if isinstance(obj, nappe_sdaster):
-               lpar,lval=obj.Valeurs()
-               linterp=lval[0][0]
-            else:
-               linterp=obj.Valeurs()[0]
-         elif typi=='FONC_X':
-            lbid,linterp=obj.Valeurs()
-         elif typi=='ABSCISSE':
-            linterp=obj
-         linter__=DEFI_LIST_REEL(VALE=linterp)
-      if INFO==2:
-         aster.affiche('MESSAGE', ' Interpolation globale sur la liste :')
-         aster.affiche('MESSAGE', pprint.pformat(linter__.Valeurs()))
-
-
-   #----------------------------------------------
-   # 1. Récupération des valeurs des N courbes sous forme
-   #    d'une liste de N listes
-   #----------------------------------------------
-   graph=Graph.Graph()
-   iocc=-1
-   for dCi in Courbe:
-      iocc+=1
-
-      # 1.1. Type d'objet à traiter
-      obj=None
-      for typi in unparmi:
-         if dCi.has_key(typi):
-            obj=dCi[typi]
-            break
-      if not dCi.has_key('LEGENDE') and hasattr(obj,'get_name'):
-            dCi['LEGENDE']=obj.get_name()
-      if obj==None:
-         UTMESS('S',macro,'incohérence entre le catalogue et la macro.')
-
-      # 1.2. Extraction des valeurs
-
-      # 1.2.1. Mot-clé FONCTION
-      if   typi=='FONCTION':
-         if isinstance(obj, nappe_sdaster):
-            lpar,lval=obj.Valeurs()
-            dico,ldicf=obj.Parametres()
-            Leg=dCi['LEGENDE']
-            for i in range(len(lpar)):
-               p=lpar[i]
-               lx=lval[i][0]
-               ly=lval[i][1]
-               # sur quelle liste interpoler chaque fonction
-               if i==0:
-                  if interp:
-                     li__=linter__
-                  elif dCi.has_key('LIST_PARA'):
-                     li__=dCi['LIST_PARA']
-                  else:
-                     li__=DEFI_LIST_REEL(VALE=lx)
-               # compléter les paramètres d'interpolation
-               dic=dico.copy()
-               dic.update(ldicf[i])
-               
-               if (interp or dCi.has_key('LIST_PARA')) and i>0:
-                  ftmp__=CALC_FONC_INTERP(
-                     FONCTION=obj,
-                     VALE_PARA=p,
-                     LIST_PARA_FONC=li__,
-                     **dic
-                  )
-                  pv,lv2=ftmp__.Valeurs()
-                  lx=lv2[0][0]
-                  ly=lv2[0][1]
-               # on stocke les données dans le Graph
-               nomresu=dic['NOM_RESU'].strip()+'_'+str(len(graph.Legendes))
-               dicC={
-                  'Val' : [lx,ly],
-                  'Lab' : [dic['NOM_PARA_FONC'],nomresu]
-               }
-               # ajoute la valeur du paramètre
-               dCi['LEGENDE'] = '%s %s=%g' % (Leg,dic['NOM_PARA'].strip(),p)
-               Graph.AjoutParaCourbe(dicC, args=dCi)
-               graph.AjoutCourbe(**dicC)
-               DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__'),),ALARME='NON',INFO=1)
-         else:
-            ftmp__=obj
-            dpar=ftmp__.Parametres()
-            if interp:
-               ftmp__=CALC_FONC_INTERP(
-                  FONCTION=obj,
-                  LIST_PARA=linter__,
-                  **dpar
-               )
-            elif dCi.has_key('LIST_PARA'):
-               ftmp__=CALC_FONC_INTERP(
-                  FONCTION=obj,
-                  LIST_PARA=dCi['LIST_PARA'],
-                  **dpar
-               )
-            lval=list(ftmp__.Valeurs())
-            lx=lval[0]
-            lr=lval[1]
-            if isinstance(obj, fonction_c) and dCi.get('PARTIE') == 'IMAG':
-               lr=lval[2]
-            # on stocke les données dans le Graph
-            if isinstance(obj, fonction_c) and not dCi.has_key('PARTIE'):
-               nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes))
-               dicC={
-                  'Val' : lval,
-                  'Lab' : [dpar['NOM_PARA'],nomresu+'_R',nomresu+'_I']
-               }
-            else:
-               nomresu=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes))
-               dicC={
-                  'Val' : [lx,lr],
-                  'Lab' : [dpar['NOM_PARA'],nomresu]
-               }
-            Graph.AjoutParaCourbe(dicC, args=dCi)
-            graph.AjoutCourbe(**dicC)
-
-      # 1.2.2. Mot-clé LIST_RESU
-      elif typi=='LIST_RESU':
-         if interp and iocc>0:
-            UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour LIST_PARA/LIST_RESU,
-     LIST_PARA/LIST_RESU ne peut donc apparaitre qu'une seule fois
-     et à la première occurence de COURBE""")
-         lx=dCi['LIST_PARA'].Valeurs()
-         lr=obj.Valeurs()
-         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={
-            'Val' : [lx,lr],
-            'Lab' : [dCi['LIST_PARA'].get_name(),obj.get_name()]
-         }
-         Graph.AjoutParaCourbe(dicC, args=dCi)
-         graph.AjoutCourbe(**dicC)
-
-      # 1.2.3. Mot-clé FONC_X
-      # exemple : obj(t)=sin(t), on imprime x=sin(t), y=cos(t)
-      #           ob2(t)=cos(t)
-      elif typi=='FONC_X':
-         ob2=dCi['FONC_Y']
-         # peut-on blinder au niveau du catalogue
-         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
-     et à la première occurence de COURBE""")
-         ftmp__=obj
-         dpar=ftmp__.Parametres()
-         ftm2__=ob2
-         dpa2=ftm2__.Parametres()
-         intloc=False
-         if interp and not dCi.has_key('LIST_PARA'):
-            # dans ce cas, linter__ contient les ordonnées de FONC_X
-            intloc=False
-            li__=linter__
-         elif dCi.has_key('LIST_PARA'):
-            intloc=True
-            li__=dCi['LIST_PARA']
-         if intloc:
-            ftmp__=CALC_FONC_INTERP(
-               FONCTION=obj,
-               LIST_PARA=li__,
-               **dpar
-            )
-            lt,lx=ftmp__.Valeurs()
-            ftm2__=CALC_FONC_INTERP(
-               FONCTION=ob2,
-               LIST_PARA=li__,
-               **dpa2
-            )
-         else:
-            lt,lx=ftmp__.Valeurs()
-            li__=DEFI_LIST_REEL(VALE=lt)
-            ftm2__=CALC_FONC_INTERP(
-               FONCTION=ob2,
-               LIST_PARA=li__,
-               **dpa2
-            )
-         
-         lbid,ly=ftm2__.Valeurs()
-         # on stocke les données dans le Graph
-         # on imprime la liste des paramètres seulement si LIST_PARA
-         if intloc:
-            nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes))
-            nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1)
-            dicC={
-               'Val' : [lt,lx,ly],
-               'Lab' : [dpar['NOM_PARA'],nomresur,nomresu2]
-            }
-         else:
-            nomresur=dpar['NOM_RESU'].strip()+'_'+str(len(graph.Legendes))
-            nomresu2=dpa2['NOM_RESU'].strip()+'_'+str(len(graph.Legendes)+1)
-            dicC={
-               'Val' : [lx,ly],
-               'Lab' : [nomresur,nomresu2]
-            }
-         Graph.AjoutParaCourbe(dicC, args=dCi)
-         graph.AjoutCourbe(**dicC)
-
-      # 1.2.4. Mot-clé ABSCISSE / ORDONNEE
-      elif typi=='ABSCISSE':
-         if interp and iocc>0:
-            UTMESS('S',macro,"""Il n'y a pas de règles d'interpolation pour ABSCISSE/ORDONNEE,
-     ABSCISSE/ORDONNEE ne peut donc apparaitre qu'une seule fois
-     et à la première occurence de COURBE""")
-         lx=obj
-         lr=dCi['ORDONNEE']
-         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={
-            'Val' : [lx,lr],
-            'Lab' : ['Absc','Ordo']
-         }
-         Graph.AjoutParaCourbe(dicC, args=dCi)
-         graph.AjoutCourbe(**dicC)
-
-      # 1.2.9. ménage
-      DETRUIRE(CONCEPT=_F(NOM=('li__','ftmp__','ftm2__'),),ALARME='NON',INFO=1)
-
-   # 1.2.99. ménage hors boucle
-   DETRUIRE(CONCEPT=_F(NOM=('linter__'),), ALARME='NON',INFO=1)
-
-   # 1.3. dbg
-   if INFO==2:
-      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
-   #----------------------------------------------
-
-   # 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 FORMAT in ('XMGRACE','AGRAF'):
-      if args['BORNE_X']!=None:
-                                       graph.Min_X=args['BORNE_X'][0]
-                                       graph.Max_X=args['BORNE_X'][1]
-      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']
-
-   kargs={
-      'FORMAT'    : FORMAT,
-      'FICHIER'   : nomfich,
-   }
-   
-   # 2.1. au format TABLEAU
-   if FORMAT=='TABLEAU':
-      # surcharge par les formats de l'utilisateur
-      kargs['dform']={
-         'csep'  : args['SEPARATEUR'],
-         'ccom'  : args['COMMENTAIRE'],
-         'cdeb'  : args['DEBUT_LIGNE'],
-         'cfin'  : args['FIN_LIGNE']
-      }
-
-   # 2.2. au format AGRAF
-   elif FORMAT=='AGRAF':
-      nomdigr=None
-      if args['UNITE_DIGR']!=6:
-         nomdigr=UL.Nom(args['UNITE_DIGR'])
-      kargs['FICHIER']=[nomfich, nomdigr]
-      kargs['dform']={ 'formR' : '%12.5E' }
-
-   # 2.3. au format XMGRACE et dérivés
-   elif FORMAT=='XMGRACE':
-      kargs['dform']={ 'formR' : '%.8g' }
-      kargs['PILOTE']=args['PILOTE']
-
-   # 2.39. Format inconnu
-   else:
-      UTMESS('S',macro,'Format inconnu : '+FORMAT)
-
-   # 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'] \
-         and args['UNITE_DIGR'] in ul_reserve:
-      UL.Etat(args['UNITE_DIGR'], etat='F')
-
-   # 2.4. On trace !
-   graph.Trace(**kargs)
-
-   # 99. Traiter le cas des UL réservées
-   UL.EtatInit()
-
-   return ier
diff --git a/Aster/Cata/cataSTA81/Macro/impr_table_ops.py b/Aster/Cata/cataSTA81/Macro/impr_table_ops.py
deleted file mode 100644 (file)
index 4b90940..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-#@ MODIF impr_table_ops Macro  DATE 07/03/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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
-
-import os.path
-import re
-
-from types import ListType, TupleType, StringTypes
-EnumTypes=(ListType, TupleType)
-
-
-# ------------------------------------------------------------------------------
-def impr_table_ops(self, FORMAT, TABLE, INFO, **args):
-   """
-   Macro IMPR_TABLE permettant d'imprimer une table dans un fichier.
-   Erreurs<S> dans IMPR_TABLE pour ne pas perdre la base.
-   """
-   macro='IMPR_TABLE'
-   import aster
-   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)
-
-   # On importe les definitions des commandes a utiliser dans la macro
-   # Le nom de la variable doit etre obligatoirement le nom de la commande
-   DETRUIRE         = self.get_cmd('DETRUIRE')
-   RECU_FONCTION    = self.get_cmd('RECU_FONCTION')
-
-   #----------------------------------------------
-   # 0. Traitement des arguments, initialisations
-   # unité logique des fichiers réservés
-   ul_reserve=(8,)
-   UL = UniteAster()
-
-   # 0.1. Fichier
-   nomfich=None
-   if args['UNITE'] and args['UNITE']<>6:
-      nomfich=UL.Nom(args['UNITE'])
-   if nomfich and os.path.exists(nomfich) and os.stat(nomfich).st_size<>0:
-      if FORMAT=='XMGRACE':
-         UTMESS('A',macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \
-                'à la suite.')
-
-   # 0.2. Création des dictionnaires des FILTRES
-   Filtre=[]
-   if args['FILTRE']:
-      for Fi in args['FILTRE']:
-         dF = Fi.cree_dict_valeurs(Fi.mc_liste)
-         for mc in dF.keys():
-            if dF[mc]==None: del dF[mc]
-         Filtre.append(dF)
-   # format pour l'impression des filtres
-   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 (SD COMP %s)'
-   ltab=[]
-   if args['SENSIBILITE']:
-      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])
-
-   if len(ltab)<1:
-      return ier
-
-   # 0.4.1. liste des paramètres à conserver
-   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:
-      UL.Etat(args['UNITE'], etat='F')
-
-   #----------------------------------------------
-   # Boucle sur les tables
-   for tab, sdtab in ltab:
-
-      # ----- 1. Infos de base
-      if INFO==2:
-         print 'IMPRESSION DE LA TABLE : %s' % sdtab.get_name()
-
-      if args['TITRE']:
-         tab.titr=args['TITRE'] + '\n' + tab.titr
-
-      # ----- 2. Filtres
-      for Fi in Filtre:
-         col = getattr(tab, Fi['NOM_PARA'])
-         # peu importe le type
-         opts=[Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)]
-         kargs={}
-         for k in ('CRITERE','PRECISION'):
-            if Fi.has_key(k):
-               kargs[k]=Fi[k]
-         tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) )
-         # trace l'operation dans le titre
-         #if FORMAT in ('TABLEAU','ASTER'):
-         tab.titr+=form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \
-               ' '.join([str(v) for v in opts]))
-
-      # ----- 3. Tris
-      if args['TRI']:
-         # une seule occurence de TRI
-         T0=args['TRI'][0]
-         dT=T0.cree_dict_valeurs(T0.mc_liste)
-         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({
-         'FORMAT'    : FORMAT,
-         'FICHIER'   : nomfich,
-         'dform'     : {},
-      })
-      # pour l'impression des fonctions
-      kfonc={
-         'FORMAT'    : FORMAT,
-         'FICHIER'   : nomfich,
-      }
-
-      # 4.1. au format AGRAF
-      if FORMAT=='AGRAF':
-         kargs['dform']={ 'formR' : '%12.5E' }
-         kfonc['FORMAT']='TABLEAU'
-      
-      # 4.2. au format XMGRACE et dérivés
-      elif FORMAT=='XMGRACE':
-         kargs['dform']={ 'formR' : '%.8g' }
-         kargs['PILOTE']=args['PILOTE']
-         kfonc['PILOTE']=args['PILOTE']
-
-      # 4.3. format spécifié dans les arguments
-      if args['FORMAT_R']:
-         kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) })
-
-      # 4.4. regroupement par paramètre : PAGINATION
-      if 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)
-
-      # ----- 5. IMPR_FONCTION='OUI'
-      if args['IMPR_FONCTION'] and args['IMPR_FONCTION']=='OUI':
-         # cherche parmi les cellules celles qui contiennent un nom de fonction
-         dfon={}
-         for row in timp:
-            for par,cell in row.items():
-               if type(cell) in StringTypes:
-                if aster.getvectjev(cell.strip().ljust(19)+'.PROL')<>None:
-                  dfon[cell.strip().ljust(19)]=par
-         # impression des fonctions trouvées
-         for f,par in dfon.items():
-            __fonc=RECU_FONCTION(
-               TABLE=sdtab,
-               FILTRE=_F(
-                  NOM_PARA=par,
-                  VALE_K=f,
-               ),
-               NOM_PARA_TABL=par,
-            )
-            __fonc.Trace(**kfonc)
-            DETRUIRE(CONCEPT=_F(NOM=('__fonc',),), ALARME='NON', INFO=1,)
-
-   # 99. Traiter le cas des UL réservées
-   UL.EtatInit()
-
-   return ier
-
-# ------------------------------------------------------------------------------
-def fmtF2PY(fformat):
-   """Convertit un format Fortran en format Python (printf style).
-   Gère uniquement les fortrans réels, par exemple : E12.5, 1PE13.6, D12.5...
-   """
-   fmt=''
-   matP=re.search('([0-9]+)P',fformat)
-   if matP:
-      fmt+=' '*int(matP.group(1))
-   matR=re.search('([eEdDfFgG]{1})([\.0-9]+)',fformat)
-   if matR:
-      fmt+='%'+matR.group(2)+re.sub('[dD]+','E',matR.group(1))
-   try:
-      s=fmt % -0.123
-   except (ValueError, TypeError), msg:
-      fmt='%12.5E'
-      print 'Error :',msg
-      print 'Format par défaut utilisé :',fmt
-   return fmt
diff --git a/Aster/Cata/cataSTA81/Macro/info_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/info_fonction_ops.py
deleted file mode 100644 (file)
index 0554e0c..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-#@ MODIF info_fonction_ops Macro  DATE 02/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-def info_fonction_ops(self,RMS,NOCI_SEISME,MAX,NORME,ECART_TYPE,INFO,**args):
-  """
-     Ecriture de la macro INFO_FONCTION
-  """
-  ier=0
-  import string
-  from Utilitai.t_fonction import t_fonction,t_fonction_c,t_nappe
-  import math
-  from Accas import _F
-  from Utilitai.Utmess import UTMESS
-
-  ### 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
-  self.set_icmd(1)
-  self.DeclareOut('C_out',self.sd)
-
-  ### type de traitement
-  
-  ###
-  if (MAX != None): 
-     __ff=MAX['FONCTION'].convert()
-     __ex=__ff.extreme()
-     n_mini=len(__ex['min'])
-     n_maxi=len(__ex['max'])
-     listeMCF=[_F(LISTE_K=[MAX['FONCTION'].nom]*(n_mini+n_maxi),PARA='FONCTION'), 
-               _F(LISTE_K=['MINI',]*n_mini+['MAXI',]*n_maxi,PARA='TYPE'),]
-     if isinstance(__ff,t_nappe) :
-        listeMCF=listeMCF+[\
-           _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\
-           _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_PARA_FONC']),\
-           _F(LISTE_R=[i[2] for i in __ex['min']]+[i[2] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])]
-     else :
-        listeMCF=listeMCF+[\
-               _F(LISTE_R=[i[0] for i in __ex['min']]+[i[0] for i in __ex['max']],PARA=__ff.para['NOM_PARA']),\
-               _F(LISTE_R=[i[1] for i in __ex['min']]+[i[1] for i in __ex['max']],PARA=__ff.para['NOM_RESU'])]
-     C_out=CREA_TABLE(LISTE=listeMCF)
-
-  ###
-  if (ECART_TYPE  != None): 
-     __ff=ECART_TYPE['FONCTION'].convert()
-     if ECART_TYPE['INST_INIT']!=None : tini=ECART_TYPE['INST_INIT']
-     else                             : tini=__ff.vale_x[0]
-     if ECART_TYPE['INST_FIN' ]!=None : tfin=ECART_TYPE['INST_FIN' ]
-     else                             : tfin=__ff.vale_x[-1]
-     __ff=__ff.cut(tini,__ff.vale_x[-1],ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE'])
-     __ff=__ff.cut(__ff.vale_x[0],tfin,ECART_TYPE['PRECISION'],ECART_TYPE['CRITERE'])
-     if ECART_TYPE['METHODE'  ]=='SIMPSON' : __ex=__ff.simpson(0.)
-     if ECART_TYPE['METHODE'  ]=='TRAPEZE' : __ex=__ff.trapeze(0.)
-     fmoy=__ex.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0])
-     __ff=__ff+(-1*fmoy)
-     __ff=__ff*__ff
-     if ECART_TYPE['METHODE'  ]=='SIMPSON' : __ez=__ff.simpson(0.)
-     if ECART_TYPE['METHODE'  ]=='TRAPEZE' : __ez=__ff.trapeze(0.)
-     sigma=math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0]))
-     C_out=CREA_TABLE(LISTE=(_F(LISTE_K=ECART_TYPE['FONCTION'].nom,PARA='FONCTION'),
-                             _F(LISTE_K=ECART_TYPE['METHODE']     ,PARA='METHODE'),
-                             _F(LISTE_R=fmoy                      ,PARA='MOYENNE'),
-                             _F(LISTE_R=sigma                     ,PARA='ECART_TYPE'),
-                             _F(LISTE_R=tini                      ,PARA='INST_INIT'),
-                             _F(LISTE_R=tfin                      ,PARA='INST_FIN'),)
-                     )
-
-  ###
-  if (RMS != None):
-     RMS  =list(RMS)
-     sigm =[]
-     tmpi =[]
-     tmpf =[]
-     nomf =[]
-     meth =[]
-     for i_rms in RMS :
-         __ff=i_rms['FONCTION'].convert()
-         if i_rms['INST_INIT']!=None : tini=i_rms['INST_INIT']
-         else                        : tini=__ff.vale_x[0]
-         if i_rms['INST_FIN' ]!=None : tfin=i_rms['INST_FIN' ]
-         else                        : tfin=__ff.vale_x[-1]
-         __ff=__ff.cut(tini,__ff.vale_x[-1],i_rms['PRECISION'],i_rms['CRITERE'])
-         __ff=__ff.cut(__ff.vale_x[0],tfin,i_rms['PRECISION'],i_rms['CRITERE'])
-         __ff=__ff*__ff
-         if i_rms['METHODE'  ]=='SIMPSON' : __ez=__ff.simpson(0.)
-         if i_rms['METHODE'  ]=='TRAPEZE' :
-            __ez=__ff.trapeze(0.)
-         sigm.append(math.sqrt(__ez.vale_y[-1]/(__ff.vale_x[-1]-__ff.vale_x[0])))
-         tmpi.append(tini)
-         tmpf.append(tfin)
-         nomf.append(i_rms['FONCTION'].nom)
-         meth.append(i_rms['METHODE'])
-     C_out=CREA_TABLE(LISTE=(_F(LISTE_K=nomf ,PARA='FONCTION'),
-                             _F(LISTE_K=meth ,PARA='METHODE'),
-                             _F(LISTE_R=tmpi ,PARA='INST_INIT'),
-                             _F(LISTE_R=tmpf ,PARA='INST_FIN'),
-                             _F(LISTE_R=sigm ,PARA='RMS'), )
-                     )
-
-  ###
-  if (NORME != None):
-     __ff=NORME['FONCTION'].convert()
-     norme=[]
-     for __fi in __ff.l_fonc :
-         norme.append(__fi.normel2())
-     nom=[NORME['FONCTION'].nom,]*len(norme)
-     C_out=CREA_TABLE(LISTE=(_F(LISTE_R=norme ,PARA='NORME'),
-                             _F(LISTE_K=nom   ,PARA='FONCTION'), )
-                     )
-
-  ###
-  if (NOCI_SEISME != None):
-     l_table=[]
-     if NOCI_SEISME['SPEC_OSCI'] !=None :
-        ### cas intensité spectrale d'une nappe de SRO
-        ### la seule option licite est INTE_SPEC
-        UTMESS('I','INFO_FONCTION',''' : intensite spectrale, avant de calculer l'\
-intensite spectrale, il est prudent de verifier la norme de la nappe sur laquelle \
-porte le calcul, ceci peut etre une source d erreurs.''')
-        amor=NOCI_SEISME['AMOR_REDUIT']
-        fini=NOCI_SEISME['FREQ_INIT'  ]
-        ffin=NOCI_SEISME['FREQ_FIN'   ]
-        __sp  =NOCI_SEISME['SPEC_OSCI'].convert()
-        vale_x=__sp.l_fonc[0].vale_x
-        vale_y=[__sp(amor,f) for f in vale_x]
-        para  =__sp.l_fonc[0].para
-        __srov=t_fonction(vale_x,vale_y,para)
-        if   NOCI_SEISME['NATURE']=='DEPL' : 
-             __srov.vale_y=(__srov.vale_y/__srov.vale_x)*2.*math.pi
-        elif NOCI_SEISME['NATURE']=='VITE' : 
-             __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x
-        elif NOCI_SEISME['NATURE']=='ACCE' : 
-             __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x
-             __srov.vale_y=__srov.vale_y/__srov.vale_x/2./math.pi
-        __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE'])
-        insp=__srov.trapeze(0.).vale_y[-1]
-        l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT'  ))
-        l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN'   ))
-        l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT'))
-        l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' ))
-     if NOCI_SEISME['FONCTION'] !=None :
-        ### cas fonction
-        l_table.append(_F(LISTE_K=NOCI_SEISME['FONCTION'].nom,PARA='FONCTION'))
-        __ac=NOCI_SEISME['FONCTION'].convert()
-        option= NOCI_SEISME['OPTION']
-        if   NOCI_SEISME['INST_INIT']!=None : tdeb=NOCI_SEISME['INST_INIT']
-        else                                : tdeb=__ac.vale_x[0]
-        if   NOCI_SEISME['INST_FIN' ]!=None : tfin=NOCI_SEISME['INST_FIN' ]
-        else                                : tfin=__ac.vale_x[-1]
-        # calcul de la vitesse :
-        __vi=__ac.trapeze(NOCI_SEISME['COEF'])
-        # calcul du déplacement :
-        __de=__vi.trapeze(NOCI_SEISME['COEF'])
-        # calcul de |acceleration| :
-        __aa=__ac.abs()
-        # calcul de integrale(|acceleration|) :
-        ### on "coupe" la fonction entre tdeb et tfin
-        __ac=__ac.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE'])
-        __vi=__vi.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE'])
-        __de=__de.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE'])
-        __aa=__aa.cut(tdeb,tfin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE'])
-        if   NOCI_SEISME['FREQ'     ]!=None : l_freq=NOCI_SEISME['FREQ']
-        elif NOCI_SEISME['LIST_FREQ']!=None : l_freq=NOCI_SEISME['LIST_FREQ'].Valeurs()
-        else                                :  
-           # fréquences par défaut
-           l_freq=[]
-           for i in range(56) : l_freq.append( 0.2+0.050*i)
-           for i in range( 8) : l_freq.append( 3.0+0.075*i)
-           for i in range(14) : l_freq.append( 3.6+0.100*i)
-           for i in range(24) : l_freq.append( 5.0+0.125*i)
-           for i in range(28) : l_freq.append( 8.0+0.250*i)
-           for i in range( 6) : l_freq.append(15.0+0.500*i)
-           for i in range( 4) : l_freq.append(18.0+1.000*i)
-           for i in range(10) : l_freq.append(22.0+1.500*i)
-        if option in('TOUT','MAXI','ACCE_SUR_VITE') : 
-           #   calcul du max des valeurs absolues
-           maxa_ac=__ac.abs().extreme()['max'][0][1]
-           maxa_vi=__vi.abs().extreme()['max'][0][1]
-           maxa_de=__de.abs().extreme()['max'][0][1]
-           l_table.append(_F(LISTE_R=maxa_ac,PARA='ACCE_MAX'))
-           l_table.append(_F(LISTE_R=maxa_vi,PARA='VITE_MAX'))
-           l_table.append(_F(LISTE_R=maxa_de,PARA='DEPL_MAX'))
-           l_table.append(_F(LISTE_R=maxa_ac/maxa_vi,PARA='ACCE_SUR_VITE'))
-        if option in('TOUT','INTE_ARIAS') : 
-           __a2=__ac*__ac
-           inte_arias=__a2.trapeze(0.).vale_y[-1]
-           inte_arias=inte_arias*math.pi/NOCI_SEISME['PESANTEUR']/2.
-           l_table.append(_F(LISTE_R=inte_arias,PARA='INTE_ARIAS'))
-        if option in('TOUT','POUV_DEST') : 
-           __v2=__vi*__vi
-           pouv_dest=__v2.trapeze(0.).vale_y[-1]
-           pouv_dest=pouv_dest*(math.pi)**3/NOCI_SEISME['PESANTEUR']/2.
-           l_table.append(_F(LISTE_R=pouv_dest,PARA='POUV_DEST'))
-        if option in('TOUT','VITE_ABSO_CUMU') : 
-           __vc=__aa.trapeze(0.)
-           vite_abso=__vc.vale_y[-1]
-           l_table.append(_F(LISTE_R=vite_abso,PARA='VITE_ABSO_CUMU'))
-        if option in('TOUT','INTE_SPEC') :
-           amor=NOCI_SEISME['AMOR_REDUIT']
-           fini=NOCI_SEISME['FREQ_INIT'  ]
-           ffin=NOCI_SEISME['FREQ_FIN'   ]
-           __so= CALC_FONCTION(SPEC_OSCI=_F(
-                                      NATURE     ='VITE',
-                                      NATURE_FONC='ACCE',
-                                      FONCTION   =NOCI_SEISME['FONCTION'],
-                                      METHODE    ='NIGAM',
-                                      NORME      =NOCI_SEISME['NORME'],
-                                      FREQ       =l_freq,
-                                      AMOR_REDUIT=(amor,)
-                                      ), )
-           __srov=__so.convert().l_fonc[0]
-           __srov=__srov.cut(fini,ffin,NOCI_SEISME['PRECISION'],NOCI_SEISME['CRITERE'])
-           __srov.vale_y=__srov.vale_y/__srov.vale_x/__srov.vale_x
-           insp=__srov.trapeze(0.).vale_y[-1]
-           l_table.append(_F(LISTE_R=fini ,PARA='FREQ_INIT'  ))
-           l_table.append(_F(LISTE_R=ffin ,PARA='FREQ_FIN'   ))
-           l_table.append(_F(LISTE_R=amor ,PARA='AMOR_REDUIT'))
-           l_table.append(_F(LISTE_R=insp ,PARA='INTE_SPECT' ))
-        if option in('TOUT','DUREE_PHAS_FORT') : 
-           __a2=__ac*__ac
-           __i2=__a2.trapeze(0.)
-           arias = __i2.vale_y[-1]*math.pi/NOCI_SEISME['PESANTEUR']/2.
-           valinf = arias * NOCI_SEISME['BORNE_INF']
-           valsup = arias * NOCI_SEISME['BORNE_SUP']
-           for i in range(len(__i2.vale_x)) :
-               ariask = __i2.vale_y[i]*math.pi/NOCI_SEISME['PESANTEUR']/2.
-               if ariask>=valinf : break
-           for j in range(len(__i2.vale_x)-1,-1,-1) :
-               ariask = __i2.vale_y[j]*math.pi/NOCI_SEISME['PESANTEUR']/2.
-               if ariask<=valsup : break
-           dphfor = __i2.vale_x[j] - __i2.vale_x[i]
-           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
diff --git a/Aster/Cata/cataSTA81/Macro/lire_fonction_ops.py b/Aster/Cata/cataSTA81/Macro/lire_fonction_ops.py
deleted file mode 100644 (file)
index 748774e..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-#@ MODIF lire_fonction_ops Macro  DATE 24/05/2005   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-import os.path, Numeric
-
-# ------------------------------------------------------------------------------
-def lire_blocs(nomfich, SEPAR):
-   """Retourne la liste des blocs
-   """
-   def info(ib, nlig, ncol):
-      """Affiche les infos d'un bloc"""
-      print "   . Bloc %2d : %6d lignes, %6d colonnes" % (ib, nlig, ncol)
-   print "  Lecture des blocs du fichier '%s'" % nomfich
-   fich=open(nomfich, 'r')
-   ier=0
-   message = ''
-   if SEPAR=='None' : SEPAR=None
-   blocs  = []
-   lignes = []
-   llen=0
-   il=0
-   for line in fich:
-      il+=1
-      try:
-         if line.strip()=='':
-            raise ValueError
-         splin = line.split(SEPAR)
-         lignes.append(map(float, splin))
-         if llen==0:
-            llen=len(splin)
-         elif len(splin)<>llen:
-            ier+=1
-            message='Ligne %d : %d champs au lieu de %d attendus' % (il,len(splin),llen)
-            return ier, message, []
-      except ValueError:
-         if lignes==[]:
-            pass  # dans ce cas, on a plusieurs lignes délimitant 2 fonctions
-         else:
-            blocs.append(Numeric.array(lignes))
-            info(len(blocs), len(lignes), llen)
-            lignes=[]
-            llen=0
-   fich.close()
-   if lignes!=[] :
-      blocs.append(Numeric.array(lignes))
-      info(len(blocs), len(lignes), llen)
-   return ier, message, blocs
-
-# ------------------------------------------------------------------------------
-def liste_double(nomfich,INDIC_PARA,INDIC_RESU,SEPAR):
-  """Méthode de construction du VALE pour le format libre
-  format LIBRE
-  Les lignes contenant autre chose que des séquences de nombres
-  réels et de séparateurs sont considérées comme délimitant deux
-  fonctions différentes. Cette situation correspond à l exception
-  ValueError levée par le map de float. Le deuxieme indice de
-  INDIC_PARA et INDIC_RESU est l indice permettant de pointer sur la
-  fonction voulue, au sens de ce découpage.
-  """
-  from Utilitai.transpose import transpose
-  ier, message, blocs = lire_blocs(nomfich, SEPAR)
-  if ier<>0:
-     return ier,message,[]
-
-  # vérifications de cohérences lignes et colonnes
-  nb_blocs = len(blocs)
-  bloc_para = INDIC_PARA[0]
-  col_para  = INDIC_PARA[1]
-  bloc_resu = INDIC_RESU[0]
-  col_resu  = INDIC_RESU[1]
-  msg=[]
-  if bloc_para>nb_blocs :
-     ier+=1
-     msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para))
-  if bloc_resu>nb_blocs:
-     ier+=1
-     msg.append("Il y a %d blocs or INDIC_RESU=(%d, .)" % (nb_blocs, bloc_resu))
-  if ier<>0:
-     return ier, '\n'.join(msg), []
-
-  if col_para>len(blocs[bloc_para-1][0]):
-     ier+=1
-     msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \
-         (bloc_para, len(blocs[bloc_para-1][0]), col_para))
-  if col_resu>len(blocs[bloc_resu-1][0]) :
-     ier+=1
-     msg.append("Le bloc %d comporte %d colonnes or INDIC_RESU=(., %d)" % \
-         (bloc_resu, len(blocs[bloc_resu-1][0]), col_resu))
-  if ier<>0:
-     return ier, '\n'.join(msg), []
-
-  # construction du VALE de la fonction par recherche des indices
-  # de colonnes et de fonctions dans le tableau blocs
-  vale_para = blocs[bloc_para-1][:,col_para-1]
-  vale_resu = blocs[bloc_resu-1][:,col_resu-1]
-  if len(vale_para)!=len(vale_resu) :
-     ier+=1
-     print 'VALE_PARA =', vale_para
-     print 'VALE_RESU =', vale_resu
-     message="""Les deux colonnes extraites n'ont pas la meme longueur
-         %d lignes pour PARA
-         %d lignes pour RESU""" % (len(vale_para), len(vale_resu))
-  if ier<>0:
-     return ier,message,[]
-
-  laux=transpose([vale_para, vale_resu])
-  liste_vale=[]
-  for v in laux: liste_vale.extend(v)
-  return ier,'',liste_vale
-
-# ------------------------------------------------------------------------------
-def liste_simple(nomfich,INDIC_PARA,SEPAR):
-  """recherche d'une liste simple
-  """
-  ier, message, blocs = lire_blocs(nomfich, SEPAR)
-
-  # vérifications de cohérences lignes et colonnes
-  nb_blocs = len(blocs)
-  bloc_para = INDIC_PARA[0]
-  col_para  = INDIC_PARA[1]
-  msg=[]
-  if bloc_para>nb_blocs :
-     ier+=1
-     msg.append("Il y a %d blocs or INDIC_PARA=(%d, .)" % (nb_blocs, bloc_para))
-  if col_para>len(blocs[bloc_para-1][0]):
-     ier+=1
-     msg.append("Le bloc %d comporte %d colonnes or INDIC_PARA=(., %d)" % \
-         (bloc_para, len(blocs[bloc_para-1][0]), col_para))
-  if ier<>0:
-     return ier, '\n'.join(msg), []
-
-  # construction du VALE de la fonction par recherche des indices
-  # de colonnes et de fonctions dans le tableau l_fonc
-  vale_1=blocs[bloc_para-1][:,col_para-1]
-  return ier,'',vale_1.tolist()
-
-# ------------------------------------------------------------------------------
-def lire_fonction_ops(self,FORMAT,TYPE,SEPAR,INDIC_PARA,UNITE,
-                      NOM_PARA,NOM_RESU,INTERPOL,PROL_DROITE,
-                      PROL_GAUCHE,VERIF,INFO,TITRE,**args):
-  """Méthode corps de la macro
-  """
-  from Accas import _F
-  from Utilitai.Utmess     import UTMESS
-  from Utilitai.UniteAster import UniteAster
-
-  ier=0
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  # On recopie le mot cle defi_fonction pour le proteger
-  if TYPE=='NAPPE' :
-     mc_DEFI_FONCTION=args['DEFI_FONCTION']
-
-  # On importe les definitions des commandes a utiliser dans la macro
-  DEFI_FONCTION  =self.get_cmd('DEFI_FONCTION')
-  DEFI_NAPPE     =self.get_cmd('DEFI_NAPPE')
-
-  nompro='LIRE_FONCTION'
-
-  # Lecture de la fonction dans un fichier d unité logique UNITE
-  UL = UniteAster()
-  nomfich=UL.Nom(UNITE)
-  if not os.path.isfile(nomfich):
-     UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich)
-
-  # fonction(_c) ou nappe en sortie
-  self.DeclareOut('ut_fonc',self.sd)
-
-  if   TYPE=='FONCTION':
-    # mise en forme de la liste de valeurs suivant le format choisi :
-    ier,message,liste_vale=liste_double(nomfich,INDIC_PARA,args['INDIC_RESU'],SEPAR)
-    if ier!=0:  UTMESS('F', nompro, message)
-
-    # création de la fonction ASTER :
-    ut_fonc=DEFI_FONCTION( NOM_PARA   =NOM_PARA,
-                           NOM_RESU   =NOM_RESU,
-                           PROL_DROITE=PROL_DROITE,
-                           PROL_GAUCHE=PROL_GAUCHE,
-                           INTERPOL   =INTERPOL,
-                           INFO       =INFO,
-                           TITRE      =TITRE,
-                           VERIF      =VERIF,
-                           VALE       =liste_vale,)
-
-  elif TYPE=='FONCTION_C':
-    # mise en forme de la liste de valeurs suivant le format choisi :
-    if 'INDIC_REEL' in args :
-                              indic1=args['INDIC_REEL']
-                              indic2=args['INDIC_IMAG']
-    if 'INDIC_MODU' in args :
-                              indic1=args['INDIC_MODU']
-                              indic2=args['INDIC_PHAS']
-    ier,message,liste_vale_r=liste_double(nomfich,INDIC_PARA,indic1,SEPAR)
-    if ier!=0:  UTMESS('F', nompro, message)
-
-    ier,message,liste_vale_i=liste_double(nomfich,INDIC_PARA,indic2,SEPAR)
-    if ier!=0:  UTMESS('F', nompro, message)
-
-    liste=[]
-    if   'INDIC_REEL' in args :
-      for i in range(len(liste_vale_r)/2) :
-        liste.extend([liste_vale_r[2*i],liste_vale_r[2*i+1],liste_vale_i[2*i+1]])
-    elif 'INDIC_MODU' in args :
-      for i in range(len(liste_vale_r)/2) :
-        module=liste_vale_r[2*i+1]
-        phase =liste_vale_i[2*i+1]
-        liste.extend([liste_vale_r[2*i],module*cos(phase),module*sin(phase)])
-
-    # création de la fonction ASTER :
-    ut_fonc=DEFI_FONCTION( NOM_PARA    =NOM_PARA,
-                           NOM_RESU    =NOM_RESU,
-                           PROL_DROITE =PROL_DROITE,
-                           PROL_GAUCHE =PROL_GAUCHE,
-                           INTERPOL    =INTERPOL,
-                           INFO        =INFO,
-                           TITRE       =TITRE,
-                           VERIF       =VERIF,
-                           VALE_C      =liste,)
-
-  elif TYPE=='NAPPE':
-
-    # création de la nappe ASTER :
-    motscles={}
-    motscles['DEFI_FONCTION']=[]
-    for elem in mc_DEFI_FONCTION:
-       ier,message,liste_vale=liste_double(nomfich,args['INDIC_ABSCISSE'],elem['INDIC_RESU'],SEPAR)
-       if ier!=0:  UTMESS('F', nompro, message)
-
-       motscles['DEFI_FONCTION'].append( _F( VALE       =liste_vale,
-                                             INTERPOL   =args['INTERPOL_FONC'],
-                                             PROL_DROITE=args['PROL_DROITE_FONC'],
-                                             PROL_GAUCHE=args['PROL_GAUCHE_FONC'] ) )
-    ier,message,liste_para=liste_simple(nomfich,INDIC_PARA,SEPAR)
-    if ier!=0:  UTMESS('F', nompro, message)
-
-    # création de la nappe
-    ut_fonc=DEFI_NAPPE( PARA          =liste_para,
-                        NOM_PARA      =NOM_PARA,
-                        NOM_PARA_FONC =args['NOM_PARA_FONC'],
-                        NOM_RESU      =NOM_RESU,
-                        PROL_DROITE   =PROL_DROITE,
-                        PROL_GAUCHE   =PROL_GAUCHE,
-                        INTERPOL      =INTERPOL,
-                        INFO          =INFO,
-                        TITRE         =TITRE,
-                        VERIF         =VERIF,
-                        **motscles)
-  # remet UNITE dans son état initial
-  UL.EtatInit()
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/lire_inte_spec_ops.py b/Aster/Cata/cataSTA81/Macro/lire_inte_spec_ops.py
deleted file mode 100644 (file)
index a2bd956..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-#@ MODIF lire_inte_spec_ops Macro  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-def lire_inte_spec_ops(self,UNITE,FORMAT,NOM_PARA,NOM_RESU,INTERPOL,
-                            PROL_DROITE,PROL_GAUCHE,TITRE,INFO,**args):
-  ier=0
-
-  from Accas import _F
-  import os
-  from math import cos,sin
-  from Utilitai.Utmess     import UTMESS
-  from Utilitai.UniteAster import UniteAster
-  # On importe les definitions des commandes a utiliser dans la macro
-  DEFI_FONCTION  =self.get_cmd('DEFI_FONCTION')
-  CREA_TABLE     =self.get_cmd('CREA_TABLE')
-
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-  nompro='LIRE_INTE_SPEC'
-
-  # Lecture de la fonction dans un fichier d unité logique UNITE
-  UL = UniteAster()
-  nomfich=UL.Nom(UNITE)
-  if not os.path.isfile(nomfich):
-     UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich)
-  file=open(nomfich,'r')
-  texte=file.read()
-  file.close()
-  
-  list_fonc=texte.split('FONCTION_C')
-  entete=list_fonc.pop(0)
-  try : 
-    entete=entete[entete.index('DIM'):]
-    dim=int(entete[entete.index('=')+1:entete.index('\n')])
-  except ValueError : 
-    UTMESS('F', nompro, "la dimension DIM n est pas précisée dans le fichier lu")
-
-  if len(list_fonc)!=(dim*(dim+1)/2):
-    UTMESS('F', nompro, "nombre de fonctions incorrect")
-
-  nume_i=[]
-  nume_j=[]
-  l_fonc=[]
-  for i in range(dim*(dim+1)/2):
-    numi=list_fonc[i][list_fonc[i].index('I =')+3:]
-    numi=numi[:numi.index('\n')]
-    nume_i.append(int(numi))
-    numj=list_fonc[i][list_fonc[i].index('J =')+3:]
-    numj=numj[:numj.index('\n')]
-    nume_j.append(int(numj))
-    try : 
-      vale_fonc=list_fonc[i][list_fonc[i].index('VALEUR =\n')+9:list_fonc[i].index('FINSF\n')]
-      vale_fonc=vale_fonc.replace('\n',' ')
-      vale_fonc=map(float,vale_fonc.split())
-    except ValueError : 
-      UTMESS('F', nompro, "erreur dans les données de fonctions")
-
-    liste=[]
-    if   FORMAT=='REEL_IMAG':
-      liste=vale_fonc
-    elif FORMAT=='MODULE_PHASE':
-      for i in range(len(vale_fonc)/3) :
-        module=vale_fonc[3*i+1]
-        phase =vale_fonc[3*i+2]
-        liste=liste+[vale_fonc[3*i],module*cos(phase),module*sin(phase)]
-
-    # création de la fonction ASTER :
-    _fonc=DEFI_FONCTION( NOM_PARA   =NOM_PARA,
-                         NOM_RESU   =NOM_RESU,
-                         PROL_DROITE=PROL_DROITE,
-                         PROL_GAUCHE=PROL_GAUCHE,
-                         INTERPOL   =INTERPOL,
-                         INFO       =INFO,
-                         TITRE      =TITRE,
-                         VALE_C     =liste,)
-    l_fonc.append(_fonc.nom)
-
-  nume_ib=[]
-  nume_jb=[]
-  for i in range(dim):
-    for j in range(i,dim):
-      nume_ib.append(i+1)
-      nume_jb.append(j+1)
-  if nume_i!=nume_ib or nume_j!=nume_jb : 
-      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,)))
-  mcfact.append(_F(PARA='DIMENSION'   ,LISTE_I=(dim,)    ,NUME_LIGN=(1,)))
-  mcfact.append(_F(PARA='NUME_ORDRE_I',LISTE_I=nume_i    ,NUME_LIGN=range(2,len(nume_i)+2)))
-  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(LISTE=mcfact,
-                      TITRE=TITRE,)
-
-  # remet UNITE dans son état initial
-  UL.EtatInit()
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/lire_table_ops.py b/Aster/Cata/cataSTA81/Macro/lire_table_ops.py
deleted file mode 100644 (file)
index 5d4edef..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-#@ MODIF lire_table_ops Macro  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-import string
-
-# ------------------------------------------------------------------------------
-def lecture_table(texte,nume,separ):
-  """Méthode de construction du dictionnaire PARAMETRE / LISTE DE VALEURS
-  format ASTER
-  Les lignes contenant autre chose que des séquences de nombres
-  réels et de séparateurs sont considérées comme délimitant deux
-  fonctions différentes. Cette situation correspond à l exception
-  ValueError levée par le map de float. Le deuxieme indice de
-  VALE_PARA et VALE_RESU est l indice permettant de pointer sur la
-  fonction voulue, au sens de ce découpage.
-  """
-
-  from Utilitai.transpose import transpose
-  if string.strip(separ)=='' : separ=None
-  tab_lue={}
-  nume_lign=[]
-  idt_deb='#DEBUT_TABLE\n'
-  idt_fin='#FIN_TABLE\n'
-  idt_tit='#TITRE'
-  if nume>texte.count(idt_deb) :
-     message=        "<F> <CREA_TABLE> NUME_TABLE :le nombre de blocs de tables dans "
-     message=message+"le fichier est "+str(texte.count(idt_deb))
-     return 1,message,None,None,None
-  for i in range(nume):
-     texte=texte[texte.index(idt_deb)+1:]
-  texte=texte[:texte.index(idt_fin)]
-
-  titre_tab=[string.rstrip(elem[7:-1]) for elem in texte if elem.find(idt_tit)!=-1]
-  texte_tab=[elem.split(separ) for elem in texte if elem.find(idt_tit)==-1]
-
-  if ( separ!=None) :
-     tab_trav=[]
-     for line in texte_tab :
-        ligne=[]
-        for elem in line :
-           if ( elem != '' and elem !='\n') :
-              ligne.append(string.strip(elem))
-        tab_trav.append(ligne)
-     texte_tab=tab_trav
-
-  list_para=texte_tab[0]
-  list_type=texte_tab[1]
-  texte_tab.pop(0)
-  texte_tab.pop(0)
-  nb_para=len(texte_tab[0])
-
-  for line in texte_tab :
-    if len(line)!=nb_para :
-       message=        "<F> <CREA_TABLE> incoherence dans le nombre de colonnes "
-       message=message+"de la table a lire"
-       return 1,message,None,None,None
-  texte_tab=transpose(texte_tab)
-  for i in range(nb_para):
-    tab_trav=[]
-    list_val=[]
-    col_type=list_type[i]
-    if col_type=='R':
-       try              : 
-              texte_tab[i]=map(float,texte_tab[i])
-              nume_lign.append([0])
-       except ValueError:
-# Presence de - dans la ligne
-              for indice in range(len(texte_tab[i])):
-                        if texte_tab[i][indice]!='-':
-                             tab_trav.append(indice+1)
-                             list_val.append(float(texte_tab[i][indice]))
-                             
-              nume_lign.append(tab_trav)
-              texte_tab[i]=list_val
-    elif col_type=='I' :
-       try              :
-              texte_tab[i]=map(int,texte_tab[i])
-              nume_lign.append([0])
-# Presence de - dans la ligne
-       except ValueError:
-              for indice in range(len(texte_tab[i])):
-                        if texte_tab[i][indice]!='-':
-                             tab_trav.append(indice+1)
-                             list_val.append(float(texte_tab[i][indice]))
-              nume_lign.append(tab_trav)
-              texte_tab[i]=list_val
-
-    else :
-       try              : nume_lign.append([0])
-       except ValueError: pass
-    
-    tab_lue[list_para[i]]=(list_type[i],texte_tab[i],nume_lign[i])
-
-  return 0,None,titre_tab,list_para,tab_lue
-
-
-# ------------------------------------------------------------------------------
-def lire_table_ops(self,UNITE,FORMAT,NUME_TABLE,SEPARATEUR,
-                        PARA,TITRE,**args):   
-  """Méthode corps de la macro LIRE_TABLE
-  """
-  import os
-  from Accas import _F
-  from Utilitai.Utmess     import UTMESS
-  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')
-
-  ### La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  ### Lecture de la table dans un fichier d unité logique UNITE
-  UL = UniteAster()
-  nomfich=UL.Nom(UNITE)
-  if not os.path.isfile(nomfich):
-     UTMESS('F', nompro, "le fichier '%s' est introuvable" % nomfich)
-
-  file=open(nomfich,'r')
-  texte=file.readlines()
-  file.close()
-
-  ### mise en forme de la liste de valeurs suivant le format choisi :
-  if FORMAT=='ASTER':
-    ier,message,titr_tab,list_para,tab_lue=lecture_table(texte,NUME_TABLE,SEPARATEUR)
-    if ier!=0 :
-       UTMESS('F', nompro, message)
-  else                : pass
-
-  ### création de la table ASTER :
-  self.DeclareOut('ut_tab',self.sd)
-  mcfact=[]
-  num_col=0
-  for tab_para in list_para:
-    mcsimp={}
-    mcsimp['PARA']=tab_para
-
-    if tab_lue[tab_para][2] != [0] :
-       mcsimp['NUME_LIGN']=tab_lue[tab_para][2]
-       
-    if tab_lue[tab_para][0] not in ('I','R') :
-       mcsimp['TYPE_K'] =tab_lue[tab_para][0]
-       mcsimp['LISTE_K']=tab_lue[tab_para][1]
-    elif tab_lue[tab_para][0]=='I' :
-       mcsimp['LISTE_I']=tab_lue[tab_para][1]
-    elif tab_lue[tab_para][0]=='R' :
-       mcsimp['LISTE_R']=tab_lue[tab_para][1]
-
-    mcfact.append( _F(**mcsimp) )
-    num_col = num_col + 1
-  motscles={}
-  motscles['LISTE']=mcfact
-
-  ut_tab=CREA_TABLE(TITRE=titr_tab,**motscles)
-
-  # remet UNITE dans son état initial
-  UL.EtatInit()
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macr_adap_mail_ops.py b/Aster/Cata/cataSTA81/Macro/macr_adap_mail_ops.py
deleted file mode 100644 (file)
index 0d1234c..0000000
+++ /dev/null
@@ -1,787 +0,0 @@
-#@ MODIF macr_adap_mail_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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 GNICOLAS G.NICOLAS
-#
-def macr_adap_mail_ops ( self,
-                         INFO, VERSION_HOMARD, MAILLAGE_FRONTIERE,
-                         **args):
-  """
-     Traitement des macros MACR_ADAP_MAIL/MACR_INFO_MAIL
-  """
-#
-#  1. args est le dictionnaire des arguments
-#     args.keys() est la liste des mots-clés
-#     args.keys()[0] est la premiere valeur de cette liste
-#     args.keys()[1:] est la liste des valeurs suivantes dans cette liste
-#     args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante.
-#
-###  print args
-###  print args.keys()
-###  if len (args.keys())>0 : print args.keys()[0]
-###  print args["MAILLAGE"]
-#
-#  2. Les caractéristiques d'un passage sont conservées dans un dictionnaire. Il y a autant de
-#     dictionnaires que de sollicitations pour une série d'adaptation. L'ensemble de ces dictionnaires
-#     est conservé dans la liste Liste_Passages. Cette liste est nécessairement globale pour pouvoir
-#     la retrouver à chaque nouveau passage.
-#     Description du dictionnaire de passages :
-#        dico["Maillage_0"]             = o ; string ; nom du concept du maillage initial de la série d'adaptation
-#        dico["Maillage_NP1"]           = o ; string ; nom du concept du dernier maillage adapté
-#        dico["Rep_Calc_HOMARD_global"] = o ; string ; Nom global du répertoire de calcul pour HOMARD
-#        dico["Rep_Calc_HOMARD_local"]  = o ; string ; Nom local du répertoire de calcul pour HOMARD
-#                                                      depuis le répertoire de calcul pour ASTER
-#        dico["niter"]                  = o ; entier ; numéro d'itération
-#
-#  3. Les caractéristiques d'un maillage sont conservées dans un dictionnaire. Il y a autant de
-#     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", "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
-#
-#  4. Les caractéristiques d'un champ sont conservées dans un dictionnaire. Il y a autant de
-#     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_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
-#        dico["PRECISION"]    = f ; entier ; Précision sur l'instant du champ
-#        dico["CRITERE"]      = f ; entier ; Critère de précision sur l'instant du champ
-#        dico["CHAM_MAJ"]     = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage
-#        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 os
-#gn  import shutil
-#
-  global Liste_Passages
-#
-#====================================================================
-# 1. Préalables
-#====================================================================
-#
-# 1.1. ==> La macro compte pour 1 dans la numerotation des commandes
-#
-  self.set_icmd(1)
-#
-# 1.2. ==> Numéro du passage dans cette macro
-#
-  try :
-    self.jdc.indice_macro_homard = self.jdc.indice_macro_homard + 1
-  except :
-    self.jdc.indice_macro_homard = 1
-    Liste_Passages = []
-  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")
-  LIRE_MAILLAGE   = self.get_cmd("LIRE_MAILLAGE")
-  LIRE_CHAMP      = self.get_cmd("LIRE_CHAMP")
-#
-# 1.4. ==> Le nom du programme HOMARD à lancer
-#
-  repertoire_outils = aster.repout()
-  homard            = repertoire_outils + "homard"
-#
-# 1.5. ==> Initialisations
-#
-  codret_partiel = [0]
-  Rep_Calc_ASTER = os.getcwd()
-#
-  Liste_Maillages = []
-  Liste_Champs    = []
-  Liste_Zones     = []
-  dico_indi = {}
-#
-  LISTE_ADAPTATION_LIBRE = ("RAFF_DERA" , "RAFFINEMENT" , "DERAFFINEMENT")
-#
-#====================================================================
-# 2. Décodage des arguments de la macro-commande
-#====================================================================
-# 2.1. ==> Données de pilotage de l'adaptation
-#
-  if ( self.nom == "MACR_ADAP_MAIL" ) :
-#
-    mode_homard = "ADAP"
-#
-# 2.1.1. ==> Les concepts "maillage"
-#
-#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
-      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"] = "Rien"
-#gn      print "dico = ",dico
-      Liste_Maillages.append(dico)
-#
-# 2.1.2. ==> L'éventuel indicateur d'erreur
-#
-#gn   print "\n.. Debut de 2.1.2"
-    if args["ADAPTATION"] in LISTE_ADAPTATION_LIBRE :
-      dico = {}
-      dico["Type_Champ"] = "INDICATEUR"
-      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
-#
-#gn     print "\n.. Debut de 2.1.3."
-#
-    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_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]
-        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 :
-#
-    mode_homard = "INFO"
-#
-    dico = {}
-    dico["Type_Maillage"] = "MAILLAGE_N"
-    dico["Nom_ASTER"]     = args["MAILLAGE"]
-    dico["Action"]        = "A_ecrire"
-    Liste_Maillages.append(dico)
-#
-# 2.3. ==> Suivi de frontière
-#
-#gn   print "\n.. Debut de 2.3."
-#
-  if ( MAILLAGE_FRONTIERE != None ) :
-#
-    dico = {}
-    dico["Type_Maillage"] = "MAILLAGE_FRONTIERE"
-    dico["Nom_ASTER"]     = MAILLAGE_FRONTIERE
-    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.
-#
-#gn  print "\n.. Debut de 3.1."
-#
-  Nom_Concept_Maillage_NP1_ANNEXE = None
-  l_aux = []
-  for dico in Liste_Maillages :
-#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
-#
-# 3.2.1. ==> Par défaut :
-#            . 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 + "_" + 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 : il faut repartir du répertoire de l'itération précédente
-#
-#gn  print "\.. Debut de 3.2.2."
-#
-  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 ) :
-        niter   = dico["niter"] + 1
-        Rep_Calc_HOMARD_local  = dico["Rep_Calc_HOMARD_local"]
-        Rep_Calc_HOMARD_global = dico["Rep_Calc_HOMARD_global"]
-#
-# 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
-      Liste_Passages.append(dico)
-#
-# 3.2.2.2.2. ==> Modification du cas en cours
-#
-    else :
-      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_aux.append(dico)
-      Liste_Passages = l_aux
-#
-###  print "niter = ", niter, ", Rep_Calc_HOMARD_global = ", Rep_Calc_HOMARD_global
-#
-# 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
-#
-#gn  print "\.. Debut de 3.2.3."
-#
-  if ( niter == 0 ) :
-#
-    try :
-      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])
-      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
-#====================================================================
-#
-#gn  print "\.. Debut de 4."
-#
-#  On doit écrire : le maillage,
-#                   le champ d'indicateur d'erreur
-#                   les champs à convertir
-#  Remarque : on met tout dans le meme fichier
-#
-#  Chacune de ces écritures est optionnelle selon le contexte.
-#
-  if ( INFO > 1 ) :
-    infomail = "OUI"
-  else :
-    infomail = "NON"
-#
-# 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
-  Fichier_ASTER_vers_HOMARD = os.path.join(Rep_Calc_ASTER,"fort." + str(Unite_Fichier_ASTER_vers_HOMARD))
-###  print "Fichier_ASTER_vers_HOMARD = ",Fichier_ASTER_vers_HOMARD
-#
-# 4.1.2. ==> De HOMARD vers ASTER
-#  
-  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))
-###    print "Fichier_HOMARD_vers_ASTER = ",Fichier_HOMARD_vers_ASTER
-#
-# 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.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
-# car HOMARD a mémorisé. Mais dès que l'on écrit un champ,
-# les conventions MED imposent la présence du maillage dans le fichier.
-# Donc on va toujours écrire.
-#
-  for dico in Liste_Maillages :
-    if ( dico["Action"] == "A_ecrire" ) :
-      motscsi = {}
-      motscsi["MAILLAGE"] = dico["Nom_ASTER"]
-      motscfa = {}
-      motscfa["RESU"] = _F( INFO_MAILLAGE=infomail,
-                          **motscsi )
-#
-      IMPR_RESU ( INFO = INFO, 
-                  FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD,
-                  **motscfa )
-#
-# 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
-#                    deux champs. D'ailleurs, c'est plus économique ainsi !
-#        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_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
-#        dico["PRECISION"]    = f ; entier ; Précision sur l'instant du champ
-#        dico["CRITERE"]      = f ; entier ; Critère de précision sur l'instant du champ
-#        dico["CHAM_MAJ"]     = f ; string ; Nom ASTER du champ interpolé sur le nouveau maillage
-#        dico["NOM_MED"]      = o ; string ; Nom MED du champ
-#
-# 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 :
-    indic_est_deja_imprime = 0
-    if dico_indi.has_key("RESULTAT") :
-      Liste_aux = [ "RESULTAT", "NOM_CHAM" ]
-    else :
-      Liste_aux = [ "CHAM_GD" ]
-  else :
-    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_MAJ" ) :
-      Liste_Champs_imprime.append(dico)
-#     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 ?
-        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 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] ) :
-                    on_a_le_champ = 0
-                    break
-        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 indic_est_deja_imprime :
-    Liste_Champs_imprime.append(dico_indi)
-#
-# 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", "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,
-                        **motscsi
-                      )
-###    print ".. motscfa = ",motscfa
-#
-    IMPR_RESU ( INFO = INFO, 
-                FORMAT ='MED', UNITE = Unite_Fichier_ASTER_vers_HOMARD,
-                **motscfa )
-#
-#====================================================================
-# 5. ==> Création des fichiers de données pour HOMARD
-#====================================================================
-#
-#gn  print "\.. Debut de 5."
-#
-  dico_configuration = {}
-#
-# 5.1. ==> Les généralités
-#
-  dico_configuration["INFO"] = INFO
-#
-  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 :
-#gn    print "Nom MED de " + dico["Type_Maillage"] + " = " + dico["NOM_MED"]
-    dico_configuration[ "NOM_MED_"+dico["Type_Maillage"] ] = dico["NOM_MED"]
-#
-# 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")
-      for cle in Liste_aux :
-        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"]
-#
-# 5.4. ==> Les zones de raffinement
-#
-  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 :
-    dico_aux = {}
-    if ( dico["Type_Champ"] == "CHAMP_MAJ" ) :
-      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 ) :
-            dico_aux[cle] = dico[cle]
-#gn      print dico_aux
-      if prem :
-        l_aux = [dico_aux]
-        prem = 0
-      else :
-        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"
-#
-# 5.7. ==> Impression eventuelle des fichiers créés
-#
-#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
-                              _F(NOM_PARA=str(INFO)),       # niveau d information
-                              _F(NOM_PARA=Nom_Fichier_Donnees), # fichier de données HOMARD
-                             ),
-                  LOGICIEL = homard
-                )
-#
-###  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)
-#
-#====================================================================
-# 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"
-#====================================================================
-#
-  if ( mode_homard == "ADAP" ) :
-#
-# 7.1. ==> Le maillage
-#
-#gn    print "args = ",args
-    for dico in Liste_Maillages :
-#gn      print dico
-      if ( dico["Action"] == "A_lire" ) :
-        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
-#
-# 7.2. ==> Les champs
-#
-    for dico in Liste_Champs :
-      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 ) :
-              motscsi[cle] = dico[cle]
-        if dico.has_key("NUME_ORDRE") :
-          motscsi["NUME_PT"] = dico["NUME_ORDRE"]
-        champ_maj = LIRE_CHAMP ( UNITE = Unite_Fichier_HOMARD_vers_ASTER, FORMAT = "MED",
-                                 MAILLAGE = maillage_np1,
-                                 NOM_MED = dico["NOM_MED"], NOM_CMP_IDEM = "OUI", TYPE_CHAM = dico["TYPE_CHAM"],
-                                 INFO = INFO, **motscsi )
-#
-#====================================================================
-# 8. Menage des fichiers MED et HOMARD devenus inutiles
-#====================================================================
-#
-  Liste_aux = [ Fichier_ASTER_vers_HOMARD ]
-  if ( mode_homard == "ADAP" ) :
-    Liste_aux.append(Fichier_HOMARD_vers_ASTER)
-    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.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])
-        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 !
-#====================================================================
-#
-#gn  if ( mode_homard == "ADAP" ) :
-#gn    os.system("sleep 1")
-#
-  return
diff --git a/Aster/Cata/cataSTA81/Macro/macr_ascouf_calc_ops.py b/Aster/Cata/cataSTA81/Macro/macr_ascouf_calc_ops.py
deleted file mode 100644 (file)
index fcb3735..0000000
+++ /dev/null
@@ -1,683 +0,0 @@
-#@ MODIF macr_ascouf_calc_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-def macr_ascouf_calc_ops(self,TYPE_MAILLAGE,CL_BOL_P2_GV,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,
-                              FOND_FISS,CHARGE,RESU_THER,AFFE_MATERIAU,
-                              PRES_REP,ECHANGE,TORS_P1,COMP_INCR,COMP_ELAS,
-                              SOLVEUR,CONVERGENCE,NEWTON,RECH_LINEAIRE,
-                              INCREMENT,THETA_3D,IMPR_TABLE,IMPRESSION,INFO,TITRE ,**args):          
-  """
-     Ecriture de la macro MACR_ASCOUF_CALC
-  """
-  from Accas import _F
-  import types
-  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
-  mc_IMPR_TABLE   =IMPR_TABLE
-  # On importe les definitions des commandes a utiliser dans la macro
-  AFFE_MODELE      =self.get_cmd('AFFE_MODELE'     )
-  AFFE_MATERIAU    =self.get_cmd('AFFE_MATERIAU'   )
-  AFFE_CARA_ELEM   =self.get_cmd('AFFE_CARA_ELEM'  )
-  AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F')
-  THER_LINEAIRE    =self.get_cmd('THER_LINEAIRE'   )
-  AFFE_CHAR_MECA   =self.get_cmd('AFFE_CHAR_MECA'  )
-  STAT_NON_LINE    =self.get_cmd('STAT_NON_LINE'   )
-  CALC_ELEM        =self.get_cmd('CALC_ELEM'       )
-  IMPR_RESU        =self.get_cmd('IMPR_RESU'       )
-  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           =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)
-#------------------------------------------------------------------
-# DATA
-  GRMAIL = ('COUDE','PEAUINT','PEAUEXT','EXTUBE','CLGV','FACE1','FACE2')
-#------------------------------------------------------------------
-#  
-  if CL_BOL_P2_GV!=None :
-    if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE' :
-       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) :
-       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) :
-       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']
-       for impt in impr_table_nom_para : 
-         if impt in ('SI_LONG','SI_CIRC','SI_RADI') :
-           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))   )  :
-             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 : UTMESS('A', "MACR_ASCOUF_CALC","ANGL_COUDE et ANGL_SOUS_EPAI sont inutiles dans ce cas")
-#
-#------------------------------------------------------------------
-#
-#     --- commande AFFE_MODELE ---
-#
-  self.DeclareOut('modele',MODELE)
-  mcfact=[]
-  if (PRES_REP!=None) and (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') :
-     mcfact.append(_F(GROUP_MA=GRMAIL     ,PHENOMENE='MECANIQUE',MODELISATION='3D'    ))
-  else:
-     mcfact.append(_F(GROUP_MA=GRMAIL[:5] ,PHENOMENE='MECANIQUE',MODELISATION='3D'    ))
-  if TORS_P1!=None :
-     mcfact.append(_F(GROUP_MA='P1' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR'))
-  if CL_BOL_P2_GV==None :
-     mcfact.append(_F(GROUP_MA='P2' ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR'))
-  modele = AFFE_MODELE( MAILLAGE = MAILLAGE ,
-                        AFFE     = mcfact    )
-  if ECHANGE!=None :                                # modele thermique
-     __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE ,
-                             AFFE     = _F(TOUT        ='OUI',
-                                           PHENOMENE   ='THERMIQUE',
-                                           MODELISATION='3D' )       )
-#------------------------------------------------------------------
-#
-#     --- commande AFFE_MATERIAU ---
-#
-  if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER)
-  mcfact=[]
-  for mater in mc_AFFE_MATERIAU :
-     if mater['TOUT']!=None :
-       mcfact.append(_F(TOUT    =mater['TOUT'    ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-       rccmat = mater['MATER']
-     else                   :
-       mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-       if    mater['GROUP_MA'][:5]=='COUDE' :
-         if TORS_P1!=None :
-           mcfact.append(_F(GROUP_MA='P1',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-           mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-         elif (len(mc_AFFE_MATERIAU)==1) and (CL_BOL_P2_GV==None) :
-           mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-       elif (mater['BOL'     ][:3]=='BOL'  ) and (CL_BOL_P2_GV==None) :
-         mcfact.append(_F(GROUP_MA='P2',MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-  affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE ,
-                          MODELE   = modele ,
-                          AFFE     = mcfact    )
-#------------------------------------------------------------------
-#
-#     --- commande AFFE_CARA_ELEM ---
-#
-  if (TORS_P1!=None) or (CL_BOL_P2_GV==None) :
-    if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM)
-    motscles={}
-    motscles['DISCRET']=[]
-    if (TORS_P1!=None)      : motscles['DISCRET'].append(_F( GROUP_MA='P1' ,
-                                                             CARA    ='K_TR_D_N',
-                                                             VALE    = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),)
-    if (CL_BOL_P2_GV==None) : motscles['DISCRET'].append(_F( GROUP_MA='P2' ,
-                                                             CARA    ='K_TR_D_N',
-                                                             VALE    = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),)
-
-    carael = AFFE_CARA_ELEM( MODELE   = modele ,**motscles)
-#
-  if ECHANGE!=None :
-#------------------------------------------------------------------
-#
-#     --- commande AFFE_CHAR_THER_F ---
-#         condition aux limites
-#
-     __chther = AFFE_CHAR_THER_F( MODELE = __modthe ,
-                                  ECHANGE= _F(GROUP_MA='PEAUINT',
-                                              COEF_H  =ECHANGE['COEF_H'],
-                                              TEMP_EXT=ECHANGE['TEMP_EXT'],), )
-#------------------------------------------------------------------
-#
-#     --- calcul thermique ---
-#
-     if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER)
-     mcsimp={}
-     if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT']
-     if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ]
-     mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp)
-     resuth = THER_LINEAIRE( MODELE     = __modthe ,
-                             CHAM_MATER = affmat ,
-                             TEMP_INIT  = _F(STATIONNAIRE='OUI',),
-                             EXCIT      = _F(CHARGE=__chther,),
-                             INCREMENT  = mcfact, )
-#
-     if CHARGE!=None : self.DeclareOut('chmeth',CHARGE)
-     chmeth = AFFE_CHAR_MECA( MODELE        = modele ,
-                              TEMP_CALCULEE = resuth )
-#------------------------------------------------------------------
-#
-#     --- commande AFFE_CHAR_MECA ---
-#         condition aux limites de type raccord 3d-poutre
-#         ou bien blocage de mouvements rigides en cas d embout
-#         a section conique, bol de type gv
-#
-  motscles={}
-  motscles['LIAISON_ELEM']=[]
-  if TORS_P1!=None :
-    motscles['LIAISON_ELEM'].append(_F( OPTION    ='3D_POU'  ,
-                                         GROUP_MA_1='EXTUBE',
-                                         GROUP_NO_2='P1') )
-  if CL_BOL_P2_GV==None :
-    motscles['LIAISON_ELEM'].append(_F( OPTION    ='3D_POU'  ,
-                                         GROUP_MA_1='CLGV',
-                                         GROUP_NO_2='P2') )
-    motscles['DDL_IMPO'    ]=_F( GROUP_NO  ='P2' ,
-                                 DX        = 0.0 ,
-                                 DY        = 0.0 ,
-                                 DZ        = 0.0 ,
-                                 DRX       = 0.0 ,
-                                 DRY       = 0.0 ,
-                                 DRZ       = 0.0 , )
-  else :
-    motscles['FACE_IMPO'   ]=_F( GROUP_MA  ='CLGV' ,
-                                 DNOR      = 0.0 , )
-    ALPHA  = CL_BOL_P2_GV['ANGLE' ]
-    AZIM   = CL_BOL_P2_GV['AZIMUT']
-    ALPHAR = ALPHA*pi/180.0
-    AZIMR  = AZIM *pi/180.0
-    DDLB1  = []
-    COEFB1 = []
-    if (AZIM!=0.0) and (AZIM!=180.0) and (ALPHA!=90.0) :
-      DDLB1.append('DX')
-      COEFB1.append(SIN(AZIMR)*COS(ALPHAR))
-    if (AZIM!=90.0) :
-      DDLB1.append('DY')
-      COEFB1.append(COS(AZIMR))
-    if (AZIM!=0.) and (AZIM!=180.) and (ALPHA!=0.):
-      DDLB1.append('DZ')
-      COEFB1.append(-SIN(AZIMR)*SIN(ALPHAR))
-    POINT=['BOUT1',]*len(DDLB1)
-    motscles['LIAISON_DDL']=_F( GROUP_NO  = POINT  ,
-                                DDL       = DDLB1  ,
-                                COEF_MULT = COEFB1 ,
-                                COEF_IMPO = 0.0    , )
-
-  _conlim = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
-#
-#     --- commande AFFE_CHAR_MECA ---
-#         chargement mecanique :  pres_rep, effet de fond 
-#
-  if PRES_REP!=None :
-    motscles={}
-    if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[:4]=='FISS') :
-      motscles['PRES_REP']=_F( GROUP_MA  = ('PEAUINT','FACE1','FACE2') ,
-                               PRES      = PRES_REP['PRES'] ,)
-    else :
-      motscles['PRES_REP']=_F( GROUP_MA  = 'PEAUINT',
-                               PRES      = PRES_REP['PRES'] ,)
-    if PRES_REP['EFFE_FOND_P1']!=None :
-      motscles['EFFE_FOND']=_F( GROUP_MA_INT  = 'BORDTU'  ,
-                                GROUP_MA      = 'EXTUBE'  ,
-                                PRES          = PRES_REP['PRES'] ,)
-#
-    _chpres = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
-#
-#     --- commande AFFE_CHAR_MECA ---
-#         chargement mecanique : torseur d efforts 
-#
-  if TORS_P1!=None :
-    _chtor = [None]*6
-    i=0
-    for tors in TORS_P1:
-      mcsimp={}
-      if tors['FX']!=None : mcsimp['FX']=tors['FX']
-      if tors['FY']!=None : mcsimp['FY']=tors['FY']
-      if tors['FZ']!=None : mcsimp['FZ']=tors['FZ']
-      if tors['MX']!=None : mcsimp['MX']=tors['MX']
-      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 , )
-      i=i+1
-#
-#     --- commande STAT_NON_LINE ---
-#
-  motscles={}
-#
-  mcfex=[]  # mot clé facteur EXCIT
-  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']))
-    else :
-      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']))
-       else :
-          mcfex.append(_F(CHARGE=_chtor[i],))
-       i=i+1
-  motscles['EXCIT'] =mcfex
-#
-  mcfci=[]  # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets
-  if COMP_INCR!=None :
-    mcfci.append(_F(TOUT='OUI' ,RELATION=COMP_INCR['RELATION']))
-  elif COMP_ELAS!=None :
-    motscles['COMP_ELAS'] =_F(GROUP_MA='COUDE',RELATION=COMP_ELAS['RELATION'])
-    if TORS_P1!=None     : mcfci.append(  _F(GROUP_MA='P1',RELATION='ELAS'))
-    if CL_BOL_P2_GV==None: mcfci.append(  _F(GROUP_MA='P2',RELATION='ELAS'))
-  motscles['COMP_INCR'] =mcfci
-#
-  dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-  for i in dSolveur.keys():
-      if dSolveur[i]==None : del dSolveur[i]
-#
-  dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste)
-  for i in dConverg.keys():
-      if dConverg[i]==None : del dConverg[i]
-#
-  dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
-  for i in dNewton.keys():
-      if dNewton[i]==None : del dNewton[i]
-#
-  dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste)
-  for i in dRechlin.keys():
-      if dRechlin[i]==None : del dRechlin[i]
-#
-  dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
-  for i in dIncrem.keys():
-      if dIncrem[i]==None : del dIncrem[i]
-#
-  if TITRE!=None :
-    motscles['TITRE'        ] =TITRE
-  motscles  ['SOLVEUR'      ] =dSolveur
-  motscles  ['CONVERGENCE'  ] =dConverg
-  motscles  ['NEWTON'       ] =dNewton
-  motscles  ['RECH_LINEAIRE'] =dRechlin
-  motscles  ['INCREMENT'    ] =dIncrem
-  self.DeclareOut('nomres',self.sd)
-  nomres = STAT_NON_LINE( MODELE     = modele ,
-                          CHAM_MATER = affmat ,
-                          CARA_ELEM  = carael ,
-                          INFO       = INFO   , **motscles)
-#
-#     --- commande CALC_ELEM ---
-#
-  nomres = CALC_ELEM( reuse      = nomres,
-                      RESULTAT   = nomres ,
-                      MODELE     = modele ,
-                      TOUT_ORDRE = 'OUI'  ,
-                      OPTION     = ('SIEF_ELNO_ELGA','EQUI_ELNO_SIGM') ,
-                      INFO       = INFO   ,)
-#
-#     --- post-traitements ---
-#
-  if TYPE_MAILLAGE=='SOUS_EPAIS_COUDE':
-#
-#     --- post traitement sous-epaisseurs:  ligaments  ---
-#
-     if mc_IMPR_TABLE!=None:       
-#
-      SECT=('MI','TU','GV')
-      LIG=('FDRO','EXDR','EXTR','EXGA','FGAU','INGA','INTR','INDR')
-      if   mc_IMPR_TABLE['POSI_ANGUL']==None:
-         ASEP=(mc_IMPR_TABLE['POSI_CURV_LONGI']/mc_IMPR_TABLE['R_CINTR'])*(180./pi)
-      else :
-         ASEP=mc_IMPR_TABLE['POSI_ANGUL']
-#
-#     moyenne_rccm, invariant et moyenne sur les ligaments dans
-#     l epaisseur
-#
-      l_grno=MAILLAGE.LIST_GROUP_NO()
-      tabprl=[None]*4
-      tablig=[None]*4
-#
-#     prelevements des ligaments circonferentiels et longitudinaux
-#     de la sous-epaisseur
-#
-      lgrno=[]
-      for tgrno in l_grno : 
-        if tgrno[0][:3] in ('CIR','LON')    : lgrno.append(tgrno[0])
-        elif tgrno[0][:5]=='PCENT'          : lgrno.append(tgrno[0])
-        elif (tgrno[0][:4] in LIG) and (tgrno[0][4:6] not in ('GV','TU','MI')): lgrno.append(tgrno[0])
-#
-      motscles={}
-      motscles['ACTION']=[]
-      for grno in lgrno : 
-         motscles['ACTION'].append(_F(RESULTAT=nomres,
-                                      NOM_CHAM='SIEF_ELNO_ELGA',
-                                      TOUT_CMP='OUI',
-                                      INTITULE=grno,
-                                      GROUP_NO=grno,
-                                      OPERATION='EXTRACTION',))
-      motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR'
-      tabprl[1]=POST_RELEVE_T(**motscles)
-      tablig[1]=POST_RCCM(MATER          = rccmat,
-                          TYPE_RESU_MECA = 'EVOLUTION',
-                          OPTION         = 'PM_PB',
-                          TRANSITOIRE=_F(TABL_RESU_MECA = tabprl[1],),)
-#
-      motscles={}
-      motscles['ACTION']=[]
-      for tgrno in lgrno : 
-         motscles['ACTION'].append(_F(RESULTAT=nomres,
-                                      NOM_CHAM='SIEF_ELNO_ELGA',
-                                      INTITULE=tgrno,
-                                      GROUP_NO=tgrno,
-                                      INVARIANT='OUI',
-                                      OPERATION='EXTRACTION',))
-      motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR'
-      
-      tablig[2]=POST_RELEVE_T(**motscles)
-#
-      motscles={}
-      nommail=MAILLAGE.nom
-      coord   =aster.getvectjev(nommail.ljust(8)+'.COORDO    .VALE')
-      linomno =aster.getvectjev(nommail.ljust(8)+'.NOMNOE')
-      collgrno=aster.getcolljev(nommail.ljust(8)+'.GROUPENO')
-
-      motscles['ACTION']=[]
-      for tgrno in lgrno : 
-         if tgrno[:3]!='LON' :
-          if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.)
-          else                                   : vecty=(sin(ASEP*pi/180.),0.,cos(ASEP*pi/180.))
-         else :
-          if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.)
-          else :
-                 grpn=collgrno['FGAUTU  ']
-                 LT1=coord[3*(grpn[0]-1)+2]
-                 for node in grpn:
-                  X = coord[3*(node-1)]
-                  Y = coord[3*(node-1)+1]
-                  Z = coord[3*(node-1)+2]
-                  RCIN = mc_IMPR_TABLE['R_CINTR']
-                  if   Z<LT1                           : ANGSEC=0.
-                  elif X<(-1*RCIN) : ANGSEC=mc_IMPR_TABLE['ANGLE']*pi/180.
-                  else :
-                      VCOS = cos((-LT1-Z)/(sqrt((X+RCIN)**2+Y**2 )))
-                      VSIN = sin((-LT1-Z)/(sqrt((X+RCIN)**2+Y**2 )))
-                      ANGSEC = atan2(VSIN,VCOS)
-                 vecty=(sin(ANGSEC),0.,cos(ANGSEC))
-         motscles['ACTION'].append(_F(RESULTAT=nomres,
-                                      NOM_CHAM='SIEF_ELNO_ELGA',
-                                      INTITULE=tgrno,
-                                      GROUP_NO=tgrno,
-                                      NOM_CMP=('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ',),
-                                      REPERE='LOCAL',
-                                      VECT_Y=vecty,
-                                      OPERATION='MOYENNE',))
-      motscles['TITRE']='TABLE DE POST-TRAITEMENT SECTION SOUS-EPAISSEUR'
-      tablig[3]=POST_RELEVE_T(**motscles)
-#
-#     prelevements des ligaments sur les sections MI,TU et GV
-#     les 8 ligaments sont tous les 45 degres
-#
-      ACOUR = mc_IMPR_TABLE['ANGLE']*pi/180.0
-      secprl=[None]*3
-      secrcm=[None]*3
-      secinv=[None]*3
-      secmoy=[None]*3
-      for i in range(3):
-         if mc_IMPR_TABLE['TRANSFORMEE']=='TUBE': vecty=(0.,0.,1.)
-         else :
-             if i==0  : vecty=(sin(ACOUR/2.),0.,cos(ACOUR/2.))
-             if i==1  : vecty=(0.,0.,1.)
-             if i==2  : vecty=(sin(ACOUR),0.,cos(ACOUR))
-         motscles = {}
-         motscles['TITRE']='TABLE DE POST-TRAITEMENT MOYENNE RCCM SECTION '+SECT[i]
-#
-#        moyenne RCCM sur les sections MI,TU et GV
-#
-         motscles={}
-         motscles['ACTION']=[]
-         for j in range(8) :
-            motscles['ACTION'].append(_F(RESULTAT=nomres,
-                                         NOM_CHAM='SIEF_ELNO_ELGA',
-                                         TOUT_CMP='OUI',
-                                         INTITULE=LIG[j]+SECT[i],
-                                         GROUP_NO=LIG[j]+SECT[i],
-                                         OPERATION='EXTRACTION',))
-         motscles['TITRE']='TABLE DE POST-TRAITEMENT MOYENNE RCCM SECTION '+SECT[i]
-         secprl[i]=POST_RELEVE_T(**motscles)
-         secrcm[i]=POST_RCCM(MATER          = rccmat,
-                             TYPE_RESU_MECA = 'EVOLUTION',
-                             OPTION         = 'PM_PB',
-                             TRANSITOIRE=_F(TABL_RESU_MECA = secprl[i],),)
-#
-#        invariants sur les sections MI,TU et GV
-#
-         motscles = {}
-         motscles['TITRE']='TABLE DE POST-TRAITEMENT INVARIANTS SECTION '+SECT[i]
-         motscles['ACTION']=[]
-         for j in range(8) : motscles['ACTION'].append(_F(INTITULE =LIG[j]+SECT[i],
-                                                          GROUP_NO =LIG[j]+SECT[i],
-                                                          RESULTAT =nomres,
-                                                          NOM_CHAM ='SIEF_ELNO_ELGA',
-                                                          INVARIANT='OUI',
-                                                          OPERATION='EXTRACTION'))
-         secinv[i] = POST_RELEVE_T(**motscles)
-#
-#        moyennes contraintes sur les sections MI,TU et GV
-#
-         motscles = {}
-         motscles['TITRE']='TABLE DE POST-TRAITEMENT MOYENNE SECTION '+SECT[i]
-         motscles['ACTION']=[]
-         for j in range(8) : motscles['ACTION'].append(_F(INTITULE =LIG[j]+SECT[i],
-                                                          REPERE   ='LOCAL',
-                                                          VECT_Y   =vecty,
-                                                          GROUP_NO =LIG[j]+SECT[i],
-                                                          RESULTAT =nomres,
-                                                          NOM_CHAM ='SIEF_ELNO_ELGA',
-                                                          NOM_CMP  =('SIXX','SIYY','SIZZ','SIXY','SIXZ','SIYZ'),
-                                                          OPERATION='MOYENNE'))
-         secmoy[i] = POST_RELEVE_T(**motscles)
-
-#
-#     impression des valeurs maximales pour chaque sous-epaisseur
-#
-      if mc_IMPR_TABLE['TOUT_PARA']=='OUI' :
-             list_para=['TRESCA_MEMBRANE','TRESCA_MFLE','TRESCA','SI_LONG','SI_RADI','SI_CIRC']
-      else : list_para=mc_IMPR_TABLE['NOM_PARA']
-      if 'TRESCA_MEMBRANE' in list_para:
-        IMPR_TABLE(TABLE    = tablig[1],
-                   FILTRE   = _F( NOM_PARA  ='PM', CRIT_COMP ='MAXI'),
-                   NOM_PARA = ('INTITULE','PM'));
-      if 'TRESCA_MFLE'     in list_para:
-        IMPR_TABLE(TABLE    = tablig[1],
-                   FILTRE   =(_F( NOM_PARA ='LIEU',VALE_K   ='ORIG'),
-                              _F( NOM_PARA ='PMB', CRIT_COMP='MAXI'),),
-                   NOM_PARA = ('INTITULE','PMB'));
-        IMPR_TABLE(TABLE    = tablig[1],
-                   FILTRE   =(_F( NOM_PARA='LIEU', VALE_K  ='EXTR'),
-                              _F( NOM_PARA ='PMB', CRIT_COMP='MAXI'),),
-                   NOM_PARA = ('INTITULE','PMB'));
-      if 'SI_RADI'         in list_para:
-        IMPR_TABLE(TABLE    = tablig[3],
-                   FILTRE   =(_F( NOM_PARA='QUANTITE',VALE_K  ='MOMENT_0'),
-                              _F( NOM_PARA ='SIXX',   CRIT_COMP='MAXI'),),
-                   NOM_PARA = ('INTITULE','SIXX'));
-      if 'SI_LONG'         in list_para:
-        IMPR_TABLE(TABLE    = tablig[3],
-                   FILTRE   =(_F( NOM_PARA='QUANTITE',VALE_K  ='MOMENT_0'),
-                              _F( NOM_PARA ='SIYY',   CRIT_COMP='MAXI'),),
-                   NOM_PARA = ('INTITULE','SIYY'));
-      if 'SI_CIRC'         in list_para:
-        IMPR_TABLE(TABLE    = tablig[3],
-                   FILTRE   =(_F( NOM_PARA='QUANTITE',VALE_K  ='MOMENT_0'),
-                              _F( NOM_PARA ='SIZZ',   CRIT_COMP='MAXI'),),
-                   NOM_PARA = ('INTITULE','SIZZ'));
-      if 'TRESCA'          in list_para:
-        IMPR_TABLE(TABLE      = tablig[2],
-                   NOM_PARA   = ('INTITULE','NOEUD','TRESCA',),
-                   PAGINATION = 'INTITULE',
-                   FILTRE     = _F( NOM_PARA   = 'TRESCA',
-                                    CRIT_COMP  = 'MAXI'     ) )  ;
-#
-#     impression des resultats pour chaque sous-epaisseur
-#
-      if 'TRESCA_MEMBRANE' in list_para:
-        IMPR_TABLE(TABLE    = tablig[1],
-                   FILTRE   = _F( NOM_PARA='LIEU', VALE_K  ='ORIG'),
-                   NOM_PARA = ('INTITULE','PM'));
-      if 'TRESCA_MFLE'     in list_para:
-        IMPR_TABLE(TABLE    = tablig[1],
-                   FILTRE   = _F( NOM_PARA='LIEU', VALE_K  ='ORIG'),
-                   NOM_PARA = ('INTITULE','PMB'));
-        IMPR_TABLE(TABLE    = tablig[1],
-                   FILTRE   = _F( NOM_PARA='LIEU', VALE_K  ='EXTR'),
-                   NOM_PARA = ('INTITULE','PMB'));
-      if 'SI_RADI'         in list_para:
-        IMPR_TABLE(TABLE    = tablig[3],
-                   FILTRE   = _F( NOM_PARA='QUANTITE', VALE_K  ='MOMENT_0'),
-                   NOM_PARA = ('INTITULE','SIXX'));
-      if 'SI_LONG'         in list_para:
-        IMPR_TABLE(TABLE    = tablig[3],
-                   FILTRE   = _F( NOM_PARA='QUANTITE', VALE_K  ='MOMENT_0'),
-                   NOM_PARA = ('INTITULE','SIYY'));
-      if 'SI_CIRC'         in list_para:
-        IMPR_TABLE(TABLE    = tablig[3],
-                   FILTRE   = _F( NOM_PARA='QUANTITE', VALE_K  ='MOMENT_0'),
-                   NOM_PARA = ('INTITULE','SIZZ'));
-      if 'TRESCA'          in list_para:
-        IMPR_TABLE(TABLE      = tablig[2],
-                   NOM_PARA   = ('INTITULE','NOEUD','TRESCA',),
-                   PAGINATION = 'INTITULE');
-#
-#     impression des resultats pour les sections MI, TU et GV
-#
-      for k in range(3):
-       if 'TRESCA_MEMBRANE' in list_para:
-         IMPR_TABLE(TABLE    = secrcm[k],
-                    FILTRE   = _F( NOM_PARA='LIEU', VALE_K  ='ORIG'),
-                    NOM_PARA = ('INTITULE','PM'));
-       if 'TRESCA_MFLE'     in list_para:
-         IMPR_TABLE(TABLE    = secrcm[k],
-                    FILTRE   = _F( NOM_PARA='LIEU', VALE_K  ='ORIG'),
-                    NOM_PARA = ('INTITULE','PMB'));
-         IMPR_TABLE(TABLE    = secrcm[k],
-                    FILTRE   = _F( NOM_PARA='LIEU', VALE_K  ='EXTR'),
-                    NOM_PARA = ('INTITULE','PMB'));
-       if 'SI_RADI'         in list_para:
-         IMPR_TABLE(TABLE    = secmoy[k],
-                    FILTRE   = _F( NOM_PARA='QUANTITE', VALE_K  ='MOMENT_0'),
-                    NOM_PARA = ('INTITULE','SIXX'));
-       if 'SI_LONG'         in list_para:
-         IMPR_TABLE(TABLE    = secmoy[k],
-                    FILTRE   = _F( NOM_PARA='QUANTITE', VALE_K  ='MOMENT_0'),
-                    NOM_PARA = ('INTITULE','SIYY'));
-       if 'SI_CIRC'         in list_para:
-         IMPR_TABLE(TABLE    = secmoy[k],
-                    FILTRE   = _F( NOM_PARA='QUANTITE', VALE_K  ='MOMENT_0'),
-                    NOM_PARA = ('INTITULE','SIZZ'));
-       if 'TRESCA'          in list_para:
-         IMPR_TABLE(TABLE      = secinv[k],
-                    NOM_PARA   = ('INTITULE','NOEUD','TRESCA',),
-                    PAGINATION = 'INTITULE');
-#
-  if TYPE_MAILLAGE in ('FISS_COUDE','FISS_AXIS_DEB'):
-#
-#   --- post traitement fissure :  calcul de g ----
-#
-    motscles = {}
-    if FOND_FISS != None : self.DeclareOut('fonfis',FOND_FISS)
-    if TYPE_MAILLAGE =='FISS_COUDE' :
-       motscles['FOND_FISS']=_F(GROUP_NO='FONDFISS')
-       motscles['VECT_GRNO_ORIG']= ('PFOR','THOR')
-       motscles['VECT_GRNO_EXTR']= ('PFEX','THEX')
-    else :
-       motscles['FOND_FERME']=_F(GROUP_MA='FONDFISS',
-                                 GROUP_NO_ORIG='PFOR',
-                                 GROUP_MA_ORIG='MAIL_ORI')
-    fonfis=DEFI_FOND_FISS(MAILLAGE=MAILLAGE,
-                          LEVRE_SUP=_F(GROUP_MA='FACE1'),
-                          LEVRE_INF=_F(GROUP_MA='FACE2'),
-                          INFO=INFO,**motscles
-                          );
-    if THETA_3D!=None :
-      for thet in THETA_3D:
-        _nothet=CALC_THETA(MODELE=modele,
-                           FOND_FISS=fonfis,
-                           THETA_3D=_F(TOUT   = 'OUI',
-                                       MODULE = 1.,
-                                       R_INF  = thet['R_INF'],
-                                       R_SUP  = thet['R_SUP'],),
-                           );
-        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( RESULTAT   =nomres,
-                        OPTION='CALC_G_GLOB',
-                        TOUT_ORDRE ='OUI',
-                        THETA      =_F(THETA=_nothet),**motscles);
-#
-        IMPR_TABLE(TABLE=_nogthe,);
-#
-      for thet in THETA_3D:
-        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'])
-        if   TYPE_MAILLAGE =='FISS_COUDE' :
-                             motscles['LISSAGE']=_F(LISSAGE_THETA='LEGENDRE',
-                                                    LISSAGE_G='LEGENDRE',
-                                                    DEGRE=4,)
-        elif TYPE_MAILLAGE =='FISS_AXIS_DEB' :
-                             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,);
-#
-#     --- commande IMPR_RESU  ---
-#
-  if IMPRESSION!=None:
-    mcfresu =[]
-    motscles={}
-    if IMPRESSION['FORMAT']=='IDEAS' :
-                                  motscles['VERSION'   ]= IMPRESSION['VERSION']
-    if IMPRESSION['FORMAT']=='CASTEM' :
-                                  motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI']
-    mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,))
-    if ECHANGE!=None:
-      motscles={}
-      if IMPRESSION['FORMAT']=='IDEAS' :
-                                    motscles['VERSION'   ]= IMPRESSION['VERSION']
-      if IMPRESSION['FORMAT']=='CASTEM' :
-                                    motscles['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI']
-      mcfresu.append(_F(RESULTAT=resuth,))
-    IMPR_RESU( MODELE = modele,
-               RESU   = mcfresu,
-               FORMAT=IMPRESSION['FORMAT'],**motscles)
-#
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macr_ascouf_mail_ops.py b/Aster/Cata/cataSTA81/Macro/macr_ascouf_mail_ops.py
deleted file mode 100644 (file)
index 3495d88..0000000
+++ /dev/null
@@ -1,2793 +0,0 @@
-#@ MODIF macr_ascouf_mail_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-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):
-  """
-  FONCTION F(CP)=CC
-  OU CC EST LA TAILLE DE LA FISSURE SUR LE COUDE 
-  ET CP LA TAILLE DE FISSURE SUR LA PLAQUE
-  """
-  AZIMR = AZIM*2.*pi/360.
-  if POS=='DEB_INT': X = RM-EP/2.
-  else             : X = RM+EP/2.
-  if abs(ORIEN-45.0)<0.01: SIG =  1.
-  else                   : SIG = -1.
-  f_ASCFON = - SIG*X*RC/(2.*RM*sin(AZIMR)) * (                       \
-                  log ( RM/X+RM/RC*(cos(AZIMR)-                      \
-                         sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) +           \
-                        sqrt( 1.+( RM/X+RM/RC*(cos(AZIMR)-           \
-                         sin(AZIMR)*SIG*Y/(sqrt(2.)*RM)) )**2 )      \
-                       )                                             \
-                  - log ( RM/X+RM/RC*cos(AZIMR)                      \
-                       + sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2)       \
-                                            )      )                 \
-               - SIG*X*RC/(2.*RM*SIN(AZIMR)) *                       \
-      (    ( RM/X+RM/RC* ( cos(AZIMR)-                               \
-                           sin(AZIMR)*SIG*Y/(sqrt(2.0)*RM) )         \
-                    )  * sqrt( 1. + ( RM/X+RM/RC*(cos(AZIMR)-        \
-                         sin(AZIMR)*SIG*Y/(SQRT(2.)*RM)) )**2 )      \
-                    - ( RM/X+RM/RC*COS(AZIMR) )                      \
-                       * sqrt( 1. +(RM/X+RM/RC*cos(AZIMR))**2)       \
-                                                  )                  \
-                    - 2.0*AXEC 
-  return f_ASCFON
-
-# ------------------------------------------------------------------------------
-def ASCFIS(ALPHA, RM, RC, EP, SUREP, GEOM, AXEA,
-           AXEC, AZIM, POS, SF, DSF, BETA, ORIEN):
-  """
-  MACR_ASCOUF_MAIL ASCFIS
-  taille initiale du defaut fissure sur la plaque en
-  fonction des donnees sur le coude ou le tube suivant la
-  transformation choisie
-
-  ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-
-  ALPHA = ANGLE DU COUDE
-  RM    = RAYON MOYEN DU COUDE
-  RC    = RAYON DE CINTRAGE DU COUDE
-  EP    = EPAISSEUR DU COUDE
-  SUREP = VALEUR DE LA SUREPAISSEUR
-  GEOM  = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)   
-  AXEA  = PROFONDEUR FISSURE (DEMI PETIT AXE)
-  AXEC  = DEMI GRAND AXE FISSURE
-  AZIM  = POSITION AZIMUTALE DU CENTRE DE LA FISSURE 
-  POS   = POSITION EN PEAU (EXTERNE OU INTERNE)
-  SF    = ABCISSE CURVILIGNE LONGITUDINALE DU CENTRE DE LA FISSURE
-  DSF   = BOOLEEN EXPRESSION POSITION CENTRE FISSURE 
-  BETA  = POSITION ANGULAIRE DU CENTRE DE LA FISSURE
-  ORIEN = ORIENTATION DE LA FISSURE
-
-  -----------------DONNEES RENVOYEES-----------------------
-
-  AXEAP = PROFONDEUR DE LA FISSURE (PETIT AXE) SUR LA PLAQUE
-  AXECP = LONGUEUR DE LA FISSURE (GRAND AXE) SUR LA PLAQUE
-  SFP   = ABCISSE CURVILIGNE LONGITUDINALE CENTRE FISSURE
-          SUR LA PLAQUE
-
-  """
-  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
-  else:                                 X = RM+EP/2.0
-  AZIMR = AZIM*2.0*pi/360.0 
-#
-# -- CALCUL COTE AXIALE DU CENTRE FISSURE SUR LA PLAQUE EN FONCTION
-#    DE L ABSCISSE CURVILIGNE DONNEE SUR LE COUDE OU DE LA POSITION
-#    ANGULAIRE 
-#
-  if DSF:
-    if GEOM=='COUDE': SFP = SF/(1.0+X/RC*cos(AZIMR))
-    else :            SFP = SF
-  else :
-    BETAR = BETA*2.0*pi/360.0
-    if (GEOM=='COUDE'):
-       SF  = BETAR*(RC+X*cos(AZIMR))
-       SFP = SF/(1.0+X/RC*cos(AZIMR))
-    else:
-       SF  = BETAR*RC
-       SFP = SF
-  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 
-#   PARTIE RESTANT DANS LE COUDE.
-#
-  if (GEOM=='COUDE'): DIST = ALPHA*2.0*pi/360.0*(RC+X*cos(AZIMR))
-  else              : DIST = ALPHA*2.0*pi/360.0*RC
-  BCOUD = 0.0
-  BEMB  = 0.0
-  if abs(ORIEN)<0.01:
-# -- FISSURE LONGITUDINALE (0 DEGRE)
-     BSUP = SF + AXEC
-     BINF = SF - AXEC
-     if BSUP>DIST:
-       BCOUD = DIST - BINF
-       BEMB  = BSUP - DIST
-     elif BINF<0. :
-       BCOUD = BSUP 
-       BEMB  = abs(BINF)
-     elif (BINF>=0. and BSUP<=DIST):
-       BCOUD = 2.0*AXEC
-  elif abs(ORIEN-90.)<0.01:
-# -- FISSURE CIRCONFERENTIELLE (90 DEGRES)
-     BSUP = SF
-     BINF = SF
-     if BSUP>DIST:
-       BCOUD = DIST - BINF
-       BEMB  = BSUP - DIST
-     elif BINF<0. :
-       BCOUD = BSUP 
-       BEMB  = abs(BINF)
-     elif (BINF>=0. and BSUP<=DIST):
-       BCOUD = 2.0*AXEC
-  else:
-# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS
-     BSUP = SF + sqrt(2.0)/2.0*AXEC
-     BINF = SF - sqrt(2.0)/2.0*AXEC
-     if BSUP>DIST:
-       BCOUD = (DIST - BINF)*sqrt(2.0)
-       BEMB  = (BSUP - DIST)*sqrt(2.0)
-     elif BINF<0. :
-       BCOUD = BSUP *sqrt(2.0)
-       BEMB  = abs(BINF)*sqrt(2.0)
-     elif (BINF>=0. and BSUP<=DIST):
-       BCOUD = 2.0*AXEC
-  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
-#
-  NEWT=0
-  if abs(ORIEN)<0.01:
-# -- FISSURE LONGITUDINALE (0 DEGRE)
-    if GEOM=='COUDE': AXECP = BCOUD/(1.0+X/RC*cos(AZIMR)) + BEMB
-    else            : AXECP = BCOUD + BEMB
-  elif abs(ORIEN-90.)<0.01:
-# -- FISSURE CIRCONFERENTIELLE (90 DEGRES)
-    AXECP = (BCOUD+BEMB)*RM/X
-  else :
-    if GEOM=='COUDE':
-#   ------- TRANSFORMATION COUDE
-       if AZIM in (0.,180.):
-# -- FISSURE A +/- 45 DEGRES SUR INTRADOS OU EXTRADOS
-          AXECP = BCOUD*RM*sqrt(2.)/( X*sqrt(1.+(RM/X+RM/RC*cos(AZIMR))**2) )+\
-                  BEMB*sqrt( (1.0+(X/RM)**2)*0.5 )
-       else :
-# -- FISSURE A +/- 45 DEGRES AILLEURS
-          AXECP = funct_root.root(ASCFON,(BCOUD-1.,BCOUD+1.))
-          AXECP = AXECP + BEMB*sqrt( (1.+(X/RM)**2)*0.5 )
-          AXECC = ASCFON(AXECP)+BCOUD
-          NEWT=1
-    elif GEOM=='TUBE':
-       AXECP = (BCOUD+BEMB)*sqrt( (1.+(X/RM)**2)*0.5 ) 
-    else :
-       AXECP = BCOUD + BEMB
-#
-  if GEOM=='COUDE':
-    echo_mess.append( 'TAILLE GRAND AXE COUDE DONNE : %.2f \n'%(2.*AXEC))
-  elif GEOM=='TUBE':
-    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:
-    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
-    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
-    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
-#
-  ALPHAR = ALPHA*2.*pi/360.
-  ZSUR1  = ALPHAR*RC/10.
-  ZSUR2  = ALPHAR*RC*9./10.
-  YFISS  = (AZIMR-pi/2.)*RM
-  MU = 0.
-  if (AZIM>=120.) and (AZIM<=240.):
-     if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = 1.
-     elif (SFP<=ZSUR1):                MU = SFP/ZSUR1
-     elif (SFP>ZSUR2):                 MU = (ALPHAR*RC-SFP)/ZSUR1
-  elif (AZIM>=90.) and (AZIM<=120.):
-     if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = YFISS/(pi/6.*RM) 
-     elif (SFP<=ZSUR1):                MU = YFISS*SFP/(pi/6.*RM*ZSUR1)
-     elif (SFP>ZSUR2):                 MU = YFISS*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1)
-  elif (AZIM>=240.) and (AZIM<=270.):
-     if (SFP>=ZSUR1) and (SFP<=ZSUR2): MU = (YFISS-5.*pi/6.*RM)/(pi/6.*RM) 
-     elif (SFP<=ZSUR1):                MU = (YFISS-5.*pi/6.*RM)*SFP/(pi/6.*RM*ZSUR1)
-     elif (SFP>ZSUR2):                 MU = (YFISS-5.*pi/6.*RM)*(ALPHAR*RC-SFP)/(pi/6.*RM*ZSUR1)
-#
-  if SUREP!=0.:
-     AXEAP = AXEA * EP / ( EP + MU*SUREP )
-     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 
-
-
-# ------------------------------------------------------------------------------
-def ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP,GEOM,SYME):
-  """
-  MACR_ASCOUF_MAIL ASCSEP
-  taille initiale sur la plaque des sous-epaisseurs
-
-  ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-
-  ALPHA = ANGLE DU COUDE
-  RM    = RAYON MOYEN DU COUDE
-  RC    = RAYON DE CINTRAGE DU COUDE
-  EP    = EPAISSEUR DU COUDE
-  GEOM  = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)  
-  SYME  = QUART DE STRUCTURE SI 'OUI'
-  """
-  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
-      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':
-         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.
-         AZIMC      = pi
-      else:
-#
-# -- CALCUL DE L ABSCISSE CURVILIGNE CIRCONF.SUR LA PLAQUE  
-#    EN FONCTION DE L AZIMUT OU DE L ABSCISSE CURVIL.CIRCONF
-#    SUR LE COUDE DU CENTRE DE LA SOUS-EPAISSEUR
-#    NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE
-#
-         if ssep['POSI_CURV_CIRC']!=None:
-           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
-           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.
-           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.
-         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) :
-            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 
-#    OU DE LA POSITION ANGULAIRE
-#    NB : MESURE FAITE EN PEAU EXTERNE SUR LE COUDE
-#
-      if ssep['POSI_CURV_LONGI']!=None:
-         if GEOM=='COUDE':
-            ssep.ISLP = ssep['POSI_CURV_LONGI']/(1.+(RM+EP/2.)/RC*cos(AZIMC))
-            AZIML     = ssep.ISLP/RC
-            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.) :
-            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':
-            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 :
-            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.) :
-            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
-#
-#   ON ENVISAGE LE CAS OU UNE PARTIE DE L AXE EST DANS LES
-#   DROITES DES EMBOUTS. LA TRANSFORMATION N EST FAITE QUE SUR LA 
-#   PARTIE RESTANT DANS LE COUDE.
-#
-      if GEOM=='COUDE' : DIST = ALPHA*CG*(RC+(RM+EP/2.)*cos(AZIMC))
-      else             : DIST = ALPHA*CG*RC
-      if ssep['POSI_CURV_LONGI']!=None:
-         BSUP = ssep['POSI_CURV_LONGI']+ssep['AXE_LONGI']/2.
-         BINF = ssep['POSI_CURV_LONGI']-ssep['AXE_LONGI']/2.
-      else:
-         if GEOM=='COUDE' :
-            BSUP = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))+ssep['AXE_LONGI']/2.
-            BINF = ssep.BETA*CG*(RC+(RM+EP/2.)*cos(AZIMC))-ssep['AXE_LONGI']/2.
-         else:
-            BSUP = ssep.BETA*CG*RC + ssep['AXE_LONGI']/2.
-            BINF = ssep.BETA*CG*RC - ssep['AXE_LONGI']/2.
-      BCOUD1 = 0.
-      BCOUD2 = 0.
-      BEMB1  = 0.
-      BEMB2  = 0.
-      if BINF<0. and BSUP>DIST :
-         BCOUD1 = DIST
-         BEMB1  =  abs(BINF) + BSUP-DIST
-      elif BSUP>DIST :
-         BCOUD1 = DIST - BINF
-         BEMB1  = BSUP - DIST
-      elif BINF<0 :
-         BCOUD2 = BSUP
-         BEMB2  = abs(BINF)
-      elif (BINF>=0. and BSUP<=DIST) :
-         BCOUD1 = ssep['AXE_LONGI']
-      BCOUD = BCOUD1+ BCOUD2
-      BEMB  = BEMB1 + BEMB2
-      if GEOM=='COUDE' : BPLAQ = BCOUD/(1.+(RM+EP/2.)/RC*cos(AZIMC))
-      else             : BPLAQ = BCOUD
-      ssep.ILONP = BPLAQ+BEMB
-      if BEMB1>0.:
-         ssep.ISLP =  ALPHA*CG*RC - ssep.ILONP/2. + BEMB1
-         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
-         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 
-#
-#     SI LE CENTRE DE LA SOUS-EP CALCULE SUR LA PLAQUE EST DANS L EMBOUT
-#     ON CORRIGE SA POSITION EN LE METTANT A L INTERFACE SINON CA PLANTE
-#     DANS LA PROC DE MAILLAGE (A AMELIORER)
-#
-      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
-
-# ------------------------------------------------------------------------------
-def ASCTCI(MCL_SOUS_EPAIS,RM):
-  """
-  MACR_ASCOUF_MAIL ASCTCI
-  APPELEE DANS : ASCSYM et ASCPRE
-  CALCUL TABLEAU TRIE DES ABSCISSES DES CENTRES DE SOUS-EPAISSEURS
-
-  ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-
-  RM    = RAYON MOYEN DU COUDE
-
-  -----------------DONNEES RENVOYEES-----------------------
-
-  IABSC1 = CORRESPONDANCE ABSC. CURVI. CIRCONF. SOUS-EP. I
-  IABSC2 = CORRESPONDANCE ABSC. GAUCHE ET DROITE CIRCONF. SOUS-EP. I
-  COORXD = ABSC. DU BORD DROIT DE LA SOUS-EP I
-  COORXG = ABSC. DU BORD GAUCHE DE LA SOUS-EP I
-
-  """
-#
-# --- tri du tableau des abscisses curvilignes circonf. plaque
-#
-  echo_mess=['MACR_ASCOUF_MAIL ASCTCI \n',]
-  TAMPON = []
-  COORXG = []
-  COORYG = []
-  i=0
-  for ssep in MCL_SOUS_EPAIS :
-      i=i+1
-      if (ssep.ISCP>2.*pi*RM) or (ssep.ISCP<0.) : 
-         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])
-  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
-    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
-#
-  COORXD=[]
-  COORXG=[]
-  for bid in TAMPON :
-      XG=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2.
-      if XG<0.       : XG=XG+2.*pi*RM
-      COORXG.append(XG)
-      XD=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ICIRP/2.
-      if XD>2.*pi*RM : XD=XD-2.*pi*RM
-      COORXD.append(XD)
-#
-# --- tri des bornes d'intervalles en abscisse
-#
-  TAMPON = []
-  for j in range(len(MCL_SOUS_EPAIS)):
-    TAMPON.append((COORXG[j],2*j+1))
-    TAMPON.append((COORXD[j],2*j+2))
-  TAMPON.sort() 
-  IABSC2=[]
-  for j in range(2*len(MCL_SOUS_EPAIS)):
-    IABSC2.append(TAMPON[j][1])
-  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):
-       echo_mess.append( '%d) SOUS-EP NO %d <> XG = %.2f \n'%(j+1,IABSC1[IABSC2[j]/2],TAMPON[j][0]))
-    else:
-       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
-
-# ------------------------------------------------------------------------------
-def ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM):
-  """
-  MACR_ASCOUF_MAIL ASCTLO
-  APPELEE DANS : ASCSYM et ASCPRE
-  CALCUL TABLEAU TRIE DES ORDONNEES DES CENTRES DE SOUS-EPAISSEURS
-
-  ------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-
-  RC     = RAYON MOYEN DU COUDE
-  ALPHA  = ANGLE DU COUDE
-  LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT
-  LTCLIM  = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES
-
-  -----------------DONNEES RENVOYEES-----------------------
-
-  IORDO1 = CORRESPONDANCE ORDO. CURVI. LONGIT. SOUS-EP. I
-  IORDO2 = CORRESPONDANCE ORDO. GAUCHE ET DROITE LONGIT. SOUS-EP. I
-  COORYI = ORDONNEE. DU BORD INTERIEUR DE LA SOUS-EP I
-  COORYS = ORDONNEE. DU BORD SUPERIEUR DE LA SOUS-EP I
-
-  """
-#
-# 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.) : 
-         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])
-  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
-    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.
-#
-  COORYI=[]
-  COORYS=[]
-  EPS=0.000000000001
-  for bid in TAMPON :
-      i=i+1
-      YI=bid[0]-MCL_SOUS_EPAIS[bid[1]-1].ILONP/2.
-      YS=bid[0]+MCL_SOUS_EPAIS[bid[1]-1].ILONP/2.
-      if fabs(bid[0])<EPS : 
-         YI=-(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.
-         YS=MCL_SOUS_EPAIS[bid[1]-1].ILONP-(MCL_SOUS_EPAIS[bid[1]-1]['AXE_LONGI'])/2.
-      if fabs(bid[0]-ALPHAR*RC)<EPS :
-         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):
-         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):
-         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)
-#
-# tri des bornes d'intervalles en abscisse
-#
-  TAMPON = []
-  for j in range(len(MCL_SOUS_EPAIS)):
-    TAMPON.append((COORYI[j],2*j+1))
-    TAMPON.append((COORYS[j],2*j+2))
-  TAMPON.sort() 
-  IORDO2=[]
-  for j in range(2*len(MCL_SOUS_EPAIS)):
-    IORDO2.append(TAMPON[j][1])      
-  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):
-       echo_mess.append( '%d) SOUS-EP NO %d <> YI = %.2f \n'%(j+1,IORDO1[IORDO2[j]/2],TAMPON[j][0]))
-    else:
-       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
-#
-#
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL ASCNBE
-#     APPELEE DANS : ASCSYM et ASCPRE
-#     CALCUL DU NOMBRE D'ELEMENTS LONGI ET CIRCONF. DANS LES SOUS-EPAISSEURS
-#
-#-----------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-#
-#     COORXG = ABSCISSE DU BORD GAUCHE DE LA SOUS-EPAISSEUR I
-#     COORXD = ABSCISSE DU BORD DROIT DE LA SOUS-EPAISSEUR I
-#     COORYI = ORDONNEE DU BORD INFERIEUR DE LA SOUS-EPAISSEUR I
-#     COORYS = ORDONNEE DU BORD SUPERIEUR DE LA SOUS-EPAISSEUR I
-#     BD     = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J
-#     BG     = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J
-#     BS     = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J
-#     BI     = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J
-#     DNX    = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J
-#     DNY    = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J
-#     INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J
-#     INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J
-#     RM     = RAYON MOYEN DU COUDE
-#     RC     = RAYON DE CINTRAGE DU COUDE
-#     IABSC1 = CORRESPONDANCE ABSCISSE CURVILIGNE CIRCONF. SOUS-EP. I
-#     IORDO1 = CORRESPONDANCE ABSCISSE CURVILIGNE LONGIT. SOUS-EP. I
-#
-#----------------------DONNEES RENVOYEES-----------------------
-#
-#     NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K
-#     NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K
-#
-# ------------------------------------------------------------------------------
-def ASCNBE(MCL_SOUS_EPAIS,COORXG,COORXD,COORYI,COORYS,BD,BG,BS,BI,DNX,DNY,RM,RC,
-           INDSEX,INDSEY,IABSC1,IORDO1):
-#
-#  calcul du nombre d'elements longi. et circonf. dans les sous-epaisseurs:
-#
-  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)):
-    if INDSEX[j]!=0:
-#      calcul au passage du nombre d'elements sur chaque zone circonf.   
-       RNBEL = (BD[j]-BG[j])*360./(DNX[2*j]*2.*pi*RM)
-       RNBEL2 = RNBEL - floor(RNBEL)
-       if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL))
-       else             : NBEL=int(floor(RNBEL))+1
-       if NBEL <= 1 :     NBEL=2
-#      calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf.       
-       for i in range(len(MCL_SOUS_EPAIS)):
-         l=IABSC1[i]-1
-         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
-            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:
-#      calcul au passage du nombre d'elements sur chaque zone longi.      
-       RNBEL = ((BS[j]-BI[j])*360.)/(DNY[2*j]*2.*pi*RC)
-       RNBEL2 = RNBEL - floor(RNBEL)
-       if RNBEL2 <= 0.5 : NBEL=int(floor(RNBEL))
-       else             : NBEL=int(floor(RNBEL))+1
-       if NBEL <= 1 :     NBEL=2
-#      calcul au passage du nombre d'elements sur chaque sous-epaisseur circonf.       
-       i=0
-       for i in range(len(MCL_SOUS_EPAIS)):
-         l=IORDO1[i]-1
-         if (BI[j]>=COORYI[l] and BS[j]<=COORYS[l]):
-            NLY[i]=NLY[i]+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)):
-    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
-#
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL ASCSYM
-#     PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE AVEC
-#     SOUS-EPAISSEURS :
-#     CAS D UNE SOUS-EPAISSEUR DANS LE PLAN DE SYMETRIE 
-#     CONSTRUCTION D UN QUART DU MAILLAGE
-#     - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES 
-#     - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS
-#
-#-----------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-#
-#     RM    = RAYON MOYEN DU COUDE
-#     RC    = RAYON DE CINTRAGE DU COUDE
-#     ALPHA = ANGLE DU COUDE
-#     LT    = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT
-#     LGV   = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES
-#     NBSEP = NOMBRE DE SOUS-EPAISSEURS
-#
-#----------------------DONNEES RENVOYEES-----------------------
-#
-#     NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES
-#     NZONEY = NOMBRE DE ZONES LONGITUDINALES       
-#
-# ------------------------------------------------------------------------------
-def ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM):
-  ier=0
-  echo_mess=['MACR_ASCOUF_MAIL ASCSYM \n',]
-  DERAFC = 18.
-  DERAFL =  5.       
-  INDSEX = []
-  INDSEY = []
-  BG     = []
-  BD     = []
-  INDBG  = []
-  INDBD  = []
-  DNX    = []
-
-#
-# --- tri des donnees sous-ep. en circonferentiel
-  TAMPON,IABSC1,IABSC2,COORXD,COORXG=ASCTCI(MCL_SOUS_EPAIS,RM)
-#
-# --- calcul des zones en circonferentiel
-#
-  ssep=MCL_SOUS_EPAIS[0]
-  if (ssep.ISCP<pi*RM) :
-#
-#     le centre sous-ep est dans la zone flanc droit/extrados/flanc
-#     gauche, on preleve pi*RM a droite de la sous-epaisseur
-#
-#          zone (centre sous-ep , bord droit)
-#
-     BG.append(ssep.ISCP)
-     BG.append(ssep.ISCP+ssep.ICIRP/2.)
-     BD.append(ssep.ISCP+ssep.ICIRP/2.)
-     BD.append(ssep.ISCP+pi*RM)
-     INDBG.append(0)
-     INDBG.append(1)
-     INDBD.append(0)
-     INDBD.append(0)
-     DNX.append(ssep.IDENC)
-     DNX.append(0)
-     DNX.append(DERAFC)
-     DNX.append(0)
-     INDSEX.append(1)
-     INDSEX.append(0)
-  elif (ssep.ISCP+pi*RM==2.*pi*RM) :
-#
-#     sous-ep axisymetrique : on preleve pi*RM a droite
-#
-#       zone (centre sous-ep , bord droit)
-#
-     BG.append(ssep.ISCP)
-     BD.append(ssep.ISCP+ssep.ICIRP/2.)
-     INDBG.append(0)
-     INDBD.append(0)
-     DNX.append(ssep.IDENC)
-     DNX.append(0)
-     INDSEX.append(1)
-     INDSEX.append(0)
-  else :
-#
-#     le centre sous-ep est dans la zone flanc gauche/intrados/flanc 
-#     droit : on preleve pi*RM a gauche de la sous-epaisseur
-#
-#            zone (centre -pi*RM, bord gauche)
-#
-     BG.append(ssep.ISCP-pi*RM)
-     BG.append(ssep.ISCP-ssep.ICIRP/2.)
-     BD.append(ssep.ISCP-ssep.ICIRP/2.)
-     BD.append(ssep.ISCP)
-     INDBG.append(0)
-     INDBG.append(0)
-     INDBD.append(1)
-     INDBD.append(0)
-     DNX.append(DERAFC)
-     DNX.append(0)
-     DNX.append(ssep.IDENC)
-     DNX.append(0)     
-     INDSEX.append(0)
-     INDSEX.append(1)
-
-
-  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 ) :
-      echo_mess.append( 'ZONE NO %d BORNE GAUCHE = %.2f'\
-      ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR \n'%(j+1,BG[j],BD[j]) )
-    else:
-      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
-  TAMPON,IORDO1,IORDO2,COORYI,COORYS=ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM)
-
-# calcul des zones en axial:
-  BI     = []
-  BS     = []
-  INDBI  = []
-  INDBS  = []
-  DNY    = []
-  INDSEY = []
-  ssep   = MCL_SOUS_EPAIS[0]
-  BI.append(0.)
-  BI.append(ssep.ISLP-ssep.ILONP/2.)
-  BS.append(ssep.ISLP-ssep.ILONP/2.)
-  BS.append(ssep.ISLP)
-  INDBI.append(0)  
-  INDBI.append(0)
-  INDBS.append(1)
-  INDBS.append(0)
-  DNY.append(DERAFL)
-  DNY.append(0)
-  DNY.append(ssep.IDENL)
-  DNY.append(0)
-  INDSEY.append(0)
-  INDSEY.append(1)
-  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 ) :
-      echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\
-      ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j]))
-    else:
-      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
-################################################################################
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL ASCPRE
-#     PREPARATION DES DONNEES POUR LE MAILLAGE DE PLAQUE 
-#     SOUS-EPAISSEURS :
-#     - CALCUL TABLEAU TRIE DES ABSCISSES ET ORDONNEES DES CENTRES 
-#     - CALCUL TABLEAU DES ZONES COUVERTES PAR LES SOUS-EPAISSEURS
-#
-#-----------------DONNEES FOURNIES PAR L UTILISATEUR--------------------
-#
-#     RM    = RAYON MOYEN DU COUDE
-#     RC    = RAYON DE CINTRAGE DU COUDE
-#     ALPHA = ANGLE DU COUDE
-#     LT    = LONGUEUR DE L EMBOUT DU COTE CHARGEMENT
-#     LGV   = LONGUEUR DE L EMBOUT DU COTE CONDITIONS AUX LIMITES
-#     NBSEP = NOMBRE DE SOUS-EPAISSEURS
-#     SYME  = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER"
-#
-#----------------------DONNEES RENVOYEES-----------------------
-#
-#     NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES
-#     NZONEY = NOMBRE DE ZONES LONGITUDINALES       
-#
-# ------------------------------------------------------------------------------
-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)
-  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)
-# --- calcul des recouvrements de zones en circonferentiel
-#
-  NZONEX=0
-  j=0
-  ICE=1
-  NBGAU=0
-  NBDRO=0
-  TYPG=0
-  TYPD=0
-  go10=1
-  go20=1
-#
-  BG    =[]
-  BD    =[]
-  INDBG =[]
-  INDBD =[]
-  DNX   =[]
-  INDSEX=[]
-#
-  
-  while go10:
-   
-    j=j+1      
-#
-#   definition de la zone courante (borne gauche, borne droite)
-#    
-#   TYPG = type de la borne:
-#          0 : borne gauche sous-epaisseur
-#          1 : borne droite sous-epaisseur
-#          2 : centre sous-epaisseur
-#
-    if j>2*NBSEP and ICE<NBSEP :
-#     cas ou il ne reste plus que des centres a caser
-      MING = MIND
-      TYPG = TYPD
-      NUMG = NUMD
-      MIND = 2.*pi*RM+1
-    elif TYPD==2 :
-#     cas ou la borne droite de la zone precedente etait un centre
-      MING = MIND
-      TYPG = TYPD
-      NUMG = NUMD
-      MIND = TAMPON[j-1][0]
-      if fmod(IABSC2[j-1],2):
-        TYPD = 0
-        NUMD = IABSC1[IABSC2[j-1]/2]
-      else:
-        TYPD = 1
-        NUMD = IABSC1[IABSC2[j-1]/2-1]
-      j=j-1
-    else:
-      if j>= 2*NBSEP :
-        MIND = TAMPON[2*NBSEP-1][0]
-        MING = MIND
-        if fmod(IABSC2[2*NBSEP-1],2):
-          TYPG = 0
-          NUMG = IABSC1[IABSC2[2*NBSEP-1]/2]
-        else:
-          TYPG = 1
-          NUMG = IABSC1[IABSC2[2*NBSEP-1]/2-1]
-        TYPD=TYPG
-        NUMD=NUMG
-      else:
-        MING=TAMPON[j-1][0]
-        MIND=TAMPON[j][0]
-        if fmod(IABSC2[j-1],2):
-          TYPG = 0
-          NUMG = IABSC1[IABSC2[j-1]/2]
-        else:
-          TYPG = 1
-          NUMG = IABSC1[IABSC2[j-1]/2-1]
-        if fmod(IABSC2[j],2):
-          TYPD = 0
-          NUMD = IABSC1[IABSC2[j]/2]
-        else:
-          TYPD = 1
-          NUMD = IABSC1[IABSC2[j]/2-1]
-    if fabs(MING-MIND)<EPSI : 
-      if j==2*NBSEP:break
-      else:continue
-    if j>2*NBSEP and ICE>=NBSEP: 
-        break #on sort de la boucle
-
-    while go20:
-      i=ICE
-      if i<=NBSEP:
-#       recherche des centres a intercaler
-        INDC=IABSC1[i-1]
-        if i>1:
-#         le centre est deja le meme que precedent
-          if fabs(MCL_SOUS_EPAIS[INDC-1].ISCP-MCL_SOUS_EPAIS[IABSC1[i-2]-1].ISCP) < EPSI :
-            ICE=ICE+1
-            continue
-        if MCL_SOUS_EPAIS[INDC-1].ISCP < MING :
-#          le centre est la nouvelle borne gauche
-           j=j-1
-           MIND = MING
-           TYPD = TYPG
-           NUMD = NUMG
-           MING = MCL_SOUS_EPAIS[INDC-1].ISCP
-           TYPG = 2
-           NUMG = INDC
-           ICE = ICE+1
-        elif MCL_SOUS_EPAIS[INDC-1].ISCP < MIND : 
-#          le centre est la nouvelle borne droite  
-           MIND = MCL_SOUS_EPAIS[INDC-1].ISCP
-           TYPD = 2
-           NUMD = INDC
-           ICE = ICE+1
-           continue
-        else:pass
-      NZONEX=NZONEX+1
-#    
-#     codes d'intervalles de zones
-#        0 0 = zone sous-ep.
-#        0 1 = sous-ep. a droite de la zone
-#        1 0 = sous-ep. a gauche de la zone
-#        1 1 = sous-ep. a droite et a gauche de la zone  
-#
-#     cas ou la premiere zone ne commence pas au bord de la plaque
-      if MING>0. and NZONEX==1 :
-        BG.append(0.)
-        BD.append(MING)
-        if TYPG==0:
-           INDBG.append(0)
-           INDBD.append(1)
-           DNX.append(DERAFC)
-           DNX.append(0)
-           INDSEX.append(0)
-        elif TYPG==1 or TYPG==2:
-           INDBG.append(0)
-           INDBD.append(0)
-           DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC)
-           DNX.append(0)
-           INDSEX.append(NUMG)
-        else: pass
-        NZONEX=NZONEX+1
-#
-      BG.append(MING)
-      BD.append(MIND)  
-#
-      if TYPG == 0:
-#       borne gauche zone = borne gauche ssep       
-        NBGAU=NBGAU+1
-        INDBG.append(0)
-        INDBD.append(0)
-        if TYPD == 0:
-#         borne droite zone = borne gauche ssep
-          DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC)
-          DNX.append(0)
-          INDSEX.append(NUMG)
-        elif TYPD == 1 or TYPD == 2:
-#         borne droite zone = borne droite ssep : TYPD=1
-#         borne droite zone = centre ssep : TYPD=2
-          LTMP=[]
-          LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG))
-          LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD))
-          LTMP.sort()
-          DNX.append(LTMP[0][0])
-          DNX.append(0)
-          INDSEX.append(LTMP[0][1])
-        else: pass
-#
-      elif TYPG == 1:
-#       borne gauche zone = borne droite ssep  
-        NBDRO = NBDRO+1  
-        if TYPD == 0:
-#         borne droite zone = borne gauche ssep
-          if NBDRO==NBGAU:
-            INDBG.append(1)
-            INDBD.append(1)
-            DNX.append(DERAFC)
-            DNX.append(0)
-            INDSEX.append(0)
-          else:
-#           cas tordu: une sous-ep enveloppe le tout
-            INDBG.append(0)
-            INDBD.append(0)
-            DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC)
-            DNX.append(0)    
-            INDSEX.append(NUMG)
-        elif TYPD == 1 or TYPD == 2:
-#         borne droite zone = borne droite ssep : TYPD=1
-#         borne droite zone = centre ssep : TYPD=2
-          INDBG.append(0)
-          INDBD.append(0)
-          DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC)
-          DNX.append(0)
-          INDSEX.append(NUMD)  
-        else: pass
-#                
-      elif TYPG == 2:
-#       borne gauche zone = centre ssep  
-        INDBG.append(0)
-        INDBD.append(0)
-        if TYPD == 0:
-#         borne droite zone = borne gauche ssep
-          DNX.append(MCL_SOUS_EPAIS[NUMG-1].IDENC)
-          DNX.append(0)
-          INDSEX.append(NUMG)  
-        elif TYPD == 1 or TYPD == 2:
-#         borne droite zone = borne droite ssep : TYPD=1
-#         borne droite zone = centre ssep : TYPD=2
-          LTMP=[]
-          LTMP.append((MCL_SOUS_EPAIS[NUMG-1].IDENC,NUMG))
-          LTMP.append((MCL_SOUS_EPAIS[NUMD-1].IDENC,NUMD))
-          LTMP.sort()
-          DNX.append(LTMP[0][0])
-          DNX.append(0)
-          INDSEX.append(LTMP[0][1])
-        else:pass
-      else:pass
-      if j<=(2*NBSEP-2) or ICE<=NBSEP or (TYPD==2 and j<2*NBSEP):
-         iout=0       
-         break #on retourne dans la boucle go10
-      else :
-         iout=1
-         break #on sort definitivement 
-    if iout:break
-      
-  if MIND<2.*pi*RM:
-    NZONEX=NZONEX+1
-    BG.append(MIND)
-    BD.append(2.*pi*RM)
-    if TYPD==0 or TYPD==2:
-      INDBG.append(0)
-      INDBD.append(0)
-      DNX.append(MCL_SOUS_EPAIS[NUMD-1].IDENC)
-      DNX.append(0)
-      INDSEX.append(NUMD)
-    elif TYPD==1:
-      INDBG.append(1)
-      INDBD.append(0)
-      DNX.append(DERAFC)
-      DNX.append(0)
-      INDSEX.append(0)
-    else:pass
-
-# au cas ou 2.*pi*RM correspond a une borne d'intevalle de sous-ep ou a
-#  un centre de sous-ep.
-  if fabs(BG[NZONEX-1]-BD[NZONEX-1])<EPSI: NZONEX = NZONEX-1
-
-  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 :
-      echo_mess.append( 'ZONE NO %d <> BORNE GAUCHE = %.2f \n'\
-      ' / BORNE DROITE = %.2f * SOUS-EPAISSEUR'%(j+1,BG[j],BD[j]))
-    else:
-      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
-  TAMPON,IORDO1,IORDO2,COORYI,COORYS=ASCTLO(MCL_SOUS_EPAIS,RC,ALPHA,LTCHAR,LTCLIM)
-
-  BI     = []
-  BS     = []
-  INDBI  = []
-  INDBS  = []
-  DNY    = []
-  INDSEY = []
-
-  if SYME == 'DEMI':
-#   calcul des zones en axial :
-#   zones  (0,bord inferieur) et (bord inferieur,centre sous-ep.) 
-    ssep   = MCL_SOUS_EPAIS[0]
-    BI.append(0.)
-    BI.append(ssep.ISLP-ssep.ILONP/2.)
-    BS.append(ssep.ISLP-ssep.ILONP/2.)
-    BS.append(ssep.ISLP)
-    INDBI.append(0)  
-    INDBI.append(0)
-    INDBS.append(1)
-    INDBS.append(0)
-    DNY.append(DERAFL)
-    DNY.append(0)
-    DNY.append(ssep.IDENL)
-    DNY.append(0)
-    INDSEY.append(0)
-    INDSEY.append(1)
-    NZONEY=1
-#     
-  else:
-#
-#   calcul des recouvrements de zones en axial  
-    j = 0
-    ICE = 1
-    NBINF = 0
-    NBSUP = 0
-    TYPI=0
-    TYPS=0
-    go40=1
-    go50=1
-    NZONEY=0
-#
-    while go40:
-      j=j+1      
-#
-#     definition de la zone courante (borne inf, borne sup)
-#
-#     typi = type de la borne
-#            0 : borne inf. sous-ep.
-#            1 : borne sup. sous-ep.
-#            2 : centre sous-ep.   
-#
-      if TYPS==2:
-#       cas ou la borne sup. de la zone prec. etait un centre
-        MINI=MINS
-        TYPI=TYPS
-        NUMI=NUMS
-        MINS=TAMPON[j-1][0]
-        if fmod(IORDO2[j-1],2):
-          TYPS = 0
-          NUMS = IORDO1[IORDO2[j-1]/2]
-        else:
-          TYPS = 1
-          NUMS = IORDO1[IORDO2[j-1]/2-1]
-        j=j-1
-      else:
-        if j>= 2*NBSEP :
-          MINI = TAMPON[2*NBSEP-1][0]
-          MINS = MINI
-          if fmod(IORDO2[2*NBSEP-1],2):
-            TYPI = 0
-            NUMI = IORDO1[IORDO2[2*NBSEP-1]/2]
-          else:
-            TYPI = 1
-            NUMI = IORDO1[IORDO2[2*NBSEP-1]/2-1]
-          TYPS=TYPI
-          NUMS=NUMI
-        else:
-          MINI=TAMPON[j-1][0]
-          MINS=TAMPON[j][0]
-          if fmod(IORDO2[j-1],2):
-            TYPI = 0
-            NUMI = IORDO1[IORDO2[j-1]/2]
-          else:
-            TYPI = 1
-            NUMI = IORDO1[IORDO2[j-1]/2-1]
-          if fmod(IORDO2[j],2):
-            TYPS = 0
-            NUMS = IORDO1[IORDO2[j]/2]
-          else:
-            TYPS = 1
-            NUMS = IORDO1[IORDO2[j]/2-1]
-      if fabs(MINI-MINS)<EPSI:
-        if j==2*NBSEP:break
-        else:continue
-
-      while go50:
-        i=ICE
-        if i<=NBSEP:
-#         recherche des centres a intercaler
-          INDC=IORDO1[i-1]
-          if i>1:
-#           le centre est deja le meme que le precedent
-            if fabs(MCL_SOUS_EPAIS[INDC-1].ISLP-MCL_SOUS_EPAIS[IORDO1[i-2]-1].ISLP)<EPSI:
-             ICE=ICE+1  
-             continue
-          if MCL_SOUS_EPAIS[INDC-1].ISLP<MINI:
-#            le centre est la nouvelle borne inf.
-             j=j-1
-             MINS = MINI
-             TYPS = TYPI
-             NUMS = NUMI
-             MINI = MCL_SOUS_EPAIS[INDC-1].ISLP
-             TYPI = 2
-             NUMI = INDC
-             ICE = ICE+1
-          elif MCL_SOUS_EPAIS[INDC-1].ISLP<MINS:
-#            le centre est la nouvelle borne sup.
-            MINS = MCL_SOUS_EPAIS[INDC-1].ISLP
-            TYPS = 2
-            NUMS = INDC
-            ICE = ICE+1
-            continue
-          else:pass
-        NZONEY=NZONEY+1
-#       
-#       code d'intervalles de zone
-#       0 0  = ZONE SOUS-EPAISSEUR
-#       0 1  = SOUS-EPAISSEUR A SUPERIEURE DE LA ZONE
-#       1 0  = SOUS-EPAISSEUR A INFERIEURE DE LA ZONE
-#       1 1  = SOUS EPAISSEUR A SUPERIEURE ET A INFERIEURE DE LA ZONE
-#
-#       cas ou la premiere zone ne commence pas au bord de la plaque
-        if MINI>0. and NZONEY==1:
-          first=0
-          BI.append(0.)
-          BS.append(MINI)
-          if TYPI==0:
-            INDBI.append(0)
-            INDBS.append(1)
-            DNY.append(DERAFL)
-            DNY.append(0)
-            INDSEY.append(0)
-          elif TYPI==1 or TYPI==2:
-            INDBI.append(0)
-            INDBS.append(0)
-            DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL)
-            DNY.append(0)
-            INDSEY.append(NUMI)
-          else:pass
-          NZONEY = NZONEY+1
-#
-        BI.append(MINI)
-        BS.append(MINS)
-
-        if TYPI==0:
-#         borne inferieure zone = borne inferieure ssep
-          NBINF = NBINF+1
-          INDBI.append(0)
-          INDBS.append(0)
-          if TYPS==0:
-#           borne superieure zone = borne inferieur ssep
-            DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL)
-            DNY.append(0)
-            INDSEY.append(NUMI)
-          elif TYPS==1 or TYPS==2:
-#           borne superieure zone = borne superieure ssep:TYPS==1
-#           borne superieure zone = centre ssep:TYPS==2
-            LTMP=[]
-            LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI))
-            LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS))
-            LTMP.sort()
-            DNY.append(LTMP[0][0])
-            DNY.append(0)
-            INDSEY.append(LTMP[0][1])
-          else:pass
-        elif TYPI==1:  
-#         borne inferieure zone=borne superieure ssep
-          NBSUP = NBSUP+1
-          if TYPS==0:
-#           borne superieure zone = borne inferieur ssep
-            if NBSUP==NBINF:
-              INDBI.append(1)
-              INDBS.append(1)        
-              DNY.append(DERAFL)
-              DNY.append(0)
-              INDSEY.append(0)
-            else:
-#             cas tordu: une sous-ep. enveloppe le tout
-              INDBI.append(0)
-              INDBS.append(0)        
-              DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL)
-              DNY.append(0)
-              INDSEY.append(NUMI)
-          elif TYPS==1 or TYPS==2:
-#           borne superieure zone = borne superieure ssep:TYPS==1
-#           borne superieure zone = centre ssep:TYPS==2
-            INDBI.append(0)
-            INDBS.append(0)        
-            DNY.append(MCL_SOUS_EPAIS[NUMS-1].IDENL)
-            DNY.append(0)
-            INDSEY.append(NUMS)
-          else:pass
-        elif TYPI==2:
-#         borne inferieure zone = centre ssep  
-          INDBI.append(0)
-          INDBS.append(0)        
-          if TYPS==0:
-#           borne superieure zone = borne inferieure ssep
-            DNY.append(MCL_SOUS_EPAIS[NUMI-1].IDENL)
-            DNY.append(0)
-            INDSEY.append(NUMI)
-          elif TYPS==1 or TYPS==2:
-#           borne superieure zone = borne superieure ssep
-            LTMP=[]
-            LTMP.append((MCL_SOUS_EPAIS[NUMI-1].IDENL,NUMI))
-            LTMP.append((MCL_SOUS_EPAIS[NUMS-1].IDENL,NUMS))
-            LTMP.sort()
-            DNY.append(LTMP[0][0])
-            DNY.append(0)
-            INDSEY.append(LTMP[0][1])
-          else:pass
-        else:pass
-        if j<=(2*NBSEP-2) or TYPS==2:
-          iout=0  
-          break #on retourne dans la boucle go40
-        else:
-          iout=1
-          break #on sort definitivement 
-      if iout:break
-
-#   cas ou la derniere zone ne finit pas au bout de la plaque    
-    if MINS<ALPHAR*RC:
-       NZONEY=NZONEY+1
-       BI.append(MINS)
-       BS.append(ALPHAR*RC) 
-       if TYPS==0 or TYPS==2:
-          INDBI.append(0)
-          INDBS.append(0)        
-          DNY.append(MCL_SOUS_EPAIS[NUMS-1].IDENL)
-          DNY.append(0)
-          INDSEY.append(NUMS)
-       elif TYPS==1:
-          INDBI.append(1)
-          INDBS.append(0)        
-          DNY.append(DERAFL)
-          DNY.append(0)
-          INDSEY.append(0)
-       else:pass
-
-    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 :
-        echo_mess.append( 'ZONE NO %d <> BORNE INF. = %.2f \n'\
-        ' / BORNE SUP. = %.2f * SOUS-EPAISSEUR'%(j+1,BI[j],BS[j]))
-      else:
-        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
-
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL   write_file_dgib_ASCFDO
-#
-#     ECRIT DANS UN FICHIER LES DONNES GIBI DE LA PROCEDURE 
-#     "PLAQUE FISSUREE"
-#
-
-# ------------------------------------------------------------------------------
-def write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1,
-                           TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC,
-                           SFP,ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME, loc_datg) :
-
-  if TYPBOL!= None:
-     if TYPBOL=='CUVE'     : TYPEMB = 'typcuv' 
-     if TYPBOL=='GV'       : TYPEMB = 'typegv' 
-     if TYPBOL=='ASP_MPP'  : TYPEMB = 'typapp' 
-  else: 
-     TYPEMB ='      '
-   
-  if POSIT =='DEB_INT'  :
-         POSIT2 = 'interne'
-  else:
-         POSIT2 = 'externe'
-  if   SYME[:6]=='ENTIER' : ZSYME = 'entier'
-  elif SYME[:5]=='QUART'  : ZSYME = 'quart'
-  else :                    ZSYME = 'demi'
-  C=AXECP/2.
-  TETAF=AZIM*pi/180.
-
-  POIVIR = ' ;\n'
-  texte='* DEBUT PARAMETRES UTILISATEUR\n'
-  texte=texte+'*\n'
-  texte=texte+'c        = '+str(C)            +POIVIR
-  texte=texte+'a        = '+str(AXEAP)        +POIVIR
-  texte=texte+'nt       = '+str(NT)           +POIVIR
-  texte=texte+'ns       = '+str(NS)           +POIVIR
-  texte=texte+'nc       = '+str(NC)           +POIVIR
-  texte=texte+'rm       = '+str(RM)           +POIVIR
-  texte=texte+'rc       = '+str(RC)           +POIVIR
-  texte=texte+'alphac   = '+str(ALPHA)        +POIVIR
-  texte=texte+'nbtranep = '+str(NBTRAN)       +POIVIR
-  texte=texte+'ep1      = '+str(EP1)          +POIVIR
-  texte=texte+'ep2      = '+str(EP2)          +POIVIR
-  texte=texte+'epi      = '+str(EPI)          +POIVIR
-  texte=texte+'teta1    = '+str(TETA1)        +POIVIR
-  texte=texte+'teta2    = '+str(TETA2)        +POIVIR
-  texte=texte+'ltran    = '+str(LTRAN)        +POIVIR
-  texte=texte+'posfis   = '+str(SFP)          +POIVIR
-  texte=texte+'ksiref   = '+str(ORIEN)        +POIVIR
-  texte=texte+'surep    = '+str(SUREP)        +POIVIR       
-  texte=texte+'teta_f   = '+str(TETAF)        +POIVIR
-  texte=texte+'rc0      = '+str(RC0)          +POIVIR
-  texte=texte+'rc2      = '+str(RC2)          +POIVIR
-  texte=texte+'rc3      = '+str(RC3)          +POIVIR
-  texte=texte+"pos      = '"+POSIT2+"'"       +POIVIR
-  texte=texte+'lt       = '+str(LTCHAR)       +POIVIR
-  texte=texte+'lgv      = '+str(LTCLIM)       +POIVIR
-  texte=texte+"typembou = '"+TYPEMB+"'"       +POIVIR
-  texte=texte+"zsyme    = '"+ZSYME+"'"        +POIVIR
-  texte=texte+'epsif    = '+str(EPSI)         +POIVIR
-  texte=texte+'nivmag   = '+str(NIVMAG)       +POIVIR
-  texte=texte+'*\n'
-  texte=texte+'* FIN PARAMETRES UTILISATEUR\n'
-  texte = texte + open(os.path.join(loc_datg, 'ascouf_fiss_v4.datg'), 'r').read()
-  fdgib=open(nomFichierDATG,'w')
-  fdgib.write(texte)
-  fdgib.close()
-
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL   write_file_dgib_ASCSQO
-#
-#     ECRIT DANS UN FICHIER LES DONNEES GIBI DE LA PROCEDURE 
-#     "PLAQUE SOUS-EPAISSEUR"
-#
-#-----------------DONNEES FOURNIES PAR L'UTILISATEUR--------------------
-#
-#     RM    = RAYON MOYEN DU COUDE
-#     RC    = RAYON DE CINTRAGE DU COUDE
-#     ALPHA = ANGLE DU COUDE
-#     NBTRAN = NOMBRE DE TRANSITION D'EPAISSEUR (0, 1 OU 2)
-#     EP1   = EPAISSEUR DU COUDE (COTE EMBOUT 1 SI TRANSITION)
-#     EP2   = EPAISSEUR DU COUDE (COTE EMBOUT 2 SI TRANSITION)
-#     EPI   = EPAISSEUR DU COUDE INTERMEDIAIRE SI TRANSITION A 2 PENTES
-#     TETA1  = ANGLE DE LA PREMIERE TRANSITION D'EPAISSEUR EVENTUELLE
-#     TETA2  = ANGLE DE LA DEUXIEME TRANSITION D'EPAISSEUR EVENTUELLE
-#     LTRAN  = LONGUEUR ENTRE FIN DE L'EMBOUT 1 ET DEBUT DE TRANSITION
-#     LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT
-#     LCLIM  = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES
-#     GEOM  = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)  
-#     SYME = "QUART" DE STRUCTURE, "DEMI" STRUCTURE OU BIEN "ENTIER"
-#     NBEP = NOMBRE D'ELEMENTS DANS LE COUDE
-#     NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR
-#     NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR
-
-# ------------------------------------------------------------------------------
-def write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2,
-                           EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM,
-                           SYME,NBEP,NLX,NLY,NIVMAG,loc_datg) :
-
-  ssep= MCL_SOUS_EPAIS[0]   
-  POIVIR = ' ;\n'
-  texte=' nivmag   = '+str(NIVMAG)       +POIVIR
-  texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0'+POIVIR
-  texte=texte+'*\n'
-  texte=texte+'coory   = table '+POIVIR
-  texte=texte+'coorz   = table '+POIVIR
-  texte=texte+'prof    = table '+POIVIR
-  texte=texte+'posit   = table '+POIVIR
-  texte=texte+'axisym  = table '+POIVIR
-  texte=texte+'axecir  = table '+POIVIR
-  texte=texte+'axelon  = table '+POIVIR
-  texte=texte+'sousep  = table '+POIVIR
-  texte=texte+'coorzc  = table '+POIVIR
-  texte=texte+'axelonc = table '+POIVIR
-  texte=texte+'*\n'
-  texte=texte+'* DEBUT PARAMETRES UTILISATEUR\n'
-  texte=texte+'*\n'
-  texte=texte+'* parametres generaux\n'
-  texte=texte+'*\n'
-  texte=texte+' pirad    = '+str(pi)            +POIVIR
-  texte=texte+' rm       = '+str(RM)           +POIVIR
-  texte=texte+' rc       = '+str(RC)           +POIVIR
-  texte=texte+' alpha    = '+str(ALPHA)        +POIVIR
-  texte=texte+' lt1      = '+str(LTCHAR)       +POIVIR
-  texte=texte+' lt2      = '+str(LTCLIM)       +POIVIR
-  texte=texte+' nbtranep = '+str(NBTRAN)       +POIVIR
-  texte=texte+' ep1      = '+str(EP1)          +POIVIR
-  texte=texte+' ep2      = '+str(EP2)          +POIVIR
-  texte=texte+' epI      = '+str(EPI)          +POIVIR
-  texte=texte+' teta1    = '+str(TETA1)        +POIVIR
-  texte=texte+' teta2    = '+str(TETA2)        +POIVIR
-  texte=texte+' ltran    = '+repr(LTRAN)        +POIVIR 
-  if GEOM == 'COUDE':
-    texte=texte+" zcoude = 'oui' "+POIVIR
-  else:
-    texte=texte+" zcoude = 'non' "+POIVIR
-  if SYME == 'ENTIER':
-    texte=texte+" zsyme = 'entier' "+POIVIR
-  elif SYME == 'QUART':
-    texte=texte+" zsyme = 'quart' "+POIVIR
-  else:
-    texte=texte+" zsyme = 'demi' "+POIVIR
-  if TYPELE == 'CU20':
-    texte=texte+" zquad = 'oui' "+POIVIR
-  else:
-    texte=texte+" zquad = 'non' "+POIVIR
-  SCP=pi*RM
-  texte=texte+' nxep   = '+str(NBEP)        +POIVIR
-  texte=texte+'*\n'
-  texte=texte+'* Caracteristiques de la sous-epaisseur\n'
-  texte=texte+'*\n'
-  texte=texte+' tysep = '+str(ssep.ICIRP)                                   +POIVIR
-  texte=texte+' tzsep = '+str(ssep.ILONP)                                   +POIVIR
-  texte=texte+' prof .                      1  = '+str(ssep['PROFONDEUR'])  +POIVIR
-  texte=texte+' ycsep = '+str(SCP-pi*RM)                                    +POIVIR
-  texte=texte+' theta = '+str(ssep.IPHIC)                                   +POIVIR
-  texte=texte+' zcsep = '+repr(ssep.ISLP)                                    +POIVIR
-
-  texte=texte+" posit .                      1  = '"+str(ssep['SOUS_EPAIS'].lower())+"'"+POIVIR
-  texte=texte+' nby   = '+str(int(NLX[0]))                                  +POIVIR
-  texte=texte+' nbz   = '+str(int(NLY[0]))                                  +POIVIR
-  texte=texte+' nbxse = '+str(ssep['NB_ELEM_RADI'])                         +POIVIR
-  texte=texte+' axelonc .                      1  = '+str(ssep['AXE_LONGI'])+POIVIR
-  if ssep['POSI_CURV_LONGI']!=None:
-    texte=texte+' coorzc .                      1  = '+repr(ssep['POSI_CURV_LONGI'])+POIVIR
-  else:
-    DZC=ssep.BETA*pi*(RC+(RM+EP1/2.)*cos(pi/2.))/180.
-    texte=texte+' coorzc .                      1  = '+repr(DZC)+POIVIR
-  if ssep['TYPE']=='AXIS':
-     texte=texte+" zaxis = 'oui' "+POIVIR
-  else:
-     texte=texte+" zaxis = 'non' "+POIVIR
-  if ssep['EMPREINTE'] == 'OUI':
-     texte=texte+" sousep .                      1  = 'oui'"+POIVIR
-  else:
-     texte=texte+" sousep .                      1  = 'non'"+POIVIR
-  texte=texte+'*\n'
-  texte=texte+'* FIN PARAMETRES UTILISATEUR \n'
-  texte = texte + open(os.path.join(loc_datg, 'ascouf_ssep_mono_v1.datg'), 'r').read()
-  fdgib=open(nomFichierDATG,'w')
-  fdgib.write(texte)
-  fdgib.close()
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL   write_subpart_file_pgib_POST
-#
-#     APPELEE DANS : write_file_pgib_ASCSQ2 , write_file_pgib_ASCSD2
-#     DEFINIE UNE CHAINE DE CARACTERES UTILISEE LORS DE L'ECRITURE DU
-#     FICHIER GIBI DE POST-TRAITEMENTS
-#
-#-----------------DONNEES FOURNIES PAR L'UTILISATEUR--------------------
-#
-#     NLX = NOMBRE D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR
-#     NLY = NOMBRE D'ELEMENTS LONGI DE LA SOUS-EPAISSEUR
-#
-#-----------------DONNEE RENVOYEE PAR ASTER-------------------- 
-# 
-#     texte = chaine de caracteres contenant des instructions gibi
-#             de post-traitements
-#
-# ------------------------------------------------------------------------------
-def write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY):
-  CAR3 = ('fdro','exdr','extr','exga','fgau','inga','intr','indr')
-  
-  POIVIR = ' ;\n'
-  texte='* DEBUT POINTS DE POST-TRAITEMENT\n'
-  texte=texte+'*\n'
-  issep=0
-  for ssep in MCL_SOUS_EPAIS:
-    issep=issep+1
-    texte=texte+'*\n'
-    texte=texte+'* sous-epaisseur No '+str( issep)+'\n'
-    texte=texte+'*\n'
-    if ssep['TYPE'] == 'ELLI':
-      texte=texte+'*\n'
-      texte=texte+'* plans circonf longi et colonne centrale \n'
-      texte=texte+'*\n'
-      texte=texte+'pcirc'+str( issep)+' = circo .'+str(issep).rjust(4)+POIVIR
-      texte=texte+'plong'+str( issep)+' = longi .'+str(issep).rjust(4)+POIVIR
-      texte=texte+'pcent'+str( issep)+' = centr .'+str(issep).rjust(4)+POIVIR
-    texte=texte+'*\n'
-    texte=texte+'* ligaments tous les 45 degres a epaisseur minimale \n'
-    texte=texte+'*\n'
-    texte=texte+'isep = '+str( issep)+POIVIR
-    for k in range(8):
-      texte=texte+'ilig = '+str(k+1)+POIVIR
-      texte=texte+'rlig = ilig/10. + isep'+POIVIR
-      texte=texte+str(CAR3[k])+str( issep)+' = lig45 . rlig'+POIVIR
-    if ssep['TYPE'] == 'ELLI':
-      texte=texte+'*\n'
-      texte=texte+"* ligaments circonferentiels a l'epaisseur minimale\n"
-      texte=texte+'*\n'
-      texte=texte+'isep = '+str(issep)+POIVIR
-      for k in range(2*NLX[issep-1]+1):
-        texte=texte+'ilig = '+str(k+1)+POIVIR
-        texte=texte+'rlig = ilig/100. + isep'+POIVIR
-        texte=texte+'cir'+str(issep)+'_'+str(k+1)+' = ligcir . rlig'+POIVIR
-      texte=texte+'*\n'
-      texte=texte+"* ligaments longitudinaux a l'epaisseur minimale\n"                        
-      texte=texte+'* \n'
-      for k in range(2*NLY[issep-1]+1):
-        texte=texte+'ilig = '+str(k+1)+POIVIR
-        texte=texte+'rlig = ilig/100. + isep'+POIVIR
-        texte=texte+'lon'+str(issep)+'_'+str(k+1)+' = liglon . rlig'+POIVIR
-  texte=texte+'* FIN POINTS DE POST-TRAITEMENT\n'
-  return texte
-
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL   write_file_pgib_ASCSQ2
-#
-#     ECRIT DANS UN FICHIER  LES DONNEES GIBI DE LA PROCEDURE
-#     "PLAQUE SOUS-EPAISSEURS"
-#     IL S'AGIT DE LA DEUXIEME PARTIE ( APRES LES DONNEES UTILISATEUR )
-#
-#
-#-----------------DONNEES FOURNIES PAR L'UTILISATEUR--------------------
-#
-#     NLX = NOMBRE TOTAL D'ELEMENTS CIRCONF. DE LA SOUS-EPAISSEUR K
-#     NLY = NOMBRE TOTAL D'ELEMENTS LONGIT. DE LA SOUS-EPAISSEUR K
-
-# ------------------------------------------------------------------------------
-def write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY):
-  POIVIR = ' ;\n'
-  texte=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY)
-  texte=texte+'*\n'
-  texte=texte+'p1 = 0. 0. (-1.*lt1)'+POIVIR
-  texte=texte+'p2 = 0. 0. (coor 3 bou3)'+POIVIR
-  texte=texte+'ma = coude et p1 et p2'+POIVIR
-  texte=texte+"opti sauv form 'fort.8'"+POIVIR
-  texte=texte+'sort ma'+POIVIR
-  texte=texte+'sauv form ma'+POIVIR
-  texte=texte+'fin'+POIVIR
-  fpgib=open('fort.71','w')
-  fpgib.write(texte)
-  fpgib.close()
-
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL   write_file_pgib_ASCSP1
-#
-#     ECRIT DANS UN FICHIER  LES DONNEES GIBI DE LA PROCEDURE
-#     "PLAQUE SOUS-EPAISSEURS"
-#     IL S'AGIT DE LA PREMIERE PARTIE ( AVANT LES DONNEES UTILISATEUR )
-#
-#
-# ------------------------------------------------------------------------------
-def write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg):
-
-  POIVIR = ' ;\n'
-  texte=' nivmag = '+str(NIVMAG)+POIVIR
-  texte=texte+' option dime 3 elem '+TYPELE+' nive nivmag echo 0 '+POIVIR
-  texte=texte+'*\n'
-  texte=texte+'bg      = table '+POIVIR
-  texte=texte+'bd      = table '+POIVIR
-  texte=texte+'bi      = table '+POIVIR
-  texte=texte+'bs      = table '+POIVIR
-  texte=texte+'indbg   = table '+POIVIR
-  texte=texte+'indbd   = table '+POIVIR
-  texte=texte+'indbi   = table '+POIVIR
-  texte=texte+'indbs   = table '+POIVIR
-  texte=texte+'axecir  = table '+POIVIR
-  texte=texte+'axelon  = table '+POIVIR
-  texte=texte+'axelonc = table '+POIVIR
-  texte=texte+'coorzc  = table '+POIVIR
-  texte=texte+'prof    = table '+POIVIR
-  texte=texte+'posit   = table '+POIVIR
-  texte=texte+'coory   = table '+POIVIR
-  texte=texte+'coorz   = table '+POIVIR   
-  texte=texte+'deny    = table '+POIVIR
-  texte=texte+'nbely   = table '+POIVIR
-  texte=texte+'denz    = table '+POIVIR
-  texte=texte+'nbelz   = table '+POIVIR
-  texte=texte+'axisym  = table '+POIVIR
-  texte=texte+'sousep  = table '+POIVIR
-  texte=texte+'* \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()
-  
-################################################################################
-################################################################################
-################################################################################
-#     MACR_ASCOUF_MAIL   write_file_pgib_ASCSDO
-#
-#     ECRIT DANS UN FICHIER  LES DONNEES GIBI DE LA PROCEDURE
-#     "PLAQUE SOUS-EPAISSEURS"
-#
-#-----------------DONNEES FOURNIES PAR L'UTILISATEUR--------------------
-#
-#     RM    = RAYON MOYEN DU COUDE
-#     RC    = RAYON DE CINTRAGE DU COUDE
-#     ALPHA = ANGLE DU COUDE
-#     EP    = EPAISSEUR DU COUDE
-#     LTCHAR = LONGUEUR DE L'EMBOUT DU COTE CHARGEMENT
-#     LCLIM  = LONGUEUR DE L'EMBOUT DU COTE CONDITIONS AUX LIMITES
-#     GEOM  = TYPE DE GEOMETRIE MODELISEE (COUDE OU TUBE)  
-#     SYME = QUART DE STRUCTURE SI 'OUI'
-#     INDBG = INDICATEUR BORD GAUCHE DE LA ZONE CIRCONF J
-#     INDBD = INDICATEUR BORD DROIT DE LA ZONE CIRCONF J
-#     BG = ABSCISSE DU BORD GAUCHE DE LA ZONE CIRCONF J
-#     BD = ABSCISSE DU BORD DROIT DE LA ZONE CIRCONF J
-#     BI = ORDONNEE DU BORD INFERIEUR DE LA ZONE LONGI J
-#     BS = ORDONNEE DU BORD SUPERIEUR DE LA ZONE LONGI J
-#     INDBI = INDICATEUR BORD INFERIEUR DE LA ZONE LONGI J
-#     INDBS = INDICATEUR BORD SUPERIEUR DE LA ZONE LONGI J
-#     INDSEX = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE CIRCONF J
-#     INDSEY = NUMERO DE SOUS-EPAISSEUR CONTENU DANS LA ZONE LONGI J
-#     DNX = DENSITE ET NOMBRE D'ELEMENTS CIRCONF. DE LA ZONE J
-#     DNY = DENSITE ET NOMBRE D'ELEMENTS LONGIT. DE LA ZONE J
-#     NZONEX = NOMBRE DE ZONES CIRCONFERENTIELLES
-#     NZONEY = NOMBRE DE ZONES LONGITUDINALES  
-#
-# ------------------------------------------------------------------------------
-def write_file_pgib_ASCSDO(RM,RC,ALPHA,EP,LTCLIM,LTCHAR,NBEP,
-                           NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,
-                           DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME):
-
-  POIVIR = ' ;\n'
-  NY=20
-  DELTAY=2.*pi*RM/NY
-
-  def nint(x):
-    if 0<ceil(x)-x<=0.5:
-      return int(ceil(x))
-    else:
-      return int(floor(x))
-
-# conversion des densites de raffinement des embout en degres par rapport
-# a l'angle du coude
-  RTMP=nint(LTCHAR/DELTAY)*DELTAY/4.
-  DENSTU = RTMP*360./(2.*pi*RC)
-  DENSGV = DENSTU
-  NZT=0
-  NZGV=0
-
-  texte='* DEBUT PARAMETRES UTILISATEUR \n'
-  texte=texte+'*\n'
-  texte=texte+'* parametres generaux\n'
-  texte=texte+'*\n'
-  texte=texte+'rm       = '+str(RM)               +POIVIR
-  texte=texte+'rc       = '+str(RC)               +POIVIR
-  texte=texte+'alphac   = '+str(ALPHA)            +POIVIR
-  texte=texte+'epc      = '+str(EP)               +POIVIR
-  texte=texte+'pirad    = '+str(pi)               +POIVIR
-  texte=texte+'lgv      = '+str(LTCLIM)           +POIVIR
-  texte=texte+'lt       = '+str(LTCHAR)           +POIVIR
-  texte=texte+'lcoude   = '+str(ALPHA*pi/180.*RC) +POIVIR
-  if GEOM == 'COUDE':
-    texte=texte+"zcoude = 'oui' "     +POIVIR
-  else:
-    texte=texte+"zcoude = 'non' "     +POIVIR
-  if SYME == 'ENTIER':
-    texte=texte+"zsyme = 'entier' "   +POIVIR
-  elif SYME == 'QUART':
-    texte=texte+"zsyme = 'quart' "    +POIVIR
-  else:
-    texte=texte+"zsyme = 'demi' "     +POIVIR
-  texte=texte+'nxep   = '+str(NBEP)   +POIVIR
-  texte=texte+'nzt    = '+str(NZT)    +POIVIR
-  texte=texte+'nzgv   = '+str(NZGV)   +POIVIR
-  texte=texte+'daxhtu = '+str(DENSTU) +POIVIR
-  texte=texte+'daxhgv = '+str(DENSGV) +POIVIR
-  texte=texte+'*\n'
-  
-  texte=texte+'* Zones couvertes en circonference\n'
-  texte=texte+'*\n'
-  for j in range(NZONEX):
-    texte=texte+'bg .'   +str(j+1).rjust(23)+' = '+str(BG[j]-pi*RM)     +POIVIR
-    texte=texte+'bd .'   +str(j+1).rjust(23)+' = '+str(BD[j]-pi*RM)     +POIVIR
-    texte=texte+'indbg .'+str(j+1).rjust(23)+' = '+str(INDBG[j])        +POIVIR
-    texte=texte+'indbd .'+str(j+1).rjust(23)+' = '+str(INDBD[j])        +POIVIR
-    texte=texte+'deny .' +str(j+1).rjust(23)+' = '+str(DNX[2*j])        +POIVIR
-    texte=texte+'nbely .'+str(j+1).rjust(23)+' = '+str(int(DNX[2*j+1])) +POIVIR
-    texte=texte+'*\n'
-    
-  texte=texte+'* Zones couvertes longitudinalement\n'
-  texte=texte+'*\n'
-  for j in range(NZONEY):
-    texte=texte+'bi .'   +str(j+1).rjust(23)+' = '+str(BI[j])           +POIVIR
-    texte=texte+'bs .'   +str(j+1).rjust(23)+' = '+str(BS[j])           +POIVIR
-    texte=texte+'indbi .'+str(j+1).rjust(23)+' = '+str(INDBI[j])        +POIVIR
-    texte=texte+'indbs .'+str(j+1).rjust(23)+' = '+str(INDBS[j])        +POIVIR
-    texte=texte+'denz .' +str(j+1).rjust(23)+' = '+str(DNY[2*j])        +POIVIR
-    texte=texte+'nbelz .'+str(j+1).rjust(23)+' = '+str(int(DNY[2*j+1])) +POIVIR
-    texte=texte+'*\n'
-  texte=texte+'* Caracteristiques des sous-epaisseurs\n'
-  texte=texte+'*\n'
-  issep=0
-  for ssep in MCL_SOUS_EPAIS:
-     issep=issep+1
-     texte=texte+'axecir .' +str(issep).rjust(23)+' = '+str(ssep.ICIRP)        +POIVIR
-     texte=texte+'axelon .' +str(issep).rjust(23)+' = '+str(ssep.ILONP)        +POIVIR
-     texte=texte+'prof .'   +str(issep).rjust(23)+' = '+str(ssep['PROFONDEUR'])+POIVIR
-     texte=texte+'coory .'  +str(issep).rjust(23)+' = '+str(ssep.ISCP-pi*RM)   +POIVIR
-     texte=texte+'coorz .'  +str(issep).rjust(23)+' = '+str(ssep.ISLP)         +POIVIR
-     texte=texte+'posit .'  +str(issep).rjust(23)+" = '"+str(ssep['SOUS_EPAIS'].lower())+"'"+POIVIR
-     texte=texte+'axelonc .'+str(issep).rjust(23)+' = '+str(ssep['AXE_LONGI']) +POIVIR
-     if ssep['POSI_CURV_LONGI']!=None:
-       texte=texte+'coorzc .'+str(issep).rjust(23)+' = '+str(ssep['POSI_CURV_LONGI'])+POIVIR
-     else:
-       DZC=ssep.BETA*pi*(RC+(RM+EP/2.)*cos(pi/2.))/180.
-       texte=texte+'coorzc .'+str(issep).rjust(23)+' = '+str(DZC)+POIVIR
-     if ssep['TYPE']=='AXIS':
-       texte=texte+'axisym .'+str(issep).rjust(23)+" = 'oui'"+POIVIR
-     else:
-       texte=texte+'axisym .'+str(issep).rjust(23)+" = 'non'"+POIVIR
-     if ssep['EMPREINTE'] == 'OUI':
-       texte=texte+'sousep .'+str(issep).rjust(23)+" = 'oui'"+POIVIR
-     else:
-       texte=texte+'sousep .'+str(issep).rjust(23)+" = 'non'"+POIVIR
-  texte=texte+'* \n'
-  texte=texte+'* FIN PARAMETRES UTILISATEUR\n'
-  fpgib=open('fort.71','w') 
-  fpgib.write(texte)
-  fpgib.close()
-  
-################################################################################
-################################################################################
-################################################################################
-
-# ------------------------------------------------------------------------------
-def write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY):
-
-  POIVIR = ' ;\n'
-  texte='*\n'
-  texte=texte+'coude extube bord1 clgv  bord2 peauext peauint placoude platube\n'
-  texte=texte+'plagv  longi  circo centr bou1  bou3  ligmed  ligtub liggv lig45\n'
-  texte=texte+'ligcir liglon bordtu\n'
-  texte=texte+'= PLAQSEP bg bd bi bs indbg indbd indbi indbs rm rc\n'
-  texte=texte+'alphac pirad epc lt lgv coory coorz axecir axelon prof zsyme posit\n'
-  texte=texte+'lcoude nxep sousep deny nbely denz nbelz axelonc coorzc axisym\n'
-  texte=texte+'daxhtu daxhgv nzt nzgv zcoude'+POIVIR
-  texte=texte+'fdromi   = ligmed .   1'+POIVIR
-  texte=texte+'exdrmi   = ligmed .   2'+POIVIR
-  texte=texte+'extrmi   = ligmed .   3'+POIVIR
-  texte=texte+'exgami   = ligmed .   4'+POIVIR
-  texte=texte+'fgaumi   = ligmed .   5'+POIVIR
-  texte=texte+'ingami   = ligmed .   6'+POIVIR
-  texte=texte+'intrmi   = ligmed .   7'+POIVIR
-  texte=texte+'indrmi   = ligmed .   8'+POIVIR
-  texte=texte+'fdrotu   = ligtub .   1'+POIVIR
-  texte=texte+'exdrtu   = ligtub .   2'+POIVIR
-  texte=texte+'extrtu   = ligtub .   3'+POIVIR
-  texte=texte+'exgatu   = ligtub .   4'+POIVIR
-  texte=texte+'fgautu   = ligtub .   5'+POIVIR
-  texte=texte+'ingatu   = ligtub .   6'+POIVIR
-  texte=texte+'intrtu   = ligtub .   7'+POIVIR
-  texte=texte+'indrtu   = ligtub .   8'+POIVIR
-  texte=texte+"si (ega zsyme 'entier')"+POIVIR
-  texte=texte+'   fdrogv   = liggv  .  1'+POIVIR
-  texte=texte+'   exdrgv   = liggv .   2'+POIVIR
-  texte=texte+'   extrgv   = liggv .   3'+POIVIR
-  texte=texte+'   exgagv   = liggv .   4'+POIVIR
-  texte=texte+'   fgaugv   = liggv .   5'+POIVIR
-  texte=texte+'   ingagv   = liggv .   6'+POIVIR
-  texte=texte+'   intrgv   = liggv .   7'+POIVIR
-  texte=texte+'   indrgv   = liggv .   8'+POIVIR
-  texte=texte+'finsi'+POIVIR
-  texte=texte+'*\n'
-  
-  text2=write_subpart_file_pgib_POST(MCL_SOUS_EPAIS,NLX,NLY)
-  texte=texte+text2
-  
-  texte=texte+'*\n'
-  texte=texte+'*oeil = 10000. 0. 0.' +POIVIR
-  texte=texte+'*trac oeil cach coude'+POIVIR
-  texte=texte+'*opti donn 5'         +POIVIR
-  texte=texte+'p1 = 0. 0. (-1.*lt)'+POIVIR
-  texte=texte+'p2 = 0. 0. (coor 3 bou3)'+POIVIR
-  texte=texte+'ma = coude et p1 et p2'+POIVIR
-  texte=texte+'sort ma'+POIVIR
-  texte=texte+'neu = nbno ma'+POIVIR
-  texte=texte+"mess 'nombre de noeuds : 'neu"+POIVIR
-  texte=texte+"opti sauv form 'fort.8'"+POIVIR
-  texte=texte+'sauv form ma'+POIVIR
-  texte=texte+'fin'+POIVIR
-  fpgib=open('fort.71','a') 
-  fpgib.write(texte)
-  fpgib.close()  
-
-################################################################################
-################################################################################
-################################################################################
-
-# ------------------------------------------------------------------------------
-def write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP,SUREP,
-                           LTCLIM,LTCHAR,NBEP,loc_datg):
-
-  NY=20
-  CZ=ALPHA*RC*pi/180.
-  NZC=int((ALPHA+0.00001)/5.)
-  DELTAY=2.*pi*RM/20
-  DELTAZ=CZ/NZC
-  DENEXT=int(LTCHAR/DELTAY)*DELTAY/4.
-  NZT=0
-  NZGV=0
-  
-  if TYPBOL!=None:
-     if TYPBOL=='CUVE'     : TYPEMB = 'typcuv' 
-     if TYPBOL=='GV'       : TYPEMB = 'typegv' 
-     if TYPBOL=='ASP_MPP'  : TYPEMB = 'typapp' 
-  else: 
-     TYPEMB ='      '
-   
-  POIVIR = ' ;\n'
-  texte='* DEBUT PARAMETRES UTILISATEUR\n'
-  texte=texte+'*\n'
-  texte=texte+'* Parametres generaux\n'
-  texte=texte+'*\n'
-  texte=texte+'nivmag   = '+str(NIVMAG)       +POIVIR
-  texte=texte+'option dime 3 elem '+TYPELE+' nive nivmag echo 0'+POIVIR
-  texte=texte+'rm       = '+str(RM)           +POIVIR
-  texte=texte+'rc       = '+str(RC)           +POIVIR
-  texte=texte+'alphac   = '+str(ALPHA)        +POIVIR
-  texte=texte+'epc      = '+str(EP)           +POIVIR
-  texte=texte+'surep    = '+str(SUREP)        +POIVIR       
-  texte=texte+'lgv      = '+str(LTCLIM)       +POIVIR
-  texte=texte+'lt       = '+str(LTCHAR)       +POIVIR
-  texte=texte+"typembou = '"+TYPEMB+"'"       +POIVIR
-  texte=texte+'nx       = '+str(NBEP)         +POIVIR
-  texte=texte+'ny       = '+str(NY)           +POIVIR
-  texte=texte+"pos      = 'bidon'"            +POIVIR
-  texte=texte+'l1       = 0.'                 +POIVIR
-  texte=texte+'lbloc    = 0.'                 +POIVIR
-  texte=texte+'crit     = 0.0001'             +POIVIR
-  texte=texte+'crit2    = 0.01'               +POIVIR
-  texte=texte+'epsit    = 1.e-3'              +POIVIR
-  texte=texte+'pirad    = '+str(pi)           +POIVIR
-  texte=texte+'nzc      = '+str(NZC)          +POIVIR
-  texte=texte+'teta_f   = '+str(pi/2.)        +POIVIR
-  texte=texte+'zpp31    = '+str(CZ)           +POIVIR
-  texte=texte+'daxbtu   = '+str(DENEXT)       +POIVIR
-  texte=texte+'daxhtu   = '+str(DELTAZ)       +POIVIR
-  texte=texte+'daxbgv   = '+str(DELTAZ)       +POIVIR
-  texte=texte+'daxhgv   = '+str(DENEXT)       +POIVIR
-  texte=texte+'nzt      = '+str(NZT)          +POIVIR
-  texte=texte+'nzgv     = '+str(NZGV)         +POIVIR
-  texte=texte+'*\n'
-  texte=texte+'* FIN PARAMETRES UTILISATEUR\n'
-  texte = texte + open(os.path.join(loc_datg, 'ascouf_regl_v1.datg'), 'r').read()
-  fdgib=open(nomFichierDATG,'w')
-  fdgib.write(texte)
-  fdgib.close()
-  
-################################################################################
-################################################################################
-################################################################################
-# ------------------------------------------------------------------------------
-def macr_ascouf_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,COUDE,
-                              SOUS_EPAIS_COUDE,SOUS_EPAIS_MULTI,
-                              FISS_COUDE,IMPRESSION,INFO,**args):
-  """
-     Ecriture de la macro MACR_ASCOUF_MAIL
-  """
-  from Accas import _F
-  import types
-  import aster 
-
-  ier=0
-  
-# On importe les definitions des commandes a utiliser dans la macro
-  EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL')
-  PRE_GIBI      =self.get_cmd('PRE_GIBI')
-  LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE')
-  DEFI_GROUP    =self.get_cmd('DEFI_GROUP')
-  MODI_MAILLAGE =self.get_cmd('MODI_MAILLAGE')
-  AFFE_MODELE   =self.get_cmd('AFFE_MODELE')
-  CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE')
-  DEFI_FICHIER  =self.get_cmd('DEFI_FICHIER')
-  IMPR_RESU     =self.get_cmd('IMPR_RESU')
-
-# La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  
-  TYPELE = TYPE_ELEM
-  NIVMAG = EXEC_MAILLAGE['NIVE_GIBI']
-  PRECIS = 0.01
-  CRITER = 'RELATIF'
-  CAR3   = ('IFDRO','IEXDR','IEXTR','IEXGA','IFGAU','IINGA','IINTR','IINDR')
-  CAR4   = ('NOFDRO','NOEXDR','NOEXTR','NOEXGA','NOFGAU','NOINGA','NOINTR','NOINDR')
-  CAR5   = ('NEFDRO','NEEXDR','NEEXTR','NEEXGA','NEFGAU','NEINGA','NEINTR','NEINDR')
-  CAR6   = ('FDRO','EXDR','EXTR','EXGA','FGAU','INGA','INTR','INDR')
-  SECT   = ('MI','TU','GV')  
-  
-#
-################################################################################
-#     --- caracteristiques du coude ---
-################################################################################
-#
-  GEOM    =COUDE['TRANSFORMEE']
-  ALPHA   =COUDE['ANGLE']
-  RC      =COUDE['R_CINTR']
-  LTCHAR  =COUDE['L_TUBE_P1']
-  LTCLIM  =COUDE['L_TUBE_P2']
-  NBEP    =COUDE['NB_ELEM_EPAIS']
-  SYME    =COUDE['SYME']
-  SUREP   =0.0
-  TYPBOL  = None
-#
-  if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' :
-     SUREP=COUDE['SUR_EPAIS']
-     TYPBOL  =COUDE['BOL_P2']
-     DEXT   = COUDE['DEXT']
-     EP1    = COUDE['EPAIS']
-     EP2    = EP1
-     EPI    = 0.0
-     TETA1  = 0.0
-     TETA2  = 0.0
-     LTRAN  = 0.0
-     NBTRAN = 0
-  else:
-     NBTRAN = 1
-     if COUDE['SYME']!='ENTIER':
-        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']
-     EP2   = COUDE['EPAIS_T2']
-     TETA1 = COUDE['ANGL_TETA1']
-     TETA2 = 0.0
-     EPI   = 0.0
-     if COUDE['ANGL_TETA2']!=None :
-       NBTRAN = 2
-       TETA2 = COUDE['ANGL_TETA2']
-       EPI   = COUDE['EPAIS_TI']
-#
-     if COUDE['ABSC_CURV_TRAN']!=None :
-       LTRAN   = COUDE['ABSC_CURV_TRAN']
-     else :
-       LTRAN   = COUDE['POSI_ANGU_TRAN']* RC * pi / 180.0
-#
-  RM  = (DEXT-EP1)/2.0
-  RM2 = RM + (EP2-EP1)/2.0
-  R1  = RC
-  R2  = RM
-  E   = EP1
-#
-  if COUDE['SYME']!='ENTIER' and (LTCHAR!=LTCLIM) :
-     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 :
-     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 :
-     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' :
-     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 ---
-################################################################################
-#
-  if FISS_COUDE!=None:
-     if NBEP!=3:
-        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 :
-        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 :
-        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
-        FLONG = 2.0 * pi * (RM + EP1)
-     if FISS_COUDE['ABSC_CURV']!=None :
-         SF     = FISS_COUDE['ABSC_CURV']
-         LDEFAU = SF
-         BETA   = 0.0
-     else:
-         SF     = 0.0
-         BETA   = FISS_COUDE['POSI_ANGUL']
-         LDEFAU = BETA * RC * pi / 180.0
-     AZIM   = FISS_COUDE['AZIMUT']
-     ORIEN  = FISS_COUDE['ORIEN']
-     POSIT  = FISS_COUDE['FISSURE']
-     NT     = FISS_COUDE['NB_TRANCHE']
-     NS     = FISS_COUDE['NB_SECTEUR']
-     NC     = FISS_COUDE['NB_COURONNE']
-     if FISS_COUDE['RAYON_TORE']!=None    : RC0 = FISS_COUDE['RAYON_TORE']
-     else :                                 RC0 = 0.
-     if FISS_COUDE['COEF_MULT_RC2']!=None : RC2 = FISS_COUDE['COEF_MULT_RC2']
-     else :                                 RC2 = 0.
-     if FISS_COUDE['COEF_MULT_RC3']!=None : RC3 = FISS_COUDE['COEF_MULT_RC3']
-     else :                                 RC3 = 0.
-     EPSI   = FISS_COUDE['ANGL_OUVERTURE']
-     OR     = ORIEN
-     AZ     = AZIM
-     POS    = POSIT
-     DGAXEC = FLONG/2.0
-     DC     = DGAXEC
-     if ORIEN!=90.0 and NBTRAN!=0 :
-        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 :
-        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' :
-        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' :
-        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 ---
-################################################################################
-#
-  isep = 0
-  MCL_SOUS_EPAIS = None
-  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 :
-     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 :
-     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' :
-        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' :
-           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' :
-           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) :
-              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) :
-              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) :
-              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':
-              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':
-              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'      ])
-#        l_IPROC.append(ssep['PROFONDEUR'     ])
-#        l_ISLC.append( ssep['POSI_CURV_LONGI'])
-#        l_IBETC.append(BETA)
-        ssep.BETA=BETA
-#        l_ISCC.append( ssep['POSI_CURV_CIRC' ])
-#        l_IPHIC.append(ssep['AZIMUT'         ])
-#        l_IPOS.append( ssep['SOUS_EPAIS'     ])
-#        l_INBEL.append(ssep['NB_ELEM_LONGI'  ])
-#        l_INBEC.append(ssep['NB_ELEM_CIRC'   ])
-#        l_IEVID.append(ssep['EMPREINTE'      ])
-
-     if SOUS_EPAIS_COUDE!=None and COUDE['NB_ELEM_EPAIS']!=3 :
-        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 ---
-################################################################################
-#
-# donnees globales
-  if COUDE['TRANSFORMEE']=='COUDE' or COUDE['TRAN_EPAIS']=='NON' :
-    if SUREP<0. or SUREP>(RM-EP1/2.0):
-       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):
-     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.:
-       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) :
-       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:
-       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)):
-       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
-#
-  if NBTRAN!=0:
-    LCOUDE = ALPHA * RC * pi / 180.0
-    DEXT = 2.0*RM + EP1
-    if (LTRAN<LDEFAU) and (LTRAN>LCOUDE) :
-       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.) :
-       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.) :
-          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.) :
-          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) :
-          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) :
-          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. :
-          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.) :
-          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.) :
-          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.) :
-          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.) :
-          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) :
-          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) :
-          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) :
-          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.) :
-          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 ---
-################################################################################
-#
-#
-  if FISS_COUDE!=None:
-     DSF=(FISS_COUDE['ABSC_CURV']!=None)
-     AXEAP,AXECP,SFP = ASCFIS(ALPHA, RM, RC, EP1, SUREP, GEOM, FPROF,
-                              DGAXEC, AZIM, POSIT, SF, DSF, BETA, ORIEN)
-  elif MCL_SOUS_EPAIS!=None :
-     ier= ASCSEP(MCL_SOUS_EPAIS,ALPHA,RM,RC,EP1,GEOM,SYME)
-     for ssep in MCL_SOUS_EPAIS:
-         ssep.IDENL = ssep.ILONP/ssep['NB_ELEM_LONGI']*180./(pi*RC)
-         ssep.IDENC = ssep.ICIRP/ssep['NB_ELEM_CIRC']*180./(pi*RM)
-     if SYME=='QUART' :
-#       quart de structure     
-        ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\
-        = ASCSYM(MCL_SOUS_EPAIS,RM,RC,ALPHA,LTCHAR,LTCLIM)
-     else :
-#       demi-structure ou entiere
-        ier,NLX,NLY,NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,DNX,DNY\
-        = ASCPRE(MCL_SOUS_EPAIS,RM,RC,ALPHA,SYME,LTCHAR,LTCLIM)
-#
-#
-  loc_gibi=aster.repout()
-  logiel = EXEC_MAILLAGE['LOGICIEL'  ]
-  UNITD  = EXEC_MAILLAGE['UNITE_DATG']
-  UNITP  = EXEC_MAILLAGE['UNITE_MGIB']
-  if   logiel=='GIBI98'  : logiel = loc_gibi+'gibi98'
-  elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000'
-  else                   :
-       UTMESS('F', "MACR_ASCOUF_MAIL", "seuls gibi98 et gibi2000 sont appelables")
-#
-#     --- ecriture sur le fichier .datg  de la procedure ---
-#
-# Nom du fichier de commandes pour GIBI
-  nomFichierDATG = 'fort.'+str(UNITD)
-# Nom du fichier de maillage GIBI
-  nomFichierGIBI = 'fort.'+str(UNITP)
-  loc_datg = aster.repdex()
-#
-  if FISS_COUDE!=None:
-#   procedure coude fissure (MOT-CLE FISS_COUDE)
-    write_file_dgib_ASCFDO(nomFichierDATG,RM,RC,ALPHA,NBTRAN,EP1,EP2,EPI,TETA1,
-                           TETA2,LTRAN,SUREP,LTCHAR,LTCLIM,TYPBOL,AXEAP,AXECP,NT,NS,NC,SFP,
-                           ORIEN,AZIM,RC0,RC2,RC3,POSIT,EPSI,NIVMAG,SYME,loc_datg)
-  elif MCL_SOUS_EPAIS!=None :
-     if SOUS_EPAIS_MULTI==None :
-#      procedure coude sous-ep.: (MOT-CLE SOUS_EPAIS_COUDE)  
-       write_file_dgib_ASCSQO(nomFichierDATG,TYPELE,RM,RC,ALPHA,NBTRAN,EP1,EP2,
-                              EPI,TETA1,MCL_SOUS_EPAIS,TETA2,LTRAN,LTCHAR,LTCLIM,GEOM,
-                              SYME,NBEP,NLX,NLY,NIVMAG,loc_datg)
-       write_file_pgib_ASCSQ2(MCL_SOUS_EPAIS,NLX,NLY)
-     else:
-#      procedure coude sous-ep.:(MOT-CLE SOUS_EPAIS_MULTI)
-       write_file_dgib_ASCSP1(nomFichierDATG,TYPELE,MCL_SOUS_EPAIS,NIVMAG,loc_datg)
-       write_file_pgib_ASCSDO(RM,RC,ALPHA,EP1,LTCLIM,LTCHAR,NBEP,
-                              NZONEX,NZONEY,BG,BD,BI,BS,INDBG,INDBD,INDBI,INDBS,
-                              DNX,DNY,MCL_SOUS_EPAIS,GEOM,SYME)
-       write_file_pgib_ASCSP2(MCL_SOUS_EPAIS,NLX,NLY)
-  else:
-#   procedure coude regle
-    write_file_dgib_ASCRDO(nomFichierDATG,TYPELE,NIVMAG,TYPBOL,ALPHA,RC,RM,EP1,SUREP,
-                           LTCLIM,LTCHAR,NBEP,loc_datg)
-
-  
-# GIBI  
-  EXEC_LOGICIEL( LOGICIEL = logiel ,
-                 ARGUMENT = ( _F(NOM_PARA=nomFichierDATG),
-                              _F(NOM_PARA=nomFichierGIBI), ), )
-# PRE_GIBI
-  PRE_GIBI()
-
-  if SYME == 'QUART' : self.DeclareOut('nomres',self.sd)
-# LIRE_MAILLAGE
-  nomres=LIRE_MAILLAGE(INFO=INFO)
-
-# DEFI_GROUP  1
-
-  motscles={}
-  l_CREA_GROUP_NO=[]
-  l_CREA_GROUP_NO.append('BORD1')
-  l_CREA_GROUP_NO.append('CLGV')
-  l_CREA_GROUP_NO.append('BORD2')
-  l_CREA_GROUP_NO.append('PEAUINT')
-  l_CREA_GROUP_NO.append('PEAUEXT') 
-
-# cas des fissures axisymetriques
-  if FISS_COUDE!=None:
-    if FISS_COUDE['AXIS']=='OUI':
-      motscles['CREA_GROUP_MA']=[]
-      motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS',
-                                          NOM      = 'MAIL_ORI',
-                                          POSITION = 'INIT'    , ),) 
-
-# conversion des groupes de mailles en groupes du bloc fissure  
-  if FISS_COUDE!=None:
-    if SYME == 'ENTIER':
-      l_CREA_GROUP_NO.append('NOLIG1')
-      l_CREA_GROUP_NO.append('FACE1')
-    l_CREA_GROUP_NO.append('NOLIG2')
-    l_CREA_GROUP_NO.append('FACE2')
-    l_CREA_GROUP_NO.append('FONDFISS')
-
-  motscles['CREA_GROUP_NO']=[]
-  motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=tuple(l_CREA_GROUP_NO)))
-
-# conversion des groupes de mailles en groupes de noeuds pour les
-# ligaments des sous-ep.
-  if MCL_SOUS_EPAIS!=None:
-    issep=0
-    for ssep in MCL_SOUS_EPAIS:
-      issep=issep+1
-      if ssep['TYPE']=='ELLI':
-        for k in range(2*NLX[issep-1]+1):
-          chtmp=str(issep)+'_'+str(k+1)
-          ch1='CIR'+chtmp
-          ch2='ICI'+chtmp
-          motscles['CREA_GROUP_NO'].append(_F(NOM      = ch2,
-                                              GROUP_MA = ch1,),)
-        motscles['CREA_GROUP_NO'].append(_F(NOM      = 'IPCEN'+str(issep),
-                                            GROUP_MA = 'PCENT'+str(issep),),)
-        for k in range(2*NLY[issep-1]+1):
-          chtmp=str(issep)+'_'+str(k+1)
-          ch1='LON'+chtmp
-          ch2='ILO'+chtmp
-          motscles['CREA_GROUP_NO'].append(_F(NOM      = ch2,
-                                              GROUP_MA = ch1,),)
-        for k in range(2*NLX[issep-1]+1):
-          chtmp=str(issep)+'_'+str(k+1)
-          ch1='ICI'+chtmp
-          ch2='OCI'+chtmp
-          ch3='ECI'+chtmp
-          motscles['CREA_GROUP_NO'].append(_F(NOM      = ch2,
-                                              INTERSEC = ('PEAUEXT',ch1),),)
-          motscles['CREA_GROUP_NO'].append(_F(NOM      = ch3,
-                                              INTERSEC = ('PEAUINT',ch1),),)
-        motscles['CREA_GROUP_NO'].append(_F(NOM      = 'OPCEN'+str(issep),
-                                            INTERSEC = ('PEAUEXT','IPCEN'+str(issep),),),)
-        motscles['CREA_GROUP_NO'].append(_F(NOM      = 'EPCEN'+str(issep),
-                                            INTERSEC = ('PEAUINT','IPCEN'+str(issep),),),)
-        for k in range(2*NLY[issep-1]+1):
-          chtmp=str(issep)+'_'+str(k+1)
-          ch1='ILO'+chtmp
-          ch2='OLO'+chtmp
-          ch3='ELO'+chtmp
-          motscles['CREA_GROUP_NO'].append(_F(NOM      = ch2,
-                                              INTERSEC =  ('PEAUEXT',ch1),),)
-          motscles['CREA_GROUP_NO'].append(_F(NOM      = ch3,
-                                              INTERSEC =  ('PEAUINT',ch1),),)
-        for k in range(2*NLX[issep-1]+1):
-          chtmp=str(issep)+'_'+str(k+1)
-          ch1='CIR'+chtmp
-          ch2='ICI'+chtmp
-          ch3='OCI'+chtmp
-          ch4='ECI'+chtmp  
-          motscles['CREA_GROUP_NO'].append(_F(OPTION        = 'SEGM_DROI_ORDO',
-                                              NOM           = ch1,
-                                              GROUP_NO      = ch2,
-                                              GROUP_NO_ORIG = ch3,
-                                              GROUP_NO_EXTR = ch4,
-                                              PRECISION     = PRECIS,
-                                              CRITERE       = CRITER,),)
-        motscles['CREA_GROUP_NO'].append(_F(OPTION        = 'SEGM_DROI_ORDO',
-                                            NOM           = 'PCENT'+str(issep),
-                                            GROUP_NO      = 'IPCEN'+str(issep),
-                                            GROUP_NO_ORIG = 'OPCEN'+str(issep),
-                                            GROUP_NO_EXTR = 'EPCEN'+str(issep),
-                                            PRECISION     =  PRECIS,
-                                            CRITERE       =  CRITER,),)
-        for k in range(2*NLY[issep-1]+1):
-           chtmp=str(issep)+'_'+str(k+1)
-           ch1='LON'+chtmp
-           ch2='ILO'+chtmp
-           ch3='OLO'+chtmp
-           ch4='ELO'+chtmp  
-           motscles['CREA_GROUP_NO'].append(_F(OPTION        = 'SEGM_DROI_ORDO',
-                                               NOM           = ch1,
-                                               GROUP_NO      = ch2,
-                                               GROUP_NO_ORIG = ch3,
-                                               GROUP_NO_EXTR = ch4,
-                                               PRECISION     = PRECIS,
-                                               CRITERE       = CRITER,),)
-#     1/ noms intermediaires des groupes de noeuds representant les ligaments
-#        des sections: TU,MI,GV et sous-ep.     
-      for k in range(8):
-        motscles['CREA_GROUP_NO'].append(_F( NOM      = CAR3[k]+str(issep),
-                                             GROUP_MA = CAR6[k]+str(issep),),)
-
-    for k in range(3):
-      if SYME == 'ENTIER' or k!=2:
-        for j in range(8):
-          motscles['CREA_GROUP_NO'].append(_F( NOM      = CAR3[j]+SECT[k],
-                                               GROUP_MA = CAR6[j]+SECT[k],),)
-
-#   2/ determination et nommage des noeuds origine et extremite des groupes de noeuds
-#      representant les ligaments de la ou des sections: sous-ep.
-    issep=0
-    for ssep in MCL_SOUS_EPAIS:
-      issep=issep+1
-      for k in range(8):
-        motscles['CREA_GROUP_NO'].append(_F( NOM      = CAR4[k]+str(issep),
-                                             INTERSEC = ('PEAUEXT',CAR3[k]+str(issep),),),)
-        motscles['CREA_GROUP_NO'].append(_F( NOM      = CAR5[k]+str(issep),
-                                             INTERSEC = ('PEAUINT',CAR3[k]+str(issep),),),)        
-#     3/ nommage final des groupes de noeuds representant les ligaments 
-#        de la ou des sections: sous-ep.
-      for k in range(8):
-        motscles['CREA_GROUP_NO'].append(_F(OPTION        = 'SEGM_DROI_ORDO',
-                                            NOM           = CAR6[k]+str(issep),
-                                            GROUP_NO      = CAR3[k]+str(issep),
-                                            GROUP_NO_ORIG = CAR4[k]+str(issep),
-                                            GROUP_NO_EXTR = CAR5[k]+str(issep),
-                                            PRECISION     = PRECIS,
-                                            CRITERE       = CRITER,),)
-
-#   4/ determination et nommage des noeuds origine et extremite des groupes de noeuds
-#      representant les ligaments des sections: TU,MI,GV
-    for k in range(3):
-      if SYME == 'ENTIER' or k!=2:
-        for j in range(8):
-           motscles['CREA_GROUP_NO'].append(_F( NOM      = CAR4[j]+SECT[k],
-                                                INTERSEC = ('PEAUEXT',CAR3[j]+SECT[k],),),) 
-           motscles['CREA_GROUP_NO'].append(_F( NOM      = CAR5[j]+SECT[k],
-                                                INTERSEC = ('PEAUINT',CAR3[j]+SECT[k],),),) 
-#       5/ nommage final des groupes de noeuds representant les ligaments des sections: TU,MI,GV   
-        for j in range(8):    
-           motscles['CREA_GROUP_NO'].append(_F(OPTION        = 'SEGM_DROI_ORDO',
-                                               NOM           = CAR6[j]+SECT[k],
-                                               GROUP_NO      = CAR3[j]+SECT[k],
-                                               GROUP_NO_ORIG = CAR4[j]+SECT[k],
-                                               GROUP_NO_EXTR = CAR5[j]+SECT[k],
-                                               PRECISION     = PRECIS,
-                                               CRITERE       = CRITER,),)
-    
-
-  nomres=DEFI_GROUP(reuse   =nomres,
-                      MAILLAGE=nomres,
-                      **motscles )
-#
-# DEFI_GROUP  2
-  if FISS_COUDE!=None:
-# creation des groupes petit axe et grand axe fissure par
-# intersection de groupes existants
-    motscles={}
-    motscles['CREA_GROUP_NO']=[]
-    l_peau=[]
-    l_intersec=[]
-    if POSIT == 'DEB_INT':
-        l_peau.append('PEAUINT')
-    else:
-        l_peau.append('PEAUEXT')
-    
-    if SYME == 'ENTIER' :
-      l_intersec.append('FACE1')
-      motscles['CREA_GROUP_NO'].append(_F(NOM      = 'P_AXE_1',
-                                          INTERSEC = ('NOLIG1','FACE1'),),)
-      motscles['CREA_GROUP_NO'].append(_F(NOM      = 'G_AXE_1',
-                                          INTERSEC =  tuple(l_peau+l_intersec),),)  
-    l_intersec=[]
-    l_intersec.append('FACE2')  
-    motscles['CREA_GROUP_NO'].append(_F(NOM      = 'P_AXE_2',
-                                        INTERSEC = ('NOLIG2','FACE2'),),)
-    motscles['CREA_GROUP_NO'].append(_F(NOM      = 'G_AXE_2',
-                                        INTERSEC =  tuple(l_peau+l_intersec),),)
-   
-    nomres=DEFI_GROUP(reuse   =nomres,
-                        MAILLAGE=nomres,
-                        **motscles )    
-# AFFE_MODELE
-  __MODELE=AFFE_MODELE( MAILLAGE=nomres,
-                        AFFE=_F( GROUP_MA     = 'COUDE'      ,
-                                 PHENOMENE    = 'MECANIQUE'  ,
-                                 MODELISATION = '3D'         , )
-                         )
-
-# MODI_MAILLAGE  1
-  motscles={}
-  if GEOM == 'COUDE':
-    motscles['TUBE_COUDE']=[]
-    motscles['TUBE_COUDE'].append(_F(ANGLE=ALPHA,
-                                    R_CINTR=RC,
-                                    L_TUBE_P1=LTCHAR),)
-  motscles['PLAQ_TUBE']=[]
-  D_PLAQ_TUBE={}
-  D_PLAQ_TUBE['DEXT']=DEXT
-  D_PLAQ_TUBE['EPAIS']=EP1
-  D_PLAQ_TUBE['L_TUBE_P1']=LTCHAR
-  if SYME == 'QUART' : D_PLAQ_TUBE['COUTURE']='NON'
-  if FISS_COUDE!=None:
-      D_PLAQ_TUBE['AZIMUT']=AZIM
-  elif SOUS_EPAIS_COUDE!=None :
-      D_PLAQ_TUBE['AZIMUT']=MCL_SOUS_EPAIS[0].IPHIC
-  else:pass
-  motscles['PLAQ_TUBE'].append(_F(**D_PLAQ_TUBE),) 
-  nomres=MODI_MAILLAGE( reuse   =nomres,
-                          MAILLAGE=nomres,
-                          **motscles )
-# MODI_MAILLAGE  2
-  motscles={}
-  motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE'),)
-  if FISS_COUDE!=None:
-    if FISS_COUDE['FISSURE'] == 'DEB_INIT':
-      motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXTUBE','FACE1','FACE2'),)  
-  nomres=MODI_MAILLAGE(reuse   =nomres,
-                       MAILLAGE=nomres,
-                       MODELE  =__MODELE,
-                       **motscles)
-
-# CREA_MAILLAGE
-  if SYME != 'QUART':
-    self.DeclareOut('nomre2',self.sd)
-    motscles={}
-    motscles['CREA_POI1']=[]
-    motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P1',
-                                    GROUP_NO='P1'),)
-    if TYPBOL == None :
-      motscles['CREA_POI1'].append(_F(NOM_GROUP_MA='P2',
-                                    GROUP_NO='P2'),)    
-    nomre2=CREA_MAILLAGE( MAILLAGE=nomres,
-                          **motscles)
-  else:  
-    nomre2=nomres
-
-# IMPRESSSION
-  if IMPRESSION!=None:
-     if IMPRESSION.__class__.__name__  !='MCList' : IMPRESSION  =[IMPRESSION,]
-     for impr in IMPRESSION :
-#
-         motscles={}
-         if impr['FORMAT']=='IDEAS'  : motscles['VERSION']   =impr['VERSION']
-         if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI'] =impr['NIVE_GIBI']
-         if impr['UNITE']!=None      : motscles['UNITE']     =impr['UNITE']
-         impr_resu = _F( MAILLAGE = nomre2,)
-#
-         IMPR_RESU( RESU = impr_resu,
-                    FORMAT= impr['FORMAT'],**motscles)
-
-
-
-  return ier
-
-
diff --git a/Aster/Cata/cataSTA81/Macro/macr_aspic_calc_ops.py b/Aster/Cata/cataSTA81/Macro/macr_aspic_calc_ops.py
deleted file mode 100644 (file)
index eda90f9..0000000
+++ /dev/null
@@ -1,805 +0,0 @@
-#@ MODIF macr_aspic_calc_ops Macro  DATE 09/05/2006   AUTEUR REZETTE C.REZETTE 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-def macr_aspic_calc_ops(self,TYPE_MAILLAGE,TUBULURE,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM,
-                             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,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
-  mc_AFFE_MATERIAU=AFFE_MATERIAU
-#------------------------------------------------------------------
-  # On importe les definitions des commandes a utiliser dans la macro
-  AFFE_MODELE      =self.get_cmd('AFFE_MODELE'     )
-  AFFE_MATERIAU    =self.get_cmd('AFFE_MATERIAU'   )
-  AFFE_CARA_ELEM   =self.get_cmd('AFFE_CARA_ELEM'  )
-  AFFE_CHAR_THER_F =self.get_cmd('AFFE_CHAR_THER_F')
-  THER_LINEAIRE    =self.get_cmd('THER_LINEAIRE'   )
-  AFFE_CHAR_MECA   =self.get_cmd('AFFE_CHAR_MECA'  )
-  STAT_NON_LINE    =self.get_cmd('STAT_NON_LINE'   )
-  CALC_ELEM        =self.get_cmd('CALC_ELEM'       )
-  POST_RELEVE_T    =self.get_cmd('POST_RELEVE_T'   )
-  IMPR_TABLE       =self.get_cmd('IMPR_TABLE'      )
-  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           =self.get_cmd('CALC_G'          )
-  IMPR_RESU        =self.get_cmd('IMPR_RESU'       )
-
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-#------------------------------------------------------------------
-# data
-  GRMAIL= ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP')
-  NOMNOE= ('P1_CORP','P2_CORP','P_TUBU ')
-  IMPRT1= ('NUME_ORDRE','INTITULE','RESU'  ,'NOM_CHAM',
-           'ABSC_CURV' ,'COOR_X'  ,'COOR_Y','COOR_Z'  ,
-           'SIXX'      ,'SIXY'    ,'SIXZ'   )
-  IMPRT2= ('NUME_ORDRE','INTITULE','RESU'  ,'NOM_CHAM',
-           'ABSC_CURV' ,'COOR_X'  ,'COOR_Y','COOR_Z'  ,
-           'SIYY'      ,'SIXY'    ,'SIYZ'   )
-  IMPRT3= ('NUME_ORDRE','INTITULE','RESU'  ,'NOM_CHAM',
-           'ABSC_CURV' ,'COOR_X'  ,'COOR_Y','COOR_Z'  ,
-           'TEMP'   )
-  APPRES= ('PEAUINT ','LEVRTUBU','LEVRCORP')
-#------------------------------------------------------------------
-#
-  i=0
-  for mate in mc_AFFE_MATERIAU:
-     if mate['RCCM']=='OUI' :
-        i=i+1
-        MRCCM=mate['MATER']
-  if i>1 :
-     UTMESS('E', "MACR_ASPIC_CALC", "vous affectez plus d un materiau contenant l option rccm")
-#
-  if (TYPE_MAILLAGE[:4]=='SAIN') and (TUBULURE==None) :
-     UTMESS('E', "MACR_ASPIC_CALC", "pour les piquages sains, TUBULURE doit etre renseigne")
-#
-  if EQUILIBRE['NOEUD'] not in ('P1_CORP','P2_CORP') :
-     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 :
-       UTMESS('E', "MACR_ASPIC_CALC", "il faut preciser un noeud pour EFFE_FOND")
-     if PRES_REP['NOEUD'] not in ('P1_CORP','P2_CORP') :
-       UTMESS('E', "MACR_ASPIC_CALC", "PRES_REP[NOEUD] : on attend P1_CORP ou P2_CORP")
-     if PRES_REP['NOEUD']==EQUILIBRE['NOEUD'] :
-       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') :
-            UTMESS('E', "MACR_ASPIC_CALC", "TORS_CORP[NOEUD] : on attend P1_CORP ou P2_CORP")
-         if tors['NOEUD']==EQUILIBRE['NOEUD'] :
-            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) :
-     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 :
-       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 :
-       UTMESS('E', "MACR_ASPIC_CALC", "impression de resultats demandée sans preciser le nom des champs cf. la documentation utilisateur : U4.PC.20.")
-#
-#------------------------------------------------------------------
-#
-#     --- commande AFFE_MODELE ---
-#
-  if MODELE!=None : self.DeclareOut('modele',MODELE)
-  mcfact=[]
-  if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') :
-     mcfact.append(_F(GROUP_MA=GRMAIL,     PHENOMENE='MECANIQUE',MODELISATION='3D'    ))
-  else:
-     mcfact.append(_F(GROUP_MA=GRMAIL[:-2],PHENOMENE='MECANIQUE',MODELISATION='3D'    ))
-  mcfact.append(   _F(GROUP_MA='P1_CORP'  ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR'))
-  mcfact.append(   _F(GROUP_MA='P2_CORP'  ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR'))
-  mcfact.append(   _F(GROUP_MA='P_TUBU'   ,PHENOMENE='MECANIQUE',MODELISATION='DIS_TR'))
-  modele = AFFE_MODELE( MAILLAGE = MAILLAGE ,
-                        AFFE     = mcfact    )
-  if ECHANGE!=None :                                # modele thermique
-     __modthe = AFFE_MODELE( MAILLAGE = MAILLAGE ,
-                             AFFE     = _F(GROUP_MA    =GRMAIL[:-2],
-                                           PHENOMENE   ='THERMIQUE',
-                                           MODELISATION='3D' )       )
-#
-#     --- commande AFFE_MATERIAU ---
-#
-  if CHAM_MATER!=None : self.DeclareOut('affmat',CHAM_MATER)
-  mcfact=[]
-  for mater in mc_AFFE_MATERIAU :
-     if mater['TOUT']!=None : mcfact.append(_F(TOUT    =mater['TOUT'    ],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-     else                   : mcfact.append(_F(GROUP_MA=mater['GROUP_MA'],MATER=mater['MATER'],TEMP_REF=mater['TEMP_REF']))
-  affmat = AFFE_MATERIAU( MAILLAGE = MAILLAGE ,
-                          MODELE   = modele ,
-                          AFFE     = mcfact    )
-#
-#     --- commande AFFE_CARA_ELEM ---
-#
-  if CARA_ELEM!=None : self.DeclareOut('carael',CARA_ELEM)
-  carael = AFFE_CARA_ELEM( MODELE   = modele ,
-                           DISCRET  = ( _F( GROUP_MA='P1_CORP' ,
-                                            CARA    ='K_TR_D_N',
-                                            VALE    = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),
-                                        _F( GROUP_MA='P2_CORP' ,
-                                            CARA    ='K_TR_D_N',
-                                            VALE    = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ),
-                                        _F( GROUP_MA='P_TUBU' ,
-                                            CARA    ='K_TR_D_N',
-                                            VALE    = ( 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ) ), ) )
-#
-#     --- commande AFFE_CHAR_THER_F ---
-#         condition aux limites
-#
-  if ECHANGE!=None :
-     __chther = AFFE_CHAR_THER_F( MODELE = __modthe ,
-                                  ECHANGE=( _F(GROUP_MA='PEAUTUBU',
-                                               COEF_H  =ECHANGE['COEF_H_TUBU'],
-                                               TEMP_EXT=ECHANGE['TEMP_EXT'],),
-                                            _F(GROUP_MA='PEAUCORP',
-                                               COEF_H  =ECHANGE['COEF_H_CORP'],
-                                               TEMP_EXT=ECHANGE['TEMP_EXT'],),))
-#
-#     --- calcul thermique ---
-#
-     if RESU_THER!=None : self.DeclareOut('resuth',RESU_THER)
-     mcsimp={}
-     if INCREMENT['NUME_INST_INIT']!=None : mcsimp['NUME_INIT']=INCREMENT['NUME_INST_INIT']
-     if INCREMENT['NUME_INST_FIN' ]!=None : mcsimp['NUME_FIN' ]=INCREMENT['NUME_INST_FIN' ]
-     mcfact=_F(LIST_INST=INCREMENT['LIST_INST'],**mcsimp)
-     resuth = THER_LINEAIRE( MODELE     = __modthe ,
-                             CHAM_MATER = affmat ,
-                             TEMP_INIT  = _F(STATIONNAIRE='OUI',),
-                             EXCIT      = _F(CHARGE=__chther,),
-                             INCREMENT  = mcfact, )
-#
-     if CHARGE!=None : self.DeclareOut('chmeth',CHARGE)
-     chmeth = AFFE_CHAR_MECA( MODELE        = modele ,
-                              TEMP_CALCULEE = resuth )
-#
-#     --- commande AFFE_CHAR_MECA ---
-#         condition aux limites
-#
-  if     EQUILIBRE['NOEUD']=='P1_CORP' :
-         NENCAS = EQUILIBRE['NOEUD']
-         AEFOCO = 'EXCORP2'
-         ATORCO = 'P2_CORP'
-         LINTC  = 'L_INT_C2'
-  elif   EQUILIBRE['NOEUD']=='P2_CORP' :
-         NENCAS = EQUILIBRE['NOEUD']
-         AEFOCO = 'EXCORP1'
-         ATORCO = 'P1_CORP'
-         LINTC  = 'L_INT_C1'
-  _conlim = AFFE_CHAR_MECA(  MODELE   = modele ,
-                             LIAISON_ELEM  = ( _F( OPTION    ='3D_POU'  ,
-                                                   GROUP_MA_1='EXCORP1',
-                                                   GROUP_NO_2='P1_CORP'),
-                                               _F( OPTION    ='3D_POU'  ,
-                                                   GROUP_MA_1='EXCORP2' ,
-                                                   GROUP_NO_2='P2_CORP'),
-                                               _F( OPTION    ='3D_POU'  ,
-                                                   GROUP_MA_1='EXTUBU',
-                                                   GROUP_NO_2='P_TUBU'), ),
-                             DDL_IMPO      =   _F( GROUP_NO  = NENCAS  ,
-                                                   DX        = 0.0 ,
-                                                   DY        = 0.0 ,
-                                                   DZ        = 0.0 ,
-                                                   DRX       = 0.0 ,
-                                                   DRY       = 0.0 ,
-                                                   DRZ       = 0.0 , ) )
-#
-#     --- commande AFFE_CHAR_MECA ---
-#         chargement mecanique : pres_rep, effet de fond 
-#
-  motscles={}
-  if (PRES_REP['PRES_LEVRE']=='OUI') and (TYPE_MAILLAGE[-4:]=='_DEB') :
-      motscles['PRES_REP'  ]= _F(GROUP_MA=APPRES,   PRES=PRES_REP['PRES'])
-  else :
-      motscles['PRES_REP'  ]= _F(GROUP_MA=APPRES[0],PRES=PRES_REP['PRES'])
-  if  PRES_REP['EFFE_FOND' ]!=None :
-      motscles['EFFE_FOND' ]=(_F(GROUP_MA    ='EXTUBU  ',
-                                 GROUP_MA_INT='L_INT_TU',
-                                 PRES        =PRES_REP['PRES']),
-                              _F(GROUP_MA    =AEFOCO,
-                                 GROUP_MA_INT=LINTC,
-                                 PRES        =PRES_REP['PRES']))
-  _chpres = AFFE_CHAR_MECA( MODELE   = modele ,**motscles)
-#
-#     --- commande AFFE_CHAR_MECA ---
-#         chargement mecanique : torseur sur le corps
-#
-  if TORS_CORP!=None:
-     _chtrc = [None]*6
-     i=0
-     for tors in TORS_CORP :
-       mcsimp={}
-       if tors['FX']!=None : mcsimp['FX']=tors['FX']
-       if tors['FY']!=None : mcsimp['FY']=tors['FY']
-       if tors['FZ']!=None : mcsimp['FZ']=tors['FZ']
-       if tors['MX']!=None : mcsimp['MX']=tors['MX']
-       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 ,
-                                    FORCE_NODALE = mcfact , )
-       i=i+1
-#
-#     --- commande AFFE_CHAR_MECA ---
-#         chargement mecanique : torseur sur la tubulure
-#
-  if TORS_TUBU!=None:
-     _chtrt = [None]*6
-     i=0
-     for tors in TORS_TUBU :
-       mcsimp={}
-       if tors['FX']!=None : mcsimp['FX']=tors['FX']
-       if tors['FY']!=None : mcsimp['FY']=tors['FY']
-       if tors['FZ']!=None : mcsimp['FZ']=tors['FZ']
-       if tors['MX']!=None : mcsimp['MX']=tors['MX']
-       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 ,
-                                    FORCE_NODALE = mcfact , )
-       i=i+1
-#
-#     --- commande STAT_NON_LINE ---
-#
-  motscles={}
-#
-  mcfex=[]  # mot clé facteur EXCIT
-  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']))
-  else :
-     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']))
-       else :
-          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']))
-       else :
-          mcfex.append(_F(CHARGE=_chtrt[i],))
-       i=i+1
-  motscles['EXCIT'] =mcfex
-#
-  mcfci=[]  # mot clé facteur COMP_INCR :obligatoire pour les noeuds discrets
-  if COMP_INCR!=None :
-    mcfci.append(_F(TOUT    ='OUI' ,RELATION=COMP_INCR['RELATION']))
-  mcfci.append(  _F(GROUP_MA=NOMNOE,RELATION='ELAS'))
-  motscles['COMP_INCR'] =mcfci
-#
-  if COMP_ELAS!=None :
-    motscles['COMP_ELAS'] =_F(GROUP_MA=GRMAIL[:-2] ,RELATION=COMP_ELAS['RELATION'])
-#
-  dSolveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-  for i in dSolveur.keys():
-      if dSolveur[i]==None : del dSolveur[i]
-#
-  dConverg=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste)
-  for i in dConverg.keys():
-      if dConverg[i]==None : del dConverg[i]
-#
-  dNewton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
-  for i in dNewton.keys():
-      if dNewton[i]==None : del dNewton[i]
-#
-  dRechlin=RECH_LINEAIRE[0].cree_dict_valeurs(RECH_LINEAIRE[0].mc_liste)
-  for i in dRechlin.keys():
-      if dRechlin[i]==None : del dRechlin[i]
-#
-  dIncrem=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
-  for i in dIncrem.keys():
-      if dIncrem[i]==None : del dIncrem[i]
-#
-  if TITRE!=None :
-    motscles['TITRE'        ] =TITRE
-  motscles  ['SOLVEUR'      ] =dSolveur
-  motscles  ['CONVERGENCE'  ] =dConverg
-  motscles  ['NEWTON'       ] =dNewton
-  motscles  ['RECH_LINEAIRE'] =dRechlin
-  motscles  ['INCREMENT'    ] =dIncrem
-  self.DeclareOut('nomres',self.sd)
-  nomres = STAT_NON_LINE( MODELE     = modele ,
-                          CHAM_MATER = affmat ,
-                          CARA_ELEM  = carael ,
-                          INFO       = INFO   , **motscles)
-#
-  nomres = CALC_ELEM( reuse      = nomres,
-                      RESULTAT   = nomres ,
-                      TOUT_ORDRE = 'OUI'  ,
-                      OPTION     = ('SIEF_ELNO_ELGA','VARI_ELNO_ELGA','EQUI_ELNO_SIGM') ,
-                      INFO       = INFO ,)
-#
-#-----------------------------------------------------------------------
-  if TYPE_MAILLAGE[:4]=='SAIN' :
-#-----------------------------------------------------------------------
-#
-#     --- post traitement :  POST_RELEVE_T  --- azimuts droits
-#
-#     ----  champs de contrainte SI, SII ET SIII  ----
-#
-    if TYPE_MAILLAGE=='SAIN_GROS' : NBAZIM = 40
-    else                          : NBAZIM = 48
-    mcfact=[]
-    TYPSOU=None
-    if TUBULURE!=None : TYPSOU = TUBULURE['TYPE']
-    for i in range(1,NBAZIM+1,PAS_AZIMUT):
-      if i<10 : NUME = '0'+str(i)
-      else    : NUME =     str(i)
-      mcsimp={}
-      if TYPSOU=='TYPE_1':
-          mcsimp['REPERE' ]='CYLINDRIQUE',
-          mcsimp['ORIGINE']=( 0.0 , 0.0 , 0.0 )
-          mcsimp['AXE_Z'  ]=( 0.0 , 0.0 , 1.0 )
-          INTITD = 'AZI_'+NUME+'_D-REP_CYL'
-      else:
-          mcsimp['REPERE' ]='LOCAL'
-          mcsimp['VECT_Y' ]=( 0.0 , 0.0 , 1.0 )
-          INTITD = 'AZI_'+NUME+'_D-REP_LOC'
-      mcsimp['INTITULE' ]=INTITD
-      mcsimp['GROUP_NO' ]='LD'+str(i)
-      mcfact.append( _F( RESULTAT   = nomres,
-                         TOUT_ORDRE ='OUI',
-                         NOM_CHAM   ='SIEF_ELNO_ELGA',
-                         PRECISION  =55.E-1,
-                         TOUT_CMP   ='OUI',
-                         OPERATION  ='EXTRACTION',**mcsimp))
-    __noposd=POST_RELEVE_T(ACTION = mcfact,
-                           TITRE  = '-- TRAITEMENT DES AZIMUTS DROITS --')
-#
-#     --- IMPR_TABLE dans un repere cylindrique ou local
-#         des champs de contrainte SI, SII ET SIII
-#
-    if TYPSOU=='TYPE_1' : nompara=IMPRT1
-    else                : nompara=IMPRT2
-    IMPR_TABLE(TABLE    = __noposd,
-               NOM_PARA = nompara   )
-#
-#     ----  Pm, Pm+Pb sur les lignes de depouillement  ----
-#
-    if mc_AFFE_MATERIAU[0]['RCCM']=='OUI':
-      mcfact=[]
-      for i in range(1,NBAZIM+1,PAS_AZIMUT):
-        if i<10 : NUME = '0'+str(i)
-        else    : NUME =     str(i)
-        mcsimp={}
-        mcsimp['INTITULE'   ]='LD'+str(i)
-        mcsimp['GROUP_NO'   ]='LD'+str(i)
-        mcsimp['RESULTAT'   ]=nomres
-        mcsimp['TOUT_ORDRE' ]='OUI'
-        mcsimp['NOM_CHAM'   ]='SIEF_ELNO_ELGA'
-        mcsimp['PRECISION'  ]=55.E-1
-        mcsimp['TOUT_CMP'   ]='OUI'
-        mcsimp['OPERATION'  ]='EXTRACTION'
-        mcfact.append( _F(**mcsimp) )
-      __prelsd=POST_RELEVE_T(ACTION=mcfact)
-      __pmpbsd=POST_RCCM(OPTION         = 'PM_PB',
-                         TYPE_RESU_MECA = 'EVOLUTION',
-                         TYPE_RESU      = 'VALE_MAX',
-                         MATER          = MRCCM,
-                         TRANSITOIRE = _F(TABL_RESU_MECA = __prelsd,),
-                         TITRE       = '-- TRAITEMENT DES AZIMUTS DROITS --',)
-      IMPR_TABLE(TABLE = __pmpbsd, )
-#
-#     ----  champ de temperature, si il a ete calcule, sur les lignes de depouillement  ----
-#
-    if ECHANGE!=None :
-      mcfact=[]
-      for i in range(1,NBAZIM+1,PAS_AZIMUT):
-        if i<10 : NUME = '0'+str(i)
-        else    : NUME =     str(i)
-        mcsimp={}
-        mcsimp['GROUP_NO'   ]='LD'+str(i)
-        mcsimp['RESULTAT'   ]=resuth
-        mcsimp['TOUT_ORDRE' ]='OUI'
-        mcsimp['NOM_CHAM'   ]='TEMP'
-        mcsimp['PRECISION'  ]=55.E-1
-        mcsimp['TOUT_CMP'   ]='OUI'
-        mcsimp['INTITULE'   ]='AZI_'+NUME+'_D'
-        mcsimp['OPERATION'  ]='EXTRACTION'
-        mcfact.append( _F(**mcsimp) )
-      __rthazd=POST_RELEVE_T(ACTION=mcfact)
-      IMPR_TABLE(TABLE = __rthazd, )
-#
-#     ----  parametres caracterisant la distribution de temperature,
-#           si elle a ete calculee, dans l epaisseur du ligament  ----
-#
-      mcfact=[]
-      for i in range(1,NBAZIM+1,PAS_AZIMUT):
-        if i<10 : NUME = '0'+str(i)
-        else    : NUME =     str(i)
-        mcsimp={}
-        mcsimp['GROUP_NO'   ]='LD'+str(i)
-        mcsimp['RESULTAT'   ]=resuth
-        mcsimp['TOUT_ORDRE' ]='OUI'
-        mcsimp['NOM_CHAM'   ]='TEMP'
-        mcsimp['PRECISION'  ]=55.E-1
-        mcsimp['TOUT_CMP'   ]='OUI'
-        mcsimp['INTITULE'   ]='AZI_'+NUME+'_D'
-        mcsimp['OPERATION'  ]='MOYENNE'
-        mcfact.append( _F(**mcsimp) )
-      __rmothd=POST_RELEVE_T(ACTION=mcfact)
-      IMPR_TABLE(TABLE = __rmothd, )
-#
-#-----------------------------------------------------------------------
-#
-#     --- post traitement :  POST_RELEVE_T  --- azimuts inclines
-#     --- champs de contrainte SI, SII ET SIII  ----
-#
-    mcfact=[]
-    for i in range(1,NBAZIM+1,PAS_AZIMUT):
-      if i<10 : NUME = '0'+str(i)
-      else    : NUME =     str(i)
-      mcsimp={}
-      mcsimp['GROUP_NO'   ]='LI'+str(i)
-      mcsimp['RESULTAT'   ]=nomres
-      mcsimp['TOUT_ORDRE' ]='OUI'
-      mcsimp['NOM_CHAM'   ]='SIEF_ELNO_ELGA'
-      mcsimp['PRECISION'  ]=55.E-1
-      mcsimp['TOUT_CMP'   ]='OUI'
-      mcsimp['REPERE'     ]='LOCAL'
-      mcsimp['VECT_Y'     ]=( 0.0 , 0.0 , 1.0 )
-      mcsimp['INTITULE'   ]='AZI_'+NUME+'_I-REP_LOC'
-      mcsimp['OPERATION'  ]='EXTRACTION'
-      mcfact.append( _F(**mcsimp) )
-    __noposi=POST_RELEVE_T(ACTION=mcfact)
-    IMPR_TABLE(TABLE = __noposi, )
-#
-#     ----  Pm, Pm+Pb sur les lignes de depouillement  ----
-#
-    if mc_AFFE_MATERIAU[0]['RCCM']=='OUI':
-      mcfact=[]
-      for i in range(1,NBAZIM+1,PAS_AZIMUT):
-        if i<10 : NUME = '0'+str(i)
-        else    : NUME =     str(i)
-        mcsimp={}
-        mcsimp['INTITULE'   ]='LI'+str(i)
-        mcsimp['GROUP_NO'   ]='LI'+str(i)
-        mcsimp['RESULTAT'   ]=nomres
-        mcsimp['TOUT_ORDRE' ]='OUI'
-        mcsimp['NOM_CHAM'   ]='SIEF_ELNO_ELGA'
-        mcsimp['PRECISION'  ]=55.E-1
-        mcsimp['TOUT_CMP'   ]='OUI'
-        mcsimp['OPERATION'  ]='EXTRACTION'
-        mcfact.append( _F(**mcsimp) )
-      __prelsi=POST_RELEVE_T(ACTION=mcfact)
-      __pmpbsi=POST_RCCM(OPTION         = 'PM_PB',
-                         TYPE_RESU_MECA = 'EVOLUTION',
-                         TYPE_RESU      = 'VALE_MAX',
-                         MATER          = MRCCM,
-                         TRANSITOIRE = _F(TABL_RESU_MECA = __prelsi,),
-                         TITRE       = '-- TRAITEMENT DES AZIMUTS INCLINES --',)
-      IMPR_TABLE(TABLE = __pmpbsi, )
-#
-#     ----  champs de temperature,si il a ete calcule, sur les lignes de depouillement  ----
-#
-    if ECHANGE!=None :
-      mcfact=[]
-      for i in range(1,NBAZIM+1,PAS_AZIMUT):
-        if i<10 : NUME = '0'+str(i)
-        else    : NUME =     str(i)
-        mcsimp={}
-        mcsimp['GROUP_NO'   ]='LI'+str(i)
-        mcsimp['RESULTAT'   ]=resuth
-        mcsimp['TOUT_ORDRE' ]='OUI'
-        mcsimp['NOM_CHAM'   ]='TEMP'
-        mcsimp['PRECISION'  ]=55.E-1
-        mcsimp['TOUT_CMP'   ]='OUI'
-        mcsimp['INTITULE'   ]='AZI_'+NUME+'_I'
-        mcsimp['OPERATION'  ]='EXTRACTION'
-        mcfact.append( _F(**mcsimp) )
-      __rthazi=POST_RELEVE_T(ACTION=mcfact)
-      IMPR_TABLE(TABLE    = __rthazi,
-                 NOM_PARA = IMPRT3 )
-#
-#     ----  parametres caracterisant la distribution de temperature,
-#           si elle a ete calculee, dans l epaisseur du ligament  ----
-#
-      mcfact=[]
-      for i in range(1,NBAZIM+1,PAS_AZIMUT):
-        if i<10 : NUME = '0'+str(i)
-        else    : NUME =     str(i)
-        mcsimp={}
-        mcsimp['GROUP_NO'   ]='LI'+str(i)
-        mcsimp['RESULTAT'   ]=resuth
-        mcsimp['TOUT_ORDRE' ]='OUI'
-        mcsimp['NOM_CHAM'   ]='TEMP'
-        mcsimp['PRECISION'  ]=55.E-1
-        mcsimp['TOUT_CMP'   ]='OUI'
-        mcsimp['INTITULE'   ]='AZI_'+NUME+'_I'
-        mcsimp['OPERATION'  ]='MOYENNE'
-        mcfact.append( _F(**mcsimp) )
-      __rmothi=POST_RELEVE_T(ACTION=mcfact)
-      IMPR_TABLE(TABLE = __rmothi, )
-#
-#-----------------------------------------------------------------------
-  elif TYPE_MAILLAGE[:4]=='FISS' :
-#-----------------------------------------------------------------------
-#
-    NOMGRO=[]
-    NOMGRE=[]
-    TABMA8=[]
-    NOMMA =[]
-    if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB','FISS_AXIS_DEB','FISS_COUR_NONDEB') :
-       NBFIS = 1
-       NOMGRO.append(('P_FON1' ,'P_FIS1' ),)
-       NOMGRE.append(('P_FON2' ,'P_FIS2' ),)
-       TABMA8.append('FONDFISS')
-       if TYPE_MAILLAGE in ('FISS_COUR_DEB','FISS_LONG_DEB') : FERME=0
-       else :
-          FERME=1
-          NOMMA.append('MAIL_ORI')
-    elif TYPE_MAILLAGE in ('FISS_LONG_NONDEB','FISS_AXIS_NONDEB') :
-       NBFIS = 2
-       NOMGRO.append(('P_FON1' ,'P_FIS1' ),)
-       NOMGRE.append(('P_FON2' ,'P_FIS2' ),)
-       NOMGRO.append(('PI_FON1','PI_FIS1'),)
-       NOMGRE.append(('PI_FON2','PI_FIS2'),)
-       TABMA8.append('FOND_SUP')
-       TABMA8.append('FOND_INF')
-       if TYPE_MAILLAGE=='FISS_LONG_NONDEB' : FERME=0
-       else :
-          FERME=1
-          NOMMA.append('MA_ORI_S')
-          NOMMA.append('MA_ORI_I')
-#
-    if ECHANGE!=None:
-#
-#     ----  champs de temperature en fond de fissure
-#           si il a ete calcule, cas 1 fond de fissure  ----
-#
-      if NBFIS==1:
-        __rthfis=POST_RELEVE_T(ACTION=_F(GROUP_NO   ='FONDFISS',
-                                         RESULTAT   =resuth,
-                                         TOUT_ORDRE ='OUI',
-                                         NOM_CHAM   ='TEMP',
-                                         PRECISION  =55.E-1,
-                                         TOUT_CMP   ='OUI',
-                                         INTITULE   ='FONDFISS',
-                                         OPERATION  ='EXTRACTION',))
-        IMPR_TABLE(TABLE = __rthfis, )
-#
-#     ----  champs de temperature en fond de fissure
-#           si il a ete calcule, cas 2 fonds de fissure  ----
-#
-      elif NBFIS==2:
-#
-        __rthfis1=POST_RELEVE_T(ACTION=_F(GROUP_NO   ='FOND_SUP',
-                                          RESULTAT   =resuth,
-                                          TOUT_ORDRE ='OUI',
-                                          NOM_CHAM   ='TEMP',
-                                          PRECISION  =55.E-1,
-                                          TOUT_CMP   ='OUI',
-                                          INTITULE   ='FOND_SUP',
-                                          OPERATION  ='EXTRACTION',))
-        IMPR_TABLE(TABLE = __rthfis1, )
-        __rthfis2=POST_RELEVE_T(ACTION=_F(GROUP_NO   ='FOND_INF',
-                                          RESULTAT   =resuth,
-                                          TOUT_ORDRE ='OUI',
-                                          NOM_CHAM   ='TEMP',
-                                          PRECISION  =55.E-1,
-                                          TOUT_CMP   ='OUI',
-                                          INTITULE   ='FOND_INF',
-                                          OPERATION  ='EXTRACTION',))
-        IMPR_TABLE(TABLE = __rthfis2, )
-#
-#        boucle sur le nombre de fond de fissure
-#
-    fond3d = [None]*2
-    for j in range(NBFIS):
-      if FOND_FISS_1!=None : self.DeclareOut('fond3d_0',FOND_FISS_1)
-      if FOND_FISS_2!=None : self.DeclareOut('fond3d_1',FOND_FISS_2)
-#
-#          --- commande DEFI_FOND_FISS ---
-#
-      motscles={}
-      if not FERME:
-         motscles['FOND_FISS']=_F(GROUP_MA     =TABMA8[j],
-                                  GROUP_NO_ORIG=NOMGRO[j][0],
-                                  GROUP_NO_EXTR=NOMGRE[j][0],)
-         motscles['VECT_GRNO_ORIG']=NOMGRO[j]
-         motscles['VECT_GRNO_EXTR']=NOMGRE[j]
-      else:
-         if TYPE_MAILLAGE.find('AXIS')!=-1  : grnoorig=NOMGRE[j][0]
-#                  si AXIS, P_FON1 est remplace par P_FON2 pour
-#                  fermer le fond de fissure
-         else                               : grnoorig=NOMGRO[j][0]
-         motscles['FOND_FERME']=_F(GROUP_MA     =TABMA8[j],
-                                   GROUP_NO_ORIG=grnoorig,
-                                   GROUP_MA_ORIG=NOMMA[j],)
-      fond3d[j]=DEFI_FOND_FISS( MAILLAGE  = MAILLAGE,
-                                LEVRE_SUP = _F(GROUP_MA='LEVRCORP',),
-                                LEVRE_INF = _F(GROUP_MA='LEVRTUBU',),**motscles)
-      if THETA_3D!=None:
-        for tht3d in THETA_3D : 
-#
-#          --- commande CALC_THETA ---
-#
-          __theta = CALC_THETA( MODELE    = modele,
-                                FOND_FISS = fond3d[j],
-                                THETA_3D  = _F( TOUT    = 'OUI',
-                                                MODULE  =  1.0 ,
-                                                R_INF   = tht3d['R_INF'],
-                                                R_SUP   = tht3d['R_SUP'], ) )
-#
-#          --- commande CALC_G (3D GLOBAL) ---
-#
-          montit = 'G_THETA AVEC R_INF = '+str(tht3d['R_INF'])+' ET R_SUP = '+str(tht3d['R_SUP'])
-          motscles={}
-          if COMP_ELAS!=None:  motscles['COMP_ELAS']=  _F(TOUT     = 'OUI',
-                                                          RELATION = COMP_ELAS['RELATION'],)
-          if COMP_INCR!=None:  motscles['COMP_INCR']=  _F(RELATION = COMP_INCR['RELATION'],)
-          __gtheta = CALC_G ( 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
-#
-          if OPTION=='CALC_G_MAX' :
-            if BORNES!=None:
-              mcfact=[]
-              for born in BORNES :
-                mcfact.append(_F( NUME_ORDRE = born['NUME_ORDRE'] ,
-                                  VALE_MIN   = born['VALE_MIN'  ] ,
-                                  VALE_MAX   = born['VALE_MAX'  ]   ) )
-              __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 (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']=_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
-#
-          if OPTION=='CALC_G_MAX_LOCAL' :
-            if BORNES!=None:
-              motscles={}
-              mcfact=[]
-              if FERME:
-                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( 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  ---
-#
-  if IMPRESSION!=None:
-    mcfresu =[]
-    motscles={}
-    motsclei={}
-    if IMPRESSION['FORMAT'] in ('IDEAS','CASTEM') :
-      ncham   =[]
-      if IMPRESSION['NOM_CHAM']!=None :
-         if type(IMPRESSION['NOM_CHAM']) in (types.TupleType,types.ListType) : ncham= IMPRESSION['NOM_CHAM']
-         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]
-      elif (len(ncham)==2) and (ncham[0][:4]!='TEMP') and (ncham[1][:4]!='TEMP')  :
-                                  motscles['NOM_CHAM'  ]=(ncham[0],ncham[1])
-      elif (len(ncham)==2) and (ncham[0][:4]=='TEMP')  :
-                                  motscles['NOM_CHAM'  ]= ncham[1]
-      elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') :
-                                  motscles['NOM_CHAM'  ]= ncham[0]
-      if   IMPRESSION['TOUT_ORDRE']!=None :
-                                  motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE']
-      elif IMPRESSION['NUME_ORDRE']!=None :
-                                  motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE']
-      elif IMPRESSION['INST']!=None :
-                                  motscles['INST'      ]= IMPRESSION['INST']
-    if IMPRESSION['FORMAT']=='IDEAS' :
-                                  motsclei['VERSION'   ]= IMPRESSION['VERSION']
-    if IMPRESSION['FORMAT']=='CASTEM' :
-                                  motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI']
-    mcfresu.append(_F(MAILLAGE=MAILLAGE,RESULTAT=nomres,**motscles))
-    if ECHANGE!=None:
-      motscles={}
-      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]
-        elif (len(ncham)==2) and (ncham[0][:4]=='TEMP') :
-                                    motscles['NOM_CHAM'  ]= ncham[0]
-        elif (len(ncham)==2) and (ncham[1][:4]=='TEMP') :
-                                    motscles['NOM_CHAM'  ]= ncham[1]
-        if   IMPRESSION['TOUT_ORDRE']!=None :
-                                    motscles['TOUT_ORDRE']= IMPRESSION['TOUT_ORDRE']
-        elif IMPRESSION['NUME_ORDRE']!=None :
-                                    motscles['NUME_ORDRE']= IMPRESSION['NUME_ORDRE']
-        elif IMPRESSION['INST']!=None :
-                                    motscles['INST'      ]= IMPRESSION['INST']
-      if IMPRESSION['FORMAT']=='IDEAS' :
-                                    motsclei['VERSION'   ]= IMPRESSION['VERSION']
-      if IMPRESSION['FORMAT']=='CASTEM' :
-                                    motsclei['NIVE_GIBI' ]= IMPRESSION['NIVE_GIBI']
-      mcfresu.append(_F(RESULTAT=resuth,**motscles))
-    IMPR_RESU( MODELE = modele,
-               RESU   = mcfresu,
-               FORMAT=IMPRESSION['FORMAT'],**motsclei)
-#
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macr_aspic_mail_ops.py b/Aster/Cata/cataSTA81/Macro/macr_aspic_mail_ops.py
deleted file mode 100644 (file)
index 783db3a..0000000
+++ /dev/null
@@ -1,908 +0,0 @@
-#@ MODIF macr_aspic_mail_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-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):
-  import aster
-# Ouverture du fichier d'entrée de commandes
-  fdgib=open(nomFichierDATG,'w')
-  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()
-
-# Ecriture du fichier GIBI principal (dgib) - ASPID1
-def write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H,
-                           ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA,
-                           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'
-  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+'a      = '+str(A)            +POIVIR
-  texte=texte+'c      = '+str(C)            +POIVIR
-  texte=texte+'zeta   = '+str(ZETA)         +POIVIR
-  texte=texte+'eps    = '+str(EPS)          +POIVIR
-  texte=texte+'rc0    = '+str(RC0)          +POIVIR
-  texte=texte+'ns     = '+str(NS)           +POIVIR
-  texte=texte+'nc     = '+str(NC)           +POIVIR
-  texte=texte+'nt     = '+str(NT)           +POIVIR
-  texte=texte+'dir_fiss = MOT '+POSI        +POIVIR
-  texte=texte+'pos_fiss = MOT '+TFISS       +POIVIR
-  texte=texte+'ndt    = '+str(NDT)          +POIVIR
-  texte=texte+'f_etir_f = '+str(FETIRF)     +POIVIR
-  texte=texte+'f_etir_p = '+str(FETIRP)     +POIVIR
-  texte=texte+'typ_eque = MOT '+'FISS_LON'  +POIVIR
-  texte=texte+'nivmag = '+str(NIVMAG)       +POIVIR
-  texte=texte+'*                                                               \n'
-  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()
-
-# Ecriture du fichier GIBI principal (dgib) - ASPID2
-def write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX,
-                           H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,
-                           THETA, A, C, EPS, RC0, RC1, RC2, RC3,
-                           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.)
-  STHETA = sin(THETA*pi/180.)
-#
-  AOLD = A
-#
-  if (ITYPSO == 1) :
-# PIQUAGE TYPE 1
-     if (POSI == 'DROIT') :
-#    PIQUAGE DROIT
-        if (TFISS == 'DEB_INT') :
-#       POSITION INTERNE
-           SGAMMA = STHETA * (DET1/2.0)/( (DEC/2.0) -EPC)
-           SGAMME = STHETA * (DET1/2.0)/( (DEC/2.0) )
-           RAPPA = sqrt(1.0 - pow(SGAMMA,2))
-           RAPPE = sqrt(1.0 - pow(SGAMME,2))
-           AP =  A - (1.0 - RAPPA)*A  
-           RAPP = (AP/EPC*RAPPE) + (1.0-(AP/EPC))*RAPPA
-           XA = (DET1/2.0) * CTHETA 
-           YA = (DET1/2.0) * STHETA      
-           ZA = ((DEC/2.0) -EPC) * sqrt(1.0 - pow(SGAMMA,2))
-           ZA0 = (DEC/2.0) - EPC
-           XA0 = DET1/2.0
-           XN0 = XA0
-           YN0 = 0.0 
-           ZN0 = ZA0 + A
-           XN = XN0 * CTHETA 
-           YN = XN0 * STHETA
-           SGAMN = YN / ZN0
-           ZN = ZN0 * sqrt(1.0 - (SGAMN*SGAMN))
-           D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) )
-           DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) )
-           RAPP = D0N0 / DN
-           ECART = (1.0 - RAPP) * D0N0
-           A = A - ECART
-        elif (TFISS == 'DEB_EXT') :
-#       POSITION EXTERNE
-           SGAMME = STHETA * (DET1/2.0)/ (DEC/2.0) 
-           RAPPE = sqrt(1.0 - pow(SGAMME,2))
-           A =  A  -(1.0 - RAPPE)*A  
-
-     elif (POSI == 'INCLINE') :
-#    PIQUAGE INCLINE
-        SGAMMA = STHETA * (DET1/2.0)/ ( (DEC/2.0) -EPC)
-        XA = (DET1/2.0) * CTHETA 
-        YA = (DET1/2.0) * STHETA     
-        ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2))
-        ZA0 = (DEC/2.0) - EPC
-        ZD0 = DEC/2.0
-        XA0 = DET1/2.0
-        XD0 = XA0 + (tan(ALPHA*pi/180.0) * EPC)   
-        A0D0 = sqrt( pow((ZD0 - ZA0),2) + pow((XD0 - XA0),2) )
-        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 (STHETA > 0) :          
-           YD = ( sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
-        else :
-           YD = ( -1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
-
-        ZD = sqrt(pow((DEC/2.0),2) - pow(YD,2))  
-
-        if ( (abs(THETA - 0.0) < 1.e-3) or ((abs(THETA - 180.0)) < 1.e-3) ) :
-           XD = CTHETA * XD0
-        else :
-           XD = YD / tan(THETA*pi/180.0)
-
-        AD = sqrt( pow((XA - XD),2) + pow((YA - YD),2) + pow((ZA - ZD),2) )       
-        RAPP =  A0D0 / AD          
-
-        if (TFISS == 'DEB_EXT') :       
-           XN0 = XD0 - A*SALPHA 
-           YN0 = 0.0 
-           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) )
-           DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) )       
-           RAPP = D0N0 / DN
-           ECART = (RAPP - 1.0) * D0N0
-           A = A + ECART
-           
-        if (TFISS == 'DEB_INT') :
-           XN0 = XA0 + A*SALPHA 
-           YN0 = 0.0
-           ZN0 = ZA0 + A*CALPHA 
-           XN = XN0 * CTHETA 
-           YN = XN0 * STHETA
-           SGAMN = YN / ZN0
-           ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2))
-           D0N0 = sqrt( pow((XA0 - XN0),2) + pow((ZA0 - ZN0),2) )
-           DN = sqrt( pow((XA - XN),2) + pow((YA - YN),2) + pow((ZA - ZN),2) )       
-           RAPP = D0N0 / DN
-           ECART = (RAPP - 1.0) * D0N0
-           A = A + ECART
-
-  elif (ITYPSO == 2) :
-# PIQUAGE TYPE 2
-     if (POSI == 'DROIT') :
-#    PIQUAGE DROIT
-        SGAMMI = STHETA * ((DET1/2.0) - EPT1)/(DEC/2.0)
-        XI = ((DET1/2.0) - EPT1) * CTHETA 
-        YI = ((DET1/2.0) - EPT1) * STHETA
-        ZI =  (DEC/2.0)  * sqrt(1.0 - pow(SGAMMI,2))
-        XI0 = (DET1/2.0) -EPT1
-        YI0 = 0.0 
-        ZI0 = (DEC/2.0)
-        
-        SGAMMA = STHETA * (DET1/2.0)/((DEC/2.0) -EPC)
-        YA = (DET1/2.0) * STHETA     
-        ZA = ((DEC/2.0) - EPC) * sqrt(1.0 - pow(SGAMMA,2))
-        TGALP = H / EPC
-        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 (STHETA > 0) :          
-           YD = (sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
-        else :
-           YD = (-1.0*sqrt(DELTA) - PHI) / (1.0 + pow(EPSIL,2))
-
-        ZD = sqrt( pow((DEC/2.0),2) - pow(YD,2) )
-        if ( (abs(THETA - 0.0) < 1.0e-3) or
-             (abs(THETA - 180.0) < 1.0e-3) or
-             (abs(THETA + 180.0) < 1.0e-3) or
-             (abs(THETA + 90.0) < 1.0e-3) or
-             (abs(THETA - 90.0) < 1.0e-3) ) :
-           XD = CTHETA * ((DET1/2.0) + H)
-        else :
-           XD = YD / (tan(THETA*pi/180.0))
-
-        XD0 = (DET1/2.0) + H 
-        YD0 = 0.0 
-        ZD0 = (DEC/2.0) 
-        
-        if (TFISS == 'DEB_EXT') :
-           XN0 = XD0 - A
-           YN0 = 0.0 
-           ZN0 = ZI0 
-           XN = XN0 * CTHETA 
-           YN = XN0 * STHETA 
-           DZID = abs(ZI - ZD) 
-           DXYID = sqrt( pow((XD - XI),2) + pow((YD - YI),2) )
-           DXYIN = sqrt( pow((XN - XI),2) + pow((YN - YI),2) )
-           DZIN = (DXYIN * DZID) / DXYID
-           ZN = ZI - DZIN         
-           D0N0 = sqrt( pow((XD0 - XN0),2) + pow((ZD0 - ZN0),2) )
-           DN = sqrt( pow((XD - XN),2) + pow((YD - YN),2) + pow((ZD - ZN),2) ) 
-           RAPP = D0N0 / DN 
-           ECART = DN - D0N0 
-           A = A - ECART
-
-        if (TFISS == 'DEB_INT') :
-           XN0 = XI0 + A
-           YN0 = 0.0 
-           ZN0 = ZI0 
-           XN = XN0 * CTHETA
-           YN = XN0 * STHETA 
-           SGAMN = YN / ZN0 
-           ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2))
-           I0N0 = sqrt( pow((XI0 - XN0),2) + pow((ZI0 - ZN0),2) ) 
-           IN = sqrt( pow((XI - XN),2) + pow((YI - YN),2) + pow((ZI - ZN),2) ) 
-           RAPP = I0N0 / IN 
-           ECART = I0N0 * ( 1.0 - RAPP ) 
-           A = A - ECART
-        
-     elif (POSI == 'INCLINE') :
-#    PIQUAGE INCLINE
-        TGALPHA = SALPHA/CALPHA
-        REPB = (DEC/2.0) + JEU + (EPT1*TGALPHA) 
-        SGAMB = (STHETA * DET1/2.0 ) / REPB 
-        CGAMB = sqrt(1.0 - pow(SGAMB,2)) 
-        XB = (DET1/2.0) * CTHETA
-        YB = (DET1/2.0) * STHETA
-        ZB = ( (DEC/2.0) + JEU + (EPT1*TGALPHA) ) * CGAMB
-        XB0 = (DET1/2.0)
-        YB0 = 0.0
-        ZB0 = (DEC/2.0) + JEU + (EPT1*TGALPHA)
-#
-        RIT1 = (DET1/2.0) - EPT1 
-        REPG = (DEC/2.0) + JEU 
-        SGAMG = ((STHETA ) * RIT1) / REPG
-        CGAMG = sqrt(1.0 - pow(SGAMG,2))
-        XG = RIT1 * CTHETA
-        YG = RIT1 * STHETA
-        ZG = ((DEC/2.0) + JEU) * CGAMG
-        XG0 = RIT1
-        YG0 = 0.0
-        ZG0 = (DEC/2.0) + JEU
-#
-        if (TFISS == 'DEB_INT')  :
-           XN0 = XG0 + A*CALPHA 
-           YN0 = 0.0
-           ZN0 = ZG0 + A*SALPHA 
-           XN = XN0 * CTHETA 
-           YN = XN0 * STHETA
-           SGAMN = YN / ZN0
-           ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2))
-           G0N0 = sqrt( pow((XG0 - XN0),2) + pow((ZG0 - ZN0),2) )
-           GN = sqrt( pow((XG - XN),2) + pow((YG - YN),2) + pow((ZG - ZN),2) )
-           RAPP = G0N0 / GN
-           ECART = (RAPP - 1.0) * G0N0
-           A = A + ECART
-
-        if (TFISS == 'DEB_EXT') :
-           XN0 = XB0 - A*CALPHA
-           YN0 = 0.0
-           ZN0 = ZB0 - A*SALPHA
-           XN = XN0 * CTHETA
-           YN = XN0 * STHETA
-           SGAMN = YN / ZN0
-           ZN = ZN0 * sqrt(1.0 - pow(SGAMN,2))
-           B0N0 = sqrt( pow((XB0 - XN0),2) + pow((ZB0 - ZN0),2) )
-           BN = sqrt( pow((XB - XN),2) + pow((YB - YN),2) + pow((ZB - ZN),2) )
-           RAPP = B0N0 / BN
-           ECART = (RAPP - 1.0) * B0N0
-           A = A + ECART
-
-  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
-
-  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+'a      = '+str(A)            +POIVIR
-  texte=texte+'c      = '+str(C)            +POIVIR
-  texte=texte+'zeta   = '+str(ZETA)         +POIVIR
-  texte=texte+'eps    = '+str(EPS)          +POIVIR
-  texte=texte+'rc0    = '+str(RC0)          +POIVIR
-  texte=texte+'rc1    = '+str(RC1)          +POIVIR
-  texte=texte+'rc2    = '+str(RC2)          +POIVIR
-  texte=texte+'rc3    = '+str(RC3)          +POIVIR
-  texte=texte+'alpha  = '+str(ALP)          +POIVIR
-  texte=texte+'beta   = '+str(BETA)         +POIVIR
-  texte=texte+'ns     = '+str(NS)           +POIVIR
-  texte=texte+'nc     = '+str(NC)           +POIVIR
-  texte=texte+'nt     = '+str(NT)           +POIVIR
-  texte=texte+'dir_fiss = MOT '+POSI        +POIVIR
-  texte=texte+'pos_fiss = MOT '+TFISS       +POIVIR
-  texte=texte+'ndt    = '+str(NDT)          +POIVIR
-  texte=texte+'nsdt   = '+str(NSDT)         +POIVIR
-  texte=texte+'typ_eque = MOT '+'FISS_COU'  +POIVIR
-  texte=texte+'nivmag = '+str(NIVMAG)       +POIVIR
-  texte=texte+'*                                                               \n'
-  texte=texte+'list epc ;\n'
-  aster.affiche('MESSAGE',texte + ' + aspic.datg...\n')
-  texte = texte + open(os.path.join(loc_datg, 'aspic.datg'), 'r').read()
-  fdgib.write(texte)
-  fdgib.close()
-
-def macr_aspic_mail_ops(self,EXEC_MAILLAGE,TYPE_ELEM,RAFF_MAIL,TUBULURE,
-                             SOUDURE,CORPS,FISS_SOUDURE,IMPRESSION,INFO,
-                        **args):
-  """
-     Ecriture de la macro MACR_ASPIC_MAIL
-  """
-  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
-  EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL')
-  PRE_GIBI      =self.get_cmd('PRE_GIBI')
-  LIRE_MAILLAGE =self.get_cmd('LIRE_MAILLAGE')
-  DEFI_GROUP    =self.get_cmd('DEFI_GROUP')
-  MODI_MAILLAGE =self.get_cmd('MODI_MAILLAGE')
-  AFFE_MODELE   =self.get_cmd('AFFE_MODELE')
-  CREA_MAILLAGE =self.get_cmd('CREA_MAILLAGE')
-  IMPR_RESU     =self.get_cmd('IMPR_RESU')
-
-# La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  TYPELE = TYPE_ELEM
-  NIVMAG = EXEC_MAILLAGE['NIVE_GIBI']
-#
-#     --- raffinement maillage ---
-#
-  TYPMAI = RAFF_MAIL
-  GROS   = (TYPMAI=='GROS')
-  if GROS : NBAZIT = 40
-  else    : NBAZIT = 48
-#
-#     --- caracteristiques de la tubulure ---
-#
-  EPT1  = TUBULURE['E_BASE'   ]
-  DET1  = TUBULURE['DEXT_BASE']
-  D1    = TUBULURE['L_BASE'   ]
-  D2    = TUBULURE['L_CHANF'  ]
-  EPT2  = TUBULURE['E_TUBU'   ]
-  DET2  = TUBULURE['DEXT_TUBU']
-  ZMAX  = TUBULURE['Z_MAX'    ]
-  TYPSOU= TUBULURE['TYPE'     ]
-  DPENE = TUBULURE['L_PENETR' ]
-  if TYPSOU=='TYPE_2' and DPENE>0.0 : 
-    UTMESS('F', "MACR_ASPIC_MAIL", "les piquages penetrants sont autorises uniquement avec les soudures de type 1")
-  if TYPSOU=='TYPE_2' :
-     ITYPSO = 2
-  else :
-     ITYPSO = 1
-#
-#     --- caracteristiques de la soudure ---
-#
-  H     = SOUDURE['H_SOUD'   ]
-  ALPHA = SOUDURE['ANGL_SOUD']
-  JEU   = SOUDURE['JEU_SOUD' ]
-#
-#     --- caracteristiques du corps ---
-#
-  EPC   = CORPS  ['E_CORP'   ]
-  DEC   = CORPS  ['DEXT_CORP']
-  XMAX  = CORPS  ['X_MAX'    ]
-  EPSI  = 1.E-03
-  RMB   = ( DET1 - EPT1 ) / 2.0
-  VAL1  = 1.5 * sqrt( RMB**3 / EPT1 )
-  VAL3  = 3.0 * sqrt( RMB    * EPT1 )
-  RMT   = ( DET2 - EPT2 ) / 2.0
-  VAL2  = 1.5 * sqrt( RMT**3 / EPT2 )
-  VAL4  = 3.0 * sqrt( RMT    * EPT2 )
-  LZMAX = max ( VAL1 , VAL2, VAL3, VAL4 )
-  ZMAXC = LZMAX + ( DEC/2.0 ) + D1 + D2
-  LOK = ( abs(ZMAX-ZMAXC) <= EPSI * abs(ZMAXC) )
-  if not LOK :
-    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 )
-  LXMAX = max( VAL1 , VAL2 )
-  XMAXC = LXMAX + ( DET1 / 2.0 )
-  LOK = ( abs(XMAX-XMAXC) <= EPSI * abs(XMAXC) )
-  if not LOK :
-    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 ---
-#
-  SAIN   = 0
-  FISLON = 0
-  FISCOU = 0
-  THETA  = 0.0
-  TFISS  = None
-  if FISS_SOUDURE==None :
-     SAIN = 1
-  else :
-     if   FISS_SOUDURE['TYPE']=='LONGUE' : FISLON = 1
-     elif FISS_SOUDURE['TYPE']=='COURTE' : FISCOU = 1
-     THETA = FISS_SOUDURE['AZIMUT'        ]
-     EPS   = FISS_SOUDURE['ANGL_OUVERTURE']
-     AXIS  = FISS_SOUDURE['AXIS'          ]
-     POSI  = FISS_SOUDURE['POSITION'      ]
-     TFISS = FISS_SOUDURE['FISSURE'       ]
-     A     = FISS_SOUDURE['PROFONDEUR'    ]
-     if      FISS_SOUDURE['LONGUEUR'      ]!=None :
-        C  = FISS_SOUDURE['LONGUEUR'      ]
-        N1 = 1
-     else : N1 = 0
-     if (TFISS=='DEB_INT') and (POSI=='INCLINE') and (DPENE>0.0) and (JEU>0.0) : 
-       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 : 
-           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)
-           else         : ZETA = (A+LIGA)/(EPT1+H)
-        else :
-           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   :
-           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop petit ")
-        if ZETA > 0.9   :
-           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ")
-        if LIGA < 0.1*EPC :
-           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 :
-           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures internes (NON_DEB) le ligament est trop grand ")
-     if N1==0 :
-        if FISCOU      :
-           UTMESS('F', "MACR_ASPIC_MAIL", "dans le cas de fissures courte il faut preciser la longueur")
-        if AXIS=='NON' :
-           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' : 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)
-#
-# LPIQ est une valeur qui depend theoriquement de la fissure. la valeur
-# ci-dessous est approchee car elle ne sert qu'a calculer les facteurs d'etirement
-#
-     LPIQ=pi*(DET1)
-     if AXIS=='OUI' : C=100.0*LPIQ
-     RAPL=LEQU/LPIQ
-     if FISCOU :
-        RAP=A/C
-        CAS1=RAP<0.3499
-        CAS3=RAP>0.4999
-        CAS2= not (CAS1 or CAS3)
-        if CAS1 : ALP=0.8
-        if CAS2 : ALP=0.4
-        if CAS3 : ALP=0.0
-        BETA=1.0
-        if GROS and not CAS1 :
-          NDT=1
-          NSDT=2
-        else :
-          NDT=2
-          NSDT=4
-#
-     if FISLON :
-       if GROS :
-         NDT=2
-         FETIRF=30.*RAPL
-         FETIRP=60.*RAPL
-       else :
-         NDT=3
-         FETIRF=15.*RAPL
-         FETIRP=30.*RAPL
-#
-     RC0 = FISS_SOUDURE['RAYON_TORE']
-     if (FISCOU and RC0==None) :
-       if GROS : RC0=0.12
-       else    : RC0=0.10
-       if CAS1 : RC0=0.08
-       RC0=RC0*A
-     if (FISLON and RC0==None) : RC0=A/(NDT+1)
-#
-     RC1 = FISS_SOUDURE['COEF_MULT_RC1']
-     if (FISCOU and RC1==None) :
-       if GROS : RC1=1.2
-       else    : RC1=1.0
-#
-     RC2 = FISS_SOUDURE['COEF_MULT_RC2']
-     if (FISCOU and RC2==None) :
-       if GROS : RC2=1.4
-       else    : RC2=1.2
-#
-     RC3 = FISS_SOUDURE['COEF_MULT_RC3']
-     if (FISCOU and RC3==None) :
-       if GROS :
-          if CAS1 : RC3=2.5
-          else    : RC3=1.0  # valeur non utilisee
-       else : 
-          if CAS3 : RC3=2.2
-          else    : RC3=2.0
-#
-     NT = FISS_SOUDURE['NB_TRANCHE']
-     if (FISCOU and NT==None) :
-       if GROS : NT = 8
-       else    : NT = 16
-       if CAS1 : NT = NT*2
-     if (FISLON and NT==None) : NT=0
-#
-     NS = FISS_SOUDURE['NB_SECTEUR']
-     if (FISCOU and NS==None) :
-       if GROS : NS = 2
-       else    : NS = 4
-     if (FISLON and NS==None) :
-       if GROS : NS = 2
-       else    : NS = 4
-#
-     NC = FISS_SOUDURE['NB_COURONNE']
-     if (FISCOU and NC==None) :
-       if GROS : NC = 3
-       else    : NC = 4
-     if (FISLON and NC==None) :
-       if GROS : NC = 3
-       else    : NC = 4
-#
-  loc_gibi=aster.repout()
-  logiel = EXEC_MAILLAGE['LOGICIEL'  ]
-  UNITD  = EXEC_MAILLAGE['UNITE_DATG']
-  UNITS  = EXEC_MAILLAGE['UNITE_MGIB']
-  if   logiel=='GIBI98'  : logiel = loc_gibi+'gibi98'
-  elif logiel=='GIBI2000': logiel = loc_gibi+'gibi2000'
-  else                   :
-       UTMESS('F', "MACR_ASPIC_MAIL", "seuls gibi98 et gibi2000 sont appelables ")
-#
-#     --- ecriture sur le fichier .datg  de la procedure ---
-#
-# Nom du fichier de commandes pour GIBI
-  nomFichierDATG = 'fort.'+str(UNITD)
-# Nom du fichier de maillage GIBI
-  nomFichierGIBI = 'fort.'+str(UNITS)
-  loc_datg = aster.repdex()
-  if SAIN   : 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)
-  if FISLON : write_file_dgib_ASPID1(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX, H,
-                                     ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,THETA,
-                                     A,C,EPS, RC0,NS,NC,NT,POSI, NDT,FETIRF,FETIRP,
-                                     TFISS,ZETA,ITYPSO,DPENE, NIVMAG,loc_datg)
-  if FISCOU : write_file_dgib_ASPID2(nomFichierDATG,UNITD, EPT1, DET1, D1, D2, EPT2, DET2, ZMAX,
-                                     H, ALPHA, JEU, EPC, DEC, XMAX, TYPMAI,
-                                     THETA, A, C, EPS, RC0, RC1, RC2, RC3,
-                                     ALP,BETA, NS, NC, NT, POSI ,NDT,NSDT,TFISS,
-                                     ZETA,ITYPSO,DPENE, NIVMAG,loc_datg)
-#
-  EXEC_LOGICIEL( LOGICIEL = logiel ,
-                 ARGUMENT = ( _F(NOM_PARA=nomFichierDATG),
-                              _F(NOM_PARA=nomFichierGIBI), ), )
-#
-  PRE_GIBI()
-#
-  __MAPROV=LIRE_MAILLAGE(INFO=INFO)
-#
-  motscles={}
-  motscles['CREA_GROUP_MA']=[]
-  l_CREA_GROUP_NO=[]
-  if SAIN :
-     l_CREA_GROUP_NO.append('S_LAT1')
-     l_CREA_GROUP_NO.append('S_LAT2')
-  else :
-     l_CREA_GROUP_NO.append('S_LAT1_C')
-     l_CREA_GROUP_NO.append('S_LAT2_C')
-     l_CREA_GROUP_NO.append('S_LAT1_T')
-     l_CREA_GROUP_NO.append('S_LAT2_T')
-     if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') :
-        l_CREA_GROUP_NO.append('PFONDINF')
-        l_CREA_GROUP_NO.append('PFONDSUP')
-     else :
-        l_CREA_GROUP_NO.append('PFONDFIS')
-     if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='COURTE') :
-        motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS',
-                                            NOM      = 'MAIL_ORI',
-                                            POSITION = 'INIT'     ))
-     if (TFISS[:4]=='DEB_') and (AXIS=='OUI') :
-        motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FONDFISS',
-                                            NOM      = 'MAIL_ORI',
-                                            POSITION = 'INIT'     ))
-     if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') :
-        motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_SUP',
-                                            NOM      = 'MA_ORI_S',
-                                            POSITION = 'INIT'     ))
-        motscles['CREA_GROUP_MA'].append(_F(GROUP_MA = 'FOND_INF',
-                                            NOM      = 'MA_ORI_I',
-                                            POSITION = 'INIT'     ))
-  l_CREA_GROUP_NO.append('S_FOND1')
-  l_CREA_GROUP_NO.append('S_FOND2')
-  l_CREA_GROUP_NO.append('EQUERRE')
-  motscles['CREA_GROUP_NO']=_F(GROUP_MA=l_CREA_GROUP_NO)
-#
-  __MAPROV=DEFI_GROUP(reuse   =__MAPROV,
-                      MAILLAGE=__MAPROV,
-                      **motscles )
-#
-  if not SAIN :
-     motscles={}
-     motscles['CREA_GROUP_NO']=[]
-     if not (TFISS=='NON_DEB')  :
-        motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = 'FONDFISS',))
-     if (TFISS=='NON_DEB') and (FISS_SOUDURE['TYPE']=='LONGUE') :
-        motscles['CREA_GROUP_NO'].append(_F(GROUP_MA = ('FOND_SUP','FOND_INF',),))
-     __MAPROV=DEFI_GROUP(reuse   =__MAPROV,
-                         MAILLAGE=__MAPROV,
-                         **motscles )
-#
-  __MAPROV=MODI_MAILLAGE(reuse   =__MAPROV,
-                         MAILLAGE=__MAPROV,
-                         EQUE_PIQUA=_F( GROUP_NO  = 'EQUERRE' ,
-                                        E_BASE    = EPT1  ,
-                                        DEXT_BASE = DET1  ,
-                                        L_BASE    = D1    ,
-                                        L_CHANF   = D2    ,
-                                        TYPE      = TYPSOU,
-                                        H_SOUD    = H     , 
-                                        ANGL_SOUD = ALPHA ,
-                                        JEU_SOUD  = JEU   ,
-                                        E_CORP    = EPC   , 
-                                        DEXT_CORP = DEC   ,
-                                        AZIMUT    = THETA ,
-                                        RAFF_MAIL = TYPMAI,
-                                        X_MAX     = XMAX  , )
-                         )
-#
-  __MODELE=AFFE_MODELE( MAILLAGE=__MAPROV,
-                        AFFE=_F( GROUP_MA     = ('EQUERRE','PEAUINT','EXCORP1','EXCORP2','EXTUBU'),
-                                 PHENOMENE    = 'MECANIQUE'  ,
-                                 MODELISATION = '3D'         , )
-                         )
-#
-  motscles={}
-  if TFISS=='DEB_INT' :
-     motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU','LEVRTUBU','LEVRCORP'),)
-  else :
-     motscles['ORIE_PEAU_3D']=_F(GROUP_MA=('PEAUINT','EXCORP1','EXCORP2','EXTUBU',),)
-  __MAPROV=MODI_MAILLAGE(reuse   =__MAPROV,
-                         MAILLAGE=__MAPROV,
-                         MODELE  =__MODELE,
-                         **motscles
-                         )
-#
-  if SAIN :
-     __MAPROV=DEFI_GROUP(reuse         = __MAPROV,
-                         MAILLAGE      = __MAPROV,
-                         CREA_GROUP_NO = _F(GROUP_MA=('NIDXT','NEDXT','NIIXT','NEIXT')) )
-#
-     for i in range(1,NBAZIT+1):
-       prec = EPC / 5.0
-       __MAPROV=DEFI_GROUP(reuse         = __MAPROV,
-                           MAILLAGE      = __MAPROV,
-                         CREA_GROUP_NO = ( _F( NOM       = 'NID'+str(i) ,
-                                               GROUP_NO  = 'NIDXT'      ,
-                                               NUME_INIT = i            ,
-                                               NUME_FIN  = i            ,),
-                                           _F( NOM       = 'NED'+str(i) ,
-                                               GROUP_NO  = 'NEDXT'      ,
-                                               NUME_INIT = i            ,
-                                               NUME_FIN  = i            ,),
-                                           _F( NOM       = 'NII'+str(i) ,
-                                               GROUP_NO  = 'NIIXT'      ,
-                                               NUME_INIT = i            ,
-                                               NUME_FIN  = i            ,),
-                                           _F( NOM       = 'NEI'+str(i) ,
-                                               GROUP_NO  = 'NEIXT'      ,
-                                               NUME_INIT = i            ,
-                                               NUME_FIN  = i            ,),
-                                           _F( NOM       = 'LDN'+str(i) ,
-                                               GROUP_MA  = 'LD' +str(i) ,),
-                                           _F( NOM       = 'LD' +str(i) ,
-                                               GROUP_NO  = 'LDN'+str(i) ,
-                                               OPTION    = 'SEGM_DROI_ORDO',
-                                               PRECISION =  prec        ,
-                                               CRITERE   = 'ABSOLU'     ,
-                                               GROUP_NO_ORIG   = 'NID'+str(i),
-                                               GROUP_NO_EXTR   = 'NED'+str(i),),
-                                           _F( NOM       = 'LIN'+str(i) ,
-                                               GROUP_MA  = 'LI' +str(i) ,),
-                                           _F( NOM       = 'LI' +str(i) ,
-                                               GROUP_NO  = 'LIN'+str(i) ,
-                                               OPTION    = 'SEGM_DROI_ORDO',
-                                               PRECISION =  prec        ,
-                                               CRITERE   = 'ABSOLU'     ,
-                                               GROUP_NO_ORIG   = 'NII'+str(i),
-                                               GROUP_NO_EXTR   = 'NEI'+str(i),),))
-#
-#
-#     --- commande CREA_MAILLAGE ---
-#
-  self.DeclareOut('nomres',self.sd)
-  nomres=CREA_MAILLAGE( MAILLAGE=__MAPROV,
-                        CREA_POI1 = ( _F( NOM_GROUP_MA = 'P1_CORP ' ,
-                                          GROUP_NO     = 'P1_CORP ' , ),
-                                      _F( NOM_GROUP_MA = 'P2_CORP ' ,
-                                          GROUP_NO     = 'P2_CORP ' , ),
-                                      _F( NOM_GROUP_MA = 'P_TUBU ' ,
-                                          GROUP_NO     = 'P_TUBU ' ,  ),)
-                         )
-#
-  if IMPRESSION!=None:
-     for impr in IMPRESSION :
-#
-         motscles={}
-         if impr['FORMAT']=='IDEAS'  : motscles['VERSION']  =impr['VERSION']
-         if impr['FORMAT']=='CASTEM' : motscles['NIVE_GIBI']=impr['NIVE_GIBI']
-         if impr['UNITE']!=None      : motscles['UNITE']    =impr['UNITE']
-         impr_resu = _F( MAILLAGE = nomres,)
-#
-         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
-
-
diff --git a/Aster/Cata/cataSTA81/Macro/macr_cabri_calc_ops.py b/Aster/Cata/cataSTA81/Macro/macr_cabri_calc_ops.py
deleted file mode 100644 (file)
index da2fa29..0000000
+++ /dev/null
@@ -1,542 +0,0 @@
-#@ MODIF macr_cabri_calc_ops Macro  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
-# -*- coding: iso-8859-1 -*-
-#            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 macr_cabri_calc_ops(self,MAILLAGE,MODELE_MECA,MODELE_THER,CHAR_THER,
-    CHAR_MECA,RESU_THER,RESO_INTE,
-    AFFE_MATERIAU,DEFI_CHAR_THER,DEFI_CHAR_MECA,RELATION,SOLVEUR,CONVERGENCE,NEWTON, 
-    INCREMENT,CHAM_MATER,**args):
-   """
-     Ecriture de la macro MACR_CABRI_CALC
-   """
-   
-   #################################################################
-   ########## PREPARATION MACRO
-   #################################################################
-
-   from Accas import _F
-
-   ier =0
-   
-   # 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
-   DEFI_GROUP       = self.get_cmd('DEFI_GROUP')
-   AFFE_MATERIAU    = self.get_cmd('AFFE_MATERIAU')
-   AFFE_MODELE      = self.get_cmd('AFFE_MODELE') 
-   MODI_MAILLAGE    = self.get_cmd('MODI_MAILLAGE')   
-   AFFE_CHAR_THER_F = self.get_cmd('AFFE_CHAR_THER_F')
-   AFFE_CHAR_THER   = self.get_cmd('AFFE_CHAR_THER')  
-   AFFE_CHAR_MECA_F = self.get_cmd('AFFE_CHAR_MECA_F')
-   AFFE_CHAR_MECA   = self.get_cmd('AFFE_CHAR_MECA')  
-   DEFI_FONCTION    = self.get_cmd('DEFI_FONCTION')
-   DEFI_LIST_REEL   = self.get_cmd('DEFI_LIST_REEL')
-   THER_LINEAIRE    = self.get_cmd('THER_LINEAIRE')
-   STAT_NON_LINE    = self.get_cmd('STAT_NON_LINE')
-
-   # La macro compte pour 1 dans la numerotation des commandes
-   self.set_icmd(1)
-
-   # Le concept sortant (de type evol_noli) est nomme 'resumeca' dans 
-   # le contexte de la macro
-   self.DeclareOut('resumeca',self.sd)
-   self.DeclareOut('mail',MAILLAGE)
-           
-   #################################################################
-   ########## PREPARATION DES MODELES
-   #################################################################
-
-   # Definition des groupes
-   mail=DEFI_GROUP(reuse =mail,MAILLAGE=mail,
-                        CREA_GROUP_NO=(
-                                  _F(GROUP_MA='M_GOU',NOM='N_M_GOU',),
-                                  _F(GROUP_MA='M_JOI',NOM='N_M_JOI',),
-                                  _F(GROUP_MA='SCBJ',NOM='N_SCBJ',),
-                                  _F(GROUP_MA='SCJB',NOM='N_SCJB',),
-                                  _F(GROUP_MA='M_L_AA',NOM='N_M_L_AA',),
-                                  _F(GROUP_MA='SCEG',NOM='N_SCEG',),
-                                  _F(GROUP_MA='SCGE',NOM='N_SCGE',),),)
-
-   # Creation du modele thermique
-   if MODELE_THER != None:
-      self.DeclareOut('modther',MODELE_THER)
-         
-   modther=AFFE_MODELE(MAILLAGE=mail,
-                          AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
-                          'M_L_AA','M_INT','M_L_SA','M_EXT','SCEG','SCGE',),
-                                  PHENOMENE='THERMIQUE',
-                                  MODELISATION='3D_DIAG',),
-                         );
-
-   # Creation du modele mecanique
-   if MODELE_MECA != None:
-      self.DeclareOut('modmeca',MODELE_MECA)
-         
-   modmeca = AFFE_MODELE(MAILLAGE=mail,
-                          AFFE=_F(GROUP_MA=('VTOT','M_GOU','M_TUB','M_JOI','SCBJ','SCJB',
-                          'M_L_AA','M_L_SA','SCEG','SCGE','M_INT','M_EXT',),
-                                  PHENOMENE='MECANIQUE',
-                                  MODELISATION='3D',),
-                         );
-
-   # Orientation des mailles
-   mail=MODI_MAILLAGE(reuse =mail,
-                 MAILLAGE=mail,
-                 ORIE_PEAU_3D=(_F(GROUP_MA=('M_INT','M_TUB',),),
-                               _F(GROUP_MA=('M_L_AA','M_JOI','M_L_SA',),),),
-                 MODELE=modmeca,);
-
-
-
-   # Affectation des materiaux
-   if CHAM_MATER != None:
-      self.DeclareOut('_cham',CHAM_MATER)
-   motscles={}
-   motscles['AFFE']=[]
-   for mat in affemateriau:
-      if mat['TOUT'] == None:
-         # Creation de mots-cles pour les AFFE_CHAR_MECA
-         motscles['AFFE'].append(_F(GROUP_MA=mat['GROUP_MA'],
-                                    MATER = mat['MATER'],
-                                    TEMP_REF = mat['TEMP_REF'],) )
-      else:
-         # Creation de mots-cles pour les AFFE_CHAR_MECA
-         motscles['AFFE'].append(_F(TOUT='OUI',
-                                    MATER = mat['MATER'],
-                                    TEMP_REF = mat['TEMP_REF'],) )
-      
-   _cham = AFFE_MATERIAU(MAILLAGE=mail,
-                    MODELE=modther,
-                    AFFE=motscles['AFFE'],
-                   )
-
-   #################################################################
-   ########## CONDITIONS AUX LIMITES THERMIQUES
-   #################################################################   
-   # Recuperation des parametres thermiques
-
-   if DEFI_CHAR_THER != None:
-      temp_ini = DEFI_CHAR_THER['TEMP_INIT']
-      if DEFI_CHAR_THER['COEF_H_FLUI']!=None:
-         coef_int = DEFI_CHAR_THER['COEF_H_FLUI']
-      else:
-         coef_int = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,0.016,
-                       7200.0,0.016,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);      
-      if DEFI_CHAR_THER['TEMP_EXT_FLUI']!=None:
-         temp_int = DEFI_CHAR_THER['TEMP_EXT_FLUI']
-      else:
-         temp_int = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
-                          600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);    
-      if DEFI_CHAR_THER['COEF_H_AIR']!=None:
-         coef_ext = DEFI_CHAR_THER['COEF_H_AIR']
-      else:
-         coef_ext = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,1e-05,7200.0,1e-05,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);
-     
-      if DEFI_CHAR_THER['TEMP_EXT_AIR']!=None:
-         temp_ext = DEFI_CHAR_THER['TEMP_EXT_AIR']
-      else:
-         temp_ext = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,20.0,7200.0,20.0,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);    
-      if DEFI_CHAR_THER['LIST_INST']!=None:
-         transi1  = DEFI_CHAR_THER['LIST_INST']
-      else:
-         transi1  = DEFI_LIST_REEL(DEBUT=0.0,
-                     INTERVALLE=(_F(JUSQU_A=1.0,
-                                    NOMBRE=1,),
-                                 _F(JUSQU_A=11.0,
-                                    NOMBRE=10,),
-                                 _F(JUSQU_A=600.0,
-                                    NOMBRE=10,),
-                                 _F(JUSQU_A=610.0,
-                                    NOMBRE=30,),
-                                 _F(JUSQU_A=1800.0,
-                                    NOMBRE=30,),
-                                 _F(JUSQU_A=7200.0,
-                                    NOMBRE=10,),),);                                                        
-   else:
-      temp_ini = DEFI_CHAR_THER['TEMP_INIT']
-      coef_int = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,0.016,
-                       7200.0,0.016,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);      
-      temp_int = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,temp_ini,1.0,temp_ini,11.0,60.0,
-                          600.0,60.0,610.0,280.0,1800.0,280.0,7200.0,280.0,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);    
-      coef_ext = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,1e-05,7200.0,1e-05,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);    
-      temp_ext = DEFI_FONCTION(NOM_PARA='INST',
-                    VALE=(0.0,20.0,7200.0,20.0,),
-                    PROL_DROITE='CONSTANT',
-                    PROL_GAUCHE='CONSTANT',);                                       
-      transi1  = DEFI_LIST_REEL(DEBUT=0.0,
-                     INTERVALLE=(_F(JUSQU_A=1.0,
-                                    NOMBRE=1,),
-                                 _F(JUSQU_A=11.0,
-                                    NOMBRE=10,),
-                                 _F(JUSQU_A=600.0,
-                                    NOMBRE=10,),
-                                 _F(JUSQU_A=610.0,
-                                    NOMBRE=30,),
-                                 _F(JUSQU_A=1800.0,
-                                    NOMBRE=30,),
-                                 _F(JUSQU_A=7200.0,
-                                    NOMBRE=10,),),);     
-   # Que sauver ?
-   if CHAR_THER != None:
-      for m in CHAR_THER:
-         if m['TYPE']=="BRIDE_FLUIDE":
-            self.DeclareOut('cl_th1',m['CHARGE'])
-         if m['TYPE']=="BRIDE_AIR":
-            self.DeclareOut('cl_th2',m['CHARGE'])
-         if m['TYPE']=="ECROU_GOUJON":
-            self.DeclareOut('cl_th3',m['CHARGE'])
-         if m['TYPE']=="BRIDE_JOINT":
-            self.DeclareOut('cl_th4',m['CHARGE'])
-
-   # Echanges thermiques internes entre le fluide et la bride
-   cl_th1=AFFE_CHAR_THER_F(MODELE=modther,
-                           ECHANGE=_F(GROUP_MA = 'M_INT',
-                                      COEF_H   = coef_int,
-                                      TEMP_EXT = temp_int,),);
-
-   # Echanges thermiques externes entre bride et air ambiant
-   cl_th2=AFFE_CHAR_THER_F(MODELE=modther,
-                           ECHANGE=_F(GROUP_MA='M_EXT',
-                                   COEF_H=coef_ext,
-                                   TEMP_EXT=temp_ext,),);
-
-   # Echanges thermiques entre ecrou et goujon
-   cl_th3=AFFE_CHAR_THER(MODELE=modther,
-                         LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
-                                        GROUP_NO_2='N_SCGE',
-                                        DDL_1='TEMP',
-                                        COEF_MULT_1=1.0,
-                                        DDL_2='TEMP',
-                                        COEF_MULT_2=-1.0,
-                                        COEF_IMPO=0.0,),);
-
-   # Echanges thermiques entre bride et joint
-   cl_th4=AFFE_CHAR_THER(MODELE=modther,
-                         LIAISON_GROUP=_F(GROUP_NO_1='N_SCBJ',
-                                        GROUP_NO_2='N_SCJB',
-                                        DDL_1='TEMP',
-                                        COEF_MULT_1=1.0,
-                                        DDL_2='TEMP',
-                                        COEF_MULT_2=-1.0,
-                                        COEF_IMPO=0.0,),);
-
-
-
-   #################################################################
-   ########## CALCUL THERMIQUE
-   #################################################################   
-   if RESU_THER != None:
-      self.DeclareOut('resuther',RESU_THER)   
-
-   resuther=THER_LINEAIRE(MODELE=modther,
-                  CHAM_MATER=_cham,
-                  EXCIT=(_F(CHARGE=cl_th1,),
-                         _F(CHARGE=cl_th2,),
-                         _F(CHARGE=cl_th3,),
-                         _F(CHARGE=cl_th4,),),
-                  INCREMENT=_F(LIST_INST=transi1,),
-                  TEMP_INIT=_F(VALE=temp_ini,),
-                  TITRE='CABRI THERMIQUE &DATE &HEURE',);
-   
-   #################################################################
-   ########## CONDITIONS AUX LIMITES MECANIQUES
-   #################################################################   
-   # Recuperation des parametres mecaniques
-   if DEFI_CHAR_MECA != None:
-     if DEFI_CHAR_MECA['PRETENS']!=None:
-         f_pret = DEFI_CHAR_MECA['PRETENS']
-     else:
-         f_pret=DEFI_FONCTION(NOM_PARA='INST',
-                     VALE=(0.0,0.0,1.0,-0.02,),
-                     PROL_DROITE='CONSTANT',
-                     PROL_GAUCHE='CONSTANT',);                                 
-     if DEFI_CHAR_MECA['PRES_REP']!=None:
-         pre_int = DEFI_CHAR_MECA['PRES_REP']
-     else:
-         pre_int = DEFI_FONCTION(NOM_PARA='INST',
-                      VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
-                      PROL_DROITE='CONSTANT',
-                      PROL_GAUCHE='CONSTANT',);  
-     if DEFI_CHAR_MECA['EFFE_FOND']!=None:
-         eff_fond = DEFI_CHAR_MECA['EFFE_FOND']
-     else:
-         eff_fond=DEFI_FONCTION(NOM_PARA='INST',
-                       VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
-                       PROL_DROITE='CONSTANT',
-                       PROL_GAUCHE='CONSTANT',);
-   else:
-      f_pret=DEFI_FONCTION(NOM_PARA='INST',
-                     VALE=(0.0,0.0,1.0,-0.02,),
-                     PROL_DROITE='CONSTANT',
-                     PROL_GAUCHE='CONSTANT',);                                 
-
-      pre_int = DEFI_FONCTION(NOM_PARA='INST',
-                      VALE=(0.0,0.0,1.0,0.0,11.0,16.0,),
-                      PROL_DROITE='CONSTANT',
-                      PROL_GAUCHE='CONSTANT',);  
-
-      eff_fond=DEFI_FONCTION(NOM_PARA='INST',
-                       VALE=(0.0,-0.0,1.0,-0.0,11.0,-20.607059,),
-                       PROL_DROITE='CONSTANT',
-                       PROL_GAUCHE='CONSTANT',);     
-   # Que sauver ?
-   if CHAR_MECA != None:
-      for m in CHAR_MECA:
-         if m['TYPE']=="BLOC_BAS_GOUJ":
-            self.DeclareOut('cl_me1',m['CHARGE'])
-         if m['TYPE']=="BLOC_BAS_JOINT":
-            self.DeclareOut('cl_me2',m['CHARGE'])
-         if m['TYPE']=="BLOC_LAT_ALES":
-            self.DeclareOut('cl_me3',m['CHARGE'])
-         if m['TYPE']=="BLOC_LAT_NALES":
-            self.DeclareOut('cl_me4',m['CHARGE'])
-         if m['TYPE']=="PLAN_TUBE":
-            self.DeclareOut('cl_me5',m['CHARGE'])
-         if m['TYPE']=="PRES_FLU":
-            self.DeclareOut('cl_me6',m['CHARGE'])
-         if m['TYPE']=="EFFET_FOND":
-            self.DeclareOut('cl_me7',m['CHARGE'])
-         if m['TYPE']=="CONT_JOINT":
-            self.DeclareOut('cl_me8',m['CHARGE'])
-         if m['TYPE']=="DEFO_THER":
-            self.DeclareOut('cl_me9',m['CHARGE'])
-         if m['TYPE']=="SERR_ECROU_1":
-            self.DeclareOut('cl_me10',m['CHARGE'])
-         if m['TYPE']=="SERR_ECROU_2":
-            self.DeclareOut('cl_me11',m['CHARGE'])            
-                            
-
-   # Blocage bas du goujon
-   cl_me1=AFFE_CHAR_MECA(MODELE=modmeca,
-                      DDL_IMPO=_F(GROUP_NO='N_M_GOU',
-                                  DZ=0.0,),
-                      INFO=2,);
-   # Blocage bas du joint
-   cl_me2=AFFE_CHAR_MECA(MODELE=modmeca,
-                      DDL_IMPO=_F(GROUP_NO='N_M_JOI',
-                                  DZ=0.0,),
-                      INFO=2,);
-
-   # Blocage lateral, face laterale avec alesage
-   cl_me3=AFFE_CHAR_MECA(MODELE=modmeca,
-                      DDL_IMPO=_F(GROUP_NO='N_M_L_AA',
-                                  DY=0.0,),
-                      INFO=2,);
-
-   # Face laterale sans alesage
-   cl_me4=AFFE_CHAR_MECA(MODELE=modmeca,
-                      FACE_IMPO=_F(GROUP_MA='M_L_SA',
-                                   DNOR=0.0,),
-                      INFO=2,);
-
-   # Condition de planeite de la face de coupe du tube
-   cl_me5=AFFE_CHAR_MECA(MODELE=modmeca,
-                      LIAISON_UNIF=_F(GROUP_MA='M_TUB',
-                                      DDL='DZ',),
-                      INFO=2,);
-   # Pression due au fluide
-   cl_me6=AFFE_CHAR_MECA_F(MODELE=modmeca,
-                           PRES_REP=_F(GROUP_MA='M_INT',
-                                     PRES=pre_int,),
-                           INFO=2,);
-
-   # Effet de fond
-   cl_me7=AFFE_CHAR_MECA_F(MODELE=modmeca,
-                           PRES_REP=_F(GROUP_MA='M_TUB',
-                                     PRES=eff_fond,),
-                           INFO=2,);
-
-   # Contact zone de joint
-   cl_me8=AFFE_CHAR_MECA(MODELE=modmeca,
-                        CONTACT=_F(GROUP_MA_MAIT='SCBJ',
-                                   GROUP_MA_ESCL='SCJB',),
-                        INFO=2,);
-   # Deformation thermique
-   cl_me9=AFFE_CHAR_MECA(  MODELE=modmeca,
-                           TEMP_CALCULEE=resuther,
-                           INFO=2,);
-
-   # Serrage ecrou/goujon (pre-tensionnement)
-   cl_me10=AFFE_CHAR_MECA_F(MODELE=modmeca,
-                         LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
-                                          GROUP_NO_2='N_SCGE',
-                                          DDL_1='DZ',
-                                          COEF_MULT_1=1.0,
-                                          DDL_2='DZ',
-                                          COEF_MULT_2=-1.0,
-                                          COEF_IMPO=f_pret,),
-                      INFO=2,);
-
-   cl_me11=AFFE_CHAR_MECA(MODELE=modmeca,
-                       LIAISON_GROUP=_F(GROUP_NO_1='N_SCEG',
-                                        GROUP_NO_2='N_SCGE',
-                                        DDL_1='DX',
-                                        COEF_MULT_1=1.0,
-                                        DDL_2='DX',
-                                        COEF_MULT_2=-1.0,
-                                        COEF_IMPO=0.0,),
-                      INFO=2,);
-
-
-   #################################################################
-   ########## CALCUL MECANIQUE
-   #################################################################  
-   # Options de convergence        
-   solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-   
-   # Elimination des valeurs "None"
-   for i in solveur.keys():
-      if solveur[i]==None : del solveur[i]
-
-
-   transi2 = DEFI_LIST_REEL(DEBUT=0.0,
-                     INTERVALLE=(_F(JUSQU_A=1.0,
-                                    NOMBRE=2,),
-                                 _F(JUSQU_A=11.0,
-                                    NOMBRE=20,),
-                                 _F(JUSQU_A=600.0,
-                                    NOMBRE=20,),
-                                 _F(JUSQU_A=610.0,
-                                    NOMBRE=20,),
-                                 _F(JUSQU_A=1800.0,
-                                    NOMBRE=20,),
-                                 _F(JUSQU_A=7200.0,
-                                    NOMBRE=20,),),);   
-
-   # Options d'incrementation  
-   if INCREMENT != None:
-      if INCREMENT['LIST_INST'] != None:
-         listinst = INCREMENT['LIST_INST']
-      else:
-         listinst = transi2   
-   
-      increment=INCREMENT[0].cree_dict_valeurs(INCREMENT[0].mc_liste)
-   
-      # Elimination des valeurs "None"
-      for i in increment.keys():
-         if increment[i]==None : del increment[i]
-      
-      increment['LIST_INST'] = listinst
-            
-   else:
-      listinst  = transi2
-      increment =_F(
-               LIST_INST       = listinst,
-               ),       
-                              
-   # Options de Newton     
-   newton=NEWTON[0].cree_dict_valeurs(NEWTON[0].mc_liste)
-   # Elimination des valeurs "None"
-   for i in newton.keys():
-      if newton[i]==None : del newton[i]   
-
-   # Options de convergence        
-   convergence=CONVERGENCE[0].cree_dict_valeurs(CONVERGENCE[0].mc_liste) 
-   # Elimination des valeurs "None"
-   for i in convergence.keys():
-      if convergence[i]==None : del convergence[i]
-
-   # Options de comportement
-   # Type incremental (=1) ou elastique (=0)
-   comp_incr = 0
-   if RELATION:
-      relation=RELATION
-      if relation == 'VMIS_ISOT_TRAC':
-         comp_incr = 1
-      else:
-         comp_incr = 0
-   else:
-      relation = 'ELAS'
-      comp_incr = 0
-
-         
-   # Parametres du calcul
-   if comp_incr == 1:
-      resumeca=STAT_NON_LINE(MODELE=modmeca,
-                  CHAM_MATER=_cham,
-                  EXCIT=(_F(CHARGE=cl_me1,),
-                         _F(CHARGE=cl_me2,),
-                         _F(CHARGE=cl_me3,),
-                         _F(CHARGE=cl_me4,),
-                         _F(CHARGE=cl_me5,),
-                         _F(CHARGE=cl_me6,), 
-                         _F(CHARGE=cl_me7,), 
-                         _F(CHARGE=cl_me8,), 
-                         _F(CHARGE=cl_me9,), 
-                         _F(CHARGE=cl_me10,), 
-                         _F(CHARGE=cl_me11,),                            
-                  ),
-                  SOLVEUR        = solveur, 
-                  COMP_INCR      =_F(RELATION=relation,RESO_INTE=resointe),
-                  NEWTON         = newton,
-                  INCREMENT      = increment,
-                  CONVERGENCE    = convergence,
-                  TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);
-   else:
-      resumeca=STAT_NON_LINE(MODELE=modmeca,
-                  CHAM_MATER=_cham,
-                  EXCIT=(_F(CHARGE=cl_me1,),
-                         _F(CHARGE=cl_me2,),
-                         _F(CHARGE=cl_me3,),
-                         _F(CHARGE=cl_me4,),
-                         _F(CHARGE=cl_me5,),
-                         _F(CHARGE=cl_me6,), 
-                         _F(CHARGE=cl_me7,), 
-                         _F(CHARGE=cl_me8,), 
-                         _F(CHARGE=cl_me9,), 
-                         _F(CHARGE=cl_me10,), 
-                         _F(CHARGE=cl_me11,),                            
-                  ),
-                  SOLVEUR        = solveur, 
-                  COMP_ELAS      =_F(RELATION=relation,RESO_INTE=resointe),
-                  NEWTON         = newton,
-                  INCREMENT      = increment,
-                  CONVERGENCE    = convergence,
-                  TITRE='CABRI THERMOM\xe9CANIQUE &DATE &HEURE',);                  
-
-   return ier
-
diff --git a/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_dat.py b/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_dat.py
deleted file mode 100644 (file)
index 7d67325..0000000
+++ /dev/null
@@ -1,630 +0,0 @@
-#@ MODIF macr_cabri_mail_dat Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-# Données pour les brides standards
-
-
-
-# Pour ajouter une bride x:
-#  Définir un dico_bride_x comme ci-dessous puis ajoutez-le à dico_bride_std
-
-# dictionnaire pour la description des variables
-dico_var_geo = {'nbgouj':'Nombre de goujons de la jonction boulonnée (GOUJ_N_GOUJON)',
-            'dint':'Diamètre intérieur de la bride (BRID_D_INT)',
-            'dex1':'Diamétre extérieur de la conduite (TUBU_D_EXT)',
-            'dex2':'Position (diamètre) du congé de la bride (BRID_D_CONGE)',
-            'dex3':'Diamètre de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_D_EPAUL)',
-            'dtrou':'Position des alésages de la bride permettant l''introduction des goujons (BRID_P_ALESAG)',
-            'dext':'Diamètre extérieur de la bride (BRID_D_EXT)',
-            'dt':'Diamètre des alésages de la bride permettant l''introduction des goujons (BRID_D_ALESAG)',
-            'drd':'Diamètre de la rondelle (GOUJ_D_RONDEL)',
-            'dg':'Diamètre des goujons de la jonction boulonnée (GOUJ_D_GOUJON)',
-            'dec':'Diamètre de l''écrou (GOUJ_D_ECROU)',
-            'rcong':'Rayon du congé de la bride (BRID_R_CONGE)',
-            'he':'Epaisseur de la rondelle (GOUJ_E_RONDEL)',
-            'e':'Epaisseur de l''écrou (GOUJ_E_ECROU)',
-            'hc1':'Hauteur de la bride (BRID_H)',
-            'hcg1':'Hauteur de conduite (TUBU_H)',
-            'hb':'Hauteur de l''épaulement de la bride au niveau de l''interface d''étanchéité (BRID_H_EPAUL)',
-            'htrou':'Hauteur des alésages de la bride permettant l''introduction des goujons (BRID_H_ALESAG)',
-            'pf':'Profondeur (épaisseur) des filets des goujons (GOUJ_E_FILET)',
-            'j':'Epaisseur du joint au niveau de l''interface d''étanchéité (ETAN_E_JOINT)'}
-
-dico_var_msh = {'nrad':'Nombre d''éléments radiaux (NBR_RAD)',
-            'ncir':'Nombre d''éléments circonférentiels (NBR_CIR)',
-            'nver':'Nombre d''éléments verticaux (NBR_VER)',
-            'nsect':'Nombre d''éléments de l''alésage (NBR_ALE)',
-            'temps':'Temps d''analyse'}
-
-# dictionnaires des brides standards
-dico_bride_A = {'nbgouj': 4,
-                'dint':   15.76,
-                'dex1':   21.3,
-                'dex2':   38.,
-                'dex3':   48.,
-                'dtrou':  67.,
-                'dext':   95.,
-                'dt':     14.,
-                'drd':    25.,
-                'dg':     12.,
-                'dec':    18.,
-                'rcong':  3.,
-                'he':     12.,
-                'e':      2.5,
-                'hc1':    46.5,
-                'hcg1':   20,
-                'hb':     1.5,
-                'htrou':  20.,
-                'pf':     1.5,
-                'j':      2}
-
-dico_bride_AA = {'nbgouj': 32,
-                'dint':   336.5,
-                'dex1':   355.6,
-                'dex2':   395.,
-                'dex3':   415.,
-                'dtrou':  460.,
-                'dext':   515.,
-                'dt':     22.,
-                'drd':    36.,
-                'dg':     20.,
-                'dec':    30.,
-                'rcong':  5.,
-                'he':     20.,
-                'e':      3.,
-                'hc1':    115.,
-                'hcg1':   115./2.,
-                'hb':     3.,
-                'htrou':  47.,
-                'pf':     2.2,
-                'j':      2}
-
-dico_bride_B = {'nbgouj': 4,
-                'dint':   26.64,
-                'dex1':   33.4,
-                'dex2':   53.,
-                'dex3':   63.,
-                'dtrou':  88.,
-                'dext':   123.,
-                'dt':     16.,
-                'drd':    27.,
-                'dg':     14.,
-                'dec':    21.,
-                'rcong':  4.,
-                'he':     14.,
-                'e':      2.5,
-                'hc1':    59.,
-                'hcg1':   59./2.,
-                'hb':     1.5,
-                'htrou':  27.5,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_B1 = {'nbgouj': 4,
-                'dint':   24.3,
-                'dex1':   33.4,
-                'dex2':   53.,
-                'dex3':   63.,
-                'dtrou':  88.,
-                'dext':   123.,
-                'dt':     16.,
-                'drd':    27.,
-                'dg':     14.,
-                'dec':    21.,
-                'rcong':  4.,
-                'he':     14.,
-                'e':      2.5,
-                'hc1':    59.,
-                'hcg1':   59./2.,
-                'hb':     1.5,
-                'htrou':  27.5,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_C = {'nbgouj': 8,
-                'dint':   52.48,
-                'dex1':   60.3,
-                'dex2':   84.,
-                'dex3':   100.,
-                'dtrou':  127.,
-                'dext':   165.,
-                'dt':     18.,
-                'drd':    30,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  4.,
-                'he':     16.,
-                'e':      3,
-                'hc1':    70.,
-                'hcg1':   70./2.,
-                'hb':     1.5,
-                'htrou':  21.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_D = {'nbgouj': 8,
-                'dint':   42.9,
-                'dex1':   60.3,
-                'dex2':   84.,
-                'dex3':   100.,
-                'dtrou':  127.,
-                'dext':   165.,
-                'dt':     18.,
-                'drd':    30,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    87.6,
-                'hcg1':   87.6/2.,
-                'hb':     1.5,
-                'htrou':  38.5,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_D1 = {'nbgouj': 8,
-                'dint':   49.22,
-                'dex1':   60.3,
-                'dex2':   84.,
-                'dex3':   100.,
-                'dtrou':  127.,
-                'dext':   165.,
-                'dt':     18.,
-                'drd':    30,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    87.6,
-                'hcg1':   87.6/2.,
-                'hb':     1.5,
-                'htrou':  38.5,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_E = {'nbgouj': 8,
-                'dint':   83.1,
-                'dex1':   88.9,
-                'dex2':   117.5,
-                'dex3':   135.,
-                'dtrou':  165.,
-                'dext':   209.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    80.,
-                'hcg1':   80./2.,
-                'hb':     2.,
-                'htrou':  27.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_F = {'nbgouj': 8,
-                'dint':   73.66,
-                'dex1':   88.9,
-                'dex2':   117.5,
-                'dex3':   135.,
-                'dtrou':  165.,
-                'dext':   209.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    89.,
-                'hcg1':   89./2.,
-                'hb':     2.,
-                'htrou':  36.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_FF = {'nbgouj': 32,
-                'dint':   396.99,
-                'dex1':   406.4,
-                'dex2':   440.,
-                'dex3':   455.,
-                'dtrou':  485.,
-                'dext':   535.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    99.,
-                'hcg1':   99./2.,
-                'hb':     3.,
-                'htrou':  40.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_G = {'nbgouj': 12,
-                'dint':   66.7,
-                'dex1':   88.9,
-                'dex2':   117.5,
-                'dex3':   135.,
-                'dtrou':  165.,
-                'dext':   209.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    98.,
-                'hcg1':   98./2.,
-                'hb':     2.,
-                'htrou':  45.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_GG = {'nbgouj': 36,
-                'dint':   381.,
-                'dex1':   406.4,
-                'dex2':   445.,
-                'dex3':   460.,
-                'dtrou':  495.,
-                'dext':   545.,
-                'dt':     22.,
-                'drd':    36,
-                'dg':     20.,
-                'dec':    30.,
-                'rcong':  5.,
-                'he':     20.,
-                'e':      3.,
-                'hc1':    129.,
-                'hcg1':   129./2.,
-                'hb':     3.,
-                'htrou':  63.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_H = {'nbgouj': 12,
-                'dint':   108.2,
-                'dex1':   114.3,
-                'dex2':   146.,
-                'dex3':   157.,
-                'dtrou':  190.,
-                'dext':   225.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    89.,
-                'hcg1':   89./2.,
-                'hb':     2.,
-                'htrou':  33.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_H1 = {'nbgouj': 12,
-                'dint':   102.6,
-                'dex1':   114.3,
-                'dex2':   146.,
-                'dex3':   157.,
-                'dtrou':  190.,
-                'dext':   225.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    89.,
-                'hcg1':   89./2.,
-                'hb':     2.,
-                'htrou':  33.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_I = {'nbgouj': 18,
-                'dint':   92.1,
-                'dex1':   114.3,
-                'dex2':   146.,
-                'dex3':   160.,
-                'dtrou':  200.,
-                'dext':   255.,
-                'dt':     20.,
-                'drd':    32.,
-                'dg':     18.,
-                'dec':    27.,
-                'rcong':  5.,
-                'he':     18.,
-                'e':      3.,
-                'hc1':    99.,
-                'hcg1':   99./2.,
-                'hb':     2.,
-                'htrou':  43.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_J = {'nbgouj': 18,
-                'dint':   87.34,
-                'dex1':   114.3,
-                'dex2':   146.,
-                'dex3':   160.,
-                'dtrou':  200.,
-                'dext':   255.,
-                'dt':     20.,
-                'drd':    32.,
-                'dg':     18.,
-                'dec':    27.,
-                'rcong':  5.,
-                'he':     18.,
-                'e':      3.,
-                'hc1':    111.,
-                'hcg1':   111./2.,
-                'hb':     2.,
-                'htrou':  55.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_J1 = {'nbgouj': 18,
-                'dint':   87.3,
-                'dex1':   114.3,
-                'dex2':   146.,
-                'dex3':   160.,
-                'dtrou':  200.,
-                'dext':   255.,
-                'dt':     22.,
-                'drd':    36.,
-                'dg':     20.,
-                'dec':    30.,
-                'rcong':  5.,
-                'he':     20.,
-                'e':      3.,
-                'hc1':    111.,
-                'hcg1':   111./2.,
-                'hb':     2.,
-                'htrou':  55.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_K = {'nbgouj': 8,
-                'dint':   161.5,
-                'dex1':   168.3,
-                'dex2':   192.,
-                'dex3':   210.,
-                'dtrou':  235.,
-                'dext':   280.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    84.,
-                'hcg1':   84./2.,
-                'hb':     2.,
-                'htrou':  28.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_L = {'nbgouj': 16,
-                'dint':   154.8,
-                'dex1':   168.3,
-                'dex2':   206.,
-                'dex3':   220.,
-                'dtrou':  255.,
-                'dext':   317.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    96.,
-                'hcg1':   96./2.,
-                'hb':     2.,
-                'htrou':  40.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_L1 = {'nbgouj': 16,
-                'dint':   154.8,
-                'dex1':   168.3,
-                'dex2':   206.,
-                'dex3':   220.,
-                'dtrou':  255.,
-                'dext':   317.,
-                'dt':     20.,
-                'drd':    32.,
-                'dg':     18.,
-                'dec':    27.,
-                'rcong':  5.,
-                'he':     18.,
-                'e':      3.,
-                'hc1':    96.,
-                'hcg1':   96./2.,
-                'hb':     2.,
-                'htrou':  40.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_M = {'nbgouj': 16,
-                'dint':   139.7,
-                'dex1':   168.3,
-                'dex2':   206.,
-                'dex3':   220.,
-                'dtrou':  250.,
-                'dext':   290.,
-                'dt':     24.,
-                'drd':    40.,
-                'dg':     22.,
-                'dec':    32.,
-                'rcong':  5.,
-                'he':     22.,
-                'e':      3.,
-                'hc1':    135.,
-                'hcg1':   135./2.,
-                'hb':     3.,
-                'htrou':  62.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_N = {'nbgouj': 12,
-                'dint':   131.9,
-                'dex1':   168.3,
-                'dex2':   220.,
-                'dex3':   240.,
-                'dtrou':  290.,
-                'dext':   365.,
-                'dt':     30.,
-                'drd':    48.,
-                'dg':     27.,
-                'dec':    41.,
-                'rcong':  5.,
-                'he':     27.,
-                'e':      4.,
-                'hc1':    148.,
-                'hcg1':   148./2.,
-                'hb':     3.,
-                'htrou':  75.,
-                'pf':     2.6,
-                'j':      2}
-dico_bride_O = {'nbgouj': 12,
-                'dint':   211.58,
-                'dex1':   219.1,
-                'dex2':   248.,
-                'dex3':   260.,
-                'dtrou':  292.,
-                'dext':   335.,
-                'dt':     20.,
-                'drd':    32.,
-                'dg':     18.,
-                'dec':    27.,
-                'rcong':  5.,
-                'he':     18.,
-                'e':      3.,
-                'hc1':    87.,
-                'hcg1':   87./2.,
-                'hb':     3.,
-                'htrou':  30.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_P = {'nbgouj': 16,
-                'dint':   202.74,
-                'dex1':   219.1,
-                'dex2':   248.,
-                'dex3':   260.,
-                'dtrou':  292.,
-                'dext':   335.,
-                'dt':     20.,
-                'drd':    32,
-                'dg':     18.,
-                'dec':    27.,
-                'rcong':  5.,
-                'he':     18.,
-                'e':      3.,
-                'hc1':    99.,
-                'hcg1':   99./2.,
-                'hb':     3.,
-                'htrou':  42.,
-                'pf':     2.2,
-                'j':      2}
-dico_bride_S = {'nbgouj': 16,
-                'dint':   264.62,
-                'dex1':   273.,
-                'dex2':   305.,
-                'dex3':   315.,
-                'dtrou':  350.,
-                'dext':   390.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    89.,
-                'hcg1':   89./2.,
-                'hb':     3.,
-                'htrou':  32.,
-                'pf':     1.7,
-                'j':      2}
-dico_bride_T = {'nbgouj': 16,
-                'dint':   254.56,
-                'dex1':   273.,
-                'dex2':   320.,
-                'dex3':   340.,
-                'dtrou':  385.,
-                'dext':   444.,
-                'dt':     27.,
-                'drd':    45.,
-                'dg':     24.,
-                'dec':    36.,
-                'rcong':  5.,
-                'he':     24.,
-                'e':      4.,
-                'hc1':    128.,
-                'hcg1':   128./2.,
-                'hb':     3.,
-                'htrou':  55.,
-                'pf':     2.6,
-                'j':      2}
-dico_bride_W = {'nbgouj': 28,
-                'dint':   314.76,
-                'dex1':   323.9,
-                'dex2':   360.,
-                'dex3':   385.,
-                'dtrou':  415.,
-                'dext':   460.,
-                'dt':     18.,
-                'drd':    30.,
-                'dg':     16.,
-                'dec':    24.,
-                'rcong':  5.,
-                'he':     16.,
-                'e':      3.,
-                'hc1':    96.,
-                'hcg1':   96./2.,
-                'hb':     3.,
-                'htrou':  37.,
-                'pf':     1.7,
-                'j':      2}
-
-
-# dictionnaire pour faire le lien entre l'option de bride et les valeurs normalisées
-dico_bride_std = {'AA':dico_bride_AA,
-                  'A':dico_bride_A,
-                  'B':dico_bride_B,
-                  'B1':dico_bride_B1,
-                  'C':dico_bride_C,
-                  'D':dico_bride_D,
-                  'D1':dico_bride_D1,
-                  'E':dico_bride_E,
-                  'F':dico_bride_F,
-                  'FF':dico_bride_FF,
-                  'G':dico_bride_G,
-                  'GG':dico_bride_GG,
-                  'H':dico_bride_H,
-                  'H1':dico_bride_H1,
-                  'I':dico_bride_I,
-                  'J':dico_bride_J,
-                  'J1':dico_bride_J1,
-                  'K':dico_bride_K,
-                  'L':dico_bride_L,
-                  'L1':dico_bride_L1,
-                  'M':dico_bride_M,
-                  'N':dico_bride_N,
-                  'O':dico_bride_O,
-                  'P':dico_bride_P,
-                  'S':dico_bride_S,
-                  'T':dico_bride_T,
-                  'W':dico_bride_W}
diff --git a/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_ops.py b/Aster/Cata/cataSTA81/Macro/macr_cabri_mail_ops.py
deleted file mode 100644 (file)
index 9215454..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-#@ MODIF macr_cabri_mail_ops Macro  DATE 07/02/2005   AUTEUR MABBAS M.ABBAS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-import os
-
-def macr_cabri_mail_ops(self,EXEC_MAILLAGE,RAFF_MAILLAGE,VERI_MAIL,GEOM_BRID,
-                        IMPRESSION,**args):
-  """
-     Ecriture de la macro MACR_CABRI_MAIL
-  """
-  import types
-  from Accas import _F
-
-  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
-  EXEC_LOGICIEL = self.get_cmd('EXEC_LOGICIEL')
-  LIRE_MAILLAGE = self.get_cmd('LIRE_MAILLAGE')
-  PRE_GIBI      = self.get_cmd('PRE_GIBI')
-  IMPR_RESU     = self.get_cmd('IMPR_RESU')
-
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  # Le concept sortant (de type mail) est nommé 'nomres' dans 
-  # le contexte de la macro
-  
-  self.DeclareOut('nomres',self.sd)
-  
-  # Chemin de Gibi
-  import aster
-  loc_gibi=aster.repout()
-  gibi2000=loc_gibi+'gibi'
-  
-  # Unité pour le fichier maillage produit (format GIBI)
-  unite_mgib = EXEC_MAILLAGE['UNITE_MGIB']
-  # Unité pour le fichier de commandes GIBI
-  unite_datg = EXEC_MAILLAGE['UNITE_DATG']
-  # Niveau gibi
-  niveau_gibi = EXEC_MAILLAGE['NIVE_GIBI']
-  # Verif mail
-  ver_apla = VERI_MAIL['APLAT']
-  ver_veri = VERI_MAIL['VERIF']
-  
-  # Impression
-  if IMPRESSION['UNITE']!=None:
-   imp_unit = IMPRESSION['UNITE']
-   imp_unitF = 1
-  else:
-   imp_unitF = 0  
-  if IMPRESSION['FORMAT']!=None:
-   imp_form = IMPRESSION['FORMAT']
-   imp_formF = 1
-  else:
-   imp_formF = 0 
-#  if IMPRESSION['FICHIER']!=None:
-#   imp_fich = IMPRESSION['FICHIER']
-#   imp_fichF = 1
-#  else:
-#   imp_fichF = 0 
-  # Maillage  
-  nrad = RAFF_MAILLAGE['NB_RADIAL']
-  ncir = RAFF_MAILLAGE['NB_CIRCONF']
-  nver = RAFF_MAILLAGE['NB_VERTICAL']
-  nsect = RAFF_MAILLAGE['NB_ALESAGE']
-  temps = 5.
-    
-  maillage = {'nrad': nrad,
-              'ncir': ncir,
-              'nver': nver,
-              'nsect': nsect,
-              'temps' : temps,}
-
-  # Création du fichier datg
-  
-  if GEOM_BRID['NORME'] == 'OUI':
-    # Bride standard
-    type_bride = GEOM_BRID['TYPE']
-    ### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD
-    write_file_dgib_STD(unite_mgib,unite_datg,maillage,type_bride) 
-  else:
-    # Bride quelconque
-    geo_bride_qqe = {'nbgouj': GEOM_BRID['GOUJ_N_GOUJON'],
-                'dint':   GEOM_BRID['BRID_D_INT'],
-                'dex1':   GEOM_BRID['TUBU_D_EXT'],
-                'dex2':   GEOM_BRID['BRID_D_CONGE'],
-                'dex3':   GEOM_BRID['BRID_D_EPAUL'],
-                'dtrou':  GEOM_BRID['BRID_P_ALESAG'],
-                'dext':   GEOM_BRID['BRID_D_EXT'],
-                'dt':     GEOM_BRID['BRID_D_ALESAG'],
-                'drd':    GEOM_BRID['GOUJ_D_RONDEL'],
-                'dg':     GEOM_BRID['GOUJ_D_GOUJON'],
-                'dec':    GEOM_BRID['GOUJ_D_ECROU'],
-                'rcong':  GEOM_BRID['BRID_R_CONGE'],
-                'he':     GEOM_BRID['GOUJ_E_ECROU'],
-                'e':      GEOM_BRID['GOUJ_E_RONDEL'],
-                'hc1':    GEOM_BRID['BRID_H'],
-                'hcg1':   GEOM_BRID['TUBU_H'],
-                'hb':     GEOM_BRID['BRID_H_EPAUL'],
-                'htrou':  GEOM_BRID['BRID_H_ALESAG'],
-                'pf':     GEOM_BRID['GOUJ_E_FILET'],
-                'j':      GEOM_BRID['ETAN_E_JOINT']}  
-    ### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE
-    write_file_dgib_QQE(unite_mgib,unite_datg,maillage,geo_bride_qqe)  
-
-  fichier_datg = 'fort.'+str(unite_datg)
-  fichier_mgib = 'fort.'+str(unite_mgib)
-  
-  # Lancement de GIBI
-  EXEC_LOGICIEL(
-               LOGICIEL=gibi2000,
-               ARGUMENT=(_F(NOM_PARA=fichier_datg),
-                         _F(NOM_PARA=fichier_mgib),
-                         )
-               )
-  # Lecture du maillage GIBI dans ASTER
-  PRE_GIBI(
-          UNITE_GIBI = unite_mgib,
-          )
-  
-  nomres = LIRE_MAILLAGE(VERI_MAIL=_F(APLAT = ver_apla,
-                                      VERIF = ver_veri ),)
-                                      
-#  if (imp_fichF == 1):  
-#   print imp_fich
-  if (imp_formF == 1):  
-   print imp_form
-  if (imp_unitF == 1):  
-   print imp_unit    
-  # Impression du fichier maillage
-  if (imp_formF == 1):
-    if (imp_form == 'CASTEM'):
-      imp_ngib = IMPRESSION['NIVE_GIBI']
-      IMPR_RESU( RESU = _F(MAILLAGE=nomres, ),
-                 FORMAT = 'CASTEM', NIVE_GIBI = imp_ngib )
-    if (imp_form == 'IDEAS'):
-      imp_nver = IMPRESSION['VERSION']
-      IMPR_RESU(RESU = _F(MAILLAGE=nomres,),
-                FORMAT = 'IDEAS', VERSION = imp_nver )
-                                
-  return ier
-
-
-##############################################################################################
-# Liste des fonctions
-##############################################################################################
-
-#############
-## EXTERNES (appelables depuis l'extérieur)
-#############
-
-### Ecriture du fichier GIBI principal (dgib) - Bride STANDARD
-# null = write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride)
-
-### Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE
-# null = write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride)
-
-### Imprime tout le catalogue des brides standards disponibles dans un fichier texte
-# null = print_bride_std(nom_fichier)
-### Catalogue complet des brides standards disponibles
-# txt = bride_std()
-
-#############
-## INTERNES (réservées au travail interne)
-#############
-
-### Génération du nom du fichier pour le fichier maillage résultant (format GIBI)
-# NomFichier(txt) = name_file_mgib(unite_mgib):
-
-### Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI)
-# NomFichier(txt) = name_file_datg(unite_datg):
-
-### Récupère un fichier texte DATG
-# Txt = text_datg(fichier_datg):
-
-### Génération du texte pour les variables
-# Txt = para_text(dico_var,var): 
-
-
-
-#=============================================================================================
-# Importation des modules Python
-#=============================================================================================
-
-from Macro.macr_cabri_mail_dat import dico_var_geo,dico_var_msh,dico_bride_std
-
-#=============================================================================================
-# Fonctions principales
-#=============================================================================================
-# Ecriture du fichier GIBI principal (dgib) - Bride STANDARD
-def write_file_dgib_STD(unite_mgib,unite_datg,msh_bride,geo_bride):
-
-    # Nom du fichier maillage produit par GIBI
-    nomFichierMGIB = name_file_mgib(unite_mgib)
-    # Nom du fichier de commandes pour GIBI
-    nomFichierDATG = name_file_datg(unite_datg)
-        
-    # Ouverture du fichier d'entrée de commandes
-    fdgib=open(nomFichierDATG,'w')
-    
-    # En-tete
-    text =        "**************************************************************\n"
-    text = text + "* Fichier GIBI pour le maillage d'une bride \n"
-    text = text + "**************************************************************\n"
-    text = text + "\n"
-    text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n"
-    text = text + "* Ne pas modifier\n"
-    text = text + "\n"    
-    text = text + "**************************************************************\n"
-    text = text + "* Type bride: Bride standard \n"
-    text = text + "**************************************************************\n"
-    text = text + "titre '"+"Bride standard"+"';\n"
-    text = text + "** Type bride standard: "+geo_bride+"\n"
-   
-    text = text + "\n"
-    text = text + "nomfich = CHAINE \n"
-    if len(nomFichierMGIB)>72:
-      raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \
-         'pour GIBI) :\n',nomFichierMGIB
-    elif len(nomFichierMGIB)<=69:
-      text = text + "'"+nomFichierMGIB+"';\n"
-    else:
-      text = text + "'"+nomFichierMGIB[:69]+"'\n" \
-                  + "'"+nomFichierMGIB[69:]+"';\n"
-    text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n"
-    text = text + "dens 1;\n"
-    text = text + "\n"
-    fdgib.write(text)
-    
-    # Procédures internes supplémentaires
-    text =        "**************************************************************\n"
-    text = text + "* Procédures supplémentaires \n"
-    text = text + "**************************************************************\n"
-    text = text + text_datg_pro()
-    fdgib.write(text)
-    
-    # Début de procédure de création du maillage
-    text =        "**************************************************************\n"
-    text = text + "**************************************************************\n"
-    text = text + "********* Début de procédure de création du maillage *********\n"
-    text = text + "**************************************************************\n"
-    text = text + "**************************************************************\n"
-    text = text + "\n debproc constru;\n"
-    fdgib.write(text)
-
-    # Paramètres géométriques
-    car_bride = dico_bride_std[geo_bride]
-    text =        "**************************************************************\n"
-    text = text + "* Paramètres géométriques \n"
-    text = text + "**************************************************************\n"
-    text = text + para_text(dico_var_geo,car_bride)
-    fdgib.write(text) 
-
-    # Paramètres du maillage
-    text =        "**************************************************************\n"
-    text = text + "* Paramètres physiques \n"
-    text = text + "**************************************************************\n"
-    text = text + para_text(dico_var_msh,msh_bride)
-    fdgib.write(text) 
-
-    # Algorithme du maillage
-    text =        "**************************************************************\n"
-    text = text + "* Algorithme de maillage \n"
-    text = text + "**************************************************************\n"
-    text = text + text_datg_std()
-    fdgib.write(text)
-    
-    # Fermeture du fichier maillage
-    fdgib.close()
-    
-    
-# Ecriture du fichier GIBI principal (dgib) - Bride QUELCONQUE
-def write_file_dgib_QQE(unite_mgib,unite_datg,msh_bride,geo_bride):
-        
-    # Nom du fichier maillage produit par GIBI
-    nomFichierMGIB = name_file_mgib(unite_mgib)
-    # Nom du fichier de commandes pour GIBI
-    nomFichierDATG = name_file_datg(unite_datg)
-      
-    # Ouverture du fichier d'entree de commandes
-    fdgib=open(nomFichierDATG,'w')
-    
-    # En-tete
-    text =        "**************************************************************\n"
-    text = text + "* Fichier GIBI pour le maillage d'une bride \n"
-    text = text + "**************************************************************\n"
-    text = text + "\n"
-    text = text + "* Ce fichier a été généré automatiquement par la macro ASTER MACR_CABRI_MAIL \n"
-    text = text + "* Ne pas modifier\n"
-    text = text + "\n"    
-    text = text + "**************************************************************\n"
-    text = text + "* Type bride: Bride quelconque\n"
-    text = text + "**************************************************************\n"
-    text = text + "titre '"+"Bride Quelconque"+"';\n"
-    text = text + "\n"
-    text = text + "nomfich = CHAINE \n"
-    if len(nomFichierMGIB)>72:
-      raise Exception, 'Nom de fichier trop long (limité à 72 caractères ' \
-         'pour GIBI) :\n',nomFichierMGIB
-    elif len(nomFichierMGIB)<=69:
-      text = text + "'"+nomFichierMGIB+"';\n"
-    else:
-      text = text + "'"+nomFichierMGIB[:69]+"'\n" \
-                  + "'"+nomFichierMGIB[69:]+"';\n"
-    text = text + "opti dime 3 elem cub8 SAUV FORM nomfich;\n"
-    text = text + "dens 1;\n"
-    text = text + "\n"
-    fdgib.write(text)
-    
-    # Procédures internes supplémentaires
-    text =        "**************************************************************\n"
-    text = text + "* Procédures supplémentaires \n"
-    text = text + "**************************************************************\n"
-    text = text + text_datg_pro()
-    fdgib.write(text)
-    
-    # Début de procédure de création du maillage
-    text =        "**************************************************************\n"
-    text = text + "**************************************************************\n"
-    text = text + "********* Début de procédure de création du maillage *********\n"
-    text = text + "**************************************************************\n"
-    text = text + "**************************************************************\n"
-    text = text + "\n debproc constru;\n"
-    fdgib.write(text)
-
-    # Paramètres géométriques
-    text =        "**************************************************************\n"
-    text = text + "* Paramètres géométriques \n"
-    text = text + "**************************************************************\n"
-    text = text + para_text(dico_var_geo,geo_bride)
-    fdgib.write(text) 
-
-    # Paramètres du maillage
-    text =        "**************************************************************\n"
-    text = text + "* Paramètres physiques \n"
-    text = text + "**************************************************************\n"
-    text = text + para_text(dico_var_msh,msh_bride)
-    fdgib.write(text) 
-
-    # Algorithme du maillage
-    text =        "**************************************************************\n"
-    text = text + "* Algorithme de maillage \n"
-    text = text + "**************************************************************\n"
-    text = text + text_datg_qqe()
-    fdgib.write(text)
-    
-    # Fermeture du fichier maillage
-    fdgib.close()
-
-# Génération du nom du fichier pour le fichier maillage résultant (format GIBI)
-def name_file_mgib(unite_mgib):
-    cur_dir = os.getcwd()
-    nomFichier = cur_dir+'/fort.'+str(unite_mgib)
-    return nomFichier
-
-
-# Génération du nom du fichier pour le fichier générant le maillage (commandes GIBI)
-def name_file_datg(unite_datg):
-    cur_dir = os.getcwd()
-    nomFichier = cur_dir+'/fort.'+str(unite_datg)
-    return nomFichier
-
-# Récupère un fichier texte DATG: texte GIBI pour procédures
-def text_datg_pro():
-   import aster
-   loc_datg = aster.repdex()
-   datg_bridePro  = loc_datg+"macr_cabri_mail_proc.datg"
-   fproc=open(datg_bridePro,'r')
-   procText = fproc.read()
-   fproc.close()
-
-   return procText
-
-# Récupère un fichier texte DATG: texte GIBI pour bride quelconque
-def text_datg_qqe():
-   import aster
-   loc_datg = aster.repdex()
-   datg_brideQqe  = loc_datg+"macr_cabri_mail_qqe.datg"      
-   fproc=open(datg_brideQqe,'r')
-   procText = fproc.read()
-   fproc.close()
-
-   return procText
-
-# Récupère un fichier texte DATG: texte GIBI pour bride standard
-def text_datg_std():
-   import aster
-   loc_datg = aster.repdex()
-   datg_brideStd  = loc_datg+"macr_cabri_mail_std.datg"      
-   fproc=open(datg_brideStd,'r')
-   procText = fproc.read()
-   fproc.close()
-
-   return procText
-
-# Génération du texte pour les variables
-def para_text(dico_var,var):
-    text = '\n'
-    for nom_var in var.keys():
-        text = text+"* "+dico_var[nom_var]+"\n"
-        text = text+nom_var+" = "+`var[nom_var]`+";\n"
-    return text
-
-#=============================================================================================
-# Accès au catalogue des brides standards
-# (les brides standards sont décrites dans le fichier Data_Brides.py)
-#=============================================================================================
-
-
-
-# Imprime tout le catalogue des brides standards disponibles dans un fichier texte
-def print_bride_std(nom_fichier):
-    text = bride_std()
-    # Ouverture du fichier
-    finfo=open(nom_fichier,'w')
-    # Ecriture des infos
-    finfo.write(text)
-    # Fermeture du fichier
-    finfo.close()
-
-# Catalogue complet des brides standards disponibles
-def bride_std():
-    # Ligne d'info
-    text = "Liste des brides standards avec leurs dimensions\n"
-    # Première ligne
-    text = text+"\t"
-    for nom_variable in dico_var_geo.keys():      
-        text = text + nom_variable+"\t\t"
-    text = text + "\n"
-    # Lignes suivantes
-    for nom_bride in dico_bride_std.keys():
-        bride = dico_bride_std[nom_bride]    
-        text = text + nom_bride + '\t'
-        for nom_var in dico_var_geo.keys():
-            chaine = "%f" % (bride[nom_var])
-            text = text+chaine+"\t"               
-        text = text + "\n"
-    return text
diff --git a/Aster/Cata/cataSTA81/Macro/macr_cara_poutre_ops.py b/Aster/Cata/cataSTA81/Macro/macr_cara_poutre_ops.py
deleted file mode 100644 (file)
index 8919549..0000000
+++ /dev/null
@@ -1,817 +0,0 @@
-#@ MODIF macr_cara_poutre_ops Macro  DATE 27/02/2006   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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
-
-def macr_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
-                              GROUP_MA,ORIG_INER,**args):
-  """
-     Ecriture de la macro MACR_CARA_POUTRE
-  """
-  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
-  LIRE_MAILLAGE   =self.get_cmd('LIRE_MAILLAGE')
-  DEFI_GROUP      =self.get_cmd('DEFI_GROUP')
-  CREA_MAILLAGE   =self.get_cmd('CREA_MAILLAGE')
-  AFFE_MODELE     =self.get_cmd('AFFE_MODELE')
-  DEFI_MATERIAU   =self.get_cmd('DEFI_MATERIAU')
-  AFFE_MATERIAU   =self.get_cmd('AFFE_MATERIAU')
-  DEFI_FONCTION   =self.get_cmd('DEFI_FONCTION')
-  DEFI_CONSTANTE  =self.get_cmd('DEFI_CONSTANTE')
-  AFFE_CHAR_THER  =self.get_cmd('AFFE_CHAR_THER')
-  AFFE_CHAR_THER_F=self.get_cmd('AFFE_CHAR_THER_F')
-  THER_LINEAIRE   =self.get_cmd('THER_LINEAIRE')
-  CALC_VECT_ELEM  =self.get_cmd('CALC_VECT_ELEM')
-  CALC_MATR_ELEM  =self.get_cmd('CALC_MATR_ELEM')
-  NUME_DDL        =self.get_cmd('NUME_DDL')
-  ASSE_VECTEUR    =self.get_cmd('ASSE_VECTEUR')
-  POST_ELEM       =self.get_cmd('POST_ELEM')
-  CALC_ELEM       =self.get_cmd('CALC_ELEM')
-  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')
-  CREA_TABLE      =self.get_cmd('CREA_TABLE')
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  # Le concept sortant (de type 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:
-#        UTMESS('F', "MACR_CARA_POUTRE", "Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU")
-#
-  __nomlma=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,)
-
-  __nomamo=AFFE_MODELE(MAILLAGE=__nomlma,
-                       AFFE=_F(TOUT='OUI',
-                               PHENOMENE='MECANIQUE',
-                               MODELISATION='D_PLAN',),   )
-
-  __nomdma=DEFI_MATERIAU(ELAS=_F(E=1.0,NU=0.,RHO=1.0),)
-
-
-  __nomama=AFFE_MATERIAU(MAILLAGE=__nomlma,
-                         AFFE=_F(TOUT='OUI',
-                                 MATER=__nomdma,),  )
-
-
-# --- CALCUL DES CARACTERISTIQUES GEOMETRIQUES DE LA SECTION :
-#     ------------------------------------------------------
-
-  motsimps={}
-  if GROUP_MA  : motsimps['GROUP_MA']  = GROUP_MA
-  if SYME_X    : motsimps['SYME_X']    = SYME_X
-  if SYME_Y    : motsimps['SYME_Y']    = SYME_Y
-  motsimps['ORIG_INER'] = ORIG_INER
-  mfact=_F(TOUT='OUI',**motsimps)
-  __cageo=POST_ELEM(MODELE=__nomamo,
-                    CHAM_MATER=__nomama,
-                    CARA_GEOM=mfact    )
-# nb  :  si GROUP_MA n existe pas : le mot clé est ignoré
-
-#
-#     ==================================================================
-# --- = CALCUL DE LA CONSTANTE DE TORSION SUR TOUT LE MAILLAGE         =
-# --- =     OU DU  CENTRE DE TORSION/CISAILLEMENT                      =
-# --- =        DES COEFFICIENTS DE CISAILLEMENT                        =
-# --- =     ET DE L INERTIE DE GAUCHISSEMENT                           =
-# --- =        DU RAYON DE TORSION SUR TOUT LE MAILLAGE 
-# --- = ON CREE UN MODELE PLAN 2D THERMIQUE REPRESENTANT LA SECTION    =
-# --- = DE LA POUTRE CAR ON A A RESOUDRE DES E.D.P. AVEC DES LAPLACIENS=
-#     ==================================================================
-
-  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 :
-#     ---------------------------------------------------------
-     motscles={}
-     if type(GROUP_MA_BORD)==types.StringType:
-        motscles['CREA_GROUP_NO']=_F(GROUP_MA=GROUP_MA_BORD,)
-     else:
-        motscles['CREA_GROUP_NO']=[]
-        for grma in GROUP_MA_BORD:
-           motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=grma,))
-     __nomlma=DEFI_GROUP(reuse=__nomlma,
-                         MAILLAGE=__nomlma,
-                         **motscles)
-  
-
-
-# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES
-# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL
-# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION :
-#     ---------------------------------------------------------------
-
-     __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma,
-                            REPERE=_F(TABLE=__cageo,
-                                      NOM_ORIG='CDG',  ),  )
-
-# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
-# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE :
-#     ------------------------------------------------------
-
-     __nomoth=AFFE_MODELE(MAILLAGE=__nomapi,
-                          AFFE=_F(TOUT='OUI',
-                                  PHENOMENE='THERMIQUE',
-                                  MODELISATION='PLAN',), )
-
-# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON  DEFINIT UN
-# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT :
-# --- LAMBDA = 1, RHO*CP = 0 :
-#     ----------------------
-
-     __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0,RHO_CP=0.,),)
-
-# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT :
-#     ---------------------------------------------------------
-
-     __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi,
-                            AFFE=_F(TOUT='OUI',
-                                    MATER=__nomath,),   )
-
-#
-#     ------------------------------------------------------------
-# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION         -
-# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2            -
-# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION :    -
-# --- -    LAPLACIEN(PHI) = -2 DANS LA SECTION                   -
-# --- -    PHI = 0 SUR LE CONTOUR :                              -
-#     ------------------------------------------------------------
-#
-# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR
-# --- DE LA SECTION
-# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION :
-#     -------------------------------------------------------
-
-     motscles={}
-     if args.has_key('GROUP_MA_INTE'):
-        if args['GROUP_MA_INTE'] != None :
-           motscles['LIAISON_UNIF']=_F(GROUP_MA=args['GROUP_MA_INTE'],DDL='TEMP'),
-     __chart1=AFFE_CHAR_THER(MODELE=__nomoth,
-                             TEMP_IMPO   =_F(GROUP_NO=GROUP_MA_BORD,
-                                             TEMP=0. ),
-                             SOURCE      =_F(TOUT='OUI',
-                                             SOUR=2.0),
-                             **motscles  )
-
-# ---  POUR CHAQUE TROU DE LA SECTION :
-# ---  .ON A IMPOSE QUE PHI EST CONSTANT SUR LE CONTOUR INTERIEUR
-# ---   EN FAISANT LE LIAISON_UNIF DANS LE AFFE_CHAR_THER PRECEDENT
-# ---  .ON IMPOSE EN PLUS D(PHI)/DN = 2*AIRE(TROU)/L(TROU)
-# ---        OU D/DN DESIGNE LA DERIVEE PAR RAPPORT A LA
-# ---        NORMALE ET L DESIGNE LA LONGUEUR DU BORD DU TROU :
-#     -------------------------------------------------------
-
-     if args.has_key('GROUP_MA_INTE'):
-        lgmaint=args['GROUP_MA_INTE']
-        if lgmaint != None :
-           __tbaire=POST_ELEM(MODELE=__nomoth,
-                           AIRE_INTERNE=_F(GROUP_MA_BORD=args['GROUP_MA_INTE'],),  )
-
-           motscles={}
-           motscles['FLUX_REP']=[]
-        
-           if type(lgmaint)==types.StringType:
-              motscles['FLUX_REP']=_F(GROUP_MA=args['GROUP_MA_INTE'],CARA_TORSION=__tbaire)
-           else:
-              motscles['FLUX_REP']=[]
-              for grma in lgmaint:
-                 motscles['FLUX_REP'].append(_F(GROUP_MA=grma,CARA_TORSION=__tbaire),)
-           __chart2=AFFE_CHAR_THER(MODELE=__nomoth,**motscles)
-
-# --- RESOLUTION DE LAPLACIEN(PHI) = -2
-# --- AVEC PHI = 0 SUR LE CONTOUR :
-#     ----------------------------------------
-
-     motscles={}
-     motscles['EXCIT']=[_F(CHARGE=__chart1,),]
-     if args.has_key('GROUP_MA_INTE'):
-        if lgmaint != None :
-           motscles['EXCIT'].append(_F(CHARGE=__chart2,))
-     __tempe1=THER_LINEAIRE(MODELE=__nomoth,
-                            CHAM_MATER=__chmath,
-                            SOLVEUR=_F(STOP_SINGULIER='NON',),
-                            **motscles   )
-
-#
-#     ----------------------------------------------
-# --- - CALCUL DU  CENTRE DE TORSION/CISAILLEMENT  -
-# --- - ET DES COEFFICIENTS DE CISAILLEMENT :      -
-#     ----------------------------------------------
-#
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Y :
-#     --------------------------
-
-     __fnsec1=DEFI_FONCTION(NOM_PARA='X',
-                            VALE=(0.,0.,10.,10.),
-                            PROL_DROITE='LINEAIRE',
-                            PROL_GAUCHE='LINEAIRE',
-                           )
-
-     __fnsec0=DEFI_CONSTANTE(VALE=0.,)
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION :
-#     --------------------------------------------------
-
-
-     motscles={}
-     if args.has_key('NOEUD'):
-        motscles['TEMP_IMPO']=(_F(NOEUD=args['NOEUD'],TEMP=__fnsec0))
-     __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth,
-                               SOURCE=_F(TOUT='OUI',
-                                         SOUR=__fnsec1,),
-                               **motscles   )
-
-# --- RESOLUTION DE     LAPLACIEN(PHI) = -Y
-# ---              AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-#     ------------------------------------------------
-
-     __tempe2=THER_LINEAIRE(MODELE=__nomoth,
-                            CHAM_MATER=__chmath,
-                            EXCIT=_F(CHARGE=__chart2,), 
-                            SOLVEUR=_F(STOP_SINGULIER='NON',),
-                           )
-
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Z :
-#     --------------------------
-
-     __fnsec2=DEFI_FONCTION(NOM_PARA='Y',
-                            VALE=(0.,0.,10.,10.),
-                            PROL_DROITE='LINEAIRE',
-                            PROL_GAUCHE='LINEAIRE',
-                           )
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION :
-#     --------------------------------------------------
-
-     motscles={}
-     if args.has_key('NOEUD'):
-        motscles['TEMP_IMPO']=_F(NOEUD=args['NOEUD'],TEMP=__fnsec0)
-     __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth,
-                               SOURCE=_F(TOUT='OUI',
-                                         SOUR=__fnsec2,),
-                               **motscles)
-
-# --- RESOLUTION DE     LAPLACIEN(PHI) = -Z
-# ---              AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-#     ------------------------------------------------
-
-     __tempe3=THER_LINEAIRE(MODELE=__nomoth,
-                            CHAM_MATER=__chmath,
-                            EXCIT=_F(CHARGE=__chart3,), 
-                            SOLVEUR=_F(STOP_SINGULIER='NON',),
-                           )
-
-# --- CALCUL DU RAYON DE TORSION :
-#     --------------------------
-
-#    CALCUL DU RAYON DE TORSION EXTERNE : rtext
-
-     __tempe1=CALC_ELEM(reuse=__tempe1,
-                       RESULTAT=__tempe1,
-                       MODELE=__nomoth,
-                       CHAM_MATER=__chmath,
-                       TOUT_ORDRE='OUI',
-                       OPTION='FLUX_ELNO_TEMP',
-                      )
-
-     __chem=INTE_MAIL_2D(MAILLAGE=__nomapi,
-                         DEFI_CHEMIN=_F(GROUP_MA=GROUP_MA_BORD),
-                         INFO=2,)
-
-     __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM',
-                             CHEMIN=__chem,
-                             RESULTAT=__tempe1,
-                             NOM_CHAM='FLUX_ELNO_TEMP',
-                             TRAC_NOR='OUI',
-                             NOM_CMP=('FLUX','FLUY'),
-                             OPERATION='MOYENNE'))
-
-     __m1=abs(__flun['TRAC_NOR',3])
-     __m2=abs(__flun['TRAC_NOR',4])
-     __rtext=max(__m1,__m2)
-     
- #    CALCUL DU RAYON DE TORSION : rt
- #    rt = max ( rtext , 2*AIRE(TROU)/L(TROU) )
-     if args.has_key('GROUP_MA_INTE'):
-       if args['GROUP_MA_INTE'] != None :
-         if type(args['GROUP_MA_INTE'])==types.StringType :
-           l_group_ma_inte=[args['GROUP_MA_INTE'],]
-         else:
-           l_group_ma_inte=args['GROUP_MA_INTE']
-         for i in range(0,len(l_group_ma_inte)):
-           __chem=INTE_MAIL_2D(MAILLAGE=__nomapi,
-                               DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[i]),
-                               INFO=2,)
-           __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM',
-                                          CHEMIN=__chem,
-                                          RESULTAT=__tempe1,
-                                          NOM_CHAM='FLUX_ELNO_TEMP',
-                                          TRAC_NOR='OUI',
-                                          NOM_CMP=('FLUX','FLUY'),
-                                          OPERATION='MOYENNE'))
-           __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2.
-           if __m1 > __rtext :
-             __rtext=__m1
-
-     __rt=__rtext
-         
-# --- CALCUL DE LA CONSTANTE DE TORSION :
-#     ---------------------------------
-
-     motscles={}
-     if args.has_key('GROUP_MA_INTE'):
-        lgmaint=args['GROUP_MA_INTE']
-        if lgmaint != None :
-           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=__cageo,
-                                    LAPL_PHI=__tempe1,
-                                    RT=__rt,  
-                                    TOUT='OUI',
-                                    OPTION='CARA_TORSION',      )
-     __cator=POST_ELEM(MODELE=__nomoth,
-                       CHAM_MATER=__chmath,
-                       **motscles  )
-
-# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
-# --- CENTRE DE CISAILLEMENT/TORSION :
-#     ------------------------------
-
-     __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',),  )
-     
-
-#
-#     ------------------------------------------------------------
-# --- - CALCUL DE L INERTIE DE GAUCHISSEMENT PAR RESOLUTION  DE  -
-# --- -    LAPLACIEN(OMEGA) = 0     DANS LA SECTION              -
-# --- -    AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ   SUR LE               -
-# --- -    CONTOUR DE LA SECTION                                 -
-# --- -    NY ET NZ SONT LES COMPOSANTES DU VECTEUR N NORMAL     -
-# --- -    A CE CONTOUR                                          -
-# --- -    ET SOMME_S(OMEGA.DS) = 0                              -
-# --- -    OMEGA EST LA FONCTION DE GAUCHISSEMENT                -
-# --- -    L INERTIE DE GAUCHISSEMENT EST SOMME_S(OMEGA**2.DS)   -
-#     ------------------------------------------------------------
-#
-# --- CREATION D UN MAILLAGE DONT LES COORDONNEES SONT EXPRIMEES
-# --- DANS LE REPERE PRINCIPAL D INERTIE MAIS AVEC COMME ORIGINE
-# --- LE CENTRE DE TORSION DE LA SECTION, ON VA DONC UTILISER
-# --- LE MAILLAGE DE NOM NOMAPI DONT LES COORDONNEES SONT
-# --- EXPRIMEES DANS LE REPERE PRINCIPAL D'INERTIE, L'ORIGINE
-# --- ETANT LE CENTRE DE GRAVITE DE LA SECTION (QUI EST DONC
-# --- A CHANGER)  :
-#     ----------
-
-     __nomapt=CREA_MAILLAGE(MAILLAGE=__nomapi,
-                            REPERE=_F(TABLE=__cacis,
-                                      NOM_ORIG='TORSION',)  )
-
-# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
-# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE :
-#     ------------------------------------------------------
-
-     __nomot2=AFFE_MODELE(MAILLAGE=__nomapt,
-                          AFFE=_F(TOUT='OUI',
-                                  PHENOMENE='THERMIQUE',
-                                  MODELISATION='PLAN', )  )
-
-# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT :
-#     ---------------------------------------------------------
-
-     __chmat2=AFFE_MATERIAU(MAILLAGE=__nomapt,
-                            AFFE=_F(TOUT='OUI',
-                                    MATER=__nomath, ), )
-
-# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR
-# --- LA COMPOSANTE SELON Y DU FLUX A IMPOSER SUR LE CONTOUR
-# --- PAR UNE FONCTION EGALE A -X :
-#     ---------------------------
-
-     __fnsec3=DEFI_FONCTION(NOM_PARA='X',
-                            VALE=(0.,0.,10.,-10.),
-                            PROL_DROITE='LINEAIRE',
-                            PROL_GAUCHE='LINEAIRE',
-                           )
-
-# --- POUR LE CALCUL DE L INERTIE DE GAUCHISSEMENT, ON VA DEFINIR
-# --- LA COMPOSANTE SELON X DU FLUX A IMPOSER SUR LE CONTOUR
-# --- PAR UNE FONCTION EGALE A Y :
-#     --------------------------
-
-     __fnsec4=DEFI_FONCTION(NOM_PARA='Y',
-                            VALE=(0.,0.,10.,10.),
-                            PROL_DROITE='LINEAIRE',
-                            PROL_GAUCHE='LINEAIRE',
-                           )
-
-# --- DANS LE BUT D IMPOSER LA RELATION LINEAIRE ENTRE DDLS
-# ---  SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION
-# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE
-# --- N = 0, N ETANT L EFFORT NORMAL)
-# --- ON CALCULE LE VECTEUR DE CHARGEMENT DU A UN TERME SOURCE EGAL
-# --- A 1., LES TERMES DE CE VECTEUR SONT EGAUX A
-# --- SOMME_SECTION(NI.DS) ET SONT DONC LES COEFFICIENTS DE
-# --- LA RELATION LINEAIRE A IMPOSER.
-# --- ON DEFINIT DONC UN CHARGEMENT DU A UN TERME SOURCE EGAL A 1 :
-#     -----------------------------------------------------------
-
-     __chart4=AFFE_CHAR_THER(MODELE=__nomot2,
-                             SOURCE=_F(TOUT='OUI',
-                                       SOUR=1.0),  )
-
-# --- ON CALCULE LE VECT_ELEM DU AU CHARGEMENT PRECEDENT
-# --- IL S AGIT DES VECTEURS ELEMENTAIRES DONT LE TERME
-# --- AU NOEUD COURANT I EST EGAL A SOMME_SECTION(NI.DS) :
-#     --------------------------------------------------
-
-     __vecel=CALC_VECT_ELEM(CHARGE=__chart4,
-                            OPTION='CHAR_THER'
-                            )
-
-# --- ON CALCULE LE MATR_ELEM DES MATRICES ELEMENTAIRES
-# --- DE CONDUCTIVITE UNIQUEMENT POUR GENERER LE NUME_DDL
-# --- SUR-LEQUEL S APPUIERA LE CHAMNO UTILISE POUR ECRIRE LA
-# --- RELATION LINEAIRE ENTRE DDLS :
-#     ----------------------------
-
-     __matel=CALC_MATR_ELEM(MODELE=__nomot2,
-                            CHAM_MATER=__chmat2,
-                            CHARGE=__chart4,
-                            OPTION='RIGI_THER',)
-
-# --- ON DEFINIT LE NUME_DDL ASSOCIE AU MATR_ELEM DEFINI
-# --- PRECEDEMMENT POUR CONSTRUIRE LE CHAMNO UTILISE POUR ECRIRE LA
-# --- RELATION LINEAIRE ENTRE DDLS :
-#     ----------------------------
-
-     __numddl=NUME_DDL(MATR_RIGI=__matel,
-                       METHODE='LDLT',    )
-
-# --- ON CONSTRUIT LE CHAMNO QUI VA ETRE UTILISE POUR ECRIRE LA
-# --- RELATION LINEAIRE ENTRE DDLS :
-#     ----------------------------
-
-     __chamno=ASSE_VECTEUR(VECT_ELEM=__vecel,
-                           NUME_DDL=__numddl,    )
-
-# --- ON IMPOSE LA RELATION LINEAIRE ENTRE DDLS
-# ---  SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION
-# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE
-# --- N = 0, N ETANT L EFFORT NORMAL)
-# --- POUR IMPOSER CETTE RELATION ON PASSE PAR LIAISON_CHAMNO,
-# --- LES TERMES DU CHAMNO (I.E. SOMME_SECTION(NI.DS))
-# --- SONT LES COEFFICIENTS DE LA RELATION LINEAIRE :
-#     ---------------------------------------------
-
-     __chart5=AFFE_CHAR_THER(MODELE=__nomot2,
-                             LIAISON_CHAMNO=_F(CHAM_NO=__chamno,
-                                               COEF_IMPO=0.),    )
-
-# --- LE CHARGEMENT EST UN FLUX REPARTI NORMAL AU CONTOUR
-# --- DONT LES COMPOSANTES SONT +Z (I.E. +Y) ET -Y (I.E. -X)
-# --- SELON LA DIRECTION NORMALE AU CONTOUR :
-#     -------------------------------------
-
-     __chart6=AFFE_CHAR_THER_F(MODELE=__nomot2,
-                               FLUX_REP=_F(GROUP_MA=GROUP_MA_BORD,
-                                           FLUX_X  =__fnsec4,
-                                           FLUX_Y  =__fnsec3,),    )
-
-# --- RESOLUTION DE     LAPLACIEN(OMEGA) = 0
-# --- AVEC D(OMEGA)/D(N) = Z*NY-Y*NZ   SUR LE CONTOUR DE LA SECTION
-# --- ET SOMME_SECTION(OMEGA.DS) = 0 ( CETTE CONDITION
-# --- VENANT DE L EQUATION D EQUILIBRE SELON L AXE DE LA POUTRE
-# --- N = 0, N ETANT L EFFORT NORMAL)  :
-#     -------------------------------
-
-     __tempe4=THER_LINEAIRE(MODELE=__nomot2,
-                            CHAM_MATER=__chmat2,
-                            EXCIT=(_F(CHARGE=__chart5,),
-                                   _F(CHARGE=__chart6,),),
-                            SOLVEUR=_F(METHODE='LDLT',
-                                       RENUM='SANS',
-                                       STOP_SINGULIER='NON',),   )
-    
-# --- CALCUL DE L INERTIE DE GAUCHISSEMENT :
-#     -------------------------------------
-
-     nomres=POST_ELEM(MODELE=__nomot2,
-                      CHAM_MATER=__chmat2,
-                      CARA_POUTRE=_F(CARA_GEOM=__cacis,
-                                     LAPL_PHI=__tempe4,
-                                     TOUT='OUI',
-                                     OPTION='CARA_GAUCHI'),  )
-
-     
-#
-#     ==================================================================
-# --- = CALCUL DE LA CONSTANTE DE TORSION SUR CHAQUE GROUPE            =
-# --- =     ET DU RAYON DE TORSION SUR CHAQUE GROUPE                   =
-# --- =        DU  CENTRE DE TORSION/CISAILLEMENT                      =
-# --- =        DES COEFFICIENTS DE CISAILLEMENT                        =
-#     ==================================================================
-
-
-#
-
-
-  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:
-        l_group_ma_bord= GROUP_MA_BORD
-     if type(GROUP_MA)==types.StringType :
-        l_group_ma=[GROUP_MA,]
-     else:
-        l_group_ma= GROUP_MA
-
-     if args.has_key('NOEUD'):
-       if type(args['NOEUD'])==types.StringType :
-          l_noeud=[args['NOEUD'],]
-       else:
-          l_noeud= args['NOEUD']
-
-     if len(l_group_ma)!=len(l_group_ma_bord):
-        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)):
-        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
-# --- ON POURRA APPLIQUER DES CONDITIONS DE TEMPERATURE IMPOSEE :
-#     ---------------------------------------------------------
-
-        __nomlma=DEFI_GROUP(reuse=__nomlma,
-                            MAILLAGE=__nomlma,
-                            CREA_GROUP_NO=_F(GROUP_MA=l_group_ma_bord[i],)  )
-
-
-# --- CREATION D UN MAILLAGE IDENTIQUE AU PREMIER A CECI PRES
-# --- QUE LES COORDONNEES SONT EXPRIMEES DANS LE REPERE PRINCIPAL
-# --- D INERTIE DONT L ORIGINE EST LE CENTRE DE GRAVITE DE LA SECTION :
-#     ---------------------------------------------------------------
-
-        __nomapi=CREA_MAILLAGE(MAILLAGE=__nomlma,
-                               REPERE=_F(TABLE=__cageo,
-                                         NOM_ORIG='CDG',
-                                         GROUP_MA=l_group_ma[i],  ),  )
-
-# --- AFFECTATION DU PHENOMENE 'THERMIQUE' AU MODELE EN VUE DE
-# --- LA CONSTRUCTION D UN OPERATEUR LAPLACIEN SUR CE MODELE :
-#     ------------------------------------------------------
-
-        __nomoth=AFFE_MODELE(MAILLAGE=__nomapi,
-                             AFFE=_F(GROUP_MA=l_group_ma[i],
-                                     PHENOMENE='THERMIQUE',
-                                     MODELISATION='PLAN',  )  )
-
-# --- POUR LA CONSTRUCTION DU LAPLACIEN, ON  DEFINIT UN
-# --- PSEUDO-MATERIAU DONT LES CARACTERISTIQUES THERMIQUES SONT :
-# --- LAMBDA = 1, RHO*CP = 0 :
-#     ----------------------
-
-        __nomath=DEFI_MATERIAU(THER=_F(LAMBDA=1.0,
-                                       RHO_CP=0.0,  ),  )
-
-# --- DEFINITION D UN CHAM_MATER A PARTIR DU MATERIAU PRECEDENT :
-#     ---------------------------------------------------------
-
-        __chmath=AFFE_MATERIAU(MAILLAGE=__nomapi,
-                               AFFE=_F(TOUT='OUI',
-                                       MATER=__nomath ),  )
-
-#
-#     ------------------------------------------------------------
-# --- - CALCUL DE LA CONSTANTE DE TORSION PAR RESOLUTION         -
-# --- - D UN LAPLACIEN AVEC UN TERME SOURCE EGAL A -2            -
-# --- - L INCONNUE ETANT NULLE SUR LE CONTOUR DE LA SECTION :    -
-# --- -    LAPLACIEN(PHI) = -2 DANS LA SECTION                   -
-# --- -    PHI = 0 SUR LE CONTOUR :                              -
-#     ------------------------------------------------------------
-#
-# --- ON IMPOSE LA VALEUR 0 A L INCONNUE SCALAIRE SUR LE CONTOUR
-# --- DE LA SECTION
-# --- ET ON A UN TERME SOURCE EGAL A -2 DANS TOUTE LA SECTION :
-#     -------------------------------------------------------
-
-        __chart1=AFFE_CHAR_THER(MODELE=__nomoth,
-                                TEMP_IMPO=_F(GROUP_NO=l_group_ma_bord[i],
-                                             TEMP=0.0       ),
-                                SOURCE=_F(TOUT='OUI',
-                                          SOUR=2.0       )          )
-
-# --- RESOLUTION DE     LAPLACIEN(PHI) = -2
-# ---              AVEC PHI = 0 SUR LE CONTOUR :
-#     ----------------------------------------
-
-        __tempe1=THER_LINEAIRE(MODELE=__nomoth,
-                               CHAM_MATER=__chmath,
-                               EXCIT=_F(CHARGE=__chart1, ),
-                               SOLVEUR=_F(STOP_SINGULIER='NON',)    )
-
-#
-#     ----------------------------------------------
-# --- - CALCUL DU  CENTRE DE TORSION/CISAILLEMENT  -
-# --- - ET DES COEFFICIENTS DE CISAILLEMENT :      -
-#     ----------------------------------------------
-#
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Y :
-#     --------------------------
-
-        __fnsec1=DEFI_FONCTION(NOM_PARA='X',
-                               VALE=(0.,0.,10.,10.),
-                               PROL_DROITE='LINEAIRE',
-                               PROL_GAUCHE='LINEAIRE',        )
-
-        __fnsec0=DEFI_CONSTANTE(VALE=0.,)
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Y DANS TOUTE LA SECTION :
-#     --------------------------------------------------
-
-        __chart2=AFFE_CHAR_THER_F(MODELE=__nomoth,
-                                  TEMP_IMPO=_F(NOEUD=l_noeud[i],
-                                               TEMP=__fnsec0),
-                                  SOURCE=_F(TOUT='OUI',
-                                            SOUR=__fnsec1)       )
-
-# --- RESOLUTION DE     LAPLACIEN(PHI) = -Y
-# ---              AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-#     ------------------------------------------------
-
-        __tempe2=THER_LINEAIRE(MODELE=__nomoth,
-                               CHAM_MATER=__chmath,
-                               EXCIT=_F(CHARGE=__chart2, ),
-                               SOLVEUR=_F(STOP_SINGULIER='NON',)         )
-
-# --- POUR LE CALCUL DES CONSTANTES DE CISAILLEMENT, ON VA DEFINIR
-# --- UN PREMIER TERME SOURCE, SECOND MEMBRE DE L EQUATION DE LAPLACE
-# --- PAR UNE FONCTION EGALE A Z :
-#     --------------------------
-
-        __fnsec2=DEFI_FONCTION(NOM_PARA='Y',
-                               VALE=(0.,0.,10.,10.),
-                               PROL_DROITE='LINEAIRE',
-                               PROL_GAUCHE='LINEAIRE',        )
-
-# --- LE TERME SOURCE CONSTITUANT LE SECOND MEMBRE DE L EQUATION
-# --- DE LAPLACE EST PRIS EGAL A Z DANS TOUTE LA SECTION :
-#     --------------------------------------------------
-
-        __chart3=AFFE_CHAR_THER_F(MODELE=__nomoth,
-                                  TEMP_IMPO=_F(NOEUD=l_noeud[i],
-                                               TEMP=__fnsec0),
-                                  SOURCE=_F(TOUT='OUI',
-                                            SOUR=__fnsec2)       )
-
-# --- RESOLUTION DE     LAPLACIEN(PHI) = -Z
-# ---              AVEC D(PHI)/D(N) = 0 SUR LE CONTOUR :
-#     ------------------------------------------------
-
-        __tempe3=THER_LINEAIRE(MODELE=__nomoth,
-                               CHAM_MATER=__chmath,
-                               EXCIT=_F(CHARGE=__chart3, ),
-                               SOLVEUR=_F(STOP_SINGULIER='NON',)         )
-        
-# --- CALCUL DU RAYON DE TORSION :
-#     --------------------------
-
-#    CALCUL DU RAYON DE TORSION EXTERNE : rtext
-
-        __tempe1=CALC_ELEM(reuse=__tempe1,
-                            RESULTAT=__tempe1,
-                            MODELE=__nomoth,
-                            CHAM_MATER=__chmath,
-                            TOUT_ORDRE='OUI',
-                            OPTION='FLUX_ELNO_TEMP',
-                           )
-
-        __chem=INTE_MAIL_2D(MAILLAGE=__nomapi,
-                            DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_bord[i]),
-                            INFO=2,)
-
-        __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM',
-                                       CHEMIN=__chem,
-                                       RESULTAT=__tempe1,
-                                       NOM_CHAM='FLUX_ELNO_TEMP',
-                                       TRAC_NOR='OUI',
-                                       NOM_CMP=('FLUX','FLUY'),
-                                       OPERATION='MOYENNE'))
-
-        __m1=abs(__flun['TRAC_NOR',3])
-        __m2=abs(__flun['TRAC_NOR',4])
-        __rtext=max(__m1,__m2)
-
-#    CALCUL DU RAYON DE TORSION : rt
-#    rt = max ( rtext , 2*AIRE(TROU)/L(TROU) )
-
-        if args.has_key('GROUP_MA_INTE'):
-          if args['GROUP_MA_INTE'] != None :
-            if type(args['GROUP_MA_INTE'])==types.StringType :
-              l_group_ma_inte=[args['GROUP_MA_INTE'],]
-            else:
-              l_group_ma_inte=args['GROUP_MA_INTE']
-            for j in range(0,len(l_group_ma_inte)):
-              __chem=INTE_MAIL_2D(MAILLAGE=__nomapi,
-                                  DEFI_CHEMIN=_F(GROUP_MA=l_group_ma_inte[j]),
-                                  INFO=2,)
-              __flun=POST_RELEVE_T(ACTION=_F(INTITULE='FLUX_NORM',
-                                             CHEMIN=__chem,
-                                             RESULTAT=__tempe1,
-                                             NOM_CHAM='FLUX_ELNO_TEMP',
-                                             TRAC_NOR='OUI',
-                                             NOM_CMP=('FLUX','FLUY'),
-                                             OPERATION='MOYENNE'))        
-              __m1=(abs(__flun['TRAC_NOR',3])+abs(__flun['TRAC_NOR',4]))/2.
-              if __m1 > __rtext :
-                __rtext=__m1
-
-        __rt=__rtext
-                
-# --- CALCUL DE LA CONSTANTE DE 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 :
-#     ------------------------------
-
-        __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
diff --git a/Aster/Cata/cataSTA81/Macro/macr_ecla_pg_ops.py b/Aster/Cata/cataSTA81/Macro/macr_ecla_pg_ops.py
deleted file mode 100644 (file)
index 8bfada7..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#@ MODIF macr_ecla_pg_ops Macro  DATE 09/11/2004   AUTEUR VABHHTS J.PELLET 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-########################################################################
-def macr_ecla_pg_ops(self,RESULTAT,MAILLAGE,RESU_INIT,MODELE_INIT,
-                     TOUT, GROUP_MA, MAILLE,
-                     SHRINK, TAILLE_MIN,
-                     NOM_CHAM, TOUT_ORDRE, NUME_ORDRE, LIST_ORDRE, INST, LIST_INST, PRECISION, CRITERE,  
-                     **args):
-    """
-       Ecriture de la macro macr_ecla_pg
-    """
-    import os, string
-    from Accas import _F
-    from Noyau.N_utils import AsType
-    ier=0
-
-    # On importe les definitions des commandes a utiliser dans la macro
-    CREA_MAILLAGE  =self.get_cmd('CREA_MAILLAGE')
-    CREA_RESU      =self.get_cmd('CREA_RESU')
-
-
-    # La macro compte pour 1 dans la numerotation des commandes
-    self.set_icmd(1)
-    
-
-    # Appel à CREA_MAILLAGE :
-    motscles={}
-    if   TOUT      : motscles['TOUT']       =TOUT
-    if   GROUP_MA  : motscles['GROUP_MA']   =GROUP_MA
-    if   MAILLE    : motscles['MAILLE']     =MAILLE
-    
-    self.DeclareOut('ma2',MAILLAGE)
-    ma2=CREA_MAILLAGE(ECLA_PG=_F( MODELE = MODELE_INIT,  NOM_CHAM=NOM_CHAM,
-                                  SHRINK = SHRINK, TAILLE_MIN=TAILLE_MIN, **motscles ));
-                                   
-                                   
-
-    # Appel à CREA_RESU :
-    typ2=AsType(RESU_INIT).__name__ 
-    if   TOUT_ORDRE    : motscles['TOUT_ORDRE']     =TOUT_ORDRE
-    if   NUME_ORDRE    : motscles['NUME_ORDRE']     =NUME_ORDRE
-    if   LIST_ORDRE    : motscles['LIST_ORDRE']     =LIST_ORDRE
-    if   LIST_INST     : motscles['LIST_INST']      =LIST_INST
-    if   INST          : motscles['INST']           =INST
-    if   TOUT_ORDRE    : motscles['TOUT_ORDRE']     =TOUT_ORDRE
-
-    self.DeclareOut('resu2',RESULTAT)
-    resu2=CREA_RESU( OPERATION='ECLA_PG', TYPE_RESU=string.upper(typ2),
-                    ECLA_PG=_F( MODELE_INIT= MODELE_INIT, RESU_INIT=RESU_INIT, NOM_CHAM=NOM_CHAM,
-                                MAILLAGE= ma2, **motscles ));
-    return ier                                                           
-############################################################################################
-
diff --git a/Aster/Cata/cataSTA81/Macro/macr_fiab_impr_ops.py b/Aster/Cata/cataSTA81/Macro/macr_fiab_impr_ops.py
deleted file mode 100644 (file)
index 08ac8d1..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#@ MODIF macr_fiab_impr_ops Macro  DATE 24/01/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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
-#
-def macr_fiab_impr_ops(self, INFO,
-                       TABLE_CIBLE, NOM_PARA_CIBLE, GRADIENTS, **args):
-#
-#
-#  1. args est le dictionnaire des arguments
-#    args.keys() est la liste des mots-clés
-#    args.keys()[0] est la premiere valeur de cette liste
-#    args.keys()[1:] est la liste des valeurs suivantes dans cette liste
-#    args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante.
-#
-  """ Macro-commande réalisant l'impression des valeurs pour le logiciel de fiabilite. """
-#
-# On charge les modules nécessaires
-  from Accas import _F
-#
-#____________________________________________________________________
-#
-# 1. Préalables
-#____________________________________________________________________
-#
-  erreur = 0
-#
-# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes
-#
-  self.set_icmd(1)
-#
-# 1.2 ==> On importe les définitions des commandes Aster utilisées
-#         dans la macro
-#
-  DEFI_FICHIER = self.get_cmd("DEFI_FICHIER")
-  IMPR_TABLE   = self.get_cmd("IMPR_TABLE")
-#
-# 1.3. ==> Des constantes
-#          Atention : le numéro d'unité utilisé ici et celui
-#                     utlisé dans le python d'échange lance_aster_5
-#                     doivent correspondre.
-#
-  Unite_Fichier_ASTER_vers_FIABILITE = 91
-  Nom_Symbolique_Fichier_ASTER_vers_FIABILITE = "ASTER_vers_FIABILITE"
-  FORMAT_R="1PE17.10"
-#____________________________________________________________________
-#
-# 2. Définition d'un fichier d'échange
-#____________________________________________________________________
-# 
-  DEFI_FICHIER ( ACTION= "ASSOCIER",
-#                FICHIER = Nom_Symbolique_Fichier_ASTER_vers_FIABILITE,
-                 UNITE = Unite_Fichier_ASTER_vers_FIABILITE,
-                 TYPE = "ASCII",
-                 INFO = INFO )
-#____________________________________________________________________
-#
-# 4. Ecriture de la valeur cible
-#____________________________________________________________________
-#
-  IMPR_TABLE ( TABLE = TABLE_CIBLE,
-               NOM_PARA = NOM_PARA_CIBLE,
-               UNITE = Unite_Fichier_ASTER_vers_FIABILITE,
-               FORMAT_R = FORMAT_R,
-               INFO = INFO )
-#____________________________________________________________________
-#
-# 5. Ecritures des gradients
-#____________________________________________________________________
-#
-  if GRADIENTS is not None :
-#
-    for val in GRADIENTS :
-#
-      IMPR_TABLE ( TABLE = val["TABLE"],
-                   SENSIBILITE = val["PARA_SENSI"],
-                   NOM_PARA = (val["NOM_PARA"]),
-                   UNITE = Unite_Fichier_ASTER_vers_FIABILITE,
-                   FORMAT_R = FORMAT_R,
-                   INFO = INFO )
-#____________________________________________________________________
-#
-# 6. Libération du fichier d'échange
-#____________________________________________________________________
-# 
-  DEFI_FICHIER ( ACTION= "LIBERER",
-                 UNITE = Unite_Fichier_ASTER_vers_FIABILITE,
-                 INFO = INFO )
-#
-#--------------------------------------------------------------------
-# 7. C'est fini !
-#--------------------------------------------------------------------
-#
-  return erreur
diff --git a/Aster/Cata/cataSTA81/Macro/macr_fiabilite_ops.py b/Aster/Cata/cataSTA81/Macro/macr_fiabilite_ops.py
deleted file mode 100644 (file)
index 62a10eb..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-#@ MODIF macr_fiabilite_ops Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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
-#
-def macr_fiabilite_ops(self, INFO,
-                       LOGICIEL, VERSION,
-                       UNITE_ESCL, MESS_ASTER,
-                       SEUIL, SEUIL_TYPE,
-                       VARIABLE,
-                       **args ) :
-#
-#    args est le dictionnaire des arguments optionnels
-#    args.keys() est la liste des mots-clés
-#    args.keys()[0] est la premiere valeur de cette liste
-#    args.keys()[1:] est la liste des valeurs suivantes dans cette liste
-#    args.keys(mot_cle) représente le contenu de la variable mot_cle dans la macro appelante.
-###  print args
-###  print args.keys()
-###  if len (args.keys())>0 : print args.keys()[0]
-#
-  """ Macro-commande réalisant le pilotage du logiciel de fiabilite. """
-#
-# On charge les modules nécessaires
-  from Accas import _F
-  from Macro import fiabilite_mefisto
-  import aster
-  import os
-  import string
-  import sys
-  import Numeric
-#
-#____________________________________________________________________
-#
-# 1. Préalables
-#____________________________________________________________________
-#
-# 1.1 ==> La macro compte pour 1 dans l'exécution des commandes
-#
-  self.set_icmd(1)
-#
-# 1.2 ==> On importe les définitions des commandes Aster utilisées
-#         dans la macro
-#
-  EXEC_LOGICIEL  = self.get_cmd("EXEC_LOGICIEL")
-  DEFI_LIST_REEL = self.get_cmd("DEFI_LIST_REEL")
-#
-# 1.3 ==> Le nom du programme de fiabilite à lancer
-#
-  repertoire_outils = aster.repout()
-  fiabilite      = repertoire_outils + "fiabilite"
-#
-# 1.4 ==> Initialisations
-#
-  erreur = 0
-  erreur_partiel = [0]
-  Rep_Calc_ASTER = os.getcwd()
-  Nom_Exec_ASTER = sys.executable
-#
-  messages_erreur = { 0 : "Tout va bien",
-                      1 : "Impossible de créer le répertoire de travail pour le logiciel de fiabilité.",
-                      2 : "Probleme d'ouverture du fichier.",
-                     10 : "Erreur dans le choix du logiciel de fiabilité.",
-                     11 : "Erreur dans la création des données pour le logiciel de fiabilité.",
-                    100 : "Erreur." }
-#
-  while not erreur :
-#
-#____________________________________________________________________
-#
-# 2. Répertoires et fichiers
-#____________________________________________________________________
-#
-# 2.1. ==> Création du répertoire pour l'exécution du logiciel de fiabilité
-#
-    Nom_Rep_local = "tmp_fiabilite"
-    Rep_Calc_LOGICIEL_local = os.path.join(".",Nom_Rep_local)
-    Rep_Calc_LOGICIEL_global = os.path.join(Rep_Calc_ASTER,Nom_Rep_local)
-#
-    try :
-      os.mkdir(Rep_Calc_LOGICIEL_global)
-    except os.error,erreur_partiel :
-      self.cr.warn("Code d'erreur de mkdir : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1])
-      self.cr.fatal("Impossible de créer le répertoire de travail pour le logiciel de fiabilité : "+Rep_Calc_LOGICIEL_global)
-      erreur = erreur + 1
-      break
-#
-# 2.2. ==> On crée un fichier annexe pour transmettre des données à la procédure
-#          de lancement des calculs ASTER par le LOGICIEL.
-#          Ce fichier est créé dans le répertoire d'exécution du logiciel de fiabilité.
-#          On fait ainsi car les arguments passés ont du mal à transiter via l'exécutable.
-#          On stocke :
-#          1. Le niveau d'information
-#          2. L'unité logique associée au jeu de commandes déterministes
-#          3. La gestion des sorties ASTER
-#          4. Le nom de l'exécutable ASTER
-#          5. Le type de seuil du problème (maximum ou minimum)
-#
-    fic_Info_ASTER = os.path.join(Rep_Calc_LOGICIEL_global,"InfoExecASTER")
-    try :
-      f_execAster = open(fic_Info_ASTER, "w")
-    except os.error,erreur_partiel :
-      self.cr.warn("Fichier : "+fic_Info_ASTER)
-      self.cr.warn("Code d'erreur de open : " + str(erreur_partiel[0]) + " : " + erreur_partiel[1])
-      erreur = 2
-      break
-#
-    f_execAster.write(str(INFO)+"\n")
-    f_execAster.write(str(UNITE_ESCL)+"\n")
-    f_execAster.write(str(MESS_ASTER)+"\n")
-    f_execAster.write(str(Nom_Exec_ASTER)+"\n")
-    f_execAster.write(str(SEUIL_TYPE))
-    f_execAster.close()
-    fichier = open (fic_Info_ASTER,"r")
-#
-    if INFO >= 2 :
-      print "\nContenu du fichier " + fic_Info_ASTER," :"
-      les_lignes = fichier.readlines()
-      fichier.close()
-      print les_lignes, "\n"
-#
-#____________________________________________________________________
-#
-# 3. Les variables par defaut
-#____________________________________________________________________
-#
-# 3.1. ==> Dictionnaire des valeurs physiques et liées à la loi
-#
-    valeurs_lois = { }
-#
-    for m in VARIABLE :
-#
-      v_moy_physique = None
-      v_moy_loi = None
-      v_min_loi = None
-      v_max_loi = None
-      sigma_loi = None
-#
-# 3.1.1. ==> loi uniforme : transfert des min et max
-#            on définit une moyennne comme étant la médiane des extremes.
-#
-      if m["LOI"] == "UNIFORME" :
-        v_moy_physique = 0.5 * ( m["VALE_MIN"] + m["VALE_MAX"] )
-        v_min_loi = m["VALE_MIN"]
-        v_max_loi = m["VALE_MAX"]
-#
-# 3.1.2. ==> loi normale : transfert des moyennne et écart-type.
-#
-      elif m["LOI"] == "NORMALE" :
-        v_moy_loi = m["VALE_MOY"]
-        v_moy_physique = v_moy_loi
-        sigma_loi = m["ECART_TYPE"]
-#
-# 3.1.3. ==> loi lognormale : identité du min, conversion pour le reste
-#
-      elif m["LOI"] == "LOGNORMALE" :
-        v_min_loi = m["VALE_MIN"]
-        if m["VALE_MOY_PHY"] is None :
-          v_moy_loi = m["VALE_MOY"]
-          sigma_loi = m["ECART_TYPE"]
-          aux = Numeric.exp(0.5*sigma_loi*sigma_loi+v_moy_loi)
-          v_moy_physique = v_min_loi + aux
-        else :
-          v_moy_physique = m["VALE_MOY_PHY"]
-          aux = m["ECART_TYPE_PHY"]/(m["VALE_MOY_PHY"]-m["VALE_MIN"])
-          aux1 = 1. + aux*aux
-          aux2 = Numeric.sqrt(aux1)
-          v_moy_loi = Numeric.log((m["VALE_MOY_PHY"]-m["VALE_MIN"])/aux2)
-          aux2 = Numeric.log(aux1)
-          sigma_loi = Numeric.sqrt(aux2)
-#
-# 3.1.4. ==> loi normale tronquée : transfert des moyenne, mini/maxi et écart-type
-#            on définit une moyennne comme étant la médiane des extremes.
-#
-      else :
-        v_moy_loi = m["VALE_MOY"]
-        v_min_loi = m["VALE_MIN"]
-        v_max_loi = m["VALE_MAX"]
-        sigma_loi = m["ECART_TYPE"]
-        v_moy_physique = 0.5 * ( m["VALE_MIN"] + m["VALE_MAX"] )
-#
-      d = { }
-      d["v_moy_physique"] = v_moy_physique
-      d["v_moy_loi"] = v_moy_loi
-      d["v_min_loi"] = v_min_loi
-      d["v_max_loi"] = v_max_loi
-      d["sigma_loi"] = sigma_loi
-      valeurs_lois[m] = d
-#
-#____________________________________________________________________
-#
-# 4. Création des fichiers pour le logiciel de fiabilite
-#____________________________________________________________________
-#
-    if ( LOGICIEL == "MEFISTO" ) :
-#
-# 4.1. ==> MEFISTO
-#
-      erreur = fiabilite_mefisto.fiabilite_mefisto ( self, Rep_Calc_LOGICIEL_global,
-                                                     INFO, VERSION,
-                                                     SEUIL, SEUIL_TYPE,
-                                                     VARIABLE,
-                                                     valeurs_lois,
-                                                     **args )
-#
-# 4.2. ==> Erreur si autre logiciel
-#
-    else :
-#
-     self.cr.warn("Logiciel de fiabilité : "+LOGICIEL)
-     erreur = 10
-#
-# 4.3. ==> Arret en cas d'erreur
-#
-    if erreur :
-      break
-#
-#____________________________________________________________________
-#
-# 5. Ecriture de la commande d"exécution du logiciel de fiabilité
-#
-#   Remarque : dans la donnée de la version du logiciel de fiabilité, il faut remplacer
-#              le _ de la donnée 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
-#____________________________________________________________________
-#
-#
-    VERSION=string.replace(VERSION,"_",".")
-    VERSION=string.replace(VERSION,"N","n")
-#
-    EXEC_LOGICIEL ( ARGUMENT = (_F(NOM_PARA=Rep_Calc_LOGICIEL_global), # nom du repertoire
-                                _F(NOM_PARA=LOGICIEL),             # nom du logiciel de fiabilité
-                                _F(NOM_PARA=VERSION),         # version du logiciel de fiabilité
-                               ),
-                    LOGICIEL = fiabilite
-                   )
-#
-#--------------------------------------------------------------------
-# 6. C'est fini !
-#--------------------------------------------------------------------
-#
-    break
-#
-# 6.1. ==> Arret en cas d'erreur
-#
-  if erreur :
-    if not messages_erreur.has_key(erreur) :
-      erreur = 100
-    self.cr.fatal(messages_erreur[erreur])
-#
-# 6.2. ==> Si tout va bien, on crée une liste de réels pour le retour
-#          A terme, il serait intéressant d'y mettre les résultats
-#          de l'analyse fiabiliste. Pour le moment, on se contente de
-#          mettre une valeur nulle qui permet de faire un test dans
-#          les commandes appelantes.
-#
-  aux = [float(erreur)]
-#
-  self.DeclareOut("nomres",self.sd)
-  nomres = DEFI_LIST_REEL( VALE = aux , INFO = 1 )
-#
-  return
-#
-##########################  Fin de la fonction##################################
-#
-##########################   Auto-test##################################
-#
-if __name__ == "__main__" :
-#
-  import os
-  import sys
-  import tempfile
-#
-  Rep_Calc_LOGICIEL_global = tempfile.mktemp()
-  os.mkdir(Rep_Calc_LOGICIEL_global)
-#
-  classe = None
-  INFO = 2
-  LOGICIEL = "MEFISTO"
-  VERSION = "V3_2"
-  UNITE_ESCL = 38
-  MESS_ASTER = "DERNIER"
-  SEUIL = 1789.
-  SEUIL_TYPE = "MAXIMUM"
-  VARIABLE = []
-  args = {}
-#
-  lr8 = macr_fiabilite_ops(classe, INFO,
-                       LOGICIEL, VERSION,
-                       UNITE_ESCL, MESS_ASTER,
-                       SEUIL, SEUIL_TYPE,
-                       VARIABLE,
-                       **args )
-###  print "lr8 = ", lr8
-  Liste = os.listdir(Rep_Calc_LOGICIEL_global)
-#
-  for nomfic in Liste :
-    fic_total = os.path.join(Rep_Calc_LOGICIEL_global,nomfic)
-    os.chmod  (fic_total,0755)
-    os.remove (fic_total)
-  os.rmdir (Rep_Calc_LOGICIEL_global)
-#
-  sys.exit("blabla")
diff --git a/Aster/Cata/cataSTA81/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA81/Macro/macr_lign_coupe_ops.py
deleted file mode 100644 (file)
index a2912b6..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-#@ MODIF macr_lign_coupe_ops Macro  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
-# -*- coding: iso-8859-1 -*-
-#            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.
-# ======================================================================
-
-
-
-########################################################################
-# script PYTHON de creation d un maillage de ligne de coupe
-
-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
-
-  nblig=len(lignes)
-  nbngr=len(groups)
-
-  resu='TITRE\n'
-  titre='Maillage ligne de coupe'+'\n'
-  resu=resu+'FINSF\n'
-  resu=resu+'COOR_'+str(dimension)+'D\n'
-
-# creation des noeuds
-  nbno=0
-  for i in range(nblig):
-    pt1           = lignes[i][0]
-    pt2           = lignes[i][1]
-    nbp_lig_coupe = lignes[i][2]
-    for j in range(nbp_lig_coupe):
-      if dimension==2:
-        x=pt1[0]+j*(pt2[0]-pt1[0])/(nbp_lig_coupe-1)
-        y=pt1[1]+j*(pt2[1]-pt1[1])/(nbp_lig_coupe-1)
-        nbno=nbno+1
-        noeud='  N'+str(nbno)+'   '+str(x)+'    '+str(y)+'\n'
-        resu=resu+noeud
-      elif dimension==3:
-        x=pt1[0]+j*(pt2[0]-pt1[0])/(nbp_lig_coupe-1)
-        y=pt1[1]+j*(pt2[1]-pt1[1])/(nbp_lig_coupe-1)
-        z=pt1[2]+j*(pt2[2]-pt1[2])/(nbp_lig_coupe-1)
-        nbno=nbno+1
-        noeud='  N'+str(nbno)+'   '+str(x)+'   '+str(y)+'   '+str(z)+'\n'
-        resu=resu+noeud
-  for i in range(nbngr):
-    for pt in groups[i][1:]:
-      if dimension==2:
-        nbno=nbno+1
-        noeud='  N'+str(nbno)+' '+str(pt[0])+'    '+str(pt[1])+'\n'
-        resu=resu+noeud
-      elif dimension==3:
-        nbno=nbno+1
-        noeud='  N'+str(nbno)+' '+str(pt[0])+'    '+str(pt[1])+'    '+str(pt[2])+'\n'
-        resu=resu+noeud
-  resu=resu+'FINSF\n'
-
-# creation des mailles
-  nbma=0
-  for i in range(nblig):
-    nbp_lig_coupe = lignes[i][2]
-    resu=resu+'SEG2\n'
-    for j in range(nbp_lig_coupe-1):
-        nbma=nbma+1
-        maille='  M'+str(nbma)+' N'+str(nbma+i)+' N'+str(nbma+1+i)+'\n'
-        resu=resu+maille
-    resu=resu+'FINSF\n'
-  for i in range(nbngr):
-    resu=resu+'SEG2\n'
-    for pt in groups[i][1:-1]:
-        nbma=nbma+1
-        maille='  M'+str(nbma)+' N'+str(nbma+nblig+i)+' N'+str(nbma+nblig+1+i)+'\n'
-        resu=resu+maille
-    resu=resu+'FINSF\n'
-
-# creation des groupes de mailles (1 par ligne de coupe)
-  nbma=0
-  for i in range(nblig):
-    resu=resu+'GROUP_MA\n'
-    resu=resu+'  LICOU'+str(i+1)
-    nbp_lig_coupe = lignes[i][2]
-    for j in range(nbp_lig_coupe-1):
-        nbma=nbma+1
-        resu=resu+'  M'+str(nbma)+'\n'
-    resu=resu+'\n'
-    resu=resu+'FINSF\n'
-  for i in range(nbngr):
-    resu=resu+'GROUP_MA\n'
-    resu=resu+groups[i][0]
-    nbp_lig_coupe = len(groups[i])-1
-    for j in range(nbp_lig_coupe-1):
-        nbma=nbma+1
-        resu=resu+'  M'+str(nbma)+'\n'
-    resu=resu+'\n'
-    resu=resu+'FINSF\n'
-  resu=resu+'FIN\n'
-
-  return resu
-
-
-########################################################################
-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,math
-  from Utilitai.UniteAster import UniteAster
-  from Utilitai.Utmess import UTMESS
-  ier=0
-
-  # On importe les definitions des commandes a utiliser dans la macro
-  LIRE_MAILLAGE  =self.get_cmd('LIRE_MAILLAGE')
-  DEFI_GROUP     =self.get_cmd('DEFI_GROUP')
-  AFFE_MODELE    =self.get_cmd('AFFE_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.set_icmd(1)
-  
-  nomresu=RESULTAT.nom
-  l_modele=aster.getvectjev(nomresu.ljust(19)+'.MODL')
-  n_modele=string.strip(l_modele[0])
-  if n_modele=='' :
-     if MODELE==None:
-       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])
-  dime=aster.getvectjev(n_mailla.ljust(8)+'.DIME')[5]
-  collgrno=aster.getcolljev(n_mailla.ljust(8)+'.GROUPENO')
-
-  lignes=[]
-  groups=[]
-  minidim=dime
-  for m in LIGN_COUPE :
-      if m['NB_POINTS'] !=None :
-         lignes.append((m['COOR_ORIG'],m['COOR_EXTR'],m['NB_POINTS']))
-         minidim=min(minidim,len(m['COOR_ORIG']),len(m['COOR_EXTR']))
-      elif m['GROUP_NO']!=None :
-        ngrno=m['GROUP_NO'].ljust(8).upper()
-        if ngrno not in collgrno.keys() :
-          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:
-          l_coor_group.append(aster.getvectjev(n_mailla.ljust(8)+'.COORDO    .VALE',3*(node-1),3))
-        groups.append(l_coor_group)
-
-  if minidim!=dime:
-    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
-  # ainsi que des segments reliant les noeuds issus des group_no demandés
-  # par appel au script python crea_mail_lig_coup
-  # le maillage est ensuite recopié dans l unité logique UNITE_MAILLAGE
-
-  resu_mail=crea_mail_lig_coup(dime,lignes,groups)
-  UL = UniteAster()
-  nomFichierSortie = UL.Nom(UNITE_MAILLAGE)
-  fproc=open(nomFichierSortie,'w')
-  fproc.write(resu_mail)
-  fproc.close()
-  UL.EtatInit(UNITE_MAILLAGE)
-
-  # Lecture du maillage de seg2 contenant toutes les lignes de coupe
-
-  __macou=LIRE_MAILLAGE(UNITE=UNITE_MAILLAGE,);
-
-  motscles={}
-  iocc=1
-  motscles['CREA_GROUP_NO']=[]
-  for m in LIGN_COUPE :
-      if m['NB_POINTS'] !=None :
-        motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) )
-        iocc=iocc+1
-      elif m['GROUP_NO']!=None :
-        motscles['CREA_GROUP_NO'].append(_F(GROUP_MA=m['GROUP_NO'].ljust(8).upper(),) )
-  __macou=DEFI_GROUP( reuse =__macou , MAILLAGE=__macou , **motscles );
-
-  if AsType(RESULTAT).__name__ in ('evol_elas','evol_noli') :
-    __mocou=AFFE_MODELE(MAILLAGE=__macou,
-                        AFFE=_F(TOUT='OUI',
-                                PHENOMENE='MECANIQUE',
-                                MODELISATION='BARRE',),);
-  elif AsType(RESULTAT).__name__ in ('evol_ther',) :
-    __mocou=AFFE_MODELE(MAILLAGE=__macou,
-                        AFFE=_F(TOUT='OUI',
-                                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, **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
-
-  ioc2=0
-  mcACTION=[]
-  for m in LIGN_COUPE :
-      if m['NB_POINTS'] !=None :
-        ioc2=ioc2+1
-        groupe='LICOU'+str(ioc2)
-        if m['INTITULE'] !=None : intitl=m['INTITULE']
-        else                    : intitl='l.coupe'+str(ioc2)
-      elif m['GROUP_NO']!=None :
-        groupe=m['GROUP_NO'].ljust(8).upper()
-        if m['INTITULE'] !=None : intitl=m['INTITULE']
-        else                    : intitl=groupe
-      mcACTION.append( _F(INTITULE  = intitl,
-                          RESULTAT  = __remodr,
-                          GROUP_NO  = groupe,
-                          NOM_CHAM  = NOM_CHAM,
-                          TOUT_CMP  = 'OUI',
-                          OPERATION = 'EXTRACTION', )           )
-
-  __tabitm=POST_RELEVE_T(ACTION=mcACTION,);
-
-  # on repasse par les tables python pour supprimer les paramètres inutiles
-  # NOEUD (car il est propre au maillage de la ligne) et RESU
-
-  self.DeclareOut('nomres',self.sd)
-  dictab=__tabitm.EXTR_TABLE()
-  listpara=dictab.para
-  listpara.remove('NOEUD')
-  listpara.remove('RESU')
-
-  coltab=[]
-  for key in listpara :
-      val=dictab[key].values()[key]
-      if   type(val[0])==types.IntType :
-         coltab.append(_F(PARA=key,LISTE_I=val))
-      elif type(val[0])==types.FloatType :
-         coltab.append(_F(PARA=key,LISTE_R=val))
-      elif type(val[0])==types.StringType :
-         coltab.append(_F(PARA=key,LISTE_K=val,TYPE_K='K16'))
-  nomres=CREA_TABLE(LISTE=coltab)
-
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA81/Macro/macr_recal_ops.py
deleted file mode 100644 (file)
index 40e793a..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-#@ MODIF macr_recal_ops Macro  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-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, INFO, **args ):
-   """Macro commande réalisant le recalage de modèles Aster""",
-   # Initialisation du compteur d'erreurs
-   ier=0
-
-   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
-   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.set_icmd(1)
-
-   self.DeclareOut('nomres',self.sd)
-
-   #_______________________________________________
-   #
-   # GESTION DE L'OPTION FACULTATIVE POUR LES POIDS
-   #_______________________________________________
-   if( POIDS == None):
-      POIDS=Numeric.ones(len(RESU_EXP))
-      
-   #_____________________________________________
-   #
-   # GESTION DES ERREURS DE SYNTAXE
-   #_____________________________________________
-   texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU)
-   if (texte_erreur != ""):
-      UTMESS('F', "MACR_RECAL", texte_erreur)
-
-   #_____________________________________________
-   #
-   # DECLARATION DE TOUTES LES COMMANDES ASTER
-   #_____________________________________________
-   for k,v in cata.__dict__.items() :
-     if type(v)==types.InstanceType:
-        if v.__class__.__name__ in ('OPER','MACRO'):
-           self.current_context[k]= v
-   self.current_context['_F']=cata.__dict__['_F']
-
-   #_____________________________________________
-   #
-   # INITIALISATIONS
-   #_____________________________________________
-   iter = 0
-   restant,temps_iter=0.,0.
-   restant,temps_iter,err=reca_algo.temps_CPU(self,restant,temps_iter)
-   para,val,borne_inf,borne_sup = transforme_list_Num(LIST_PARA,RESU_EXP)
-   val_init = copy.copy(val)
-   L_init = calcul_F(self,UNITE_ESCL,para,val,RESU_CALC)
-   #instance de la classe gérant l'affichage des resultats du calcul de l'optimisation
-   Mess = reca_message.Message(para,RESU_EXP,copy.copy(val_init),UNITE_RESU) 
-   #instances des classes pour le calcul de l'erreur et le dimensionnemnt/adim
-   Simul = reca_interp.Sim_exp(RESU_EXP,POIDS)
-   Dim = reca_algo.Dimension(copy.copy(val_init),para)
-   L_J_init,erreur = Simul.multi_interpole(L_init, RESU_CALC)
-   J_init = Simul.norme_J(copy.copy(L_J_init),copy.copy(L_J_init),UNITE_RESU)
-   J = J_init
-   A = Simul.sensibilite(self,UNITE_ESCL,L_init,val,para,RESU_CALC,PARA_DIFF_FINI,UNITE_RESU)
-   A = Dim.adim_sensi(A)
-   l = reca_algo.lambda_init(Numeric.matrixmultiply(Numeric.transpose(A),A))
-   gradient_init =reca_algo.calcul_gradient(A,erreur)  #utile pour le test de convergence, on prend les valeurs dimensionnées
-   residu = reca_algo.test_convergence(gradient_init,erreur,A,Numeric.zeros(len(gradient_init),Numeric.Float))
-   Mess.affiche_result_iter(iter,J,val,residu,Numeric.array([]),UNITE_RESU)
-   # 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
-   
-   #_____________________________________________
-   #
-   # BOUCLE PRINCIPALE DE L'ALGORITHME
-   #_____________________________________________
-   epsilon = 10.*RESI_GLOB_RELA
-   while((residu > RESI_GLOB_RELA) & (iter<ITER_MAXI)):  
-      iter = iter +1
-      new_val, s, l, Act = reca_algo.Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,UNITE_RESU) 
-      L_F = calcul_F(self,UNITE_ESCL,para,new_val,RESU_CALC)
-      new_L_J,new_erreur = Simul.multi_interpole(L_F, RESU_CALC)
-      new_J = Simul.norme_J(L_J_init,new_L_J,UNITE_RESU)
-      l = reca_algo.actualise_lambda(l,Dim.adim(val),Dim.adim(new_val),A,erreur,new_J,J)
-      val = copy.copy(new_val)
-      erreur = copy.copy(new_erreur)
-      J = new_J
-      A = Simul.sensibilite(self,UNITE_ESCL,L_F,val,para,RESU_CALC,PARA_DIFF_FINI,UNITE_RESU)
-      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)
-
-      # Affichage des courbes
-      if GRAPHIQUE:
-            GRAPHE_UL_OUT=GRAPHIQUE['UNITE']
-            interactif=(GRAPHIQUE['INTERACTIF']=='OUI')
-            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
-   # CONVERGENCE OU ECHEC
-   #_____________________________________________
-   Mess.affiche_etat_final_convergence(iter,ITER_MAXI,RESI_GLOB_RELA,residu,Act,UNITE_RESU)
-   reca_algo.calcul_etat_final(para,A,iter,ITER_MAXI,RESI_GLOB_RELA,residu,Mess,UNITE_RESU)
-   #_____________________________________________
-   #
-   # CREATIONS DE LA LISTE DE REELS CONTENANT 
-   # LES VALEURS DES PARAMETRES A CONVERGENCE
-   #_____________________________________________
-   lival=[]
-   for i in range(len(val)):
-       lival.append(val[i])
-   nomres=DEFI_LIST_REEL(VALE=lival)
-   return 
diff --git a/Aster/Cata/cataSTA81/Macro/macro_elas_mult_ops.py b/Aster/Cata/cataSTA81/Macro/macro_elas_mult_ops.py
deleted file mode 100644 (file)
index bdd9e7d..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-#@ MODIF macro_elas_mult_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-def macro_elas_mult_ops(self,MODELE,CHAM_MATER,CARA_ELEM,NUME_DDL,
-                        CHAR_MECA_GLOBAL,CHAR_CINE_GLOBAL,LIAISON_DISCRET,
-                        CAS_CHARGE,SOLVEUR,**args):
-  """
-     Ecriture de la macro MACRO_ELAS_MULT
-  """
-  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
-  # On importe les definitions des commandes a utiliser dans la macro
-  CALC_MATR_ELEM  =self.get_cmd('CALC_MATR_ELEM')
-  NUME_DDL        =self.get_cmd('NUME_DDL')
-  ASSE_MATRICE    =self.get_cmd('ASSE_MATRICE')
-  FACT_LDLT       =self.get_cmd('FACT_LDLT')
-  CALC_VECT_ELEM  =self.get_cmd('CALC_VECT_ELEM')
-  ASSE_VECTEUR    =self.get_cmd('ASSE_VECTEUR')
-  RESO_LDLT       =self.get_cmd('RESO_LDLT')
-  CREA_RESU       =self.get_cmd('CREA_RESU')
-  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.set_icmd(1)
-
-  # Le concept sortant (de type mult_elas ou fourier_elas) est nommé
-  # 'nomres' dans le contexte de la macro
-  
-  self.DeclareOut('nomres',self.sd)
-
-  ielas = 0
-  ifour = 0
-  for m in CAS_CHARGE:
-     if m['NOM_CAS']:
-        ielas=1                 # mot clé NOM_CAS      présent sous CAS_CHARGE
-        tyresu = 'MULT_ELAS'
-     else:
-        ifour=1                 # mot clé MODE_FOURIER présent sous CAS_CHARGE
-        tyresu = 'FOURIER_ELAS'
-  if ielas==1 and ifour==1:
-     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é
-    # il doit etre  produit par la macro
-    # il faudra donc appeler la commande NUME_DDL
-    lnume = 1
-  else:
-    lnume = 0
-
-  if ielas==1 :
-     motscles={}
-     if   CHAR_MECA_GLOBAL: motscles['CHARGE']    =CHAR_MECA_GLOBAL
-     elif CHAR_CINE_GLOBAL: motscles['CHARGE']    =CHAR_CINE_GLOBAL
-     if   CHAM_MATER      : motscles['CHAM_MATER']=CHAM_MATER
-     if   CARA_ELEM       : motscles['CARA_ELEM'] =CARA_ELEM
-     __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles)
-  
-     if lnume:
-       # On peut passer des mots cles egaux a None. Ils sont ignores
-       motscles={}
-       if SOLVEUR:
-          motscles['METHODE'] =SOLVEUR['METHODE']
-          motscles['RENUM']   =SOLVEUR['RENUM']
-       else:
-          motscles['METHODE'] ='MULT_FRONT'
-          motscles['RENUM']   ='METIS'
-       if numeddl!=None:
-          self.DeclareOut('num',numeddl)
-          num=NUME_DDL(MATR_RIGI=__nomrig,**motscles)
-       else:
-          _num=NUME_DDL(MATR_RIGI=__nomrig,**motscles)
-          num=_num
-     else:
-       num=numeddl
-
-     __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num)
-
-     __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER'])
-
-#####################################################################
-# boucle sur les items de CAS_CHARGE
-
-  nomchn=[]
-  iocc=0
-  for m in CAS_CHARGE:
-     iocc=iocc+1
-
-     if ifour:
-        motscles={}
-        if   CHAR_MECA_GLOBAL: motscles['CHARGE']       =CHAR_MECA_GLOBAL
-        elif CHAR_CINE_GLOBAL: motscles['CHARGE']       =CHAR_CINE_GLOBAL
-        if   CHAM_MATER      : motscles['CHAM_MATER']   =CHAM_MATER
-        if   CARA_ELEM       : motscles['CARA_ELEM']    =CARA_ELEM
-        motscles['MODE_FOURIER'] =m['MODE_FOURIER']
-        __nomrig=CALC_MATR_ELEM(OPTION='RIGI_MECA',MODELE=MODELE,**motscles)
-
-        if lnume:
-           _num=NUME_DDL(MATR_RIGI=__nomrig,METHODE=SOLVEUR['METHODE'],RENUM=SOLVEUR['RENUM'])
-           num=_num
-           lnume=0
-
-        __nomras=ASSE_MATRICE(MATR_ELEM=__nomrig,NUME_DDL=num)
-
-        __nomraf=FACT_LDLT(MATR_ASSE=__nomras,NPREC=SOLVEUR['NPREC'],STOP_SINGULIER=SOLVEUR['STOP_SINGULIER'])
-
-
-     if m['VECT_ASSE']==None :
-        motscles={}
-        if   CHAM_MATER      : motscles['CHAM_MATER']   =CHAM_MATER
-        if   CARA_ELEM       : motscles['CARA_ELEM']    =CARA_ELEM
-        if   ifour           : motscles['MODE_FOURIER'] =m['MODE_FOURIER']
-        if   m['CHAR_MECA']  : motscles['CHARGE']       =m['CHAR_MECA']
-        elif m['CHAR_CINE']  : motscles['CHARGE']       =m['CHAR_CINE']
-        __nomvel=CALC_VECT_ELEM(OPTION='CHAR_MECA',**motscles)
-        __nomasv=ASSE_VECTEUR(VECT_ELEM=__nomvel,NUME_DDL=num)
-     else :
-        __nomasv=m['VECT_ASSE']
-
-
-     __nomchn=RESO_LDLT(MATR_FACT=__nomraf,CHAM_NO=__nomasv,TITRE=m['SOUS_TITRE'])
-     nomchn.append(__nomchn)
-
-# fin de la boucle sur les items de CAS_CHARGE
-#####################################################################
-
-  motscles={}
-  iocc=0
-  motscle2={}
-  if CHAM_MATER : motscle2['CHAM_MATER']=CHAM_MATER
-  if CARA_ELEM  : motscle2['CARA_ELEM']=CARA_ELEM
-  if CHAM_MATER or CARA_ELEM :
-    if ielas : 
-       motscles['AFFE']=[]
-       for m in CAS_CHARGE:
-          motscles['AFFE'].append(_F(MODELE=MODELE,
-                                     CHAM_GD=nomchn[iocc],
-                                     NOM_CAS=m['NOM_CAS'],
-                                     **motscle2) )
-          iocc=iocc+1
-    else :
-       motscles['AFFE']=[]
-       for m in CAS_CHARGE:
-          motscles['AFFE'].append(_F(MODELE=MODELE,
-                                     CHAM_GD=nomchn[iocc],
-                                     NUME_MODE=m['MODE_FOURIER'],
-                                     TYPE_MODE=m['TYPE_MODE'],
-                                     **motscle2) )
-          iocc=iocc+1
-  else:
-    if ielas : 
-       motscles['AFFE']=[]
-       for m in CAS_CHARGE:
-          motscles['AFFE'].append(_F(MODELE=MODELE,
-                                     CHAM_GD=nomchn[iocc],
-                                     NOM_CAS=m['NOM_CAS'],) )
-          iocc=iocc+1
-    else :
-       motscles['AFFE']=[]
-       for m in CAS_CHARGE:
-          motscles['AFFE'].append(_F(MODELE=MODELE,
-                                     CHAM_GD=nomchn[iocc],
-                                     NUME_MODE=m['MODE_FOURIER'],
-                                     TYPE_MODE=m['TYPE_MODE'],) )
-          iocc=iocc+1
-
-
-  nomres=CREA_RESU(OPERATION='AFFE',TYPE_RESU=tyresu,NOM_CHAM='DEPL',**motscles)
-
-#####################################################################
-# boucle sur les items de CAS_CHARGE pour CALC_ELEM ete CALC_NO
-
-  iocc=0
-  for m in CAS_CHARGE:
-     iocc=iocc+1
-
-     if m['OPTION']:
-        nbel=0
-        nbno=0
-        liste_el=[]
-        liste_no=[]
-        if type(m['OPTION'])==types.StringType:
-           if m['OPTION'] in ('FORC_NODA','REAC_NODA',
-                              'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL',
-                              'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',):
-              nbno=nbno+1
-              liste_no.append(m['OPTION'])
-           else:
-              nbel=nbel+1
-              liste_el.append(m['OPTION'])
-        else:
-           for opt in m['OPTION']:
-              if opt in ('FORC_NODA','REAC_NODA',
-                         'EPSI_NOEU_DEPL','SIGM_NOEU_DEPL','EFGE_NOEU_DEPL',
-                         'EQUI_NOEU_SIGM','EQUI_NOEU_EPSI','FLUX_NOEU_TEMP',):
-                 nbno=nbno+1
-                 liste_no.append(opt)
-              else:
-                 nbel=nbel+1
-                 liste_el.append(opt)
-
-        lreac=0
-        if nbel:
-           motscles={}
-           if   CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER
-           if   CARA_ELEM  : motscles['CARA_ELEM']  =CARA_ELEM
-           if ielas:
-              motscles['NOM_CAS']=m['NOM_CAS']
-           else:
-              motscles['NUME_MODE']=m['MODE_FOURIER']
-           motscles['EXCIT']=[]
-           if   m['CHAR_MECA'] :
-              for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
-           elif m['CHAR_CINE'] :
-              for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
-           if   CHAR_MECA_GLOBAL:            motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL))
-           elif CHAR_CINE_GLOBAL:            motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL))
-           CALC_ELEM(reuse=nomres,
-                     RESULTAT=nomres,
-                     MODELE=MODELE,
-                     NIVE_COUCHE=m['NIVE_COUCHE'],
-                     NUME_COUCHE=m['NUME_COUCHE'],
-                     OPTION=tuple(liste_el),
-                     **motscles)
-        if nbno:
-           motscles={}
-           if   CHAM_MATER : motscles['CHAM_MATER'] =CHAM_MATER
-           if   CARA_ELEM  : motscles['CARA_ELEM']  =CARA_ELEM
-           if ielas:
-              motscles['NOM_CAS']=m['NOM_CAS']
-           else:
-              motscles['NUME_MODE']=m['MODE_FOURIER']
-           motscles['EXCIT']=[]
-           if   m['CHAR_MECA'] :
-              for chargt in m['CHAR_MECA'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
-           elif m['CHAR_CINE'] :
-              for chargt in m['CHAR_CINE'] : motscles['EXCIT'].append(_F(CHARGE=chargt))
-           if   CHAR_MECA_GLOBAL:            motscles['EXCIT'].append(_F(CHARGE=CHAR_MECA_GLOBAL))
-           elif CHAR_CINE_GLOBAL:            motscles['EXCIT'].append(_F(CHARGE=CHAR_CINE_GLOBAL))
-           CALC_NO(reuse=nomres,
-                   RESULTAT=nomres,
-                   MODELE=MODELE,
-                   OPTION=tuple(liste_no),
-                   **motscles)
-
-# fin de la boucle sur les items de CAS_CHARGE
-#####################################################################
-  return ier
-
diff --git a/Aster/Cata/cataSTA81/Macro/macro_matr_ajou_ops.py b/Aster/Cata/cataSTA81/Macro/macro_matr_ajou_ops.py
deleted file mode 100644 (file)
index c3b1700..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-#@ MODIF macro_matr_ajou_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-def macro_matr_ajou_ops(self,MAILLAGE,GROUP_MA_FLUIDE,GROUP_MA_INTERF,MODELISATION,MODE_MECA,DEPL_IMPO,
-                             NUME_DDL_GENE,MODELE_GENE,MATR_MASS_AJOU,MATR_AMOR_AJOU,MATR_RIGI_AJOU,
-                             NOEUD_DOUBLE,FLUIDE,DDL_IMPO,DIST_REFE,SOLVEUR,INFO,AVEC_MODE_STAT,
-                             MODE_STAT,MONO_APPUI,
-                             FORC_AJOU,ECOULEMENT,**args):
-  """
-     Ecriture de la macro MACRO_MATR_AJOU
-  """
-  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
-  DEFI_MATERIAU      =self.get_cmd('DEFI_MATERIAU')
-  AFFE_MATERIAU      =self.get_cmd('AFFE_MATERIAU')
-  AFFE_MODELE        =self.get_cmd('AFFE_MODELE')
-  AFFE_CHAR_THER     =self.get_cmd('AFFE_CHAR_THER')
-  CALC_MATR_AJOU     =self.get_cmd('CALC_MATR_AJOU')
-  THER_LINEAIRE      =self.get_cmd('THER_LINEAIRE')
-  CALC_FORC_AJOU     =self.get_cmd('CALC_FORC_AJOU')
-
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-  if len(FLUIDE)==1 :
-     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 :
-       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 :
-            UTMESS('F', "MACRO_MATR_AJOU", "cas fluides multiples : precisez le GROUP_MA dans lequel vous affectez  la masse volumique RHO")
-
-  IOCFLU=len(FLUIDE)
-
-#  ---------------------------------------------------------------
-#  definition du materiau fluide par caracteristique
-#  thermique equivalente
-
-# CAS FLUIDE SIMPLE
-  if IOCFLU==1 :
-     __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0,
-                                        RHO_CP = FLUIDE[0]['RHO']))
-     __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE,
-                             AFFE     = _F( GROUP_MA = (GROUP_MA_FLUIDE,GROUP_MA_INTERF),
-                                            MATER    =  __NOMMAT),    )
-
-#  ---------------------------------------------------------------
-#  cas fluides multiples
-  else :
-     affmat=[]
-     for flu in FLUIDE:
-        __NOMMAT=DEFI_MATERIAU( THER = _F( LAMBDA = 1.0,
-                                           RHO_CP = flu['RHO']))
-        mfact=_F(GROUP_MA=flu['GROUP_MA'],MATER=__NOMMAT)
-        affmat.append(mfact)
-
-     __NOMCMA=AFFE_MATERIAU( MAILLAGE = MAILLAGE,
-                             AFFE     = affmat  )
-
-#  ---------------------------------------------------------------
-#  commande AFFE_MODELE modele fluide
-  __NOMFLU=AFFE_MODELE( MAILLAGE = MAILLAGE,
-                        AFFE     = _F( GROUP_MA     = (GROUP_MA_FLUIDE,GROUP_MA_INTERF),
-                                       MODELISATION = MODELISATION,
-                                       PHENOMENE    = 'THERMIQUE'    ), )
-
-#  ---------------------------------------------------------------
-#  commande AFFE_MODELE modele interface
-  __NOMINT=AFFE_MODELE( MAILLAGE = MAILLAGE,
-                        AFFE     = _F( GROUP_MA     = GROUP_MA_INTERF,
-                                       MODELISATION = MODELISATION,
-                                       PHENOMENE    = 'THERMIQUE'    ), )
-
-#  ---------------------------------------------------------------
-#  commande AFFE_CHAR_THER condition de pression imposee
-#  en un point ou un groupe du fluide
-  affimp=[]
-  nflui=0
-  for DDL in DDL_IMPO :
-     if DDL['PRES_FLUIDE']!=None :
-        nflui=nflui+1
-        if DDL['NOEUD']   !=None : mfact=_F(NOEUD   =DDL['NOEUD'],   TEMP=DDL['PRES_FLUIDE'])
-        if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_FLUIDE'])
-        affimp.append(mfact)
-  if nflui==0:
-     UTMESS('F', "MACRO_MATR_AJOU", "PRES_FLUIDE obligatoire une fois")
-
-  __CHARGE=AFFE_CHAR_THER( MODELE    = __NOMFLU,
-                           TEMP_IMPO = affimp )
-
-#  ---------------------------------------------------------------
-#  calcul des masses, rigidites et amortissements ajoutes en theorie
-#  potentielle
-#  commande CALC_MATR_AJOU, calcul de la masse ajoutee
-
-  if MATR_MASS_AJOU!=None :
-     self.DeclareOut('MASSAJ',MATR_MASS_AJOU)
-     solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-     mostcles={}
-     if   NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE
-     if   INFO         !=None : mostcles['INFO']          =INFO
-     if   MODE_MECA    !=None : mostcles['MODE_MECA']     =MODE_MECA
-     elif DEPL_IMPO    !=None : mostcles['CHAM_NO']       =DEPL_IMPO
-     elif MODELE_GENE  !=None :
-                                mostcles['MODELE_GENE']   =MODELE_GENE
-                                mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT
-                                mostcles['DIST_REFE']     =DIST_REFE
-     if   NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE']  =NOEUD_DOUBLE
-
-     MASSAJ = CALC_MATR_AJOU(MODELE_FLUIDE    = __NOMFLU,
-                             MODELE_INTERFACE = __NOMINT,
-                             CHARGE           = __CHARGE,
-                             CHAM_MATER       = __NOMCMA,
-                             OPTION           = 'MASS_AJOU',
-                             SOLVEUR          = solveur,
-                             **mostcles)
-
-#  ---------------------------------------------------------------
-#  calcul de l amortissement ajoute
-  if (MATR_AMOR_AJOU!=None ) or (MATR_RIGI_AJOU!=None ):
-
-#  ---------------------------------------------------------------
-#  on definit un nouveau modele fluide pour calculer
-#  le potentiel stationnaire - AFFE_MODELE
-     grma=[GROUP_MA_FLUIDE,]
-     if ECOULEMENT!=None :
-        grma.append(ECOULEMENT['GROUP_MA_1'])
-        grma.append(ECOULEMENT['GROUP_MA_2'])
-     __NOFLUI=AFFE_MODELE( MAILLAGE = MAILLAGE,
-                           AFFE     = _F( GROUP_MA     = grma,
-                                          MODELISATION = MODELISATION,
-                                          PHENOMENE    = 'THERMIQUE'    ), )
-     affimp=[]
-     for DDL in DDL_IMPO :
-        if DDL['PRES_SORTIE']!=None :
-           if DDL['NOEUD']   !=None : mfact=_F(NOEUD   =DDL['NOEUD'],   TEMP=DDL['PRES_SORTIE'])
-           if DDL['GROUP_NO']!=None : mfact=_F(GROUP_NO=DDL['GROUP_NO'],TEMP=DDL['PRES_SORTIE'])
-           affimp.append(mfact)
-
-     affecl=[]
-     for ECL in ECOULEMENT :
-           mfact=_F(GROUP_MA=ECL['GROUP_MA_1'],FLUN=ECL['VNOR_1'])
-           affecl.append(mfact)
-           mfact=_F(GROUP_MA=ECL['GROUP_MA_2'],FLUN=ECL['VNOR_2'])
-           affecl.append(mfact)
-     __CHARG2=AFFE_CHAR_THER( MODELE    = __NOFLUI,
-                              TEMP_IMPO = affimp ,
-                              FLUX_REP  = affecl )
-
-     __POTEN = THER_LINEAIRE( MODELE     = __NOFLUI,
-                              CHAM_MATER = __NOMCMA ,
-                              EXCIT      = _F( CHARGE = __CHARG2 ) )
-
-#  ---------------------------------------------------------------
-#  calcul amortissement proprement dit
-  if MATR_AMOR_AJOU!=None :
-     self.DeclareOut('AMORAJ',MATR_AMOR_AJOU)
-     solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-     mostcles={}
-     if   NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE
-     if   INFO         !=None : mostcles['INFO']          =INFO
-     if   MODE_MECA    !=None : mostcles['MODE_MECA']     =MODE_MECA
-     elif DEPL_IMPO    !=None : mostcles['CHAM_NO']       =DEPL_IMPO
-     else :
-       UTMESS('F', "MACRO_MATR_AJOU", "amortissement ajoute sur modele generalise non encore implante")
-
-     AMORAJ = CALC_MATR_AJOU(MODELE_FLUIDE    = __NOMFLU,
-                             MODELE_INTERFACE = __NOMINT,
-                             CHARGE           = __CHARGE,
-                             CHAM_MATER       = __NOMCMA,
-                             OPTION           = 'AMOR_AJOU',
-                             SOLVEUR          = solveur,
-                             POTENTIEL        = __POTEN,
-                             **mostcles)
-
-#  ---------------------------------------------------------------
-#  calcul de la rigidite ajoutee
-  if MATR_RIGI_AJOU!=None :
-     self.DeclareOut('RIGIAJ',MATR_RIGI_AJOU)
-     solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-     mostcles={}
-     if   NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE
-     if   INFO         !=None : mostcles['INFO']          =INFO
-     if   MODE_MECA    !=None : mostcles['MODE_MECA']     =MODE_MECA
-     elif DEPL_IMPO    !=None : mostcles['CHAM_NO']       =DEPL_IMPO
-     else :
-       UTMESS('F', "MACRO_MATR_AJOU", "rigidite ajoute sur modele generalise non encore implante")
-
-     RIGIAJ = CALC_MATR_AJOU(MODELE_FLUIDE    = __NOMFLU,
-                             MODELE_INTERFACE = __NOMINT,
-                             CHARGE           = __CHARGE,
-                             CHAM_MATER       = __NOMCMA,
-                             OPTION           = 'RIGI_AJOU',
-                             SOLVEUR          = solveur,
-                             POTENTIEL        = __POTEN,
-                             **mostcles)
-
-#  ---------------------------------------------------------------
-#  boucle sur le nombre de vecteurs a projeter, commande CALC_FORC_AJOU
-  if FORC_AJOU!=None :
-     for FORCAJ in FORC_AJOU:
-       self.DeclareOut('VECTAJ',FORCAJ['VECTEUR'])
-       solveur=SOLVEUR[0].cree_dict_valeurs(SOLVEUR[0].mc_liste)
-       mostcles={}
-       if   NUME_DDL_GENE!=None : mostcles['NUME_DDL_GENE'] =NUME_DDL_GENE
-       if   MODE_MECA    !=None : mostcles['MODE_MECA']     =MODE_MECA
-       elif MODELE_GENE  !=None :
-                                  mostcles['MODELE_GENE']   =MODELE_GENE
-                                  mostcles['AVEC_MODE_STAT']=AVEC_MODE_STAT
-                                  mostcles['DIST_REFE']     =DIST_REFE
-       if   NOEUD_DOUBLE !=None : mostcles['NOEUD_DOUBLE']  =NOEUD_DOUBLE
-       if   MODE_STAT    !=None :
-         mostcles['MODE_STAT']                                =MODE_STAT
-         if FORCAJ['NOEUD']    !=None : mostcles['NOEUD']     =FORCAJ['NOEUD']
-         if FORCAJ['GROUP_NO'] !=None : mostcles['GROUP_NO']  =FORCAJ['GROUP_NO']
-       else                     :
-                                  mostcles['MONO_APPUI']    =MONO_APPUI
-
-       VECTAJ = CALC_FORC_AJOU(DIRECTION        = FORCAJ['DIRECTION'],
-                               MODELE_FLUIDE    = __NOMFLU,
-                               MODELE_INTERFACE = __NOMINT,
-                               CHARGE           = __CHARGE,
-                               CHAM_MATER       = __NOMCMA,
-                               SOLVEUR          = solveur,
-                               **mostcles)
-
-
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA81/Macro/macro_matr_asse_ops.py
deleted file mode 100644 (file)
index 60374b6..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-#@ MODIF macro_matr_asse_ops Macro  DATE 30/01/2006   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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.
-# ======================================================================
-
-
-
-def macro_matr_asse_ops(self,MODELE,CHAM_MATER,CARA_ELEM,MATR_ASSE,
-                        SOLVEUR,NUME_DDL,CHARGE,INST,**args):
-  """
-     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
-  # On importe les definitions des commandes a utiliser dans la macro
-  # Le nom de la variable doit etre obligatoirement le nom de la commande
-  CALC_MATR_ELEM=self.get_cmd('CALC_MATR_ELEM')
-  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.set_icmd(1)
-
-  if SOLVEUR:
-    methode=SOLVEUR['METHODE']
-    if methode=='LDLT':
-      if SOLVEUR['RENUM']:
-         renum=SOLVEUR['RENUM']
-      else:
-         renum='RCMK'
-      if renum not in ('SANS','RCMK'):
-        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'):
-        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',):
-        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'):
-        UTMESS('F', "MACRO_MATR_ASSE", "Avec methode GCPC, RENUM doit etre SANS ou RCMK")
-  else:
-    methode='MULT_FRONT'
-    renum  ='MDA'
-
-  if numeddl in self.sdprods:
-    # Si le concept numeddl est dans self.sdprods
-    # il doit etre  produit par la macro
-    # il faudra donc appeler la commande NUME_DDL
-    lnume = 1
-  else:
-    lnume = 0
-  lrigel = 0
-  lmasel = 0
-
-# decalage eventuel en premiere position dans la liste de l occurence de MATR_ASSE contenant
-# l option de rigidite
-  try :
-    for m in MATR_ASSE:
-      option=m['OPTION']
-      if option in ('RIGI_MECA','RIGI_MECA_LAGR','RIGI_THER','RIGI_ACOU') :
-         decal=m
-         MATR_ASSE.remove(decal)
-         MATR_ASSE.insert(0,decal)
-         break
-  except: pass
-
-  iocc=0
-  for m in MATR_ASSE:
-    iocc=iocc+1
-    option=m['OPTION']
-    if iocc == 1 and lnume == 1 and option not in ('RIGI_MECA','RIGI_MECA_LAGR',
-                                                   'RIGI_THER','RIGI_ACOU')      :
-      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):
-          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
-    if CHARGE     != None:
-       if option[0:9] not in ('MASS_THER','RIGI_GEOM','MASS_ID_M'):
-                           motscles['CHARGE']      =CHARGE
-    if CHAM_MATER != None: motscles['CHAM_MATER']  =CHAM_MATER
-    if CARA_ELEM  != None: motscles['CARA_ELEM']   =CARA_ELEM
-    if INST       != None: motscles['INST']        =INST
-
-    try : motscles['SIEF_ELGA']   =m['SIEF_ELGA']
-    except IndexError : pass
-
-    try : motscles['MODE_FOURIER']   =m['MODE_FOURIER']
-    except IndexError : pass
-
-    try : motscles['THETA']   =m['THETA']
-    except IndexError : pass
-
-    try : motscles['PROPAGATION']   =m['PROPAGATION']
-    except IndexError : pass
-    _a=CALC_MATR_ELEM(MODELE=MODELE,**motscles)
-
-    if option == 'RIGI_MECA':
-      rigel  = _a
-      lrigel = 1
-    if option == 'MASS_MECA':
-      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)
-    else:
-      num=numeddl
-
-    self.DeclareOut('mm',m['MATRICE'])
-    mm=ASSE_MATRICE(MATR_ELEM=_a,NUME_DDL=num)
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA81/Macro/macro_miss_3d_ops.py
deleted file mode 100644 (file)
index 54af120..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-#@ MODIF macro_miss_3d_ops Macro  DATE 20/03/2006   AUTEUR ACBHHCD G.DEVESA 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
-                           UNITE_MODELE_SOL,UNITE_RESU_IMPE,
-                           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
-  # Le nom de la variable doit etre obligatoirement le nom de la commande
-  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.set_icmd(1)
-
-  DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER)
-
-  import aster 
-  loc_fic=aster.repout()
-  miss3d=loc_fic+'miss3d'
-  #miss3d='/home/acbhhcd/MISS3D/V6.4/miss3d.csh'
-
-  if OPTION['TOUT']!=None:
-      MODUL2='COMPLET'
-  elif OPTION['MODULE']=='MISS_IMPE':
-      MODUL2='CALC_IMPE'
-  elif OPTION['MODULE']=='MISS_EVOL':
-      MODUL2='MISS_PTAS'
-  elif OPTION['MODULE']=='PRE_MISS':
-      MODUL2='GTASTER'
-
-  ETUDE = PROJET
-  BASE  = REPERTOIRE
-  paste = 'fort.'+str(UNITE_IMPR_ASTER)
-  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),
-                          _F(NOM_PARA=ETUDE),
-                          _F(NOM_PARA=BASE),
-                          _F(NOM_PARA=paste),
-                          _F(NOM_PARA=popti),
-                          _F(NOM_PARA=pdsol),
-                          _F(NOM_PARA=primp),
-                          _F(NOM_PARA=VERSION),
-                          _F(NOM_PARA=dpara['FREQ_MIN']), 
-                          _F(NOM_PARA=dpara['FREQ_MAX']),
-                          _F(NOM_PARA=dpara['FREQ_PAS']),
-                          _F(NOM_PARA=dpara['Z0']), 
-                          _F(NOM_PARA=dpara['SURF']), 
-                          _F(NOM_PARA=dpara['RFIC']),
-                          _F(NOM_PARA=dpara['FICH_RESU_IMPE']),
-                          _F(NOM_PARA=dpara['FICH_RESU_FORC']),
-                          _F(NOM_PARA=dpara['DREF']), 
-                          _F(NOM_PARA=dpara['ALGO']),
-                          _F(NOM_PARA=dpara['OFFSET_MAX']),
-                          _F(NOM_PARA=dpara['OFFSET_NB']),
-                          _F(NOM_PARA=dpara['SPEC_MAX']),
-                          _F(NOM_PARA=dpara['SPEC_NB']),
-                          _F(NOM_PARA=dpara['ISSF']),
-                          _F(NOM_PARA=dpara['FICH_POST_TRAI']),
-                          _F(NOM_PARA=dpara['CONTR_NB']),
-                          _F(NOM_PARA=dpara['CONTR_LISTE']),
-                          _F(NOM_PARA=dpara['LFREQ_NB']),
-                          _F(NOM_PARA=dpara['LFREQ_LISTE']),
-                          _F(NOM_PARA=prfor),
-                         ),
-                )
-
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA81/Macro/macro_mode_meca_ops.py
deleted file mode 100644 (file)
index a24af1f..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-#@ MODIF macro_mode_meca_ops Macro  DATE 14/06/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-def macro_mode_meca_ops(self,MATR_A,MATR_B,INFO,METHODE,OPTION,CALC_FREQ,
-                        VERI_MODE,NORM_MODE,FILTRE_MODE,IMPRESSION,**args):
-  """
-     Ecriture de la macro MACRO_MODE_MECA
-  """
-  from Accas import _F
-  ier=0
-    
-  #  on protege le contenu du mot cle NORM_MODE pour eviter les confusions
-  #  avec la commande du meme nom
-  
-  normode=NORM_MODE
-  
-  # On importe les definitions des commandes a utiliser dans la macro
-  MODE_ITER_SIMULT  =self.get_cmd('MODE_ITER_SIMULT')
-  NORM_MODE         =self.get_cmd('NORM_MODE')
-  IMPR_RESU         =self.get_cmd('IMPR_RESU')
-  EXTR_MODE         =self.get_cmd('EXTR_MODE')
-  DETRUIRE          =self.get_cmd('DETRUIRE')
-  # La macro compte pour 1 dans la numerotation des commandes
-  self.set_icmd(1)
-
-  nompro=None
-  iocc=0
-  if CALC_FREQ['FREQ']:
-     nnfreq=len(CALC_FREQ['FREQ'])
-  else:
-     lborne=[]
-     nnfreq= CALC_FREQ['NB_BLOC_FREQ']+1
-     zlborn=(CALC_FREQ['FREQ_MAX']-CALC_FREQ['FREQ_MIN'])/(nnfreq-1)
-     for i in range(0,nnfreq):
-         lborne.append(CALC_FREQ['FREQ_MIN']+i*zlborn)
-
-  motscles={}
-  motscles['FILTRE_MODE']=[]
-  for i in range(0,nnfreq-1):
-     motscit={}
-     motscfa={}
-     if CALC_FREQ['DIM_SOUS_ESPACE']: motscfa['DIM_SOUS_ESPACE']=CALC_FREQ['DIM_SOUS_ESPACE']
-     if CALC_FREQ['COEF_DIM_ESPACE']: motscfa['COEF_DIM_ESPACE']=CALC_FREQ['COEF_DIM_ESPACE']
-     if CALC_FREQ['FREQ']:
-        motscfa['FREQ']=(CALC_FREQ['FREQ'][i],CALC_FREQ['FREQ'][i+1])
-     else:
-        motscfa['FREQ']=(lborne[i],lborne[i+1])
-     motscit['CALC_FREQ']=_F(OPTION          ='BANDE',
-                             SEUIL_FREQ      =CALC_FREQ['SEUIL_FREQ'],
-                             NPREC_SOLVEUR   =CALC_FREQ['NPREC_SOLVEUR'],
-                             NMAX_ITER_SHIFT =CALC_FREQ['NMAX_ITER_SHIFT'],
-                             PREC_SHIFT      =CALC_FREQ['PREC_SHIFT'],
-                             **motscfa)
-     motscit['VERI_MODE']=_F(STOP_ERREUR=VERI_MODE['STOP_ERREUR'],
-                             SEUIL      =VERI_MODE['SEUIL'],
-                             STURM      =VERI_MODE['STURM'],
-                             PREC_SHIFT =VERI_MODE['PREC_SHIFT'])
-     motscit['STOP_FREQ_VIDE']=CALC_FREQ['STOP_FREQ_VIDE']
-
-     if METHODE=='TRI_DIAG':
-        if args.has_key('NMAX_ITER_ORTHO'):
-           motscit['NMAX_ITER_ORTHO'] =args['NMAX_ITER_ORTHO']
-        if args.has_key('PREC_ORTHO'):
-           motscit['PREC_ORTHO']      =args['PREC_ORTHO']
-        if args.has_key('PREC_LANCZOS'):
-           motscit['PREC_LANCZOS']    =args['PREC_LANCZOS']
-        if args.has_key('MAX_ITER_QR'):
-           motscit['NMAX_ITER_QR']    =args['NMAX_ITER_QR']
-     elif METHODE=='JACOBI':
-        if args.has_key('NMAX_ITER_BATHE'):
-           motscit['NMAX_ITER_BATHE'] =args['NMAX_ITER_BATHE']
-        if args.has_key('PREC_BATHE'):
-           motscit['PREC_BATHE']      =args['PREC_BATHE']
-        if args.has_key('NMAX_ITER_JACOBI'):
-           motscit['NMAX_ITER_JACOBI']=args['NMAX_ITER_JACOBI']
-        if args.has_key('PREC_JACOBI'):
-           motscit['PREC_JACOBI']     =args['PREC_JACOBI']
-     elif METHODE=='SORENSEN':
-        if args.has_key('NMAX_ITER_SOREN'):
-           motscit['NMAX_ITER_SOREN'] =args['NMAX_ITER_SOREN']
-        if args.has_key('PARA_ORTHO_SOREN'):
-           motscit['PARA_ORTHO_SOREN']=args['PARA_ORTHO_SOREN']
-        if args.has_key('PREC_SOREN'):
-           motscit['PREC_SOREN']      =args['PREC_SOREN']
-
-     __nomre0=MODE_ITER_SIMULT(MATR_A  =MATR_A,
-                                  MATR_B  =MATR_B,
-                                  INFO    =INFO,
-                                  METHODE =METHODE,
-                                  OPTION  =OPTION,
-                                  **motscit)
-
-     __nomre0=NORM_MODE(reuse     =__nomre0,
-                        MASS_INER =normode['MASS_INER'],
-                        MODE      =__nomre0,
-                        NORME     =normode['NORME'],
-                        INFO      =normode['INFO'],)
-
-     if IMPRESSION['TOUT_PARA']=='OUI':
-        IMPR_RESU(RESU=_F(RESULTAT=__nomre0,
-                          TOUT_ORDRE='OUI',
-                          TOUT_CHAM ='NON',
-                          TOUT_PARA ='OUI',) )
-
-     if FILTRE_MODE :
-        motscles['FILTRE_MODE'].append(_F(MODE      =__nomre0,
-                                          CRIT_EXTR =FILTRE_MODE['CRIT_EXTR'],
-                                          SEUIL     =FILTRE_MODE['SEUIL'], ))
-     else:
-        motscles['FILTRE_MODE'].append(_F(MODE      =__nomre0,
-                                          TOUT_ORDRE='OUI',) )
-     
-
-  motscles['IMPRESSION']=_F(CUMUL    =IMPRESSION['CUMUL'],
-                            CRIT_EXTR=IMPRESSION['CRIT_EXTR'],)
-  self.DeclareOut('nomres',self.sd)
-  nomres=EXTR_MODE(**motscles)
-  DETRUIRE(CONCEPT=_F(NOM='__nomre0',),ALARME='NON')
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA81/Macro/macro_proj_base_ops.py
deleted file mode 100644 (file)
index 589dde0..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#@ MODIF macro_proj_base_ops Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,PROFIL,**args):
-  """
-     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.set_icmd(1)
-
-  _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL)
-  if MATR_ASSE_GENE:
-    for m in MATR_ASSE_GENE:
-      motscles={}
-      if   m['MATR_ASSE']     :  motscles['MATR_ASSE']     =m['MATR_ASSE']
-      elif m['MATR_ASSE_GENE']:  motscles['MATR_ASSE_GENE']=m['MATR_ASSE_GENE']
-      else:
-          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)
-
-  if VECT_ASSE_GENE:
-    _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=PROFIL)
-    for v in VECT_ASSE_GENE:
-      motscles={}
-      if   v['VECT_ASSE']     :  motscles['VECT_ASSE']     =v['VECT_ASSE']
-      elif v['VECT_ASSE_GENE']:  motscles['VECT_ASSE_GENE']=v['VECT_ASSE_GENE']
-      else:
-          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)
-
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/post_k1_k2_k3_ops.py b/Aster/Cata/cataSTA81/Macro/post_k1_k2_k3_ops.py
deleted file mode 100644 (file)
index 5f3f553..0000000
+++ /dev/null
@@ -1,891 +0,0 @@
-#@ MODIF post_k1_k2_k3_ops Macro  DATE 22/05/2006   AUTEUR REZETTE C.REZETTE 
-# -*- coding: iso-8859-1 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-def veri_tab(tab,nom,ndim) :
-   from Utilitai.Utmess     import UTMESS
-   macro = 'POST_K1_K2_K3'
-   for label in ('DX','DY','COOR_X','COOR_Y','ABSC_CURV') :
-       if label not in tab.para :
-          message='le label '+label+' doit etre present dans la table : '+nom
-          UTMESS('F', macro, message)
-   if ndim==3 :
-      if 'DZ'     not in tab.para :
-          message='le label DZ doit etre present dans la table : '+nom
-          UTMESS('F', macro, message)
-      if 'COOR_Z' not in tab.para :
-          message='le label COOR_Z doit etre present dans la table : '+nom
-          UTMESS('F', macro, message)
-
-def cross_product(a,b):
-    cross = [0]*3
-    cross[0] = a[1]*b[2]-a[2]*b[1]
-    cross[1] = a[2]*b[0]-a[0]*b[2]
-    cross[2] = a[0]*b[1]-a[1]*b[0]
-    return cross
-    
-def post_k1_k2_k3_ops(self,MODELISATION,FOND_FISS,MATER,RESULTAT,
-                   TABL_DEPL_SUP,TABL_DEPL_INF,ABSC_CURV_MAXI,PREC_VIS_A_VIS,
-                   TOUT_ORDRE,NUME_ORDRE,LIST_ORDRE,INST,LIST_INST,SYME_CHAR,
-                   INFO,VECT_K1,TITRE,**args):
-   """
-   Macro POST_K1_K2_K3
-   Calcul des facteurs d'intensité de contraintes en 2D et en 3D
-   par extrapolation des sauts de déplacements sur les lèvres de
-   la fissure. Produit une table.
-   """
-   import aster
-   import string
-   import copy
-   import math
-   import Numeric
-   from Numeric import array,asarray,Float,sqrt,matrixmultiply,transpose,sign,resize,dot,multiply
-   from math import pi
-   from types import ListType, TupleType
-   from Accas import _F
-   from Utilitai.Table      import Table, merge
-   EnumTypes = (ListType, TupleType)
-
-   macro = 'POST_K1_K2_K3'
-   from Accas               import _F
-   from Utilitai.Utmess     import UTMESS
-
-   ier = 0
-   # La macro compte pour 1 dans la numerotation des commandes
-   self.set_icmd(1)
-
-   # Le concept sortant (de type table_sdaster ou dérivé) est tab
-   self.DeclareOut('tabout', self.sd)
-   
-   # On importe les definitions des commandes a utiliser dans la macro
-   # Le nom de la variable doit etre obligatoirement le nom de la commande
-   CREA_TABLE    = self.get_cmd('CREA_TABLE')
-   CALC_TABLE    = self.get_cmd('CALC_TABLE')
-   IMPR_TABLE    = self.get_cmd('IMPR_TABLE')
-   POST_RELEVE_T    = self.get_cmd('POST_RELEVE_T')
-   DETRUIRE      = self.get_cmd('DETRUIRE')
-   MACR_LIGN_COUPE      = self.get_cmd('MACR_LIGN_COUPE')
-
-#   ------------------------------------------------------------------
-#                         CARACTERISTIQUES MATERIAUX
-#   ------------------------------------------------------------------
-   matph = aster.getvectjev( string.ljust(MATER.nom,8)+'.MATERIAU.NOMRC         ')
-   phenom=None
-   for cmpt in matph :
-       if cmpt[:4]=='ELAS' :
-          phenom=cmpt
-          break
-   if phenom==None : UTMESS('F', macro, 'IL FAUT DEFINIR ELAS DANS DEFI_MATERIAU')
-#   --- RECHERCHE SI LE MATERIAU DEPEND DE LA TEMPERATURE:
-   valk = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALK')
-   valk = [x.strip() for x in valk]
-   valr = aster.getvectjev( string.ljust(MATER.nom,8)+'.'+phenom[:10]+'.VALR')
-   dicmat=dict(zip(valk,valr))
-#   --- PROPRIETES MATERIAUX DEPENDANTES DE LA TEMPERATURE
-   Tempe3D = False
-   if dicmat.has_key('TEMP_DEF') and FOND_FISS and RESULTAT : 
-# on recupere juste le nom du resultat thermique
-      ndim   = 3
-      Lchar = aster.getvectjev(string.ljust(RESULTAT.nom,8)+'.0000.EXCIT.LCHA        ')
-      for i in range(len(Lchar)):
-         resuth = aster.getvectjev(Lchar[i][0:8]+'.CHME.TEMPE.TEMP        ')
-         if resuth !=None :
-            Tempe3D = True
-            break
-   elif dicmat.has_key('TEMP_DEF') and not Tempe3D :
-      message = 'LES PROPRIETES MATERIAUX, NECESSAIRES AUX CALCULS \n'
-      message = message +'DES COEFFICIENTS D INTENSITE DES CONTRAINTES, ONT ETE OBTENUES A LA\n'
-      message = message +'TEMPERATURE DE REFERENCE DU MATERIAU ET NON A LA TEMPERATURE CALCULEE.'
-      UTMESS('A', macro, message)
-      nompar = ('TEMP',)
-      valpar = (dicmat['TEMP_DEF'],)
-      nomres=['E','NU']
-      valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F')
-      e = valres[0]
-      nu = valres[1]
-      
-
-#   --- PROPRIETES MATERIAUX INDEPENDANTES DE LA TEMPERATURE
-   else :
-      e  = dicmat['E']
-      nu = dicmat['NU']  
-   
-   if not Tempe3D :
-      coefd3 = 0.
-      coefd  = e * sqrt(2.*pi)
-      unmnu2 = 1. - nu**2
-      unpnu  = 1. + nu
-      if MODELISATION=='3D' :
-         UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2 K3')
-         ndim   = 3
-         coefd  = coefd      / ( 8.0 * unmnu2 )
-         coefd3 = e*sqrt(2*pi) / ( 8.0 * unpnu )
-         coefg  = unmnu2 / e
-         coefg3 = unpnu  / e
-      elif MODELISATION=='AXIS' :
-         ndim   = 2
-         coefd  = coefd  / ( 8. * unmnu2 )
-         coefg  = unmnu2 / e
-         coefg3 = unpnu  / e
-      elif MODELISATION=='D_PLAN' :
-         UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2')
-         ndim   = 2
-         coefd  = coefd / ( 8. * unmnu2 )
-         coefg  = unmnu2 / e
-         coefg3 = unpnu  / e
-      elif MODELISATION=='C_PLAN' :
-         UTMESS('I', macro, 'l operateur CALC_G -option CALC_K_G- calcule plus precisement les K1 K2')
-         ndim   = 2
-         coefd  = coefd / 8.
-         coefg  = 1. / e
-         coefg3 = unpnu / e
-      else :
-         UTMESS('F', macro, 'modélisation non implantée')
-
-
-#   ------------------------------------------------------------------
-#                        CAS FOND_FISS
-#   ------------------------------------------------------------------
-   if FOND_FISS : 
-      MAILLAGE = args['MAILLAGE']
-      NOEUD = args['NOEUD']
-      SANS_NOEUD = args['SANS_NOEUD']
-      GROUP_NO = args['GROUP_NO']
-      SANS_GROUP_NO = args['SANS_GROUP_NO']
-      TOUT = args['TOUT']
-      TYPE_MAILLAGE = args['TYPE_MAILLAGE']
-      NB_NOEUD_COUPE = args['NB_NOEUD_COUPE']
-      LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND      .NOEU        ')
-      RECOL = False
-# Cas double fond de fissure : par convention les noeuds sont ceux de fond_inf
-      if LNOFO==None :
-         RECOL = True
-         LNOFO = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND_INF  .NOEU        ')
-         if LNOFO==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DES NOEUDS DU FOND DE FISSURE')
-      LNOFO = map(string.rstrip,LNOFO)
-      Nbfond = len(LNOFO)
-
-#   ----------Mots cles TOUT, NOEUD, SANS_NOEUD -------------
-      Typ = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.FOND      .TYPE        ')
-      if (Typ[0]=='SEG2    ') or (Typ[0]=='SEG3    ' and TOUT=='OUI') :
-         pas = 1
-      elif (Typ[0]=='SEG3    ') : 
-         pas = 2
-      else :
-         UTMESS('F', macro, 'TYPE DE MAILLES DU FOND DE FISSURE NON DEFINI')
-####
-      NO_SANS = []
-      NO_AVEC = []
-      if GROUP_NO!=None :
-        collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO')
-        cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE')
-        if type(GROUP_NO) not in EnumTypes : GROUP_NO = (GROUP_NO,)
-        for m in range(len(GROUP_NO)) :
-          ngrno=GROUP_NO[m].ljust(8).upper()
-          if ngrno not in collgrno.keys() :
-            UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE")
-          for i in range(len(collgrno[ngrno])) : NO_AVEC.append(cnom[collgrno[ngrno][i]-1])
-        NO_AVEC= map(string.rstrip,NO_AVEC)
-      if NOEUD!=None : 
-        if type(NOEUD) not in EnumTypes : NO_AVEC = (NOEUD,)
-        else : NO_AVEC = NOEUD
-      if SANS_GROUP_NO!=None :
-        collgrno=aster.getcolljev(string.ljust(MAILLAGE.nom,8)+'.GROUPENO')
-        cnom = aster.getvectjev(string.ljust(MAILLAGE.nom,8)+'.NOMNOE')
-        if type(SANS_GROUP_NO) not in EnumTypes : SANS_GROUP_NO = (SANS_GROUP_NO,)
-        for m in range(len(SANS_GROUP_NO)) :
-          ngrno=SANS_GROUP_NO[m].ljust(8).upper()
-          if ngrno not in collgrno.keys() :
-            UTMESS('F', macro, "LE GROUP_NO "+ngrno+" N EST PAS DANS LE MAILLAGE")
-          for i in range(len(collgrno[ngrno])) : NO_SANS.append(cnom[collgrno[ngrno][i]-1])
-        NO_SANS= map(string.rstrip,NO_SANS)
-      if SANS_NOEUD!=None : 
-        if type(SANS_NOEUD) not in EnumTypes : NO_SANS = (SANS_NOEUD,)
-        else : NO_SANS = SANS_NOEUD
-# Creation de la liste des noeuds du fond a traiter : Lnf1
-      Lnf1 = []
-      Nbf1 = 0
-      if len(NO_AVEC)!=0 :
-        for i in range(len(NO_AVEC)) :
-          if NO_AVEC[i] in LNOFO : 
-            Lnf1.append(NO_AVEC[i])
-            Nbf1 = Nbf1 +1
-          else : 
-            UTMESS('F', macro, 'LE NOEUD %s N APPARTIENT PAS AU FOND DE FISSURE'%NO_AVEC[i])
-      else :
-         for i in range(0,Nbfond,pas) :
-            if not (LNOFO[i] in NO_SANS) :
-               Lnf1.append(LNOFO[i])
-               Nbf1 = Nbf1 +1
-
-##### Cas maillage libre###########
-# creation des directions normales et macr_lign_coup
-      if TYPE_MAILLAGE =='LIBRE':
-        if not RESULTAT : UTMESS('F', macro, 'MOT CLE RESULTAT OBLIGATOIRE POUR TYPE_MAILLAGE = LIBRE')
-        Lnofon = Lnf1
-        Nbnofo = Nbf1
-        ListmaS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVRESUP  .MAIL        ')
-        if SYME_CHAR=='SANS':
-          ListmaI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.LEVREINF  .MAIL        ')
-        __NCOFON=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds du fond',
-                                            NOEUD=LNOFO,
-                                            RESULTAT=RESULTAT,
-                                            NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',),
-                                            OPERATION='EXTRACTION',),);
-        tcoorf=__NCOFON.EXTR_TABLE()
-        DETRUIRE(CONCEPT=_F(NOM=__NCOFON),INFO=1) 
-        nbt = len(tcoorf['NOEUD'].values()['NOEUD'])
-        xs=array(tcoorf['COOR_X'].values()['COOR_X'][:nbt],Float)
-        ys=array(tcoorf['COOR_Y'].values()['COOR_Y'][:nbt],Float)
-        if ndim==2 : zs=Numeric.zeros(nbval,Float)
-        elif ndim==3 : zs=array(tcoorf['COOR_Z'].values()['COOR_Z'][:nbt],Float)
-        ns = tcoorf['NOEUD'].values()['NOEUD'][:nbt]
-        ns = map(string.rstrip,ns)
-        l_coorf =  [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)]
-        l_coorf = [(i[0],i[1:]) for i in l_coorf]
-        d_coorf = dict(l_coorf) 
-# Calcul des normales a chaque noeud du fond
-        v1 =  array(VECT_K1)
-        VN = [None]*Nbfond
-        absfon = [0,]
-        DTANOR = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_ORIGINE')
-        if DTANOR != None :
-          VN[0] = array(DTANOR)
-        else :
-          Pfon2 = array([d_coorf[LNOFO[0]][0],d_coorf[LNOFO[0]][1],d_coorf[LNOFO[0]][2]])
-          Pfon3 = array([d_coorf[LNOFO[1]][0],d_coorf[LNOFO[1]][1],d_coorf[LNOFO[1]][2]])
-          VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2))
-          VN[i] = array(cross_product(VT,v1))
-        for i in range(1,Nbfond-1):
-          Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]])
-          Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]])
-          Pfon3 = array([d_coorf[LNOFO[i+1]][0],d_coorf[LNOFO[i+1]][1],d_coorf[LNOFO[i+1]][2]])
-          absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
-          absfon.append(absf)
-          VT = (Pfon3 - Pfon2)/sqrt(dot(transpose(Pfon3-Pfon2),Pfon3-Pfon2))
-          VT = VT+(Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1))
-          VN[i] = array(cross_product(VT,v1)) 
-          VN[i] = VN[i]/sqrt(dot(transpose(VN[i]),VN[i]))
-        i = Nbfond-1
-        Pfon1 = array([d_coorf[LNOFO[i-1]][0],d_coorf[LNOFO[i-1]][1],d_coorf[LNOFO[i-1]][2]])
-        Pfon2 = array([d_coorf[LNOFO[i]][0],d_coorf[LNOFO[i]][1],d_coorf[LNOFO[i]][2]])
-        absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i-1]
-        absfon.append(absf)
-        DTANEX = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.DTAN_EXTREMITE')
-        if DTANEX != None :
-          VN[i] = array(DTANEX)
-        else :
-          VT = (Pfon2 - Pfon1)/sqrt(dot(transpose(Pfon2-Pfon1),Pfon2-Pfon1))
-          VN[i] = array(cross_product(VT,v1))
-        dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)])  
-        dicVN = dict([(LNOFO[i],VN[i]) for i in range(Nbfond)])
-#Extraction dep sup/inf sur les normales          
-        TlibS = [None]*Nbf1
-        TlibI = [None]*Nbf1
-        if NB_NOEUD_COUPE < 3 : 
-          message = 'LE NOMBRE DE NOEUDS NB_NOEUD_COUPE DOIT ETRE SUPERIEUR A 3 : ON PREND LA VALEUR PAR DEFAUT'
-          UTMESS('A', macro, message)
-          NB_NOEUD_COUPE = 5
-        MOD = aster.getvectjev(string.ljust(RESULTAT.nom,19)+'.MODL        ')
-        if MOD==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DU MODELE DANS LA SD RESULTAT FOURNIE')
-        MOD = map(string.rstrip,MOD)
-        MODEL = self.jdc.sds_dict[MOD[0]]
-        for i in range(Nbf1):
-          Porig = array(d_coorf[Lnf1[i]] )
-          Pextr = Porig - ABSC_CURV_MAXI*dicVN[Lnf1[i]]
-          TlibS[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT,
-                NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaS,
-                LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],),
-                                          COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),),);
-          if SYME_CHAR=='SANS':
-            TlibI[i] = MACR_LIGN_COUPE(RESULTAT=RESULTAT,
-                  NOM_CHAM='DEPL',MODELE=MODEL, MAILLE = ListmaI,
-                LIGN_COUPE=_F(NB_POINTS=NB_NOEUD_COUPE,COOR_ORIG=(Porig[0],Porig[1],Porig[2],),
-                                          COOR_EXTR=(Pextr[0],Pextr[1],Pextr[2]),),);
-
-
-##### Cas maillage regle###########
-      else:
-#   ---------- Dictionnaires des levres  -------------  
-        NnormS = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.SUPNORM   .NOEU        ')
-        if NnormS==None : UTMESS('F', macro, 'PROBLEME A LA RECUPERATION DES NOEUDS DES LEVRES')
-        NnormS = map(string.rstrip,NnormS)
-        if LNOFO[0]==LNOFO[-1] : Nbfond=Nbfond-1  # Cas fond de fissure ferme
-        NnormS = [[LNOFO[i],NnormS[i*20:(i+1)*20]] for i in range(0,Nbfond)]
-        NnormS = [(i[0],i[1][0:]) for i in NnormS]
-        dicoS = dict(NnormS)
-        if SYME_CHAR=='SANS':
-           NnormI = aster.getvectjev(string.ljust(FOND_FISS.nom,8)+'.INFNORM   .NOEU        ')
-           NnormI = map(string.rstrip,NnormI)
-           NnormI = [[LNOFO[i],NnormI[i*20:(i+1)*20]] for i in range(0,Nbfond)]
-           NnormI = [(i[0],i[1][0:]) for i in NnormI]
-           dicoI = dict(NnormI)
-
-#   ---------- Dictionnaire des coordonnees  -------------  
-        if RESULTAT :
-          Ltot = LNOFO
-          for i in range(Nbf1) :
-            for k in range(0,20) :
-              if dicoS[Lnf1[i]][k] !='': Ltot.append(dicoS[Lnf1[i]][k])
-          if SYME_CHAR=='SANS':
-            for i in range(Nbf1) :
-              for k in range(0,20) :
-                if dicoI[Lnf1[i]][k] !='': Ltot.append(dicoI[Lnf1[i]][k])
-          Ltot=dict([(i,0) for i in Ltot]).keys()
-          __NCOOR=POST_RELEVE_T(ACTION=_F(INTITULE='Tab pour coordonnees noeuds des levres',
-                                            NOEUD=Ltot,
-                                            RESULTAT=RESULTAT,
-                                            NOM_CHAM='DEPL',NUME_ORDRE=1,NOM_CMP=('DX',),
-                                            OPERATION='EXTRACTION',),);
-          tcoor=__NCOOR.EXTR_TABLE()
-          DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1)  
-        else :  
-          if SYME_CHAR=='SANS':
-            __NCOOR=CALC_TABLE(TABLE=TABL_DEPL_SUP,
-                        ACTION=_F(OPERATION = 'COMB',NOM_PARA='NOEUD',TABLE=TABL_DEPL_INF,))
-            tcoor=__NCOOR.EXTR_TABLE()
-            DETRUIRE(CONCEPT=_F(NOM=__NCOOR),INFO=1)  
-          else :
-            tcoor=TABL_DEPL_SUP.EXTR_TABLE()
-        nbt = len(tcoor['NOEUD'].values()['NOEUD'])
-        xs=array(tcoor['COOR_X'].values()['COOR_X'][:nbt],Float)
-        ys=array(tcoor['COOR_Y'].values()['COOR_Y'][:nbt],Float)
-        if ndim==2 : zs=Numeric.zeros(nbval,Float)
-        elif ndim==3 : zs=array(tcoor['COOR_Z'].values()['COOR_Z'][:nbt],Float)
-        ns = tcoor['NOEUD'].values()['NOEUD'][:nbt]
-        ns = map(string.rstrip,ns)
-        l_coor =  [[ns[i],xs[i],ys[i],zs[i]] for i in range(0,nbt)]
-        l_coor = [(i[0],i[1:]) for i in l_coor]
-        d_coor = dict(l_coor)
-
-#   ---------- Abscisse curviligne du fond  -------------  
-        absfon = [0,]
-        for i in range(Nbfond-1) :
-          Pfon1 = array([d_coor[LNOFO[i]][0],d_coor[LNOFO[i]][1],d_coor[LNOFO[i]][2]])
-          Pfon2 = array([d_coor[LNOFO[i+1]][0],d_coor[LNOFO[i+1]][1],d_coor[LNOFO[i+1]][2]])
-          absf = sqrt(dot(transpose(Pfon1-Pfon2),Pfon1-Pfon2)) + absfon[i]
-          absfon.append(absf)
-        dicoF = dict([(LNOFO[i],absfon[i]) for i in range(Nbfond)])
-
-     
-# ---Noeuds LEVRE_SUP et LEVRE_INF: ABSC_CURV_MAXI et PREC_VIS_A_VIS-----
-   
-        NBTRLS = 0
-        NBTRLI = 0
-        Lnosup = [None]*Nbf1
-        Lnoinf = [None]*Nbf1
-        Nbnofo = 0
-        Lnofon = []
-        precv = PREC_VIS_A_VIS
-        if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI
-        else                   : rmax = 100
-        precn = precv * rmax
-        rmprec= rmax*(1.+precv/10.)
-        for i in range(0,Nbf1) :
-           Pfon = array([d_coor[Lnf1[i]][0],d_coor[Lnf1[i]][1],d_coor[Lnf1[i]][2]])
-           Tmpsup = []
-           Tmpinf = []
-           itots = 0
-           itoti = 0
-           NBTRLS = 0
-           NBTRLI = 0
-           for k in range(0,20) :
-              if dicoS[Lnf1[i]][k] !='':
-                 itots = itots +1
-                 Nsup =  dicoS[Lnf1[i]][k]
-                 Psup = array([d_coor[Nsup][0],d_coor[Nsup][1],d_coor[Nsup][2]])
-                 abss = sqrt(dot(transpose(Pfon-Psup),Pfon-Psup))
-                 if abss<rmprec :
-                    NBTRLS = NBTRLS +1
-                    Tmpsup.append(dicoS[Lnf1[i]][k])
-              if SYME_CHAR=='SANS':
-                 if dicoI[Lnf1[i]][k] !='':
-                    itoti = itoti +1
-                    Ninf =  dicoI[Lnf1[i]][k]
-                    Pinf = array([d_coor[Ninf][0],d_coor[Ninf][1],d_coor[Ninf][2]])
-                    absi = sqrt(dot(transpose(Pfon-Pinf),Pfon-Pinf))
-# On verifie que les noeuds sont en vis a vis
-                    if abss<rmprec :
-                      dist = sqrt(dot(transpose(Psup-Pinf),Psup-Pinf))
-                      if dist>precn : 
-                        message= 'LES NOEUDS NE SONT PAS EN VIS-A-VIS \n'
-                        message=message+'DANS LE PLAN PERPENDICULAIRE AU NOEUD %s \n'%Lnf1[i]
-                        UTMESS('A', macro, message)
-                      else :
-                        NBTRLI = NBTRLI +1
-                        Tmpinf.append(dicoI[Lnf1[i]][k])
-# On verifie qu il y a assez de noeuds
-           if NBTRLS < 3 : 
-              message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n'
-              message=message+'SUPERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i]
-              if itots<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n'
-              else : message=message+' Augmenter ABSC_CURV_MAXI'
-              if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES'
-              UTMESS('A',macro, message)
-           elif (SYME_CHAR=='SANS') and (NBTRLI < 3) :
-              message= 'IL MANQUE DES POINTS DANS LE PLAN DEFINI PAR LA LEVRE \n'
-              message=message+'INFERIEURE ET PERPENDICULAIRE AU FOND %s :\n'%Lnf1[i]
-              if itoti<3 : message=message+' Augmenter PREC_NORM dans DEFI_FOND_FISS \n'
-              else : message=message+' Augmenter ABSC_CURV_MAXI'
-              if Lnf1[i]==LNOFO[0] or Lnf1[i]==LNOFO[-1]: message=message+' OU VERIFIER LES TANGENTES EXTREMITES'
-              UTMESS('A',macro, message)
-           else :
-              Lnosup[Nbnofo] = Tmpsup
-              if SYME_CHAR=='SANS' : Lnoinf[Nbnofo] = Tmpinf
-              Lnofon.append(Lnf1[i])
-              Nbnofo = Nbnofo+1
-              
-   else :
-     Nbnofo = 1
-  
-#   ----------Recuperation de la temperature au fond -------------  
-   if Tempe3D :
-      resuth = map(string.rstrip,resuth)
-      Rth = self.jdc.sds_dict[resuth[0]]
-      __TEMP=POST_RELEVE_T(ACTION=_F(INTITULE='Temperature fond de fissure',
-                                       NOEUD=Lnofon,TOUT_CMP='OUI',
-                                       RESULTAT=Rth,NOM_CHAM='TEMP',TOUT_ORDRE='OUI',
-                                       OPERATION='EXTRACTION',),);
-      tabtemp=__TEMP.EXTR_TABLE()
-      DETRUIRE(CONCEPT=_F(NOM=__TEMP),INFO=1) 
-   
-
-#   ------------------------------------------------------------------
-#                         BOUCLE SUR NOEUDS DU FOND
-#   ------------------------------------------------------------------
-   for ino in range(0,Nbnofo) :
-      if FOND_FISS and INFO==2 :
-            texte="\n\n--> TRAITEMENT DU NOEUD DU FOND DE FISSURE: %s"%Lnofon[ino]
-            aster.affiche('MESSAGE',texte)
-#   ------------------------------------------------------------------
-#                         TABLE 'DEPSUP'
-#   ------------------------------------------------------------------
-      if FOND_FISS : 
-         if TYPE_MAILLAGE =='LIBRE':
-            tabsup=TlibS[ino].EXTR_TABLE()
-            DETRUIRE(CONCEPT=_F(NOM=TlibS[ino]),INFO=1)
-         elif RESULTAT :
-            __TSUP=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement SUP',
-                                          NOEUD=Lnosup[ino],
-                                          RESULTAT=RESULTAT,
-                                          NOM_CHAM='DEPL',
-                                          TOUT_ORDRE='OUI',
-                                          NOM_CMP=('DX','DY','DZ',),
-                                          OPERATION='EXTRACTION',),);
-            tabsup=__TSUP.EXTR_TABLE()
-            DETRUIRE(CONCEPT=_F(NOM=__TSUP),INFO=1)      
-         else :
-            tabsup=TABL_DEPL_SUP.EXTR_TABLE()
-            veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim)
-            Ls = [string.ljust(Lnosup[ino][i],8) for i in range(len(Lnosup[ino]))]
-            tabsup=tabsup.NOEUD==Ls
-      else :
-         tabsup=TABL_DEPL_SUP.EXTR_TABLE()
-         veri_tab(tabsup,TABL_DEPL_SUP.nom,ndim)
-
-#   ------------------------------------------------------------------
-#                          TABLE 'DEPINF'
-#   ------------------------------------------------------------------
-      if SYME_CHAR=='SANS': 
-         if FOND_FISS : 
-            if TYPE_MAILLAGE =='LIBRE':
-               tabinf=TlibI[ino].EXTR_TABLE()
-               DETRUIRE(CONCEPT=_F(NOM=TlibI[ino]),INFO=1)
-            elif RESULTAT :
-               __TINF=POST_RELEVE_T(ACTION=_F(INTITULE='Deplacement INF',
-                                          NOEUD=Lnoinf[ino],
-                                          RESULTAT=RESULTAT,
-                                          NOM_CHAM='DEPL',
-                                          TOUT_ORDRE='OUI',
-                                          NOM_CMP=('DX','DY','DZ',),
-                                          OPERATION='EXTRACTION',),);
-               tabinf=__TINF.EXTR_TABLE()   
-               DETRUIRE(CONCEPT=_F(NOM=__TINF),INFO=1)                 
-            else :
-               tabinf=TABL_DEPL_INF.EXTR_TABLE()
-               if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS')
-               veri_tab(tabinf,TABL_DEPL_INF.nom,ndim)
-               Li = [string.ljust(Lnoinf[ino][i],8) for i in range(len(Lnoinf[ino]))]
-               tabinf=tabinf.NOEUD==Li
-         else :
-            if TABL_DEPL_INF==None : UTMESS('F', macro, 'TABL_DEPL_SUP et TABL_DEPL_INF sont obligatoires si SYME_CHAR=SANS')
-            tabinf=TABL_DEPL_INF.EXTR_TABLE()
-            veri_tab(tabinf,TABL_DEPL_INF.nom,ndim)
-
-
-#   ------------------------------------------------------------------
-#               LES INSTANTS DE POST-TRAITEMENT
-#   ------------------------------------------------------------------
-      if 'INST' in tabsup.para : 
-         l_inst=None
-         l_inst_tab=tabsup['INST'].values()['INST']
-         l_inst_tab=dict([(i,0) for i in l_inst_tab]).keys() #elimine les doublons
-         if LIST_ORDRE !=None or NUME_ORDRE !=None :
-           l_ord_tab = tabsup['NUME_ORDRE'].values()['NUME_ORDRE']
-           l_ord_tab=dict([(i,0) for i in l_ord_tab]).keys() 
-           d_ord_tab= [[l_ord_tab[i],l_inst_tab[i]] for i in range(0,len(l_ord_tab))]
-           d_ord_tab= [(i[0],i[1]) for i in d_ord_tab]
-           d_ord_tab = dict(d_ord_tab)
-           if NUME_ORDRE !=None : 
-             if type(NUME_ORDRE) not in EnumTypes : NUME_ORDRE=(NUME_ORDRE,)
-             l_ord=list(NUME_ORDRE)
-           elif LIST_ORDRE !=None : 
-              l_ord= aster.getvectjev(string.ljust(LIST_ORDRE.nom,19)+'.VALE') 
-           l_inst = []
-           for ord in l_ord :
-             if ord in l_ord_tab : l_inst.append(d_ord_tab[ord])
-             else :  
-               message ='LE NUMERO D ORDRE %i N A PAS ETE ETE TROUVE DANS LA TABLE\n'%ord 
-               UTMESS('F', macro, message)
-         if INST !=None or LIST_INST !=None :
-            CRITERE = args['CRITERE']
-            PRECISION = args['PRECISION']
-         else :
-            l_inst=l_inst_tab
-            PRECISION = 1.E-6
-            CRITERE='ABSOLU'
-         if        INST !=None : 
-            if type(INST) not in EnumTypes : INST=(INST,)
-            l_inst=list(INST)
-         elif LIST_INST !=None : l_inst=LIST_INST.Valeurs()
-         if      l_inst !=None :
-           for inst in l_inst  :
-               if CRITERE=='RELATIF' and inst!=0.: match=[x for x in l_inst_tab if abs((inst-x)/inst)<PRECISION]
-               else                              : match=[x for x in l_inst_tab if abs(inst-x)<PRECISION]
-               if len(match)==0 : 
-                 message = 'PAS D INSTANT TROUVE DANS LA TABLE POUR L INSTANT %f\n'%inst
-                 UTMESS('F', macro, message)
-               if len(match)>=2 :
-                 message = 'PLUSIEURS INSTANTS TROUVES DANS LA TABLE POUR L INSTANT %f\n'%inst 
-                 UTMESS('F', macro, message)
-         else                  :
-           l_inst  = l_inst_tab
-      else :
-         l_inst  = [None,]
-   
-#   ------------------------------------------------------------------
-#                         BOUCLE SUR LES INSTANTS
-#   ------------------------------------------------------------------
-      for iord in range(len(l_inst)) :
-        inst=l_inst[iord]
-        if INFO==2 and inst!=None:
-            texte="==> INSTANT: %f"%inst
-            aster.affiche('MESSAGE',texte)
-        if inst!=None:
-           if PRECISION == None : PRECISION = 1.E-6
-           if CRITERE == None : CRITERE='ABSOLU'
-           if inst==0. :
-             tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION)
-             if SYME_CHAR=='SANS': tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION)
-           else :
-             tabsupi=tabsup.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION)
-             if SYME_CHAR=='SANS': tabinfi=tabinf.INST.__eq__(VALE=inst,CRITERE=CRITERE,PRECISION=PRECISION)
-        else :
-           tabsupi=tabsup
-           if SYME_CHAR=='SANS': tabinfi=tabinf
-
-#     --- LEVRE SUP :  "ABSC_CURV" CROISSANTES, < RMAX ET DEP ---
-        abscs = getattr(tabsupi,'ABSC_CURV').values()
-        if not FOND_FISS :
-          refs=copy.copy(abscs)
-          refs.sort()
-          if refs!=abscs : UTMESS('F', macro, 'ABSC_CURV NON CROISSANTS POUR TABL_DEPL_INF')
-          if ABSC_CURV_MAXI!=None : rmax = ABSC_CURV_MAXI
-          else                    : rmax = abscs[-1]
-          precv = PREC_VIS_A_VIS
-          rmprec= rmax*(1.+precv/10.)
-          refsc=[x for x in refs if x<rmprec]
-          nbval = len(refsc)
-        else :
-          nbval=len(abscs)
-        abscs=array(abscs[:nbval])
-        coxs=array(tabsupi['COOR_X'].values()['COOR_X'][:nbval],Float)
-        coys=array(tabsupi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
-        if ndim==2 :  cozs=Numeric.zeros(nbval,Float)
-        elif ndim==3 :  cozs=array(tabsupi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
-
-        if FOND_FISS and not RESULTAT : #tri des noeuds avec abscisse
-          Pfon = array([d_coor[Lnofon[ino]][0],d_coor[Lnofon[ino]][1],d_coor[Lnofon[ino]][2]])
-          abscs = sqrt((coxs-Pfon[0])**2+(coys-Pfon[1])**2+(cozs-Pfon[2])**2)
-          tabsupi['Abs_fo'] = abscs
-          tabsupi.sort('Abs_fo')
-          abscs = getattr(tabsupi,'Abs_fo').values()
-          abscs=array(abscs[:nbval])
-          coxs=array(tabsupi['COOR_X'].values()['COOR_X'][:nbval],Float)
-          coys=array(tabsupi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
-          if ndim==2 :  cozs=Numeric.zeros(nbval,Float)
-          elif ndim==3 :  cozs=array(tabsupi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
-          
-        if FOND_FISS and INFO==2 and iord==0 and not TYPE_MAILLAGE =='LIBRE':
-          for ks in range(0,nbval) :
-            texte="NOEUD RETENU POUR LA LEVRE SUP: %s  %f"%(Lnosup[ino][ks],abscs[ks])
-            aster.affiche('MESSAGE',texte)
-        dxs=array(tabsupi['DX'].values()['DX'][:nbval],Float)
-        dys=array(tabsupi['DY'].values()['DY'][:nbval],Float)
-        if ndim==2 : dzs=Numeric.zeros(nbval,Float)
-        elif ndim==3 : dzs=array(tabsupi['DZ'].values()['DZ'][:nbval],Float)
-        
-#     --- LEVRE INF :  "ABSC_CURV" CROISSANTES et < RMAX ---
-        if SYME_CHAR=='SANS': 
-          absci = getattr(tabinfi,'ABSC_CURV').values()
-          if not FOND_FISS :
-            refi=copy.copy(absci)
-            refi.sort()
-            if refi!=absci : UTMESS('F', macro, 'ABSC_CURV NON CROISSANTS POUR TABL_DEPL_SUP')
-            refic=[x for x in refi if x<rmprec]
-            nbvali=len(refic)
-          else :
-            nbvali=len(absci)
-          if nbvali!=nbval :
-             message= 'DIFFERENCE DE POINTS ENTRE LA LEVRE SUPERIEURE ET LA LEVRE INFERIEURE'
-             if FOND_FISS : message=message+' POUR TRAITER LE NOEUD %.s \n'%Lnofon[i]
-             message=message+' Nombre de points - levre superieure : %i\n'%len(refsc)
-             message=message+' Nombre de points - levre inferieure : %i\n'%len(refic)
-             UTMESS('A',macro, message)
-          nbval=min(nbval,nbvali)
-          absci=array(absci[:nbval])
-          coxi=array(tabinfi['COOR_X'].values()['COOR_X'][:nbval],Float)
-          coyi=array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
-          if ndim==2 : cozi=Numeric.zeros(nbval,Float)
-          elif ndim==3 : cozi=array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
-#     --- ON VERIFIE QUE LES NOEUDS SONT EN VIS_A_VIS  (SYME=SANS)   ---
-          if not FOND_FISS :
-            precn = precv * rmax
-            dist=(coxs-coxi)**2+(coys-coyi)**2+(cozs-cozi)**2
-            dist=sqrt(dist)
-            for d in dist :
-               if d>precn : UTMESS('F', macro, 'LES NOEUDS NE SONT PAS EN VIS_A_VIS')
-          
-          if FOND_FISS and not RESULTAT :#tri des noeuds avec abscisse
-            Pfon = array([d_coor[Lnofon[ino]][0],d_coor[Lnofon[ino]][1],d_coor[Lnofon[ino]][2]])
-            absci = sqrt((coxi-Pfon[0])**2+(coyi-Pfon[1])**2+(cozi-Pfon[2])**2)
-            tabinfi['Abs_fo'] = absci
-            tabinfi.sort('Abs_fo')
-            absci = getattr(tabinfi,'Abs_fo').values()
-            absci=array(abscs[:nbval])
-            coxi=array(tabinfi['COOR_X'].values()['COOR_X'][:nbval],Float)
-            coyi=array(tabinfi['COOR_Y'].values()['COOR_Y'][:nbval],Float)
-            if ndim==2 :  cozi=Numeric.zeros(nbval,Float)
-            elif ndim==3 :  cozi=array(tabinfi['COOR_Z'].values()['COOR_Z'][:nbval],Float)
-
-          dxi=array(tabinfi['DX'].values()['DX'][:nbval],Float)
-          dyi=array(tabinfi['DY'].values()['DY'][:nbval],Float)
-          if ndim==2 : dzi=Numeric.zeros(nbval,Float)
-          elif ndim==3 : dzi=array(tabinfi['DZ'].values()['DZ'][:nbval],Float)
-          
-          if FOND_FISS and INFO==2 and iord==0 and not TYPE_MAILLAGE =='LIBRE':
-            for ki in range(0,nbval) :
-               texte="NOEUD RETENU POUR LA LEVRE INF: %s  %f"%(Lnoinf[ino][ki],absci[ki])
-               aster.affiche('MESSAGE',texte)
-
-#     --- TESTS NOMBRE DE NOEUDS---
-        if nbval<3 :
-           message= 'IL FAUT AU MOINS TROIS NOEUDS DANS LE PLAN DEFINI PAR LES LEVRES ET PERPENDICULAIRE AU FOND DE FISSURE'
-           if FOND_FISS : message=message+'Noeud %.s \n'%Lnofon[ino]
-           message=message+' : augmenter ABSC_CURV_MAXI\n'
-           UTMESS('F',macro, message)
-           
-#   ---------- CALCUL PROP. MATERIAU AVEC TEMPERATURE -----------  
-        if Tempe3D :
-           tempeno=tabtemp.NOEUD==Lnofon[ino]
-           tempeno=tempeno.INST.__eq__(VALE=inst,CRITERE='ABSOLU',PRECISION=PRECISION)
-           nompar = ('TEMP',)
-           valpar = (tempeno.TEMP.values()[0],)
-           nomres=['E','NU']
-           valres,codret = MATER.RCVALE('ELAS',nompar,valpar,nomres,'F')
-           e = valres[0]
-           nu = valres[1] 
-           coefd  = e * sqrt(2.*pi)      / ( 8.0 * (1. - nu**2))
-           coefd3 = e*sqrt(2*pi) / ( 8.0 * (1. + nu))
-           coefg  = (1. - nu**2) / e
-           coefg3 = (1. + nu)  / e
-
-#     ------------------------------------------------------------------
-#                           CHANGEMENT DE REPERE
-#     ------------------------------------------------------------------
-#
-#       1 : VECTEUR NORMAL AU PLAN DE LA FISSURE
-#           ORIENTE LEVRE INFERIEURE VERS LEVRE SUPERIEURE
-#       2 : VECTEUR NORMAL AU FOND DE FISSURE EN M
-#       3 : VECTEUR TANGENT AU FOND DE FISSURE EN M
-#
-        if SYME_CHAR=='SANS' :
-           vo =  array([( coxs[-1]+coxi[-1] )/2.,( coys[-1]+coyi[-1] )/2.,( cozs[-1]+cozi[-1] )/2.])
-           ve =  array([( coxs[0 ]+coxi[0 ] )/2.,( coys[0 ]+coyi[0 ] )/2.,( cozs[0 ]+cozi[0 ] )/2.])
-        else :
-           vo = array([ coxs[-1], coys[-1], cozs[-1]])
-           ve = array([ coxs[0], coys[0], cozs[0]])
-        v1 =  array(VECT_K1)
-        v2 =  ve-vo
-        v2 =  v2/sqrt(v2[0]**2+v2[1]**2+v2[2]**2)
-        v1p = sum(v2*v1)
-        v1  = v1-v1p*v2
-        v1  = v1/sqrt(v1[0]**2+v1[1]**2+v1[2]**2)
-        v3  = array([v1[1]*v2[2]-v2[1]*v1[2],v1[2]*v2[0]-v2[2]*v1[0],v1[0]*v2[1]-v2[0]*v1[1]])
-        pgl  = asarray([v1,v2,v3])
-        dpls = asarray([dxs,dys,dzs])
-        dpls = matrixmultiply(pgl,dpls)
-        if SYME_CHAR=='SANS' :
-           dpli = asarray([dxi,dyi,dzi])
-           dpli = matrixmultiply(pgl,dpli)
-        else :
-           dpli = [multiply(dpls[0],-1.),dpls[1],dpls[2]]
-#     ------------------------------------------------------------------
-#                           CALCUL DES K1, K2, K3
-#     ------------------------------------------------------------------
-        saut=(dpls-dpli)
-        isig=sign(transpose(resize(saut[:,-1],(nbval-1,3))))
-        isig=sign(isig+0.001)
-        saut=saut*array([[coefd]*nbval,[coefd]*nbval,[coefd3]*nbval])
-        saut=saut**2
-        ksig = isig[:,1]
-        ksig = array([ksig,ksig])
-        ksig = transpose(ksig)
-        kgsig=resize(ksig,(1,6))[0]
-        if INFO==2 :
-          mcfact=[]
-          mcfact.append(_F(PARA='ABSC_CURV'  ,LISTE_R=abscs.tolist() ))
-          mcfact.append(_F(PARA='DEPL_SUP_DX',LISTE_R=dpls[0].tolist() ))
-          mcfact.append(_F(PARA='DEPL_INF_DX',LISTE_R=dpli[0].tolist() ))
-          mcfact.append(_F(PARA='SAUT_DX'    ,LISTE_R=saut[0].tolist() ))
-          mcfact.append(_F(PARA='DEPL_SUP_DY',LISTE_R=dpls[1].tolist() ))
-          mcfact.append(_F(PARA='DEPL_INF_DY',LISTE_R=dpli[1].tolist() ))
-          mcfact.append(_F(PARA='SAUT_DY'    ,LISTE_R=saut[1].tolist() ))
-          if ndim==3 :
-            mcfact.append(_F(PARA='DEPL_SUP_DZ',LISTE_R=dpls[2].tolist() ))
-            mcfact.append(_F(PARA='DEPL_INF_DZ',LISTE_R=dpli[2].tolist() ))
-            mcfact.append(_F(PARA='SAUT_DZ'    ,LISTE_R=saut[2].tolist() ))
-          __resu0=CREA_TABLE(LISTE=mcfact,TITRE='--> SAUTS')
-          aster.affiche('MESSAGE',__resu0.EXTR_TABLE().__repr__())
-          DETRUIRE(CONCEPT=_F(NOM=__resu0),INFO=1)
-#     ------------------------------------------------------------------
-#                           --- METHODE 1 ---
-#     ------------------------------------------------------------------
-        x1 = abscs[1:-1]
-        x2 = abscs[2:  ]
-        y1 = saut[:,1:-1]/x1
-        y2 = saut[:,2:  ]/x2
-        k  = abs(y1-x1*(y2-y1)/(x2-x1))
-        g  = coefg*(k[0]+k[1])+coefg3*k[2]
-        kg1 = [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
-        kg1 = sqrt(kg1)*kgsig
-        kg1=Numeric.concatenate([kg1,[max(g),min(g)]])
-        vk  = sqrt(k)*isig[:,:-1]
-        if INFO==2 :
-          mcfact=[]
-          mcfact.append(_F(PARA='ABSC_CURV_1' ,LISTE_R=x1.tolist() ))
-          mcfact.append(_F(PARA='ABSC_CURV_2' ,LISTE_R=x2.tolist() ))
-          mcfact.append(_F(PARA='K1'          ,LISTE_R=vk[0].tolist() ))
-          mcfact.append(_F(PARA='K2'          ,LISTE_R=vk[1].tolist() ))
-          if ndim==3 :
-            mcfact.append(_F(PARA='K3'        ,LISTE_R=vk[2].tolist() ))
-          mcfact.append(_F(PARA='G'           ,LISTE_R=g.tolist() ))
-          __resu1=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 1')
-          aster.affiche('MESSAGE',__resu1.EXTR_TABLE().__repr__())
-          DETRUIRE(CONCEPT=_F(NOM=__resu1),INFO=1)
-#     ------------------------------------------------------------------
-#                           --- METHODE 2 ---
-#     ------------------------------------------------------------------
-        x1 = abscs[1: ]
-        y1 = saut[:,1:]
-        k  = abs(y1/x1)
-        g  = coefg*(k[0]+k[1])+coefg3*k[2]
-        kg2= [max(k[0]),min(k[0]),max(k[1]),min(k[1]),max(k[2]),min(k[2])]
-        kg2 = sqrt(kg2)*kgsig
-        kg2=Numeric.concatenate([kg2,[max(g),min(g)]])
-        vk = sqrt(k)*isig
-        if INFO==2 :
-          mcfact=[]
-          mcfact.append(_F(PARA='ABSC_CURV' ,LISTE_R=x1.tolist() ))
-          mcfact.append(_F(PARA='K1'        ,LISTE_R=vk[0].tolist() ))
-          mcfact.append(_F(PARA='K2'        ,LISTE_R=vk[1].tolist() ))
-          if ndim==3 :
-            mcfact.append(_F(PARA='K3'      ,LISTE_R=vk[2].tolist() ))
-          mcfact.append(_F(PARA='G'         ,LISTE_R=g.tolist() ))
-          __resu2=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 2')
-          aster.affiche('MESSAGE',__resu2.EXTR_TABLE().__repr__())
-          DETRUIRE(CONCEPT=_F(NOM=__resu2),INFO=1)
-#     ------------------------------------------------------------------
-#                           --- METHODE 3 ---
-#     ------------------------------------------------------------------
-        x1 = abscs[:-1]
-        x2 = abscs[1: ]
-        y1 = saut[:,:-1]
-        y2 = saut[:,1: ]
-        k  = (sqrt(y2)*sqrt(x2)+sqrt(y1)*sqrt(x1))*(x2-x1)
-        k  = Numeric.sum(transpose(k))
-        de = abscs[-1]
-        vk = (k/de**2)*isig[:,0]
-        g  = coefg*(vk[0]**2+vk[1]**2)+coefg3*vk[2]**2
-        kg3=Numeric.concatenate([[vk[0]]*2,[vk[1]]*2,[vk[2]]*2,[g]*2])
-        if INFO==2 :
-          mcfact=[]
-          mcfact.append(_F(PARA='K1'        ,LISTE_R=vk[0] ))
-          mcfact.append(_F(PARA='K2'        ,LISTE_R=vk[1] ))
-          if ndim==3 :
-            mcfact.append(_F(PARA='K3'      ,LISTE_R=vk[2] ))
-          mcfact.append(_F(PARA='G'         ,LISTE_R=g ))
-          __resu3=CREA_TABLE(LISTE=mcfact,TITRE='--> METHODE 3')
-          aster.affiche('MESSAGE',__resu3.EXTR_TABLE().__repr__())
-          DETRUIRE(CONCEPT=_F(NOM=__resu3),INFO=1)
-#     ------------------------------------------------------------------
-#                           CREATION DE LA TABLE 
-#     ------------------------------------------------------------------
-        kg=array([kg1,kg2,kg3])
-        kg=transpose(kg)
-        mcfact=[]
-        if TITRE != None :
-          titre = TITRE
-        else :
-          v = aster.__version__
-          titre = 'ASTER %s - CONCEPT CALCULE PAR POST_K1_K2_K3 LE &DATE A &HEURE \n'%v
-        if FOND_FISS : 
-          mcfact.append(_F(PARA='NOEUD_FOND',LISTE_K=[Lnofon[ino],]*3))
-          mcfact.append(_F(PARA='ABSC_CURV',LISTE_R=[dicoF[Lnofon[ino]]]*3))
-        mcfact.append(_F(PARA='METHODE',LISTE_I=(1,2,3)))
-        mcfact.append(_F(PARA='K1_MAX' ,LISTE_R=kg[0].tolist() ))
-        mcfact.append(_F(PARA='K1_MIN' ,LISTE_R=kg[1].tolist() ))
-        mcfact.append(_F(PARA='K2_MAX' ,LISTE_R=kg[2].tolist() ))
-        mcfact.append(_F(PARA='K2_MIN' ,LISTE_R=kg[3].tolist() ))
-        if ndim==3 :
-          mcfact.append(_F(PARA='K3_MAX' ,LISTE_R=kg[4].tolist() ))
-          mcfact.append(_F(PARA='K3_MIN' ,LISTE_R=kg[5].tolist() ))
-        mcfact.append(_F(PARA='G_MAX'  ,LISTE_R=kg[6].tolist() ))
-        mcfact.append(_F(PARA='G_MIN'  ,LISTE_R=kg[7].tolist() ))
-        if  (ino==0 and iord==0) and inst==None :
-           tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre)
-        elif iord==0 and ino==0 and inst!=None :
-           mcfact=[_F(PARA='INST'  ,LISTE_R=[inst,]*3      )]+mcfact
-           tabout=CREA_TABLE(LISTE=mcfact,TITRE = titre)
-        else :
-           if inst!=None : mcfact=[_F(PARA='INST'  ,LISTE_R=[inst,]*3     )]+mcfact
-           __tabi=CREA_TABLE(LISTE=mcfact,)
-           npara = ['K1_MAX','METHODE']
-           if inst!=None : npara.append('INST')
-           if FOND_FISS : npara.append('NOEUD_FOND')
-           tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,TITRE = titre,
-                              ACTION=_F(OPERATION = 'COMB',NOM_PARA=npara,TABLE=__tabi,))
-
-# Tri pour conserver le meme ordre que operateur initial en fortran
-   if len(l_inst)!=1 and FOND_FISS :
-      tabout=CALC_TABLE(reuse=tabout,TABLE=tabout,
-                      ACTION=_F(OPERATION = 'TRI',NOM_PARA=('INST','ABSC_CURV','METHODE'),ORDRE='CROISSANT'))
-
-   return ier
diff --git a/Aster/Cata/cataSTA81/Macro/reca_algo.py b/Aster/Cata/cataSTA81/Macro/reca_algo.py
deleted file mode 100644 (file)
index 429de10..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-#@ MODIF reca_algo Macro  DATE 31/01/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-import Numeric
-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):
-   grad = Numeric.dot(Numeric.transpose(A),erreur)
-   return grad
-
-
-#-------------------------------------------
-#classe gérant l'adimensionnement et le dimensionnemnt
-class Dimension:
-   #le constructeur calcul la matrice D et son inverse
-   def __init__(self,val_initiales,para):
-      self.val_init = val_initiales
-      dim =len(self.val_init)
-      self.D = Numeric.zeros((dim,dim),Numeric.Float)
-      for i in range(dim):
-         self.D[i][i] = self.val_init[i]
-      self.inv_D=LinearAlgebra.inverse(self.D)
-   
-
-   def adim_sensi(self,A):
-      for i in range(A.shape[0]):
-         for j in range(A.shape[1]):
-            A[i,j] = A[i,j] * self.val_init[j]
-      return A
-
-
-
-   def redim_sensi(self,A):
-      for i in range(A.shape[0]):
-         for j in range(A.shape[1]):
-            A[i,j] = A[i,j] / self.val_init[j]
-      return A
-
-
-   def adim(self,tab):
-      tab_adim = Numeric.dot(self.inv_D,copy.copy(tab))
-      return tab_adim
-
-
-   def redim(self,tab_adim):
-      tab = Numeric.dot(self.D,tab_adim)
-      return tab
-   
-#------------------------------------------
-def cond(matrix):
-    e1=LinearAlgebra.eigenvalues(matrix)
-    e=map(abs,e1)
-    size=len(e)
-    e=Numeric.sort(e)
-    try:
-      condi=e[size-1]/e[0]
-    except ZeroDivisionError:
-      condi=0.0
-    return condi,e[size-1],e[0]
-
-#-----------------------------------------
-def norm(matrix):
-    e=LinearAlgebra.Heigenvalues(matrix)
-    size=len(e)
-    e=Numeric.sort(e)
-    norm=e[size-1]
-    return norm
-
-#-----------------------------------------
-def lambda_init(matrix):
-# Routine qui calcule la valeur initial du parametre
-# de regularisation l.
-     condi,emax,emin=cond(matrix)
-     id=Numeric.identity(matrix.shape[0])
-     if (condi==0.0):
-         l=1.e-3*norm(matrix)
-     elif (condi<=10000):
-         l=1.e-16*norm(matrix)
-     elif (condi>10000):
-         l=abs(10000.*emin-emax)/10001.
-     return l
-
-#-----------------------------------------
-
-
-def temps_CPU(self,restant_old,temps_iter_old):
-   # Fonction controlant le temps CPU restant
-   CPU=INFO_EXEC_ASTER(LISTE_INFO = ("CPU_RESTANT",))
-   TEMPS=CPU['CPU_RESTANT',1]
-   DETRUIRE(CONCEPT=_F(NOM='CPU'),INFO=1)
-   err=0
-   # Indique une execution interactive
-   if (TEMPS>1.E+9):
-     return 0.,0.,0
-   # Indique une execution en batch
-   else:
-      restant=TEMPS
-      # Initialisation
-      if (restant_old==0.):
-         temps_iter=-1.
-      else:
-         # Première mesure
-         if (temps_iter_old==-1.):
-            temps_iter=(restant_old-restant)
-         # Mesure courante
-         else:
-            temps_iter=(temps_iter_old + (restant_old-restant))/2.
-         if ((temps_iter>0.96*restant)or(restant<0.)):
-            err=1
-            UTMESS('F', "MACR_RECAL", 'Arret de MACR_RECAL par manque de temps CPU')
-   return restant,temps_iter,err
-
-
-
-
-def Levenberg_bornes(self,val,Dim,val_init,borne_inf,borne_sup,A,erreur,l,ul_out):  
-   # on resoud le système par contraintes actives:
-   #    Q.dval + s + d =0
-   #    soumis à :
-   #    borne_inf < dval < borne_sup 
-   #            0 <  s
-   #            s.(borne_inf - dval)=0
-   #            s.(borne_sup - dval)=0
-   dim = len(val)
-   id = Numeric.identity(dim)
-   # Matrice du système
-   Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id
-   # Second membre du système
-   d=Numeric.matrixmultiply(Numeric.transpose(A),erreur)
-   # Ens. de liaisons actives
-   Act=Numeric.array([])
-   k=0
-   done=0
-   # Increment des parametres 
-   dval=Numeric.zeros(dim,Numeric.Float)
-   while done <1 :
-      k=k+1
-      I=Numeric.ones(dim)
-      for i in Act:
-         I[i]=0
-      I=Numeric.nonzero(Numeric.greater(I,0))
-      s=Numeric.zeros(dim,Numeric.Float)
-      for i in Act:
-         # test sur les bornes (on stocke si on est en butée haute ou basse)
-         if (val[i]+dval[i]>=borne_sup[i]):
-            dval[i]=borne_sup[i]-val[i]
-            s[i]=1.
-         if (val[i]+dval[i]<=borne_inf[i]):
-            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))
-          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):
-         # s(Av)=-d(Act)-Q(Act,:).dval
-         sa=-take(d,Act)-Numeric.dot(take(Q,Act),Dim.adim(dval))
-         for i in range(len(Act)):
-            if (s[Act[i]]==-1.):
-               s[Act[i]]=-sa[i]
-            else:
-               s[Act[i]]=sa[i]
-      # Nouvel ens. de liaisons actives
-      Act=Numeric.concatenate((Numeric.nonzero(Numeric.greater(dval,borne_sup-val)),Numeric.nonzero(Numeric.less(dval,borne_inf-val)),Numeric.nonzero(Numeric.greater(s,0.))))
-      done=(max(val+dval-borne_sup)<=0)&(min(val+dval-borne_inf)>=0)&(min(s)>=0.0)
-      # Pour éviter le cyclage
-      if (k>50):
-         try:
-            l=l*2
-            Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id
-            k=0
-         except:
-             res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
-             res.write('\n\nQ = \n'+Numeric.array2string(Q-l*id,array_output=1,separator=','))
-             res.write('\n\nd = '+Numeric.array2string(d,array_output=1,separator=','))
-             res.write('\n\nval = '+Numeric.array2string(val,array_output=1,separator=','))
-             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=','))
-             UTMESS('F', "MACR_RECAL", "Erreur dans l'algorithme de bornes de MACR_RECAL")
-             return 
-   newval=copy.copy(val+dval)
-   return newval,s,l,Act
-
-
-def actualise_lambda(l,val,new_val,A,erreur,new_J,old_J):
-   dim = len(val)
-   id = Numeric.identity(dim)
-   # Matrice du système
-   Q=Numeric.matrixmultiply(Numeric.transpose(A),A) +l*id
-   # Second membre du système
-   d=Numeric.matrixmultiply(Numeric.transpose(A),erreur)
-   old_Q=old_J
-   new_Q=old_J+0.5*Numeric.dot(Numeric.transpose(new_val-val),Numeric.dot(Q,new_val-val))+Numeric.dot(Numeric.transpose(new_val-val),d)
-   # Ratio de la décroissance réelle et de l'approx. quad.
-   try:
-      R=(old_J-new_J)/(old_Q-new_Q)
-      if (R<0.25):
-         l = l*10.
-      elif (R>0.75):
-         l = l/15.
-   except ZeroDivisionError:
-      if (old_J>new_J):
-         l = l*10.
-      else:
-         l = l/10.
-   return l
-
-
-def test_convergence(gradient_init,erreur,A,s):
-   gradient = calcul_gradient(A,erreur)+s
-   epsilon = Numeric.dot(gradient,gradient)/Numeric.dot(gradient_init,gradient_init)
-   epsilon = epsilon**0.5
-   return epsilon
-
-
-# fonction appellée quand la convergence est atteinte
-# on calcule le Hessien et les valeurs propres et vecteurs 
-# propre associés au Hessien
-#  A    = sensibilite
-#  At*A = hessien
-def calcul_etat_final(para,A,iter,max_iter,prec,residu,Messg,ul_out):
-   if ((iter < max_iter) or (residu < prec)):
-      Hessien = Numeric.matrixmultiply(Numeric.transpose(A),A)
-      valeurs_propres,vecteurs_propres = LinearAlgebra.eigenvectors(Hessien) 
-      sensible=Numeric.nonzero(Numeric.greater(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-1))
-      insensible=Numeric.nonzero(Numeric.less(abs(valeurs_propres/max(abs(valeurs_propres))),1.E-2))
-      Messg.affiche_calcul_etat_final(para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible,ul_out)
-
-
-
-
-
diff --git a/Aster/Cata/cataSTA81/Macro/reca_graphique.py b/Aster/Cata/cataSTA81/Macro/reca_graphique.py
deleted file mode 100644 (file)
index bab1d8c..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#@ MODIF reca_graphique Macro  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-import string, copy, Numeric, types
-import Cata
-from Cata.cata import DEFI_FICHIER, IMPR_FONCTION
-from Utilitai.Utmess import UTMESS
-from Accas import _F
-
-try:
-  import Gnuplot
-except:
-  pass
-
-
-#_____________________________________________
-#
-# IMPRESSIONS GRAPHIQUES
-#_____________________________________________
-
-def graphique(FORMAT, L_F, res_exp, reponses, iter, UL_out, interactif):
-
-   if FORMAT=='XMGRACE':
-       for i in range(len(L_F)):
-           _tmp = []
-           courbe1 = res_exp[i]
-           _tmp.append( { 'ABSCISSE': courbe1[:,0].tolist(), 'ORDONNEE': courbe1[:,1].tolist(), 'COULEUR': 1 } )
-           courbe2 = L_F[i]
-           _tmp.append( { 'ABSCISSE': courbe2[:,0].tolist(), 'ORDONNEE': courbe2[:,1].tolist(), 'COULEUR': 2 } )
-
-           motscle2= {'COURBE': _tmp }
-           if interactif: motscle2['PILOTE']= 'INTERACTIF'
-           else:          motscle2['PILOTE']= 'POSTSCRIPT'
-
-#           DEFI_FICHIER(UNITE=int(UL_out), ACCES='NEW',)
-
-           IMPR_FONCTION(FORMAT='XMGRACE',
-                         UNITE=int(UL_out),
-                         TITRE='Courbe de : ' + reponses[i][0],
-                         SOUS_TITRE='Iteration : ' + str(iter),
-                         LEGENDE_X=reponses[i][1],
-                         LEGENDE_Y=reponses[i][2],
-                         **motscle2
-                         );
-#           DEFI_FICHIER(ACTION='LIBERER',UNITE=int(UL_out),)
-
-   elif FORMAT=='GNUPLOT':
-       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'))
-
-   else:
-     pass
diff --git a/Aster/Cata/cataSTA81/Macro/reca_interp.py b/Aster/Cata/cataSTA81/Macro/reca_interp.py
deleted file mode 100644 (file)
index 0d04cc2..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-#@ MODIF reca_interp Macro  DATE 05/09/2005   AUTEUR DURAND C.DURAND 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-import os
-import Numeric
-import Macro
-from Macro.recal import calcul_F
-from Utilitai.Utmess     import UTMESS
-
-#===========================================================================================
-
-
-# INTERPOLATION, CALCUL DE SENSIBILITE, ETC....
-
-#--------------------------------------
-class Sim_exp :
-
-   def __init__ (self,result_exp,poids) :
-      self.resu_exp = result_exp
-      self.poids = poids
-
-# Distance verticale d'un point M à une ligne brisée composée de n points
-             
-   def DistVertAdimPointLigneBrisee (self, M, points) :
-   # M      = Point               (2 colonnes, 1 ligne)
-   # points = Tableau de n points (2 colonnes, n lignes)
-   # on suppose qu'il existe au moins 2 points, 
-   # et que les points sont classés selon les abscisses croissantes
-         n = len(points)
-         if ( M[0] < points[0][0] ) or ( M[0] > points[n-1][0] ) :
-           return 0.
-         i = 1
-         while M[0] > points[i][0] :
-            i = i+1
-         y_proj_vert = (M[0]-points[i-1][0]) * (points[i][1]-points[i-1][1]) / (points[i][0]-points[i-1][0]) + points[i-1][1]  
-         d = (M[1] - y_proj_vert)
-              # Attention: la distance n'est pas normalisée
-              # Attention: problème si points[0][0] = points[1][0] = M[0]
-              # Attention: problème si M[1] = 0
-         return d
-
-
-# La Fonction Interpole ,interpole une et une seule F_calc sur F_exp et renvoie l'erreur seulement
-   def Interpole (self, F_calc,experience,poids) :   #ici on passe en argument "une" experience
-      n = 0
-      resu_num = F_calc
-      n_exp = len(experience)    # nombre de points sur la courbe expérimentale num.i    
-      stockage = Numeric.ones(n_exp, Numeric.Float)     # matrice de stockage des erreurs en chaque point
-      for j in xrange(n_exp) :
-         d = self.DistVertAdimPointLigneBrisee(experience[j], resu_num)
-         try:
-            stockage[n] = d/experience[j][1]
-         except ZeroDivisionError:
-            stockage[n] = d
-         n = n + 1         # on totalise le nombre de points valables
-      err = Numeric.ones(n, Numeric.Float) 
-      for i in xrange(n) :
-          err[i] = poids*stockage[i]
-      return  err
-
-   #cette fonction appelle la fonction interpole et retourne les sous fonctionnelle J et l'erreur
-   def multi_interpole(self,L_F, reponses):    #on interpole toutes les reponses une à une en appelent la methode interpole
-      L_erreur=[]
-      for i in range(len(reponses)):   
-         err = self.Interpole(L_F[i],self.resu_exp[i],self.poids[i])
-         L_erreur.append(err)
-      #on transforme L_erreur en tab num
-      dim=[]
-      J=[]
-      for i in range(len(L_erreur)):
-         dim.append(len(L_erreur[i]))
-      dim_totale = Numeric.sum(dim)
-      L_J = self.calcul_J(L_erreur)
-      a=0
-      erreur = Numeric.zeros((dim_totale),Numeric.Float)
-      for n in range(len(L_erreur)):
-         for i in range(dim[n]):
-            erreur[i+a] = L_erreur[n][i]
-         a = dim[n]
-      del(L_erreur) #on vide la liste puisqu'on n'en a plus besoin
-      return L_J,erreur
-
-   #cette fonction retourne seulement l'erreur ,je l'appelle dans la methode sensibilité
-   #on interpole toutes les reponses une à une en appelent la methode interpole
-   def multi_interpole_sensib(self,L_F,reponses):    
-      L_erreur=[]
-      for i in range(len(reponses)):   
-         err = self.Interpole(L_F[i],self.resu_exp[i],self.poids[i])
-         L_erreur.append(err)
-      #on transforme L_erreur en tab num
-      return L_erreur
-       
-   def calcul_J(self,L_erreur):
-      L_J = []
-      for i in range(len(L_erreur)):
-         total = 0
-         for j in range(len(L_erreur[i])):
-            total = total + L_erreur[i][j]**2
-         L_J.append(total)
-      return L_J
-   
-   def norme_J(self,L_J_init,L_J,unite_resu):
-   #cette fonction calcul une valeur normée de J
-      for i in range(len(L_J)):
-         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(message)
-            fic.close()
-            UTMESS('F', "MACR_RECAL", message)
-            
-      J = Numeric.sum(L_J)
-      J = J/len(L_J)
-      return J  
-   
-   def sensibilite(self,objet,UL,F,val,para,reponses,pas,unite_resu):
-      F_interp=self.multi_interpole_sensib(F, reponses)  #F_interp est une liste contenant des tab num des reponses interpolés
-      L_A=[]                              #creation de la liste des matrices de sensibilités
-      for i in range(len(reponses)):     
-         L_A.append(Numeric.zeros((len(self.resu_exp[i]),len(val)),Numeric.Float) )
-      #calcul de la sensibilité 
-      fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
-      fic.write('\nCalcul de la sensibilité par rapport à :')
-      fic.close() 
-      for k in range(len(val)): #pour une colone de A
-         h = val[k]*pas
-         val[k] = val[k] + h
-         F_perturbe = calcul_F(objet,UL,para,val,reponses)
-         fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
-         fic.write(' '+para[k])
-         fic.close() 
-         F_perturbe_interp =self.multi_interpole_sensib(F_perturbe, reponses)
-         val[k] = val[k] - h
-         for j in range(len(reponses)):
-            for i in range(len(self.resu_exp[j])):
-               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(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)):
-         dim.append(len(L_A[i]))
-      dim_totale = Numeric.sum(dim)
-      a=0
-      A = Numeric.zeros((dim_totale,len(val)),Numeric.Float)
-      for n in range(len(L_A)):
-         for k in range(len(val)):
-            for i in range(dim[n]):
-               A[i+a][k] = L_A[n][i,k]
-         a=dim[n]
-      del(L_A) #on ecrase tout ce qu'il y a dans L_A puisqu'on n'en a plus besoin   
-      return A
-
-
-
diff --git a/Aster/Cata/cataSTA81/Macro/reca_message.py b/Aster/Cata/cataSTA81/Macro/reca_message.py
deleted file mode 100644 (file)
index 0691b78..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-#@ MODIF reca_message Macro  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-import os,Numeric
-
-#===========================================================================================
-
-
-# AFFICHAGE DES MESSAGES
-
-class Message :
-   """classe gérant l'affichage des messages concernant le déroulement de l'optmisation """
-   #Constructeur de la classe
-   def __init__(self,para,val_init,resu_exp,ul_out):
-      self.nom_para = para
-      self.res_exp = resu_exp
-      res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
-      res.write(' <INFO>  MACR_RECAL V1.1 \n\n\n')
-      res.close()
-      
-   
-   def affiche_result_iter(self,iter,J,val,residu,Act,ul_out):
-      res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
-      res.write('\n=======================================================\n')
-      res.write('Iteration '+str(iter)+' :\n')
-      res.write('\n=> Fonctionnelle = '+str(J))
-      res.write('\n=> Résidu        = '+str(residu))
-      res.write('\n=> Paramètres    = ')
-      for i in range(len(val)):
-         res.write('\n         '+ self.nom_para[i]+' = '+str(val[i]) )
-      if (len(Act)!=0):
-         if (len(Act)==1):
-            res.write('\n\n Le paramètre ')
-         else:
-            res.write('\n\n Les paramètres ')
-         for i in Act:
-            res.write(self.nom_para[i]+' ')
-         if (len(Act)==1):
-            res.write('\n est en butée sur un bord de leur domaine admissible.')
-         else:
-            res.write('\n sont en butée sur un bord de leur domaine admissible.')
-      res.write('\n=======================================================\n\n')
-      res.close()
-   
-   def affiche_etat_final_convergence(self,iter,max_iter,prec,residu,Act,ul_out):
-      res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
-      if ((iter < max_iter) or (residu < prec)):
-        res.write('\n=======================================================\n') 
-        res.write('                   CONVERGENCE ATTEINTE                ')
-        if (len(Act)!=0):
-           res.write("\n\n         ATTENTION : L'OPTIMUM EST ATTEINT AVEC      ")
-           res.write("\n           DES PARAMETRES EN BUTEE SUR LE BORD     ")
-           res.write("\n               DU DOMAINE ADMISSIBLE                 ")
-        res.write('\n=======================================================\n') 
-        res.close()
-      else:
-        res.write("\n=======================================================\n")
-        res.write('               CONVERGENCE  NON ATTEINTE              ')
-        res.write("\n  Le nombre maximal  d'itération ("+str(max_iter)+") a été dépassé")                    
-        res.write('\n=======================================================\n')
-        res.close()
-
-   def affiche_calcul_etat_final(self,para,Hessien,valeurs_propres,vecteurs_propres,sensible,insensible,ul_out):
-        res=open(os.getcwd()+'/fort.'+str(ul_out),'a')
-        res.write('\n\nValeurs propres du Hessien:\n')
-        res.write(str( valeurs_propres))
-        res.write('\n\nVecteurs propres associés:\n')
-        res.write(str( vecteurs_propres))
-        res.write('\n\n              --------')
-        res.write('\n\nOn peut en déduire que :')
-        # Paramètres sensibles
-        if (len(sensible)!=0):
-           res.write('\n\nLes combinaisons suivantes de paramètres sont prépondérantes pour votre calcul :\n')
-           k=0
-           for i in sensible:
-              k=k+1
-              colonne=vecteurs_propres[:,i]
-              numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1))
-              res.write('\n   '+str(k)+') ')
-              for j in numero:
-                 res.write('%+3.1E ' %colonne[j]+'* '+para[j]+' ')
-              res.write('\n      associée à la valeur propre %3.1E \n' %valeurs_propres[i])
-        # Paramètres insensibles
-        if (len(insensible)!=0):
-           res.write('\n\nLes combinaisons suivantes de paramètres sont insensibles pour votre calcul :\n')
-           k=0
-           for i in insensible:
-              k=k+1
-              colonne=vecteurs_propres[:,i]
-              numero=Numeric.nonzero(Numeric.greater(abs(colonne/max(abs(colonne))),1.E-1))
-              res.write('\n   '+str(k)+') ')
-              for j in numero:
-                 res.write('%+3.1E ' %colonne[j]+'* '+para[j]+' ')
-              res.write('\n      associée à la valeur propre %3.1E \n' %valeurs_propres[i])
-        res.close()
-      
-   
-
diff --git a/Aster/Cata/cataSTA81/Macro/recal.py b/Aster/Cata/cataSTA81/Macro/recal.py
deleted file mode 100644 (file)
index 2e43b08..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-#@ MODIF recal Macro  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-
-import string, copy, Numeric, types
-# import Gnuplot
-import Cata
-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, 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)
-
-
-#_____________________________________________
-#
-# DIVERS UTILITAIRES POUR LA MACRO
-#_____________________________________________
-
-
-# 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)
-   borne_inf = Numeric.zeros(dim_para,Numeric.Float)
-   borne_sup = Numeric.zeros(dim_para,Numeric.Float)
-   para = []
-   for i in range(dim_para):
-      para.append(parametres[i][0])
-      val_para[i] = parametres[i][1]
-      borne_inf[i] = parametres[i][2]
-      borne_sup[i] = parametres[i][3]
-   return para,val_para,borne_inf,borne_sup
-
-def mes_concepts(list_concepts=[],base=None):
-  # Fonction qui liste les concepts créés
-   for e in base.etapes:
-      if e.nom in ('INCLUDE','MACR_RECAL',) :
-        list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e))
-      elif (e.sd != None) and (e.parent.nom=='INCLUDE') :
-        nom_concept=e.sd.get_name()
-        if not(nom_concept in list_concepts):
-          list_concepts.append( nom_concept )
-   return tuple(list_concepts)
-
-
-def detr_concepts(self):
-     liste_concepts=mes_concepts(base=self.parent)
-     for e in liste_concepts:
-        nom = string.strip(e)
-        DETRUIRE( CONCEPT =self.g_context['_F'](NOM = nom),INFO=1)
-        if self.jdc.g_context.has_key(nom) : del self.jdc.g_context[nom]
-     del(liste_concepts)
-
-
-def calcul_F(self,UL,para,val,reponses):
-      fic = open('fort.'+str(UL),'r')
-      #On stocke le contenu de fort.UL dans la variable fichier qui est un string 
-      fichier=fic.read()
-      #On stocke le contenu initial de fort.UL dans la variable fichiersauv 
-      fichiersauv=copy.copy(fichier)
-      fic.close()
-
-      #Fichier_Resu est une liste ou l'on va stocker le fichier modifié
-      #idée générale :on délimite des 'blocs' dans fichier
-      #on modifie ou non ces blocs suivant les besoins 
-      #on ajoute ces blocs dans la liste Fichier_Resu
-      Fichier_Resu=[]                      
-      
-      try: 
-         #cherche l'indice de DEBUT()
-         index_deb=string.index(fichier,'DEBUT(')
-         while( fichier[index_deb]!='\n'):
-            index_deb=index_deb+1
-         #on restreind fichier en enlevant 'DEBUT();'
-         fichier = fichier[index_deb+1:]   
-      except :
-         #on va dans l'except si on a modifié le fichier au moins une fois
-         pass 
-         
-      try:
-         #cherche l'indice de FIN()
-         index_fin = string.index(fichier,'FIN(')
-         #on restreind fichier en enlevant 'FIN();'
-         fichier = fichier[:index_fin]   
-      except : pass
-      #--------------------------------------------------------------------------------
-      #on cherche à délimiter le bloc des parametres dans le fichier
-      #Tout d'abord on cherche les indices  d'apparition des paras dans le fichier 
-      #en effet l'utilisateur n'est pas obligé de rentrer les paras dans optimise
-      #avec le meme ordre de son fichier de commande
-      index_para = Numeric.zeros(len(para))
-      for i in range(len(para)):
-         index_para[i] = string.index(fichier,para[i])
-      #On range les indices par ordre croissant afin de déterminer
-      #les indice_max et indice_min
-      index_para = Numeric.sort(index_para)
-      index_first_para = index_para[0]
-      index_last_para = index_para[len(index_para)-1]
-      
-      
-      #on va délimiter les blocs intermédiaires entre chaque para "utiles" à l'optimsation
-      bloc_inter ='\n'
-      for i in range(len(para)-1):
-         j = index_para[i]
-         k = index_para[i+1]
-         while(fichier[j]!= '\n'):
-            j=j+1
-         bloc_inter=bloc_inter + fichier[j:k] + '\n'
-         
-      #on veut se placer sur le premier retour chariot que l'on trouve sur la ligne du dernier para
-      i = index_last_para 
-      while(fichier[i] != '\n'):
-         i = i + 1
-      index_last_para  = i
-      #on délimite les blocs suivants:
-      pre_bloc = fichier[:index_first_para]       #fichier avant premier parametre
-      post_bloc = fichier[ index_last_para+ 1:]    #fichier après dernier parametre
-      
-      #on ajoute dans L tous ce qui est avant le premier paramètre 
-      Fichier_Resu.append(pre_bloc)
-      Fichier_Resu.append('\n')
-      #On ajoute la nouvelle valeur des parametres
-      dim_para=len(para)
-      for j in range(dim_para):
-         Fichier_Resu.append(para[j]+'='+str(val[j]) + ';' + '\n')
-      #On ajoute à Fichier_Resu tous ce qui est entre les parametres
-      Fichier_Resu.append(bloc_inter)
-      
-      Fichier_Resu.append(post_bloc)
-      #--------------------------------------------------------------------------------
-      #on va ajouter la fonction d'extraction du numarray de la table par la méthode Array 
-      #et on stocke les réponses calculées dans la liste Lrep
-      #qui va etre retournée par la fonction calcul_F
-      self.g_context['Lrep'] = []
-      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')
-      
-      #ouverture du fichier fort.3 et mise a jour de celui ci
-      x=open('fort.'+str(UL),'w')
-      x.writelines('from Accas import _F \nfrom Cata.cata import * \n')
-      x.writelines(Fichier_Resu)
-      x.close()
-      del(Fichier_Resu)
-      del(pre_bloc)
-      del(post_bloc)
-      del(fichier)
-      
-      INCLUDE(UNITE = UL)
-      detr_concepts(self)
-      # on remet le fichier dans son etat initial
-      x=open('fort.'+str(UL),'w')
-      x.writelines(fichiersauv)
-      x.close()
-      return self.g_context['Lrep']
-
-
-#_____________________________________________
-#
-# CONTROLE DES ENTREES UTILISATEUR
-#_____________________________________________
-
-def erreur_de_type(code_erreur,X):
-   #code_erreur ==0 --> X est une liste
-   #code erreur ==1 --> X est un char
-   #code erreur ==2 --> X est un float
-   #test est un boolean (test = 0 défaut et 1 si un test if est verifier
-   txt=""
-   if(code_erreur == 0 ):
-      if type(X) is not types.ListType:
-         txt="\nCette entrée: " +str(X)+" n'est pas une liste valide"
-   if(code_erreur == 1 ):
-      if type(X) is not types.StringType:
-         txt="\nCette entrée: " +str(X)+" n'est pas une chaine de caractère valide ; Veuillez la ressaisir en lui appliquant le type char de python"
-   if(code_erreur == 2 ):
-      if type(X) is not types.FloatType:
-         txt="\nCette entrée:  " +str(X)+" n'est pas une valeur float valide ; Veuillez la ressaisir en lui appliquant le type float de python"
-   return txt
-   
-   
-def erreur_dimension(PARAMETRES,REPONSES):
-#On verifie que la dimension de chaque sous_liste de parametre est 4
-#et que la dimension de chaque sous_liste de REPONSES est 3
-   txt=""
-   for i in range(len(PARAMETRES)):
-      if (len(PARAMETRES[i]) != 4):
-         txt=txt + "\nLa sous-liste de la variable paramètre numéro " + str(i+1)+" n'est pas de longueur 4"
-   for i in range(len(REPONSES)):
-      if (len(REPONSES[i]) != 3):
-         txt=txt + "\nLa sous-liste de la variable réponse numéro " + str(i+1)+" n'est pas de longueur 3"
-   return txt
-
-
-def compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP):
-   # X et Y sont deux arguments qui doivent avoir la meme dimension
-   # pour éviter l'arret du programme
-   txt=""
-   if( len(REPONSES) != len(RESU_EXP)):
-      txt="\nVous avez entré " +str(len(REPONSES))+ " réponses et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de réponses que de résultats expérimentaux"
-   return txt
-
-def compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP):
-   # POIDS et Y sont deux arguments qui doivent avoir la meme dimension
-   # pour éviter l'arret du programme
-   txt=""
-   if( len(POIDS) != len(RESU_EXP)):
-      txt="\nVous avez entré " +str(len(POIDS))+ " poids et "+str(len(RESU_EXP))+ " expériences ; On doit avoir autant de poids que de résultats expérimentaux"
-   return txt
-
-
-def verif_fichier(UL,PARAMETRES,REPONSES):
-#On verifie les occurences des noms des PARAMETRES et REPONSES 
-#dans le fichier de commande ASTER
-   txt=""
-   fichier = open('fort.'+str(UL),'r')
-   fic=fichier.read()
-   for i in range(len(PARAMETRES)):
-      if((string.find(fic,PARAMETRES[i][0])==-1) or ((string.find(fic,PARAMETRES[i][0]+'=')==-1) and (string.find(fic,PARAMETRES[i][0]+' ')==-1))):
-         txt=txt + "\nLe paramètre "+PARAMETRES[i][0]+" que vous avez entré pour la phase d'optimisation n'a pas été trouvé dans votre fichier de commandes ASTER"
-   for i in range(len(REPONSES)):
-      if((string.find(fic,REPONSES[i][0])==-1) or ((string.find(fic,REPONSES[i][0]+'=')==-1) and (string.find(fic,REPONSES[i][0]+' ')==-1))):
-         txt=txt + "\nLa réponse  "+REPONSES[i][0]+" que vous avez entrée pour la phase d'optimisation n'a pas été trouvée dans votre fichier de commandes ASTER"
-   return txt
-
-
-def verif_valeurs_des_PARAMETRES(PARAMETRES):
-#On verifie que pour chaque PARAMETRES de l'optimisation
-# les valeurs entrées par l'utilisateur sont telles que :
-#              val_inf<val_sup
-#              val_init appartient à [borne_inf, borne_sup] 
-#              val_init!=0         
-#              borne_sup!=0         
-#              borne_inf!=0         
-   txt=""
-   #verification des bornes
-   for i in range(len(PARAMETRES)):
-      if( PARAMETRES[i][2] >PARAMETRES[i][3]):
-         txt=txt + "\nLa borne inférieure "+str(PARAMETRES[i][2])+" de  "+PARAMETRES[i][0]+ "est plus grande que sa borne supérieure"+str(PARAMETRES[i][3])
-   #verification de l'encadrement de val_init 
-   for i in range(len(PARAMETRES)):
-      if( (PARAMETRES[i][1] < PARAMETRES[i][2]) or (PARAMETRES[i][1] > PARAMETRES[i][3])):
-         txt=txt + "\nLa valeur initiale "+str(PARAMETRES[i][1])+" de "+PARAMETRES[i][0]+ " n'est pas dans l'intervalle [borne_inf,born_inf]=["+str(PARAMETRES[i][2])+" , "+str(PARAMETRES[i][3])+"]"
-   #verification que val_init !=0
-   for  i in range(len(PARAMETRES)):
-      if (PARAMETRES[i][1] == 0. ):
-         txt=txt + "\nProblème de valeurs initiales pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur initiale nulle mais un ordre de grandeur."
-   #verification que borne_sup !=0
-   for  i in range(len(PARAMETRES)):
-      if (PARAMETRES[i][3] == 0. ):
-         txt=txt + "\nProblème de borne supérieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle."
-   #verification que borne_inf !=0
-   for  i in range(len(PARAMETRES)):
-      if (PARAMETRES[i][2] == 0. ):
-         txt=txt + "\nProblème de borne inférieure pour le paramètre "+PARAMETRES[i][0]+" : ne pas donner de valeur strictement nulle."
-   return txt
-
-
-def verif_UNITE(GRAPHIQUE,UNITE_RESU):
-   # On vérifie que les unités de résultat et 
-   # de graphique sont différentes
-   txt=""
-   GRAPHE_UL_OUT=GRAPHIQUE['UNITE']
-   if (GRAPHE_UL_OUT==UNITE_RESU):
-       txt=txt + "\nLes unités logiques des fichiers de résultats graphiques et de résultats d'optimisation sont les memes."
-   return txt
-
-
-
-def gestion(UL,PARAMETRES,REPONSES,RESU_EXP,POIDS,GRAPHIQUE,UNITE_RESU):
-   #Cette methode va utiliser les methodes de cette classe declarée ci_dessus
-   #test  est un boolean: test=0 -> pas d'erreur
-   #                      test=1 -> erreur détectée
-
-   texte=""
-   #On vérifie d'abord si PARAMETRES, REPONSES, RESU_EXP sont bien des listes au sens python
-   #test de PARAMETRES
-   texte = texte + erreur_de_type(0,PARAMETRES)
-   #test de REPONSES
-   texte = texte + erreur_de_type(0,REPONSES)
-   #test de RESU_EXP
-   texte = texte + erreur_de_type(0,RESU_EXP) 
-   
-   #On vérifie si chaque sous liste de PARAMETRES, REPONSES,  possède le type adéquat
-   #test des sous_listes de PARAMETRES
-   for i in range(len(PARAMETRES)):
-      texte = texte +  erreur_de_type(0,PARAMETRES[i]) 
-   #test des sous_listes de REPONSES
-   for i in range(len(REPONSES)):
-      texte = texte + erreur_de_type(0,REPONSES[i])
-   #On verifie si la dimension de chaque sous-liste de : PARAMETRES, REPONSES
-   #il faut que:la dimension d'une sous-liste de PARAMETRES = 4
-   #et   que    la dimension d'une sous liste de REPONSES   = 3
-   texte = texte + erreur_dimension(PARAMETRES,REPONSES)
-
-   #on verifie que l'on a autant de réponses que de résultats expérimentaux
-   texte = texte + compare__dim_rep__dim_RESU_EXP(REPONSES,RESU_EXP)
-   #on verifie que l'on a autant de poids que de résultats expérimentaux
-   texte = texte + compare__dim_poids__dim_RESU_EXP(POIDS,RESU_EXP)
-
-   #on verifie les types des arguments de chaque sous liste de PARAMETRES et REPONSES
-      #verification du type stringet type float des arguments de PARAMETRES
-   for i in range(len(PARAMETRES)):
-      texte = texte + erreur_de_type(1,PARAMETRES[i][0])
-      for k in [1,2,3]:
-         texte = texte + erreur_de_type(2,PARAMETRES[i][k])
-         
-   #verification du type string pour les arguments  de REPONSES
-   for i in range(len(REPONSES)):
-      for j in range(len(REPONSES[i])):
-         texte = texte + erreur_de_type(1,REPONSES[i][j])
-   
-   #verification du fichier de commndes ASTER
-   texte = texte + verif_fichier(UL,PARAMETRES,REPONSES)
-
-   #verifiaction des valeurs des PARAMETRES entrées par l'utilisteur 
-   texte = texte + verif_valeurs_des_PARAMETRES(PARAMETRES)
-
-   #verifiaction des unités logiques renseignées par l'utilisateur
-   texte = texte + verif_UNITE(GRAPHIQUE,UNITE_RESU)
-
-   return texte
-   
-
diff --git a/Aster/Cata/cataSTA81/Macro/stanley_ops.py b/Aster/Cata/cataSTA81/Macro/stanley_ops.py
deleted file mode 100644 (file)
index 51af193..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#@ MODIF stanley_ops Macro  DATE 15/05/2006   AUTEUR ASSIRE A.ASSIRE 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-
-
-def stanley_ops(self,RESULTAT,MODELE,CHAM_MATER,CARA_ELEM,DISPLAY,**args):
-
-  """
-     Importation et lancement de Stanley
-  """
-
-  import os,string
-  import aster
-  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.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])
-      MAILLAGE = self.jdc.g_context[_MAIL]
-      if CARA_ELEM:
-        stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,CARA_ELEM)
-      else:
-        stanley.STANLEY(RESULTAT,MAILLAGE,MODELE,CHAM_MATER,None)
-    else:
-      stanley.PRE_STANLEY(FICHIER_VALID)
-
-  else:
-      UTMESS('A','STANLEY',
-            """Aucune variable d'environnement DISPLAY définie !
-               STANLEY ne pourra pas fonctionner. On l'ignore.
-
-               Si vous etes en Interactif, cochez le bouton Suivi Interactif
-               dans ASTK.
-
-               Vous pouvez également préciser votre DISPLAY dans les arguments
-               de la commande STANLEY :
-
-               STANLEY(DISPLAY='adresse_ip:0.0');""")
-
-  return ier
diff --git a/Aster/Cata/cataSTA81/Macro/test_fichier_ops.py b/Aster/Cata/cataSTA81/Macro/test_fichier_ops.py
deleted file mode 100644 (file)
index 35d34da..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-#@ MODIF test_fichier_ops Macro  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.        
-# ======================================================================
-
-import sys
-import os.path
-import re
-from math import floor, log10
-from types import StringType
-import md5
-
-#-------------------------------------------------------------------------------
-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.
-   """
-   ier = 0
-   # La macro compte pour 1 dans la numerotation des commandes
-   self.set_icmd(1)
-
-   # On importe les definitions des commandes a utiliser dans la macro
-   # Le nom de la variable doit etre obligatoirement le nom de la commande
-   INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER')
-   DETRUIRE        = self.get_cmd('DETRUIRE')
-   CREA_TABLE      = self.get_cmd('CREA_TABLE')
-   TEST_TABLE      = self.get_cmd('TEST_TABLE')
-   
-   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 = []
-   if args['EXPR_IGNORE']:
-      if type(args['EXPR_IGNORE']) is StringType:
-         lexp = [args['EXPR_IGNORE']]
-      else:
-         lexp = args['EXPR_IGNORE']
-      for exp in lexp:
-         try:
-            obj = re.compile(exp)
-         except re.error, s:
-            UTMESS('F', 'TEST_FICHIER',
-                   '<INVALID_REGEXP> %s pour %s' % (str(s), repr(exp)))
-         else:
-            l_regexp.append(exp)
-
-   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:
-      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
-         else:
-            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 :
-         aster.affiche('MESSAGE', ' %-20s : %32s\n' % ('REFERENCE', VALE_K))
-
-      if mdsum == VALE_K:
-         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,),),)
-   if args['REFERENCE'] == 'NON_REGRESSION':
-      TEST_TABLE(TABLE=tab1__,
-                 FILTRE=_F(NOM_PARA='TEST',
-                           VALE_K='VALEUR  ',),
-                 NOM_PARA='BOOLEEN',
-                 VALE_I=1,
-                 PRECISION=1.e-3,
-                 CRITERE='ABSOLU',
-                 REFERENCE=args['REFERENCE'],
-                 VERSION=args['VERSION'],)
-   else:
-      TEST_TABLE(TABLE=tab1__,
-                 FILTRE=_F(NOM_PARA='TEST',
-                           VALE_K='VALEUR  ',),
-                 NOM_PARA='BOOLEEN',
-                 VALE_I=1,
-                 PRECISION=1.e-3,
-                 CRITERE='ABSOLU',
-                 REFERENCE=args['REFERENCE'],)
-
-   DETRUIRE(CONCEPT=_F(NOM=('tinfo__','tab1__'),),
-            ALARME='NON',INFO=1,)
-   return ier
-
-
-#-------------------------------------------------------------------------------
-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.
-   IN :
-      fich          : nom du fichier
-      nbch          : nombre de decimales significatives
-      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
-   
-         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')
-   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
-      for exp in regexp_ignore:
-         if re.search(exp, ligne):
-            keep = False
-            if info >= 2:
-               print ' >>>>>>>>>> IGNOREE <<<<<<<<<<',
-            break
-      if keep:
-         # découpe des nombres collés : 1.34E-142-1.233D+09
-         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:
-               xv = float(x)
-               if abs(xv)<epsi:
-                  s = '0'
-               else:
-                  #s = format_float % float(x)
-                  s = format_func(xv, nbch, exp_epsi)
-            except ValueError:
-               s = x
-            if info >= 2:
-               print (' %'+str(nbch+7)+'s') % s,
-            m.update(s)
-      if info >= 2:
-         print
-   f.close()
-   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)
-
diff --git a/Aster/Cata/cataSTA81/__init__.py b/Aster/Cata/cataSTA81/__init__.py
deleted file mode 100644 (file)
index d35c1bb..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-import os,sys
-import prefs
-import sys
-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)
diff --git a/Aster/Cata/cataSTA81/cata.py b/Aster/Cata/cataSTA81/cata.py
deleted file mode 100755 (executable)
index 62014c2..0000000
+++ /dev/null
@@ -1,23630 +0,0 @@
-#& MODIF ENTETE  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-# -*- coding: iso-8859-1 -*-
-#            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.
-# ======================================================================
-
-import Accas
-from Accas import *
-from Accas import _F
-import string
-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
-
-try:
-  import aster
-except:
-  pass
-
-__version__="$Name:  $"
-__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $"
-
-EnumTypes = (ListType, TupleType)
-
-# -----------------------------------------------------------------------------
-JdC = JDC_CATA(code='ASTER',
-               execmodul=None,
-               regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
-                         AU_MOINS_UN('FIN'),
-                         A_CLASSER(('DEBUT','POURSUITE'),'FIN')))
-# Type le plus general
-class entier   (ASSD):
-   def __init__(self,valeur=None,**args):
-      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
-class char_acou       (ASSD):pass
-class char_cine_acou  (ASSD):pass
-class char_cine_meca  (ASSD):pass
-class char_cine_ther  (ASSD):pass
-class char_meca       (ASSD):pass
-class char_ther       (ASSD):pass
-class compor_sdaster  (ASSD):pass
-class courbe_sdaster  (ASSD):pass
-class fiss_xfem       (ASSD):pass
-class fond_fiss       (ASSD):pass
-class interf_dyna_clas(ASSD):pass
-class interspfact     (ASSD):pass
-class listis_sdaster  (ASSD):pass
-class melasflu_sdaster(ASSD):pass
-class nume_ddl_sdaster(ASSD):pass
-class nume_ddl_gene   (ASSD):pass
-class obstacle_sdaster(ASSD):pass
-class sd_feti_sdaster (ASSD):pass
-class spectre_sdaster (ASSD):pass
-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')
-    ssme=aster.getcolljev(ncham+(14-len(ncham))*' '+'.MODG.SSME')
-    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), ...] """
-    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+'_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
-    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'
-    else:
-       raise Accas.AsException("Le type de la matrice est incorrect")
-    ncham=nommacr+(8-len(nommacr))*' '+ext
-    print ncham
-    desc=Numeric.array(aster.getvectjev(ncham+'_DESC'))
-
-    # 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+'_VALE'))
-    matrice=Numeric.zeros([desc[1],desc[1]],Numeric.Float)
-    for j in range(desc[1]+1):
-      for i in range(j):
-        k=j*(j-1)/2+i
-        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]
-    return matrice
-
-  def RECU_MATR_GENE(self,typmat,matrice) :
-    """ 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
-    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'
-    else:
-       raise Accas.AsException("Le type de la matrice \
-                                est incorrect")
-    ncham=nommacr+(8-len(nommacr))*' '+ext
-    desc=Numeric.array(aster.getvectjev(ncham+'_DESC'))
-
-    # 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):
-       raise Accas.AsException("La dimension de la matrice \
-                                est incorrecte")
-
-    # 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")
-    taille=desc[1]*desc[1]/2.0+desc[1]/2.0
-    tmp=Numeric.zeros([int(taille)],Numeric.Float)
-    for j in range(desc[1]+1):
-      for i in range(j):
-        k=j*(j-1)/2+i
-        tmp[k]=matrice[j-1,i]
-    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]
-      """
-      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
-    self.maille=maille
-    self.point=point
-    self.sous_point=sous_point
-
-class post_comp_cham_no :
-  def __init__(self,valeurs,noeud=None) :
-    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 :
-        [ (gno1, nb noeuds  gno1), ...] """
-      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 :
-        [ (gma1, nb mailles gma1, dime max des mailles gma1), ...] """
-      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
-
-
-# -----------------------------------------------------------------------------
-# champ_gd/carte
-class cham_gd_sdaster(ASSD):pass
-class carte_sdaster  (cham_gd_sdaster):pass
-
-# -----------------------------------------------------------------------------
-# 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
-        topologie si topo>0. Si lgma 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  :
-          - self.maille  : numero de mailles
-          - self.point   : numero du point dans la maille
-          - self.sous_point : numero du sous point dans la maille """
-      if self.par_lot() :
-         raise Accas.AsException("Erreur dans cham_elem.EXTR_COMP en PAR_LOT='OUI'")
-
-      ncham=self.get_name()
-      ncham=ncham+(8-len(ncham))*' '
-      nchams=ncham[0:7]+'S'
-      ncmp=comp+(8-len(comp))*' '
-
-      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
-        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 """
-      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))*' '
-
-      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
-class dyna_harmo    (resultat_sdaster):pass
-class dyna_trans    (resultat_sdaster):pass
-class fourier_elas  (resultat_sdaster):pass
-class harm_gene     (resultat_sdaster):pass
-class mode_acou     (resultat_sdaster):pass
-class mode_cycl     (resultat_sdaster):pass
-class mode_flamb    (resultat_sdaster):pass
-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
-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):
-      """
-      Retourne un dictionnaire contenant les parametres de la fonction ;
-      le type jeveux (FONCTION, FONCT_C, NAPPE) n'est pas retourne,
-      le dictionnaire peut ainsi etre fourni a CALC_FONC_INTERP tel quel.
-      """
-      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'],
-         'NOM_RESU'    : self.etape['NOM_RESU'],
-         'PROL_DROITE' : self.etape['PROL_DROITE'],
-         'PROL_GAUCHE' : self.etape['PROL_GAUCHE'],
-        }
-        if   type(dico['INTERPOL'])==TupleType :
-                  dico['INTERPOL']=list(dico['INTERPOL'])
-        elif type(dico['INTERPOL'])==StringType :
-                  dico['INTERPOL']=[dico['INTERPOL'],]
-        if len(dico['INTERPOL'])==1 :
-           dico['INTERPOL']=dico['INTERPOL']*2
-      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(),
-                          self.Parametres())
-      elif arg=='complex' :
-        return t_fonction_c(self.Absc(),
-                            self.Ordo(),
-                            self.Parametres())
-   def Valeurs(self) :
-      """
-      Retourne deux listes de valeurs : abscisses et ordonnees
-      """
-      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)
-           lx=[lbl[i] for i in range(0,dim,2)]
-           ly=[lbl[i] for i in range(1,dim,2)]
-           return [lx,ly]
-        elif self.etape['VALE_PARA']!=None:
-           return [self.etape['VALE_PARA'].Valeurs(),self.etape['VALE_FONC'].Valeurs()]
-      else :
-         raise Accas.AsException("Erreur dans fonction.Valeurs en PAR_LOT='OUI'")
-   def Absc(self):
-      """Retourne la liste des abscisses"""
-      return self.Valeurs()[0]
-   def Ordo(self):
-      """Retourne la liste des ordonnées"""
-      return self.Valeurs()[1]
-   def __call__(self,val):
-      ### Pour EFICAS : substitution de l'instance de classe
-      ### parametre par sa 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(),
-                          self.Parametres())
-      elif arg=='imag' :
-        return t_fonction(self.Absc(),
-                          self.OrdoImg(),
-                          self.Parametres())
-      elif arg=='modul' :
-        modul=Numeric.sqrt(Numeric.array(self.Ordo())**2+Numeric.array(self.OrdoImg())**2)
-        return t_fonction(self.Absc(),
-                          modul,
-                          self.Parametres())
-      elif arg=='phase' :
-        phase=Numeric.arctan2(Numeric.array(self.OrdoImg()),Numeric.array(self.Ordo()))
-        phase=phase*180./pi
-        return t_fonction(self.Absc(),
-                          phase,
-                          self.Parametres())
-      elif arg=='complex' :
-        return t_fonction_c(self.Absc(),
-                            map(complex,self.Ordo(),self.OrdoImg()),
-                            self.Parametres())
-   def Valeurs(self) :
-      """
-      Retourne trois listes de valeurs : abscisses, parties reelles et imaginaires.
-      """
-      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=[]
-        li=[]
-        for i in range(dim):
-           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]
-   def Ordo(self):
-      """Retourne la liste des parties réelles des ordonnées"""
-      return self.Valeurs()[1]
-   def OrdoImg(self):
-      """Retourne la liste des parties imaginaires des ordonnées"""
-      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(),
-       Lab=[self.Parametres()['NOM_PARA'],self.Parametres()['NOM_RESU'],'IMAG'])
-      gr.Trace(FORMAT=FORMAT,**kargs)
-   def __call__(self,val):
-      ### Pour EFICAS : substitution de l'instance de classe
-      ### parametre par sa 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=[]
-      i=0
-      for pf in para[1] :
-          para_f={'INTERPOL'    : pf['INTERPOL_FONC'],
-                  'PROL_DROITE' : pf['PROL_DROITE_FONC'],
-                  'PROL_GAUCHE' : pf['PROL_GAUCHE_FONC'],
-                  'NOM_PARA'    : para[0]['NOM_PARA_FONC'],
-                  'NOM_RESU'    : para[0]['NOM_RESU'],
-                 }
-          l_fonc.append(t_fonction(vale[1][i][0],vale[1][i][1],para_f))
-          i+=1
-      return t_nappe(vale[0],
-                     l_fonc,
-                     para[0])
-   def Valeurs(self):
-      """
-      Retourne la liste des valeurs du parametre,
-      et une liste de couples (abscisses,ordonnees) de chaque fonction.
-      """
-      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]
-         dim=len(lbl)/2
-         lval.append([lbl[0:dim],lbl[dim:2*dim]])
-      return [list(lpar),lval]
-   def Parametres(self):
-      """
-      Retourne un dictionnaire contenant les parametres de la nappe,
-      le type jeveux (NAPPE) n'est pas retourne,
-      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' }
-      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]],
-         'NOM_PARA_FONC' : string.strip(prol[5][0:4]),
-      }
-      lparf=[]
-      nbf=(len(prol)-6)/2
-      for i in range(nbf):
-         dicf={
-            'INTERPOL_FONC'    : [prol[6+i*2][0:3],prol[6+i*2][4:7]],
-            'PROL_DROITE_FONC' : TypeProl[prol[7+i*2][1]],
-            'PROL_GAUCHE_FONC' : TypeProl[prol[7+i*2][0]],
-         }
-         lparf.append(dicf)
-      return [dico,lparf]
-   def Absc(self):
-      """Retourne la liste des abscisses"""
-      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]
-      dp=self.Parametres()[0]
-      for lx,ly in lv:
-         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
-    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
-    if (desc==None):
-       raise Accas.AsException("L'objet matrice n'existe pas ou \
-                                est mal cree par Code Aster")
-    # Si le stockage est plein
-    if desc[2]==2 :
-      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):
-          k=j*(j-1)/2+i
-          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))*' '+'.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
-    else:
-      raise KeyError
-    return valeur
-
-  def RECU_MATR_GENE(self,matrice) :
-    """ 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
-    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
-    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
-    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
-    if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
-       raise Accas.AsException("La taille de la matrice est incorrecte ")
-
-    # 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)
-      for j in range(desc[1]+1):
-        for i in range(j):
-          k=j*(j-1)/2+i
-          tmp[k]=matrice[j-1,i]
-      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))*' '+'.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
-    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))*' '
-    desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
-    if (desc==None):
-       raise Accas.AsException("L'objet matrice n'existe pas ou \
-       est mal cree par Code Aster ")
-    # Si le stockage est plein
-    if desc[2]==2 :
-      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):
-          k=j*(j-1)/2+i
-          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))*' '+'.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
-    else:
-      raise KeyError
-    return valeur
-
-  def RECU_MATR_GENE(self,matrice) :
-    """ 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
-    UTMESS('A','RECU_MATR_GENE',' ATTENTION, VOUS ALLEZ ECRASER DES CONCEPTS EXISTANTS')
-
-    Numeric.asarray(matrice)
-    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
-    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
-    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
-    if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
-       raise Accas.AsException("La taille de la matrice est incorrecte ")
-
-    # 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)
-      tmpc=Numeric.zeros([int(taille)],Numeric.Float)
-      for j in range(desc[1]+1):
-        for i in range(j):
-          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))*' '+'.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))*' '+'.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
-class matr_asse_pres_c(matr_asse_gd):pass
-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):
-      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 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
-      # 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={}
-      # liste des paramètres et des types
-      lpar=[]
-      ltyp=[]
-      for i in lparam :
-         value=list(aster.getvectjev(i[2]))
-         exist=aster.getvectjev(i[3])
-         dval[string.strip(i[0])]=map(Nonefy,value,exist)
-         lpar.append(string.strip(i[0]))
-         ltyp.append(string.strip(i[1]))
-      n=len(dval[lpar[0]])
-      # contenu : liste de dict
-      lisdic=[]
-      for i in range(n) :
-        d={}
-        for p in lpar : d[p]=dval[p][i]
-        lisdic.append(d)
-      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
-
-# -----------------------------------------------------------------------------
-# vect_asse :
-class vect_asse(ASSD):pass
-
-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_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
-    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
-    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
-    if desc[1]<>Numeric.shape(vecteur)[0] :
-       raise Accas.AsException("La taille du vecteur python est incorrecte")
-    aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\
-    range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1)
-    return
-
-  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))*' '
-    valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'),Numeric.Complex)
-
-    return valeur
-
-  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
-    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
-    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
-    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)
-    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 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  
-# IT UNDER THE TERMS OF THE 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 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",
-                                        "VISC_ISOT_LINE",
-                                        "VMIS_ECMI_TRAC",
-                                        "VMIS_ECMI_LINE",
-                                        "LABORD_1D",
-                                        "ENDO_FRAGILE",
-                                        "ENDO_ISOT_BETON",
-                                        "ENDO_ORTH_BETON",
-                                        "BETON_REGLE_PR",
-                                        "MAZARS",
-                                        "JOINT_BA",
-                                        "RUPT_FRAG",
-                                        "CZM_EXP_REG",
-                                        "CZM_EXP",
-                                        "META_P_IL",
-                                        "META_P_IL_PT",
-                                        "META_P_IL_RE",
-                                        "META_P_IL_PT_RE",
-                                        "META_V_IL",
-                                        "META_V_IL_PT",
-                                        "META_V_IL_RE",
-                                        "META_V_IL_PT_RE",
-                                        "META_P_INL",
-                                        "META_P_INL_PT",
-                                        "META_P_INL_RE",
-                                        "META_P_INL_PT_RE",
-                                        "META_V_INL",
-                                        "META_V_INL_PT",
-                                        "META_V_INL_RE",
-                                        "META_V_INL_PT_RE",
-                                        "META_P_CL",
-                                        "META_P_CL_PT",
-                                        "META_P_CL_RE",
-                                        "META_P_CL_PT_RE",
-                                        "META_V_CL",
-                                        "META_V_CL_PT",
-                                        "META_V_CL_RE",
-                                        "META_V_CL_PT_RE",
-                                        "VMIS_CINE_LINE",
-                                        "VISC_TAHERI",
-                                        "VISCOCHAB",
-                                        "VMIS_CIN1_CHAB",
-                                        "VMIS_CIN2_CHAB",
-                                        "VISC_CIN1_CHAB",
-                                        "VISC_CIN2_CHAB",
-                                        "POLY_CFC",
-                                        "LMARC",
-                                        "LMARC_IRRA",
-                                        "ROUSSELIER",
-                                        "ROUSS_PR",
-                                        "ROUSS_VISC",
-                                        "VMIS_POU_LINE",
-                                        "VMIS_POU_FLEJOU",
-                                        "ARME",
-                                        "ASSE_CORN",
-                                        "NORTON_HOFF",
-                                        "LEMAITRE",
-                                        "LEMAITRE_IRRA",
-                                        "LEMA_SEUIL",
-                                        "IRRAD3M",
-                                        "ZIRC_CYRA2",
-                                        "VISC_IRRA_LOG",
-                                        "GRAN_IRRA_LOG",
-                                        "ZIRC_EPRI",
-                                        "VENDOCHAB",
-                                        "NADAI_B",
-                                        "DIS_CONTACT",
-                                        "DIS_CHOC",
-                                        "DIS_GRICRA",
-                                        "DIS_GOUJ2E_PLAS",
-                                        "DIS_GOUJ2E_ELAS",
-                                        "GRILLE_ISOT_LINE",
-                                        "GRILLE_CINE_LINE",
-                                        "GRILLE_PINTO_MEN",
-                                        "PINTO_MENEGOTTO",
-                                        "CJS",
-                                        "CAM_CLAY",
-                                        "BARCELONE",
-                                        "LAIGLE",
-                                        "DRUCKER_PRAGER",
-                                        "HOEK_BROWN",
-                                        "HOEK_BROWN_EFF",
-                                        "HOEK_BROWN_TOT",
-                                        "GRANGER_FP",
-                                        "GRANGER_FP_INDT",
-                                        "GRANGER_FP_V",
-                                        "BAZANT_FD",
-                                        "BETON_UMLV_FP",
-                                        "BETON_DOUBLE_DP",
-                                        "KIT_HM",
-                                        "KIT_HHM",
-                                        "KIT_THH",
-                                        "KIT_THV",
-                                        "KIT_THM",
-                                        "KIT_THHM",
-                                        "VMIS_ASYM_LINE",
-                                        "ELAS_THER",
-                                        "KIT_DDI",
-                                        "GLRC",
-                                        "SANS",
-                                        "CORR_ACIER",
-                                        "MONOCRISTAL",
-                                        "POLYCRISTAL",
-                                        "ZMAT",
-                                        "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,)),
-          VISC_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-          VMIS_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-          VISC_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-          VMIS_ECMI_TRAC  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
-          VMIS_ECMI_LINE  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
-          LABORD_1D       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
-          ENDO_FRAGILE    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-          ENDO_ISOT_BETON =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-          ENDO_ORTH_BETON =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
-          BETON_REGLE_PR  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          MAZARS          =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-          JOINT_BA        =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
-          RUPT_FRAG       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          CZM_EXP_REG      =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
-          CZM_EXP          =SIMP(statut='c',typ='I',defaut=7,into=(7,)),                              
-          META_P_IL         =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_IL_PT       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_IL_RE       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_IL_PT_RE    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_IL          =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_IL_PT       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_IL_RE       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_IL_PT_RE    =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_INL         =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_INL_PT      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_INL_RE      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_INL_PT_RE   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_INL         =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_INL_PT      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_INL_RE      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_V_INL_PT_RE   =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          META_P_CL          =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
-          META_P_CL_PT       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
-          META_P_CL_RE       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
-          META_P_CL_PT_RE    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
-          META_V_CL          =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
-          META_V_CL_PT       =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
-          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,)),
-          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,)),
-          LMARC           =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
-          LMARC_IRRA      =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
-          VISC_TAHERI     =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
-          ROUSSELIER      =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
-          ROUSS_PR        =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-          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=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,)),
-          VISC_IRRA_LOG   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-          GRAN_IRRA_LOG   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-          NADAI_B         =SIMP(statut='c',typ='I',defaut=34,into=(34,)),
-          VENDOCHAB       =SIMP(statut='c',typ='I',defaut=10,into=(10,)),
-          GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
-          GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
-          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,)),
-          CJS             =SIMP(statut='c',typ='I',defaut=16,into=(16,)),
-          CAM_CLAY        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-          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,)),
-          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,)),
-          BAZANT_FD       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-          BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
-          KIT_HM          =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
-          KIT_HHM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
-          KIT_THH         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
-          KIT_THV         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
-          KIT_THM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
-          KIT_THHM        =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
-          VMIS_ASYM_LINE  =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
-          BETON_UMLV_FP   =SIMP(statut='c',typ='I',defaut=21,into=(21,)),
-          GLRC            =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
-          GATT_MONERIE    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
-
-           b_monox     = BLOC(condition = "RELATION == 'MONOCRISTAL' ",
-                                 fr="SD issue de DEFI_COMPOR",
-                   COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
-#          
-           b_polyx     = BLOC(condition = "RELATION == 'POLYCRISTAL' ",
-                                 fr="SD issue de DEFI_COMPOR",
-                   COMPOR =SIMP(statut='o',typ=compor_sdaster,max=1),),
-#          
-           b_zmat      = BLOC(condition = "RELATION == 'ZMAT' ",
-                                 fr="Comportement de la bibliotheque Zmat",
-                   NB_VARI =SIMP(statut='o',typ='I',max=1),
-                   UNITE =SIMP(statut='o',typ='I',max=1),),
-
-
-
-           RELATION_KIT    =SIMP(statut='f',typ='TXM',max='**',validators=NoRepeat(),
-                                 into=(
-# MECA
-                                       "ELAS",
-                                       "CJS",
-                                       "CAM_CLAY",
-                                       "BARCELONE",
-                                       "LAIGLE",
-                                       "DRUCKER_PRAGER",
-                                       "HOEK_BROWN_EFF",
-                                       "HOEK_BROWN_TOT",
-                                       "ELAS_THER",
-                                       "MAZARS",
-                                       "ENDO_ISOT_BETON",
-# THMC
-                                       "GAZ",
-                                       "LIQU_SATU",
-                                       "LIQU_GAZ_ATM",
-                                       "LIQU_VAPE_GAZ",
-                                       "LIQU_AD_GAZ_VAPE",
-                                       "LIQU_VAPE",
-                                       "LIQU_GAZ",
-# HYDR
-                                       "HYDR_UTIL",
-                                       "HYDR",
-                                       "HYDR_ENDO",
-# MECA_META
-                                       "ACIER",
-                                       "ZIRC",
-# MECA KIT_DDI
-                                       "VMIS_ISOT_TRAC",
-                                       "VMIS_ISOT_LINE",
-                                       "VMIS_ISOT_CINE",
-                                       "GRANGER_FP",
-                                       "GRANGER_FP_INDT",
-                                       "GRANGER_FP_V",
-                                       "BETON_UMLV_FP",
-                                       "ROUSS_PR",
-                                       "NADAI_B",
-                                       "BETON_DOUBLE_DP",
-                                       ),),
-                            
-                                        
-           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_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_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,)),
-           HYDR_ENDO       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           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","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 04/04/2006   AUTEUR CIBHHLV L.VIVAN 
-#            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 VABHHTS J.PELLET
-# ce fichier contient la liste des "into" possibles pour le mot cle NOM_CHAM
-# c'est a dire les noms de champs des SD RESULTAT (DATA de la routine RSCRSD)
-def C_NOM_CHAM_INTO() : return  ("ACCE",    #COMMUN#
-                        "ACCE_ABSOLU",
-                        "ALPH0_ELGA_EPSP",
-                        "ALPHP_ELGA_ALPH0",
-                        "COMPORTEMENT",
-                        "COMPORTHER",
-                        "CRIT_ELNO_RUPT",
-                        "DCHA_ELGA_SIGM",
-                        "DCHA_ELNO_SIGM",
-                        "DCHA_NOEU_SIGM",
-                        "DEDE_ELNO_DLDE",
-                        "DEDE_NOEU_DLDE",
-                        "DEGE_ELNO_DEPL",
-                        "DEGE_NOEU_DEPL",
-                        "DEPL",
-                        "DEPL_ABSOLU",
-                        "DESI_ELNO_DLSI",
-                        "DESI_NOEU_DLSI",
-                        "DETE_ELNO_DLTE",
-                        "DETE_NOEU_DLTE",
-                        "DURT_ELGA_META",
-                        "DURT_ELNO_META",
-                        "DURT_NOEU_META",
-                        "ECIN_ELEM_DEPL",
-                        "EFGE_ELNO_CART",
-                        "EFGE_ELNO_DEPL",
-                        "EFGE_NOEU_CART",
-                        "EFGE_NOEU_DEPL",
-                        "ENDO_ELGA",
-                        "ENDO_ELNO_ELGA",
-                        "ENDO_ELNO_SIGA",
-                        "ENDO_ELNO_SINO",
-                        "ENDO_NOEU_SINO",
-                        "ENEL_ELGA",
-                        "ENEL_ELNO_ELGA",
-                        "ENEL_NOEU_ELGA",
-                        "EPEQ_ELNO_TUYO",
-                        "EPGR_ELGA",
-                        "EPGR_ELNO",
-                        "EPME_ELGA_DEPL",
-                        "EPME_ELNO_DEPL",
-                        "EPMG_ELGA_DEPL",
-                        "EPMG_ELNO_DEPL",
-                        "EPMG_NOEU_DEPL",
-                        "EPOT_ELEM_DEPL",
-                        "EPSA_ELNO",
-                        "EPSA_NOEU",
-                        "EPSG_ELGA_DEPL",
-                        "EPSG_ELNO_DEPL",
-                        "EPSG_NOEU_DEPL",
-                        "EPSI_ELGA_DEPL",
-                        "EPSI_ELNO_DEPL",
-                        "EPSI_ELNO_TUYO",
-                        "EPSI_NOEU_DEPL",
-                        "EPSP_ELGA",
-                        "EPSP_ELNO",
-                        "EPSP_ELNO_ZAC",
-                        "EPSP_NOEU",
-                        "EPSP_NOEU_ZAC",
-                        "EQUI_ELGA_EPME",
-                        "EQUI_ELGA_EPSI",
-                        "EQUI_ELGA_SIGM",
-                        "EQUI_ELNO_EPME",
-                        "EQUI_ELNO_EPSI",
-                        "EQUI_ELNO_SIGM",
-                        "EQUI_NOEU_EPME",
-                        "EQUI_NOEU_EPSI",
-                        "EQUI_NOEU_SIGM",
-                        "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",
-                        "EXTR_ELGA_VARI",
-                        "EXTR_ELNO_VARI",
-                        "EXTR_NOEU_VARI",
-                        "FLUX_ELGA_TEMP",
-                        "FLUX_ELNO_TEMP",
-                        "FLUX_NOEU_TEMP",
-                        "FORC_NODA",
-                        "FSUR_2D",
-                        "FSUR_3D",
-                        "FVOL_2D",
-                        "FVOL_3D",
-                        "GRAD_NOEU_THETA",
-                        "HYDR_ELNO_ELGA",
-                        "HYDR_NOEU_ELGA",
-                        "INDI_LOCA_ELGA",
-                        "INTE_ELNO_ACTI",
-                        "INTE_ELNO_REAC",
-                        "INTE_NOEU_ACTI",
-                        "INTE_NOEU_REAC",
-                        "IRRA",
-                        "LANL_ELGA",
-                        "META_ELGA_TEMP",
-                        "META_ELNO_TEMP",
-                        "META_NOEU_TEMP",
-                        "MODE_FLAMB",
-                        "PMPB_ELGA_SIEF",
-                        "PMPB_ELNO_SIEF",
-                        "PMPB_NOEU_SIEF",
-                        "PRES",
-                        "PRES_DBEL_DEPL",
-                        "PRES_ELNO_DBEL",
-                        "PRES_ELNO_IMAG",
-                        "PRES_ELNO_REEL",
-                        "PRES_NOEU_DBEL",
-                        "PRES_NOEU_IMAG",
-                        "PRES_NOEU_REEL",
-                        "RADI_ELGA_SIGM",
-                        "RADI_ELNO_SIGM",
-                        "RADI_NOEU_SIGM",
-                        "REAC_NODA",
-                        "SIEF_ELGA",
-                        "SIEF_ELGA_DEPL",
-                        "SIEF_ELNO",
-                        "SIEF_ELNO_ELGA",
-                        "SIEF_NOEU",
-                        "SIEF_NOEU_ELGA",
-                        "SIEQ_ELNO_TUYO",
-                        "SIGM_ELNO_CART",
-                        "SIGM_ELNO_COQU",
-                        "SIGM_ELNO_DEPL",
-                        "SIGM_ELNO_SIEF",
-                        "SIGM_ELNO_TUYO",
-                        "SIGM_ELNO_ZAC",
-                        "SIGM_NOEU_CART",
-                        "SIGM_NOEU_COQU",
-                        "SIGM_NOEU_DEPL",
-                        "SIGM_NOEU_SIEF",
-                        "SIGM_NOEU_ZAC",
-                        "SIGM_NOZ1_ELGA",
-                        "SIGM_NOZ2_ELGA",
-                        "SIPO_ELNO_DEPL",
-                        "SIPO_ELNO_SIEF",
-                        "SIPO_NOEU_DEPL",
-                        "SIPO_NOEU_SIEF",
-                        "SIRE_ELNO_DEPL",
-                        "SIRE_NOEU_DEPL",
-                        "SOUR_ELGA_ELEC",
-                        "TEMP",
-                        "THETA",
-                        "VALE_CONT",
-                        "VALE_NCOU_MAXI",
-                        "VARI_ELGA",
-                        "VARI_ELGA_ZAC",
-                        "VARI_ELNO",
-                        "VARI_ELNO_COQU",
-                        "VARI_ELNO_ELGA",
-                        "VARI_ELNO_TUYO",
-                        "VARI_NOEU",
-                        "VARI_NOEU_ELGA",
-                        "VARI_NON_LOCAL",
-                        "VITE",
-                        "VITE_ABSOLU",
-                        "VITE_VENT",
-                        )
-#& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-#
-# ce fichier contient la liste des "into" possibles pour le mot cle TYPE_CHAM
-def C_TYPE_CHAM_INTO() : #COMMUN#
-   l=[]
-   for gd in C_NOM_GRANDEUR() :
-        for typ in ("ELEM","ELNO","ELGA","CART","NOEU") :
-             l.append(typ+"_"+gd)
-   return tuple(l)
-
-#& MODIF COMMUN  DATE 27/06/2005   AUTEUR D6BHHJP J.P.LEFEBVRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# ce fichier contient la liste des PARA possibles pour les fonctions et les nappes
-def C_PARA_FONCTION() : return  ( #COMMUN#
-                   "DX","DY","DZ","DRX","DRY","DRZ","TEMP","TSEC",
-                   "INST","X","Y","Z","EPSI","META","FREQ","PULS","DSP",
-                   "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
-                   "PGAZ","PCAP","VITE","ENDO","NORM","EPAIS",
-                   "NEUT1","NEUT2",)
-#& MODIF COMMUN  DATE 04/04/2006   AUTEUR CIBHHLV L.VIVAN 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# 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  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/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 MJBHHPE J.L.FLEJOU
-AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
-                    fr="Affectation de caractéristiques à des éléments de structure",
-                    reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-         regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','DISCRET_2D','MASSIF',
-                             '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") ),
-
-#============================================================================
-         POUTRE          =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='**'),
-           SECTION         =SIMP(statut='o',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ),
-           PREC_AIRE       =SIMP(statut='f',typ='R',defaut=0.01),
-           PREC_INERTIE    =SIMP(statut='f',typ='R',defaut=0.1),
-           b_generale      =BLOC( condition = "SECTION=='GENERALE'",
-             VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"),
-             b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
-               CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=4 ,max=15,
-                                 fr="A,IY,IZ,JX sont des paramètres obligatoires",
-                                 into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
-                                       "JG","IYR2","IZR2","AI") ),
-               VALE            =SIMP(statut='o',typ='R',min=4 ,max=15),
-             ),
-             b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
-               CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=8 ,max=30,
-                                 fr="A1,A2,IY1,IY2,IZ1,IZ2,JX1,JX2 sont des paramètres obligatoires",
-                                 into=("A1","IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
-                                       "RZ1","RT1","JG1","IYR21","IZR21","AI1",
-                                       "A2","IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
-                                       "RZ2","RT2","JG2","IYR22","IZR22","AI2") ),
-               VALE            =SIMP(statut='o',typ='R',min=8 ,max=30),
-             ),
-           ),
-           b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
-             VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE","AFFINE"),defaut="CONSTANT"),
-             b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
-               CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=4,
-                                 into=("H","EP", "HY","HZ","EPY","EPZ") ),
-               VALE            =SIMP(statut='o',typ='R',min=1 ,max=4),
-             ),
-             b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
-               CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=8,
-                                     into=("H1","HZ1","HY1","EP1","EPY1","EPZ1",
-                                           "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
-               VALE            =SIMP(statut='o',typ='R',min=2 ,max=8),
-             ),
-             b_affine =BLOC( condition = "VARI_SECT=='AFFINE'",
-               CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=3 ,max=6,
-                                     into=("HY","EPY", "HZ1","EPZ1","HZ2","EPZ2") ),
-               VALE            =SIMP(statut='o',typ='R',min=3 ,max=6),
-             ),
-           ),
-           b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
-             VARI_SECT       =SIMP(statut='f',typ='TXM',into=("CONSTANT","HOMOTHETIQUE"),defaut="CONSTANT"),
-             b_constant      =BLOC( condition = "VARI_SECT=='CONSTANT'",
-               CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1 ,max=2,
-                                 fr="R est un paramètre obligatoire",
-                                     into=("R","EP") ),
-               VALE            =SIMP(statut='o',typ='R',min=1 ,max=2),
-             ),
-             b_homothetique  =BLOC( condition = "VARI_SECT=='HOMOTHETIQUE'",
-               CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=2 ,max=4,
-                                 fr="R1, R2 sont des paramètres obligatoires",
-                                     into=("R1","R2","EP1","EP2") ),
-               VALE            =SIMP(statut='o',typ='R',min=2 ,max=4),
-             ),
-             MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-             FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-             TUYAU_NSEC      =SIMP(statut='f',typ='I',val_max=32,defaut=16),
-             TUYAU_NCOU      =SIMP(statut='f',typ='I',val_max=10,defaut=3),
-           ),
-         ),
-
-#============================================================================
-         BARRE           =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='**'),
-           SECTION         =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
-           b_generale      =BLOC( condition = "SECTION=='GENERALE'",
-             CARA            =SIMP(statut='o',typ='TXM',into=("A",) ),
-             VALE            =SIMP(statut='o',typ='R',min=1,max=1 ),
-           ),
-           b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
-             CARA            =SIMP(statut='o',typ='TXM',into=("H","EP",
-                                                              "HZ","HY","EPY","EPZ"),
-                                                        validators=NoRepeat(),min=1,max=4 ),
-             VALE            =SIMP(statut='o',typ='R',min=1,max=4 ),
-           ),
-           b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
-             CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),min=1,max=2,into=("R","EP") ),
-             VALE            =SIMP(statut='o',typ='R',min=1,max=2 ),
-           ),
-           FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-#============================================================================
-         COQUE           =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA' ),
-                   PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           EPAIS           =SIMP(statut='o',typ='R' ),
-           ANGL_REP        =SIMP(statut='f',typ='R',min=2,max=2),
-           A_CIS           =SIMP(statut='c',typ='R',defaut= 0.8333333E0),
-           COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
-           COQUE_NCOU      =SIMP(statut='f',typ='I',defaut= 1 ),
-           EXCENTREMENT    =SIMP(statut='f',typ='R' ),
-           INER_ROTA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-
-#============================================================================
-         CABLE           =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='**'),
-           N_INIT          =SIMP(statut='f',typ='R',defaut= 5000. ),
-           SECTION         =SIMP(statut='f',typ='R' ),
-           FCX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-#============================================================================
-         DISCRET         =FACT(statut='f',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,
-          fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
-                                 into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
-                                       "K_T_N",  "K_T_L",  "K_TR_N",  "K_TR_L",
-                                       "M_T_D_N","M_TR_D_N","M_T_N",
-                                       "M_T_L",  "M_TR_N",  "M_TR_L",
-                                       "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
-                                       "A_T_N",  "A_T_L",   "A_TR_N", "A_TR_L") ),
-
-# 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=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='**',
-           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,
-          fr="Affectation de matrices de rigidité, de masse ou d'amortissement à des mailles ou noeuds",
-                                 into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
-                                       "K_T_N",  "K_T_L",  "K_TR_N",  "K_TR_L",
-                                       "M_T_D_N","M_T_N",  "M_TR_D_N",
-                                       "M_T_L",  "M_TR_N",  "M_TR_L",
-                                       "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
-                                       "A_T_N",  "A_T_L",   "A_TR_N", "A_TR_L") ),
-
-# 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),),
-         ),
-
-#============================================================================
-         ORIENTATION     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           CARA            =SIMP(statut='o',typ='TXM',
-                                 into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
-           VALE            =SIMP(statut='o',typ='R',max='**'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-         ),
-
-#============================================================================
-         DEFI_ARC        =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA'),
-                   UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
-                            'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
-                   PRESENT_PRESENT('ORIE_ARC','RAYON'),
-                   EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
-                   EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
-                   EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
-                   EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
-                   PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
-                   PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           ORIE_ARC        =SIMP(statut='f',typ='R'),
-           CENTRE          =SIMP(statut='f',typ='R',max='**'),
-           NOEUD_CENTRE    =SIMP(statut='f',typ=no),
-           GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
-           POIN_TANG       =SIMP(statut='f',typ='R',max='**'),
-           NOEUD_POIN_TANG =SIMP(statut='f',typ=no),
-           GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno),
-           RAYON           =SIMP(statut='f',typ='R'),
-           COEF_FLEX       =SIMP(statut='f',typ='R'),
-           INDI_SIGM       =SIMP(statut='f',typ='R'),
-           COEF_FLEX_XY    =SIMP(statut='f',typ='R'),
-           INDI_SIGM_XY    =SIMP(statut='f',typ='R'),
-           COEF_FLEX_XZ    =SIMP(statut='f',typ='R'),
-           INDI_SIGM_XZ    =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") ),
-         ),
-
-#============================================================================
-         MASSIF          =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA'),
-                   UN_PARMI('ANGL_REP','ANGL_AXE'),
-                   EXCLUS('ANGL_REP','ANGL_AXE'),
-                   EXCLUS('ANGL_REP','ORIG_AXE'),
-                   PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           ANGL_REP        =SIMP(statut='f',typ='R',max=3),
-           ANGL_AXE        =SIMP(statut='f',typ='R',max=2),
-           ORIG_AXE        =SIMP(statut='f',typ='R',max=3),
-         ),
-
-#============================================================================
-         POUTRE_FLUI     =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='**'),
-           B_T             =SIMP(statut='o',typ='R'),
-           B_N             =SIMP(statut='o',typ='R'),
-           B_TN            =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
-           A_FLUI          =SIMP(statut='o',typ='R'),
-           A_CELL          =SIMP(statut='o',typ='R'),
-           COEF_ECHELLE    =SIMP(statut='o',typ='R'),
-         ),
-
-#============================================================================
-         GRILLE          =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','GROUP_MA'),
-                   EXCLUS('ANGL_REP','ORIG_AXE'),
-                   ENSEMBLE('ORIG_AXE','AXE')),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           SECTION         =SIMP(statut='o',typ='R'),
-           ANGL_REP        =SIMP(statut='f',typ='R',max=2),
-           EXCENTREMENT    =SIMP(statut='f',typ='R'),
-           ORIG_AXE        =SIMP(statut='f',typ='R',max='**'),
-           AXE             =SIMP(statut='f',typ='R',max='**'),
-           COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
-           GRILLE_NCOU     =SIMP(statut='f',typ='I',defaut= 1,),
-         ),
-
-#============================================================================
-         RIGI_PARASOL    =FACT(statut='f',max='**',
-            regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'),
-                    UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
-                    EXCLUS('GROUP_MA_POI1','GROUP_MA_SEG2'),),
-            GROUP_MA        =SIMP(statut='o',typ=ma,validators=NoRepeat(),max='**',
-               fr="Surface servant à répartir les caractéristiques des discrets"),
-            GROUP_MA_POI1   =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1,
-               fr="Mailles de type point correspondant aux discrets"),
-            GROUP_MA_SEG2   =SIMP(statut='f',typ=ma,validators=NoRepeat(),max=1,
-               fr="Mailles de type seg2 correspondant aux discrets"),
-            FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-            COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
-            REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
-            CARA            =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=2,
-                            into=("K_TR_D_N","K_T_D_N","K_TR_D_L","K_T_D_L",
-                                  "A_TR_D_N","A_T_D_N","A_TR_D_L","A_T_D_L") ),
-            VALE            =SIMP(statut='o',typ='R',max='**'),
-            GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
-            NOEUD_CENTRE    =SIMP(statut='f',typ=no),
-            COOR_CENTRE     =SIMP(statut='f',typ='R',min=2,max=3),
-         ),
-         
-#============================================================================
-         RIGI_MISS_3D    =FACT(statut='f',max='**',
-           GROUP_MA_POI1   =SIMP(statut='o',typ=ma,max=1),
-           GROUP_MA_SEG2   =SIMP(statut='f',typ=ma,max=1),
-           FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
-           UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
-         ),
-         
-#============================================================================
-         AFFE_SECT     =FACT(statut='f',max='**',
-              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),
-                      AU_MOINS_UN('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),
-                      PRESENT_ABSENT('TOUT_SECT','GROUP_MA_SECT','MAILLE_SECT'),),
-
-              NOM             =SIMP(statut='f',typ='TXM'),
-
-              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-
-              TOUT_SECT         =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-              GROUP_MA_SECT     =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-              MAILLE_SECT       =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-
-              MAILLAGE_SECT     =SIMP(statut='o',typ=maillage_sdaster),
-              COOR_AXE_POUTRE    =SIMP(statut='o',typ='R',min=2,max=2),
-         ),
-
-
-#============================================================================
-         AFFE_FIBRE     =FACT(statut='f',max='**',
-              regles=(AU_MOINS_UN('GROUP_MA','MAILLE'),),
-
-              NOM             =SIMP(statut='f',typ='TXM'),
-
-              GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-              MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-
-              CARA              =SIMP(statut='f',typ='TXM',defaut='SURFACE',into=('SURFACE','DIAMETRE',)),
-              VALE              =SIMP(statut='o',typ='R',max='**'),
-              COOR_AXE_POUTRE    =SIMP(statut='o',typ='R',min=2,max=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.      
-# ======================================================================
-AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
-                    fr="Affectation de charges et conditions aux limites acoustiques constantes",
-                    reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-         regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         PRES_IMPO       =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
-           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='**'),
-           PRES            =SIMP(statut='o',typ='C' ),
-         ),
-         VITE_FACE       =FACT(statut='f',max='**',
-             regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                     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='**'),
-           VNOR            =SIMP(statut='o',typ='C' ),
-         ),
-         IMPE_FACE       =FACT(statut='f',max='**',
-             regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                     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='**'),
-           IMPE            =SIMP(statut='o',typ='C' ),
-         ),
-         LIAISON_UNIF    =FACT(statut='f',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='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           DDL             =SIMP(statut='o',typ='TXM',max='**'),
-         ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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 affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
-  if MECA_IMPO != None  : return char_cine_meca
-  if THER_IMPO != None  : return char_cine_ther
-  if ACOU_IMPO != None  : return char_cine_acou
-  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 constantes pour un traitement sans dualisation",
-                     reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-         regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'),
-                 EXCLUS('MECA_IMPO','THER_IMPO'),
-                 EXCLUS('MECA_IMPO','ACOU_IMPO'),
-                 EXCLUS('THER_IMPO','ACOU_IMPO'),),
-         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','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'),
-                   AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),),
-           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='**'),
-           TEMP_SUP        =SIMP(statut='f',typ='R' ),
-           TEMP            =SIMP(statut='f',typ='R' ),
-           TEMP_INF        =SIMP(statut='f',typ='R' ),
-         ),
-         ACOU_IMPO       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
-           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='**'),
-           PRES            =SIMP(statut='o',typ='C' ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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.
-#fon
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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 affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
-  if MECA_IMPO != None  : return char_cine_meca
-  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 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'),
-                 EXCLUS('MECA_IMPO','THER_IMPO'),),
-         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=(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) ),
-           DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         THER_IMPO       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
-                   AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),),
-           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='**'),
-           TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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
-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',
-                             'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
-                             'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE',
-                             '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',
-                             'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',
-                             '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_sdaster,carte_sdaster) ),
-         SECH_CALCULEE   =SIMP(statut='f',fr="Champ de séchage issu d'un autre calcul",
-                               typ=(evol_ther,cham_no_sdaster,carte_sdaster ) ),
-         EPSA_CALCULEE   =SIMP(statut='f',fr="Champ de déformation anélastique issu d'un autre calcul",
-                               typ=evol_noli ),
-         EVOL_CHAR       =SIMP(statut='f',fr="Champ de pression issu d'un autre calcul",
-                               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),
-         b_rotation      =BLOC ( condition = "ROTATION != None",
-           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','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='**'),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)),
-             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' ),      
-             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'),),
-             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' ),
-#  définition du repère local
-             VECT_Y          =SIMP(statut='f',typ='R',min=3,max=3),
-             ANGL_VRIL       =SIMP(statut='f',typ='R',),
-#  restriction sur les mailles servant à définir le repère local
-             GROUP_MA        =SIMP(statut='f',typ=grma,),
-             MAILLE          =SIMP(statut='f',typ=ma,),
-                            ),
-
-
-
-           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'),
-                     EXCLUS('DNOR','DX'),
-                     EXCLUS('DNOR','DY'),
-                     EXCLUS('DNOR','DZ'),
-                     EXCLUS('DNOR','DRX'),
-                     EXCLUS('DNOR','DRY'),
-                     EXCLUS('DNOR','DRZ'),
-                     EXCLUS('DTAN','DX'),
-                     EXCLUS('DTAN','DY'),
-                     EXCLUS('DTAN','DZ'),
-                     EXCLUS('DTAN','DRX'),
-                     EXCLUS('DTAN','DRY'),
-                     EXCLUS('DTAN','DRZ'),),
-#  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' ),
-             DRX             =SIMP(statut='f',typ='R' ),
-             DRY             =SIMP(statut='f',typ='R' ),
-             DRZ             =SIMP(statut='f',typ='R' ),
-             DNOR            =SIMP(statut='f',typ='R' ),
-             DTAN            =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' ),
-           ),
-
-         CHAMNO_IMPO  =FACT(statut='f',max='**',
-             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' ),
-             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
-           ),
-
-
-           LIAISON_DDL     =FACT(statut='f',max='**',
-             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='**'),
-             DDL             =SIMP(statut='o',typ='TXM',max='**'),
-             COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
-             COEF_IMPO       =SIMP(statut='o',typ='R' ),
-           ),
-
-           LIAISON_OBLIQUE =FACT(statut='f',max='**',
-             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='**'),
-             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-             ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
-             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' ),
-           ),
-
-           LIAISON_GROUP   =FACT(statut='f',max='**',
-             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'),
-                     EXCLUS('GROUP_MA_1','NOEUD_2'),
-                     EXCLUS('GROUP_NO_1','GROUP_MA_2'),
-                     EXCLUS('GROUP_NO_1','MAILLE_2'),
-                     EXCLUS('MAILLE_1','GROUP_NO_2'),
-                     EXCLUS('MAILLE_1','NOEUD_2'),
-                     EXCLUS('NOEUD_1','GROUP_MA_2'),
-                     EXCLUS('NOEUD_1','MAILLE_2'),
-                     EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
-
-               GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-               GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE_2        =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='**'),
-               GROUP_NO_2      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-               NOEUD_2         =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='**'),
-             DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
-             COEF_MULT_1     =SIMP(statut='o',typ='R'  ,max='**'),
-             DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
-             COEF_MULT_2     =SIMP(statut='o',typ='R'  ,max='**'),
-             COEF_IMPO       =SIMP(statut='o',typ='R' ),
-             SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             TRAN            =SIMP(statut='f',typ='R',max=3),
-             ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-             CENTRE          =SIMP(statut='f',typ='R',max=3),
-           ),
-
-           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'),),
-              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='**'),
-              GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-              NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-              TRAN            =SIMP(statut='f',typ='R',max=3 ),
-              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
-              CENTRE          =SIMP(statut='f',typ='R',max=3 ),
-              DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
-              DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
-              ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-
-           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'),
-                     ),
-              GROUP_MA_MAIT1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-              MAILLE_MAIT1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-              GROUP_MA_MAIT2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-              MAILLE_MAIT2     =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='**'),
-              GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-              NOEUD_ESCL     =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-              TRAN            =SIMP(statut='f',typ='R',max=3 ),
-              ANGL_NAUT       =SIMP(statut='f',typ='R',max=3 ),
-              CENTRE          =SIMP(statut='f',typ='R',max=3 ),
-              COEF_MAIT1            =SIMP(statut='f',typ='R',max=1 ),
-              COEF_MAIT2            =SIMP(statut='f',typ='R',max=1 ),
-              COEF_ESCL            =SIMP(statut='f',typ='R',max=1 ),
-              DDL_MAIT        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
-              DDL_ESCL        =SIMP(statut='f',typ='TXM',into=("DNOR",) ),
-         ),
-
-
-           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='**'),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
-           ),
-
-           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") ),
-             GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             MAILLE_1        =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='**'),
-             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
-             CARA_ELEM       =SIMP(statut='f',typ=(cara_elem) ),
-             AXE_POUTRE      =SIMP(statut='f',typ='R',max=3),
-             ANGL_MAX        =SIMP(statut='f',typ='R',defaut= 1. ),
-           ),
-
-           LIAISON_UNIF    =FACT(statut='f',max='**',
-             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='**'),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             DDL             =SIMP(statut='o',typ='TXM',max='**'),
-           ),
-
-         LIAISON_CHAMNO  =FACT(statut='f',max='**',
-             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' ),
-             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
-           ),
-
-         LIAISON_XFEM      =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
-
-         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","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",
-                STOP_INTERP     =SIMP(statut='f',typ='TXM',defaut="NON",
-                                      into=("OUI","NON")),
-                TOLE_INTERP     =SIMP(statut='f',typ='R',defaut = 0.),
-                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_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
-           ),
-
-           b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
-                                 fr="Paramètres de la méthode des contraintes actives (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")),
-                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.),
-                                 ),
-                TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
-                TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
-                                      into=("OUI","NON")),
-                NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
-                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",
-                                 ),
-                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'),
-
-                                 ),
-                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
-                      fr="Paramètre de la réactualisation géométrique auto",
-                                 ), 
-                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'),
-
-           ),
-           b_lagrangien    =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
-                                 fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
-                NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
-                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),
-                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
-                                      into=("OUI","NON")),
-                NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
-                ITER_MULT_MAXI  =SIMP(statut='f',typ='I'  ,defaut=4),
-
-                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",
-                                 ),
-                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'),
-
-                                 ),
-                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
-                      fr="Paramètre de la réactualisation géométrique auto",
-                                  ), 
-
-               
-                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),
-                     ),),
-           
-           b_penalisation       =BLOC(condition = "METHODE == 'PENALISATION' ",
-                                      fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
-                NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
-                E_N             =SIMP(statut='f',typ='R'),
-                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),
-                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
-                                      into=("OUI","NON")),
-                NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
-                ITER_MULT_MAXI  =SIMP(statut='f',typ='I',defaut=4),
-                
-                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",
-                                 ),
-                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'),
-                                 ),
-                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
-                      fr="Paramètre de la réactualisation géométrique auto",
-                                 ), 
-
-                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',),
-                     E_T             =SIMP(statut='f',typ='R',
-                                           fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
-                     COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),
-                     ),),
-
-           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",) ),
-                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="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='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           FX              =SIMP(statut='f',typ='R' ),
-           FY              =SIMP(statut='f',typ='R' ),
-           FZ              =SIMP(statut='f',typ='R' ),
-           MX              =SIMP(statut='f',typ='R' ),
-           MY              =SIMP(statut='f',typ='R' ),
-           MZ              =SIMP(statut='f',typ='R' ),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-         ),
-
-         FORCE_FACE      =FACT(statut='f',max='**',
-             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='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             FX              =SIMP(statut='f',typ='R' ),
-             FY              =SIMP(statut='f',typ='R' ),
-             FZ              =SIMP(statut='f',typ='R' ),
-           ),
-
-         FORCE_ARETE     =FACT(statut='f',max='**',
-         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='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             FX              =SIMP(statut='f',typ='R' ),
-             FY              =SIMP(statut='f',typ='R' ),
-             FZ              =SIMP(statut='f',typ='R' ),
-             MX              =SIMP(statut='f',typ='R' ),
-             MY              =SIMP(statut='f',typ='R' ),
-             MZ              =SIMP(statut='f',typ='R' ),
-           ),
-
-         FORCE_CONTOUR   =FACT(statut='f',max='**',
-             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='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             FX              =SIMP(statut='f',typ='R' ),
-             FY              =SIMP(statut='f',typ='R' ),
-             FZ              =SIMP(statut='f',typ='R' ),
-             MX              =SIMP(statut='f',typ='R' ),
-             MY              =SIMP(statut='f',typ='R' ),
-             MZ              =SIMP(statut='f',typ='R' ),
-           ),
-
-         FORCE_INTERNE   =FACT(statut='f',max='**',
-             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' ),),
-             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='**'),
-             FX              =SIMP(statut='f',typ='R' ),
-             FY              =SIMP(statut='f',typ='R' ),
-             FZ              =SIMP(statut='f',typ='R' ),
-           ),
-
-         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",
-             regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                     PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                     AU_MOINS_UN('PRES','CISA_2D' ),),
-             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='**'),
-             PRES            =SIMP(statut='f',typ='R' ),
-             CISA_2D         =SIMP(statut='f',typ='R' ),
-           ),
-
-         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='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           PRES            =SIMP(statut='o',typ='R' ),
-         ),
-
-         EPSI_INIT       =FACT(statut='f',max='**',
-             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',
-                                 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),),
-             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='**'),
-             EPXX            =SIMP(statut='f',typ='R' ),
-             EPYY            =SIMP(statut='f',typ='R' ),
-             EPZZ            =SIMP(statut='f',typ='R' ),
-             EPXY            =SIMP(statut='f',typ='R' ),
-             EPXZ            =SIMP(statut='f',typ='R' ),
-             EPYZ            =SIMP(statut='f',typ='R' ),
-             EPX             =SIMP(statut='f',typ='R' ),
-             KY              =SIMP(statut='f',typ='R' ),
-             KZ              =SIMP(statut='f',typ='R' ),
-             EXX             =SIMP(statut='f',typ='R' ),
-             EYY             =SIMP(statut='f',typ='R' ),
-             EXY             =SIMP(statut='f',typ='R' ),
-             KXX             =SIMP(statut='f',typ='R' ),
-             KYY             =SIMP(statut='f',typ='R' ),
-             KXY             =SIMP(statut='f',typ='R' ),
-           ),
-
-         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='**'),
-           CARA_ELEM      =SIMP(statut='f',typ=cara_elem ),
-           COND_LIM       =SIMP(statut='f',typ=char_meca ),
-           COLLAGE        =SIMP(statut='f',typ='TXM',defaut="GROSSIER",into=("GROSSIER","FIN","GROUP_MA_1","GROUP_MA_2"),),
-           regles         =(UN_PARMI('POIDS_1','POIDS_2','POIDS_GROSSIER','POIDS_FIN',),),
-           POIDS_1        =SIMP(statut='f',typ='R'),
-           POIDS_2        =SIMP(statut='f',typ='R'),
-           POIDS_GROSSIER =SIMP(statut='f',typ='R'),
-           POIDS_FIN      =SIMP(statut='f',typ='R'),),
-
-        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'),
-                     PRESENT_ABSENT('FX','N','VY','VZ'),
-                     PRESENT_ABSENT('FY','N','VY','VZ'),
-                     PRESENT_ABSENT('FZ','N','VY','VZ'),
-                     PRESENT_ABSENT('N','FX','FY','FZ'),
-                     PRESENT_ABSENT('VY','FX','FY','FZ'),
-                     PRESENT_ABSENT('VZ','FX','FY','FZ'),),
-             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='**'),
-             TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ),
-#  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
-               FX              =SIMP(statut='f',typ='R' ),
-               FY              =SIMP(statut='f',typ='R' ),
-               FZ              =SIMP(statut='f',typ='R' ),
-
-               N               =SIMP(statut='f',typ='R' ),
-               VY              =SIMP(statut='f',typ='R' ),
-               VZ              =SIMP(statut='f',typ='R' ),
-
-           ),
-
-         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",) ),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             PRES            =SIMP(statut='f',typ='R' ),
-           ),
-
-         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'),
-                     PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
-                     PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
-                     PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
-                     PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
-                     PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
-                     PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
-                     PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'),
-                     PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'),
-                     PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'),
-                     PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'),
-                     PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'),
-                     PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
-#  rajour d'un mot clé REPERE :/ LOCAL /GLOBAL
-             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='**'),
-
-               FX              =SIMP(statut='f',typ='R' ),
-               FY              =SIMP(statut='f',typ='R' ),
-               FZ              =SIMP(statut='f',typ='R' ),
-               MX              =SIMP(statut='f',typ='R' ),
-               MY              =SIMP(statut='f',typ='R' ),
-               MZ              =SIMP(statut='f',typ='R' ),
-
-               F1              =SIMP(statut='f',typ='R' ),
-               F2              =SIMP(statut='f',typ='R' ),
-               F3              =SIMP(statut='f',typ='R' ),
-               MF1             =SIMP(statut='f',typ='R' ),
-               MF2             =SIMP(statut='f',typ='R' ),
-
-             PRES            =SIMP(statut='f',typ='R' ),
-             PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ),
-           ),
-
-
-           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'),
-                     PRESENT_PRESENT('CARA_GRAPPE','VALE_GRAPPE'),
-                     PRESENT_PRESENT('CARA_COMMANDE','VALE_COMMANDE'),
-                     PRESENT_PRESENT('CARA_MANCHETTE','VALE_MANCHETTE'),
-                     PRESENT_PRESENT('CARA_GUIDE','VALE_GUIDE'),
-                     PRESENT_PRESENT('CARA_ASSEMBLAGE','VALE_ASSEMBLAGE'),
-                     PRESENT_PRESENT('CARA_PDC','VALE_PDC'),),
-             GROUP_MA        =SIMP(statut='f',typ=grma,max=1),
-             GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,max=1),
-             NOEUD_EXTR      =SIMP(statut='f',typ=no,max=1),
-             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
-             NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
-             Z0              =SIMP(statut='f',typ='R' ),
-             CARA_HYDR       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 fr="définition des données hydrauliques",
-                                 into=("Q","ROC","ROD","ROP","ROM","ROML","ROG","NUC","NUM",
-                                       "NUML","NUG","P2","P3","P4","CGG","G") ),
-             VALE_HYDR       =SIMP(statut='f',typ='R',max='**',
-                                 fr="valeurs des données hydrauliques",),
-             CARA_GRAPPE     =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 fr="définition des données géométriques de la grappe",
-                                 into=("M","DTIGE","DTMOY","ROTIGE","LTIGE","LLT","LCT",
-                                       "VARAI","RORAI","DCRAY","ROCRAY","LCRAY","LCHUT",
-                                       "CFCM","CFCI","CFCG","HRUGC","HRUGTC","NCA") ),
-             VALE_GRAPPE     =SIMP(statut='f',typ='R',max='**',
-                                 fr="valeurs des données géométriques de la grappe",),
-             CARA_COMMANDE   =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 fr="définition des données géométriques du mécanisme de commande",
-                                 into=("LI","LML","LG","LIG","DIML","DEML","DCSP",
-                                       "DG","HRUGML","HRUGCSP","HRUGG") ),
-             VALE_COMMANDE   =SIMP(statut='f',typ='R',max='**',
-                                 fr="valeurs des données géométriques du mécanisme de commande",),
-             CARA_MANCHETTE  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 fr="définition des données géométriques de la manchette et son adaptateur",
-                                 into=("LM","LA","LIM","DIMT","DEMT","DCMT","VMT",
-                                       "ROMT","DA","HRUGM","HRUGA") ),
-             VALE_MANCHETTE  =SIMP(statut='f',typ='R',max='**',
-                                 fr="valeurs des données géométriques de la manchette et son adaptateur",),
-             CARA_GUIDE      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 fr="définition des données géométriques des tubes guides",
-                                 into=("NRET","L0","L1","L2","L3","L4","DTG","DR",
-                                       "DOR","D0","D00","HRUGTG") ),
-             VALE_GUIDE      =SIMP(statut='f',typ='R',max='**',
-                                 fr="valeurs des données géométriques des tubes guides",),
-             CARA_ASSEMBLAGE =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 fr="définition des données géométriques des assemblages",
-                                 into=("SASS","DCC","DTI","NGM","NGMDP","KM","KS","KI",
-                                       "KES","KEI","KF") ),
-             VALE_ASSEMBLAGE =SIMP(statut='f',typ='R',max='**',
-                                 fr="valeurs des données géométriques des assemblages",),
-             CARA_PDC        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 fr="définition des coefficients de perte de charge singulière",
-                                 into=("CD0","CD1","CD2","CDELARG","CDRET","CDM","CDA","CDML",
-                                       "CDI","CDG") ),
-             VALE_PDC        =SIMP(statut='f',typ='R',max='**',
-                                 fr="valeurs des coefficients de perte de charge singulière",),
-             APPL_FORC_ARCHI  =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
-                                 fr="application de la force d'archimède",
-                                 into=("REPARTIE","CDG") ),
-             APPL_FORC_FPLAQ  =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
-                                 fr="application de la force de plaquage dans le guidage continu",
-                                 into=("REPARTIE","CDG","ZONE","MILIEU","DISTRI") ),
-             APPL_FORC_FMEC   =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
-                                 fr="application de la force dans le mécanisme de levée",
-                                 into=("REPARTIE","CDG","ZONE","PTREP") ),
-             APPL_FORC_FTG    =SIMP(statut='f',typ='TXM',defaut="REPARTIE" ,
-                                 fr="application de la force tube_guide",
-                                 into=("REPARTIE","CDG","ZONE","PTREP") ),
-             DIRE_FORC_FPLAQ  =SIMP(statut='f',typ='R',min=3,max=3,
-                                 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=table_sdaster ),
-             ),
-             UNITE_IMPR_FORCE =SIMP(statut='f',typ='I',
-                                 fr="unité d'impression des forces",),
-             UNITE_IMPR_NOEUD =SIMP(statut='f',typ='I',
-                                 fr="unité d'impression des noeuds par zone",),
-           ),
-
-           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='**'),
-             NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-             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='**'),
-             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
-           ),
-
-         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="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'),),
-
-             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='**'),
-
-             POSITION        =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
-             b_fxyz  =BLOC ( condition = "POSITION == None",
-                  FX   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-                  FY   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-                  FZ   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-                       ),
-
-             b_para     =BLOC ( condition = "POSITION == 'PARA'",
-               regles=(UN_PARMI('TRANS','DIST'),),
-               TRANS           =SIMP(statut='f',typ='R',max=3),
-               DIST            =SIMP(statut='f',typ='R' ),
-               b_point2        =BLOC ( condition = "DIST != None",
-                 POINT2           =SIMP(statut='o',typ='R',max=3),
-               ),
-             ),
-             b_fini_infi     =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
-               POINT1          =SIMP(statut='o',typ='R',max=3),
-               POINT2          =SIMP(statut='o',typ='R',max=3),
-             ),
-           ),
-
-
-
-
-        INTE_ELEC       =FACT(statut='f',max='**',
-             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'),
-                     EXCLUS('TRANS','SYME'),),
-             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_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             TRANS           =SIMP(statut='f',typ='R' ,max='**'),
-             SYME            =SIMP(statut='f',typ='R' ,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="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='**'),
-             VNOR            =SIMP(statut='o',typ='R' ),
-           ),
-
-
-
-         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='**'),
-             PRES            =SIMP(statut='o',typ='R' ),
-           ),
-
-         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'),),
-             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='**'),
-             FLUN            =SIMP(statut='f',typ='R' ),
-             FLUN_HYDR1      =SIMP(statut='f',typ='R' ),
-             FLUN_HYDR2      =SIMP(statut='f',typ='R' ),
-           ),
-
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-
-
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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
-AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
-                     fr="Affectation de charges et conditions aux limites mécaniques complexes",
-                     reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-         regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
-         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",) ),
-           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='**'),
-           LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), 
-           DX              =SIMP(statut='f',typ='C' ),
-           DY              =SIMP(statut='f',typ='C' ),
-           DZ              =SIMP(statut='f',typ='C' ),
-           DRX             =SIMP(statut='f',typ='C' ),
-           DRY             =SIMP(statut='f',typ='C' ),
-           DRZ             =SIMP(statut='f',typ='C' ),
-           GRX             =SIMP(statut='f',typ='C' ),
-           PRES            =SIMP(statut='f',typ='C' ),
-           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',),
-                   PRESENT_ABSENT('FX','N','VY','VZ',),
-                   PRESENT_ABSENT('FY','N','VY','VZ',),
-                   PRESENT_ABSENT('FZ','N','VY','VZ',),
-                   PRESENT_ABSENT('N','FX','FY','FZ',),
-                   PRESENT_ABSENT('VY', 'FX','FY','FZ',),
-                   PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
-           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='**'),
-           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
-           FX              =SIMP(statut='f',typ='C' ),
-           FY              =SIMP(statut='f',typ='C' ),
-           FZ              =SIMP(statut='f',typ='C' ),
-           N               =SIMP(statut='f',typ='C' ),
-           VY              =SIMP(statut='f',typ='C' ),
-           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='**'),
-           DDL             =SIMP(statut='o',typ='TXM',max='**'),
-           COEF_MULT       =SIMP(statut='o',typ='R'  ,max='**'),
-           COEF_IMPO       =SIMP(statut='o',typ='C' ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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
-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'un (ou plusieurs) paramètres",
-                      reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-        regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',
-                            'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',
-                            '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','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','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='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           LIAISON         =SIMP(statut='f',typ='TXM',into=('ENCASTRE',)), 
-           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) ),
-           DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           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'),
-                   EXCLUS('DNOR','DY'),
-                   EXCLUS('DNOR','DZ'),
-                   EXCLUS('DNOR','DRX'),
-                   EXCLUS('DNOR','DRY'),
-                   EXCLUS('DNOR','DRZ'),
-                   EXCLUS('DTAN','DX'),
-                   EXCLUS('DTAN','DY'),
-                   EXCLUS('DTAN','DZ'),
-                   EXCLUS('DTAN','DRX'),
-                   EXCLUS('DTAN','DRY'),
-                   EXCLUS('DTAN','DRZ'),),
-#  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) ),
-           DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           GRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PHI             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           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) ),
-           DNOR            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DTAN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-         LIAISON_DDL     =FACT(statut='f',max='**',
-           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='**'),
-           DDL             =SIMP(statut='o',typ='TXM',max='**'),
-           COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
-           COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         LIAISON_OBLIQUE =FACT(statut='f',max='**',
-           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='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
-           ANGL_NAUT       =SIMP(statut='o',typ='R',max=3),
-           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) ),
-           DRX             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRY             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DRZ             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),         
-         
-         LIAISON_GROUP   =FACT(statut='f',max='**',
-           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'),
-                   EXCLUS('GROUP_MA_1','NOEUD_2'),
-                   EXCLUS('GROUP_NO_1','GROUP_MA_2'),
-                   EXCLUS('GROUP_NO_1','MAILLE_2'),
-                   EXCLUS('MAILLE_1','GROUP_NO_2'),
-                   EXCLUS('MAILLE_1','NOEUD_2'),
-                   EXCLUS('NOEUD_1','GROUP_MA_2'),
-                   EXCLUS('NOEUD_1','MAILLE_2'),
-                   EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
-           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='**'),
-           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='**'),
-           SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
-           COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
-           DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
-           COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
-           COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           TRAN            =SIMP(statut='f',typ='R',max=3),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-           CENTRE          =SIMP(statut='f',typ='R',max=3),
-         ),
-#
-# LIAISON UNILATERALE
-# 
-         LIAISON_UNILATER=FACT(statut='f',max='**',
-           fr="Définit les zones soumises à des conditions de liaison unilaterale (inegalite sur un DDL)",
-           regles=(UN_PARMI('GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
-                                         
-           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),   
-
-           SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-                 
-           NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
-
-           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),           
-           
-           COEF_IMPO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           COEF_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**'),         
-
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",
-                                 into=("CONTRAINTE","GCPC",) ),
-           
-                 
-        ),
-         CONTACT         =FACT(statut='f',
-           fr="Définit les zones soumises à des conditions de contact unilatéral avec ou \sans frottement, certaines valeurs"
-           +" sont données par l'intermédiaire de concept fonction",max='**',
-           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","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",
-                STOP_INTERP     =SIMP(statut='f',typ='TXM',defaut="NON",
-                                      into=("OUI","NON")),
-                TOLE_INTERP     =SIMP(statut='f',typ='R',defaut = 0.),
-                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_ORIE_POU   =SIMP(statut='f',typ='R',min=3,max=3),
-           ),
-
-           b_active        =BLOC(condition = "METHODE == 'CONTRAINTE' ",
-                                 fr="Paramètres de la méthode des contraintes actives (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")),
-                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.),
-                                 ),
-                TOLE_PROJ_EXT   =SIMP(statut='f',typ='R'  ,defaut=0.50),
-                TOLE_PROJ_INT   =SIMP(statut='f',typ='R'  ,defaut=0.001),
-                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
-                                      into=("OUI","NON")),
-                NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
-                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",
-                      
-                                 ),
-                b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",
-                                 fr="Parametre de la reactualisation geometrique",
-                      NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
-                      
-                                 ),
-                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
-                      fr="Parametre de la reactualisation geometrique auto",
-                                 ), 
-                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)),
-            ),
-           b_lagrangien    =BLOC(condition = "METHODE == 'LAGRANGIEN' ",
-                                 fr="Paramètres de la méthode Lagrangienne (contact avec ou sans frottement)",
-                               NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
-                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),
-                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
-                                      into=("OUI","NON")),
-                NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
-                ITER_MULT_MAXI  =SIMP(statut='f',typ='I'  ,defaut=4),
-
-                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",
-                                 ),
-                b_reac_geom     =BLOC(condition = "REAC_GEOM == 'CONTROLE' ",fr="Parametre de la reactualisation geometrique",
-                      NB_REAC_GEOM   =SIMP(statut='o',typ='I'),
-
-                                 ),
-                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
-                      fr="Parametre de la reactualisation geometrique auto",
-                                 ), 
-
-                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',),
-                     COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),  
-                     ),),
-           b_penalisation       =BLOC(condition = "METHODE == 'PENALISATION' ",
-                                      fr="Paramètres de la méthode pénalisée (contact avec ou sans frottement)",
-                NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",)),
-                E_N             =SIMP(statut='f',typ='R'), 
-                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),
-                STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",
-                                      into=("OUI","NON")),
-                NB_RESOL        =SIMP(statut='f',typ='I', defaut=10 ),
-                ITER_MULT_MAXI  =SIMP(statut='f',typ='I',defaut=4),
-                
-                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",
-                                 ),
-                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'),
-                                 ),
-                b_reac_auto     =BLOC(condition = "REAC_GEOM == 'AUTOMATIQUE' ",
-                     fr="Paramètre de la réactualisation géométrique auto",
-                                 ), 
-                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',
-                                           fr="Active la pénalisation sur le frottement et définit le coefficient de pénalisation"),
-                     COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut=0.E+0),  
-                     ),),
-           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",) ), 
-                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="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='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           DDL             =SIMP(statut='o',typ='TXM',max='**'),
-         ),
-
-         LIAISON_SOLIDE  =FACT(statut='f',max='**',
-           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='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
-         ),
-
-
-
-         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='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           ANGL_NAUT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max=3 ),
-         ),
-
-         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='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           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='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           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='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         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'),),
-           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='**'),
-           FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-         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'),),
-           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='**'),
-           PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           CISA_2D         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         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='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           PRES            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         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'),),
-           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='**'),
-           EPXX            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           EPYY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           EPZZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           EPXY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           EPXZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           EPYZ            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-         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'),
-                   PRESENT_ABSENT('FX','N','VY','VZ'),
-                   PRESENT_ABSENT('FY','N','VY','VZ'),
-                   PRESENT_ABSENT('FZ','N','VY','VZ'),
-                   PRESENT_ABSENT('N','FX','FY','FZ'),
-                   PRESENT_ABSENT('VY','FX','FY','FZ'),
-                   PRESENT_ABSENT('VZ','FX','FY','FZ'),),
-#  rajout d un mot cle REPERE : / GLOBAL / LOCAL
-           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='**'),
-           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
-           FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           N               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           VY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           VZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         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",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-         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'),
-                   PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
-                   PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
-                   PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
-                   PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
-                   PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
-                   PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
-                   PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'),
-                   PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'),
-                   PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'),
-                   PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'),
-                   PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'),
-                   PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
-#  rajout d un mot cle REPERE : / GLOBAL / LOCAL
-           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='**'),
-           FX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MX              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MY              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MZ              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           F1              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           F2              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           F3              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MF1             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MF2             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PRES            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",
-                                 into=("SUP","INF","MOY","MAIL") ),
-         ),
-
-         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='**'),
-           NOEUD_1         =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           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='**'),
-           NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
-         ),         
-         
-
-         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='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           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='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           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) ),
-           DIST_ORIG       =SIMP(statut='o',typ='R' ),
-         ),
-
-
-
-         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'),),
-           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='**'),
-           FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUN_HYDR1      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUN_HYDR2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         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.      
-# ======================================================================
-AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
-                      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', ),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",
-                               into=("OUI","NON") ),
-         CARA_TORSION    =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','GROUP_MA'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-         ),
-         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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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.
-# ======================================================================
-AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
-                    ,fr="Affectation de charges et conditions aux limites thermiques constantes",
-                    reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-      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' ),),
-         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-
-         TEMP_IMPO       =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
-                   AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),),
-           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='**'),
-           TEMP            =SIMP(statut='f',typ='R'),
-           TEMP_INF        =SIMP(statut='f',typ='R'),
-           TEMP_SUP        =SIMP(statut='f',typ='R'), ),
-
-         FLUX_REP        =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_PRESENT('CARA_TORSION','GROUP_MA'),
-                   AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ),
-           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='**'),
-           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=table_sdaster),
-         ),
-
-
-         RAYONNEMENT     =FACT(statut='f',max='**',
-           fr="Attention, exprimer les températures en Celsius si rayonnement",
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   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='**'),
-           SIGMA           =SIMP(statut='o',typ='R'),
-           EPSILON         =SIMP(statut='o',typ='R'),
-           TEMP_EXT        =SIMP(statut='o',typ='R'),
-         ),
-
-         ECHANGE         =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                   AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
-                   ENSEMBLE('COEF_H','TEMP_EXT',),
-                   ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
-                             ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
-           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_H          =SIMP(statut='f',typ='R'),
-           TEMP_EXT        =SIMP(statut='f',typ='R'),
-           COEF_H_INF      =SIMP(statut='f',typ='R'),
-           TEMP_EXT_INF    =SIMP(statut='f',typ='R'),
-           COEF_H_SUP      =SIMP(statut='f',typ='R'),
-           TEMP_EXT_SUP    =SIMP(statut='f',typ='R'),
-         ),
-
-         SOURCE          =FACT(statut='f',max='**',
-           regles=(UN_PARMI('SOUR','SOUR_CALCULEE',),
-                   PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_ABSENT('SOUR_CALCULEE','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='**'),
-           SOUR            =SIMP(statut='f',typ='R'),
-           SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem) ),
-         ),
-
-         GRAD_TEMP_INIT  =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                   AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
-           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='**'),
-           FLUX_X          =SIMP(statut='f',typ='R' ),
-           FLUX_Y          =SIMP(statut='f',typ='R' ),
-           FLUX_Z          =SIMP(statut='f',typ='R' ),
-                         ),
-
-         LIAISON_DDL     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
-           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
-           DDL             =SIMP(statut='f',typ='TXM',max='**',
-                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
-           COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
-           COEF_IMPO       =SIMP(statut='o',typ='R' ),
-         ),
-
-         LIAISON_GROUP   =FACT(statut='f',max='**',
-           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'),
-                             EXCLUS('GROUP_MA_1','NOEUD_2'),
-                   EXCLUS('GROUP_NO_1','GROUP_MA_2'),
-                             EXCLUS('GROUP_NO_1','MAILLE_2'),
-                             EXCLUS('MAILLE_1','GROUP_NO_2'),
-                             EXCLUS('MAILLE_1','NOEUD_2'),
-                             EXCLUS('NOEUD_1','GROUP_MA_2'),
-                             EXCLUS('NOEUD_1','MAILLE_2'),
-                             EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
-           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='**'),
-           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='**'),
-           SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
-                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
-           COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
-           DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
-                                 into=("TEMP","TEMP_INF","TEMP_SUP",) ),
-           COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
-           COEF_IMPO       =SIMP(statut='o',typ='R' ),
-           SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           TRAN            =SIMP(statut='f',typ='R',max='**'),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
-           CENTRE          =SIMP(statut='f',typ='R',max='**'),
-         ),
-
-         LIAISON_MAIL    =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('GROUP_MA_MAIT','MAILLE_MAIT'),
-                   AU_MOINS_UN('GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',
-                               'NOEUD_ESCL'),),
-           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='**'),
-           GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           NOEUD_ESCL      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           TRAN            =SIMP(statut='f',typ='R',max='**' ),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**' ),
-           CENTRE          =SIMP(statut='f',typ='R',max='**' ),
-           ELIM_MULT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-
-         ECHANGE_PAROI   =FACT(statut='f',max='**',
-           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
-                   UN_PARMI('GROUP_MA_2','MAILLE_2'),),
-           GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           COEF_H          =SIMP(statut='f',typ='R'),
-           TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-           CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
-                         ),
-
-         LIAISON_UNIF    =FACT(statut='f',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='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           DDL             =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
-                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
-         ),
-
-         LIAISON_CHAMNO  =FACT(statut='f',max='**',
-           CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),# CO()# "il faut definir une structure de donnee generique chamno"
-           COEF_IMPO       =SIMP(statut='o',typ='R' ),
-           NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
-         ),
-
-         CONVECTION      =FACT(statut='f',max='**',
-           VITESSE         =SIMP(statut='o',typ=(cham_no_sdaster) ),
-         ),
-
-
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-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 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'),),
-         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-
-         TEMP_IMPO       =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
-                   AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'),
-                   PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),),
-           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='**'),
-           EVOL_THER       =SIMP(statut='f',typ=(evol_ther) ),
-           DDL             =SIMP(statut='f',typ='TXM',into=("TEMP",) ),
-           TEMP            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-         FLUX_REP        =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                   AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),),
-           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='**'),
-           FLUN            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUN_INF        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUN_SUP        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         FLUX_NL         =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   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='**'),
-           FLUN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ), 
-         
-
-         RAYONNEMENT     =FACT(statut='f',max='**',
-           fr="Attention, exprimer les températures en Celsius si rayonnement",
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   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='**'),
-           SIGMA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           EPSILON         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-
-
-         ECHANGE         =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                   AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
-                   ENSEMBLE('COEF_H','TEMP_EXT'),
-                   ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
-                   ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
-           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_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           COEF_H_INF      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_EXT_INF    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           COEF_H_SUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_EXT_SUP    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-
-         SOURCE          =FACT(statut='f',max='**',
-           regles=(UN_PARMI('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='**'),
-           SOUR            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-         GRAD_TEMP_INIT  =FACT(statut='f',max='**',
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),
-                   PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                   AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
-           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='**'),
-           FLUX_X          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUX_Y          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FLUX_Z          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         
-         ECHANGE_PAROI   =FACT(statut='f',max='**',
-           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
-                        UN_PARMI('GROUP_MA_2','MAILLE_2'),),
-           GROUP_MA_1      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_1        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA_2      =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_2        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           COEF_H          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TRAN            =SIMP(statut='f',typ='R',min=2,max=3),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-           CENTRE          =SIMP(statut='f',typ='R',min=2,max=3),
-         ),
-
-        LIAISON_DDL     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('GROUP_NO','NOEUD'),),
-           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,max='**'),
-           DDL             =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ),
-           COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
-           COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         LIAISON_GROUP   =FACT(statut='f',max='**',
-           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'),
-                        EXCLUS('GROUP_MA_1','NOEUD_2'),
-                   EXCLUS('GROUP_NO_1','GROUP_MA_2'),
-                        EXCLUS('GROUP_NO_1','MAILLE_2'),
-                        EXCLUS('MAILLE_1','GROUP_NO_2'),
-                        EXCLUS('MAILLE_1','NOEUD_2'),
-                        EXCLUS('NOEUD_1','GROUP_MA_2'),
-                        EXCLUS('NOEUD_1','MAILLE_2'),
-                        EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
-           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='**'),
-           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='**'),
-           SANS_NOEUD      =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
-                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
-           COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
-           DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
-                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
-           COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
-           COEF_IMPO       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           TRAN            =SIMP(statut='f',typ='R',max='**'),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
-           CENTRE          =SIMP(statut='f',typ='R',max='**'),
-         ),
-
-         LIAISON_UNIF    =FACT(statut='f',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='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           DDL             =SIMP(statut='f',typ='TXM',defaut="TEMP",
-                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
-         ),
-
-         CONVECTION      =FACT(statut='f',max='**',
-           VITESSE         =SIMP(statut='o',typ=cham_no_sdaster ),
-         ),
-
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 25/04/2006   AUTEUR CIBHHPD L.SALMONA 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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
-AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
-                   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",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           MATER           =SIMP(statut='o',typ=mater_sdaster,max=30),
-           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 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-AIDE=PROC(nom="AIDE",op=42,
-       UIinfo={"groupes":("Modélisation",)},
-       fr="Interroger et imprimer une documentation partielle sur les noms des concepts déjà définis et sur les couples"
-           +" (type d'éléments, option) disponibles dans la version.",
-       regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
-       UNITE       =SIMP(statut='f',typ='I',defaut=8),  
-       TYPE_ELEM   =FACT(fr="couple type_elem option",statut='f',
-         INITEL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-                        ),
-       CONCEPT     =FACT(statut='f',max='**',
-         NOM          =SIMP(fr="liste des noms de concept",statut='f',typ='TXM',validators=NoRepeat(),max='**',defaut="*"),
-         OPTION       =SIMP(fr="option d'édition de concept",statut='f',typ='TXM',defaut="TOUT_TYPE",
-                                 into=("TOUT_TYPE","CREER","A_CREER",) ),
-         ),
-) ;
-#& MODIF COMMANDE  DATE 16/01/2006   AUTEUR D6BHHJP J.P.LEFEBVRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEBUT=MACRO(nom="DEBUT",op=ops.build_debut ,repetable='n',
-            UIinfo={"groupes":("Gestion du travail",)},
-           fr="Ouverture d'une étude. Allocation des ressources mémoire et disque et fichiers",
-          sd_prod=ops.DEBUT,
-
-         PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
-                           into=("OUI","NON"),defaut="OUI"),
-         IMPR_MACRO      =SIMP(fr="affichage des sous-commandes produites par les macros dans le fichier mess",
-                           statut='f',typ='TXM',into=("OUI","NON"),defaut="NON"),
-#         FORMAT_HDF      =SIMP(fr="sauvegarde de la base GLOBALE au format HDF",statut='f',
-#                               typ='TXM',defaut="NON",into=("OUI","NON",) ), 
-         BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
-                               statut='f',min=1,max=2,
-           FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
-                                 into=('GLOBALE','VOLATILE'),),
-           TITRE           =SIMP(statut='f',typ='TXM'),
-           CAS             =SIMP(statut='f',typ='TXM'),
-           NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
-           LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
-           LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
-         ),
-         IMPRESSION      =FACT(statut='f',min=1,max=3,
-           FICHIER         =SIMP(statut='o',typ='TXM'),
-           UNITE           =SIMP(statut='o',typ='I'),
-         ),
-         CATALOGUE       =FACT(statut='f',min=1,max=10,
-           FICHIER         =SIMP(statut='o',typ='TXM'),
-           TITRE           =SIMP(statut='f',typ='TXM'),
-           UNITE           =SIMP(statut='f',typ='I'),
-         ),
-         CODE            =FACT(fr="définition d un nom pour l'ensemble d'une étude",
-                               statut='f',min=1,max=1,
-           NOM             =SIMP(statut='o',typ='TXM'),
-           NIV_PUB_WEB     =SIMP(statut='o',typ='TXM',into=('INTERNET','INTRANET')),
-           VISU_EFICAS     =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI'),
-           UNITE           =SIMP(statut='f',typ='I',defaut=15),
-         ),
-         ERREUR          =FACT(fr="comportement en cas d'erreur",statut='f',min=1,max=1,
-           ERREUR_F        =SIMP(statut='f',typ='TXM',into=('ABORT','EXCEPTION'),defaut='ABORT'),
-         ),
-         DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
-                               statut='f',min=1,max=1,
-           JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
-                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
-           JEVEUX          =SIMP(fr="force les déchargement sur disque",
-                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
-           ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
-                                 statut='f',typ='TXM',into=('TEST',)),
-         ),
-         MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=1,max=1,
-           GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),
-           TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),
-           TAILLE          =SIMP(statut='f',typ='I'),
-           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut=800.),
-           PARTITION       =SIMP(statut='f',typ='R'),
-         ),
-         RESERVE_CPU     =FACT(fr="reserve de temps pour terminer une execution",statut='f',max=1,
-           regles=(EXCLUS('VALE','POURCENTAGE'),),
-           VALE            =SIMP(statut='f',typ='I',val_min=0),
-           POURCENTAGE     =SIMP(statut='f',typ='R',val_min=0.,val_max=1.0),
-#          valeur en pourcentage du temps maximum bornée à 180 secondes
-           BORNE           =SIMP(statut='f',typ='I',val_min=0,defaut=180)
-         ),
- );
-#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR JMBHH01 J.M.PROIX 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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_INCO",
-                                                                      "AXIS_NS",
-                                                                      "AXIS_SI",
-                                                                      "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",
-                                                                      "C_PLAN_GRAD_VARI",
-                                                                      "CABLE",
-                                                                      "CABLE_POULIE",
-                                                                      "COQUE_3D",
-                                                                      "COQUE_AXIS",
-                                                                      "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_INCO",
-                                                                      "D_PLAN_SI",
-                                                                      "DIS_T",
-                                                                      "DIS_TR",
-                                                                      "DKT",
-                                                                      "DKTG",
-                                                                      "DST",
-                                                                      "FLUI_STRU",
-                                                                      "GRILLE",
-                                                                      "GRILLE_MEMBRANE",
-                                                                      "POU_C_T",
-                                                                      "POU_D_E",
-                                                                      "POU_D_EM",
-                                                                      "POU_D_T",
-                                                                      "POU_D_T_GD",
-                                                                      "POU_D_TG",
-                                                                      "POU_D_TGM",
-                                                                      "Q4G",
-                                                                      "TUYAU_3M",
-                                                                      "TUYAU_6M",
-                                                                      "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'",
-                                        fr="modelisations thermiques",
-                    MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
-                                                                      "3D",
-                                                                      "3D_DIAG",
-                                                                      "AXIS",
-                                                                      "AXIS_DIAG",
-                                                                      "AXIS_FOURIER",
-                                                                      "COQUE",
-                                                                      "COQUE_AXIS",
-                                                                      "COQUE_PLAN",
-                                                                      "PLAN",
-                                                                      "PLAN_DIAG",
-                                                                      ),),),
-
-                b_acoustique    =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
-                                        fr="modelisations acoustiques",
-                     MODELISATION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=(
-                                                                       "3D",
-                                                                       "PLAN"
-                                                                       ), ),),
-
-         ),
-) ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage_sdaster,
-                   fr="Assembler deux maillages pour en former un nouveau",
-                   reentrant='n',
-                   UIinfo={"groupes":("Maillage",)},
-         MAILLAGE_1 =  SIMP(statut='o',typ=maillage_sdaster,),
-         MAILLAGE_2 =  SIMP(statut='o',typ=maillage_sdaster,),
-         OPERATION  =  SIMP(statut='o',typ='TXM',into=("SOUS_STR","SUPERPOSE","COLLAGE"),),
-         b_collage  =  BLOC(condition = "OPERATION == 'COLLAGE'",
-           COLLAGE  =  FACT(statut='o',
-              GROUP_MA_1     =SIMP(statut='o',typ=grma),
-              GROUP_MA_2     =SIMP(statut='o',typ=grma),
-                             ),
-                           ),
-)  ;
-#& MODIF COMMANDE  DATE 18/04/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.      
-# ======================================================================
-ASSE_MATR_GENE=OPER(nom="ASSE_MATR_GENE",op= 128,sd_prod=matr_asse_gene_r,
-                    fr="Assemblage des matrices généralisées de macro éléments pour construction de la matrice globale généralisée",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
-         METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
-         b_option     =BLOC(condition = "METHODE == 'CLASSIQUE'",
-           OPTION          =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ),
-           ),
-)  ;
-#& 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
-def asse_matrice_prod(MATR_ELEM,**args):
-  if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
-  if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
-  if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
-  if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
-  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',
-            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) ),
-         NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster),
-         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 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.      
-# ======================================================================
-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 ),
-         METHODE          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","INITIAL") ),
-         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_sdaster ),
-           ),
-         ),
-)  ;
-#& 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
-
-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 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.      
-# ======================================================================
-CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8_sdaster,
-                     fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
-                     reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         ENER_SOL        =FACT(statut='o',
-           regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
-                   PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
-#  Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
-                   PRESENT_PRESENT('KRX','KRY'),
-                   PRESENT_PRESENT('KRX','KRZ'),
-                   PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
-                   PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
-                   PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
-           MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
-           GROUP_NO_RADIER =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           GROUP_MA_RADIER =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           FONC_GROUP      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
-           KX              =SIMP(statut='o',typ='R' ),
-           KY              =SIMP(statut='o',typ='R' ),
-           KZ              =SIMP(statut='o',typ='R' ),
-           KRX             =SIMP(statut='f',typ='R' ),
-           KRY             =SIMP(statut='f',typ='R' ),
-           KRZ             =SIMP(statut='f',typ='R' ),
-           GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
-           NOEUD_CENTRE    =SIMP(statut='f',typ=no),
-           COOR_CENTRE     =SIMP(statut='f',typ='R',max=3),
-         ),
-         AMOR_INTERNE    =FACT(statut='o',
-           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='**'),
-         ),
-         AMOR_SOL        =FACT(statut='o',
-           AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           FONC_AMOR_GEO   =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
-           HOMOGENE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
-         ),
-)  ;
-#& 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 JMBHH01 J.M.PROIX
-
-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),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-
-         regles=(EXCLUS('TOUT','GROUP_MA',),EXCLUS('TOUT','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='**'),
-
-#
-#
-#  introduire un mot cle de type modelisation : mécanique,thermique,...
-#
-
-         OPTION          =SIMP(statut='o',typ='TXM',
-                               into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
-                                     "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
-                                     "COOR_ELGA"), ),
-
-         b_thermique  =BLOC(condition="OPTION in ('FLUX_ELNO_TEMP','FLUX_ELGA_TEMP',)",
-           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_sdaster,)),
-         ),
-
-
-
-         EXCIT           =FACT(statut='f',max='**',
-               regles=(EXCLUS('FONC_MULT','COEF_MULT', ),),
-               CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)),
-               FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-               COEF_MULT       =SIMP(statut='f',typ='R'), ),
-
-         INST            =SIMP(statut='f',typ='R',defaut= 0.E+0),
-         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 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
-
-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",)},
-         NUME_DDL        =SIMP(statut='o',typ=nume_ddl_sdaster ),
-         CHAR_CINE       =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ),validators=NoRepeat(),max='**' ),
-         INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-)  ;
-#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-def calc_char_seisme_prod(MATR_MASS,**args ):
-  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',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" ),
-         DIRECTION       =SIMP(statut='o',typ='R',max=6,fr="Directions du séisme imposé"),
-         MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),         
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
-         b_mode_stat     =BLOC ( condition = "MODE_STAT != None",
-           regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
-           NOEUD           =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-def calc_elem_prod(RESULTAT,**args):
-   if AsType(RESULTAT) != None : return AsType(RESULTAT)
-   raise AsException("type de concept resultat non prevu")
-
-CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,reentrant='f',
-            UIinfo={"groupes":("Post traitements",)},
-            fr="Compléter ou créer un résultat en calculant des champs par éléments (contraintes, déformations,... )",
-     MODELE          =SIMP(statut='f',typ=modele_sdaster),
-     CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-     CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-
-     RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
-                                mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,
-                                evol_noli,mult_elas,fourier_elas,
-                                evol_ther,base_modale,
-                                acou_harmo,mode_acou,mode_flamb) ,
-                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'),
-             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='**'),
-     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",) ),
-     LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-     
-     TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-     GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-                           fr="le calcul ne sera effectué que sur ces mailles là"),
-     MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**',
-                           fr="le calcul ne sera effectué que sur ces mailles là"),
-
-#    options pour des resultats lineaire 
-
-     b_lineaire =BLOC( condition = "AsType(RESULTAT) in (evol_elas,dyna_trans,dyna_harmo,mode_meca,\
-                                                               mode_stat,mode_stat_depl,mode_stat_acce,mode_stat_forc,\
-                                                               mult_elas,fourier_elas,base_modale,mode_flamb)",
-                                                               fr="options mecaniques lineaires",
-          TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',fr="type d'options mecaniques lineaires",
-                           into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT","DERIVEES",
-                                 "INDI_ERRE","AUTRES","TOUTES"),
-                           ),
-          b_toutes=BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
-               OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut="SIEF_ELNO_ELGA",
-                              #  contraintes
-                           into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
-                                  "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART",
-                                  "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","SIGM_ELNO_TUYO",
-                              # déformations
-                                 "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELGA_DEPL","EPSG_ELNO_DEPL",
-                                 "EPME_ELNO_DEPL","EPME_ELGA_DEPL","DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",
-                              #  ENER    
-                                 "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
-                                 "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",
-                              #  estimateurs erreur 
-                                 "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",
-                                 "ENDO_ELGA","ENDO_ELNO_ELGA",
-                                 "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
-                              #  derivees    
-                                 "DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI",
-                              #  autres      
-                                 "VNOR_ELEM_DEPL","VALE_NCOU_MAXI","PRES_DBEL_DEPL"),),
-
-               NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                                fr="numero de couche dans l'épaisseur de la coque ou du tuyau" ),
-               NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                fr="position dans l'épaisseur de la coque, ou de la couche" ),
-               ANGLE       =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice"),
-               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"),
-                               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'),),
-                    CHARGE          =SIMP(statut='o',typ=char_meca ),
-                    FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                    FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
-                    COEF_MULT       =SIMP(statut='f',typ='R'),
-                    COEF_MULT_C     =SIMP(statut='f',typ='C'),
-                    PHAS_DEG        =SIMP(statut='f',typ='R'),
-                    PUIS_PULS       =SIMP(statut='f',typ='I'),
-                    TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
-                
-                                
-                            ),
-#             fin bloc b_toutes
-
-          b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
-                                     fr="options de contraintes elasticite 2D et 3D",
-              OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA',
-                            fr="option de calcul des contraintes",
-                           into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",),),
-                           
-                    b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',) or \
-                                      (type(OPTION)==type(()) and  'SIGM_ELNO_DEPL' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'SIEF_ELGA_DEPL' in OPTION ) ",
-                                      fr="charge contenant les temperatures ou autre charge",
-                         EXCIT           =FACT(statut='f',max='**',
-                         CHARGE          =SIMP(statut='o',typ=char_meca ),),
-                                    ),
-                                  ),
-                                  
-          b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
-                                      fr="options de contraintes elasticite poutres, coques, tuyaux",
-               OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',defaut='SIEF_ELNO_ELGA',
-                            fr="option de calcul des contraintes ou efforts generalises",
-                            into=( "SIEF_ELNO_ELGA","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL","SIGM_ELNO_TUYO",
-                                   "SIPO_ELNO_DEPL","EFGE_ELNO_DEPL","EFGE_ELNO_CART","SIGM_ELNO_CART",
-                                   "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF"),),
-                           
-               b_charge =BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL','SIEF_ELGA_DEPL',\
-                                                       'SIPO_ELNO_DEPL','EFGE_ELNO_DEPL',) or \
-                                            (type(OPTION)==type(()) and  'SIGM_ELNO_DEPL' in OPTION ) or \
-                                            (type(OPTION)==type(()) and  'SIEF_ELGA_DEPL' in OPTION ) or \
-                                            (type(OPTION)==type(()) and  'SIPO_ELNO_DEPL' in OPTION ) or \
-                                            (type(OPTION)==type(()) and  'EFGE_ELNO_DEPL' in OPTION ) ",
-                                            fr="charge contenant les temperatures ou les efforts répartis (poutres) ou autre",
-                    EXCIT           =FACT(statut='f',max='**',
-                                          regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
-                         CHARGE          =SIMP(statut='f',typ=char_meca ),
-                         FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                         FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
-                         COEF_MULT       =SIMP(statut='f',typ='R'),
-                         COEF_MULT_C     =SIMP(statut='f',typ='C'),
-                         PHAS_DEG        =SIMP(statut='f',typ='R'),
-                         PUIS_PULS       =SIMP(statut='f',typ='I'),
-                         TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
-                             ),
-                          
-               b_niv_couche = BLOC( condition = "OPTION in ('SIGM_ELNO_DEPL',) or \
-                                                 (type(OPTION)==type(()) and  'SIGM_ELNO_DEPL' in OPTION) ",
-                                                 
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                                           fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                           fr="position dans l'épaisseur de la coque, ou de la couche" ),
-                              ),     
-                                 
-               b_sigtuyo = BLOC( condition = "OPTION == 'SIGM_ELNO_TUYO' or \
-                                  (type(OPTION)==type(()) and  'SIGM_ELNO_TUYO' in OPTION) ",
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ,
-                                           fr="numero de couche dans l'épaisseur du tuyau" ),
-                         ANGLE       =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                           fr="position dans l'épaisseur de la couche" ),
-                               ),
-               b_plan_excentrement    =BLOC( condition = "OPTION=='EFGE_ELNO_DEPL' or \
-                                            (type(OPTION)==type(()) and 'EFGE_ELNO_DEPL' in OPTION)",
-                                             fr="Plan de calcul des efforts pour les plaques avec excentrement",
-                         PLAN =     SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL"),
-                                         fr="Plan de calcul des efforts pour les plaques avec excentrement",),
-                         
-                            ),
-                            ),
-#          fin bloc contraintes struct
-
-          b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL",
-                                 "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",),
-                                 ),
-               b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \
-                                  (type(OPTION)==type(()) and  'EPSI_ELNO_DEPL' in OPTION) ",
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                                           fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                           fr="position dans l'épaisseur de la coque, ou de la couche" ),
-                                 ) ,
-               b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \
-                                  (type(OPTION)==type(()) and  'EPSI_ELNO_TUYO' in OPTION) ",
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ,
-                                           fr="numero de couche dans l'épaisseur du tuyau" ),
-                         ANGLE       =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                           fr="position dans l'épaisseur de la couche" ),
-                               ),
-b_charge =BLOC( condition = "OPTION in ('EPME_ELNO_DEPL','EPSI_ELGA_DEPL','EPME_ELGA_DEPL','EPSI_ELNO_DEPL','EPSI_ELNO_TUYO' ) or \
-                                      (type(OPTION)==type(()) and  'EPSI_ELNO_DEPL' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'EPSI_ELNO_TUYO' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'EPSI_ELGA_DEPL' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'EPME_ELNO_DEPL' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'EPME_ELGA_DEPL' in OPTION ) ",
-                                      fr="charge contenant les temperatures",
-                    EXCIT           =FACT(statut='f',max='**',
-                         CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
-                                 ),
-                                       ),
-          b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("EPOT_ELEM_DEPL","ECIN_ELEM_DEPL","ENEL_ELGA","ENEL_ELNO_ELGA",
-                                 "ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM",),
-                                 ),
-               b_charge =BLOC( condition = "OPTION in ('EPOT_ELEM_DEPL','ECIN_ELEM_DEPL','ENEL_ELGA','ENEL_ELNO_ELGA',) or \
-                                      (type(OPTION)==type(()) and  'EPOT_ELEM_DEPL' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'ENEL_ELGA' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'ENEL_ELNO_ELGA' in OPTION ) or \
-                                      (type(OPTION)==type(()) and  'ECIN_ELEM_DEPL' in OPTION ) ",
-                                      fr="charge contenant les temperatures",
-                    EXCIT           =FACT(statut='f',max='**',
-                         CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),),
-                              ),
-                                 ),
-                                 
-          b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
-                                 "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
-                                 "ENDO_ELGA","ENDO_ELNO_ELGA",
-                                 "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
-                                 ) ),
-               b_niv_couche = BLOC( condition = "OPTION in ('CRIT_ELNO_RUPT','EQUI_ELNO_SIGM') or \
-                                  (type(OPTION)==type(()) and  'EQUI_ELNO_SIGM' in OPTION) or \
-                                  (type(OPTION)==type(()) and  'SIEQ_ELNO_TUYO' in OPTION) or \
-                                  (type(OPTION)==type(()) and  'CRIT_ELNO_RUPT' in OPTION) ",
-                    NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                                           fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ),
-                    NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                           fr="position dans l'épaisseur de la coque, ou de la couche" ),
-                                  ),        
-                EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
-                     CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
-                                 ),
-                                 
-          b_derivees         =BLOC( condition = "TYPE_OPTION=='DERIVEES'",
-                  OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("DEUL_ELGA_DEPL","DEDE_ELNO_DLDE","DESI_ELNO_DLSI",
-                                 ) ),),
-
-          b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
-                  OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("VALE_NCOU_MAXI","PRES_DBEL_DEPL","VNOR_ELEM_DEPL",
-                                 ) ),
-               b_maxi    =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
-                                (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
-                    NOM_CHAM  =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
-                    NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
-                                 ),
-
-          b_indi_erre         =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'",
-               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) ),),
-                                 ),
-                                 ),
-#    fin bloc lineaire                                
-                            
-                                 
-#    statique ou dynamique non lineaire : evol_noli                                
-     b_noli          =BLOC( condition = "AsType(RESULTAT) == evol_noli",fr="options evol noli",
-          TYPE_OPTION =SIMP(statut='f',typ='TXM',defaut='TOUTES',
-                           into=("SIGM_MASSIF","SIGM_STRUCT","EPSI","ENER","CRIT",
-                                 "VARI","INDI_ERRE","TOUTES","AUTRES"),
-                          ),
-          b_toutes =BLOC( condition = "TYPE_OPTION == 'TOUTES'",fr="toutes les options evol elas",
-               OPTION      =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=( "SIEF_ELNO_ELGA",
-                                  "SIGM_ELNO_TUYO","SIGM_ELNO_COQU",
-                                  "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF","EFGE_ELNO_CART",
-                                  # EPSI
-                                  "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL",
-                                 "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL",
-                                 "DEGE_ELNO_DEPL","EPSI_ELNO_TUYO",
-                                 "EPSP_ELNO","EPSP_ELGA",
-                                 "EPGR_ELNO","EPGR_ELGA",
-                                 "VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU","CRIT_ELNO_RUPT",
-                                 "EXTR_ELGA_VARI","EXTR_ELNO_VARI",
-                                 # CRIT
-                                 "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
-                                 "ERRE_ELEM_SIGM","ERRE_ELNO_ELEM","ERZ1_ELEM_SIGM","ERZ2_ELEM_SIGM",
-                                 "QIRE_ELEM_SIGM","QIRE_ELNO_ELEM","QIZ1_ELEM_SIGM","QIZ2_ELEM_SIGM",
-                                 "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
-                                 "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
-                                 "ENDO_ELGA","ENDO_ELNO_ELGA","INDI_LOCA_ELGA","SING_ELEM",
-                                 "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"),
-                               ),
-               NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
-                                 into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE"),
-                                 fr="Type de norme pour les options RADI_ et DCHA_"),
-                                 
-               NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche pour coques et tuyaux" ),
-               NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                 fr="choix du point d'intégration dans la couche" ),
-               ANGLE       =SIMP(statut='f',typ='I',defaut= 0 ,fr="angle de dépouillement pour les tuyaux"),
-               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",
-                               "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
-                               "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),),
-                            ),
-               EXCIT           =FACT(statut='f',max='**',
-                                      regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
-                    CHARGE          =SIMP(statut='o',typ=char_meca ),
-                    FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                    FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
-                    COEF_MULT       =SIMP(statut='f',typ='R'),
-                    COEF_MULT_C     =SIMP(statut='f',typ='C'),
-                    PHAS_DEG        =SIMP(statut='f',typ='R'),
-                    PUIS_PULS       =SIMP(statut='f',typ='I'),
-                    TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),),
-                         ),
-                         
-          b_sigm_massif =BLOC( condition = "TYPE_OPTION == 'SIGM_MASSIF'",
-                                      fr="options de contraintes non lin 2D et 3D",
-               OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                              #  contraintes
-                           into=( "SIEF_ELNO_ELGA",),),
-                            ),
-                            
-          b_sigm_struct =BLOC( condition = "TYPE_OPTION == 'SIGM_STRUCT'",
-                                       fr="options de contraintes non lin poutres, coques",
-               OPTION =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                              #  contraintes
-                           into=( "SIEF_ELNO_ELGA","EFGE_ELNO_CART","SIGM_ELNO_TUYO","SIGM_ELNO_COQU",
-                           "SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",),),
-               b_sigcoqu = BLOC( condition = "OPTION in ('SIGM_ELNO_COQU',) or \
-                                  (type(OPTION)==type(()) and  'SIGM_ELNO_COQU' in OPTION) ",
-                    NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                         fr="numéro de couche dans l'épaisseur de la coque"  ),
-                    NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                         fr="choix du point d'intégration dans la couche"  ),
-                              ),        
-               b_sigtuyo = BLOC( condition = "OPTION in ('SIGM_ELNO_TUYO',) or \
-                                  (type(OPTION)==type(()) and  'SIGM_ELNO_TUYO' in OPTION)",
-                    NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                         fr="numéro de couche dans l'épaisseur du tuyau" ),
-                    ANGLE       =SIMP(statut='f',typ='I',defaut= 0,
-                         fr="angle de dépouillement pour les tuyaux, en degres" ),
-                    NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                         fr="choix du point d'intégration dans la couche"),
-                               ),
-                             ),
-                             
-          b_epsi         =BLOC( condition = "TYPE_OPTION=='EPSI'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=( "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL",
-                                 "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL",
-                                 "EPSP_ELNO","EPSP_ELGA","EPGR_ELNO","EPGR_ELGA",
-                                 "DEGE_ELNO_DEPL",),
-                                 ),
-               b_niv_couche = BLOC( condition = "OPTION =='EPSI_ELNO_DEPL' or \
-                                  (type(OPTION)==type(()) and  'EPSI_ELNO_DEPL' in OPTION) ",
-                    NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                                           fr="numero de couche dans l'épaisseur de la coque (coques multicouches)" ),
-                    NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                           fr="position dans l'épaisseur de la coque, ou de la couche" ),
-                                 ) ,
-               EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
-                    CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
-                                 ),
-               b_epstuyo = BLOC( condition = "OPTION == 'EPSI_ELNO_TUYO' or \
-                                  (type(OPTION)==type(()) and  'EPSI_ELNO_TUYO' in OPTION) ",
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1 ,
-                                           fr="numero de couche dans l'épaisseur du tuyau" ),
-                         ANGLE       =SIMP(statut='f',typ='I',defaut= 0,fr="angle en degres à partir de la génératrice" ),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                           fr="position dans l'épaisseur de la couche" ),
-              EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
-                    CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
-                               ),
-                                 
-          b_vari         =BLOC( condition = "TYPE_OPTION=='VARI'",
-                                       fr="Calcul et extraction des variables internes",
-                   OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                                   into=("VARI_ELNO_ELGA","VARI_ELNO_TUYO","VARI_ELNO_COQU",
-                                         "EXTR_ELGA_VARI","EXTR_ELNO_VARI"),
-                                 ),
-               b_varcoqu = BLOC( condition = "OPTION in ('VARI_ELNO_COQU',) or \
-                                  (type(OPTION)==type(()) and  'VARI_ELNO_COQU' in OPTION) ",
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                         fr="numéro de couche dans l'épaisseur de la coque"),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                         fr="choix du point d'intégration dans la couche" ),
-                              ),        
-               b_vartuyo = BLOC( condition = "OPTION in ('VARI_ELNO_TUYO',) or \
-                                  (type(OPTION)==type(()) and  'VARI_ELNO_TUYO' in OPTION) ",
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,
-                         fr="numéro de couche dans l'épaisseur de tuyau" ),
-                         ANGLE       =SIMP(statut='f',typ='I',defaut= 0,
-                         fr="angle de dépouillement pour les tuyaux, en degres"),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                         fr="choix du point d'intégration dans la couche" ),
-                               ),
-               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",
-                               "SEUIL_HYD","IND_HYD","PCOHE","COMP_ROC","SEUIL_ISO","ANG_DEV","X11","X22","X33","X12","X13","X23",
-                               "DIST_DEV","DEV_SUR_CRIT","DIST_ISO","NB_ITER","ARRET","NB_REDE","SIGNE"),),
-                            ),
-                           ),
-                              
-          b_ener         =BLOC( condition = "TYPE_OPTION=='ENER'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("ETOT_ELGA","ETOT_ELNO_ELGA","ETOT_ELEM","ENEL_ELGA","ENEL_ELNO_ELGA",),
-                                 ),
-               EXCIT           =FACT(statut='f',max='**',fr="charge contenant les temperatures",
-                    CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),),
-                                 ),
-                                 
-          b_crit         =BLOC( condition = "TYPE_OPTION=='CRIT'",
-               OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
-                                 "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
-                                 "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","CRIT_ELNO_RUPT",
-                                 "ENDO_ELGA","ENDO_ELNO_ELGA",
-                                 "PMPB_ELNO_SIEF","PMPB_ELGA_SIEF","SIEQ_ELNO_TUYO","EPEQ_ELNO_TUYO",
-                                 ) ),
-                         NUME_COUCHE =SIMP(statut='f',typ='I',defaut= 1,fr="numéro de couche dans l'épaisseur de la coque"),
-                         NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                         fr="choix du point d'intégration dans la couche" ),
-                                 ),
-                                 
-          b_autres         =BLOC( condition = "TYPE_OPTION=='AUTRES'",
-                  OPTION    =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("VALE_NCOU_MAXI",) ),
-               b_maxi    =BLOC( condition = "OPTION=='VALE_NCOU_MAXI' or \
-                                (type(OPTION)==type(()) and 'VALE_NCOU_MAXI' in OPTION)",
-                    NOM_CHAM  =SIMP(statut='o',typ='TXM',fr="Nom du champ pour VALE_NCOU_MAXI" ),
-                    NOM_CMP   =SIMP(statut='o',typ='TXM',fr="Nom de la composante pour VALE_NCOU_MAXI"),),
-                                 ),
-
-
-          b_indi_erre         =BLOC( condition = "TYPE_OPTION=='INDI_ERRE'",
-               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\
-                                            (type(OPTION)==type(()) and 'RADI_ELNO_SIGM' in OPTION) or\
-                                            (type(OPTION)==type(()) and 'RADI_ELGA_SIGM' in OPTION) ",
-                    NORME =SIMP(statut='f',typ='TXM',defaut="VMIS",
-                                 into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
-                                 ),
-                                 ),
-                                 ),
-#          fin bloc evol_noli
-
-#           thermique : evol_ther                                
-     b_ther          =BLOC( condition = "AsType(RESULTAT) == evol_ther",fr="options thermiques",
-          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","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 ),
-                    FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                    FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
-                    COEF_MULT       =SIMP(statut='f',typ='R'),
-                    COEF_MULT_C     =SIMP(statut='f',typ='C'),
-                    PHAS_DEG        =SIMP(statut='f',typ='R'),
-                    PUIS_PULS       =SIMP(statut='f',typ='I'),
-                    TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",),),
-                                     ),
-                    NIVE_COUCHE =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY"),
-                                      fr="choix du point de calcul dans l'épaisseur des coques"  ),
-                                 
-                                 ),
-                                 
-#    acoustique                                
-     b_acou          =BLOC( condition = "AsType(RESULTAT) in (acou_harmo,mode_acou,)",fr="options acoustiques",
-          OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                           into=("PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
-                                 "INTE_ELNO_ACTI","INTE_ELNO_REAC",
-                                 ),),
-          EXCIT           =FACT(statut='f',max='**',
-                regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
-                CHARGE          =SIMP(statut='o',typ=char_acou ),
-                FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
-                COEF_MULT       =SIMP(statut='f',typ='R'),
-                COEF_MULT_C     =SIMP(statut='f',typ='C'),
-                PHAS_DEG        =SIMP(statut='f',typ='R'),
-                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 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.      
-# ======================================================================
-def calc_fatigue_prod(TYPE_CALCUL,OPTION,**args):
-  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="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',
-                               into=("CUMUL_DOMMAGE","FATIGUE_MULTI",) ),
-
-         b_cumul_domma   =BLOC(condition = "TYPE_CALCUL == 'CUMUL_DOMMAGE'",
-                               fr="Calcul d un champ de dommage subi par une structure.",
-           regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
-           OPTION          =SIMP(statut='o',typ='TXM',
-                                 into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
-                                       "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
-                                       "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
-           HISTOIRE        =FACT(statut='o',
-             RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,
-                                                   evol_noli) ),
-             EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",
-                                 into=("VMIS_SG","INVA_2_SG") ),
-           ),
-           DOMMAGE         =SIMP(statut='o',typ='TXM',
-                               into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",
-                                     "TAHERI_MIXTE",) ),
-           MATER           =SIMP(statut='o',typ=(mater_sdaster) ),
-           TAHERI_NAPPE    =SIMP(statut='f',typ=(nappe_sdaster,formule) ),
-           TAHERI_FONC     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         b_fatigue_multi   =BLOC(condition = "TYPE_CALCUL == 'FATIGUE_MULTI'",
-                                 fr="Plan critique dans le cas de la fatigue multiaxiale à grand nombre de cycles.",
-           TYPE_CHARGE   =SIMP(statut='o',typ='TXM',into=("PERIODIQUE","NON_PERIODIQUE") ),
-           OPTION        =SIMP(statut='o',typ='TXM',into=("DOMA_ELGA","DOMA_NOEUD") ),
-           RESULTAT      =SIMP(statut='o',typ=(evol_elas, evol_noli) ),
-           CHAM_MATER    =SIMP(statut='o',typ=(cham_mater) ),
-           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='**' ),
-           COEF_PREECROU =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           b_period       =BLOC(condition = "TYPE_CHARGE == 'PERIODIQUE'",
-               CRITERE       =SIMP(statut='o',typ='TXM',into=("MATAKE","DANG_VAN_MODI_AC") ),
-               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","FATEMI_SOCIE") ),
-               PROJECTION    =SIMP(statut='o',typ='TXM',into=("UN_AXE", "DEUX_AXES") ),
-               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 ),
-           ),
-         ),
-
-         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.      
-# ======================================================================
-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='f',
-                               fr="Définir la plage de vitesse fluide étudiée",
-           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=(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='**',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',
-                               fr="Choix des informations à imprimer dans le fichier RESULTAT",
-           PARA_COUPLAGE   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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 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) ),
-         VALE_PARA       =SIMP(statut='f',typ='R',max='**'),
-         LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
-         NOM_RESU        =SIMP(statut='f',typ='TXM'),
-         NOM_PARA        =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=("EXCLU","CONSTANT","LINEAIRE") ),
-         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
-         NOM_PARA_FONC   =SIMP(statut='f',typ='TXM'),
-         b_eval_nappe    =BLOC(condition = "NOM_PARA_FONC != None",             
-            regles=(UN_PARMI('VALE_PARA_FONC','LIST_PARA_FONC'),),
-            VALE_PARA_FONC  =SIMP(statut='f',typ='R',max='**'),
-            LIST_PARA_FONC  =SIMP(statut='f',typ=listr8_sdaster ),
-            INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG")),
-            PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
-            PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("EXCLU","CONSTANT","LINEAIRE") ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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.calc_fonction_ops import calc_fonction_ops
-def calc_fonction_prod(self,DERIVE,EXTRACTION,INTEGRE,INVERSE,COMB,COMB_C,
-                       ENVELOPPE,SPEC_OSCI,ASSE,FFT,COMPOSE,CORR_ACCE,PUISSANCE,
-                       LISS_ENVELOP,ABS, **args):
-
-   if (INTEGRE     != None): return fonction_sdaster
-   if (DERIVE      != None): return fonction_sdaster
-   if (INVERSE     != None): return fonction_sdaster
-   if (COMB        != None): 
-      type_vale=AsType(COMB[0]['FONCTION'])
-      for mcfact in COMB :
-          if(AsType(mcfact['FONCTION'])!=type_vale):
-             raise AsException("CALC_FONCTION/COMB : pas de types hétérogènes nappe/fonction")
-      return type_vale
-   if (COMB_C      != None):
-      vale=COMB_C[0]['FONCTION']
-      if(AsType(vale) == nappe_sdaster):
-         for mcfact in COMB_C[1:] :
-             if(AsType(mcfact['FONCTION'])!=nappe_sdaster):
-                raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
-         return nappe_sdaster
-      else:
-         for mcfact in COMB_C :
-             if(AsType(mcfact['FONCTION'])==nappe_sdaster):
-                raise AsException("CALC_FONCTION/COMB_C : pas de types hétérogènes nappe/fonction")
-         return fonction_c
-   if (ENVELOPPE   != None): return AsType(ENVELOPPE[0]['FONCTION'])
-   if (EXTRACTION  != None): return fonction_sdaster
-   if (SPEC_OSCI   != None): return nappe_sdaster
-   if (COMPOSE     != None): return fonction_sdaster
-   if (ASSE        != None): return fonction_sdaster
-   if (FFT         != None):
-      vale=FFT[0]['FONCTION']
-      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 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="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',
-                          'COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE',
-                          'LISS_ENVELOP','INVERSE','ABS'),),
-         FFT             =FACT(statut='f',fr="Transformée de Fourier ou de son inverse",
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c) ),
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="PROL_ZERO",into=("PROL_ZERO","TRONCATURE") ),
-           b_syme          =BLOC ( condition = " AsType(FONCTION)==fonction_c ",
-             SYME           =SIMP(statut='f',typ='TXM',into=('OUI','NON'),defaut='OUI' ),  
-           ),
-         ),
-         DERIVE          =FACT(statut='f',fr="Dérivée d une fonction",
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ),
-           FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
-         ),
-         INTEGRE         =FACT(statut='f',fr="Intégrale d'une fonction",
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
-           FONCTION        =SIMP(statut='o',typ=fonction_sdaster),
-           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",
-           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",) ),
-           FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
-           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
-           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
-           FREQ            =SIMP(statut='f',typ='R',max='**'),
-           NORME           =SIMP(statut='o',typ='R',defaut= 9.81E+0,fr="Valeur de la norme du spectre d oscillateur" ),
-           NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
-           NATURE_FONC     =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
-         ),
-         ABS             =FACT(statut='f',fr="Valeur absolue d'une fonction",
-           FONCTION        =SIMP(statut='o',typ=fonction_sdaster,),
-         ),
-         COMB            =FACT(statut='f',max='**',fr="Combinaison linéaire réelle de fonctions",
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster) ),
-           COEF            =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
-         ),
-         COMB_C          =FACT(statut='f',max='**',fr="Combinaison linéaire complexe de fonctions",
-           regles=(UN_PARMI('COEF_R','COEF_C'),),
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster) ),
-           COEF_R          =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
-           COEF_C          =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
-         ),
-         b_comb          =BLOC ( condition = " (COMB != None) or (COMB_C != None)",
-             LIST_PARA      =SIMP(statut='f',typ=listr8_sdaster ),  
-         ),
-         COMPOSE         =FACT(statut='f',fr="Composition de deux fonctions FONC_RESU(FONC_PARA)",
-           FONC_RESU       =SIMP(statut='o',typ=fonction_sdaster),
-           FONC_PARA       =SIMP(statut='o',typ=fonction_sdaster),
-         ),
-         EXTRACTION      =FACT(statut='f',fr="Extraction sur une fonction complexe",
-           FONCTION        =SIMP(statut='o',typ=fonction_c),
-           PARTIE          =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"),
-         ),
-         ENVELOPPE       =FACT(statut='f',fr="Enveloppe d une famille de fonctions",
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster),max='**' ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
-         ),
-         ASSE            =FACT(statut='f',fr="Concatenation de fonctions",
-           FONCTION        =SIMP(statut='o',typ=fonction_sdaster,min=2,max=2 ),
-           SURCHARGE       =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
-         ),
-         CORR_ACCE     =FACT(statut='f',fr="Correction d un accelerogramme reel",
-            CORR_DEPL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
-            FONCTION        =SIMP(statut='o',typ=fonction_sdaster ),
-         ),
-         PUISSANCE       =FACT(statut='f',fr="Fonction élevée à une puissance",
-            FONCTION      =SIMP(statut='o', typ=(fonction_sdaster,nappe_sdaster) ),
-            EXPOSANT      =SIMP(statut='f', typ='I', defaut=1 ),
-         ),
-         INVERSE         =FACT(statut='f',fr="Inverse d'une fonction",
-            FONCTION      =SIMP(statut='o', typ=fonction_sdaster),
-         ),     
-         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") ),
-         NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=C_PARA_FONCTION() ),
-         INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,into=("NON","LIN","LOG") ),
-         PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
-         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 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.      
-# ======================================================================
-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",)},
-
-        regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
-                PRESENT_PRESENT( 'MODELE_GENE','NUME_DDL_GENE'),
-                UN_PARMI('MONO_APPUI', 'NOEUD','GROUP_NO'),
-                UN_PARMI('MONO_APPUI','MODE_STAT')),
-
-         MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
-         MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
-         CHARGE          =SIMP(statut='o',typ=char_ther ),
-         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
-         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 ),
-         AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-         POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
-         NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-
-         DIRECTION       =SIMP(statut='o',typ='R',max=3),
-         MONO_APPUI      =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='**'),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,),),
-
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-
-         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 ),
-           ),
-                           ),
-
-           ) ;
-#& 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.      
-# ======================================================================
-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 ),
-         INST_FIN        =SIMP(statut='o',typ='R' ),
-         DUREE_ANALYSE   =SIMP(statut='f',typ='R' ),
-         DUREE_DECALAGE  =SIMP(statut='f',typ='R' ),
-         NB_POIN         =SIMP(statut='o',typ='I' ),
-         FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
-         TITRE           =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-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 rigidité ajoutés",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
-                 PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
-                 PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
-         MODELE_FLUIDE   =SIMP(statut='o',typ=modele_sdaster ),
-         MODELE_INTERFACE=SIMP(statut='o',typ=modele_sdaster ),
-         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_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 ),
-         AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         NUME_MODE_MECA  =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-         OPTION          =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ),
-         POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
-         NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-
-         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 ),
-           ),
-         ),
-)  ;
-#& 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 VABHHTS J.PELLET
-def calc_matr_elem_prod(OPTION,**args):
-  if OPTION == "RIGI_MECA"        : return matr_elem_depl_r
-  if OPTION == "RIGI_FLUI_STRU"   : return matr_elem_depl_r
-  if OPTION == "RIGI_MECA_LAGR"   : return matr_elem_depl_r
-  if OPTION == "MASS_ID_MDEP_R"   : return matr_elem_depl_r
-  if OPTION == "MASS_ID_MDNS_R"   : return matr_elem_depl_r
-  if OPTION == "MASS_ID_MTEM_R"   : return matr_elem_temp_r
-  if OPTION == "MASS_ID_MTNS_R"   : return matr_elem_temp_r
-  if OPTION == "MASS_MECA"        : return matr_elem_depl_r
-  if OPTION == "MASS_FLUI_STRU"   : return matr_elem_depl_r
-  if OPTION == "RIGI_GEOM"        : return matr_elem_depl_r
-  if OPTION == "RIGI_ROTA"        : return matr_elem_depl_r
-  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
-  if OPTION == "MASS_MECA_DIAG"   : return matr_elem_depl_r
-  if OPTION == "RIGI_ACOU"        : return matr_elem_pres_c
-  if OPTION == "MASS_ACOU"        : return matr_elem_pres_c
-  if OPTION == "AMOR_ACOU"        : return matr_elem_pres_c
-  raise AsException("type de concept resultat non prevu")
-
-CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
-                    ,fr="Calcul des matrices élémentaires",reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-
-         OPTION          =SIMP(statut='o',typ='TXM',
-                               into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
-                                     "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
-                                     "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",
-                                     "RIGI_MECA_LAGR") ),
-
-         # mots clés facultatifs que l'on a du mal à mettre dans les blocs
-         # sans gener MACRO_MATR_ASSE :
-         #------------------------------------------------------------------
-         INST=SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-
-
-         b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
-           regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
-           MODELE          =SIMP(statut='f',typ=modele_sdaster ),
-           b_modele        =BLOC(condition = "MODELE != None",
-             CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
-             CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
-             MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**' ),
-         ),
-
-         b_rigi_meca_lagr  =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'  ),
-           THETA           =SIMP(statut='o',typ=theta_geom ),
-           PROPAGATION     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-         ),
-
-         b_mass_meca       =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
-           regles=(AU_MOINS_UN('MODELE','CHARGE'),),
-           MODELE          =SIMP(statut='f',typ=modele_sdaster ),
-           b_modele          =BLOC(condition = "MODELE != None",
-             CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
-             CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
-           ),
-           CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-         ),
-
-         b_mass_identite   =BLOC(condition = "(OPTION in ('MASS_ID_MDEP_R','MASS_ID_MTEM_R','MASS_ID_MDNS_R','MASS_ID_MTNS_R')) ",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           # j'ajoute ces 2 mot clés inutiles à cause de l'alarme pas assez subtile de MEDOME
-           CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
-           CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
-         ),
-
-         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 ),
-           MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
-         ),
-
-         b_rigi_rota       =BLOC(condition = "OPTION=='RIGI_ROTA'",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),max='**' ),
-         ),
-
-         b_amor_meca       =BLOC(condition = "OPTION=='AMOR_MECA'",
-           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='f',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_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='**' ),
-           CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
-           CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
-           RIGI_MECA         =SIMP(statut='o',typ=matr_elem_depl_r ),
-         ),
-
-         b_rigi_ther       =BLOC(condition = "OPTION=='RIGI_THER'",
-           regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
-           MODELE            =SIMP(statut='f',typ=modele_sdaster ),
-           b_modele          =BLOC(condition = "MODELE != None",
-             CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-             CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
-             MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           CHARGE            =SIMP(statut='f',typ=char_ther,validators=NoRepeat(),max='**' ),
-         ),
-
-         b_mass_ther       =BLOC(condition = "OPTION=='MASS_THER'",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
-           CHARGE            =SIMP(statut='f',typ=char_ther ,validators=NoRepeat(),max='**' ),
-         ),
-
-         b_rigi_acou       =BLOC(condition = "OPTION=='RIGI_ACOU'",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
-         ),
-
-         b_mass_acou       =BLOC(condition = "(OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CHARGE            =SIMP(statut='f',typ=char_acou ,validators=NoRepeat(),max='**' ),
-         ),
-
-         b_rigi_flui       =BLOC(condition = "OPTION=='RIGI_FLUI_STRU'",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**' ),
-         ),
-
-         b_mass_flui       =BLOC(condition = "OPTION=='MASS_FLUI_STRU'",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CHARGE            =SIMP(statut='o',typ=char_meca ,validators=NoRepeat(),max='**'),
-         ),
-
-         b_impe_meca       =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
-           MODELE            =SIMP(statut='o',typ=modele_sdaster ),
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
-           CHARGE            =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),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.      
-# ======================================================================
-CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,reentrant='o',
-            UIinfo={"groupes":("Post traitements",)},
-               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('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",) ),
-           ACIER           =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
-           ZIRC            =SIMP(statut='c',typ='I',defaut=3,into=(3,) ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma),
-           MAILLE          =SIMP(statut='f',typ=ma),
-         ),
-         OPTION          =SIMP(statut='f',typ='TXM'     
-                             ,into=("META_ELNO_TEMP",) ),
-)  ;
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-def calc_no_prod(RESULTAT,**args):
-   if AsType(RESULTAT) != None : return AsType(RESULTAT)
-   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,
-                                              mode_stat_forc,evol_ther,evol_noli,base_modale,
-                                               mult_elas,fourier_elas,mode_flamb ) ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               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'),
-                 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='**'),
-         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") ),
-         LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-
-         OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                               into=("FORC_NODA","REAC_NODA",
-                                     "DCHA_NOEU_SIGM",
-                                     "DEGE_NOEU_DEPL",
-                                     "DETE_NOEU_DLTE",
-                                     "DEDE_NOEU_DLDE",
-                                     "DESI_NOEU_DLSI",
-                                     "DURT_NOEU_META",
-                                     "EFGE_NOEU_CART","EFGE_NOEU_DEPL",
-                                     "ENDO_NOEU_SINO",
-                                     "ENEL_NOEU_ELGA",
-                                     "EPMG_NOEU_DEPL",
-                                     "EPSA_NOEU",
-                                     "EPSG_NOEU_DEPL",
-                                     "EPSI_NOEU_DEPL",
-                                     "EPSP_NOEU"     ,"EPSP_NOEU_ZAC",
-                                     "EQUI_NOEU_EPME","EQUI_NOEU_EPSI","EQUI_NOEU_SIGM",
-                                     "ERRE_NOEU_ELEM","QIRE_NOEU_ELEM",
-                                     "FLUX_NOEU_TEMP",
-                                     "HYDR_NOEU_ELGA",
-                                     "INTE_NOEU_ACTI","INTE_NOEU_REAC",
-                                     "META_NOEU_TEMP",
-                                     "PMPB_NOEU_SIEF",
-                                     "PRES_NOEU_DBEL","PRES_NOEU_IMAG","PRES_NOEU_REEL",
-                                     "RADI_NOEU_SIGM",
-                                     "SIEF_NOEU"     ,"SIEF_NOEU_ELGA",
-                                     "SIGM_NOEU_CART","SIGM_NOEU_COQU","SIGM_NOEU_DEPL",
-                                     "SIGM_NOEU_SIEF","SIGM_NOEU_ZAC",
-                                     "SIPO_NOEU_DEPL","SIPO_NOEU_SIEF",
-                                     "SIRE_NOEU_DEPL",
-                                     "VARI_NOEU","EXTR_NOEU_VARI","VARI_NOEU_ELGA",) ),
-
-         b_forc_reac     =BLOC(condition = """(OPTION == 'FORC_NODA') or (type(OPTION) == type(()) and 'FORC_NODA' in OPTION) or\
- (OPTION == 'REAC_NODA') or (type(OPTION) == type(()) and 'REAC_NODA' in OPTION)""",
-             MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         ),
-
-         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         EXCIT           =FACT(statut='f',max='**',
-           CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),
-           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") ),
-         ),
-         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_MA_RESU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-         MAILLE_RESU     =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-         GROUP_NO_RESU   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-         NOEUD_RESU      =SIMP(statut='f',typ=ma,validators=NoRepeat(),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.      
-# ======================================================================
-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'),
-           R_INF           =SIMP(statut='o',typ='R'),
-           R_SUP           =SIMP(statut='o',typ='R'),
-         ),
-         GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         IMPRESSION      =FACT(statut='f',
-           UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-           FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
-         ),
-)  ;
-#& 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 VABHHTS J.PELLET
-def calc_vect_elem_prod(OPTION,**args):
-  if OPTION == "CHAR_MECA" :      return vect_elem_depl_r
-  if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r
-  if OPTION == "CHAR_THER" :      return vect_elem_temp_r
-  if OPTION == "CHAR_ACOU" :      return vect_elem_pres_c
-  if OPTION == "FORC_NODA" :      return vect_elem_depl_r
-  raise AsException("type de concept resultat non prevu")
-
-CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-                    fr="Calcul des seconds membres élémentaires",
-         OPTION          =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU",
-                                                           "FORC_NODA","CHAR_MECA_LAGR") ),
-         b_char_meca     =BLOC(condition = "OPTION=='CHAR_MECA'",
-           regles=(AU_MOINS_UN('CHARGE','MODELE'),),
-           CHARGE          =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-           MODELE          =SIMP(statut='f',typ=modele_sdaster),
-           b_charge     =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure",
-              CHAM_MATER   =SIMP(statut='f',typ=cham_mater),
-              CARA_ELEM    =SIMP(statut='f',typ=cara_elem),
-              INST         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-              MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),  
-           b_modele     =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
-              SOUS_STRUC      =FACT(statut='o',min=01,
-                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='**',),
-              ),
-           ),
-         ),
-         b_char_ther     =BLOC(condition = "OPTION=='CHAR_THER'",
-           CARA_ELEM        =SIMP(statut='f',typ=cara_elem),
-           CHARGE           =SIMP(statut='o',typ=char_ther,validators=NoRepeat(),max='**'),
-           INST             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-         ),
-              
-         b_char_acou     =BLOC(condition = "OPTION=='CHAR_ACOU'",
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
-           CHARGE            =SIMP(statut='o',typ=char_acou,validators=NoRepeat(),max='**'),
-         ),
-         
-         b_forc_noda     =BLOC(condition = "OPTION=='FORC_NODA'",
-           SIEF_ELGA         =SIMP(statut='o',typ=cham_elem),
-           CARA_ELEM         =SIMP(statut='f',typ=cara_elem),
-           MODELE            =SIMP(statut='f',typ=modele_sdaster),
-         ),
-         
-         b_meca_lagr     =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'",
-           CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
-           THETA             =SIMP(statut='o',typ=theta_geom),
-           PROPAGATION       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           CHARGE            =SIMP(statut='f',typ=char_meca,validators=NoRepeat(),max='**'),
-           INST              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-         ),
-) ;
-#& 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
-
-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),
-      ),
-      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),
-      ),
-      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),
-      ),
-      ANGL            =SIMP(statut='f',typ='R' ),
-)  ;
-
-#& 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
-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 ==  matr_asse_gene_r : typ= matr_asse_gene_r
-  return typ
-
-COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
-                    ,fr="Effectuer la combinaison linéaire de champs aux noeuds",
-                     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_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_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_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") ),
-         ),
-         b_angl = BLOC ( condition = "COMB_FOURIER != None",
-           ANGL            =SIMP(statut='o',typ='R' ),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
-                  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 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
-def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
-  if COMB_C != None:
-    type_mat = AsType(COMB_C[0]['MATR_ASSE'])
-    if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c
-    if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c    
-    if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
-    if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
-  elif COMB_R != None:
-    type_mat = AsType(COMB_R[0]['MATR_ASSE'])
-    if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
-    if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
-    if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
-    if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
-  elif CALC_AMOR_GENE != None: return matr_asse_gene_r
-  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="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' ),),
-         COMB_R          =FACT(statut='f',max='**',
-           PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
-           MATR_ASSE       =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,matr_asse_gene_r,matr_asse_gene_c ) ),
-           COEF_R          =SIMP(statut='o',typ='R' ),
-         ),
-         COMB_C          =FACT(statut='f',max='**',
-           regles=(UN_PARMI('COEF_R','COEF_C' ),),
-           MATR_ASSE       =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,matr_asse_gene_r,matr_asse_gene_c ) ),
-           COEF_R          =SIMP(statut='f',typ='R' ),
-           COEF_C          =SIMP(statut='f',typ='C' ),
-         ),
-         CALC_AMOR_GENE   =FACT(statut='f',
-           regles=(UN_PARMI('AMOR_REDUIT','LIST_AMOR' ),),
-           MASS_GENE    = SIMP(statut='f', typ=matr_asse_gene_r),
-           RIGI_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 ),
-         ),         
-         SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
-)  ;
-#& 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.      
-# ======================================================================
-COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
-                     fr="Réponse sismique par recombinaison modale par une méthode spectrale",
-                     reentrant='n',
-            UIinfo={"groupes":("Post traitements",)},
-         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
-                 UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),),
-         MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
-         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='**'),
-         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-         LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
-         b_freq          =BLOC(condition = "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") ),
-         ),
-         MODE_CORR       =SIMP(statut='f',typ=mode_stat_acce ),
-         
-         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
-         LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
-         AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
-         
-         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='**',
-           regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'),
-                   UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),),
-           
-           MONO_APPUI      =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='**'),
-           AXE             =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant un seul axe",),
-           TRI_AXE         =SIMP(statut='f',typ='R',max=3,fr="Excitation suivant les trois axes mais avec le meme spectre",),
-           TRI_SPEC        =SIMP(statut='f',typ='TXM',into=("OUI",),
-                                 fr="Excitation suivant les trois axes  avec trois spectres"),
-           b_axe           =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
-             SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),),
-             ECHELLE         =SIMP(statut='f',typ='R',),
-           ),
-           b_tri_axe       =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre",
-             SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),),
-             ECHELLE         =SIMP(statut='f',typ='R',),
-           ),
-           b_tri_spec      =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes  avec trois spectres",
-             SPEC_OSCI       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule),min=3,max=3 ),
-             ECHELLE         =SIMP(statut='f',typ='R',min=3,max=3),
-           ),       
-           NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
-         ),
-         COMB_MODE       =FACT(statut='o',
-           TYPE            =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ),
-           DUREE           =SIMP(statut='f',typ='R' ),
-         ),
-         COMB_DIRECTION  =FACT(statut='f',
-           TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
-         ),
-         COMB_MULT_APPUI =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
-           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='**'),
-           TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ),
-         ),
-         COMB_DEPL_APPUI=FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','LIST_CAS'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           LIST_CAS       =SIMP(statut='f',typ='I',max='**'),
-           TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
-         ),
-         DEPL_MULT_APPUI =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO'),
-                   AU_MOINS_UN('DX','DY','DZ' ),),
-           NOM_CAS         =SIMP(statut='o',typ='TXM',max='**'),
-           NUME_CAS        =SIMP(statut='o',typ='I',max='**'),
-           MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,), ),
-           NOEUD_REFE      =SIMP(statut='f',typ=no),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           DX              =SIMP(statut='f',typ='R' ),
-           DY              =SIMP(statut='f',typ='R' ),
-           DZ              =SIMP(statut='f',typ='R' ),
-         ),
-         OPTION          =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=9,
-                               into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
-                                     "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART",
-                                     "SIPO_ELNO_DEPL") ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-         IMPRESSION      =FACT(statut='f',max='**',
-           regles=(EXCLUS('TOUT','NIVEAU'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NIVEAU          =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),validators=NoRepeat(),max=3 ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& 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.
-# ======================================================================
-def crea_champ_prod(TYPE_CHAM,**args):
-  if TYPE_CHAM[0:5] == "CART_" :
-     return carte_sdaster
-  elif TYPE_CHAM[0:5] == "NOEU_" :
-     return cham_no_sdaster
-  elif TYPE_CHAM[0:2] == "EL"    :
-     return cham_elem
-  else :
-     raise AsException("type de concept resultat_sdaster non prevu")
-
-
-CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
-                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 
-#        SI CREATION D'UN CHAM_NO, POUR IMPOSER LA NUMEROTATION DES DDLS :
-#        ------------------------------------------------------------------
-         regles=(EXCLUS('NUME_DDL','CHAM_NO',)),
-         NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
-         CHAM_NO         =SIMP(statut='f',typ=(cham_no_sdaster) ),
-
-#        SI CREATION D'UN CHAM_ELEM, POUR aider a l'allocation du champ :
-#        (PAR DEFAUT : TOU_INI_ELNO/_ELGA/_ELEM)
-#        ------------------------------------------------------------------
-         OPTION         =SIMP(statut='f',typ='TXM'),
-
-         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) ),
-             MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
-             b_affe_modele   =BLOC(condition = "MODELE != None",
-                 PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
-             AFFE            =FACT(statut='o',max='**',
-                regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
-                        UN_PARMI('VALE','VALE_I','VALE_C','VALE_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='**'),
-                GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
-                NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
-                NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
-                VALE            =SIMP(statut='f',typ='R',max='**' ),
-                VALE_I          =SIMP(statut='f',typ='I',max='**' ),
-                VALE_C          =SIMP(statut='f',typ='C',max='**' ),
-                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) ),
-             MODELE          =SIMP(statut='f',typ=(modele_sdaster) ),
-             b_asse_modele   =BLOC(condition = "MODELE != None",
-                 PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ), ),
-             ASSE            =FACT(statut='o',max='**',
-                regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),
-                PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),),
-                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='**'),
-                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='**'),
-                             ),
-#        ------------------------------------------------------------------
-         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),
-                             ),
-#        ------------------------------------------------------------------
-         b_extr          =BLOC(condition = "OPERATION == 'EXTR'",
-             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) ),
-             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","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"),
-                 NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
-                 TYPE_MAXI       =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
-
-                 # si TYPE_MAXI, on spécifie en général plusieurs numéros d'ordre :
-                 b_type_maxi =BLOC(condition = "TYPE_MAXI != None",
-                      TYPE_RESU       =SIMP(statut='o',typ='TXM',defaut="VALE",into=("VALE","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='**'),
-                      INST            =SIMP(statut='f',typ='R',max='**'),
-                      FREQ            =SIMP(statut='f',typ='R',max='**'),
-                      NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
-                      NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
-                      NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),
-                      ANGL            =SIMP(statut='f',typ='R',max='**'),
-                 ),
-
-                 # 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=(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'),
-                      NOEUD_CMP       =SIMP(statut='f',typ='TXM',max=2),
-                      NOM_CAS         =SIMP(statut='f',typ='TXM'),
-                      ANGL            =SIMP(statut='f',typ='R'),
-
-                      INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
-                 ),
-
-                 PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
-
-         ),  # fin bloc b_extr
-
-                ),
-# 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 03/01/2006   AUTEUR REZETTE C.REZETTE 
-# RESPONSABLE 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.
-# ======================================================================
-CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage_sdaster,
-            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'),
-                 EXCLUS('ECLA_PG','DETR_GROUP_MA'),
-                 EXCLUS('ECLA_PG','MODI_MAILLE'),
-                 EXCLUS('ECLA_PG','LINE_QUAD'),
-                 EXCLUS('ECLA_PG','CREA_FISS'),
-                 EXCLUS('ECLA_PG','COQU_VOLU'),
-                 EXCLUS('LINE_QUAD','MODI_MAILLE'),
-                 EXCLUS('LINE_QUAD','CREA_MAILLE'),
-                 EXCLUS('LINE_QUAD','CREA_GROUP_MA'),
-                 EXCLUS('LINE_QUAD','DETR_GROUP_MA'),
-                 EXCLUS('LINE_QUAD','CREA_FISS'),
-                 EXCLUS('LINE_QUAD','COQU_VOLU'),
-                 EXCLUS('CREA_FISS','MODI_MAILLE'),
-                 EXCLUS('CREA_FISS','CREA_MAILLE'),
-                 EXCLUS('CREA_FISS','CREA_GROUP_MA'),
-                 EXCLUS('CREA_FISS','DETR_GROUP_MA'),
-                 EXCLUS('CREA_FISS','COQU_VOLU'),
-                 EXCLUS('COQU_VOLU','MODI_MAILLE'),
-                 EXCLUS('COQU_VOLU','CREA_MAILLE'),
-                 EXCLUS('COQU_VOLU','CREA_GROUP_MA'),
-                 EXCLUS('COQU_VOLU','DETR_GROUP_MA'),
-                 ),
-                 
-         # le MAILLAGE est inutile si ECLA_PG
-         MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
-         
-         CREA_POI1       =FACT(statut='f',max='**',fr="Création de mailles de type POI1 à partir de noeuds",
-           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),),
-           NOM_GROUP_MA    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           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='**'),
-         ),
-         CREA_MAILLE     =FACT(statut='f',max='**',fr="Duplication de mailles",
-           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),),
-           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='**'),
-           PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
-           PREF_NUME       =SIMP(statut='f',typ='I' ),
-         ),
-         CREA_GROUP_MA   =FACT(statut='f',max='**',fr="Duplication de mailles et création de groupes de mailles",
-           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
-           NOM             =SIMP(statut='o',typ='TXM'),
-           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='**'),
-           PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
-           PREF_NUME       =SIMP(statut='f',typ='I' ),
-         ),
-         DETR_GROUP_MA   =FACT(statut='f',fr="Destruction de groupes de mailles",
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           NB_MAILLE       =SIMP(statut='f',typ='I',defaut= 0,
-                                 fr="Nombre minimal de mailles que doit contenir le groupe pour etre détruit",  ),
-         ),
-         COQU_VOLU   =FACT(statut='f',
-                           fr="Creation de mailles volumiques à partir de mailles surfaciques",
-           NOM             =SIMP(statut='o',typ='TXM'),
-           GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max ='**'),
-           EPAIS           =SIMP(statut='o',typ='R' ),
-           PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
-           PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS" ),
-           PREF_NUME       =SIMP(statut='f',typ='I'  ,defaut=1 ),
-           PLAN            =SIMP(statut='o',typ='TXM',into=("SUP","MOY","INF")),
-           b_MOY =BLOC(condition = "PLAN == 'MOY'",
-             TRANSLATION   =SIMP(statut='o',typ='TXM',into=("SUP","INF") ),
-           ),
-         ),
-         MODI_MAILLE     =FACT(statut='f',max='**',fr="Modification du type de mailles",
-           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           OPTION          =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4","QUAD_TRIA3"),
-                                 fr="Choix de la transformation" ),
-           b_NOS =BLOC(condition = "OPTION == 'TRIA6_7'  or  OPTION == 'QUAD8_9'  or  OPTION == 'SEG3_4'",
-             PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
-             PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
-           ),
-           b_QTR =BLOC(condition = "OPTION == 'QUAD_TRIA3'",
-             PREF_MAILLE     =SIMP(statut='f',typ='TXM',defaut="MS" ),
-             PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
-           ),
-         ),
-         CREA_FISS = FACT(statut='f',max='**',fr="Creation d'une fissure potentielle avec elts de joint ou elts à disc",
-           NOM             =SIMP(statut='o',typ='TXM'),
-           GROUP_NO_1      =SIMP(statut='o',typ=grno),
-           GROUP_NO_2      =SIMP(statut='o',typ=grno),
-           PREF_MAILLE     =SIMP(statut='o',typ='TXM'),
-           PREF_NUME       =SIMP(statut='f',typ='I',defaut=1 ),
-         ),
-         LINE_QUAD     =FACT(statut='f',fr="Passage linéaire -> quadratique",
-           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
-           PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
-         ),
-         QUAD_LINE     =FACT(statut='f',fr="Passage quadratique -> linéaire",
-           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           MAILLE          =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           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=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"  ),
-           b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
-             GROUP_MA        =SIMP(statut='f',typ=grma,
-                                   fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
-           ),
-         ),
-         ECLA_PG         =FACT(statut='f',
-                               fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
-           MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-           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='**'),
-           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é" ),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-                                 into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-#
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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 crea_resu_prod(TYPE_RESU,**args):
-  if TYPE_RESU == "EVOL_ELAS"    : return evol_elas
-  if TYPE_RESU == "EVOL_NOLI"    : return evol_noli
-  if TYPE_RESU == "EVOL_THER"    : return evol_ther
-  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="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',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='**',
-             CHAM_GD       =SIMP(statut='o',typ=(cham_gd_sdaster)),
-             MODELE        =SIMP(statut='f',typ=modele_sdaster),
-             CHAM_MATER    =SIMP(statut='f',typ=cham_mater),
-             CARA_ELEM     =SIMP(statut='f',typ=cara_elem),
-
-             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),
-                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") ),
-             ),
-             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") ),
-             ),
-           ),
-         ),
-
-         b_ecla_pg    =BLOC(condition = "OPERATION == 'ECLA_PG'",
-
-           TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_ELAS","EVOL_NOLI","EVOL_THER"), ),
-
-           ECLA_PG         =FACT(statut='o',
-             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                                   into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
-             MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster),
-             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='**'),
-             RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster),
-             MAILLAGE        =SIMP(statut='o',typ=maillage_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),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
-           ),
-         ),
-
-         b_perm_cham =BLOC(condition = "OPERATION == 'PERM_CHAM'",
-
-           TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_NOLI",) ),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","SIEF_ELGA","VARI_ELGA",),validators=NoRepeat(),max='**' ),
-           RESU_INIT       =SIMP(statut='o',typ=evol_noli),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
-           CRITERE         =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
-           MAILLAGE_INIT   =SIMP(statut='o',typ=maillage_sdaster,),
-           RESU_FINAL      =SIMP(statut='o',typ=evol_noli,),
-           MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
-           PERM_CHAM       =FACT(statut='o',max='**',
-              GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
-              GROUP_MA_INIT  =SIMP(statut='o',typ=grma),
-              TRAN           =SIMP(statut='o',typ='R',max='**'),
-              PRECISION      =SIMP(statut='f',typ='R',defaut=1.0E-3),
-           ),
-         ),
-
-         b_prol_rtz   =BLOC(condition = "OPERATION == 'PROL_RTZ'",
-
-           TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER",) ),
-
-           PROL_RTZ        =FACT(statut='o',
-              regles=(EXCLUS('INST','LIST_INST'),),
-              MAILLAGE_FINAL  =SIMP(statut='o',typ=maillage_sdaster,),
-              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)",
-                 PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
-                 CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-              ),
-              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",),),
-              REPERE          =SIMP(statut='o',typ='TXM',into=("CYLINDRIQUE",),),
-              ORIGINE         =SIMP(statut='o',typ='R',min=3,max=3),
-              AXE_Z           =SIMP(statut='o',typ='R',min=3,max=3),
-           ),
-         ),
-
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE 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"
-#           -----------------------------------------
-#
-# USAGE :
-# Entrée :
-#  - MAILLAGE
-#  - MODELE
-#  - CABLE
-#  - CHAM_MATER
-#  - CARA_ELEM
-#  - GROUP_MA_BETON
-#  - DEFI_CABLE
-#  - TENSION_INIT
-#  - RECUL_ANCRAGE
-#  - RELAXATION
-#  - CONE
-#      RAYON
-#      LONGUEUR
-#      PRESENT          OUI ou NON deux fois
-#  - TITRE
-#  - INFO               1 / 2
-#
-# ===========================================================================
-
-DEFI_CABLE_BP=MACRO(nom="DEFI_CABLE_BP",op=defi_cable_bp_ops,sd_prod=cabl_precont,
-                   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 ),
-         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),
-         ),
-         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 ),  
-         ),
-         CONE            =FACT(statut='f',
-           RAYON             =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
-           LONGUEUR          =SIMP(statut='o',typ='R',val_min=0.E+0 ),  
-           PRESENT           =SIMP(statut='o',typ='TXM',min=2,max=2,into=("OUI","NON") ),
-         ),
-         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.      
-# ======================================================================
-DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction_sdaster,
-                    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 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater_sdaster,reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-                    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) ),
-           ORIENTATION     =SIMP(statut='f',typ='R',defaut= 0.E+0,
-                                 val_min=-90.E+0,val_max=90.E+0   ),
-         ),
-         IMPRESSION      =FACT(statut='f',
-           UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
-                    reentrant='n',fr="Définit les caractéristiques nécessaires à l'étude dynamique d'une structure sous écoulement",
-            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) ),
-           PROF_RHO_F_INT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PROF_RHO_F_EXT  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
-           COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
-           TYPE_PAS        =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
-           TYPE_RESEAU     =SIMP(statut='f',typ='I' ),
-           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',),
-                   PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
-#  peut on créer un bloc a partir de la valeur de couplage  
-           COUPLAGE        =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
-           GRAPPE_2        =SIMP(statut='f',typ='TXM',
-                                 into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
-           NOEUD           =SIMP(statut='f',typ=no),
-           CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
-           MODELE          =SIMP(statut='f',typ=modele_sdaster ),
-           COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
-           RHO_FLUI        =SIMP(statut='f',typ='R' ),
-           UNITE_CA        =SIMP(statut='f',typ='I',defaut=70),
-           UNITE_KA        =SIMP(statut='f',typ='I',defaut=71),            
-         ),
-         FAISCEAU_AXIAL  =FACT(statut='f',max='**',
-           regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
-                   UN_PARMI('CARA_ELEM','RAYON_TUBE'),
-                   ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
-                   PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
-                   ENSEMBLE('CARA_PAROI','VALE_PAROI'),
-                   ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
-                            'COOR_GRILLE','TYPE_GRILLE', ),),
-#  on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire                            
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           TRI_GROUP_MA    =SIMP(statut='f',typ='TXM' ),
-           VECT_X          =SIMP(statut='f',typ='R',max=3),
-           PROF_RHO_FLUI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           PROF_VISC_CINE  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
-           RAYON_TUBE      =SIMP(statut='f',typ='R' ),
-           COOR_TUBE       =SIMP(statut='f',typ='R',max='**'),
-           PESANTEUR       =SIMP(statut='f',typ='R',min=4,max=4),
-           RUGO_TUBE       =SIMP(statut='f',typ='R' ),
-           CARA_PAROI      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=5,
-                                 into=("YC","ZC","R","HY","HZ") ),
-           VALE_PAROI      =SIMP(statut='f',typ='R',max=5),
-           ANGL_VRIL       =SIMP(statut='f',typ='R' ),
-           LONG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
-           LARG_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
-           EPAI_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
-           RUGO_TYPG       =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
-           COEF_TRAI_TYPG  =SIMP(statut='f',typ='R',max='**',val_min=0.E+0),
-           COEF_DPOR_TYPG  =SIMP(statut='f',typ='R',max='**'),
-           COOR_GRILLE     =SIMP(statut='f',typ='R',max='**'),
-           TYPE_GRILLE     =SIMP(statut='f',typ='I',max='**'),
-         ),
-         COQUE_COAX      =FACT(statut='f',
-           MASS_AJOU       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           GROUP_MA_INT    =SIMP(statut='o',typ=grma),
-           GROUP_MA_EXT    =SIMP(statut='o',typ=grma),
-           VECT_X          =SIMP(statut='o',typ='R',max='**'),
-           CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
-           MATER_INT       =SIMP(statut='o',typ=mater_sdaster ),
-           MATER_EXT       =SIMP(statut='o',typ=mater_sdaster ),
-           RHO_FLUI        =SIMP(statut='o',typ='R' ),
-           VISC_CINE       =SIMP(statut='o',typ='R' ),
-           RUGOSITE        =SIMP(statut='o',typ='R' ),
-           PDC_MOY_1       =SIMP(statut='o',typ='R' ),
-           PDC_DYN_1       =SIMP(statut='o',typ='R' ),
-           PDC_MOY_2       =SIMP(statut='o',typ='R' ),
-           PDC_DYN_2       =SIMP(statut='o',typ='R' ),
-         ),
-         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.      
-# ======================================================================
-DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction_sdaster,reentrant='n',
-            UIinfo={"groupes":("Outils métier",)},
-                    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.),
-         SIGNAL          =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
-         COUR            =FACT(statut='f',max='**',
-         fr="Définition du courant de court-circuit",
-           regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),
-                   UN_PARMI('PHI_CC_2','INTC_CC_2'),),
-           INTE_CC_1       =SIMP(statut='o',typ='R'),
-           TAU_CC_1        =SIMP(statut='o',typ='R'),
-           PHI_CC_1        =SIMP(statut='f',typ='R'),
-           INTC_CC_1       =SIMP(statut='f',typ='R'),
-           INTE_CC_2       =SIMP(statut='o',typ='R'),
-           TAU_CC_2        =SIMP(statut='o',typ='R'),
-           PHI_CC_2        =SIMP(statut='f',typ='R'),
-           INTC_CC_2       =SIMP(statut='f',typ='R'),
-           INST_CC_INIT    =SIMP(statut='o',typ='R'),
-           INST_CC_FIN     =SIMP(statut='o',typ='R'),
-         ),
-         COUR_PRIN       =FACT(statut='f',
-         fr="Définition du courant de court-circuit avec réenclenchement",
-           regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),),
-           INTE_CC_1       =SIMP(statut='o',typ='R'),
-           TAU_CC_1        =SIMP(statut='o',typ='R'),
-           PHI_CC_1        =SIMP(statut='f',typ='R'),
-           INTC_CC_1       =SIMP(statut='f',typ='R'),
-           INTE_RENC_1     =SIMP(statut='f',typ='R'),
-           TAU_RENC_1      =SIMP(statut='f',typ='R'),
-           PHI_RENC_1      =SIMP(statut='f',typ='R'),
-           INST_CC_INIT    =SIMP(statut='o',typ='R'),
-           INST_CC_FIN     =SIMP(statut='o',typ='R'),
-           INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 0.0E+0),
-           INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 0.0E+0),
-         ),
-         COUR_SECO       =FACT(statut='f',max='**',
-         fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN",
-           regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),),
-           INTE_CC_2       =SIMP(statut='o',typ='R'),
-           TAU_CC_2        =SIMP(statut='o',typ='R'),
-           PHI_CC_2        =SIMP(statut='f',typ='R'),
-           INTC_CC_2       =SIMP(statut='f',typ='R'),
-           INTE_RENC_2     =SIMP(statut='f',typ='R'),
-           TAU_RENC_2      =SIMP(statut='f',typ='R'),
-           PHI_RENC_2      =SIMP(statut='f',typ='R'),
-           DIST            =SIMP(statut='f',typ='R',defaut=1.0E+0),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-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),
-         NOEUD_FIN       =SIMP(statut='o',typ=no),
-         VITE            =FACT(statut='o',
-           VALE            =SIMP(statut='f',typ='R',defaut= 1. ),
-           PROFIL          =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ),
-           NB_BAV          =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ),
-         ),
-         INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",
-                               into=("NON","LIN","LOG") ),
-         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") ),
-         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.      
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args):
-  if VALE       != None  : return fonction_sdaster
-  if VALE_C     != None  : return fonction_c
-  if VALE_PARA  != None  : return fonction_sdaster
-  if NOEUD_PARA != None  : return fonction_sdaster
-  raise AsException("type de concept resultat non prevu")
-
-DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
-                    ,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'),),
-         NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
-         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
-         VALE            =SIMP(statut='f',typ='R',min=2,max='**',
-                               fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"),
-         VALE_C          =SIMP(statut='f',typ='R',min=2,max='**',
-                               fr ="Fonction complexe définie par une liste de couples"),
-         VALE_PARA       =SIMP(statut='f',typ=listr8_sdaster,
-                               fr ="Fonction réelle définie par deux concepts de type listr8" ),
-         b_vale_para     =BLOC(condition = "VALE_PARA != None",
-           VALE_FONC       =SIMP(statut='o',typ=listr8_sdaster ),
-         ),
-         NOEUD_PARA      =SIMP(statut='f',typ=no,max='**',
-                               fr ="Fonction réelle définie par une liste de noeuds et un maillage"),
-         b_noeud_para    =BLOC(condition = "NOEUD_PARA != None",
-           MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
-           VALE_Y          =SIMP(statut='o',typ='R',max='**'),
-         ),
-
-         INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
-         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") ),
-         VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
-         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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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_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','FOND_INF'),
-                 EXCLUS('FOND_FERME','DTAN_ORIG'),
-                 EXCLUS('FOND_FERME','DTAN_EXTR'),
-                      EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
-                      EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
-                 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') ,),
-           MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
-           FOND_FISS       =FACT(statut='f',
-             regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
-                     EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
-                          EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
-             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='**'),
-#  à mettre à jour le max vaut-il 1  
-             NOEUD_ORIG      =SIMP(statut='f',typ=no,),
-             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
-             NOEUD_EXTR      =SIMP(statut='f',typ=no,),
-             GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
-           ),
-           FOND_FERME      =FACT(statut='f',
-             regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
-                          EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
-             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_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='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           ),
-           LEVRE_INF       =FACT(statut='f',
-             regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             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 04/07/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
-def defi_group_prod(MAILLAGE,**args):
-  if AsType(MAILLAGE) == maillage_sdaster : return maillage_sdaster
-  if AsType(MAILLAGE) == squelette : return squelette
-  raise AsException("type de concept resultat non prevu")
-
-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','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'),),
-#  quel est le concept attendu deriere NOM
-           NOM             =SIMP(statut='o',typ=grma),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           INTERSEC        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           UNION           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           DIFFE           =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           OPTION          =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE","APPUI_LACHE") ),
-           b_group_ma      =BLOC(condition = "GROUP_MA != None",
-             regles=(EXCLUS('POSITION','NUME_INIT'),),
-             NUME_INIT       =SIMP(statut='f',typ='I'),
-             POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
-             b_nume_init   =BLOC(condition = "NUME_INIT != None",
-               NUME_FIN        =SIMP(statut='f',typ='I' ),
-             ),
-           ),
-           b_face_normale  =BLOC(condition = "OPTION == 'FACE_NORMALE'",
-             regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
-             ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
-             VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
-             ANGL_PREC       =SIMP(statut='f',typ='R',defaut= 0.5 ),
-             VERI_SIGNE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           b_sphere        =BLOC(condition = "OPTION == 'SPHERE'",
-             regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
-             POINT           =SIMP(statut='f',typ='R',max=3),
-             NOEUD_CENTRE    =SIMP(statut='f',typ=no),
-             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
-             RAYON           =SIMP(statut='o',typ='R' ),
-           ),
-           b_cylindre      =BLOC(condition = "OPTION == 'CYLINDRE'",
-             regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
-                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
-             POINT           =SIMP(statut='f',typ='R',max=3),
-             NOEUD_CENTRE    =SIMP(statut='f',typ=no),
-             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
-             RAYON           =SIMP(statut='o',typ='R' ),
-             ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
-             VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
-           ),
-           b_bande         =BLOC(condition = "OPTION == 'BANDE'",
-             regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
-                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
-             POINT           =SIMP(statut='f',typ='R' ,max=3),
-             NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
-             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
-             DIST            =SIMP(statut='o',typ='R' ),
-             ANGL_NAUT       =SIMP(statut='f',typ='R',max=2),
-             VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
-           ),
-           b_app_lache         =BLOC(condition = "OPTION == 'APPUI_LACHE'",
-             regles=(UN_PARMI('NOEUD','GROUP_NO'),),
-             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           ),
-         ),
-         CREA_GROUP_NO   =FACT(statut='f',max='**',
-           OPTION          =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
-                                               "SEGM_DROI_ORDO","NOEUD_ORDO","TUNNEL") ),
-
-           b_option =BLOC(condition = "OPTION == None" ,
-                          regles=(UN_PARMI('TOUT_GROUP_MA','GROUP_MA','GROUP_NO','NOEUD',
-                                                           'INTERSEC','UNION','DIFFE'),),
-              TOUT_GROUP_MA   =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='**'),
-              NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-              INTERSEC        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-              UNION           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-              DIFFE           =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-
-              b_nom_group_ma  =BLOC(condition = "GROUP_MA != None",
-                NOM           = SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-                CRIT_NOEUD    = SIMP(statut='f',typ='TXM',defaut="TOUS",
-                                  into=("TOUS","SOMMET","MILIEU","CENTRE"),),
-              ),
-              b_group_no      =BLOC(condition = "GROUP_NO != None",
-                                    regles=(EXCLUS('POSITION','NUME_INIT'),),
-                NUME_INIT       =SIMP(statut='f',typ='I'),
-                POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ),
-                b_nume_init     =BLOC(condition = "NUME_INIT != None",
-                  NUME_FIN        =SIMP(statut='f',typ='I' ),
-                ),
-              ),
-              b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" ,
-                NOM             =SIMP(statut='o',typ=geom),
-              ),
-           ),
-
-           b_env_sphere    =BLOC(condition = "OPTION == 'ENV_SPHERE'",
-             regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
-             NOM             =SIMP(statut='o',typ=geom),
-             POINT           =SIMP(statut='f',typ='R' ,max=3),
-             NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
-             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
-             RAYON           =SIMP(statut='o',typ='R' ),
-             PRECISION       =SIMP(statut='o',typ='R' ),
-           ),
-           b_env_cylindre  =BLOC(condition = "OPTION == 'ENV_CYLINDRE'",
-             regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
-                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
-             NOM             =SIMP(statut='o',typ=geom),
-             POINT           =SIMP(statut='f',typ='R' ,max=3),
-             NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
-             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
-             RAYON           =SIMP(statut='o',typ='R' ),
-             ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-             VECT_NORMALE    =SIMP(statut='f',typ='R',max=3),
-             PRECISION       =SIMP(statut='o',typ='R' ),
-           ),
-           b_env_plan      =BLOC(condition = "OPTION == 'PLAN'",
-             regles=(UN_PARMI('POINT','NOEUD_CENTRE','GROUP_NO_CENTRE'),
-                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
-             NOM             =SIMP(statut='o',typ=geom),
-             POINT           =SIMP(statut='f',typ='R' ,max=3),
-             NOEUD_CENTRE    =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
-             GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,validators=NoRepeat(),max=1),
-             ANGL_NAUT       =SIMP(statut='f',typ='R' ,max=3),
-             VECT_NORMALE    =SIMP(statut='f',typ='R' ,max=3),
-             PRECISION       =SIMP(statut='o',typ='R' ),
-           ),
-           b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'",
-             regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),
-                     UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
-                     UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
-             NOM             =SIMP(statut='o',typ=geom),
-             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-             NOEUD_ORIG      =SIMP(statut='f',typ=no),
-             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
-             NOEUD_EXTR      =SIMP(statut='f',typ=no),
-             GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
-             PRECISION       =SIMP(statut='o',typ='R' ),
-             CRITERE         =SIMP(statut='o',typ='TXM',into=("ABSOLU","RELATIF") ),
-           ),
-           b_noeud_ordo    =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
-             regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
-                     EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
-             NOM             =SIMP(statut='o',typ=geom),
-             GROUP_MA        =SIMP(statut='o',typ=grma,validators=NoRepeat(),max='**'),
-             NOEUD_ORIG      =SIMP(statut='f',typ=no),
-             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
-             NOEUD_EXTR      =SIMP(statut='f',typ=no),
-             GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
-           ),
-           b_tunnel    =BLOC(condition = "OPTION == 'TUNNEL'",
-             regles=(AU_MOINS_UN ('TOUT','GROUP_MA','MAILLE'),
-                     EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
-                     AU_MOINS_UN ('GROUP_MA_AXE','MAILLE_AXE'),),
-             NOM             =SIMP(statut='o',typ=geom),
-             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_MA_AXE    =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             MAILLE_AXE      =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             NOEUD_ORIG      =SIMP(statut='f',typ=no),
-             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
-             RAYON           =SIMP(statut='o',typ='R'),
-             LONGUEUR        =SIMP(statut='f',typ='R'),
-           ),
-         ),
-         ALARME          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         INFO            =SIMP(statut='f',typ='I',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.      
-# ======================================================================
-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 ),
-
-         PAR_FONCTION    =FACT(statut='f',max='**',
-           NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
-           NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
-           FONCTION        =SIMP(statut='o',typ=fonction_c ),
-         ),
-         KANAI_TAJIMI    =FACT(statut='f',max='**',
-           regles=(EXCLUS('VALE_R','VALE_C'),),
-           NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
-           NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
-           FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
-           PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
-           AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.6 ),
-           FREQ_MOY        =SIMP(statut='f',typ='R',defaut= 5. ),
-           VALE_R          =SIMP(statut='f',typ='R' ),
-           VALE_C          =SIMP(statut='f',typ='C' ),
-           INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
-           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") ),
-         ),
-         CONSTANT        =FACT(statut='f',max='**',
-           regles=(EXCLUS('VALE_R','VALE_C'),),
-           NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
-           NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
-           FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
-           PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
-           VALE_R          =SIMP(statut='f',typ='R' ),
-           VALE_C          =SIMP(statut='f',typ='C' ),
-           INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
-           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") ),
-         ),
-         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.      
-# ======================================================================
-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'),
-#  erreur doc U sur la condition qui suit
-                   UN_PARMI('NOEUD','GROUP_NO'),),
-           NOM             =SIMP(statut='f',typ='TXM' ),
-           TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
-           NOEUD           =SIMP(statut='f',typ=no,max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
-           DDL_ACTIF       =SIMP(statut='f',typ='TXM',max='**'),
-           MASQUE          =SIMP(statut='f',typ='TXM',max='**'),
-         ),
-         FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis_sdaster,
-                    fr="Définir une liste d'entier strictement croissante",
-                    reentrant='n',
-            UIinfo={"groupes":("Fonction",)},
-         regles=(UN_PARMI('VALE','DEBUT'),
-                 EXCLUS('VALE','INTERVALLE'),),
-         VALE            =SIMP(statut='f',typ='I',max='**'),
-         DEBUT           =SIMP(statut='f',typ='I'),
-         INTERVALLE      =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOMBRE','PAS'),),
-           JUSQU_A         =SIMP(statut='o',typ='I'),
-           NOMBRE          =SIMP(statut='f',typ='I',val_min=1,),
-           PAS             =SIMP(statut='f',typ='I',val_min=1,),
-         ),
-         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.      
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8_sdaster,
-                    fr="Définir une liste de réels strictement croissante",
-                    reentrant='n',
-            UIinfo={"groupes":("Fonction",)},
-         regles=(UN_PARMI('VALE','DEBUT',),
-                 EXCLUS('VALE','INTERVALLE'),
-                 ENSEMBLE('DEBUT','INTERVALLE')),
-         VALE            =SIMP(statut='f',typ='R',max='**'),
-         DEBUT           =SIMP(statut='f',typ='R'),
-         INTERVALLE      =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOMBRE','PAS'),),
-           JUSQU_A         =SIMP(statut='o',typ='R'),
-           NOMBRE          =SIMP(statut='f',typ='I'),
-           PAS             =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 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
-DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage_sdaster,
-                   fr="Définition d'un nouveau maillage à partir de macro-éléments",
-                   reentrant='n',
-            UIinfo={"groupes":("Maillage",)},
-         DEFI_MAILLE     =FACT(statut='o',max='**',
-           MACR_ELEM_STAT  =SIMP(statut='o',typ=macr_elem_stat,max='**' ),
-           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
-           TRAN            =SIMP(statut='f',typ='R',max=3),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-           b_angl_naut     =BLOC(condition = "ANGL_NAUT != None",
-             CENTRE          =SIMP(statut='f',typ='R',max=3),
-           ),
-         ),
-         RECO_GLOBAL     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-         ),
-         RECO_MAILLE     =FACT(statut='f',max='**',
-           MAILLE          =SIMP(statut='o',typ=ma,max='**'),
-           GROUP_NO        =SIMP(statut='o',typ=grno,max='**'),
-           OPTION          =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
-           geometrique     =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           ),
-         ),
-         DEFI_NOEUD      =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
-                                 fr="Renommage de tous les noeuds" ),
-           NOEUD_INIT      =SIMP(statut='f',typ=no,
-                                 fr="Renommage d un seul noeud"),                     
-           b_tout          =BLOC(condition = "TOUT != None",
-             PREFIXE         =SIMP(statut='f',typ='TXM' ),
-             INDEX           =SIMP(statut='o',typ='I',max='**'),
-           ),
-           b_noeud_init    =BLOC(condition = "NOEUD_INIT != None",
-             MAILLE          =SIMP(statut='o',typ=ma),
-             NOEUD_FIN       =SIMP(statut='o',typ=no),
-           ),        
-         ),
-         DEFI_GROUP_NO   =FACT(statut='f',max='**',
-           regles=(UN_PARMI('TOUT','MAILLE'),
-                AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
-                   ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
-#  la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U           
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
-                                 fr="Création de plusieurs groupes de noeuds" ),
-           MAILLE          =SIMP(statut='f',typ=ma,
-                                 fr="Création de plusieurs groupes de noeuds"),
-           GROUP_NO_INIT   =SIMP(statut='f',typ=grno,
-                                 fr="Création d un seul groupe de noeuds"),
-           PREFIXE         =SIMP(statut='f',typ='TXM' ),
-           INDEX           =SIMP(statut='f',typ='I',max='**'),
-           GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
-         ),
-)  ;
-#& 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.
-# ======================================================================
-DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater_sdaster,
-                   fr="Définition des paramètres décrivant le comportement d un matériau",
-                   reentrant='n',
-            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',
-                      'ELAS_HYPER',),
-               EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
-               EXCLUS('ECRO_LINE','ECRO_LINE_FO'),
-               EXCLUS('TAHERI','TAHERI_FO'),
-               EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
-               PRESENT_PRESENT('ROUSSELIER','TRACTION'),
-               PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
-               EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
-               EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
-               EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
-               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('LMARC','LMARC_FO'),
-               EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
-               EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
-               PRESENT_PRESENT('BPEL_ACIER','ELAS'),
-               EXCLUS('RCCM','RCCM_FO'),
-               EXCLUS('WEIBULL','WEIBULL_FO'),
-               PRESENT_PRESENT('BARCELONE','CAM_CLAY','ELAS'),
-               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
-#
-           ELAS            =FACT(statut='f',
-             E               =SIMP(statut='o',typ='R',val_min=0.E+0),
-             NU              =SIMP(statut='o',typ='R',val_min=-1.E+0,val_max=0.5E+0),
-             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'),
-             AMOR_HYST       =SIMP(statut='f',typ='R'),
-           ),
-           ELAS_FO         =FACT(statut='f',
-             regles=(PRESENT_PRESENT('ALPHA','TEMP_DEF_ALPHA'),),
-             E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RHO             =SIMP(statut='f',typ='R'),
-             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
-             ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             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)),
-             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","NEUT1","NEUT2",) ),
-           ),
-           ELAS_FLUI       =FACT(statut='f',
-             E               =SIMP(statut='o',typ='R'),
-             NU              =SIMP(statut='o',typ='R'),
-             RHO             =SIMP(statut='o',typ='R'),
-             PROF_RHO_F_INT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PROF_RHO_F_EXT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COEF_MASS_AJOU  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("ABSC",) ),
-           ),
-           ELAS_ISTR       =FACT(statut='f',
-             E_L             =SIMP(statut='o',typ='R'),
-             E_N             =SIMP(statut='o',typ='R'),
-             NU_LT           =SIMP(statut='o',typ='R'),
-             NU_LN           =SIMP(statut='o',typ='R'),
-             G_LN            =SIMP(statut='o',typ='R'),
-             RHO             =SIMP(statut='f',typ='R'),
-             ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           ELAS_ISTR_FO    =FACT(statut='f',
-             regles=(
-                      PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
-                      PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
-                    ),
-             E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RHO             =SIMP(statut='f',typ='R'),
-             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
-             ALPHA_L         =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")),
-           ),
-           ELAS_ORTH       =FACT(statut='f',
-             E_L             =SIMP(statut='o',typ='R'),
-             E_T             =SIMP(statut='o',typ='R'),
-             E_N             =SIMP(statut='f',typ='R'),
-             NU_LT           =SIMP(statut='o',typ='R'),
-             NU_LN           =SIMP(statut='f',typ='R'),
-             NU_TN           =SIMP(statut='f',typ='R'),
-             G_LT            =SIMP(statut='o',typ='R'),
-             G_LN            =SIMP(statut='f',typ='R'),
-             G_TN            =SIMP(statut='f',typ='R'),
-             RHO             =SIMP(statut='f',typ='R'),
-             ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             ALPHA_T         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             XT              =SIMP(statut='f',typ='R',defaut= 1. ),
-             XC              =SIMP(statut='f',typ='R',defaut= 1. ),
-             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=(
-                      PRESENT_PRESENT('ALPHA_L','TEMP_DEF_ALPHA'),
-                      PRESENT_PRESENT('ALPHA_N','TEMP_DEF_ALPHA'),
-                      PRESENT_PRESENT('ALPHA_T','TEMP_DEF_ALPHA'),
-                    ),
-             E_L             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             E_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             E_N             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             NU_LT           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             NU_LN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             NU_TN           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_LT            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_LN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_TN            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RHO             =SIMP(statut='f',typ='R'),
-             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1. ),
-             ALPHA_L         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             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_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',),
-                     PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
-                                     'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
-                     PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
-                                     'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
-                                     'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
-                                     'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
-                                     'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
-                                     'C_LZTZ','C_TZTZ'),),
-             MEMB_L          =SIMP(statut='f',typ='R'),
-             MEMB_LT         =SIMP(statut='f',typ='R'),
-             MEMB_T          =SIMP(statut='f',typ='R'),
-             MEMB_G_LT       =SIMP(statut='f',typ='R'),
-             FLEX_L          =SIMP(statut='f',typ='R'),
-             FLEX_LT         =SIMP(statut='f',typ='R'),
-             FLEX_T          =SIMP(statut='f',typ='R'),
-             FLEX_G_LT       =SIMP(statut='f',typ='R'),
-             CISA_L          =SIMP(statut='f',typ='R'),
-             CISA_T          =SIMP(statut='f',typ='R'),
-             M_LLLL          =SIMP(statut='f',typ='R'),
-             M_LLTT          =SIMP(statut='f',typ='R'),
-             M_LLLT          =SIMP(statut='f',typ='R'),
-             M_TTTT          =SIMP(statut='f',typ='R'),
-             M_TTLT          =SIMP(statut='f',typ='R'),
-             M_LTLT          =SIMP(statut='f',typ='R'),
-             F_LLLL          =SIMP(statut='f',typ='R'),
-             F_LLTT          =SIMP(statut='f',typ='R'),
-             F_LLLT          =SIMP(statut='f',typ='R'),
-             F_TTTT          =SIMP(statut='f',typ='R'),
-             F_TTLT          =SIMP(statut='f',typ='R'),
-             F_LTLT          =SIMP(statut='f',typ='R'),
-             MF_LLLL         =SIMP(statut='f',typ='R'),
-             MF_LLTT         =SIMP(statut='f',typ='R'),
-             MF_LLLT         =SIMP(statut='f',typ='R'),
-             MF_TTTT         =SIMP(statut='f',typ='R'),
-             MF_TTLT         =SIMP(statut='f',typ='R'),
-             MF_LTLT         =SIMP(statut='f',typ='R'),
-             MC_LLLZ         =SIMP(statut='f',typ='R'),
-             MC_LLTZ         =SIMP(statut='f',typ='R'),
-             MC_TTLZ         =SIMP(statut='f',typ='R'),
-             MC_TTTZ         =SIMP(statut='f',typ='R'),
-             MC_LTLZ         =SIMP(statut='f',typ='R'),
-             MC_LTTZ         =SIMP(statut='f',typ='R'),
-             FC_LLLZ         =SIMP(statut='f',typ='R'),
-             FC_LLTZ         =SIMP(statut='f',typ='R'),
-             FC_TTLZ         =SIMP(statut='f',typ='R'),
-             FC_TTTZ         =SIMP(statut='f',typ='R'),
-             FC_LTLZ         =SIMP(statut='f',typ='R'),
-             FC_LTTZ         =SIMP(statut='f',typ='R'),
-             C_LZLZ          =SIMP(statut='f',typ='R'),
-             C_LZTZ          =SIMP(statut='f',typ='R'),
-             C_TZTZ          =SIMP(statut='f',typ='R'),
-             RHO             =SIMP(statut='f',typ='R'),
-             ALPHA           =SIMP(statut='f',typ='R'),
-           ),
-           ELAS_COQUE_FO   =FACT(statut='f',
-             regles=(EXCLUS('MEMB_L','M_LLLL',),
-                     PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
-                                     'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
-                     PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
-                                     'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
-                                     'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
-                                     'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
-                                     'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
-             MEMB_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEMB_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEMB_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEMB_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FLEX_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FLEX_LT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FLEX_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FLEX_G_LT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CISA_L          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CISA_T          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_LLLL          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_LLTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_LLLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_TTTT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_TTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_LTLT          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MF_LLLL         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MF_LLTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MF_LLLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MF_TTTT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MF_TTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MF_LTLT         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FC_LLLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FC_LLTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FC_TTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FC_TTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FC_LTLZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FC_LTTZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_LZLZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_LZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_TZTZ          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RHO             =SIMP(statut='f',typ='R'),
-             ALPHA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST") ),
-           ),
-           APPUI_ELAS      =FACT(statut='f',
-             E_N             =SIMP(statut='o',typ='R'),
-             E_TAN           =SIMP(statut='f',typ='R',defaut= 0.E+0),
-           ),
-           CABLE           =FACT(statut='f',
-             EC_SUR_E        =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
-           ),
-#
-# comportement mécanique non linéaire
-#
-           TRACTION        =FACT(statut='f',
-             SIGM            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP","HYDR","SECH",) ),
-           ),
-           ECRO_LINE       =FACT(statut='f',
-             D_SIGM_EPSI     =SIMP(statut='o',typ='R',),
-             SY              =SIMP(statut='o',typ='R',),
-           ),
-           ECRO_LINE_FO    =FACT(statut='f',
-             D_SIGM_EPSI     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SY              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           BETON_ECRO_LINE =FACT(statut='f',
-             D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
-             SYT             =SIMP(statut='o',typ='R'),
-             SYC             =SIMP(statut='f',typ='R'),
-           ),
-           BETON_REGLE_PR =FACT(statut='f',
-             D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
-             SYT             =SIMP(statut='o',typ='R'),
-             SYC             =SIMP(statut='f',typ='R'),
-             EPSC            =SIMP(statut='f',typ='R'),
-             N               =SIMP(statut='f',typ='R'),
-           ),
-           ENDO_ORTH_BETON  =FACT(statut='f',
-             ALPHA            =SIMP(statut='f',typ='R',defaut=0.9),
-             K0               =SIMP(statut='o',typ='R'),
-             K1               =SIMP(statut='o',typ='R'),
-             K2               =SIMP(statut='f',typ='R',defaut=7.E-4),
-             ECROB            =SIMP(statut='o',typ='R'),
-             ECROD            =SIMP(statut='o',typ='R'),
-           ),
-           PRAGER          =FACT(statut='f',
-             C               =SIMP(statut='o',typ='R'),
-           ),
-           PRAGER_FO       =FACT(statut='f',
-             C               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           ECRO_FLEJOU     =FACT(statut='f',
-             EP              =SIMP(statut='o',typ='R'),
-             SY              =SIMP(statut='o',typ='R'),
-             SU              =SIMP(statut='o',typ='R'),
-             PUISS           =SIMP(statut='o',typ='R'),
-           ),
-           TAHERI          =FACT(statut='f',
-             R_0             =SIMP(statut='o',typ='R'),
-             ALPHA           =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='o',typ='R'),
-             A               =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             C1              =SIMP(statut='o',typ='R'),
-             C_INF           =SIMP(statut='o',typ='R'),
-             S               =SIMP(statut='o',typ='R'),
-           ),
-           TAHERI_FO       =FACT(statut='f',
-             R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_INF           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             S               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           ROUSSELIER      =FACT(statut='f',
-             D               =SIMP(statut='o',typ='R'),
-             SIGM_1          =SIMP(statut='o',typ='R'),
-             PORO_INIT       =SIMP(statut='o',typ='R'),
-             PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
-             PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
-             PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
-             D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
-             AN              =SIMP(statut='f',typ='R',defaut= 0. ),
-           ),
-           ROUSSELIER_FO   =FACT(statut='f',
-             D               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SIGM_1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PORO_INIT       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
-             PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
-             PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 0.999 ),
-             D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
-             AN              =SIMP(statut='f',typ='R',defaut= 0. ),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           VISC_SINH      =FACT(statut='f',
-             SIGM_0          =SIMP(statut='o',typ='R'),
-             EPSI_0          =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='o',typ='R'),
-           ),
-           CIN1_CHAB  =FACT(statut='f',
-             R_0             =SIMP(statut='o',typ='R'),
-             R_I             =SIMP(statut='f',typ='R'),
-             B               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
-             C_I             =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-             W               =SIMP(statut='f',typ='R',defaut= 0.0E+0),
-             G_0             =SIMP(statut='o',typ='R'),
-             A_I             =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           ),
-           CIN1_CHAB_FO  =FACT(statut='f',
-             R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)),
-           ),
-           CIN2_CHAB  =FACT(statut='f',
-             R_0             =SIMP(statut='o',typ='R'),
-             R_I             =SIMP(statut='f',typ='R'),
-             B               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             C1_I            =SIMP(statut='o',typ='R'),
-             C2_I            =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='f',typ='R',defaut= 1.),
-             W               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             G1_0            =SIMP(statut='o',typ='R'),
-             G2_0            =SIMP(statut='o',typ='R'),
-             A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
-           ),
-           CIN2_CHAB_FO  =FACT(statut='f',
-             R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C1_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C2_I            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             W               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           VISCOCHAB       =FACT(statut='f',
-             K_0             =SIMP(statut='o',typ='R'),
-             A_K             =SIMP(statut='o',typ='R'),
-             A_R             =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='o',typ='R'),
-             N               =SIMP(statut='o',typ='R'),
-             ALP             =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             M_R             =SIMP(statut='o',typ='R'),
-             G_R             =SIMP(statut='o',typ='R'),
-             MU              =SIMP(statut='o',typ='R'),
-             Q_M             =SIMP(statut='o',typ='R'),
-             Q_0             =SIMP(statut='o',typ='R'),
-             QR_0            =SIMP(statut='o',typ='R'),
-             ETA             =SIMP(statut='o',typ='R'),
-             C1              =SIMP(statut='o',typ='R'),
-             M_1             =SIMP(statut='o',typ='R'),
-             D1              =SIMP(statut='o',typ='R'),
-             G_X1            =SIMP(statut='o',typ='R'),
-             G1_0            =SIMP(statut='o',typ='R'),
-             C2              =SIMP(statut='o',typ='R'),
-             M_2             =SIMP(statut='o',typ='R'),
-             D2              =SIMP(statut='o',typ='R'),
-             G_X2            =SIMP(statut='o',typ='R'),
-             G2_0            =SIMP(statut='o',typ='R'),
-             A_I             =SIMP(statut='o',typ='R'),
-           ),
-           VISCOCHAB_FO    =FACT(statut='f',
-             K_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_K             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ALP             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_R             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q_M             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             QR_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ETA             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_1             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_X1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G1_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_2             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G_X2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             G2_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           POLY_CFC        =FACT(statut='f',
-             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'),
-             K               =SIMP(statut='o',typ='R'),
-             TAU_0           =SIMP(statut='o',typ='R'),
-             Q1              =SIMP(statut='o',typ='R'),
-             B1              =SIMP(statut='o',typ='R'),
-             HL              =SIMP(statut='o',typ='R'),
-             Q2              =SIMP(statut='o',typ='R'),
-             B2              =SIMP(statut='o',typ='R'),
-             C1              =SIMP(statut='o',typ='R'),
-             D1              =SIMP(statut='o',typ='R'),
-             C2              =SIMP(statut='o',typ='R'),
-           ),
-           POLY_CFC_FO     =FACT(statut='f',
-             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)),
-             K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             TAU_0           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             HL              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             D1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           LEMAITRE        =FACT(statut='f',
-             N               =SIMP(statut='o',typ='R'),
-             UN_SUR_K        =SIMP(statut='o',typ='R'),
-             UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           LEMAITRE_IRRA    =FACT(statut='f',
-             N               =SIMP(statut='o',typ='R'),
-             UN_SUR_K        =SIMP(statut='o',typ='R'),
-             UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             QSR_K           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             PHI_ZERO        =SIMP(statut='f',typ='R',defaut= 1.E+20),
-             L               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           LMARC_IRRA       =FACT(statut='f',
-             DE_0            =SIMP(statut='o',typ='R'),
-             R_0             =SIMP(statut='o',typ='R'),
-             N               =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='o',typ='R'),
-             Y_I             =SIMP(statut='o',typ='R'),
-             Y_0             =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             A_0             =SIMP(statut='o',typ='R'),
-             RM              =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='o',typ='R'),
-             P               =SIMP(statut='o',typ='R'),
-             P1              =SIMP(statut='o',typ='R'),
-             P2              =SIMP(statut='o',typ='R'),
-             M11             =SIMP(statut='o',typ='R'),
-             M22             =SIMP(statut='o',typ='R'),
-             M33             =SIMP(statut='o',typ='R'),
-             M66             =SIMP(statut='o',typ='R'),
-             N11             =SIMP(statut='o',typ='R'),
-             N22             =SIMP(statut='o',typ='R'),
-             N33             =SIMP(statut='o',typ='R'),
-             N66             =SIMP(statut='o',typ='R'),
-             Q11             =SIMP(statut='o',typ='R'),
-             Q22             =SIMP(statut='o',typ='R'),
-             Q33             =SIMP(statut='o',typ='R'),
-             Q66             =SIMP(statut='o',typ='R'),
-             R11             =SIMP(statut='o',typ='R'),
-             R22             =SIMP(statut='o',typ='R'),
-             R33             =SIMP(statut='o',typ='R'),
-             R66             =SIMP(statut='o',typ='R'),
-             GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           ZIRC_CYRA2      =FACT(statut='f',
-             EPSI_FAB        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             TEMP_RECUIT     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             FLUX_PHI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
-           ),
-          VISC_IRRA_LOG    =FACT(statut='f',
-             A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
-             B               =SIMP(statut='f',typ='R',defaut= 0.01159),
-             CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
-             ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
-             FLUX_PHI        =SIMP(statut='o',typ='R',),
-           ),
-          GRAN_IRRA_LOG    =FACT(statut='f',
-             A               =SIMP(statut='f',typ='R',defaut= 1.28E-1),
-             B               =SIMP(statut='f',typ='R',defaut= 0.01159),
-             CSTE_TPS        =SIMP(statut='f',typ='R',defaut= 0.3540),
-             ENER_ACT        =SIMP(statut='f',typ='R',defaut= 5000.),
-             FLUX_PHI        =SIMP(statut='o',typ='R',),
-             GRAN_A          =SIMP(statut='f',typ='R',defaut= 0.E+0),
-             GRAN_B          =SIMP(statut='f',typ='R',defaut= 0.E+0),
-             GRAN_S          =SIMP(statut='f',typ='R',defaut= 0.E+0),
-           ),
-          LEMA_SEUIL   =FACT(statut='f',
-             A               =SIMP(statut='o',typ='R',),
-             S               =SIMP(statut='o',typ='R',),
-           ),
-          LEMA_SEUIL_FO=FACT(statut='f',
-             A               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             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'),
-             THETA_MAX       =SIMP(statut='o',typ='R'),
-           ),
-           LEMAITRE_FO     =FACT(statut='f',
-             N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             UN_SUR_K        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             UN_SUR_M        =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'),
-             N               =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='o',typ='R'),
-             Y_I             =SIMP(statut='o',typ='R'),
-             Y_0             =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             A_0             =SIMP(statut='o',typ='R'),
-             RM              =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='o',typ='R'),
-             P               =SIMP(statut='o',typ='R'),
-             P1              =SIMP(statut='o',typ='R'),
-             P2              =SIMP(statut='o',typ='R'),
-             M11             =SIMP(statut='o',typ='R'),
-             M22             =SIMP(statut='o',typ='R'),
-             M33             =SIMP(statut='o',typ='R'),
-             M66             =SIMP(statut='o',typ='R'),
-             N11             =SIMP(statut='o',typ='R'),
-             N22             =SIMP(statut='o',typ='R'),
-             N33             =SIMP(statut='o',typ='R'),
-             N66             =SIMP(statut='o',typ='R'),
-             Q11             =SIMP(statut='o',typ='R'),
-             Q22             =SIMP(statut='o',typ='R'),
-             Q33             =SIMP(statut='o',typ='R'),
-             Q66             =SIMP(statut='o',typ='R'),
-             R11             =SIMP(statut='o',typ='R'),
-             R22             =SIMP(statut='o',typ='R'),
-             R33             =SIMP(statut='o',typ='R'),
-             R66             =SIMP(statut='o',typ='R'),
-           ),
-           LMARC_FO        =FACT(statut='f',
-             DE_0            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             K               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Y_I             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Y_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             B               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_0             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RM              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             P               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             P1              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             P2              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             Q66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R11             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R22             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R33             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R66             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           VMIS_POUTRE     =FACT(statut='f',
-             NP              =SIMP(statut='o',typ='R'),
-             MEY             =SIMP(statut='o',typ='R'),
-             MPY             =SIMP(statut='o',typ='R'),
-             CAY             =SIMP(statut='o',typ='R'),
-             CBY             =SIMP(statut='o',typ='R'),
-             MEZ             =SIMP(statut='o',typ='R'),
-             MPZ             =SIMP(statut='o',typ='R'),
-             CAZ             =SIMP(statut='o',typ='R'),
-             CBZ             =SIMP(statut='o',typ='R'),
-             MPX             =SIMP(statut='o',typ='R'),
-           ),
-           VMIS_POUTRE_FO  =FACT(statut='f',
-             NP              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MPY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CAY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CBY             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MPZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CAZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CBZ             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MPX             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           ARME            =FACT(statut='f',
-             KYE             =SIMP(statut='o',typ='R'),
-             DLE             =SIMP(statut='o',typ='R'),
-             KYP             =SIMP(statut='o',typ='R'),
-             DLP             =SIMP(statut='o',typ='R'),
-             KYG             =SIMP(statut='o',typ='R'),
-           ),
-           ASSE_CORN       =FACT(statut='f',
-             NU_1            =SIMP(statut='o',typ='R'),
-             MU_1            =SIMP(statut='o',typ='R'),
-             DXU_1           =SIMP(statut='o',typ='R'),
-             DRYU_1          =SIMP(statut='o',typ='R'),
-             C_1             =SIMP(statut='o',typ='R'),
-             NU_2            =SIMP(statut='o',typ='R'),
-             MU_2            =SIMP(statut='o',typ='R'),
-             DXU_2           =SIMP(statut='o',typ='R'),
-             DRYU_2          =SIMP(statut='o',typ='R'),
-             C_2             =SIMP(statut='o',typ='R'),
-             KY              =SIMP(statut='o',typ='R'),
-             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' ),
-             DIST_1          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             DIST_2          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             AMOR_NOR        =SIMP(statut='f',typ='R' ),
-             AMOR_TAN        =SIMP(statut='f',typ='R' ),
-             COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             JEU             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             KT_ULTM         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             EFFO_N_INIT     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA',),
-                     EXCLUS('RELA_MZ','ANGLE_1'),
-                     PRESENT_PRESENT('ANGLE_1','ANGLE_2','ANGLE_3','ANGLE_4',
-                                     'MOMENT_1','MOMENT_2','MOMENT_3','MOMENT_4'),),
-             RIGI_N_IRRA     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RIGI_N_FO       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RELA_MZ         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ANGLE_1         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ANGLE_2         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ANGLE_3         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ANGLE_4         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MOMENT_1        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MOMENT_2        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MOMENT_3        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MOMENT_4        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             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'),
-             CRIT_E_C        =SIMP(statut='o',typ='R'),
-             EPSP_P_C        =SIMP(statut='o',typ='R'),
-             EPSP_R_C        =SIMP(statut='o',typ='R'),
-             EPSI_R_T        =SIMP(statut='o',typ='R'),
-             FAC_T_C         =SIMP(statut='o',typ='R'),
-           ),
-           BETON_DOUBLE_DP =FACT(statut='f',
-             F_C             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_T             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COEF_BIAX       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ENER_COMP_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             ENER_TRAC_RUPT  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COEF_ELAS_COMP  =SIMP(statut='o',typ='R'),
-             LONG_CARA       =SIMP(statut='f',typ='R'),
-             ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
-             ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","INST","HYDR","SECH",) ),
-           ),
-           LABORD_1D=FACT(statut='f',min=0 ,
-             Y01             =SIMP(statut='o',typ='R'),
-             Y02             =SIMP(statut='o',typ='R'),
-             A1              =SIMP(statut='o',typ='R'),
-             A2              =SIMP(statut='o',typ='R'),
-             B1              =SIMP(statut='o',typ='R'),
-             B2              =SIMP(statut='o',typ='R'),
-             BETA1           =SIMP(statut='o',typ='R'),
-             BETA2           =SIMP(statut='o',typ='R'),
-             SIGF            =SIMP(statut='o',typ='R'),
-           ),
-         MAZARS=FACT(statut='f',min=0 ,
-             EPSD0           =SIMP(statut='o',typ='R'),
-             BETA            =SIMP(statut='o',typ='R'),
-             AC              =SIMP(statut='o',typ='R'),
-             BC              =SIMP(statut='o',typ='R'),
-             AT              =SIMP(statut='o',typ='R'),
-             BT              =SIMP(statut='o',typ='R'),
-           ),
-         MAZARS_FO=FACT(statut='f',min=0 ,
-             EPSD0           =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             BETA            =SIMP(statut='o',typ='R'),
-             AC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             BC              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             AT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             BT              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","SECH","HYDR") ),
-           ),
-         JOINT_BA=FACT(statut='f',min=0 ,max=1,
-             HPEN            =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=0.E+0),
-             GTT             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             GAMD0           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E-1),
-             AD1             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             BD1             =SIMP(statut='o',typ='R',defaut= 5.E-1,val_min=1.E-1),
-             GAMD2           =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
-             AD2             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             BD2             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
-             VIFROT          =SIMP(statut='o',typ='R',val_min=0.E+0),
-             FA              =SIMP(statut='o',typ='R',val_min=0.E+0),
-             FC              =SIMP(statut='o',typ='R',val_min=0.E+0),
-             EPSTR0          =SIMP(statut='o',typ='R',val_min=1.E-4,val_max=1.E+0),
-             ADN             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             BDN             =SIMP(statut='o',typ='R',defaut= 1.E+0,val_min=1.E-1),
-           ),
-          VENDOCHAB       =FACT(statut='f',
-             S_VP            =SIMP(statut='o',typ='R'),
-             SEDVP1          =SIMP(statut='o',typ='R'),
-             SEDVP2          =SIMP(statut='o',typ='R'),
-             N_VP            =SIMP(statut='o',typ='R'),
-             M_VP            =SIMP(statut='o',typ='R'),
-             K_VP            =SIMP(statut='o',typ='R'),
-             R_D             =SIMP(statut='o',typ='R'),
-             A_D             =SIMP(statut='o',typ='R'),
-             K_D             =SIMP(statut='o',typ='R'),
-           ),
-           VENDOCHAB_FO    =FACT(statut='f',
-             S_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SEDVP1          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SEDVP2          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             K_VP            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             R_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             A_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             K_D             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","X",) ),
-           ),
-           PINTO_MENEGOTTO =FACT(statut='f',
-             SY              =SIMP(statut='o',typ='R'),
-             EPSI_ULTM       =SIMP(statut='o',typ='R'),
-             SIGM_ULTM       =SIMP(statut='o',typ='R'),
-             ELAN            =SIMP(statut='f',typ='R',defaut= 4. ),
-             EPSP_HARD       =SIMP(statut='o',typ='R'),
-             R_PM            =SIMP(statut='f',typ='R',defaut= 20. ),
-             EP_SUR_E        =SIMP(statut='f',typ='R'),
-             A1_PM           =SIMP(statut='f',typ='R',defaut= 18.5 ),
-             A2_PM           =SIMP(statut='f',typ='R',defaut= 0.15 ),
-             A6_PM           =SIMP(statut='f',typ='R',defaut= 620. ),
-             C_PM            =SIMP(statut='f',typ='R',defaut= 0.5 ),
-             A_PM            =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
-           ),
-           BPEL_BETON      =FACT(statut='f',
-             PERT_FLUA       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             PERT_RETR       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           BPEL_ACIER      =FACT(statut='f',
-            regles=(PRESENT_PRESENT('RELAX_1000','F_PRG',),
-                     PRESENT_PRESENT('MU0_RELAX','F_PRG',),),
-             RELAX_1000      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             MU0_RELAX       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             F_PRG           =SIMP(statut='f',typ='R'),
-             FROT_COURB      =SIMP(statut='f',typ='R',defaut=0.E+0),
-             FROT_LINE       =SIMP(statut='f',typ='R',defaut=0.E+0),
-           ),
-           CAM_CLAY      =FACT(statut='f',
-             PORO            =SIMP(statut='o',typ='R'),
-             LAMBDA          =SIMP(statut='o',typ='R'),
-             KAPA            =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='o',typ='R'),
-             PRES_CRIT       =SIMP(statut='o',typ='R'),
-             PA              =SIMP(statut='o',typ='R'),
-           ),
-           BARCELONE      =FACT(statut='f',
-             R             =SIMP(statut='o',typ='R'),
-             BETA          =SIMP(statut='o',typ='R'),
-             KC            =SIMP(statut='o',typ='R'),
-             PC0_INIT      =SIMP(statut='o',typ='R'),
-             KAPAS         =SIMP(statut='o',typ='R'),
-             LAMBDAS       =SIMP(statut='o',typ='R'),
-             ALPHAB        =SIMP(statut='f',typ='R'),
-           ),
-           CJS             =FACT(statut='f',
-             BETA_CJS        =SIMP(statut='o',typ='R'),
-             RM              =SIMP(statut='o',typ='R'),
-             N_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             KP              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             RC              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             A_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             B_CJS           =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
-             C_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             GAMMA_CJS       =SIMP(statut='o',typ='R'),
-             MU_CJS          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             PCO             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             PA              =SIMP(statut='o',typ='R'),
-             Q_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-             R_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           ECRO_ASYM_LINE  =FACT(statut='f',
-             DC_SIGM_EPSI    =SIMP(statut='o',typ='R'),
-             SY_C            =SIMP(statut='o',typ='R'),
-             DT_SIGM_EPSI    =SIMP(statut='o',typ='R'),
-             SY_T            =SIMP(statut='o',typ='R'),
-           ),
-           GRANGER_FP      =FACT(statut='f',
-             J1              =SIMP(statut='f',typ='R'),
-             J2              =SIMP(statut='f',typ='R'),
-             J3              =SIMP(statut='f',typ='R'),
-             J4              =SIMP(statut='f',typ='R'),
-             J5              =SIMP(statut='f',typ='R'),
-             J6              =SIMP(statut='f',typ='R'),
-             J7              =SIMP(statut='f',typ='R'),
-             J8              =SIMP(statut='f',typ='R'),
-             TAUX_1          =SIMP(statut='f',typ='R'),
-             TAUX_2          =SIMP(statut='f',typ='R'),
-             TAUX_3          =SIMP(statut='f',typ='R'),
-             TAUX_4          =SIMP(statut='f',typ='R'),
-             TAUX_5          =SIMP(statut='f',typ='R'),
-             TAUX_6          =SIMP(statut='f',typ='R'),
-             TAUX_7          =SIMP(statut='f',typ='R'),
-             TAUX_8          =SIMP(statut='f',typ='R'),
-             QSR_K           =SIMP(statut='f',typ='R'),
-           ),
-           GRANGER_FP_INDT =FACT(statut='f',
-             J1              =SIMP(statut='f',typ='R'),
-             J2              =SIMP(statut='f',typ='R'),
-             J3              =SIMP(statut='f',typ='R'),
-             J4              =SIMP(statut='f',typ='R'),
-             J5              =SIMP(statut='f',typ='R'),
-             J6              =SIMP(statut='f',typ='R'),
-             J7              =SIMP(statut='f',typ='R'),
-             J8              =SIMP(statut='f',typ='R'),
-             TAUX_1          =SIMP(statut='f',typ='R'),
-             TAUX_2          =SIMP(statut='f',typ='R'),
-             TAUX_3          =SIMP(statut='f',typ='R'),
-             TAUX_4          =SIMP(statut='f',typ='R'),
-             TAUX_5          =SIMP(statut='f',typ='R'),
-             TAUX_6          =SIMP(statut='f',typ='R'),
-             TAUX_7          =SIMP(statut='f',typ='R'),
-             TAUX_8          =SIMP(statut='f',typ='R'),
-           ),
-           V_GRANGER_FP    =FACT(statut='f',
-             QSR_VEIL        =SIMP(statut='f',typ='R'),
-             FONC_V          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
-           ),
-           BAZANT_FD      =FACT(statut='f',
-             LAM_VISC      =SIMP(statut='o',typ='R'),
-           ),
-           BETON_UMLV_FP   =FACT(statut='f',min=0 ,
-             K_RS            =SIMP(statut='o',typ='R'),
-             ETA_RS          =SIMP(statut='o',typ='R'),
-             K_IS            =SIMP(statut='o',typ='R'),
-             ETA_IS          =SIMP(statut='o',typ='R'),
-             K_RD            =SIMP(statut='o',typ='R'),
-             ETA_RD          =SIMP(statut='o',typ='R'),
-             ETA_ID          =SIMP(statut='o',typ='R'),
-             ETA_FD          =SIMP(statut='f',typ='R'),
-           ),
-           GLRC            =FACT(statut='f',min=0,max=1,
-             MEX1            =SIMP(statut='o',typ='R',val_min=0.E+0),
-             MEY1            =SIMP(statut='o',typ='R',val_min=0.E+0),
-             MEX2            =SIMP(statut='o',typ='R',val_max=0.E+0),
-             MEY2            =SIMP(statut='o',typ='R',val_max=0.E+0),
-             CX1             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             CY1             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             CXY1            =SIMP(statut='o',typ='R',val_min=0.E+0),
-             CX2             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             CY2             =SIMP(statut='o',typ='R',val_min=0.E+0),
-             CXY2            =SIMP(statut='o',typ='R',val_min=0.E+0),
-           ),
-           GLRC_FO         =FACT(statut='f',min=0,max=1,
-             MEX1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEY1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEX2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             MEY2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CX1             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CY1             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CXY1            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CX2             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CY2             =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CXY2            =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("NORM",) ),
-           ),
-           GATT_MONERIE    =FACT(statut='f',min=0,max=1,
-             D_GRAIN         =SIMP(statut='o',typ='R',val_min=0.E+0),
-             PORO_INIT       =SIMP(statut='o',typ='R',val_min=0.E+0),
-             EPSI_01         =SIMP(statut='o',typ='R',defaut= 2.7252E-10,val_min=0.E+0),
-             EPSI_02         =SIMP(statut='o',typ='R',defaut= 9.1440E-41,val_min=0.E+0),
-           ),
-           CORR_ACIER   =FACT(statut='f',min=0 ,max=1,
-             D_CORR           =SIMP(statut='o',typ='R'),
-             ECRO_K           =SIMP(statut='o',typ='R'),
-             ECRO_M           =SIMP(statut='o',typ='R'),
-             SY              =SIMP(statut='o',typ='R'),
-             ),
-#
-# comportement thermique
-#
-           THER_NL         =FACT(statut='f',
-             regles=(UN_PARMI('BETA','RHO_CP', ),),
-             LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           THER_HYDR       =FACT(statut='f',
-             LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             BETA            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             AFFINITE        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CHALHYDR        =SIMP(statut='o',typ='R'),
-             QSR_K           =SIMP(statut='o',typ='R'),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("HYDR","TEMP",) ),
-           ),
-           THER            =FACT(statut='f',
-             LAMBDA          =SIMP(statut='o',typ='R'),
-             RHO_CP          =SIMP(statut='f',typ='R'),
-           ),
-           THER_FO         =FACT(statut='f',
-             LAMBDA          =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             RHO_CP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("INST",) ),
-           ),
-           THER_ORTH       =FACT(statut='f',
-             LAMBDA_L        =SIMP(statut='o',typ='R'),
-             LAMBDA_T        =SIMP(statut='o',typ='R'),
-             LAMBDA_N        =SIMP(statut='f',typ='R'),
-             RHO_CP          =SIMP(statut='f',typ='R'),
-           ),
-           THER_COQUE      =FACT(statut='f',
-             COND_LMM        =SIMP(statut='o',typ='R'),
-             COND_TMM        =SIMP(statut='o',typ='R'),
-             COND_LMP        =SIMP(statut='o',typ='R'),
-             COND_TMP        =SIMP(statut='o',typ='R'),
-             COND_LPP        =SIMP(statut='o',typ='R'),
-             COND_TPP        =SIMP(statut='o',typ='R'),
-             COND_LSI        =SIMP(statut='o',typ='R'),
-             COND_TSI        =SIMP(statut='o',typ='R'),
-             COND_NMM        =SIMP(statut='o',typ='R'),
-             COND_NMP        =SIMP(statut='o',typ='R'),
-             COND_NPP        =SIMP(statut='o',typ='R'),
-             COND_NSI        =SIMP(statut='o',typ='R'),
-             CMAS_MM         =SIMP(statut='f',typ='R'),
-             CMAS_MP         =SIMP(statut='f',typ='R'),
-             CMAS_PP         =SIMP(statut='f',typ='R'),
-             CMAS_SI         =SIMP(statut='f',typ='R'),
-           ),
-           THER_COQUE_FO   =FACT(statut='f',
-             COND_LMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_TMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_LMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_TMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_LPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_TPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_LSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_TSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_NMM        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_NMP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_NPP        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             COND_NSI        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CMAS_MM         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CMAS_MP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CMAS_PP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             CMAS_SI         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           ),
-           SECH_GRANGER    =FACT(statut='f',
-             A               =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             QSR_K           =SIMP(statut='o',typ='R'),
-             TEMP_0_C        =SIMP(statut='o',typ='R'),
-           ),
-           SECH_MENSI      =FACT(statut='f',
-             A               =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-           ),
-           SECH_BAZANT     =FACT(statut='f',
-             D1              =SIMP(statut='o',typ='R'),
-             ALPHA_BAZANT    =SIMP(statut='o',typ='R'),
-             N               =SIMP(statut='o',typ='R'),
-             FONC_DESORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           SECH_NAPPE      =FACT(statut='f',
-             FONCTION        =SIMP(statut='o',typ=(nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","TSEC",) ),
-           ),
-#
-# comportement métallurgique
-#
-           META_ACIER      =FACT(statut='f',
-             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'),
-             AC1             =SIMP(statut='o',typ='R'),
-             AC3             =SIMP(statut='o',typ='R'),
-             TAUX_1          =SIMP(statut='o',typ='R'),
-             TAUX_3          =SIMP(statut='o',typ='R'),
-             LAMBDA0         =SIMP(statut='f',typ='R'),
-             QSR_K           =SIMP(statut='f',typ='R'),
-             D10             =SIMP(statut='f',typ='R'),
-             WSR_K           =SIMP(statut='f',typ='R'),
-           ),
-           META_ZIRC       =FACT(statut='f',
-             TDEQ            =SIMP(statut='o',typ='R'),
-             N               =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='o',typ='R'),
-             TDC             =SIMP(statut='o',typ='R'),
-             AC              =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='o',typ='R'),
-             QSR_K           =SIMP(statut='f',typ='R'),
-             TDR             =SIMP(statut='o',typ='R'),
-             AR              =SIMP(statut='o',typ='R'),
-             BR              =SIMP(statut='o',typ='R'),
-           ),
-           DURT_META       =FACT(statut='f',
-             F1_DURT         =SIMP(statut='o',typ='R'),
-             F2_DURT         =SIMP(statut='o',typ='R'),
-             F3_DURT         =SIMP(statut='o',typ='R'),
-             F4_DURT         =SIMP(statut='o',typ='R'),
-             C_DURT          =SIMP(statut='o',typ='R'),
-           ),
-           ELAS_META       =FACT(statut='f',
-             E               =SIMP(statut='o',typ='R'),
-             NU              =SIMP(statut='o',typ='R'),
-             F_ALPHA         =SIMP(statut='o',typ='R'),
-             C_ALPHA         =SIMP(statut='o',typ='R'),
-             PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
-             EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-             F1_SY           =SIMP(statut='f',typ='R'),
-             F2_SY           =SIMP(statut='f',typ='R'),
-             F3_SY           =SIMP(statut='f',typ='R'),
-             F4_SY           =SIMP(statut='f',typ='R'),
-             C_SY            =SIMP(statut='f',typ='R'),
-             SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F1_S_VP         =SIMP(statut='f',typ='R'),
-             F2_S_VP         =SIMP(statut='f',typ='R'),
-             F3_S_VP         =SIMP(statut='f',typ='R'),
-             F4_S_VP         =SIMP(statut='f',typ='R'),
-             C_S_VP          =SIMP(statut='f',typ='R' ),
-             S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("META",)),
-           ),
-           ELAS_META_FO    =FACT(statut='f',
-             regles=(
-                      PRESENT_PRESENT('F_ALPHA','TEMP_DEF_ALPHA'),
-                      PRESENT_PRESENT('C_ALPHA','TEMP_DEF_ALPHA'),
-                    ),
-             E               =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             NU              =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_ALPHA         =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
-             EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),
-             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-             F1_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_SY           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_SY            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SY_MELANGE      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F1_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_S_VP         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_S_VP          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             S_VP_MELANGE    =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",)),
-           ),
-           META_ECRO_LINE  =FACT(statut='f',
-             F1_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_D_SIGM_EPSI  =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_D_SIGM_EPSI   =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",)),
-           ),
-           META_TRACTION   =FACT(statut='f',
-             SIGM_F1         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SIGM_F2         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SIGM_F3         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SIGM_F4         =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SIGM_C          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("EPSI","TEMP",)),
-           ),
-           META_VISC_FO    =FACT(statut='f',
-             F1_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F1_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F1_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F1_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_ETA          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_N            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_C            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_M            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_ETA           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_N             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_C             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             C_M             =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           META_PT         =FACT(statut='f',
-             F1_K            =SIMP(statut='f',typ='R'),
-             F2_K            =SIMP(statut='f',typ='R'),
-             F3_K            =SIMP(statut='f',typ='R'),
-             F4_K            =SIMP(statut='f',typ='R'),
-             F1_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F2_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F3_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             F4_D_F_META     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP","META",) ),
-           ),
-           META_RE         =FACT(statut='f',
-             C_F1_THETA      =SIMP(statut='f',typ='R'),
-             C_F2_THETA      =SIMP(statut='f',typ='R'),
-             C_F3_THETA      =SIMP(statut='f',typ='R'),
-             C_F4_THETA      =SIMP(statut='f',typ='R'),
-             F1_C_THETA      =SIMP(statut='f',typ='R'),
-             F2_C_THETA      =SIMP(statut='f',typ='R'),
-             F3_C_THETA      =SIMP(statut='f',typ='R'),
-             F4_C_THETA      =SIMP(statut='f',typ='R'),
-           ),
-#
-# comportement fluide
-#
-           FLUIDE          =FACT(statut='f',
-             regles=(EXCLUS('CELE_C','CELE_R'),),
-             RHO             =SIMP(statut='o',typ='R'),
-             CELE_C          =SIMP(statut='f',typ='C'),
-             CELE_R          =SIMP(statut='f',typ='R'),
-           ),
-           PORO_JOINT      =FACT(statut='f',
-             RHO_FLUI        =SIMP(statut='o',typ='R'),
-             ENTRO_FLUI      =SIMP(statut='o',typ='R'),
-             BIOT_M          =SIMP(statut='o',typ='R'),
-             C_0             =SIMP(statut='o',typ='R'),
-             T_R             =SIMP(statut='o',typ='R'),
-             ALPHA_M         =SIMP(statut='o',typ='R'),
-             LAMBDA_T        =SIMP(statut='o',typ='R'),
-             LAMBDA_H        =SIMP(statut='o',typ='R'),
-             SOURCE_INIT     =SIMP(statut='o',typ='R'),
-             OMEGA_0         =SIMP(statut='o',typ='R'),
-           ),
-# =================================================================================
-# COMPORTEMENT THERMO_HYDRO_MECANIQUE
-# LES DONNEES NECESSAIRES A LA DEFINITION DU MATERIAU SONT DEPENDANTES
-# DE LA LOI DE COUPLAGE THM DE LA RELATION
-# 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
-# LA CORRESPONDANCE AVEC LES VARIABLES CACHEES EST LA SUIVANTE :
-# 1 -->  LIQU_SATU
-# 2 -->  GAZ
-# 3 -->  LIQU_VAPE
-# 4 -->  LIQU_VAPE_GAZ
-# 5 -->  LIQU_GAZ
-# 6 -->  LIQU_GAZ_ATM
-# 9 -->  LIQU_AD_GAZ_VAPE
-# =================================================================================
-           COMP_THM        = SIMP(statut='f', typ='TXM',
-                                  into = ( "LIQU_SATU"     ,
-                                           "LIQU_GAZ"      ,
-                                           "GAZ"           ,
-                                           "LIQU_GAZ_ATM"  ,
-                                           "LIQU_VAPE_GAZ" ,
-                                           "LIQU_VAPE"     ,
-                                           "LIQU_AD_GAZ_VAPE" ,
-                                          ) ),
-# =================================================================================
-# --- LOI DE COUPLAGE DE TYPE LIQU_SATU -------------------------------------------
-# =================================================================================
-# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
-# --- THM_INIT, THM_DIFFU, THM_LIQU -----------------------------------------------
-# =================================================================================
-           b_liqusatu      = BLOC(condition = "COMP_THM == 'LIQU_SATU' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_SATU",
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_INIT   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE1          = SIMP(statut='o',typ='R'),
-                                           PORO          = SIMP(statut='o',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           TEMP          = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE2          = SIMP(statut='f',typ='R'),
-                                           PRES_VAPE     = SIMP(statut='f',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= 1.0,),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_DIFFU  = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO           = SIMP(statut='o',typ='R'),
-                                           BIOT_COEF     = SIMP(statut='o',typ='R'),
-                                           PESA_X        = SIMP(statut='o',typ='R'),
-                                           PESA_Y        = SIMP(statut='o',typ='R'),
-                                           PESA_Z        = SIMP(statut='o',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP            = 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)),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT   = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           R_GAZ         = SIMP(statut='f',typ='R'),
-                                           EMMAG           = 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)),
-                                           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)),
-                                           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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-         VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_LIQU   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO           = SIMP(statut='o',typ='R'),
-                                           UN_SUR_K      = SIMP(statut='o',typ='R'),
-                                           VISC          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP   = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           ALPHA         = SIMP(statut='f',typ='R'),
-                                           CP            = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P        = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                         ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-           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)),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-           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",)),
-           ),
-                                 ),
-# =================================================================================
-# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ --------------------------------------------
-# =================================================================================
-# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
-# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
-# =================================================================================
-           b_liqugaz      = BLOC(condition = "COMP_THM == 'LIQU_GAZ' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ",
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_INIT   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE1             = SIMP(statut='o',typ='R'),
-                                           PRE2             = SIMP(statut='o',typ='R'),
-                                           PORO             = SIMP(statut='o',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           TEMP             = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRES_VAPE        = SIMP(statut='f',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= 5.0,),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_DIFFU  = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           R_GAZ            = SIMP(statut='o',typ='R'),
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           BIOT_COEF        = SIMP(statut='o',typ='R'),
-                                           PESA_X           = SIMP(statut='o',typ='R'),
-                                           PESA_Y           = SIMP(statut='o',typ='R'),
-                                           PESA_Z           = SIMP(statut='o',typ='R'),
-                                           SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = 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)),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT   = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           EMMAG           = SIMP(statut='f',typ='R'),
-                                           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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-          VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
-                                             ) ,
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_LIQU   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           UN_SUR_K         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           ALPHA            = SIMP(statut='f',typ='R'),
-                                           CP               = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_GAZ    = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           MASS_MOL        = SIMP(statut='o',typ='R'),
-                                           VISC            = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP     = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP              = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P          = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-           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",)),
-           ),
-                                 ),
-# =================================================================================
-# --- LOI DE COUPLAGE DE TYPE GAZ -------------------------------------------------
-# =================================================================================
-# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
-# --- THM_INIT, THM_DIFFU, THM_GAZ ------------------------------------------------
-# =================================================================================
-           b_gaz          = BLOC(condition = "COMP_THM == 'GAZ' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type GAZ",
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_INIT   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           TEMP             = SIMP(statut='o',typ='R'),
-                                           PRE1             = SIMP(statut='o',typ='R'),
-                                           PORO             = SIMP(statut='o',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE2             = SIMP(statut='f',typ='R'),
-                                           PRES_VAPE        = SIMP(statut='f',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= 2.0,),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_DIFFU  = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           R_GAZ            = SIMP(statut='o',typ='R'),
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           BIOT_COEF        = SIMP(statut='o',typ='R'),
-                                           PESA_X           = SIMP(statut='o',typ='R'),
-                                           PESA_Y           = SIMP(statut='o',typ='R'),
-                                           PESA_Z           = SIMP(statut='o',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = 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)),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT   = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           EMMAG           = 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)),
-                                           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)),
-                                           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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-            VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
-                                             ) ,
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_GAZ    = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           MASS_MOL         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-           THM_LIQU        =FACT(statut='f',
-             RHO             =SIMP(statut='f',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)),
-             COEF_HENRY      =SIMP(statut='f',typ='R'),
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-           ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-           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",)),
-           ),
-                                 ),
-# =================================================================================
-# --- LOI DE COUPLAGE DE TYPE LIQU_GAZ_ATM ----------------------------------------
-# =================================================================================
-# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
-# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ --------------------------------------
-# =================================================================================
-           b_liqugazatm   = BLOC(condition = "COMP_THM == 'LIQU_GAZ_ATM' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_GAZ_ATM",
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_INIT   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE1             = SIMP(statut='o',typ='R'),
-                                           PORO             = SIMP(statut='o',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           TEMP             = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE2             = SIMP(statut='f',typ='R'),
-                                           PRES_VAPE        = SIMP(statut='f',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= 6.0,),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_DIFFU  = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           BIOT_COEF        = SIMP(statut='o',typ='R'),
-                                           PESA_X           = SIMP(statut='o',typ='R'),
-                                           PESA_Y           = SIMP(statut='o',typ='R'),
-                                           PESA_Z           = SIMP(statut='o',typ='R'),
-                                           SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = 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)),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT   = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-             EMMAG           = SIMP(statut='f',typ='R'),
-             R_GAZ           =SIMP(statut='f',typ='R'),
-             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)),
-             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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-             VERI_P          =SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
-                                             ) ,
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_LIQU   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           UN_SUR_K         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           ALPHA            = SIMP(statut='f',typ='R'),
-                                           CP               = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-                             THM_GAZ    = FACT(statut='f',
-                                           MASS_MOL         = 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)),
-                                           CP               = SIMP(statut='f',typ='R'),
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-           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",)),
-           ),
-                                 ),
-# =================================================================================
-# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE_GAZ ---------------------------------------
-# =================================================================================
-# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
-# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ ------------------------
-# =================================================================================
-           b_liquvapegaz  = BLOC(condition = "COMP_THM == 'LIQU_VAPE_GAZ' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE_GAZ",
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_INIT   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           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'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           TEMP             = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           DEGR_SATU        = SIMP(statut='f',typ='R'),
-                                           PRES_ATMO        = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEE CACHEE ---------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           COMP_THM         = SIMP(statut='c',typ='R',defaut= 4.0,),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_DIFFU  = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           R_GAZ            = SIMP(statut='o',typ='R'),
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           BIOT_COEF        = SIMP(statut='o',typ='R'),
-                                           PESA_X           = SIMP(statut='o',typ='R'),
-                                           PESA_Y           = SIMP(statut='o',typ='R'),
-                                           PESA_Z           = SIMP(statut='o',typ='R'),
-                                           SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = 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)),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT   = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES FACULTATIVE   ----------------------------------
-# ---------------------------------------------------------------------------------
-                                           EMMAG            = SIMP(statut='f',typ='R'),
-                                           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_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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-         VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT" ,"PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ),
-                                             ) ,
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_LIQU   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           UN_SUR_K         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           ALPHA            = SIMP(statut='f',typ='R'),
-                                           CP               = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_GAZ    = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           MASS_MOL         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_VAPE_GAZ = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           MASS_MOL         = SIMP(statut='o',typ='R'),
-                                           CP               = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-                                 ),
-# =================================================================================
-# --- LOI DE COUPLAGE DE TYPE LIQU_AD_GAZ_VAPE -------------------------------------
-# =================================================================================
-# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
-# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_GAZ, THM_VAPE_GAZ THM_AIR_DISSOUS---------
-# =================================================================================
-           b_liquadvape  = BLOC(condition = "COMP_THM == 'LIQU_AD_GAZ_VAPE' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_AD_GAZ_VAPE",
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_INIT   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           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'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           TEMP             = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           DEGR_SATU        = SIMP(statut='f',typ='R'),
-                                           PRES_ATMO        = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEE CACHEE ---------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           COMP_THM         = SIMP(statut='c',typ='R',defaut= 9.0,),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_DIFFU  = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           R_GAZ            = SIMP(statut='o',typ='R'),
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           BIOT_COEF        = SIMP(statut='o',typ='R'),
-                                           PESA_X           = SIMP(statut='o',typ='R'),
-                                           PESA_Y           = SIMP(statut='o',typ='R'),
-                                           PESA_Z           = SIMP(statut='o',typ='R'),
-                                           SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           FICKV_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           FICKA_T          = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = 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)),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT   = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES FACULTATIVES   ------------------------------------
-# ---------------------------------------------------------------------------------
-                                           EMMAG            = SIMP(statut='f',typ='R'),
-                                           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_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_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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-         VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO","PVAP","PLIQ","PAD",) ),
-                                             ) ,
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_LIQU   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           UN_SUR_K         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           ALPHA            = SIMP(statut='f',typ='R'),
-                                           CP               = SIMP(statut='f',typ='R'),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT        = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_GAZ    = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           MASS_MOL         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_VAPE_GAZ = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           MASS_MOL         = SIMP(statut='o',typ='R'),
-                                           CP               = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_AIR_DISS = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = SIMP(statut='o',typ='R'),
-                                           COEF_HENRY       = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           VERI_P      = SIMP(statut='c',typ='TXM',defaut=("TEMP",),),
-                                             ),
-                                 ),
-# =================================================================================
-# --- LOI DE COUPLAGE DE TYPE LIQU_VAPE -------------------------------------------
-# =================================================================================
-# --- PRESENCE OBLIGATOIRE DES MOT-CLES SUIVANT : ---------------------------------
-# --- THM_INIT, THM_DIFFU, THM_LIQU, THM_VAPE_GAZ ---------------------------------
-# =================================================================================
-           b_liquvape  = BLOC(condition = "COMP_THM == 'LIQU_VAPE' ",
-                                 fr="Paramètres nécessaires pour une loi de couplage de type LIQU_VAPE",
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_INIT   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE1             = SIMP(statut='o',typ='R'),
-                                           PORO             = SIMP(statut='o',typ='R'),
-                                           PRES_VAPE        = SIMP(statut='o',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           TEMP             = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           PRE2             = SIMP(statut='f',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= 3.0,),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_DIFFU  = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           R_GAZ            = SIMP(statut='o',typ='R'),
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           BIOT_COEF        = SIMP(statut='o',typ='R'),
-                                           PESA_X           = SIMP(statut='o',typ='R'),
-                                           PESA_Y           = SIMP(statut='o',typ='R'),
-                                           PESA_Z           = SIMP(statut='o',typ='R'),
-                                           SATU_PRES        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_SATU_PRES      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_LIQU        = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_LIQU_SATU = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           PERM_GAZ         = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_SATU_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_PERM_PRES_GAZ  = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           CP               = 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)),
-                                           LAMB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_PHI    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_T      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_LB_S      = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           LAMB_CT   = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES INUTILES   ----------------------------------------
-# ---------------------------------------------------------------------------------
-                                           EMMAG            = SIMP(statut='f',typ='R'),
-                                           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)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-            VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP","SAT","PORO","PGAZ","PCAP","ENDO",) ),
-                                             ) ,
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_LIQU   = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           RHO              = SIMP(statut='o',typ='R'),
-                                           UN_SUR_K         = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES NECESSAIRE SI THERMIQUE   -------------------------
-# ---------------------------------------------------------------------------------
-                                           ALPHA            = SIMP(statut='f',typ='R'),
-                                           CP               = SIMP(statut='f',typ='R'),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES ---------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE OBLIGATOIRE ---------------------------------------------------------
-# =================================================================================
-                             THM_VAPE_GAZ = FACT(statut='o',
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES OBLIGATOIRE   -------------------------------------
-# ---------------------------------------------------------------------------------
-                                           MASS_MOL         = SIMP(statut='o',typ='R'),
-                                           CP               = SIMP(statut='o',typ='R'),
-                                           VISC             = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-                                           D_VISC_TEMP      = SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-# ---------------------------------------------------------------------------------
-# -------------------   DONNEES CACHEES -------------------------------------------
-# ---------------------------------------------------------------------------------
-                                           VERI_P           = SIMP(statut='c',typ='TXM',defaut=("TEMP",)),
-                                             ),
-# =================================================================================
-# --- MOT-CLE INUTILE -------------------------------------------------------------
-# =================================================================================
-           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)),
-             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",) ),
-           ),
-           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",
-                                                            "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),
-             ),
-           ),
-#
-# 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'),
-             VOLU_REFE       =SIMP(statut='o',typ='R'),
-             SIGM_CNV        =SIMP(statut='o',typ='R'),
-             SIGM_REFE       =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           NON_LOCAL       =FACT(statut='f',
-             LONG_CARA       =SIMP(statut='o',typ='R'),
-             COEF_RIGI_MINI  =SIMP(statut='f',typ='R'),
-           ),
-           RUPT_FRAG       =FACT(statut='f',
-             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.),
-           ),
-           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='R',defaut=1.),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           RCCM            =FACT(statut='f',
-             SY_02           =SIMP(statut='f',typ='R'),
-             SM              =SIMP(statut='f',typ='R'),
-             SU              =SIMP(statut='f',typ='R'),
-             SC              =SIMP(statut='f',typ='R'),
-             SH              =SIMP(statut='f',typ='R'),
-             N_KE            =SIMP(statut='f',typ='R'),
-             M_KE            =SIMP(statut='f',typ='R'),
-           ),
-           RCCM_FO         =FACT(statut='f',
-             SY_02           =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SM              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             SU              =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             S               =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             N_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             M_KE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-             VERI_P          =SIMP(statut='c',typ='TXM',max='**',defaut=("TEMP",) ),
-           ),
-           LAIGLE          =FACT(statut='f',
-             GAMMA_ULT       =SIMP(statut='o',typ='R'),
-             GAMMA_E         =SIMP(statut='o',typ='R'),
-             M_ULT           =SIMP(statut='o',typ='R'),
-             M_E             =SIMP(statut='o',typ='R'),
-             A_E             =SIMP(statut='o',typ='R'),
-             M_PIC           =SIMP(statut='o',typ='R'),
-             A_PIC           =SIMP(statut='o',typ='R'),
-             ETA             =SIMP(statut='o',typ='R'),
-             SIGMA_C         =SIMP(statut='o',typ='R'),
-             GAMMA           =SIMP(statut='o',typ='R'),
-             KSI             =SIMP(statut='o',typ='R'),
-             GAMMA_CJS       =SIMP(statut='o',typ='R'),
-             SIGMA_P1        =SIMP(statut='o',typ='R'),
-             PA              =SIMP(statut='o',typ='R'),
-           ),
-           DRUCK_PRAGER  =FACT(statut='f',
-             ALPHA           =SIMP(statut='o',typ='R'),
-             SY              =SIMP(statut='o',typ='R'),
-             P_ULTM          =SIMP(statut='o',typ='R'),
-             ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
-             b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
-                                    fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
-                    H               =SIMP(statut='o',typ='R'),
-                    TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
-             ),
-             b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
-                                    fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
-                    SY_ULTM         =SIMP(statut='o',typ='R'),
-                    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',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
-             N               =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='o',typ='R'),
-             C               =SIMP(statut='o',typ='R'),
-           ),
-           ECOU_VISC2      =FACT(statut='f',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
-             N               =SIMP(statut='o',typ='R'),
-             K               =SIMP(statut='o',typ='R'),
-             C               =SIMP(statut='o',typ='R'),
-             D               =SIMP(statut='o',typ='R'),
-             A               =SIMP(statut='o',typ='R'),
-           ),
-           ECOU_VISC3      =FACT(statut='f',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_VISC",),),
-             K               =SIMP(statut='o',typ='R',fr="Constante de Boltzmann, en eV/K"),
-             TAUMU           =SIMP(statut='o',typ='R',fr="Seuil d ecoulement, en unite de contraintes"),
-             GAMMA0          =SIMP(statut='o',typ='R',fr="Vitesse d ecoulement initiale"),
-             DELTAV          =SIMP(statut='o',typ='R',fr="Volume d activation"),
-             DELTAG0         =SIMP(statut='o',typ='R',fr="Gain d energie lie au franchissement d obstacle"),
-           ),
-           ECOU_PLAS1      =FACT(statut='f',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECOU_PLAS",),),
-             C               =SIMP(statut='o',typ='R'),
-           ),
-           ECRO_ISOT1      =FACT(statut='f',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
-             R_0             =SIMP(statut='o',typ='R'),
-             Q               =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             H               =SIMP(statut='o',typ='R'),
-           ),
-           ECRO_ISOT2      =FACT(statut='f',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_ISOT",),),
-             R_0             =SIMP(statut='o',typ='R'),
-             Q1              =SIMP(statut='o',typ='R'),
-             B1              =SIMP(statut='o',typ='R'),
-             H               =SIMP(statut='o',typ='R'),
-             Q2              =SIMP(statut='o',typ='R'),
-             B2              =SIMP(statut='o',typ='R'),
-           ),
-           ECRO_CINE1      =FACT(statut='f',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
-             D               =SIMP(statut='o',typ='R'),
-           ),
-           ECRO_CINE2      =FACT(statut='f',
-             TYPE_PARA       =SIMP(statut='f',typ='TXM',into=("ECRO_CINE",),),
-             D               =SIMP(statut='o',typ='R'),
-             GM              =SIMP(statut='o',typ='R'),
-             PM              =SIMP(statut='o',typ='R'),
-             C               =SIMP(statut='o',typ='R'),
-           ),
-
-####  MONOCRISTAL
-
-           DRUCK_PRAGER_FO  =FACT(statut='f',
-             ALPHA           =SIMP(statut='o',typ=(fonction_sdaster,formule)),
-             SY              =SIMP(statut='o',typ=(fonction_sdaster,formule)),
-             P_ULTM          =SIMP(statut='o',typ=(fonction_sdaster,formule)),
-             ECROUISSAGE = SIMP(statut='o',typ='TXM',into=("LINEAIRE","PARABOLIQUE")),
-             b_lineaire =BLOC(condition="ECROUISSAGE=='LINEAIRE'",
-                                    fr="Loi de comportement de type Drucker Prager avec un ecrouissage lineaire",
-                    H               =SIMP(statut='o',typ=(fonction_sdaster,formule)),
-                    TYPE_DP         =SIMP(statut='c',typ='R',defaut= 1.0,),
-             ),
-             b_parabolique =BLOC(condition="ECROUISSAGE=='PARABOLIQUE'",
-                                    fr="Loi de comportement de type Drucker Prager avec un ecrouissage parabolique",
-                    SY_ULTM         =SIMP(statut='o',typ=(fonction_sdaster,formule)),
-                    TYPE_DP         =SIMP(statut='c',typ='R',defaut= 2.0,),
-             ),
-           ),
-
-
-           INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-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' ),
-           MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
-           ANGL_NAUT       =SIMP(statut='f',typ='R',max=3),
-           TRANS           =SIMP(statut='f',typ='R',max=3),
-         ),
-         LIAISON         =FACT(statut='o',max='**',
-           SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
-           INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
-           SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
-           INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
-           regles=(EXCLUS('GROUP_MA_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),
-                   EXCLUS('MAILLE_MAIT_1','GROUP_MA_MAIT_2','MAILLE_MAIT_2'),),
-           GROUP_MA_MAIT_1   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_MAIT_1     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA_MAIT_2   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE_MAIT_2     =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           OPTION            =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("REDUIT","CLASSIQUE") ),
-         ),
-         VERIF           =FACT(statut='f',max='**',
-#  dans la doc U stop_erreur est obligatoire         
-           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-         ),
-         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.      
-# ======================================================================
-DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=nappe_sdaster,
-                fr="Définir une fonction réelle de deux variables réelles",
-                reentrant='n',
-            UIinfo={"groupes":("Fonction",)},
-         regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
-                 EXCLUS('FONCTION','NOM_PARA_FONC',),
-                 ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),),
-         NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
-         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),       
-         PARA            =SIMP(statut='o',typ='R',max='**'),
-         FONCTION        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule),max='**' ),
-         NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ",
-                                                          "PULS","AMOR","EPAIS","SAT", "PGAZ","PCAP") ),
-         DEFI_FONCTION   =FACT(statut='f',max='**',
-           VALE            =SIMP(statut='o',typ='R',max='**'),
-           INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
-           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") ),
-         ),
-         INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
-         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") ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-         VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=obstacle_sdaster
-                    ,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",
-                             into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
-                             "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
-                             "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
-                             "GUID_B_CARTE_900","GUID_C_CARTE_900",
-                             "GUID_D_CARTE_900","GUID_E_CARTE_900",
-                             "GUID_F_CARTE_900","GUID_A_CARTE_1300",
-                             "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
-                             "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
-                             "GUID_F_CARTE_1300","GUID_A_CARSP_900",
-                             "GUID_B_CARSP_900","GUID_C_CARSP_900",
-                             "GUID_D_CARSP_900","GUID_E_CARSP_900",
-                             "GUID_F_CARSP_900","GUID_A_CARSP_1300",
-                             "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
-                             "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
-                             "GUID_F_CARSP_1300","GUID_A_GCONT_900",
-                             "GUID_B_GCONT_900","GUID_C_GCONT_900",
-                             "GUID_D_GCONT_900","GUID_E_GCONT_900",
-                             "GUID_F_GCONT_900","GUID_A_GCONT_1300",
-                             "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
-                             "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
-                             "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
-                             "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
-                             "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
-                             "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
-                             "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
-                             "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
-                             "GUID_F_GCOMB_1300",) ),
-         VALE            =SIMP(statut='f',typ='R',max='**'),
-         VERIF           =SIMP(statut='f',typ='TXM',defaut="FERME"),
-)  ;
-#& 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
-DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op=   2,sd_prod=para_sensi,
-                    fr="Définition d'un paramètre de sensibilité",
-                    ang="Definition of a sensitive parameter",
-                    reentrant='n',
-            UIinfo={"groupes":("Fonction",)},
-         NOM_RESU        =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU",
-                               fr="Nom du concept créé",
-                               ang="Name of the concept"),
-         VALE            =SIMP(statut='o',typ='R',
-                               fr="Valeur du parametre",
-                               ang="Value of the parameter"),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre_sdaster,
-                    fr="Définition d'un spectre d'excitation turbulente",
-                    reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-         regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3',
-                          'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2',
-                          'SPEC_FONC_FORME','SPEC_EXCI_POINT'),),
-         SPEC_LONG_COR_1 =FACT(statut='f',
-           LONG_COR        =SIMP(statut='o',typ='R' ),
-           PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           VISC_CINE       =SIMP(statut='o',typ='R' ),
-         ),
-         SPEC_LONG_COR_2 =FACT(statut='f',
-           regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
-           LONG_COR        =SIMP(statut='o',typ='R' ),
-           PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.1 ),
-           PHI0            =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
-           BETA            =SIMP(statut='f',typ='R',defaut= 2.7 ),
-         ),
-         SPEC_LONG_COR_3 =FACT(statut='f',
-           regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),),
-           LONG_COR        =SIMP(statut='o',typ='R' ),
-           PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.2 ),
-           PHI0_1          =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
-           BETA_1          =SIMP(statut='f',typ='R',defaut= 0.5 ),
-           PHI0_2          =SIMP(statut='f',typ='R',defaut= 4.E-5 ),
-           BETA_2          =SIMP(statut='f',typ='R',defaut= 3.5 ),
-         ),
-         SPEC_LONG_COR_4 =FACT(statut='f',
-           regles=(ENSEMBLE('BETA','GAMMA'),),
-           LONG_COR        =SIMP(statut='o',typ='R' ),
-           PROF_VITE_FLUI  =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TAUX_VIDE       =SIMP(statut='o',typ='R' ),
-           BETA            =SIMP(statut='f',typ='R',defaut= 2. ),
-           GAMMA           =SIMP(statut='f',typ='R',defaut= 4. ),
-         ),
-         SPEC_CORR_CONV_1=FACT(statut='f',
-           LONG_COR_1      =SIMP(statut='o',typ='R' ),
-           LONG_COR_2      =SIMP(statut='f',typ='R' ),
-           VITE_FLUI       =SIMP(statut='o',typ='R' ),
-           RHO_FLUI        =SIMP(statut='o',typ='R' ),
-           FREQ_COUP       =SIMP(statut='f',typ='R' ),
-           K               =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
-           D_FLUI          =SIMP(statut='o',typ='R' ),
-           COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
-           COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
-                                 into=("AU_YANG","GENERALE","CORCOS") ),
-         ),
-         SPEC_CORR_CONV_2=FACT(statut='f',
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           VITE_FLUI       =SIMP(statut='o',typ='R' ),
-           FREQ_COUP       =SIMP(statut='f',typ='R' ),
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
-                                 into=("AU_YANG","GENERALE","CORCOS",) ),
-           COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
-           COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
-         ),
-         SPEC_FONC_FORME =FACT(statut='f',
-           regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
-                   ENSEMBLE('INTE_SPEC','FONCTION'),),
-           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),
-           CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
-           MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-         ),
-         SPEC_EXCI_POINT =FACT(statut='f',
-           regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),
-           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
-           b_inte_spec =BLOC(condition = "INTE_SPEC != None",
-             NATURE          =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
-             ANGL            =SIMP(statut='o',typ='R',max='**'),
-             NOEUD           =SIMP(statut='o',typ=no,max='**'),
-           ),
-           b_grappe_2      =BLOC(condition = "GRAPPE_2 != None",
-             RHO_FLUI        =SIMP(statut='o',typ='R' ),
-             NOEUD           =SIMP(statut='o',typ=no),
-           ),
-           CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
-           MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
-                    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'),
-                 PRESENT_PRESENT('CYCLIQUE','SECTEUR'),
-                 EXCLUS('SOUS_STRUC','SECTEUR'),
-                 PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
-                 PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
-         CYCLIQUE    =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MODE_CYCL','MAILLAGE'),
-                   PRESENT_PRESENT('NB_SECTEUR','MAILLAGE'),),
-           MODE_CYCL       =SIMP(statut='f',typ=mode_cycl ),
-           NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
-           MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
-         ),
-         MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
-         SQUELETTE       =SIMP(statut='f',typ=squelette ),
-         RECO_GLOBAL     =FACT(statut='f',max='**',
-           regles=(EXCLUS('TOUT','GROUP_NO_1'),
-                   PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
-                   PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
-                   PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
-                   PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
-           TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
-           GROUP_NO_1      =SIMP(statut='f',typ=grno),
-           SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
-           GROUP_NO_2      =SIMP(statut='f',typ=grno),
-           SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           DIST_REFE       =SIMP(statut='f',typ='R' ),
-         ),
-         NOM_GROUP_MA    =FACT(statut='f',max='**',
-           NOM             =SIMP(statut='o',typ='TXM' ),
-           SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
-           GROUP_MA        =SIMP(statut='o',typ=grma),
-         ),
-         EXCLUSIF        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster ),
-         MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-         GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         TRANS           =SIMP(statut='f',typ='R',min=3,max=3),
-         ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),
-         SOUS_STRUC      =FACT(statut='f',max='**',
-           NOM             =SIMP(statut='f',typ='TXM' ),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         ),
-         SECTEUR         =FACT(statut='f',max='**',
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-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 ),  
-           L               =SIMP(statut='o',typ='R',max='**' ),  
-         ),
-         PLAN            =FACT(statut='o',min=1,max=40,
-           ANGL_NAUT       =SIMP(statut='o',typ='R',max='**' ),  
-           PROPORTION      =SIMP(statut='o',typ='R' ),  
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=table_sdaster,reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-              fr="Définir d'un diagramme de transformations en refroidissement continu (TRC) de référence d'un acier"
-                +" pour les calculs métallurgiques.",
-         HIST_EXP        =FACT(statut='o',max='**',
-           VALE            =SIMP(statut='o',typ='R',max='**'),
-         ),
-         TEMP_MS         =FACT(statut='o',max='**',
-           SEUIL           =SIMP(statut='o',typ='R'),
-           AKM             =SIMP(statut='o',typ='R'),
-           BKM             =SIMP(statut='o',typ='R'),
-           TPLM            =SIMP(statut='o',typ='R'),
-         ),
-         GRAIN_AUST      =FACT(statut='f',max='**',
-           DREF           =SIMP(statut='f',typ='R'),
-           A              =SIMP(statut='f',typ='R'),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-
-from Macro.macr_ecla_pg_ops import macr_ecla_pg_ops
-
-def macr_ecla_pg_prod(self,RESULTAT,MAILLAGE,RESU_INIT,**args):
-  self.type_sdprod(RESULTAT,AsType(RESU_INIT))   
-  self.type_sdprod(MAILLAGE,maillage_sdaster)
-  return None
-
-
-MACR_ECLA_PG=MACRO(nom="MACR_ECLA_PG",op=macr_ecla_pg_ops,sd_prod=macr_ecla_pg_prod, reentrant='n',
-             UIinfo={"groupes":("Post traitements",)},
-             fr="Permettre la visualisation des champs aux points de Gauss d'une SD_RESULTAT sans lissage ni interpolation",
-                    
-
-             # SD résultat ,modèle et champs à "éclater" :
-             RESU_INIT       =SIMP(statut='o',typ=resultat_sdaster,fr="RESULTAT à éclater",),
-             MODELE_INIT     =SIMP(statut='o',typ=modele_sdaster,fr="MODELE à éclater"),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                                   into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
-                                   
-             # paramètres numériques de la commande :
-             SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
-             TAILLE_MIN      =SIMP(statut='f',typ='R',defaut= 0.0, fr="Taille minimale d'un coté" ),
-             
-             # concepts produits par la commande :
-             RESULTAT        =SIMP(statut='o',typ=CO,fr="SD_RESULTAT résultat de la commande"),
-             MAILLAGE        =SIMP(statut='o',typ=CO,fr="MAILLAGE associé aux cham_no de la SD_RESULTAT"),
-                     
-             # Sélection éventuelle d'un sous-ensemble des éléments à visualiser :           
-             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-             
-             # Sélection des numéros d'ordre :
-             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
-             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-             LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-             INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-             LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
-            )
-#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# 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_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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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.      
-# ======================================================================
-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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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_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',
-           regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
-           MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
-           BANDE           =SIMP(statut='f',typ='R',validators=NoRepeat(),max=2),
-           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           b_bande =BLOC(condition = "BANDE != None",
-             AMOR_UNIF       =SIMP(statut='o',typ='R' ),
-           ),
-           b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
-             AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
-           ),
-         ),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
-# 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=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") ),
-           b_modal_non = BLOC(condition = "(MODAL == None) or (MODAL == 'NON')",           
-             regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'),),
-             NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**'),
-             NOEUD_I         =SIMP(statut='f',typ=no,max='**'),
-             b_nume_ordre_i  =BLOC(condition = "NUME_ORDRE_I != None",
-               regles=(EXCLUS('CHAM_NO','NOEUD'),),
-# on devrait rajouter EXCLUS('GRANDEUR','CHAM_NO') pour eviter ambiguite car CHAM_NO => GRANDEUR='EFFO'
-# cela impliquerait d'enlever la valeur par defaut a GRANDEUR            
-               NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
-               CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
-               NOEUD           =SIMP(statut='f',typ=no,max='**'),
-               b_noeud         =BLOC(condition = "NOEUD != None",
-                  NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
-                ),  
-               GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
-                           into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
-# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP  
-               DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
-             ),           
-             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='**'),
-               NOEUD           =SIMP(statut='o',typ=no,max='**'),
-               NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
-# ne serait-il pas bien que NOEUD et NOM_CMP soient facultatifs, car l'information peut etre contenue dans
-# NOEUD_I, NOM_CMP_I ...  => modif. du Fortran
-               GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
-                           into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
-# que se passe-t-il en cas d'incompatibilite entre GRANDEUR et NOM_CMP_I  
-               DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
-             ),
-           ),  
-           b_modal_oui = BLOC(condition = "(MODAL == 'OUI')",
-# dans ce cas, y-a-t-il vraiment la possibilite d'une matrice interspectrale avec plusieurs termes
-             NUME_ORDRE_I    =SIMP(statut='o',typ='I',max='**'),
-             NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**'),
-             GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
-                           into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
-             DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
-# dans le cas MODAL=OUI, GRANDEUR peut-il etre different de EFFO et doit il etre impose a EFFO   On devrait
-# pouvoir supprimer GRANDEUR et DERIVATION ici   
-           ),  
-                    
-         ),
-         REPONSE         =FACT(statut='f',
-           regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
-           DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ),
-           OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
-           FREQ_MIN        =SIMP(statut='f',typ='R' ),
-           FREQ_MAX        =SIMP(statut='f',typ='R' ),
-           PAS             =SIMP(statut='f',typ='R' ),
-           b_defaut_freq   =BLOC(condition = "FREQ_MIN == NONE",
-              FREQ_EXCIT      =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ),
-              NB_POIN_MODE    =SIMP(statut='f',typ='I',defaut= 50 ),
-           ),
-         ),
-         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 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="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'),
-                 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 ),
-         MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
-         MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_pres_c
-                                              ,matr_asse_gene_r,matr_asse_gene_c ) ),
-         MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_pres_c,matr_asse_gene_r ) ),
-         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
-         LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
-         MATR_IMPE_PHI   =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
-         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-         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_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 ),
-           COEF_MULT_C     =SIMP(statut='f',typ='C' ),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           COEF_MULT       =SIMP(statut='f',typ='R' ),
-           PHAS_DEG        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           PUIS_PULS       =SIMP(statut='f',typ='I',defaut= 0 ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               ang="List of sensitivity parameters"),
-)  ;
-# 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 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.
-# ======================================================================
-DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
-                    fr="Calcul de la réponse dynamique transitoire à une excitation temporelle quelconque",
-                    reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-#         regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),),
-         regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),
-                 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 ),
-         MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r ),
-         MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
-         MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,) ),
-         NEWMARK         =FACT(statut='f',
-           ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
-           DELTA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
-         ),
-         WILSON          =FACT(statut='f',
-           THETA           =SIMP(statut='f',typ='R',defaut= 1.4 ),
-         ),
-         DIFF_CENTRE     =FACT(statut='f',
-         ),
-         ADAPT           =FACT(statut='f',
-         ),
-         ETAT_INIT       =FACT(statut='f',
-           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' ),),
-             NUME_INIT       =SIMP(statut='f',typ='I' ),
-             INST_INIT       =SIMP(statut='f',typ='R' ),
-             b_inst_init     =BLOC(condition = "INST_INIT != None",
-               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             ),
-           ),
-           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'),
-                   EXCLUS('CHARGE','COEF_MULT'),
-                   EXCLUS('FONC_MULT','COEF_MULT'),
-                   EXCLUS('ACCE','COEF_MULT'),
-                   PRESENT_ABSENT('ACCE','FONC_MULT'),
-                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
-                   # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
-                   ),
-           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' ),
-           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
-           ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           DIRECTION       =SIMP(statut='f',typ='R',max='**'),
-           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="NON",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="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) ),
-           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' ),
-           ),
-           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' ),
-           ),
-           VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
-           COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
-           COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.33334 ),
-           PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-           NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
-           NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
-           PAS_CALCUL      =SIMP(statut='f',typ='I',defaut= 1 ),
-         ),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
-           PAS_ARCH        =SIMP(statut='f',typ='I' ),
-           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é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 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.
-# ======================================================================
-DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
-            fr="Calcul de l'évolution dynamique d'une structure dont le matériau ou la géométrie ont un comportement non linéaire",
-            UIinfo={"groupes":("Résolution",)},
-         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
-                 UN_PARMI('NEWMARK','HHT','TETA_METHODE',),
-                 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,)),
-         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,char_cine_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='**'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-         ),
-         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='**',),
-              ),
-         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") ),
-         ),
-         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")),
-         ),
-#-------------------------------------------------------------------
-         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','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'),
-         ),),
-         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','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'),
-         ),
-#-------------------------------------------------------------------
-         NEWMARK         =FACT(statut='f',
-           ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25),
-           DELTA           =SIMP(statut='f',typ='R',defaut= 0.5),
-         ),
-         HHT             =FACT(statut='f',
-           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'
-                                ,defaut= 1.,val_min=0.5,val_max=1. ),
-         ),
-         NEWTON          =FACT(statut='d',
-           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-           PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
-           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
-           REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
-           PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-         ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","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","DECOUPE") ),
-           ),
-           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),
-             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='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"),
-         ),
-#-------------------------------------------------------------------
-         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',
-           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='**'),
-         ),
-#-------------------------------------------------------------------
-         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é",
-                               ang="List of sensitivity parameters"),
-#-------------------------------------------------------------------
-           SOLV_NON_LOCAL  =FACT(statut='f',
-             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-             ),
-             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-             ),
-             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-             ),
-             b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-               TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-               PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
-             ),
-             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-             ),
-             EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           LAGR_NON_LOCAL  =FACT(statut='f',
-             ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
-             RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
-             RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
-             R               =SIMP(statut='f',typ='R',defaut= 1000.),
-             ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
-           ),
-#-------------------------------------------------------------------
-         INFO            =SIMP(statut='f',typ='I',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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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_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=table_sdaster),
-         ),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
-         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.      
-# ======================================================================
-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' ),
-           INST_FIN        =SIMP(statut='o',typ='R' ),
-           PAS             =SIMP(statut='f',typ='R' ),
-           VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
-           COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
-           COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
-           PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
-           NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
-           NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
-         ),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster ),
-           PAS_ARCH        =SIMP(statut='f',typ='I' ),
-         ),
-         
-         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 20 ),
-         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-         LAMBDA          =SIMP(statut='f',typ='R',defaut= 10. ),
-         
-         EXCIT           =FACT(statut='f',max='**',
-           regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
-                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
-                   PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
-                   PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'),
-                   EXCLUS('MULT_APPUI','CORR_STAT'),
-                   PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
-                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
-           VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene ),
-           NUME_MODE       =SIMP(statut='f',typ='I' ),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           COEF_MULT       =SIMP(statut='f',typ='R' ),
-           ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           DIRECTION       =SIMP(statut='f',typ='R',max='**'),
-           b_loca          =BLOC(condition= "DIRECTION != None",
-             regles=(EXCLUS('NOEUD','GROUP_NO'),),
-             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-             GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           ),
-           CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           D_FONC_DT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           D_FONC_DT2      =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         CHOC            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('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),
-           GROUP_NO_2      =SIMP(statut='f',typ=grno),
-           OBSTACLE        =SIMP(statut='o',typ=obstacle_sdaster ),
-           ORIG_OBST       =SIMP(statut='f',typ='R',min=3,max=3),
-           NORM_OBST       =SIMP(statut='o',typ='R',min=3,max=3),
-           ANGL_VRIL       =SIMP(statut='f',typ='R' ),
-           JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
-           DIST_1          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
-           DIST_2          =SIMP(statut='f',typ='R',val_min=0.E+0 ),
-           SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
-           SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
-           REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
-           RIGI_NOR        =SIMP(statut='f',typ='R' ),
-           AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           AMOR_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-
-           LAME_FLUIDE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           b_lame          =BLOC(condition="LAME_FLUIDE=='OUI'",
-               ALPHA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-               BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-               CHI             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-               DELTA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-         ),
-         VERI_CHOC       =FACT(statut='f',max='**',
-           STOP_CRITERE    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           SEUIL           =SIMP(statut='f',typ='R',defaut= 0.5 ),
-         ),
-         FLAMBAGE        =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
-                   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),
-           GROUP_NO_2      =SIMP(statut='f',typ=grno),
-           OBSTACLE        =SIMP(statut='o',typ=obstacle_sdaster ),
-           ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
-           NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
-           ANGL_VRIL       =SIMP(statut='f',typ='R' ),
-           JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
-           DIST_1          =SIMP(statut='f',typ='R' ),
-           DIST_2          =SIMP(statut='f',typ='R' ),
-           REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
-           RIGI_NOR        =SIMP(statut='f',typ='R' ),
-           FNOR_CRIT       =SIMP(statut='f',typ='R' ),
-           FNOR_POST_FL    =SIMP(statut='f',typ='R' ),
-           RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
-         ),
-         ANTI_SISM       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
-                   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),
-           GROUP_NO_2      =SIMP(statut='f',typ=grno),
-           RIGI_K1         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           RIGI_K2         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           SEUIL_FX        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           C               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           PUIS_ALPHA      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           DX_MAX          =SIMP(statut='f',typ='R',defaut= 1. ),
-         ),
-         RELA_EFFO_DEPL  =FACT(statut='f',max='**',
-           NOEUD           =SIMP(statut='o',typ=no),
-           SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
-           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
-           RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         RELA_TRANSIS    =FACT(statut='f',max='**',
-           NOEUD           =SIMP(statut='o',typ=no),
-           SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
-           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
-           RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         RELA_EFFO_VITE  =FACT(statut='f',max='**',
-           NOEUD           =SIMP(statut='o',typ=no),
-           SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
-           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
-           RELATION        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         b_itmi          =BLOC(condition = "METHODE=='ITMI'",
-                regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
-                BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
-                NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
-                ETAT_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-                PREC_DUREE      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
-                CHOC_FLUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-                NB_MODE         =SIMP(statut='f',typ='I' ),
-                NB_MODE_FLUI    =SIMP(statut='f',typ='I' ),
-                NB_MODE_DIAG    =SIMP(statut='f',typ='I' ),
-                TS_REG_ETAB     =SIMP(statut='f',typ='R' ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-         IMPRESSION      =FACT(statut='f',max='**',
-           regles=(EXCLUS('TOUT','NIVEAU'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NIVEAU          =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
-           INST_INIT       =SIMP(statut='f',typ='R' ),
-           INST_FIN        =SIMP(statut='f',typ='R' ),
-         ),
-         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.      
-# ======================================================================
-# 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",) ),
-         CO              =SIMP(statut='f',typ=assd,validators=NoRepeat(),max='**'),
-         TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ),
-         FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
-         PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-5"),
-)  ;
-#& 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.      
-# ======================================================================
-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 14/10/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.      
-# ======================================================================
-def extr_mode_prod(FILTRE_MODE,**args):
-  vale=FILTRE_MODE[0]['MODE']
-  if AsType(vale) == mode_meca   : return mode_meca
-  if AsType(vale) == mode_meca_c : return mode_meca_c
-  if AsType(vale) == mode_gene   : return mode_gene
-  raise AsException("type de concept resultat non prevu")
-
-EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
-               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',),),
-           MODE            =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ),
-           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
-           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           NUME_MODE_EXCLU =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           FREQ_MIN        =SIMP(statut='f',typ='R' ),
-           CRIT_EXTR       =SIMP(statut='f',typ='TXM',into=("MASS_EFFE_UN","MASS_GENE") ),
-           b_freq_min      =BLOC(condition = "FREQ_MIN != None",  
-             FREQ_MAX        =SIMP(statut='o',typ='R' ),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           ),
-           b_crit_extr     =BLOC(condition = "CRIT_EXTR != None",
-             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='**'),
-         IMPRESSION      =FACT(statut='f',
-           CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
-         ),
-)  ;
-#& 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 extr_resu_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) == acou_harmo   : return acou_harmo
-  if AsType(RESULTAT) == mode_meca    : return mode_meca
-  if AsType(RESULTAT) == mode_acou    : return mode_acou
-  if AsType(RESULTAT) == mode_stat :    return mode_stat
-  if AsType(mode_stat) == mode_stat_depl :    return mode_stat_depl
-  if AsType(mode_stat) == mode_stat_acce :    return mode_stat_acce
-  if AsType(mode_stat) == mode_stat_forc :    return mode_stat_forc
-  if AsType(RESULTAT) == mult_elas    : return mult_elas
-  if AsType(RESULTAT) == fourier_elas : return fourier_elas
-  raise AsException("type de concept resultat non prevu")
-
-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 ) ),
-
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                                   fr="Liste des paramètres de sensibilité.",
-                                   ang="List of sensitivity parameters"),
-
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(  UN_PARMI('NUME_ORDRE', 'INST', 'FREQ', 'NUME_MODE',
-                        'NOEUD_CMP', 'LIST_INST', 'LIST_FREQ', 'LIST_ORDRE',
-                        'NOM_CAS', 'LIST_ARCH', 'PAS_ARCH' ),
-                     EXCLUS( 'CHAM_EXCLU','NOM_CHAM' ),   ),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),defaut="RELATIF"),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
-           PAS_ARCH        =SIMP(statut='f',typ='I'),
-           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'),
-                               ),
-
-         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 fact_grad_prod(MATR_ASSE,**args):
-  if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
-  if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
-  if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
-  raise AsException("type de concept resultat non prevu")
-
-FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,
-            UIinfo={"groupes":("Résolution",)},
-               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,
-                                    matr_asse_pres_r) ),
-         PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
-         NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),  
-         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 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-
-from Macro.macr_fiab_impr_ops import macr_fiab_impr_ops
-
-MACR_FIAB_IMPR=MACRO(nom="MACR_FIAB_IMPR",op=macr_fiab_impr_ops,
-                     docu="U7.04.41",UIinfo={"groupe":("Impression",)},
-                     fr="Imprimer les valeurs à transmettre au logiciel de fiabilité.",
-                     ang="Print values for the fiability software",
-#
-# 1. Le niveau d'information
-#
-   INFO           = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. Impression de la valeur de la cible
-#
-# 2.1. ==> La table contenant la valeur à imprimer
-#
-   TABLE_CIBLE = SIMP(statut='o',typ=table_sdaster,
-                 fr="Table contenant la valeur cible.",
-                 ang="Table which includes the target value."),
-#
-# 2.2. ==> Le nom du paramètre associé à la valeur cible dans cette table
-#
-   NOM_PARA_CIBLE = SIMP(statut='o',typ='TXM',
-                    fr="Nom du paramètre associé à la valeur cible.",
-                    ang="Name of the parameter connected to the target value."),
-#
-# 3. Impressions des valeurs des éventuels gradients
-#
-   GRADIENTS = FACT(statut='f',min=1,max='**',
-#
-# 3.1. ==> La table contenant la valeur à imprimer
-#
-       TABLE = SIMP(statut='o',typ=table_sdaster,
-                    fr="Table contenant le gradient.",
-                    ang="Table which includes the gradient."),
-#
-# 3.2. ==> Le paramètre sensible
-#
-       PARA_SENSI = SIMP(statut='o',typ=(para_sensi,theta_geom),
-                       fr="Paramètre sensible associé au gradient.",
-                       ang="Sensitivity parameter connected to the gradient."),
-#
-# 3.3. ==> Le nom du paramètre associé au gradient dans cette table
-#
-       NOM_PARA = SIMP(statut='o',typ='TXM',
-                       fr="Nom du paramètre associé au gradient.",
-                       ang="Name of the parameter connected to the gradient."),
-#
-         ),
-#
-);
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# 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 fact_ldlt_prod(MATR_ASSE,**args):
-  if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
-  if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
-  if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
-  if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
-  if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
-  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="Factoriser une matrice assemblée en un produit de deux matrices triangulaires",
-               reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
-                 EXCLUS('BLOC_FIN','DDL_FIN'),),
-         MATR_ASSE       =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) ),
-         STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         NPREC           =SIMP(statut='f',typ='I',defaut=8,val_min=0,),
-         PRE_COND        =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
-         BLOC_DEBUT      =SIMP(statut='f',typ='I',val_min=1,),
-         DDL_DEBUT       =SIMP(statut='f',typ='I',val_min=1,),
-         BLOC_FIN        =SIMP(statut='f',typ='I',val_min=1,),
-         DDL_FIN         =SIMP(statut='f',typ='I',val_min=1,),
-#
-         EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-
-#        mots clés pour solveur MUMPS :
-         TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-         PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-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",) ), 
-         RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
-                               statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-         PERFORMANCE     =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
-                               statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
-         INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
-                               statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
-         UNITE           =SIMP(statut='f',typ='I',defaut=6),  
-)  ;
-#& 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.      
-# ======================================================================
-FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction_sdaster,
-                    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/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 form_pyth_ops(self,d):
-  import types,string
-  NOM_PARA=self.etape['NOM_PARA']
-  VALE    =self.etape['VALE']
-  if type(NOM_PARA) not in (types.ListType,types.TupleType) : NOM_PARA=[NOM_PARA,]
-  if self.sd==None : return
-  texte=string.join(VALE.splitlines())
-
-  self.sd.setFormule(NOM_PARA,string.strip(texte))
-
-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 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.      
-# ======================================================================
-# RESPONSABLE CAMBIER S.CAMBIER
-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=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",
-           DUREE_TIRAGE    =SIMP(statut='f',typ='R' ),
-           FREQ_INIT       =SIMP(statut='f',typ='R' ),
-           FREQ_FIN        =SIMP(statut='f',typ='R' ),
-             ),
-         NB_POIN         =SIMP(statut='f',typ='I'),
-         NB_TIRAGE       =SIMP(statut='f',typ='I',defaut= 1 ),
-         INIT_ALEA       =SIMP(statut='f',typ='I'),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& 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.      
-# ======================================================================
-IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
-                 fr="Impression des charges mécaniques de type ddl imposés et relations linéaires entre les ddl",
-                 UIinfo={"groupes":("Fonction",)},
-         UNITE           =SIMP(statut='f',typ='I',defaut=30),  
-         FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ),
-         VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
-         CHARGE          =SIMP(statut='o',typ=char_meca,validators=NoRepeat(),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.      
-# ======================================================================
-IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,
-            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' ),
-         MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
-         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='**'),
-         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",
-                                   into=("RELATIF","ABSOLU") ),
-         ),
-         IMPRESSION      =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO', ),),
-           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='**'),
-         ),
-         AMOR            =SIMP(statut='o',typ='R',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-IMPR_CO=PROC(nom="IMPR_CO",op=17,
-            UIinfo={"groupes":("Impression",)},
-             fr="Imprimer tous les objets JEVEUX qui constituent un concept utilisateur existant (pour 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") ),
-         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 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.      
-# ======================================================================
-IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
-            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),  
-         GENE            =FACT(statut='o',max='**',
-           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                          'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
-                   EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                          'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
-                   EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
-                          'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
-                   EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
-                   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, 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 ),
-           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 ),
-           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") ),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',max='**'),
-           TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
-           NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
-           SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
-           INFO_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
-           INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
-         ),
-)  ;
-#& 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.      
-# ======================================================================
-IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,
-            UIinfo={"groupes":("Impression",)},
-                 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") ),
-         b_objet      =BLOC(condition = "(ENTITE=='OBJET')",
-            NOMOBJ          =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),  
-            NUMOC           =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),  
-            NOMOC           =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),  
-         ),
-         b_attribut   =BLOC(condition = "(ENTITE=='ATTRIBUT')",
-            NOMOBJ          =SIMP(fr="nom de collection",statut='f',typ='TXM' ),  
-            NOMATR          =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
-                                  into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
-                                      '$$LONO','$$LUTI','$$NUM') ),
-         ),
-         b_systeme    =BLOC(condition = "(ENTITE=='SYSTEME')",
-            CLASSE          =SIMP(statut='o',typ='TXM',into=('G','V','L') ),  
-            NOMATR          =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',   
-                                  into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$MARQ',
-                                      '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
-                                      '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
-                                      '$$TLEC','$$TECR','$$IADM','$$ACCE','$$USADI') ),
-         ),
-         b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')",
-            CLASSE          =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '),  
-         ),
-         b_disque     =BLOC(condition = "(ENTITE=='DISQUE')",
-            CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '),  
-         ),
-         IMPRESSION      =FACT(statut='f',
-           NOM             =SIMP(statut='f',typ='TXM' ),  
-           UNITE           =SIMP(statut='f',typ='I'),  
-         ),
-         COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
-)  ;
-#& 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.      
-# ======================================================================
-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") ),
-
-         b_plexus         =BLOC(condition = "FORMAT == 'IDEAS'",
-           UNITE           =SIMP(statut='f',typ='I',defaut=30),
-           VERSION          =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
-         ),             
-
-         b_ideas         =BLOC(condition = "FORMAT == 'PLEXUS'",
-           UNITE           =SIMP(statut='f',typ='I',defaut=30),
-           VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
-         ),                      
-
-         b_miss_3d       =BLOC(condition = "FORMAT == 'MISS_3D'",
-           regles=(EXCLUS('AMOR_REDUIT','LIST_AMOR'),),
-           UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
-           SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
-           AMOR_REDUIT     =SIMP(statut='f',typ='R'  ,max='**'),
-           LIST_AMOR       =SIMP(statut='f',typ=listr8_sdaster ),
-           GROUP_MA_INTERF =SIMP(statut='o',typ=grma ,max='**'),
-           GROUP_MA_FLU_STR=SIMP(statut='f',typ=grma,max='**'),
-           GROUP_MA_FLU_SOL=SIMP(statut='f',typ=grma,max='**'),
-           GROUP_MA_SOL_SOL=SIMP(statut='f',typ=grma,max='**'),
-           IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-
-         b_cadyro        =BLOC(condition = "FORMAT == 'CADYRO'",
-           SQUELETTE       =SIMP(statut='f',typ=squelette ),
-           UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
-           UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
-           UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 28 ),
-           IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-
-)  ;
-#& 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.
-# ======================================================================
-IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
-                  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'),),
-# ======================================================================
-   MATR_ELEM       =FACT(statut='f',max='**',
-#
-           MATRICE     =SIMP(statut='o',typ=(matr_elem, vect_elem)),
-           FORMAT      =SIMP(statut='f',typ='TXM',defaut="IDEAS",
-                                 into=("IDEAS","RESULTAT") ),
-#
-         b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
-           UNITE       =SIMP(statut='f',typ='I',defaut=30),  
-           VERSION     =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ),  ),
-#
-         b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
-                             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
-           UNITE       =SIMP(statut='f',typ='I',defaut=8),
-           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='**'),
-           MAILLE      =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
-           GROUP_MA    =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
-           NOM_CMP     =SIMP(statut='f',typ='TXM',max='**'),
-           GRAIN       =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD","MAILLE") ),
-           NB_CHIFFRE  =SIMP(statut='f',typ='I',defaut= 4 ),  ),
-         ),
-# ======================================================================
-   MATR_ASSE       =FACT(statut='f',max='**',
-#
-           MATRICE     =SIMP(statut='o',typ=matr_asse_gd),
-           FORMAT      =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","RESULTAT") ),
-# 
-         b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
-           UNITE       =SIMP(statut='f',typ='I',defaut=30),  
-           VERSION     =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,), ),  ),
-# 
-         b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
-                             regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
-           UNITE       =SIMP(statut='f',typ='I',defaut=8),
-           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='**'),
-           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',defaut="SOUS_MATRICE",into=("SOUS_MATRICE","LIGNE","COLONNE") ),
-           NOM_CMP     =SIMP(statut='f',typ='TXM',max='**'),
-           GRAIN       =SIMP(statut='f',typ='TXM',defaut="VALEUR",into=("VALEUR","NOEUD") ),
-           NB_CHIFFRE  =SIMP(statut='f',typ='I',defaut= 4 ),
-           VALE_ZERO   =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  ),
-         ),
-# ======================================================================
-)  ;
-#& 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.      
-# ======================================================================
-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_sdaster),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           COEF_MULT       =SIMP(statut='f',typ='R' ),
-         ),
-         EXCIT_SOL       =FACT(statut='f',max='**',
-           DIRECTION       =SIMP(statut='o',typ='R',min=3,max=3),
-           FONC_SIGNAL     =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",
-                                 into=("DEPL","VITE","ACCE","FORC",) ),
-         ),
-         INST_INIT       =SIMP(statut='f',typ='R' ),
-         INST_FIN        =SIMP(statut='f',typ='R' ),
-         FREQ_INIT       =SIMP(statut='f',typ='R' ),
-         FREQ_FIN        =SIMP(statut='f',typ='R' ),
-         PAS             =SIMP(statut='o',typ='R' ),
-         UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-IMPR_RESU=PROC(nom="IMPR_RESU",op=39,
-            UIinfo={"groupes":("Impression",)},
-               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",
-                                 into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","GMSH") ),
-
-         b_format_resultat  =BLOC(condition="FORMAT=='RESULTAT'",fr="unité logique d'impression au format RESULTAT",
-           UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-         ),
-
-         b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="unité logique d'impression et version IDEAS",
-           UNITE           =SIMP(statut='f',typ='I',defaut=30),  
-           VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
-         ),
-
-         b_format_aster  =BLOC(condition="FORMAT=='ASTER'",fr="unité logique d'impression au format ASTER",
-           UNITE           =SIMP(statut='f',typ='I',defaut=26),  
-         ),
-
-         b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="unité logique d'impression et version CASTEM",
-           UNITE           =SIMP(statut='f',typ='I',defaut=37),  
-           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
-         ),
-
-         b_format_ensight  =BLOC(condition="FORMAT=='ENSIGHT'",fr="unité logique d'impression au format ENSIGHT",
-           UNITE           =SIMP(statut='f',typ='I',defaut=31),  
-         ),
-
-         b_format_med  =BLOC(condition="FORMAT=='MED'",fr="unité logique d'impression au format MED",
-           UNITE           =SIMP(statut='f',typ='I',defaut=80),  
-         ),
-
-         b_format_gmsh  =BLOC(condition="FORMAT=='GMSH'",fr="unité logique d'impression et version GMSH",
-           UNITE           =SIMP(statut='f',typ='I',defaut=19),  
-           VERSION         =SIMP(statut='f',typ='R',defaut=1.2,into=(1.0,1.2)),
-         ),
-
-         RESU            =FACT(statut='o',max='**',
-
-           regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
-                   EXCLUS('CHAM_GD','RESULTAT'),),
-           MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster,squelette)),
-           INFO_MAILLAGE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CHAM_GD         =SIMP(statut='f',typ=cham_gd_sdaster),
-           RESULTAT        =SIMP(statut='f',typ=resultat_sdaster),# CO() sd a creer !!!
-
-           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'),
-                     EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
-                            'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
-             TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
-             NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=C_NOM_CHAM_INTO()),
-
-             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='**'),
-             LIST_ORDRE      =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='**'),
-             ANGL            =SIMP(statut='f',typ='R',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),
-
-             b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
-               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
-               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             ),
-           ),
-###
-           b_parametres    =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
-             regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
-             INFO_RESU       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-             TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
-             NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
-             FORM_TABL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON","EXCEL") ),
-           ),
-###
-           b_cmp=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
-           ((FORMAT == 'CASTEM')or(FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS')or(FORMAT == 'ENSIGHT')or(FORMAT == 'MED'))""",
-                                fr="sélection des composantes",
-             regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
-             TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-           ),
-###
-           b_gmsh=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and((FORMAT == 'GMSH'))""",
-                                fr="sélection des composantes et des entités toplogiques",
-             NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           ),
-###
-           b_topologie=BLOC(condition="""((CHAM_GD != None)or(RESULTAT != None))and\
-           ((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='**'),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-             GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           ),
-###
-           b_valeurs=BLOC(condition="(FORMAT == 'RESULTAT')",
-                               fr="sélection sur les valeurs",
-             VALE_MAX        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             VALE_MIN        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             BORNE_SUP       =SIMP(statut='f',typ='R'),
-             BORNE_INF       =SIMP(statut='f',typ='R'),
-             IMPR_COOR       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-             FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
-           ),
-
-           SOUS_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 
-#            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.      
-# ======================================================================
-IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de valeurs propres dans un intervalle donné",
-            UIinfo={"groupes":("Résolution",)},
-         MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
-         MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
-         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
-                               fr="Type d analyse" ),
-         b_dynamique  =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
-                            fr="Recheche du nombre de fréquences propres",
-             FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
-             FREQ_MAX        =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
-         ),
-         b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
-                            fr="Recherche du nombre de charges critiques",
-             CHAR_CRIT_MIN   =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
-             CHAR_CRIT_MAX   =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
-         ),
-         NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
-         NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
-         UNITE           =SIMP(statut='f',typ='I',defaut=8),  
-         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 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-from Macro.impr_table_ops import impr_table_ops
-
-IMPR_TABLE=MACRO(nom="IMPR_TABLE",op=impr_table_ops,sd_prod=None,
-            UIinfo={"groupes":("Impression",)},
-                fr="Impression du contenu d'une table dans un fichier",
-           regles=(DERIVABLE("TABLE"),),
-   TABLE          =SIMP(statut='o',typ=table_sdaster),
-   SENSIBILITE    =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                         fr="Liste des paramètres de sensibilité.",
-                         ang="List of sensitivity parameters"),
-   FORMAT         =SIMP(statut='f',typ='TXM',defaut="TABLEAU",
-                         into=("TABLEAU","ASTER","TABLEAU_CROISE","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_unite        =BLOC(condition = "FORMAT != 'XMGRACE'",
-      UNITE          =SIMP(statut='f',typ='I',defaut=8,
-                           fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
-   ),
-   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'),
-      ),
-      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 ),
-      ),
-   ),
-   TRI            =FACT(statut='f',
-      NOM_PARA       =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
-      ORDRE          =SIMP(statut='f',typ='TXM',defaut="CROISSANT", # max='**',
-                           into=("CROISSANT","DECROISSANT") ),
-   ),
-   PAGINATION     =SIMP(statut='f',typ='TXM',max='**'),
-   FORMAT_R       =SIMP(statut='f',typ='TXM',defaut="E12.5"),
-   FORMAT_C       =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",
-                              into=("MODULE_PHASE","REEL_IMAG") ),
-   NOM_PARA       =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-   IMPR_FONCTION  =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-
-   # mise en forme pour les formats qui passent par Graph
-   b_forme         =BLOC(condition = "FORMAT == 'XMGRACE'",
-                         fr="Données de mise en forme du graphique",
-      # pour la courbe
-      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", ),
-      # format 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" ),
-   ),
-
-   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.      
-# ======================================================================
-INCLUDE=MACRO(nom="INCLUDE",op=ops.build_include,
-            UIinfo={"groupes":("Gestion du travail",)},
-             fr="Débranchement vers un fichier de commandes secondaires",
-             sd_prod=ops.INCLUDE,op_init=ops.INCLUDE_context,fichier_ini=1,
-         UNITE = SIMP(statut='o',typ='I'),
-         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.      
-# ======================================================================
-INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,
-            UIinfo={"groupes":("Modélisation",)},
-         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") ),
-         VARIANTE        =SIMP(statut='o',typ='TXM',     
-                               into=("A","B","C","D","E","F","G","H","I","J",    
-                                     "K","L","M","N","O","P","Q","R","S","T","U","V",   
-                                     "W","X","Y","Z",) ),
-         TYPE_VALE       =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ),
-         NOM_MATER       =SIMP(statut='o',typ='TXM' ),  
-         UNITE           =SIMP(statut='f',typ='I',defaut= 32 ),  
-         EXTRACTION      =FACT(statut='f',max=99,
-           COMPOR          =SIMP(statut='o',typ='TXM' ),  
-           TEMP_EVAL       =SIMP(statut='o',typ='R' ),  
-         ),
-         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 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe_sdaster,
-            UIinfo={"groupes":("Post traitements",)},
-                  fr="Définition d'une courbe dans un maillage 2D",reentrant='n',
-
-         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster) ),
-
-         regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),
-                 AU_MOINS_UN('DEFI_SEGMENT','DEFI_ARC','DEFI_CHEMIN'),
-                 PRESENT_ABSENT('DEFI_CHEMIN','DEFI_SEGMENT','DEFI_ARC'),
-                 PRESENT_ABSENT('DEFI_SEGMENT','NOEUD_ORIG','GROUP_NO_ORIG'),
-                 PRESENT_ABSENT('DEFI_ARC','NOEUD_ORIG','GROUP_NO_ORIG'),
-                 EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
-                 EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
-                 EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
-
-         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='**'),
-
-         DEFI_SEGMENT    =FACT(statut='f',max='**',
-           regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
-                   UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
-           ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
-           NOEUD_ORIG      =SIMP(statut='f',typ=no,),
-           GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
-           EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
-           NOEUD_EXTR      =SIMP(statut='f',typ=no,),
-           GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
-         ),
-
-         DEFI_ARC        =FACT(statut='f',max='**',
-           regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
-                   UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
-                   UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),               
-                   PRESENT_PRESENT('RAYON','SECTEUR'),),
-           CENTRE          =SIMP(statut='f',typ='R',min=2,max=2),  
-           NOEUD_CENTRE    =SIMP(statut='f',typ=no,),
-           GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,),
-           RAYON           =SIMP(statut='f',typ='R',val_min=0.E+0),  
-           SECTEUR         =SIMP(statut='f',typ='R',min=2,max=2,
-                                 val_min=-180.E+0,val_max=180E+0),  
-           ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
-           NOEUD_ORIG      =SIMP(statut='f',typ=no,),
-           GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
-           EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
-           NOEUD_EXTR      =SIMP(statut='f',typ=no,),
-           GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",    
-                                 into=("RELATIF","ABSOLU",) ),
-         ),
-
-         DEFI_CHEMIN     =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='**'),
-         ),
-
-         NOEUD_ORIG      =SIMP(statut='f',typ=no,),
-         GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
-         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE G8BHHXD X.DESROCHES
-INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface_sdaster,
-            UIinfo={"groupes":("Post traitements",)},
-                  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='**'),
-         MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-         DEFI_SEGMENT    =FACT(statut='o',max='**',
-           regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
-                   UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
-           ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
-           NOEUD_ORIG      =SIMP(statut='f',typ=no,),
-           GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,),
-           EXTREMITE       =SIMP(statut='f',typ='R',min=3,max=3),  
-           NOEUD_EXTR      =SIMP(statut='f',typ=no,),
-           GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,),
-         ),
-         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
-         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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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 lire_champ_prod(TYPE_CHAM=None,**args):
-# Remarque : si cette liste évolue, il faut penser à mettre à jour son
-#            homologue dans macr_adap_mail
-  import string
-#  
-  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 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,),  
-         b_format =BLOC(condition = "FORMAT == 'MED'",
-         regles=( UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
-                  PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),
-                  EXCLUS('NUME_ORDRE','INST'),
-                  EXCLUS('NUME_PT','INST'),),
-            NOM_MED      =SIMP(statut='o',typ='TXM', ),
-            NOM_CMP_IDEM =SIMP(statut='f',typ='TXM',into=("OUI",), ),
-            NOM_CMP      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
-            NOM_CMP_MED  =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',),
-            NUME_PT      =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',),
-            NUME_ORDRE   =SIMP(statut='f',typ='I'  ,validators=NoRepeat(),max='**',
-                           fr="Numero d ordre du champ à lire",ang="Rank of the field to be read" ),
-            INST         =SIMP(statut='f',typ='R',fr="Instant associé",ang="Instant" ),
-#
-            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" ),),
-#
-            NOM_MAIL_MED =SIMP(statut='f',typ='TXM',),
-                  ),
-#        Remarque : si cette liste évolue, il faut penser à mettre à jour son
-#                   homologue dans macr_adap_mail
-         TYPE_CHAM       =SIMP(statut='o',typ='TXM',into=C_TYPE_CHAM_INTO()),
-         b_modele =BLOC(condition = "TYPE_CHAM!=None and TYPE_CHAM[0:2] == 'EL'",
-            MODELE      =SIMP(statut='o',typ=modele_sdaster, ),
-                  ),
-         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.      
-# ======================================================================
-
-from Macro.lire_fonction_ops import lire_fonction_ops
-
-def lire_fonction_prod(self,TYPE,**args):
-  if   (TYPE == 'FONCTION')  : return fonction_sdaster
-  elif (TYPE == 'FONCTION_C'): return fonction_c
-  elif (TYPE == 'NAPPE'   )  : return nappe_sdaster
-  raise AsException("type de concept resultat non prevu")
-
-LIRE_FONCTION=MACRO(nom="LIRE_FONCTION",op=lire_fonction_ops,sd_prod=lire_fonction_prod,
-                   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"  ),
-         TYPE            =SIMP(statut='f',typ='TXM',into=("FONCTION","FONCTION_C","NAPPE"),defaut="FONCTION"  ),
-         SEPAR           =SIMP(statut='f',typ='TXM',into=("None",",",";","/"),defaut="None" ),
-         INDIC_PARA      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,1]),
-         b_fonction      =BLOC(condition = "TYPE=='FONCTION' ",
-           INDIC_RESU      =SIMP(statut='f',typ='I',min=2,max=2,defaut=[1,2]), ),
-         b_fonction_c    =BLOC(condition = "TYPE=='FONCTION_C' ",
-           FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="REEL_IMAG",into=("REEL_IMAG","MODULE_PHASE") ),
-           b_reel_imag     =BLOC(condition = "FORMAT_C=='REEL_IMAG' ",
-             INDIC_REEL      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
-             INDIC_IMAG      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ) ,
-           b_modu_phas     =BLOC(condition = "FORMAT_C=='MODULE_PHASE' ",
-             INDIC_MODU      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,2]),
-             INDIC_PHAS      =SIMP(statut='o',typ='I',min=2,max=2,defaut=[1,3]), ), ),
-         b_nappe         =BLOC(condition = "TYPE=='NAPPE' ",
-           NOM_PARA_FONC   =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
-           INDIC_ABSCISSE  =SIMP(statut='o',typ='I',min=2,max=2,),
-           INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
-           PROL_DROITE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
-           PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
-           DEFI_FONCTION   =FACT(statut='f',max='**',
-             INDIC_RESU      =SIMP(statut='o',typ='I',min=2,max=2,),),  ),
-         UNITE           =SIMP(statut='o',typ='I' ),
-         NOM_PARA        =SIMP(statut='o',typ='TXM',into=C_PARA_FONCTION() ),
-         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
-         INTERPOL        =SIMP(statut='f',typ='TXM',max=2,defaut="LIN",into=("NON","LIN","LOG") ),
-         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") ),
-         VERIF           =SIMP(statut='f',typ='TXM',defaut="CROISSANT",into=("CROISSANT","NON") ),
-         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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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_inte_spec_ops import lire_inte_spec_ops
-
-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' ),
-         FORMAT          =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ),
-         NOM_PARA        =SIMP(statut='f',typ='TXM',defaut="FREQ",
-                               into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
-                                     "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
-         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="DSP" ),
-         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/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
-LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage_sdaster,
-                   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",)},
-#
-         UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
-#
-         FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED"),
-                            fr="Format du fichier : ASTER ou MED.",
-                            ang="Format of the file : ASTER or MED.",),
-#
-         ABSC_CURV       =FACT(statut='f',min=0,
-               TOUT          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-#
-         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 ),  
-         ),
-#
-         b_format_med =BLOC( condition = " ( FORMAT == 'MED' ) " ,
-                           fr="Informations complémentaires pour la lecture MED.",
-                           ang="Further information for MED readings.",
-#
-# Pour une lecture dans un fichier MED, on peut préciser le nom sous lequel
-# le maillage y a été enregistré. Par défaut, on va le chercher sous le nom du concept à créer.
-#
-              NOM_MED    = SIMP(statut='f',typ='TXM',
-                            fr="Nom du maillage dans le fichier MED.",
-                            ang="Name of the mesh into the MED file.",),
-#
-              INFO_MED   = SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
-                           ) ,
-#
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-#
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-def lire_miss_3d_prod(TYPE_RESU,**args):
-  if TYPE_RESU == "TRANS" : return dyna_trans
-  if TYPE_RESU == "HARMO" : return dyna_harmo
-  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="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 ),
-         UNITE           =SIMP(statut='f',typ='I',defaut= 27 ),
-         NOM             =SIMP(statut='f',typ='TXM' ),
-         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
-         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.      
-# ======================================================================
-LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
-                 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'),),
-         UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
-         FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
-         MAIL_PLEXUS     =SIMP(statut='o',typ=maillage_sdaster ),
-         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
-         MODELE          =SIMP(statut='o',typ=modele_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 ),
-         b_prec_crit     =BLOC(condition = "LIST_INST != None or INST != None",
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
-                                   into=("RELATIF","ABSOLU") ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& 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.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-
-def lire_resu_prod(TYPE_RESU,**args):
-  if TYPE_RESU == "EVOL_CHAR" :  return evol_char
-  if TYPE_RESU == "EVOL_THER" :  return evol_ther
-  if TYPE_RESU == "EVOL_ELAS" :  return evol_elas
-  if TYPE_RESU == "EVOL_NOLI" :  return evol_noli
-  if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
-  if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
-  if TYPE_RESU == "HARM_GENE" :  return harm_gene
-  if TYPE_RESU == "MODE_MECA" :  return mode_meca
-  if TYPE_RESU == "MODE_MECA_C" : return mode_meca_c
-  raise AsException("type de concept resultat non prevu")
-
-# pour éviter d'écrire 3 fois cette liste :
-def l_nom_cham_pas_elga(): return (
-     "ACCE", "ACCE_ABSOLU", "CRIT_ELNO_RUPT", "DCHA_ELNO_SIGM",
-     "DCHA_NOEU_SIGM", "DEDE_ELNO_DLDE", "DEDE_NOEU_DLDE", "DEGE_ELNO_DEPL", "DEGE_NOEU_DEPL",
-     "DEPL", "DEPL_ABSOLU", "DESI_ELNO_DLSI", "DESI_NOEU_DLSI", "DETE_ELNO_DLTE", "DETE_NOEU_DLTE",
-     "DURT_ELNO_META", "DURT_NOEU_META", "ECIN_ELEM_DEPL", "EFGE_ELNO_CART", "EFGE_ELNO_DEPL",
-     "EFGE_NOEU_CART", "EFGE_NOEU_DEPL", "ENDO_ELNO_SIGA", "ENDO_ELNO_SINO", "ENDO_NOEU_SINO",
-     "ENEL_ELNO_ELGA", "ENEL_NOEU_ELGA", "EPEQ_ELNO_TUYO", "EPGR_ELNO", "EPME_ELNO_DEPL",
-     "EPMG_ELNO_DEPL", "EPMG_NOEU_DEPL", "EPOT_ELEM_DEPL", "EPSA_ELNO", "EPSA_NOEU",
-     "EPSG_ELNO_DEPL", "EPSG_NOEU_DEPL", "EPSI_ELNO_DEPL", "EPSI_ELNO_TUYO", "EPSI_NOEU_DEPL",
-     "EPSP_ELNO", "EPSP_ELNO_ZAC", "EPSP_NOEU", "EPSP_NOEU_ZAC", "EQUI_ELNO_EPME", "EQUI_ELNO_EPSI",
-     "EQUI_ELNO_SIGM", "EQUI_NOEU_EPME", "EQUI_NOEU_EPSI", "EQUI_NOEU_SIGM", "ERRE_ELEM_NOZ1",
-     "ERRE_ELEM_NOZ2", "ERRE_ELNO_ELGA", "ERRE_NOEU_ELGA", "ERTH_ELEM_TEMP", "ERTH_ELNO_ELEM",
-     "ETOT_ELEM", "ETOT_ELNO_ELGA", "FLUX_ELNO_TEMP", "FLUX_NOEU_TEMP", "FORC_NODA", "FSUR_2D",
-     "FSUR_3D", "FVOL_2D", "FVOL_3D", "GRAD_NOEU_THETA", "HYDR_ELNO_ELGA", "HYDR_NOEU_ELGA",
-     "INTE_ELNO_ACTI", "INTE_ELNO_REAC", "INTE_NOEU_ACTI", "INTE_NOEU_REAC", "IRRA",
-     "META_ELNO_TEMP", "META_NOEU_TEMP", "PMPB_ELNO_SIEF", "PMPB_NOEU_SIEF",
-     "PRES", "PRES_DBEL_DEPL", "PRES_ELNO_DBEL", "PRES_ELNO_IMAG", "PRES_ELNO_REEL",
-     "PRES_NOEU_DBEL", "PRES_NOEU_IMAG", "PRES_NOEU_REEL",
-     "RADI_ELNO_SIGM", "RADI_NOEU_SIGM", "REAC_NODA",
-     "SIEF_ELNO", "SIEF_ELNO_ELGA", "SIEF_NOEU", "SIEF_NOEU_ELGA", "SIEQ_ELNO_TUYO",
-     "SIGM_ELNO_CART", "SIGM_ELNO_COQU", "SIGM_ELNO_DEPL", "SIGM_ELNO_SIEF",
-     "SIGM_ELNO_TUYO", "SIGM_ELNO_ZAC", "SIGM_NOEU_CART", "SIGM_NOEU_COQU",
-     "SIGM_NOEU_DEPL", "SIGM_NOEU_SIEF", "SIGM_NOEU_ZAC", "SIGM_NOZ1_ELGA",
-     "SIGM_NOZ2_ELGA", "SIPO_ELNO_DEPL", "SIPO_ELNO_SIEF", "SIPO_NOEU_DEPL",
-     "SIPO_NOEU_SIEF", "SIRE_ELNO_DEPL", "SIRE_NOEU_DEPL", "TEMP", "THETA",
-     "VALE_CONT", "VALE_NCOU_MAXI", "VARI_ELNO", "VARI_ELNO_COQU",
-     "VARI_ELNO_ELGA", "VARI_ELNO_TUYO", "VARI_NOEU", "VARI_NOEU_ELGA", "VARI_NON_LOCAL",
-     "VITE", "VITE_ABSOLU", "VITE_VENT",
-                           )
-
-LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,reentrant='n',
-            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 :
-#----------------------
-         TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI","MODE_MECA",
-                                                          "MODE_MECA_C","DYNA_TRANS","DYNA_HARMO","HARM_GENE",
-                                                          "EVOL_CHAR") ),
-
-         FORMAT          =SIMP(statut='o',typ='TXM',into=("IDEAS","IDEAS_DS58","ENSIGHT","MED") ),
-
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-
-         regles=(UN_PARMI('MAILLAGE','MODELE'),),
-         MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
-         MODELE          =SIMP(statut='f',typ=modele_sdaster),
-
-         NB_VARI         =SIMP(statut='f',typ='I' ),
-
-
-# 1) blocs selon le format choisi :
-#---------------------------------
-
-# 1-1 ideas dataset-58 :
-# ----------------------
-         b_dataset_58 = BLOC(condition="FORMAT=='IDEAS_DS58'",
-           UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
-         ),
-         b_dataset_58_b = BLOC(condition="(FORMAT=='IDEAS_DS58') and ((TYPE_RESU=='DYNA_TRANS') or\
-                                        (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))",
-           UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
-           NOM_CHAM=SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","EPSI_NOEU_DEPL","SIEF_NOEU",) ),
-           REDEFI_ORIENT=FACT(statut='f',max='**',
-                              regles=(PRESENT_PRESENT('CODE_DIR','DIRECTION','NOEUD',),),
-                              CODE_DIR =SIMP(statut='f',typ='I',into=(1,2,3,) ),
-                              DIRECTION=SIMP(statut='f',typ='R',min=3,max=3,),
-                              NOEUD    =SIMP(statut='f',typ=no,validators=NoRepeat(),max='**'),),
-         ),
-
-# 1-2 ideas  :
-# ---------
-         b_ideas         =BLOC(condition="FORMAT=='IDEAS'",
-           UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
-#           TEST            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
-           FORMAT_IDEAS    =FACT(statut='f',max='**',
-             regles=(UN_PARMI('POSI_INST','POSI_FREQ'),),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
-             NUME_DATASET    =SIMP(statut='f',typ='I',into=(55,57,2414) ),
-             RECORD_3        =SIMP(statut='f',typ='I',max=10),
-             RECORD_6        =SIMP(statut='f',typ='I',max=10),
-             RECORD_9        =SIMP(statut='f',typ='I',max=10),
-             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='**'),),
-         ),
-# 1-3 ensight :
-# -------------
-         b_ensight       =BLOC(condition="FORMAT=='ENSIGHT'",
-           NOM_FICHIER     =SIMP(statut='f',typ='TXM'),
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=l_nom_cham_pas_elga()),
-         ),
-
-# 1-4 med :
-# ---------
-         b_med           =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED",
-           UNITE           =SIMP(statut='f',typ='I',defaut= 81, fr="Le fichier est : fort.n.",),
-           FORMAT_MED      =FACT(statut='f',max='**',
-             regles=(ENSEMBLE('NOM_CMP','NOM_CMP_MED'),),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
-             NOM_CHAM_MED    =SIMP(statut='o',typ='TXM',               fr="Nom du champ dans le fichier MED.",  ),
-             NOM_CMP         =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans ASTER.", ),
-             NOM_CMP_MED     =SIMP(statut='f',typ='TXM',max='**',      fr="Nom des composantes dans MED.", ),
-           ),
-                  ),
-
-# 2) blocs selon le type du résultat :
-#---------------------------------
-         b_mode_meca     =BLOC(condition="(TYPE_RESU=='MODE_MECA')or(TYPE_RESU=='MODE_MECA_C')",
-           MATR_A         =SIMP(statut='f',typ=matr_asse_depl_r,),
-           MATR_B         =SIMP(statut='f',typ=matr_asse_depl_r,),
-         ),
-
-
-# 3) autres blocs :
-#---------------------------------
-         b_extrac        =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat",
-           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),),
-           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),
-           FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
-
-           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-3),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           ),
-         ),
-)  ;
-#& 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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_adap_mail_ops import macr_adap_mail_ops
-
-def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
-#
-# 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'],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",UIinfo={"groupe":("Maillage",)},
-#
-# 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="V8_2",
-                        into=("V8_2", "V8_N", "V8_N_PERSO"),
-                        fr="Version de HOMARD",
-                        ang="HOMARD release"),
-#
-# 3. Langue des messages produits par HOMARD
-#
-  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. 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)
-#
-  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" ),
-#
-# 4.2. Eventuellement, on peut produire un maillage annexe
-#      Actuellement, c'est le maillage n+1, mais de degré différent.
-#
-  MAILLAGE_NP1_ANNEXE = SIMP(statut='f',typ=CO,
-                             fr="Maillage annexe apres adaptation",
-                             ang="Additional mesh after adaptation" ),
-#
-# 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
-#
-  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" ),
-#
-# 6. Pour de l'adaptation libre, il faut un indicateur d'erreur
-#
-  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",
-#
-    regles=(UN_PARMI('CHAM_GD','RESULTAT_N')),
-#
-# 6.1. Repérage de la zone à raffiner à l'aide d'un indicateur
-#
-# 6.1.1. Sous forme de champ de grandeur
-#
-    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" ),
-#
-# 6.1.2. Sous forme de concept resultat_sdaster
-#
-    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" ),
-#
-    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" ),
-    ),
-#
-# 6.1.3. La composante retenue
-#
-    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",
-#
-      NOM_CMP_INDICA = SIMP(statut='o',typ='TXM',
-                            fr="Composante retenue pour l'indicateur d'erreur",
-                            ang="Selected component for error indicator" ),
-#
-    ),
-#
-# 6.1.4. Le paramètre temporel pour l'indicateur
-#
-    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)",
-#
-      regles=(EXCLUS('NUME_ORDRE','INST'),),
-#
-# 6.1.4.1. Soit le numero d'ordre
-#
-      NUME_ORDRE = SIMP(statut='f',typ='I',
-                        fr="Numero d ordre",
-                        ang="Rank" ),  
-#
-# 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" ),
-#
-# 6.1.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" ),
-      ),
-#
-    ),
-#
-  ) ,
-#
-# 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',
-                    fr="Niveau maximum de profondeur de raffinement",
-                    ang="Maximum level for refinement"),
-  ) ,
-#
-# 9.2. Pour le 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',
-                    fr="Niveau minimum de profondeur de déraffinement",
-                    ang="Minimum level for unrefinement"),
-  ) ,
-#
-# 10. 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="Information complémentaire sur la frontière",
-                      ang="Further information about boundary",
-#
-    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" ),
-#
-  ) ,
-#
-# 11. 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.",
-#
-# 11.1. Le nom du champ de grandeur qui contiendra le resultat de la mise a jour
-#
-    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"),
-#
-# 11.2. Le type du champ 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" ),
-#
-# 11.3. Le champ a interpoler
-#
-    regles=(UN_PARMI('CHAM_GD','RESULTAT')),
-#
-# 11.3.1. Sous forme de champ de grandeur
-#
-    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" ),
-#
-# 11.3.2. Sous forme de champ dans un resultat
-#
-    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" ),
-#
-    NOM_CHAM = SIMP(statut='f',typ='TXM',
-                    fr="Nom du champ à mettre à jour",
-                    ang="Name of the field to be updated" ),
-#
-# 11.4. Le paramètre temporel pour le champ a interpoler
-#
-    b_parametre_temporel = BLOC(condition="(RESULTAT != None)",
-                                fr="Choix éventuel du paramètre temporel pour l'indicateur",
-                                ang="Time selection for error indicator (option)",
-#
-      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" ),
-#
-      ),
-#
-    ),
-  ),
-#
-# 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"),
-                          fr="Nombre de noeuds et éléments du maillage",
-                          ang="Number of nodes and éléments in the mesh" ),
-#
-# 12.2. Determination de la qualité des éléments du maillage
-#
-  QUALITE        = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
-                          fr="Qualité du maillage",
-                          ang="Mesh quality" ),
-#
-# 12.3. Connexite du maillage
-#
-  CONNEXITE      = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON"),
-                          fr="Connexité du maillage.",
-                          ang="Mesh connexity." ),
-#
-# 12.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." ),
-#
-# 12.5. Controle de la non-interpenetration des éléments
-#
-  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." ),
-#
-# 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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 F1BHHAJ J.ANGLES
-from Macro.macr_ascouf_calc_ops import macr_ascouf_calc_ops
-def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU_THER,**args):
-  self.type_sdprod(MODELE,modele_sdaster)
-  if CHAM_MATER != None:self.type_sdprod(CHAM_MATER,cham_mater)
-  if CARA_ELEM  != None:self.type_sdprod(CARA_ELEM,cara_elem)
-  if FOND_FISS  != None:self.type_sdprod(FOND_FISS,fond_fiss)
-  if CHARGE     != None:self.type_sdprod(CHARGE,char_meca)
-  if RESU_THER  != None:self.type_sdprod(RESU_THER,evol_ther)
-  return evol_noli
-
-MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op=macr_ascouf_calc_ops,sd_prod=macr_ascouf_calc_prod,
-                      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'),),
-
-         TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
-                               into=("SAIN",
-                                     "FISS_COUDE",
-                                     "FISS_AXIS_DEB",
-                                     "SOUS_EPAIS_COUDE"
-                                     ) ),
-
-         CL_BOL_P2_GV    =FACT(statut='f',
-           ANGLE           =SIMP(statut='o',typ='R' ),
-           AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
-         ),
-
-         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster ),
-         MODELE          =SIMP(statut='o',typ=CO,),
-         CHAM_MATER      =SIMP(statut='f',typ=CO,),
-         CARA_ELEM       =SIMP(statut='f',typ=CO,),
-         FOND_FISS       =SIMP(statut='f',typ=CO,),
-         CHARGE          =SIMP(statut='f',typ=CO,),
-         RESU_THER       =SIMP(statut='f',typ=CO,),
-
-         AFFE_MATERIAU   =FACT(statut='o',max=3,
-           regles=(UN_PARMI('TOUT','GROUP_MA'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ),
-           MATER           =SIMP(statut='o',typ=mater_sdaster ),
-           TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-         ),
-
-         PRES_REP        =FACT(statut='f',
-           PRES            =SIMP(statut='o',typ='R' ),
-           EFFE_FOND_P1    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         ECHANGE         =FACT(statut='f',
-           COEF_H          =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-           TEMP_EXT        =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         TORS_P1         =FACT(statut='f',max=6,
-           regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
-           FX              =SIMP(statut='f',typ='R' ),
-           FY              =SIMP(statut='f',typ='R' ),
-           FZ              =SIMP(statut='f',typ='R' ),
-           MX              =SIMP(statut='f',typ='R' ),
-           MY              =SIMP(statut='f',typ='R' ),
-           MZ              =SIMP(statut='f',typ='R' ),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-
-         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',
-           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") ),
-         ),
-
-         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),
-           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
-         ),
-
-         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") ),
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
-           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-         ),
-
-         RECH_LINEAIRE   =FACT(statut='d',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
-         ),
-
-         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),
-         ),
-
-         THETA_3D        =FACT(statut='f',max='**',
-           R_INF           =SIMP(statut='o',typ='R' ),
-           R_SUP           =SIMP(statut='o',typ='R' ),
-         ),
-
-         IMPR_TABLE      =FACT(statut='f',
-           regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
-            PRESENT_PRESENT('TOUT_PARA','ANGLE',    ),
-            PRESENT_PRESENT('TOUT_PARA','R_CINTR',  ),
-                   UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
-           NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=4,
-                                 into=("TRESCA_MEMBRANE",
-                                       "TRESCA_MFLE",
-                                       "TRESCA",
-                                       "SI_LONG"
-                                       "SI_RADI"
-                                       "SI_CIRC"
-                                       ) ),
-           TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           ANGLE           =SIMP(statut='f',typ='R',max='**' ),
-           R_CINTR         =SIMP(statut='f',typ='R',max='**' ),
-           POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
-           POSI_ANGUL      =SIMP(statut='f',typ='R',max='**' ),
-           TRANSFORMEE     =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
-         ),
-
-         IMPRESSION      =FACT(statut='f',
-           FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
-                                 into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
-                                 
-           b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
-             VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
-           ),  
-
-           b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
-             NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
-           ),
-
-         ),
-
-         TITRE           =SIMP(statut='f',typ='TXM' ),
-
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# 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="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'),),
-
-         EXEC_MAILLAGE   =FACT(statut='o',
-           LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","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)),
-         ),
-
-         TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
-
-         COUDE           =FACT(statut='o',
-           ANGLE           =SIMP(statut='o',typ='R' ),  
-           R_CINTR         =SIMP(statut='o',typ='R' ),  
-           L_TUBE_P1       =SIMP(statut='o',typ='R' ),  
-           L_TUBE_P2       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
-           NB_ELEM_EPAIS   =SIMP(statut='f',typ='I',defaut= 3 ),  
-           SYME            =SIMP(statut='f',typ='TXM',defaut="ENTIER",into=("ENTIER","QUART","DEMI") ),
-           TRANSFORMEE     =SIMP(statut='o',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
-           b_transf_coude  =BLOC(condition = "TRANSFORMEE == 'COUDE' ",
-              DEXT            =SIMP(statut='o',typ='R' ),  
-              EPAIS           =SIMP(statut='o',typ='R' ),  
-              SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
-              BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
-           ),
-           b_transf_tube   =BLOC(condition = "TRANSFORMEE == 'TUBE' ",
-              TRAN_EPAIS      =SIMP(statut='o',typ='TXM',defaut="NON",into=("OUI","NON") ),
-              b_trans_epais_oui    =BLOC(condition = "TRAN_EPAIS == 'OUI' ",
-                      regles=(ENSEMBLE('ANGL_TETA2','EPAIS_TI'),
-                              UN_PARMI('ABSC_CURV_TRAN','POSI_ANGU_TRAN'),),
-                      DEXT_T1         =SIMP(statut='o',typ='R' ),  
-                      EPAIS_T1        =SIMP(statut='o',typ='R' ),  
-                      EPAIS_T2        =SIMP(statut='o',typ='R' ),  
-                      EPAIS_TI        =SIMP(statut='f',typ='R' ),  
-                      ANGL_TETA1      =SIMP(statut='o',typ='R' ),  
-                      ANGL_TETA2      =SIMP(statut='f',typ='R' ),  
-                      ABSC_CURV_TRAN  =SIMP(statut='f',typ='R' ),  
-                      POSI_ANGU_TRAN  =SIMP(statut='f',typ='R' ),  
-              ),
-              b_trans_epais_non    =BLOC(condition = "TRAN_EPAIS == 'NON' ",
-                      DEXT            =SIMP(statut='o',typ='R' ),  
-                      EPAIS           =SIMP(statut='o',typ='R' ),  
-                      SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
-                      BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
-              ),
-           ),
-         ),
-
-         SOUS_EPAIS_COUDE=FACT(statut='f',
-           regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
-                   UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
-           TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
-           AXE_CIRC        =SIMP(statut='f',typ='R' ),  
-           AXE_LONGI       =SIMP(statut='o',typ='R' ),  
-           PROFONDEUR      =SIMP(statut='o',typ='R' ),  
-           POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
-           POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
-           POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
-           AZIMUT          =SIMP(statut='f',typ='R' ),  
-           SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
-           NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
-           NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
-           NB_ELEM_RADI    =SIMP(statut='f',typ='I',defaut= 3 ),  
-           EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-
-         SOUS_EPAIS_MULTI=FACT(statut='f',max='**',
-           regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
-                   UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
-           TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
-           AXE_CIRC        =SIMP(statut='f',typ='R' ),  
-           AXE_LONGI       =SIMP(statut='o',typ='R' ),  
-           PROFONDEUR      =SIMP(statut='o',typ='R' ),  
-           POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
-           POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
-           POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
-           AZIMUT          =SIMP(statut='f',typ='R' ),  
-           SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
-           NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
-           NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
-           EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-
-         FISS_COUDE      =FACT(statut='f',
-           regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
-           AXIS            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),  
-           b_axis_non    =BLOC(condition = "AXIS == 'NON' ",
-                   LONGUEUR        =SIMP(statut='o',typ='R' ),  
-           ),
-           b_axis_oui    =BLOC(condition = "AXIS == 'OUI' ",
-                   LONGUEUR        =SIMP(statut='f',typ='R' ),  
-           ),
-           PROFONDEUR      =SIMP(statut='o',typ='R' ),  
-           ABSC_CURV       =SIMP(statut='f',typ='R' ),  
-           POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
-           FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
-           AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),  
-           ORIEN           =SIMP(statut='o',typ='R',
-                                 into=(45.,-45.,90.,0.E+0) ),
-           NB_TRANCHE      =SIMP(statut='o',typ='I' ),  
-           NB_SECTEUR      =SIMP(statut='o',typ='I' ),  
-           NB_COURONNE     =SIMP(statut='o',typ='I' ),  
-           RAYON_TORE      =SIMP(statut='f',typ='R' ),  
-           COEF_MULT_RC2   =SIMP(statut='f',typ='R',defaut= 1. ),  
-           COEF_MULT_RC3   =SIMP(statut='f',typ='R' ),  
-           ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.5 ),  
-         ),
-
-         IMPRESSION      =FACT(statut='f',max='**',
-           regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
-           FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",   
-                                 into=("ASTER","IDEAS","CASTEM") ),
-           b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
-             VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
-           ),  
-           b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
-             NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
-           ),
-           FICHIER         =SIMP(statut='f',typ='TXM' ),  
-           UNITE           =SIMP(statut='f',typ='I' ),  
-         ),
-
-         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
-)  ;
-#& 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.      
-# ======================================================================
-# RESPONSABLE F1BHHAJ J.ANGLES
-from Macro.macr_aspic_calc_ops import macr_aspic_calc_ops
-
-def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_2,CHARGE,RESU_THER,**args):
-  if MODELE      != None:self.type_sdprod(MODELE,modele_sdaster)
-  if CHAM_MATER  != None:self.type_sdprod(CHAM_MATER,cham_mater)
-  if CARA_ELEM   != None:self.type_sdprod(CARA_ELEM,cara_elem)
-  if FOND_FISS_1 != None:self.type_sdprod(FOND_FISS_1,fond_fiss)
-  if FOND_FISS_2 != None:self.type_sdprod(FOND_FISS_2,fond_fiss)
-  if CHARGE      != None:self.type_sdprod(CHARGE,char_meca)
-  if RESU_THER   != None:self.type_sdprod(RESU_THER,evol_ther)
-  return evol_noli
-
-MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=macr_aspic_calc_ops,sd_prod=macr_aspic_calc_prod,
-            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',
-                               into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
-                                     "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
-
-         TUBULURE        =FACT(statut='o',
-           TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2") ),
-         ),
-         MAILLAGE        =SIMP(statut='o',typ=maillage_sdaster),
-         MODELE          =SIMP(statut='f',typ=CO,),
-         CHAM_MATER      =SIMP(statut='f',typ=CO,),
-         CARA_ELEM       =SIMP(statut='f',typ=CO,),
-         FOND_FISS_1     =SIMP(statut='f',typ=CO,),
-         FOND_FISS_2     =SIMP(statut='f',typ=CO,),
-         CHARGE          =SIMP(statut='f',typ=CO,),
-         RESU_THER       =SIMP(statut='f',typ=CO,),
-
-         AFFE_MATERIAU   =FACT(statut='o',max=3,
-           regles=(UN_PARMI('TOUT','GROUP_MA'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           GROUP_MA        =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ),
-           MATER           =SIMP(statut='o',typ=mater_sdaster),
-           TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           RCCM            =SIMP(statut='o',typ='TXM',into=("OUI","NON")),
-         ),
-
-         EQUILIBRE       =FACT(statut='o',
-           NOEUD           =SIMP(statut='o',typ=no),
-         ),
-
-         PRES_REP        =FACT(statut='o',
-           PRES            =SIMP(statut='o',typ='R'),
-           NOEUD           =SIMP(statut='f',typ=no),
-           EFFE_FOND       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-           PRES_LEVRE      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-
-         ECHANGE         =FACT(statut='f',
-           COEF_H_TUBU     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           COEF_H_CORP     =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           TEMP_EXT        =SIMP(statut='o',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-
-         TORS_CORP       =FACT(statut='f',max=6,
-           regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
-           NOEUD           =SIMP(statut='o',typ=no),
-           FX              =SIMP(statut='f',typ='R'),
-           FY              =SIMP(statut='f',typ='R'),
-           FZ              =SIMP(statut='f',typ='R'),
-           MX              =SIMP(statut='f',typ='R'),
-           MY              =SIMP(statut='f',typ='R'),
-           MZ              =SIMP(statut='f',typ='R'),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-
-         TORS_TUBU       =FACT(statut='f',max=6,
-           regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
-           FX              =SIMP(statut='f',typ='R'),
-           FY              =SIMP(statut='f',typ='R'),
-           FZ              =SIMP(statut='f',typ='R'),
-           MX              =SIMP(statut='f',typ='R'),
-           MY              =SIMP(statut='f',typ='R'),
-           MZ              =SIMP(statut='f',typ='R'),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-
-         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='**',
-           R_INF           =SIMP(statut='o',typ='R'),
-           R_SUP           =SIMP(statut='o',typ='R'),
-         ),
-
-         OPTION          =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX","CALC_G_MAX_LOCAL") ),
-         BORNES          =FACT(statut='f',max='**',
-           NUME_ORDRE      =SIMP(statut='o',typ='I'),
-           VALE_MIN        =SIMP(statut='o',typ='R'),
-           VALE_MAX        =SIMP(statut='o',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 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 ),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-
-         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),
-           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
-         ),
-
-         NEWTON          =FACT(statut='d',
-           REAC_INCR       =SIMP(statut='f',typ='I',defaut=1),
-           PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")),
-           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")),
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
-         ),
-
-         RECH_LINEAIRE   =FACT(statut='d',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut=1.0E-3),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut=3),
-         ),
-
-         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),
-         ),
-
-         PAS_AZIMUT      =SIMP(statut='f',typ='I',defaut=1),
-
-         IMPRESSION      =FACT(statut='f',
-           FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
-                                 into=("RESULTAT","ASTER","CASTEM","IDEAS")),
-                                 
-           b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
-             VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
-           ),  
-
-           b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
-             NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
-           ),
-
-           b_extrac        =BLOC(condition="((FORMAT=='IDEAS')or(FORMAT=='CASTEM'))",
-                                 fr="extraction d un champ de grandeur",
-             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST'),),
-             NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=3,
-                                   into=("DEPL","EQUI_ELNO_SIGM","TEMP")),
-             
-             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='**'),
-           ),      
-         ),
-
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-
-         TITRE           =SIMP(statut='f',typ='TXM'),
-)
-#& 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 F1BHHAJ J.ANGLES
-
-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="Engendre le maillage d'un piquage sain ou avec fissure (longue ou courte)",
-            UIinfo={"groupes":("Outils métier",)},
-
-         EXEC_MAILLAGE   =FACT(statut='o',
-           LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","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)),
-         ),
-
-         TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
-
-         RAFF_MAIL       =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
-
-         TUBULURE        =FACT(statut='o',
-           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'),  
-           E_TUBU          =SIMP(statut='o',typ='R'),  
-           DEXT_TUBU       =SIMP(statut='o',typ='R'),  
-           Z_MAX           =SIMP(statut='o',typ='R'),  
-           TYPE            =SIMP(statut='o',typ='TXM',into=("TYPE_1","TYPE_2")),
-           L_PENETR        =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
-         ),
-
-         SOUDURE         =FACT(statut='o',
-           H_SOUD          =SIMP(statut='o',typ='R'),  
-           ANGL_SOUD       =SIMP(statut='o',typ='R'),  
-           JEU_SOUD        =SIMP(statut='o',typ='R'),  
-         ),
-
-         CORPS           =FACT(statut='o',
-           E_CORP          =SIMP(statut='o',typ='R'),  
-           DEXT_CORP       =SIMP(statut='o',typ='R'),  
-           X_MAX           =SIMP(statut='o',typ='R'),  
-         ),
-
-         FISS_SOUDURE    =FACT(statut='f',
-           TYPE            =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")),
-           AXIS            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
-           PROFONDEUR      =SIMP(statut='o',typ='R'),  
-           LONGUEUR        =SIMP(statut='f',typ='R'),  
-           AZIMUT          =SIMP(statut='o',typ='R'),  
-           RAYON_TORE      =SIMP(statut='f',typ='R'),  
-           POSITION        =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
-           FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
-           LIGA_INT        =SIMP(statut='f',typ='R'),  
-           ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
-           COEF_MULT_RC1   =SIMP(statut='f',typ='R'),  
-           COEF_MULT_RC2   =SIMP(statut='f',typ='R'),  
-           COEF_MULT_RC3   =SIMP(statut='f',typ='R'),  
-           NB_TRANCHE      =SIMP(statut='f',typ='I'),  
-           NB_SECTEUR      =SIMP(statut='f',typ='I'),  
-           NB_COURONNE     =SIMP(statut='f',typ='I'),  
-         ),
-
-         IMPRESSION      =FACT(statut='f',max='**',
-           regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
-           FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
-
-           b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
-             VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
-           ),  
-
-           b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
-             NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
-           ),
-           FICHIER         =SIMP(statut='f',typ='TXM'),  
-           UNITE           =SIMP(statut='f',typ='I'),  
-         ),
-
-         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.      
-# ======================================================================
-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 - 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     
-# (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 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.
-# ======================================================================
-
-DEFI_FISS_XFEM=OPER(nom="DEFI_FISS_XFEM",op=  41,sd_prod=fiss_xfem,reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-               fr="Définition des caratéristiques d'une fissure avec X-FEM",
-
-    MODELE                =SIMP(statut='o',typ=modele_sdaster),
-    DEFI_FISS             =FACT(statut='o',max=01,
-      regles              =(UN_PARMI('GROUP_MA_FISS','FONC_LT'),
-                            ENSEMBLE('FONC_LT','FONC_LN'),
-                            ENSEMBLE('GROUP_MA_FISS','GROUP_MA_FOND')),
-      FONC_LT             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
-      FONC_LN             =SIMP(statut='f',typ=(fonction_sdaster,formule) ),
-      GROUP_MA_FISS       =SIMP(statut='f',typ=grma,max=01),
-      GROUP_MA_FOND       =SIMP(statut='f',typ=grma),
-    ),
-    GROUP_MA_ENRI         =SIMP(statut='o',typ=grma,max=01),
-    RAYON_ENRI            =SIMP(statut='f',typ='R',defaut=0.E+0),
-    ORIE_FOND             =FACT(statut='f',max=01,
-      PFON_INI            =SIMP(statut='o',typ='R',max=03),
-      VECT_ORIE           =SIMP(statut='o',typ='R',max=03),
-      PT_ORIGIN           =SIMP(statut='o',typ='R',max=03),
-    ),
-    CONTACT               =FACT(statut='f',max=01,
-      NOM_CHAM            =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL",) ),
-      FROTTEMENT          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ),
-      INTEGRATION         =SIMP(statut='f',typ='TXM',defaut="FPG4",into=("GAUSS","FPG4","FPG6","FPG7",) ),
-      COEF_REGU_CONT      =SIMP(statut='f',typ='R',defaut=100.E+0),
-      MODL_AXIS           =SIMP(statut='f',typ='TXM',into=("NON",)),
-      ITER_CONT_MAXI      =SIMP(statut='f',typ='I',defaut=30),
-      CONTACT_INIT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-      ALGO_LAGR           =SIMP(statut='f',typ='TXM',defaut="VERSION1",into=("NON","VERSION1","VERSION2" , ) ),
-      COEF_ECHELLE        =SIMP(statut='f',typ='R',defaut=1.E+6),
-      b_frottement    =BLOC(condition = "FROTTEMENT == 'COULOMB' ",fr="Paramères du frottement de Coulomb",
-           COULOMB        =SIMP(statut='o',typ='R',),
-           ITER_FROT_MAXI =SIMP(statut='f',typ='I',defaut=2),
-           COEF_REGU_FROT =SIMP(statut='f',typ='R',defaut=100.E+0),
-           SEUIL_INIT     =SIMP(statut='f',typ='R',defaut=0.E+0),),
-    ),
-    INFO                  =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,3,) ),
-)  ;
-#& MODIF COMMANDE  DATE 22/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-
-from Macro.macr_adap_mail_ops import macr_adap_mail_ops
-
-MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=macr_adap_mail_ops,
-                     docu="U7.03.02-b",UIinfo={"groupe":("Maillage",)},
-                     fr="Donner des informations sur un maillage.",
-                     ang="To give information about a mesh.",
-#
-# 1. Le niveau d'information
-#
-  INFO = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-#
-# 2. Version de HOMARD
-#
-  VERSION_HOMARD = SIMP(statut='f',typ='TXM',defaut="V8_2",
-                        into=("V8_2", "V8_N", "V8_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. Le nom du maillage a analyser
-#
-  MAILLAGE = SIMP(statut='o',typ=maillage_sdaster,
-                  fr="Maillage à analyser.",
-                  ang="Mesh to be checked." ),
-#
-# 5. 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="Information complémentaire sur la frontière",
-                      ang="Further information about boundary",
-#
-    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" ),
-#
-                    ) ,
-#
-# 6. Les options ; par defaut, on controle tout
-# 6.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" ),
-#
-# 6.2. Determination de la qualite des elements du maillage
-#
-  QUALITE        = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),
-                        fr="Qualité du maillage",
-                        ang="Mesh quality" ),
-#
-# 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 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-from Macro.calc_precont_ops import calc_precont_ops
-
-
-# ===========================================================================
-#           CATALOGUE DE LA MACRO "CALC_PRECONT"
-#           -----------------------------------------
-# USAGE :
-# 
-#  
-# ===========================================================================
-
-CALC_PRECONT=MACRO(nom="CALC_PRECONT",op=calc_precont_ops,sd_prod=evol_noli,
-                   fr="Imposer la tension définie par le BPEL dans les cables",
-                   reentrant='f',UIinfo={"groupe":("Modélisation",)},
-         reuse =SIMP(statut='f',typ='evol_noli'),
-         MODELE           =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER       =SIMP(statut='o',typ=cham_mater),
-         CARA_ELEM        =SIMP(statut='o',typ=cara_elem),
-         CABLE_BP         =SIMP(statut='o',typ=cabl_precont,validators=NoRepeat(),max='**'),
-         CABLE_BP_INACTIF =SIMP(statut='f',typ=cabl_precont,validators=NoRepeat(),max='**'),
-         INCREMENT        =FACT(statut='o',
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           INST_FIN        =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-         ),
-
-         NEWTON          =FACT(statut='d',
-            REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-            PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
-            MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-            PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-            REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
-            EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-          ),
-         RECH_LINEAIRE   =FACT(statut='f',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
-         ),
-          CONVERGENCE     =FACT(statut='d',
-            RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-            RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-            ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-            ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-            ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
-          ),
-          ETAT_INIT       =FACT(statut='f',
-            regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
-                    EXCLUS('EVOL_NOLI','DEPL',),
-                    EXCLUS('EVOL_NOLI','SIGM',),
-                    EXCLUS('EVOL_NOLI','VARI',),
-                    EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                    EXCLUS('NUME_ORDRE','INST'), ),
-            DEPL            =SIMP(statut='f',typ=cham_no_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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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
-
-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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.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.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT 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.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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.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.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT 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
-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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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"),
-
-                 ),
-
-         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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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="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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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="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.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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=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.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT 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=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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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
-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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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_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.                                 
-#
-# THIS PROGRAM IS 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               
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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_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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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_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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.      
-# ======================================================================
-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.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC 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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.      
-# ======================================================================
-
-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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.      
-# ======================================================================
-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.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT 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.      
-# ======================================================================
-
-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.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT 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 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",
-#
-         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),
-
-           TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**'),
-
-#          POUR IMPOSER LA NUMEROTATION DES DDLS :
-#          ------------------------------------------------------------------
-           NUME_DDL        =SIMP(statut='f',typ=(nume_ddl_sdaster) ),
-
-
-           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),
-           LIST_ORDRE      =SIMP(statut='f',typ=listis_sdaster),
-           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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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 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 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 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 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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.      
-# ======================================================================
-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 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.      
-# ======================================================================
-
-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=(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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE 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
-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")
-
-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'),),
-
-         CHAM_GD         =SIMP(statut='f',typ=(cham_no_sdaster,
-                                               cham_elem,),),
-         RESULTAT        =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ),
-         RESU_GENE       =SIMP(statut='f',typ=(tran_gene, mode_gene, harm_gene)),
-         TABLE           =SIMP(statut='f',typ=table_sdaster),
-         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster),
-         OBSTACLE        =SIMP(statut='f',typ=obstacle_sdaster),
-
-# ======= SENSIBILITE =================================================
-         b_sensibilite   =BLOC(condition="RESULTAT != None",
-                                 fr="Définition des paramètres de sensibilité",
-                                 ang="Definition of sensitivity parameters",
-           regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
-                   DERIVABLE('RESULTAT'),),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                                   fr="Liste des paramètres de sensibilité.",
-                                   ang="List of sensitivity parameters"),),
-# ======= ACCES A LA SD RESULTAT =================================================
-         b_acces = BLOC ( condition = "(RESULTAT != None) or (RESU_GENE != None)",
-                          fr="acces a une SD résultat",
-# 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") ),
-         ),
-
-# ======= 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") ),
-           ),
-
-           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=(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' ),
-           ),
-         ),
-
-# ======= 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_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' ),  
-             ),
-           ),
-         ),
-
-# ======= 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' ),
-         ),
-
-# ======= OBSTACLE =================================================
-         b_obstacle = BLOC ( condition = "OBSTACLE != None",
-                              fr="Choix du repère",
-            REPERE          =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ),
-         ),
-
-# ======= 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 ) ),
-)  ;
-#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-               fr="Extraire d'un champ de grandeur (déplacements, vitesses ou accélérations) à partir de résultats"
-                  +" en coordonnées généralisées",
-         RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
-         INST            =SIMP(statut='o',typ='R' ),
-         NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
-         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
-         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# 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
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-
-RESO_GRAD=OPER(nom="RESO_GRAD",op=  84,sd_prod=cham_no_sdaster,
-               fr="Résolution d'un système linéaire par la méthode du gradient conjugué préconditionné",
-               reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
-         CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
-         CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
-         MATR_FACT       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
-         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),  
-         REPRISE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1E-6 ),  
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-
-RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=cham_no_sdaster,reentrant='f',
-               fr="Résoudre par méthode directe un système d'équations linéaires préalablement factorisé par FACT_LDLT",
-            UIinfo={"groupes":("Résolution",)},
-         MATR_FACT       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
-                                               matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
-         CHAM_NO         =SIMP(statut='o',typ=cham_no_sdaster),
-         CHAM_CINE       =SIMP(statut='f',typ=cham_no_sdaster),
-         # RESI_RELA : précision utilisée si SOLVEUR=MUMPS
-         RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.e-6),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 20/03/2006   AUTEUR ACBHHCD G.DEVESA 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE BOYERE E.BOYERE
-def rest_base_phys_prod(RESU_GENE,RESU_PHYS,RESULTAT,**args ):
-  if AsType(RESU_GENE) == tran_gene : return dyna_trans
-  if AsType(RESU_GENE) == mode_gene : return mode_meca
-  if AsType(RESU_GENE) == mode_cycl : return mode_meca
-  if AsType(RESU_GENE) == harm_gene : return dyna_harmo
-  if AsType(RESU_PHYS) == evol_noli : return dyna_trans
-  if AsType(RESULTAT)  == evol_elas      : return evol_elas
-  if AsType(RESULTAT)  == evol_noli      : return evol_noli
-  if AsType(RESULTAT)  == evol_char      : return evol_char
-  if AsType(RESULTAT)  == dyna_trans     : return dyna_trans
-  if AsType(RESULTAT)  == mode_meca      : return mode_meca
-  if AsType(RESULTAT)  == mode_stat_depl : return mode_stat_depl
-  if AsType(RESULTAT)  == base_modale    : return base_modale
-  raise AsException("type de concept resultat non prevu")
-
-REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
-                    fr="Restituer dans la base physique des résultats en coordonnées généralisées",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-        regles=(UN_PARMI('RESU_GENE','RESU_PHYS','RESULTAT'),
-                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
-                EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
-#  Doc U à revoir
-                EXCLUS('MULT_APPUI','CORR_STAT'),
-                EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
-                EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
-                EXCLUS('NOEUD','GROUP_NO'),
-                PRESENT_PRESENT('RESU_PHYS','BASE_MODALE'),
-                PRESENT_PRESENT('RESULTAT','SQUELETTE'),
-                PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
-         RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
-                                               mode_meca,mode_stat_depl,base_modale) ),
-         
-         RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene) ),
-         RESU_PHYS       =SIMP(statut='f',typ=evol_noli ),
-         BASE_MODALE     =SIMP(statut='f',typ=(base_modale,mode_meca) ),
-         NUME_DDL        =SIMP(statut='f',typ=nume_ddl_sdaster ),
-         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
-         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         NUME_ORDRE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
-         NUME_MODE      =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**' ),  
-         TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
-         LIST_INST       =SIMP(statut='f',typ=listr8_sdaster ),
-         FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),  
-         LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
-         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
-         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
-         MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         CORR_STAT       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         NOM_CHAM        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=8,defaut="ACCE",   
-                               into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",                 
-                                     "SIGM_ELNO_DEPL","FORC_NODA",) ),
-         TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-         GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-         NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-         ACCE_MONO_APPUI =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         DIRECTION       =SIMP(statut='f',typ='R',min=3,max=3 ),
-
-         CYCLIQUE    =FACT(statut='f',max='**',
-           NB_SECTEUR      =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
-           NUME_DIAMETRE    =SIMP(statut='f',typ='I',validators=NoRepeat(),max=1 ),
-           RESULTAT2       =SIMP(statut='f',typ=(evol_elas,evol_noli,dyna_trans,evol_char,
-                                               mode_meca,mode_stat_depl,base_modale) ),
-         ),
-
-         SQUELETTE       =SIMP(statut='f',typ=squelette ),
-         SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
-         SECTEUR         =SIMP(statut='f',typ='I',defaut= 1 ),  
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=table_sdaster,
-                    reentrant='n',
-            fr="Calculer la réponse d'une structure dans la base physique",
-            UIinfo={"groupes":("Matrices/vecteurs",)},
-         regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
-         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu_sdaster ),
-         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
-         BANDE           =SIMP(statut='f',typ='R',min=2,validators=NoRepeat(),max=2    ),  
-         NUME_ORDRE      =SIMP(statut='f',typ='I'      ,validators=NoRepeat(),max='**' ),  
-         INTE_SPEC_GENE  =SIMP(statut='o',typ=table_sdaster),
-         NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
-         MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
-         NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
-         NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=7,    
-                               into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL",
-                                     "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc), ),
-         EXCIT           =FACT(statut='f',
-           NOEUD           =SIMP(statut='o',typ=no   ,max='**'),
-           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),  
-         ),
-         MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
-         OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
-                               into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-# RESPONSABLE MABBAS M.ABBAS
-STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
-                   fr="Calcul de l'évolution mécanique ou thermo-hydro-mécanique couplée, en quasi-statique,"
-                      +" d'une structure en non linéaire",
-                   reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
-                 CONCEPT_SENSIBLE('ENSEMBLE'),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
-                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
-         ),
-         SOUS_STRUC      =FACT(statut='f',min=01,max='**',
-                regles=(UN_PARMI('TOUT','MAILLE'),),
-                CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
-                TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-                MAILLE      =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**',),
-              ),
-         COMP_INCR       =C_COMP_INCR(),
-         COMP_ELAS       =FACT(statut='f',max='**',
-           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
-           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
-           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
-                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
-                                      "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
-           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),           
-           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-         ),
-         b_reuse =BLOC(condition = "reuse",fr="en mode concept reentrant : ETAT_INIT obligatoire",
-           ETAT_INIT       =FACT(statut='o',
-             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
-                     EXCLUS('EVOL_NOLI','DEPL',),
-                     EXCLUS('EVOL_NOLI','SIGM',),
-                     EXCLUS('EVOL_NOLI','VARI',),
-                     EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                     EXCLUS('NUME_ORDRE','INST'), ),
-             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
-             SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
-             VARI            =SIMP(statut='f',typ=cham_elem),
-             VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
-             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             INST            =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             NUME_DIDI       =SIMP(statut='f',typ='I'),
-             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
-         ),),
-         b_not_reuse =BLOC(condition = "not reuse",fr="en mode concept non reentrant : ETAT_INIT facultatif",
-           ETAT_INIT       =FACT(statut='f',
-             regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),
-                     EXCLUS('EVOL_NOLI','DEPL',),
-                     EXCLUS('EVOL_NOLI','SIGM',),
-                     EXCLUS('EVOL_NOLI','VARI',),
-                     EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                     EXCLUS('NUME_ORDRE','INST'), ),
-             DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
-             SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
-             VARI            =SIMP(statut='f',typ=cham_elem),
-             VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
-             EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             INST            =SIMP(statut='f',typ='R'),
-             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-             NUME_DIDI       =SIMP(statut='f',typ='I'),
-             INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
-         ),),
-         INCREMENT       =FACT(statut='o',
-           regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
-                   EXCLUS('NUME_INST_FIN','INST_FIN'),),
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
-                                 into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
-           NUME_INST_INIT  =SIMP(statut='f',typ='I'),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           NUME_INST_FIN   =SIMP(statut='f',typ='I'),
-           INST_FIN        =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',),
-           VALE            =SIMP(statut='f',typ='R'),
-         ),
-         NEWTON          =FACT(statut='d',
-           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-           PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
-           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-           PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
-           REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
-           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-         ),
-         RECH_LINEAIRE   =FACT(statut='f',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
-           ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
-           PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-           RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
-           RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
-           RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2),
-         ),
-         PILOTAGE        =FACT(statut='f',
-           regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
-           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
-           ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
-           PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-           SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-                         ),
-         CONVERGENCE     =FACT(statut='d',
-           regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
-           SIGM_REFE       =SIMP(statut='f',typ='R'),
-           EPSI_REFE       =SIMP(statut='f',typ='R'),
-           FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),
-           RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-           ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-         ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE=SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS","FETI") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
-           ),
-           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.,),
-           ),
-           b_feti          =BLOC(condition = "METHODE == 'FETI' ",fr="Paramètres de la méthode FETI 1",
-             PARTITION       =SIMP(statut='o',typ=sd_feti_sdaster),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,val_min=0.),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut=0,val_min=0),
-             TYPE_REORTHO_DD =SIMP(statut='f',typ='TXM',defaut="GSM",into=("SANS","GS","GSM","IGSM") ),
-             NB_REORTHO_DD   =SIMP(statut='f',typ='I',defaut=0,val_min=0),
-             NB_REORTHO_INST =SIMP(statut='f',typ='I',defaut=0,val_min=0),
-             PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LUMPE",into=("LUMPE","SANS") ),
-             SCALING         =SIMP(statut='f',typ='TXM',defaut="MULT",into=("SANS","MULT") ),
-             VERIF_SDFETI    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-             TEST_CONTINU    =SIMP(statut='f',typ='R',defaut=1.E-8,val_min=0.),
-             INFO_FETI       =SIMP(statut='f',typ='TXM',defaut='FFFFFFFFFFFFFFFFFFFFFFFF'),
-             STOCKAGE_GI     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","CAL") ),
-             NB_SD_PROC0     =SIMP(statut='f',typ='I',defaut=0,val_min=0),
-             ACCELERATION_SM =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
-                   EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
-           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PAS_ARCH        =SIMP(statut='f',typ='I' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-           ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",
-                                                                     "VARI_NON_LOCAL","LANL_ELGA")),
-         ),
-         OBSERVATION     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
-                   PRESENT_PRESENT('MAILLE','POINT'),),
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',into=("DEPL","VITE","ACCE","SIEF_ELGA",
-                                              "VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU","VALE_CONT")),
-           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PAS_OBSE        =SIMP(statut='f',typ='I'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max='**'),
-         ),
-
-         SUIVI_DDL      = FACT(statut='f',max=4,
-                               regles=(UN_PARMI('NOEUD','MAILLE'),
-                                       PRESENT_PRESENT('MAILLE','POINT'),),
-             NUME_SUIVI      =SIMP(statut='o',typ='I' ,min=1,max=4),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=1,
-                                   into=("DEPL","VITE","ACCE","SIEF_ELGA",
-                                         "VARI_ELGA","FORC_NODA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU",)),
-             NOM_CMP         =SIMP(statut='o',typ='TXM',max=1 ),
-             NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max=1),
-             MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max=1),
-             POINT           =SIMP(statut='f',typ='I' ,validators=NoRepeat(),max=1),
-         ),
-
-         AFFICHAGE      = FACT(statut='f',max=16,
-
-            UNITE       = SIMP(statut='f',typ='I',val_min=1),
-
-            LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
-            PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
-            LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
-            
-            NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
-                                into=("STANDARD","MINIMUM",
-                                      "ITER_NEWT",
-                                      "INCR_TPS",
-                                      "RESI_RELA","RELA_NOEU",
-                                      "RESI_MAXI","MAXI_NOEU",
-                                      "RESI_REFE","REFE_NOEU",
-                                      "RELI_ITER","RELI_COEF",
-                                      "PILO_PARA",
-                                      "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
-                                      "MATR_ASSE",
-                                      "ITER_DEBO",
-                                      "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
-                                      "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
-                                      "SUIV_1","SUIV_2","SUIV_3","SUIV_4","ITER_FETI",
-                                     ),
-                               ),
-            b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
-                    NOM_COLONNE == 'RESI_MAXI' or\
-                    NOM_COLONNE == 'RESI_REFE' or\
-                    NOM_COLONNE == 'CTCD_GEOM' or\
-                    NOM_COLONNE == 'STANDARD' ",
-                            INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
-                          ),
-         ),
-
-
-
-         CRIT_FLAMB     =FACT(statut='f',min=1,max=1,
-           NB_FREQ         =SIMP(statut='f',typ='I',max=1,defaut=3),
-           CHAR_CRIT       =SIMP(statut='f',typ='R',min=2,max=2,defaut=(-10.0,10),
-                            fr="Valeur des deux charges critiques délimitant la bande de recherche en HPP"),
-         ),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité",
-                               ang="List of sensitivity parameters"),
-           SOLV_NON_LOCAL  =FACT(statut='f',
-             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-             ),
-             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-             ),
-             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-             ),
-             b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-               TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-               PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
-             ),
-             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-             ),
-             EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
-           ),
-           LAGR_NON_LOCAL  =FACT(statut='f',
-             ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
-             RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
-             RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
-             R               =SIMP(statut='f',typ='R',defaut= 1000.),
-             ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
-           ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
- )
-
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,
-            fr="Extraction d'une valeur numérique ou d'un attribut de fonction pour comparaison à une valeur de référence",
-            UIinfo={"groupes":("Impression",)},
-         TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         VALEUR          =FACT(statut='f',max='**',
-                               fr="Tester la valeur d une fonction ou d une nappe",
-           regles=(UN_PARMI('VALE_REFE','VALE_REFE_C',),
-                   DERIVABLE('FONCTION'),),
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
-                                 fr="Paramètre de sensibilité.",
-                                 ang="Sensitivity parameter"),
-           NOM_PARA        =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2),
-           VALE_PARA       =SIMP(statut='o',typ='R'  ,validators=NoRepeat(),max=2),
-           VALE_REFE       =SIMP(statut='f',typ='R' ),
-           VALE_REFE_C     =SIMP(statut='f',typ='C' ),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
-                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
-                                 defaut= 1.E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',
-                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-           b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", 
-             VERSION         =SIMP(statut='f',typ='TXM' ),
-           ),
-         ),
-         ATTRIBUT        =FACT(statut='f',max='**',
-                               fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
-           FONCTION        =SIMP(statut='o',typ=(fonction_sdaster,fonction_c,nappe_sdaster,formule) ),
-           PARA            =SIMP(statut='f',typ='R' ),
-           CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           ATTR            =SIMP(statut='o',typ='TXM',
-                                 into=("NOM_PARA","NOM_RESU","PROL_DROITE","PROL_GAUCHE","INTERPOL",
-                                       "PROL_GAUCHE_FONC","PROL_DROITE_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
-           ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',
-                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
-             VERSION         =SIMP(statut='f',typ='TXM' ),
-           ),
-         ),
-         TABL_INTSP      =FACT(statut='f',max='**',
-                               fr="Tester la valeur d une fonction contenue dans une table interspectrale",
-           regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
-           INTE_SPEC       =SIMP(statut='o',typ=table_sdaster),
-           NOEUD_I         =SIMP(statut='f',typ=no),
-           NUME_ORDRE_I    =SIMP(statut='f',typ='I' ),
-           b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", 
-             NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
-           ),
-           b_noeud_i = BLOC (condition = "NOEUD_I != None",             
-             NOEUD_J         =SIMP(statut='o',typ=no),
-             NOM_CMP_I       =SIMP(statut='o',typ='TXM' ),
-             NOM_CMP_J       =SIMP(statut='o',typ='TXM' ),
-           ),
-           NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
-           VALE_PARA       =SIMP(statut='o',typ='R' ),
-           VALE_REFE_C     =SIMP(statut='o',typ='C' ),
-           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
-                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
-                                 defaut= 1.E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',
-                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
-             VERSION         =SIMP(statut='f',typ='TXM' ),
-           ),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
-# RESPONSABLE VABHHTS J.PELLET
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-#
-#
-# ======================================================================
-TEST_RESU=PROC(nom="TEST_RESU",op=23,
-            UIinfo={"groupes":("Impression",)},
-         fr="Extraction d'une valeur d'une structure de donnée et comparaison à une valeur de référence",
-         regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','GENE','OBJET')),
-
-         CHAM_NO         =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
-                   EXCLUS('NOEUD','GROUP_NO'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),
-                   UN_PARMI('VALE','VALE_I','VALE_C'),),
-           CHAM_GD         =SIMP(statut='o',typ=cham_no_sdaster),
-           NOEUD           =SIMP(statut='f',typ=no   ),
-           GROUP_NO        =SIMP(statut='f',typ=grno ),
-           NOM_CMP         =SIMP(statut='f',typ='TXM'),
-           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER")),
-           VERSION         =SIMP(statut='f',typ='TXM'),
-         ),
-
-         CHAM_ELEM       =FACT(statut='f',max='**',
-           regles=(UN_PARMI('MAILLE','TYPE_TEST',),
-                   EXCLUS('NOEUD','GROUP_NO','POINT'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
-                   PRESENT_PRESENT('POINT','NOM_CMP'),
-                   UN_PARMI('VALE','VALE_I','VALE_C'), ),
-           CHAM_GD         =SIMP(statut='o',typ=cham_elem),
-           MAILLE          =SIMP(statut='f',typ=ma),
-           POINT           =SIMP(statut='f',typ='I' ),
-           SOUS_POINT      =SIMP(statut='f',typ='I'),
-           NOEUD           =SIMP(statut='f',typ=no),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
-           VALE            =SIMP(statut='f',typ='R' ),
-           VALE_I          =SIMP(statut='f',typ='I' ),
-           VALE_C          =SIMP(statut='f',typ='C' ),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER") ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
-         ),
-
-         RESU            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
-                   UN_PARMI('NOM_CHAM','PARA'),
-                   PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),
-                   PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
-                   EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
-                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
-                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
-                   PRESENT_PRESENT('POINT','NOM_CMP'),
-                   UN_PARMI('VALE','VALE_I','VALE_C'),
-                   DERIVABLE('RESULTAT'),),
-           RESULTAT        =SIMP(statut='o',typ=resultat_sdaster),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
-                                 fr="Paramètre de sensibilité.",
-                                 ang="Sensitivity parameter"),
-           NUME_ORDRE      =SIMP(statut='f',typ='I'),
-           INST            =SIMP(statut='f',typ='R'),
-           FREQ            =SIMP(statut='f',typ='R'),
-           NUME_MODE       =SIMP(statut='f',typ='I'),
-           NOEUD_CMP       =SIMP(statut='f',typ='TXM',min=2,max=2),
-           NOM_CAS         =SIMP(statut='f',typ='TXM'),
-           ANGL            =SIMP(statut='f',typ='R'),
-           PARA            =SIMP(statut='f',typ='TXM'),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma   ,max='**'),
-           NOEUD           =SIMP(statut='f',typ=no   ,max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,max='**'),
-           POINT           =SIMP(statut='f',typ='I'),
-           SOUS_POINT      =SIMP(statut='f',typ='I'),
-           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
-           PRECISION       =SIMP(statut='f',typ='R',max=2),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
-         ),
-
-         GENE            =FACT(statut='f',max='**',
-           regles=(UN_PARMI('VALE','VALE_I','VALE_C') ,),
-           RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
-           b_vect_asse     =BLOC(condition = "AsType(RESU_GENE) == vect_asse_gene",
-             NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
-           ),
-           b_mode          =BLOC(condition = "(AsType(RESU_GENE) == harm_gene) or (AsType(RESU_GENE) == mode_gene)",
-                            regles=(UN_PARMI('NUME_ORDRE','FREQ','NUME_MODE'),
-                                    UN_PARMI('NOM_CHAM','PARA'),
-                                    PRESENT_PRESENT('NOM_CHAM','NUME_CMP_GENE'),),
-             NOM_CHAM        =SIMP(statut='f',typ='TXM',into=C_NOM_CHAM_INTO()),
-             NUME_CMP_GENE   =SIMP(statut='f',typ='I'),
-             PARA            =SIMP(statut='f',typ='TXM'),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             NUME_MODE       =SIMP(statut='f',typ='I'),
-             FREQ            =SIMP(statut='f',typ='R'),
-           ),
-           b_tran          =BLOC(condition = "AsType(RESU_GENE) == tran_gene",
-                            regles=(UN_PARMI('NUME_ORDRE','INST') ,),
-             NOM_CHAM        =SIMP(statut='o',typ='TXM',into=C_NOM_CHAM_INTO()),
-             NUME_CMP_GENE   =SIMP(statut='o',typ='I'),
-             NUME_ORDRE      =SIMP(statut='f',typ='I'),
-             INST            =SIMP(statut='f',typ='R'),
-           ),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=2),
-           PRECISION       =SIMP(statut='f',typ='R',max=2),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
-         ),
-
-         OBJET           =FACT(statut='f',max='**',
-           regles=(UN_PARMI('S_I','S_R','RESUME',),
-                   UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
-           NOM             =SIMP(statut='o',typ='TXM'),
-           S_R             =SIMP(statut='f',typ='R'),
-           S_I             =SIMP(statut='f',typ='I'),
-           RESUME          =SIMP(statut='f',typ='I'),
-           VALE            =SIMP(statut='f',typ='R'),
-           VALE_I          =SIMP(statut='f',typ='I'),
-           VALE_C          =SIMP(statut='f',typ='C'),
-           VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",
-                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
-           VERSION         =SIMP(statut='f',typ='TXM' ),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
-# (AT YOUR OPTION) ANY LATER VERSION.                                 
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
-# ======================================================================
-# RESPONSABLE VABHHTS J.PELLET
-TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
-            UIinfo={"groupes":("Impression",)},
-         fr="Tester une cellule ou une colonne d'une table",
-         regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),
-                 DERIVABLE('TABLE'),),
-#  concept table_sdaster à tester
-         TABLE           =SIMP(statut='o',typ=table_sdaster),
-
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),
-                                 fr="Paramètre de sensibilité.",
-                                 ang="Sensitivity parameter"),
-         FILTRE          =FACT(statut='f',max='**',
-           NOM_PARA        =SIMP(statut='o',typ='TXM' ),
-           CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
-                                 into=("EQ","LT","GT","NE","LE","GE","VIDE",
-                                       "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
-           b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
-              regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
-              VALE            =SIMP(statut='f',typ='R' ),
-              VALE_I          =SIMP(statut='f',typ='I' ),
-              VALE_C          =SIMP(statut='f',typ='C' ),
-              VALE_K          =SIMP(statut='f',typ='TXM' ),),
-
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-         ),
-         TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
-         NOM_PARA        =SIMP(statut='o',typ='TXM' ),
-         VALE            =SIMP(statut='f',typ='R' ),
-         VALE_I          =SIMP(statut='f',typ='I' ),
-         VALE_C          =SIMP(statut='f',typ='C' ),
-         VALE_ABS        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.2E-3 ),
-         REFERENCE       =SIMP(statut='f',typ='TXM',
-                               into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
-         b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'",
-             VERSION         =SIMP(statut='f',typ='TXM' ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-         ),
-)  ;
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-                   fr="Résoudre un problème thermique linéaire stationnaire ou transitoire",
-         regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-         INCREMENT       =FACT(statut='f',
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster ),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           NUME_FIN        =SIMP(statut='f',typ='I'),
-         ),
-         TEMP_INIT       =FACT(statut='f',
-           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
-           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
-           CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
-           VALE            =SIMP(statut='f',typ='R'),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-         ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               ang="List of sensitivity parameters",
-         ),
-           SENS_INIT       =FACT(statut='f',
-             regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),),
-             STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-             EVOL_THER       =SIMP(statut='f',typ=evol_ther),
-             NUME_INIT       =SIMP(statut='f',typ='I'),
-           ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult      =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6,),
-           ),
-         ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
-                                 into=("RELATIF","ABSOLU")),
-           PAS_ARCH        =SIMP(statut='f',typ='I'),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2)),
-)  ;
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,reentrant='f',
-            UIinfo={"groupes":("Résolution",)},
-                   fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
-                      +" stationnaire ou transitoire" ,
-         regles=(CONCEPT_SENSIBLE('ENSEMBLE'),),
-         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-         CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
-         CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
-         COMP_THER_NL    =FACT(statut='d',max='**',
-           RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
-                                 into=("THER_NL",
-                                       "THER_HYDR",
-                                       "SECH_GRANGER",
-                                       "SECH_MENSI",
-                                       "SECH_BAZANT",
-                                       "SECH_NAPPE"
-                                       ) ),
-         regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-         ),
-         EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=char_ther),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-         ),
-         INCREMENT       =FACT(statut='f',
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           NUME_FIN        =SIMP(statut='f',typ='I'),
-         ),
-         TEMP_INIT       =FACT(statut='f',
-           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
-           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
-           CHAM_NO         =SIMP(statut='f',typ=cham_no_sdaster),
-           VALE            =SIMP(statut='f',typ='R'),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-         ),
-         NEWTON          =FACT(statut='d',
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
-         ),
-         CONVERGENCE     =FACT(statut='d',
-           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-         ),
-         SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                               fr="Liste des paramètres de sensibilité.",
-                               ang="List of sensitivity parameters",
-         ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC","MUMPS") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Parametres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Parametres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Parametres relatifs a la non inversibilité de la matrice a factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Parametres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I'  ,defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R'  ,defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I'  ,defaut= 0 ),
-           ),
-           b_mumps          =BLOC(condition = "METHODE == 'MUMPS' ",fr="Paramètres de la méthode MUMPS",
-             TYPE_RESOL      =SIMP(statut='f',typ='TXM',defaut='AUTO',into=('NONSYM','SYMGEN','SYMDEF','AUTO')),
-             PCENT_PIVOT     =SIMP(statut='f',typ='I',defaut=20,),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut=-1.,),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
-         ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),),
-           LIST_ARCH       =SIMP(statut='f',typ=(listis_sdaster) ),
-           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
-           PAS_ARCH        =SIMP(statut='f',typ='I'),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',into=("VARI",)),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         OPTION          =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max=2,
-                               into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-
-)  ;
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
-                     fr="Résoudre un problème thermique non linéaire (conditions limites ou comportement matériau)"
-                        +" stationnaire avec chargement mobile",
-                     reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         MODELE          =SIMP(statut='o',typ=modele_sdaster ),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
-         CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
-         EXCIT           =FACT(statut='o',max='**',
-           CHARGE          =SIMP(statut='o',typ=char_ther ),
-           FONC_MULT       =SIMP(statut='c',typ=(fonction_sdaster,nappe_sdaster,formule) ),
-         ),
-         TEMP_INIT       =FACT(statut='f',
-           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
-           NUME_INIT       =SIMP(statut='f',typ='I',defaut= 0 ),
-         ),
-         CONVERGENCE     =FACT(statut='d',
-           CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
-           CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-           ),
-           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
-         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
-)  ;
-
-
-
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-def extr_table_prod(TYPE_RESU,**args):
-  if TYPE_RESU == "MATR_ASSE_GENE_R" : return matr_asse_gene_r
-  raise AsException("type de concept resultat non prevu")
-
-EXTR_TABLE=OPER(nom="EXTR_TABLE",op=173,sd_prod=extr_table_prod,reentrant='n',
-            UIinfo={"groupes":("Résultats et champs",)},
-         fr="Extraire d'une table la matrice de masse généralisée assemblée",
-         TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("MATR_ASSE_GENE_R",) ),
-
-         TABLE           =SIMP(statut='o',typ=table_sdaster),
-
-         NOM_PARA        =SIMP(statut='o',typ='TXM'),
-
-         FILTRE          =FACT(statut='f',min=1,max='**',
-           NOM_PARA        =SIMP(statut='o',typ='TXM'),
-           CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
-                                 into=("EQ","LT","GT","NE","LE","GE","VIDE",
-                                       "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
-           b_vale          =BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
-              regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
-              VALE            =SIMP(statut='f',typ='R'),
-              VALE_I          =SIMP(statut='f',typ='I'),
-              VALE_C          =SIMP(statut='f',typ='C'),
-              VALE_K          =SIMP(statut='f',typ='TXM'),),
-
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-         ),
-
-         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
-)  ;
-#& MODIF COMMANDE  DATE 28/02/2006   AUTEUR VABHHTS J.PELLET 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE CAMBIER S.CAMBIER
-from Macro.gene_vari_alea_ops import gene_vari_alea_ops,gene_vari_alea_init
-GENE_VARI_ALEA=MACRO(nom="GENE_VARI_ALEA",
-               op_init=gene_vari_alea_init,op=gene_vari_alea_ops,
-               sd_prod=reel,reentrant='n',
-               fr="Générer une réalisation d'une variable aléatoire réelle de loi de probabilité donnée (Gamma ou Exponentielle)",
-               UIinfo={"groupes":("Fonction",)},
-   TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="GAMMA"),
-   b_gamma    =BLOC(condition = "TYPE == 'GAMMA' ",fr="Parametres loi gamma",
-           VALE_MOY   = SIMP(statut='f', typ='R', defaut=1.),
-           BORNE_INF  = SIMP(statut='f', typ='R', defaut=0.),
-           COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1),
-             ),
-   b_expo    =BLOC(condition = "TYPE == 'EXPONENTIELLE' ",fr="Parametres loi exponentielle",
-           VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
-           BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
-             ),
-   b_expo_tronq    =BLOC(condition = "TYPE == 'EXP_TRONQUEE' ",fr="Parametres loi exponentielle tronquee",
-           VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
-           BORNE_INF  = SIMP(statut='f', typ='R', defaut=-1.),
-           BORNE_SUP  = SIMP(statut='f', typ='R', defaut=1.),
-           COEF_VAR   = SIMP(statut='f', typ='R', defaut=0.1,val_min=0.),
-             ),
-   INIT_ALEA       =SIMP(statut='f',typ='I'),
-)
-#& MODIF COMMANDE  DATE 11/07/2005   AUTEUR CAMBIER S.CAMBIER 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE CAMBIER S.CAMBIER
-def gene_matr_alea_prod(MATR_MOYEN,**args ):
-  if (AsType(MATR_MOYEN) == matr_asse_gene_r )  : return matr_asse_gene_r
-  if (AsType(MATR_MOYEN) == macr_elem_dyna) : return macr_elem_dyna
-  raise AsException("type de concept resultat non prevu")
-
-GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,
-#sd_prod=matr_asse_gene_r,
-sd_prod=gene_matr_alea_prod,
-               fr="Générer une réalisation d'une matrice aléatoire réelle sym. déf. positive ou d'un macro élément dynamique",
-               reentrant='n',
-            UIinfo={"groupes":("Matrice",)},
-   MATR_MOYEN   = SIMP(statut='o', typ=(matr_asse_gene_r,macr_elem_dyna)),
-
-#    cas matrice generalisee 
-   b_matr =BLOC( condition = "AsType(MATR_MOYEN) in (matr_asse_gene_r,)",
-           COEF_VAR     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice a generer" ),
-           ),
-#    cas macr_elem_dyna 
-   b_macr =BLOC( condition = "AsType(MATR_MOYEN) in (macr_elem_dyna,)",
-           fr="cas macr_elem_dyna (sous-structuratio)",
-           COEF_VAR_RIGI     = SIMP(statut='f', typ='R', defaut=0.1, val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice de raideur" ),
-           COEF_VAR_MASS     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice de masse" ),
-           COEF_VAR_AMOR     = SIMP(statut='f', typ='R', defaut=0., val_min=0.E+0 ,
-                                fr="coefficient de variation de la matrice d'amortissement" ),),
-
-   INIT_ALEA    =SIMP(statut='f',typ='I'),
-) ;
-   
-#& MODIF COMMANDE  DATE 03/04/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-from Macro.lire_table_ops import lire_table_ops
-
-LIRE_TABLE=MACRO(nom="LIRE_TABLE",op=lire_table_ops,sd_prod=table_sdaster,
-                 fr="Lecture d'un fichier contenant une table",
-            UIinfo={"groupes":("Table",)},
-         UNITE           =SIMP(statut='o',typ='I' ),
-         FORMAT          =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"),
-         NUME_TABLE      =SIMP(statut='f',typ='I',defaut=1),
-         SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' '),
-         PARA            =SIMP(statut='f',typ='TXM',max='**'),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-         )  ;
-
-#& MODIF COMMANDE  DATE 09/05/2006   AUTEUR GALENNE E.GALENNE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-from Macro.macr_lign_coupe_ops import macr_lign_coupe_ops
-
-MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=table_sdaster,
-                       reentrant='n',
-            UIinfo={"groupes":("Outils métier",)},
-            fr="Extraction des valeurs d'un résultat dans une ou plusieurs tables sur des lignes de coupe définies"
-             +" par deux points et un intervalle",
-         RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther) ),
-# extraction des résultats
-         b_meca        =BLOC(condition = "AsType(RESULTAT) in (evol_elas,evol_noli)",fr="résultat mécanique",
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='SIGM_NOEU_DEPL' ),  
-         ),
-         b_ther        =BLOC(condition = "AsType(RESULTAT) in (evol_ther,)",fr="résultat thermique",
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut='TEMP' ),  
-         ),
-         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=25),  
-         MODELE          =SIMP(statut='f',typ=modele_sdaster ),
-         GROUP_MA        =SIMP(statut='f',typ=grma),
-         MAILLE          =SIMP(statut='f',typ=ma,max='**'),
-         regles=(EXCLUS('GROUP_MA','MAILLE'),),
-         LIGN_COUPE     =FACT(statut='o',max='**',
-           regles=(UN_PARMI('NB_POINTS','GROUP_NO'),),
-           INTITULE        =SIMP(statut='f',typ='TXM',),
-           GROUP_NO        =SIMP(statut='f',typ=grno),
-           NB_POINTS       =SIMP(statut='f',typ='I'),
-           b_nbpts = BLOC(condition = "NB_POINTS != None",
-              COOR_ORIG       =SIMP(statut='o',typ='R',min=2,max=3),  
-              COOR_EXTR       =SIMP(statut='o',typ='R',min=2,max=3),
-              VECT_Y          =SIMP(statut='f',typ='R',min=2,max=3),), 
-         ),
-)  ;
-
-
-#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ASSIRE A.ASSIRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-   
-from Macro.macr_recal_ops import macr_recal_ops
-
-def macr_recal_prod(self,**args ):
-  return listr8_sdaster
-
-MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,
-            UIinfo={"groupes":("Résultats et champs",)},
-                      sd_prod=macr_recal_prod,
-                      fr="Réalise le recalage des calculs Aster sur des résultats expérimentaux"
-                        +" ou sur d'autres résultats de calculs",
-         UNITE_ESCL      =SIMP(statut='o',typ='I'),
-         RESU_EXP        =SIMP(statut='o',typ=assd,max='**'),
-         POIDS           =SIMP(statut='f',typ=assd,max='**'),
-         RESU_CALC       =SIMP(statut='o',typ=assd,max='**'),
-         LIST_PARA       =SIMP(statut='o',typ=assd,max='**'),
-         ITER_MAXI       =SIMP(statut='f',typ='I',defaut=10),
-         RESI_GLOB_RELA  =SIMP(statut='f',typ='R',defaut=1.E-3),
-         UNITE_RESU      =SIMP(statut='f',typ='I',defaut=91),
-         PARA_DIFF_FINI  =SIMP(statut='f',typ='R',defaut=0.001),
-         GRAPHIQUE       =FACT(statut='d',
-           UNITE           =SIMP(statut='f',typ='I',defaut=90),
-           FORMAT          =SIMP(statut='f',typ='TXM',defaut='XMGRACE',into=("XMGRACE","GNUPLOT")),
-           INTERACTIF      =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=( 1, 2 ) ),
-)  ;
-#& MODIF COMMANDE  DATE 14/09/2004   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE D6BHHJP J.P.LEFEBVRE
-INFO_EXEC_ASTER=OPER(nom="INFO_EXEC_ASTER",op=35,sd_prod=table_sdaster,
-                    fr="Récupère différentes informations propres à l'exécution en cours",
-                    reentrant='n',
-                    UIinfo={"groupes":("Gestion du travail",)},
-
-         regles=(),
-         LISTE_INFO     =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max=3,
-                              into=("CPU_RESTANT","UNITE_LIBRE","ETAT_UNITE"),),
-         b_etat_unite   =BLOC(condition = "'ETAT_UNITE' in LISTE_INFO", 
-            regles=(UN_PARMI('UNITE','FICHIER'),),
-            UNITE          =SIMP(statut='f',typ='I',val_min=1,val_max=99,max=1,
-                                 fr="Unité logique dont on veut obtenir l'état",),
-            FICHIER        =SIMP(statut='f',typ='TXM',validators=LongStr(1,255),
-                                 fr="Nom du fichier dont on veut obtenir l'état",),
-         ),
-         TITRE          =SIMP(statut='f',typ='TXM',max='**'),
-         INFO           =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 03/01/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE JMBHH01 J.M.PROIX
-
-from Macro.macr_cara_poutre_ops import macr_cara_poutre_ops
-
-MACR_CARA_POUTRE=MACRO(nom="MACR_CARA_POUTRE",op=macr_cara_poutre_ops,sd_prod=table_sdaster,
-                       reentrant='n',
-          UIinfo={"groupes":("Modélisation",)},
-          fr="Calculer les caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
-          regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
-                  EXCLUS('SYME_Y','GROUP_MA_BORD'),),
-                 
-          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 20 ),  
-          ORIG_INER       =SIMP(statut='f',typ='R',max=3,defaut=(0.E+0,0.E+0),
-                                fr="Point par rapport auquel sont calculées les inerties"),  
-          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
-         
-          SYME_X          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a x=0"),
-          SYME_Y          =SIMP(statut='f',typ='TXM',into=("OUI",),fr="demi maillage par rapport a y=0"),
-         
-          GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-          fr="Calcul des caractéristiques équivalentes a plusieurs sections disjointes"),
-          
-          GROUP_MA_BORD   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-                               fr="Groupe(s) de mailles linéiques, bord(s) de(s) section(s)"),
-         
-               b_gma_bord = BLOC( condition = "GROUP_MA_BORD != None",
-                            fr=" calcul des carac. mecaniques",
-
-                    NOEUD           =SIMP(statut='f',typ=no,max='**',
-                    fr="Simplement pour empecher des pivots nuls le cas echeant. Fournir un noeud quelconque"),
-                    GROUP_MA_INTE   =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**',
-                    fr="groupes de mailles linéiques bordant des trous dans la section"),
-                    ),
-                    
-               b_reseau = BLOC( condition ="""(GROUP_MA_BORD != None) and (GROUP_MA != None)""",
-                           fr=" calcul des coef de cisaillement équivalents a un reseau de poutres",
-                            regles=(ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
-                            LONGUEUR        =SIMP(statut='f',typ='R',fr="Longueur du réseau de poutres"),  
-                            MATERIAU        =SIMP(statut='f',typ=mater_sdaster,fr="Materiau elastique lineaire du reseau"),
-                            LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT"),
-                            fr="type de conditions aux limites sur le plancher supérieur" ),
-                              ), 
-                    )
-#& MODIF COMMANDE  DATE 07/02/2005   AUTEUR MABBAS M.ABBAS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-from Macro.macr_cabri_mail_ops import macr_cabri_mail_ops
-
-MACR_CABRI_MAIL=MACRO(nom="MACR_CABRI_MAIL",
-                      op=macr_cabri_mail_ops,
-                      sd_prod=maillage_sdaster,
-                      fr="maillage d'une jonction boulonnée de tuyauterie",
-                      reentrant='n',
-                      UIinfo={"groupes":("Outils métier",)},
-                      EXEC_MAILLAGE = FACT(statut='o',
-                        LOGICIEL      = SIMP(statut = 'o',typ='TXM',into=("GIBI2000",),),
-                        UNITE_DATG    = SIMP(statut = 'f',typ='I',defaut=70,),
-                        UNITE_MGIB    = SIMP(statut = 'f',typ='I',defaut=19,),
-                        NIVE_GIBI     = SIMP(statut = 'f',typ='I',defaut=10,
-                                          into = (3,4,5,6,7,8,9,10,11),
-                                            ),
-                                          ),
-                      RAFF_MAILLAGE   = FACT(statut = 'd',
-                        NB_RADIAL    = SIMP(statut = 'f',typ='I',defaut=2,),
-                        NB_CIRCONF   = SIMP(statut = 'f',typ='I',defaut=3,),
-                        NB_VERTICAL  = SIMP(statut = 'f',typ='I',defaut=6,),
-                        NB_ALESAGE   = SIMP(statut = 'f',typ='I',defaut=5,),
-                                          ),
-                      VERI_MAIL     = FACT(statut='d',
-                        VERIF         = SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),  
-                        APLAT         = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
-                                          ),                                          
-                      GEOM_BRID     = FACT(statut = 'o',
-                        NORME         = SIMP(statut = 'o',typ='TXM',into=("OUI","NON"),),
-                        b_bride_iso   = BLOC(condition = "NORME == 'OUI'",
-                          TYPE           = SIMP(statut='o',typ='TXM',
-                                                into=('A','AA','B','B1','C','D','D1','E','F',
-                                                      'FF','G','GG','H','H1','I','J','J1',
-                                                      'K','L','L1','M','N','O','P','S','T','W'), 
-                                               ),
-                                            ),
-                        b_bride_niso  = BLOC(condition = "NORME == 'NON'",
-                          TUBU_D_EXT     = SIMP(statut='o',typ='R',),
-                          TUBU_H         = SIMP(statut='o',typ='R',),
-                          BRID_D_EXT     = SIMP(statut='o',typ='R',),
-                          BRID_D_INT     = SIMP(statut='o',typ='R',),
-                          BRID_H         = SIMP(statut='o',typ='R',),
-                          BRID_D_CONGE   = SIMP(statut='o',typ='R',),
-                          BRID_R_CONGE   = SIMP(statut='o',typ='R',),
-                          BRID_D_EPAUL   = SIMP(statut='o',typ='R',),
-                          BRID_H_EPAUL   = SIMP(statut='o',typ='R',),
-                          BRID_D_ALESAG  = SIMP(statut='o',typ='R',),
-                          BRID_P_ALESAG  = SIMP(statut='o',typ='R',),
-                          BRID_H_ALESAG  = SIMP(statut='o',typ='R',),
-                          GOUJ_N_GOUJON  = SIMP(statut='o',typ='I',),
-                          GOUJ_D_GOUJON  = SIMP(statut='o',typ='R',),
-                          GOUJ_E_FILET   = SIMP(statut='o',typ='R',),
-                          GOUJ_D_RONDEL  = SIMP(statut='o',typ='R',),
-                          GOUJ_E_RONDEL  = SIMP(statut='o',typ='R',),
-                          GOUJ_D_ECROU   = SIMP(statut='o',typ='R',),
-                          GOUJ_E_ECROU   = SIMP(statut='o',typ='R',),
-                          ETAN_E_JOINT   = SIMP(statut='o',typ='R',),
-                                            ),
-                                         ),
-                      IMPRESSION    = FACT(statut='d',
-                        UNITE          = SIMP(statut='f',typ='I'),
-                        FORMAT         = SIMP(statut='f',typ='TXM',defaut="ASTER",    
-                                              into=("ASTER","CASTEM","IDEAS"),
-                                             ),
-                        b_impr_castem = BLOC(condition = "FORMAT == 'CASTEM'",
-                          NIVE_GIBI      = SIMP(statut='f',typ='I',defaut=10,into=(3,10),),
-                                            ),
-                        b_impr_ideas  = BLOC(condition = "FORMAT == 'IDEAS'",
-                          VERSION        = SIMP(statut='f',typ='I',defaut=5,into=(4,5),),
-                                            ),
-                                          ),
-                     );
-
-#& MODIF COMMANDE  DATE 16/05/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-#& RESPONSABLE
-DYNA_TRAN_EXPLI=OPER(nom="DYNA_TRAN_EXPLI",op= 70,sd_prod=evol_noli,reentrant='f',UIinfo={"groupe":("Résolution",)},
-                   fr="Calcul de l'évolution dynamique d'une structure dont la géométrie ou le matériau ont un comportement"
-                       +" non linéaire, par une méthode explicite sur les accélérations ",
-         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),UN_PARMI('DIFF_CENT','TCHAMWA'),),
-         MODELE          =SIMP(statut='o',typ=modele_sdaster),
-         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         MODE_STAT       =SIMP(statut='f',typ=(mode_stat_depl,mode_stat_acce,mode_stat_forc,)),
-         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
-         MASS_DIAG       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         EXCIT           =FACT(statut='o',max='**',
-           regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
-                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
-                   # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
-                   ),
-           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
-                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
-           CHARGE          =SIMP(statut='o',typ=char_meca),
-           FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           DEPL            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           ACCE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           VITE            =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-           MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-           DIRECTION       =SIMP(statut='f',typ='R',max=3),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-         ),
-         AMOR_MODAL      =FACT(statut='f',
-           MODE_MECA       =SIMP(statut='o',typ=mode_meca),
-           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),
-           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
-           REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-         ),
-         PROJ_MODAL      =FACT(statut='f',max='**',
-           MODE_MECA       =SIMP(statut='o',typ=mode_meca),
-           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
-           regles=(PRESENT_PRESENT('MASS_GENE','RIGI_GENE'),),
-           MASS_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
-           RIGI_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
-           AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r),
-         ),
-         EXCIT_GENE      =FACT(statut='f',
-           FONC_MULT       =SIMP(statut='f',typ=fonction_sdaster,max='**' ),
-           VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene,max='**' ),
-         ),
-         COMP_INCR       =C_COMP_INCR(),
-         COMP_ELAS       =FACT(statut='f',max='**',
-           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",
-                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC",
-                                      "ELAS_POUTRE_GR","CABLE","ELAS_HYPER")),
-           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           ELAS_HYPER      =SIMP(statut='c',typ='I',defaut=1,into=(1,)),           
-           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
-           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
-           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),
-           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
-         ),
-#-------------------------------------------------------------------
-         ETAT_INIT       =FACT(statut='f',
-           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','VITE','ACCE','SIGM','VARI','VARI_NON_LOCAL',),
-                   EXCLUS('EVOL_NOLI','DEPL',),
-                   EXCLUS('EVOL_NOLI','VITE'),
-                   EXCLUS('EVOL_NOLI','ACCE'),
-                   EXCLUS('EVOL_NOLI','SIGM',),
-                   EXCLUS('EVOL_NOLI','VARI',),
-                   EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),
-                   EXCLUS('NUME_ORDRE','INST'), ),
-           DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
-           VITE            =SIMP(statut='f',typ=cham_no_sdaster),
-           ACCE            =SIMP(statut='f',typ=cham_no_sdaster),
-           SIGM            =SIMP(statut='f',typ=(cham_elem,carte_sdaster)),
-           VARI            =SIMP(statut='f',typ=cham_elem),
-           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_sdaster),
-           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-           NUME_ORDRE      =SIMP(statut='f',typ='I'),
-           INST            =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           NUME_DIDI       =SIMP(statut='f',typ='I'),
-           INST_ETAT_INIT  =SIMP(statut='f',typ='R'),
-         ),
-#-------------------------------------------------------------------
-         INCREMENT       =FACT(statut='o',
-           regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
-                   EXCLUS('NUME_INST_FIN','INST_FIN'),),
-           LIST_INST       =SIMP(statut='o',typ=listr8_sdaster),
-           EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
-                                 into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
-           NUME_INST_INIT  =SIMP(statut='f',typ='I'),
-           INST_INIT       =SIMP(statut='f',typ='R'),
-           NUME_INST_FIN   =SIMP(statut='f',typ='I'),
-           INST_FIN        =SIMP(statut='f',typ='R'),
-           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
-           NOM_CHAM        =SIMP(statut='f',typ='TXM',),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',),
-           VALE            =SIMP(statut='f',typ='R'),
-         ),
-#-------------------------------------------------------------------
-         DIFF_CENT       =FACT(statut='f',
-         ),
-         TCHAMWA         =FACT(statut='f',
-           PHI             =SIMP(statut='f',typ='R',defaut= 1.05),
-         ),
-         STOP_CFL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-         NEWTON          =FACT(statut='c',
-           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-           PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
-           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),
-           REAC_ITER_ELAS  =SIMP(statut='f',typ='I',defaut=0),
-           PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-         ),
-         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 1. ),
-         SOLVEUR         =FACT(statut='d',
-           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-           b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-           ),
-           b_ldlt          =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-           ),
-           b_ldlt_mult     =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
-                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON","DECOUPE") ),
-           ),
-           b_gcpc          =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
-             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
-             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("SANS","RCMK") ),
-             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-           ),
-           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-         ),
-#-------------------------------------------------------------------
-         RECH_LINEAIRE   =FACT(statut='c',
-           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-1 ),
-           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),
-           ITER_LINE_CRIT  =SIMP(statut='f',typ='I',defaut= 20),
-           PAS_MINI_CRIT   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-           RHO_MIN         =SIMP(statut='f',typ='R',defaut=1.0E-2),
-           RHO_MAX         =SIMP(statut='f',typ='R',defaut=1.0E+1),
-           RHO_EXCL        =SIMP(statut='f',typ='R',defaut=0.9E-2),
-         ),
-         PILOTAGE        =FACT(statut='c',
-           regles=(EXCLUS('NOEUD','GROUP_NO'),PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-           TYPE    =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS","PRED_ELAS_INCR","DEFORMATION","ANA_LIM") ),
-           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-           ETA_PILO_MAX    =SIMP(statut='f',typ='R'),
-           ETA_PILO_MIN    =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MAX  =SIMP(statut='f',typ='R'),
-           ETA_PILO_R_MIN  =SIMP(statut='f',typ='R'),
-           PROJ_BORNES     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
-           SELECTION       =SIMP(statut='f',typ='TXM',defaut="NORM_INCR_DEPL", into=("RESIDU","ANGL_INCR_DEPL","NORM_INCR_DEPL") ),
-           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           GROUP_MA        =SIMP(statut='f',typ=grma ,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma   ,validators=NoRepeat(),max='**'),
-           NOEUD           =SIMP(statut='f',typ=no   ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno ,validators=NoRepeat(),max='**'),
-           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),
-                         ),
-         CONVERGENCE     =FACT(statut='d',
-           regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
-           SIGM_REFE       =SIMP(statut='f',typ='R'),
-           EPSI_REFE       =SIMP(statut='f',typ='R'),
-           FLUX_THER_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD1_REFE  =SIMP(statut='f',typ='R'),
-           FLUX_HYD2_REFE  =SIMP(statut='f',typ='R'),           
-           RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-           ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),
-           RESI_INTE_RELA  =SIMP(statut='f',typ='R'
-                                ,defaut= 1.0E-6),
-           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
-           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),
-           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
-         ),
-#-------------------------------------------------------------------
-        AFFICHAGE      = FACT(statut='f',max=16,
-
-            UNITE       = SIMP(statut='f',typ='I',val_min=1),
-
-            LONG_R      = SIMP(statut='f',typ='I',defaut=12,val_min=1,val_max=12),
-            PREC_R      = SIMP(statut='f',typ='I',defaut=5, val_min=1,val_max=8),
-            LONG_I      = SIMP(statut='f',typ='I',defaut=6, val_min=1,val_max=12),
-            
-            NOM_COLONNE = SIMP(statut='o',typ='TXM',defaut="STANDARD",
-                                into=("STANDARD","MINIMUM",
-                                      "ITER_NEWT",
-                                      "INCR_TPS",
-                                      "RESI_RELA","RELA_NOEU",
-                                      "RESI_MAXI","MAXI_NOEU",
-                                      "RESI_REFE","REFE_NOEU",
-                                      "RELI_ITER","RELI_COEF",
-                                      "PILO_PARA",
-                                      "LAGR_ECAR","LAGR_INCR","LAGR_ITER",
-                                      "MATR_ASSE",
-                                      "ITER_DEBO",
-                                      "CTCD_ITER","CTCD_INFO","CTCD_GEOM","CTCD_NOEU",
-                                      "CTCC_GEOM","CTCC_FROT","CTCC_CONT",
-                                      "SUIV_1","SUIV_2","SUIV_3","SUIV_4",
-                                     ),
-                               ),
-            b_residu    = BLOC(condition = " NOM_COLONNE == 'RESI_RELA' or \
-                    NOM_COLONNE == 'RESI_MAXI' or\
-                    NOM_COLONNE == 'RESI_REFE' or\
-                    NOM_COLONNE == 'CTCD_GEOM' or\
-                    NOM_COLONNE == 'STANDARD' ",
-                            INFO_RESIDU = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),   
-                          ),
-         ),
-#-------------------------------------------------------------------
-         ARCHIVAGE       =FACT(statut='f',
-           regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
-                   EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
-           LIST_INST       =SIMP(statut='f',typ=(listr8_sdaster) ),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PAS_ARCH        =SIMP(statut='f',typ='I' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
-           ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           NUME_INIT       =SIMP(statut='f',typ='I'),
-           DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
-           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',validators=NoRepeat(),max='**',
-           into=("DEPL","SIEF_ELGA","VARI_ELGA","ACCE","VITE","VARI_NON_LOCAL","LANL_ELGA")),
-         ),
-         OBSERVATION     =FACT(statut='f',max='**',
-           regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
-                   PRESENT_PRESENT('MAILLE','POINT'),),
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-
-into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","ACCE_ABSOLU") ),
-           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),
-           LIST_ARCH       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           INST            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**' ),
-           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           PAS_OBSE        =SIMP(statut='f',typ='I'),
-           NOEUD           =SIMP(statut='f',typ=no  ,validators=NoRepeat(),max='**'),
-           GROUP_NO        =SIMP(statut='f',typ=grno,validators=NoRepeat(),max='**'),
-           MAILLE          =SIMP(statut='f',typ=ma  ,validators=NoRepeat(),max='**'),
-           POINT           =SIMP(statut='f',typ='I' ,max='**'),
-         ),
-#-------------------------------------------------------------------
-           SOLV_NON_LOCAL  =FACT(statut='f',
-             METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
-             b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-             ),
-             b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
-               RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
-             ),
-             b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
-                                    fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
-               NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
-               STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-             ),
-             b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
-               PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC",),defaut="LDLT_INC" ),
-               NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
-               RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
-               NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
-             ),
-           ),
-           LAGR_NON_LOCAL  =FACT(statut='f',
-             ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),
-             RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),
-             RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),
-             R               =SIMP(statut='f',typ='R',defaut= 1000.),
-             ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),
-           ),
-#-------------------------------------------------------------------
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-#& MODIF COMMANDE  DATE 07/10/2005   AUTEUR CIBHHPD L.SALMONA 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-
-from Macro.macr_cabri_calc_ops import macr_cabri_calc_ops
-   
-def macr_cabri_calc_prod(self,MODELE_THER,MODELE_MECA,CHAM_MATER,
-                         CHAR_THER,CHAR_MECA,RESU_THER,**args):
-  if MODELE_THER != None:
-   self.type_sdprod(MODELE_THER,modele_sdaster)   
-  if MODELE_MECA != None:
-   self.type_sdprod(MODELE_MECA,modele_sdaster)  
-  if RESU_THER != None:
-   self.type_sdprod(RESU_THER,evol_ther)     
-  if CHAM_MATER != None:
-   self.type_sdprod(CHAM_MATER,cham_mater)     
-  if CHAR_THER != None: 
-    for m in CHAR_THER:
-      self.type_sdprod(m['CHARGE'],char_ther)
-  if CHAR_MECA != None: 
-    for m in CHAR_MECA:
-      self.type_sdprod(m['CHARGE'],char_meca)
-  return evol_noli
-
-
-MACR_CABRI_CALC=MACRO(nom="MACR_CABRI_CALC",
-                      op=macr_cabri_calc_ops,
-                      sd_prod=macr_cabri_calc_prod,
-                      fr="Calcul thermo-mécanique d'une jonction boulonnée de tuyauterie",
-                      reentrant='n',
-                      UIinfo={"groupes":("Outils métier",)},
-                      MAILLAGE   = SIMP(statut='o',typ=maillage_sdaster,),
-                      AFFE_MATERIAU = FACT(statut='o',max='**',
-                        regles=(UN_PARMI('TOUT','GROUP_MA',),),
-                        TOUT     = SIMP(statut='f',typ='TXM',into=("OUI",) ),
-                        GROUP_MA = SIMP(statut='f',typ='TXM',into=(
-                                                                  "BRIDE",
-                                                                  "GOUJON",
-                                                                  "ROND",
-                                                                  "ECROU",
-                                                                  "JOINT",) ),
-                        MATER    = SIMP(statut='o',typ=mater_sdaster),
-                        TEMP_REF = SIMP(statut='d',typ='R',defaut= 25. ),
-                      ),                      
-                      CHAM_MATER = SIMP(statut = 'f',typ=CO,),
-                      MODELE_THER= SIMP(statut = 'f',typ=CO,),
-                      
-                      DEFI_CHAR_THER = FACT(statut ='d',
-                        TEMP_INIT     = SIMP(statut='d',typ='R',defaut= 25.,),
-                        COEF_H_FLUI   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        TEMP_EXT_FLUI = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        COEF_H_AIR    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        TEMP_EXT_AIR  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        LIST_INST     = SIMP(statut='f',typ=listr8_sdaster),
-                      ),                      
-                      
-                      CHAR_THER  = FACT(statut = 'f',max=4,
-                        CHARGE    = SIMP(statut='o',typ=CO),
-                        TYPE      = SIMP(statut='o',typ='TXM',
-                                 into=("BRIDE_FLUIDE","BRIDE_AIR","ECROU_GOUJON",
-                                       "BRIDE_JOINT"),)
-                                       ),
-
-                      RESU_THER  = SIMP(statut = 'f',typ=CO,),                                       
-
-                                       
-                      MODELE_MECA= SIMP(statut = 'f',typ=CO,),
-
-                      DEFI_CHAR_MECA   = FACT(statut='o',
-                        PRETENS    = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        PRES_REP   = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                        EFFE_FOND  = SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster),),
-                      ),                                                             
-
-                      CHAR_MECA  = FACT(statut = 'f',max=11,
-                        CHARGE    = SIMP(statut='o',typ=CO),
-                        TYPE      = SIMP(statut='o',typ='TXM',
-                                 into=("BLOC_BAS_GOUJ","BLOC_BAS_JOINT",
-                                       "BLOC_LAT_ALES","BLOC_LAT_NALES",
-                                       "PLAN_TUBE",
-                                       "PRES_FLU","EFFET_FOND",
-                                       "CONT_JOINT",
-                                       "DEFO_THER",
-                                       "SERR_ECROU_1","SERR_ECROU_2",),)
-                                       ),
-                     
-                      RELATION = SIMP(statut='f',typ='TXM',
-                                       into=('VMIS_ISOT_TRAC','ELAS','ELAS_VMIS_TRAC',),),
-                        
-                      SOLVEUR   = FACT(statut='d',
-                        METHODE  = SIMP(statut='d',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT",) ),
-                        b_mult_front = BLOC(condition = "METHODE == 'MULT_FRONT' ",
-                           fr="Paramètres de la méthode multi frontale",
-                           RENUM           = SIMP(statut='d',typ='TXM',defaut="METIS",into=("MD","MDA","METIS") ),
-                           NPREC           = SIMP(statut='d',typ='I',defaut=8),
-                           STOP_SINGULIER  = SIMP(statut='d',typ='TXM',defaut="OUI",into=("OUI","NON") ),
-                           ),                 
-                      ),                                             
-                      INCREMENT = FACT(statut='f',
-                        regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
-                                EXCLUS('NUME_INST_FIN','INST_FIN'),),
-                        LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-                        EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",
-                                 into=("CHRONOLOGIQUE",) ),                                 
-                        NUME_INST_INIT  =SIMP(statut='f',typ='I'),
-                        INST_INIT       =SIMP(statut='f',typ='R'),
-                        NUME_INST_FIN   =SIMP(statut='f',typ='I'),
-                        INST_FIN        =SIMP(statut='f',typ='R'),
-                        PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
-                        SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),
-                        SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),
-                        COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),
-                        OPTI_LIST_INST  =SIMP(statut='f',typ='TXM',into=("INCR_MAXI",),),
-                        NOM_CHAM        =SIMP(statut='f',typ='TXM',),
-                        NOM_CMP         =SIMP(statut='f',typ='TXM',),
-                        VALE            =SIMP(statut='f',typ='R'),
-                      ),
-                      NEWTON          =FACT(statut='d',
-                        REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),
-                        PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL") ),
-                        MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
-                        PAS_MINI_ELAS   =SIMP(statut='f',typ='R',defaut=0.0E+0),
-                        REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),
-                        EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
-                      ),
-                      RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
-                                into=("IMPLICITE",)),
-                      CONVERGENCE     =FACT(statut='d',
-                        regles=(PRESENT_ABSENT('RESI_REFE_RELA','RESI_GLOB_MAXI','RESI_GLOB_RELA'),),
-                        SIGM_REFE       =SIMP(statut='f',typ='R'),
-                        EPSI_REFE       =SIMP(statut='f',typ='R'),
-                        FLUX_THER_REFE  =SIMP(statut='f',typ='R'),        
-                        RESI_REFE_RELA  =SIMP(statut='f',typ='R'),
-                        RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
-                        RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
-                        ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),
-                        ITER_GLOB_ELAS  =SIMP(statut='f',typ='I',defaut=25),
-                      ),
-                     );
-
-#& MODIF COMMANDE  DATE 10/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2003  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-CREA_TABLE=OPER(nom="CREA_TABLE",op=  36,sd_prod=table_sdaster,
-                fr="Création d'une table à partir d'une fonction ou de deux listes",
-                reentrant='f',UIinfo={"groupes":("Table",)},
-
-           regles=(EXCLUS('FONCTION','LISTE'),),
-
-           LISTE=FACT(statut='f',max='**',
-                 fr="Creation d'une table a partir de listes",
-                 regles=(UN_PARMI('LISTE_I','LISTE_R','LISTE_K')), 
-                        PARA     =SIMP(statut='o',typ='TXM'),
-                        TYPE_K   =SIMP(statut='f',typ='TXM',defaut='K8',
-                                    into=('K8','K16','K24')),
-                        NUME_LIGN=SIMP(statut='f',typ='I',max='**'),
-                        LISTE_I  =SIMP(statut='f',typ='I',max='**'),
-                        LISTE_R  =SIMP(statut='f',typ='R',max='**'),
-                        LISTE_K  =SIMP(statut='f',typ='TXM', max='**'),
-           ),
-           FONCTION=FACT(statut='f',
-                    fr="Creation d'une table a partir d'une fonction",
-                        FONCTION=SIMP(statut='o',typ=(fonction_c,fonction_sdaster)),
-                        PARA=SIMP(statut='f',typ='TXM',min=2,max=2),
-           ),
-           b_fonction = BLOC(condition='FONCTION != None',
-               regles=(CONCEPT_SENSIBLE('SEPARE'), REUSE_SENSIBLE(),
-                       DERIVABLE('FONCTION'),),
-               SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),validators=NoRepeat(),max='**',
-                                    fr="Liste des paramètres de sensibilité.",
-                                    ang="List of sensitivity parameters"),
-           ),
-           TITRE=SIMP(statut='f',typ='TXM',max='**'),
-)  ;
-
-
-
-#& MODIF COMMANDE  DATE 04/10/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE GNICOLAS G.NICOLAS
-
-from Macro.macr_fiabilite_ops import macr_fiabilite_ops
-
-#
-#====
-# 1. Le retour : une liste de rééls.
-#====
-#
-def macr_fiabilite_prod ( self , **args ):
-  return listr8_sdaster
-#
-#====
-# 2. L'entete
-#====
-#
-MACR_FIABILITE = MACRO ( nom="MACR_FIABILITE",op=macr_fiabilite_ops,
-                         docu="U7.03.31",UIinfo={"groupe":("Post traitements",)},
-                         sd_prod=macr_fiabilite_prod,
-                         fr="Calcule les probabiltés de dépassement de seuil (mécanique de fiabilité).",
-                         ang="Fiability mechanics.",
-#
-#====
-# 3. Le niveau d'information
-#====
-#
-   INFO           = SIMP(statut="f",typ="I",defaut=1,into=(1,2)),
-#
-#====
-# 4. Nom et Version du logiciel de fiabilité
-#====
-#
-   LOGICIEL = SIMP(statut="f",typ="TXM",defaut="MEFISTO",
-                   into=("MEFISTO",),
-                   fr="Nom du logiciel de fiabilité.",
-                   ang="Fiability software name."),
-#
-   VERSION = SIMP(statut="f",typ="TXM",defaut="V3_2",
-                  into=("V3_2", "V3_N"),
-                  fr="Version du logiciel de fiabilité.",
-                  ang="Fiability software release."),
-#
-#====
-# 5. Les entrees-sorties du calcul ASTER déterministe
-#====
-#
-# 5.1. ==> Le jeu de commandes déterministe
-#
-   UNITE_ESCL = SIMP(statut="o",typ="I",
-                     fr="Unité logique associée aux commandes du calcul ASTER déterministe.",
-                     ang="Logical unit for the commands of the ASTER deterministic calculation."),
-#
-# 5.2. ==> Le destin des messages produits par ASTER
-#
-   MESS_ASTER = SIMP(statut="f",typ="TXM",defaut="DERNIER",
-                        into=("AUCUN", "DERNIER", "TOUS"),
-                        fr="Quels messages ASTER récupérer.",
-                        ang="Which ASTER messages must be kept."),
-#
-#====
-# 6. Options
-#====
-# 6.1. ==> Générales
-#
-# 6.1.1. ==> La valeur du seuil
-#
-   SEUIL = SIMP(statut="o",typ="R",max=1,
-                fr="Le seuil de défaillance.",
-                ang="Failure threshold."),
-#
-# 6.1.2. ==> Le type du seuil : on a deux cas de figure selon que
-#            la défaillance a lieu au dessus d'un seuil maximum ou
-#            en dessous d'un seuil minimum
-#
-   SEUIL_TYPE = SIMP(statut="o",typ="TXM",max=1,
-                     into=("MINIMUM","MAXIMUM"),
-                     fr="Que faut-il ne pas dépasser : un maximum ou un minimum.",
-                     ang="What is the failure threshold : maximum or minimum."),
-#
-# 6.2. ==> Pour MEFISTO
-#
-### en attente de résolution de AL 2004-006 (1/2)   b_mefisto=BLOC( condition = "LOGICIEL=='MEFISTO'",
-#
-# 6.2.1. ==> Pilotage de la recherche du point de conception
-#
-     RECH_PT_CONCEPT = SIMP(statut="f",typ="TXM",defaut="OUI",
-                            into=("OUI","NON"),
-                            fr="Pour trouver le point de conception.",
-                            ang="To find the design point."),
-#
-     b_rech_pt_concept=BLOC( condition = "RECH_PT_CONCEPT=='OUI'",
-#
-       EPSILON_U = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                        fr="Précision du test d'arret sur les points itératifs dans l'espace standard.",
-                        ang="Precision of stop test for iterative points in standard space."),
-#
-       EPSILON_G = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                        fr="Précision du test d'arret sur la proximité de la surface d'état limite.",
-                        ang="Precision of stop test for limit state surface."),
-#
-       TAU       = SIMP(statut="f",typ="R",defaut=5.0E-1,
-                        fr="Paramètre de la méthode de minimisation.",
-                        ang="Parameter for the minimization method."),
-#
-       OMEGA     = SIMP(statut="f",typ="R",defaut=1.0E-4,
-                        fr="Paramètre de la méthode de minimisation.",
-                        ang="Parameter for the minimization method."),
-#
-       ITER_MAX  = SIMP(statut="f",typ="I",defaut=50,
-                        fr="Nombre maximum d'itérations.",
-                        ang="Maximum number of iterations."),
-     ),
-#
-# 6.2.2. ==> Méthode(s) employée(s) pour la probabilité de défaillance
-#
-     METHODE_FORM = SIMP(statut="f",typ="TXM",defaut="OUI",
-                         into=("OUI","NON"),
-                         fr="Recherche de la probabilité de défaillance avec la méthode FORM.",
-                         ang="Research of failure probability with FORM method."),
-#
-     METHODE_SORM = SIMP(statut="f",typ="TXM",defaut="NON",
-                         into=("OUI","NON"),
-                         fr="Recherche de la probabilité de défaillance avec la méthode SORM.",
-                         ang="Research of failure probability with SORM method."),
-#
-     TIRAGE_IMPORTANCE = SIMP(statut="f",typ="TXM",defaut="NON",
-                              into=("OUI","NON"),
-                              fr="Recherche de la probabilité de défaillance avec le tirage d'importance.",
-                              ang="Research of failure probability with ."),
-#
-     b_tirage_importance=BLOC( condition = "TIRAGE_IMPORTANCE=='OUI'",
-#
-       NB_SIMULATION = SIMP(statut="f",typ="I",defaut=3,
-                            fr="Nombre de simulations pour le tirage d'importance.",
-                            ang="Number of simulation for."),
-#
-     ),
-#
-# 6.2.3. ==> Création d'une surface de réponse polynomiale
-#
-     POLYNOME_TAYLOR   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),),
-     HGRAD             = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                              fr="Pas incrémental pour le calcul des gradients.",
-                              ang="Step for calculation of gradients."),
-     HHESS             = SIMP(statut="f",typ="R",defaut=1.0E-2,
-                              fr="Pas incrémental pour le calcul des dérivées secondes.",
-                              ang="Step for calculation of second derivatives."),
-#
-# 6.2.4. ==> Recherche d'un plan d'expérience
-#
-     PLAN_EXPERIENCE   = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                              fr="Construction d'un plan d'expérience.",
-                              ang="Construction of an experiment plan."),
-#
-     b_plan_experience=BLOC( condition = "PLAN_EXPERIENCE=='OUI'",
-#
-       ALPHA         = SIMP(statut="f",typ="R",defaut=2.0E-1,
-                            fr="Plan d'expérience : maille du plan de type composite centré.",
-                            ang="Experiment plane : mesh centered composite."),
-#
-       BETA          = SIMP(statut="f",typ="R",defaut=4.0E-1,
-                            fr="Plan d'expérience : maille du plan de type factoriel.",
-                            ang="Experiment plane : mesh factor."),
-#
-     ),
-#
-# 6.2.5. ==> Les tests
-# 6.2.5.1. ==> Test de la sphere
-#
-     T_SPHERE = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                     fr="Test de la sphère.",
-                     ang="Sphere test."),
-#
-     b_test_de_la_sphere=BLOC( condition = "T_SPHERE=='OUI'",
-#
-       METHODE_TEST = SIMP(statut="f",typ="TXM",defaut="GAUSSIENNE",
-                           into=("GAUSSIENNE","PARAMETRIQUE","REJECTION"),
-                           fr="Type de méthode.",
-                           ang="Method."),
-#
-       NB_POINT     = SIMP(statut="f",typ="I",max=1,defaut=60,
-                           fr="Nombre de points de la sphere.",
-                           ang="Number of points over the sphere.")
-     ),
-#
-# 6.2.5.2. ==> Test du maximum fort
-#
-     T_MAXIMUM_FORT = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                           fr="Test du maximum fort.",
-                           ang="Strong maximum test."),
-#
-     b_test_du_maximum_fort=BLOC( condition = "T_MAXIMUM_FORT=='OUI'",
-#
-       COS_LIM = SIMP(statut="f",typ="R",max=1,defaut=1.0,
-                      fr="Cosinus de l'angle d'exclusion.",
-                      ang="Cosine of angle of exclusion."),
-#
-       DPROB   = SIMP(statut="f",typ="R",max=1,defaut=4.3E-1,
-                      fr="Fraction d'iso-densité de probabilité de défaillance.",
-                      ang="Fraction.")
-#
-     ),
-#
-# 6.2.5.3. ==> Test du hessien
-#
-     T_HESSIEN = SIMP(statut="f",typ="TXM",defaut="NON",into=("OUI","NON"),
-                      fr="Test du hessien.",
-                      ang="Hessian test."),
-#
-# 6.2.6. ==> Les correlations entre les variables
-#
-     MATRICE = SIMP(statut="f",typ="R",max="**",
-                    fr="Matrice de corrélation entre les variables.",
-                    ang="Correlation matrix."), 
-#
-### en attente de résolution de AL 2004-006 (2/2)   ),
-#
-#====
-# 7. Definition des paramètres
-#====
-#
-   VARIABLE = FACT(statut="o",min=1,max="**",
-#
-# 7.1. ==> Nom de la variable
-#
-       NOM = SIMP(statut="o",typ="TXM",
-                  fr="Nom de la variable, identique au nom de concept PARA_SENSI.",
-                  ang="Name of the variable, identical to the name of the PARA_SENSI conceipt."),
-#
-# 7.2. ==> Loi de distribution
-#
-       LOI = SIMP(statut="o",typ="TXM",
-                  into=("UNIFORME","NORMALE","LOGNORMALE","NORMALE_TRONQUEE"),
-                  fr="Choix de la loi",
-                  ang="Law."),
-#
-# 7.2.1. ==> Loi normale
-#
-       b_normale=BLOC(condition="LOI=='NORMALE'",
-#
-         VALE_MOY   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur moyenne.",
-                               ang="Mean value."),
-#
-         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
-                               fr="Ecart type.",
-                               ang="Standard deviation."),
-#
-       ),
-#
-# 7.2.2. ==> Loi lognormale
-#
-       b_lognormale=BLOC(condition="LOI=='LOGNORMALE'",
-#
-         VALE_MIN       = SIMP(statut="o",typ="R",max=1,
-                                   fr="Valeur minimale.",
-                                   ang="Minimal value."),
-#
-         VALE_MOY       = SIMP(statut="f",typ="R",max=1,
-                                   fr="Valeur moyenne dans l'espace de la loi normale.",
-                                   ang="Mean value in the space of the normal law."),
-#
-         ECART_TYPE     = SIMP(statut="f",typ="R",max=1,
-                                   fr="Ecart type dans l'espace de la loi normale.",
-                                   ang="Standard deviation in the space of the normal law."),
-#
-         VALE_MOY_PHY   = SIMP(statut="f",typ="R",max=1,
-                                   fr="Valeur moyenne dans l'espace physique.",
-                                   ang="Mean value in the physical space."),
-#
-         ECART_TYPE_PHY = SIMP(statut="f",typ="R",max=1,
-                                   fr="Ecart type dans l'espace physique.",
-                                   ang="Standard deviation in the physical space."),
-#
-         regles=(AU_MOINS_UN("VALE_MOY"  ,"VALE_MOY_PHY"),
-                 AU_MOINS_UN("ECART_TYPE","ECART_TYPE_PHY"),
-                 EXCLUS  ("VALE_MOY"  ,"VALE_MOY_PHY"),
-                 EXCLUS  ("VALE_MOY"  ,"ECART_TYPE_PHY"),
-                 EXCLUS  ("ECART_TYPE","VALE_MOY_PHY"),
-                 EXCLUS  ("ECART_TYPE","ECART_TYPE_PHY")),
-#
-       ),
-#
-# 7.2.3. ==> Loi uniforme
-#
-       b_uniforme=BLOC(condition="LOI=='UNIFORME'",
-#
-         VALE_MIN = SIMP(statut="o",typ="R",max=1,
-                             fr="Valeur minimale.",
-                             ang="Minimal value."),
-#
-         VALE_MAX = SIMP(statut="o",typ="R",max=1,
-                             fr="Valeur maximale.",
-                             ang="Maximal value."),
-#
-       ),
-#
-# 7.2.4. ==> Loi normale tronquée
-#
-       b_normale_tronquee=BLOC(condition="LOI=='NORMALE_TRONQUEE'",
-#
-         VALE_MOY   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur moyenne de la loi normale complète.",
-                               ang="Mean value for the entire normal law."),
-#
-         ECART_TYPE = SIMP(statut="o",typ="R",max=1,
-                               fr="Ecart type de la loi normale complète.",
-                               ang="Standard deviation for the entire normal law."),
-#
-         VALE_MIN   = SIMP(statut="o",typ="R",max=1,
-                               fr="Valeur minimale.",
-                               ang="Minimal value."),
-#
-         VALE_MAX   = SIMP(statut="o",typ="R.",max=1,
-                               fr="Valeur maximale.",
-                               ang="Maximal value."),
-#
-       ),
-#
-# 7.3. ==> Paramètres de calcul
-# 7.3.1. ==> Soit on cherche le point de conception, soit on le connait deja
-#
-       regles=(EXCLUS("POINT_INI","POINT_CONCEPT"),
-               EXCLUS("POINT_REF","POINT_CONCEPT"),),
-#
-# 7.3.2. ==> Quand on cherche le point de conception, on peut préciser le départ de l'algorithme.
-#            Si on ne le fait pas, le programme prendra la valeur moyenne.
-#
-       POINT_INI = SIMP(statut="f",typ="R",max=1,
-                          fr="Point de démarrage de l'algorithme itératif.",
-                          ang="Initial point for iterative process."),
-#
-# 7.3.3. ==> Quand on cherche le point de conception, on peut préciser un point de référence pour normaliser.
-#            Si on ne le fait pas, le programme prendra la valeur moyenne.
-#
-       POINT_REF = SIMP(statut="f",typ="R",max=1,
-                          fr="Point de référence de l'algorithme itératif.",
-                          ang="Reference point for iterative process."),
-#
-# 7.3.4. ==> Quand on cherche uniquement la probabilité de défaillance, il faut donner le point de conception
-#
-       POINT_CONCEPT = SIMP(statut="f",typ="R",max=1,
-                              fr="Point de conception.",
-                              ang="Design point."),
-#
-# 7.4. ==> Mode d'obtention du gradient par rapport à ce paramètre
-#
-       GRADIENT = SIMP(statut="o",typ="TXM",max=1,
-                           into=("OUI","NON"),
-                           fr="ASTER calcule directement le gradient.",
-                       ang="ASTER computes the gradient for this parameter."),
-
-       b_gradient=BLOC(condition="GRADIENT=='NON'",
-         INCREMENT = SIMP(statut="o",typ="R",max=1,
-                             fr="Incrément dans la direction.",
-                         ang="Direction increment."),
-       ),
-
-   ),
-#
-);
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-# RESPONSABLE JMBHH01 J.M.PROIX
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-DEFI_COMPOR=OPER(nom="DEFI_COMPOR",op=59,sd_prod=compor_sdaster,
-                   fr="Définir le comportement d'un monocristal ou d'un polycristal",
-                   reentrant='n',
-            UIinfo={"groupes":("Modélisation",)},
-                  regles=(EXCLUS('MONOCRISTAL','POLYCRISTAL'),),
-
-          MONOCRISTAL    =FACT(statut='f', max='**',
-             MATER           =SIMP(statut='o', typ=mater_sdaster, max=1),
-             ECOULEMENT      =SIMP(statut='o', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écoulement viscoplastique"),
-             ECRO_ISOT       =SIMP(statut='o', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage isotrope"),
-             ECRO_CINE       =SIMP(statut='o', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le type d'écrouissage cinématique"),
-             ELAS            =SIMP(statut='f', typ='TXM', max=1,
-                   fr="Donner le nom du mot-clé facteur de DEFI_MATERIAU précisant le comportement élastique (un et un seul)"),
-             FAMI_SYST_GLIS  =SIMP(statut='o',typ='TXM', max=1, 
-                                into=('BASAL', 'PRISMATIQUE', 'OCTAEDRIQUE', 'PYRAMIDAL1',
-                                'PYRAMIDAL2', 'CUBIQUE1', 'CUBIQUE2', 'MACLAGE', 'JOINT_GRAIN', 'RL', 'UNIAXIAL'),),
-                                ),
-                                
-                                
-          POLYCRISTAL    =FACT(statut='f', max='**',
-             MONOCRISTAL     =SIMP(statut='o', typ=compor_sdaster, max=1),
-             FRAC_VOL  =SIMP(statut='o', typ='R', max=1,fr="fraction volumique de la phase correspondant au monocristal"),
-             ANGL_REP  =SIMP(statut='o',typ='R',max=3,fr="orientation du monocristal : 3 angles d'Euler en degrés"),
-                                ),
-                                
-                                
-          b_poly      =BLOC( condition = "POLYCRISTAL!='None'",
-          LOCALISATION     =SIMP(statut='f', typ='TXM', max=1, into=('BZ', 'BETA', 'RL',),
-                fr="Donner le nom de la règle de localisation"),
-          
-           b_beta      =BLOC( condition = "LOCALISATION=='BETA'",
-             DL            =SIMP(statut='o',typ='R',max=1),
-             DA            =SIMP(statut='o',typ='R',max=1),
-             ),
-             ),
-                                
-                                );
-                   
-#& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-from Macro.defi_part_feti_ops import defi_part_feti_ops
-
-DEFI_PART_FETI=MACRO(nom="DEFI_PART_FETI",op=defi_part_feti_ops,sd_prod=sd_feti_sdaster,
-                     reentrant='n',UIinfo={"groupe":("Maillage",)},
-                     fr="Creation partitionnement en sous-domaines pour FETI",
-         regles=(UN_PARMI('MAILLAGE','MODELE'),),
-         MAILLAGE        =SIMP(statut='f',typ=maillage_sdaster),
-         MODELE          =SIMP(statut='f',typ=modele_sdaster),
-         NB_PART         =SIMP(statut='o',typ='I',val_min=2),
-         EXCIT           =FACT(statut='f',max='**',
-           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),),
-
-         # Methode de partitionnement
-         METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
-         
-         LOGICIEL      =SIMP(statut='f',typ='TXM'),
-
-         # Corrige les problemes possibles de non-connexite des sous-domaines
-         CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
-
-         # Permet de grouper des mailles dans un meme sous-doamine
-         GROUPAGE        =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-                          ),
-         # Permet d'appliquer des poids sur certaines mailles
-         POIDS_MAILLES   =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-           POIDS          =SIMP(statut='f',typ='I',val_min=2),
-                          ),
-         # Prefixe pour le nom des group_ma definissant les sous-domaines 
-         NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
-
-         # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
-         TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
-         
-         # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
-         # Note : le calcul FETI sera impossible
-         b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
-           NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
-             ),
-
-         INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
-);
-#& MODIF COMMANDE  DATE 22/02/2005   AUTEUR DURAND C.DURAND 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-DEFI_PART_OPS=OPER(nom="DEFI_PART_OPS",op=21,sd_prod=sd_feti_sdaster,
-                    fr="Creation partitionnement en sous-domaines pour FETI",
-                    docu="U4.23.05",reentrant='n',
-                    UIinfo={"groupes":("Résolution",)},
-         MODELE          =SIMP(statut='o',typ=(modele_sdaster) ),
-         MAILLAGE        =SIMP(statut='f',typ=(maillage_sdaster) ),
-         NOM             =SIMP(statut='f',typ='TXM',defaut='SD'),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2,3,4) ),
-         DEFI          =FACT(statut='f',max='**',
-           GROUP_MA        =SIMP(statut='o',typ=grma),
-           GROUP_MA_BORD   =SIMP(statut='f',typ=grma),
-         ),
-         EXCIT           =FACT(statut='f',max='**',
-           CHARGE          =SIMP(statut='f',typ=(char_meca,char_cine_meca)),
-         ),
-);
-#& MODIF COMMANDE  DATE 22/06/2005   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE MCOURTOI M.COURTOIS
-from Macro.impr_fonction_ops import impr_fonction_ops
-
-IMPR_FONCTION=MACRO(nom="IMPR_FONCTION",op=impr_fonction_ops,sd_prod=None,
-                 fr="Imprime le contenu d'objets de type fonction ou liste de réels dans un fichier destiné à un traceur de courbe",
-            UIinfo={"groupes":("Fonction",)},
-         FORMAT          =SIMP(statut='o',typ='TXM',position='global',defaut='TABLEAU',
-                               into=("TABLEAU","AGRAF","XMGRACE",),),
-         b_pilote = BLOC(condition = "FORMAT == 'XMGRACE'",
-                        fr="Mots-clés propres à XMGRACE",
-           PILOTE          =SIMP(statut='f',typ='TXM',defaut='',
-                                 into=('','POSTSCRIPT','EPS','MIF','SVG','PNM','PNG','JPEG','PDF','INTERACTIF'),
-                            fr="Pilote de sortie, PNG/JPEG/PDF ne sont pas disponibles sur toutes les installations de xmgrace"),
-           UNITE           =SIMP(statut='f',typ='I',val_min=10,val_max=90,defaut=29,
-                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
-         ),
-         b_agraf = BLOC(condition = "FORMAT == 'AGRAF'",
-                        fr="Mots-clés propres à AGRAF",
-           UNITE           =SIMP(statut='o',typ='I',defaut=25,
-                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
-           UNITE_DIGR      =SIMP(statut='o',typ='I',defaut=26,
-                                 fr="Unité logique définissant le fichier dans lequel on écrit les directives Agraf"),
-         ),
-         # unite pour TABLEAU dans le bloc de mise en forme spécifique
-
-         COURBE          =FACT(statut='o',max='**',fr="Définition de la fonction à tracer",
-           regles=(UN_PARMI('FONCTION','LIST_RESU','FONC_X','ABSCISSE'),),
-           FONCTION        =SIMP(statut='f',typ=(fonction_sdaster, formule, fonction_c, nappe_sdaster),
-                                 fr="Fonction réelle ou complexe", ),
-           LIST_RESU       =SIMP(statut='f',typ=listr8_sdaster,
-                                 fr="Liste des ordonnees d'une fonction réelle définie par deux listes", ),
-           FONC_X          =SIMP(statut='f',typ=(fonction_sdaster,formule),
-                                 fr="Fonction abscisses d'une fonction paramétrique",),
-           ABSCISSE        =SIMP(statut='f',typ='R',max='**',
-                                 fr="Valeurs des abscisses", ),
-           b_fonction      =BLOC(condition = "FONCTION != None",
-             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
-           ),
-           b_fonction_c  =BLOC(condition = "AsType(FONCTION) == fonction_c",
-                                 fr="Fonction complexe définie par le mot-clé fonction",
-             PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
-           ),
-           b_list_resu     =BLOC(condition = "LIST_RESU != None",
-             LIST_PARA       =SIMP(statut='o',typ=listr8_sdaster ),
-           ),
-           b_fonc_x        =BLOC(condition = "FONC_X != None",
-             FONC_Y          =SIMP(statut='o',typ=(fonction_sdaster,formule),fr="Fonction ordonnées d une fonction paramétrique" ),
-             LIST_PARA       =SIMP(statut='f',typ=listr8_sdaster ),
-           ),
-           b_vale_resu     =BLOC(condition = "ABSCISSE != None",
-             ORDONNEE      =SIMP(statut='o',typ='R',max='**',
-                                 fr="Valeurs des ordonnées"),
-           ),
-
-           # le bloc n'est pas activé (vide) car position n'est pas pris en compte
-           b_forme         =BLOC(condition = "FORMAT != 'TABLEAU'",
-                                 fr="Données de mise en forme de la fonction (cf. doc)",
-           ),
-              LEGENDE         =SIMP(statut='f',typ='TXM',
-                                    fr="Légende associée à la fonction" ),
-              STYLE           =SIMP(statut='f',typ='I',val_min=0,
-                                    fr="Style de la ligne représentant la fonction",),
-              COULEUR         =SIMP(statut='f',typ='I',val_min=0,
-                                    fr="Couleur associée à la fonction",),
-              MARQUEUR        =SIMP(statut='f',typ='I',val_min=0,
-                                    fr="Type du marqueur associé à la fonction",),
-              FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut=0,
-                                    fr="Fréquence d impression du marqueur associé à la fonction", ),
-           # fin bloc b_forme
-           TRI             =SIMP(statut='f',typ='TXM',defaut="N",
-                                 fr="Choix du tri effectué sur les abscisses ou sur les ordonnées",
-                                 into=("N","X","Y","XY","YX") ),
-         ),
-         # Mise en page du tableau ou du graphique
-         b_tableau = BLOC(condition = "FORMAT == 'TABLEAU'",
-                          fr="Mots-clés propres au format Tableau",
-           UNITE           =SIMP(statut='o',typ='I',defaut=8,
-                                 fr="Unité logique définissant le fichier (fort.N) dans lequel on écrit"),
-           TITRE           =SIMP(statut='f',typ='TXM',
-                                 fr="Titre associé au graphique" ),
-           SOUS_TITRE      =SIMP(statut='f',typ='TXM',
-                                 fr="Sous-titre du graphique" ),
-           SEPARATEUR      =SIMP(statut='f',typ='TXM',defaut=' ',
-                                 fr="Séparateur des colonnes du tableau (ex : ' ', ';'...)"),
-           COMMENTAIRE     =SIMP(statut='f',typ='TXM',defaut='#',
-                                 fr="Caractère indiquant au traceur de fonction que la ligne peut etre ignorée"),
-           DEBUT_LIGNE     =SIMP(statut='f',typ='TXM',defaut='',
-                                 fr="Caractère de debut de ligne"),
-           FIN_LIGNE       =SIMP(statut='f',typ='TXM',defaut='\n',
-                                 fr="Caractère de fin de ligne"),
-         ),
-         b_graphique = BLOC(condition = "FORMAT != 'TABLEAU'",
-                        fr="Mise en page du graphique",
-           TITRE           =SIMP(statut='f',typ='TXM',
-                                 fr="Titre associé au graphique" ),
-           SOUS_TITRE      =SIMP(statut='f',typ='TXM',
-                                 fr="Sous-titre du graphique" ),
-           BORNE_X         =SIMP(statut='f',typ='R',min=2,max=2,
-                                 fr="Intervalles de variation des abscisses"),
-           BORNE_Y         =SIMP(statut='f',typ='R',min=2,max=2,
-                                 fr="Intervalles de variation des ordonnées"),
-           ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
-                                 fr="Type d'échelle pour les abscisses" ),
-           ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),
-                                 fr="Type d'échelle pour les ordonnées" ),
-           GRILLE_X        =SIMP(statut='f',typ='R',max=1,val_min=0.,
-                                 fr="Pas du quadrillage vertical" ),
-           GRILLE_Y        =SIMP(statut='f',typ='R',max=1,val_min=0.,
-                                 fr="Pas du quadrillage horizontal" ),
-           LEGENDE_X       =SIMP(statut='f',typ='TXM',
-                                 fr="Légende associée à l'axe des abscisses" ),
-           LEGENDE_Y       =SIMP(statut='f',typ='TXM',
-                                 fr="Légende associée à l'axe des ordonnées" ),
-         ),
-         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)  ;
-#& MODIF COMMANDE  DATE 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 ),
-         ),
-         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/05/2006   AUTEUR MCOURTOI M.COURTOIS 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# -*- coding: iso-8859-1 -*-
-
-# RESPONSABLE MCOURTOI M.COURTOIS
-
-def calc_table_prod(self, TABLE, **kargs):
-   """Typage du concept produit.
-   """
-   typ_table = AsType(TABLE)
-   if issubclass(typ_table, table_sdaster):
-      return typ_table
-   raise AsException("type de concept resultat non prevu")
-
-from Macro.calc_table_ops import calc_table_ops
-
-CALC_TABLE=MACRO(nom="CALC_TABLE",op=calc_table_ops, sd_prod=calc_table_prod,
-                     fr="Opérations sur une table",
-                     reentrant='f',
-   regles=(DERIVABLE('TABLE'),),
-   TABLE  = SIMP(statut='o',typ=table_sdaster),
-   ACTION = FACT(statut='o', max='**',
-                    fr = "Suite des opérations à effectuer sur la table",
-      OPERATION = SIMP(statut='o', typ='TXM',
-                  into=('FILTRE', 'EXTR', 'RENOMME', 'TRI', 'COMB', 'OPER',)),
-      
-      b_filtre = BLOC(condition="OPERATION == 'FILTRE'",
-                      fr="Sélectionne les lignes de la table vérifiant un critère",
-         NOM_PARA  = SIMP(statut='o',typ='TXM'),
-         CRIT_COMP = SIMP(statut='f',typ='TXM',defaut="EQ",
-                          into=('EQ','NE','GT','LT','GE','LE','REGEXP',
-                                'VIDE','NON_VIDE','MAXI','ABS_MAXI','MINI','ABS_MINI'),),
-         b_vale = BLOC(condition = "(CRIT_COMP in ('EQ','NE','GT','LT','GE','LE'))",
-            regles=(UN_PARMI('VALE','VALE_I','VALE_K','VALE_C',),),
-            VALE   = SIMP(statut='f',typ='R'),
-            VALE_I = SIMP(statut='f',typ='I'),
-            VALE_C = SIMP(statut='f',typ='C'),
-            VALE_K = SIMP(statut='f',typ='TXM'),
-         ),
-         b_regexp = BLOC(condition = "CRIT_COMP == 'REGEXP'",
-            VALE_K = SIMP(statut='f',typ='TXM'),
-         ),
-         b_crit = BLOC(condition = "CRIT_COMP in ('EQ','NE')",
-            CRITERE   = SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-            PRECISION = SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
-         ),
-      ),
-      
-      b_extr = BLOC(condition="OPERATION ==  'EXTR'",
-                    fr="Extrait une ou plusieurs colonnes de la table",
-         NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**',
-                         fr="Noms des colonnes à extraire"),
-      ),
-   
-      b_renomme = BLOC(condition="OPERATION == 'RENOMME'",
-                       fr="Renomme un ou plusieurs paramètres de la table",
-         NOM_PARA = SIMP(statut='o', typ='TXM', validators=NoRepeat(), min=2, max=2,
-                         fr="Couple (ancien nom du paramètre, nouveau nom du paramètre)",),
-      ),
-   
-      b_tri = BLOC(condition="OPERATION == 'TRI'",
-                   fr="Ordonne les lignes de la table selon les valeurs d'un ou plusieurs paramètres",
-         NOM_PARA = SIMP(statut='o',typ='TXM',validators=NoRepeat(),max='**'),
-         ORDRE    = SIMP(statut='f',typ='TXM',defaut="CROISSANT",
-                         into=("CROISSANT","DECROISSANT") ),
-      ),
-      
-      b_comb = BLOC(condition="OPERATION == 'COMB'",
-                    fr="Combine deux tables ayant éventuellement des paramètres communs",
-         TABLE    = SIMP(statut='o',typ=table_sdaster,
-                         fr="Table dont les colonnes vont venir surcharger la table initiale"),
-         NOM_PARA = SIMP(statut='f',typ='TXM',max='**',
-                         fr="Noms des paramètres dont les valeurs doivent etre identiques dans les deux tables "\
-                            "pour que les colonnes soient combinées"),
-      ),
-      
-      b_oper = BLOC(condition="OPERATION == 'OPER'",
-                    fr="Applique une formule dans laquelle les variables sont les paramètres de la table",
-         FORMULE  = SIMP(statut='o',typ=formule,
-                         fr="Formule à appliquer aux colonnes de la table"),
-         NOM_PARA = SIMP(statut='o',typ='TXM',
-                         fr="Nom de la nouvelle colonne"),
-      ),
-   ),
-   
-   SENSIBILITE = SIMP(statut='f',typ=(para_sensi,theta_geom),max=1,
-                      fr="Paramètre de sensibilité",
-                      ang="Sensitivity parameter"),
-   TITRE = SIMP(statut='f',typ='TXM',max='**',
-                fr="Titre de la table produite"),
-   INFO  = SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
-)
-#& MODIF COMMANDE  DATE 30/08/2005   AUTEUR ASSIRE A.ASSIRE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# RESPONSABLE ASSIRE A.ASSIRE
-
-DEFI_PART_PA_OPS=OPER(nom="DEFI_PART_PA_OPS",op=29,sd_prod=sd_feti_sdaster,
-                    fr="Creation partitionnement en sous-domaines pour FETI",
-                    docu="U4.00.00",reentrant='n',
-                    UIinfo={"groupes":("Résolution",)},
-         MAILLAGE        =SIMP(statut='o',typ=(maillage_sdaster,squelette) ),
-         MODELE          =SIMP(statut='f',typ=(modele_sdaster)),
-         NB_PART         =SIMP(statut='o',typ='I',),
-
-         # Methode de partitionnement
-         METHODE         =SIMP(statut='f',typ='TXM',into=("PMETIS","SCOTCH","KMETIS",), defaut="SCOTCH" ),
-         
-         LOGICIEL      =SIMP(statut='f',typ='TXM'),
-
-         # Corrige les problemes possibles de non-connexite des sous-domaines
-         CORRECTION_CONNEX    =SIMP(statut='f',typ='TXM',defaut='NON',into=('OUI','NON')),
-
-         # Permet de grouper des mailles dans un meme sous-doamine
-         GROUPAGE        =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-                          ),
-         # Permet d'appliquer des poids sur certaines mailles
-         POIDS_MAILLES   =FACT(statut='f',max='**',
-           GROUP_MA       =SIMP(statut='o',typ=grma,),
-           POIDS          =SIMP(statut='f',typ='I'),
-                          ),
-         # Prefixe pour le nom des group_ma definissant les sous-domaines 
-         NOM_GROUP_MA    =SIMP(statut='f',typ='TXM',defaut='SD' ),
-
-         # Traiter les mailles de bords (elles sont enlevees du graphe puis reinjectees)
-         TRAITER_BORDS   =SIMP(statut='f',typ='TXM',defaut='OUI',into=('OUI','NON') ),
-
-         # Si le mot-clé suivant est renseigné, crée de nouveau group_ma a partir des bords
-         # Note : le calcul FETI sera impossible
-         b_traiter_bords =BLOC(condition="TRAITER_BORDS == 'OUI'", fr="Crée t on des nouveaux group_ma",
-           NOM_GROUP_MA_BORD  =SIMP(statut='f',typ='TXM'),
-             ),
-
-         INFO            =SIMP(statut='f',typ='I',into=(1, 2), defaut=1),
-
-);
-#& MODIF COMMANDE  DATE 13/02/2006   AUTEUR DURAND C.DURAND 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-# ======================================================================
-
-MAC_MODES=OPER(nom="MAC_MODES",op=  141,sd_prod=table_sdaster,
-               fr="Normalisation de modes propres",
-               reentrant='n',
-            UIinfo={"groupes":("Résolution",)},
-         BASE_1       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
-         BASE_2       =SIMP(statut='o',typ=(mode_meca,mode_flamb,base_modale) ),
-         MATR_ASSE       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_depl_c) ),
-         TITRE      =SIMP(statut='f',typ='TXM',max='**'),
-         INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
-)  ;
-#& MODIF COMMANDE  DATE 08/11/2005   AUTEUR ACBHHCD G.DEVESA 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-LIRE_IMPE_MISS=OPER(nom="LIRE_IMPE_MISS",op= 164,sd_prod=matr_asse_gene_c,
-                    fr="Création d une matrice assemblée à partir de base modale",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},           
-         BASE            =SIMP(statut='o',typ=base_modale ),
-         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
-         FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
-         UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),
-)  ;
-
-#& MODIF COMMANDE  DATE 21/02/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2005  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-LIRE_FORC_MISS=OPER(nom="LIRE_FORC_MISS",op= 179,sd_prod=vect_asse_gene,
-                    fr="Création d un vecteur assemblé à partir de base modale",
-                    reentrant='n',
-            UIinfo={"groupes":("Matrices/vecteurs",)},           
-         BASE            =SIMP(statut='o',typ=base_modale ),
-         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
-         FREQ_EXTR       =SIMP(statut='o',typ='R',max=1),
-         NOM_CMP         =SIMP(statut='o',typ='TXM',into=("DX","DY","DZ") ),
-         NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE"),defaut="DEPL"),
-         UNITE_RESU_FORC =SIMP(statut='f',typ='I',defaut=30),
-)  ;
-
-#& MODIF COMMANDE  DATE 22/05/2006   AUTEUR REZETTE C.REZETTE 
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2006  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
-# (AT YOUR OPTION) ANY LATER VERSION.                                                  
-#                                                                       
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
-#                                                                       
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
-# ======================================================================
-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='**'),
-           LIST_INST       =SIMP(statut='f',typ=listr8_sdaster),
-           TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-           NUME_MODE       =SIMP(statut='f',typ='I',validators=NoRepeat(),max='**'),
-           LIST_MODE       =SIMP(statut='f',typ=listis_sdaster),
-           LIST_FREQ       =SIMP(statut='f',typ=listr8_sdaster),
-           FREQ            =SIMP(statut='f',typ='R',validators=NoRepeat(),max='**'),
-           
-           b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
-             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
-             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
-           ),
-         ),         
-         EXCIT           =FACT(statut='f',max='**',
-               CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
-               FONC_MULT       =SIMP(statut='f',typ=(fonction_sdaster,nappe_sdaster,formule)),
-               TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
-         ),
-         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
-         COMP_ELAS       =FACT(statut='f',
-               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
-                                     into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
-               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-         ),  
-         COMP_INCR       =FACT(statut='f',
-               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
-                                     into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
-               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
-               VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
-               VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
-               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
-      regles=(PRESENT_ABSENT('TOUT','GROUP_MA','MAILLE'),),
-               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
-               GROUP_MA        =SIMP(statut='f',typ=grma,validators=NoRepeat(),max='**'),
-               MAILLE          =SIMP(statut='f',typ=ma,validators=NoRepeat(),max='**'),
-         ),
-         ETAT_INIT       =FACT(statut='f',
-           SIGM            =SIMP(statut='f',typ=cham_elem),
-           DEPL            =SIMP(statut='f',typ=cham_no_sdaster),
-         ),
-          
-         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"),),
-         ),
-
-         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"),
-
-         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 - 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.        
-# ======================================================================
-
-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) ),
-)  ;