]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
*** empty log message ***
authoreficas <>
Mon, 6 Jun 2005 11:10:50 +0000 (11:10 +0000)
committereficas <>
Mon, 6 Jun 2005 11:10:50 +0000 (11:10 +0000)
20 files changed:
Aster/Cata/aster.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/__init__.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macr_lign_coupe_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macr_recal_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macro_cara_poutre_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macro_elas_mult_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macro_matr_asse_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macro_miss_3d_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macro_mode_meca_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/macro_proj_base_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/pre_gmsh_ops.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/reca_algo.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/reca_interp.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/reca_message.py [new file with mode: 0644]
Aster/Cata/cataSTA6/Macro/recal.py [new file with mode: 0644]
Aster/Cata/cataSTA6/__init__.py
Aster/Cata/cataSTA6/cata.py
Editeur/compooper.py
Editeur/newsimppanel.py

diff --git a/Aster/Cata/aster.py b/Aster/Cata/aster.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Aster/Cata/cataSTA6/Macro/__init__.py b/Aster/Cata/cataSTA6/Macro/__init__.py
new file mode 100644 (file)
index 0000000..b53a458
--- /dev/null
@@ -0,0 +1,20 @@
+#@ MODIF __init__ Macro  DATE 27/03/2002   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR   
+# (AT YOUR OPTION) ANY LATER VERSION.                                 
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+#                                                                       
+#                                                                       
+# ======================================================================
diff --git a/Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py b/Aster/Cata/cataSTA6/Macro/ajout_quad_gmsh.py
new file mode 100644 (file)
index 0000000..dc21a1c
--- /dev/null
@@ -0,0 +1,249 @@
+#@ MODIF ajout_quad_gmsh Macro  DATE 11/06/2002   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+# script PYTHON de modification d'un fichier de maillage GMSH (*.msh)
+# pour transformer les mailles lineiques en mailles quadratiques
+# SEG2->SEG3 / TRIA3->TRIA6 / QUAD4->QUAD8,
+# TETRA4 -> TETRA10 / PENTA6 -> PENTA15 / PYRAM5 -> PYRAM13
+
+def ajout_quad_gmsh(texte):
+
+  import os,sys,copy
+
+  try:
+# construction du dictionnaire nom du noeud / coordonnees : dict_no
+# construction de la liste des noeuds : l_no
+
+    typ_mail={}
+    typ_mail['LI']=['1']
+    typ_mail['2D']=['2','3']
+    typ_mail['3D']=['4','5','6','7']
+    typ_mail['PO']=['15']
+
+    texte_eclate=texte.split('\n')
+    nbno=int(texte_eclate[texte_eclate.index('$NOD')+1])
+    l_no=texte_eclate[texte_eclate.index('$NOD')+2:texte_eclate.index('$ENDNOD')]
+    dict_no={}
+    for i in texte_eclate[texte_eclate.index('$NOD')+2:texte_eclate.index('$ENDNOD')]:
+      cc=i.split(' ')
+      dict_no[cc[0]]=[]
+      for j in cc[1:]:dict_no[cc[0]].append(float(j))
+
+    l_el1=texte_eclate[texte_eclate.index('$ELM')+2:texte_eclate.index('$ENDELM')]
+    nbel =texte_eclate[texte_eclate.index('$ELM')+1]
+
+
+# construction du dictionnaire : element / liste des aretes de l'element : elems_aretes
+# et de son inverse            : aretes / elements contenant cette arete : aretes_elems
+
+    aretes_elems={}
+    elems_aretes={}
+    l_el=[]
+    for elem in l_el1 :
+        connec0=elem.split(' ')[5:]
+        while '' in connec0 : connec0.remove('')
+        aa=elem.split(' ')[:4]
+
+# attention : indicateur de type de maille : ajouter 7 pour passer
+# de TRIA3 a TRIA6, de SEG2 a SEG3, de QUAD4 a QUAD8 (voir inigms.f)
+
+#   si maille POI1, on ne fait rien
+
+        if aa[1] not in typ_mail['PO'] : typel=str(int(aa[1])+7)
+        else                           : typel=aa[1]
+        nom_elem=aa[0]+' '+typel+' '+aa[2]+' '+aa[3]
+        segments=[]
+
+# traitement des mailles lineaires : un seul segment
+        if   aa[1] in typ_mail['LI']:
+           segments.append([int(connec0[0]),int(connec0[1])])
+
+# traitement des mailles planes (TRI3 QUA4) : on cree les segments en prenant les noeuds consecutivement, puis on ferme
+        elif aa[1] in typ_mail['2D']:
+           for i in range(len(connec0)-1) : segments.append([int(connec0[i]),int(connec0[i+1])])
+           segments.append([int(connec0[-1]),int(connec0[0])])
+
+# traitement des mailles TETRA4 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif aa[1]=='4':
+           for i in range(0,2) : segments.append([int(connec0[i]),int(connec0[i+1])])
+           segments.append([int(connec0[2]),int(connec0[0])])
+           for i in range(0,3) : segments.append([int(connec0[3]),int(connec0[i])])
+
+# traitement des mailles HEXA8 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif aa[1]=='5':
+           for i in range(0,3) : segments.append([int(connec0[i]),int(connec0[i+1])])
+           segments.append([int(connec0[3]),int(connec0[0])])
+           for i in range(4,7) : segments.append([int(connec0[i]),int(connec0[i+1])])
+           segments.append([int(connec0[7]),int(connec0[4])])
+           for i in range(0,4) : segments.append([int(connec0[i]),int(connec0[i+4])])
+
+# traitement des mailles PENTA6 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif aa[1]=='6':
+           for i in range(0,2) : segments.append([int(connec0[i]),int(connec0[i+1])])
+           segments.append([int(connec0[2]),int(connec0[0])])
+           for i in range(3,5) : segments.append([int(connec0[i]),int(connec0[i+1])])
+           segments.append([int(connec0[5]),int(connec0[3])])
+           for i in range(0,3) : segments.append([int(connec0[i]),int(connec0[i+3])])
+
+# traitement des mailles PYRA5 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif aa[1]=='7':
+           for i in range(0,3) : segments.append([int(connec0[i]),int(connec0[i+1])])
+           segments.append([int(connec0[3]),int(connec0[0])])
+           for i in range(0,4) : segments.append([int(connec0[4]),int(connec0[i])])
+
+        elems_aretes[nom_elem]=[]
+        for seg in segments :
+            elems_aretes[nom_elem].append(copy.copy(seg))
+            seg.sort()
+        for seg in segments :
+           if aretes_elems.has_key(tuple(seg)):aretes_elems[tuple(seg)].append(nom_elem)
+           else                               :aretes_elems[tuple(seg)]=[nom_elem]
+        l_el.append(nom_elem)
+
+# construction de la liste complete des aretes
+
+    l_ar=aretes_elems.keys()
+    l_ar.sort()
+
+# numero du plus grand noeud :
+    nmax=int(l_no[-1].split(' ')[0])
+
+# nouveau nombre total de noeuds :
+    ndtot=nbno+len(l_ar)
+
+# insertion des noeuds milieux dans le dictionnaire "aretes" et la liste "l_no"  :
+    ind=nmax
+    for i in l_ar:
+      ind=ind+1
+      x=(dict_no[str(i[0])][0]+dict_no[str(i[1])][0])/2
+      y=(dict_no[str(i[0])][1]+dict_no[str(i[1])][1])/2
+      z=(dict_no[str(i[0])][2]+dict_no[str(i[1])][2])/2
+      l_no.append(str(ind)+' '+str(x)+' '+str(y)+' '+str(z))
+      for elem in aretes_elems[i]:
+        for ar in elems_aretes[elem]:
+            k=copy.copy(ar)
+            k.sort()
+            kk=tuple(k)
+            if i==kk:
+              ar.insert(1,ind)
+
+# re-ecriture du fichier avec les noeuds milieux :
+
+    resu='$NOD\n'+str(ndtot)+'\n'
+    for i in l_no:
+      resu=resu+i+'\n'
+    resu=resu+'$ENDNOD\n'+'$ELM\n'+nbel+'\n'
+    for i in l_el:
+      aa=i.split(' ')[:4]
+      if aa[1] not in typ_mail['PO']:
+         typ=str(int(aa[1])-7)
+      else : typ=aa[1]
+      if elems_aretes[i]!=[]:
+        resu=resu+i
+
+# traitement des mailles lineaires : d'abord les noeuds sommets, puis le noeud milieu
+        if typ in typ_mail['LI']:
+          resu=resu+' 3 '
+          for j in elems_aretes[i]:
+              resu=resu+str(j[0])+' '+str(j[2])+' '+str(j[1])+' '
+
+# traitement des mailles planes (TRI3 QUA4) : d'abord les noeuds sommets, puis, dans le meme ordre, les noeuds milieux
+        elif typ in typ_mail['2D']:
+          resu=resu+' '+str(len(elems_aretes[i])*2)+' '
+          for j in elems_aretes[i]:
+              resu=resu+str(j[0])+' '
+          for j in elems_aretes[i]:
+              resu=resu+str(j[1])+' '
+
+# traitement des mailles TETRA4 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif typ=='4':
+          resu=resu+' 10 '
+          for j in elems_aretes[i][:4]:
+              resu=resu+str(j[0])+' '
+          resu=resu+str(elems_aretes[i][0][1])+' '
+          resu=resu+str(elems_aretes[i][1][1])+' '
+          resu=resu+str(elems_aretes[i][2][1])+' '
+          resu=resu+str(elems_aretes[i][3][1])+' '
+          resu=resu+str(elems_aretes[i][4][1])+' '
+          resu=resu+str(elems_aretes[i][5][1])+' '
+
+# traitement des mailles HEXA8 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif typ=='5':
+          resu=resu+' 20 '
+          for j in elems_aretes[i][:8]:
+              resu=resu+str(j[0])+' '
+          resu=resu+str(elems_aretes[i][0][1])+' '
+          resu=resu+str(elems_aretes[i][1][1])+' '
+          resu=resu+str(elems_aretes[i][2][1])+' '
+          resu=resu+str(elems_aretes[i][3][1])+' '
+  
+          resu=resu+str(elems_aretes[i][8][1])+' '
+          resu=resu+str(elems_aretes[i][9][1])+' '
+          resu=resu+str(elems_aretes[i][10][1])+' '
+          resu=resu+str(elems_aretes[i][11][1])+' '
+
+          resu=resu+str(elems_aretes[i][4][1])+' '
+          resu=resu+str(elems_aretes[i][5][1])+' '
+          resu=resu+str(elems_aretes[i][6][1])+' '
+          resu=resu+str(elems_aretes[i][7][1])+' '
+
+# traitement des mailles PENTA6 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif typ=='6':
+          resu=resu+' 15 '
+          for j in elems_aretes[i][:6]:
+              resu=resu+str(j[0])+' '
+          resu=resu+str(elems_aretes[i][0][1])+' '
+          resu=resu+str(elems_aretes[i][1][1])+' '
+          resu=resu+str(elems_aretes[i][2][1])+' '
+
+          resu=resu+str(elems_aretes[i][6][1])+' '
+          resu=resu+str(elems_aretes[i][7][1])+' '
+          resu=resu+str(elems_aretes[i][8][1])+' '
+
+          resu=resu+str(elems_aretes[i][3][1])+' '
+          resu=resu+str(elems_aretes[i][4][1])+' '
+          resu=resu+str(elems_aretes[i][5][1])+' '
+
+# traitement des mailles PYRA5 : pour comprendre, voir "fonctions de forme des elements isoparametriques" R3.01.01
+        elif typ=='7':
+          resu=resu+' 13 '
+          for j in elems_aretes[i][:4]:
+              resu=resu+str(j[0])+' '
+          resu=resu+str(elems_aretes[i][0][1])+' '
+          resu=resu+str(elems_aretes[i][1][1])+' '
+          resu=resu+str(elems_aretes[i][2][1])+' '
+
+          resu=resu+str(elems_aretes[i][6][1])+' '
+          resu=resu+str(elems_aretes[i][7][1])+' '
+          resu=resu+str(elems_aretes[i][8][1])+' '
+
+          resu=resu+str(elems_aretes[i][3][1])+' '
+          resu=resu+str(elems_aretes[i][4][1])+' '
+          resu=resu+str(elems_aretes[i][5][1])+' '
+
+      else:
+# traitement des mailles POI1 : on recopie la connectivite telle quelle, sans ajouter de nouveau noeud
+        resu=resu+l_el1[l_el.index(i)]
+
+      resu=resu+'\n'
+
+    resu=resu+'$ENDELM\n'
+    return resu
+  except :
+    return 0
diff --git a/Aster/Cata/cataSTA6/Macro/macr_lign_coupe_ops.py b/Aster/Cata/cataSTA6/Macro/macr_lign_coupe_ops.py
new file mode 100644 (file)
index 0000000..daff5ca
--- /dev/null
@@ -0,0 +1,169 @@
+#@ MODIF macr_lign_coupe_ops Macro  DATE 06/07/2004   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+########################################################################
+# script PYTHON de creation d un maillage de ligne de coupe
+
+def crea_mail_lig_coup(lignes):
+
+  import os,sys,copy
+
+  try:
+# construction du maillage au format Aster des segments de lignes de coupe
+
+    nblig=len(lignes)
+    dimension=len(lignes[0][0])
+
+    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
+    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'
+
+# 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'
+    resu=resu+'FIN\n'
+
+    return resu
+
+  except :
+    return 0
+
+########################################################################
+def macr_lign_coupe_ops(self,RESULTAT,UNITE_MAILLAGE,LIGN_COUPE,MODELE,
+                        NOM_CHAM,**args):
+  """
+     Ecriture de la macro MACR_LIGN_COUPE
+  """
+  import os
+  from Accas import _F
+  from Noyau.N_utils import AsType
+  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')
+
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.icmd=1
+
+  lignes=[]
+  for m in LIGN_COUPE :
+      lignes.append((m['COOR_ORIG'],m['COOR_EXTR'],m['NB_POINTS']))
+
+  # Création du maillage des NB_POINTS segments entre COOR_ORIG et COOR_EXTR
+  # 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(lignes)
+  cur_dir=os.getcwd()
+  nomFichierSortie   =cur_dir+'/fort.'+str(UNITE_MAILLAGE)
+  fproc=open(nomFichierSortie,'w')
+  fproc.write(resu_mail)
+  fproc.close()
+
+  # 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 :
+      motscles['CREA_GROUP_NO'].append(_F(GROUP_MA='LICOU'+str(iocc),) )
+      iocc=iocc+1
+  __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',),);
+
+  __recou=PROJ_CHAMP(METHODE='ELEM',
+                     RESULTAT=RESULTAT,
+                     MODELE_1=MODELE,
+                     MODELE_2=__mocou,
+                     NOM_CHAM=NOM_CHAM,);
+
+  # Production d'une table par ligne de coupe
+  # Toutes les tables sont des concepts sortant de la macro définies
+  # dans chaque occurence du mcfact lign_coupe
+
+  iocc=1
+  for m in LIGN_COUPE :
+      self.DeclareOut('tt',m['TABLE'])
+      tt=POST_RELEVE_T(ACTION=_F(INTITULE  = 'lig.coupe'+str(iocc),
+                                 RESULTAT  = __recou,
+                                 GROUP_NO  = 'LICOU'+str(iocc),
+                                 NOM_CHAM  = NOM_CHAM,
+                                 TOUT_CMP  = 'OUI',
+                                 OPERATION = 'EXTRACTION', ),);
+      iocc=iocc+1
+
+  return ier
diff --git a/Aster/Cata/cataSTA6/Macro/macr_recal_ops.py b/Aster/Cata/cataSTA6/Macro/macr_recal_ops.py
new file mode 100644 (file)
index 0000000..83e2b2f
--- /dev/null
@@ -0,0 +1,137 @@
+#@ MODIF macr_recal_ops Macro  DATE 21/11/2003   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+def macr_recal_ops(self,UNITE_ESCL, RESU_EXP, LIST_PARA, RESU_CALC, 
+                        ITER_MAXI, RESI_GLOB_RELA,UNITE_RESU,PARA_DIFF_FINI,
+                        GRAPHIQUE, **args ):
+   """Macro commande réalisant le recalage de modèles Aster""",
+   # Initialisation du compteur d'erreurs
+   ier=0
+   # On essaie d'importer Numeric -> ERREUR FATALE
+   try:
+     import Numeric
+   except ImportError:
+     ier=ier+1
+     self.cr.fatal("Le module Numeric de Python n'a pu etre chargé")
+     return ier
+   # On essaie d'importer Gnuplot -> PAS DE GRAPHIQUE
+   try:
+     import Gnuplot
+     gnuplot=1
+   except ImportError:
+     gnuplot=0
+   import string
+   import copy
+   import types
+   import Macro
+   from Cata import cata
+   from Cata.cata import DEFI_LIST_REEL
+   from Macro.recal import gestion,transforme_list_Num,EXTRACT,calcul_F,graphique
+   from Macro import reca_message
+   from Macro import reca_algo
+   from Macro import reca_interp
+   # La macro compte pour 1 dans l'execution des commandes
+   self.icmd=1
+   self.DeclareOut('nomres',self.sd)
+
+   #_____________________________________________
+   #
+   # GESTION DES ERREURS DE SYNTAXE
+   #_____________________________________________
+   texte_erreur = gestion(UNITE_ESCL,LIST_PARA,RESU_CALC,RESU_EXP,GRAPHIQUE,UNITE_RESU)
+   if (texte_erreur != ""):
+      ier=ier+1
+      self.cr.fatal(texte_erreur)
+      return ier
+
+   #_____________________________________________
+   #
+   # 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']
+   self.g_context['EXTRACT']=EXTRACT
+
+   #_____________________________________________
+   #
+   # INITIALISATIONS
+   #_____________________________________________
+   iter = 0
+   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)
+   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)
+   
+   #_____________________________________________
+   #
+   # 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)
+      if (gnuplot):
+         if (GRAPHIQUE):
+            GRAPHE_UL_OUT=GRAPHIQUE['UNITE']
+            interactif=(GRAPHIQUE['INTERACTIF']=='OUI')
+            graphique(L_F,RESU_EXP,RESU_CALC,iter,GRAPHE_UL_OUT,interactif)
+   #_____________________________________________
+   #
+   # 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/cataSTA6/Macro/macro_cara_poutre_ops.py b/Aster/Cata/cataSTA6/Macro/macro_cara_poutre_ops.py
new file mode 100644 (file)
index 0000000..c59314a
--- /dev/null
@@ -0,0 +1,683 @@
+#@ MODIF macro_cara_poutre_ops Macro  DATE 25/06/2002   AUTEUR JMBHH01 J.M.PROIX 
+#            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 JMBHH01 J.M.PROIX
+def macro_cara_poutre_ops(self,UNITE_MAILLAGE,SYME_X,SYME_Y,GROUP_MA_BORD,
+                              GROUP_MA,ORIG_INER,NOEUD,GROUP_MA_INTE,
+                              LONGUEUR,MATERIAU,LIAISON,
+                              **args):
+  """
+     Ecriture de la macro MACRO_CARA_POUTRE
+  """
+  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
+  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')
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.icmd=1
+
+  # Le concept sortant (de type tabl_cara_geom) est nommé 'nomres' dans 
+  # le contexte de la macro
+  
+  self.DeclareOut('nomres',self.sd)
+
+  if GROUP_MA_BORD and GROUP_MA:
+     if not LIAISON:
+        ier=ier+1
+        self.cr.fatal("Avec GROUP_MA, il faut obligatoirement preciser LIAISON, LONGUEUR ET MATERIAU")
+        return ier
+
+  __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)
+  nomres=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                           =
+# --- = 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=nomres,
+                                      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 GROUP_MA_INTE:
+        motscles['LIAISON_UNIF']=_F(GROUP_MA=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 GROUP_MA_INTE:
+        __tbaire=POST_ELEM(MODELE=__nomoth,
+                           AIRE_INTERNE=_F(GROUP_MA_BORD=GROUP_MA_INTE,),  )
+
+        motscles={}
+        motscles['FLUX_REP']=[]
+        if type(GROUP_MA_INTE)==types.StringType:
+           motscles['FLUX_REP']=_F(GROUP_MA=GROUP_MA_INTE,CARA_TORSION=__tbaire)
+        else:
+           motscles['FLUX_REP']=[]
+           for grma in GROUP_MA_INTE:
+              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 GROUP_MA_INTE:
+        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 NOEUD:
+        motscles['TEMP_IMPO']=(_F(NOEUD=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 NOEUD:
+        motscles['TEMP_IMPO']=_F(NOEUD=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 DE LA CONSTANTE DE TORSION :
+#     ---------------------------------
+
+     motscles={}
+     if GROUP_MA_INTE:
+        motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres,
+                                   LAPL_PHI=__tempe1,
+                                   TOUT='OUI',
+                                   OPTION='CARA_TORSION',
+                                   GROUP_MA_INTE=GROUP_MA_INTE,)
+     else:
+        motscles['CARA_POUTRE']=_F(CARA_GEOM=nomres,
+                                   LAPL_PHI=__tempe1,
+                                   TOUT='OUI',
+                                   OPTION='CARA_TORSION',      )
+     nomres=POST_ELEM(reuse=nomres,
+                      MODELE=__nomoth,
+                      CHAM_MATER=__chmath,
+                      **motscles  )
+
+# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
+# --- CENTRE DE CISAILLEMENT/TORSION :
+#     ------------------------------
+
+     nomres=POST_ELEM(reuse=nomres,
+                      MODELE=__nomoth,
+                      CHAM_MATER=__chmath,
+                      CARA_POUTRE=_F(CARA_GEOM=nomres,
+                                     LAPL_PHI_Y=__tempe2,
+                                     LAPL_PHI_Z=__tempe3,
+                                     TOUT='OUI',
+                                     OPTION='CARA_CISAILLEMENT',),  )
+
+#
+#     ------------------------------------------------------------
+# --- - 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=nomres,
+                                      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(reuse=nomres,
+                      MODELE=__nomot2,
+                      CHAM_MATER=__chmat2,
+                      CARA_POUTRE=_F(CARA_GEOM=nomres,
+                                     LAPL_PHI=__tempe4,
+                                     TOUT='OUI',
+                                     OPTION='CARA_GAUCHI'),  )
+
+#
+#     ==================================================================
+# --- = CALCUL DE LA CONSTANTE DE TORSION SUR CHAQUE GROUPE            =
+# --- =     ET DU  CENTRE DE TORSION/CISAILLEMENT                      =
+# --- =        DES COEFFICIENTS DE CISAILLEMENT                        =
+#     ==================================================================
+#
+
+
+  if GROUP_MA_BORD and GROUP_MA:
+
+     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 NOEUD:
+       if type(NOEUD)==types.StringType :
+          l_noeud=[NOEUD,]
+       else:
+          l_noeud= NOEUD
+
+     if len(l_group_ma)!=len(l_group_ma_bord):
+        ier=ier+1
+        self.cr.fatal("GROUP_MA et GROUP_MA_BORD incoherents")
+        return ier
+     if NOEUD and (len(l_group_ma)!=len(l_noeud)):
+        ier=ier+1
+        self.cr.fatal("GROUP_MA et NOEUD incoherents")
+        return ier
+
+     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=nomres,
+                                         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 DE LA CONSTANTE DE TORSION :
+#     ---------------------------------
+
+        nomres=POST_ELEM(reuse=nomres,
+                         MODELE=__nomoth,
+                         CHAM_MATER=__chmath,
+                         CARA_POUTRE=_F(CARA_GEOM=nomres,
+                                        LAPL_PHI=__tempe1,
+                                        GROUP_MA=l_group_ma[i],
+                                        OPTION='CARA_TORSION' ),     )
+
+# --- CALCUL DES COEFFICIENTS DE CISAILLEMENT ET DES COORDONNEES DU
+# --- CENTRE DE CISAILLEMENT/TORSION :
+#     ------------------------------
+
+        nomres=POST_ELEM(reuse=nomres,
+                         MODELE=__nomoth,
+                         CHAM_MATER=__chmath,
+                         CARA_POUTRE=_F(CARA_GEOM=nomres,
+                                        LAPL_PHI_Y=__tempe2,
+                                        LAPL_PHI_Z=__tempe3,
+                                        GROUP_MA=l_group_ma[i],
+                                        LONGUEUR=LONGUEUR,
+                                        MATERIAU=MATERIAU,
+                                        LIAISON =LIAISON,
+                                        OPTION='CARA_CISAILLEMENT' ),   )
+
+  return ier
+
diff --git a/Aster/Cata/cataSTA6/Macro/macro_elas_mult_ops.py b/Aster/Cata/cataSTA6/Macro/macro_elas_mult_ops.py
new file mode 100644 (file)
index 0000000..a20c8ae
--- /dev/null
@@ -0,0 +1,245 @@
+#@ MODIF macro_elas_mult_ops Macro  DATE 11/06/2002   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+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
+
+  # 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.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:
+     ier=ier+1
+     self.cr.fatal("""On ne peut avoir a la fois NOM_CAS et MODE_FOURIER""")
+     return ier
+
+  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
+  if ielas : 
+     motscles['AFFE']=[]
+     for m in CAS_CHARGE:
+        motscles['AFFE'].append(_F(CHAM_GD=nomchn[iocc],
+                                   NOM_CAS=m['NOM_CAS'],) )
+        iocc=iocc+1
+  else :
+     motscles['AFFE']=[]
+     for m in CAS_CHARGE:
+        motscles['AFFE'].append(_F(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))
+           nomres=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))
+           nomres=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/cataSTA6/Macro/macro_matr_asse_ops.py b/Aster/Cata/cataSTA6/Macro/macro_matr_asse_ops.py
new file mode 100644 (file)
index 0000000..e2c89d4
--- /dev/null
@@ -0,0 +1,180 @@
+#@ MODIF macro_matr_asse_ops Macro  DATE 15/10/2002   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+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
+
+  # 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.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'):
+        ier=ier+1
+        self.cr.fatal("Avec methode LDLT, RENUM doit etre SANS ou RCMK.")
+        return ier
+    elif methode=='MULT_FRONT':
+      if SOLVEUR['RENUM']:
+         renum=SOLVEUR['RENUM']
+      else:
+         renum='MDA'
+      if renum not in ('MDA','MD','METIS'):
+        ier=ier+1
+        self.cr.fatal("Avec methode MULT_FRONT, RENUM doit etre MDA, MD ou RCMK.")
+        return ier
+    elif methode=='GCPC':
+      if SOLVEUR['RENUM']:
+         renum=SOLVEUR['RENUM']
+      else:
+         renum='SANS'
+      if renum not in ('SANS','RCMK'):
+        ier=ier+1
+        self.cr.fatal("Avec methode GCPC, RENUM doit etre SANS ou RCMK.")
+        return ier
+  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')      :
+      ier=ier+1
+      self.cr.fatal("UNE DES OPTIONS DOIT ETRE RIGI_MECA OU RIGI_THER OU RIGI_ACOU OU RIGI_MECA_LAGR")
+      return ier
+
+    if m['SIEF_ELGA']!=None and option!='RIGI_GEOM':
+      ier=ier+1
+      self.cr.fatal("SIEF_ELGA N EST ADMIS QU AVEC L OPTION RIGI_GEOM")
+      return ier
+
+    if m['MODE_FOURIER']!=None and option not in ('RIGI_MECA','RIGI_FLUI_STRU','RIGI_THER'):
+      ier=ier+1
+      self.cr.fatal("MODE_FOURIER N EST ADMIS QU AVEC UNE DES OPTIONS RIGI_MECA RIGI_FLUI_STRU RIGI_THER")
+      return ier
+
+    if (m['THETA']!=None or m['PROPAGATION']!=None) and option!='RIGI_MECA_LAGR':
+      ier=ier+1
+      self.cr.fatal("PROPAGATION ET,OU THETA NE SONT ADMIS QU AVEC L OPTION RIGI_MECA_LAGR")
+      return ier
+
+    motscles={'OPTION':option}
+    if option == 'AMOR_MECA':
+       if (not lrigel or not lmasel):
+          ier=ier+1
+          self.cr.fatal("""POUR CALCULER AMOR_MECA, IL FAUT AVOIR CALCULE
+                           RIGI_MECA ET MASS_MECA AUPARAVANT (DANS LE MEME APPEL)""")
+          return ier
+       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
+    if m['SIEF_ELGA']   :  motscles['SIEF_ELGA']   =m['SIEF_ELGA']
+    if m['MODE_FOURIER']:  motscles['MODE_FOURIER']=m['MODE_FOURIER']
+    if m['THETA']       :  motscles['THETA']       =m['THETA']
+    if m['PROPAGATION'] :  motscles['PROPAGATION'] =m['PROPAGATION']
+
+    __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
+
+
+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")
+  self.type_sdprod(NUME_DDL,nume_ddl)
+  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
+
diff --git a/Aster/Cata/cataSTA6/Macro/macro_miss_3d_ops.py b/Aster/Cata/cataSTA6/Macro/macro_miss_3d_ops.py
new file mode 100644 (file)
index 0000000..296fd5b
--- /dev/null
@@ -0,0 +1,70 @@
+#@ MODIF macro_miss_3d_ops Macro  DATE 07/10/2003   AUTEUR ACBHHCD G.DEVESA 
+#            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,**args):
+  """
+     Ecriture de la macro MACRO_MISS_3D
+  """
+  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
+  FERMER        =self.get_cmd('FERMER')
+  EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL')
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.icmd=1
+
+  FERMER(UNITE=UNITE_IMPR_ASTER)
+
+  import aster 
+  loc_fic=aster.repout()
+  miss3d=loc_fic+'miss3d'
+
+  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)
+
+  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)    ),
+                )
+
+  return ier
diff --git a/Aster/Cata/cataSTA6/Macro/macro_mode_meca_ops.py b/Aster/Cata/cataSTA6/Macro/macro_mode_meca_ops.py
new file mode 100644 (file)
index 0000000..9f84885
--- /dev/null
@@ -0,0 +1,132 @@
+#@ MODIF macro_mode_meca_ops Macro  DATE 11/09/2002   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.        
+# ======================================================================
+
+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')
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.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)
+  return ier
diff --git a/Aster/Cata/cataSTA6/Macro/macro_proj_base_ops.py b/Aster/Cata/cataSTA6/Macro/macro_proj_base_ops.py
new file mode 100644 (file)
index 0000000..4deed41
--- /dev/null
@@ -0,0 +1,67 @@
+#@ MODIF macro_proj_base_ops Macro  DATE 11/06/2002   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+def macro_proj_base_ops(self,BASE,NB_VECT,MATR_ASSE_GENE,VECT_ASSE_GENE,**args):
+  """
+     Ecriture de la macro MACRO_PROJ_BASE
+  """
+  ier=0
+  # On importe les definitions des commandes a utiliser dans la macro
+  NUME_DDL_GENE  =self.get_cmd('NUME_DDL_GENE')
+  PROJ_MATR_BASE =self.get_cmd('PROJ_MATR_BASE')
+  PROJ_VECT_BASE =self.get_cmd('PROJ_VECT_BASE')
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.icmd=1
+
+  nompro=None
+  iocc=0
+  if MATR_ASSE_GENE:
+    for m in MATR_ASSE_GENE:
+      iocc=iocc+1
+      if (iocc==1 or (m['PROFIL']!=nompro)):
+         _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE=m['PROFIL'])
+      nompro=m['PROFIL']
+      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:
+          ier=ier+1
+          self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
+          return ier
+      self.DeclareOut('mm',m['MATRICE'])
+      mm=PROJ_MATR_BASE(BASE=BASE,NUME_DDL_GENE=_num,**motscles)
+
+  iocc=0
+  if VECT_ASSE_GENE:
+    for v in VECT_ASSE_GENE:
+      iocc=iocc+1
+      if (iocc==1 and not MATR_ASSE_GENE):
+         _num=NUME_DDL_GENE(BASE=BASE,NB_VECT=NB_VECT,STOCKAGE='DIAG')
+      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:
+          ier=ier+1
+          self.cr.fatal("MATR_ASSE et MATR_ASSE_GENE absents")
+          return ier
+      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/cataSTA6/Macro/pre_gmsh_ops.py b/Aster/Cata/cataSTA6/Macro/pre_gmsh_ops.py
new file mode 100644 (file)
index 0000000..2248ca2
--- /dev/null
@@ -0,0 +1,60 @@
+#@ MODIF pre_gmsh_ops Macro  DATE 11/06/2002   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+def pre_gmsh_ops(self,UNITE_MAILLAGE,UNITE_GMSH,MODI_QUAD,**args):
+  """
+     Ecriture de la macro PRE_GMSH
+  """
+  import os
+  from Macro.ajout_quad_gmsh import ajout_quad_gmsh
+  ier=0
+
+  PRE_GMSH_LECT =self.get_cmd('PRE_GMSH_LECT')
+
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.icmd=1
+
+  if MODI_QUAD=='OUI':
+     cur_dir=os.getcwd()
+     unit  = str(UNITE_GMSH)
+     nomFichierGmsh = cur_dir+'/fort.'+unit
+     nomFichierMail = cur_dir+'/sortie'
+
+#    récupération du fichier .msh complet mis dans la string 'texte'
+
+     fproc=open(nomFichierGmsh,'r')
+     texte=fproc.read()
+     fproc.close()
+
+     resu=ajout_quad_gmsh(texte)
+     if not resu:
+        ier=ier+1
+        self.cr.fatal("Erreur dans la methode python de transformation mailles lineaires-quadratiques")
+        return ier
+
+     fsort=open(nomFichierMail,'w')
+     fsort.write(resu)
+     fsort.close()
+     os.system('cp '+nomFichierMail+' '+nomFichierGmsh)
+
+  PRE_GMSH_LECT(UNITE_MAILLAGE = UNITE_MAILLAGE,
+                UNITE_GMSH     = UNITE_GMSH     )
+
+  return ier
+
diff --git a/Aster/Cata/cataSTA6/Macro/reca_algo.py b/Aster/Cata/cataSTA6/Macro/reca_algo.py
new file mode 100644 (file)
index 0000000..9fb6b88
--- /dev/null
@@ -0,0 +1,225 @@
+#@ MODIF reca_algo Macro  DATE 27/05/2003   AUTEUR PABHHHH N.TARDIEU 
+#            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
+import copy,os
+import LinearAlgebra 
+from Macro.recal import EXTRACT
+
+
+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):
+    e=LinearAlgebra.eigenvalues(matrix)
+    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.eigenvalues(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 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))
+          xi=-LinearAlgebra.solve_linear_equations(take(take(Q,I),I,1),(take(d,I)+Numeric.dot(take(take(Q,I),Act,1),take(Dim.adim(dval),Act))))
+          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=','))
+             self.cr.fatal("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/cataSTA6/Macro/reca_interp.py b/Aster/Cata/cataSTA6/Macro/reca_interp.py
new file mode 100644 (file)
index 0000000..d614d12
--- /dev/null
@@ -0,0 +1,176 @@
+#@ MODIF reca_interp Macro  DATE 21/11/2003   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+import os
+import Numeric
+import Macro
+from Macro.recal import calcul_F
+
+#===========================================================================================
+# INTERPOLATION, CALCUL DE SENSIBILITE, ETC....
+
+#--------------------------------------
+class Sim_exp :
+
+   def __init__ (self,result_exp) :
+      self.resu_exp = result_exp
+
+# 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) :   #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] = 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])
+         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])
+         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:
+            fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
+            fic.write('\n Problème de division par zéro dans la normalisation de la fonctionnelle.')
+            fic.write('\n Une des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :'+ str(L_J_init))
+            fic.close()
+            self.cr.fatal("Problème de division par zéro dans la normalisation de la fonctionnelle.\nUne des valeurs de la fonctionnelle initiale est nulle ou inférieure à la précision machine :"+ str(L_J_init))
+            return
+            
+      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:
+                  fic=open(os.getcwd()+'/fort.'+str(unite_resu),'a')
+                  fic.write('\n Probleme de division par zéro dans le calcul de la matrice de sensiblité')
+                  fic.write('\n Le parametre '+para[k]+'est nul ou plus petit que la précision machine')
+                  fic.close() 
+                  self.cr.fatal("Probleme de division par zéro dans le calcul de la matrice de sensiblité.\n Le parametre "+para[k]+"est nul ou plus petit que la précision machine")
+                  return
+      #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/cataSTA6/Macro/reca_message.py b/Aster/Cata/cataSTA6/Macro/reca_message.py
new file mode 100644 (file)
index 0000000..1a4c730
--- /dev/null
@@ -0,0 +1,112 @@
+#@ MODIF reca_message Macro  DATE 31/01/2003   AUTEUR PABHHHH N.TARDIEU 
+#            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/cataSTA6/Macro/recal.py b/Aster/Cata/cataSTA6/Macro/recal.py
new file mode 100644 (file)
index 0000000..509b2bb
--- /dev/null
@@ -0,0 +1,402 @@
+#@ MODIF recal Macro  DATE 21/11/2003   AUTEUR DURAND C.DURAND 
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+
+import string
+import copy
+import Numeric
+import types
+import Gnuplot
+import Cata
+from Cata.cata import INCLUDE,DETRUIRE
+from Accas import _F
+
+import os
+
+
+#_____________________________________________
+#
+# DIVERS UTILITAIRES POUR LA MACRO
+#_____________________________________________
+
+
+# Transforme les donneés entrées par l'utilsateur 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.__class__.__name__ == 'MACRO_ETAPE':
+        list_concepts=list(mes_concepts(list_concepts=list_concepts,base=e))
+      elif e.sd != None:
+        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))
+        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 :
+         #on va dans l'except si on a modifié le fichier au moins une fois 
+         index_retour = string.index(fichier,'RETOUR')
+         fichier=fichier[:index_retour]
+      #--------------------------------------------------------------------------------
+      #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)
+      #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 EXTRACT 
+      #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('F = EXTRACT('+str(reponses[i][0])+','+"'"+str(reponses[i][1])+"'"+','+"'"+str(reponses[i][2])+"'"+')'+'\n')
+         Fichier_Resu.append('Lrep.append(F)'+'\n')
+      #on ajoute à RETOUR
+      Fichier_Resu.append('RETOUR();\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']
+
+#----------------------------------------------------------
+
+
+def EXTRACT(Table,Para,Champ):
+# Definition des variables
+  #Table = reponse[0]
+  #Para = reponse[1]
+  #Champ = reponse[2] 
+  Result = [[None]*2]
+  nb_temp = 0
+# Boucle de lecture sur les temps
+  while 1: 
+#   Si on n'a pas lu tous les temps
+    try:
+#     alors on lit les 2 champs abscisse et ordonnee
+        Result[nb_temp][0] = Table[Para,nb_temp+1]
+        Result[nb_temp][1] = Table[Champ,nb_temp+1]
+        nb_temp = nb_temp + 1  
+#     on ajoute une dimension temporelle supplementaire au resultat
+        Result.append([None]*2)
+#   Si on a lu tous les temps alors on sort de la boucle
+    except KeyError:
+      break
+# on renvoie le resultat en fin
+  Rep = Result[0:nb_temp]
+  F=Numeric.zeros((len(Rep),2),Numeric.Float)   #on transforme Rep en array Numeric
+  for i in range(len(Rep)):
+   for j in range(2) :
+      F[i][j] = Rep[i][j]
+  del(Rep)
+  del(Result)
+  return F
+  
+
+#_____________________________________________
+#
+# IMPRESSIONS GRAPHIQUES
+#_____________________________________________
+
+def graphique(L_F,res_exp,reponses,iter,UL_out,interactif):
+   graphe=[]
+   impr=Gnuplot.Gnuplot()
+   Gnuplot.GnuplotOpts.prefer_inline_data=1
+   impr('set data style linespoints')
+   impr('set grid')
+   impr('set pointsize 2.')
+   impr('set terminal postscript color')
+   impr('set output "fort.'+str(UL_out)+'"')
+   for i in range(len(L_F)):
+         if interactif:
+            graphe.append(Gnuplot.Gnuplot(persist=0))
+            graphe[i]('set data style linespoints')
+            graphe[i]('set grid')
+            graphe[i]('set pointsize 2.')
+            graphe[i].xlabel(reponses[i][1])
+            graphe[i].ylabel(reponses[i][2])
+            graphe[i].title(reponses[i][0]+'  Iteration '+str(iter))
+            graphe[i].plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
+            graphe[i]('pause 5')
+#
+         impr.xlabel(reponses[i][1])
+         impr.ylabel(reponses[i][2])
+         impr.title(reponses[i][0]+'  Iteration '+str(iter))
+         impr.plot(Gnuplot.Data(L_F[i],title='Calcul'),Gnuplot.Data(res_exp[i],title='Experimental'))
+
+
+#_____________________________________________
+#
+# 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 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,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 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
+   
+
index 3d102164221ae1dae44f65f0b5a560b82169b44c..4593ed918730f977b397df233d6bb0ec13ff7cef 100644 (file)
@@ -4,3 +4,8 @@ from cata import *
 INCLUDE_MATERIAU.itemeditor=pre74.compomacro.INCLUDE_MATERIAUTreeItem
 INCLUDE.itemeditor=pre74.compomacro.INCLUDETreeItem
 POURSUITE.itemeditor=pre74.compomacro.POURSUITETreeItem
