]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
This commit was manufactured by cvs2git to create branch 'Liv-V1_7'.
authorcvs2git <renaud.nedelec@opencascade.com>
Tue, 25 Jan 2005 18:25:27 +0000 (18:25 +0000)
committercvs2git <renaud.nedelec@opencascade.com>
Tue, 25 Jan 2005 18:25:27 +0000 (18:25 +0000)
Sprout from master 2004-12-10 13:05:24 UTC eficas 'PN vielles macros'
Cherrypick from master 2005-01-25 18:25:26 UTC eficas 'CCAR: Mise a jour catalogue STA7 (7.4) et ajout catalogue STA7.3':
    Aster/Cata/Macro/defi_part_feti_ops.py
    Aster/Cata/Macro/impr_table_ops.py
    Aster/Cata/Macro/macr_ecla_pg_ops.py
Cherrypick from I26 2002-03-26 09:08:47 UTC eficas 'Version initiale de EFICAS 1.2':
    Aster/ahlv100a.comm
    Aster/totalmod.comm
    Editeur/faqs.txt
    Editeur/icons/About24.gif
    Editeur/icons/Copy24.gif
    Editeur/icons/Cut24.gif
    Editeur/icons/Delete24.gif
    Editeur/icons/Help24.gif
    Editeur/icons/New24.gif
    Editeur/icons/Open24.gif
    Editeur/icons/Paste24.gif
    Editeur/icons/Save24.gif
    Editeur/icons/Zoom24.gif
    Editeur/icons/arrow_left.gif
    Editeur/icons/arrow_right.gif
    Editeur/icons/ast-green-ball.gif
    Editeur/icons/ast-green-los.gif
    Editeur/icons/ast-green-percent.gif
    Editeur/icons/ast-green-square.gif
    Editeur/icons/ast-green-text.gif
    Editeur/icons/ast-red-ball.gif
    Editeur/icons/ast-red-los.gif
    Editeur/icons/ast-red-percent.gif
    Editeur/icons/ast-red-square.gif
    Editeur/icons/ast-red-text.gif
    Editeur/icons/ast-white-percent.gif
    Editeur/icons/ast-white-square.gif
    Editeur/icons/ast-white-text.gif
    Editeur/icons/ast-yel-ball.gif
    Editeur/icons/ast-yel-los.gif
    Editeur/icons/ast-yel-percent.gif
    Editeur/icons/ast-yel-square.gif
    Editeur/icons/ast-yellow-text.gif
    Editeur/icons/code_aster.gif
    Editeur/icons/code_descartes.gif
    Editeur/icons/code_saturne.gif
    Editeur/icons/logo_edf.gif
    Editeur/icons/minusnode.gif
    Editeur/icons/plusnode.gif
    Exemples/eficas/fort.11
    Exemples/ex18/totalmod.comm
    Exemples/ex19/ahlv100a.comm
    Exemples/ex19/titi.comm
    Exemples/ex20/ahlv100a.comm
    Exemples/ex21/ahlv100a.comm
    Exemples/ex22/README
    Exemples/ex22/titi.comm
    Exemples/ex22/totalmod.comm
    Exemples/ex22/toto.comm
    Exemples/ex22/tutu.comm
    Exemples/ex22/tyty.comm
    Exemples/ex23/ahlv100a.comm
    Exemples/ex23/titi.comm
    Exemples/ex23/toto.comm
    Exemples/ex24/titi.comm
    Exemples/ex3/toto.ini
    Exemples/ex4/toto.ini
    Exemples/ex4/toto.pyth
    Exemples/ex5/titi.ini
    Exemples/ex5/titi.pyth
    Exemples/ex5/toto.ini
    Exemples/ex5/toto.pyth
    Exemples/profile/resul
    README
    Saturne/editeur.ini
    convert/Parserv5/Makefile
    convert/Parserv5/README

Aster/Cata/Macro/defi_part_feti_ops.py [new file with mode: 0644]
Aster/Cata/Macro/impr_table_ops.py [new file with mode: 0644]
Aster/Cata/Macro/macr_ecla_pg_ops.py [new file with mode: 0644]

