From: cvs2git Date: Tue, 25 Jan 2005 18:25:27 +0000 (+0000) Subject: This commit was manufactured by cvs2git to create branch 'Liv-V1_7'. X-Git-Tag: V1_7p1~5 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=ca66ccbcc057fd78e6b766fe482f73f44133121b;p=tools%2Feficas.git This commit was manufactured by cvs2git to create branch 'Liv-V1_7'. 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 --- diff --git a/Aster/Cata/Macro/defi_part_feti_ops.py b/Aster/Cata/Macro/defi_part_feti_ops.py new file mode 100644 index 00000000..bf46f881 --- /dev/null +++ b/Aster/Cata/Macro/defi_part_feti_ops.py @@ -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 index 00000000..ca1a492f --- /dev/null +++ b/Aster/Cata/Macro/impr_table_ops.py @@ -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 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 index 00000000..8bfada76 --- /dev/null +++ b/Aster/Cata/Macro/macr_ecla_pg_ops.py @@ -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 +############################################################################################ +