+
+import os,sys
+import prefs
+import sys
+rep_macro = os.path.join(prefs.REPINI,'Cata/cataSTA6')
index 1b0e3ba80ee90b71dc56bafe48f090dcab0f9dfb..d4d8c367794142e2d791a41cd6130233cc470853 100755 (executable)
@@ -1,5 +1,4 @@
-# -*- coding: utf-8 -*-
-#& MODIF COMMANDE  DATE 24/06/2002   AUTEUR F1BHHAJ J.ANGLES 
+#& MODIF COMMANDE  DATE 03/02/2003   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -30,7 +29,7 @@ except:
 
 #
 __version__="$Name:  $"
-__Id__="$Id: cata.py,v 1.2 2004/12/10 12:49:00 eficas Exp $"
+__Id__="$Id: cata_aster_v6.py,v 1.12 2001/01/16 15:55:05 iliade Exp $"
 #
 JdC = JDC_CATA(code='ASTER',
                execmodul=None,
@@ -41,9 +40,9 @@ JdC = JDC_CATA(code='ASTER',
 class entier  (ASSD):pass
 class reel    (ASSD):pass
 class complexe(ASSD):pass
-class liste   (ASSD):pass
 class chaine  (ASSD):pass
 
+
 # Type geometriques
 class no  (GEOM):pass
 class grno(GEOM):pass
@@ -69,7 +68,7 @@ class fond_fiss       (ASSD):pass
 class interf_dyna_clas(ASSD):pass
 class interspfact     (ASSD):pass
 class listis          (ASSD):pass
-class listr8          (ASSD):pass
+class list          (ASSD):pass
 class macr_elem_dyna  (ASSD):pass
 class macr_elem_stat  (ASSD):pass
 class mater           (ASSD):pass
@@ -85,9 +84,46 @@ class tran_gene       (ASSD):pass
 class type_flui_stru  (ASSD):pass
 class valeur          (ASSD):pass
 
+
+# liste :
+#--------------------------------
+class listr8   (ASSD):
+
+  def LIST_VALEURS(self) :
+
+    """
+      retourne la liste des valeurs
+     [ val1, ...]
+    """
+    
+    return aster.GetLival(self.get_name(), "VALEURS")
+   
+
+
 # maillage :
 #--------------------------------
-class maillage(ASSD):pass
+class maillage(ASSD):
+
+  def LIST_GROUP_NO(self) :
+
+    """
+      retourne la liste des groupes de noeuds sous la forme :
+        [ (gno1, nb noeuds  gno1), ...]
+    """
+    
+    return aster.GetMaillage(self.get_name(), "GROUP_NO")
+    
+    
+  def LIST_GROUP_MA(self) :
+
+    """
+      retourne la liste des groupes de mailles sous la forme :
+        [ (gma1, nb mailles gma1, dime max des mailles gma1), ...]
+    """
+    
+    return aster.GetMaillage(self.get_name(), "GROUP_MA")
+    
+    
 class squelette     (maillage):pass
 
 
@@ -201,6 +237,16 @@ class resultat(ASSD):
   def __getitem__(self,key):
     return aster.getpara(self.get_name(),"RESULTAT",key[0],key[1])
 
+  def LIST_CHAMPS (self) :
+    return aster.GetResu(self.get_name(), "CHAMPS")
+
+  def LIST_NOM_CMP (self) :
+    return aster.GetResu(self.get_name(), "COMPOSANTES")
+
+  def LIST_VARI_ACCES (self) :
+    return aster.GetResu(self.get_name(), "VARI_ACCES")
+
+
 class acou_harmo    (resultat):pass
 class base_modale     (resultat):pass
 class comb_fourier  (resultat):pass
@@ -327,7 +373,7 @@ 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 COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -337,7 +383,7 @@ class vect_elem_temp_r(vect_elem):pass
 # RESPONSABLE JMBHH01 J.M.PROIX
 AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
                     fr="Affectation de caractéristiques à des éléments de structure",
-                    docu="U4.42.01-g3",reentrant='n',
+                    docu="U4.42.01-g",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('POUTRE','BARRE','COQUE','CABLE','DISCRET','MASSIF',
                              'ASSE_GRIL','GRILLE','AFFE_SECT','AFFE_FIBRE'),),
@@ -598,7 +644,7 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
 
 
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -618,7 +664,7 @@ AFFE_CARA_ELEM=OPER(nom="AFFE_CARA_ELEM",op=  19,sd_prod=cara_elem,
 # ======================================================================
 AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
                     fr="Affectation de charges et conditions aux limites acoustiques constantes",
-                    docu="U4.44.04-e",reentrant='n',
+                    docu="U4.44.04-f",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
          MODELE          =SIMP(statut='o',typ=modele ),
@@ -657,7 +703,7 @@ AFFE_CHAR_ACOU=OPER(nom="AFFE_CHAR_ACOU",op=  68,sd_prod=char_acou,
            DDL             =SIMP(statut='o',typ='TXM',max='**'),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -684,7 +730,7 @@ def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
 
 AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
                     ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
-                     docu="U4.44.03-e",reentrant='n',
+                     docu="U4.44.03-f",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'),
                  EXCLUS('MECA_IMPO','THER_IMPO'),
@@ -727,7 +773,7 @@ AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -752,7 +798,7 @@ def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
 
 AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod
                     ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
-                     docu="U4.44.03-e",reentrant='n',
+                     docu="U4.44.03-f",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'),
                  EXCLUS('MECA_IMPO','THER_IMPO'),),
@@ -786,7 +832,7 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_pr
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/10/2002   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -807,7 +853,7 @@ AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_pr
 # 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",
-                     docu="U4.44.01-g2",reentrant='n',
+                     docu="U4.44.01-g",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',       
@@ -1452,7 +1498,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -1473,7 +1519,7 @@ AFFE_CHAR_MECA=OPER(nom="AFFE_CHAR_MECA",op=   7,sd_prod=char_meca
 # 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",
-                     docu="U4.44.05-d2",reentrant='n',
+                     docu="U4.44.05-d",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
          MODELE          =SIMP(statut='o',typ=modele ),
@@ -1527,7 +1573,7 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 22/10/2002   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 24/03/2004   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -1548,14 +1594,14 @@ AFFE_CHAR_MECA_C=OPER(nom="AFFE_CHAR_MECA_C",op=   7,sd_prod=char_meca,
 # RESPONSABLE G8BHHXD X.DESROCHES
 AFFE_CHAR_MECA_F=OPER(nom="AFFE_CHAR_MECA_F",op=7,sd_prod=char_meca,
                       fr="Affectation de charges et conditions aux limites mécaniques fonction d une grandeur",
-                      docu="U4.44.01-g3",reentrant='n',
+                      docu="U4.44.01-g",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'),),
+                            'CONTACT','FLUX_THM_REP'),),
          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 ),
@@ -2024,7 +2070,7 @@ AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2044,7 +2090,7 @@ AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
 # ======================================================================
 AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
                     ,fr="Affectation de charges et conditions aux limites thermiques constantes",
-                    docu="U4.44.02-g2",reentrant='n',
+                    docu="U4.44.02-g",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',
@@ -2228,7 +2274,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2248,7 +2294,7 @@ AFFE_CHAR_THER=OPER(nom="AFFE_CHAR_THER",op=34,sd_prod=char_ther
 # ======================================================================
 AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
                      fr="Affectation de charges et conditions aux limites thermiques fonction dune grandeur (temps, ...)",
-                     docu="U4.44.02-g2",reentrant='n',
+                     docu="U4.44.02-g",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',
@@ -2423,7 +2469,7 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2444,7 +2490,7 @@ AFFE_CHAR_THER_F=OPER(nom="AFFE_CHAR_THER_F",op=33,sd_prod=char_ther,
 # RESPONSABLE VABHHTS J.PELLET
 AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
                    fr="Affectation de caractéristiques de matériaux à un maillage",
-                         docu="U4.43.03-f",reentrant='n',
+                         docu="U4.43.03-g",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          MAILLAGE        =SIMP(statut='o',typ=maillage),
          MODELE          =SIMP(statut='f',typ=modele),
@@ -2459,7 +2505,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
            TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2478,7 +2524,7 @@ AFFE_MATERIAU=OPER(nom="AFFE_MATERIAU",op=6,sd_prod=cham_mater,
 #    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,docu="U4.41.01-g3",
+AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g",
             UIinfo={"groupes":("Modélisation",)},
                  fr="Affectation des éléments finis sur le maillage",reentrant='n',
          regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
@@ -2623,7 +2669,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g3",
 
          ),
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2641,7 +2687,7 @@ AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-g3",
 # 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,docu="U4.02.01-g1",
+AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-g",
             UIinfo={"groupes":("Modélisation",)},
           fr="Interrogation sur le catalogue des commandes et les concepts produits",
          regles=(AU_MOINS_UN('CONCEPT','TYPE_ELEM', ),),
@@ -2659,7 +2705,7 @@ AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-g1",
                                  into=("TOUT_TYPE","CREER","A_CREER",) ),
          ),
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2680,11 +2726,11 @@ AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-g1",
 # RESPONSABLE VABHHTS J.PELLET
 ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage,
                    fr="Assembler deux maillages sous un seul nom",
-                   docu="U4.23.03-e",reentrant='n',
+                   docu="U4.23.03-f",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          MAILLAGE        =SIMP(statut='o',typ=maillage,min=2,max=2 ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2704,12 +2750,12 @@ ASSE_MAILLAGE=OPER(nom="ASSE_MAILLAGE",op= 105,sd_prod=maillage,
 # ======================================================================
 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",
-                    docu="U4.65.04-d",reentrant='n',
+                    docu="U4.65.04-e",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
          OPTION          =SIMP(statut='o',typ='TXM',into=("RIGI_GENE","MASS_GENE","AMOR_GENE") ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2736,7 +2782,7 @@ def asse_matrice_prod(MATR_ELEM,**args):
   raise AsException("type de concept resultat non prevu")
 
 ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
-                  fr="Construction d une matrice assemblée",docu="U4.61.22-f",reentrant='n',
+                  fr="Construction d une matrice assemblée",docu="U4.61.22-g",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) ),
@@ -2744,7 +2790,7 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
          CHAR_CINE       =SIMP(statut='f',typ=(char_cine_meca,char_cine_ther,char_cine_acou) ),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2764,7 +2810,7 @@ ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
 # ======================================================================
 ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
                     fr="Assemblage de vecteurs de chargement en coordonnées généralisées",
-                    docu="U4.65.05-d",reentrant='n',
+                    docu="U4.65.05-e",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
          CHAR_SOUS_STRUC =FACT(statut='o',min=1,max='**',
@@ -2772,7 +2818,7 @@ ASSE_VECT_GENE=OPER(nom="ASSE_VECT_GENE",op= 140,sd_prod=vect_asse_gene,
            VECT_ASSE       =SIMP(statut='o',typ=cham_no_depl_r ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2799,13 +2845,13 @@ def asse_vecteur_prod(VECT_ELEM,**args):
   raise AsException("type de concept resultat non prevu ")
 
 ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=asse_vecteur_prod,
-                  fr="Assemblage d un second membre",docu="U4.61.23-f",reentrant='n',
+                  fr="Assemblage d un second membre",docu="U4.61.23-g",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          VECT_ELEM       =SIMP(statut='o',typ=vect_elem,max='**'),
          NUME_DDL        =SIMP(statut='o',typ=nume_ddl ),
          INFO            =SIMP(statut='f',typ='I',into=(1,2,) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2825,7 +2871,7 @@ ASSE_VECTEUR=OPER(nom="ASSE_VECTEUR",op=13,sd_prod=asse_vecteur_prod,
 # ======================================================================
 CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8,
                      fr="Création d'une liste d'amortissements modaux calculés selon la règle du RCC-G",
-                     docu="U4.52.13-c",reentrant='n',
+                     docu="U4.52.13-d",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          ENER_SOL        =FACT(statut='o',min=1,max=1,
            regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
@@ -2864,7 +2910,7 @@ CALC_AMOR_MODAL=OPER(nom="CALC_AMOR_MODAL",op= 172,sd_prod=listr8,
            SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -2927,7 +2973,7 @@ def calc_cham_elem_prod(OPTION,**args):
 
 CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
                     fr="Calcul de champs par éléments à partir de champs solution ou de champs par éléments",
-                    docu="U4.81.03-g1",reentrant='n',
+                    docu="U4.81.03-g",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          MODELE          =SIMP(statut='o',typ=modele),
          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
@@ -3068,7 +3114,7 @@ CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
          MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
          ANGLE           =SIMP(statut='f',typ='I',defaut= 0),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3095,14 +3141,14 @@ def calc_char_cine_prod(CHAR_CINE,**args):
 
 CALC_CHAR_CINE=OPER(nom="CALC_CHAR_CINE",op= 102,sd_prod=calc_char_cine_prod,
                     fr="Calcul des seconds membres associés à des charges cinématiques (conditions aux limites non dualisées)",
-                    docu="U4.61.03-e",reentrant='n',
+                    docu="U4.61.03-f",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          NUME_DDL        =SIMP(statut='o',typ=nume_ddl ),
          CHAR_CINE       =SIMP(statut='o',typ=(char_cine_meca,char_cine_ther,char_cine_acou ) ),
          INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3125,7 +3171,7 @@ def calc_char_seisme_prod(MATR_MASS,**args ):
   raise AsException("type de concept resultat non prevu")
 
 CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_prod,
-                      docu="U4.63.01-e",reentrant='n',
+                      docu="U4.63.01-f",reentrant='n',
             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" ),
@@ -3139,7 +3185,7 @@ CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_pr
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3151,7 +3197,7 @@ 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,docu="U4.81.01-g3",reentrant='f',
+CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,docu="U4.81.01-g",reentrant='f',
             UIinfo={"groupes":("Post traitements",)},
                     fr="Compléter un résultat en calculant des champs par éléments (contraintes, déformations,... )",
          MODELE          =SIMP(statut='o',typ=modele),
@@ -3233,7 +3279,7 @@ CALC_ELEM=OPER(nom="CALC_ELEM",op=58,sd_prod=calc_elem_prod,docu="U4.81.01-g3",r
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3247,7 +3293,7 @@ def calc_fatigue_prod(TYPE_CALCUL,**args):
 
 CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant='n',
                   fr="Calcul d un cham de dommage ou d un cisaillement maximal dans le plan critique.",
-                  docu="U4.83.02-c",
+                  docu="U4.83.02-d",
             UIinfo={"groupes":("Post traitements",)},
 
          TYPE_CALCUL = SIMP(statut='o',typ='TXM',
@@ -3284,7 +3330,7 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3303,7 +3349,7 @@ CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=calc_fatigue_prod,reentrant
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
-                    docu="U4.66.02-d",reentrant='n',
+                    docu="U4.66.02-e",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          VITE_FLUI       =FACT(statut='o',min=1,max=1,
                                fr="Définir la plage de vitesse fluide étudiée",
@@ -3326,7 +3372,7 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
            DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3345,7 +3391,7 @@ CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
-                      docu="U4.32.01-e1",reentrant='f',
+                      docu="U4.32.01-e",reentrant='f',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE_R','LIST_PARA'),),
          FONCTION        =SIMP(statut='o',typ=fonction ),
@@ -3358,7 +3404,7 @@ CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3392,7 +3438,7 @@ def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,RMS,NOCI_SEISME,MAX,COMB,COMB_C
 
 CALC_FONCTION=OPER(nom="CALC_FONCTION",op=  91,sd_prod=calc_fonction_prod
                     ,fr="Opérations mathématiques sur des concepts de type fonction",
-                     docu="U4.32.04-f2",reentrant='n',
+                     docu="U4.32.04-f",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','COMB_C','ENVELOPPE','RMS',
                           'NOCI_SEISME','COMPOSE','EXTRACTION','ASSE','FFT','CORR_ACCE', 'PUISSANCE',
@@ -3444,8 +3490,8 @@ CALC_FONCTION=OPER(nom="CALC_FONCTION",op=  91,sd_prod=calc_fonction_prod
          LISS_ENVELOP    = FACT(statut='f',min=1,max=1,fr="Lissage d une enveloppe",
            FONCTION        =SIMP(statut='o',typ=fonction ),
            AMOR            =SIMP(statut='f',typ='R',max='**'),
-           FREQ_MIN        =SIMP(statut='f',typ='R',defaut=0.2),
-           FREQ_MAX        =SIMP(statut='f',typ='R',defaut=33.0),
+           FREQ_MIN        =SIMP(statut='f',typ='R'),
+           FREQ_MAX        =SIMP(statut='f',typ='R'),
            FREQ_CREUX      =SIMP(statut='f',typ='R',max='**'),
            ELARG           =SIMP(statut='f',typ='TXM',defaut="GLOBAL",into=("GLOBAL","LOCAL") ),
               b_elarg_glob = BLOC ( condition = " (ELARG=='GLOBAL') ",
@@ -3458,7 +3504,6 @@ CALC_FONCTION=OPER(nom="CALC_FONCTION",op=  91,sd_prod=calc_fonction_prod
                    GAUCHE       =SIMP(statut='f',typ='R',defaut =10.0E0 ),  
                    DROITE       =SIMP(statut='f',typ='R',defaut =10.0E0 ),  
                 ),
-           LARG_PLAT      =SIMP(statut='f',typ='R',defaut=90.0E0),
            TOLE_LISS      =SIMP(statut='f',typ='R',defaut=25.0E0),
            ECH_FREQ_REF = SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
                b_oui    =BLOC ( condition = "(ECH_FREQ_REF=='OUI') ",
@@ -3536,7 +3581,7 @@ CALC_FONCTION=OPER(nom="CALC_FONCTION",op=  91,sd_prod=calc_fonction_prod
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3556,7 +3601,7 @@ CALC_FONCTION=OPER(nom="CALC_FONCTION",op=  91,sd_prod=calc_fonction_prod
 # ======================================================================
 CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
                    fr="calcul de la force ajoutee ",
-                   docu="U4.66.03-a1",reentrant ='n',
+                   docu="U4.66.03-a",reentrant ='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
 
         regles=(EXCLUS('MODE_MECA','MODELE_GENE'),
@@ -3609,7 +3654,7 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
            EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0),  ),
 
            ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 16/03/2004   AUTEUR GALENNE E.GALENNE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3628,17 +3673,15 @@ CALC_FORC_AJOU=OPER(nom="CALC_FORC_AJOU",op=199,sd_prod=vect_asse_gene,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca,
-                    fr="Calcul du taux de restitution local d énergie",docu="U4.82.04-f3",reentrant='n',
+                    fr="Calcul du taux de restitution local d énergie",docu="U4.82.04-f",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          MODELE          =SIMP(statut='o',typ=modele),
          CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
-         regles=(UN_PARMI('FOND','FOND_FISS' ),
-                 UN_PARMI('RESULTAT','DEPL'),
+         regles=(UN_PARMI('RESULTAT','DEPL'),
                  UN_PARMI('R_INF','R_INF_FO'),
                  PRESENT_PRESENT('R_INF','R_SUP'),
                  PRESENT_PRESENT('R_INF_FO','R_SUP_FO'), ),
-         FOND            =SIMP(statut='f',typ=fond_fiss),
-         FOND_FISS       =SIMP(statut='f',typ=fond_fiss),               
+         FOND_FISS       =SIMP(statut='o',typ=fond_fiss),               
          DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
          RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_noli),),
          b_extrac        =BLOC(condition="RESULTAT != None",fr="extraction d un champ",
@@ -3677,7 +3720,6 @@ CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca,
                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,) ),
-               VMIS_CINE_LINE  =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
                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",) ),
@@ -3727,7 +3769,7 @@ CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 16/03/2004   AUTEUR GALENNE E.GALENNE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3747,7 +3789,7 @@ CALC_G_LOCAL_T=OPER(nom="CALC_G_LOCAL_T",op=77,sd_prod=tabl_calc_g_loca,
 # ======================================================================
 CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
                     fr="Calcul du taux de restitution d énergie par la méthode theta en thermo-élasticité en 2D ou en 3D",
-                    docu="U4.82.03-f2",reentrant='n',
+                    docu="U4.82.03-f",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          regles=(UN_PARMI('RESULTAT','DEPL'),
                  EXCLUS('COMP_ELAS','COMP_INCR'),),
@@ -3792,7 +3834,6 @@ CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
                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,) ),
-               VMIS_CINE_LINE  =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
                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",) ),
@@ -3813,9 +3854,7 @@ CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
                                 ),
          ),
          b_calc_k_g      =BLOC(condition="OPTION=='CALC_K_G'",
-             regles=(UN_PARMI('FOND','FOND_FISS' ),),
-           FOND            =SIMP(statut='f',typ=fond_fiss),
-           FOND_FISS       =SIMP(statut='f',typ=fond_fiss),
+           FOND_FISS       =SIMP(statut='o',typ=fond_fiss),
          ),
          b_calc_g_lagr   =BLOC(condition="OPTION=='CALC_G_LAGR'",
            PROPAGATION     =SIMP(statut='o',typ='R'),
@@ -3829,7 +3868,7 @@ CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3849,7 +3888,7 @@ CALC_G_THETA_T=OPER(nom="CALC_G_THETA_T",op=53,sd_prod=tabl_calc_g_th,
 # ======================================================================
 CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
                     fr="Calcul d une matrice interspectrale d une fonction du temps",
-                    docu="U4.36.03-e",reentrant='n',
+                    docu="U4.36.03-f",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          INST_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          INST_FIN        =SIMP(statut='o',typ='R' ),
@@ -3860,7 +3899,7 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3880,7 +3919,7 @@ CALC_INTE_SPEC=OPER(nom="CALC_INTE_SPEC",op= 120,sd_prod=tabl_intsp,
 # ======================================================================
 CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
                     fr="Calcul des matrices de masse, d amortissement ou de raideur ajoutées",
-                    docu="U4.66.01-c",reentrant='n',
+                    docu="U4.66.01-d",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
                  PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
@@ -3925,7 +3964,7 @@ CALC_MATR_AJOU=OPER(nom="CALC_MATR_AJOU",op= 152,sd_prod=matr_asse_gene_r,
            EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -3969,7 +4008,7 @@ def calc_matr_elem_prod(OPTION,**args):
   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",docu="U4.61.01-g1",reentrant='n',
+                    ,fr="Calcul des matrices élémentaires",docu="U4.61.01-g",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          OPTION          =SIMP(statut='o',typ='TXM',
                                into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
@@ -4052,7 +4091,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
 
          b_rigi_meca_hyst  =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
            MODELE            =SIMP(statut='o',typ=modele ),
-           CHARGE            =SIMP(statut='o',typ=char_meca ,max='**' ),
+           CHARGE            =SIMP(statut='f',typ=char_meca ,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 ),
@@ -4095,7 +4134,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
            CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4113,7 +4152,7 @@ CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
 # 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,docu="U4.85.01-b1",reentrant='o',
+CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-b",reentrant='o',
             UIinfo={"groupes":("Post traitements",)},
                fr="Calcule la métallurgie a partir du résultat du calcul thermique",
          MODELE          =SIMP(statut='o',typ=modele ),
@@ -4142,7 +4181,7 @@ CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-b1",reent
          OPTION          =SIMP(statut='f',typ='TXM'     
                              ,into=("META_ELNO_TEMP",) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4165,7 +4204,7 @@ 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,docu="U4.81.02-f3",reentrant='o',
+CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,docu="U4.81.02-f",reentrant='o',
             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,
@@ -4240,7 +4279,7 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,docu="U4.81.02-f3",reent
          GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
          MAILLE          =SIMP(statut='f',typ=ma,max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4258,7 +4297,7 @@ CALC_NO=OPER(nom="CALC_NO",op= 106,sd_prod=calc_no_prod,docu="U4.81.02-f3",reent
 # 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,docu="U4.82.02-d",reentrant='n',
+CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-e",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                 fr="Affectation d un champ sur le maillage (mécanique de la rupture)",
          regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
@@ -4266,8 +4305,6 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-d",reen
                  EXCLUS('DIRECTION','DIRE_THETA'),),
          OPTION          =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
          MODELE          =SIMP(statut='o',typ=(modele) ),
-         FOND_FISS       =SIMP(statut='f',typ=fond_fiss),
-         FOND_3D         =SIMP(statut='f',typ=(fond_fiss) ),
          THETA_3D        =FACT(statut='f',min=1,max='**',
            regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
                    UN_PARMI('MODULE','MODULE_FO'),
@@ -4283,6 +4320,8 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-d",reen
            R_INF_FO        =SIMP(statut='f',typ=fonction),
            R_SUP_FO        =SIMP(statut='f',typ=fonction),
                          ),
+         b_theta_3d     =BLOC(condition="THETA_3D != None",
+           FOND_FISS       =SIMP(statut='f',typ=fond_fiss),),
          DIRE_THETA      =SIMP(statut='f',typ=(cham_no_depl_r) ),
          DIRECTION       =SIMP(statut='f',typ='R',max='**'),
          THETA_2D        =FACT(statut='f',min=1,max='**',
@@ -4305,7 +4344,7 @@ CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-d",reen
            FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4332,7 +4371,7 @@ def calc_vect_elem_prod(OPTION,**args):
   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,docu="U4.61.02-f",reentrant='n',
+CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="U4.61.02-g",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",
@@ -4381,7 +4420,7 @@ CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="
            INST              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          ),
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4422,7 +4461,7 @@ def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args):
   raise AsException("type de concept resultat non prevu")
 
 COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,reentrant='f',
-                    fr="Combinaison linéaire de champs par éléments",docu="U4.72.03-e",
+                    fr="Combinaison linéaire de champs par éléments",docu="U4.72.03-f",
             UIinfo={"groupes":("Résultats et champs",)},
       regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),
               PRESENT_PRESENT('COMB_FOURIER','ANGL'),),
@@ -4449,7 +4488,7 @@ COMB_CHAM_ELEM=OPER(nom="COMB_CHAM_ELEM",op= 139,sd_prod=comb_cham_elem_prod,ree
       ANGL            =SIMP(statut='f',typ='R' ),
 )  ;
 
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4489,7 +4528,7 @@ def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args):
 
 COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
                     ,fr="Combinaison linéaire de champs aux noeuds",
-                     docu="U4.72.02-f",reentrant='f',
+                     docu="U4.72.02-g",reentrant='f',
             UIinfo={"groupes":("Résultats et champs",)},
          regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),),
          COMB_R          =FACT(statut='f',min=1,max='**',
@@ -4515,7 +4554,7 @@ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
            ANGL            =SIMP(statut='o',typ='R' ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4535,14 +4574,14 @@ COMB_CHAM_NO=OPER(nom="COMB_CHAM_NO",op=  30,sd_prod=comb_cham_no_prod
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
 COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
-                  docu="U4.83.31-c",reentrant='n',
+                  docu="U4.83.31-d",reentrant='n',
             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',max=5,
                                into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4579,7 +4618,7 @@ def comb_matr_asse_prod(COMB_R,COMB_C,CALC_AMOR_GENE,**args):
 
 COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
                     fr="Combinaison linéaire de matrices assemblées",
-                    docu="U4.72.01-g1",reentrant='f',
+                    docu="U4.72.01-g",reentrant='f',
             UIinfo={"groupes":("Résultats et champs",)},
          regles=(UN_PARMI('COMB_R','COMB_C','CALC_AMOR_GENE' ),),
          COMB_R          =FACT(statut='f',min=1,max='**',
@@ -4604,7 +4643,7 @@ COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
          ),         
          SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -4624,7 +4663,7 @@ COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
 # ======================================================================
 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",
-                     docu="U4.84.01-e1",reentrant='n',
+                     docu="U4.84.01-e",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' ),),
@@ -4683,21 +4722,17 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
            TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
          ),
          COMB_MULT_APPUI =FACT(statut='f',min=1,max='**',
-           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),
-                   UN_PARMI('TYPE_COMBI','TYPE' ),),
+           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO' ),),
            TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
            NOEUD           =SIMP(statut='f',typ=no,max='**'),
            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
-           TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
-           TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
+           TYPE_COMBI      =SIMP(statut='f',typ='TXM',into=("QUAD","LINE",) ),
          ),
          COMB_DEPL_APPUI=FACT(statut='f',min=1,max='**',
-           regles=(UN_PARMI('TOUT','LIST_CAS'),
-                   UN_PARMI('TYPE_COMBI','TYPE' ),),
+           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") ),
-           TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","LINE","ABS") ),
          ),
          DEPL_MULT_APPUI =FACT(statut='f',min=1,max='**',
            regles=(UN_PARMI('NOEUD','GROUP_NO'),
@@ -4724,7 +4759,7 @@ COMB_SISM_MODAL=OPER(nom="COMB_SISM_MODAL",op= 109,sd_prod=mode_stat,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 # RESPONSABLE VABHHTS J.PELLET
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
@@ -4861,7 +4896,7 @@ def crea_champ_prod(TYPE_CHAM,**args):
   raise AsException("type de concept resultat non prevu")
 
 CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
-                fr="  ",docu="U4.72.04-b1",reentrant='n',
+                fr="  ",docu="U4.72.04-b",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
          TYPE_CHAM       =SIMP(statut='o',typ='TXM',
                         into=("CART_DBEL_R","NOEU_DBEL_R","ELEM_DBEL_R",
@@ -4913,6 +4948,12 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
          NUME_DDL        =SIMP(statut='f',typ=(nume_ddl) ),
          CHAM_NO         =SIMP(statut='f',typ=(cham_no) ),
 
+#        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",) ),
 
          b_affe          =BLOC(condition = "OPERATION == 'AFFE'",
@@ -4976,9 +5017,9 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
              b_extr_resultat =BLOC(condition = "RESULTAT != None",
                  regles=(EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE',
                                 'NOEUD_CMP','NOM_CAS','ANGL', ),),
-                 SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
-                                   fr="Liste des paramètres de sensibilité.",
-                                   ang="List of sensitivity parameters"),
+                 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=("DEPL","VITE","ACCE",
                              "DEPL_ABSOLU","VITE_ABSOLU",
@@ -5046,7 +5087,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5065,7 +5106,7 @@ CREA_CHAMP=OPER(nom="CREA_CHAMP",op= 195,sd_prod=crea_champ_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage,
-                     docu="U4.23.02-d1",reentrant='n',
+                     docu="U4.23.02-d",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          regles=(EXCLUS('ECLA_PG','CREA_MAILLE'),
                  EXCLUS('ECLA_PG','CREA_GROUP_MA'),
@@ -5130,7 +5171,7 @@ CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 04/06/2004   AUTEUR CIBHHLV L.VIVAN 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5157,7 +5198,7 @@ def crea_resu_prod(TYPE_RESU,**args):
   if TYPE_RESU == "EVOL_VARC"    : return evol_varc
   raise AsException("type de concept resultat non prevu")
 
-CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-e3",reentrant='f',
+CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,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",
 
@@ -5177,8 +5218,8 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-e3",
              TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
              INST            =SIMP(statut='f',typ='R',max='**'),
              LIST_INST       =SIMP(statut='f',typ=listr8),
-             NUME_INIT       =SIMP(statut='f',typ='I'),
-             NUME_FIN        =SIMP(statut='f',typ='I'),
+             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") ),
            ),
@@ -5247,7 +5288,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-e3",
          ),
 
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5265,7 +5306,7 @@ CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-e3",
 # 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=0 ,docu="U4.11.01-g2",repetable='n',
+DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-g",repetable='n',
             UIinfo={"groupes":("Gestion du travail",)},
            fr="Ouverture d une étude. Allocation des ressources mémoire et disque",
           sd_prod=ops.DEBUT,
@@ -5314,7 +5355,7 @@ DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-g2",repetable='n',
            PARTITION       =SIMP(statut='f',typ='R'),
          ),
  );
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5333,7 +5374,7 @@ DEBUT=MACRO(nom="DEBUT",op=0 ,docu="U4.11.01-g2",repetable='n',
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=base_modale,
-                     docu="U4.64.02-f1",reentrant='f',
+                     docu="U4.64.02-f",reentrant='f',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          regles=(UN_PARMI('CLASSIQUE','RITZ','DIAG_MASS'),),
          CLASSIQUE       =FACT(statut='f',min=1,max=1,
@@ -5405,7 +5446,7 @@ DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5425,13 +5466,13 @@ DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont,
 # ======================================================================
 DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction,
                     fr="Définition d une fonction constante",
-                    docu="U4.31.01-f",reentrant='n',
+                    docu="U4.31.01-g",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
          VALE            =SIMP(statut='o',typ='R',max=1 ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5449,7 +5490,7 @@ DEFI_CONSTANTE=OPER(nom="DEFI_CONSTANTE",op=   2,sd_prod=fonction,
 # 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,docu="U4.42.03-e",reentrant='n',
+DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-f",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
                     fr="Définition d une coque composite couche par couche",
          COUCHE          =FACT(statut='o',min=1,max='**',
@@ -5464,7 +5505,7 @@ DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-e",r
                                  into=("RESULTAT",) ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5483,7 +5524,7 @@ DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-e",r
 #    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,
-                    docu="U4.25.01-d",reentrant='n',
+                    docu="U4.25.01-e",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          regles=(  UN_PARMI('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),),
          FAISCEAU_TRANS  =FACT(statut='f',min=1,max='**',
@@ -5565,7 +5606,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 03/12/2002   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5583,7 +5624,7 @@ DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
 # 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,docu="U4.MK.10-e",reentrant='n',
+DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.mk.10-e",reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
                     fr="Définition d une fonction du temps pour calculer des forces de LAPLACE",
       regles=(UN_PARMI('COUR_PRIN','COUR'),
@@ -5634,7 +5675,7 @@ DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.MK.10-e
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5653,7 +5694,7 @@ DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.MK.10-e
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction,
-                    docu="U4.35.01-c",reentrant='n',
+                    docu="U4.35.01-d",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          MAILLAGE        =SIMP(statut='o',typ=(maillage) ),
          NOEUD_INIT      =SIMP(statut='o',typ=no),
@@ -5672,7 +5713,7 @@ DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5700,7 +5741,7 @@ def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args):
 
 DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
                     ,fr="Définition des valeurs réelles ou complexes d une fonction réelle",
-                     docu="U4.31.02-g3",reentrant='n',
+                     docu="U4.31.02-g",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),),
          NOM_PARA        =SIMP(statut='o',typ='TXM',
@@ -5732,7 +5773,7 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5750,7 +5791,7 @@ DEFI_FONCTION=OPER(nom="DEFI_FONCTION",op=3,sd_prod=defi_fonction_prod
 # 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,docu="U4.82.01-e",reentrant='n',
+DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-f",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                     fr="Définition de lèvres et d un fond de fissure en 3D",
          regles=(UN_PARMI('FOND','FOND_FERME'),
@@ -5808,7 +5849,7 @@ DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-
            VECT_GRNO_EXTR  =SIMP(statut='f',typ=grno,max=2),
            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 14/10/2002   AUTEUR VABHHTS J.PELLET 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5834,7 +5875,7 @@ def defi_group_prod(MAILLAGE,**args):
 
 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",
-                docu="U4.22.01-f1",reentrant='o',
+                docu="U4.22.01-f",reentrant='o',
             UIinfo={"groupes":("Maillage",)},
          regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),),
          MAILLAGE        =SIMP(statut='o',typ=(maillage,squelette) ),
@@ -5962,8 +6003,8 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
              CRITERE         =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),
            ),
            b_noeud_ordo    =BLOC(condition = "OPTION == 'NOEUD_ORDO'",
-             regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
-                     UN_PARMI('NOEUD_EXTR','GROUP_NO_EXTR'),),
+             regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
+                     EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
              NOEUD_ORIG      =SIMP(statut='f',typ=no),
              GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
              NOEUD_EXTR      =SIMP(statut='f',typ=no),
@@ -5974,7 +6015,7 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
          ),
          INFO            =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -5993,7 +6034,7 @@ DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
-                    docu="U4.36.02-f2",reentrant='n',
+                    docu="U4.36.02-f",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
 
          DIMENSION       =SIMP(statut='f',typ='I',defaut= 1 ),
@@ -6034,7 +6075,7 @@ DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),               
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6053,7 +6094,7 @@ DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
 #    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,
-                      docu="U4.64.01-e",reentrant='n',
+                      docu="U4.64.01-f",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          NUME_DDL        =SIMP(statut='o',typ=nume_ddl ),
          INTERFACE       =FACT(statut='o',min=1,max='**',
@@ -6070,7 +6111,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
          FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6091,7 +6132,7 @@ DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
 # RESPONSABLE VABHHTS J.PELLET
 DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis,
                     fr="Définition d une suite croissante d entiers",
-                    docu="U4.34.02-f",reentrant='n',
+                    docu="U4.34.02-g",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE','DEBUT'),
                  EXCLUS('VALE','INTERVALLE'),),
@@ -6106,7 +6147,7 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis,
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6127,7 +6168,7 @@ DEFI_LIST_ENTI=OPER(nom="DEFI_LIST_ENTI",op=22,sd_prod=listis,
 # RESPONSABLE VABHHTS J.PELLET
 DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8,
                     fr="Définition d une suite croissante de réels",
-                    docu="U4.34.01-g1",reentrant='n',
+                    docu="U4.34.01-g",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('VALE','DEBUT',),
                  EXCLUS('VALE','INTERVALLE'),
@@ -6143,7 +6184,7 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8,
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6164,7 +6205,7 @@ DEFI_LIST_REEL=OPER(nom="DEFI_LIST_REEL",op=24,sd_prod=listr8,
 # RESPONSABLE VABHHTS J.PELLET
 DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage,
                    fr="Définition d un nouveau maillage à partir de macro éléments",
-                   docu="U4.23.01-e",reentrant='n',
+                   docu="U4.23.01-f",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          DEFI_MAILLE     =FACT(statut='o',min=1,max='**',
            MACR_ELEM_STAT  =SIMP(statut='o',typ=macr_elem_stat,max='**' ),
@@ -6222,7 +6263,7 @@ DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage,
            GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 07/06/2004   AUTEUR SMICHEL S.MICHEL-PONNELLE 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -6242,11 +6283,11 @@ DEFI_MAILLAGE=OPER(nom="DEFI_MAILLAGE",op=  88,sd_prod=maillage,
 # ======================================================================
 DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
                    fr="Définition des paramètres décrivant le comportement d un matériau",
-                   docu="U4.43.01-g4",reentrant='n',
+                   docu="U4.43.01-g",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',
-                      'SURF_ETAT_SATU','CAM_CLAY_THM','SURF_ETAT_NSAT'),
+                      'ELAS_ORTH_FO','ELAS_COQUE','ELAS_COQUE_FO'),
+#DEBR                      ,'SURF_ETAT_SATU','CAM_CLAY_THM','SURF_ETAT_NSAT'
                EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
                EXCLUS('ECRO_LINE','ECRO_LINE_FO'),
                EXCLUS('TAHERI','TAHERI_FO'),
@@ -6255,20 +6296,20 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
                PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
                EXCLUS('CIN1_CHAB','CIN1_CHAB_FO'),
                EXCLUS('CIN2_CHAB','CIN2_CHAB_FO'),
-               EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
+#DEBR               EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
                EXCLUS('POLY_CFC','POLY_CFC_FO'),
                EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI'),
-               EXCLUS('OHNO','OHNO_FO'),
+#DEBR               EXCLUS('OHNO','OHNO_FO'),
                EXCLUS('LMARC','LMARC_FO'),
                EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
-               EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
+#DEBR               EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
                PRESENT_PRESENT('BPEL_ACIER','ELAS'),
                EXCLUS('RCCM','RCCM_FO'),
                EXCLUS('WEIBULL','WEIBULL_FO'),
                PRESENT_PRESENT('CAM_CLAY','ELAS'),
                PRESENT_PRESENT('LAIGLE','ELAS'),
                EXCLUS('MAZARS','MAZARS_FO'),
-               PRESENT_PRESENT('GRANGER_FD','ELAS_FO'),
+               PRESENT_PRESENT('BAZANT_FD','ELAS_FO'),
                ),
 
 #
@@ -6390,63 +6431,63 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
              ALPHA_S         =SIMP(statut='f',typ='R'),
              ALPHA_D         =SIMP(statut='f',typ='R'),
            ),
-           SURF_ETAT_SATU  =FACT(statut='f',min=0,max=1,
-             E_CHAR          =SIMP(statut='o',typ='R'),
-             E_DECHAR        =SIMP(statut='o',typ='R'),
-             XN              =SIMP(statut='f',typ='R'),
-             RF              =SIMP(statut='f',typ='R'),
-             EV_KB           =SIMP(statut='f',typ='R'),
-             EV_XM           =SIMP(statut='f',typ='R'),
-             D_E_T           =SIMP(statut='f',typ='R'),
-             ALPHA0          =SIMP(statut='f',typ='R'),
-             ALPHA1          =SIMP(statut='f',typ='R'),
-             ALPHA2          =SIMP(statut='f',typ='R'),
-             ALPHA3          =SIMP(statut='f',typ='R'),
-             ALPHA_S         =SIMP(statut='f',typ='R'),
-             ANG_FRT         =SIMP(statut='o',typ='R'),
-             COHE            =SIMP(statut='o',typ='R'),
-             RESI_TRAC       =SIMP(statut='o',typ='R'),
-           ),
-           CAM_CLAY_THM    =FACT(statut='f',min=0,max=1,
-             NU              =SIMP(statut='f',typ='R'),
-             LAMBDA          =SIMP(statut='o',typ='R'),
-             KAPA            =SIMP(statut='o',typ='R'),
-             M               =SIMP(statut='f',typ='R'),
-             PRES_CRIT       =SIMP(statut='f',typ='R'),
-             GAMA            =SIMP(statut='o',typ='R'),
-             A0_PC           =SIMP(statut='o',typ='R'),
-             A1_PC           =SIMP(statut='f',typ='R'),
-             A2_PC           =SIMP(statut='f',typ='R'),
-             ALPHA0_PC       =SIMP(statut='f',typ='R'),
-             ALPHA1_PC       =SIMP(statut='f',typ='R'),
-             ALPHA2_PC       =SIMP(statut='f',typ='R'),
-             ALPHA3_PC       =SIMP(statut='f',typ='R'),
-             ALPHA_S         =SIMP(statut='f',typ='R'),
-                         ),
-           SURF_ETAT_NSAT  =FACT(statut='f',min=0,max=1,
-             E_CHAR          =SIMP(statut='o',typ='R'),
-             E_DECHAR        =SIMP(statut='o',typ='R'),
-             XN              =SIMP(statut='f',typ='R'),
-             RF              =SIMP(statut='f',typ='R'),
-             EV_KB           =SIMP(statut='f',typ='R'),
-             EV_XM           =SIMP(statut='f',typ='R'),
-             EV_A            =SIMP(statut='f',typ='R'),
-             EV_B            =SIMP(statut='f',typ='R'),
-             EV_CT           =SIMP(statut='f',typ='R'),
-             EV_SIGB         =SIMP(statut='f',typ='R'),
-             D_E_T           =SIMP(statut='f',typ='R'),
-             D_E_SUCC        =SIMP(statut='f',typ='R'),
-             ANG_FRT         =SIMP(statut='o',typ='R'),
-             COHE            =SIMP(statut='o',typ='R'),
-             D_COEH_SUCC     =SIMP(statut='f',typ='R'),
-             ANG_FRT_ULT     =SIMP(statut='f',typ='R'),
-             SUCC_ULTM       =SIMP(statut='f',typ='R'),
-             RESI_TRAC       =SIMP(statut='f',typ='R'),
-             A_SURF_SATU     =SIMP(statut='f',typ='R'),
-             B_SURF_SATU     =SIMP(statut='f',typ='R'),
-             C_SURF_SATU     =SIMP(statut='f',typ='R'),
-             D_SURF_SATU     =SIMP(statut='f',typ='R'),
-           ),
+#DEBR           SURF_ETAT_SATU  =FACT(statut='f',min=0,max=1,
+#DEBR             E_CHAR          =SIMP(statut='o',typ='R'),
+#DEBR             E_DECHAR        =SIMP(statut='o',typ='R'),
+#DEBR             XN              =SIMP(statut='f',typ='R'),
+#DEBR             RF              =SIMP(statut='f',typ='R'),
+#DEBR             EV_KB           =SIMP(statut='f',typ='R'),
+#DEBR             EV_XM           =SIMP(statut='f',typ='R'),
+#DEBR             D_E_T           =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA0          =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA1          =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA2          =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA3          =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA_S         =SIMP(statut='f',typ='R'),
+#DEBR             ANG_FRT         =SIMP(statut='o',typ='R'),
+#DEBR             COHE            =SIMP(statut='o',typ='R'),
+#DEBR             RESI_TRAC       =SIMP(statut='o',typ='R'),
+#DEBR           ),
+#DEBR           CAM_CLAY_THM    =FACT(statut='f',min=0,max=1,
+#DEBR             NU              =SIMP(statut='f',typ='R'),
+#DEBR             LAMBDA          =SIMP(statut='o',typ='R'),
+#DEBR             KAPA            =SIMP(statut='o',typ='R'),
+#DEBR             M               =SIMP(statut='f',typ='R'),
+#DEBR             PRES_CRIT       =SIMP(statut='f',typ='R'),
+#DEBR             GAMA            =SIMP(statut='o',typ='R'),
+#DEBR             A0_PC           =SIMP(statut='o',typ='R'),
+#DEBR             A1_PC           =SIMP(statut='f',typ='R'),
+#DEBR             A2_PC           =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA0_PC       =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA1_PC       =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA2_PC       =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA3_PC       =SIMP(statut='f',typ='R'),
+#DEBR             ALPHA_S         =SIMP(statut='f',typ='R'),
+#DEBR                         ),
+#DEBR           SURF_ETAT_NSAT  =FACT(statut='f',min=0,max=1,
+#DEBR             E_CHAR          =SIMP(statut='o',typ='R'),
+#DEBR             E_DECHAR        =SIMP(statut='o',typ='R'),
+#DEBR             XN              =SIMP(statut='f',typ='R'),
+#DEBR             RF              =SIMP(statut='f',typ='R'),
+#DEBR             EV_KB           =SIMP(statut='f',typ='R'),
+#DEBR             EV_XM           =SIMP(statut='f',typ='R'),
+#DEBR             EV_A            =SIMP(statut='f',typ='R'),
+#DEBR             EV_B            =SIMP(statut='f',typ='R'),
+#DEBR             EV_CT           =SIMP(statut='f',typ='R'),
+#DEBR             EV_SIGB         =SIMP(statut='f',typ='R'),
+#DEBR             D_E_T           =SIMP(statut='f',typ='R'),
+#DEBR             D_E_SUCC        =SIMP(statut='f',typ='R'),
+#DEBR             ANG_FRT         =SIMP(statut='o',typ='R'),
+#DEBR             COHE            =SIMP(statut='o',typ='R'),
+#DEBR             D_COEH_SUCC     =SIMP(statut='f',typ='R'),
+#DEBR             ANG_FRT_ULT     =SIMP(statut='f',typ='R'),
+#DEBR             SUCC_ULTM       =SIMP(statut='f',typ='R'),
+#DEBR             RESI_TRAC       =SIMP(statut='f',typ='R'),
+#DEBR             A_SURF_SATU     =SIMP(statut='f',typ='R'),
+#DEBR             B_SURF_SATU     =SIMP(statut='f',typ='R'),
+#DEBR             C_SURF_SATU     =SIMP(statut='f',typ='R'),
+#DEBR             D_SURF_SATU     =SIMP(statut='f',typ='R'),
+#DEBR           ),
            ELAS_COQUE      =FACT(statut='f',min=0,max=1,
              regles=(EXCLUS('MEMB_L','M_LLLL',),
                      PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
@@ -6707,61 +6748,61 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
              A_I             =SIMP(statut='o',typ=fonction),
              VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
            ),
-           VISCOCHAB       =FACT(statut='f',min=0,max=1,
-             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',min=0,max=1,
-             K_0             =SIMP(statut='o',typ=fonction),
-             A_K             =SIMP(statut='o',typ=fonction),
-             A_R             =SIMP(statut='o',typ=fonction),
-             K               =SIMP(statut='o',typ=fonction),
-             N               =SIMP(statut='o',typ=fonction),
-             ALP             =SIMP(statut='o',typ=fonction),
-             B               =SIMP(statut='o',typ=fonction),
-             M_R             =SIMP(statut='o',typ=fonction),
-             G_R             =SIMP(statut='o',typ=fonction),
-             MU              =SIMP(statut='o',typ=fonction),
-             Q_M             =SIMP(statut='o',typ=fonction),
-             Q_0             =SIMP(statut='o',typ=fonction),
-             QR_0            =SIMP(statut='o',typ=fonction),
-             ETA             =SIMP(statut='o',typ=fonction),
-             C1              =SIMP(statut='o',typ=fonction),
-             M_1             =SIMP(statut='o',typ=fonction),
-             D1              =SIMP(statut='o',typ=fonction),
-             G_X1            =SIMP(statut='o',typ=fonction),
-             G1_0            =SIMP(statut='o',typ=fonction),
-             C2              =SIMP(statut='o',typ=fonction),
-             M_2             =SIMP(statut='o',typ=fonction),
-             D2              =SIMP(statut='o',typ=fonction),
-             G_X2            =SIMP(statut='o',typ=fonction),
-             G2_0            =SIMP(statut='o',typ=fonction),
-             A_I             =SIMP(statut='o',typ=fonction),
-             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
-           ),
+#DEBR           VISCOCHAB       =FACT(statut='f',min=0,max=1,
+#DEBR             K_0             =SIMP(statut='o',typ='R'),
+#DEBR             A_K             =SIMP(statut='o',typ='R'),
+#DEBR             A_R             =SIMP(statut='o',typ='R'),
+#DEBR             K               =SIMP(statut='o',typ='R'),
+#DEBR             N               =SIMP(statut='o',typ='R'),
+#DEBR             ALP             =SIMP(statut='o',typ='R'),
+#DEBR             B               =SIMP(statut='o',typ='R'),
+#DEBR             M_R             =SIMP(statut='o',typ='R'),
+#DEBR             G_R             =SIMP(statut='o',typ='R'),
+#DEBR             MU              =SIMP(statut='o',typ='R'),
+#DEBR             Q_M             =SIMP(statut='o',typ='R'),
+#DEBR             Q_0             =SIMP(statut='o',typ='R'),
+#DEBR             QR_0            =SIMP(statut='o',typ='R'),
+#DEBR             ETA             =SIMP(statut='o',typ='R'),
+#DEBR             C1              =SIMP(statut='o',typ='R'),
+#DEBR             M_1             =SIMP(statut='o',typ='R'),
+#DEBR             D1              =SIMP(statut='o',typ='R'),
+#DEBR             G_X1            =SIMP(statut='o',typ='R'),
+#DEBR             G1_0            =SIMP(statut='o',typ='R'),
+#DEBR             C2              =SIMP(statut='o',typ='R'),
+#DEBR             M_2             =SIMP(statut='o',typ='R'),
+#DEBR             D2              =SIMP(statut='o',typ='R'),
+#DEBR             G_X2            =SIMP(statut='o',typ='R'),
+#DEBR             G2_0            =SIMP(statut='o',typ='R'),
+#DEBR             A_I             =SIMP(statut='o',typ='R'),
+#DEBR           ),
+#DEBR           VISCOCHAB_FO    =FACT(statut='f',min=0,max=1,
+#DEBR             K_0             =SIMP(statut='o',typ=fonction),
+#DEBR             A_K             =SIMP(statut='o',typ=fonction),
+#DEBR             A_R             =SIMP(statut='o',typ=fonction),
+#DEBR             K               =SIMP(statut='o',typ=fonction),
+#DEBR             N               =SIMP(statut='o',typ=fonction),
+#DEBR             ALP             =SIMP(statut='o',typ=fonction),
+#DEBR             B               =SIMP(statut='o',typ=fonction),
+#DEBR             M_R             =SIMP(statut='o',typ=fonction),
+#DEBR             G_R             =SIMP(statut='o',typ=fonction),
+#DEBR             MU              =SIMP(statut='o',typ=fonction),
+#DEBR             Q_M             =SIMP(statut='o',typ=fonction),
+#DEBR             Q_0             =SIMP(statut='o',typ=fonction),
+#DEBR             QR_0            =SIMP(statut='o',typ=fonction),
+#DEBR             ETA             =SIMP(statut='o',typ=fonction),
+#DEBR             C1              =SIMP(statut='o',typ=fonction),
+#DEBR             M_1             =SIMP(statut='o',typ=fonction),
+#DEBR             D1              =SIMP(statut='o',typ=fonction),
+#DEBR             G_X1            =SIMP(statut='o',typ=fonction),
+#DEBR             G1_0            =SIMP(statut='o',typ=fonction),
+#DEBR             C2              =SIMP(statut='o',typ=fonction),
+#DEBR             M_2             =SIMP(statut='o',typ=fonction),
+#DEBR             D2              =SIMP(statut='o',typ=fonction),
+#DEBR             G_X2            =SIMP(statut='o',typ=fonction),
+#DEBR             G2_0            =SIMP(statut='o',typ=fonction),
+#DEBR             A_I             =SIMP(statut='o',typ=fonction),
+#DEBR             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
+#DEBR           ),
            POLY_CFC        =FACT(statut='f',min=0,max=1,
              TEXTURE         =SIMP(statut='o',typ=(tabl_texture) ),
              DL              =SIMP(statut='f',typ='R'),
@@ -6814,7 +6855,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
            LEMAITRE_FO     =FACT(statut='f',min=0,max=1,
              N               =SIMP(statut='o',typ=fonction),
              UN_SUR_K        =SIMP(statut='o',typ=fonction),
-             UN_SUR_M        =SIMP(statut='f',typ=fonction),
+             UN_SUR_M        =SIMP(statut='o',typ=fonction),
              VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
            ),
            GRAN_IRRA       =FACT(statut='f',min=0,max=1,
@@ -6828,49 +6869,49 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
              PHI_ZERO        =SIMP(statut='f',typ='R',defaut= 1.E+20),
              L               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
            ),
-           OHNO            =FACT(statut='f',min=0,max=1,
-             R_I             =SIMP(statut='o',typ='R'),
-             R_0             =SIMP(statut='o',typ='R'),
-             B               =SIMP(statut='o',typ='R'),
-             PHI             =SIMP(statut='o',typ='R'),
-             A1              =SIMP(statut='o',typ='R'),
-             A2              =SIMP(statut='o',typ='R'),
-             A3              =SIMP(statut='o',typ='R'),
-             A4              =SIMP(statut='o',typ='R'),
-             A5              =SIMP(statut='o',typ='R'),
-             GAMMA1          =SIMP(statut='o',typ='R'),
-             GAMMA2          =SIMP(statut='o',typ='R'),
-             GAMMA3          =SIMP(statut='o',typ='R'),
-             GAMMA4          =SIMP(statut='o',typ='R'),
-             GAMMA5          =SIMP(statut='o',typ='R'),
-             M1              =SIMP(statut='o',typ='R'),
-             M2              =SIMP(statut='o',typ='R'),
-             M3              =SIMP(statut='o',typ='R'),
-             M4              =SIMP(statut='o',typ='R'),
-             M5              =SIMP(statut='o',typ='R'),
-                           ),
-           OHNO_FO         =FACT(statut='f',min=0,max=1,
-             R_I             =SIMP(statut='o',typ=fonction),
-             R_0             =SIMP(statut='o',typ=fonction),
-             B               =SIMP(statut='o',typ=fonction),
-             PHI             =SIMP(statut='o',typ=fonction),
-             A1              =SIMP(statut='o',typ=fonction),
-             A2              =SIMP(statut='o',typ=fonction),
-             A3              =SIMP(statut='o',typ=fonction),
-             A4              =SIMP(statut='o',typ=fonction),
-             A5              =SIMP(statut='o',typ=fonction),
-             GAMMA1          =SIMP(statut='o',typ=fonction),
-             GAMMA2          =SIMP(statut='o',typ=fonction),
-             GAMMA3          =SIMP(statut='o',typ=fonction),
-             GAMMA4          =SIMP(statut='o',typ=fonction),
-             GAMMA5          =SIMP(statut='o',typ=fonction),
-             M1              =SIMP(statut='o',typ=fonction),
-             M2              =SIMP(statut='o',typ=fonction),
-             M3              =SIMP(statut='o',typ=fonction),
-             M4              =SIMP(statut='o',typ=fonction),
-             M5              =SIMP(statut='o',typ=fonction),
-             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
-           ),
+#DEBR           OHNO            =FACT(statut='f',min=0,max=1,
+#DEBR             R_I             =SIMP(statut='o',typ='R'),
+#DEBR             R_0             =SIMP(statut='o',typ='R'),
+#DEBR             B               =SIMP(statut='o',typ='R'),
+#DEBR             PHI             =SIMP(statut='o',typ='R'),
+#DEBR             A1              =SIMP(statut='o',typ='R'),
+#DEBR             A2              =SIMP(statut='o',typ='R'),
+#DEBR             A3              =SIMP(statut='o',typ='R'),
+#DEBR             A4              =SIMP(statut='o',typ='R'),
+#DEBR             A5              =SIMP(statut='o',typ='R'),
+#DEBR             GAMMA1          =SIMP(statut='o',typ='R'),
+#DEBR             GAMMA2          =SIMP(statut='o',typ='R'),
+#DEBR             GAMMA3          =SIMP(statut='o',typ='R'),
+#DEBR             GAMMA4          =SIMP(statut='o',typ='R'),
+#DEBR             GAMMA5          =SIMP(statut='o',typ='R'),
+#DEBR             M1              =SIMP(statut='o',typ='R'),
+#DEBR             M2              =SIMP(statut='o',typ='R'),
+#DEBR             M3              =SIMP(statut='o',typ='R'),
+#DEBR             M4              =SIMP(statut='o',typ='R'),
+#DEBR             M5              =SIMP(statut='o',typ='R'),
+#DEBR                           ),
+#DEBR           OHNO_FO         =FACT(statut='f',min=0,max=1,
+#DEBR             R_I             =SIMP(statut='o',typ=fonction),
+#DEBR             R_0             =SIMP(statut='o',typ=fonction),
+#DEBR             B               =SIMP(statut='o',typ=fonction),
+#DEBR             PHI             =SIMP(statut='o',typ=fonction),
+#DEBR             A1              =SIMP(statut='o',typ=fonction),
+#DEBR             A2              =SIMP(statut='o',typ=fonction),
+#DEBR             A3              =SIMP(statut='o',typ=fonction),
+#DEBR             A4              =SIMP(statut='o',typ=fonction),
+#DEBR             A5              =SIMP(statut='o',typ=fonction),
+#DEBR             GAMMA1          =SIMP(statut='o',typ=fonction),
+#DEBR             GAMMA2          =SIMP(statut='o',typ=fonction),
+#DEBR             GAMMA3          =SIMP(statut='o',typ=fonction),
+#DEBR             GAMMA4          =SIMP(statut='o',typ=fonction),
+#DEBR             GAMMA5          =SIMP(statut='o',typ=fonction),
+#DEBR             M1              =SIMP(statut='o',typ=fonction),
+#DEBR             M2              =SIMP(statut='o',typ=fonction),
+#DEBR             M3              =SIMP(statut='o',typ=fonction),
+#DEBR             M4              =SIMP(statut='o',typ=fonction),
+#DEBR             M5              =SIMP(statut='o',typ=fonction),
+#DEBR             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
+#DEBR           ),
            LMARC           =FACT(statut='f',min=0,max=1,
              DE_0            =SIMP(statut='o',typ='R'),
              R_0             =SIMP(statut='o',typ='R'),
@@ -7002,15 +7043,15 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
              VERI_P2         =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
              VERI_P3         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
            ),
-           NADAI_B         =FACT(statut='f',min=0,max=1,
-             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'),
-           ),
+#DEBR           NADAI_B         =FACT(statut='f',min=0,max=1,
+#DEBR             F_C             =SIMP(statut='o',typ='R'),
+#DEBR             F_T             =SIMP(statut='o',typ='R'),
+#DEBR             CRIT_E_C        =SIMP(statut='o',typ='R'),
+#DEBR             EPSP_P_C        =SIMP(statut='o',typ='R'),
+#DEBR             EPSP_R_C        =SIMP(statut='o',typ='R'),
+#DEBR             EPSI_R_T        =SIMP(statut='o',typ='R'),
+#DEBR             FAC_T_C         =SIMP(statut='o',typ='R'),
+#DEBR           ),
            BETON_DOUBLE_DP =FACT(statut='f',min=0,max=1,
              F_C             =SIMP(statut='o',typ=fonction),
              F_T             =SIMP(statut='o',typ=fonction),
@@ -7054,30 +7095,30 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
              BT              =SIMP(statut='o',typ=fonction),
              VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
            ),
-          VENDOCHAB       =FACT(statut='f',min=0,max=1,
-             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',min=0,max=1,
-             S_VP            =SIMP(statut='o',typ=fonction),
-             SEDVP1          =SIMP(statut='o',typ=fonction),
-             SEDVP2          =SIMP(statut='o',typ=fonction),
-             N_VP            =SIMP(statut='o',typ=fonction),
-             M_VP            =SIMP(statut='o',typ=fonction),
-             K_VP            =SIMP(statut='o',typ=fonction),
-             R_D             =SIMP(statut='o',typ=fonction),
-             A_D             =SIMP(statut='o',typ=fonction),
-             K_D             =SIMP(statut='o',typ=fonction),
-             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
-             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="X",into=("X",) ),
-           ),
+#DEBR          VENDOCHAB       =FACT(statut='f',min=0,max=1,
+#DEBR             S_VP            =SIMP(statut='o',typ='R'),
+#DEBR             SEDVP1          =SIMP(statut='o',typ='R'),
+#DEBR             SEDVP2          =SIMP(statut='o',typ='R'),
+#DEBR             N_VP            =SIMP(statut='o',typ='R'),
+#DEBR             M_VP            =SIMP(statut='o',typ='R'),
+#DEBR             K_VP            =SIMP(statut='o',typ='R'),
+#DEBR             R_D             =SIMP(statut='o',typ='R'),
+#DEBR             A_D             =SIMP(statut='o',typ='R'),
+#DEBR             K_D             =SIMP(statut='o',typ='R'),
+#DEBR           ),
+#DEBR           VENDOCHAB_FO    =FACT(statut='f',min=0,max=1,
+#DEBR             S_VP            =SIMP(statut='o',typ=fonction),
+#DEBR             SEDVP1          =SIMP(statut='o',typ=fonction),
+#DEBR             SEDVP2          =SIMP(statut='o',typ=fonction),
+#DEBR             N_VP            =SIMP(statut='o',typ=fonction),
+#DEBR             M_VP            =SIMP(statut='o',typ=fonction),
+#DEBR             K_VP            =SIMP(statut='o',typ=fonction),
+#DEBR             R_D             =SIMP(statut='o',typ=fonction),
+#DEBR             A_D             =SIMP(statut='o',typ=fonction),
+#DEBR             K_D             =SIMP(statut='o',typ=fonction),
+#DEBR             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
+#DEBR             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="X",into=("X",) ),
+#DEBR           ),
            PINTO_MENEGOTTO =FACT(statut='f',min=0,max=1,
              SY              =SIMP(statut='o',typ='R'),
              EPSI_ULTM       =SIMP(statut='o',typ='R'),
@@ -7157,7 +7198,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
              FONC_V          =SIMP(statut='f',typ=fonction),
              VERI_P1         =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
            ),
-           GRANGER_FD      =FACT(statut='f',min=0,max=1,
+           BAZANT_FD      =FACT(statut='f',min=0,max=1,
              LAM_VISC      =SIMP(statut='o',typ='R'),
            ),  
            
@@ -7245,6 +7286,8 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
              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),
+             VERI_P1          =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
            ),
            SECH_NAPPE      =FACT(statut='f',min=0,max=1,
              FONCTION        =SIMP(statut='o',typ=fonction),
@@ -7592,7 +7635,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
            ),
            INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7611,7 +7654,7 @@ DEFI_MATERIAU=OPER(nom="DEFI_MATERIAU",op=5,sd_prod=mater,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
-                      docu="U4.65.02-d",reentrant='n',
+                      docu="U4.65.02-e",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          SOUS_STRUC      =FACT(statut='o',min=1,max='**',
            NOM             =SIMP(statut='o',typ='TXM' ),
@@ -7632,7 +7675,7 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
            CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7652,7 +7695,7 @@ DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
 # ======================================================================
 DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=fonction,
                 fr="Définition des valeurs d une fonction de deux variables réelles",
-                docu="U4.31.03-g1",reentrant='n',
+                docu="U4.31.03-g",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
                  EXCLUS('FONCTION','NOM_PARA_FONC',),
@@ -7679,7 +7722,7 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=fonction,
          VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7699,7 +7742,7 @@ DEFI_NAPPE=OPER(nom="DEFI_NAPPE",op=   4,sd_prod=fonction,
 # ======================================================================
 DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=obstacle
                     ,fr="Définition d un obstacle plan perpendiculaire à une structure filaire",
-                     docu="U4.44.21-e",reentrant='n',
+                     docu="U4.44.21-f",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          TYPE            =SIMP(statut='o',typ='TXM',defaut="CERCLE",
                              into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
@@ -7732,7 +7775,7 @@ DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=obstacle
          VALE            =SIMP(statut='f',typ='R',max='**'),
          VERIF           =SIMP(statut='f',typ='TXM',defaut="FERME"),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7754,7 +7797,7 @@ DEFI_OBSTACLE=OPER(nom="DEFI_OBSTACLE",op=  73,sd_prod=obstacle
 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",
-                    docu="U4.31.xx-a",reentrant='n',
+                    docu="U4.31.06-a",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          NOM_RESU        =SIMP(statut='c',typ='TXM',into=("TOUTRESU",),defaut="TOUTRESU",
                                fr="Nom du concept créé",
@@ -7764,7 +7807,7 @@ DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op=   2,sd_prod=para_sensi,
                                ang="Value of the parameter"),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7784,7 +7827,7 @@ DEFI_PARA_SENSI=OPER(nom="DEFI_PARA_SENSI",op=   2,sd_prod=para_sensi,
 # ======================================================================
 DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre,
                     fr="Définition d'un spectre d'excitation turbulente",
-                    docu="U4.44.31-c",reentrant='n',
+                    docu="U4.44.31-d",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',
@@ -7872,7 +7915,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7892,7 +7935,7 @@ DEFI_SPEC_TURB=OPER(nom="DEFI_SPEC_TURB",op= 145,sd_prod=spectre,
 # ======================================================================
 DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
                     fr="Définition d un maillage de visualisation",
-                    docu="U4.24.01-e",reentrant='n',
+                    docu="U4.24.01-f",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'),
                  PRESENT_PRESENT('MODE_CYCL','SECTEUR'),
@@ -7942,7 +7985,7 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7961,7 +8004,7 @@ DEFI_SQUELETTE=OPER(nom="DEFI_SQUELETTE",op= 110,sd_prod=squelette,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
-                  fr=" ",docu="U4.43.05-a",reentrant='n',
+                  fr=" ",docu="U4.43.05-b",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
          SYST_GLISSEMENT =FACT(statut='o',min=3,max=3,
            N               =SIMP(statut='o',typ='R',min=12,max=12 ),  
@@ -7973,7 +8016,7 @@ DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 03/12/2002   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -7991,7 +8034,7 @@ DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.20-d",reentrant='n',
+DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.mk.20-d",reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
                     fr="Calculer la fonction d évolution temporelle de température due à l effet JOULE dans un cable",
          LIST_INST       =SIMP(statut='o',typ=listr8),
@@ -8015,7 +8058,7 @@ DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.
          ),
 )  ;
 
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8033,7 +8076,7 @@ DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-e",reentrant='n',
+DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-f",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
               fr="Définition d un diagramme de transformations en refroidissement continu d un acier",
          HIST_EXP        =FACT(statut='o',min=1,max='**',
@@ -8050,7 +8093,7 @@ DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-e",reentrant=
            A              =SIMP(statut='f',typ='R'),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8078,7 +8121,7 @@ def defi_valeur_prod(self,IS=None,R8=None,TX=None,C8=None,LS=None):
 
 DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod,
                  fr="Affectation d une valeur à une variable Superviseur",
-                 docu="U4.31.04-f1",reentrant='f',
+                 docu="U4.31.04-f",reentrant='f',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('IS','R8','TX','C8','LS'),),
          IS              =SIMP(statut='f',typ='I',max='**'),
@@ -8087,7 +8130,7 @@ DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod,
          C8              =SIMP(statut='f',typ='C',max='**'),
          LS              =SIMP(statut='f',typ='L',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8105,7 +8148,7 @@ DEFI_VALEUR=MACRO(nom="DEFI_VALEUR",op=-4,sd_prod=defi_valeur_prod,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-d",
+DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-e",
             UIinfo={"groupes":("Gestion du travail",)},
             fr="Modification / ajout d une unité logique en sortie en complément de celles définies dans DEBUT",
          IMPRESSION      =FACT(statut='o',min=1,max='**',
@@ -8113,7 +8156,7 @@ DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-d",
            UNITE           =SIMP(statut='o',typ='I' ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8131,14 +8174,14 @@ DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-d",
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-e",reentrant='n',
+DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-f",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
                   fr="Récupération du champ de déplacement interne à une sous-structure",
          DEPL_GLOBAL     =SIMP(statut='o',typ=cham_no_depl_r),
          MAILLE          =SIMP(statut='o',typ=ma,max=1),
          NOM_CAS         =SIMP(statut='f',typ='TXM',defaut=" "),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8156,7 +8199,7 @@ DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-d",
+DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-e",
             UIinfo={"groupes":("Gestion du travail",)},
               fr="Destruction d un concept utilisateur dans la base GLOBALE",
              op_init=ops.detruire,
@@ -8164,7 +8207,7 @@ DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-d",
             NOM         =SIMP(statut='o',typ=assd,max='**'),
         ),
 );
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8182,7 +8225,7 @@ DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-d",
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-d",reentrant='n', 
+DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.mk.30-d",reentrant='n', 
             UIinfo={"groupes":("Outils métier",)},
                   fr="Calcul sous forme d une fonction du temps de la distance minimale entre deux structures filaires",
       regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),
@@ -8201,7 +8244,7 @@ DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-d",
          POIN_FIXE       =SIMP(statut='f',typ='R',min=3,max=3),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 14/10/2002   AUTEUR BOYERE E.BOYERE 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8221,7 +8264,7 @@ DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-d",
 # ======================================================================
 DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
                     ,fr="Calcule la réponse spectrale d une structure linéaire sous une excitation connue par sa DSP",
-                     docu="U4.53.22-d",reentrant='n',
+                     docu="U4.53.22-e",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          BASE_MODALE     =FACT(statut='o',min=1,max=1,
            regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
@@ -8232,37 +8275,61 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
              AMOR_UNIF       =SIMP(statut='o',typ='R' ),
            ),
            b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
-             AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
+             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',min=1,max=1,
-           regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I'), 
-                   EXCLUS('CHAM_NO','NOEUD'),),
-           DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ) ),
-           MODAL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
-#  dans la doc U il y a plus de choix pour GRANDEUR
-           GRANDEUR        =SIMP(statut='f',typ='TXM',defaut="DEPL_R",
-                                 into=("DEPL_R","EFFO","SOUR_DEBI_VOLU","SOUR_DEBI_MASS","SOUR_PRESS","SOUR_FORCE")),
            INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
            NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
            OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG",) ),
-#  Toutes les regles ne semblent pas avoir été ecrites dans la doc U
-           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",
+           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),
+               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='**'),
-           ),
-           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='**'),
-           ),
-           CHAM_NO         =SIMP(statut='f',typ=cham_no),
-           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")),
+             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',min=1,max=1,
            regles=( ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
@@ -8279,7 +8346,7 @@ DYNA_ALEA_MODAL=OPER(nom="DYNA_ALEA_MODAL",op= 131,sd_prod=tabl_intsp
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8306,7 +8373,7 @@ def dyna_line_harm_prod(MATR_MASS,**args):
 
 DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
                     fr="Réponse dynamique complexe d un système à une excitation harmonique",
-                    docu="U4.53.11-e",reentrant='n',
+                    docu="U4.53.11-f",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
                  PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
@@ -8347,7 +8414,7 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
 # Rajouter test icompatibilite vect_asse et sensibilite
 # Peut-on aussi rajouter ici le test d incompatibilite charge complexe - derivation 
 #  presents dans le Fortran          
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 14/10/2003   AUTEUR ACBHHCD G.DEVESA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8367,7 +8434,7 @@ DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
 # ======================================================================
 DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
                     fr="Réponse temporelle d un système à une excitation transitoire",
-                    docu="U4.53.02-g1",reentrant='f',
+                    docu="U4.53.02-g",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
 #         regles=(UN_PARMI('WILSON','DIFF_CENTRE','ADAPT'),),
          regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),),
@@ -8412,7 +8479,8 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
                    EXCLUS('ACCE','COEF_MULT'),
                    PRESENT_ABSENT('ACCE','FONC_MULT'),
                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
-                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
+                   # PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),
+                   ),
            VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
            CHARGE          =SIMP(statut='f',typ=char_meca ),
            FONC_MULT       =SIMP(statut='f',typ=fonction ),
@@ -8421,7 +8489,7 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
            ACCE            =SIMP(statut='f',typ=fonction ),
            VITE            =SIMP(statut='f',typ=fonction ),
            DEPL            =SIMP(statut='f',typ=fonction ),
-           MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           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,max='**'),
            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
@@ -8471,7 +8539,7 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 14/10/2003   AUTEUR ACBHHCD G.DEVESA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8490,7 +8558,7 @@ DYNA_LINE_TRAN=OPER(nom="DYNA_LINE_TRAN",op=  48,sd_prod=dyna_trans,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 # ======================================================================
 DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
-                   fr="Analyse mécanique dynamique non linéaire",docu="U4.53.01-f2",
+                   fr="Analyse mécanique dynamique non linéaire",docu="U4.53.01-f",
             UIinfo={"groupes":("Résolution",)},
          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
                  UN_PARMI('NEWMARK','HHT', ),),
@@ -8501,7 +8569,8 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
          EXCIT           =FACT(statut='o',min=1,max='**',
            regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
                    PRESENT_PRESENT('ACCE','VITE','DEPL'),
-                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
+                   # 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),
@@ -8509,7 +8578,7 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
            DEPL            =SIMP(statut='f',typ=fonction),
            ACCE            =SIMP(statut='f',typ=fonction),
            VITE            =SIMP(statut='f',typ=fonction),
-           MULT_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
+           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,max='**'),
            GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
@@ -8564,11 +8633,11 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
                                         "VMIS_CINE_LINE",
                                         "VISC_TAHERI",
                                         "CHABOCHE",
-                                        "VISCOCHAB",
+#DEBR                                        "VISCOCHAB",
                                         "VISC_CIN1_CHAB",
                                         "VISC_CIN2_CHAB",
                                         "POLY_CFC",
-                                        "LMARC",
+#DEBR                                        "LMARC",
                                         "ROUSSELIER",
                                         "ROUSS_PR",
                                         "ROUSS_VISC",
@@ -8582,8 +8651,8 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
                                         "ZIRC_CYRA2",
                                         "ZIRC_EPRI",
                                         "ASSE_COMBU",
-                                        "VENDOCHAB",
-                                        "NADAI_B",
+#DEBR                                        "VENDOCHAB",
+#DEBR                                        "NADAI_B",
                                         "DIS_CONTACT",
                                         "DIS_CHOC",
                                         "DIS_GOUJ2E_PLAS",
@@ -8595,10 +8664,10 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
                                         "CJS",
                                         "CAM_CLAY",
                                         "LAIGLE",
-                                        "OHNO",
+#DEBR                                        "OHNO",
                                         "GRANGER_FP",
                                         "GRANGER_FP_V",
-                                        "GRANGER_FD",
+                                        "BAZANT_FD",
                                         "BETON_DOUBLE_DP",
                                         "KIT_HM",
                                         "KIT_HHM",
@@ -8608,9 +8677,9 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
                                         "KIT_THHM",
                                         "VMIS_ASYM_LINE",
                                         "ELAS_THM",
-                                        "SURF_ETAT_NSAT",
-                                        "SURF_ETAT_SATU",
-                                        "CAM_CLAY_THM",
+#DEBR                                        "SURF_ETAT_NSAT",
+#DEBR                                        "SURF_ETAT_SATU",
+#DEBR                                        "CAM_CLAY_THM",
                                         "KIT_DDI",
                                      ) ),
           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
@@ -8685,7 +8754,7 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
           OHNO            =SIMP(statut='c',typ='I',defaut=32,into=(32,)),
           GRANGER_FP      =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
           GRANGER_FP_V    =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
-          GRANGER_FD       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+          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,)),
@@ -8703,17 +8772,17 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
                                        "CAM_CLAY",
                                        "LAIGLE",
                                        "ELAS_THM",
-                                       "SURF_ETAT_NSAT",
-                                       "SURF_ETAT_SATU",
-                                       "CAM_CLAY_THM",
+#DEBR                                       "SURF_ETAT_NSAT",
+#DEBR                                       "SURF_ETAT_SATU",
+#DEBR                                       "CAM_CLAY_THM",
 # THMC
                                        "GAZ",
                                        "LIQU_SATU",
-                                       "LIQU_SATU_GAT",
+#DEBR                                       "LIQU_SATU_GAT",
                                        "LIQU_GAZ_ATM",
                                        "LIQU_VAPE_GAZ",
                                        "LIQU_VAPE",
-                                       "LIQU_NSAT_GAT",
+#DEBR                                       "LIQU_NSAT_GAT",
                                        "LIQU_GAZ",
 # THER
                                        "THER_HOMO",
@@ -8732,8 +8801,8 @@ DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 70,sd_prod=evol_noli,reentrant='f',
                                        "GRANGER_FP_V",
                                        "ROUSSELIER",
                                        "CHABOCHE",
-                                       "OHNO",
-                                       "NADAI_B",
+#DEBR                                       "OHNO",
+#DEBR                                       "NADAI_B",
                                        "BETON_DOUBLE_DP",
                                        ) ),
            ELAS_THM        =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
@@ -8960,7 +9029,7 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -8980,7 +9049,7 @@ into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA","DEPL_ABSOLU","VITE_ABSOLU","
 # ======================================================================
 DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp,
                      fr="Calcul de la réponse par recombinaison modale d'une structure linéaire pour une excitation aléatoire",
-                     docu="U4.53.23-c",reentrant='n',
+                     docu="U4.53.23-d",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu ),
          EXCIT           =FACT(statut='o',max=1,
@@ -8989,7 +9058,7 @@ DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp,
          OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9009,7 +9078,7 @@ DYNA_SPEC_MODAL=OPER(nom="DYNA_SPEC_MODAL",op= 147,sd_prod=tabl_intsp,
 # ======================================================================
 DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
                      fr="Réponse dynamique transitoire en coordonnées généralisées par recombinaison modale",
-                     docu="U4.53.21-f1",reentrant='f',
+                     docu="U4.53.21-f",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
       regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), 
               PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
@@ -9197,7 +9266,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
  )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9216,7 +9285,7 @@ DYNA_TRAN_MODAL=OPER(nom="DYNA_TRAN_MODAL",op=  74,sd_prod=tran_gene,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
-ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-b",
+ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-c",
             UIinfo={"groupes":("Impression",)},
       regles=(UN_PARMI('TOUT','CO'),),
          FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
@@ -9226,7 +9295,7 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-b",
          FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
          PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-5"),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9244,14 +9313,14 @@ ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-b",
 # 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="",docu="U7.00.01-a",
+EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-b",
             UIinfo={"groupes":("Impression",)},
          LOGICIEL        =SIMP(statut='f',typ='TXM' ),  
          ARGUMENT        =FACT(statut='f',min=1,max='**',
            NOM_PARA        =SIMP(statut='f',typ='TXM' ),  
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9277,7 +9346,7 @@ def extr_mode_prod(FILTRE_MODE,**args):
   raise AsException("type de concept resultat non prevu")
 
 EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
-               docu="U4.52.12-c",reentrant='n',
+               docu="U4.52.12-d",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          FILTRE_MODE     =FACT(statut='o',min=1,max='**',
            regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),),
@@ -9302,7 +9371,7 @@ EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
            CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9326,7 +9395,7 @@ def extr_resu_prod(RESULTAT,**args):
   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,docu="U4.71.04-c2",reentrant='f',
+EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-c",reentrant='f',
             UIinfo={"groupes":("Résultats et champs",)},
          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,   
@@ -9360,7 +9429,7 @@ EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-c2",
 
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9384,7 +9453,7 @@ def fact_grad_prod(MATR_ASSE,**args):
   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,docu="U4.55.03-e",
+FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-f",
             UIinfo={"groupes":("Résolution",)},
                fr="Préconditionnement pour résolution par gradient conjugué",
                reentrant='n',
@@ -9395,7 +9464,7 @@ FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-e",
          NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),  
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9415,7 +9484,7 @@ FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-e",
 # ======================================================================
 FACT_INTE_SPEC=OPER(nom="FACT_INTE_SPEC",op= 117,sd_prod=interspfact,
                     fr="Factorisation d une matrice interspectrale hermitienne",
-                    docu="U4.36.04-e",reentrant='n',
+                    docu="U4.36.04-f",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(ENSEMBLE('FREQ_FIN','NB_POIN'),),
 #  regle non indiquée dans la doc U         
@@ -9427,7 +9496,7 @@ FACT_INTE_SPEC=OPER(nom="FACT_INTE_SPEC",op= 117,sd_prod=interspfact,
          SUR_ECHAN       =SIMP(statut='f',typ='R',defaut= 1. ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9456,7 +9525,7 @@ def fact_ldlt_prod(MATR_ASSE,**args):
   raise AsException("type de concept resultat non prevu")
 
 FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place",
-               docu="U4.55.01-f",reentrant='f',
+               docu="U4.55.01-g",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
                  EXCLUS('BLOC_FIN','DDL_FIN'),),
@@ -9475,7 +9544,7 @@ FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9495,11 +9564,11 @@ FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en
 # ======================================================================
 # NEW 5.3.23
 FERMER=PROC(nom="FERMER",op=  10,fr=" ",
-            docu="U4.12.02-a",
+            docu="U4.12.02-b",
             UIinfo={"groupes":("Gestion du travail",)},
          UNITE           =SIMP(statut='o',typ='I',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9518,7 +9587,7 @@ FERMER=PROC(nom="FERMER",op=  10,fr=" ",
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
-         docu="U4.11.02-f",
+         docu="U4.11.02-g",
             UIinfo={"groupes":("Gestion du travail",)},
          RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
                                statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
@@ -9528,7 +9597,7 @@ FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une 
                                statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
          FICHIER         =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
 )  ;
-#& MODIF COMMANDE  DATE 15/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9547,11 +9616,11 @@ FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une 
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction,
-                    docu="U4.35.02-c",reentrant='n',
+                    docu="U4.35.02-d",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          TYPE_FLUI_STRU  =SIMP(statut='o',typ=(type_flui_stru) ),
 )  ;
-#& MODIF COMMANDE  DATE 17/09/2001   AUTEUR MCOURTOI M.COURTOIS 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9570,13 +9639,18 @@ FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
+                docu="U4.31.05-e",
                 fr="Définition d une fonction",reentrant = 'n',
-                regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
-                REEL = SIMP(typ = 'shell',max=1),
-                ENTIER = SIMP(typ = 'shell',max=1),
+                regles=(UN_PARMI('REEL','COMPLEXE'),),
+
+##### fonctions entieres interdites suite au probleme AL2003-072
+#####               regles=(UN_PARMI('REEL','ENTIER','COMPLEXE'),),
+#####      ENTIER   = SIMP(typ = 'shell',max=1),
+
+                REEL     = SIMP(typ = 'shell',max=1),
                 COMPLEXE = SIMP(typ = 'shell',max=1),
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9596,7 +9670,7 @@ FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
 # ======================================================================
 GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=tabl_fonc,
                     fr="Génération de la fonction temporelle à partir d une matrice interspectrale factorisée",
-                    docu="U4.36.05-e",reentrant='n',
+                    docu="U4.36.05-f",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          INTE_SPEC_FACT  =SIMP(statut='o',typ=interspfact ),
          INIT_ALEA       =SIMP(statut='f',typ='I',defaut= 12312745 ),
@@ -9604,7 +9678,7 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=tabl_fonc,
          NB_POIN         =SIMP(statut='f',typ='I' ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9624,14 +9698,14 @@ GENE_FONC_ALEA=OPER(nom="GENE_FONC_ALEA",op= 118,sd_prod=tabl_fonc,
 # ======================================================================
 GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,sd_prod=matr_asse_gene_r,
                fr="Generateur de matrice aleatoire",
-               docu="U4.36.06",reentrant='n',
+               docu="U4.36.06-a",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
    MATR_MOYEN   = SIMP(statut='o', typ=matr_asse_gene_r),
    DELTA        = SIMP(statut='f', typ='R', defaut=0.1),
    INIT         = SIMP(statut='f', typ='TXM', into=("OUI","NON"),defaut="NON"),
 ) ;
    
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9651,7 +9725,7 @@ GENE_MATR_ALEA=OPER(nom="GENE_MATR_ALEA",op=  27,sd_prod=matr_asse_gene_r,
 # ======================================================================
 GENE_VARI_ALEA=OPER(nom="GENE_VARI_ALEA",op=  28,sd_prod=table,
                fr="Generateur de variable aleatoire",
-               docu="U4.36.07",reentrant='n',
+               docu="U4.36.07-a",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
    TYPE       = SIMP(statut='f', typ='TXM', into=("EXP_TRONQUEE", "EXPONENTIELLE", "GAMMA"), defaut="EXP_TRONQUEE"),
    VALE_MOY   = SIMP(statut='f', typ='R', defaut=0.),
@@ -9688,7 +9762,7 @@ IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
          VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
          CHARGE          =SIMP(statut='o',typ=char_meca,max='**', ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9706,7 +9780,7 @@ IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
 # 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,docu="U7.04.21-a",
+IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-b",
             UIinfo={"groupes":("Fonction",)},
          regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ',
                         'LIST_ORDRE' ),),
@@ -9731,7 +9805,7 @@ IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-a",
          ),
          AMOR            =SIMP(statut='o',typ='R',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9750,7 +9824,7 @@ IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-a",
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
-IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-f",
+IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-g",
             UIinfo={"groupes":("Impression",)},
              fr="Impression du contenu d un concept utilisateur (pour développeur)",
          regles=(UN_PARMI('CO','CHAINE', ),),
@@ -9763,7 +9837,7 @@ IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-f",
          CHAINE          =SIMP(statut='f',typ='TXM'),
          POSITION        =SIMP(statut='f',typ='I',defaut=1),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9783,7 +9857,7 @@ IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-f",
 # ======================================================================
 # RESPONSABLE MCOURTOI M.COURTOIS
 IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers",
-                 docu="U4.33.01-e2",
+                 docu="U4.33.01-e",
             UIinfo={"groupes":("Fonction",)},
          FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
          FORMAT          =SIMP(statut='f',typ='TXM',position='global'
@@ -9890,7 +9964,7 @@ IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers",
             ), 
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -9909,7 +9983,7 @@ IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers",
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE GNICOLAS G.NICOLAS
-IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b2",
+IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b",
             UIinfo={"groupes":("Fonction",)},
                     fr="Imprime le fichier de configuration de HOMARD.",
                     ang="Writes the configuration file for HOMARD.",
@@ -10150,7 +10224,7 @@ IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b2",
          ),
 #
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10170,7 +10244,7 @@ IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-b2",
 # ======================================================================
 IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
                fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire",
-               docu="U4.91.02-c",
+               docu="U4.91.02-d",
             UIinfo={"groupes":("Impression",)},
          GENE            =FACT(statut='o',min=1,max='**',
            regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
@@ -10212,7 +10286,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
            INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10230,7 +10304,7 @@ IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,
 # 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,docu="U4.91.21-f",
+IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-g",
             UIinfo={"groupes":("Impression",)},
                  fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)",
          ENTITE          =SIMP(fr="choix de l'observation",statut='o',typ='TXM',
@@ -10267,7 +10341,7 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-f",
          ),
          COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 04/02/2004   AUTEUR ACBHHCD G.DEVESA 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10286,7 +10360,7 @@ IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-f",
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
-                    docu="U7.04.33-d1",
+                    docu="U7.04.33-d",
             UIinfo={"groupes":("Impression",)},
          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
          FICHIER         =SIMP(statut='f',typ='TXM' ),
@@ -10299,11 +10373,12 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
            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 ),
            GROUP_MA_INTERF =SIMP(statut='o',typ=grma,max='**'),
-#  Ces trois mots cles sont-ils dans le bon bloc et avec le bon statut        
            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='**'),
@@ -10320,7 +10395,7 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
          ),
 
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10340,7 +10415,7 @@ IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,
 # ======================================================================
 IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
                   fr="Impression des matrices élémentaires et des matrices assemblées",
-                  docu="U7.04.32-c",
+                  docu="U7.04.32-d",
             UIinfo={"groupes":("Impression",)},
          regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
          
@@ -10386,7 +10461,7 @@ IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
            VALE_ZERO       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10405,7 +10480,7 @@ IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
-                  docu="U7.04.11-c",
+                  docu="U7.04.11-d",
             UIinfo={"groupes":("Impression",)},
          regles=(UN_PARMI('INST_INIT','FREQ_INIT'),
                  PRESENT_PRESENT('INST_INIT','INST_FIN'),
@@ -10432,7 +10507,7 @@ IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 16/10/2002   AUTEUR GNICOLAS G.NICOLA
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOI
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10450,7 +10525,7 @@ IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,
 # 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,docu="U4.91.01-g1",
+IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-g",
             UIinfo={"groupes":("Impression",)},
                fr="Impression du résultat d un calcul (différents formats)",
          MODELE          =SIMP(statut='f',typ=modele),
@@ -10554,7 +10629,7 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-g1",
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10573,7 +10648,7 @@ IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-g1",
 #    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é",
-                docu="U4.52.01-f",
+                docu="U4.52.01-g",
             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 ) ),
@@ -10595,7 +10670,7 @@ IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de val
          PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
          SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10614,7 +10689,7 @@ IMPR_STURM=PROC(nom="IMPR_STURM",op=32,fr="Calculer et imprimer le nombre de val
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
-IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-d2",
+IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-d",
             UIinfo={"groupes":("Impression",)},
                 fr="Impression d un concept de type table",
          TABLE           =SIMP(statut='o',typ=table),
@@ -10651,7 +10726,7 @@ IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-d2",
          TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",)),
          IMPR_FONCTION   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10669,14 +10744,14 @@ IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-d2",
 # 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=-1,docu="U4.13.01-e",
+INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-f",
             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 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10694,7 +10769,7 @@ INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
 # 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,docu="U4.43.02-a",
+INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-b",
             UIinfo={"groupes":("Modélisation",)},
                        fr=" ",
          sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0,
@@ -10713,7 +10788,7 @@ INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a",
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10732,7 +10807,7 @@ INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a",
 #    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,docu="U4.81.11-e",
+INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-f",
             UIinfo={"groupes":("Post traitements",)},
                   fr="Définition d une courbe sur un maillage 2D",reentrant='n',
 
@@ -10795,7 +10870,7 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-e",
          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10814,7 +10889,7 @@ INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-e",
 #    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,docu="U4.81.12-e",
+INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-f",
             UIinfo={"groupes":("Post traitements",)},
                   fr="Définition d un chemin sur un maillage 3D",reentrant='n',
          MAILLAGE        =SIMP(statut='o',typ=maillage),
@@ -10834,7 +10909,7 @@ INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-e",
          PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10860,7 +10935,7 @@ def lire_champ_prod(TYPE_CHAM=None,**args):
 LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
                 fr="Lire un champ dans un fichier et le stocker dans un concept.",
                 ang="To read a field in a file and to save it in a concept.",
-                docu="U7.02.02-b2",reentrant='n',
+                docu="U7.02.02-b",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
 #
 # 1. Le maillage support du champ
@@ -10931,7 +11006,7 @@ LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
 #
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10951,7 +11026,7 @@ LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
 # ======================================================================
 LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op=  83,sd_prod=fonction,
                    fr="Lecture d une fonction dans un fichier ",
-                   docu="U4.32.02-f1",reentrant='n',
+                   docu="U4.32.02-f",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          UNITE           =SIMP(statut='o',typ='I' ),
          NOM_PARA        =SIMP(statut='f',typ='TXM',
@@ -10970,7 +11045,7 @@ LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op=  83,sd_prod=fonction,
          INFO            =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -10990,7 +11065,7 @@ LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op=  83,sd_prod=fonction,
 # ======================================================================
 LIRE_INTE_SPEC=OPER(nom="LIRE_INTE_SPEC",op= 116,sd_prod=tabl_intsp,
                     fr="Lecture sur un fichier externe de  fonctions complexes pour créer une matrice interspectrale",
-                    docu="U4.36.01-f2",reentrant='n',
+                    docu="U4.36.01-f",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") ),
@@ -11004,7 +11079,7 @@ LIRE_INTE_SPEC=OPER(nom="LIRE_INTE_SPEC",op= 116,sd_prod=tabl_intsp,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11026,7 +11101,7 @@ LIRE_INTE_SPEC=OPER(nom="LIRE_INTE_SPEC",op= 116,sd_prod=tabl_intsp,
 LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage,
                    fr="Lecture d'un fichier de maillage",
                    ang="Readings of a mesh file",
-                   docu="U4.21.01-g1",reentrant='n',
+                   docu="U4.21.01-g",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
 #
          UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
@@ -11062,7 +11137,7 @@ LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 #
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11076,7 +11151,7 @@ def lire_miss_3d_prod(TYPE_RESU,**args):
 
 LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
                   fr="Restitution au format MISS3D d une évolution harmonique ou transitoire",
-                  docu="U7.02.31-c",reentrant='n',
+                  docu="U7.02.31-d",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
          MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
          UNITE           =SIMP(statut='f',typ='I',defaut= 27 ),
@@ -11084,7 +11159,7 @@ LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11104,7 +11179,7 @@ LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
 # ======================================================================
 LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
                  fr=" ",
-                 docu="U7.02.11-a",reentrant='n',
+                 docu="U7.02.11-b",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 ),
@@ -11124,7 +11199,7 @@ LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
          ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 09/09/2003   AUTEUR VABHHTS J.PELLET 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11143,7 +11218,40 @@ def lire_resu_prod(TYPE_RESU,**args):
   if TYPE_RESU == "MODE_MECA" :  return mode_meca
   raise AsException("type de concept resultat non prevu")
 
-LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d2",reentrant='n',
+# 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,docu="U7.02.01-d",reentrant='n',
             UIinfo={"groupes":("Maillage",)},
                fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier IDEAS ou EnSight",
 
@@ -11175,12 +11283,11 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d2",
            UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
          ),
 
-         b_format_ideas = BLOC(condition="DATASET_58=='NON'",
+         b_format_ideas = BLOC(condition="FORMAT=='IDEAS' and DATASET_58=='NON'",
+           NOM_CHAM        =SIMP(statut='o',typ='TXM',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',max='**',into=("TEMP","DEPL","VITE","ACCE","PRES","VARI_ELNO",
-                                                                     "SIEF_ELNO","EPSA_ELNO","TEMP_PEAU","VITE_VENT",
-                                                                     "FVOL_3D","FVOL_2D","FSUR_3D","FSUR_2D") ),
+             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),
@@ -11192,8 +11299,9 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d2",
              POSI_FREQ       =SIMP(statut='f',typ='I',min=2,max=2),
              NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),),
          ),
-         b_dataset_58 = BLOC(condition="(DATASET_58=='OUI') and ((TYPE_RESU=='DYNA_TRANS') or\
-                                        (TYPE_RESU=='DYNA_HARMO') or (TYPE_RESU=='HARM_GENE'))",
+
+         b_dataset_58 = BLOC(condition="FORMAT=='IDEAS' and  DATASET_58=='OUI' \
+             and TYPE_RESU in ('DYNA_TRANS','DYNA_HARMO','HARM_GENE')",
              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',),),
@@ -11205,12 +11313,14 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d2",
 # -------------
          b_ensight       =BLOC(condition="FORMAT=='ENSIGHT'",
            NOM_FICHIER     =SIMP(statut='f',typ='TXM'),
+           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',into=l_nom_cham_pas_elga()),
          ),
 # 1-3 med :
 # ---------
          b_med           =BLOC(condition = "FORMAT == 'MED'",fr="Nom du champ dans le fichier MED",
 #                           regles=(UN_PARMI('NOM_CMP_IDEM','NOM_CMP'),
 #                           PRESENT_PRESENT('NOM_CMP','NOM_CMP_MED' ),),
+           NOM_CHAM        =SIMP(statut='o',typ='TXM',into=l_nom_cham_pas_elga()),
            NOM_MED         =SIMP(statut='o',typ='TXM',
                                  fr="Nom du champ dans le fichier MED.",
                                  ang="Name of the field in the MED file." ),
@@ -11236,36 +11346,9 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d2",
 
 # 2 blocs selon le type du résultat :
 #---------------------------------
-         b_evol_elas     =BLOC(condition="TYPE_RESU=='EVOL_ELAS'",
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
-                                 into=("DEPL",) ),
-         ),
-         b_evol_ther     =BLOC(condition="TYPE_RESU=='EVOL_THER'",
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
-                                 into=("TEMP","TEMP_PEAU") ),
-         ),
-         b_evol_char     =BLOC(condition="TYPE_RESU=='EVOL_CHAR'",
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
-                                 into=("PRES","VITE_VENT",
-                                       "FVOL_3D","FVOL_2D",
-                                       "FSUR_3D","FSUR_2D") ),
-         ),
-         b_evol_noli     =BLOC(condition="TYPE_RESU=='EVOL_NOLI'",
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
-                                 into=("DEPL","VITE","ACCE","VARI_ELNO",
-                                       "SIEF_ELNO","EPSA_ELNO") ),
-         ),
          b_mode_meca     =BLOC(condition="TYPE_RESU=='MODE_MECA'",
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
-                                 into=("DEPL",) 
-                                                 ),
-           MATR_A         =SIMP(statut='f',typ=matr_asse_depl_r,min=1,max=1,),
-           MATR_B         =SIMP(statut='f',typ=matr_asse_depl_r,min=1,max=1,),
-         ),
-         b_dyna          =BLOC(condition="((TYPE_RESU=='DYNA_TRANS') or (TYPE_RESU=='DYNA_HARMO') or\
-                                          (TYPE_RESU=='HARM_GENE')) and (DATASET_58=='NON')",
-           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
-                                 into=("DEPL","VITE","ACCE",) ),
+           MATR_A         =SIMP(statut='f',typ=matr_asse_depl_r),
+           MATR_B         =SIMP(statut='f',typ=matr_asse_depl_r),
          ),
 
 
@@ -11287,7 +11370,7 @@ LIRE_RESU=OPER(nom="LIRE_RESU",op=150,sd_prod=lire_resu_prod,docu="U7.02.01-d2",
            ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11313,7 +11396,7 @@ def lire_table_prod(TYPE_TABLE,**args):
   if TYPE_TABLE == "TABL_POST_ALEA" : return tabl_post_alea
   raise AsException("type de concept resultat non prevu")
 LIRE_TABLE=OPER(nom="LIRE_TABLE",op=29,sd_prod=lire_table_prod,
-                docu="U7.02.03",fr="Lecture d un concept de type table",
+                docu="U7.02.03-a",fr="Lecture d un concept de type table",
             UIinfo={"groupes":("Maillage",)},
          UNITE           =SIMP(statut='o',typ='I' ),
          FORMAT          =SIMP(statut='f',typ='TXM',into=("ASTER",),defaut="ASTER"),
@@ -11327,7 +11410,7 @@ LIRE_TABLE=OPER(nom="LIRE_TABLE",op=29,sd_prod=lire_table_prod,
          SEPARATEUR      =SIMP(statut='o',typ='TXM'),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          )  ;
-#& MODIF COMMANDE  DATE 08/10/2002   AUTEUR GNICOLAS G.NICOLA
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOI
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11361,7 +11444,7 @@ def macr_adap_mail_prod(self,MAJ_CHAM,ADAPTATION,**args):
 MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=-24,sd_prod=macr_adap_mail_prod,
                      fr="Adapter un maillage avec le logiciel HOMARD.",
                      ang="Mesh adaptation with HOMARD software.",
-                     docu="U7.03.01-b2",
+                     docu="U7.03.01-b",
 #
 # 1. Le niveau d'information
 #
@@ -11580,7 +11663,7 @@ MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=-24,sd_prod=macr_adap_mail_prod,
          MENAGE         = SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ),
 #
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11610,7 +11693,7 @@ def macr_ascouf_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS,CHARGE,RESU
 
 MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_prod,
                       fr=" ",
-                      docu="U4.CF.20-b1",reentrant='n',
+                      docu="U4.cf.20-b",reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
 
@@ -11787,7 +11870,7 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_p
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11807,7 +11890,7 @@ MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_p
 # ======================================================================
 # RESPONSABLE F1BHHAJ J.ANGLES
 MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage,
-                      fr=" ",docu="U4.CF.10-b1",reentrant='n',
+                      fr=" ",docu="U4.cf.10-b",reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
 
          regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
@@ -11934,7 +12017,7 @@ MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage,
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -11964,7 +12047,7 @@ def macr_aspic_calc_prod(self,MODELE,CHAM_MATER,CARA_ELEM,FOND_FISS_1,FOND_FISS_
   return evol_noli
 
 MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod,
-                    fr=" ",docu="U4.PC.20-b2",reentrant='n',
+                    fr=" ",docu="U4.pc.20-b",reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
          regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
 
@@ -12153,7 +12236,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod,
          TITRE           =SIMP(statut='f',typ='TXM'),
 )  ;
 # debut entete
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12173,7 +12256,7 @@ MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod,
 # ======================================================================
 # RESPONSABLE F1BHHAJ J.ANGLES
 MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='n',
-                    fr=" ",docu="U4.PC.10-b1",
+                    fr=" ",docu="U4.pc.10-b",
             UIinfo={"groupes":("Outils métier",)},
 
          EXEC_MAILLAGE   =FACT(statut='o',min=1,max=1,
@@ -12247,7 +12330,7 @@ MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='
 
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12267,7 +12350,7 @@ MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='
 # ======================================================================
 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",
-                    docu="U4.65.01-e1",reentrant='n',
+                    docu="U4.65.01-e",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
          BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
@@ -12278,7 +12361,7 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
          OPTION          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ",
                           "DIAG_MASS") ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12296,7 +12379,7 @@ MACR_ELEM_DYNA=OPER(nom="MACR_ELEM_DYNA",op=  81,sd_prod=macr_elem_dyna,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-f1",reentrant='f',
+MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-f",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'),
@@ -12327,7 +12410,7 @@ MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.6
            INST            =SIMP(statut='f',typ='R',defaut=0.E+0),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12346,7 +12429,7 @@ MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.6
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli,
-                      fr=" ",docu="U4.GJ.20-a",reentrant='n',
+                      fr=" ",docu="U4.gj.20-b",reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
          MAILLAGE        =SIMP(statut='o',typ=maillage),
          DEFI_GOUJ       =FACT(statut='o',min=1,max=1,
@@ -12376,7 +12459,7 @@ MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli,
          TITRE           =SIMP(statut='f',typ='TXM'),  
          INFO            =SIMP(statut='f',typ='I',defaut=1 ,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12395,7 +12478,7 @@ MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
-                      fr=" ",docu="U4.GJ.10-a",reentrant='n',
+                      fr=" ",docu="U4.gj.10-b",reentrant='n',
             UIinfo={"groupes":("Outils métier",)},
          EXEC_MAILLAGE   =FACT(statut='o',min=1,max=1,
            LOGICIEL        =SIMP(statut='o',typ='TXM',defaut="GIBI2000",into=("GIBI98","GIBI2000") ),
@@ -12427,7 +12510,7 @@ MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 08/10/2002   AUTEUR GNICOLAS G.NICOLA
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOI
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12446,7 +12529,7 @@ MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE GNICOLAS G.NICOLAS
-MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-b2",
+MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-b",
                      fr="Donner des informations sur un maillage.",
                      ang="To give information about a mesh.",
 #
@@ -12554,7 +12637,7 @@ MACR_LIGN_COUPE=MACRO(nom="MACR_LIGN_COUPE",op=macr_lign_coupe_ops,sd_prod=macr_
            TABLE           =SIMP(statut='o',typ=(table,CO)), 
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12578,7 +12661,7 @@ from Macro.macr_recal_ops import macr_recal_ops
 def macr_recal_prod(self,**args ):
   return listr8
 
-MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,docu="U4.73.02",
+MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,docu="U4.73.02-a",
             UIinfo={"groupes":("Résultats et champs",)},
                       sd_prod=macr_recal_prod,
                       fr="Réalise le recalage de modèles Aster",
@@ -12594,7 +12677,7 @@ MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,docu="U4.73.02",
            UNITE           =SIMP(statut='f',typ='I',defaut=90),
            INTERACTIF      =SIMP(statut='f',typ='TXM',defaut='NON',into=("OUI","NON")),)
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12614,10 +12697,10 @@ MACR_RECAL = MACRO(nom="MACR_RECAL",op=macr_recal_ops,docu="U4.73.02",
 # ======================================================================
 # RESPONSABLE JMBHH01 J.M.PROIX
 
-from cataSTA6.macro_cara_poutre_ops import macro_cara_poutre_ops
+from Macro.macro_cara_poutre_ops import macro_cara_poutre_ops
 
 MACRO_CARA_POUTRE=MACRO(nom="MACRO_CARA_POUTRE",op=macro_cara_poutre_ops,sd_prod=tabl_cara_geom,
-                       docu="U4.42.02-d1",reentrant='n',
+                       docu="U4.42.02-d",reentrant='n',
             UIinfo={"groupes":("Modélisation",)},
                        fr="caractéristiques d'une section transversale de poutre à partir d'un maillage 2D",
          regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
@@ -12665,7 +12748,7 @@ MACRO_CHAR_F_U=MACRO(nom="MACRO_CHAR_F_U",op=-15,sd_prod=char_meca,
          NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="APRES",into=("NORMAL","APRES")),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12693,7 +12776,7 @@ def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
   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,docu="U4.51.02-d2",reentrant='f',
+MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=macro_elas_mult_ops,sd_prod=macro_elas_mult_prod,docu="U4.51.02-d",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),),
          MODELE          =SIMP(statut='o',typ=modele),
@@ -12794,7 +12877,7 @@ MACRO_MADMACS=MACRO(nom="MACRO_MADMACS",op=-9,docu="U7.03.21-c",
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12822,7 +12905,7 @@ def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,FORC_
 
   return None
 
-MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-c1",sd_prod=macro_matr_ajou_prod,
+MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-c",sd_prod=macro_matr_ajou_prod,
             UIinfo={"groupes":("Matrices/vecteurs",)},
       regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
               AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'),
@@ -12897,7 +12980,7 @@ MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-c1",sd_prod=ma
          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 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12940,7 +13023,7 @@ def macro_matr_asse_prod(self,NUME_DDL,MATR_ASSE,**args):
     self.type_sdprod(m['MATRICE'],t)
   return None
 
-MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.21-d1",
+MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.21-d",
             UIinfo={"groupes":("Matrices/vecteurs",)},
                       sd_prod=macro_matr_asse_prod,
                       fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
@@ -12974,7 +13057,7 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.2
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -12995,7 +13078,7 @@ MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=macro_matr_asse_ops,docu="U4.61.2
 
 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=" ",docu="U7.03.11-a",
+MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ",docu="U7.03.11-b",
             UIinfo={"groupes":("Matrices/vecteurs",)},
          OPTION          =FACT(statut='o',min=1,max=1,
            regles=(UN_PARMI('TOUT','MODULE'),),
@@ -13009,7 +13092,7 @@ MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=macro_miss_3d_ops,fr=" ",docu="U7.03.
          UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),  
          UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13036,7 +13119,7 @@ def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ):
   return mode_meca
 
 MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=macro_mode_meca_prod,
-                     docu="U4.52.02-d1",reentrant='n',
+                     docu="U4.52.02-d",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          MATR_A          =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ),
          MATR_B          =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ),
@@ -13105,7 +13188,7 @@ MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op=macro_mode_meca_ops,sd_prod=macro
                                  into=("MASS_EFFE_UN","MASS_GENE",) ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13136,7 +13219,7 @@ def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ):
       self.type_sdprod(v['VECTEUR'],vect_asse_gene)
   return None
 
-MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.11-d1",
+MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.11-d",
             UIinfo={"groupes":("Matrices/vecteurs",)},
                       sd_prod=macro_proj_base_prod,
                       fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs",
@@ -13156,7 +13239,7 @@ MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.1
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13174,14 +13257,14 @@ MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=macro_proj_base_ops,docu="U4.63.1
 # 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,docu="U4.15.01-e1",
+MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-e",
             UIinfo={"groupes":("Gestion du travail",)},
               fr="Compilation des catalogues de commandes et d éléments",
 
          ELEMENT         =FACT(statut='f',min=1,max=1,),
 
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13190,7 +13273,7 @@ MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-e1",
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
-                   fr="Analyse mécanique statique linéaire",docu="U4.51.01-g1",reentrant='n',
+                   fr="Analyse mécanique statique linéaire",docu="U4.51.01-g",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
                    regles=(EXCLUS("INST","LIST_INST"),
                            AU_MOINS_UN('CHAM_MATER','CARA_ELEM',), ),
@@ -13247,7 +13330,7 @@ MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13266,7 +13349,7 @@ MECA_STATIQUE=OPER(nom="MECA_STATIQUE",op=46,sd_prod=evol_elas,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE GNICOLAS G.NICOLAS
-MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,docu="U4.31.xx-a",
+MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,docu="U4.31.07-a",
             UIinfo={"groupes":("Fonction",)},
                     fr="Mémorisation des noms des concepts dérivés.",
                     ang="Memorisation of the names of the sensitive concepts.",
@@ -13307,7 +13390,7 @@ MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,docu="U4.31.xx-a",
                        ang="Name of the one fonction"),
 
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13327,7 +13410,7 @@ MEMO_NOM_SENSI=PROC(nom="MEMO_NOM_SENSI",op=129,docu="U4.31.xx-a",
 # ======================================================================
 MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
                     fr="Modes propres d une structure à répétitivité cyclique à partir d une base de modes propres réels",
-                    docu="U4.52.05-e",reentrant='n',
+                    docu="U4.52.05-f",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
          NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
@@ -13361,7 +13444,7 @@ MODE_ITER_CYCL=OPER(nom="MODE_ITER_CYCL",op=  80,sd_prod=mode_cycl,
          ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13389,7 +13472,7 @@ def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
 
 MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
                     ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
-                     docu="U4.52.04-g1",reentrant='n',
+                     docu="U4.52.04-g",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
@@ -13446,7 +13529,7 @@ MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 05/01/2004   AUTEUR NICOLAS O.NICOLAS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13474,11 +13557,11 @@ def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
 
 MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_prod,
                       fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes",
-                      docu="U4.52.03-f2",reentrant='n',
+                      docu="U4.52.03-f",reentrant='n',
             UIinfo={"groupes":("Résolution",)},
          MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
          MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
-         MATR_C          =SIMP(statut='f',position='global',typ=matr_asse_depl_r ),
+         MATR_C          =SIMP(statut='f',position='global',typ=(matr_asse_depl_r,matr_asse_gene_r) ),
          METHODE         =SIMP(statut='f',position='global',typ='TXM',defaut="SORENSEN",
                                into=("TRI_DIAG","JACOBI","SORENSEN") ),
          b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
@@ -13515,6 +13598,7 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_pr
                                  fr="Recherche des valeurs propres les plus proches d une valeur donnée",
                CHAR_CRIT       =SIMP(statut='o',typ='R',min=1,max=1,
                                      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",
@@ -13575,7 +13659,7 @@ MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_pr
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),        
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13600,7 +13684,7 @@ def mode_stat_prod(MODE_STAT,FORCE_NODALE,PSEUDO_MODE,**args):
  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",
-                   docu="U4.52.14-f2",reentrant='n',
+                   docu="U4.52.14-f",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 ),
@@ -13644,7 +13728,7 @@ MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13663,7 +13747,7 @@ MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op= 93,sd_prod=mode_stat_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
-                      docu="U4.66.21-c",reentrant='f',
+                      docu="U4.66.21-d",reentrant='f',
             UIinfo={"groupes":("Matrices/vecteurs",)},
 #  la commande modi_base _modale : reentrant = f ou o                      
          regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
@@ -13676,7 +13760,7 @@ MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 04/10/2004   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13686,7 +13770,7 @@ MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
 # RESPONSABLE G8BHHXD X.DESROCHES
 MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage,
                    fr="Modification de la connectivité de groupes de mailles 2D ou 3D affectées à la modélisation de contact",
-                   docu="U4.23.04-d1",reentrant='o',
+                   docu="U4.23.04-d",reentrant='o',
             UIinfo={"groupes":("Maillage",)},
       regles=(AU_MOINS_UN('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
                        'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE',
@@ -13773,10 +13857,10 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage,
          MODI_MAILLE     =FACT(statut='f',min=1,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,max='**'),
-           MAILLE_FOND     =SIMP(statut='f',typ=ma,max='**'),
-           GROUP_NO_FOND   =SIMP(statut='f',typ=grno,max='**'),
-           NOEUD_FOND      =SIMP(statut='f',typ=no,max='**'),
+           GROUP_MA_FOND   =SIMP(statut='f',typ=grma,max=1),
+           MAILLE_FOND     =SIMP(statut='f',typ=ma  ,max=1),
+           GROUP_NO_FOND   =SIMP(statut='f',typ=grno,max=1),
+           NOEUD_FOND      =SIMP(statut='f',typ=no  ,max=1),
          ),
          MODI_BASE       =FACT(statut='f',min=1,max=1,
            VECT_X          =SIMP(statut='o',typ='R',min=2,max=3),
@@ -13794,7 +13878,7 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage,
 
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13813,12 +13897,10 @@ MODI_MAILLAGE=OPER(nom="MODI_MAILLAGE",op= 154,sd_prod=maillage,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle,
-                   fr=" ",docu="U4.44.22-a",reentrant='f',
+                   fr=" ",docu="U4.44.22-b",reentrant='f',
             UIinfo={"groupes":("Modélisation",)},
       regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),
-              PRESENT_PRESENT('TUBE_NEUF','TABL_USURE'),
               PRESENT_PRESENT('V_USUR_TUBE','V_USUR_OBST'),),
-         TUBE_NEUF       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
          V_USUR_TUBE     =SIMP(statut='f',typ='R',max='**'),
          V_USUR_OBST     =SIMP(statut='f',typ='R',max='**'),
          TABL_USURE      =SIMP(statut='f',typ=tabl_post_usur),
@@ -13830,7 +13912,7 @@ MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle,
          PERCEMENT       =SIMP(statut='f',typ='R',defaut=1),  
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13861,7 +13943,7 @@ def modi_repere_prod(RESULTAT,**args):
   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,docu="U4.74.01-a3",reentrant='n',
+MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,docu="U4.74.01-a",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
                     fr="Impression des resultats dans un repere cylindrique",
          RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
@@ -13908,7 +13990,7 @@ MODI_REPERE=OPER(nom="MODI_REPERE",op=191,sd_prod=modi_repere_prod,docu="U4.74.0
          ),
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13934,7 +14016,7 @@ def norm_mode_prod(MODE,**args ):
 
 NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
                fr="Normalisation de modes propres",
-               docu="U4.52.11-e",reentrant='f',
+               docu="U4.52.11-f",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),),
          MODE       =SIMP(statut='o',typ=(mode_meca,mode_flamb) ),
@@ -13956,7 +14038,7 @@ NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
          TITRE      =SIMP(statut='f',typ='TXM',max='**'),
          INFO       =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -13975,7 +14057,7 @@ NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
 #    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,docu="U4.61.11-g1",reentrant='n',
+NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-g",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'),), 
@@ -13997,7 +14079,7 @@ NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-g1",reentrant
          ),
          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14017,7 +14099,7 @@ NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-g1",reentrant
 # ======================================================================
 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",
-                    docu="U4.65.03-e1",reentrant='n',
+                    docu="U4.65.03-e",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          regles=UN_PARMI('MODELE_GENE','BASE'),
          MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
@@ -14030,7 +14112,7 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
                NB_VECT     =SIMP(statut='f',typ='I',defaut= 9999 ),
                              ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14050,7 +14132,7 @@ NUME_DDL_GENE=OPER(nom="NUME_DDL_GENE",op= 127,sd_prod=nume_ddl_gene,
 # ======================================================================
 POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
                     fr="Traitements statistiques de résultats de type interspectre et impression sur fichiers",
-                    docu="U4.84.04-d",reentrant='n',
+                    docu="U4.84.04-e",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
          INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
@@ -14101,7 +14183,7 @@ POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14121,7 +14203,7 @@ POST_DYNA_ALEA=OPER(nom="POST_DYNA_ALEA",op= 132,sd_prod=tabl_post_alea,
 # ======================================================================
 POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna,
                       fr="Post-traitements en coordonnées généralisées issus de DYNA_TRAN_MODAL",
-                      docu="U4.84.02-d",reentrant='n',
+                      docu="U4.84.02-e",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
         regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
@@ -14143,7 +14225,7 @@ POST_DYNA_MODA_T=OPER(nom="POST_DYNA_MODA_T",op= 130,sd_prod=tabl_post_dyna,
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14182,7 +14264,7 @@ def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,TRAV_EXT,WEIBULL,
   if AIRE_INTERNE != None  : return tabl_aire_int
   raise AsException("type de concept resultat non prevu")
 
-POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,docu="U4.81.22-e3",reentrant='f',
+POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,docu="U4.81.22-e",reentrant='f',
             UIinfo={"groupes":("Post traitements",)},
                fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
 
@@ -14548,7 +14630,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,docu="U4.81.22-e3",
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
 
  )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14566,7 +14648,7 @@ POST_ELEM=OPER(nom="POST_ELEM",op=107,sd_prod=post_elem_prod,docu="U4.81.22-e3",
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-c",reentrant='n',
+POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-d",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                     fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire",
          regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
@@ -14583,7 +14665,7 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U
          MATER           =SIMP(statut='o',typ=mater),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14601,7 +14683,7 @@ POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-d1",reentrant='n',
+POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-d",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
                   fr="Calcul du dommage subi par une structure soumise à une histoire de chargement",
 
@@ -14661,7 +14743,7 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.
          INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14680,11 +14762,11 @@ POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n', 
-                 fr=" ",docu="U4.GJ.30-a",
+                 fr=" ",docu="U4.gj.30-b",
             UIinfo={"groupes":("Outils métier",)},
          TABLE           =SIMP(statut='o',typ=tabl_post_rele),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14705,18 +14787,18 @@ POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n'
 # RESPONSABLE JMBHH01 J.M.PROIX
 POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
                    fr="Calcul des FIC par extrapolation du champ de déplacements sur les lèvres de la fissure",
-                   docu="U4.82.05-b2",reentrant='n',
+                   docu="U4.82.05-b",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
 
            regles=(UN_PARMI('RESULTAT','TABL_DEPL_SUP'),
-                   PRESENT_PRESENT('TABL_DEPL_SUP','TABL_DEPL_INF'),),
+                   PRESENT_PRESENT('TABL_DEPL_SUP','TABL_DEPL_INF'),
+                   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_3D         =SIMP(statut='f',typ=fond_fiss),
            FOND_FISS       =SIMP(statut='f',typ=fond_fiss),
-         b_fond_3d     =BLOC (condition="(FOND_3D != None) or (FOND_FISS!= None)",
+         b_fond_fiss   =BLOC (condition="(FOND_FISS!= None)",
                          MAILLAGE      = SIMP(statut='o',typ=maillage),
                          PRECISION     = SIMP(statut='f',typ='R',defaut=0.001),
                          NOEUD         = SIMP(statut='f',typ=no,max='**'),
@@ -14793,7 +14875,7 @@ POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta,
          INFO          = SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
          TITRE         = SIMP(statut='f',typ='TXM',max='**'),  
 );
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -14813,7 +14895,7 @@ POST_K_BETA=OPER(nom="POST_K_BETA",op=198,sd_prod=tabl_post_beta,
 # RESPONSABLE JMBHH01 J.M.PROIX
 POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
                fr="Vérification des critères de niveau 0 et certains critères de niveau A du RCC-M-B3200 (Edition 1991)",
-               docu="U4.83.11-d1",reentrant='n',
+               docu="U4.83.11-d",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
@@ -14995,7 +15077,7 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
                                ),
                      ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 # ======================================================================
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15014,7 +15096,7 @@ POST_RCCM=OPER(nom="POST_RCCM",op= 165,sd_prod=tabl_post_rccm,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 # RESPONSABLE G8BHHXD X.DESROCHES
-POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-e1",reentrant='n',
+POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-e",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          ACTION          =FACT(statut='o',min=1,max='**',
            regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
@@ -15130,7 +15212,7 @@ POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
            TEMP_ANALYSE    =SIMP(statut='f',typ='R'),  
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15148,12 +15230,13 @@ POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-d1",reentrant='f',
+POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-d",reentrant='f',
             UIinfo={"groupes":("Post traitements",)},
                 fr="Calcul des volumes d'usure et des profondeurs d'usure",
-         regles=(UN_PARMI('RESU_GENE','PUIS_USURE'),
-                 PRESENT_PRESENT('RESU_GENE','NOEUD'),
-                 UN_PARMI('INST','LIST_INST'),),
+         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',min=1,max=1,
            TABL_USURE      =SIMP(statut='f',typ=tabl_post_usur),
            INST_INIT       =SIMP(statut='f',typ='R'),  
@@ -15164,7 +15247,7 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-d1
          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='o',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
+         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'),
@@ -15229,6 +15312,10 @@ POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-d1
            MATER_USURE     =SIMP(statut='f',typ='TXM'),  
            USURE_OBST      =SIMP(statut='f',typ='TXM',into=("OUI",)),
          ),
+         b_tube_neuf       =BLOC(condition = "TUBE_NEUF == 'OUI'",
+            TABL_USURE      =SIMP(statut='o',typ=tabl_post_usur),
+            INST            =SIMP(statut='f',typ='R'),
+         ),
          CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",    
                                                           "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE",        
                                                           "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
@@ -15288,7 +15375,7 @@ POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-b",reentra
          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
 
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15307,7 +15394,7 @@ POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-b",reentra
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
-                docu="U4.11.03-g2",sd_prod = ops.POURSUITE,
+                docu="U4.11.03-g",sd_prod = ops.POURSUITE,
             UIinfo={"groupes":("Gestion du travail",)},
                 op_init = ops.POURSUITE_context,fichier_ini = 1,
          PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM',
@@ -15376,7 +15463,7 @@ PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-e",
          UNITE_ASTER     =SIMP(statut='f',typ='I',defaut=21),  
          MODELE          =SIMP(statut='o',typ=modele),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15394,13 +15481,13 @@ PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-e",
 # 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,docu="U7.01.11-f",
+PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-g",
             UIinfo={"groupes":("Gestion du travail",)},
               fr="Conversion d un fichier de maillage GIBI",
          UNITE_GIBI      =SIMP(statut='f',typ='I',defaut=19),  
          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15419,16 +15506,16 @@ PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-f",
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 
-from cataSTA6.pre_gmsh_ops import pre_gmsh_ops
+from Macro.pre_gmsh_ops import pre_gmsh_ops
 
-PRE_GMSH=MACRO(nom="PRE_GMSH",op=pre_gmsh_ops,docu="U7.01.01-f",
+PRE_GMSH=MACRO(nom="PRE_GMSH",op=pre_gmsh_ops,docu="U7.01.01-g",
             UIinfo={"groupes":("Gestion du travail",)},
                fr="Conversion d un fichier universel GMSH au format Aster",
          UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
          MODI_QUAD       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15447,13 +15534,13 @@ PRE_GMSH=MACRO(nom="PRE_GMSH",op=pre_gmsh_ops,docu="U7.01.01-f",
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
 # ======================================================================
 
-PRE_GMSH_LECT=PROC(nom="PRE_GMSH_LECT",op=47,docu="U7.01.01-f",
+PRE_GMSH_LECT=PROC(nom="PRE_GMSH_LECT",op=47,docu="U7.01.01-g",
             UIinfo={"groupes":("Gestion du travail",)},
                fr="Conversion d un fichier universel GMSH au format Aster",
          UNITE_GMSH      =SIMP(statut='f',typ='I',defaut=19),  
          UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut=20),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15471,13 +15558,13 @@ PRE_GMSH_LECT=PROC(nom="PRE_GMSH_LECT",op=47,docu="U7.01.01-f",
 # 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,docu="U7.01.01-f",
+PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-g",
             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),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15495,12 +15582,12 @@ PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-f",
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-e",
+PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-f",
             UIinfo={"groupes":("Gestion du travail",)},
           fr="Nommer le fichier de commandes secondaires",
           NOM  =SIMP(statut='f',typ='TXM',defaut=" "),
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15527,13 +15614,13 @@ def prod_matr_cham_prod(MATR_ASSE,**args):
 
 PROD_MATR_CHAM=OPER(nom="PROD_MATR_CHAM",op= 156,sd_prod=prod_matr_cham_prod,
                     fr="Effectuer le produit d une matrice par un vecteur",
-                    docu="U4.72.06-b",reentrant='n',
+                    docu="U4.72.06-c",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,matr_asse_pres_c ) ),
          CHAM_NO         =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_temp_r,cham_no_pres_c ) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15566,7 +15653,7 @@ def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
     if AsType(CHAM_NO_REFE) == cham_no_flux_r : return cham_no_flux_r
     raise AsException("type de concept resultat non prevu")
 
-PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-d2",reentrant='n',
+PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-d",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
                 fr="Projection d'un champ aux noeuds sur les noeuds d'un autre maillage",
 #
@@ -15616,7 +15703,7 @@ PROJ_CHAMP=OPER(nom="PROJ_CHAMP",op= 166,sd_prod=proj_champ_prod,docu="U4.72.05-
 
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15643,7 +15730,7 @@ def matr_asse_gene_prod(MATR_ASSE,MATR_ASSE_GENE,**args):
 
 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)",
-                    docu="U4.63.12-f1",reentrant='n',
+                    docu="U4.63.12-f",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 ) ),
@@ -15652,7 +15739,7 @@ PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_prod,
          MATR_ASSE_GENE  =SIMP(statut='f',typ=(matr_asse_gene_r,matr_asse_gene_c) ),
 )  ;
 
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15679,7 +15766,7 @@ def proj_mesu_modal_prod(MODELE_MESURE,**args):
 
 PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
                      sd_prod=proj_mesu_modal_prod,
-                     docu="U4.73.01-a",reentrant='n',
+                     docu="U4.73.01-b",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
                      fr="Calcul de coordonnees generalisees de mesure experimentale relatives a une base de projection",
 
@@ -15712,7 +15799,7 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
              ),
 
           ); 
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15730,7 +15817,7 @@ PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-c",reentrant='n',
+PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-d",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
                     fr="Projection d un ou plusieurs spectres de turbulenc sur un ensemble de bases modales ",
       regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),
@@ -15751,7 +15838,7 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.
          ORIG_AXE        =SIMP(statut='f',typ='R',min=3,max=3 ),  
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15771,7 +15858,7 @@ PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.
 # ======================================================================
 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)",
-                    docu="U4.63.13-f1",reentrant='n',
+                    docu="U4.63.13-f",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 ) ),
@@ -15780,7 +15867,7 @@ PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene,
          VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
          VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15799,7 +15886,7 @@ PROJ_VECT_BASE=OPER(nom="PROJ_VECT_BASE",op=  72,sd_prod=vect_asse_gene,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
-                     fr=" ",docu="U4.82.06-a",reentrant='n',
+                     fr=" ",docu="U4.82.06-b",reentrant='n',
             UIinfo={"groupes":("Post traitements",)},
          LIST_PARA       =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ),
          RESU            =FACT(statut='o',min=1,max='**',
@@ -15826,7 +15913,7 @@ RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
          ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
                        )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -15865,7 +15952,7 @@ def recu_fonction_prod(RESULTAT=None,TABLE=None,OBSTACLE=None,
 
 RECU_FONCTION=OPER(nom="RECU_FONCTION",op=  90,sd_prod=recu_fonction_prod,
                    fr="Extraire sous forme d une fonction, l évolution temporelle d une composante d un champ ou d une table",
-                   docu="U4.32.03-f2",reentrant='n',
+                   docu="U4.32.03-f",reentrant='n',
             UIinfo={"groupes":("Fonction",)},
          regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),),
 
@@ -16050,7 +16137,7 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=  90,sd_prod=recu_fonction_prod,
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16068,7 +16155,7 @@ RECU_FONCTION=OPER(nom="RECU_FONCTION",op=  90,sd_prod=recu_fonction_prod,
 # 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,docu="U4.71.03-e",reentrant='n',
+RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,docu="U4.71.03-f",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
                fr="Récupération d un champ de grandeur à partir d un résultat en coordonnées généralisées",
          RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
@@ -16078,7 +16165,7 @@ RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,docu="U4.71.03-e",
          CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
          PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16098,7 +16185,7 @@ RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,docu="U4.71.03-e",
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table,
-                fr=" ",docu="U4.71.02-b2",reentrant='n',
+                fr=" ",docu="U4.71.02-b",reentrant='n',
             UIinfo={"groupes":("Résultats et champs",)},
          CO              =SIMP(statut='o',typ=assd),
          regles=(UN_PARMI('NOM_TABLE','NOM_PARA')),
@@ -16106,7 +16193,7 @@ RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table,
          NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16132,7 +16219,7 @@ def reso_grad_prod(MATR_ASSE,**args ):
 
 RESO_GRAD=OPER(nom="RESO_GRAD",op=  84,sd_prod=reso_grad_prod,
                fr="Résolution par la méthode du gradient conjugué préconditionné",
-               docu="U4.55.04-e",reentrant='f',
+               docu="U4.55.04-f",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
          CHAM_NO         =SIMP(statut='o',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r ) ),
@@ -16143,7 +16230,7 @@ RESO_GRAD=OPER(nom="RESO_GRAD",op=  84,sd_prod=reso_grad_prod,
          RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1E-6 ),  
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16172,7 +16259,7 @@ def reso_ldlt_prod(CHAM_NO,**args ):
   raise AsException("type de concept resultat non prevu")
 
 RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f',
-               fr="Résolution en place ou hors place d un système factorisé",docu="U4.55.02-f",
+               fr="Résolution en place ou hors place d un système factorisé",docu="U4.55.02-g",
             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) ),
@@ -16182,7 +16269,7 @@ RESO_LDLT=OPER(nom="RESO_LDLT",op=15,sd_prod=reso_ldlt_prod,reentrant='f',
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16211,7 +16298,7 @@ def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ):
 
 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",
-                    docu="U4.63.21-e",reentrant='n',
+                    docu="U4.63.21-f",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
         regles=(UN_PARMI('RESU_GENE','RESULTAT'),
                 EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
@@ -16254,7 +16341,7 @@ REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
          SECTEUR         =SIMP(statut='f',typ='I',defaut= 1 ),  
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16273,7 +16360,7 @@ REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
 REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
-                    docu="U4.63.22-c",reentrant='n',
+                    docu="U4.63.22-d",reentrant='n',
             UIinfo={"groupes":("Matrices/vecteurs",)},
          regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
          BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu ),
@@ -16297,7 +16384,7 @@ REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
                                into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16315,11 +16402,11 @@ REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
 # ======================================================================
-RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-e",
+RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-f",
             UIinfo={"groupes":("Gestion du travail",)},
             fr="Retour au fichier de commandes appelant", 
 ) ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16340,7 +16427,7 @@ RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-e",
 #  RESPONSABLE ADBHHVV V.CANO
 STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
                    fr="Analyse mécanique statique non linéaire",
-                   docu="U4.51.03-f4",reentrant='f',
+                   docu="U4.51.03-f",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),),
          MODELE          =SIMP(statut='o',typ=modele),
@@ -16396,11 +16483,11 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
                                         "VMIS_CINE_LINE",
                                         "VISC_TAHERI",
                                         "CHABOCHE",
-                                        "VISCOCHAB",
+#DEBR                                        "VISCOCHAB",
                                         "VISC_CIN1_CHAB",
                                         "VISC_CIN2_CHAB",
                                         "POLY_CFC",
-                                        "LMARC",
+#DEBR                                        "LMARC",
                                         "ROUSSELIER",
                                         "ROUSS_PR",
                                         "ROUSS_VISC",
@@ -16414,8 +16501,8 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
                                         "ZIRC_CYRA2",
                                         "ZIRC_EPRI",
                                         "ASSE_COMBU",
-                                        "VENDOCHAB",
-                                        "NADAI_B",
+#DEBR                                        "VENDOCHAB",
+#DEBR                                        "NADAI_B",
                                         "DIS_CONTACT",
                                         "DIS_CHOC",
                                         "DIS_GOUJ2E_PLAS",
@@ -16427,10 +16514,10 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
                                         "CJS",
                                         "CAM_CLAY",
                                         "LAIGLE",
-                                        "OHNO",
+#DEBR                                        "OHNO",
                                         "GRANGER_FP",
                                         "GRANGER_FP_V",
-                                        "GRANGER_FD",
+                                        "BAZANT_FD",
                                         "BETON_DOUBLE_DP",
                                         "KIT_HM",
                                         "KIT_HHM",
@@ -16440,9 +16527,9 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
                                         "KIT_THHM",
                                         "VMIS_ASYM_LINE",
                                         "ELAS_THM",
-                                        "SURF_ETAT_NSAT",
-                                        "SURF_ETAT_SATU",
-                                        "CAM_CLAY_THM",
+#DEBR                                        "SURF_ETAT_NSAT",
+#DEBR                                        "SURF_ETAT_SATU",
+#DEBR                                        "CAM_CLAY_THM",
                                         "KIT_DDI",
                                      ) ),
           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
@@ -16517,7 +16604,7 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
           OHNO            =SIMP(statut='c',typ='I',defaut=32,into=(32,)),
           GRANGER_FP      =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
           GRANGER_FP_V    =SIMP(statut='c',typ='I',defaut=55,into=(55,)),
-          GRANGER_FD       =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
+          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,)),
@@ -16535,17 +16622,17 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
                                        "CAM_CLAY",
                                        "LAIGLE",
                                        "ELAS_THM",
-                                       "SURF_ETAT_NSAT",
-                                       "SURF_ETAT_SATU",
-                                       "CAM_CLAY_THM",
+#DEBR                                       "SURF_ETAT_NSAT",
+#DEBR                                       "SURF_ETAT_SATU",
+#DEBR                                       "CAM_CLAY_THM",
 # THMC
                                        "GAZ",
                                        "LIQU_SATU",
-                                       "LIQU_SATU_GAT",
+#DEBR                                       "LIQU_SATU_GAT",
                                        "LIQU_GAZ_ATM",
                                        "LIQU_VAPE_GAZ",
                                        "LIQU_VAPE",
-                                       "LIQU_NSAT_GAT",
+#DEBR                                       "LIQU_NSAT_GAT",
                                        "LIQU_GAZ",
 # THER
                                        "THER_HOMO",
@@ -16562,10 +16649,10 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
                                        "VMIS_ISOT_CINE",
                                        "GRANGER_FP",
                                        "GRANGER_FP_V",
-                                       "ROUSSELIER",
+                                       "ROUSS_PR",
                                        "CHABOCHE",
-                                       "OHNO",
-                                       "NADAI_B",
+#DEBR                                       "OHNO",
+#DEBR                                       "NADAI_B",
                                        "BETON_DOUBLE_DP",
                                        ) ),
            ELAS_THM        =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
