Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / Macro / macro_miss_3d_ops.py
1 #@ MODIF macro_miss_3d_ops Macro  DATE 13/05/2008   AUTEUR DEVESA G.DEVESA 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY  
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY  
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR     
9 # (AT YOUR OPTION) ANY LATER VERSION.                                                  
10 #                                                                       
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT   
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF            
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU      
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.                              
15 #                                                                       
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE     
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,         
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.        
19 # ======================================================================
20
21
22
23 def macro_miss_3d_ops(self,UNITE_IMPR_ASTER,UNITE_OPTI_MISS,
24                            UNITE_MODELE_SOL,UNITE_RESU_IMPE,
25                            PROJET,REPERTOIRE,OPTION,VERSION,
26                            UNITE_RESU_FORC,PARAMETRE,**args):
27   """
28      Ecriture de la macro MACRO_MISS_3D
29   """
30   import types
31   from Accas import _F
32   from Utilitai.Utmess import  UTMESS
33   from types import TupleType, ListType
34
35   ier=0
36   # On importe les definitions des commandes a utiliser dans la macro
37   # Le nom de la variable doit etre obligatoirement le nom de la commande
38   DEFI_FICHIER  =self.get_cmd('DEFI_FICHIER')
39   EXEC_LOGICIEL =self.get_cmd('EXEC_LOGICIEL')
40   # La macro compte pour 1 dans la numerotation des commandes
41   self.set_icmd(1)
42
43   DEFI_FICHIER(ACTION='LIBERER',UNITE=UNITE_IMPR_ASTER)
44
45   import aster 
46   loc_fic=aster.repout()
47   tv = aster.__version__.split('.')
48   if len(tv) < 3:
49       tv.extend(['x']*(3-len(tv)))
50   elif len(tv) > 3:
51       tv = tv[:3]
52   vers = '%2s.%2s.%2s' % tuple(tv)
53
54   # if vers > ' 8. 3.11':
55   #    miss3d='/aster/logiciels/MISS3D/NEW/miss3d.csh'
56   # else:
57   #    miss3d=loc_fic+'miss3d'
58      
59   miss3d=loc_fic+'miss3d'
60  
61   # miss3d='/aster/logiciels/MISS3D/miss3d.csh-beta-modif'
62   
63   # if VERSION=='V1_2':
64   #    if PARAMETRE != None and PARAMETRE['TYPE']=='BINAIRE':
65   #       raise AsException("MACRO_MISS_3D/PARAMETRE : type incompatible avec version")
66         
67   if OPTION['TOUT']!=None:
68       MODUL2='COMPLET'
69   elif OPTION['MODULE']=='MISS_IMPE':
70       MODUL2='CALC_IMPE'
71   elif OPTION['MODULE']=='MISS_EVOL':
72       MODUL2='MISS_PTAS'
73   elif OPTION['MODULE']=='PRE_MISS':
74       MODUL2='GTASTER'
75
76   ETUDE = PROJET
77   BASE  = REPERTOIRE
78   paste = 'fort.'+str(UNITE_IMPR_ASTER)
79   popti = 'fort.'+str(UNITE_OPTI_MISS)
80   pdsol = 'fort.'+str(UNITE_MODELE_SOL)
81   primp = 'fort.'+str(UNITE_RESU_IMPE)
82   prfor = 'fort.'+str(UNITE_RESU_FORC)
83   
84   l_para = ['FREQ_MIN','FREQ_MAX','FREQ_PAS','Z0','RFIC','SURF',
85             'FICH_RESU_IMPE','FICH_RESU_FORC','TYPE','DREF','ALGO',
86             'OFFSET_MAX','OFFSET_NB','SPEC_MAX','SPEC_NB','ISSF',
87             'FICH_POST_TRAI','CONTR_NB','CONTR_LISTE','LFREQ_NB',
88             'LFREQ_LISTE','DIRE_ONDE']
89   if PARAMETRE != None and PARAMETRE['LFREQ_NB'] != None:
90     if len(PARAMETRE['LFREQ_LISTE']) != PARAMETRE['LFREQ_NB']:
91       UTMESS('F','MISS0_1')
92   if PARAMETRE != None and PARAMETRE['CONTR_NB'] != None:
93     if len(PARAMETRE['CONTR_LISTE']) != 3*PARAMETRE['CONTR_NB']:
94       UTMESS('F','MISS0_2')
95   
96   pndio = '0'
97   dpara = {}
98   for cle in l_para:
99     if cle in ('SURF', 'ISSF', ):
100       dpara[cle] = 'NON'
101     else:
102       dpara[cle] = '0'
103     if PARAMETRE != None and PARAMETRE[cle] != None:
104       if type(PARAMETRE[cle]) in (TupleType, ListType):
105         dpara[cle] = repr(' '.join([str(s) for s in PARAMETRE[cle]]))
106       else:
107         dpara[cle] = str(PARAMETRE[cle])
108       if cle in ('DIRE_ONDE', ):
109         pndio = '1'
110         dpara['SURF'] = 'NON'
111         
112   EXEC_LOGICIEL(
113                 LOGICIEL=miss3d,
114                 ARGUMENT=(MODUL2,
115                           ETUDE,
116                           BASE,
117                           paste,
118                           popti,
119                           pdsol,
120                           primp,
121                           VERSION,
122                           dpara['FREQ_MIN'], 
123                           dpara['FREQ_MAX'],
124                           dpara['FREQ_PAS'],
125                           dpara['Z0'], 
126                           dpara['SURF'], 
127                           dpara['RFIC'],
128                           dpara['FICH_RESU_IMPE'],
129                           dpara['FICH_RESU_FORC'],
130                           dpara['DREF'], 
131                           dpara['ALGO'],
132                           dpara['OFFSET_MAX'],
133                           dpara['OFFSET_NB'],
134                           dpara['SPEC_MAX'],
135                           dpara['SPEC_NB'],
136                           dpara['ISSF'],
137                           dpara['FICH_POST_TRAI'],
138                           dpara['CONTR_NB'],
139                           dpara['CONTR_LISTE'],
140                           dpara['LFREQ_NB'],
141                           dpara['LFREQ_LISTE'],
142                           dpara['TYPE'], 
143                           prfor,
144                           pndio,
145                           dpara['DIRE_ONDE'],
146                          ),
147                 )
148
149   return ier