diff --git a/Aster/Cata/Macro/defi_part_feti_ops.py b/Aster/Cata/Macro/defi_part_feti_ops.py
new file mode 100644 (file)
index 0000000..bf46f88
--- /dev/null
@@ -0,0 +1,182 @@
+#@ MODIF defi_part_feti_ops Macro  DATE 23/11/2004   AUTEUR ASSIRE A.ASSIRE 
+# -*- coding: iso-8859-1 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+# RESPONSABLE ASSIRE A.ASSIRE
+
+
+# ===========================================================================
+#           CORPS DE LA MACRO "DEFI_PART_FETI"
+#           -------------------------------------
+# USAGE :
+#  MAILLAGE        maillage a partitionner
+#  MODELE          modele (facultatif)
+#  NB_PART         nb de sous-domaines
+#  EXCIT           liste des chargements
+#  METHODE         PMETIS, KMETIS ou AUTRE
+#  LOGICIEL        si AUTRE alors on attend un chemin complet vers executable
+#  NOM_GROUP_MA    Un nom de base pour les group_ma contenant les SD
+#  INFO            1,2
+#  
+# ===========================================================================
+# script PYTHON : appel a Metis et lancement de DEFI_PART_OPS
+
+
+def defi_part_feti_ops(self,MAILLAGE,MODELE,NB_PART,EXCIT,METHODE,NOM_GROUP_MA,INFO,**args):
+
+  import aster, string, sys
+
+  from Accas import _F
+  from Noyau.N_utils import AsType
+
+  from Utilitai import partition
+
+  # DEBUT DE LA MACRO
+  ier=0
+
+  INCLUSE='NON'  # On cree des GROUP_MA pour les mailles de bords (pour developpeur)
+
+  # Nom des GROUP_MA générés
+  NOM_GROUP_MA = string.strip(NOM_GROUP_MA)
+  NOM_GROUP_MA_BORD = '_' + NOM_GROUP_MA
+
+  # Test sur le nombre de caractères de NOM_GROUP_MA
+  if ( len(NOM_GROUP_MA)+len(str(NB_PART)) > 7 ):
+    print '\n\n        ERREUR : Afin de pouvoir générer les GROUP_MA, réduisez le nombre \n                 de caractères de NOM_GROUP_MA à un maximum de :', 7-len(str(NB_PART))
+    print '\n\n'
+    sys.exit(1)
+
+  # Verification que des GROUP_MA ne portent pas deja les memes noms
+  _lst = []
+  for i in MAILLAGE.LIST_GROUP_MA():
+    _lst.append( string.strip(i[0]) )
+  for i in range(NB_PART):
+    if ( NOM_GROUP_MA+str(i) in _lst ):
+      print '\n\n        ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA+str(i)
+      print '\n\n'
+      sys.exit(1)
+    if ( NOM_GROUP_MA_BORD+str(i) in _lst ):
+      print '\n\n        ERREUR : Il existe déjà un GROUP_MA nommé : ', NOM_GROUP_MA_BORD+str(i)
+      print '\n\n'
+      sys.exit(1)
+
+  # Executable du partitionneur
+  if METHODE=="AUTRE":
+    exe_metis = arg['LOGICIEL']
+  else:
+    exe_metis = aster.repout() + string.lower(METHODE)
+
+  # On importe les definitions des commandes a utiliser dans la macro
+  DEFI_PART_OPS   = self.get_cmd('DEFI_PART_OPS')
+  INFO_EXEC_ASTER = self.get_cmd('INFO_EXEC_ASTER')
+  DEFI_FICHIER    = self.get_cmd('DEFI_FICHIER')
+  DETRUIRE        = self.get_cmd('DETRUIRE')
+
+  # La macro compte pour 1 dans la numerotation des commandes
+  self.icmd=1
+
+  # Le concept sortant dans le contexte de la macro
+  self.DeclareOut('_SDFETI',self.sd)
+
+  # Debut :
+  print """
+
+  #  ---------------------------------------------------------------------------
+  #  MACRO-COMMANDE : DEFI_PART_FETI
+  #  ----------------
+"""
+
+  # Objet Partition
+  _part = partition.PARTITION(jdc=self);
+
+  # Recuperation de deux UL libres
+  _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE')
+  ul1=_UL['UNITE_LIBRE',1]
+  DETRUIRE(CONCEPT=(_F(NOM=_UL),), INFO=1)
+  DEFI_FICHIER(UNITE=ul1)
+  _UL=INFO_EXEC_ASTER(LISTE_INFO='UNITE_LIBRE')
+  ul2=_UL['UNITE_LIBRE',1]
+  DEFI_FICHIER(ACTION='LIBERER',UNITE=ul1)
+
+  fichier_in  = 'fort.' + str(ul1)
+  fichier_out = 'fort.' + str(ul2)
+
+  # Options de la classe Partition
+  _part.OPTIONS['exe_metis']   = exe_metis
+  _part.OPTIONS['fichier_in']  = fichier_in
+  _part.OPTIONS['fichier_out'] = fichier_out
+
+
+  # Partitionnement
+  if MODELE:
+    _part.Partitionne_Aster(
+                       MAILLAGE = MAILLAGE,
+                       MODELE   = MODELE,
+                       NB_PART  = NB_PART,
+                       INFO     = INFO,
+                       );
+
+  elif MAILLAGE:
+    _part.Partitionne_Aster(
+                       MAILLAGE = MAILLAGE,
+                       NB_PART  = NB_PART,
+                       INFO     = INFO,
+                       );
+
+
+  # Creation des group_ma dans le maillage Aster
+  _part.Creation_Group_ma_Aster_par_SD(NOM=NOM_GROUP_MA, NOM2=NOM_GROUP_MA_BORD, INCLUSE=INCLUSE)
+
+
+  # Creation de la SDFETI
+  if MODELE:
+    _tmp  = []
+    for i in range(NB_PART):
+      txt = { 'GROUP_MA': NOM_GROUP_MA + str(i) }
+      if ( NOM_GROUP_MA_BORD+str(i) in _part.ASTER['GROUP_MA_BORD'] ):
+        txt['GROUP_MA_BORD'] = NOM_GROUP_MA_BORD + str(i)
+      _tmp.append( txt )
+  
+    motscle2= {'DEFI': _tmp }
+  
+    # Regeneration des mots-cles EXCIT passés en argument de la macro
+    if EXCIT:
+      dExcit=[]
+      for j in EXCIT :
+        dExcit.append(j.cree_dict_valeurs(j.mc_liste))
+        for i in dExcit[-1].keys():
+          if dExcit[-1][i]==None : del dExcit[-1][i]
+      motscle2['EXCIT']=dExcit
+  
+    _SDFETI=DEFI_PART_OPS(NOM='SDD',
+                          MODELE=MODELE,
+                          INFO=1,
+                          **motscle2
+                          );
+  else:
+    _SDFETI=None
+
+
+  # Fin :
+  print """
+
+  %  FIN MACRO-COMMANDE: DEFI_PART_FETI
+
+"""
+
+  return ier
diff --git a/Aster/Cata/Macro/impr_table_ops.py b/Aster/Cata/Macro/impr_table_ops.py
new file mode 100644 (file)
index 0000000..ca1a492
--- /dev/null
@@ -0,0 +1,232 @@
+#@ MODIF impr_table_ops Macro  DATE 30/11/2004   AUTEUR MCOURTOI M.COURTOIS 
+# -*- coding: iso-8859-1 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+# RESPONSABLE MCOURTOI M.COURTOIS
+
+import os.path
+import re
+
+from types import ListType, TupleType, StringTypes
+EnumTypes=(ListType, TupleType)
+
+
+# ------------------------------------------------------------------------------
+def impr_table_ops(self, FORMAT, TABLE, INFO, **args):
+   """
+   Macro IMPR_TABLE permettant d'imprimer une table dans un fichier.
+   Erreurs<S> dans IMPR_TABLE pour ne pas perdre la base.
+   """
+   macro='IMPR_TABLE'
+   import aster
+   from Accas import _F
+   from Cata.cata import table_jeveux
+   from Utilitai.Utmess import UTMESS
+   ier=0
+   # La macro compte pour 1 dans la numerotation des commandes
+   self.set_icmd(1)
+
+   # On importe les definitions des commandes a utiliser dans la macro
+   # Le nom de la variable doit etre obligatoirement le nom de la commande
+   DETRUIRE         = self.get_cmd('DETRUIRE')
+   DEFI_FICHIER     = self.get_cmd('DEFI_FICHIER')
+   RECU_FONCTION    = self.get_cmd('RECU_FONCTION')
+
+   #----------------------------------------------
+   # 0. Traitement des arguments, initialisations
+   # unité logique des fichiers réservés
+   ul_reserve=(8,)
+
+   # 0.1. Fichier
+   nomfich=None
+   if args['UNITE'] and args['UNITE']<>6:
+      nomfich='fort.'+str(args['UNITE'])
+   if nomfich and os.path.exists(nomfich):
+      if FORMAT=='XMGRACE':
+         UTMESS('A',macro,'Le fichier '+nomfich+' existe déjà, on écrit ' \
+                'à la suite.')
+
+   # 0.2. Création des dictionnaires des FILTRES
+   Filtre=[]
+   if args['FILTRE']:
+      for Fi in args['FILTRE']:
+         dF = Fi.cree_dict_valeurs(Fi.mc_liste)
+         for mc in dF.keys():
+            if dF[mc]==None: del dF[mc]
+         Filtre.append(dF)
+   # format pour l'impression des filtres
+   form_filtre='\nFILTRE -> NOM_PARA: %-16s CRIT_COMP: %-4s VALE: %s'
+
+   # 0.3. Création de la liste des tables (une seule sans SENSIBILITE)
+   form_sens='\n... SENSIBILITE AU PARAMETRE %s'
+   ltab=[]
+   if args['SENSIBILITE']:
+      nmemo='&NOSENSI.MEMO.CORR'.ljust(24)
+      vect=aster.getvectjev(nmemo)
+      if vect:
+         lps=args['SENSIBILITE']
+         if not type(lps) in EnumTypes:
+            lps=[lps,]
+         for ps in [ps.get_name() for ps in lps]:
+            trouv=False
+            for ch in vect[0:len(vect):2]:
+               if ch[0:8].strip()==TABLE.get_name() and ch[8:16].strip()==ps:
+                  trouv=True
+                  ncomp=ch[16:24].strip()
+                  sdtab=table_jeveux(ncomp)
+                  tabs=sdtab.EXTR_TABLE()
+                  tabs.titr+=form_sens % ps
+                  ltab.append([tabs, sdtab])
+            if not trouv:
+               UTMESS('A',macro,'Dérivée de %s par rapport à %s non disponible'\
+                     % (TABLE.get_name(), ps))
+      else:
+         UTMESS('A',macro,'Pas de calcul de sensibilité accessible.')
+   else:
+      ltab.append([TABLE.EXTR_TABLE(), TABLE])
+
+   if len(ltab)<1:
+      return ier
+
+   # 0.4.1. liste des paramètres à conserver
+   nom_para=ltab[0][0].para
+   if args['NOM_PARA']:
+      nom_para=args['NOM_PARA']
+
+   # 0.4.2. Traiter le cas des UL réservées
+   if args['UNITE'] and args['UNITE'] in ul_reserve:
+      DEFI_FICHIER( ACTION='LIBERER', UNITE=args['UNITE'], )
+
+   #----------------------------------------------
+   # Boucle sur les tables
+   for tab, sdtab in ltab:
+
+      # ----- 1. Infos de base
+      if INFO==2:
+         print 'IMPRESSION DE LA TABLE : %s' % sdtab.get_name()
+
+      if args['TITRE']:
+         tab.titr=args['TITRE'] + '\n' + tab.titr
+
+      # ----- 2. Filtres
+      for Fi in Filtre:
+         col = getattr(tab, Fi['NOM_PARA'])
+         # peu importe le type
+         opts=[Fi[k] for k in ('VALE','VALE_I','VALE_C','VALE_K') if Fi.has_key(k)]
+         kargs={}
+         for k in ('CRITERE','PRECISION'):
+            if Fi.has_key(k):
+               kargs[k]=Fi[k]
+         tab = tab & ( getattr(col, Fi['CRIT_COMP'])(*opts,**kargs) )
+         # trace l'operation dans le titre
+         #if FORMAT in ('TABLEAU','ASTER'):
+         tab.titr+=form_filtre % (Fi['NOM_PARA'], Fi['CRIT_COMP'], \
+               ' '.join([str(v) for v in opts]))
+
+      # ----- 3. Tris
+      if args['TRI']:
+         # une seule occurence de TRI
+         T0=args['TRI'][0]
+         dT=T0.cree_dict_valeurs(T0.mc_liste)
+         tab.sort(CLES=dT['NOM_PARA'], ORDRE=dT['ORDRE'])
+
+      # ----- 4. Impression
+      timp=tab[nom_para]
+      # passage des mots-clés de mise en forme à la méthode Impr
+      kargs=args.copy()
+      kargs.update({
+         'FORMAT'    : FORMAT,
+         'FICHIER'   : nomfich,
+         'dform'     : {},
+      })
+      # pour l'impression des fonctions
+      kfonc={
+         'FORMAT'    : FORMAT,
+         'FICHIER'   : nomfich,
+      }
+
+      # 4.1. au format AGRAF
+      if FORMAT=='AGRAF':
+         kargs['dform']={ 'formR' : '%12.5E' }
+         kfonc['FORMAT']='TABLEAU'
+      
+      # 4.2. au format XMGRACE et dérivés
+      elif FORMAT=='XMGRACE':
+         kargs['dform']={ 'formR' : '%.8g' }
+         kargs['PILOTE']=args['PILOTE']
+         kfonc['PILOTE']=args['PILOTE']
+
+      # 4.3. format spécifié dans les arguments
+      if args['FORMAT_R']:
+         kargs['dform'].update({ 'formR' : fmtF2PY(args['FORMAT_R']) })
+
+      # 4.4. regroupement par paramètre : PAGINATION
+      if args['PAGINATION']:
+         kargs['PAGINATION']=args['PAGINATION']
+
+      timp.Impr(**kargs)
+
+      # ----- 5. IMPR_FONCTION='OUI'
+      if args['IMPR_FONCTION'] and args['IMPR_FONCTION']=='OUI':
+         # cherche parmi les cellules celles qui contiennent un nom de fonction
+         dfon={}
+         for row in timp:
+            for par,cell in row.items():
+               if type(cell) in StringTypes:
+                if aster.getvectjev(cell.strip().ljust(19)+'.PROL')<>None:
+                  dfon[cell.strip().ljust(19)]=par
+         # impression des fonctions trouvées
+         for f,par in dfon.items():
+            __fonc=RECU_FONCTION(
+               TABLE=sdtab,
+               FILTRE=_F(
+                  NOM_PARA=par,
+                  VALE_K=f,
+               ),
+               NOM_PARA_TABL=par,
+            )
+            __fonc.Trace(**kfonc)
+            DETRUIRE(CONCEPT=_F(NOM=('__fonc',),), ALARME='NON', INFO=1,)
+
+   # 99. Traiter le cas des UL réservées
+   if args['UNITE'] and args['UNITE'] in ul_reserve:
+      DEFI_FICHIER( ACTION='ASSOCIER', UNITE=args['UNITE'],
+            TYPE='ASCII', ACCES='APPEND' )
+
+   return ier
+
+# ------------------------------------------------------------------------------
+def fmtF2PY(fformat):
+   """Convertit un format Fortran en format Python (printf style).
+   Gère uniquement les fortrans réels, par exemple : E12.5, 1PE13.6, D12.5...
+   """
+   fmt=''
+   matP=re.search('([0-9]+)P',fformat)
+   if matP:
+      fmt+=' '*int(matP.group(1))
+   matR=re.search('([eEdDfFgG]{1})([\.0-9]+)',fformat)
+   if matR:
+      fmt+='%'+matR.group(2)+re.sub('[dD]+','E',matR.group(1))
+   try:
+      s=fmt % -0.123
+   except (ValueError, TypeError), msg:
+      fmt='%12.5E'
+      print 'Error :',msg
+      print 'Format par défaut utilisé :',fmt
+   return fmt
diff --git a/Aster/Cata/Macro/macr_ecla_pg_ops.py b/Aster/Cata/Macro/macr_ecla_pg_ops.py
new file mode 100644 (file)
index 0000000..8bfada7
--- /dev/null
@@ -0,0 +1,71 @@
+#@ MODIF macr_ecla_pg_ops Macro  DATE 09/11/2004   AUTEUR VABHHTS J.PELLET 
+# -*- coding: iso-8859-1 -*-
+#            CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2004  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
+# (AT YOUR OPTION) ANY LATER VERSION.                                                  
+#                                                                       
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
+#                                                                       
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
+# ======================================================================
+
+########################################################################
+def macr_ecla_pg_ops(self,RESULTAT,MAILLAGE,RESU_INIT,MODELE_INIT,
+                     TOUT, GROUP_MA, MAILLE,
+                     SHRINK, TAILLE_MIN,
+                     NOM_CHAM, TOUT_ORDRE, NUME_ORDRE, LIST_ORDRE, INST, LIST_INST, PRECISION, CRITERE,  
+                     **args):
+    """
+       Ecriture de la macro macr_ecla_pg
+    """
+    import os, string
+    from Accas import _F
+    from Noyau.N_utils import AsType
+    ier=0
+
+    # On importe les definitions des commandes a utiliser dans la macro
+    CREA_MAILLAGE  =self.get_cmd('CREA_MAILLAGE')
+    CREA_RESU      =self.get_cmd('CREA_RESU')
+
+
+    # La macro compte pour 1 dans la numerotation des commandes
+    self.set_icmd(1)
+    
+
+    # Appel à CREA_MAILLAGE :
+    motscles={}
+    if   TOUT      : motscles['TOUT']       =TOUT
+    if   GROUP_MA  : motscles['GROUP_MA']   =GROUP_MA
+    if   MAILLE    : motscles['MAILLE']     =MAILLE
+    
+    self.DeclareOut('ma2',MAILLAGE)
+    ma2=CREA_MAILLAGE(ECLA_PG=_F( MODELE = MODELE_INIT,  NOM_CHAM=NOM_CHAM,
+                                  SHRINK = SHRINK, TAILLE_MIN=TAILLE_MIN, **motscles ));
+                                   
+                                   
+
+    # Appel à CREA_RESU :
+    typ2=AsType(RESU_INIT).__name__ 
+    if   TOUT_ORDRE    : motscles['TOUT_ORDRE']     =TOUT_ORDRE
+    if   NUME_ORDRE    : motscles['NUME_ORDRE']     =NUME_ORDRE
+    if   LIST_ORDRE    : motscles['LIST_ORDRE']     =LIST_ORDRE
+    if   LIST_INST     : motscles['LIST_INST']      =LIST_INST
+    if   INST          : motscles['INST']           =INST
+    if   TOUT_ORDRE    : motscles['TOUT_ORDRE']     =TOUT_ORDRE
+
+    self.DeclareOut('resu2',RESULTAT)
+    resu2=CREA_RESU( OPERATION='ECLA_PG', TYPE_RESU=string.upper(typ2),
+                    ECLA_PG=_F( MODELE_INIT= MODELE_INIT, RESU_INIT=RESU_INIT, NOM_CHAM=NOM_CHAM,
+                                MAILLAGE= ma2, **motscles ));
+    return ier                                                           
+############################################################################################
+