@@ -16773,7 +16860,7 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
          TITRE           =SIMP(statut='f',typ='TXM',max='**' ),
  )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -16793,7 +16880,7 @@ STAT_NON_LINE=OPER(nom="STAT_NON_LINE",op=70,sd_prod=evol_noli,
 # ======================================================================
 # 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",
-                   docu="U4.92.02-f2",
+                   docu="U4.92.02-f",
             UIinfo={"groupes":("Impression",)},
          FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
          TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
@@ -16859,28 +16946,28 @@ TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur num
            ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 # 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.                                 
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
 #
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT 
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF          
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU    
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                            
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE   
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,       
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.      
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
 #
 #
 # ======================================================================
-TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-g3",
+TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-g",
             UIinfo={"groupes":("Impression",)},
          fr="Extraction d une valeur et comparaison à une valeur de référence",
          regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')),
@@ -16943,9 +17030,9 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-g3",
                    PRESENT_PRESENT('POINT','NOM_CMP'),
                    UN_PARMI('VALE','VALE_I','VALE_C') ,),
            RESULTAT        =SIMP(statut='o',typ=resultat),
-           SENSIBILITE     =SIMP(statut='f',typ=(para_sensi,theta_geom),max='**',
-                                 fr="Liste des paramètres de sensibilité.",
-                                 ang="List of sensitivity parameters"),
+           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'),
@@ -16991,7 +17078,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-g3",
            VERSION         =SIMP(statut='f',typ='TXM' ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -17011,7 +17098,7 @@ TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-g3",
 # ======================================================================
 # RESPONSABLE VABHHTS J.PELLET
 TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
-                docu="U4.92.03-c1",
+                docu="U4.92.03-c",
             UIinfo={"groupes":("Impression",)},
          regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),),
          FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
@@ -17046,7 +17133,7 @@ TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
              VERSION         =SIMP(statut='f',typ='TXM' ),
          ),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -17064,7 +17151,7 @@ TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,
 # 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,docu="U4.54.01-g2",reentrant='f',
+THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-g",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
                    fr="Analyse thermique linéaire stationnaire ou transitoire",
          MODELE          =SIMP(statut='o',typ=modele),
@@ -17135,7 +17222,7 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-g2
          TITRE           =SIMP(statut='f',typ='TXM',max='**'),
          INFO            =SIMP(statut='f',typ='I',into=(1,2)),
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -17153,7 +17240,7 @@ THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-g2
 # 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,docu="U4.54.02-e2",reentrant='f',
+THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-e",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
                    fr="Analyse thermique non linéaire stationnaire ou transitoire" ,
          MODELE          =SIMP(statut='o',typ=(modele) ),
@@ -17246,7 +17333,7 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-
          INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
   
 )  ;
-#& MODIF COMMANDE  DATE 09/10/2002   AUTEUR DURAND C.DURAND 
+#& MODIF COMMANDE  DATE 22/04/2003   AUTEUR MCOURTOI M.COURTOIS 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -17266,7 +17353,7 @@ THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-
 # ======================================================================
 THER_NON_LINE_MO=OPER(nom="THER_NON_LINE_MO",op= 171,sd_prod=evol_ther,
                      fr="Thermique non lineaire en repere mobile",
-                     docu="U4.54.03-b",reentrant='f',
+                     docu="U4.54.03-c",reentrant='f',
             UIinfo={"groupes":("Résolution",)},
          MODELE          =SIMP(statut='o',typ=modele ),
          CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
index 4dfeff128d0f7914e6c70f259d5b1a332c7b3ee5..9799b3a9a260f5dcd55f80fc3ba98920f820e441 100644 (file)
@@ -292,8 +292,13 @@ class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
 
   def nomme_sd(self,nom):
       """ Lance la méthode de nommage de la SD """
+      oldnom=""
+      if self.object.sd != None :
+         oldnom=self.object.sd.nom
       test,mess= self.object.nomme_sd(nom)
       if test:self.object.parent.reset_context()
+      if (test and self.appli.dict_reels.has_key(oldnom) ):
+              self.appli.dict_reels[nom]=self.appli.dict_reels[oldnom]
       return test,mess
 
   def is_reentrant(self):
index 0ac1855347b49a0c5f4406f9824bbfc5760630b9..b8881c4d57ddf88b13a979d153fdb46291ab7c89 100644 (file)
@@ -193,10 +193,13 @@ class newSIMPPanel(panels.OngletPanel):
             if texte_valeur[0] != "'":
                clef=eval(texte_valeur)
                if str(clef) != str(texte_valeur) :
+                  self.node.item.object.init_modif()
                   clefobj=self.node.item.object.GetNomConcept()
                   if not self.parent.appli.dict_reels.has_key(clefobj):
                      self.parent.appli.dict_reels[clefobj] = {}
                   self.parent.appli.dict_reels[clefobj][clef]=texte_valeur
+                 self.parent.appli.dict_reels[clefobj]
+                  self.node.item.object.fin_modif()
       except:
         pass