# -*- coding: utf-8 -*-
#& MODIF COMMANDE  DATE 10/07/2001   AUTEUR ACBHHCD G.DEVESA 
#		CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2001  EDF R&D			WWW.CODE-ASTER.ORG
#		SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
#		REDISTRIBUTION OF THIS FILE.
# ======================================================================

import Accas
from Accas import *
from Accas import _F

import ops

try:
  import aster
except:
  pass

#
JdC = JDC_CATA(code='ASTER',
               execmodul=None,
               regles = (AU_MOINS_UN('DEBUT','POURSUITE'),
                         AU_MOINS_UN('FIN'),
                         A_CLASSER(('DEBUT','POURSUITE'),'FIN')),
              )

# Type le plus general
class entier(ASSD):pass
class reel(ASSD):pass
class complexe(ASSD):pass
class liste(ASSD):pass
class chaine(ASSD):pass

# Type generaux
class no(GEOM):pass
class grno(GEOM):pass
class ma(GEOM):pass
class grma(GEOM):pass

class table(ASSD):
  def __getitem__(self,key):
    return aster.getpara(self.get_name(),"TABLE",key[0],key[1])

class resultat(ASSD):
  def __getitem__(self,key):
    return aster.getpara(self.get_name(),"RESULTAT",key[0],key[1])

# Autres
class affe_carte(ASSD):pass
class affe_cham_no(ASSD):pass
class affe_char_cine(ASSD):pass
class affe_char_cine_f(ASSD):pass
class asse_matrice(ASSD):pass
class asse_vecteur(ASSD):pass
class base_modale(ASSD):pass
class cabl_precont(ASSD):pass
class calc_cham_elem(ASSD):pass
class calc_char_cine(ASSD):pass
class calc_char_seisme(ASSD):pass

class calc_elem(resultat):pass

class calc_matr_elem(ASSD):pass

class calc_no(resultat):pass

class calc_vect_elem(ASSD):pass
class cara_elem(ASSD):pass
class cara_pout(ASSD):pass

class carte(ASSD):pass
class carte_depl_r(carte):pass
class carte_epsi_r(carte):pass
class carte_flux_r(carte):pass
class carte_geom_r(carte):pass
class carte_inst_r(carte):pass
class carte_meta_r(carte):pass
class carte_neut_f(carte):pass
class carte_neut_r(carte):pass
class carte_sief_r(carte):pass
class carte_temp_f(carte):pass
class carte_temp_r(carte):pass
class carte_var2_r(carte):pass
# ajout JMP 2908
class cham_gd(ASSD):pass
#class cham_elem(ASSD):pass
class cham_elem(cham_gd):pass
class cham_elem_crit_r(cham_elem):pass
class cham_elem_dbel_r(cham_elem):pass
class cham_elem_dommag(cham_elem):pass
class cham_elem_ener_r(cham_elem):pass
class cham_elem_epsi_c(cham_elem):pass
class cham_elem_epsi_r(cham_elem):pass
class cham_elem_erreur(cham_elem):pass
class cham_elem_flux_r(cham_elem):pass
class cham_elem_geom_r(cham_elem):pass
class cham_elem_hydr_r(cham_elem):pass
class cham_elem_meta_r(cham_elem):pass
class cham_elem_neut_r(cham_elem):pass
class cham_elem_neut_f(cham_elem):pass
class cham_elem_pres_r(cham_elem):pass
class cham_elem_sief_c(cham_elem):pass
class cham_elem_depl_r(cham_elem):pass
class cham_elem_temp_r(cham_elem):pass
class cham_elem_sief_r(cham_elem):pass
class cham_elem_sour_r(cham_elem):pass
class cham_elem_vari_r(cham_elem):pass

#class cham_gd(ASSD):pass
class cham_mater(ASSD):pass

#class cham_no(ASSD):pass
class cham_no(cham_gd):pass
class cham_no_depl_c(cham_no):pass
class cham_no_depl_f(cham_no):pass
class cham_no_depl_r(cham_no):pass
class cham_no_epsi_r(cham_no):pass
class cham_no_flux_r(cham_no):pass
class cham_no_geom_r(cham_no):pass
class cham_no_inst_r(cham_no):pass
class cham_no_meta_r(cham_no):pass
class cham_no_pres_c(cham_no):pass
class cham_no_pres_r(cham_no):pass
class cham_no_sief_r(cham_no):pass
class cham_no_neut_r(cham_no):pass
class cham_no_neut_f(cham_no):pass
class cham_no_temp_c(cham_no):pass
class cham_no_temp_f(cham_no):pass
class cham_no_temp_r(cham_no):pass
class cham_no_vanl_r(cham_no):pass
class cham_no_var2_r(cham_no):pass

class char_acou(ASSD):pass
class char_cine_acou(ASSD):pass
class char_cine_meca(ASSD):pass
class char_cine_ther(ASSD):pass
class char_meca(ASSD):pass
class char_ther(ASSD):pass
class comb_cham_elem(ASSD):pass
class comb_cham_no(ASSD):pass
class comb_fourier(resultat):pass
class comb_matr_asse(ASSD):pass
class courbe(ASSD):pass
class crea_resu(ASSD):pass
class acou_harmo(resultat):pass
class dyna_harmo(resultat):pass
class dyna_line_harm(resultat):pass
class dyna_trans(resultat):pass

class evol(resultat):pass

class evol_char(evol):pass
class evol_elas(evol):pass
class evol_noli(evol):pass
class evol_ther(evol):pass

class extr_mode(ASSD):pass
class extr_resu(ASSD):pass
class fact_grad(ASSD):pass
class fact_ldlt(ASSD):pass
class fonction_c(fonction):pass
class fond_fiss(ASSD):pass
class fourier_elas(resultat):pass
class harm_gene(resultat):pass
class interf_dyna_clas(ASSD):pass
class interspfact(ASSD):pass
class lire_miss_3d(ASSD):pass
class lire_resu(ASSD):pass
class listis(ASSD):pass
class listr8(ASSD):pass
class macr_elem_dyna(ASSD):pass
class macr_elem_stat(ASSD):pass
class macro_elas_mult(ASSD):pass
class maillage(ASSD):pass
class mater(ASSD):pass

class matr_asse(ASSD):pass
class matr_asse_depl_c(matr_asse):pass
class matr_asse_depl_r(matr_asse):pass
class matr_asse_gene_c(matr_asse):pass
class matr_asse_gene_r(matr_asse):pass
class matr_asse_pres_c(matr_asse):pass
class matr_asse_pres_r(matr_asse):pass
class matr_asse_temp_c(matr_asse):pass
class matr_asse_temp_r(matr_asse):pass

class matr_elem(ASSD):pass
class matr_elem_depl_c(matr_elem):pass
class matr_elem_depl_r(matr_elem):pass
class matr_elem_pres_c(matr_elem):pass
class matr_elem_temp_r(matr_elem):pass

class melasflu(ASSD):pass

class mode_acou(resultat):pass
class mode_cycl(resultat):pass
class mode_flamb(resultat):pass
class mode_gene(resultat):pass
class mode_iter_inv(resultat):pass
class mode_meca(resultat):pass
class mode_meca_c(mode_meca):pass
class mode_stat(resultat):pass

class modele(ASSD):pass
class modele_gene(ASSD):pass
class mult_elas(resultat):pass
class norm_mode(ASSD):pass
class nume_ddl(ASSD):pass
class nume_ddl_gene(ASSD):pass
class obstacle(ASSD):pass
class post_elem(ASSD):pass
class prod_matr_cham(ASSD):pass
class proj_champ(ASSD):pass
class recu_champ(ASSD):pass
class reso_grad(ASSD):pass
class reso_ldlt(ASSD):pass
class rest_base_phys(ASSD):pass
class spectre(ASSD):pass
class squelette(maillage):pass
class surface(ASSD):pass

class tabl_aire_int(table):pass
class tabl_calc_g_loca(table):pass
class tabl_calc_g_th(table):pass
class tabl_cara_geom(table):pass
class tabl_char_limite(table):pass
class tabl_ener_elas(table):pass
class tabl_ener_pot(table):pass
class tabl_ener_cin(table):pass
class tabl_ener_totale(table):pass
class tabl_fonc(table):pass
class tabl_fonc_max(tabl_fonc):pass
class tabl_fonc_rms(tabl_fonc):pass
class tabl_indic_ener(table):pass
class tabl_indic_seuil(table):pass
class tabl_intsp(table):pass
class tabl_mass_iner(table):pass
class tabl_post_alea(table):pass
class tabl_post_dyna(table):pass
class tabl_post_f_alea(table):pass
class tabl_post_fatig(table):pass
class tabl_post_gouj2e(table):pass
class tabl_post_k(table):pass
class tabl_post_rccm(table):pass
class tabl_post_rele(table):pass
class tabl_post_simpli(table):pass
class tabl_post_usur(table):pass
class tabl_reca_weib(table):pass
class tabl_rice_tracey(table):pass
class tabl_texture(table):pass
class tabl_trc(table):pass
class tabl_weibull(table):pass

class theta_geom(ASSD):pass
class tran_gene(ASSD):pass
class type_flui_stru(ASSD):pass
class valeur(ASSD):pass
class vect_asse(ASSD):pass
class vect_asse_gene(vect_asse):pass
class vect_elem(ASSD):pass
class vect_elem_depl_r(vect_elem):pass
class vect_elem_pres_c(vect_elem):pass
class vect_elem_pres_r(vect_elem):pass
class vect_elem_temp_r(vect_elem):pass

#& MODIF COMMANDE  DATE 11/09/2000   AUTEUR 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 (barre, cable, poutre, tuyau, plaque, coque, discret)",
                    docu="U4.42.01-F",reentrant='n',
         regles=(AU_MOINS_UN('POUTRE','COQUE','DISCRET','CABLE','BARRE','MASSIF','ASSE_GRIL','GRILLE'),),
         MODELE          =SIMP(statut='o',typ=modele ),
         INFO            =SIMP(statut='f',typ='I', defaut= 1 ,into=(1,2) ),
         VERIF           =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ),
         POUTRE          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'), 
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'), 
           SECTION         =SIMP(statut='f',typ='TXM' ,into=("GENERALE","RECTANGLE","CERCLE") ),
           CARA_SECT       =SIMP(statut='f',typ=(cara_pout) ),
           b_generale      =BLOC( condition = "SECTION=='GENERALE'",
             CARA            =SIMP(statut='f',typ='TXM',max='**',
                                 into=("A","IY","IZ","AY","AZ","EY","EZ","JX","RY","RZ","RT",
                                                           "AI","JG","IYR2","IZR2","A1",
                                       "IY1","IZ1","AY1","AZ1","EY1","EZ1","JX1","RY1",
                                       "RZ1","RT1","AI1","JG1","IYR21","IZR21","A2",
                                       "IY2","IZ2","AY2","AZ2","EY2","EZ2","JX2","RY2",
                                       "RZ2","RT2","AI2","JG2","IYR22","IZR22","H",
                                       "HZ","HY","EP","EPY","EPZ","H1","HZ1","HY1",
                                       "EP1","EPY1","EPZ1","H2","HZ2","HY2","EP2",
                                       "EPY2","EPZ2","R","R1","R2") ),
             VALE            =SIMP(statut='o',typ='R',max='**'),
             VARI_SECT       =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
           ),
           b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
             CARA            =SIMP(statut='f',typ='TXM',max='**',
                                 into=("H","EP","HY","HZ","EPY","EPZ",
                                                           "H1","HZ1","HY1","EP1","EPY1","EPZ1",
                                                           "H2","HZ2","HY2","EP2","EPY2","EPZ2") ),
             VALE            =SIMP(statut='o',typ='R',max='**'),
             VARI_SECT       =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE","AFFINE"),defaut="HOMOTHETIQUE"),
           ),
           b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
             CARA            =SIMP(statut='f',typ='TXM',max='**',
                                 into=("R","EP","R1","R2","EP1","EP2") ),
             VALE            =SIMP(statut='o',typ='R',max='**'),
             VARI_SECT       =SIMP(statut='f',typ='TXM',into=("HOMOTHETIQUE",) ),
             MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           ),
         ),  
         BARRE           =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           SECTION         =SIMP(statut='o',typ='TXM',into=("GENERALE","RECTANGLE","CERCLE") ),
           b_generale      =BLOC( condition = "SECTION=='GENERALE'",
             CARA            =SIMP(statut='f',typ='TXM',into=("A",) ),
             VALE            =SIMP(statut='o',typ='R' ),
           ),
           b_rectangle     =BLOC( condition = "SECTION=='RECTANGLE'",
             CARA            =SIMP(statut='f',typ='TXM',into=("H","HZ","HY","EPY","EPZ","EP"),max=6 ),
             VALE            =SIMP(statut='o',typ='R',max=6 ),
           ),
           b_cercle        =BLOC( condition = "SECTION=='CERCLE'",
             CARA            =SIMP(statut='o',typ='TXM',max=2,into=("R","EP") ),
             VALE            =SIMP(statut='o',typ='R',max=2 ),
           ),  
         ), 
         COQUE           =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA' ),
                   PRESENT_PRESENT( 'EXCENTREMENT','INER_ROTA' ),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           EPAIS           =SIMP(statut='f',typ='R' ),
           ANGL_REP        =SIMP(statut='f',typ='R',min=2,max=2),
           A_CIS           =SIMP(statut='f',typ='R',defaut= 0.8333333),
           COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-5 ),
           EXCENTREMENT    =SIMP(statut='f',typ='R' ),
           INER_ROTA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MODI_METRIQUE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
         CABLE           =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),
                   UN_PARMI('A','SECTION') ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'), 
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'), 
           N_INIT          =SIMP(statut='f',typ='R',defaut= 5000. ),
           A               =SIMP(statut='f',typ='R' ),
           SECTION         =SIMP(statut='f',typ='R' ),
         ),
         DISCRET         =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO'),),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
           AMOR_HYST       =SIMP(statut='f',typ='R' ),
           CARA            =SIMP(statut='f',typ='TXM',max='**',
                                 into=("K_T_D_N","K_T_D_L","K_TR_D_N","K_TR_D_L",
                                                           "K_T_N",  "K_T_L",  "K_TR_N",  "K_TR_L",
                                                                "M_T_D_N","M_TR_D_N","M_T_N",
                                                           "M_T_L",  "M_TR_N",  "M_TR_L",
                                       "A_T_D_N","A_TR_D_N","A_T_D_L","A_TR_D_L",
                                                           "A_T_N",  "A_T_L",   "A_TR_N", "A_TR_L") ),
           VALE            =SIMP(statut='f',typ='R',max='**'),
         ),
         ORIENTATION     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA','NOEUD','GROUP_NO' ),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           CARA            =SIMP(statut='f',typ='TXM',
                                 into=("VECT_Y","ANGL_VRIL","VECT_X_Y","ANGL_NAUT","GENE_TUYAU") ),
           VALE            =SIMP(statut='f',typ='R',max='**'),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-4 ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
         ),
         DEFI_ARC        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),
                   UN_PARMI('ORIE_ARC','CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE',
                            'POIN_TANG','NOEUD_POIN_TANG','GROUP_NO_POIN_TG'),
                   PRESENT_PRESENT('ORIE_ARC','RAYON'),
                   EXCLUS('COEF_FLEX','COEF_FLEX_XY'),
                   EXCLUS('COEF_FLEX','COEF_FLEX_XZ'),
                   EXCLUS('INDI_SIGM','INDI_SIGM_XY'),
                   EXCLUS('INDI_SIGM','INDI_SIGM_XZ'),
                   PRESENT_PRESENT('COEF_FLEX_XY','COEF_FLEX_XZ'),
                   PRESENT_PRESENT('INDI_SIGM_XY','INDI_SIGM_XZ'),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           ORIE_ARC        =SIMP(statut='f',typ='R'),
           CENTRE          =SIMP(statut='f',typ='R',max='**'),
           NOEUD_CENTRE    =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1),
           POIN_TANG       =SIMP(statut='f',typ='R',max='**'),
           NOEUD_POIN_TANG =SIMP(statut='f',typ=no,max=1), 
           GROUP_NO_POIN_TG=SIMP(statut='f',typ=grno,max=1),
           RAYON           =SIMP(statut='f',typ='R'),
           COEF_FLEX       =SIMP(statut='f',typ='R'),
           INDI_SIGM       =SIMP(statut='f',typ='R'),
           COEF_FLEX_XY    =SIMP(statut='f',typ='R'),
           INDI_SIGM_XY    =SIMP(statut='f',typ='R'),
           COEF_FLEX_XZ    =SIMP(statut='f',typ='R'),
           INDI_SIGM_XZ    =SIMP(statut='f',typ='R'),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
         ),
         MASSIF          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),
                   EXCLUS('ANGL_REP','ANGL_AXE'),
                   EXCLUS('ANGL_REP','ORIG_AXE'),
                   PRESENT_PRESENT('ANGL_AXE','ORIG_AXE'), ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           ANGL_REP        =SIMP(statut='f',typ='R',max=3),
           ANGL_AXE        =SIMP(statut='f',typ='R',max=2),
           ORIG_AXE        =SIMP(statut='f',typ='R',max=3),
         ),
         POUTRE_FLUI     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           B_T             =SIMP(statut='o',typ='R'),
           B_N             =SIMP(statut='o',typ='R'),
           B_TN            =SIMP(statut='o',typ='R',defaut= 0.E+0 ),
           A_FLUI          =SIMP(statut='o',typ='R'),
           A_CELL          =SIMP(statut='o',typ='R'),
           COEF_ECHELLE    =SIMP(statut='o',typ='R'),
         ),
         GRILLE          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),
                   EXCLUS('ANGL_REP','ORIG_AXE'),
                   ENSEMBLE('ORIG_AXE','AXE')),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           SECTION_L       =SIMP(statut='o',typ='R'),
           ANGL_REP        =SIMP(statut='f',typ='R',max=2),
           ANGL_L          =SIMP(statut='f',typ='R'),
           POUR_CENT_L     =SIMP(statut='f',typ='R'),
           POUR_CENT_T     =SIMP(statut='f',typ='R'),
           DIST_N          =SIMP(statut='f',typ='R'),
           ORIG_AXE        =SIMP(statut='f',typ='R',max='**'),
           AXE             =SIMP(statut='f',typ='R',max='**'),
           COEF_RIGI_DRZ   =SIMP(statut='f',typ='R',defaut= 1.0E-10 ),
         ),
         RIGI_PARASOL    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('COEF_GROUP','FONC_GROUP'),
                   UN_PARMI('COOR_CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),),
           GROUP_MA        =SIMP(statut='o',typ=ma,max='**'),
           FONC_GROUP      =SIMP(statut='f',typ=(fonction) ),
           COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
           REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL","GLOBAL") ),
           CARA            =SIMP(statut='o',typ='TXM',max='**',into=("K_TR_D_N","A_TR_D_N") ),
           VALE            =SIMP(statut='o',typ='R',max='**'),
           GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
           NOEUD_CENTRE    =SIMP(statut='f',typ=no),
           COOR_CENTRE     =SIMP(statut='f',typ='R',max='**'),
         ),
         ASSE_GRIL       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           CARA            =SIMP(statut='o',typ='TXM',max='**',
                                 into=("K_TR_D_N","K_TR_D_L_T","K_TR_D_L_N",) ),
           VALE            =SIMP(statut='o',typ='R',max='**'),
           PAS_T           =SIMP(statut='o',typ='R'),
           PAS_N           =SIMP(statut='o',typ='R'),
           ANGL_REP        =SIMP(statut='o',typ='R',max='**'),
           COEF_ECHELLE    =SIMP(statut='o',typ='R'),
         ),
) ;
#& MODIF COMMANDE  DATE 24/05/2000   AUTEUR VABHHTS J.PELLET
def affe_carte_prod(GRANDEUR,**args):
  if GRANDEUR == "TEMP_R" : return carte_temp_r
  if GRANDEUR == "FLUX_R" : return carte_flux_r
  if GRANDEUR == "DEPL_R" : return carte_depl_r
  if GRANDEUR == "EPSI_R" : return carte_epsi_r
  if GRANDEUR == "SIEF_R" : return carte_sief_r
  if GRANDEUR == "META_R" : return carte_meta_r
  if GRANDEUR == "NEUT_R" : return carte_neut_r
  if GRANDEUR == "VAR2_R" : return carte_var2_r
  if GRANDEUR == "TEMP_F" : return carte_temp_f
  if GRANDEUR == "NEUT_F" : return carte_neut_f
  if GRANDEUR == "INST_R" : return carte_inst_r
  if GRANDEUR == "GEOM_R" : return carte_geom_r
  raise AsException("type de concept resultat non prevu")

AFFE_CARTE=OPER(nom="AFFE_CARTE",op=  36,sd_prod=affe_carte_prod,
                fr="Définition d un champ de grandeur constant, qui peut ensuite être utilisé comme champ initial (par exemple une précontrainte en mécanique)",
                docu="U4.44.13-C",reentrant='n',
         MAILLAGE        =SIMP(statut='o',typ=maillage ),
         GRANDEUR        =SIMP(statut='o',typ='TXM',     
                               into=("DEPL_R","EPSI_R","SIEF_R","VAR2_R",        
                                     "TEMP_R","META_R","TEMP_F","FLUX_R",
                                     "NEUT_R","NEUT_F","INST_R","GEOM_R",) ),
         AFFE            =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma),
           MAILLE          =SIMP(statut='f',typ=ma  ),
           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),  
           VALE            =SIMP(statut='f',typ='R',max='**' ),  
           VALE_I          =SIMP(statut='f',typ='I',max='**' ),  
           VALE_C          =SIMP(statut='f',typ='C',max='**' ),  
           VALE_F          =SIMP(statut='f',typ=fonction),
         ),
)  ;
#& MODIF COMMANDE  DATE 31/05/2000   AUTEUR CIBHHLV L.VIVAN

def affe_cham_no_prod(CHAM_NO_AFFE,GRANDEUR,**args):
  if GRANDEUR == "TEMP_R" : return cham_no_temp_r
  if GRANDEUR == "TEMP_F" : return cham_no_temp_f
  if GRANDEUR == "DEPL_R" : return cham_no_depl_r
  if GRANDEUR == "DEPL_F" : return cham_no_depl_f
  if GRANDEUR == "SIEF_R" : return cham_no_sief_r
  if GRANDEUR == "NEUT_R" : return cham_no_neut_r
  if GRANDEUR == "NEUT_F" : return cham_no_neut_f
  if GRANDEUR == "INST_R" : return cham_no_inst_r
  if GRANDEUR == "GEOM_R" : return cham_no_geom_r
  if GRANDEUR == "VAR2_R" : return cham_no_var2_r
  if AsType(CHAM_NO_AFFE) == cham_no_temp_r : return cham_no_temp_r
  if AsType(CHAM_NO_AFFE) == cham_no_depl_r : return cham_no_depl_r
  if AsType(CHAM_NO_AFFE) == cham_no_sief_r : return cham_no_sief_r
  raise AsException("type de concept resultat non prevu")

AFFE_CHAM_NO=OPER(nom="AFFE_CHAM_NO",op=  52,sd_prod=affe_cham_no_prod
                    ,fr="Affectation de grandeurs réelles pour créer un cham_no_*",
                     docu="U4.44.11-F",reentrant='n',
         regles=(UN_PARMI('MAILLAGE','CHAM_NO_AFFE'),
                 PRESENT_PRESENT('MAILLAGE','GRANDEUR','AFFE'),
                 EXCLUS('NUME_DDL','CHAM_NO'),),
         CHAM_NO_AFFE    =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r,
                                               cham_no_depl_f,cham_no_sief_r ) ),
         MAILLAGE        =SIMP(statut='f',typ=maillage ),
         GRANDEUR        =SIMP(statut='f',typ='TXM',into=("TEMP_R","DEPL_R","SIEF_R","VAR2_R",
	                                                  "TEMP_F","DEPL_F","INST_R","GEOM_R",
							  "NEUT_R","NEUT_F") ),
         AFFE            =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
                   UN_PARMI('VALE','VALE_F','VALE_R','FONCTION'),),           
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
#  NOM_CMP est il obligatoire           
           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
           VALE_R          =SIMP(statut='f',typ='R',max='**',defaut= 0.E+0 ),
           VALE            =SIMP(statut='f',typ='R',max='**'),
           VALE_F          =SIMP(statut='f',typ=fonction,max='**'),
           FONCTION        =SIMP(statut='f',typ=fonction,max='**'),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
         NUME_DDL        =SIMP(statut='f',typ=nume_ddl ),
         CHAM_NO         =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r,
                                               cham_no_depl_f,cham_no_sief_r ) ),
)  ;
#& MODIF COMMANDE  DATE 12/05/99   AUTEUR VABHHTS J.PELLET
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',
         regles=(AU_MOINS_UN('PRES_IMPO','VITE_FACE','IMPE_FACE','LIAISON_UNIF' ),),
         MODELE          =SIMP(statut='o',typ=modele ),
         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.,),
         PRES_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           PRES            =SIMP(statut='o',typ='C' ),
         ),
         VITE_FACE       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE' ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           VNOR            =SIMP(statut='o',typ='C' ),
         ),
         IMPE_FACE       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE' ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           IMPE            =SIMP(statut='o',typ='C' ),
         ),
         LIAISON_UNIF    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE' ),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           DDL             =SIMP(statut='o',typ='TXM',max='**'),
         ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN
def affe_char_cine_prod(MECA_IMPO,THER_IMPO,ACOU_IMPO,**args):
  if MECA_IMPO != None  : return char_cine_meca
  if THER_IMPO != None  : return char_cine_ther
  if ACOU_IMPO != None  : return char_cine_acou
  raise AsException("type de concept resultat non prevu")

AFFE_CHAR_CINE=OPER(nom="AFFE_CHAR_CINE",op= 101,sd_prod=affe_char_cine_prod
                    ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
                     docu="U4.44.03-E",reentrant='n',
         regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO','ACOU_IMPO'),
                 EXCLUS('MECA_IMPO','THER_IMPO'),
                 EXCLUS('MECA_IMPO','ACOU_IMPO'),
                 EXCLUS('THER_IMPO','ACOU_IMPO'),),
         MODELE          =SIMP(statut='o',typ=modele ),
         MECA_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
                   AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DX              =SIMP(statut='f',typ='R' ),
           DY              =SIMP(statut='f',typ='R' ),
           DZ              =SIMP(statut='f',typ='R' ),
           DRX             =SIMP(statut='f',typ='R' ),
           DRY             =SIMP(statut='f',typ='R' ),
           DRZ             =SIMP(statut='f',typ='R' ),
           GRX             =SIMP(statut='f',typ='R' ),
           PRES            =SIMP(statut='f',typ='R' ),
           TEMP            =SIMP(statut='f',typ='R' ),
           PHI             =SIMP(statut='f',typ='R' ),
         ),
         THER_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
                   AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           TEMP_SUP        =SIMP(statut='f',typ='R' ),
           TEMP            =SIMP(statut='f',typ='R' ),
           TEMP_INF        =SIMP(statut='f',typ='R' ),
         ),
         ACOU_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD' ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           PRES            =SIMP(statut='o',typ='C' ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN
def affe_char_cine_f_prod(MECA_IMPO,THER_IMPO,**args):
  if MECA_IMPO != None  : return char_cine_meca
  if THER_IMPO != None  : return char_cine_ther
  raise AsException("type de concept resultat non prevu")

AFFE_CHAR_CINE_F=OPER(nom="AFFE_CHAR_CINE_F",op= 108,sd_prod=affe_char_cine_f_prod
                    ,fr="Affectation de conditions aux limites cinématiques pour traitement sans dualisation",
                     docu="U4.44.03-E",reentrant='n',
         regles=(AU_MOINS_UN('MECA_IMPO','THER_IMPO'),
                 EXCLUS('MECA_IMPO','THER_IMPO'),),
         MODELE          =SIMP(statut='o',typ=modele ),
         MECA_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
                   AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','TEMP','PHI'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DX              =SIMP(statut='f',typ=fonction ),
           DY              =SIMP(statut='f',typ=fonction ),
           DZ              =SIMP(statut='f',typ=fonction ),
           DRX             =SIMP(statut='f',typ=fonction ),
           DRY             =SIMP(statut='f',typ=fonction ),
           DRZ             =SIMP(statut='f',typ=fonction ),
           GRX             =SIMP(statut='f',typ=fonction ),
           PRES            =SIMP(statut='f',typ=fonction ),
           TEMP            =SIMP(statut='f',typ=fonction ),
           PHI             =SIMP(statut='f',typ=fonction ),
         ),
         THER_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
                   AU_MOINS_UN('TEMP','TEMP_INF','TEMP_SUP' ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           TEMP_SUP        =SIMP(statut='f',typ=fonction ),
           TEMP            =SIMP(statut='f',typ=fonction ),
           TEMP_INF        =SIMP(statut='f',typ=fonction ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR UFBHHLL C.CHAVANT 
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-F",reentrant='n',
         regles=(AU_MOINS_UN('DDL_IMPO','FACE_IMPO','LIAISON_DDL','FORCE_NODALE',  
                             'FORCE_FACE','FORCE_ARETE','FORCE_CONTOUR','FORCE_INTERNE',       
                             'PRES_REP','FORCE_POUTRE','FORCE_COQUE','LIAISON_OBLIQUE',        
                             'FORCE_ELEC','INTE_ELEC','PESANTEUR','ROTATION','IMPE_FACE',      
                             'VITE_FACE','TEMP_CALCULEE','RELA_CINE_BP','EPSI_INIT','CONTACT', 
                             'LIAISON_UNIL_NO','LIAISON_GROUP','LIAISON_UNIF','FLUX_THM_REP',  
                             'LIAISON_SOLIDE','LIAISON_ELEM','ONDE_FLUI','PRES_CALCULEE',      
                             'EPSA_CALCULEE','LIAISON_CHAMNO','VECT_ASSE','LIAISON_COQUE',     
                             'LIAISON_MAIL','FORCE_TUYAU','SECH_CALCULEE','HYDR_CALCULEE',     
                             'EFFE_FOND'),
                 EXCLUS('LIAISON_UNIL_NO','CONTACT'),),            
         
         MODELE          =SIMP(statut='o',typ=(modele) ),
         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
         PESANTEUR       =SIMP(statut='f',typ='R',fr="Champ de pesanteur",min=04,max=04),
         ROTATION        =SIMP(statut='f',typ='R',fr="Champ de rotation",min=04,max=04),
         b_rotation      =BLOC ( condition = "ROTATION != None",
           CENTRE          =SIMP(statut='f',typ='R',defaut=(0.,0.,0.),max=03),    
         ),     
         PRES_CALCULEE   =SIMP(statut='f',fr="Champ de pression issu d un autre calcul",typ=evol_char ),
         TEMP_CALCULEE   =SIMP(statut='f',fr="Champ de température issu d un autre calcul",typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
         HYDR_CALCULEE   =SIMP(statut='f',fr="Champ d hydratation issu d un autre calcul",typ=evol_ther ),
         SECH_CALCULEE   =SIMP(statut='f',fr="Champ de séchage issu d un autre calcul",typ=(evol_ther,cham_no_temp_r,carte_temp_r,carte_temp_f ) ),
         EPSA_CALCULEE   =SIMP(statut='f',fr="Champ de déformation anélastique issu d un autre calcul",typ=evol_noli ),
         VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
         
           DDL_IMPO        =FACT(statut='f',min=01,max='**',
             regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
                     AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
                                 'TEMP','PRE1','PRE2','UI2','UI3','VI2','VI3','WI2','WI3','UO2',
                                 'UO3','VO2','VO3','WO2','WO3','UI4','UI5','VI4','VI5','WI4',
                                 'WI5','UO4','UO5','VO4','VO5','WO4','WO5','UI6','UO6','VI6',
                                 'VO6','WI6','WO6','WO','WI1','WO1'),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             DX              =SIMP(statut='f',typ='R' ),
             DY              =SIMP(statut='f',typ='R' ),
             DZ              =SIMP(statut='f',typ='R' ),
             DRX             =SIMP(statut='f',typ='R' ),
             DRY             =SIMP(statut='f',typ='R' ),
             DRZ             =SIMP(statut='f',typ='R' ),
             GRX             =SIMP(statut='f',typ='R' ),
             PRES            =SIMP(statut='f',typ='R' ),
             PHI             =SIMP(statut='f',typ='R' ),
             TEMP            =SIMP(statut='f',typ='R' ),
             PRE1            =SIMP(statut='f',typ='R' ),
             PRE2            =SIMP(statut='f',typ='R' ),
             UI2             =SIMP(statut='f',typ='R' ),
             UI3             =SIMP(statut='f',typ='R' ),
             UI4             =SIMP(statut='f',typ='R' ),
             UI5             =SIMP(statut='f',typ='R' ),
             UI6             =SIMP(statut='f',typ='R' ),
             UO2             =SIMP(statut='f',typ='R' ),
             UO3             =SIMP(statut='f',typ='R' ),
             UO4             =SIMP(statut='f',typ='R' ),
             UO5             =SIMP(statut='f',typ='R' ),
             UO6             =SIMP(statut='f',typ='R' ),
             VI2             =SIMP(statut='f',typ='R' ),
             VI3             =SIMP(statut='f',typ='R' ),
             VI4             =SIMP(statut='f',typ='R' ),
             VI5             =SIMP(statut='f',typ='R' ),
             VI6             =SIMP(statut='f',typ='R' ),
             VO2             =SIMP(statut='f',typ='R' ),
             VO3             =SIMP(statut='f',typ='R' ),
             VO4             =SIMP(statut='f',typ='R' ),
             VO5             =SIMP(statut='f',typ='R' ),
             VO6             =SIMP(statut='f',typ='R' ),
             WI2             =SIMP(statut='f',typ='R' ),
             WI3             =SIMP(statut='f',typ='R' ),
             WI4             =SIMP(statut='f',typ='R' ),
             WI5             =SIMP(statut='f',typ='R' ),
             WI6             =SIMP(statut='f',typ='R' ),
             WO2             =SIMP(statut='f',typ='R' ),
             WO3             =SIMP(statut='f',typ='R' ),
             WO4             =SIMP(statut='f',typ='R' ),
             WO5             =SIMP(statut='f',typ='R' ),
             WO6             =SIMP(statut='f',typ='R' ),
             WO              =SIMP(statut='f',typ='R' ),
             WI1             =SIMP(statut='f',typ='R' ),
             WO1             =SIMP(statut='f',typ='R' ),
           ),
           FACE_IMPO       =FACT(statut='f',min=01,max='**',
             regles=(UN_PARMI('GROUP_MA','MAILLE',),
                     AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
                                 'TEMP','PRE1','PRE2','DNOR','DTAN'),
                     EXCLUS('DNOR','DX'),
                     EXCLUS('DNOR','DY'),
                     EXCLUS('DNOR','DZ'),
                     EXCLUS('DNOR','DRX'),
                     EXCLUS('DNOR','DRY'),
                     EXCLUS('DNOR','DRZ'),
                     EXCLUS('DTAN','DX'),
                     EXCLUS('DTAN','DY'),
                     EXCLUS('DTAN','DZ'),
                     EXCLUS('DTAN','DRX'),
                     EXCLUS('DTAN','DRY'),
                     EXCLUS('DTAN','DRZ'),),
#  rajout d un mot clé REPERE :/ LOCAL /GLOBAL                     
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             DX              =SIMP(statut='f',typ='R' ),
             DY              =SIMP(statut='f',typ='R' ),
             DZ              =SIMP(statut='f',typ='R' ),
             DRX             =SIMP(statut='f',typ='R' ),
             DRY             =SIMP(statut='f',typ='R' ),
             DRZ             =SIMP(statut='f',typ='R' ),
             DNOR            =SIMP(statut='f',typ='R' ),
             DTAN            =SIMP(statut='f',typ='R' ),
             GRX             =SIMP(statut='f',typ='R' ),
             PRES            =SIMP(statut='f',typ='R' ),
             PHI             =SIMP(statut='f',typ='R' ),
             TEMP            =SIMP(statut='f',typ='R' ),
             PRE1            =SIMP(statut='f',typ='R' ),
             PRE2            =SIMP(statut='f',typ='R' ),
           ),
           LIAISON_DDL     =FACT(statut='f',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",min=01,max='**',
             regles=(UN_PARMI('GROUP_NO','NOEUD'),),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             DDL             =SIMP(statut='o',typ='TXM',max='**'),
             COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
             COEF_IMPO       =SIMP(statut='o',typ='R' ),
           ),
           LIAISON_OBLIQUE =FACT(statut='f',fr="Appliquer à des noeuds la même valeur de déplacement dans un repère oblique quelconque",min=01,max='**',
             regles=(UN_PARMI('GROUP_NO','NOEUD'),
                     UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             ANGL_NAUT       =SIMP(statut='o',typ='R',max=03),
             DX              =SIMP(statut='f',typ='R' ),
             DY              =SIMP(statut='f',typ='R' ),
             DZ              =SIMP(statut='f',typ='R' ),
             DRX             =SIMP(statut='f',typ='R' ),
             DRY             =SIMP(statut='f',typ='R' ),
             DRZ             =SIMP(statut='f',typ='R' ),
           ), 
           LIAISON_GROUP   =FACT(statut='f',fr="Définir des relations linéaires entre certains ddls de couples de noeuds",min=01,max='**',
             regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),        
                     UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
                     EXCLUS('GROUP_MA_1','GROUP_NO_2'),
                     EXCLUS('GROUP_MA_1','NOEUD_2'),      
                     EXCLUS('GROUP_NO_1','GROUP_MA_2'),
                     EXCLUS('GROUP_NO_1','MAILLE_2'),
                     EXCLUS('MAILLE_1','GROUP_NO_2'),
                     EXCLUS('MAILLE_1','NOEUD_2'),
                     EXCLUS('NOEUD_1','GROUP_MA_2'),
                     EXCLUS('NOEUD_1','MAILLE_2'),
                     EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
             
               GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
               MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
               GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
               MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
               GROUP_NO_1      =SIMP(statut='f',typ=grno,max='**'),
               NOEUD_1         =SIMP(statut='f',typ=no,max='**'),
               GROUP_NO_2      =SIMP(statut='f',typ=no,max='**'),
               NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
             
             SANS_NOEUD      =SIMP(statut='f',typ=no,max='**'),
             SANS_GROUP_NO   =SIMP(statut='f',typ=grno,max='**'),
             DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
             COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
             DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
             COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
             COEF_IMPO       =SIMP(statut='o',typ='R' ),
             SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             TRAN            =SIMP(statut='f',typ='R',max=03),
             ANGL_NAUT       =SIMP(statut='f',typ='R',max=03),
             CENTRE          =SIMP(statut='f',typ='R',max=03),
           ),
           LIAISON_SOLIDE  =FACT(statut='f',fr="Modéliser une partie indéformable d une structure",min=01,max='**',
             regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
           ), 
           LIAISON_UNIF    =FACT(statut='f',fr="Imposer une meme valeur (inconnue) à des ddls d un emsemble de noeuds",min=01,max='**',
             regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             DDL             =SIMP(statut='o',typ='TXM',max='**'),
           ), 
           LIAISON_CHAMNO  =FACT(statut='f',fr="définir une relation linéaire entre tous les ddls présents dans un concept cham_nno",min=01,max='**',
#  type de cham_no CO()
             CHAM_NO         =SIMP(statut='o',typ=cham_no), #CO()
             COEF_IMPO       =SIMP(statut='o',typ='R' ),
             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
           ), 
           LIAISON_ELEM    =FACT(statut='f',fr="Raccorder une poutre à une partie massive 3D ou une coque", min=01,max='**',
             regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
                     UN_PARMI('GROUP_NO_2','NOEUD_2'),),
             OPTION          =SIMP(statut='o',typ='TXM',into=("3D_TUYAU","3D_POU","COQ_POU","COQ_TUYAU") ),
             GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
             MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
             GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
             NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
             CARA_ELEM       =SIMP(statut='f',typ=(cara_elem) ),
             AXE_POUTRE      =SIMP(statut='f',typ='R',max=03),
             ANGL_MAX        =SIMP(statut='f',typ='R',defaut= 1. ),
           ),
           LIAISON_COQUE   =FACT(statut='f',min=01,max='**',
             GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
             MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
             GROUP_NO_1      =SIMP(statut='f',typ=grno,max='**'),
             NOEUD_1         =SIMP(statut='f',typ=no,max='**'),
             GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
             MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
             GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
             NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
             NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
           ),
           LIAISON_MAIL    =FACT(statut='f',min=01,max='**',
             regles=(PRESENT_ABSENT('GROUP_MA_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
                     PRESENT_ABSENT('MAILLE_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL',),     
                     PRESENT_ABSENT('GROUP_MA_2','GROUP_MA_MAIT','MAILLE_MAIT'),      
                     PRESENT_ABSENT('MAILLE_2','GROUP_MA_MAIT','MAILLE_MAIT'),        
                     PRESENT_ABSENT('GROUP_NO_2','GROUP_MA_MAIT','MAILLE_MAIT'),      
                     PRESENT_ABSENT('NOEUD_2','GROUP_MA_MAIT','MAILLE_MAIT'),         
                     AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_MAIT','MAILLE_MAIT'),
                     AU_MOINS_UN('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),
                     PRESENT_ABSENT('DDL_1','DDL_MAIT','DDL_ESCL'),    
                     PRESENT_ABSENT('DDL_2','DDL_MAIT','DDL_ESCL'),
                     PRESENT_PRESENT('DDL_1','DDL_2'),
                     PRESENT_PRESENT('DDL_MAIT','DDL_ESCL'),),
              GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
              MAILLE_1        =SIMP(statut='f',typ=ma,max='**'), 
              GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,max='**'),
              MAILLE_MAIT     =SIMP(statut='f',typ=ma,max='**'), 
              GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
              MAILLE_2        =SIMP(statut='f',typ=ma,max='**'), 
              GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
              NOEUD_2         =SIMP(statut='f',typ=no,max='**'), 
              GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,max='**'),
              MAILLE_ESCL     =SIMP(statut='f',typ=ma,max='**'), 
              GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,max='**'),
              NOEUD_ESCL      =SIMP(statut='f',typ=no,max='**'), 
              TRAN            =SIMP(statut='f',typ='R',max=03 ),
              ANGL_NAUT       =SIMP(statut='f',typ='R',max=03 ),
              CENTRE          =SIMP(statut='f',typ='R',max=03 ),
              DDL_1           =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
              DDL_2           =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
              DDL_MAIT        =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
              DDL_ESCL        =SIMP(statut='f',typ='TXM',max='**',into=("DNOR",) ),
         ),
         
         FORCE_NODALE    =FACT(statut='f',fr="Imposer des forces nodales en des noeuds",min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD'),
                   AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           FX              =SIMP(statut='f',typ='R' ),
           FY              =SIMP(statut='f',typ='R' ),
           FZ              =SIMP(statut='f',typ='R' ),
           MX              =SIMP(statut='f',typ='R' ),
           MY              =SIMP(statut='f',typ='R' ),
           MZ              =SIMP(statut='f',typ='R' ),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max=03),
         ),
         
           FORCE_FACE      =FACT(statut='f',fr="Appliquer des forces surfaciques sur une face d éléments volumiques",min=01,max='**',
             regles=(UN_PARMI('GROUP_MA','MAILLE'),
                     AU_MOINS_UN('FX','FY','FZ'),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             FX              =SIMP(statut='f',typ='R' ),
             FY              =SIMP(statut='f',typ='R' ),
             FZ              =SIMP(statut='f',typ='R' ),
           ), 
           FORCE_ARETE     =FACT(statut='f',fr="Appliquer des forces linéiques à une arete d élément volumique ou de coque",min=01,max='**',
             regles=(UN_PARMI('GROUP_MA','MAILLE',),
                     AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ' ),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             FX              =SIMP(statut='f',typ='R' ),
             FY              =SIMP(statut='f',typ='R' ),
             FZ              =SIMP(statut='f',typ='R' ),
             MX              =SIMP(statut='f',typ='R' ),
             MY              =SIMP(statut='f',typ='R' ),
             MZ              =SIMP(statut='f',typ='R' ),
           ), 
           FORCE_CONTOUR   =FACT(statut='f',fr="Appliquer des forces linéiques au bord d un domaine 2D ou AXIS_FOURIER",min=01,max='**',
             regles=(UN_PARMI('GROUP_MA','MAILLE'),
                     AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             FX              =SIMP(statut='f',typ='R' ),
             FY              =SIMP(statut='f',typ='R' ),
             FZ              =SIMP(statut='f',typ='R' ),
             MX              =SIMP(statut='f',typ='R' ),
             MY              =SIMP(statut='f',typ='R' ),
             MZ              =SIMP(statut='f',typ='R' ),
           ), 
           FORCE_INTERNE   =FACT(statut='f',fr="Appliquer des forces volumiques (2D ou 3D) à un domaine volumique",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('FX','FY','FZ' ),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             FX              =SIMP(statut='f',typ='R' ),
             FY              =SIMP(statut='f',typ='R' ),
             FZ              =SIMP(statut='f',typ='R' ),
           ), 
           PRES_REP        =FACT(statut='f',fr="Appliquer une pression à un domaine de milieu continu 2D ou 3D",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('PRES','CISA_2D' ),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             PRES            =SIMP(statut='f',typ='R' ),
             CISA_2D         =SIMP(statut='f',typ='R' ),
           ),
           EPSI_INIT       =FACT(statut='f',fr="Appliquer un chargement de déformation initiale à un volume 3D ou 2D",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ','EPX',
                                 'KY','KZ','EXX','EYY','EXY','KXX','KYY','KXY'),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             EPXX            =SIMP(statut='f',typ='R' ),
             EPYY            =SIMP(statut='f',typ='R' ),
             EPZZ            =SIMP(statut='f',typ='R' ),
             EPXY            =SIMP(statut='f',typ='R' ),
             EPXZ            =SIMP(statut='f',typ='R' ),
             EPYZ            =SIMP(statut='f',typ='R' ),
             EPX             =SIMP(statut='f',typ='R' ),
             KY              =SIMP(statut='f',typ='R' ),
             KZ              =SIMP(statut='f',typ='R' ),
             EXX             =SIMP(statut='f',typ='R' ),
             EYY             =SIMP(statut='f',typ='R' ),
             EXY             =SIMP(statut='f',typ='R' ),
             KXX             =SIMP(statut='f',typ='R' ),
             KYY             =SIMP(statut='f',typ='R' ),
             KXY             =SIMP(statut='f',typ='R' ),
           ),
         
         
           FORCE_COQUE     =FACT(statut='f',fr="Appliquer des forces surfaciques sur des coques",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),               
                     PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
                     PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
                     PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
                     PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
                     PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
                     PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
                     PRESENT_ABSENT('F1','FX','FY','FZ','MX','MY','MZ','PRES'),
                     PRESENT_ABSENT('F2','FX','FY','FZ','MX','MY','MZ','PRES'),
                     PRESENT_ABSENT('F3','FX','FY','FZ','MX','MY','MZ','PRES'),
                     PRESENT_ABSENT('MF1','FX','FY','FZ','MX','MY','MZ','PRES'),
                     PRESENT_ABSENT('MF2','FX','FY','FZ','MX','MY','MZ','PRES'),
                     PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
#  rajour d un mot clé REPERE :/ LOCAL /GLOBAL              
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             
               FX              =SIMP(statut='f',typ='R' ),
               FY              =SIMP(statut='f',typ='R' ),
               FZ              =SIMP(statut='f',typ='R' ),
               MX              =SIMP(statut='f',typ='R' ),
               MY              =SIMP(statut='f',typ='R' ),
               MZ              =SIMP(statut='f',typ='R' ),
             
               F1              =SIMP(statut='f',typ='R' ),
               F2              =SIMP(statut='f',typ='R' ),
               F3              =SIMP(statut='f',typ='R' ),
               MF1             =SIMP(statut='f',typ='R' ),
               MF2             =SIMP(statut='f',typ='R' ),
              
             PRES            =SIMP(statut='f',typ='R' ),
             PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL",) ),
           ),
           FORCE_POUTRE    =FACT(statut='f',fr="Appliquer des forces linéiques sur des poutres",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
                     PRESENT_ABSENT('FX','N','VY','VZ'),              
                     PRESENT_ABSENT('FY','N','VY','VZ'),
                     PRESENT_ABSENT('FZ','N','VY','VZ'),
                     PRESENT_ABSENT('N','FX','FY','FZ'),
                     PRESENT_ABSENT('VY','FX','FY','FZ'),
                     PRESENT_ABSENT('VZ','FX','FY','FZ'),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE",) ),
#  rajour d un mot clé REPERE :/ LOCAL /GLOBAL              
               FX              =SIMP(statut='f',typ='R' ),
               FY              =SIMP(statut='f',typ='R' ),
               FZ              =SIMP(statut='f',typ='R' ),
             
               N               =SIMP(statut='f',typ='R' ),
               VY              =SIMP(statut='f',typ='R' ),
               VZ              =SIMP(statut='f',typ='R' ),
              
           ),
           FORCE_TUYAU     =FACT(statut='f',fr="imposer une pression dans un élément TUYAU",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             PRES            =SIMP(statut='f',typ='R' ),
           ),
             
         
           FORCE_ELEC      =FACT(statut='f',fr="Appliquer une force de Laplace due à la présence d un conducteur rectiligne secondaire non maillé",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('FX','FY','FZ','POSITION'),
                     EXCLUS('FX','POSITION'),
                     EXCLUS('FY','POSITION'),   
                     EXCLUS('FZ','POSITION'),),
#  trop de règles : les blocs conditionnels permettent d en suprimer              
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
              
             FX              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             FY              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             FZ              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             
             POSITION        =SIMP(statut='f',typ='TXM',fr="Direction prédéfinie",into=("PARA","INFI","FINI",) ),
             b_para     =BLOC ( condition = "POSITION == 'PARA'",
               regles=(UN_PARMI('TRANS','DIST'),),
               TRANS           =SIMP(statut='f',typ='R',max=03),
               DIST            =SIMP(statut='f',typ='R' ),
               b_point2        =BLOC ( condition = "DIST != None", 
                 POINT2           =SIMP(statut='o',typ='R',max=03),
               ),
             ),
             b_fini_infi     =BLOC ( condition = "(POSITION == 'FINI') or (POSITION == 'INFI')",
               POINT1          =SIMP(statut='o',typ='R',max=03),
               POINT2          =SIMP(statut='o',typ='R',max=03),
             ), 
           ),
           INTE_ELEC       =FACT(statut='f',fr="Appliquer une force de Laplace due à la présence d un conducteur non rectiligne secondaire maillé ou non",min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('GROUP_MA_2','MAILLE_2','TRANS','SYME'),
                     EXCLUS('TRANS','SYME'),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
             MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
             TRANS           =SIMP(statut='f',typ='R',max='**'),
             SYME            =SIMP(statut='f',typ='R',max='**'),
           ),
         
         
           VITE_FACE       =FACT(statut='f',fr="Imposer des vitesses acoustiquesnormales à une face",min=01,max='**',
             regles=(UN_PARMI('GROUP_MA','MAILLE'),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             VNOR            =SIMP(statut='o',typ='R' ),
           ),
           ONDE_FLUI       =FACT(statut='f',fr="Appliquer une amplitude de pression d onde incidente",min=01,max='**',
             regles=(UN_PARMI('GROUP_MA','MAILLE'),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             PRES            =SIMP(statut='o',typ='R' ),
           ),
           IMPE_FACE       =FACT(statut='f',fr="Appliquer une impédance acoustique à une face",min=01,max='**',
             regles=(UN_PARMI('GROUP_MA','MAILLE' ),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             IMPE            =SIMP(statut='o',typ='R' ),
           ),
         
         
           FLUX_THM_REP    =FACT(statut='f',min=01,max='**',
             regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                     AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             FLUN            =SIMP(statut='f',typ='R' ),
             FLUN_HYDR1      =SIMP(statut='f',typ='R' ),
             FLUN_HYDR2      =SIMP(statut='f',typ='R' ),
           ),
         
         EFFE_FOND       =FACT(statut='f',fr="Imposer un effet de fond",min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','MAILLE'),),
           GROUP_MA_INT    =SIMP(statut='o',typ=grma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           PRES            =SIMP(statut='o',typ='R' ),
         ),
         
         LIAISON_UNIL_NO =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
                   UN_PARMI('GROUP_MA_2','MAILLE_2'),),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),# CO()
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),# CO()
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),# CO()
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),# CO()
           SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           TRAN            =SIMP(statut='f',typ='R',max=03 ),  
           ANGL_NAUT       =SIMP(statut='f',typ='R',max=03 ),  
           CENTRE          =SIMP(statut='f',typ='R',max=03 ),  
           ANGLE_MAX       =SIMP(statut='f',typ='R' ),  
           FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",   
                                 into=("SANS","TRESCA","COULOMB") ),
           METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",    
                                 into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ),
           COULOMB         =SIMP(statut='f',typ='R' ),  
           TRESCA          =SIMP(statut='f',typ='R' ),  
           E_T             =SIMP(statut='f',typ='R' ),  
           COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           CONTACT         =SIMP(statut='f',typ='TXM',into=("MAINTENU",) ),
           JEU             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
         ),
         
         CONTACT         =FACT(statut='f',fr="Imposer du contact avec ou sans frottement",min=01,max='**',
           regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),
                   ENSEMBLE('FROTTEMENT','COULOMB'),
		                 EXCLUS('DIST_2','COEF_IMPO'),
                   EXCLUS('DIST_1','COEF_IMPO'),
                   EXCLUS('COEF_MULT_2','GROUP_MA_1'),
                   EXCLUS('COEF_MULT_2','MAILLE_1'),
                   EXCLUS('COEF_IMPO','GROUP_MA_1'),
                   EXCLUS('COEF_IMPO','MAILLE_1'),),
           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP")),
           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
                                 into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME")),
           RECHERCHE       =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",into=("NOEUD_BOUCLE","NOEUD_VOISIN")),
           REAC_GEOM_INTE  =SIMP(statut='f',typ='I',defaut= 2),
           METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",    
                                 into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ),           
           FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), 
           COULOMB         =SIMP(statut='f',typ='R',max=1),
           E_T             =SIMP(statut='f',typ='R' ),  
           COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           VECT_NORM_2     =SIMP(statut='f',typ='R',max=03),
           PROJECTION      =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE",) ),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           SANS_NOEUD      =SIMP(statut='f',typ=no,max='**'),
           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,max='**'),
           DIST_1          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           DIST_2          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           COEF_IMPO       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           COEF_MULT_2     =SIMP(statut='f',typ='R',defaut= 1. ),
         ),
         
         RELA_CINE_BP    =FACT(statut='f',min=01,max='**',
           CABLE_BP        =SIMP(statut='o',typ=cabl_precont ),
           SIGM_BPEL       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           RELA_CINE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 17/05/2000   AUTEUR CIBHHLV L.VIVAN
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-C",reentrant='n',
         regles=(AU_MOINS_UN('DDL_IMPO','FORCE_POUTRE','LIAISON_DDL', ),),
         MODELE          =SIMP(statut='o',typ=modele ),
         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
         DDL_IMPO        =FACT(statut='f',min=01,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),
                   AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI', ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DX              =SIMP(statut='f',typ='C' ),
           DY              =SIMP(statut='f',typ='C' ),
           DZ              =SIMP(statut='f',typ='C' ),
           DRX             =SIMP(statut='f',typ='C' ),
           DRY             =SIMP(statut='f',typ='C' ),
           DRZ             =SIMP(statut='f',typ='C' ),
           GRX             =SIMP(statut='f',typ='C' ),
           PRES            =SIMP(statut='f',typ='C' ),
           PHI             =SIMP(statut='f',typ='C' ),
         ),
         FORCE_POUTRE    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',),
                   AU_MOINS_UN('FX','FY','FZ','N','VY','VZ',),
                   PRESENT_ABSENT('FX','N','VY','VZ',),
                   PRESENT_ABSENT('FY','N','VY','VZ',),
                   PRESENT_ABSENT('FZ','N','VY','VZ',),
                   PRESENT_ABSENT('N','FX','FY','FZ',),
                   PRESENT_ABSENT('VY', 'FX','FY','FZ',),
                   PRESENT_ABSENT('VZ','FX','FY','FZ', ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
           FX              =SIMP(statut='f',typ='C' ),
           FY              =SIMP(statut='f',typ='C' ),
           FZ              =SIMP(statut='f',typ='C' ),
           N               =SIMP(statut='f',typ='C' ),
           VY              =SIMP(statut='f',typ='C' ),
           VZ              =SIMP(statut='f',typ='C' ),
         ),
         LIAISON_DDL     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DDL             =SIMP(statut='o',typ='TXM',max='**'),
           COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
           COEF_IMPO       =SIMP(statut='o',typ='C' ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR UFBHHLL C.CHAVANT 
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 (temps, ...)",
                      docu="U4.44.01-F",reentrant='n',
        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'),),
         MODELE          =SIMP(statut='o',typ=modele ),
         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         VERI_NORM       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),         
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
         
         DDL_IMPO        =FACT(statut='f',min=01,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
                   AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI',
                               'TEMP','PRE1','PRE2'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DX              =SIMP(statut='f',typ=(fonction) ),
           DY              =SIMP(statut='f',typ=(fonction) ),
           DZ              =SIMP(statut='f',typ=(fonction) ),
           DRX             =SIMP(statut='f',typ=(fonction) ),
           DRY             =SIMP(statut='f',typ=(fonction) ),
           DRZ             =SIMP(statut='f',typ=(fonction) ),
           GRX             =SIMP(statut='f',typ=(fonction) ),
           PRES            =SIMP(statut='f',typ=(fonction) ),
           PHI             =SIMP(statut='f',typ=(fonction) ),
           TEMP            =SIMP(statut='f',typ=(fonction) ),
           PRE1            =SIMP(statut='f',typ=(fonction) ),
           PRE2            =SIMP(statut='f',typ=(fonction) ),
         ),
         LIAISON_UNIF    =FACT(statut='f',min=01,max='**',
                               fr="Imposer une meme valeur (inconnue) à des ddls d un emsemble de noeuds",
           regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DDL             =SIMP(statut='o',typ='TXM',max='**'),
         ),
         LIAISON_SOLIDE  =FACT(statut='f',min=01,max='**',
                               fr="Modéliser une partie indéformable d une structure",
           regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
         ),
         LIAISON_OBLIQUE =FACT(statut='f',min=01,max='**',
                               fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
           regles=(UN_PARMI('GROUP_NO','NOEUD'),
                   UN_PARMI('DX','DY','DZ','DRX','DRY','DRZ'),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           ANGL_NAUT       =SIMP(statut='o',typ='R',max=03),
           DX              =SIMP(statut='f',typ=(fonction) ),
           DY              =SIMP(statut='f',typ=(fonction) ),
           DZ              =SIMP(statut='f',typ=(fonction) ),
           DRX             =SIMP(statut='f',typ=(fonction) ),
           DRY             =SIMP(statut='f',typ=(fonction) ),
           DRZ             =SIMP(statut='f',typ=(fonction) ),
         ),
         LIAISON_COQUE   =FACT(statut='f',min=01,max='**',
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_1      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_1         =SIMP(statut='f',typ=no,max='**'),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
           NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES",) ),
         ),
         FACE_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','MAILLE'),
                   AU_MOINS_UN('DX','DY','DZ','DRX','DRY','DRZ','GRX','PRES','PHI','TEMP','PRE1','PRE2','DNOR','DTAN'),
                   EXCLUS('DNOR','DX'),
                   EXCLUS('DNOR','DY'),
                   EXCLUS('DNOR','DZ'),
                   EXCLUS('DNOR','DRX'),
                   EXCLUS('DNOR','DRY'),
                   EXCLUS('DNOR','DRZ'),
                   EXCLUS('DTAN','DX'),
                   EXCLUS('DTAN','DY'),
                   EXCLUS('DTAN','DZ'),
                   EXCLUS('DTAN','DRX'),
                   EXCLUS('DTAN','DRY'),
                   EXCLUS('DTAN','DRZ'),),
#  rajout d un mot cle REPERE : / GLOBAL / LOCAL
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           DX              =SIMP(statut='f',typ=(fonction) ),
           DY              =SIMP(statut='f',typ=(fonction) ),
           DZ              =SIMP(statut='f',typ=(fonction) ),
           DRX             =SIMP(statut='f',typ=(fonction) ),
           DRY             =SIMP(statut='f',typ=(fonction) ),
           DRZ             =SIMP(statut='f',typ=(fonction) ),
           GRX             =SIMP(statut='f',typ=(fonction) ),
           PRES            =SIMP(statut='f',typ=(fonction) ),
           PHI             =SIMP(statut='f',typ=(fonction) ),
           TEMP            =SIMP(statut='f',typ=(fonction) ),
           PRE1            =SIMP(statut='f',typ=(fonction) ),
           PRE2            =SIMP(statut='f',typ=(fonction) ),
           DNOR            =SIMP(statut='f',typ=(fonction) ),
           DTAN            =SIMP(statut='f',typ=(fonction) ),
         ),
         LIAISON_DDL     =FACT(statut='f',min=01,max='**',fr="Définir une relation linéaire entre des ddls de deux ou plusieurs noeuds",
           regles=(UN_PARMI('GROUP_NO','NOEUD'),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DDL             =SIMP(statut='o',typ='TXM',max='**'),
           COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
           COEF_IMPO       =SIMP(statut='o',typ=(fonction) ),
         ),
         LIAISON_GROUP   =FACT(statut='f',min=01,max='**',
                               fr="Définir des relations linéaires entre certains ddls de couples de noeuds",
           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
                   UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
                   EXCLUS('GROUP_MA_1','GROUP_NO_2'),
                   EXCLUS('GROUP_MA_1','NOEUD_2'),
                   EXCLUS('GROUP_NO_1','GROUP_MA_2'),
                   EXCLUS('GROUP_NO_1','MAILLE_2'),
                   EXCLUS('MAILLE_1','GROUP_NO_2'),
                   EXCLUS('MAILLE_1','NOEUD_2'),
                   EXCLUS('NOEUD_1','GROUP_MA_2'),
                   EXCLUS('NOEUD_1','MAILLE_2'),
                   EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'), 
           GROUP_NO_1      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_1         =SIMP(statut='f',typ=no,max='**'), 
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'), 
           GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_2         =SIMP(statut='f',typ=no,max='**'), 
           SANS_NOEUD      =SIMP(statut='f',typ=no,max='**'), 
           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,max='**'),
           DDL_1           =SIMP(statut='o',typ='TXM',max='**'),
           COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
           DDL_2           =SIMP(statut='o',typ='TXM',max='**'),
           COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
           COEF_IMPO       =SIMP(statut='o',typ=(fonction) ),
           SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           TRAN            =SIMP(statut='f',typ='R',max=03),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max=03),
           CENTRE          =SIMP(statut='f',typ='R',max=03),
         ),
         
         FORCE_NODALE    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD'),
                   AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           FX              =SIMP(statut='f',typ=(fonction) ),
           FY              =SIMP(statut='f',typ=(fonction) ),
           FZ              =SIMP(statut='f',typ=(fonction) ),
           MX              =SIMP(statut='f',typ=(fonction) ),
           MY              =SIMP(statut='f',typ=(fonction) ),
           MZ              =SIMP(statut='f',typ=(fonction) ),
           ANGL_NAUT       =SIMP(statut='f',typ=(fonction),max=03 ),
         ),
         FORCE_INTERNE   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                   AU_MOINS_UN('FX','FY','FZ'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FX              =SIMP(statut='f',typ=(fonction) ),
           FY              =SIMP(statut='f',typ=(fonction) ),
           FZ              =SIMP(statut='f',typ=(fonction) ),
         ),
         FORCE_FACE      =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','MAILLE'),
                   AU_MOINS_UN('FX','FY','FZ'),),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FX              =SIMP(statut='f',typ=(fonction) ),
           FY              =SIMP(statut='f',typ=(fonction) ),
           FZ              =SIMP(statut='f',typ=(fonction) ),
         ),
         FORCE_ARETE     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','MAILLE'),
                   AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FX              =SIMP(statut='f',typ=(fonction) ),
           FY              =SIMP(statut='f',typ=(fonction) ),
           FZ              =SIMP(statut='f',typ=(fonction) ),
           MX              =SIMP(statut='f',typ=(fonction) ),
           MY              =SIMP(statut='f',typ=(fonction) ),
           MZ              =SIMP(statut='f',typ=(fonction) ),
         ),
         FORCE_CONTOUR   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','MAILLE'),
                   AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FX              =SIMP(statut='f',typ=(fonction) ),
           FY              =SIMP(statut='f',typ=(fonction) ),
           FZ              =SIMP(statut='f',typ=(fonction) ),
           MX              =SIMP(statut='f',typ=(fonction) ),
           MY              =SIMP(statut='f',typ=(fonction) ),
           MZ              =SIMP(statut='f',typ=(fonction) ),
         ),
         PRES_REP        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                   AU_MOINS_UN('PRES','CISA_2D'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           PRES            =SIMP(statut='f',typ=(fonction) ),
           CISA_2D         =SIMP(statut='f',typ=(fonction) ),
         ),
         
         FORCE_COQUE     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                   AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ','PRES','F1','F2','F3','MF1','MF2'),
                   PRESENT_ABSENT('FX','PRES','F1','F2','F3','MF1','MF2'),
                   PRESENT_ABSENT('FY','PRES','F1','F2','F3','MF1','MF2'),
                   PRESENT_ABSENT('FZ','PRES','F1','F2','F3','MF1','MF2'),
                   PRESENT_ABSENT('MX','PRES','F1','F2','F3','MF1','MF2'),
                   PRESENT_ABSENT('MY','PRES','F1','F2','F3','MF1','MF2'),
                   PRESENT_ABSENT('MZ','PRES','F1','F2','F3','MF1','MF2'),
                   PRESENT_ABSENT('F1','PRES','FX','FY','FZ','MX','MY','MZ'),
                   PRESENT_ABSENT('F2','PRES','FX','FY','FZ','MX','MY','MZ'),
                   PRESENT_ABSENT('F3','PRES','FX','FY','FZ','MX','MY','MZ'),
                   PRESENT_ABSENT('MF1','PRES','FX','FY','FZ','MX','MY','MZ'),
                   PRESENT_ABSENT('MF2','PRES','FX','FY','FZ','MX','MY','MZ'),
                   PRESENT_ABSENT('PRES','FX','FY','FZ','MX','MY','MZ','F1','F2','F3','MF1','MF2'),),
#  rajout d un mot cle REPERE : / GLOBAL / LOCAL
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FX              =SIMP(statut='f',typ=(fonction) ),
           FY              =SIMP(statut='f',typ=(fonction) ),
           FZ              =SIMP(statut='f',typ=(fonction) ),
           MX              =SIMP(statut='f',typ=(fonction) ),
           MY              =SIMP(statut='f',typ=(fonction) ),
           MZ              =SIMP(statut='f',typ=(fonction) ),
           F1              =SIMP(statut='f',typ=(fonction) ),
           F2              =SIMP(statut='f',typ=(fonction) ),
           F3              =SIMP(statut='f',typ=(fonction) ),
           MF1             =SIMP(statut='f',typ=(fonction) ),
           MF2             =SIMP(statut='f',typ=(fonction) ),
           PRES            =SIMP(statut='f',typ=(fonction) ),
           PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",
                                 into=("SUP","INF","MOY","MAIL") ),
         ),
         FORCE_POUTRE    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                   AU_MOINS_UN('FX','FY','FZ','N','VY','VZ'),
                   PRESENT_ABSENT('FX','N','VY','VZ'),
                   PRESENT_ABSENT('FY','N','VY','VZ'),
                   PRESENT_ABSENT('FZ','N','VY','VZ'),
                   PRESENT_ABSENT('N','FX','FY','FZ'),
                   PRESENT_ABSENT('VY','FX','FY','FZ'),
                   PRESENT_ABSENT('VZ','FX','FY','FZ'),),
#  rajout d un mot cle REPERE : / GLOBAL / LOCAL                   
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FORCE",into=("VENT","FORCE") ),
           FX              =SIMP(statut='f',typ=(fonction) ),
           FY              =SIMP(statut='f',typ=(fonction) ),
           FZ              =SIMP(statut='f',typ=(fonction) ),
           N               =SIMP(statut='f',typ=(fonction) ),
           VY              =SIMP(statut='f',typ=(fonction) ),
           VZ              =SIMP(statut='f',typ=(fonction) ),
         ),
         FORCE_TUYAU     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           PRES            =SIMP(statut='f',typ=(fonction) ),
         ),
         VITE_FACE       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','MAILLE'),),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           VNOR            =SIMP(statut='o',typ=(fonction) ),
         ),
         IMPE_FACE       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','MAILLE'),),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           IMPE            =SIMP(statut='o',typ=(fonction) ),
         ),
         ONDE_PLANE      =FACT(statut='f',min=01,max='**',
           DIRECTION       =SIMP(statut='o',typ='R',max='**'),
           TYPE_ONDE       =SIMP(statut='o',typ='TXM' ),
           FONC_SIGNAL     =SIMP(statut='o',typ=(fonction) ),
           DIST_ORIG       =SIMP(statut='o',typ='R' ),
         ),
         EPSI_INIT       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                   AU_MOINS_UN('EPXX','EPYY','EPZZ','EPXY','EPXZ','EPYZ'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           EPXX            =SIMP(statut='f',typ=(fonction) ),
           EPYY            =SIMP(statut='f',typ=(fonction) ),
           EPZZ            =SIMP(statut='f',typ=(fonction) ),
           EPXY            =SIMP(statut='f',typ=(fonction) ),
           EPXZ            =SIMP(statut='f',typ=(fonction) ),
           EPYZ            =SIMP(statut='f',typ=(fonction) ),
         ),
         
         CONTACT         =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA_2','MAILLE_2'),
                   ENSEMBLE('FROTTEMENT','COULOMB'),
                   EXCLUS('DIST_2','COEF_IMPO'),
                   EXCLUS('DIST_1','COEF_IMPO'),
                   EXCLUS('COEF_MULT_2','GROUP_MA_1'),
                   EXCLUS('COEF_MULT_2','MAILLE_1'),
                   EXCLUS('COEF_IMPO','GROUP_MA_1'),
                   EXCLUS('COEF_IMPO','MAILLE_1'),),
           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","PRES","TEMP") ),
           APPARIEMENT     =SIMP(statut='f',typ='TXM',defaut="MAIT_ESCL",
                                 into=("NON","NODAL","NODAL_SYME","MAIT_ESCL","MAIT_ESCL_SYME") ),
           RECHERCHE       =SIMP(statut='f',typ='TXM',defaut="NOEUD_VOISIN",
                                 into=("NOEUD_BOUCLE","NOEUD_VOISIN") ),
           METHODE         =SIMP(statut='f',typ='TXM',defaut="CONTRAINTE",    
                                 into=("CONTRAINTE","LAGRANGIEN","PENALISATION") ),           
           FROTTEMENT      =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","COULOMB",) ), 
           COULOMB         =SIMP(statut='f',typ='R',max=1),
           E_T             =SIMP(statut='f',typ='R' ),  
           COEF_MATR_FROT  =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           VECT_NORM_2     =SIMP(statut='f',typ='R',max=03),
           PROJECTION      =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE",) ),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'  ),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'  ),
           SANS_NOEUD      =SIMP(statut='f',typ=no,max='**'  ),
           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,max='**'),
           DIST_1          =SIMP(statut='f',typ=(fonction) ),
           DIST_2          =SIMP(statut='f',typ=(fonction) ),
           COEF_IMPO       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           COEF_MULT_2     =SIMP(statut='f',typ='R',defaut= 1.E+0 ),
         ),
         FLUX_THM_REP    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                   AU_MOINS_UN('FLUN','FLUN_HYDR1','FLUN_HYDR2'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FLUN            =SIMP(statut='f',typ=(fonction) ),
           FLUN_HYDR1      =SIMP(statut='f',typ=(fonction) ),
           FLUN_HYDR2      =SIMP(statut='f',typ=(fonction) ),
         ),
         
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 17/11/1999   AUTEUR CIBHHGB G.BERTRAND 
AFFE_CHAR_OPS011=OPER(nom="AFFE_CHAR_OPS011",op= 190,sd_prod=char_ther,
                      fr=" ",
                      docu="          ",reentrant='n',
         regles=(AU_MOINS_UN('CARA_TORSION', ),),
         MODELE          =SIMP(statut='o',typ=modele ),
         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",    
                               into=("OUI","NON") ),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),  
         CARA_TORSION    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 28/11/2000   AUTEUR CIBHHLV L.VIVAN 
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-F",reentrant='n',
      regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','ECHANGE',
                          'ECHANGE_PAROI','GRAD_TEMP_INIT','LIAISON_DDL','LIAISON_GROUP',
                          'LIAISON_UNIF','LIAISON_CHAMNO','RAYONNEMENT','LIAISON_MAIL' ),),
         MODELE          =SIMP(statut='o',typ=(modele) ),
         VERI_DDL        =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="OUI"),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
         LIAISON_DDL     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD', ),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DDL             =SIMP(statut='f',typ='TXM',max='**',
                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
           COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
           COEF_IMPO       =SIMP(statut='o',typ='R' ),
         ),
         TEMP_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
                   AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           TEMP            =SIMP(statut='f',typ='R'),
           TEMP_INF        =SIMP(statut='f',typ='R'),
           TEMP_SUP        =SIMP(statut='f',typ='R'), ),
         LIAISON_UNIF    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           DDL             =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
         ),
         LIAISON_CHAMNO  =FACT(statut='f',min=01,max='**',
           CHAM_NO         =SIMP(statut='o',typ=cham_no),# CO()# "il faut definir une structure de donnee generique chamno"
           COEF_IMPO       =SIMP(statut='o',typ='R' ),
           NUME_LAGR       =SIMP(statut='f',typ='TXM',defaut="NORMAL",into=("NORMAL","APRES") ),
         ),
         SOURCE          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('SOUR','SOUR_CALCULEE',),
                        PRESENT_ABSENT('SOUR_CALCULEE','TOUT','GROUP_MA','MAILLE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           SOUR            =SIMP(statut='f',typ='R'),
           SOUR_CALCULEE   =SIMP(statut='f',typ=(cham_elem_sour_r) ),
         ),
         FLUX_REP        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                        AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','CARA_TORSION') ),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FLUN            =SIMP(statut='f',typ='R'),
           FLUN_INF        =SIMP(statut='f',typ='R'),
           FLUN_SUP        =SIMP(statut='f',typ='R'),
           CARA_TORSION    =SIMP(statut='f',typ=tabl_aire_int ),
         ),
         ECHANGE         =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                        AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
                             ENSEMBLE('COEF_H','TEMP_EXT',),
                   ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
                             ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           COEF_H          =SIMP(statut='f',typ='R'),
           TEMP_EXT        =SIMP(statut='f',typ='R'),
           COEF_H_INF      =SIMP(statut='f',typ='R'),
           TEMP_EXT_INF    =SIMP(statut='f',typ='R'),
           COEF_H_SUP      =SIMP(statut='f',typ='R'),
           TEMP_EXT_SUP    =SIMP(statut='f',typ='R'),
         ),
         ECHANGE_PAROI   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
                        UN_PARMI('GROUP_MA_2','MAILLE_2'),),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           COEF_H          =SIMP(statut='o',typ='R'),
           TRAN            =SIMP(statut='f',typ='R',max='**'),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
           CENTRE          =SIMP(statut='f',typ='R',max='**'),
                         ),
         GRAD_TEMP_INIT  =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                        AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FLUX_X          =SIMP(statut='f',typ='R' ),
           FLUX_Y          =SIMP(statut='f',typ='R' ),
           FLUX_Z          =SIMP(statut='f',typ='R' ),
                         ),
         LIAISON_GROUP   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
                   UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
                             EXCLUS('GROUP_MA_1','GROUP_NO_2'),
                             EXCLUS('GROUP_MA_1','NOEUD_2'),
                   EXCLUS('GROUP_NO_1','GROUP_MA_2'),
                             EXCLUS('GROUP_NO_1','MAILLE_2'),
                             EXCLUS('MAILLE_1','GROUP_NO_2'),
                             EXCLUS('MAILLE_1','NOEUD_2'),
                             EXCLUS('NOEUD_1','GROUP_MA_2'),
                             EXCLUS('NOEUD_1','MAILLE_2'),
                             EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_1      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_1         =SIMP(statut='f',typ=no,max='**'),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
           SANS_NOEUD      =SIMP(statut='f',typ=no,max='**'),
           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,max='**'),
           DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
           COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
           DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
                                 into=("TEMP","TEMP_INF","TEMP_SUP",) ),
           COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
           COEF_IMPO       =SIMP(statut='o',typ='R' ),
           SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           TRAN            =SIMP(statut='f',typ='R',max='**'),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
           CENTRE          =SIMP(statut='f',typ='R',max='**'),
         ),
         CONVECTION      =FACT(statut='f',min=01,max='**',
           VITESSE         =SIMP(statut='o',typ=(cham_no_depl_r) ),
         ),
         RAYONNEMENT     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',),
                        ENSEMBLE('SIGMA','EPSILON','TEMP_EXT'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           SIGMA           =SIMP(statut='o',typ='R'),
           EPSILON         =SIMP(statut='o',typ='R'),
           TEMP_EXT        =SIMP(statut='o',typ='R'),
         ),
         LIAISON_MAIL    =FACT(statut='f',min=01,max='**',
           regles=(PRESENT_ABSENT('GROUP_MA_1','GROUP_MA_ESCL','MAILLE_ESCL',        
                                  'GROUP_NO_ESCL','NOEUD_ESCL'),
                   PRESENT_ABSENT('MAILLE_1','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL','NOEUD_ESCL'),     
                   PRESENT_ABSENT('GROUP_MA_2','GROUP_MA_MAIT','MAILLE_MAIT'),      
                   PRESENT_ABSENT('MAILLE_2','GROUP_MA_MAIT','MAILLE_MAIT'),        
                   PRESENT_ABSENT('GROUP_NO_2','GROUP_MA_MAIT','MAILLE_MAIT'),      
                   PRESENT_ABSENT('NOEUD_2','GROUP_MA_MAIT','MAILLE_MAIT'),         
                   AU_MOINS_UN('GROUP_MA_1','MAILLE_1','GROUP_MA_MAIT','MAILLE_MAIT'),
                   AU_MOINS_UN('GROUP_MA_2','MAILLE_2','GROUP_NO_2', 
                               'NOEUD_2','GROUP_MA_ESCL','MAILLE_ESCL','GROUP_NO_ESCL',          
                               'NOEUD_ESCL'),),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'), 
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA_MAIT   =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_MAIT     =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
           GROUP_MA_ESCL   =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_ESCL     =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_ESCL   =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_ESCL      =SIMP(statut='f',typ=no,max='**'),
           TRAN            =SIMP(statut='f',typ='R',max='**' ),  
           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**' ),  
           CENTRE          =SIMP(statut='f',typ='R',max='**' ),  
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 12/05/99   AUTEUR VABHHTS J.PELLET 
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-F",reentrant='n',
      regles=(AU_MOINS_UN('TEMP_IMPO','SOURCE','FLUX_REP','FLUX_NL','ECHANGE',
                          'ECHANGE_PAROI','LIAISON_DDL','LIAISON_GROUP','LIAISON_UNIF',
                          'GRAD_TEMP_INIT','RAYONNEMENT'),),
         MODELE          =SIMP(statut='o',typ=(modele) ),
         VERI_DDL        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
         LIAISON_DDL     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD'),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           DDL             =SIMP(statut='f',typ='TXM',max='**',into=("TEMP","TEMP_INF","TEMP_SUP") ),
           COEF_MULT       =SIMP(statut='o',typ='R',max='**'),
           COEF_IMPO       =SIMP(statut='o',typ=(fonction) ),
         ),
         TEMP_IMPO       =FACT(statut='f',min=01,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),
                   AU_MOINS_UN('TEMP_SUP','TEMP','TEMP_INF','EVOL_THER'),
                   PRESENT_ABSENT('EVOL_THER','TEMP','TEMP_INF','TEMP_SUP'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           EVOL_THER       =SIMP(statut='f',typ=(evol_ther) ),
           DDL             =SIMP(statut='f',typ='TXM',max='**',into=("TEMP",) ),
           TEMP            =SIMP(statut='f',typ=(fonction) ),
           TEMP_INF        =SIMP(statut='f',typ=(fonction) ),
           TEMP_SUP        =SIMP(statut='f',typ=(fonction) ),
         ),
         LIAISON_UNIF    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           DDL             =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
         ),
         SOURCE          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           SOUR            =SIMP(statut='o',typ=(fonction) ),
         ),
         FLUX_REP        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',),
                        AU_MOINS_UN('FLUN','FLUN_INF','FLUN_SUP','FLUX_X','FLUX_Y','FLUX_Z'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FLUN            =SIMP(statut='f',typ=(fonction) ),
           FLUN_INF        =SIMP(statut='f',typ=(fonction) ),
           FLUN_SUP        =SIMP(statut='f',typ=(fonction) ),
           FLUX_X          =SIMP(statut='f',typ=(fonction) ),
           FLUX_Y          =SIMP(statut='f',typ=(fonction) ),
           FLUX_Z          =SIMP(statut='f',typ=(fonction) ),
         ),
         FLUX_NL         =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FLUN            =SIMP(statut='o',typ=(fonction) ),
         ),
         ECHANGE         =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE',),
                        AU_MOINS_UN('COEF_H','COEF_H_INF','COEF_H_SUP'),
                        ENSEMBLE('COEF_H','TEMP_EXT'),
                   ENSEMBLE('COEF_H_INF','TEMP_EXT_INF'),
                        ENSEMBLE('COEF_H_SUP','TEMP_EXT_SUP'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           COEF_H          =SIMP(statut='f',typ=(fonction) ),
           TEMP_EXT        =SIMP(statut='f',typ=(fonction) ),
           COEF_H_INF      =SIMP(statut='f',typ=(fonction) ),
           TEMP_EXT_INF    =SIMP(statut='f',typ=(fonction) ),
           COEF_H_SUP      =SIMP(statut='f',typ=(fonction) ),
           TEMP_EXT_SUP    =SIMP(statut='f',typ=(fonction) ),
         ),
         ECHANGE_PAROI   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1'),
                        UN_PARMI('GROUP_MA_2','MAILLE_2'),),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           COEF_H          =SIMP(statut='o',typ=(fonction) ),
           TRAN            =SIMP(statut='f',typ='R',max='**'),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
           CENTRE          =SIMP(statut='f',typ='R',max='**'),
         ),
         GRAD_TEMP_INIT  =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                        AU_MOINS_UN('FLUX_X','FLUX_Y','FLUX_Z'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           FLUX_X          =SIMP(statut='f',typ=(fonction) ),
           FLUX_Y          =SIMP(statut='f',typ=(fonction) ),
           FLUX_Z          =SIMP(statut='f',typ=(fonction) ),
         ),
         LIAISON_GROUP   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
                   UN_PARMI('GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),
                             EXCLUS('GROUP_MA_1','GROUP_NO_2'),
                        EXCLUS('GROUP_MA_1','NOEUD_2'),
                   EXCLUS('GROUP_NO_1','GROUP_MA_2'),
                        EXCLUS('GROUP_NO_1','MAILLE_2'),
                        EXCLUS('MAILLE_1','GROUP_NO_2'),
                        EXCLUS('MAILLE_1','NOEUD_2'),
                        EXCLUS('NOEUD_1','GROUP_MA_2'),
                        EXCLUS('NOEUD_1','MAILLE_2'),
                        EXCLUS('SANS_NOEUD','SANS_GROUP_NO'),),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_1      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_1         =SIMP(statut='f',typ=no,max='**'),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
           SANS_NOEUD      =SIMP(statut='f',typ=no,max='**'),
           SANS_GROUP_NO   =SIMP(statut='f',typ=grno,max='**'),
           DDL_1           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
           COEF_MULT_1     =SIMP(statut='o',typ='R',max='**'),
           DDL_2           =SIMP(statut='f',typ='TXM',max='**',defaut="TEMP",
                                 into=("TEMP","TEMP_INF","TEMP_SUP") ),
           COEF_MULT_2     =SIMP(statut='o',typ='R',max='**'),
           COEF_IMPO       =SIMP(statut='o',typ=(fonction) ),
           SOMMET          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           TRAN            =SIMP(statut='f',typ='R',max='**'),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
           CENTRE          =SIMP(statut='f',typ='R',max='**'),
         ),
         CONVECTION      =FACT(statut='f',min=01,max='**',
           VITESSE         =SIMP(statut='o',typ=(cham_no_depl_r) ),
         ),
         RAYONNEMENT     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE'),
                        ENSEMBLE('SIGMA','EPSILON','TEMP_EXT'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           SIGMA           =SIMP(statut='o',typ=(fonction) ),
           EPSILON         =SIMP(statut='o',typ=(fonction) ),
           TEMP_EXT        =SIMP(statut='o',typ=(fonction) ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 24/09/97   AUTEUR CIBHHLV L.VIVAN 
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',
         MAILLAGE        =SIMP(statut='o',typ=maillage),
         MODELE          =SIMP(statut='f',typ=modele),
         AFFE            =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           MATER           =SIMP(statut='o',typ=mater),
           TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
)  ;
#& MODIF COMMANDE  DATE 26/09/2000   AUTEUR CIBHHLV L.VIVAN 
AFFE_MODELE=OPER(nom="AFFE_MODELE",op=18,sd_prod=modele,docu="U4.41.01-F",
                 fr="Affectation des éléments finis sur le maillage",reentrant='n',
         regles=(AU_MOINS_UN('AFFE','AFFE_SOUS_STRUC'),),
         MAILLAGE        =SIMP(statut='o',typ=(maillage) ),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
         VERIF           =SIMP(statut='f',typ='TXM',max='**',into=("MAILLE","NOEUD") ),
         AFFE_SOUS_STRUC =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('TOUT','MAILLE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           PHENOMENE       =SIMP(statut='f',typ='TXM',defaut="MECANIQUE",into=("MECANIQUE",) ),
         ),
         AFFE            =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           PHENOMENE       =SIMP(statut='o',typ='TXM',
                                 into=("MECANIQUE","THERMIQUE","ACOUSTIQUE","NON_LOCAL") ),
                b_mecanique     =BLOC( condition = "PHENOMENE=='MECANIQUE'",
                                        fr="modelisations mécaniques",
                    MODELISATION    =SIMP(statut='o',typ='TXM', into=(
                                                                      "2D_CONTACT",
                                                                      "2D_DIS_T",
                                                                      "2D_DIS_TR",
                                                                      "2D_FLUI_ABSO",
                                                                      "2D_FLUI_PESA",
                                                                      "2D_FLUI_STRU",
                                                                      "2D_FLUIDE",
                                                                      "3D",
                                                                      "3D_ABSO",
                                                                      "3D_CONTACT",
                                                                      "3D_FAISCEAU",
                                                                      "3D_FLUI_ABSO",
                                                                      "3D_FLUIDE",
                                                                      "3D_HHM" ,
                                                                      "3D_HM",
                                                                      "3D_INCO",
                                                                      "3D_JOINT_CT",
                                                                      "3D_SI",
                                                                      "3D_THH",
                                                                      "3D_THHM",
                                                                      "3D_THM",
                                                                      "APPUI_REP",
                                                                      "ASSE_GRIL",
                                                                      "AXIS",
                                                                      "AXIS_FLUI_STRU",
                                                                      "AXIS_FLUIDE",
                                                                      "AXIS_FOURIER",
                                                                      "AXIS_HHM",
                                                                      "AXIS_HM",
                                                                      "AXIS_INCO",
                                                                      "AXIS_SI",
                                                                      "AXIS_THH",
                                                                      "AXIS_THHM",
                                                                      "AXIS_THM",
                                                                      "BARRE",
                                                                      "C_PLAN",
                                                                      "CABLE",
                                                                      "CABLE_POULIE",
                                                                      "COQUE_3D",
                                                                      "COQUE_AXIS",
                                                                      "COQUE_C_PLAN",
                                                                      "COQUE_D_PLAN",
                                                                      "D_PLAN",
                                                                      "D_PLAN_ABSO",
                                                                      "D_PLAN_HHM",
                                                                      "D_PLAN_HM",
                                                                      "D_PLAN_SI",
                                                                      "D_PLAN_THH",
                                                                      "D_PLAN_THHM",
                                                                      "D_PLAN_THM",
                                                                      "DIS_T",
                                                                      "DIS_TR",
                                                                      "DKT",
                                                                      "DST",
                                                                      "FLUI_STRU",
                                                                      "GRILLE",
                                                                      "PLAN_INCO",
                                                                      "POU_C_T",
                                                                      "POU_D_E",
                                                                      "POU_D_T",
                                                                      "POU_D_T_GD",
                                                                      "POU_D_TG",
                                                                      "Q4G",
                                                                      "TUYAU",
                                                                      "TUYAU_6M"
                                                                     )  )  ),
                                                                     
                b_thermique     =BLOC( condition = "PHENOMENE=='THERMIQUE'",
                                        fr="modelisations thermiques",
                    MODELISATION    =SIMP(statut='o',typ='TXM',into=( 
                                                                      "3D",
                                                                      "3D_DIAG",
                                                                      "AXIS",
                                                                      "AXIS_DIAG",
                                                                      "AXIS_FOURIER",
                                                                      "COQUE",
                                                                      "COQUE_AXIS",
                                                                      "COQUE_PLAN",
                                                                      "PLAN",
                                                                      "PLAN_DIAG",
                                                                      ),),),
                                                                     
                b_acoustique    =BLOC( condition = "PHENOMENE=='ACOUSTIQUE'",
                                        fr="modelisations acoustiques",
                     MODELISATION    =SIMP(statut='o',typ='TXM',into=(
                                                                       "3D",
                                                                       "PLAN"
                                                                       ), ),),
                                                                       
                b_non_local     =BLOC( condition = "PHENOMENE=='NON_LOCAL'",
                                        fr="modelisations non locales",
                     MODELISATION    =SIMP(statut='o',typ='TXM',into=(
                                                                      "3D",
                                                                      "AXIS",
                                                                      "C_PLAN",
                                                                      "D_PLAN",
                                                                     ) ), ),
         ),
) ;
#& MODIF COMMANDE DATE 25/10/93 AUTEUR VABHHTS J.PELLET
AIDE=PROC(nom="AIDE",op=42,docu="U4.02.01-F",
          fr="Interrogation sur le catalogue des commandes et les concepts produits",                                                                                                                                                                                           
         regles=(AU_MOINS_UN('COMMANDE','CONCEPT','TYPE_ELEM', ),),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
         TYPE_ELEM       =FACT(fr="couple type_elem option",
                               statut='f',min=01,max=01,
           INITEL          =SIMP(statut='f',typ='TXM',defaut="NON",
                                 into=("OUI","NON",) ),
         ),
         COMMANDE        =FACT(statut='f',min=01,max='**',
           NOM             =SIMP(fr="liste des noms de commande", 
                                 statut='f',typ='TXM',max='**',defaut="*"),
           OPTION          =SIMP(fr="option d'édition de commande",
                                 statut='f',typ='TXM',defaut="CATALOGUE",
                                 into=("CATALOGUE","A_REMPLIR","NUMERO",) ),
         ),
         CONCEPT         =FACT(statut='f',min=01,max='**',
           NOM             =SIMP(fr="liste des noms de concept", 
                                 statut='f',typ='TXM',max='**',defaut="*"),
           OPTION          =SIMP(fr="option d'édition de concept",
                                 statut='f',typ='TXM',defaut="TOUT_TYPE",
                                 into=("TOUT_TYPE","CREER","A_CREER",) ),
         ),
) ;
#& MODIF COMMANDE DATE 18/03/92 AUTEUR INCONNU INCONNU
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',
         MAILLAGE        =SIMP(statut='o',typ=maillage,min=02,max=02 ),
)  ;
#& MODIF COMMANDE  DATE 02/10/96   AUTEUR CIBHHLV L.VIVAN 
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',
         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 02/10/96   AUTEUR CIBHHLV L.VIVAN 
def asse_matrice_prod(MATR_ELEM,**args):
  if AsType(MATR_ELEM) == matr_elem_depl_r : return matr_asse_depl_r
  if AsType(MATR_ELEM) == matr_elem_depl_c : return matr_asse_depl_c
  if AsType(MATR_ELEM) == matr_elem_temp_r : return matr_asse_temp_r
  if AsType(MATR_ELEM) == matr_elem_pres_c : return matr_asse_pres_c
  raise AsException("type de concept resultat non prevu")

ASSE_MATRICE=OPER(nom="ASSE_MATRICE",op=12,sd_prod=asse_matrice_prod,
                  fr="Construction d une matrice assemblée",docu="U4.61.22-F",reentrant='n',
         MATR_ELEM       =SIMP(statut='o',
                               typ=(matr_elem_depl_r,matr_elem_depl_c,matr_elem_temp_r,matr_elem_pres_c) ),
         NUME_DDL        =SIMP(statut='o',typ=nume_ddl),
         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 30/06/93 AUTEUR T8BHHTK T.KERBER
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',
         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
         CHAR_SOUS_STRUC =FACT(statut='o',min=01,max='**',
           SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
           VECT_ASSE       =SIMP(statut='o',typ=cham_no_depl_r ),
         ),
)  ;
#& MODIF COMMANDE  DATE 02/10/96   AUTEUR CIBHHLV L.VIVAN 
def asse_vecteur_prod(VECT_ELEM,**args):
  if AsType(VECT_ELEM) == vect_elem_depl_r : return cham_no_depl_r
  if AsType(VECT_ELEM) == vect_elem_temp_r : return cham_no_temp_r
  if AsType(VECT_ELEM) == vect_elem_pres_r : return cham_no_pres_r
  if AsType(VECT_ELEM) == vect_elem_pres_c : return cham_no_pres_c
  raise AsException("type de concept resultat non prevu : %s" %`AsType(VECT_ELEM)`)

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',
         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 28/09/98   AUTEUR ACBHHCD G.DEVESA 
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',
         ENER_SOL        =FACT(statut='o',min=01,max=01,
           regles=(UN_PARMI('GROUP_NO_RADIER','GROUP_MA_RADIER'),
                   PRESENT_ABSENT('COEF_GROUP','FONC_GROUP'),
#  Peut-on remplacer les deux règles suivantes par un ENSEMBLE_('KRX','KRY','KRZ')
                   PRESENT_PRESENT('KRX','KRY'),
                   PRESENT_PRESENT('KRX','KRZ'),
                   PRESENT_ABSENT('COOR_CENTRE','NOEUD_CENTRE'),
                   PRESENT_ABSENT('GROUP_NO_CENTRE','NOEUD_CENTRE'),
                   PRESENT_ABSENT('GROUP_NO_CENTRE','COOR_CENTRE'),),
           METHODE         =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","RIGI_PARASOL") ),
           MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
           GROUP_NO_RADIER =SIMP(statut='f',typ=grno,max='**'),
           GROUP_MA_RADIER =SIMP(statut='f',typ=grma,max='**'),
           FONC_GROUP      =SIMP(statut='f',typ=fonction ),
           COEF_GROUP      =SIMP(statut='f',typ='R',max='**'),
           KX              =SIMP(statut='o',typ='R' ),
           KY              =SIMP(statut='o',typ='R' ),
           KZ              =SIMP(statut='o',typ='R' ),
           KRX             =SIMP(statut='f',typ='R' ),
           KRY             =SIMP(statut='f',typ='R' ),
           KRZ             =SIMP(statut='f',typ='R' ),
           GROUP_NO_CENTRE =SIMP(statut='f',typ=grno),
           NOEUD_CENTRE    =SIMP(statut='f',typ=no),
           COOR_CENTRE     =SIMP(statut='f',typ='R',max=03),
         ),
         AMOR_INTERNE    =FACT(statut='o',min=01,max=01,
           ENER_POT        =SIMP(statut='o',typ=tabl_ener_pot ),
           GROUP_MA        =SIMP(statut='o',typ=grma,max='**'),
           AMOR_REDUIT     =SIMP(statut='o',typ='R',max='**'),
         ),
         AMOR_SOL        =FACT(statut='o',min=01,max=01,
           AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           FONC_AMOR_GEO   =SIMP(statut='o',typ=fonction,max='**' ),
           HOMOGENE        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           SEUIL           =SIMP(statut='f',typ='R',defaut= 0.3 ),
         ),
)  ;
#& MODIF COMMANDE  DATE 29/08/2000   AUTEUR ADBHHPM P.MASSIN 
def calc_cham_elem_prod(OPTION,**args):
  if OPTION == "EQUI_ELGA_SIGM" : return cham_elem_sief_r
  if OPTION == "EQUI_ELNO_SIGM" : return cham_elem_sief_r
  if OPTION == "SIGM_ELNO_DEPL" : return cham_elem_sief_r
  if OPTION == "SIGM_ELNO_LAGR" : return cham_elem_sief_r
  if OPTION == "SIPO_ELNO_DEPL" : return cham_elem_sief_r
  if OPTION == "SIEF_ELGA_DEPL" : return cham_elem_sief_r
  if OPTION == "SIEF_ELGA_LAGR" : return cham_elem_sief_r
  if OPTION == "SIGM_ELNO_CART" : return cham_elem_sief_r
  if OPTION == "EFGE_ELNO_CART" : return cham_elem_sief_r
  if OPTION == "EFGE_ELNO_DEPL" : return cham_elem_sief_r
  if OPTION == "EQUI_ELGA_EPSI" : return cham_elem_epsi_r
  if OPTION == "EQUI_ELNO_EPSI" : return cham_elem_epsi_r
  if OPTION == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r
  if OPTION == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r
  if OPTION == "FLUX_ELGA_TEMP" : return cham_elem_flux_r
  if OPTION == "FLUX_ELNO_TEMP" : return cham_elem_flux_r
  if OPTION == "SOUR_ELGA_ELEC" : return cham_elem_sour_r
  if OPTION == "ENEL_ELGA" :      return cham_elem_ener_r
  if OPTION == "ENEL_ELNO_ELGA" : return cham_elem_ener_r
  if OPTION == "EPOT_ELEM_DEPL" : return cham_elem_ener_r
  if OPTION == "ECIN_ELEM_DEPL" : return cham_elem_ener_r
  if OPTION == "PRES_ELNO_DBEL" : return cham_elem_dbel_r
  if OPTION == "PRES_ELNO_REEL" : return cham_elem_pres_r
  if OPTION == "PRES_ELNO_IMAG" : return cham_elem_pres_r
  if OPTION == "PRES_DBEL_DEPL" : return cham_elem_dbel_r
  if OPTION == "ENDO_ELNO_SIGM" : return cham_elem_sief_r
  if OPTION == "COOR_ELGA" :      return cham_elem_geom_r
  raise AsException("type de concept resultat non prevu")

CALC_CHAM_ELEM=OPER(nom="CALC_CHAM_ELEM",op=38,sd_prod=calc_cham_elem_prod,
                    fr="Calcul de champs par éléments (contraintes, déformations ou flux) à partir de champs solution (déplacement ou température) ou de champs  par éléments",
                    docu="U4.81.03-F",reentrant='n',
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
 
         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         MAILLE          =SIMP(statut='f',typ=ma,max='**'),

# 
# 
#  introduire un mot cle de type modelisation : mécanique,thermique,...
# 

         OPTION          =SIMP(statut='o',typ='TXM',
                               into=("DEGE_ELNO_DEPL","EFGE_ELNO_DEPL","EPOT_ELEM_DEPL",
                                     "EPSI_ELNO_DEPL","PRES_DBEL_DEPL","SIGM_ELNO_DEPL",
                                     "SIEF_ELGA_DEPL","SIEF_ELGA_LAGR","SIGM_ELNO_LAGR",
                                     "EFGE_ELNO_CART","ENDO_ELNO_SIGM","EQUI_ELGA_EPSI",
                                     "EQUI_ELGA_SIGM","EQUI_ELNO_EPSI","EQUI_ELNO_SIGM",
                                     "SIGM_ELNO_CART","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL",
                                     "FLUX_ELNO_TEMP","FLUX_ELGA_TEMP","SOUR_ELGA_ELEC",
                                     "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
                                     "COOR_ELGA","ENEL_ELGA","ENEL_ELNO_ELGA"), ),
         DEPL            =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c)),
         PROPAGATION     =SIMP(statut='f',typ='R',defaut= 0.E+0),
         CHAM_ELEM       =SIMP(statut='f',typ=(cham_elem_sief_r,cham_elem_epsi_r) ),
         FREQ            =SIMP(statut='f',typ='R'),
         VITE            =SIMP(statut='f',typ=cham_no_depl_r),
         EXCIT           =FACT(statut='f',min=01,max='**',
               regles=(EXCLUS('FONC_MULT','COEF_MULT', ),),
               CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou)),
               FONC_MULT       =SIMP(statut='f',typ=fonction),
               COEF_MULT       =SIMP(statut='f',typ='R'),
         ),
         INST            =SIMP(statut='f',typ='R',defaut= 0.E+0),
         ACCE            =SIMP(statut='f',typ=cham_no_depl_r),
         NUME_COUCHE     =SIMP(statut='f',typ='I',defaut= 1),
         NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
         MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),

         TEMP            =SIMP(statut='f',typ=(cham_no_temp_r) ),

         PRES            =SIMP(statut='f',typ=(cham_no_pres_c) ),

         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),
         ANGLE           =SIMP(statut='f',typ='I',defaut= 0),
         PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",
                               into=("SUP","INF","MOY","MAIL"), ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN
def calc_char_cine_prod(CHAR_CINE,**args):
  if AsType(CHAR_CINE) == char_cine_meca : return cham_no_depl_r
  if AsType(CHAR_CINE) == char_cine_ther : return cham_no_temp_r
  if AsType(CHAR_CINE) == char_cine_acou : return cham_no_pres_c
  raise AsException("type de concept resultat non prevu")

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',
         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 08/03/94 AUTEUR VABHHT2 G.BERTRAND
def calc_char_seisme_prod(MATR_MASS,**args ):
  if AsType(MATR_MASS) == matr_asse_depl_r : return cham_no_depl_r
  raise AsException("type de concept resultat non prevu")

CALC_CHAR_SEISME=OPER(nom="CALC_CHAR_SEISME",op=  92,sd_prod=calc_char_seisme_prod,
                      fr="Calcul du chargement sismique (forces d inertie fictives) pour une étude ultérieure de la réponse en mouvement relatif par rapport aux appuis",
                      docu="U4.63.01-E",reentrant='n',
         regles=(UN_PARMI('MONO_APPUI','MODE_STAT' ),),
         MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r,fr="Matrice de masse" ),
         DIRECTION       =SIMP(statut='o',typ='R',max=06,fr="Directions du séisme imposé"),
         MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),         
         MODE_STAT       =SIMP(statut='f',typ=mode_stat ),
         b_mode_stat     =BLOC ( condition = "MODE_STAT != None",
           regles=(UN_PARMI('NOEUD','GROUP_NO' ),),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 29/08/2000   AUTEUR ADBHHPM P.MASSIN 
def calc_elem_prod(RESULTAT,**args):
  if AsType(RESULTAT) == evol_elas :    return evol_elas
  if AsType(RESULTAT) == evol_noli :    return evol_noli
  if AsType(RESULTAT) == evol_ther :    return evol_ther
  if AsType(RESULTAT) == dyna_trans :   return dyna_trans
  if AsType(RESULTAT) == dyna_harmo :   return dyna_harmo
  if AsType(RESULTAT) == acou_harmo :   return acou_harmo
  if AsType(RESULTAT) == mode_meca :    return mode_meca
  if AsType(RESULTAT) == mode_flamb :   return mode_flamb
  if AsType(RESULTAT) == mode_acou :    return mode_acou
  if AsType(RESULTAT) == mode_stat :    return mode_stat
  if AsType(RESULTAT) == mult_elas :    return mult_elas
  if AsType(RESULTAT) == fourier_elas : return fourier_elas
  if AsType(RESULTAT) == base_modale  : return base_modale
  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-F",reentrant='f',
                    fr="Compléter un résultat en calculant des champs par éléments (contraintes, déformations,... )",
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),

         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         MAILLE          =SIMP(statut='f',typ=ma,max='**'),

         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
                        'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
         NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
         NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
         NOM_CAS         =SIMP(statut='f',typ='TXM' ),
 
         INST            =SIMP(statut='f',typ='R',max='**'),
         FREQ            =SIMP(statut='f',typ='R',max='**'),
         LIST_INST       =SIMP(statut='f',typ=listr8),
         LIST_FREQ       =SIMP(statut='f',typ=listr8),
         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),

         LIST_ORDRE      =SIMP(statut='f',typ=listis),

         OPTION          =SIMP(statut='o',typ='TXM',max='**',
                               into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
                                     "SIGM_ELNO_TUYO","SIGM_ELNO_CART","DEGE_ELNO_DEPL","EFGE_ELNO_CART",
                                     "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL",
                                     "EPME_ELNO_DEPL","EPME_ELGA_DEPL","EPMG_ELNO_DEPL","EPMG_ELGA_DEPL",
                                     "EPSP_ELNO","EPSP_ELGA","ECIN_ELEM_DEPL","SIPO_ELNO_DEPL",
                                     "EPGR_ELNO","EPGR_ELGA","DURT_ELGA_META","DURT_ELNO_META",
                                     "SIGM_ELNO_COQU","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",
                                     "SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA","ERRE_ELEM_NOZ2",
                                     "VNOR_ELEM_DEPL","SIRE_ELNO_DEPL","ERRE_ELGA_NORE","ERRE_ELNO_ELGA",
                                     "VARI_ELNO_ELGA","VARI_ELNO_TUYO","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
                                     "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI","EQUI_ELNO_EPME","EQUI_ELGA_EPME",
                                     "DCHA_ELNO_SIGM","DCHA_ELGA_SIGM","RADI_ELNO_SIGM","RADI_ELGA_SIGM",
                                     "ENDO_ELNO_SIGA","ENDO_ELNO_SINO","ENEL_ELGA","ENEL_ELNO_ELGA","SIEF_ELNO_ELGA",
                                     "DEUL_ELGA_TEMP","DETE_ELNO_DLTE","DEUL_ELGA_DEPL","DEDE_ELNO_DLDE",
                                     "DLSI_ELGA_DEPL","DESI_ELNO_DLSI","PMPB_ELNO_SIEF","PMPB_ELGA_SIEF",
                                     "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",
                                     "SOUR_ELGA_ELEC",
                                     "PRES_ELNO_DBEL","PRES_DBEL_DEPL","PRES_ELNO_REEL","PRES_ELNO_IMAG",
                                     "INTE_ELNO_ACTI","INTE_ELNO_REAC",
                                     ) ),
         RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,mode_meca,
                                               mode_stat,evol_noli,mult_elas,fourier_elas,
                                               evol_ther,base_modale,
                                               acou_harmo,mode_acou,mode_flamb) ),
         EXCIT           =FACT(statut='f',min=01,max='**',
             regles=(EXCLUS('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
             CHARGE          =SIMP(statut='o',typ=(char_meca,char_ther,char_acou) ),
             FONC_MULT       =SIMP(statut='f',typ=fonction),
             FONC_MULT_C     =SIMP(statut='f',typ=fonction_c),
             COEF_MULT       =SIMP(statut='f',typ='R'),
             COEF_MULT_C     =SIMP(statut='f',typ='C'),
             PHAS_DEG        =SIMP(statut='f',typ='R'),
             PUIS_PULS       =SIMP(statut='f',typ='I'),
             TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
         ),
         NORME           =SIMP(statut='f',typ='TXM',defaut="VMIS",
                               into=("VMIS","TOTAL","VMIS_CINE","TOTAL_CINE") ),
         NUME_COUCHE     =SIMP(statut='f',typ='I',defaut= 1 ),
         NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
          
         ANGLE           =SIMP(statut='f',typ='I',defaut= 0 ),
         PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ),
         SENSIBILITE     =FACT(statut='f',min=01,max=01,
           THETA           =SIMP(statut='f',typ=(theta_geom) ),
         ),  
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),
         EFGE_REPERE     =FACT(statut='f',min=01,max=01,
             regles=(UN_PARMI('ANGL_REP','VECT_X_Y','VECT_X_Z'),),
             ANGL_REP        =SIMP(statut='f',typ='R',max='**'),
             VECT_X_Y        =SIMP(statut='f',typ='R',max='**'),
             VECT_X_Z        =SIMP(statut='f',typ='R',max='**'),
         ),
         
         TEMP_INIT       =FACT(statut='f',min=01,max='**',
             regles=(EXCLUS('META_INIT','EVOL_THER'),),
             META_INIT       =SIMP(statut='f',typ=carte_meta_r),
             EVOL_THER       =SIMP(statut='f',typ=evol_ther,),
             NUME_INIT       =SIMP(statut='f',typ='I'),
         ),
                 
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHLV L.VIVAN
CALC_FATIGUE=OPER(nom="CALC_FATIGUE",op= 151,sd_prod=cham_elem_dommag,reentrant='n',
                  fr="Calcul d un champ de dommage subi par une structure",
                  docu="U4.83.02-C",                                                                                                                                                                                                             
      regles=(PRESENT_PRESENT('DOMMAGE','MATER', ),),
         OPTION          =SIMP(statut='o',typ='TXM',
                               into=("DOMA_ELNO_SIGM","DOMA_ELGA_SIGM",
                                     "DOMA_ELNO_EPSI","DOMA_ELGA_EPSI",
                                     "DOMA_ELNO_EPME","DOMA_ELGA_EPME") ),
         HISTOIRE        =FACT(statut='o',min=01,max=01,
           RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ),
           EQUI_GD         =SIMP(statut='f',typ='TXM',defaut="VMIS_SG",into=("VMIS_SG","INVA_2_SG") ),
         ),
         DOMMAGE         =SIMP(statut='o',typ='TXM',
                               into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON","TAHERI_MIXTE",) ),
         MATER           =SIMP(statut='o',typ=(mater) ),
         TAHERI_NAPPE    =SIMP(statut='f',typ=(fonction) ),
         TAHERI_FONC     =SIMP(statut='f',typ=(fonction) ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHAB N.RAHNI 
CALC_FLUI_STRU=OPER(nom="CALC_FLUI_STRU",op= 144,sd_prod=melasflu,
                    fr="Calcul des paramètres modaux d une structure soumise à un écoulement, en prenant en compte les forces fluidélastiques",
                    docu="U4.66.02-C",reentrant='n',
         VITE_FLUI       =FACT(statut='o',min=01,max=01,
                               fr="Définir la plage de vitesse fluide étudiée",
           VITE_MIN        =SIMP(statut='o',typ='R' ),
           VITE_MAX        =SIMP(statut='o',typ='R' ),
           NB_POIN         =SIMP(statut='o',typ='I' ),
         ),
         BASE_MODALE     =FACT(statut='o',min=01,max=01,
                               
           regles=(UN_PARMI('AMOR_REDUIT','AMOR_UNIF'),),
           MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
           AMOR_UNIF       =SIMP(statut='f',typ='R' ),
         ),
         TYPE_FLUI_STRU  =SIMP(statut='o',typ=type_flui_stru ),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
                               fr="Choix des informations à imprimer dans le fichier RESULTAT",
           PARA_COUPLAGE   =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           DEFORMEE        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN
CALC_FONC_INTERP=OPER(nom="CALC_FONC_INTERP",op= 134,sd_prod=fonction,
                      fr="Construire un concept de type fonction à partir d une fonction réelle de la variable réelle définie par une FORMULE",
                      docu="U4.32.01-D",reentrant='f',
         regles=(UN_PARMI('VALE_R','LIST_PARA'),),
         FONCTION        =SIMP(statut='o',typ=fonction ),
         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
         VALE_R          =SIMP(statut='f',typ='R',max='**'),
         LIST_PARA       =SIMP(statut='f',typ=listr8 ),
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG","INT") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("EXCLU","CONSTANT","LINEAIRE","INTERPRE") ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
)  ;
#& MODIF COMMANDE  DATE 20/06/2000   AUTEUR ACBHHCD G.DEVESA
def calc_fonction_prod(DERIVE,EXTRACTION,INTEGRE,RMS,MAX,COMB,COMB_C,ENVELOPPE,SPEC_OSCI,FFT,COMPOSE,**args):
  if (RMS != None)        : return tabl_fonc_rms
  if (MAX != None)        : return tabl_fonc_max
  if (INTEGRE != None)    : return fonction
  if (DERIVE != None)     : return fonction
  if (COMB != None)       : return fonction
  if (ENVELOPPE != None)  : return fonction
  if (EXTRACTION != None) : return fonction
  if (SPEC_OSCI != None)  : return fonction
  if (COMB_C != None)     : return fonction_c
  if (COMPOSE != None)    : return fonction
  if (FFT != None)        : 
     vale=FFT.get_child('FONCTION').get_valeur()
     if (AsType(vale) == fonction )  : return fonction_c
     if (AsType(vale) == fonction_c) : return fonction
  raise AsException("type de concept resultat non prevu")

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-E",reentrant='n',
         regles=(UN_PARMI('DERIVE','INTEGRE','SPEC_OSCI','MAX','COMB','ENVELOPPE','RMS',
                          'COMB_C','COMPOSE','EXTRACTION','ASSE','FFT' ),),
         FFT             =FACT(statut='f',min=01,max=01,fr="Calcul de la transformee de Fourier ou de son inverse",
           FONCTION        =SIMP(statut='o',typ=(fonction,fonction_c) )
         ),
         DERIVE          =FACT(statut='f',min=01,max=01,fr="Calcul de la dérivée d une fonction",
           METHODE         =SIMP(statut='f',typ='TXM',defaut="DIFF_CENTREE",into=("DIFF_CENTREE",) ),
           FONCTION        =SIMP(statut='o',typ=fonction ),
         ),
         INTEGRE         =FACT(statut='f',min=01,max=01,fr="Calcul de l intégrale d une fonction",
           METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
           FONCTION        =SIMP(statut='o',typ=fonction),
           COEF            =SIMP(statut='f',typ='R',defaut= 0.E+0,fr="Valeur de la constante d intégration" ),
         ),
         RMS             =FACT(statut='f',min=01,max=01,fr="Calcul de la valeur RMS d une fonction",
           METHODE         =SIMP(statut='f',typ='TXM',defaut="TRAPEZE",into=("SIMPSON","TRAPEZE") ),
           FONCTION        =SIMP(statut='o',typ=fonction ),
           INST_INIT       =SIMP(statut='f',typ='R',fr="Instant initial définissant le début du signal" ),
           INST_FIN        =SIMP(statut='f',typ='R',fr="Instant final définissant la fin du signal" ),
           b_inst          =BLOC ( condition = "(INST_INIT != None) or (INST_FIN != None)",
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           ),  
         ),
         SPEC_OSCI       =FACT(statut='f',min=01,max=01,fr="Calcul du spectre d oscillateur",
           METHODE         =SIMP(statut='f',typ='TXM',defaut="NIGAM",into=("NIGAM",) ),
           FONCTION        =SIMP(statut='o',typ=fonction ),
           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
           LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
           FREQ            =SIMP(statut='f',typ='R',max='**'),
           NORME           =SIMP(statut='f',typ='R',defaut= 9.81,fr="Valeur de la norme du spectre d oscillateur" ),
           NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
           NATURE_FONC     =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("DEPL","VITE","ACCE") ),
         ),
         MAX             =FACT(statut='f',min=01,max=01,fr="Calcul des extrémas locaux d une fonction",
           FONCTION        =SIMP(statut='o',typ=fonction ),
         ),
         COMB            =FACT(statut='f',min=01,max='**',fr="Calcul d une combinaison linéaire réelle de fonctions",
           FONCTION        =SIMP(statut='o',typ=fonction ),
           COEF            =SIMP(statut='o',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
         ),
         COMB_C          =FACT(statut='f',min=01,max='**',fr="Calcul d une combinaison linéaire complexe de fonctions",
           regles=(UN_PARMI('COEF_R','COEF_C'),),
           FONCTION        =SIMP(statut='o',typ=(fonction, fonction_c) ),
           COEF_R          =SIMP(statut='f',typ='R',fr="Coefficient réel de la combinaison linéaire associée à la fonction" ),
           COEF_C          =SIMP(statut='f',typ='C',fr="Coefficient complexe de la combinaison linéaire associée à la fonction" ),
         ),
         b_comb          =BLOC ( condition = " (COMB != None) or (COMB_C != None)",
             LIST_PARA      =SIMP(statut='f',typ=listr8 ),  
         ),
         COMPOSE         =FACT(statut='f',min=01,max=01,fr="Calcul de la composition de deux fonctions FONC_RESU(FONC_PARA)",
           FONC_RESU       =SIMP(statut='o',typ=fonction),
           FONC_PARA       =SIMP(statut='o',typ=fonction),
         ),
         EXTRACTION      =FACT(statut='f',min=01,max=01,fr="Opération d extraction sur une fonction complexe",
           FONCTION        =SIMP(statut='o',typ=fonction_c),
           PARTIE          =SIMP(statut='o',typ='TXM',into=("REEL","IMAG","MODULE","PHASE"),fr="Partie à extraire"),
         ),
         ENVELOPPE       =FACT(statut='f',min=01,max=01,fr="Calcul de l enveloppe d une famille de fonctions",
           FONCTION        =SIMP(statut='o',typ=fonction,max='**' ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="SUP",into=("SUP","INF"),fr="Type de l enveloppe" ),
         ),
         ASSE            =FACT(statut='f',min=01,max=01,fr="Création à partir de la concatenation de fonctions",
           FONCTION        =SIMP(statut='o',typ=fonction,max='**' ),
           SURCHARGE       =SIMP(statut='f',typ='TXM',defaut="DROITE",into=("DROITE","GAUCHE")),
         ),
         NOM_PARA        =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
                                                          "INST","X","Y","Z","EPSI","FREQ","PULS",
                                                          "AMOR","ABSC") ),
         NOM_RESU        =SIMP(statut='f',typ='TXM' ),
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
                                                          "INST","X","Y","Z","EPSI","FREQ","PULS",
                                                          "AMOR","ABSC") ),
         INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
         PROL_DROIT_FONC =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR VABHHTS J.PELLET 
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-E",reentrant='n',
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         FOND            =SIMP(statut='o',typ=fond_fiss),
         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'), ),
                         
         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",
             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
             LIST_ORDRE      =SIMP(statut='f',typ=listis),
             INST            =SIMP(statut='f',typ='R',max='**'),
             LIST_INST       =SIMP(statut='f',typ=listr8),
             
             b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             ),
         ),
 
         CHARGE          =SIMP(statut='f',typ=char_meca,max='**'),
         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
 
         COMP_ELAS       =FACT(statut='f',min=01,max=01,
               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
                                     into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
               GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
               MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
 
         COMP_INCR       =FACT(statut='f',min=01,max=01,
               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
                                     into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
               VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
               VMIS_CINE_LINE  =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
               GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
               MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
         
         ETAT_INIT       =FACT(statut='f',min=01,max=01,
           SIGM            =SIMP(statut='f',typ=cham_elem_sief_r),
           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
         ),

         OPTION          =SIMP(statut='f',typ='TXM',defaut="CALC_G",into=("CALC_G","CALC_G_LGLO") ),
         b_g_lglo        =BLOC(condition="OPTION=='CALC_G_LGLO'",
           PROPAGATION     =SIMP(statut='o',typ='R'),
           THETA           =SIMP(statut='o',typ=theta_geom),
           DIRE_THETA      =SIMP(statut='f',typ=cham_no_depl_r),
         ), 
 
         LISSAGE_THETA   =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE") ),
         LISSAGE_G       =SIMP(statut='f',typ='TXM',defaut="LEGENDRE",into=("LEGENDRE","LAGRANGE","LAGRANGE_NO_NO",) ),
          
         DEGRE           =SIMP(statut='f',typ='I',defaut=5,into=(0,1,2,3,4,5,6,7) ),

         R_INF           =SIMP(statut='f',typ='R'),
         R_SUP           =SIMP(statut='f',typ='R'),
         R_INF_FO        =SIMP(statut='f',typ=fonction),
         R_SUP_FO        =SIMP(statut='f',typ=fonction),
 
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR VABHHTS J.PELLET 
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-E",reentrant='n',
         regles=(UN_PARMI('RESULTAT','DEPL'),
                 EXCLUS('COMP_ELAS','COMP_INCR'),),
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         THETA           =SIMP(statut='o',typ=theta_geom),
         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",
           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST'),),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           LIST_ORDRE      =SIMP(statut='f',typ=listis),
           INST            =SIMP(statut='f',typ='R',max='**'),
           LIST_INST       =SIMP(statut='f',typ=listr8),
            
           b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)",
             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           ),
         ),

         CHARGE          =SIMP(statut='f',typ=char_meca,max='**'),
         SYME_CHAR       =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SYME","ANTI","SANS") ),
 
         COMP_ELAS       =FACT(statut='f',min=01,max=01,
               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
                                     into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC") ),
               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN") ),
               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
               GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
               MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),  
         COMP_INCR       =FACT(statut='f',min=01,max=01,
               RELATION        =SIMP(statut='f',typ='TXM',defaut="ELAS",
                                     into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_CINE_LINE") ),
               ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
               VMIS_ISOT_TRAC  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
               VMIS_ISOT_LINE  =SIMP(statut='f',typ='I',defaut=2,into=(2,) ),
               VMIS_CINE_LINE  =SIMP(statut='f',typ='I',defaut=7,into=(7,) ),
               DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC") ),
               TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
               GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
               MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
         ETAT_INIT       =FACT(statut='f',min=01,max=01,
           SIGM            =SIMP(statut='f',typ=cham_elem_sief_r),
           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
         ),
         OPTION          =SIMP(statut='f',typ='TXM',defaut="CALC_G",
                               into=("CALC_G","CALC_G_LAGR","CALC_K_G","G_BILINEAIRE","CALC_G_MAX") ),
         b_calc_g_max    =BLOC(condition="OPTION=='CALC_G_MAX'",
           BORNES          =FACT(statut='o',min=01,max='**',
                NUME_ORDRE     =SIMP(statut='o',typ='I'),
                VALE_MIN       =SIMP(statut='o',typ='R'),
                VALE_MAX       =SIMP(statut='o',typ='R'),
                                ),
         ),
         b_calc_k_g      =BLOC(condition="OPTION=='CALC_K_G'",
           FOND            =SIMP(statut='o',typ=fond_fiss),
         ),
         b_calc_g_lagr   =BLOC(condition="OPTION=='CALC_G_LAGR'",
           PROPAGATION     =SIMP(statut='o',typ='R'),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 04/02/98   AUTEUR CIBHHLV L.VIVAN 
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',
         INST_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         INST_FIN        =SIMP(statut='o',typ='R' ),
         DUREE_ANALYSE   =SIMP(statut='f',typ='R' ),
         DUREE_DECALAGE  =SIMP(statut='f',typ='R' ),
         NB_POIN         =SIMP(statut='o',typ='I' ),
         FONCTION        =SIMP(statut='o',typ=fonction,max='**' ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 19/05/2000   AUTEUR JFBHHUC C.ROSE
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',
         regles=(EXCLUS('MODE_MECA','CHAM_NO','MODELE_GENE'),
                 PRESENT_ABSENT('NUME_DDL_GENE','CHAM_NO'),
                 PRESENT_PRESENT('MODELE_GENE','NUME_DDL_GENE'),),
         MODELE_FLUIDE   =SIMP(statut='o',typ=modele ),
         MODELE_INTERFACE=SIMP(statut='o',typ=modele ),         
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
         CHARGE          =SIMP(statut='o',typ=char_ther ),
         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
         CHAM_NO         =SIMP(statut='f',typ=cham_no_depl_r ),
         MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
         NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene ), 
         DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.E-2 ),   
         AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         NUME_MODE_MECA  =SIMP(statut='f',typ='I',max='**'),
         OPTION          =SIMP(statut='o',typ='TXM',into=("MASS_AJOU","AMOR_AJOU","RIGI_AJOU") ),
         POTENTIEL       =SIMP(statut='f',typ=evol_ther ),
         NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),

         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC( condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult     =BLOC( condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc          =BLOC (condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR VABHHTS J.PELLET 
def calc_matr_elem_prod(OPTION,**args):
  if OPTION == "RIGI_MECA"        : return matr_elem_depl_r
  if OPTION == "RIGI_FLUI_STRU"   : return matr_elem_depl_r
  if OPTION == "RIGI_MECA_LAGR"   : return matr_elem_depl_r
  if OPTION == "MASS_MECA"        : return matr_elem_depl_r
  if OPTION == "MASS_FLUI_STRU"   : return matr_elem_depl_r
  if OPTION == "RIGI_GEOM"        : return matr_elem_depl_r
  if OPTION == "RIGI_ROTA"        : return matr_elem_depl_r
  if OPTION == "AMOR_MECA"        : return matr_elem_depl_r
  if OPTION == "IMPE_MECA"        : return matr_elem_depl_r
  if OPTION == "ONDE_FLUI"        : return matr_elem_depl_r
  if OPTION == "RIGI_MECA_HYST"   : return matr_elem_depl_c
  if OPTION == "RIGI_THER"        : return matr_elem_temp_r
  if OPTION == "MASS_THER"        : return matr_elem_temp_r
  if OPTION == "MASS_MECA_DIAG"   : return matr_elem_depl_r
  if OPTION == "RIGI_ACOU"        : return matr_elem_pres_c
  if OPTION == "MASS_ACOU"        : return matr_elem_pres_c
  if OPTION == "AMOR_ACOU"        : return matr_elem_pres_c
  raise AsException("type de concept resultat non prevu")

CALC_MATR_ELEM=OPER(nom="CALC_MATR_ELEM",op=   9,sd_prod=calc_matr_elem_prod
                    ,fr="Calcul des matrices élémentaires",docu="U4.61.01-F",reentrant='n',
         OPTION          =SIMP(statut='o',typ='TXM',
                               into=("RIGI_MECA","MASS_MECA","RIGI_GEOM",
                                     "AMOR_MECA","RIGI_THER","MASS_THER","IMPE_MECA",
                                     "ONDE_FLUI","MASS_FLUI_STRU","RIGI_FLUI_STRU",
                                     "RIGI_ROTA","MASS_MECA_DIAG","RIGI_ACOU",
                                     "MASS_ACOU","AMOR_ACOU","RIGI_MECA_HYST",
                                     "RIGI_MECA_LAGR") ),

         b_rigi_meca = BLOC( condition = "OPTION=='RIGI_MECA'",
           regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
           MODELE          =SIMP(statut='f',typ=modele ),
           b_modele        =BLOC(condition = "MODELE != None",
             CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
             CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
             MODE_FOURIER    =SIMP(statut='f',typ='I',defaut= 0 ),
           ),
           CHARGE          =SIMP(statut='f',typ=char_meca,max='**' ),
           b_charge        =BLOC (condition = "CHARGE != None",
             INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
         ),

         b_rigi_meca_lagr  =BLOC(condition = "OPTION=='RIGI_MECA_LAGR'",
           MODELE            =SIMP(statut='o',typ=modele ),
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
           CHARGE            =SIMP(statut='f',typ=char_meca,max='**'  ),
           b_charge        =BLOC(condition = "CHARGE != None",
             INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
           THETA           =SIMP(statut='o',typ=theta_geom ),
           PROPAGATION     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),

         b_mass_meca       =BLOC(condition = "(OPTION=='MASS_MECA') or (OPTION=='MASS_MECA_DIAG')",
           regles=(AU_MOINS_UN('MODELE','CHARGE'),),
           MODELE          =SIMP(statut='f',typ=modele ),
           b_modele          =BLOC(condition = "MODELE != None",
             CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
             CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
           ),
           CHARGE          =SIMP(statut='f',typ=char_meca,max='**' ),
           b_charge        =BLOC(condition = "CHARGE != None",
             INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
         ),

         b_rigi_geom       =BLOC(condition = "OPTION=='RIGI_GEOM'",
           MODELE            =SIMP(statut='o',typ=modele ),
           CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
           SIEF_ELGA         =SIMP(statut='o',typ=cham_elem_sief_r ),
           MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
         ),

         b_rigi_rota       =BLOC(condition = "OPTION=='RIGI_ROTA'",
           MODELE            =SIMP(statut='o',typ=modele ),
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
           CHARGE            =SIMP(statut='o',typ=char_meca,max='**' ),
           INST              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),

         b_amor_meca       =BLOC(condition = "OPTION=='AMOR_MECA'",
           regles=(AU_MOINS_UN('CARA_ELEM','RIGI_MECA'),
                   ENSEMBLE('RIGI_MECA','MASS_MECA','CHAM_MATER'), ),
           MODELE            =SIMP(statut='o',typ=modele ),
           CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
           CHAM_MATER        =SIMP(statut='f',typ=cham_mater ),
           RIGI_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
           MASS_MECA         =SIMP(statut='f',typ=matr_elem_depl_r ),
           CHARGE            =SIMP(statut='f',typ=char_meca ,max='**' ),
         ),

         b_rigi_meca_hyst  =BLOC( condition = "OPTION=='RIGI_MECA_HYST'",
           MODELE            =SIMP(statut='o',typ=modele ),
           CHARGE            =SIMP(statut='o',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 ),
         ),

         b_rigi_ther       =BLOC(condition = "OPTION=='RIGI_THER'",
           regles=(AU_MOINS_UN('MODELE','CHARGE' ),),
           MODELE            =SIMP(statut='f',typ=modele ),
           b_modele          =BLOC(condition = "MODELE != None",
             CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
             CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
             MODE_FOURIER      =SIMP(statut='f',typ='I',defaut= 0 ),
           ),
           CHARGE            =SIMP(statut='f',typ=char_ther,max='**' ),
         ),

         b_mass_ther       =BLOC(condition = "OPTION=='MASS_THER'",
           MODELE            =SIMP(statut='o',typ=modele ),
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
           CARA_ELEM         =SIMP(statut='f',typ=cara_elem ),
         ),

         b_rigi_acou       =BLOC(condition = "(OPTION=='RIGI_ACOU') or (OPTION=='MASS_ACOU') or (OPTION=='AMOR_ACOU')",
           MODELE            =SIMP(statut='o',typ=modele ),
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
           CHARGE            =SIMP(statut='f',typ=char_acou ,max='**' ),
         ),

         b_rigi_flui       =BLOC(condition = "(OPTION=='RIGI_FLUI_STRU') or (OPTION=='MASS_FLUI_STRU')",
           MODELE            =SIMP(statut='o',typ=modele ),
           CARA_ELEM         =SIMP(statut='o',typ=cara_elem ),
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
           CHARGE            =SIMP(statut='o',typ=char_meca ,max='**' ),
           INST              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),

         b_impe_meca       =BLOC(condition = "(OPTION=='IMPE_MECA') or (OPTION=='ONDE_FLUI')",
           MODELE            =SIMP(statut='o',typ=modele ),
           CHARGE            =SIMP(statut='o',typ=char_meca,max='**' ),
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
         ),

         b_rigi_conv       =BLOC( condition = "(OPTION=='RIGI_THER_CONV') or (OPTION=='RIGI_THER_CONV_D')",
           MODELE            =SIMP(statut='o',typ=modele ),
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater ),
           CHARGE            =SIMP(statut='o',typ=char_ther,max='**' ),
         ),

)  ;
#& MODIF COMMANDE  DATE 04/07/2000   AUTEUR JMBHH01 J.M.PROIX 
CALC_META=OPER(nom="CALC_META",op=194,sd_prod=evol_ther,docu="U4.85.01-A",reentrant='o',
               fr="Calcule la métallurgie à partir du résultat du calcul thermique",
         MODELE          =SIMP(statut='o',typ=modele ),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
         RESULTAT        =SIMP(statut='o',typ=evol_ther ),
         ETAT_INIT       =FACT(statut='o',min=01,max=01,
      regles=(UN_PARMI('NUME_INIT','META_INIT',),),
           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
           NUME_INIT       =SIMP(statut='f',typ='I' ),  
           META_INIT       =SIMP(statut='f',typ=carte_var2_r ),
         ),
         COMP_INCR       =FACT(statut='o',min=01,max='**',
           RELATION        =SIMP(statut='o',typ='TXM',into=("ACIER","ZIRC",) ),
           ACIER           =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           ZIRC            =SIMP(statut='c',typ='I',defaut=3,into=(3,) ),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma),
           MAILLE          =SIMP(statut='f',typ=ma),
         ),
         OPTION          =SIMP(statut='f',typ='TXM'     
                             ,into=("META_ELNO_TEMP",) ),
)  ;
#& MODIF COMMANDE  DATE 12/05/2000   AUTEUR CIBHHAB N.RAHNI
def calc_no_prod(RESULTAT,**args):
  if AsType(RESULTAT) == evol_elas :    return evol_elas
  if AsType(RESULTAT) == evol_noli :    return evol_noli
  if AsType(RESULTAT) == evol_ther :    return evol_ther
  if AsType(RESULTAT) == mode_meca :    return mode_meca
  if AsType(RESULTAT) == mode_stat :    return mode_stat
  if AsType(RESULTAT) == mode_acou :    return mode_acou
  if AsType(RESULTAT) == mult_elas :    return mult_elas
  if AsType(RESULTAT) == dyna_trans :   return dyna_trans
  if AsType(RESULTAT) == dyna_harmo :   return dyna_harmo
  if AsType(RESULTAT) == acou_harmo :   return acou_harmo
  if AsType(RESULTAT) == fourier_elas : return fourier_elas
  if AsType(RESULTAT) == mode_flamb :   return mode_flamb 
  if AsType(RESULTAT) == base_modale :  return base_modale
  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-E",reentrant='o',
             fr="Compléter un résultat en calculant un champ aux noeuds (forces nodales à partir d un champ de contraintes aux points de GAUSS)",
         RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,
                                               mode_acou,mode_stat,evol_ther,evol_noli,base_modale,
                                               mult_elas,fourier_elas,mode_flamb ) ),

         MODELE          =SIMP(statut='f',typ=modele),
         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
                        'NOEUD_CMP','LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS'),),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
         NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
         NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
         NOM_CAS         =SIMP(statut='f',typ='TXM' ),
         INST            =SIMP(statut='f',typ='R',max='**'),
         FREQ            =SIMP(statut='f',typ='R',max='**'),
         LIST_INST       =SIMP(statut='f',typ=listr8),
         LIST_FREQ       =SIMP(statut='f',typ=listr8),
         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
         LIST_ORDRE      =SIMP(statut='f',typ=listis),
           
         OPTION          =SIMP(statut='o',typ='TXM',max='**'),
         
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         GEOMETRIE       =SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE") ),
         EXCIT           =FACT(statut='f',min=01,max='**',
           CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou) ),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",
                                 into=("FIXE_CSTE","FIXE_PILO","SUIV") ),
         ),
         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         TAILLE_BLOC     =SIMP(statut='f',typ='R' ,defaut= 400. ),
)  ;
#& MODIF COMMANDE  DATE 20/10/1999   AUTEUR DURAND C.DURAND 
CALC_THETA=OPER(nom="CALC_THETA",op=54,sd_prod=theta_geom,docu="U4.82.02-D",reentrant='n',
                fr="Affectation d un champ sur le maillage (mécanique de la rupture)",
         regles=(UN_PARMI('THETA_2D','THETA_3D','THETA_BANDE'),
                 PRESENT_PRESENT('THETA_3D','FOND_3D'),
                 PRESENT_ABSENT('THETA_2D','DIRE_THETA'),
                 EXCLUS('DIRECTION','DIRE_THETA'),),
         OPTION          =SIMP(statut='f',typ='TXM',defaut="COURONNE",into=("COURONNE","BANDE") ),
         MODELE          =SIMP(statut='o',typ=(modele) ),
         FOND_3D         =SIMP(statut='f',typ=(fond_fiss) ),
         THETA_3D        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_NO','NOEUD'),
                   UN_PARMI('MODULE','MODULE_FO'),
                   ENSEMBLE('MODULE','R_INF','R_SUP'),
                   ENSEMBLE('MODULE_FO','R_INF_FO','R_SUP_FO'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           MODULE          =SIMP(statut='f',typ='R'),
           R_INF           =SIMP(statut='f',typ='R'),
           R_SUP           =SIMP(statut='f',typ='R'),
           MODULE_FO       =SIMP(statut='f',typ=fonction),
           R_INF_FO        =SIMP(statut='f',typ=fonction),
           R_SUP_FO        =SIMP(statut='f',typ=fonction),
                         ),
         DIRE_THETA      =SIMP(statut='f',typ=(cham_no_depl_r) ),
         DIRECTION       =SIMP(statut='f',typ='R',max='**'),
         THETA_2D        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_NO','NOEUD'),),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           MODULE          =SIMP(statut='o',typ='R'),
           R_INF           =SIMP(statut='o',typ='R'),
           R_SUP           =SIMP(statut='o',typ='R'),
         ),
         THETA_BANDE     =FACT(statut='f',min=01,max='**',
           MODULE          =SIMP(statut='o',typ='R'),
           R_INF           =SIMP(statut='o',typ='R'),
           R_SUP           =SIMP(statut='o',typ='R'),
         ),
         GRAD_NOEU_THETA =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",into=("EXCEL","AGRAF") ),
         ),
)  ;
#& MODIF COMMANDE  DATE 11/01/99   AUTEUR VABHHTS J.PELLET 
def calc_vect_elem_prod(OPTION,**args):
  if OPTION == "CHAR_MECA" :      return vect_elem_depl_r
  if OPTION == "CHAR_MECA_LAGR" : return vect_elem_depl_r
  if OPTION == "CHAR_THER" :      return vect_elem_temp_r
  if OPTION == "CHAR_ACOU" :      return vect_elem_pres_c
  if OPTION == "FORC_NODA" :      return vect_elem_depl_r
  raise AsException("type de concept resultat non prevu")

CALC_VECT_ELEM=OPER(nom="CALC_VECT_ELEM",op=8,sd_prod=calc_vect_elem_prod,docu="U4.61.02-F",reentrant='n',
                    fr="Calcul des seconds membres élémentaires",
         OPTION          =SIMP(statut='o',typ='TXM',into=("CHAR_MECA","CHAR_THER","CHAR_ACOU",
                                                           "FORC_NODA","CHAR_MECA_LAGR") ),
         b_char_meca     =BLOC(condition = "OPTION=='CHAR_MECA'",
           regles=(AU_MOINS_UN('CHARGE','MODELE'),),
           CHARGE          =SIMP(statut='f',typ=char_meca,max='**'),
           MODELE          =SIMP(statut='f',typ=modele),
           b_charge     =BLOC(condition = "CHARGE != None", fr="modèle ne contenant pas de sous-structure",
              CHAM_MATER   =SIMP(statut='f',typ=cham_mater),
              CARA_ELEM    =SIMP(statut='f',typ=cara_elem),
              INST         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
              MODE_FOURIER =SIMP(statut='f',typ='I',defaut= 0 ),
           ),  
           b_modele     =BLOC(condition = "(MODELE != None)",fr="modèle contenant une sous-structure",
              SOUS_STRUC      =FACT(statut='o',min=01,
                regles=(UN_PARMI('TOUT','MAILLE'),),
                CAS_CHARGE  =SIMP(statut='o',typ='TXM' ),
                TOUT        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
                MAILLE      =SIMP(statut='f',typ=ma,max='**',),
              ),
           ),
         ),
         b_char_ther     =BLOC(condition = "OPTION=='CHAR_THER'",
           CARA_ELEM        =SIMP(statut='f',typ=cara_elem),
           CHARGE           =SIMP(statut='o',typ=char_ther,max='**'),
           INST             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
              
         b_char_acou     =BLOC(condition = "OPTION=='CHAR_ACOU'",
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
           CHARGE            =SIMP(statut='o',typ=char_acou,max='**'),
         ),
         
         b_forc_noda     =BLOC(condition = "OPTION=='FORC_NODA'",
           SIEF_ELGA         =SIMP(statut='o',typ=cham_elem_sief_r),
           CARA_ELEM         =SIMP(statut='f',typ=cara_elem),
           MODELE            =SIMP(statut='f',typ=modele),
         ),
         
         b_meca_lagr     =BLOC(condition = "OPTION=='CHAR_MECA_LAGR'",
           CHAM_MATER        =SIMP(statut='o',typ=cham_mater),
           THETA             =SIMP(statut='o',typ=theta_geom),
           PROPAGATION       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           CHARGE            =SIMP(statut='f',typ=char_meca,max='**'),
           INST              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
) ;
#& MODIF COMMANDE  DATE 31/10/2000   AUTEUR VABHHTS J.PELLET 
def comb_cham_elem_prod(COMB_R=None,COMB_C=None,COMB_FOURIER=None,**args):

  if COMB_R != None:
    vale=COMB_R.get_child('CHAM_ELEM').get_valeur()
  elif COMB_C != None:
    vale=COMB_C.get_child('CHAM_ELEM').get_valeur()
  elif COMB_FOURIER != None:
    vale=COMB_FOURIER.get_child('CHAM_ELEM').get_valeur()
  else :
    raise AsException("type de concept resultat non prevu")

  if AsType(vale) == cham_elem_sief_r : return cham_elem_sief_r
  if AsType(vale) == cham_elem_flux_r : return cham_elem_flux_r
  if AsType(vale) == cham_elem_epsi_r : return cham_elem_epsi_r
  if AsType(vale) == cham_elem_ener_r : return cham_elem_ener_r
  if AsType(vale) == cham_elem_crit_r : return cham_elem_crit_r
  if AsType(vale) == cham_elem_dbel_r : return cham_elem_dbel_r
  if AsType(vale) == cham_elem_pres_r : return cham_elem_pres_r
  if AsType(vale) == cham_elem_sief_c : return cham_elem_sief_c
  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",
      regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),
              PRESENT_PRESENT('COMB_FOURIER','ANGL'),),
      COMB_R          =FACT(statut='f',min=01,max='**',
        PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
        COEF_R          =SIMP(statut='o',typ='R'),
        CHAM_ELEM       =SIMP(statut='o',
                              typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r,
                                   cham_elem_ener_r,cham_elem_crit_r,cham_elem_dbel_r,
                                   cham_elem_pres_r,cham_elem_sief_c ) ),
      ),
      COMB_C          =FACT(statut='f',min=01,max='**',
        regles=(UN_PARMI('COEF_R','COEF_C', ),),
        COEF_R          =SIMP(statut='f',typ='R'),
        COEF_C          =SIMP(statut='f',typ='C'),
        CHAM_ELEM       =SIMP(statut='o',typ=(cham_elem_sief_r) ),
      ),
      COMB_FOURIER    =FACT(statut='f',min=01,max='**',
        COEF_R          =SIMP(statut='f',typ='R',defaut= 1.),
        NUME_MODE       =SIMP(statut='o',typ='I'),
        TYPE_MODE       =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
        CHAM_ELEM       =SIMP(statut='o',typ=(cham_elem_sief_r,cham_elem_flux_r,cham_elem_epsi_r ) ),
      ),
      ANGL            =SIMP(statut='f',typ='R' ),
)  ;

#& MODIF COMMANDE DATE 08/03/94 AUTEUR VABHHT2 G.BERTRAND
def comb_cham_no_prod(COMB_R,COMB_C,COMB_FOURIER,**args):
  if COMB_C != None:
    type_mat = AsType(COMB_C.get_child('CHAM_NO').get_valeur())
    if type_mat in  (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_c
    if type_mat in  (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_c
    if type_mat in  (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_c
  elif COMB_R != None:
    type_mat = AsType(COMB_R.get_child('CHAM_NO').get_valeur())
    if type_mat in  (cham_no_depl_c,cham_no_depl_r) : return cham_no_depl_r
    if type_mat in  (cham_no_temp_c,cham_no_temp_r) : return cham_no_temp_r
    if type_mat in  (cham_no_pres_c,cham_no_pres_r) : return cham_no_pres_r
    if type_mat ==  matr_asse_gene_r : return matr_asse_gene_r
  elif COMB_FOURIER != None:
    type_mat = AsType(COMB_FOURIER.get_child('CHAM_NO').get_valeur())
    if type_mat == cham_no_temp_r : return cham_no_temp_r
    if type_mat == cham_no_depl_r : return cham_no_depl_r
  raise AsException("type de concept resultat non prevu")


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',
         regles=(UN_PARMI('COMB_R','COMB_C','COMB_FOURIER'),),
         COMB_R          =FACT(statut='f',min=01,max='**',
           PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG",) ),
           CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_temp_c,cham_no_depl_r,cham_no_depl_c
                                                ,cham_no_pres_r,cham_no_pres_c ) ),
           COEF_R          =SIMP(statut='o',typ='R' ),
         ),
         COMB_C          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('COEF_R','COEF_C' ),),
           CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,cham_no_temp_c
                                                ,cham_no_depl_c,cham_no_pres_c ) ),
           COEF_R          =SIMP(statut='f',typ='R' ),
           COEF_C          =SIMP(statut='f',typ='C' ),
         ),
         COMB_FOURIER    =FACT(statut='f',min=01,max='**',
           CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r) ),
           COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),
           NUME_MODE       =SIMP(statut='o',typ='I' ),
           TYPE_MODE       =SIMP(statut='o',typ='TXM',into=("SYME","ANTI") ),
         ),
         b_angl = BLOC ( condition = "COMB_FOURIER != None",
           ANGL            =SIMP(statut='o',typ='R' ),
         ),
)  ;
#& MODIF COMMANDE  DATE 08/11/95   AUTEUR CIBHHLV L.VIVAN 
COMB_FOURIER=OPER(nom="COMB_FOURIER",op= 161,sd_prod=comb_fourier,
                  fr="Recombinaison de FOURIER de tous les modes se trouvant dans la structure de données de type resultat dans une ou des directions particulières",
                  docu="U4.83.31-C",reentrant='n',
         RESULTAT        =SIMP(statut='o',typ=fourier_elas ),
         ANGL            =SIMP(statut='o',typ='R',max='**'),
         NOM_CHAM        =SIMP(statut='o',typ='TXM',max=05,
                               into=("DEPL","REAC_NODA","SIEF_ELGA_DEPL","EPSI_ELNO_DEPL","SIGM_ELNO_DEPL") ),
)  ;
#& MODIF COMMANDE DATE 06/10/94 AUTEUR BIBERON G.ROUSSEAU
def comb_matr_asse_prod(COMB_R,COMB_C,**args):
  if COMB_C != None:
    type_mat = AsType(COMB_C.get_child('MATR_ASSE').get_valeur())
    if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_c
    if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_c
    if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_c
    if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_c
  elif COMB_R != None:
    type_mat = AsType(COMB_R.get_child('MATR_ASSE').get_valeur())
    if type_mat in  (matr_asse_depl_c,matr_asse_depl_r) : return matr_asse_depl_r
    if type_mat in  (matr_asse_temp_c,matr_asse_temp_r) : return matr_asse_temp_r
    if type_mat in  (matr_asse_pres_c,matr_asse_pres_r) : return matr_asse_pres_r
    if type_mat in  (matr_asse_gene_c,matr_asse_gene_r) : return matr_asse_gene_r
  raise AsException("type de concept resultat non prevu")

COMB_MATR_ASSE=OPER(nom="COMB_MATR_ASSE",op=  31,sd_prod=comb_matr_asse_prod,
                    fr="Combinaison linéaire de matrices assemblées",
                    docu="U4.72.01-F",reentrant='f',
         regles=(UN_PARMI('COMB_R','COMB_C' ),),
         COMB_R          =FACT(statut='f',min=01,max='**',
           PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),
           MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,
                                                 matr_asse_temp_r,matr_asse_temp_c,
                                                 matr_asse_pres_r,matr_asse_pres_c,
                                                 matr_asse_gene_r,matr_asse_gene_c ) ),
           COEF_R          =SIMP(statut='o',typ='R' ),
         ),
         COMB_C          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('COEF_R','COEF_C' ),),
           MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,
                                                 matr_asse_temp_r,matr_asse_temp_c,
                                                 matr_asse_pres_r,matr_asse_pres_c,
                                                 matr_asse_gene_r,matr_asse_gene_c ) ),
           COEF_R          =SIMP(statut='f',typ='R' ),
           COEF_C          =SIMP(statut='f',typ='C' ),
         ),
         SANS_CMP        =SIMP(statut='f',typ='TXM',into=("LAGR",) ),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHAB N.RAHNI 
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-D",reentrant='n',
         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ','LIST_ORDRE'),
                 UN_PARMI('AMOR_REDUIT','LIST_AMOR','AMOR_GENE' ),),
         MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
         LIST_ORDRE      =SIMP(statut='f',typ=listis ),
         NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
         FREQ            =SIMP(statut='f',typ='R',max='**'),
         LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
         b_freq          =BLOC(condition = "FREQ != None or LIST_FREQ != None",
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
         ),
         ACCE_UNIF       =SIMP(statut='f',typ=mode_stat ),
         
         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
         LIST_AMOR       =SIMP(statut='f',typ=listr8 ),
         AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
         
         MASS_INER       =SIMP(statut='f',typ=tabl_mass_iner ),
         CORR_FREQ       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         
         EXCIT           =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('MONO_APPUI','NOEUD','GROUP_NO'),
                   UN_PARMI('AXE','TRI_AXE','TRI_SPEC' ),),
           
           MONO_APPUI      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           AXE             =SIMP(statut='f',fr="Excitation suivant un seul axe",
                                 typ='R',max=03),  
           TRI_AXE         =SIMP(statut='f',fr="Excitation suivant les trois axes mais avec le meme spectre",
                                 typ='R',max=03),
           TRI_SPEC        =SIMP(statut='f',fr="Excitation suivant les trois axes  avec trois spectres",
                                 typ='TXM',into=("OUI",) ),
           b_axe           =BLOC(condition = "AXE != None",fr="Excitation suivant un seul axe",
             SPEC_OSCI       =SIMP(statut='o',typ=fonction,max=01 ),
             ECHELLE         =SIMP(statut='f',typ='R',max=01),
           ),
           b_tri_axe       =BLOC(condition = "TRI_AXE != None",fr="Excitation suivant les trois axes mais avec le meme spectre",
             SPEC_OSCI       =SIMP(statut='o',typ=fonction,max=01 ),
             ECHELLE         =SIMP(statut='f',typ='R',max=01),
           ),
           b_tri_spec      =BLOC(condition = "TRI_SPEC != None",fr="Excitation suivant les trois axes  avec trois spectres",
             SPEC_OSCI       =SIMP(statut='o',typ=fonction,min=03,max=03 ),
             ECHELLE         =SIMP(statut='f',typ='R',min=03,max=03),
           ),       
           NATURE          =SIMP(statut='f',typ='TXM',defaut="ACCE",into=("ACCE","VITE","DEPL") ),
         ),
         COMB_MODE       =FACT(statut='o',min=01,max=01,
           TYPE            =SIMP(statut='o',typ='TXM',into=("SRSS","CQC","DSC","ABS","DPC") ),
           DUREE           =SIMP(statut='f',typ='R' ),
         ),
         COMB_DIRECTION  =FACT(statut='f',min=01,max=01,
           TYPE            =SIMP(statut='f',typ='TXM',into=("QUAD","NEWMARK") ),
         ),
         COMB_MULT_APPUI =FACT(statut='f',min=01,max='**',
           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            =SIMP(statut='o',typ='TXM',into=("QUAD","LINE","ABS") ),
         ),
         DEPL_MULT_APPUI =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD','GROUP_NO'),
                   AU_MOINS_UN('DX','DY','DZ' ),),
           MODE_STAT       =SIMP(statut='f',typ=mode_stat ),
           NOEUD_REFE      =SIMP(statut='f',typ=no),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           DX              =SIMP(statut='f',typ='R' ),
           DY              =SIMP(statut='f',typ='R' ),
           DZ              =SIMP(statut='f',typ='R' ),
         ),
         OPTION          =SIMP(statut='o',typ='TXM',max=10,
                               into=("DEPL","VITE","ACCE_ABSOLU","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",
                                     "EFGE_ELNO_DEPL","REAC_NODA","FORC_NODA","EFGE_ELNO_CART",
                                     "SIPO_ELNO_DEPL",) ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
         IMPRESSION      =FACT(statut='f',min=01,max='**',
           regles=(EXCLUS('TOUT','NIVEAU'),),
           TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           NIVEAU          =SIMP(statut='f',typ='TXM',into=("SPEC_OSCI","MASS_EFFE","MAXI_GENE"),max=03 ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 04/12/2000   AUTEUR VABHHTS J.PELLET 
def crea_champ_prod(TYPE_CHAM,**args):
  if TYPE_CHAM == "CART_DBEL_R" : return carte_dbel_r
  if TYPE_CHAM == "CART_DEPL_C" : return carte_depl_c
  if TYPE_CHAM == "CART_DEPL_F" : return carte_depl_f
  if TYPE_CHAM == "CART_DEPL_R" : return carte_depl_r
  if TYPE_CHAM == "CART_DURT_R" : return carte_durt_r
  if TYPE_CHAM == "CART_ENER_R" : return carte_ener_r
  if TYPE_CHAM == "CART_EPSI_R" : return carte_epsi_r
  if TYPE_CHAM == "CART_ERREUR" : return carte_erreur
  if TYPE_CHAM == "CART_FLUX_R" : return carte_flux_r
  if TYPE_CHAM == "CART_GEOM_R" : return carte_geom_r
  if TYPE_CHAM == "CART_G_DEPL_R" : return carte_g_depl_r
  if TYPE_CHAM == "CART_HYDR_R" : return carte_hydr_r
  if TYPE_CHAM == "CART_INST_R" : return carte_inst_r
  if TYPE_CHAM == "CART_INTE_R" : return carte_inte_r
  if TYPE_CHAM == "CART_META_R" : return carte_meta_r
  if TYPE_CHAM == "CART_NEUT_F" : return carte_neut_f
  if TYPE_CHAM == "CART_NEUT_R" : return carte_neut_r
  if TYPE_CHAM == "CART_PRES_R" : return carte_pres_r
  if TYPE_CHAM == "CART_SIEF_R" : return carte_sief_r
  if TYPE_CHAM == "CART_SOUR_R" : return carte_sour_r
  if TYPE_CHAM == "CART_TEMP_F" : return carte_temp_f
  if TYPE_CHAM == "CART_TEMP_R" : return carte_temp_r
  if TYPE_CHAM == "CART_VAR2_R" : return carte_var2_r
  if TYPE_CHAM == "CART_VNOR_C" : return carte_vnor_c
  if TYPE_CHAM == "NOEU_DBEL_R" : return cham_no_dbel_r
  if TYPE_CHAM == "NOEU_DEPL_C" : return cham_no_depl_c
  if TYPE_CHAM == "NOEU_DEPL_F" : return cham_no_depl_f
  if TYPE_CHAM == "NOEU_DEPL_R" : return cham_no_depl_r
  if TYPE_CHAM == "NOEU_DURT_R" : return cham_no_durt_r
  if TYPE_CHAM == "NOEU_ENER_R" : return cham_no_ener_r
  if TYPE_CHAM == "NOEU_EPSI_R" : return cham_no_epsi_r
  if TYPE_CHAM == "NOEU_ERREUR" : return cham_no_erreur
  if TYPE_CHAM == "NOEU_FLUX_R" : return cham_no_flux_r
  if TYPE_CHAM == "NOEU_GEOM_R" : return cham_no_geom_r
  if TYPE_CHAM == "NOEU_G_DEPL_R" : return cham_no_g_depl_r
  if TYPE_CHAM == "NOEU_HYDR_R" : return cham_no_hydr_r
  if TYPE_CHAM == "NOEU_INST_R" : return cham_no_inst_r
  if TYPE_CHAM == "NOEU_INTE_R" : return cham_no_inte_r
  if TYPE_CHAM == "NOEU_META_R" : return cham_no_meta_r
  if TYPE_CHAM == "NOEU_NEUT_F" : return cham_no_neut_f
  if TYPE_CHAM == "NOEU_NEUT_R" : return cham_no_neut_r
  if TYPE_CHAM == "NOEU_PRES_R" : return cham_no_pres_r
  if TYPE_CHAM == "NOEU_SIEF_R" : return cham_no_sief_r
  if TYPE_CHAM == "NOEU_SOUR_R" : return cham_no_sour_r
  if TYPE_CHAM == "NOEU_TEMP_F" : return cham_no_temp_f
  if TYPE_CHAM == "NOEU_TEMP_R" : return cham_no_temp_r
  if TYPE_CHAM == "NOEU_VAR2_R" : return cham_no_var2_r
  if TYPE_CHAM == "NOEU_VNOR_C" : return cham_no_vnor_c
  if TYPE_CHAM == "ELEM_DBEL_R" : return cham_elem_dbel_r
  if TYPE_CHAM == "ELEM_DEPL_C" : return cham_elem_depl_c
  if TYPE_CHAM == "ELEM_DEPL_F" : return cham_elem_depl_f
  if TYPE_CHAM == "ELEM_DEPL_R" : return cham_elem_depl_r
  if TYPE_CHAM == "ELEM_DURT_R" : return cham_elem_durt_r
  if TYPE_CHAM == "ELEM_ENER_R" : return cham_elem_ener_r
  if TYPE_CHAM == "ELEM_EPSI_R" : return cham_elem_epsi_r
  if TYPE_CHAM == "ELEM_ERREUR" : return cham_elem_erreur
  if TYPE_CHAM == "ELEM_FLUX_R" : return cham_elem_flux_r
  if TYPE_CHAM == "ELEM_GEOM_R" : return cham_elem_geom_r
  if TYPE_CHAM == "ELEM_G_DEPL_R" : return cham_elem_g_depl
  if TYPE_CHAM == "ELEM_HYDR_R" : return cham_elem_hydr_r
  if TYPE_CHAM == "ELEM_INST_R" : return cham_elem_inst_r
  if TYPE_CHAM == "ELEM_INTE_R" : return cham_elem_inte_r
  if TYPE_CHAM == "ELEM_META_R" : return cham_elem_meta_r
  if TYPE_CHAM == "ELEM_NEUT_F" : return cham_elem_neut_f
  if TYPE_CHAM == "ELEM_NEUT_R" : return cham_elem_neut_r
  if TYPE_CHAM == "ELEM_PRES_R" : return cham_elem_pres_r
  if TYPE_CHAM == "ELEM_SIEF_R" : return cham_elem_sief_r
  if TYPE_CHAM == "ELEM_SOUR_R" : return cham_elem_sour_r
  if TYPE_CHAM == "ELEM_TEMP_F" : return cham_elem_temp_f
  if TYPE_CHAM == "ELEM_TEMP_R" : return cham_elem_temp_r
  if TYPE_CHAM == "ELEM_VARI_R" : return cham_elem_vari_r
  if TYPE_CHAM == "ELEM_VNOR_C" : return cham_elem_vnor_c
  if TYPE_CHAM == "ELNO_DBEL_R" : return cham_elem_dbel_r
  if TYPE_CHAM == "ELNO_DEPL_C" : return cham_elem_depl_c
  if TYPE_CHAM == "ELNO_DEPL_F" : return cham_elem_depl_f
  if TYPE_CHAM == "ELNO_DEPL_R" : return cham_elem_depl_r
  if TYPE_CHAM == "ELNO_DURT_R" : return cham_elem_durt_r
  if TYPE_CHAM == "ELNO_ENER_R" : return cham_elem_ener_r
  if TYPE_CHAM == "ELNO_EPSI_R" : return cham_elem_epsi_r
  if TYPE_CHAM == "ELNO_ERREUR" : return cham_elem_erreur
  if TYPE_CHAM == "ELNO_FLUX_R" : return cham_elem_flux_r
  if TYPE_CHAM == "ELNO_GEOM_R" : return cham_elem_geom_r
  if TYPE_CHAM == "ELNO_G_DEPL_R" : return cham_elem_g_depl
  if TYPE_CHAM == "ELNO_HYDR_R" : return cham_elem_hydr_r
  if TYPE_CHAM == "ELNO_INST_R" : return cham_elem_inst_r
  if TYPE_CHAM == "ELNO_INTE_R" : return cham_elem_inte_r
  if TYPE_CHAM == "ELNO_META_R" : return cham_elem_meta_r
  if TYPE_CHAM == "ELNO_NEUT_F" : return cham_elem_neut_f
  if TYPE_CHAM == "ELNO_NEUT_R" : return cham_elem_neut_r
  if TYPE_CHAM == "ELNO_PRES_R" : return cham_elem_pres_r
  if TYPE_CHAM == "ELNO_SIEF_R" : return cham_elem_sief_r
  if TYPE_CHAM == "ELNO_SOUR_R" : return cham_elem_sour_r
  if TYPE_CHAM == "ELNO_TEMP_F" : return cham_elem_temp_f
  if TYPE_CHAM == "ELNO_TEMP_R" : return cham_elem_temp_r
  if TYPE_CHAM == "ELNO_VARI_R" : return cham_elem_vari_r
  if TYPE_CHAM == "ELNO_VNOR_C" : return cham_elem_vnor_c
  if TYPE_CHAM == "ELGA_DBEL_R" : return cham_elem_dbel_r
  if TYPE_CHAM == "ELGA_DEPL_C" : return cham_elem_depl_c
  if TYPE_CHAM == "ELGA_DEPL_F" : return cham_elem_depl_f
  if TYPE_CHAM == "ELGA_DEPL_R" : return cham_elem_depl_r
  if TYPE_CHAM == "ELGA_DURT_R" : return cham_elem_durt_r
  if TYPE_CHAM == "ELGA_ENER_R" : return cham_elem_ener_r
  if TYPE_CHAM == "ELGA_EPSI_R" : return cham_elem_epsi_r
  if TYPE_CHAM == "ELGA_ERREUR" : return cham_elem_erreur
  if TYPE_CHAM == "ELGA_FLUX_R" : return cham_elem_flux_r
  if TYPE_CHAM == "ELGA_GEOM_R" : return cham_elem_geom_r
  if TYPE_CHAM == "ELGA_G_DEPL_R" : return cham_elem_g_depl
  if TYPE_CHAM == "ELGA_HYDR_R" : return cham_elem_hydr_r
  if TYPE_CHAM == "ELGA_INST_R" : return cham_elem_inst_r
  if TYPE_CHAM == "ELGA_INTE_R" : return cham_elem_inte_r
  if TYPE_CHAM == "ELGA_META_R" : return cham_elem_meta_r
  if TYPE_CHAM == "ELGA_NEUT_F" : return cham_elem_neut_f
  if TYPE_CHAM == "ELGA_NEUT_R" : return cham_elem_neut_r
  if TYPE_CHAM == "ELGA_PRES_R" : return cham_elem_pres_r
  if TYPE_CHAM == "ELGA_SIEF_R" : return cham_elem_sief_r
  if TYPE_CHAM == "ELGA_SOUR_R" : return cham_elem_sour_r
  if TYPE_CHAM == "ELGA_TEMP_F" : return cham_elem_temp_f
  if TYPE_CHAM == "ELGA_TEMP_R" : return cham_elem_temp_r
  if TYPE_CHAM == "ELGA_VARI_R" : return cham_elem_vari_r
  if TYPE_CHAM == "ELGA_VNOR_C" : return cham_elem_vnor_c
  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-A",reentrant='n',
      regles=(EXCLUS('NUME_DDL','CHAM_NO',),ENSEMBLE('CHAM_F','CHAM_PARA',),    
              EXCLUS('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE',        
              'NOEUD_CMP','NOM_CAS','ANGL', ),),
         TYPE_CHAM       =SIMP(statut='o',typ='TXM',     
                        into=("CART_DBEL_R","NOEU_DBEL_R","ELEM_DBEL_R",  
                             "ELNO_DBEL_R","ELGA_DBEL_R","CART_DEPL_C",         
                             "NOEU_DEPL_C","ELEM_DEPL_C","ELNO_DEPL_C",         
                             "ELGA_DEPL_C","CART_DEPL_F","NOEU_DEPL_F",         
                             "ELEM_DEPL_F","ELNO_DEPL_F","ELGA_DEPL_F",         
                             "CART_DEPL_R","NOEU_DEPL_R","ELEM_DEPL_R",         
                             "ELNO_DEPL_R","ELGA_DEPL_R","CART_DURT_R",         
                             "NOEU_DURT_R","ELEM_DURT_R","ELNO_DURT_R",         
                             "ELGA_DURT_R","CART_ENER_R","NOEU_ENER_R",         
                             "ELEM_ENER_R","ELNO_ENER_R","ELGA_ENER_R",         
                             "CART_EPSI_R","NOEU_EPSI_R","ELEM_EPSI_R",         
                             "ELNO_EPSI_R","ELGA_EPSI_R","CART_ERREUR",         
                             "NOEU_ERREUR","ELEM_ERREUR","ELNO_ERREUR",         
                             "ELGA_ERREUR","CART_FLUX_R","NOEU_FLUX_R",         
                             "ELEM_FLUX_R","ELNO_FLUX_R","ELGA_FLUX_R",         
                             "CART_GEOM_R","NOEU_GEOM_R","ELEM_GEOM_R",         
                             "ELNO_GEOM_R","ELGA_GEOM_R","CART_G_DEPL_R",       
                             "NOEU_G_DEPL_R","ELEM_G_DEPL_R","ELNO_G_DEPL_R",   
                             "ELGA_G_DEPL_R","CART_HYDR_R","NOEU_HYDR_R",       
                             "ELEM_HYDR_R","ELNO_HYDR_R","ELGA_HYDR_R",         
                             "CART_INST_R","NOEU_INST_R","ELEM_INST_R",         
                             "ELNO_INST_R","ELGA_INST_R","CART_INTE_R",         
                             "NOEU_INTE_R","ELEM_INTE_R","ELNO_INTE_R",         
                             "ELGA_INTE_R","CART_META_R","NOEU_META_R",         
                             "ELEM_META_R","ELNO_META_R","ELGA_META_R",         
                             "CART_NEUT_F","NOEU_NEUT_F","ELEM_NEUT_F",         
                             "ELNO_NEUT_F","ELGA_NEUT_F","CART_NEUT_R",         
                             "NOEU_NEUT_R","ELEM_NEUT_R","ELNO_NEUT_R",         
                             "ELGA_NEUT_R","CART_PRES_R","NOEU_PRES_R",         
                             "ELEM_PRES_R","ELNO_PRES_R","ELGA_PRES_R",         
                             "CART_SIEF_R","NOEU_SIEF_R","ELEM_SIEF_R",         
                             "ELNO_SIEF_R","ELGA_SIEF_R","CART_SOUR_R",         
                             "NOEU_SOUR_R","ELEM_SOUR_R","ELNO_SOUR_R",         
                             "ELGA_SOUR_R","CART_TEMP_F","NOEU_TEMP_F",         
                             "ELEM_TEMP_F","ELNO_TEMP_F","ELGA_TEMP_F",         
                             "CART_TEMP_R","NOEU_TEMP_R","ELEM_TEMP_R",         
                             "ELNO_TEMP_R","ELGA_TEMP_R","CART_VAR2_R",         
                             "NOEU_VAR2_R","ELEM_VARI_R","ELNO_VARI_R",         
                             "ELGA_VARI_R","CART_VNOR_C","NOEU_VNOR_C",         
                             "ELEM_VNOR_C","ELNO_VNOR_C","ELGA_VNOR_C",) ),
         OPERATION       =SIMP(statut='o',typ='TXM',into=("AFFE","ASSE","EVAL","EXTR","DISC",) ),
         MODELE          =SIMP(statut='f',typ=(modele) ),
         MAILLAGE        =SIMP(statut='f',typ=(maillage) ),
         PROL_ZERO       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
         AFFE            =FACT(statut='f',min=01,max='**',
      regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD',),         
              UN_PARMI('VALE','VALE_I','VALE_C','VALE_F', ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),  
           VALE            =SIMP(statut='f',typ='R',max='**' ),  
           VALE_R          =SIMP(statut='f',typ='R',max='**' ),  
           VALE_I          =SIMP(statut='f',typ='I',max='**' ),  
           VALE_C          =SIMP(statut='f',typ='C',max='**' ),  
           VALE_F          =SIMP(statut='f',typ=fonction,max='**'), 
           FONCTION        =SIMP(statut='f',typ=fonction),
         ),
         NUME_DDL        =SIMP(statut='f',typ=(nume_ddl) ),
         CHAM_NO         =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_temp_f,cham_no_depl_r,       
                                               cham_no_depl_f,cham_no_sief_r ) ),
         ASSE            =FACT(statut='f',min=01,max='**',
      regles=(AU_MOINS_UN('TOUT','GROUP_MA','GROUP_NO','MAILLE','NOEUD',),      
              PRESENT_PRESENT('NOM_CMP_RESU','NOM_CMP', ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           CHAM_GD         =SIMP(statut='f',typ=(cham_elem,cham_no,carte)),
           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),  
           NOM_CMP_RESU    =SIMP(statut='f',typ='TXM',max='**' ),  
           CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
           COEF_R          =SIMP(statut='f',typ='R',defaut= 1. ),  
         ),
         CHAM_F          =SIMP(statut='f',typ=(cham_elem,cham_no,carte)),
         CHAM_PARA       =SIMP(statut='f',typ=(cham_elem,cham_no,carte),max='**'),
         CHAM_GD         =SIMP(statut='f',typ=(cham_elem,cham_no,carte)),
         RESULTAT        =SIMP(statut='f',typ=resultat ),
         NOM_CHAM        =SIMP(statut='f',typ='TXM',     
                       into=("DEPL","VITE","ACCE","GEOMETRIE",           
                             "DEPL_ABSOLU","VITE_ABSOLU","TEMP","ACCE_ABSOLU",  
                             "FORC_NODA","REAC_NODA","EFGE_NOEU_DEPL",          
                             "EFGE_NOEU_CART","EPSI_NOEU_DEPL",                 
                             "SIGM_NOEU_DEPL","SIGM_NOEU_CART",                 
                             "SIPO_NOEU_DEPL","EQUI_NOEU_SIGM",                 
                             "EQUI_NOEU_EPSI","FLUX_NOEU_TEMP",                 
                             "FLUX_ELGA_TEMP","FLUX_ELNO_TEMP",                 
                             "META_ELGA_TEMP","META_ELNO_TEMP",                 
                             "META_NOEU_TEMP","DURT_ELGA_META",                 
                             "DURT_ELNO_META","DURT_NOEU_META","SIEF_ELGA",     
                             "SIEF_ELNO_ELGA","SIEF_ELGA_DEPL",                 
                             "VARI_ELNO_ELGA","VARI_ELGA","EPOT_ELEM_DEPL",     
                             "ECIN_ELEM_DEPL","SOUR_ELGA_ELEC",                 
                             "PRES_ELNO_REEL","PRES_ELNO_IMAG",                 
                             "PRES_ELNO_DBEL","INTE_ELNO_ACTI",                 
                             "INTE_ELNO_REAC","EFGE_ELNO_DEPL",                 
                             "SIGM_ELNO_DEPL","EFGE_ELNO_CART",                 
                             "SIGM_ELNO_CART","SIPO_ELNO_DEPL",                 
                             "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL",                 
                             "EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO",     
                             "EPSP_ELGA","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",     
                             "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI",                 
                             "ERRE_ELNO_ELGA","ERRE_ELGA_NORE",                 
                             "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",                 
                             "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA",                 
                             "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL",                 
                             "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO",          
                             "SIEF_NOEU_ELGA","VARI_NOEU_ELGA",                 
                             "PRES_NOEU_DBEL","PRES_NOEU_REEL",                 
                             "PRES_NOEU_IMAG","INTE_NOEU_ACTI",                 
                             "INTE_NOEU_REAC","DCHA_ELGA_SIGM",                 
                             "DCHA_ELNO_SIGM","RADI_ELGA_SIGM",                 
                             "RADI_ELNO_SIGM","ENDO_ELNO_SIGA",                 
                             "ENDO_ELNO_SINO","ENDO_ELNO_SIGM",                 
                             "SIGM_ELNO_VARI","SIGM_NOEU_VARI",                 
                             "EPME_ELNO_DEPL","EPME_ELGA_DEPL",                 
                             "EPME_ELNO_DPGE","EPMG_ELNO_DEPL",                 
                             "EPMG_ELGA_DEPL","GRAD_ELGA_THETA",                
                             "GTHE_ELNO_ELGA","GRAD_NOEU_THETA","HYDR_ELGA",    
                             "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",) ),
         TYPE_MAXI       =SIMP(statut='f',typ='TXM',into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN",) ),
         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST",) ),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         LIST_INST       =SIMP(statut='f',typ=(listr8) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I'),  
         INST            =SIMP(statut='f',typ='R'),  
         FREQ            =SIMP(statut='f',typ='R'),  
         NUME_MODE       =SIMP(statut='f',typ='I'),  
         NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),  
         NOM_CAS         =SIMP(statut='f',typ='TXM'),  
         ANGL            =SIMP(statut='f',typ='R'),  
         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN",) ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2,) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 30/11/1999   AUTEUR JMBHH01 J.M.PROIX 
CREA_MAILLAGE=OPER(nom="CREA_MAILLAGE",op= 167,sd_prod=maillage
                    ,fr="Définition d'un nouveau maillage à partir d'un maillage existant en dupliquant des groupes de mailles (le nombre de mailles du maillage peut être augmenté)",
                     docu="U4.23.02-C",reentrant='n',
         regles=(EXCLUS('ECLA_PG','CREA_MAILLE'),
                 EXCLUS('ECLA_PG','CREA_GROUP_MA'),
                 EXCLUS('ECLA_PG','DETR_GROUP_MA'),
                 EXCLUS('ECLA_PG','MODI_MAILLE'),),
         MAILLAGE        =SIMP(statut='o',typ=maillage ),
         CREA_POI1       =FACT(statut='f',min=01,max='**',fr="Création de mailles de type POI1 à partir de noeuds",
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE','GROUP_NO','NOEUD' ),),
           NOM_GROUP_MA    =SIMP(statut='f',typ=grma,max='**'),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
         ),
         CREA_MAILLE     =FACT(statut='f',min=01,max='**',fr="Duplication de mailles",
           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
           PREF_NUME       =SIMP(statut='f',typ='I' ),
         ),
         CREA_GROUP_MA   =FACT(statut='f',min=01,max='**',fr="Duplication de mailles et création de groupes de mailles",
           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
           NOM             =SIMP(statut='o',typ='TXM'),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           PREF_MAILLE     =SIMP(statut='o',typ='TXM' ),
           PREF_NUME       =SIMP(statut='f',typ='I' ),
         ),
         DETR_GROUP_MA   =FACT(statut='f',min=01,max=01,fr="Destruction de groupes de mailles",
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           NB_MAILLE       =SIMP(statut='f',typ='I',defaut= 0,fr="Nombre minimal de mailles que doit contenir le groupe pour être détruit",  ),  
         ),
         MODI_MAILLE     =FACT(statut='f',min=01,max='**',fr="Modification du type de mailles",
           regles=(AU_MOINS_UN('TOUT','MAILLE','GROUP_MA' ),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=grma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=ma,max='**'),
           OPTION          =SIMP(statut='o',typ='TXM',into=("TRIA6_7","QUAD8_9","SEG3_4"),fr="Choix de la transformation" ),
           PREF_NOEUD      =SIMP(statut='f',typ='TXM',defaut="NS"),
           PREF_NUME       =SIMP(statut='f',typ='I',defaut= 1 ),
         ),
         REPERE          =FACT(statut='f',min=01,max='**',fr="Réalisation d un changement de repère servant à déterminer les caractéristiques d une section de poutre",
           TABLE           =SIMP(statut='o',typ=tabl_cara_geom,fr="Nom de la table contenant les caractéristiques de la section de poutre" ),
           NOM_ORIG        =SIMP(statut='f',typ='TXM',into=("CDG","TORSION"),fr="Origine du nouveau repère" ),
           NOM_ROTA        =SIMP(statut='f',typ='TXM',into=("INERTIE",),fr="Direction du repére"  ),   
           b_cdg =BLOC(condition = "NOM_ORIG == 'CDG'",
             GROUP_MA        =SIMP(statut='f',typ=grma,fr="Nom du groupe de mailles dont le centre de gravité sera l origine du nouveau repère"),
           ),
         ),
         ECLA_PG         =FACT(statut='f',min=01,max=01,fr="Eclatement des mailles en petites mailles contenant chacune un seul point de gauss",
           MODELE          =SIMP(statut='o',typ=modele ),
           SHRINK          =SIMP(statut='f',typ='R',defaut= 0.9, fr="Facteur de réduction" ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 21/06/2000   AUTEUR CIBHHLV L.VIVAN
def crea_resu_prod(TYPE_RESU,**args):
  if TYPE_RESU == "EVOL_ELAS"    : return evol_elas
  if TYPE_RESU == "EVOL_NOLI"    : return evol_noli
  if TYPE_RESU == "EVOL_THER"    : return evol_ther
  if TYPE_RESU == "MULT_ELAS"    : return mult_elas
  if TYPE_RESU == "FOURIER_ELAS" : return fourier_elas
  raise AsException("type de concept resultat non prevu")

# commentaire C. DURAND : J'ai supprimé tous les blocs.
# Ce qui avait été fait était faux (plantage EFICAS de nombreux tests et ingérable)
# il faudra réfléchir à la manière de les réintroduire proprement
CREA_RESU=OPER(nom="CREA_RESU",op=124,sd_prod=crea_resu_prod,docu="U4.44.12-D",reentrant='f',
               fr="Engendrer ou enrichir une structure de données de type evol_ther en affectant les cham_no associés",
         regles=(EXCLUS('CHAM_GD','ECLA_PG','PERM_CHAMP',),),
         TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER","FOURIER_ELAS","MULT_ELAS",
                                                          "EVOL_ELAS","EVOL_NOLI") ),
         NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","TEMP","SIEF_ELGA","VARI_ELGA",),max='**' ),
         CHAM_GD         =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOM_CAS','NUME_MODE','LIST_INST','INST',),),
           CHAM_NO         =SIMP(statut='o',typ=(cham_no)),
           NUME_ORDRE_INIT =SIMP(statut='f',typ='I'),
           NOM_CAS         =SIMP(statut='f',typ='TXM' ),
           NUME_MODE       =SIMP(statut='f',typ='I'),
           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'),
         ),  

         ECLA_PG         =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'),),
           MODELE_INIT     =SIMP(statut='o',typ=modele),
           RESU_INIT       =SIMP(statut='o',typ=resultat),
           MAILLAGE        =SIMP(statut='o',typ=maillage),
           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
                                 into=("SIEF_ELGA","VARI_ELGA","SIEF_ELGA_DEPL","FLUX_ELGA_TEMP",) ),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           LIST_ORDRE      =SIMP(statut='f',typ=listis),
           INST            =SIMP(statut='f',typ='R',max='**'),
           LIST_INST       =SIMP(statut='f',typ=listr8),
           FREQ            =SIMP(statut='f',typ='R',max='**'),
           LIST_FREQ       =SIMP(statut='f',typ=listr8),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
         ),


         RESU_INIT       =SIMP(statut='f',typ=evol_noli),
         INST_INIT       =SIMP(statut='f',typ='R'),
         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
         CRITERE         =SIMP(statut='f',typ='TXM',into=('RELATIF','ABSOLU'),defaut='RELATIF'),
         MAILLAGE_INIT   =SIMP(statut='f',typ=maillage,),
         RESU_FINAL      =SIMP(statut='f',typ=evol_noli,),
         MAILLAGE_FINAL  =SIMP(statut='f',typ=maillage,),
         PERM_CHAMP      =FACT(statut='f',min=01,max=01,
            GROUP_MA_FINAL =SIMP(statut='o',typ=grma),
            GROUP_MA_INIT  =SIMP(statut='o',typ=grma),
            TRAN           =SIMP(statut='o',typ='R',max='**'),
            PRECISION      =SIMP(statut='f',typ='R',defaut=1.0E-3),
         )
)  ;
#& AJOUT COMMANDE    
DEBUT=PROC(nom="DEBUT",op=0 ,docu="U4.11.01-F",repetable='n',
           fr="Ouverture d une étude. Allocation des ressources mémoire et disque",

         PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM'),
         BASE            =FACT(fr="définition des paramètres associés aux bases JEVEUX",
                               statut='f',min=01,max=03,
           FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM',
                                 into=('GLOBALE','VOLATILE','LOCALE'),),
           TITRE           =SIMP(statut='f',typ='TXM'),
           CAS             =SIMP(statut='f',typ='TXM'),
           NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
           LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
           LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
         ),
         IMPRESSION      =FACT(statut='f',min=01,max=03,
           FICHIER         =SIMP(statut='o',typ='TXM'),
           UNITE           =SIMP(statut='o',typ='I'),
         ),
         CATALOGUE       =FACT(statut='f',min=01,max=10,
           FICHIER         =SIMP(statut='o',typ='TXM'),
           TITRE           =SIMP(statut='f',typ='TXM'),
           UNITE           =SIMP(statut='f',typ='I'),
         ),
         CODE            =FACT("définition d un nom pour l'esemble d'une étude",
                               statut='f',min=01,max=01,
           NOM             =SIMP(statut='o',typ='TXM'),
           UNITE           =SIMP(statut='f',typ='I',defaut=15),
         ),
         DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
                               statut='f',min=01,max=01,
           JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
           JEVEUX          =SIMP(fr="force les déchargement sur disque",
                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
           ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
                                 statut='f',typ='TXM',into=('TEST',)),
         ),
         MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
           GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),  
           TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),  
           TAILLE          =SIMP(statut='f',typ='I'),  
           PARTITION       =SIMP(statut='f',typ='R'),  
         ),
 );
#& MODIF COMMANDE  DATE 09/09/98   AUTEUR ACBHHCD G.DEVESA
DEFI_BASE_MODALE=OPER(nom="DEFI_BASE_MODALE",op=  99,sd_prod=base_modale
                    ,fr="Définition d une base modale pour analyse dynamique par superposition modale ou sous structuration dynamique par synthèse modale",
                     docu="U4.64.02-E",reentrant='f',
         regles=(UN_PARMI('CLASSIQUE','RITZ'),),
         CLASSIQUE       =FACT(statut='f',min=01,max=01,
           INTERF_DYNA     =SIMP(statut='o',typ=interf_dyna_clas ),
           MODE_MECA       =SIMP(statut='o',typ=mode_meca,max='**' ),
           NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 10 ),
         ),
         RITZ            =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MODE_STAT','MODE_MECA','MULT_ELAS','BASE_MODALE'),),
           MODE_MECA       =SIMP(statut='f',typ=mode_meca,max='**'  ),
           NMAX_MODE       =SIMP(statut='f',typ='I',defaut= 999 ),
           MODE_STAT       =SIMP(statut='f',typ=mode_stat ),
           MULT_ELAS       =SIMP(statut='f',typ=mult_elas ),
           BASE_MODALE     =SIMP(statut='f',typ=base_modale ),
         ),
#  le bloc conditionnel remplace-t-il PRESENT_PRESENT('RITZ','NUME_REF'),
#                                     PRESENT_ABSENT('INTERF_DYNA','CLASSIQUE'),        
         b_ritz          =BLOC(condition = "RITZ != None",
           INTERF_DYNA     =SIMP(statut='f',typ=interf_dyna_clas ),
           NUME_REF        =SIMP(statut='o',typ=nume_ddl ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 06/11/98   AUTEUR CIBHHLV L.VIVAN 
DEFI_CABLE_BP=OPER(nom="DEFI_CABLE_BP",op= 180,sd_prod=cabl_precont,
                   fr=" ",
                   docu="U4.42.04-A",reentrant='n',
         MODELE          =SIMP(statut='o',typ=modele ),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
         CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
         GROUP_MA_BETON  =SIMP(statut='o',typ=grma),
         DEFI_CABLE      =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),
                   UN_PARMI('NOEUD_ANCRAGE','GROUP_NO_ANCRAGE'),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma),
           NOEUD_ANCRAGE   =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO_ANCRAGE=SIMP(statut='f',typ=grno,max='**'),
           TYPE_ANCRAGE    =SIMP(statut='o',typ='TXM',max='**',     
                                 into=("ACTIF","PASSIF") ),
         ),
         TENSION_INIT    =SIMP(statut='o',typ='R' ),  
         RECUL_ANCRAGE   =SIMP(statut='o',typ='R' ),  
         RELAXATION      =FACT(statut='f',min=0,max=1,
           R_J             =SIMP(statut='o',typ='R' ),  
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 16/07/96   AUTEUR CIBHHRA R.MEDDOURI 
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',
         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
         VALE            =SIMP(statut='o',typ='R',max=01 ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
DEFI_COQU_MULT=OPER(nom="DEFI_COQU_MULT",op=56,sd_prod=mater,docu="U4.42.03-E",reentrant='n',
                    fr="Définition d une coque composite couche par couche",
         COUCHE          =FACT(statut='o',min=01,max='**',
           EPAIS           =SIMP(statut='o',typ='R' ),
           MATER           =SIMP(statut='o',typ=(mater) ),
           ORIENTATION     =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
                                 into=("RESULTAT",) ),
         ),
)  ;
#& MODIF COMMANDE  DATE 28/06/2000   AUTEUR CIBHHLV L.VIVAN 
DEFI_FLUI_STRU=OPER(nom="DEFI_FLUI_STRU",op= 143,sd_prod=type_flui_stru,
                    fr="Définition des caractéristiques nécessaires à l'étude du comportement dynamique d'une structure sous écoulement",
                    docu="U4.25.01-C",reentrant='n',
         regles=(EXCLUS('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX',),
                 AU_MOINS_UN('FAISCEAU_TRANS','GRAPPE','FAISCEAU_AXIAL','COQUE_COAX', ),),
         FAISCEAU_TRANS  =FACT(statut='f',min=01,max='**',
           COUPLAGE        =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
           CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
           PROF_VITE_FLUI  =SIMP(statut='o',typ=fonction ),
           PROF_RHO_F_INT  =SIMP(statut='f',typ=fonction ),
           PROF_RHO_F_EXT  =SIMP(statut='f',typ=fonction ),
           NOM_CMP         =SIMP(statut='f',typ='TXM',into=("DX","DY","DZ") ),
           COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
           TYPE_PAS        =SIMP(statut='f',typ='TXM',into=("CARRE_LIGN","TRIA_LIGN") ),
           TYPE_RESEAU     =SIMP(statut='f',typ='I' ),
           UNITE_CD        =SIMP(statut='f',typ='I',defaut=70),
           UNITE_CK        =SIMP(statut='f',typ='I',defaut=71),            
           PAS             =SIMP(statut='f',typ='R' ),
         ),
         GRAPPE          =FACT(statut='f',min=00,max=01,
           regles=(ENSEMBLE('GRAPPE_2','NOEUD','CARA_ELEM','MODELE','RHO_FLUI',),
                   PRESENT_PRESENT('COEF_MASS_AJOU','GRAPPE_2', ),),
#  peut on créer un bloc a partir de la valeur de couplage  
           COUPLAGE        =SIMP(statut='o',typ='TXM',into=("OUI","NON") ),
           GRAPPE_2        =SIMP(statut='f',typ='TXM',
                                 into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC") ),
           NOEUD           =SIMP(statut='f',typ=no),
           CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
           MODELE          =SIMP(statut='f',typ=modele ),
           COEF_MASS_AJOU  =SIMP(statut='f',typ='R' ),
           RHO_FLUI        =SIMP(statut='f',typ='R' ),
           UNITE_CA        =SIMP(statut='f',typ='I',defaut=70),
           UNITE_KA        =SIMP(statut='f',typ='I',defaut=71),            
         ),
         FAISCEAU_AXIAL  =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('GROUP_MA','TRI_GROUP_MA'),
                   UN_PARMI('CARA_ELEM','RAYON_TUBE'),
                   ENSEMBLE('RAYON_TUBE','COOR_TUBE'),
                   PRESENT_ABSENT('RAYON_TUBE','TRI_GROUP_MA'),
                   ENSEMBLE('CARA_PAROI','VALE_PAROI'),
                   ENSEMBLE('LONG_TYPG','LARG_TYPG','EPAI_TYPG','RUGO_TYPG','COEF_TRAI_TYPG','COEF_DPOR_TYPG',
                            'COOR_GRILLE','TYPE_GRILLE', ),),
#  on doit pouvoir mettre des blocs conditionnels mais pas assez d infos pour le faire                            
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           TRI_GROUP_MA    =SIMP(statut='f',typ='TXM' ),
           VECT_X          =SIMP(statut='f',typ='R',max=03),
           PROF_RHO_FLUI   =SIMP(statut='f',typ=fonction ),
           PROF_VISC_CINE  =SIMP(statut='f',typ=fonction ),
           CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
           RAYON_TUBE      =SIMP(statut='f',typ='R' ),
           COOR_TUBE       =SIMP(statut='f',typ='R',max='**'),
           PESANTEUR       =SIMP(statut='f',typ='R',min=04,max=04),
           RUGO_TUBE       =SIMP(statut='f',typ='R' ),
           CARA_PAROI      =SIMP(statut='f',typ='TXM',max=05,
                                 into=("YC","ZC","R","HY","HZ") ),
           VALE_PAROI      =SIMP(statut='f',typ='R',max=05),
           ANGL_VRIL       =SIMP(statut='f',typ='R' ),
           LONG_TYPG       =SIMP(statut='f',typ='R',max='**'),
           LARG_TYPG       =SIMP(statut='f',typ='R',max='**'),
           EPAI_TYPG       =SIMP(statut='f',typ='R',max='**'),
           RUGO_TYPG       =SIMP(statut='f',typ='R',max='**'),
           COEF_TRAI_TYPG  =SIMP(statut='f',typ='R',max='**'),
           COEF_DPOR_TYPG  =SIMP(statut='f',typ='R',max='**'),
           COOR_GRILLE     =SIMP(statut='f',typ='R',max='**'),
           TYPE_GRILLE     =SIMP(statut='f',typ='I',max='**'),
         ),
         COQUE_COAX      =FACT(statut='f',min=00,max=01,
           MASS_AJOU       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           GROUP_MA_INT    =SIMP(statut='o',typ=grma),
           GROUP_MA_EXT    =SIMP(statut='o',typ=grma),
           VECT_X          =SIMP(statut='o',typ='R',max='**'),
           CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
           MATER_INT       =SIMP(statut='o',typ=mater ),
           MATER_EXT       =SIMP(statut='o',typ=mater ),
           RHO_FLUI        =SIMP(statut='o',typ='R' ),
           VISC_CINE       =SIMP(statut='o',typ='R' ),
           RUGOSITE        =SIMP(statut='o',typ='R' ),
           PDC_MOY_1       =SIMP(statut='o',typ='R' ),
           PDC_DYN_1       =SIMP(statut='o',typ='R' ),
           PDC_MOY_2       =SIMP(statut='o',typ='R' ),
           PDC_DYN_2       =SIMP(statut='o',typ='R' ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
DEFI_FONC_ELEC=OPER(nom="DEFI_FONC_ELEC",op=64,sd_prod=fonction,docu="U4.MK.10-A",reentrant='n',
                    fr="Définition d une fonction du temps pour calculer des forces de LAPLACE",
      regles=(UN_PARMI('COUR_PRIN','COUR'),
              EXCLUS('COUR','COUR_SECO'), ),
         FREQ            =SIMP(statut='f',typ='R',defaut= 50.),
         SIGNAL          =SIMP(statut='f',typ='TXM',defaut="COMPLET",into=("COMPLET","CONTINU") ),
         COUR            =FACT(statut='f',min=01,max='**',
         fr="Définition du courant de court-circuit",
           regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),
                   UN_PARMI('PHI_CC_2','INTC_CC_2'),),
           INTE_CC_1       =SIMP(statut='o',typ='R'),
           TAU_CC_1        =SIMP(statut='o',typ='R'),
           PHI_CC_1        =SIMP(statut='f',typ='R'),
           INTC_CC_1       =SIMP(statut='f',typ='R'),
           INTE_CC_2       =SIMP(statut='o',typ='R'),
           TAU_CC_2        =SIMP(statut='o',typ='R'),
           PHI_CC_2        =SIMP(statut='f',typ='R'),
           INTC_CC_2       =SIMP(statut='f',typ='R'),
           INST_CC_INIT    =SIMP(statut='f',typ='R'),
           INST_CC_FIN     =SIMP(statut='o',typ='R'),
         ),
         COUR_PRIN       =FACT(statut='f',min=01,max=01,
         fr="Définition du courant de court-circuit avec réenclenchement",
           regles=(UN_PARMI('PHI_CC_1','INTC_CC_1'),),
           INTE_CC_1       =SIMP(statut='o',typ='R'),
           TAU_CC_1        =SIMP(statut='o',typ='R'),
           PHI_CC_1        =SIMP(statut='f',typ='R'),
           INTC_CC_1       =SIMP(statut='f',typ='R'),
           INTE_RENC_1     =SIMP(statut='f',typ='R'),
           TAU_RENC_1      =SIMP(statut='f',typ='R'),
           PHI_RENC_1      =SIMP(statut='f',typ='R'),
           INST_CC_INIT    =SIMP(statut='o',typ='R'),
           INST_CC_FIN     =SIMP(statut='o',typ='R'),
           INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 0.0E+0),
           INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 0.0E+0),
         ),
         COUR_SECO       =FACT(statut='f',min=01,max='**',
         fr="Définition du courant de court-circuit avec un intervalle de temps différent de celui de COUR_PRIN",
           regles=(UN_PARMI('PHI_CC_2','INTC_CC_2'),),
           INTE_CC_2       =SIMP(statut='o',typ='R'),
           TAU_CC_2        =SIMP(statut='o',typ='R'),
           PHI_CC_2        =SIMP(statut='f',typ='R'),
           INTC_CC_2       =SIMP(statut='f',typ='R'),
           INTE_RENC_2     =SIMP(statut='f',typ='R'),
           TAU_RENC_2      =SIMP(statut='f',typ='R'),
           PHI_RENC_2      =SIMP(statut='f',typ='R'),
           DIST            =SIMP(statut='f',typ='R',defaut=1.0E+0),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
DEFI_FONC_FLUI=OPER(nom="DEFI_FONC_FLUI",op= 142,sd_prod=fonction,
                    fr="Définition des fonctions caractéristiques du fluide le long de la structure (profil de vitesse, profil de masse volumique)",
                    docu="U4.35.01-C",reentrant='n',
         MAILLAGE        =SIMP(statut='o',typ=(maillage) ),
         NOEUD_INIT      =SIMP(statut='o',typ=no),
         NOEUD_FIN       =SIMP(statut='o',typ=no),
         VITE            =FACT(statut='o',min=01,max=01,
           VALE            =SIMP(statut='f',typ='R',defaut= 1. ),
           PROFIL          =SIMP(statut='o',typ='TXM',into=("UNIFORME","LEONARD") ),
           NB_BAV          =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 2 , 3 ) ),
         ),
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",
                               into=("NON","LIN","LOG") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',defaut="EXCLU",
                               into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM' ,defaut="EXCLU",
                               into=("CONSTANT","LINEAIRE","EXCLU") ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 06/09/1999   AUTEUR UFBHHLL C.CHAVANT 
def defi_fonction_prod(VALE,VALE_PARA,VALE_C,NOEUD_PARA,**args):
  if VALE != None  : return fonction
  if VALE_C != None  : return fonction_c
  if VALE_PARA != None  : return fonction
  if NOEUD_PARA != None  : return fonction
  raise AsException("type de concept resultat non prevu")

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-F",reentrant='n',
         regles=(UN_PARMI('VALE','VALE_C','VALE_PARA','NOEUD_PARA'),),
         NOM_PARA        =SIMP(statut='o',typ='TXM',
                               into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
                                     "INST","X","Y","Z","EPSI","META","FREQ","PULS",
                                     "AMOR","ABSC","SIGM","HYDR","SECH","PORO","SAT",
                                     "PGAZ","PCAP") ),
         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),
         VALE            =SIMP(statut='f',typ='R',max='**',
                               fr ="Fonction réelle définie par une liste de couples (abscisse,ordonnée)"), 
         VALE_C          =SIMP(statut='f',typ='R',max='**',
                               fr ="Fonction complexe définie par une liste de couples (abscisse,ordonnée partie réelle, ordonnée partie imaginaire)"), 
         VALE_PARA       =SIMP(statut='f',typ=listr8,
                               fr ="Fonction réelle définie par deux concepts de type listr8" ),
         b_vale_para     =BLOC(condition = "VALE_PARA != None", 
           VALE_FONC       =SIMP(statut='o',typ=listr8 ),
         ),
         NOEUD_PARA      =SIMP(statut='f',typ=no,max='**',
                               fr ="Fonction réelle définie par une liste de noeuds et un maillage"),
         b_noeud_para    =BLOC(condition = "NOEUD_PARA != None",
           MAILLAGE        =SIMP(statut='o',typ=maillage ),
           VALE_Y          =SIMP(statut='o',typ='R',max='**'), 
         ),
                  
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
         VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 17/11/1999   AUTEUR CIBHHLV L.VIVAN 
DEFI_FOND_FISS=OPER(nom="DEFI_FOND_FISS",op=55,sd_prod=fond_fiss,docu="U4.82.01-E",reentrant='n',
                    fr="Définition de lèvres et d un fond de fissure en 3D",
         regles=(UN_PARMI('FOND','FOND_FERME'),
                 EXCLUS('FOND_FERME','DTAN_ORIG'),
                 EXCLUS('FOND_FERME','DTAN_EXTR'),
                      EXCLUS('FOND_FERME','VECT_GRNO_ORIG'),
                      EXCLUS('FOND_FERME','VECT_GRNO_EXTR'),
                 UN_PARMI('LEVRE_SUP','NORMALE'),
                      EXCLUS('LEVRE_INF','NORMALE'),
                 ENSEMBLE('DTAN_ORIG','DTAN_EXTR'),
                      ENSEMBLE('VECT_GRNO_ORIG','VECT_GRNO_EXTR'),
                      EXCLUS('DTAN_ORIG','VECT_GRNO_ORIG'),
                      EXCLUS('DTAN_EXTR','VECT_GRNO_EXTR') ,),
           MAILLAGE        =SIMP(statut='o',typ=maillage ),
           FOND            =FACT(statut='f',min=01,max=01,
             regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
                     EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
                          EXCLUS('NOEUD_EXTR','GROUP_NO_EXTR'),),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
#  à mettre à jour le max vaut-il 1  
             NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
             NOEUD_EXTR      =SIMP(statut='f',typ=no,max=1),
             GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,max=1),
           ),
           FOND_FERME      =FACT(statut='f',min=01,max=01,
             regles=(UN_PARMI('GROUP_NO','NOEUD','GROUP_MA','MAILLE'),
                          EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
             MAILLE_ORIG     =SIMP(statut='f',typ=ma,max=1),
             GROUP_MA_ORIG   =SIMP(statut='f',typ=ma,max=1),
           ),
           LEVRE_SUP       =FACT(statut='f',min=01,max=01,
             regles=(UN_PARMI('GROUP_MA','MAILLE'),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           ),
           LEVRE_INF       =FACT(statut='f',min=01,max=01,
             regles=(UN_PARMI('GROUP_MA','MAILLE', ),),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           ),
           NORMALE         =SIMP(statut='f',typ='R',max='**'),
           DTAN_ORIG       =SIMP(statut='f',typ='R',max='**'),
           DTAN_EXTR       =SIMP(statut='f',typ='R',max='**'),
           VECT_GRNO_ORIG  =SIMP(statut='f',typ=grno,max=2),
           VECT_GRNO_EXTR  =SIMP(statut='f',typ=grno,max=2),
           INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 27/09/2000   AUTEUR DURAND C.DURAND 
def defi_group_prod(MAILLAGE,**args):
  if AsType(MAILLAGE) == maillage : return maillage
  if AsType(MAILLAGE) == squelette : return squelette
  raise AsException("type de concept resultat non prevu")

DEFI_GROUP=OPER(nom="DEFI_GROUP",op= 104,sd_prod=defi_group_prod,
                fr="Définition de nouveaux groupes de noeuds et/ou de mailles dans un concept maillage",
                docu="U4.22.01-E",reentrant='o',
         regles=(AU_MOINS_UN('CREA_GROUP_MA','CREA_GROUP_NO'),),            
         MAILLAGE        =SIMP(statut='o',typ=(maillage,squelette) ),
         
         CREA_GROUP_MA   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','GROUP_MA','MAILLE','INTERSEC','UNION','DIFFE','OPTION'),),
#  quel est le concept attendu deriere NOM
           NOM             =SIMP(statut='o',typ=grma),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           INTERSEC        =SIMP(statut='f',typ=grma,max='**'),
           UNION           =SIMP(statut='f',typ=grma,max='**'),
           DIFFE           =SIMP(statut='f',typ=grma,max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',into=("FACE_NORMALE","SPHERE","CYLINDRE","BANDE") ),
           b_group_ma      =BLOC(condition = "GROUP_MA != None",
             regles=(EXCLUS('POSITION','NUME_INIT'),),
             NUME_INIT       =SIMP(statut='f',typ='I',defaut= 1 ),             
             POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), 
             b_nume_init   =BLOC(condition = "NUME_INIT != None",
               NUME_FIN        =SIMP(statut='f',typ='I' ),
             ),      
           ),
           b_face_normale  =BLOC(condition = "OPTION == 'FACE_NORMALE'",
             regles=(UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
             ANGL_NAUT       =SIMP(statut='f',typ='R',max=02),
             VECT_NORMALE    =SIMP(statut='f',typ='R',max=03),
             ANGL_PREC       =SIMP(statut='f',typ='R',defaut= 0.5 ),
             VERI_SIGNE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),     
           ),
           b_sphere        =BLOC(condition = "OPTION == 'SPHERE'",
             regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
             POINT           =SIMP(statut='f',typ='R',max=03),
             NOEUD_CENTRE    =SIMP(statut='f',typ=no),
             RAYON           =SIMP(statut='o',typ='R' ),    
           ),
           b_cylindre      =BLOC(condition = "OPTION == 'CYLINDRE'",
             regles=(UN_PARMI('POINT','NOEUD_CENTRE'),
                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
             POINT           =SIMP(statut='f',typ='R',max=03),
             NOEUD_CENTRE    =SIMP(statut='f',typ=no),
             RAYON           =SIMP(statut='o',typ='R' ), 
             ANGL_NAUT       =SIMP(statut='f',typ='R',max=02),
             VECT_NORMALE    =SIMP(statut='f',typ='R',max=03),   
           ),
           b_bande         =BLOC(condition = "OPTION == 'BANDE'",
             regles=(UN_PARMI('POINT','NOEUD_CENTRE'),
                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
             POINT           =SIMP(statut='f',typ='R',max=03),
             NOEUD_CENTRE    =SIMP(statut='f',typ=no),
             DIST            =SIMP(statut='o',typ='R' ),
             ANGL_NAUT       =SIMP(statut='f',typ='R',max=02),
             VECT_NORMALE    =SIMP(statut='f',typ='R',max=03),   
           ),
         ),
         CREA_GROUP_NO   =FACT(statut='f',min=01,max='**',
           regles=(AU_MOINS_UN('TOUT_GROUP_MA','GROUP_MA','NOEUD','INTERSEC','UNION','DIFFE',
                               'GROUP_NO','OPTION'),),

           TOUT_GROUP_MA   =SIMP(statut='f',typ='TXM',into=("OUI",) ),               
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
             
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           INTERSEC        =SIMP(statut='f',typ=grno,max='**'),
           UNION           =SIMP(statut='f',typ=grno,max='**'),
           DIFFE           =SIMP(statut='f',typ=grno,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',into=("ENV_SPHERE","ENV_CYLINDRE","PLAN",
                                                            "SEGM_DROI_ORDO","NOEUD_ORDO") ),  
           b_nom_group_ma  =BLOC(condition = "GROUP_MA != None",
             NOM             =SIMP(statut='f',typ=grma,max='**'),
           ),
           b_nom =BLOC(condition = "GROUP_MA == None and TOUT_GROUP_MA == None" ,
             NOM             =SIMP(statut='o',typ=geom),
           ),                                                 
            
           b_group_no      =BLOC(condition = "GROUP_NO != None",
             regles=(EXCLUS('POSITION','NUME_INIT'),),
             NUME_INIT       =SIMP(statut='f',typ='I',defaut= 1 ),
             POSITION        =SIMP(statut='f',typ='TXM',into=("INIT","FIN","MILIEU") ), 
             b_nume_init     =BLOC(condition = "NUME_INIT != None",
               NUME_FIN        =SIMP(statut='f',typ='I' ),
             ),      
           ),
           b_env_sphere    =BLOC(condition = "OPTION == 'ENV_SPHERE'",
             regles=(UN_PARMI('POINT','NOEUD_CENTRE'),),
             POINT           =SIMP(statut='f',typ='R',max=03),
             NOEUD_CENTRE    =SIMP(statut='f',typ=no,max=01),
             RAYON           =SIMP(statut='o',typ='R' ),
             PRECISION       =SIMP(statut='f',typ='R' ),
             CRITERE         =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),                                                 
           ),
           b_env_cylindre  =BLOC(condition = "OPTION == 'ENV_CYLINDRE'",
             regles=(UN_PARMI('POINT','NOEUD_CENTRE'),
                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
             POINT           =SIMP(statut='f',typ='R',max=03),
             NOEUD_CENTRE    =SIMP(statut='f',typ=no,max=01),
             RAYON           =SIMP(statut='o',typ='R' ),
             ANGL_NAUT       =SIMP(statut='f',typ='R',max=03),
             VECT_NORMALE    =SIMP(statut='f',typ='R',max=03),
             PRECISION       =SIMP(statut='f',typ='R' ),
             CRITERE         =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),                                                 
           ),
           b_env_plan      =BLOC(condition = "OPTION == 'PLAN'",
             regles=(UN_PARMI('POINT','NOEUD_CENTRE'),
                     UN_PARMI('ANGL_NAUT','VECT_NORMALE'),),
             POINT           =SIMP(statut='f',typ='R',max=03),
             NOEUD_CENTRE    =SIMP(statut='f',typ=no,max=01),
             ANGL_NAUT       =SIMP(statut='f',typ='R',max=03),
             VECT_NORMALE    =SIMP(statut='f',typ='R',max=03),
             PRECISION       =SIMP(statut='f',typ='R' ),
             CRITERE         =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),                                                 
           ),
           b_segm_droi_ordo=BLOC(condition = "OPTION == 'SEGM_DROI_ORDO'",
             regles=(UN_PARMI('NOEUD_ORIG','GROUP_NO_ORIG'),
                     UN_PARMI('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),
             GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
             PRECISION       =SIMP(statut='f',typ='R' ),
             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'),),
             NOEUD_ORIG      =SIMP(statut='f',typ=no),
             GROUP_NO_ORIG   =SIMP(statut='f',typ=grno),
             NOEUD_EXTR      =SIMP(statut='f',typ=no),
             GROUP_NO_EXTR   =SIMP(statut='f',typ=grno),
             PRECISION       =SIMP(statut='f',typ='R' ),
             CRITERE         =SIMP(statut='f',typ='TXM',into=("ABSOLU","RELATIF") ),                                                 
           ),      
         ),
         INFO            =SIMP(statut='f',typ='I',into=( 1 , 2 ) ),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHAB N.RAHNI 
DEFI_INTE_SPEC=OPER(nom="DEFI_INTE_SPEC",op= 115,sd_prod=tabl_intsp,
                    fr="Définition d'une matrice interspectrale à partir de constantes, de fonctions complexes, ou du filtrage d'un bruit blanc par un oscillateur de KANAI-TAJIMI",
                    docu="U4.36.02-E",reentrant='n',

         DIMENSION       =SIMP(statut='f',typ='I',defaut= 1 ),

         PAR_FONCTION    =FACT(statut='f',min=01,max='**',
           NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
           NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
           FONCTION        =SIMP(statut='o',typ=fonction_c ),
         ),
         KANAI_TAJIMI    =FACT(statut='f',min=01,max='**',
           regles=(EXCLUS('VALE_R','VALE_C'),),
           NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
           NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
           FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
           PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
           AMOR_REDUIT     =SIMP(statut='f',typ='R',defaut= 0.6 ),
           FREQ_MOY        =SIMP(statut='f',typ='R',defaut= 5. ),
           VALE_R          =SIMP(statut='f',typ='R' ),
           VALE_C          =SIMP(statut='f',typ='C' ),
           INTERPOL        =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
           PROL_DROIT      =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
           PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
         ),
         CONSTANT        =FACT(statut='f',min=01,max='**',
           regles=(EXCLUS('VALE_R','VALE_C'),),
           NUME_ORDRE_I    =SIMP(statut='o',typ='I' ),
           NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
           FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           FREQ_MAX        =SIMP(statut='f',typ='R',defaut= 100. ),
           PAS             =SIMP(statut='f',typ='R',defaut= 1. ),
           VALE_R          =SIMP(statut='f',typ='R' ),
           VALE_C          =SIMP(statut='f',typ='C' ),
           INTERPOL        =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
           PROL_DROIT      =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
           PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),               
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
DEFI_INTERF_DYNA=OPER(nom="DEFI_INTERF_DYNA",op=  98,sd_prod=interf_dyna_clas,
                      fr="Définition des interfaces d une structure pour analyse dynamique par superposition modale ou sous structuration dynamique par synthèse modale",
                      docu="U4.64.01-E",reentrant='n',
         NUME_DDL        =SIMP(statut='o',typ=nume_ddl ),
         INTERFACE       =FACT(statut='o',min=01,max='**',
           regles=(ENSEMBLE('NOM','TYPE'),
#  erreur doc U sur la condition qui suit
                   UN_PARMI('NOEUD','GROUP_NO'),),
           NOM             =SIMP(statut='f',typ='TXM' ),
           TYPE            =SIMP(statut='f',typ='TXM',into=("MNEAL","CRAIGB","CB_HARMO","AUCUN") ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           DDL_ACTIF       =SIMP(statut='f',typ='TXM',max='**'),
           MASQUE          =SIMP(statut='f',typ='TXM',max='**'),
         ),
         FREQ            =SIMP(statut='f',typ='R',defaut= 1.),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
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',
         regles=(UN_PARMI('VALE','DEBUT'),
                 EXCLUS('VALE','INTERVALLE'),),
         VALE            =SIMP(statut='f',typ='I',max='**'),
         DEBUT           =SIMP(statut='f',typ='I'),
         INTERVALLE      =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOMBRE','PAS'),),
           JUSQU_A         =SIMP(statut='o',typ='I'),
           NOMBRE          =SIMP(statut='f',typ='I'),
           PAS             =SIMP(statut='f',typ='I'),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
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-F",reentrant='n',
         regles=(UN_PARMI('VALE','DEBUT',),
                 EXCLUS('VALE','INTERVALLE'),
                 ENSEMBLE('DEBUT','INTERVALLE'),
                 ),
         VALE            =SIMP(statut='f',typ='R',max='**'),
         DEBUT           =SIMP(statut='f',typ='R'),
         INTERVALLE      =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOMBRE','PAS'),),
           JUSQU_A         =SIMP(statut='o',typ='R'),
           NOMBRE          =SIMP(statut='f',typ='I'),
           PAS             =SIMP(statut='f',typ='R'),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 20/12/94   AUTEUR B7BHHLV L.VIVAN 
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',
         DEFI_MAILLE     =FACT(statut='o',min=01,max='**',
           MACR_ELEM_STAT  =SIMP(statut='o',typ=macr_elem_stat,max='**' ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           TRAN            =SIMP(statut='f',typ='R',max=03),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max=03),
           b_angl_naut     =BLOC(condition = "ANGL_NAUT != None",
             CENTRE          =SIMP(statut='f',typ='R',max=03),
           ),
         ),
         RECO_GLOBAL     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','MAILLE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
         ),
         RECO_MAILLE     =FACT(statut='f',min=01,max='**',
           MAILLE          =SIMP(statut='o',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='o',typ=grno,max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',defaut="GEOMETRIQUE",into=("GEOMETRIQUE","NOEUD_A_NOEUD","INVERSE") ),
           geometrique     =BLOC(condition = "OPTION == 'GEOMETRIQUE'",
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           ),
         ),
         DEFI_NOEUD      =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','NOEUD_INIT'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
                                 fr="Renommage de tous les noeuds" ),
           NOEUD_INIT      =SIMP(statut='f',typ=no,
                                 fr="Renommage d un seul noeud"),                     
           b_tout          =BLOC(condition = "TOUT != None",
             PREFIXE         =SIMP(statut='f',typ='TXM' ),
             INDEX           =SIMP(statut='o',typ='I',max='**'),
           ),
           b_noeud_init    =BLOC(condition = "NOEUD_INIT != None",
             MAILLE          =SIMP(statut='o',typ=ma),
             NOEUD_FIN       =SIMP(statut='o',typ=no),
           ),        
         ),
         DEFI_GROUP_NO   =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','MAILLE'),
                AU_MOINS_UN('INDEX','GROUP_NO_FIN'),
                   ENSEMBLE('GROUP_NO_INIT','GROUP_NO_FIN'),),
#  la regle ancien catalogue AU_MOINS_UN__: ( INDEX , GROUP_NO_FIN ) incoherente avec doc U           
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",),
                                 fr="Création de plusieurs groupes de noeuds" ),
           MAILLE          =SIMP(statut='f',typ=ma,
                                 fr="Création de plusieurs groupes de noeuds"),
           GROUP_NO_INIT   =SIMP(statut='f',typ=grno,
                                 fr="Création d un seul groupe de noeuds"),
           PREFIXE         =SIMP(statut='f',typ='TXM' ),
           INDEX           =SIMP(statut='f',typ='I',max='**'),
           GROUP_NO_FIN    =SIMP(statut='f',typ=grno),
         ),
)  ;
#& MODIF COMMANDE  DATE 28/11/2000   AUTEUR CIBHHLV L.VIVAN 
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-F",reentrant='n',
       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'),
               EXCLUS('THER','THER_FO','THER_ORTH','THER_NL'),
               EXCLUS('ECRO_LINE','ECRO_LINE_FO'),
               EXCLUS('TAHERI','TAHERI_FO'),
               EXCLUS('ROUSSELIER','ROUSSELIER_FO'),
               PRESENT_PRESENT('ROUSSELIER','TRACTION'),
               PRESENT_PRESENT('ROUSSELIER_FO','TRACTION'),
               EXCLUS('VMIS_CIN1_CHAB','VMIS_CIN1_CHAB_F'),
               EXCLUS('VISCOCHAB','VISCOCHAB_FO'),
               EXCLUS('POLY_CFC','POLY_CFC_FO'),
               PRESENT_PRESENT('NORTON_HOFF','ELAS'),
               EXCLUS('LEMAITRE','LEMAITRE_FO','ZIRC_CYRA2','ZIRC_EPRI'),
               EXCLUS('OHNO','OHNO_FO'),
               EXCLUS('LMARC','LMARC_FO'),
               EXCLUS('VMIS_POUTRE','VMIS_POUTRE_FO'),
               EXCLUS('VENDOCHAB','VENDOCHAB_FO'),
               PRESENT_PRESENT('BPEL_BETON','ELAS'),
               PRESENT_PRESENT('BPEL_ACIER','ELAS'),
               EXCLUS('RCCM','RCCM_FO'),),
#
# comportement élastique
#
           ELAS            =FACT(statut='f',min=00,max=01,
             E               =SIMP(statut='o',typ='R'),
             NU              =SIMP(statut='o',typ='R'),
             RHO             =SIMP(statut='f',typ='R'),
             ALPHA           =SIMP(statut='f',typ='R'),
             AMOR_ALPHA      =SIMP(statut='f',typ='R'),
             AMOR_BETA       =SIMP(statut='f',typ='R'),
             AMOR_HYST       =SIMP(statut='f',typ='R'),
           ),
           ELAS_FO         =FACT(statut='f',min=00,max=01,
             E               =SIMP(statut='o',typ=fonction),
             NU              =SIMP(statut='o',typ=fonction),
             RHO             =SIMP(statut='f',typ='R'),
             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
             ALPHA           =SIMP(statut='f',typ=fonction),
             AMOR_ALPHA      =SIMP(statut='f',typ=fonction),
             AMOR_BETA       =SIMP(statut='f',typ=fonction),
             AMOR_HYST       =SIMP(statut='f',typ=fonction),
             K_DESSIC        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             B_ENDOGE        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
             VERI_P2         =SIMP(statut='f',typ='TXM',defaut="INST",into=("TEMP","INST",) ),
             VERI_P3         =SIMP(statut='f',typ='TXM',defaut="HYDR",into=("HYDR",) ),
             VERI_P4         =SIMP(statut='f',typ='TXM',defaut="SECH",into=("SECH",) ),
           ),
           ELAS_FLUI       =FACT(statut='f',min=00,max=01,
             E               =SIMP(statut='o',typ='R'),
             NU              =SIMP(statut='o',typ='R'),
             RHO             =SIMP(statut='o',typ='R'),
             PROF_RHO_F_INT  =SIMP(statut='o',typ=fonction),
             PROF_RHO_F_EXT  =SIMP(statut='o',typ=fonction),
             COEF_MASS_AJOU  =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="ABSC",into=("ABSC",) ),
           ),
           ELAS_ISTR       =FACT(statut='f',min=00,max=01,
             E_L             =SIMP(statut='o',typ='R'),
             E_N             =SIMP(statut='o',typ='R'),
             NU_LT           =SIMP(statut='o',typ='R'),
             NU_LN           =SIMP(statut='o',typ='R'),
             G_LN            =SIMP(statut='o',typ='R'),
             RHO             =SIMP(statut='f',typ='R'),
             ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
           ELAS_ISTR_FO    =FACT(statut='f',min=00,max=01,
             E_L             =SIMP(statut='o',typ=fonction),
             E_N             =SIMP(statut='o',typ=fonction),
             NU_LT           =SIMP(statut='o',typ=fonction),
             NU_LN           =SIMP(statut='o',typ=fonction),
             G_LN            =SIMP(statut='o',typ=fonction),
             RHO             =SIMP(statut='f',typ='R'),
             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.),
             ALPHA_L         =SIMP(statut='f',typ=fonction),
             ALPHA_N         =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST")),
           ),
           ELAS_ORTH       =FACT(statut='f',min=00,max=01,
             E_L             =SIMP(statut='o',typ='R'),
             E_T             =SIMP(statut='o',typ='R'),
             E_N             =SIMP(statut='f',typ='R'),
             NU_LT           =SIMP(statut='o',typ='R'),
             NU_LN           =SIMP(statut='f',typ='R'),
             NU_TN           =SIMP(statut='f',typ='R'),
             G_LT            =SIMP(statut='o',typ='R'),
             G_LN            =SIMP(statut='f',typ='R'),
             G_TN            =SIMP(statut='f',typ='R'),
             RHO             =SIMP(statut='f',typ='R'),
             ALPHA_L         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             ALPHA_T         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             ALPHA_N         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             XT              =SIMP(statut='f',typ='R',defaut= 1. ),
             XC              =SIMP(statut='f',typ='R',defaut= 1. ),
             YT              =SIMP(statut='f',typ='R',defaut= 1. ),
             YC              =SIMP(statut='f',typ='R',defaut= 1. ),
             S_LT            =SIMP(statut='f',typ='R',defaut= 1. ),
           ),
           ELAS_ORTH_FO    =FACT(statut='f',min=00,max=01,
             E_L             =SIMP(statut='o',typ=fonction),
             E_T             =SIMP(statut='o',typ=fonction),
             E_N             =SIMP(statut='o',typ=fonction),
             NU_LT           =SIMP(statut='o',typ=fonction),
             NU_LN           =SIMP(statut='o',typ=fonction),
             NU_TN           =SIMP(statut='o',typ=fonction),
             G_LT            =SIMP(statut='o',typ=fonction),
             G_LN            =SIMP(statut='o',typ=fonction),
             G_TN            =SIMP(statut='o',typ=fonction),
             RHO             =SIMP(statut='f',typ='R'),
             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1. ),
             ALPHA_L         =SIMP(statut='f',typ=fonction),
             ALPHA_T         =SIMP(statut='f',typ=fonction),
             ALPHA_N         =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
           ),
           ELAS_THM        =FACT(statut='f',min=00,max=01,
             RHO_S           =SIMP(statut='o',typ='R'),  
             UN_SUR_KS       =SIMP(statut='o',typ='R'),  
             E               =SIMP(statut='f',typ='R'),  
             KB              =SIMP(statut='f',typ='R'),  
             D_KB_T          =SIMP(statut='f',typ='R'),  
             ALPHA_S         =SIMP(statut='f',typ='R'),  
             ALPHA_D         =SIMP(statut='f',typ='R'),  
           ),
           SURF_ETAT_SATU  =FACT(statut='f',min=00,max=01,
             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=00,max=01,
             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=00,max=01,
             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'),  
           ),
           ELAS_COQUE      =FACT(statut='f',min=00,max=01,
             regles=(EXCLUS('MEMB_L','M_LLLL',),
                     PRESENT_PRESENT('MEMB_L','MEMB_LT', 'MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
                                     'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
                     PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
                                     'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL',
                                     'MF_LLTT','MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ',
                                     'MC_LLTZ','MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ',
                                     'FC_LLTZ','FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ',
                                     'C_LZTZ','C_TZTZ'),),
             MEMB_L          =SIMP(statut='f',typ='R'),
             MEMB_LT         =SIMP(statut='f',typ='R'),
             MEMB_T          =SIMP(statut='f',typ='R'),
             MEMB_G_LT       =SIMP(statut='f',typ='R'),
             FLEX_L          =SIMP(statut='f',typ='R'),
             FLEX_LT         =SIMP(statut='f',typ='R'),
             FLEX_T          =SIMP(statut='f',typ='R'),
             FLEX_G_LT       =SIMP(statut='f',typ='R'),
             CISA_L          =SIMP(statut='f',typ='R'),
             CISA_T          =SIMP(statut='f',typ='R'),
             M_LLLL          =SIMP(statut='f',typ='R'),
             M_LLTT          =SIMP(statut='f',typ='R'),
             M_LLLT          =SIMP(statut='f',typ='R'),
             M_TTTT          =SIMP(statut='f',typ='R'),
             M_TTLT          =SIMP(statut='f',typ='R'),
             M_LTLT          =SIMP(statut='f',typ='R'),
             F_LLLL          =SIMP(statut='f',typ='R'),
             F_LLTT          =SIMP(statut='f',typ='R'),
             F_LLLT          =SIMP(statut='f',typ='R'),
             F_TTTT          =SIMP(statut='f',typ='R'),
             F_TTLT          =SIMP(statut='f',typ='R'),
             F_LTLT          =SIMP(statut='f',typ='R'),
             MF_LLLL         =SIMP(statut='f',typ='R'),
             MF_LLTT         =SIMP(statut='f',typ='R'),
             MF_LLLT         =SIMP(statut='f',typ='R'),
             MF_TTTT         =SIMP(statut='f',typ='R'),
             MF_TTLT         =SIMP(statut='f',typ='R'),
             MF_LTLT         =SIMP(statut='f',typ='R'),
             MC_LLLZ         =SIMP(statut='f',typ='R'),
             MC_LLTZ         =SIMP(statut='f',typ='R'),
             MC_TTLZ         =SIMP(statut='f',typ='R'),
             MC_TTTZ         =SIMP(statut='f',typ='R'),
             MC_LTLZ         =SIMP(statut='f',typ='R'),
             MC_LTTZ         =SIMP(statut='f',typ='R'),
             FC_LLLZ         =SIMP(statut='f',typ='R'),
             FC_LLTZ         =SIMP(statut='f',typ='R'),
             FC_TTLZ         =SIMP(statut='f',typ='R'),
             FC_TTTZ         =SIMP(statut='f',typ='R'),
             FC_LTLZ         =SIMP(statut='f',typ='R'),
             FC_LTTZ         =SIMP(statut='f',typ='R'),
             C_LZLZ          =SIMP(statut='f',typ='R'),
             C_LZTZ          =SIMP(statut='f',typ='R'),
             C_TZTZ          =SIMP(statut='f',typ='R'),
             RHO             =SIMP(statut='f',typ='R'),
             ALPHA           =SIMP(statut='f',typ='R'),
           ),
           ELAS_COQUE_FO   =FACT(statut='f',min=00,max=01,
             regles=(EXCLUS('MEMB_L','M_LLLL',),
                     PRESENT_PRESENT('MEMB_L','MEMB_LT','MEMB_T','MEMB_G_LT','FLEX_L','FLEX_LT',
                                     'FLEX_T','FLEX_G_LT','CISA_L','CISA_T',),
                     PRESENT_PRESENT('M_LLLL','M_LLTT','M_LLLT','M_TTTT','M_TTLT','M_LTLT','F_LLLL',
                                     'F_LLTT','F_LLLT','F_TTTT','F_TTLT','F_LTLT','MF_LLLL','MF_LLTT',
                                     'MF_LLLT','MF_TTTT','MF_TTLT','MF_LTLT','MC_LLLZ','MC_LLTZ',
                                     'MC_TTLZ','MC_TTTZ','MC_LTLZ','MC_LTTZ','FC_LLLZ','FC_LLTZ',
                                     'FC_TTLZ','FC_TTTZ','FC_LTLZ','FC_LTTZ','C_LZLZ','C_LZTZ','C_TZTZ'),),
             MEMB_L          =SIMP(statut='f',typ=fonction),
             MEMB_LT         =SIMP(statut='f',typ=fonction),
             MEMB_T          =SIMP(statut='f',typ=fonction),
             MEMB_G_LT       =SIMP(statut='f',typ=fonction),
             FLEX_L          =SIMP(statut='f',typ=fonction),
             FLEX_LT         =SIMP(statut='f',typ=fonction),
             FLEX_T          =SIMP(statut='f',typ=fonction),
             FLEX_G_LT       =SIMP(statut='f',typ=fonction),
             CISA_L          =SIMP(statut='f',typ=fonction),
             CISA_T          =SIMP(statut='f',typ=fonction),
             M_LLLL          =SIMP(statut='f',typ=fonction),
             M_LLTT          =SIMP(statut='f',typ=fonction),
             M_LLLT          =SIMP(statut='f',typ=fonction),
             M_TTTT          =SIMP(statut='f',typ=fonction),
             M_TTLT          =SIMP(statut='f',typ=fonction),
             M_LTLT          =SIMP(statut='f',typ=fonction),
             F_LLLL          =SIMP(statut='f',typ=fonction),
             F_LLTT          =SIMP(statut='f',typ=fonction),
             F_LLLT          =SIMP(statut='f',typ=fonction),
             F_TTTT          =SIMP(statut='f',typ=fonction),
             F_TTLT          =SIMP(statut='f',typ=fonction),
             F_LTLT          =SIMP(statut='f',typ=fonction),
             MF_LLLL         =SIMP(statut='f',typ=fonction),
             MF_LLTT         =SIMP(statut='f',typ=fonction),
             MF_LLLT         =SIMP(statut='f',typ=fonction),
             MF_TTTT         =SIMP(statut='f',typ=fonction),
             MF_TTLT         =SIMP(statut='f',typ=fonction),
             MF_LTLT         =SIMP(statut='f',typ=fonction),
             MC_LLLZ         =SIMP(statut='f',typ=fonction),
             MC_LLTZ         =SIMP(statut='f',typ=fonction),
             MC_TTLZ         =SIMP(statut='f',typ=fonction),
             MC_TTTZ         =SIMP(statut='f',typ=fonction),
             MC_LTLZ         =SIMP(statut='f',typ=fonction),
             MC_LTTZ         =SIMP(statut='f',typ=fonction),
             FC_LLLZ         =SIMP(statut='f',typ=fonction),
             FC_LLTZ         =SIMP(statut='f',typ=fonction),
             FC_TTLZ         =SIMP(statut='f',typ=fonction),
             FC_TTTZ         =SIMP(statut='f',typ=fonction),
             FC_LTLZ         =SIMP(statut='f',typ=fonction),
             FC_LTTZ         =SIMP(statut='f',typ=fonction),
             C_LZLZ          =SIMP(statut='f',typ=fonction),
             C_LZTZ          =SIMP(statut='f',typ=fonction),
             C_TZTZ          =SIMP(statut='f',typ=fonction),
             RHO             =SIMP(statut='f',typ='R'),
             ALPHA           =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST") ),
           ),
           APPUI_ELAS      =FACT(statut='f',min=00,max=01,
             E_N             =SIMP(statut='o',typ='R'),
             E_TAN           =SIMP(statut='f',typ='R',defaut= 0.E+0),
           ),
           CABLE           =FACT(statut='f',min=00,max=01,
             E               =SIMP(statut='o',typ='R'),
             EC_SUR_E        =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
             RHO             =SIMP(statut='f',typ='R'),
             ALPHA           =SIMP(statut='f',typ='R'),
             AMOR_ALPHA      =SIMP(statut='f',typ='R'),
             AMOR_BETA       =SIMP(statut='f',typ='R'),
           ),
#
# comportement mécanique non linéaire
#
           TRACTION        =FACT(statut='f',min=00,max=01,
             SIGM            =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
             VERI_P3         =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
             VERI_P4         =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ),
           ),
           ECRO_LINE       =FACT(statut='f',min=00,max=01,
             D_SIGM_EPSI     =SIMP(statut='o',typ='R'),
             SY              =SIMP(statut='o',typ='R'),
           ),
           ECRO_LINE_FO    =FACT(statut='f',min=00,max=01,
             D_SIGM_EPSI     =SIMP(statut='o',typ=fonction),
             SY              =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           PRAGER          =FACT(statut='f',min=00,max=01,
             C               =SIMP(statut='o',typ='R'),
           ),
           PRAGER_FO       =FACT(statut='f',min=00,max=01,
             C               =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           ECRO_FLEJOU     =FACT(statut='f',min=00,max=01,
             EP              =SIMP(statut='o',typ='R'),
             SY              =SIMP(statut='o',typ='R'),
             SU              =SIMP(statut='o',typ='R'),
             PUISS           =SIMP(statut='o',typ='R'),
           ),
           TAHERI          =FACT(statut='f',min=00,max=01,
             R_0             =SIMP(statut='o',typ='R'),
             ALPHA           =SIMP(statut='o',typ='R'),
             M               =SIMP(statut='o',typ='R'),
             A               =SIMP(statut='o',typ='R'),
             B               =SIMP(statut='o',typ='R'),
             C1              =SIMP(statut='o',typ='R'),
             C_INF           =SIMP(statut='o',typ='R'),
             S               =SIMP(statut='o',typ='R'),
           ),
           TAHERI_FO       =FACT(statut='f',min=00,max=01,
             R_0             =SIMP(statut='o',typ=fonction),
             ALPHA           =SIMP(statut='o',typ=fonction),
             M               =SIMP(statut='o',typ=fonction),
             A               =SIMP(statut='o',typ=fonction),
             B               =SIMP(statut='o',typ=fonction),
             C1              =SIMP(statut='o',typ=fonction),
             C_INF           =SIMP(statut='o',typ=fonction),
             S               =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           ROUSSELIER      =FACT(statut='f',min=00,max=01,
             D               =SIMP(statut='o',typ='R'),
             SIGM_1          =SIMP(statut='o',typ='R'),
             PORO_INIT       =SIMP(statut='o',typ='R'),
             PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
             PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
             PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 1. ),
             D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
           ),
           ROUSSELIER_FO   =FACT(statut='f',min=00,max=01,
             D               =SIMP(statut='o',typ=fonction),
             SIGM_1          =SIMP(statut='o',typ=fonction),
             PORO_INIT       =SIMP(statut='o',typ=fonction),
             PORO_CRIT       =SIMP(statut='f',typ='R',defaut= 1. ),
             PORO_ACCE       =SIMP(statut='f',typ='R',defaut= 1. ),
             PORO_LIMI       =SIMP(statut='f',typ='R',defaut= 1. ),
             D_SIGM_EPSI_NORM=SIMP(statut='f',typ='R',defaut= 1. ),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           CHABOCHE        =FACT(statut='f',min=00,max=01,
             R_I             =SIMP(statut='o',typ='R'),
             R_0             =SIMP(statut='o',typ='R'),
             B               =SIMP(statut='o',typ='R'),
             K               =SIMP(statut='o',typ='R'),
             W               =SIMP(statut='o',typ='R'),
             A1              =SIMP(statut='o',typ='R'),
             A2              =SIMP(statut='o',typ='R'),
             C1              =SIMP(statut='o',typ='R'),
             C2              =SIMP(statut='o',typ='R'),
           ),
           VMIS_CIN1_CHAB  =FACT(statut='f',min=00,max=01,
             R_0             =SIMP(statut='o',typ='R'),  
             R_I             =SIMP(statut='f',typ='R'),  
             B               =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
             C_I             =SIMP(statut='o',typ='R'),  
             K               =SIMP(statut='f',typ='R',defaut= 1.0E+0),  
             W               =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
             G_0             =SIMP(statut='o',typ='R'),  
             A_I             =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
           ),
           VMIS_CIN1_CHAB_F  =FACT(statut='f',min=00,max=01,
             R_0             =SIMP(statut='o',typ=fonction),
             R_I             =SIMP(statut='o',typ=fonction),
             B               =SIMP(statut='o',typ=fonction),
             C_I             =SIMP(statut='o',typ=fonction),
             K               =SIMP(statut='o',typ=fonction),
             W               =SIMP(statut='o',typ=fonction),
             G_0             =SIMP(statut='o',typ=fonction),
             A_I             =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
           ),
           VMIS_CIN2_CHAB  =FACT(statut='f',min=00,max=01,
             R_0             =SIMP(statut='o',typ='R'),  
             R_I             =SIMP(statut='f',typ='R'),  
             B               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
             C1_I            =SIMP(statut='o',typ='R'),  
             C2_I            =SIMP(statut='o',typ='R'),  
             K               =SIMP(statut='f',typ='R',defaut= 1.),  
             W               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
             G1_0            =SIMP(statut='o',typ='R'),  
             G2_0            =SIMP(statut='o',typ='R'),  
             A_I             =SIMP(statut='f',typ='R',defaut= 1.E+0 ),  
           ),
           VMIS_CIN2_CHAB_F  =FACT(statut='f',min=00,max=01,
             R_0             =SIMP(statut='o',typ=fonction),
             R_I             =SIMP(statut='o',typ=fonction),
             B               =SIMP(statut='o',typ=fonction),
             C1_I            =SIMP(statut='o',typ=fonction),
             C2_I            =SIMP(statut='o',typ=fonction),
             K               =SIMP(statut='o',typ=fonction),
             W               =SIMP(statut='o',typ=fonction),
             G1_0            =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",) ),
           ),
           VISCOCHAB       =FACT(statut='f',min=00,max=01,
             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=00,max=01,
             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",) ),
           ),
           POLY_CFC        =FACT(statut='f',min=00,max=01,
             TEXTURE         =SIMP(statut='o',typ=(tabl_texture) ),
             DL              =SIMP(statut='f',typ='R'),
             DA              =SIMP(statut='f',typ='R'),
             N               =SIMP(statut='o',typ='R'),
             K               =SIMP(statut='o',typ='R'),
             TAU_0           =SIMP(statut='o',typ='R'),
             Q1              =SIMP(statut='o',typ='R'),
             B1              =SIMP(statut='o',typ='R'),
             HL              =SIMP(statut='o',typ='R'),
             Q2              =SIMP(statut='o',typ='R'),
             B2              =SIMP(statut='o',typ='R'),
             C1              =SIMP(statut='o',typ='R'),
             D1              =SIMP(statut='o',typ='R'),
             C2              =SIMP(statut='o',typ='R'),
           ),
           POLY_CFC_FO     =FACT(statut='f',min=00,max=01,
             TEXTURE         =SIMP(statut='o',typ=(tabl_texture) ),
             DL              =SIMP(statut='o',typ=fonction),
             DA              =SIMP(statut='o',typ=fonction),
             N               =SIMP(statut='o',typ=fonction),
             K               =SIMP(statut='o',typ=fonction),
             TAU_0           =SIMP(statut='o',typ=fonction),
             Q1              =SIMP(statut='o',typ=fonction),
             B1              =SIMP(statut='o',typ=fonction),
             HL              =SIMP(statut='o',typ=fonction),
             Q2              =SIMP(statut='o',typ=fonction),
             B2              =SIMP(statut='o',typ=fonction),
             C1              =SIMP(statut='o',typ=fonction),
             D1              =SIMP(statut='o',typ=fonction),
             C2              =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           NORTON_HOFF     =FACT(statut='f',min=00,max=01,
             N               =SIMP(statut='o',typ='R'),
             SY              =SIMP(statut='o',typ='R'),
           ),
           LEMAITRE        =FACT(statut='f',min=00,max=01,
             N               =SIMP(statut='o',typ='R'),
             UN_SUR_K        =SIMP(statut='o',typ='R'),
             UN_SUR_M        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             QSR_K           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
           ZIRC_CYRA2      =FACT(statut='f',min=00,max=01,
             EPSI_FAB        =SIMP(statut='o',typ=fonction),
             TEMP_RECUIT     =SIMP(statut='o',typ=fonction),
             FLUX_PHI        =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
           ),
           ZIRC_EPRI       =FACT(statut='f',min=00,max=01,
             FLUX_PHI        =SIMP(statut='o',typ='R'),
             R_P             =SIMP(statut='o',typ='R'),
             THETA_MAX       =SIMP(statut='o',typ='R'),
           ),
           LEMAITRE_FO     =FACT(statut='f',min=00,max=01,
             N               =SIMP(statut='o',typ=fonction),
             UN_SUR_K        =SIMP(statut='o',typ=fonction),
             UN_SUR_M        =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           GRAN_IRRA       =FACT(statut='f',min=00,max=01,
             FLUX_L          =SIMP(statut='o',typ=fonction),
             FLUX_TN         =SIMP(statut='o',typ=fonction),
             FONC_MULT       =SIMP(statut='f',typ=fonction),
             A               =SIMP(statut='o',typ='R'),
             S               =SIMP(statut='f',typ='R'),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="X",into=("X",) ),
             VERI_P2         =SIMP(statut='f',typ='TXM',defaut="Y",into=("Y",) ),
             VERI_P3         =SIMP(statut='f',typ='TXM',defaut="Z",into=("Z",) ),
             VERI_P4         =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST",) ),
           ),
           OHNO            =FACT(statut='f',min=00,max=01,
             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=00,max=01,
             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",) ),
           ),
           LMARC           =FACT(statut='f',min=00,max=01,
             DE_0            =SIMP(statut='o',typ='R'),
             R_0             =SIMP(statut='o',typ='R'),
             N               =SIMP(statut='o',typ='R'),
             K               =SIMP(statut='o',typ='R'),
             Y_I             =SIMP(statut='o',typ='R'),
             Y_0             =SIMP(statut='o',typ='R'),
             B               =SIMP(statut='o',typ='R'),
             A_0             =SIMP(statut='o',typ='R'),
             RM              =SIMP(statut='o',typ='R'),
             M               =SIMP(statut='o',typ='R'),
             P               =SIMP(statut='o',typ='R'),
             P1              =SIMP(statut='o',typ='R'),
             P2              =SIMP(statut='o',typ='R'),
             M11             =SIMP(statut='o',typ='R'),
             M22             =SIMP(statut='o',typ='R'),
             M33             =SIMP(statut='o',typ='R'),
             M66             =SIMP(statut='o',typ='R'),
             N11             =SIMP(statut='o',typ='R'),
             N22             =SIMP(statut='o',typ='R'),
             N33             =SIMP(statut='o',typ='R'),
             N66             =SIMP(statut='o',typ='R'),
             Q11             =SIMP(statut='o',typ='R'),
             Q22             =SIMP(statut='o',typ='R'),
             Q33             =SIMP(statut='o',typ='R'),
             Q66             =SIMP(statut='o',typ='R'),
             R11             =SIMP(statut='o',typ='R'),
             R22             =SIMP(statut='o',typ='R'),
             R33             =SIMP(statut='o',typ='R'),
             R66             =SIMP(statut='o',typ='R'),
           ),
           LMARC_FO        =FACT(statut='f',min=00,max=01,
             DE_0            =SIMP(statut='o',typ=fonction),
             R_0             =SIMP(statut='o',typ=fonction),
             N               =SIMP(statut='o',typ=fonction),
             K               =SIMP(statut='o',typ=fonction),
             Y_I             =SIMP(statut='o',typ=fonction),
             Y_0             =SIMP(statut='o',typ=fonction),
             B               =SIMP(statut='o',typ=fonction),
             A_0             =SIMP(statut='o',typ=fonction),
             RM              =SIMP(statut='o',typ=fonction),
             M               =SIMP(statut='o',typ=fonction),
             P               =SIMP(statut='o',typ=fonction),
             P1              =SIMP(statut='o',typ=fonction),
             P2              =SIMP(statut='o',typ=fonction),
             M11             =SIMP(statut='o',typ=fonction),
             M22             =SIMP(statut='o',typ=fonction),
             M33             =SIMP(statut='o',typ=fonction),
             M66             =SIMP(statut='o',typ=fonction),
             N11             =SIMP(statut='o',typ=fonction),
             N22             =SIMP(statut='o',typ=fonction),
             N33             =SIMP(statut='o',typ=fonction),
             N66             =SIMP(statut='o',typ=fonction),
             Q11             =SIMP(statut='o',typ=fonction),
             Q22             =SIMP(statut='o',typ=fonction),
             Q33             =SIMP(statut='o',typ=fonction),
             Q66             =SIMP(statut='o',typ=fonction),
             R11             =SIMP(statut='o',typ=fonction),
             R22             =SIMP(statut='o',typ=fonction),
             R33             =SIMP(statut='o',typ=fonction),
             R66             =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           VMIS_POUTRE     =FACT(statut='f',min=00,max=01,
             NP              =SIMP(statut='o',typ='R'),
             MEY             =SIMP(statut='o',typ='R'),
             MPY             =SIMP(statut='o',typ='R'),
             CAY             =SIMP(statut='o',typ='R'),
             CBY             =SIMP(statut='o',typ='R'),
             MEZ             =SIMP(statut='o',typ='R'),
             MPZ             =SIMP(statut='o',typ='R'),
             CAZ             =SIMP(statut='o',typ='R'),
             CBZ             =SIMP(statut='o',typ='R'),
             MPX             =SIMP(statut='o',typ='R'),
           ),
           VMIS_POUTRE_FO  =FACT(statut='f',min=00,max=01,
             NP              =SIMP(statut='o',typ=fonction),
             MEY             =SIMP(statut='o',typ=fonction),
             MPY             =SIMP(statut='o',typ=fonction),
             CAY             =SIMP(statut='o',typ=fonction),
             CBY             =SIMP(statut='o',typ=fonction),
             MEZ             =SIMP(statut='o',typ=fonction),
             MPZ             =SIMP(statut='o',typ=fonction),
             CAZ             =SIMP(statut='o',typ=fonction),
             CBZ             =SIMP(statut='o',typ=fonction),
             MPX             =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           ARME            =FACT(statut='f',min=00,max=01,
             KYE             =SIMP(statut='o',typ='R'),
             DLE             =SIMP(statut='o',typ='R'),
             KYP             =SIMP(statut='o',typ='R'),
             DLP             =SIMP(statut='o',typ='R'),
             KYG             =SIMP(statut='o',typ='R'),
           ),
           ASSE_CORN       =FACT(statut='f',min=00,max=01,
             NU_1            =SIMP(statut='o',typ='R'),
             MU_1            =SIMP(statut='o',typ='R'),
             DXU_1           =SIMP(statut='o',typ='R'),
             DRYU_1          =SIMP(statut='o',typ='R'),
             C_1             =SIMP(statut='o',typ='R'),
             NU_2            =SIMP(statut='o',typ='R'),
             MU_2            =SIMP(statut='o',typ='R'),
             DXU_2           =SIMP(statut='o',typ='R'),
             DRYU_2          =SIMP(statut='o',typ='R'),
             C_2             =SIMP(statut='o',typ='R'),
             KY              =SIMP(statut='o',typ='R'),
             KZ              =SIMP(statut='o',typ='R'),
             KRX             =SIMP(statut='o',typ='R'),
             KRZ             =SIMP(statut='o',typ='R'),
           ),
           DIS_CONTACT     =FACT(statut='f',min=00,max=01,
             regles=(EXCLUS('RIGI_N_FO','RIGI_N_IRRA'),),
             RIGI_NOR        =SIMP(statut='f',typ='R' ),
             DIST_1          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             DIST_2          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             AMOR_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             JEU             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             KT_ULTM         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
             EFFO_N_INIT     =SIMP(statut='f',typ='R'),
             RIGI_N_FO       =SIMP(statut='f',typ=fonction),
             RIGI_N_IRRA     =SIMP(statut='f',typ=fonction),
             RELA_MZ         =SIMP(statut='f',typ=fonction),
             C_PRAGER_MZ     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="DRZ",into=("DRZ",) ),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
           ),
           NADAI_B         =FACT(statut='f',min=00,max=01,
             F_C             =SIMP(statut='o',typ='R'),
             F_T             =SIMP(statut='o',typ='R'),
             CRIT_E_C        =SIMP(statut='o',typ='R'),
             EPSP_P_C        =SIMP(statut='o',typ='R'),
             EPSP_R_C        =SIMP(statut='o',typ='R'),
             EPSI_R_T        =SIMP(statut='o',typ='R'),
             FAC_T_C         =SIMP(statut='o',typ='R'),
           ),
           BETON_DOUBLE_DP =FACT(statut='f',min=00,max=01,
             F_C             =SIMP(statut='o',typ=fonction),
             F_T             =SIMP(statut='o',typ=fonction),
             COEF_BIAX       =SIMP(statut='o',typ=fonction),
             ENER_COMP_RUPT  =SIMP(statut='o',typ=fonction),
             ENER_TRAC_RUPT  =SIMP(statut='o',typ=fonction),
             COEF_ELAS_COMP  =SIMP(statut='o',typ='R'),
             ECRO_COMP_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","PARABOLE") ),
             ECRO_TRAC_P_PIC =SIMP(statut='f',typ='TXM',defaut="LINEAIRE",into=("LINEAIRE","EXPONENT") ),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP","INST",) ),
             VERI_P2         =SIMP(statut='f',typ='TXM',defaut="INST",into=("TEMP","INST",) ),
             VERI_P3         =SIMP(statut='f',typ='TXM',defaut="HYDR",into=("HYDR",) ),
             VERI_P4         =SIMP(statut='f',typ='TXM',defaut="SECH",into=("SECH",) ),
           ),
           VENDOCHAB       =FACT(statut='f',min=00,max=01,
             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=00,max=01,
             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='f',typ='TXM',defaut="TEMP",into=("TEMP",) ),
             VERI_P2         =SIMP(statut='f',typ='TXM',defaut="X",into=("X",) ),
           ),
           PINTO_MENEGOTTO =FACT(statut='f',min=00,max=01,
             SY              =SIMP(statut='o',typ='R'),
             EPSI_ULTM       =SIMP(statut='o',typ='R'),
             SIGM_ULTM       =SIMP(statut='o',typ='R'),
             ELAN            =SIMP(statut='f',typ='R',defaut= 4. ),
             EPSP_HARD       =SIMP(statut='o',typ='R'),
             R_PM            =SIMP(statut='f',typ='R',defaut= 20. ),
             EP_SUR_E        =SIMP(statut='f',typ='R'),
             A1_PM           =SIMP(statut='f',typ='R',defaut= 18.5 ),
             A2_PM           =SIMP(statut='f',typ='R',defaut= 0.15 ),
             A6_PM           =SIMP(statut='f',typ='R',defaut= 620. ),
             C_PM            =SIMP(statut='f',typ='R',defaut= 0.5 ),
             A_PM            =SIMP(statut='f',typ='R',defaut= 6.0E-3 ),
           ),
           BPEL_BETON      =FACT(statut='f',min=00,max=01,
             PERT_FLUA       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             PERT_RETR       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
           BPEL_ACIER      =FACT(statut='f',min=00,max=01,
             RELAX_1000      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             MU0_RELAX       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             SY              =SIMP(statut='o',typ='R'),
             FROT_COURB      =SIMP(statut='o',typ='R'),
             FROT_LINE       =SIMP(statut='o',typ='R'),
           ),
           CJS             =FACT(statut='f',min=00,max=01,
             regles=(ENSEMBLE('B_CJS','C_CJS','MU_CJS','PCO',),
                     ENSEMBLE('N_CJS','KP','RC',),
                     PRESENT_ABSENT('A_CJS','B_CJS',),
                     PRESENT_PRESENT('A_CJS','N_CJS',),
                     PRESENT_PRESENT('B_CJS','N_CJS', ),),
             BETA_CJS        =SIMP(statut='o',typ='R'),
             RM              =SIMP(statut='o',typ='R'),
             N_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             KP              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             RC              =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             A_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             B_CJS           =SIMP(statut='f',typ='R',defaut= 1.0E+25 ),
             C_CJS           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             GAMMA_CJS       =SIMP(statut='o',typ='R'),
             MU_CJS          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             PCO             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             PA              =SIMP(statut='o',typ='R'),
             Q_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
             R_INIT          =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
           ECRO_ASYM_LINE  =FACT(statut='f',min=00,max=01,
             DC_SIGM_EPSI    =SIMP(statut='o',typ='R'),
             SY_C            =SIMP(statut='o',typ='R'),
             DT_SIGM_EPSI    =SIMP(statut='o',typ='R'),
             SY_T            =SIMP(statut='o',typ='R'),
           ),
           GRANGER_FP      =FACT(statut='f',min=00,max=01,
             J1              =SIMP(statut='f',typ='R'),
             J2              =SIMP(statut='f',typ='R'),
             J3              =SIMP(statut='f',typ='R'),
             J4              =SIMP(statut='f',typ='R'),
             J5              =SIMP(statut='f',typ='R'),
             J6              =SIMP(statut='f',typ='R'),
             J7              =SIMP(statut='f',typ='R'),
             J8              =SIMP(statut='f',typ='R'),
             TAUX_1          =SIMP(statut='f',typ='R'),
             TAUX_2          =SIMP(statut='f',typ='R'),
             TAUX_3          =SIMP(statut='f',typ='R'),
             TAUX_4          =SIMP(statut='f',typ='R'),
             TAUX_5          =SIMP(statut='f',typ='R'),
             TAUX_6          =SIMP(statut='f',typ='R'),
             TAUX_7          =SIMP(statut='f',typ='R'),
             TAUX_8          =SIMP(statut='f',typ='R'),
             FONC_DESORP     =SIMP(statut='f',typ=fonction),
             QSR_K           =SIMP(statut='f',typ='R'),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="SECH",into=("SECH",) ),
           ),
           V_GRANGER_FP    =FACT(statut='f',min=00,max=01,
             QSR_VEIL        =SIMP(statut='f',typ='R'),
             FONC_V          =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
           ),
#
# comportement thermique
#
           THER_NL         =FACT(statut='f',min=00,max=01,
             regles=(UN_PARMI('BETA','RHO_CP', ),),
             LAMBDA          =SIMP(statut='o',typ=fonction),
             BETA            =SIMP(statut='f',typ=fonction),
             RHO_CP          =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           THER_HYDR       =FACT(statut='f',min=00,max=01,
             LAMBDA          =SIMP(statut='o',typ=fonction),
             BETA            =SIMP(statut='f',typ=fonction),
             AFFINITE        =SIMP(statut='o',typ=fonction),
             CHALHYDR        =SIMP(statut='o',typ='R'),
             QSR_K           =SIMP(statut='o',typ='R'),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("HYDR",) ),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="HYDR",into=("HYDR",) ),
           ),
           THER            =FACT(statut='f',min=00,max=01,
             LAMBDA          =SIMP(statut='o',typ='R'),
             RHO_CP          =SIMP(statut='f',typ='R'),
           ),
           THER_FO         =FACT(statut='f',min=00,max=01,
             LAMBDA          =SIMP(statut='o',typ=fonction),
             RHO_CP          =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="INST",into=("INST",) ),
           ),
           THER_ORTH       =FACT(statut='f',min=00,max=01,
             LAMBDA_L        =SIMP(statut='o',typ='R'),
             LAMBDA_T        =SIMP(statut='o',typ='R'),
             LAMBDA_N        =SIMP(statut='f',typ='R'),
             RHO_CP          =SIMP(statut='f',typ='R'),
           ),
           THER_COQUE      =FACT(statut='f',min=00,max=01,
             COND_LMM        =SIMP(statut='o',typ='R'),
             COND_TMM        =SIMP(statut='o',typ='R'),
             COND_LMP        =SIMP(statut='o',typ='R'),
             COND_TMP        =SIMP(statut='o',typ='R'),
             COND_LPP        =SIMP(statut='o',typ='R'),
             COND_TPP        =SIMP(statut='o',typ='R'),
             COND_LSI        =SIMP(statut='o',typ='R'),
             COND_TSI        =SIMP(statut='o',typ='R'),
             COND_NMM        =SIMP(statut='o',typ='R'),
             COND_NMP        =SIMP(statut='o',typ='R'),
             COND_NPP        =SIMP(statut='o',typ='R'),
             COND_NSI        =SIMP(statut='o',typ='R'),
             CMAS_MM         =SIMP(statut='f',typ='R'),
             CMAS_MP         =SIMP(statut='f',typ='R'),
             CMAS_PP         =SIMP(statut='f',typ='R'),
             CMAS_SI         =SIMP(statut='f',typ='R'),
           ),
           THER_COQUE_FO   =FACT(statut='f',min=00,max=01,
             COND_LMM        =SIMP(statut='o',typ=fonction),
             COND_TMM        =SIMP(statut='o',typ=fonction),
             COND_LMP        =SIMP(statut='o',typ=fonction),
             COND_TMP        =SIMP(statut='o',typ=fonction),
             COND_LPP        =SIMP(statut='o',typ=fonction),
             COND_TPP        =SIMP(statut='o',typ=fonction),
             COND_LSI        =SIMP(statut='o',typ=fonction),
             COND_TSI        =SIMP(statut='o',typ=fonction),
             COND_NMM        =SIMP(statut='o',typ=fonction),
             COND_NMP        =SIMP(statut='o',typ=fonction),
             COND_NPP        =SIMP(statut='o',typ=fonction),
             COND_NSI        =SIMP(statut='o',typ=fonction),
             CMAS_MM         =SIMP(statut='f',typ=fonction),
             CMAS_MP         =SIMP(statut='f',typ=fonction),
             CMAS_PP         =SIMP(statut='f',typ=fonction),
             CMAS_SI         =SIMP(statut='f',typ=fonction),
           ),
           SECH_GRANGER    =FACT(statut='f',min=00,max=01,
             A               =SIMP(statut='o',typ='R'),
             B               =SIMP(statut='o',typ='R'),
             QSR_K           =SIMP(statut='o',typ='R'),
             TEMP_0_C        =SIMP(statut='o',typ='R'),
           ),
           SECH_MENSI      =FACT(statut='f',min=00,max=01,
             A               =SIMP(statut='o',typ='R'),
             B               =SIMP(statut='o',typ='R'),
           ),
           SECH_BAZANT     =FACT(statut='f',min=00,max=01,
             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=00,max=01,
             FONCTION        =SIMP(statut='o',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="TSEC",into=("TSEC",) ),
           ),
#
# comportement métallurgique
#
           META_ACIER      =FACT(statut='f',min=00,max=01,
             TRC             =SIMP(statut='o',typ=(tabl_trc) ),
             AR3             =SIMP(statut='o',typ='R'),
             ALPHA           =SIMP(statut='o',typ='R'),
             MS0             =SIMP(statut='o',typ='R'),
             AC1             =SIMP(statut='o',typ='R'),
             AC3             =SIMP(statut='o',typ='R'),
             TAUX_1          =SIMP(statut='o',typ='R'),
             TAUX_3          =SIMP(statut='o',typ='R'),
             LAMBDA0         =SIMP(statut='f',typ='R'),  
             QSR_K           =SIMP(statut='f',typ='R'),  
             D10             =SIMP(statut='f',typ='R'),  
             WSR_K           =SIMP(statut='f',typ='R'),  
           ),
           META_ZIRC       =FACT(statut='f',min=00,max=01,
             TDEQ            =SIMP(statut='o',typ='R'),  
             N               =SIMP(statut='o',typ='R'),  
             K               =SIMP(statut='o',typ='R'),  
             TDC             =SIMP(statut='o',typ='R'),  
             AC              =SIMP(statut='o',typ='R'),  
             M               =SIMP(statut='o',typ='R'),  
             QSR_K           =SIMP(statut='f',typ='R'),  
             TDR             =SIMP(statut='o',typ='R'),  
             AR              =SIMP(statut='o',typ='R'),  
             BR              =SIMP(statut='o',typ='R'),  
           ),
           DURT_META       =FACT(statut='f',min=00,max=01,
             F1_DURT         =SIMP(statut='o',typ='R'),  
             F2_DURT         =SIMP(statut='o',typ='R'),  
             F3_DURT         =SIMP(statut='o',typ='R'),  
             F4_DURT         =SIMP(statut='o',typ='R'),  
             C_DURT          =SIMP(statut='o',typ='R'),  
           ),
           ELAS_META       =FACT(statut='f',min=00,max=01,
             E               =SIMP(statut='o',typ='R'),  
             NU              =SIMP(statut='o',typ='R'),  
             F_ALPHA         =SIMP(statut='o',typ='R'),  
             C_ALPHA         =SIMP(statut='o',typ='R'),  
             PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
             EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),  
             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),  
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),  
             F1_SY           =SIMP(statut='f',typ='R'),  
             F2_SY           =SIMP(statut='f',typ='R'),  
             F3_SY           =SIMP(statut='f',typ='R'),  
             F4_SY           =SIMP(statut='f',typ='R'),  
             C_SY            =SIMP(statut='f',typ='R'),  
             SY_MELANGE      =SIMP(statut='f',typ=fonction),
             F1_S_VP         =SIMP(statut='f',typ='R'),  
             F2_S_VP         =SIMP(statut='f',typ='R'),  
             F3_S_VP         =SIMP(statut='f',typ='R'),  
             F4_S_VP         =SIMP(statut='f',typ='R'),  
             C_S_VP          =SIMP(statut='f',typ='R' ),  
             S_VP_MELANGE    =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)),
           ),
           ELAS_META_FO    =FACT(statut='f',min=00,max=01,
             E               =SIMP(statut='o',typ=fonction),
             NU              =SIMP(statut='o',typ=fonction),
             F_ALPHA         =SIMP(statut='o',typ=fonction),
             C_ALPHA         =SIMP(statut='o',typ=fonction),
             PHASE_REFE      =SIMP(statut='o',typ='TXM',into=("CHAUD","FROID")),
             EPSF_EPSC_TREF  =SIMP(statut='o',typ='R'),  
             TEMP_DEF_ALPHA  =SIMP(statut='f',typ='R'),  
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E+0),  
             F1_SY           =SIMP(statut='f',typ=fonction),
             F2_SY           =SIMP(statut='f',typ=fonction),
             F3_SY           =SIMP(statut='f',typ=fonction),
             F4_SY           =SIMP(statut='f',typ=fonction),
             C_SY            =SIMP(statut='f',typ=fonction),  
             SY_MELANGE      =SIMP(statut='f',typ=fonction),
             F1_S_VP         =SIMP(statut='f',typ=fonction),
             F2_S_VP         =SIMP(statut='f',typ=fonction),
             F3_S_VP         =SIMP(statut='f',typ=fonction),
             F4_S_VP         =SIMP(statut='f',typ=fonction),
             C_S_VP          =SIMP(statut='f',typ=fonction),  
             S_VP_MELANGE    =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="META",into=("META",)),
           ),
           META_ECRO_LINE  =FACT(statut='f',min=00,max=01,
             F1_D_SIGM_EPSI  =SIMP(statut='f',typ=fonction),
             F2_D_SIGM_EPSI  =SIMP(statut='f',typ=fonction),
             F3_D_SIGM_EPSI  =SIMP(statut='f',typ=fonction),
             F4_D_SIGM_EPSI  =SIMP(statut='f',typ=fonction),
             C_D_SIGM_EPSI   =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
           ),
           META_TRACTION   =FACT(statut='f',min=00,max=01,
             SIGM_F1         =SIMP(statut='f',typ=fonction),
             SIGM_F2         =SIMP(statut='f',typ=fonction),
             SIGM_F3         =SIMP(statut='f',typ=fonction),
             SIGM_F4         =SIMP(statut='f',typ=fonction),
             SIGM_C          =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",)),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",)),
           ),
           META_VISC_FO    =FACT(statut='f',min=00,max=01,
             F1_ETA          =SIMP(statut='f',typ=fonction),
             F1_N            =SIMP(statut='f',typ=fonction),
             F1_C            =SIMP(statut='f',typ=fonction),
             F1_M            =SIMP(statut='f',typ=fonction),
             F2_ETA          =SIMP(statut='f',typ=fonction),
             F2_N            =SIMP(statut='f',typ=fonction),
             F2_C            =SIMP(statut='f',typ=fonction),
             F2_M            =SIMP(statut='f',typ=fonction),
             F3_ETA          =SIMP(statut='f',typ=fonction),
             F3_N            =SIMP(statut='f',typ=fonction),
             F3_C            =SIMP(statut='f',typ=fonction),
             F3_M            =SIMP(statut='f',typ=fonction),
             F4_ETA          =SIMP(statut='f',typ=fonction),
             F4_N            =SIMP(statut='f',typ=fonction),
             F4_C            =SIMP(statut='f',typ=fonction),
             F4_M            =SIMP(statut='f',typ=fonction),
             C_ETA           =SIMP(statut='f',typ=fonction),
             C_N             =SIMP(statut='f',typ=fonction),
             C_C             =SIMP(statut='f',typ=fonction),
             C_M             =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
           META_PT         =FACT(statut='f',min=00,max=01,
             F1_K            =SIMP(statut='f',typ='R'),  
             F2_K            =SIMP(statut='f',typ='R'),  
             F3_K            =SIMP(statut='f',typ='R'),  
             F4_K            =SIMP(statut='f',typ='R'),  
             F1_D_F_META     =SIMP(statut='f',typ=fonction),
             F2_D_F_META     =SIMP(statut='f',typ=fonction),
             F3_D_F_META     =SIMP(statut='f',typ=fonction),
             F4_D_F_META     =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="META",into=("META",) ),
           ),
           META_RE         =FACT(statut='f',min=00,max=01,
             C_F1_THETA      =SIMP(statut='f',typ='R'),  
             C_F2_THETA      =SIMP(statut='f',typ='R'),  
             C_F3_THETA      =SIMP(statut='f',typ='R'),  
             C_F4_THETA      =SIMP(statut='f',typ='R'),  
             F1_C_THETA      =SIMP(statut='f',typ='R'),  
             F2_C_THETA      =SIMP(statut='f',typ='R'),  
             F3_C_THETA      =SIMP(statut='f',typ='R'),  
             F4_C_THETA      =SIMP(statut='f',typ='R'),  
           ),
#
# comportement fluide
#
           FLUIDE          =FACT(statut='f',min=00,max=01,
             regles=(EXCLUS('CELE_C','CELE_R'),),
             RHO             =SIMP(statut='o',typ='R'),
             CELE_C          =SIMP(statut='f',typ='C'),
             CELE_R          =SIMP(statut='f',typ='R'),
           ),
           PORO_JOINT      =FACT(statut='f',min=00,max=01,
             RHO_FLUI        =SIMP(statut='o',typ='R'),
             ENTRO_FLUI      =SIMP(statut='o',typ='R'),
             BIOT_M          =SIMP(statut='o',typ='R'),
             C_0             =SIMP(statut='o',typ='R'),
             T_R             =SIMP(statut='o',typ='R'),
             ALPHA_M         =SIMP(statut='o',typ='R'),
             LAMBDA_T        =SIMP(statut='o',typ='R'),
             LAMBDA_H        =SIMP(statut='o',typ='R'),
             SOURCE_INIT     =SIMP(statut='o',typ='R'),
             OMEGA_0         =SIMP(statut='o',typ='R'),
           ),
           THM_LIQU        =FACT(statut='f',min=00,max=01,
             RHO             =SIMP(statut='o',typ='R'),
             UN_SUR_K        =SIMP(statut='f',typ='R'),
             ALPHA           =SIMP(statut='f',typ='R'),
             CP              =SIMP(statut='f',typ='R'),
             VISC            =SIMP(statut='f',typ=fonction),
             D_VISC_TEMP     =SIMP(statut='f',typ=fonction),
             LAMBDA          =SIMP(statut='f',typ=fonction),
             D_LAMBDA_TEMP   =SIMP(statut='f',typ=fonction),
             COEF_HENRY      =SIMP(statut='f',typ='R'),  
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)),
           ),
           THM_GAZ         =FACT(statut='f',min=00,max=01,
             MASS_MOL        =SIMP(statut='f',typ='R'),
             CP              =SIMP(statut='f',typ='R'),
             VISC            =SIMP(statut='f',typ=fonction),
             D_VISC_TEMP     =SIMP(statut='f',typ=fonction),
             LAMBDA          =SIMP(statut='f',typ=fonction),
             D_LAMBDA_TEMP   =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)),
           ),
           THM_VAPE_GAZ    =FACT(statut='f',min=00,max=01,
             MASS_MOL        =SIMP(statut='f',typ='R'),
             CP              =SIMP(statut='f',typ='R'),
             VISC            =SIMP(statut='f',typ=fonction),
             D_VISC_TEMP     =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",)),
           ),
           THM_INIT        =FACT(statut='f',min=00,max=01,
             TEMP            =SIMP(statut='o',typ='R'),
             PRE1            =SIMP(statut='o',typ='R'),
             PRE2            =SIMP(statut='o',typ='R'),
             PORO            =SIMP(statut='o',typ='R'),
             PRES_VAPE       =SIMP(statut='o',typ='R'),
             DEGR_SATU       =SIMP(statut='f',typ='R'),  
             PRES_ATMO       =SIMP(statut='f',typ='R'),  
           ),
           THM_DIFFU       =FACT(statut='f',min=00,max=01,
             R_GAZ           =SIMP(statut='o',typ='R'),
             RHO             =SIMP(statut='f',typ='R'),
             CP              =SIMP(statut='f',typ='R'),
             BIOT_COEF       =SIMP(statut='f',typ='R'),
             SATU_PRES       =SIMP(statut='f',typ=fonction),
             D_SATU_PRES     =SIMP(statut='f',typ=fonction),
             PESA_X          =SIMP(statut='f',typ='R'),
             PESA_Y          =SIMP(statut='f',typ='R'),
             PESA_Z          =SIMP(statut='f',typ='R'),
             PERM_IN         =SIMP(statut='f',typ=fonction),
             PERM_LIQU       =SIMP(statut='f',typ=fonction),
             D_PERM_LIQU_SATU=SIMP(statut='f',typ=fonction),
             PERM_GAZ        =SIMP(statut='f',typ=fonction),
             D_PERM_SATU_GAZ =SIMP(statut='f',typ=fonction),
             D_PERM_PRES_GAZ =SIMP(statut='f',typ=fonction),
             FICK            =SIMP(statut='f',typ=fonction),
             D_FICK_TEMP     =SIMP(statut='f',typ=fonction),
             D_FICK_GAZ_PRES =SIMP(statut='f',typ=fonction),
             LAMBDA          =SIMP(statut='f',typ=fonction),
             D_LAMBDA_TEMP   =SIMP(statut='f',typ=fonction),
             SIGMA_T         =SIMP(statut='f',typ=fonction),
             D_SIGMA_T       =SIMP(statut='f',typ=fonction),
             PERM_G_INTR     =SIMP(statut='f',typ=fonction),
             CHAL_VAPO       =SIMP(statut='f',typ=fonction),
             VERI_P1         =SIMP(statut='f',typ='TXM',defaut="TEMP",into=("TEMP",) ),
             VERI_P2         =SIMP(statut='f',typ='TXM',defaut="SAT",into=("SAT",) ),
             VERI_P3         =SIMP(statut='f',typ='TXM',defaut="PORO",into=("PORO",) ),
             VERI_P4         =SIMP(statut='f',typ='TXM',defaut="PGAZ",into=("PGAZ",) ),
             VERI_P5         =SIMP(statut='f',typ='TXM',defaut="PGAP",into=("PGAP",) ),
           ),
#
# courbes et coefficients associés à la fatigue et au dommage
#
           FATIGUE         =FACT(statut='f',min=00,max=01,
             regles=(PRESENT_ABSENT('WOHLER','A_BASQUIN','BETA_BASQUIN'),
                     PRESENT_ABSENT('WOHLER','A0','A1','A2','A3','SL'),
                     PRESENT_ABSENT('A_BASQUIN','A0','A1','A2','A3','SL'),
                     ENSEMBLE('A_BASQUIN','BETA_BASQUIN'),
                     ENSEMBLE('A0','A1','A2','A3','SL'),
                     PRESENT_PRESENT('A0','E_REFE'),
                     ENSEMBLE('D0','TAU0'),),
             WOHLER          =SIMP(statut='f',typ=fonction),
             A_BASQUIN       =SIMP(statut='f',typ='R'),
             BETA_BASQUIN    =SIMP(statut='f',typ='R'),
             A0              =SIMP(statut='f',typ='R'),
             A1              =SIMP(statut='f',typ='R'),
             A2              =SIMP(statut='f',typ='R'),
             A3              =SIMP(statut='f',typ='R'),
             SL              =SIMP(statut='f',typ='R'),
             MANSON_COFFIN   =SIMP(statut='f',typ=fonction),
             E_REFE          =SIMP(statut='f',typ='R'),
             D0              =SIMP(statut='f',typ='R'),
             TAU0            =SIMP(statut='f',typ='R'),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="SIGM",into=("SIGM",) ),
             VERI_P2         =SIMP(statut='c',typ='TXM',defaut="EPSI",into=("EPSI",) ),
           ),
           DOMMA_LEMAITRE  =FACT(statut='f',min=00,max=01,
             S               =SIMP(statut='o',typ=fonction),
             EPSP_SEUIL      =SIMP(statut='o',typ='R'),
             VERI_P1         =SIMP(statut='c',typ='TXM',defaut="TEMP",into=("TEMP",) ),
           ),
#
# autres comportements ...
#
           WEIBULL         =FACT(statut='f',min=00,max=01,
             M               =SIMP(statut='o',typ='R'),
             VOLU_REFE       =SIMP(statut='o',typ='R'),
             SIGM_REFE       =SIMP(statut='o',typ='R'),
             SEUIL_EPSP_CUMU =SIMP(statut='f',typ='R',defaut= 1.0E-6),
           ),
           CONTACT         =FACT(statut='f',min=00,max=01,
             E_N             =SIMP(statut='o',typ='R'),
             E_T             =SIMP(statut='f',typ='R',defaut= 0.E+0),
             COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0),
           ),
           NON_LOCAL       =FACT(statut='f',min=00,max=01,
             LONG_CARA       =SIMP(statut='o',typ='R'),
             COEF_RIGI_MINI  =SIMP(statut='f',typ='R'),
           ),
           RUPT_FRAG       =FACT(statut='f',min=00,max=01,
             GC              =SIMP(statut='o',typ='R'),
           ),
           RCCM            =FACT(statut='f',min=00,max=01,
             SY_02           =SIMP(statut='f',typ='R'),
             SM              =SIMP(statut='f',typ='R'),
             SU              =SIMP(statut='f',typ='R'),
             SC              =SIMP(statut='f',typ='R'),
             SH              =SIMP(statut='f',typ='R'),
             N_KE            =SIMP(statut='f',typ='R'),  
             M_KE            =SIMP(statut='f',typ='R'),  
           ),
           RCCM_FO         =FACT(statut='f',min=00,max=01,
             SY_02           =SIMP(statut='f',typ=fonction),
             SM              =SIMP(statut='f',typ=fonction),
             SU              =SIMP(statut='f',typ=fonction),
             S               =SIMP(statut='f',typ=fonction),
             N_KE            =SIMP(statut='f',typ=fonction),  
             M_KE            =SIMP(statut='f',typ=fonction),  
           ),
           INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 02/10/96   AUTEUR CIBHHLV L.VIVAN 
DEFI_MODELE_GENE=OPER(nom="DEFI_MODELE_GENE",op= 126,sd_prod=modele_gene,
                      fr="Définition d un modèle structure global à partir de macro éléments pour analyse modale ou harmonique par sous structuration",
                      docu="U4.65.02-D",reentrant='n',
         SOUS_STRUC      =FACT(statut='o',min=01,max='**',
           NOM             =SIMP(statut='o',typ='TXM' ),
           MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
           ANGL_NAUT       =SIMP(statut='f',typ='R',max=03),
           TRANS           =SIMP(statut='f',typ='R',max=03),
         ),
         LIAISON         =FACT(statut='o',min=01,max='**',
           SOUS_STRUC_1    =SIMP(statut='o',typ='TXM' ),
           INTERFACE_1     =SIMP(statut='o',typ='TXM' ),
           SOUS_STRUC_2    =SIMP(statut='o',typ='TXM' ),
           INTERFACE_2     =SIMP(statut='o',typ='TXM' ),
         ),
         VERIF           =FACT(statut='f',min=01,max='**',
#  dans la doc U stop_erreur est obligatoire         
           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
         ),
)  ;
#& MODIF COMMANDE  DATE 18/01/99   AUTEUR CIBHHBC B.CIREE 
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-F",reentrant='n',
         regles=(UN_PARMI('FONCTION','DEFI_FONCTION'),
                 EXCLUS('FONCTION','NOM_PARA_FONC',),
                 ENSEMBLE('NOM_PARA_FONC','DEFI_FONCTION'),),
         NOM_PARA        =SIMP(statut='o',typ='TXM',into=("TEMP","INST","X","Y","Z","FREQ","PULS",
                                                          "AMOR","EPAIS","TSEC","HYDR","SECH") ),
         NOM_RESU        =SIMP(statut='f',typ='TXM',defaut="TOUTRESU"),       
         PARA            =SIMP(statut='o',typ='R',max='**'),
         FONCTION        =SIMP(statut='f',typ=fonction,max='**' ),
         NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',into=("TEMP","INST","X","Y","Z","EPSI","FREQ",
                                                          "PULS","AMOR","EPAIS") ),
         DEFI_FONCTION   =FACT(statut='f',min=00,max='**',
           VALE            =SIMP(statut='o',typ='R',max='**'),
           INTERPOL        =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
           PROL_DROIT      =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
           PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
         ),
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,defaut="LIN",into=("NON","LIN","LOG") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',defaut="EXCLU",into=("CONSTANT","LINEAIRE","EXCLU") ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
         VERIF           =SIMP(statut='f',typ='TXM',into=("CROISSANT",) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 06/10/1999   AUTEUR SABJLMA P.LATRUBESSE 
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',
         TYPE            =SIMP(statut='o',typ='TXM',defaut="CERCLE",
                             into=("CERCLE","PLAN_Y","PLAN_Z","DISCRET",
                             "BI_CERCLE","BI_PLAN_Y","BI_PLAN_Z","BI_CERC_INT",
                             "CRAYON_900","CRAYON_1300","GUID_A_CARTE_900",
                             "GUID_B_CARTE_900","GUID_C_CARTE_900",
                             "GUID_D_CARTE_900","GUID_E_CARTE_900",
                             "GUID_F_CARTE_900","GUID_A_CARTE_1300",
                             "GUID_B_CARTE_1300","GUID_C_CARTE_1300",
                             "GUID_D_CARTE_1300","GUID_E_CARTE_1300",
                             "GUID_F_CARTE_1300","GUID_A_CARSP_900",
                             "GUID_B_CARSP_900","GUID_C_CARSP_900",
                             "GUID_D_CARSP_900","GUID_E_CARSP_900",
                             "GUID_F_CARSP_900","GUID_A_CARSP_1300",
                             "GUID_B_CARSP_1300","GUID_C_CARSP_1300",
                             "GUID_D_CARSP_1300","GUID_E_CARSP_1300",
                             "GUID_F_CARSP_1300","GUID_A_GCONT_900",
                             "GUID_B_GCONT_900","GUID_C_GCONT_900",
                             "GUID_D_GCONT_900","GUID_E_GCONT_900",
                             "GUID_F_GCONT_900","GUID_A_GCONT_1300",
                             "GUID_B_GCONT_1300","GUID_C_GCONT_1300",
                             "GUID_D_GCONT_1300","GUID_E_GCONT_1300",
                             "GUID_F_GCONT_1300","GUID_A_GCOMB_900",
                             "GUID_B_GCOMB_900","GUID_C_GCOMB_900",
                             "GUID_D_GCOMB_900","GUID_E_GCOMB_900",
                             "GUID_F_GCOMB_900","GUID_A_GCOMB_1300",
                             "GUID_B_GCOMB_1300","GUID_C_GCOMB_1300",
                             "GUID_D_GCOMB_1300","GUID_E_GCOMB_1300",
                             "GUID_F_GCOMB_1300",) ),
         VALE            =SIMP(statut='f',typ='R',max='**'),
         VERIF           =SIMP(statut='f',typ='TXM',defaut="FERME"),
)  ;
#& MODIF COMMANDE  DATE 04/03/98   AUTEUR BIBERON G.ROUSSEAU 
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',
         regles=(UN_PARMI('SPEC_LONG_COR_1','SPEC_LONG_COR_2','SPEC_LONG_COR_3',
                          'SPEC_LONG_COR_4','SPEC_CORR_CONV_1','SPEC_CORR_CONV_2',
                          'SPEC_FONC_FORME','SPEC_EXCI_POINT'),),
         SPEC_LONG_COR_1 =FACT(statut='f',min=00,max=01,
           LONG_COR        =SIMP(statut='o',typ='R' ),
           PROF_VITE_FLUI  =SIMP(statut='o',typ=fonction ),
           VISC_CINE       =SIMP(statut='o',typ='R' ),
         ),
         SPEC_LONG_COR_2 =FACT(statut='f',min=00,max=01,
           regles=(ENSEMBLE('FREQ_COUP','PHI0','BETA' ),),
           LONG_COR        =SIMP(statut='o',typ='R' ),
           PROF_VITE_FLUI  =SIMP(statut='o',typ=fonction ),
           FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.1 ),
           PHI0            =SIMP(statut='f',typ='R',defaut= 1.5E-3 ),
           BETA            =SIMP(statut='f',typ='R',defaut= 2.7 ),
         ),
         SPEC_LONG_COR_3 =FACT(statut='f',min=00,max=01,
           regles=(ENSEMBLE('PHI0_1','BETA_1','PHI0_2','BETA_2','FREQ_COUP'),),
           LONG_COR        =SIMP(statut='o',typ='R' ),
           PROF_VITE_FLUI  =SIMP(statut='o',typ=fonction ),
           FREQ_COUP       =SIMP(statut='f',typ='R',defaut= 0.2 ),
           PHI0_1          =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
           BETA_1          =SIMP(statut='f',typ='R',defaut= 0.5 ),
           PHI0_2          =SIMP(statut='f',typ='R',defaut= 4.0E-5 ),
           BETA_2          =SIMP(statut='f',typ='R',defaut= 3.5 ),
         ),
         SPEC_LONG_COR_4 =FACT(statut='f',min=00,max=01,
           regles=(ENSEMBLE('BETA','GAMMA'),),
           LONG_COR        =SIMP(statut='o',typ='R' ),
           PROF_VITE_FLUI  =SIMP(statut='o',typ=fonction ),
           TAUX_VIDE       =SIMP(statut='o',typ='R' ),
           BETA            =SIMP(statut='f',typ='R',defaut= 2. ),
           GAMMA           =SIMP(statut='f',typ='R',defaut= 4. ),
         ),
         SPEC_CORR_CONV_1=FACT(statut='f',min=00,max=01,
           LONG_COR_1      =SIMP(statut='o',typ='R' ),
           LONG_COR_2      =SIMP(statut='f',typ='R' ),
           VITE_FLUI       =SIMP(statut='o',typ='R' ),
           RHO_FLUI        =SIMP(statut='o',typ='R' ),
           FREQ_COUP       =SIMP(statut='f',typ='R' ),
           K               =SIMP(statut='f',typ='R',defaut= 5.8E-3 ),
           D_FLUI          =SIMP(statut='o',typ='R' ),
           COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
           COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
           METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
                                 into=("AU_YANG","GENERALE","CORCOS") ),
         ),
         SPEC_CORR_CONV_2=FACT(statut='f',min=00,max=01,
           FONCTION        =SIMP(statut='o',typ=fonction ),
           VITE_FLUI       =SIMP(statut='o',typ='R' ),
           FREQ_COUP       =SIMP(statut='f',typ='R' ),
           METHODE         =SIMP(statut='f',typ='TXM',defaut="GENERALE",
                                 into=("AU_YANG","GENERALE","CORCOS",) ),
           COEF_VITE_FLUI_A=SIMP(statut='f',typ='R' ),
           COEF_VITE_FLUI_O=SIMP(statut='f',typ='R' ),
         ),
         SPEC_FONC_FORME =FACT(statut='f',min=00,max=01,
           regles=(UN_PARMI('INTE_SPEC','GRAPPE_1'),
                   ENSEMBLE('INTE_SPEC','FONCTION'),),
           INTE_SPEC       =SIMP(statut='f',typ=tabl_intsp ),
           FONCTION        =SIMP(statut='f',typ=fonction,max='**'),
           GRAPPE_1        =SIMP(statut='f',typ='TXM',into=("DEBIT_180","DEBIT_300",) ),
           NOEUD           =SIMP(statut='o',typ=no),
           CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
           MODELE          =SIMP(statut='o',typ=modele ),
         ),
         SPEC_EXCI_POINT =FACT(statut='f',min=00,max=01,
           regles=(UN_PARMI('INTE_SPEC','GRAPPE_2'),),         
           INTE_SPEC       =SIMP(statut='f',typ=tabl_intsp ),
           GRAPPE_2        =SIMP(statut='f',typ='TXM',
                                 into=("ASC_CEN","ASC_EXC","DES_CEN","DES_EXC",) ),
#  Quels sont les statuts des mots cles à l interieur des deux blocs qui suivent
           b_inte_spec =BLOC(condition = "INTE_SPEC != None",
             NATURE          =SIMP(statut='o',typ='TXM',max='**',into=("FORCE","MOMENT",) ),
             ANGL            =SIMP(statut='o',typ='R',max='**'),
             NOEUD           =SIMP(statut='o',typ=no,max='**'),
           ),
           b_grappe_2      =BLOC(condition = "GRAPPE_2 != None",
             RHO_FLUI        =SIMP(statut='o',typ='R' ),
             NOEUD           =SIMP(statut='o',typ=no),
           ),   
           CARA_ELEM       =SIMP(statut='o',typ=cara_elem ),
           MODELE          =SIMP(statut='o',typ=modele ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 02/03/99   AUTEUR SABJLMA P.LATRUBESSE 
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',
         regles=(UN_PARMI('MODE_CYCL','MODELE_GENE','MAILLAGE'),
                 PRESENT_PRESENT('MODE_CYCL','SECTEUR'),
                 EXCLUS('SOUS_STRUC','SECTEUR'),
                 PRESENT_PRESENT('NOM_GROUP_MA','MODELE_GENE'),
                 PRESENT_PRESENT('NOM_GROUP_MA','SOUS_STRUC'),),
         MODE_CYCL       =SIMP(statut='f',typ=mode_cycl ),
         MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
         SQUELETTE       =SIMP(statut='f',typ=squelette ),
         RECO_GLOBAL     =FACT(statut='f',min=01,max='**',
           regles=(EXCLUS('TOUT','GROUP_NO_1'),
                   PRESENT_PRESENT('GROUP_NO_1','GROUP_NO_2'),
                   PRESENT_PRESENT('GROUP_NO_1','SOUS_STRUC_1'),
                   PRESENT_PRESENT('GROUP_NO_2','SOUS_STRUC_2'),
                   PRESENT_PRESENT('SOUS_STRUC_1','SOUS_STRUC_2'),),
           TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
           GROUP_NO_1      =SIMP(statut='f',typ=grno),
           SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
           GROUP_NO_2      =SIMP(statut='f',typ=grno),
           SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           DIST_REFE       =SIMP(statut='f',typ='R' ),
         ),
         NOM_GROUP_MA    =FACT(statut='f',min=01,max='**',
           NOM             =SIMP(statut='o',typ='TXM' ),
           SOUS_STRUC      =SIMP(statut='o',typ='TXM' ),
           GROUP_MA        =SIMP(statut='o',typ=grma),
         ),
         EXCLUSIF        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         MAILLAGE        =SIMP(statut='f',typ=maillage ),
         MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         TRANS           =SIMP(statut='f',typ='R',max='**'),
         ANGL_NAUT       =SIMP(statut='f',typ='R',max='**'),
         SOUS_STRUC      =FACT(statut='f',min=01,max='**',
           NOM             =SIMP(statut='f',typ='TXM' ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         ),
         SECTEUR         =FACT(statut='f',min=01,max='**',
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 09/06/98   AUTEUR CIBHHLV L.VIVAN 
DEFI_TEXTURE=OPER(nom="DEFI_TEXTURE",op= 181,sd_prod=tabl_texture,
                  fr=" ",docu="U4.43.05-A",reentrant='n',
         SYST_GLISSEMENT =FACT(statut='o',min=01,max='**',
           N               =SIMP(statut='o',typ='R',max='**' ),  
           L               =SIMP(statut='o',typ='R',max='**' ),  
         ),
         PLAN            =FACT(statut='o',min=01,max='**',
           ANGL_NAUT       =SIMP(statut='o',typ='R',max='**' ),  
           PROPORTION      =SIMP(statut='o',typ='R' ),  
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 16/07/96   AUTEUR CIBHHRA R.MEDDOURI 
DEFI_THER_JOULE=OPER(nom="DEFI_THER_JOULE",op= 121,sd_prod=fonction,docu="U4.MK.20-A",reentrant='n',
                    fr="Calculer la fonction d évolution temporelle de la température due à l effet JOULE dans un câble",
         LIST_INST       =SIMP(statut='o',typ=listr8),
         INST_CC_INIT    =SIMP(statut='f',typ='R',defaut= 0.0E+0 ),
         INST_CC_FIN     =SIMP(statut='f',typ='R',defaut= 1.0E+10),
         INST_RENC_INIT  =SIMP(statut='f',typ='R',defaut= 1.0E+10),
         INST_RENC_FIN   =SIMP(statut='f',typ='R',defaut= 1.0E+10),
         TEMP_EXT_POSE   =SIMP(statut='f',typ='R',defaut= 15.0E+0),
         TEMP_EXT        =SIMP(statut='f',typ='R',defaut= 15.0E+0),
         TEMP_RESI_REF   =SIMP(statut='f',typ='R',defaut= 20.0E+0),
         PARA_COND_1D    =FACT(statut='f',min=01,max='**',
           INTE_CC         =SIMP(statut='f',typ='R',defaut= 0.0E+0),
           INTE_RENC       =SIMP(statut='f',typ='R',defaut= 0.0E+0),
           A               =SIMP(statut='f',typ='R',defaut= 1.0E+0),
           SECTION         =SIMP(statut='f',typ='TXM',defaut="CERCLE",into=("CERCLE",) ),
           RESI_R0         =SIMP(statut='f',typ='R',defaut= 0.0E+0),
           RESI_R1         =SIMP(statut='f',typ='R',defaut= 0.E+0),
           RHO_CP          =SIMP(statut='f',typ='R',defaut= 1.0E+0),
           COEF_H          =SIMP(statut='f',typ='R',defaut= 40.0E+0),
           TEMP_INIT       =SIMP(statut='f',typ='R',defaut= 15.0E+0),
         ),
)  ;

#& MODIF COMMANDE  DATE 04/07/2000   AUTEUR JMBHH01 J.M.PROIX 
DEFI_TRC=OPER(nom="DEFI_TRC",op=94,sd_prod=tabl_trc,docu="U4.43.04-E",reentrant='n',
              fr="Définition d un diagramme de transformations en refroidissement continu d un acier",
         HIST_EXP        =FACT(statut='o',min=01,max='**',
           VALE            =SIMP(statut='o',typ='R',max='**'),
         ),
         TEMP_MS         =FACT(statut='o',min=01,max='**',
           SEUIL           =SIMP(statut='o',typ='R'),
           AKM             =SIMP(statut='o',typ='R'),
           BKM             =SIMP(statut='o',typ='R'),
           TPLM            =SIMP(statut='o',typ='R'),
         ),
         GRAIN_AUST      =FACT(statut='f',min=01,max='**',
           DREF           =SIMP(statut='f',typ='R'),
           A              =SIMP(statut='f',typ='R'),
         ),
)  ;
#& MODIF COMMANDE  DATE 21/12/2000   AUTEUR DURAND C.DURAND 
def defi_valeur_prod(self,IS=None,R8=None,TX=None,C8=None,LS=None):
  if IS != None  : return entier
  if R8 != None  : return reel
  if TX != None  : return chaine
  if C8 != None  : return complexe
  if LS != None  : return liste
  raise AsException("type de concept resultat non prevu")

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-e",reentrant='f',
         regles=(UN_PARMI('IS','R8','TX','C8','LS'),),
         IS              =SIMP(statut='f',typ='I',max='**'),
         R8              =SIMP(statut='f',typ='R',max='**'),
         TX              =SIMP(statut='f',typ='TXM',max='**'),
         C8              =SIMP(statut='f',typ='C',max='**'),
         LS              =SIMP(statut='f',typ='L',max='**'),
)  ;
#& MODIF COMMANDE DATE 04/10/90 AUTEUR INCONNU INCONNU
DEFUFI=PROC(nom="DEFUFI",op=21,docu="U4.12.01-D",
            fr="Modification / ajoût d une unité logique en sortie en complément de celles définies dans DEBUT",
         IMPRESSION      =FACT(statut='o',min=01,max='**',
           NOM             =SIMP(statut='o',typ='TXM',max='**'),
           UNITE           =SIMP(statut='o',typ='I' ),
         ),
)  ;
#& MODIF COMMANDE DATE 16/01/92 AUTEUR INCONNU INCONNU
DEPL_INTERNE=OPER(nom="DEPL_INTERNE",op=89,sd_prod=cham_no_depl_r,docu="U4.62.02-E",reentrant='n',
                  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 23/03/93 AUTEUR GJBHHDU G.DUMONT
DETRUIRE=PROC(nom="DETRUIRE",op=-7,docu="U4.14.01-D",
              fr="Destruction d un concept utilisateur dans la base GLOBALE",
             op_init=ops.detruire,
            CONCEPT     =FACT(statut='o',min=01,
            NOM         =SIMP(statut='o',typ=assd,max='**'),
        ),
);
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHLV L.VIVAN 
DIST_LIGN_3D=OPER(nom="DIST_LIGN_3D",op= 133,sd_prod=fonction,docu="U4.MK.30-A",reentrant='n', 
                  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'),
              UN_PARMI('GROUP_MA_2','POIN_FIXE'),),
         MODELE          =SIMP(statut='o',typ=modele),
         RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,evol_noli) ),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",)),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
         INST            =SIMP(statut='f',typ='R',max='**'),
         LIST_INST       =SIMP(statut='f',typ=listr8),
         LIST_ORDRE      =SIMP(statut='f',typ=listis),
         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
         GROUP_MA_1      =SIMP(statut='o',typ=grma,max='**'),
         GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
         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 03/05/2000   AUTEUR CIBHHAB N.RAHNI
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',
         BASE_MODALE     =FACT(statut='o',min=01,max=01,
           regles=(UN_PARMI('NUME_ORDRE','BANDE'),),
           MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
           BANDE           =SIMP(statut='f',typ='R',max=02),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           b_bande =BLOC(condition = "BANDE != None",
             AMOR_UNIF       =SIMP(statut='o',typ='R' ),
           ),
           b_nume_ordre =BLOC(condition = "NUME_ORDRE != None",
             AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
           ),
         ),
         MODE_STAT       =SIMP(statut='f',typ=mode_stat ),
         EXCIT           =FACT(statut='o',min=01,max=01,
           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",
             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='**'),
           ),           
         ),
         REPONSE         =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('FREQ_MIN','NB_POIN_MODE'),
                   EXCLUS('FREQ_MIN','FREQ_EXCIT'),
                   ENSEMBLE('FREQ_MIN','FREQ_MAX'),),
#  Toutes les regles ne semblent pas avoir été ecrites dans la doc U
           DERIVATION      =SIMP(statut='f',typ='I',defaut= 0,into=( 0 , 1 , 2 ,) ),
           OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
           FREQ_MIN        =SIMP(statut='f',typ='R' ),
           FREQ_MAX        =SIMP(statut='f',typ='R' ),
           PAS             =SIMP(statut='f',typ='R' ),
           FREQ_EXCIT      =SIMP(statut='f',typ='TXM',defaut="AVEC",into=("AVEC","SANS") ),
           NB_POIN_MODE    =SIMP(statut='f',typ='I',defaut= 50 ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 08/03/2000   AUTEUR CIBHHPD P.DAVID 
def dyna_line_harm_prod(MATR_MASS,**args):
  if AsType(MATR_MASS) == matr_asse_depl_r : return dyna_harmo
  if AsType(MATR_MASS) == matr_asse_depl_c : return dyna_harmo
  if AsType(MATR_MASS) == matr_asse_pres_c : return acou_harmo
  if AsType(MATR_MASS) == matr_asse_gene_r : return harm_gene
  raise AsException("type de concept resultat non prevu")

DYNA_LINE_HARM=OPER(nom="DYNA_LINE_HARM",op=  60,sd_prod=dyna_line_harm_prod,
                    fr="Réponse dynamique complexe d un système à une excitation harmonique",
                    docu="U4.53.11-E",reentrant='n',
         regles=(PRESENT_ABSENT('AMOR_REDUIT','MATR_AMOR'),
                 PRESENT_ABSENT('AMOR_REDUIT','LIST_AMOR'),
                 PRESENT_ABSENT('MATR_AMOR','LIST_AMOR'),
                 UN_PARMI('FREQ','LIST_FREQ'),),
         MODELE          =SIMP(statut='f',typ=modele ),
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
         MATR_MASS       =SIMP(statut='o',typ=(matr_asse_depl_r,
                                               matr_asse_pres_c,
                                               matr_asse_gene_r ) ),
         MATR_RIGI       =SIMP(statut='o',typ=(matr_asse_depl_r,
                                               matr_asse_depl_c,
                                               matr_asse_pres_c,
                                               matr_asse_gene_r,
                                               matr_asse_gene_c ) ),
         MATR_AMOR       =SIMP(statut='f',typ=(matr_asse_depl_r,
                                               matr_asse_pres_c,
                                               matr_asse_gene_r ) ),
         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
         LIST_AMOR       =SIMP(statut='f',typ=listr8 ),
         MATR_IMPE_PHI   =SIMP(statut='f',typ=(matr_asse_depl_r,
                                               matr_asse_gene_r) ),
         FREQ            =SIMP(statut='f',typ='R',max='**'),
         LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
         TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",)),
         NOM_CHAM        =SIMP(statut='f',typ='TXM',max=03,into=("DEPL","VITE","ACCE") ),
         EXCIT           =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('VECT_ASSE','CHARGE'),
                   UN_PARMI('FONC_MULT','FONC_MULT_C','COEF_MULT','COEF_MULT_C'),),
           VECT_ASSE       =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_pres_c,vect_asse_gene ) ),
           CHARGE          =SIMP(statut='f',typ=char_meca ),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
           FONC_MULT_C     =SIMP(statut='f',typ=fonction_c ),
           COEF_MULT_C     =SIMP(statut='f',typ='C' ),
           FONC_MULT       =SIMP(statut='f',typ=fonction ),
           COEF_MULT       =SIMP(statut='f',typ='R' ),
           PHAS_DEG        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           PUIS_PULS       =SIMP(statut='f',typ='I',defaut= 0 ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 08/06/99   AUTEUR ACBHHCD G.DEVESA 
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-F",reentrant='f',
         regles=(UN_PARMI('NEWMARK','WILSON','DIFF_CENTRE','ADAPT'),),
         MODELE          =SIMP(statut='f',typ=modele ),
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater ),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem ),
         MATR_MASS       =SIMP(statut='o',typ=matr_asse_depl_r ),
         MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
         MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
         MODE_STAT       =SIMP(statut='f',typ=mode_stat ),
         NEWMARK         =FACT(statut='f',min=01,max=01,
           ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25 ),
           DELTA           =SIMP(statut='f',typ='R',defaut= 0.5 ),
         ),
         WILSON          =FACT(statut='f',min=01,max=01,
           THETA           =SIMP(statut='f',typ='R',defaut= 1.4 ),
         ),
         DIFF_CENTRE     =FACT(statut='f',min=01,max=01,
         ),
         ADAPT           =FACT(statut='f',min=01,max=01,
         ),
         ETAT_INIT       =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('DYNA_TRANS','DEPL_INIT'),
                   EXCLUS('DYNA_TRANS','VITE_INIT'),),
           DYNA_TRANS      =SIMP(statut='f',typ=dyna_trans ),
#  j ai interprete la doc U : est-ce bon           
           b_dyna_trans    =BLOC(condition = "DYNA_TRANS != None",
             regles=(EXCLUS('NUME_INIT','INST_INIT' ),),
             NUME_INIT       =SIMP(statut='f',typ='I' ),
             INST_INIT       =SIMP(statut='f',typ='R' ),
             b_inst_init     =BLOC(condition = "INST_INIT != None",
               PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             ),
           ),
           DEPL_INIT       =SIMP(statut='f',typ=(cham_no_depl_r) ),
           VITE_INIT       =SIMP(statut='f',typ=(cham_no_depl_r) ),
         ),
         EXCIT           =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('CHARGE','VECT_ASSE'),
                   EXCLUS('CHARGE','COEF_MULT'),
                   EXCLUS('FONC_MULT','COEF_MULT'),
                   EXCLUS('ACCE','COEF_MULT'),
                   PRESENT_ABSENT('ACCE','FONC_MULT'),
                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
           CHARGE          =SIMP(statut='f',typ=char_meca ),
           FONC_MULT       =SIMP(statut='f',typ=fonction ),
           COEF_MULT       =SIMP(statut='f',typ='R' ),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
           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',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='**'),
         ),
         AMOR_MODAL      =FACT(statut='f',min=01,max=01,
           MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),
           REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
#  ce n est pas le mot clesolveur standard
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
           STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
         ),
         INCREMENT       =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('LIST_INST','FONC_INST','PAS'),),
           LIST_INST       =SIMP(statut='f',typ=listr8 ), 
           FONC_INST       =SIMP(statut='f',typ=fonction ),       
           PAS             =SIMP(statut='f',typ='R' ),
           b_pas           =BLOC(condition = "PAS != None",
               INST_INIT       =SIMP(statut='f',typ='R' ),
               INST_FIN        =SIMP(statut='f',typ='R' ),    
           ),
           b_list_fonc     =BLOC(condition = "LIST_INST != None or FONC_INST != None",
               regles=(EXCLUS('INST_FIN','NUME_FIN'),),
               NUME_FIN        =SIMP(statut='f',typ='I' ), 
               INST_FIN        =SIMP(statut='f',typ='R' ),   
           ),
           VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
           COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
           COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.33334 ),
           PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
           NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
           NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
           PAS_CALCUL      =SIMP(statut='f',typ='I',defaut= 1 ),
         ),
         ARCHIVAGE       =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH', ),),
           LIST_ARCH       =SIMP(statut='f',typ=listis ),
           PAS_ARCH        =SIMP(statut='f',typ='I' ),
           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","VITE","ACCE") ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR VABHHTS J.PELLET 
DYNA_NON_LINE=OPER(nom="DYNA_NON_LINE",op= 95,sd_prod=evol_noli,reentrant='f',
                   fr="Analyse mécanique dynamique non linéaire",docu="U4.53.01-E",
         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS',),
                 UN_PARMI('NEWMARK','HHT', ),),
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         MODE_STAT       =SIMP(statut='f',typ=mode_stat),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),

         EXCIT           =FACT(statut='o',min=01,max='**',
           regles=(PRESENT_ABSENT('FONC_MULT','ACCE'),
                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("SUIV","FIXE") ),
           CHARGE          =SIMP(statut='o',typ=char_meca),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
           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',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='**'),
         ),
         AMOR_MODAL      =FACT(statut='f',min=01,max=01,
           MODE_MECA       =SIMP(statut='f',typ=mode_meca),
           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**' ),  
           NB_MODE         =SIMP(statut='f',typ='I',defaut= 9999 ),  
           REAC_VITE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         COMP_INCR       =FACT(statut='f',min=01,max='**',
           RELATION        =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_LINE",    
                                 into=("ELAS","VMIS_ISOT_TRAC","VMIS_ISOT_LINE","VMIS_ISOT_META",
                                       "VMIS_ECMI_TRAC","VMIS_ECMI_LINE","ENDO_FRAGILE","META_EP",       
                                       "META_EP_PT","META_EP_RE","META_EP_PT_RE","META_EVP",
                                       "META_EVP_PT","META_EVP_RE","META_EVP_PT_RE","VMIS_CINE_LINE",
                                       "TAHERI","VISC_TAHERI","CHABOCHE","VISCOCHAB",
                                       "VMIS_CIN1_CHAB","VMIS_CIN2_CHAB","POLY_CFC", 
                                       "LMARC","ROUSSELIER","VMIS_POU_LINE","VMIS_POU_FLEJOU",
                                       "COULOMB","ARME","ASSE_CORN","NORTON_HOFF","LEMAITRE",
                                       "ZIRC_CYRA2","ZIRC_EPRI","ASSE_COMBU","VENDOCHAB","NADAI_B",  
                                       "DIS_CONTACT","DIS_CHOC","DIS_GOUJ2E_PLAS","DIS_GOUJ2E_ELAS",
                                       "GRILLE_ISOT_LINE","GRILLE_CINE_LINE","GRILLE_PINTO_MEN",           
                                       "PINTO_MENEGOTTO","CJS","OHNO","GRANGER_FP","GRANGER_FP_V",
                                       "BETON_DOUBLE_DP","VMIS_ASYM_LINE") ),
           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
           VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
           VMIS_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
           VMIS_ISOT_META  =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
           VMIS_CINE_LINE  =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           VMIS_ECMI_TRAC  =SIMP(statut='c',typ='I',defaut=8,into=(8,) ),
           VMIS_ECMI_LINE  =SIMP(statut='c',typ='I',defaut=8,into=(8,) ),
           ENDO_FRAGILE    =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
           META_EP         =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           META_EP_PT      =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           META_EP_RE      =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           META_EP_PT_RE   =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           META_EVP        =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           META_EVP_PT     =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           META_EVP_RE     =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           META_EVP_PT_RE  =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           CHABOCHE        =SIMP(statut='c',typ='I',defaut=14,into=(14,) ),
           VISCOCHAB       =SIMP(statut='c',typ='I',defaut=28,into=(28,) ),
           VMIS_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,) ),
           VMIS_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,) ),
           POLY_CFC        =SIMP(statut='c',typ='I',defaut=1688,into=(1688,) ),
           LMARC           =SIMP(statut='c',typ='I',defaut=20,into=(20,) ),
           TAHERI          =SIMP(statut='c',typ='I',defaut=15,into=(15,) ),
           VISC_TAHERI     =SIMP(statut='c',typ='I',defaut=9,into=(9,) ),
           ROUSSELIER      =SIMP(statut='c',typ='I',defaut=3,into=(3,) ),
           VMIS_POU_LINE   =SIMP(statut='c',typ='I',defaut=9,into=(9,) ),
           VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9,into=(9,) ),
           COULOMB         =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
           ASSE_CORN       =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
           ARME            =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
           NORTON_HOFF     =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
           LEMAITRE        =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
           ZIRC_CYRA2      =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
           ZIRC_EPRI       =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
           ASSE_COMBU      =SIMP(statut='c',typ='I',defaut=5,into=(5,) ),
           NADAI_B         =SIMP(statut='c',typ='I',defaut=34,into=(34,) ),
           VENDOCHAB       =SIMP(statut='c',typ='I',defaut=10,into=(10,) ),
           GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
           GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
           GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,) ),
           DIS_CONTACT     =SIMP(statut='c',typ='I',defaut=6,into=(6,) ),
           DIS_CHOC        =SIMP(statut='c',typ='I',defaut=7,into=(7,) ),
           DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,) ),
           DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,) ),
           PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,) ),
           CJS             =SIMP(statut='c',typ='I',defaut=16,into=(16,) ),
           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,) ),
           BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
           VMIS_ASYM_LINE  =SIMP(statut='c',typ='I',defaut=4,into=(4,) ),
#
           COQUE_NCOU      =SIMP(statut='f',typ='I'),  
           TUYAU_NCOU      =SIMP(statut='f',typ='I'),  
           TUYAU_NSEC      =SIMP(statut='f',typ='I'),  
           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC",) ),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
         COMP_ELAS       =FACT(statut='f',min=01,max='**',
           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",    
                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC","ELAS_POUTRE_GR","CABLE") ),
           ELAS            =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
           ELAS_VMIS_TRAC  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
           ELAS_VMIS_LINE  =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
           ELAS_POUTRE_GR  =SIMP(statut='f',typ='I',defaut=3,into=(3,) ),
           CABLE           =SIMP(statut='f',typ='I',defaut=1,into=(1,) ),
#
           COQUE_NCOU      =SIMP(statut='f',typ='I'),  
           TUYAU_NCOU      =SIMP(statut='f',typ='I'),  
           TUYAU_NSEC      =SIMP(statut='f',typ='I'),  
           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","GREEN","GREEN_GR") ),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
         ETAT_INIT       =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('EVOL_NOLI','DEPL_INIT',),
                   EXCLUS('EVOL_NOLI','VITE_INIT', ),),
           INST_INIT       =SIMP(statut='f',typ='R' ),  
           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
           DEPL_INIT       =SIMP(statut='f',typ=cham_no_depl_r),
           VITE_INIT       =SIMP(statut='f',typ=cham_no_depl_r),
         ),
         INCREMENT       =FACT(statut='o',min=01,max=01,
           LIST_INST       =SIMP(statut='o',typ=listr8),
           INST_INIT       =SIMP(statut='f',typ='R'),  
         ),
         NEWMARK         =FACT(statut='f',min=01,max=01,
           ALPHA           =SIMP(statut='f',typ='R',defaut= 0.25),  
           DELTA           =SIMP(statut='f',typ='R',defaut= 0.5),  
         ),
         HHT             =FACT(statut='f',min=01,max=01,
           ALPHA           =SIMP(statut='f',typ='R'     
                                ,defaut= -0.29999999999999999 ),  
         ),
         NEWTON          =FACT(statut='d',min=01,max=01,
           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),  
           PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE") ),
           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),  
         ),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition= "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC(condition= "METHODE == 'LDLT'",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult     =BLOC(condition="METHODE == 'LDLT' or METHODE == 'MULT_FRONT'",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc          =BLOC(condition="METHODE == 'GCPC'",fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut=0),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
         CONVERGENCE     =FACT(statut='d',min=01,max=01,
           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),  
           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),  
           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),  
           INCO_GLOB_RELA  =SIMP(statut='f',typ='R'),  
           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),  
           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-6),  
           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10),  
           TYPE_MATR_COMP  =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT","TANG_INC") ),
           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",
                                 into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE") ),
         ),
         OPTION          =SIMP(statut='f',typ='TXM',max='**',defaut="ELNO",    
                               into=("SIEF_ELNO_ELGA","VARI_ELNO_ELGA","EFGE_ELNO_CART","ELNO","SANS") ),
         ARCHIVAGE       =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),),
           LIST_ARCH       =SIMP(statut='f',typ=(listis) ),
           LIST_INST       =SIMP(statut='f',typ=(listr8) ),
           INST            =SIMP(statut='f',typ='R',max='**' ),  
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PAS_ARCH        =SIMP(statut='f',typ='I'),  
           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","VITE","ACCE") ),
         ),
         OBSERVATION     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD','GROUP_NO','MAILLE'),
                   PRESENT_PRESENT('MAILLE','POINT'),),
           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',
                                 into=("DEPL","VITE","ACCE","SIEF_ELGA","VARI_ELGA") ),
           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),  
           LIST_ARCH       =SIMP(statut='f',typ=listis),
           LIST_INST       =SIMP(statut='f',typ=listr8),
           INST            =SIMP(statut='f',typ='R',max='**' ),  
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PAS_OBSE        =SIMP(statut='f',typ='I'),  
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           POINT           =SIMP(statut='f',typ='I',max='**'),  
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
)  ;
#& MODIF COMMANDE  DATE 16/12/97   AUTEUR CIBHHLV L.VIVAN 
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',
         BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu ),
         EXCIT           =FACT(statut='o',min=00,max=01,
           INTE_SPEC_GENE  =SIMP(statut='o',typ=tabl_intsp ),
         ),
         OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG") ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 29/08/2000   AUTEUR ACBHHCD G.DEVESA 
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-E",reentrant='f',
      regles=(EXCLUS('AMOR_REDUIT','AMOR_GENE','LIST_AMOR'), 
              PRESENT_ABSENT('MODE_STAT','MODE_CORR'),),
         METHODE         =SIMP(statut='f',typ='TXM',defaut="EULER",
                               into=("EULER","NEWMARK","DEVOGE","ADAPT","ITMI") ),
         MASS_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
         RIGI_GENE       =SIMP(statut='o',typ=matr_asse_gene_r ),
         AMOR_GENE       =SIMP(statut='f',typ=matr_asse_gene_r ),
         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
         LIST_AMOR       =SIMP(statut='f',typ=listr8 ),
         MODE_STAT       =SIMP(statut='f',typ=mode_stat ),
         MODE_CORR       =SIMP(statut='f',typ=mult_elas ),
         
         ETAT_INIT       =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('RESU_GENE','DEPL_INIT_GENE'),
                   EXCLUS('RESU_GENE','VITE_INIT_GENE'),),
           RESU_GENE       =SIMP(statut='f',typ=tran_gene ),
           b_resu_gene     =BLOC(condition = "RESU_GENE != None",
             INST_INIT       =SIMP(statut='f',typ='R' ),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           ),
           DEPL_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
           VITE_INIT_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
         ),
         INCREMENT       =FACT(statut='o',min=01,max='**',
           INST_INIT       =SIMP(statut='f',typ='R' ),
           INST_FIN        =SIMP(statut='o',typ='R' ),
           PAS             =SIMP(statut='f',typ='R' ),
           VERI_PAS        =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           VITE_MIN        =SIMP(statut='f',typ='TXM',defaut="NORM",into=("MAXI","NORM") ),
           COEF_MULT_PAS   =SIMP(statut='f',typ='R',defaut= 1.1 ),
           COEF_DIVI_PAS   =SIMP(statut='f',typ='R',defaut= 1.3333334 ),
           PAS_LIMI_RELA   =SIMP(statut='f',typ='R',defaut= 1.0E-6 ),
           NB_POIN_PERIODE =SIMP(statut='f',typ='I',defaut= 50 ),
           NMAX_ITER_PAS   =SIMP(statut='f',typ='I',defaut= 16 ),
         ),
         ARCHIVAGE       =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
           LIST_ARCH       =SIMP(statut='f',typ=listis ),
           PAS_ARCH        =SIMP(statut='f',typ='I' ),
         ),
         
         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 20 ),
         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
         LAMBDA          =SIMP(statut='f',typ='R',defaut= 10. ),
         
         EXCIT           =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('FONC_MULT','COEF_MULT','ACCE'),
                   PRESENT_PRESENT('ACCE','VITE','DEPL'),
                   PRESENT_PRESENT('D_FONC_DT','D_FONC_DT2'),
                   PRESENT_ABSENT('NUME_MODE','VECT_GENE','COEF_MULT'),
                   PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),
                   PRESENT_ABSENT('MULT_APPUI','COEF_MULT'),
                   PRESENT_ABSENT('MULT_APPUI','FONC_MULT'),),
           VECT_GENE       =SIMP(statut='f',typ=vect_asse_gene ),
           NUME_MODE       =SIMP(statut='f',typ='I' ),
           FONC_MULT       =SIMP(statut='f',typ=fonction ),
           COEF_MULT       =SIMP(statut='f',typ='R' ),
           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',defaut="NON",into=("OUI","NON") ),
           DIRECTION       =SIMP(statut='f',typ='R',max='**'),
           b_loca          =BLOC(condition= "DIRECTION != None",
             regles=(EXCLUS('NOEUD','GROUP_NO'),),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           ),
           CORR_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           D_FONC_DT       =SIMP(statut='f',typ=fonction ),
           D_FONC_DT2      =SIMP(statut='f',typ=fonction ),
         ),
         CHOC            =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD_1','GROUP_NO_1' ),
                   PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
                   PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
           INTITULE        =SIMP(statut='f',typ='TXM' ),
           NOEUD_1         =SIMP(statut='f',typ=no),
           NOEUD_2         =SIMP(statut='f',typ=no),
           GROUP_NO_1      =SIMP(statut='f',typ=grno),
           GROUP_NO_2      =SIMP(statut='f',typ=grno),
           OBSTACLE        =SIMP(statut='o',typ=obstacle ),
           ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
           NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
           ANGL_VRIL       =SIMP(statut='f',typ='R' ),
           JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
           DIST_1          =SIMP(statut='f',typ='R' ),
           DIST_2          =SIMP(statut='f',typ='R' ),
           SOUS_STRUC_1    =SIMP(statut='f',typ='TXM' ),
           SOUS_STRUC_2    =SIMP(statut='f',typ='TXM' ),
           REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
           RIGI_NOR        =SIMP(statut='f',typ='R' ),
           AMOR_NOR        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           RIGI_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           AMOR_TAN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           COULOMB         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),

           LAME_FLUIDE     =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           b_lame          =BLOC(condition="LAME_FLUIDE=='OUI'",
               ALPHA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
               BETA            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
               CHI             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
               DELTA           =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           ),
         ),
         VERI_CHOC       =FACT(statut='f',min=01,max='**',
           STOP_CRITERE    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           SEUIL           =SIMP(statut='f',typ='R',defaut= 0.5 ),
         ),
         FLAMBAGE        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
                   PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
                   PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
           NOEUD_1         =SIMP(statut='f',typ=no),
           NOEUD_2         =SIMP(statut='f',typ=no),
           GROUP_NO_1      =SIMP(statut='f',typ=grno),
           GROUP_NO_2      =SIMP(statut='f',typ=grno),
           OBSTACLE        =SIMP(statut='o',typ=obstacle ),
           ORIG_OBST       =SIMP(statut='f',typ='R',max='**'),
           NORM_OBST       =SIMP(statut='o',typ='R',max='**'),
           ANGL_VRIL       =SIMP(statut='f',typ='R' ),
           JEU             =SIMP(statut='f',typ='R',defaut= 1. ),
           DIST_1          =SIMP(statut='f',typ='R' ),
           DIST_2          =SIMP(statut='f',typ='R' ),
           REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL"),
           RIGI_NOR        =SIMP(statut='f',typ='R' ),
           FNOR_CRIT       =SIMP(statut='f',typ='R' ),
           FNOR_POST_FL    =SIMP(statut='f',typ='R' ),
           RIGI_NOR_POST_FL=SIMP(statut='f',typ='R' ),
         ),
         ANTI_SISM       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD_1','GROUP_NO_1'),
                   UN_PARMI('NOEUD_2','GROUP_NO_2'),
                   PRESENT_ABSENT('NOEUD_1','GROUP_NO_1'),
                   PRESENT_ABSENT('NOEUD_2','GROUP_NO_2'),),
           NOEUD_1         =SIMP(statut='f',typ=no),
           NOEUD_2         =SIMP(statut='f',typ=no),
           GROUP_NO_1      =SIMP(statut='f',typ=grno),
           GROUP_NO_2      =SIMP(statut='f',typ=grno),
           RIGI_K1         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           RIGI_K2         =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           SEUIL_FX        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           C               =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           PUIS_ALPHA      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           DX_MAX          =SIMP(statut='f',typ='R',defaut= 1. ),
         ),
         RELA_EFFO_DEPL  =FACT(statut='f',min=01,max='**',
           NOEUD           =SIMP(statut='o',typ=no),
           SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
           RELATION        =SIMP(statut='o',typ=fonction ),
         ),
         RELA_TRANSIS    =FACT(statut='f',min=01,max='**',
           NOEUD           =SIMP(statut='o',typ=no),
           SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
           RELATION        =SIMP(statut='o',typ=fonction ),
         ),
         RELA_EFFO_VITE  =FACT(statut='f',min=01,max='**',
           NOEUD           =SIMP(statut='o',typ=no),
           SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
           NOM_CMP         =SIMP(statut='f',typ='TXM' ),
           RELATION        =SIMP(statut='o',typ=fonction ),
         ),
         b_itmi          =BLOC(condition = "METHODE=='ITMI'",
                regles=(ENSEMBLE('BASE_ELAS_FLUI','NUME_VITE_FLUI'),),
                BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu ),
                NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
                ETAT_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
                PREC_DUREE      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
                CHOC_FLUI       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
                NB_MODE         =SIMP(statut='f',typ='I' ),
                NB_MODE_FLUI    =SIMP(statut='f',typ='I' ),
                NB_MODE_DIAG    =SIMP(statut='f',typ='I' ),
                TS_REG_ETAB     =SIMP(statut='f',typ='R' ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
         IMPRESSION      =FACT(statut='f',min=01,max='**',
           regles=(EXCLUS('TOUT','NIVEAU'),),
           TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           NIVEAU          =SIMP(statut='f',typ='TXM',into=("DEPL_LOC","VITE_LOC","FORC_LOC","TAUX_CHOC") ),
           INST_INIT       =SIMP(statut='f',typ='R' ),
           INST_FIN        =SIMP(statut='f',typ='R' ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
 )  ;
#& MODIF COMMANDE  DATE 30/09/97   AUTEUR VABHHTS J.PELLET 
ENGENDRE_TEST=PROC(nom="ENGENDRE_TEST",op=178,docu="U4.92.11-B",
                   fr="Ecriture dans le fichier RESULTAT des lignes que l'on peut insérer dans la commande TEST_RESU pour tester la non-régression du contenu des objets JEVEUX composant les concepts créés au cours d'une exécution",
      regles=(UN_PARMI('TOUT','CO'),),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         CO              =SIMP(statut='f',typ=assd,max='**'),
         TYPE_TEST       =SIMP(statut='f',typ='TXM',defaut="SOMME",into=("SOMME","RESUME") ),
         FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
         PREC_R          =SIMP(statut='f',typ='TXM',defaut="1.E-5"),
)  ;
#& MODIF COMMANDE  DATE 17/06/98   AUTEUR D6BHHJP J.P.LEFEBVRE 
EXEC_LOGICIEL=PROC(nom="EXEC_LOGICIEL",op= 183,fr="",docu="U7.00.01-A",
         LOGICIEL        =SIMP(statut='f',typ='TXM' ),  
         ARGUMENT        =FACT(statut='f',min=01,max='**',
           NOM_PARA        =SIMP(statut='f',typ='TXM' ),  
         ),
)  ;
#& MODIF COMMANDE  DATE 02/04/96   AUTEUR ACBHHCD G.DEVESA 
#def extr_mode_prod(FILTRE_MODE,TITRE,IMPRESSION ):
#  Sait-on faire  
def extr_mode_prod(FILTRE_MODE,**args):
  vale=FILTRE_MODE[0]['MODE']
  if AsType(vale) == mode_meca   : return mode_meca
  if AsType(vale) == mode_meca_c : return mode_meca_c
  if AsType(vale) == mode_gene   : return mode_gene
  raise AsException("type de concept resultat non prevu")

EXTR_MODE=OPER(nom="EXTR_MODE",op= 168,sd_prod=extr_mode_prod,
               fr="Extraction dans une structure de données de type mode_meca_* ou mode_gene des modes qui vérifient un certain critère et concaténation de plusieurs structures de données de même type",
               docu="U4.52.12-C",reentrant='n',
         FILTRE_MODE     =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','NUME_MODE','NUME_MODE_EXCLU','FREQ_MIN','CRIT_EXTR',),),
           MODE            =SIMP(statut='o',typ=(mode_meca,mode_meca_c,mode_gene ) ),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
           NUME_MODE_EXCLU =SIMP(statut='f',typ='I',max='**'),
           FREQ_MIN        =SIMP(statut='f',typ='R' ),
           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN"
                                  ,into=("MASS_EFFE_UN","MASS_GENE") ),
           b_freq_min      =BLOC(condition = "FREQ_MIN != None",  
             FREQ_MAX        =SIMP(statut='o',typ='R' ),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           ),
           b_crit_extr     =BLOC(condition = "CRIT_EXTR != None",
             SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           ),    
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           CUMUL           =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",into=("MASS_EFFE_UN","MASS_GENE") ),
         ),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHLV L.VIVAN 
def extr_resu_prod(RESULTAT,**args):
  if AsType(RESULTAT) == evol_elas    : return evol_elas
  if AsType(RESULTAT) == evol_noli    : return evol_noli
  if AsType(RESULTAT) == evol_ther    : return evol_ther
  if AsType(RESULTAT) == dyna_trans   : return dyna_trans
  if AsType(RESULTAT) == dyna_harmo   : return dyna_harmo
  if AsType(RESULTAT) == acou_harmo   : return acou_harmo
  if AsType(RESULTAT) == mode_meca    : return mode_meca
  if AsType(RESULTAT) == mode_acou    : return mode_acou
  if AsType(RESULTAT) == mode_stat    : return mode_stat
  if AsType(RESULTAT) == mult_elas    : return mult_elas
  if AsType(RESULTAT) == fourier_elas : return fourier_elas
  raise AsException("type de concept resultat non prevu")

EXTR_RESU=OPER(nom="EXTR_RESU",op=176,sd_prod=extr_resu_prod,docu="U4.71.04-B",reentrant='f',
               fr="Extraction de champs pour des numéros d ordre donnés et réduction de l encombrement d une Structure de Données de type resultat",
         RESULTAT        =SIMP(statut='o',typ=(evol_elas,dyna_trans,dyna_harmo,acou_harmo,mode_meca,          
                                               mode_acou,mode_stat,evol_ther,evol_noli,   
                                               mult_elas,fourier_elas ) ),
         ARCHIVAGE       =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH'),),
           LIST_ARCH       =SIMP(statut='f',typ=listis),
           PAS_ARCH        =SIMP(statut='f',typ='I'),  
           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',max='**',into=("VARI",) ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR VABHHTS J.PELLET 
def fact_grad_prod(MATR_ASSE,**args):
  if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
  if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
  if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
  raise AsException("type de concept resultat non prevu")

FACT_GRAD=OPER(nom="FACT_GRAD",op=85,sd_prod=fact_grad_prod,docu="U4.55.03-E",
               fr="Préconditionnement pour résolution par gradient conjugué",
               reentrant='n',
         MATR_ASSE       =SIMP(statut='o',
                               typ=(matr_asse_depl_r,matr_asse_temp_r,
                                    matr_asse_pres_r) ),
         PRE_COND        =SIMP(statut='f',typ='TXM',defaut="LDLT_INC",into=("LDLT_INC",) ),
         NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),  
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 16/12/97   AUTEUR CIBHHLV L.VIVAN 
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',
         regles=(ENSEMBLE('FREQ_FIN','NB_POIN'),),
#  regle non indiquée dans la doc U         
         INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
         NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
         FREQ_INIT       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         FREQ_FIN        =SIMP(statut='f',typ='R' ),
         NB_POIN         =SIMP(statut='f',typ='I',defaut= 0 ),
         SUR_ECHAN       =SIMP(statut='f',typ='R',defaut= 1. ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 25/11/97   AUTEUR VABHHTS J.PELLET 
def fact_ldlt_prod(MATR_ASSE,**args):
  if AsType(MATR_ASSE) == matr_asse_depl_r : return matr_asse_depl_r
  if AsType(MATR_ASSE) == matr_asse_depl_c : return matr_asse_depl_c
  if AsType(MATR_ASSE) == matr_asse_temp_r : return matr_asse_temp_r
  if AsType(MATR_ASSE) == matr_asse_temp_c : return matr_asse_temp_c
  if AsType(MATR_ASSE) == matr_asse_pres_r : return matr_asse_pres_r
  if AsType(MATR_ASSE) == matr_asse_pres_c : return matr_asse_pres_c
  raise AsException("type de concept resultat non prevu")

FACT_LDLT=OPER(nom="FACT_LDLT",op=14,sd_prod=fact_ldlt_prod,fr="Factorisation en place ou hors place",
               docu="U4.55.01-F",reentrant='f',
         regles=(EXCLUS('BLOC_DEBUT','DDL_DEBUT'),
                 EXCLUS('BLOC_FIN','DDL_FIN'),),
         MATR_ASSE       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
                                               matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
         STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         NPREC           =SIMP(statut='f',typ='I',defaut=8),
         PRE_COND        =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
         BLOC_DEBUT      =SIMP(statut='f',typ='I'),
         DDL_DEBUT       =SIMP(statut='f',typ='I'),
         BLOC_FIN        =SIMP(statut='f',typ='I'),
         DDL_FIN         =SIMP(statut='f',typ='I'),
#
         EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
# 
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 23/02/99   AUTEUR D6BHHJP J.P.LEFEBVRE 
# NEW 5.3.23
FERMER=PROC(nom="FERMER",op=  10,fr=" ",
            docu="U4.12.02-A",
         UNITE           =SIMP(statut='o',typ='I',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 17/11/97   AUTEUR CIBHHLV L.VIVAN 
FIN=PROC(nom="FIN",op=9999,repetable='n',fr="Fin d'une étude",
         docu="U4.11.02-F",
         RETASSAGE       =SIMP(fr="provoque le retassage de la base GLOBALE",
                               statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
         PERFORMANCE     =SIMP(fr="provoque l'impression d'un résumé des mesures de temps ",
                               statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
         INFO_RESU       =SIMP(fr="provoque l'impression des informations sur les structures de données",
                               statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",) ),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="MESSAGE"),
)  ;
#& MODIF COMMANDE  DATE 06/05/96   AUTEUR KXBADNG T.FRIOU 
FONC_FLUI_STRU=OPER(nom="FONC_FLUI_STRU",op= 169,sd_prod=fonction,
                    fr="Création d'une fonction constante (concept de type fonction), paramétrée par l'abscisse curviligne et donnant la valeur du coefficient de masse ajoutée pour une configuration du type faisceau de tubes sous écoulement transverse",
                    docu="U4.35.02-C",reentrant='n',
         TYPE_FLUI_STRU  =SIMP(statut='o',typ=(type_flui_stru) ),
)  ;
#& MODIF COMMANDE  DATE 12/09/2001   AUTEUR MCOURTOI M.COURTOIS 
FORMULE = FORM( nom='FORMULE',op=-5,sd_prod=fonction,
                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),
                COMPLEXE = SIMP(typ = 'shell',max=1),
) ;
#& MODIF COMMANDE  DATE 04/02/98   AUTEUR CIBHHLV L.VIVAN 
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',
         INTE_SPEC_FACT  =SIMP(statut='o',typ=interspfact ),
         INIT_ALEA       =SIMP(statut='f',typ='I',defaut= 12312745 ),
         NB_TIRAGE       =SIMP(statut='f',typ='I',defaut= 1 ),
         NB_POIN         =SIMP(statut='f',typ='I' ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 17/10/95   AUTEUR ACBHHLB L.VIVAN 
IMPR_CHARGE=PROC(nom="IMPR_CHARGE",op= 158,
                 fr="Impression des charges mécaniques de type degrés de liberté imposés et relations linéaires entre les degrés de liberté au format fichier universel IDEAS",
                 docu="U7.04.31-C",
         FICHIER         =SIMP(statut='f',typ='TXM' ),
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",) ),
         VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
         CHARGE          =SIMP(statut='o',typ=char_meca,max='**', ),
)  ;
#& MODIF COMMANDE  DATE 30/09/98   AUTEUR SABJLMA P.LATRUBESSE 
IMPR_CLASSI=PROC(nom="IMPR_CLASSI",op= 114,docu="U7.04.21-A",
                 fr="Ecriture sur fichier, du rèsultat d une analyse modale au format du code CLASSI (interaction sol structure) utilisè au SEPTEN",
         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','FREQ','NUME_MODE','LIST_FREQ',
                        'LIST_ORDRE' ),),
         UNITE_CLASSI    =SIMP(statut='o',typ='I' ),
         MODE_MECA       =SIMP(statut='o',typ=mode_meca ),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
         LIST_ORDRE      =SIMP(statut='f',typ=listis ),
         NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
         FREQ            =SIMP(statut='f',typ='R',max='**'),
         LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
         b_prec_crit     =BLOC(condition = "LIST_FREQ != None or FREQ != None",
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
                                   into=("RELATIF","ABSOLU") ),
         ),
         IMPRESSION      =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD','GROUP_NO', ),),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
         ),
         AMOR            =SIMP(statut='o',typ='R',max='**'),
)  ;
#& MODIF COMMANDE  DATE 12/05/98   AUTEUR CIBHHLV L.VIVAN 
IMPR_CO=PROC(nom="IMPR_CO",op=17,docu="U4.91.11-F",
             fr="Impression du contenu d un concept utilisateur (pour développeur)",
         regles=(UN_PARMI('CO','CHAINE', ),),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),  
         NIVEAU          =SIMP(statut='f',typ='I',defaut=2,into=(0,1,2) ),
         ATTRIBUT        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
         CONTENU         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("NON","OUI") ),
         BASE            =SIMP(statut='f',typ='TXM',defaut="G",into=("","G","V","L") ),
         CO              =SIMP(statut='f',typ=assd),
         CHAINE          =SIMP(statut='f',typ='TXM'),  
         POSITION        =SIMP(statut='f',typ='I',defaut=1),  
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHLV L.VIVAN 
IMPR_COURBE=PROC(nom="IMPR_COURBE",op= 141,fr="Impression, sur fichiers,  sous formats appropriés, de concepts de type fonction ou de fonctions extraites de listes, de tables et de concepts résultats",
                 docu="U4.33.01-D",
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
         FORMAT          =SIMP(statut='f',typ='TXM',position='global'
                              ,into=("AGRAF","POSTSCRIPT","RESULTAT","COMMANDE","SEISME") ),
         b_agraf_post =BLOC(condition = "(FORMAT=='AGRAF') or (FORMAT=='POSTSCRIPT')",fr="Mots-clés communs AGRAF et POSTCRIPT",
           BORNE_X         =SIMP(statut='f',typ='R',max=02,fr="Intervalles de variation des abcisses"),
           ECHELLE_X       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les abcisses" ),
           BORNE_Y         =SIMP(statut='f',typ='R',max=02,fr="Intervalles de variation des ordonnées"),
           ECHELLE_Y       =SIMP(statut='f',typ='TXM',defaut="LIN",into=("LIN","LOG"),fr="Type d'échelle pour les ordonnées" ),
         ),
         b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
           TITRE_GRAPHIQUE =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
           COMMENTAIRE     =SIMP(statut='f',typ='TXM',max='**',fr="Commentaires associés au graphique"),
           LEGENDE_X       =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
           LEGENDE_Y       =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
           FREQ_GRILLE_X   =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage vertical" ),
           FREQ_GRILLE_Y   =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence de tracage du quadrillage horizontal" ),
         ), 
         b_post = BLOC (  condition = "(FORMAT=='POSTSCRIPT')",fr="Mots-clés propres à POSTCRIPT",
           TITRE           =SIMP(statut='f',typ='TXM',fr="Titre associé au graphique" ),
           LABEL_X         =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des abcisses" ),
           LABEL_Y         =SIMP(statut='f',typ='TXM',fr="Légende associée à l axe des ordonnées" ),
           SORTIE          =SIMP(statut='f',typ='TXM',defaut="COULEUR",into=("MONOCHROME","COULEUR"),fr="Type d impression" ),
           DATE            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de la date" ),
           GRILLE          =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression du quadrillage" ),
           AXE_ZERO_X      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe x égal zéro" ),
           AXE_ZERO_Y      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON"),fr="Impression de l axe y égal zéro" ),
           PRESENTATION    =SIMP(statut='f',typ='TXM',defaut="PAYSAGE",into=("PAYSAGE","PORTRAIT"),fr="Disposition du graphique sur la feuille" ),
           FENETRE         =SIMP(statut='f',typ='TXM',defaut="RECTANGLE",into=("CARREE","RECTANGLE"),fr="Forme de la fenêtre contenant le graphique" ),
         ),  
         COURBE          =FACT(statut='o',min=01,max='**',fr="Définition de la courbe à tracer",
           regles=(UN_PARMI('FONCTION','LIST_RESU','TABLE','FONC_X','RESU_GENE'),),
           FONCTION        =SIMP(statut='f',typ=(fonction, fonction_c),
                                 fr="Fonction réelle ou complexe", ),
           LIST_RESU       =SIMP(statut='f',typ=listr8,
                                 fr="Liste des ordonnees d une fonction réelle définie par deux listes", ),
#  creer le type table            
           TABLE           =SIMP(statut='f',typ=table,
                                 fr="Nom de la table dont 2 colonnes définissent la fonction",),
           FONC_X          =SIMP(statut='f',typ=fonction,
                                 fr="Fonction abscisses d une fonction paramétrique",),
           RESU_GENE       =SIMP(statut='f',typ=tran_gene,
                                 fr="Nom du RESU_GENE qui contient les informations liées à des noeuds de choc et qui seront tracées sous forme de fonction", ), 
           b_fonction      =BLOC(condition = "FONCTION != None",                          
             LIST_PARA       =SIMP(statut='f',typ=listr8 ),
           ),   
           b_fonction_c  =BLOC(condition = "AsType(FONCTION) == fonction_c",
                                 fr="Fonction complexe définie par le mot-clé fonction",
             PARTIE          =SIMP(statut='f',typ='TXM',into=("REEL","IMAG") ),           
           ),
           b_list_resu     =BLOC(condition = "LIST_RESU != None",                                
             LIST_PARA       =SIMP(statut='o',typ=listr8 ),
           ),  
           b_table         =BLOC(condition = "TABLE != None",                                         
             PARA_X          =SIMP(statut='o',typ='TXM',fr="Paramètre de la table associé aux abcisses de la fonction à tracer" ),
             PARA_Y          =SIMP(statut='o',typ='TXM',fr="Paramètre de la table associé aux ordonnées de la fonction à tracer" ),        
           ), 
           b_fonc_x        =BLOC(condition = "FONC_X != None",                                          
             FONC_Y          =SIMP(statut='o',typ=fonction,fr="Fonction ordonnées d une fonction paramétrique" ),
             PARA            =SIMP(statut='f',typ='TXM',defaut="FONC_X",into=("FONC_X","FONC_Y"),fr="Permutation des rôles des deux fonctions" ),
             LIST_PARA       =SIMP(statut='f',typ=listr8 ),                
           ),
           b_resu_gene     =BLOC(condition = "RESU_GENE != None",                                
             regles=(UN_PARMI('NOEUD_CHOC','GROUP_NO_CHOC'),),                      
             NOEUD_CHOC      =SIMP(statut='f',typ=no),
             GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
             PARA_X          =SIMP(statut='o',typ='TXM',fr="Paramètre associé aux abcisses de la fonction à tracer de la table information sur les chocs " ),
             PARA_Y          =SIMP(statut='o',typ='TXM',fr="Paramètre associé aux ordonnées de la fonction à tracer de la table information sur les chocs " ),
             LIST_PARA       =SIMP(statut='f',typ=listr8 ),   
             SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
             INTITULE        =SIMP(statut='f',typ='TXM' ),               
           ), 
                 
               
           LEGENDE         =SIMP(statut='f',typ='TXM',fr="Légende associée à la courbe" ),
           STYLE           =SIMP(statut='f',typ='TXM',defaut="LIGNE",fr="Style de la ligne représentant la courbe",
                                 into=("LIGNE","POINTILLE","POINT","POINT_RELIE") ),
           COULEUR         =SIMP(statut='f',typ='TXM',fr="Couleur associée à la courbe",
                                 into=("NOIR","ROUGE","VERT_FONCE","BLEU",
                                       "MAGENTA","CYAN","VERT","SIENNE","ORANGE",
                                       "POURPRE","JAUNE","DAIM","TURQUOISE","VIOLET",
                                       "BRUN","CORAIL","MARRON","MAUVE","MARRON_CLAIR") ),
           MARQUEUR        =SIMP(statut='f',typ='TXM',fr="Type du marqueur associé à la courbe",
                                 into=("POINT_F","CARRE_F","TRIANGLE_F",
                                       "LOSANGE_F","ETOILE_F","FUSEE_F","POINT",
                                       "CARRE","TRIANGLE","LOSANGE","ETOILE","FUSEE",
                                       "PLUS","X","CERCLE","CERCLE_P","CARRE_P",
                                       "LOSANGE_P","CERCLE_P_X","LOSANGE_P_X",
                                       "CERCLE_X","CARRE_X","LOSANGE_X") ),
            b_agraf =BLOC(condition = "(FORMAT=='AGRAF')",fr="Mots-clés propres à AGRAF",
              TRI             =SIMP(statut='f',typ='TXM',defaut="N",fr="Choix du tri effectué sur les abcisses ou sur les ordonnées",
                                    into=("N","X","Y","XY","YX") ),
              FREQ_MARQUEUR   =SIMP(statut='f',typ='I',defaut= 0,fr="Fréquence d impression du marqueur associé à la courbe", ),          
            ), 
         ),
)  ;
#& MODIF COMMANDE  DATE 02/02/2000   AUTEUR UFBHHGN G.NICOLAS 
IMPR_FICO_HOMA=PROC(nom="IMPR_FICO_HOMA",op= 189, docu="U7.04.01-A",
                    fr="Imprimer le fichier de configurations de HOMARD",
         TRAITEMENT      =FACT(statut='o',min=01,max=01,
           regles=( UN_PARMI('ADAPTATION','UNIFORME','MAJSOLUTION','INFORMATION'),),
           ADAPTATION      =SIMP(statut='f',typ='TXM',     
                                 fr="Adaptation libre",
                                 into=("RAFFINEMENT","DERAFFINEMENT","RAFF_DERA") ),
           UNIFORME        =SIMP(statut='f',typ='TXM',     
                                 into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
           MAJSOLUTION     =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           INFORMATION     =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           b_adaptation =BLOC(condition = "( UNIFORME != None ) or ( ADAPTATION != None ) or ( MAJSOLUTION != None ) ",
                           fr="Adaptation",
                           NITER           =SIMP(statut='o',typ='I' ),
                           MAJ_CHAMP       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
                           ) ,
           b_adaptation_libre  =BLOC(condition = "ADAPTATION != None",
                           fr="Adaptation libre",
                           NOM_MED_INDICA  =SIMP(statut='o',typ='TXM' ),
                           NOM_CMP_INDICA  =SIMP(statut='f',typ='TXM',defaut="ERREST",    
                                   into=("ERREST","NUEST") ),
                           NOM_MED_SUPPOR  =SIMP(statut='o',typ='TXM' ),
                           ) ,
           b_raffinement_libre   =BLOC( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' )" ,
                           fr="Critère de raffinement.",
                           regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
                           CRIT_RAFF_ABS   =SIMP(statut='f',typ='R' ),
                           CRIT_RAFF_REL   =SIMP(statut='f',typ='R' ),
                           CRIT_RAFF_PE    =SIMP(statut='f',typ='R' ),
                           ) ,
           b_deraffinement_libre   =BLOC ( condition = "( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' )" ,
                             fr="Critère de déraffinement.",
                             regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
                             CRIT_DERA_ABS   =SIMP(statut='f',typ='R' ),
                             CRIT_DERA_REL   =SIMP(statut='f',typ='R' ),
                             CRIT_DERA_PE    =SIMP(statut='f',typ='R' ),
                           ) ,
           b_raffinement =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'RAFFINEMENT' ) or ( UNIFORME == 'RAFFINEMENT' )" ,
                             NIVE_MAX        =SIMP(statut='f',typ='I' ),
                           ) ,
           b_deraffinement =BLOC ( condition = " ( ADAPTATION == 'RAFF_DERA' ) or ( ADAPTATION == 'DERAFFINEMENT' ) or ( UNIFORME == 'DERAFFINEMENT' )" ,
                             NIVE_MIN        =SIMP(statut='f',typ='I' ),
                           ) ,
         ),
         ANALYSE         =FACT(statut='f',min=01,max=01,
           regles=(AU_MOINS_UN('QUALITE','INTERPENETRATION'),),
           QUALITE         =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
           INTERPENETRATION=SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
         ),
         UNITE           =SIMP(statut='f',typ='I',defaut= 71 ),  
         REP             =SIMP(statut='f',typ='TXM' ),  
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 27/04/98   AUTEUR CIBHHLV L.VIVAN 
IMPR_GENE=PROC(nom="IMPR_GENE",op= 157,fr="Calcul du dommage subi par une structure soumise à une sollicitation de type aléatoire fichier, au format 'RESULTAT'",
               docu="U4.91.02-C",
         GENE            =FACT(statut='o',min=01,max='**',
           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',
                          'LIST_INST','LIST_FREQ','TOUT_MODE','TOUT_INST','LIST_ORDRE'),
                   EXCLUS('TOUT_MODE','NUME_ORDRE','INST','FREQ','NUME_MODE',
                          'LIST_INST','LIST_FREQ','TOUT_ORDRE','TOUT_INST','LIST_ORDRE'),
                   EXCLUS('TOUT_INST','NUME_ORDRE','INST','FREQ','NUME_MODE',
                          'LIST_INST','LIST_FREQ','TOUT_ORDRE','LIST_ORDRE'),
                   EXCLUS('TOUT_CMP_GENE','NUME_CMP_GENE'),
                   EXCLUS('TOUT_CHAM','NOM_CHAM'),
                   EXCLUS('TOUT_PARA','NOM_PARA'),),
#  faut-il faire des blocs selon le type de RESU_GENE                   
           RESU_GENE       =SIMP(statut='o',typ=(vect_asse_gene, tran_gene, mode_gene, harm_gene)),
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT",) ),
           FICHIER         =SIMP(statut='f',typ='TXM' ),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           LIST_ORDRE      =SIMP(statut='f',typ=listis ),
           TOUT_MODE       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
           INST            =SIMP(statut='f',typ='R',max='**'),
           LIST_INST       =SIMP(statut='f',typ=listr8 ),
           TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           FREQ            =SIMP(statut='f',typ='R',max='**'),
           LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
           b_prec_crit     =BLOC(condition = "LIST_FREQ != None or FREQ != None",
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
                                   into=("RELATIF","ABSOLU") ),
           ),
           TOUT_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
           NUME_CMP_GENE   =SIMP(statut='f',typ='I',max='**'),
           TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
           NOM_CHAM        =SIMP(statut='f',typ='TXM',max='**'),
           TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
           NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
           SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
           INFO_CMP_GENE   =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
           INFO_GENE       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
         ),
)  ;
#& MODIF COMMANDE DATE 16/10/90 AUTEUR INCONNU INCONNU
IMPR_JEVEUX=PROC(nom="IMPR_JEVEUX",op=16,docu="U4.91.21-F",
                 fr="Impression de caractéristiques d'objets JEVEUX (pour développeur)",
         ENTITE          =SIMP(fr="choix de l'observation",statut='o',typ='TXM',                                                                                                                                                                                                    
                               into=("DISQUE","MEMOIRE","REPERTOIRE",    
                                     "OBJET","ATTRIBUT","SYSTEME") ),
         b_objet      =BLOC(condition = "(ENTITE=='OBJET')",
            NOMOBJ          =SIMP(fr="nom d'objet",statut='f',typ='TXM' ),  
            NUMOC           =SIMP(fr="numéro d objet de collection",statut='f',typ='I' ),  
            NOMOC           =SIMP(fr="nom d'objet de collection",statut='f',typ='TXM' ),  
         ),
         b_attribut   =BLOC(condition = "(ENTITE=='ATTRIBUT')",
            NOMOBJ          =SIMP(fr="nom de collection",statut='f',typ='TXM' ),  
            NOMATR          =SIMP(fr="nom d attribut de collection",statut='f',typ='TXM',
                                  into=('$$DESO','$$IADD','$$IADM','$$NOM','$$LONG',
                                      '$$LONO','$$LUTI','$$NUM') ),
         ),
         b_systeme    =BLOC(condition = "(ENTITE=='SYSTEME')",
            CLASSE          =SIMP(statut='o',typ='TXM',into=('G','V','L') ),  
            NOMATR          =SIMP(fr="nom d attribut systeme",statut='f',typ='TXM',   
                                  into=('$$CARA','$$IADD','$$GENR','$$TYPE','$$ETAT',
                                      '$$DOCU','$$ORIG','$$RNOM','$$LTYP','$$LONG',
                                      '$$LONO','$$DATE','$$LUTI','$$HCOD','$$INDX',
                                      '$$TLEC','$$TECR','$$IADM','$$ACCE') ),
         ),
         b_repertoire =BLOC(condition = "(ENTITE=='REPERTOIRE')",
            CLASSE          =SIMP(statut='f',typ='TXM',into=('G','V','L',' '),defaut=' '),  
         ),
         b_disque     =BLOC(condition = "(ENTITE=='DISQUE')",
            CLASSE          =SIMP(statut='f',typ='TXM' ,into=('G','V','L',' '),defaut=' '),  
         ),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           NOM             =SIMP(statut='f',typ='TXM' ),  
           UNITE           =SIMP(statut='f',typ='I'),  
         ),
         COMMENTAIRE     =SIMP(statut='f',typ='TXM' ),  
)  ;
#& MODIF COMMANDE  DATE 09/09/98   AUTEUR ACBHHCD G.DEVESA 
IMPR_MACR_ELEM=PROC(nom="IMPR_MACR_ELEM",op= 160,fr="Impression au format fichier universel IDEAS ou au format MISS3D ou au format RESULTAT d un concept de type macr_elem_dyna",
                    docu="U7.04.33-C",
         MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
         FICHIER         =SIMP(statut='f',typ='TXM' ),
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
                               into=("MISS_3D","IDEAS","CADYRO",) ),
         b_ideas         =BLOC(condition = "FORMAT == 'IDEAS'",
           VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
         ),                      
         b_miss_3d       =BLOC(condition = "FORMAT == 'MISS_3D'",
           UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
           SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
           AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
           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='**'),
           IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         b_cadyro        =BLOC(condition = "FORMAT == 'CADYRO'",
           SQUELETTE       =SIMP(statut='f',typ=squelette ),
           UNITE_MODE_MECA =SIMP(statut='f',typ='I',defaut= 26 ),
           UNITE_MODE_STAT =SIMP(statut='f',typ='I',defaut= 27 ),
           UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 28 ),
           IMPR_MODE_MECA  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           IMPR_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),

)  ;
#& MODIF COMMANDE  DATE 07/04/98   AUTEUR CIBHHGB G.BERTRAND 
IMPR_MATRICE=PROC(nom="IMPR_MATRICE",op= 159,fr="Impression au format universel IDEAS ou au format RESULTAT des matrices élémentaires et des matrices assemblées",
                  docu="U7.04.32-C",
         regles=(AU_MOINS_UN('MATR_ELEM','MATR_ASSE'),),
         
         MATR_ELEM       =FACT(statut='f',min=01,max='**',
           FICHIER         =SIMP(statut='f',typ='TXM' ),
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
                                 into=("IDEAS","RESULTAT") ),
           b_format      =BLOC(condition = "FORMAT == 'IDEAS'",
             VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
           ),
#  créer les types matr_elem  et vect_elem        
           MATRICE         =SIMP(statut='o',typ=(matr_elem, vect_elem)),
#  Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA           
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
           GRAIN           =SIMP(statut='f',typ='TXM',defaut="VALEUR",
                                 into=("VALEUR","NOEUD","MAILLE") ),
           NB_CHIFFRE      =SIMP(statut='f',typ='I',defaut= 4 ),
         ),
         MATR_ASSE       =FACT(statut='f',min=01,max='**',
           FICHIER         =SIMP(statut='f',typ='TXM' ),
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",
                                 into=("IDEAS","RESULTAT") ),
           VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=( 5 ,) ),
#  créer le type matr_elem           
           MATRICE         =SIMP(statut='o',typ=matr_asse),
#  Quelle regle pour TOUT, NOEUD, GROUP_NO, MAILLE, GROUP_MA                      
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',defaut="SOUS_MATRICE",
                                 into=("SOUS_MATRICE","LIGNE","COLONNE") ),
           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
           GRAIN           =SIMP(statut='f',typ='TXM',defaut="VALEUR",
                                 into=("VALEUR","NOEUD") ),
           NB_CHIFFRE      =SIMP(statut='f',typ='I',defaut= 4 ),
           VALE_ZERO       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
IMPR_MISS_3D=PROC(nom="IMPR_MISS_3D",op= 162,fr="Permet de transmettre au format MISS3D la contribution des charges internes à une superstructure sous forme d un second membre projeté sur la base modale (modes propres ou contraints), les signaux d excitation harmonique ou transitoire",
                  docu="U7.04.11-C",
         regles=(UN_PARMI('INST_INIT','FREQ_INIT'),
                 PRESENT_PRESENT('INST_INIT','INST_FIN'),
                 PRESENT_PRESENT('FREQ_INIT','FREQ_FIN'),),
         MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
         EXCIT           =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('FONC_MULT','COEF_MULT' ),),
           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
           FONC_MULT       =SIMP(statut='f',typ=fonction ),
           COEF_MULT       =SIMP(statut='f',typ='R' ),
         ),
         EXCIT_SOL       =FACT(statut='f',min=01,max='**',
           DIRECTION       =SIMP(statut='o',typ='R',max='**'),
           FONC_SIGNAL     =SIMP(statut='f',typ=fonction ),
           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",
                                 into=("DEPL","VITE","ACCE","FORC",) ),
         ),
         INST_INIT       =SIMP(statut='f',typ='R' ),
         INST_FIN        =SIMP(statut='f',typ='R' ),
         FREQ_INIT       =SIMP(statut='f',typ='R' ),
         FREQ_FIN        =SIMP(statut='f',typ='R' ),
         PAS             =SIMP(statut='o',typ='R' ),
         UNITE           =SIMP(statut='f',typ='I',defaut= 26 ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 19/06/2000   AUTEUR DURAND C.DURAND
IMPR_RESU=PROC(nom="IMPR_RESU",op=39,docu="U4.91.01-E",
               fr="Impression du résultat d un calcul (différents formats)",
         MODELE          =SIMP(statut='f',typ=modele),
         RESU            =FACT(statut='o',min=01,max='**',
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",
                                 into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED") ),
                                 
           b_format_ideas  =BLOC(condition="FORMAT=='IDEAS'",fr="version Ideas",
             VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
           ),  

           b_format_castem =BLOC(condition="FORMAT=='CASTEM'",fr="version Castem",
             NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
           ),
           
           regles=(AU_MOINS_UN('CHAM_GD','RESULTAT','MAILLAGE'),
                   EXCLUS('CHAM_GD','RESULTAT'),),
           MAILLAGE        =SIMP(statut='f',typ=(maillage,squelette)),
           INFO_MAILLAGE   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           CHAM_GD         =SIMP(statut='f',typ=cham_gd),
           RESULTAT        =SIMP(statut='f',typ=resultat),# CO() sd a creer !!!
           
           b_extrac        =BLOC(condition="RESULTAT != None",
                                 fr="extraction d un champ de grandeur",
             regles=(EXCLUS('TOUT_CHAM','NOM_CHAM'),
                     EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP',
                            'LIST_INST','LIST_FREQ','LIST_ORDRE','NOM_CAS','ANGL'),),
             TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI","NON") ),
             NOM_CHAM        =SIMP(statut='f',typ='TXM',max='**'),
             
             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
             NUME_MODE       =SIMP(statut='f',typ='I',max='**'),
             LIST_ORDRE      =SIMP(statut='f',typ=listis),
             NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),
             NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),
             ANGL            =SIMP(statut='f',typ='R',max='**'),
             FREQ            =SIMP(statut='f',typ='R',max='**'),
             LIST_FREQ       =SIMP(statut='f',typ=listr8),
             INST            =SIMP(statut='f',typ='R',max='**'),
             LIST_INST       =SIMP(statut='f',typ=listr8),
             
             b_acce_reel     =BLOC(condition="(FREQ != None)or(LIST_FREQ != None)or(INST != None)or(LIST_INST != None)",
               PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
               CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             ),
           ),

           b_parametres    =BLOC(condition="""(RESULTAT != None)and(FORMAT == 'RESULTAT')""",
             regles=(EXCLUS('TOUT_PARA','NOM_PARA'),),
             INFO_RESU       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
             TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI","NON",) ),
             NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),
             FORM_TABL       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           ),
            
           b_cmp           =BLOC(condition="""(RESULTAT != None)and((FORMAT == 'RESULTAT')or(FORMAT == 'ENSIGHT'))""",
                                 fr="sélection des composantes",
             regles=(EXCLUS('TOUT_CMP','NOM_CMP'),),
             TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),
           ),
            
           b_topologie       =BLOC(condition="""(RESULTAT != None)and((FORMAT == 'RESULTAT')or(FORMAT == 'IDEAS'))""",
                                   fr="sélection des entités toplogiques",
             TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             NOEUD           =SIMP(statut='f',typ=no,max='**'),
             GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
             MAILLE          =SIMP(statut='f',typ=ma,max='**'),
             GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           ),
           
           b_valeurs         =BLOC(condition="(FORMAT == 'RESULTAT')",
                                   fr="sélection sur les valeurs",
             VALE_MAX        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             VALE_MIN        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             BORNE_SUP       =SIMP(statut='f',typ='R'),
             BORNE_INF       =SIMP(statut='f',typ='R'),
             IMPR_COOR       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
             FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),
           ),

           SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),
           FICHIER         =SIMP(statut='f',typ='TXM'),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
) ;
#& MODIF COMMANDE  DATE 18/04/2000   AUTEUR D6BHHBQ B.QUINNEZ 
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",
         MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
         MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
	                       fr="Type d analyse" ),
         b_dynamique  =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
                            fr="Recheche du nombre de fréquences propres",
             FREQ_MIN        =SIMP(statut='f',typ='R',defaut= 0.E+0 ,fr="Borne inférieure de l intervalle" ),
             FREQ_MAX        =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
         ),
         b_mode_flamb =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
                            fr="Recherche du nombre de charges critiques",
             CHAR_CRIT_MIN   =SIMP(statut='o',typ='R',fr="Borne inférieure de l intervalle" ),
             CHAR_CRIT_MAX   =SIMP(statut='o',typ='R',fr="Borne supérieure de l intervalle" ),
         ),
         NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
         NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
         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 22/07/99   AUTEUR CIBHHLV L.VIVAN 
IMPR_TABLE=PROC(nom="IMPR_TABLE",op=155,docu="U4.91.03-C",
                fr="Impression d un concept de type table",
         TABLE           =SIMP(statut='o',typ=table),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT", ),
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="EXCEL",    
                               into=("EXCEL","AGRAF","MOT_CLE","TABLEAU") ),
         FILTRE          =FACT(statut='f',min=01,max='**',
           NOM_PARA        =SIMP(statut='o',typ='TXM'),  
           CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",    
                                 into=("EQ","LT","GT","NE","LE","GE","VIDE",     
                                       "NON_VIDE","MAXI","ABS_MAXI","MINI","ABS_MINI") ),
           VALE            =SIMP(statut='f',typ='R'),  
           VALE_I          =SIMP(statut='f',typ='I'),  
           VALE_C          =SIMP(statut='f',typ='C'),  
           VALE_K          =SIMP(statut='f',typ='TXM'),  
           VALE_CO         =SIMP(statut='f',typ=geom),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
         ),
         TRI             =FACT(statut='f',min=01,max=01,
           NOM_PARA        =SIMP(statut='o',typ='TXM',max='**'),  
           ORDRE           =SIMP(statut='f',typ='TXM',max='**',defaut="CROISSANT",    
                                 into=("CROISSANT","DECROISSANT") ),
         ),
         PAGINATION      =SIMP(statut='f',typ='TXM',max='**'),  
         FORMAT_R        =SIMP(statut='f',typ='TXM',defaut="1PE12.5"),  
         FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",
                                    into=("MODULE_PHASE","REEL_IMAG") ),
         NOM_PARA        =SIMP(statut='f',typ='TXM',max='**'),  
         TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",)),
         IMPR_FONCTION   =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
INCLUDE=MACRO(nom="INCLUDE",op=-1,docu="U4.13.01-e",
             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 07/02/2001   AUTEUR DURAND C.DURAND 
INCLUDE_MATERIAU=MACRO(nom="INCLUDE_MATERIAU",op=-14,docu="U4.43.02-a",
                       fr=" ",
         sd_prod=ops.INCLUDE_MATERIAU,op_init=ops.INCLUDE_context,fichier_ini=0,
         NOM_AFNOR       =SIMP(statut='o',typ='TXM' ),  
         TYPE_MODELE     =SIMP(statut='o',typ='TXM',into=("REF","PAR") ),
         VARIANTE        =SIMP(statut='o',typ='TXM',     
                               into=("A","B","C","D","E","F","G","H","I","J",    
                                     "K","L","M","N","O","P","Q","R","S","T","U","V",   
                                     "W","X","Y","Z",) ),
         TYPE_VALE       =SIMP(statut='o',typ='TXM',into=("NOMI","MINI","MAXI") ),
         NOM_MATER       =SIMP(statut='o',typ='TXM' ),  
         UNITE           =SIMP(statut='f',typ='I',defaut= 32 ),  
         EXTRACTION      =FACT(statut='f',min=01,max=99,
           COMPOR          =SIMP(statut='o',typ='TXM' ),  
           TEMP_EVAL       =SIMP(statut='o',typ='R' ),  
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 08/03/2000   AUTEUR CIBHHPD P.DAVID 
INTE_MAIL_2D=OPER(nom="INTE_MAIL_2D",op=50,sd_prod=courbe,docu="U4.81.11-E",
                  fr="Définition d une courbe sur un maillage 2D",reentrant='n',
         regles=(EXCLUS('NOEUD_ORIG','GROUP_NO_ORIG'),
                 EXCLUS('DEFI_CHEMIN','DEFI_SEGMENT'),
                 EXCLUS('DEFI_CHEMIN','DEFI_ARC'),),
         MAILLAGE        =SIMP(statut='o',typ=(maillage) ),
         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         DEFI_SEGMENT    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
                   UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
           ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2 ),  
           NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
           EXTREMITE       =SIMP(statut='f',typ='R',max='**'),  
           NOEUD_EXTR      =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,max=1),
         ),
         DEFI_ARC        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('CENTRE','NOEUD_CENTRE','GROUP_NO_CENTRE'),
                   UN_PARMI('RAYON','ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
                   UN_PARMI('RAYON','EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),               
                   PRESENT_PRESENT('RAYON','SECTEUR'),),
           CENTRE          =SIMP(statut='f',typ='R',max='**' ),  
           NOEUD_CENTRE    =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_CENTRE =SIMP(statut='f',typ=grno,max=1),
           RAYON           =SIMP(statut='f',typ='R',max=1),  
           SECTEUR         =SIMP(statut='f',typ='R',min=2,max=2),  
           ORIGINE         =SIMP(statut='f',typ='R',min=2,max=2),  
           NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
           EXTREMITE       =SIMP(statut='f',typ='R',min=2,max=2),  
           NOEUD_EXTR      =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,max=1),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",    
                                 into=("RELATIF","ABSOLU",) ),
         ),
         DEFI_CHEMIN     =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','GROUP_MA'),),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),
         NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
         GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),  
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 08/03/2000   AUTEUR CIBHHPD P.DAVID 
INTE_MAIL_3D=OPER(nom="INTE_MAIL_3D",op=96,sd_prod=surface,docu="U4.81.12-E",
                  fr="Définition d un chemin sur un maillage 3D",reentrant='n',
         MAILLAGE        =SIMP(statut='o',typ=maillage),
         TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         DEFI_SEGMENT    =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('ORIGINE','NOEUD_ORIG','GROUP_NO_ORIG'),
                   UN_PARMI('EXTREMITE','NOEUD_EXTR','GROUP_NO_EXTR'),),
           ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
           NOEUD_ORIG      =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_ORIG   =SIMP(statut='f',typ=grno,max=1),
           EXTREMITE       =SIMP(statut='f',typ='R',min=3,max=3),  
           NOEUD_EXTR      =SIMP(statut='f',typ=no,max=1),
           GROUP_NO_EXTR   =SIMP(statut='f',typ=grno,max=1),
         ),
         PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 02/02/2000   AUTEUR UFBHHGN G.NICOLAS 
def lire_champ_prod(TYPE=None,**args):
  if TYPE == "CHAM_NO_TEMP_R" : return cham_no_temp_r
  if TYPE == "CHAM_NO_DEPL_R" : return cham_no_depl_r
  raise AsException("type de concept resultat non prevu")

LIRE_CHAMP=OPER(nom="LIRE_CHAMP",op= 192,sd_prod=lire_champ_prod,
                fr="Lire un champ dans un fichier et le stocker dans un concept.",
                docu="U7.02.02-A",reentrant='n',
#
# 1. Le maillage support du champ
#
         MAILLAGE        =SIMP(statut='o',typ=maillage ),
#
# 2. Format de lecture
#    Remarque : seul MED est operationnel dans cette version.
#
         FORMAT          =SIMP(statut='o',typ='TXM',defaut="MED",into=("MED",) ),
#
# 3. L'unite logique du fichier.
#
         UNITE           =SIMP(statut='f',typ='I',defaut= 81 ),  
 #
# 3. Pour le format MED, il faut preciser le nom sous lequel le champ est connu dans le fichier
#
         b_format =BLOC(condition = "FORMAT == 'MED'",
                        fr="Nom du champ dans le fichier MED",
         NOM_MED         =SIMP(statut='o',typ='TXM' ),),
#
# 4. Le type du concept lu
#
         TYPE            =SIMP(statut='o',typ='TXM',into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R") ),
#
# 5. Le niveau d'information
#
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
LIRE_FONCTION=OPER(nom="LIRE_FONCTION",op=  83,sd_prod=fonction,
                   fr="Lecture d une fonction dans un fichier ",
                   docu="U4.32.02-E",reentrant='n',
         UNITE           =SIMP(statut='o',typ='I' ),
         NOM_PARA        =SIMP(statut='f',typ='TXM',
                               into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
                                     "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
         NOM_RESU        =SIMP(statut='f',typ='TXM' ),
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         NOM_PARA_FONC   =SIMP(statut='f',typ='TXM',
                               into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
                                     "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
         INTERPOL_FONC   =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
         PROL_DROIT_FONC =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE_FONC=SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         INFO            =SIMP(statut='f',typ='I',defaut= 2,into=( 1 , 2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR SABJLMA P.LATRUBESSE 
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-E",reentrant='n',
         UNITE           =SIMP(statut='o',typ='I' ),
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="MODULE_PHASE",into=("REEL_IMAG","MODULE_PHASE") ),
         NOM_PARA        =SIMP(statut='f',typ='TXM',
                               into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
                                     "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC",) ),
         NOM_RESU        =SIMP(statut='f',typ='TXM' ),
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 19/06/2000   AUTEUR DURAND C.DURAND 
LIRE_MAILLAGE=OPER(nom="LIRE_MAILLAGE",op=   1,sd_prod=maillage,
                   fr="Lecture d un fichier de maillage",
                   docu="U4.21.01-F",reentrant='n',
         UNITE           =SIMP(statut='f',typ='I',defaut= 20 ),
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","MED") ),
         ABSC_CURV       =FACT(statut='f',min=00,max=01,
           TOUT            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
         VERI_MAIL       =FACT(statut='d',min=01,max=01,
           APLAT           =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
         ),
         INFO_MED        =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 02/10/96   AUTEUR CIBHHLV L.VIVAN 
def lire_miss_3d_prod(TYPE_RESU,**args):
  if TYPE_RESU == "TRANS" : return dyna_trans
  if TYPE_RESU == "HARMO" : return dyna_harmo
  raise AsException("type de concept resultat non prevu")

LIRE_MISS_3D=OPER(nom="LIRE_MISS_3D",op= 163,sd_prod=lire_miss_3d_prod,
                  fr="Restitution au format MISS3D d une évolution harmonique ou transitoire",
                  docu="U7.02.31-C",reentrant='n',
         MACR_ELEM_DYNA  =SIMP(statut='o',typ=macr_elem_dyna ),
         UNITE           =SIMP(statut='f',typ='I',defaut= 27 ),
         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 08/09/98   AUTEUR CIBHHLV L.VIVAN 
LIRE_PLEXUS=OPER(nom="LIRE_PLEXUS",op= 184,sd_prod=evol_char,
                 fr=" ",
                 docu="U7.02.11-A",reentrant='n',
         regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
         UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
         MAIL_PLEXUS     =SIMP(statut='o',typ=maillage ),
         MAILLAGE        =SIMP(statut='o',typ=maillage ),
         MODELE          =SIMP(statut='o',typ=modele ),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
         LIST_ORDRE      =SIMP(statut='f',typ=listis ),
         INST            =SIMP(statut='f',typ='R',max='**'),
         LIST_INST       =SIMP(statut='f',typ=listr8 ),
         b_prec_crit     =BLOC(condition = "LIST_INST != None or INST != None",
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
                                   into=("RELATIF","ABSOLU") ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHLV L.VIVAN
def lire_resu_prod(TYPE_RESU,**args):
  if TYPE_RESU == "EVOL_CHAR" :  return evol_char
  if TYPE_RESU == "EVOL_THER" :  return evol_ther
  if TYPE_RESU == "EVOL_ELAS" :  return evol_elas
  if TYPE_RESU == "EVOL_NOLI" :  return evol_noli
  if TYPE_RESU == "DYNA_TRANS" : return dyna_trans
  if TYPE_RESU == "DYNA_HARMO" : return dyna_harmo
  if TYPE_RESU == "HARM_GENE" :  return harm_gene
  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-C",reentrant='n',
               fr="Lecture de champs aux noeuds ou par éléments aux noeuds sur un fichier au format universel DEAS ou au format EnSight",
         regles=(UN_PARMI('MAILLAGE','MODELE'),),
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS","ENSIGHT","MED") ),
         b_unite         =BLOC(condition="FORMAT=='IDEAS'",
           UNITE           =SIMP(statut='f',typ='I',defaut= 19 ),
         ),
         b_nom_fichier     =BLOC(condition="FORMAT=='ENSIGHT'",
           NOM_FICHIER     =SIMP(statut='f',typ='TXM'),
         ),
         TYPE_RESU       =SIMP(statut='o',typ='TXM',into=("EVOL_THER","EVOL_ELAS","EVOL_NOLI",
                                                          "DYNA_TRANS","DYNA_HARMO","HARM_GENE","EVOL_CHAR") ),
         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",) ),
         ),
         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_dyna          =BLOC(condition="(TYPE_RESU=='DYNA_TRANS') or (TYPE_RESU=='DYNA_HARMO') or(TYPE_RESU=='HARM_GENE')",
           NOM_CHAM        =SIMP(statut='o',typ='TXM',max='**',into=("DEPL","VITE","ACCE",) ),
         ),
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
         MAILLAGE        =SIMP(statut='f',typ=maillage),
         MODELE          =SIMP(statut='f',typ=modele),
         NB_VARI         =SIMP(statut='f',typ='I' ),
         FORMAT_IDEAS    =FACT(statut='f',min=01,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") ),
           NUME_DATASET    =SIMP(statut='f',typ='I',into=(55,57,2414) ),
           RECORD_3        =SIMP(statut='f',typ='I',max='**'),
           RECORD_6        =SIMP(statut='f',typ='I',max='**'),
           RECORD_9        =SIMP(statut='f',typ='I',max='**'),
           POSI_ORDRE      =SIMP(statut='o',typ='I',max='**'),
           POSI_INST       =SIMP(statut='f',typ='I',max='**'),
           POSI_FREQ       =SIMP(statut='f',typ='I',max='**'),
           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**'),
         ),
         b_extrac        =BLOC(condition="1",fr="accès à un champ dans la structure de données résultat",
           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','INST','LIST_INST','FREQ','LIST_FREQ'),),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           INST            =SIMP(statut='f',typ='R',max='**'),
           LIST_INST       =SIMP(statut='f',typ=listr8),
           LIST_ORDRE      =SIMP(statut='f',typ=listis),
           FREQ            =SIMP(statut='f',typ='R',max='**'),
           LIST_FREQ       =SIMP(statut='f',typ=listr8),
             
           b_acce_reel     =BLOC(condition="(INST != None)or(LIST_INST != None)or(FREQ != None)or(LIST_FREQ != None)",
             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 19/06/2000   AUTEUR DURAND C.DURAND 
def macr_adap_mail_prod(self,MAJ_CHAMP,ADAPTATION,**args):
  mail1=ADAPTATION['MAILLAGE_N']
  self.type_sdprod(mail1,maillage)
  mail2=ADAPTATION['MAILLAGE_NP1']
  self.type_sdprod(mail2,maillage)
  if MAJ_CHAMP == None:return None
  for ch in MAJ_CHAMP:
    t=ch['TYPE_CHAMP']
    if t == 'CHAM_NO_TEMP_R':self.type_sdprod(ch['CHAMP_MAJ'],cham_no_temp_r)
    if t == 'CHAM_NO_DEPL_R':self.type_sdprod(ch['CHAMP_MAJ'],cham_no_depl_r)
  return None

MACR_ADAP_MAIL=MACRO(nom="MACR_ADAP_MAIL",op=-24,sd_prod=macr_adap_mail_prod,
                     fr="Adapter un maillage avec le logiciel HOMARD.",
                     docu="U7.03.01-A",
         VERSION_HOMARD  =SIMP(statut='f',typ='TXM',defaut="V3_15",    
                               into=("V3_15","V3_N","V3_N_PERSO",) ),
         ADAPTATION      =FACT(statut='o',min=01,max=01,
           regles=(
                   UN_PARMI('LIBRE','UNIFORME'),
                  ),
           LIBRE           =SIMP(statut='f',typ='TXM',
                                 into=("RAFF_DERA","RAFFINEMENT","DERAFFINEMENT") ),
           UNIFORME        =SIMP(statut='f',typ='TXM',
                                 into=("RAFFINEMENT","DERAFFINEMENT","RIEN") ),
           MAILLAGE_N      =SIMP(statut='o',typ=(CO,maillage) ),
           MAILLAGE_NP1    =SIMP(statut='o',typ=(CO,maillage) ),
           b_adaptation_libre   =BLOC( condition = " LIBRE != None " ,
                           fr="Indicateur d erreur",
                           RESULTAT_N      =SIMP(statut='o',typ=(evol_elas,evol_noli,evol_ther ) ),
                           INDICATEUR      =SIMP(statut='o',typ='TXM',     
                                                 into=("ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2","ERRE_ELGA_NORE") ),
                           NOM_CMP_INDICA  =SIMP(statut='f',typ='TXM',defaut="ERREST",    
                                                 into=("ERREST","NUEST") ),
                           NUME_ORDRE      =SIMP(statut='f',typ='I' ),  
                           ) ,
           b_raffinement_libre   =BLOC( condition = "( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' )" ,
                           fr="Critère de raffinement.",
                           regles=(UN_PARMI ( 'CRIT_RAFF_ABS', 'CRIT_RAFF_REL', 'CRIT_RAFF_PE' ),),
                           CRIT_RAFF_ABS   =SIMP(statut='f',typ='R' ),  
                           CRIT_RAFF_REL   =SIMP(statut='f',typ='R' ),  
                           CRIT_RAFF_PE    =SIMP(statut='f',typ='R' ),  
                           ) ,
           b_deraffinement_libre   =BLOC ( condition = "( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' )" ,
                             fr="Crit\350re de déraffinement.",
                             regles=(UN_PARMI ( 'CRIT_DERA_ABS', 'CRIT_DERA_REL', 'CRIT_DERA_PE' ),),
                             CRIT_DERA_ABS   =SIMP(statut='f',typ='R' ),  
                             CRIT_DERA_REL   =SIMP(statut='f',typ='R' ),  
                             CRIT_DERA_PE    =SIMP(statut='f',typ='R' ),  
                           ) ,
           b_raffinement =BLOC ( condition = " ( ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'RAFFINEMENT' ) ) or ( ( UNIFORME != None ) and ( UNIFORME == 'RAFFINEMENT' ) ) " ,
                             NIVE_MAX        =SIMP(statut='f',typ='I' ),  
                           ) ,
           b_deraffinement =BLOC ( condition = " ( ( LIBRE == 'RAFF_DERA' ) or ( LIBRE == 'DERAFFINEMENT' ) ) or ( ( UNIFORME != None ) and ( UNIFORME == 'DERAFFINEMENT' ) ) " ,
                             NIVE_MIN        =SIMP(statut='f',typ='I' ),
                           ) ,
         ),
         MAJ_CHAMP       =FACT(statut='f',min=01,max='**',
           RESULTAT        =SIMP(statut='o',
                                 typ=(evol_elas,evol_noli,evol_ther) ),
           NOM_CHAM        =SIMP(statut='o',typ='TXM' ),  
           NUME_ORDRE      =SIMP(statut='f',typ='I' ),  
           CHAMP_MAJ       =SIMP(statut='o',typ=(CO,cham_gd)),
           TYPE_CHAMP      =SIMP(statut='o',typ='TXM',     
                                 into=("CHAM_NO_TEMP_R","CHAM_NO_DEPL_R") ),
         ),
         QUALITE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         MENAGE          =SIMP(statut='f',typ='TXM',into=("MAILLAGE","SOLUTION","TOUT") ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 20/10/2000   AUTEUR F1BHHAJ J.ANGLES 
def macr_ascouf_calc_prod(self,MODELE,**args):
  self.type_sdprod(MODELE,modele)
  return evol_noli

MACR_ASCOUF_CALC=MACRO(nom="MACR_ASCOUF_CALC",op= -20,sd_prod=macr_ascouf_calc_prod,
                      fr=" ",
                      docu="U4.CF.20-A",reentrant='n',
         regles=(UN_PARMI('COMP_INCR','COMP_ELAS'),),
         TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',     
                               into=("SAIN",
                                     "FISS_COUDE",
                                     "SOUS_EPAIS_COUDE"
                                     ) ),
         CL_BOL_P2_GV    =FACT(statut='f',min=01,max=01,
           ANGLE           =SIMP(statut='o',typ='R' ),  
           AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),  
         ),
         MAILLAGE        =SIMP(statut='o',typ=maillage ),
         MODELE          =SIMP(statut='o',typ=(CO,modele)),
         AFFE_MATERIAU   =FACT(statut='o',min=01,max=03,
           regles=(UN_PARMI('TOUT','GROUP_MA'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ='TXM',into=("COUDE","BOL") ),
           MATER           =SIMP(statut='o',typ=mater ),
           TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
         ),
         PRES_REP        =FACT(statut='f',min=01,max=01,
           PRES            =SIMP(statut='o',typ='R' ),  
           EFFE_FOND_P1    =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           FONC_MULT       =SIMP(statut='f',typ=fonction ),
         ),
         ECHANGE         =FACT(statut='f',min=01,max=01,
           COEF_H          =SIMP(statut='f',typ=fonction ),
           TEMP_EXT        =SIMP(statut='f',typ=fonction ),
         ),
         TORS_P1         =FACT(statut='f',min=01,max=06,
           regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
           FX              =SIMP(statut='f',typ='R' ),  
           FY              =SIMP(statut='f',typ='R' ),  
           FZ              =SIMP(statut='f',typ='R' ),  
           MX              =SIMP(statut='f',typ='R' ),  
           MY              =SIMP(statut='f',typ='R' ),  
           MZ              =SIMP(statut='f',typ='R' ),  
           FONC_MULT       =SIMP(statut='f',typ=fonction ),
         ),
         COMP_INCR       =FACT(statut='f',min=01,max=01,
           RELATION        =SIMP(statut='o',typ='TXM',into=("VMIS_ISOT_TRAC",) ),
           VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut= 2,into=( 2 ,) ),
         ),
         COMP_ELAS       =FACT(statut='f',min=01,max=01,
           RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC") ),
           ELAS            =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut= 1,into=( 1 ,) ),
         ),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
         CONVERGENCE     =FACT(statut='d',min=01,max=01,
           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),  
           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),  
           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),  
           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),  
           RESI_INTE_RELA  =SIMP(statut='f',typ='R'     
                                ,defaut= 1.0E-6),  
           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),  
           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),  
           TYPE_MATR_COMP  =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)),
           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
         ),
         NEWTON          =FACT(statut='d',min=01,max=01,
           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),  
           PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
           REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),  
           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
         ),
         RECH_LINEAIRE   =FACT(statut='f',min=01,max=01,
           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),  
         ),
         INCREMENT       =FACT(statut='o',min=01,max=01,
           LIST_INST       =SIMP(statut='o',typ=listr8 ),
           NUME_INST_INIT  =SIMP(statut='f',typ='I' ),  
           NUME_INST_FIN   =SIMP(statut='f',typ='I' ),  
         ),
         THETA_3D        =FACT(statut='f',min=01,max='**',
           R_INF           =SIMP(statut='o',typ='R' ),  
           R_SUP           =SIMP(statut='o',typ='R' ),  
         ),
         IMPR_TABLE      =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('TOUT_PARA','NOM_PARA', ),
            PRESENT_PRESENT('TOUT_PARA','ANGLE',    ),
                   UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL',),),
           NOM_PARA        =SIMP(statut='f',typ='TXM',max=04,     
                                 into=("TRESCA_MEMBRANE",
                                       "TRESCA_MFLE",
                                       "TRESCA",
                                       "SI_LONG"
                                       ) ),
           TOUT_PARA       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           ANGLE           =SIMP(statut='f',typ='R',max='**' ),
           R_CINTR         =SIMP(statut='f',typ='R',max='**' ),
           POSI_CURV_LONGI =SIMP(statut='f',typ='R',max='**' ),
           POSI_ANGUL      =SIMP(statut='f',typ='R',max='**' ),
         ),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",   
                                 into=("RESULTAT","ASTER","IDEAS","CASTEM") ),
           VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=(4,5) ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM' ),  
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 02/10/2000   AUTEUR F1BHHAJ J.ANGLES 
MACR_ASCOUF_MAIL=MACRO(nom="MACR_ASCOUF_MAIL",op= -19,sd_prod=maillage,
                      fr=" ",docu="U4.CF.10-A",reentrant='n',
         regles=(EXCLUS('SOUS_EPAIS_COUDE','FISS_COUDE','SOUS_EPAIS_MULTI'),),
         EXEC_MAILLAGE   =FACT(statut='o',min=01,max=01,
           LOGICIEL        =SIMP(statut='o',typ='TXM',into=("GIBI",) ),
           UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
           UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
         ),
         TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8") ),
         COUDE           =FACT(statut='o',min=01,max=01,
           regles=(   UN_PARMI('DEXT', 'DEXT_T1'),
                      ENSEMBLE('DEXT', 'EPAIS'),
                      ENSEMBLE('DEXT_T1', 'EPAIS_T1', 'EPAIS_T2',
                               'ANGL_TETA1'),
                      ENSEMBLE('EPAIS_TI', 'ANGL_TETA2'),
                PRESENT_ABSENT('ABSC_CURV_TRAN', 'POSI_ANGU_TRAN'),
               PRESENT_PRESENT('ABSC_CURV_TRAN', 'DEXT_T1'),
               PRESENT_PRESENT('POSI_ANGU_TRAN', 'DEXT_T1'),
               PRESENT_PRESENT('EPAIS_TI', 'DEXT_T1'),
                PRESENT_ABSENT('DEXT_T1', 'SUR_EPAIS'),
                PRESENT_ABSENT('DEXT_T1', 'BOL_P2'),),
           ANGLE           =SIMP(statut='o',typ='R' ),  
           R_CINTR         =SIMP(statut='o',typ='R' ),  
           L_TUBE_P1       =SIMP(statut='o',typ='R' ),  
           L_TUBE_P2       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           SUR_EPAIS       =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           BOL_P2          =SIMP(statut='f',typ='TXM',into=("ASP_MPP","CUVE","GV") ),
           NB_ELEM_EPAIS   =SIMP(statut='f',typ='I',defaut= 3 ),  
           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           TRANSFORMEE     =SIMP(statut='f',typ='TXM',defaut="COUDE",into=("COUDE","TUBE") ),
           TRAN_EPAIS      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           DEXT            =SIMP(statut='f',typ='R' ),  
           EPAIS           =SIMP(statut='f',typ='R' ),  
           DEXT_T1         =SIMP(statut='f',typ='R' ),  
           EPAIS_T1        =SIMP(statut='f',typ='R' ),  
           EPAIS_T2        =SIMP(statut='f',typ='R' ),  
           EPAIS_TI        =SIMP(statut='f',typ='R' ),  
           ANGL_TETA1      =SIMP(statut='f',typ='R' ),  
           ANGL_TETA2      =SIMP(statut='f',typ='R' ),  
           ABSC_CURV_TRAN  =SIMP(statut='f',typ='R' ),  
           POSI_ANGU_TRAN  =SIMP(statut='f',typ='R' ),  
         ),
         SOUS_EPAIS_COUDE=FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
                   UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
           TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
           AXE_CIRC        =SIMP(statut='f',typ='R' ),  
           AXE_LONGI       =SIMP(statut='o',typ='R' ),  
           PROFONDEUR      =SIMP(statut='o',typ='R' ),  
           POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
           POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
           POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
           AZIMUT          =SIMP(statut='f',typ='R' ),  
           SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
           NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
           NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
           NB_ELEM_RADI    =SIMP(statut='f',typ='I',defaut= 3 ),  
           EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         SOUS_EPAIS_MULTI=FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('POSI_CURV_LONGI','POSI_ANGUL'),
                   UN_PARMI('POSI_CURV_CIRC','AZIMUT'),),
           TYPE            =SIMP(statut='o',typ='TXM',into=("AXIS","ELLI") ),
           AXE_CIRC        =SIMP(statut='f',typ='R' ),  
           AXE_LONGI       =SIMP(statut='o',typ='R' ),  
           PROFONDEUR      =SIMP(statut='o',typ='R' ),  
           POSI_CURV_LONGI =SIMP(statut='f',typ='R' ),  
           POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
           POSI_CURV_CIRC  =SIMP(statut='f',typ='R' ),  
           AZIMUT          =SIMP(statut='f',typ='R' ),  
           SOUS_EPAIS      =SIMP(statut='o',typ='TXM',into=("INTERNE","EXTERNE") ),
           NB_ELEM_LONGI   =SIMP(statut='o',typ='I' ),  
           NB_ELEM_CIRC    =SIMP(statut='o',typ='I' ),  
           EMPREINTE       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         FISS_COUDE      =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('ABSC_CURV','POSI_ANGUL'),),
           AXIS            =SIMP(statut='f',typ='TXM',into=("OUI","NON"),defaut="NON" ),  
           PROFONDEUR      =SIMP(statut='o',typ='R' ),  
           LONGUEUR        =SIMP(statut='o',typ='R' ),  
           ABSC_CURV       =SIMP(statut='f',typ='R' ),  
           POSI_ANGUL      =SIMP(statut='f',typ='R' ),  
           FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT") ),
           AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),  
           ORIEN           =SIMP(statut='o',typ='R',
                                 into=(45.,-45.,90.,0.E+0) ),
           NB_TRANCHE      =SIMP(statut='o',typ='I' ),  
           NB_SECTEUR      =SIMP(statut='o',typ='I' ),  
           NB_COURONNE     =SIMP(statut='o',typ='I' ),  
           RAYON_TORE      =SIMP(statut='f',typ='R' ),  
           COEF_MULT_RC2   =SIMP(statut='f',typ='R',defaut= 1. ),  
           COEF_MULT_RC3   =SIMP(statut='f',typ='R' ),  
           ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.5 ),  
         ),
         IMPRESSION      =FACT(statut='f',min=01,max='**',
           regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",   
                                 into=("ASTER","IDEAS","CASTEM") ),
           FICHIER         =SIMP(statut='f',typ='TXM' ),  
           UNITE           =SIMP(statut='f',typ='I' ),  
           VERSION         =SIMP(statut='f',typ='I',defaut= 5,into=(4,5) ),
           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut= 10,into=(3,10) ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 20/10/2000   AUTEUR F1BHHAJ J.ANGLES 
def macr_aspic_calc_prod(self,RESU_THER,MODELE,**args):
  if MODELE != None:self.type_sdprod(MODELE,modele)
  if RESU_THER != None:self.type_sdprod(RESU_THER,evol_ther)
  return evol_noli

MACR_ASPIC_CALC=MACRO(nom="MACR_ASPIC_CALC",op=-17,sd_prod=macr_aspic_calc_prod,
                    fr=" ",docu="U4.PC.20-A",reentrant='n',
         TYPE_MAILLAGE   =SIMP(statut='o',typ='TXM',
                               into=("SAIN_FIN","SAIN_GROS","FISS_COUR_DEB","FISS_COUR_NONDEB","FISS_LONG_DEB",
                                     "FISS_LONG_NONDEB","FISS_AXIS_DEB","FISS_AXIS_NONDEB") ),
         TUBULURE        =FACT(statut='f',min=01,max=01,
           TYPE            =SIMP(statut='f',typ='TXM',defaut="TYPE_1",into=("TYPE_1","TYPE_2") ),
         ),
         MAILLAGE        =SIMP(statut='o',typ=maillage),
         MODELE          =SIMP(statut='f',typ=(CO,modele)),
         RESU_THER       =SIMP(statut='f',typ=(CO,evol_ther)),
         AFFE_MATERIAU   =FACT(statut='o',min=01,max=03,
           regles=(UN_PARMI('TOUT','GROUP_MA'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
           GROUP_MA        =SIMP(statut='f',typ='TXM',into=("TUBU","CORP","SOUD","SOUDCORP","SOUDTUBU") ),
           MATER           =SIMP(statut='o',typ=mater),
           TEMP_REF        =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
         ),
         EQUILIBRE       =FACT(statut='o',min=01,max=01,
           NOEUD           =SIMP(statut='o',typ=no),
         ),
         PRES_REP        =FACT(statut='o',min=01,max=01,
           PRES            =SIMP(statut='o',typ='R'),  
           NOEUD           =SIMP(statut='f',typ=no),
           EFFE_FOND       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
         ),
         ECHANGE         =FACT(statut='f',min=01,max=01,
           COEF_H_TUBU     =SIMP(statut='o',typ=fonction),
           COEF_H_CORP     =SIMP(statut='o',typ=fonction),
           TEMP_EXT        =SIMP(statut='o',typ=fonction),
         ),
         TORS_CORP       =FACT(statut='f',min=01,max=06,
           regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
           NOEUD           =SIMP(statut='o',typ=no),
           FX              =SIMP(statut='f',typ='R'),  
           FY              =SIMP(statut='f',typ='R'),  
           FZ              =SIMP(statut='f',typ='R'),  
           MX              =SIMP(statut='f',typ='R'),  
           MY              =SIMP(statut='f',typ='R'),  
           MZ              =SIMP(statut='f',typ='R'),  
           FONC_MULT       =SIMP(statut='f',typ=fonction),
         ),
         TORS_TUBU       =FACT(statut='f',min=01,max=06,
           regles=(AU_MOINS_UN('FX','FY','FZ','MX','MY','MZ'),),
           FX              =SIMP(statut='f',typ='R'),  
           FY              =SIMP(statut='f',typ='R'),  
           FZ              =SIMP(statut='f',typ='R'),  
           MX              =SIMP(statut='f',typ='R'),  
           MY              =SIMP(statut='f',typ='R'),  
           MZ              =SIMP(statut='f',typ='R'),  
           FONC_MULT       =SIMP(statut='f',typ=fonction),
         ),
         COMP_ELAS       =FACT(statut='o',min=01,max=01,
           RELATION        =SIMP(statut='o',typ='TXM',into=("ELAS","ELAS_VMIS_TRAC")),
           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
         ),
         THETA_3D        =FACT(statut='f',min=01,max='**',
           R_INF           =SIMP(statut='o',typ='R'),  
           R_SUP           =SIMP(statut='o',typ='R'),  
         ),
         OPTION          =SIMP(statut='f',typ='TXM',into=("CALC_G_MAX",) ),
         BORNES          =FACT(statut='f',min=01,max='**',
           NUME_ORDRE      =SIMP(statut='o',typ='I'),  
           VALE_MIN        =SIMP(statut='o',typ='R'),  
           VALE_MAX        =SIMP(statut='o',typ='R'),  
         ),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           ),
           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
         ),
         CONVERGENCE     =FACT(statut='d',min=01,max=01,
           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),  
           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),  
           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),  
           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),  
           RESI_INTE_RELA  =SIMP(statut='f',typ='R',defaut=1.0E-6),  
           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut=10),  
           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut=0),  
           TYPE_MATR_COMP  =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)),
           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
         ),
         NEWTON          =FACT(statut='d',min=01,max=01,
           REAC_INCR       =SIMP(statut='f',typ='I',defaut=1),  
           PREDICTION      =SIMP(statut='f',typ='TXM',into=("TANGENTE","ELASTIQUE","EXTRAPOL","DEPL_CALCULE")),
           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE")),
           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0),  
         ),
         RECH_LINEAIRE   =FACT(statut='d',min=01,max=01,
           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut=1.0E-3),  
           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut=3),  
         ),
         INCREMENT       =FACT(statut='o',min=01,max=01,
           LIST_INST       =SIMP(statut='o',typ=listr8),
           NUME_INST_INIT  =SIMP(statut='f',typ='I'),  
           NUME_INST_FIN   =SIMP(statut='f',typ='I'),  
         ),
         PAS_AZIMUT      =SIMP(statut='f',typ='I',defaut=1),  
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",into=("RESULTAT","ASTER","CASTEM","IDEAS")),
           VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         TITRE           =SIMP(statut='f',typ='TXM'),  
)  ;
#& MODIF COMMANDE  DATE 01/02/2000   AUTEUR CIBHHBC B.CIREE 
MACR_ASPIC_MAIL=MACRO(nom="MACR_ASPIC_MAIL",op= -16,sd_prod=maillage,reentrant='n',
                    fr=" ",docu="U4.PC.10-A",
         TYPE_ELEM       =SIMP(statut='f',typ='TXM',defaut="CU20",into=("CU20","CUB8")),
         RAFF_MAIL       =SIMP(statut='f',typ='TXM',defaut="GROS",into=("GROS","FIN")),
         EXEC_MAILLAGE   =FACT(statut='o',min=01,max=01,
           LOGICIEL        =SIMP(statut='o',typ='TXM',into=("GIBI",)),
           UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
           UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10,11)),
         ),
         TUBULURE        =FACT(statut='o',min=01,max=01,
           E_BASE          =SIMP(statut='o',typ='R'),  
           DEXT_BASE       =SIMP(statut='o',typ='R'),  
           L_BASE          =SIMP(statut='o',typ='R'),  
           L_CHANF         =SIMP(statut='o',typ='R'),  
           E_TUBU          =SIMP(statut='o',typ='R'),  
           DEXT_TUBU       =SIMP(statut='o',typ='R'),  
           Z_MAX           =SIMP(statut='o',typ='R'),  
           TYPE            =SIMP(statut='f',typ='TXM',defaut="TYPE_1",into=("TYPE_1","TYPE_2")),
           L_PENETR        =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
         ),
         SOUDURE         =FACT(statut='o',min=01,max=01,
           H_SOUD          =SIMP(statut='o',typ='R'),  
           ANGL_SOUD       =SIMP(statut='o',typ='R'),  
           JEU_SOUD        =SIMP(statut='o',typ='R'),  
         ),
         CORPS           =FACT(statut='o',min=01,max=01,
           E_CORP          =SIMP(statut='o',typ='R'),  
           DEXT_CORP       =SIMP(statut='o',typ='R'),  
           X_MAX           =SIMP(statut='o',typ='R'),  
         ),
         FISS_SOUDURE    =FACT(statut='f',min=01,max=01,
           TYPE            =SIMP(statut='o',typ='TXM',into=("LONGUE","COURTE")),
           AXIS            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
           PROFONDEUR      =SIMP(statut='o',typ='R'),  
           LONGUEUR        =SIMP(statut='f',typ='R'),  
           AZIMUT          =SIMP(statut='o',typ='R'),  
           RAYON_TORE      =SIMP(statut='f',typ='R'),  
           POSITION        =SIMP(statut='o',typ='TXM',into=("DROIT","INCLINE")),
           FISSURE         =SIMP(statut='o',typ='TXM',into=("DEB_INT","DEB_EXT","NON_DEB","TRAVERS")),
           LIGA_INT        =SIMP(statut='f',typ='R'),  
           ANGL_OUVERTURE  =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
           COEF_MULT_RC1   =SIMP(statut='f',typ='R'),  
           COEF_MULT_RC2   =SIMP(statut='f',typ='R'),  
           COEF_MULT_RC3   =SIMP(statut='f',typ='R'),  
           NB_TRANCHE      =SIMP(statut='f',typ='I'),  
           NB_SECTEUR      =SIMP(statut='f',typ='I'),  
           NB_COURONNE     =SIMP(statut='f',typ='I'),  
         ),
         IMPRESSION      =FACT(statut='f',min=01,max='**',
           regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="ASTER",into=("ASTER","IDEAS","CASTEM")),
           FICHIER         =SIMP(statut='f',typ='TXM'),  
           UNITE           =SIMP(statut='f',typ='I'),  
           VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 02/10/96   AUTEUR CIBHHLV L.VIVAN
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-D",reentrant='n',
         regles=(EXCLUS('MATR_AMOR','AMOR_REDUIT' ),),
         BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
         MATR_RIGI       =SIMP(statut='f',typ=matr_asse_depl_r ),
         MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
         MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r ),
         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),         
         OPTION          =SIMP(statut='f',typ='TXM',defaut="CLASSIQUE",into=("CLASSIQUE","RITZ") ),
)  ;
#& MODIF COMMANDE DATE 08/03/94 AUTEUR VABHHT2 G.BERTRAND
MACR_ELEM_STAT=OPER(nom="MACR_ELEM_STAT",op=86,sd_prod=macr_elem_stat,docu="U4.62.01-E",reentrant='f',
                    fr="Définition d un macro-élément pour l analyse statique par sous structuration",
        regles=(AU_MOINS_UN('DEFINITION','RIGI_MECA','MASS_MECA','CAS_CHARGE'),  
                ENSEMBLE('DEFINITION','EXTERIEUR'),),
         DEFINITION      =FACT(statut='f',min=1,max=1,
           MODELE          =SIMP(statut='o',typ=modele),
           CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
           CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
           CHAR_MACR_ELEM  =SIMP(statut='f',typ=char_meca),
           INST            =SIMP(statut='f',typ='R',defaut=0.0E+0 ),  
           NMAX_CAS        =SIMP(statut='f',typ='I',defaut=10),  
           NMAX_CHAR       =SIMP(statut='f',typ='I',defaut=10),  
         ),
         EXTERIEUR       =FACT(statut='f',min=1,max=1,
           regles=(AU_MOINS_UN('NOEUD','GROUP_NO'),),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
         ),
         RIGI_MECA       =FACT(statut='f',min=1,max=1,
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
         ),
         MASS_MECA       =FACT(statut='f',min=1,max=1,
           BIDO1           =SIMP(statut='f',typ='I',defaut=0),  
         ),
         CAS_CHARGE      =FACT(statut='f',min=1,max='**',
           NOM_CAS         =SIMP(statut='o',typ='TXM'),  
           SUIV            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
           CHARGE          =SIMP(statut='f',typ=char_meca,max='**'),
           INST            =SIMP(statut='f',typ='R',defaut=0.E+0),  
         ),
)  ;
#& MODIF COMMANDE  DATE 15/09/1999   AUTEUR F1BHHAJ J.ANGLES 
MACR_GOUJ2E_CALC=MACRO(nom="MACR_GOUJ2E_CALC",op=-23,sd_prod=evol_noli,
                      fr=" ",docu="U4.GJ.20-A",reentrant='n',
         MAILLAGE        =SIMP(statut='o',typ=maillage),
         DEFI_GOUJ       =FACT(statut='o',min=01,max=01,
           TYPE            =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")),
           VARIANTE        =SIMP(statut='o',typ='TXM',into=("A","B","C","D","E","F","G","H","I","J","K","L","M",  
                                                            "N","O","P","Q","R","S","T","U","V","W","X","Y","Z")),
           FILET_TRONQUE   =SIMP(statut='f',typ='I',max='**'),  
           FILET_TRONQA    =SIMP(statut='f',typ='I',max='**'),  
           FILET_TRONQB    =SIMP(statut='f',typ='I',max='**'),  
           FILET_JEU_HT    =SIMP(statut='f',typ='I',max='**'),  
           FILET_JEU_HTA   =SIMP(statut='f',typ='I',max='**'),  
           FILET_JEU_HTB   =SIMP(statut='f',typ='I',max='**'),  
         ),
         EXCIT           =FACT(statut='o',min=01,max=01,
           TYPE_BLOCAGE    =SIMP(statut='o',typ='I',defaut=2,into=(1,2,3)),
           FORCE_GOUJ      =SIMP(statut='o',typ='R'),  
         ),
         CALCUL          =FACT(statut='o',min=01,max=01,
           TYPE_CALCUL     =SIMP(statut='o',typ='TXM',into=("ELASTIQUE","ELASTOPLASTIQUE")),
           NB_INCR         =SIMP(statut='o',typ='I'),  
         ),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="TABLE",    
                                 into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED","TABLE")),
           VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
         ),
         TITRE           =SIMP(statut='f',typ='TXM'),  
         INFO            =SIMP(statut='f',typ='I',defaut=1 ,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 02/02/2000   AUTEUR F1BHHAJ J.ANGLES 
MACR_GOUJ2E_MAIL=MACRO(nom="MACR_GOUJ2E_MAIL",op= -22,sd_prod=maillage,
                      fr=" ",docu="U4.GJ.10-A",reentrant='n',
         EXEC_MAILLAGE   =FACT(statut='o',min=01,max=01,
           LOGICIEL        =SIMP(statut='o',typ='TXM',into=("GIBI",) ),
           UNITE_DATG      =SIMP(statut='f',typ='I',defaut=70),  
           UNITE_MGIB      =SIMP(statut='f',typ='I',defaut=19),  
           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,4,5,6,7,8,9,10)),
         ),
         DEFI_GOUJ       =FACT(statut='o',min=01,max=01,
           TYPE            =SIMP(statut='o',typ='TXM',into=("M33","M64","M90","M115","M155","M180","M186")),
           VARIANTE        =SIMP(statut='o',typ='TXM',into=("A","B","C","D","E","F","G","H","I","J","K","L","M",  
                                                            "N","O","P","Q","R","S","T","U","V","W","X","Y","Z")), 
         ),
         GEOM_GOUJ_BRID  =FACT(statut='o',min=01,max=01,
           NB_FILET        =SIMP(statut='o',typ='I'),  
           H_CORP_BRID     =SIMP(statut='o',typ='R'),  
           R_EXT_BRID      =SIMP(statut='o',typ='R'),  
           H_HAUT_BRID     =SIMP(statut='f',typ='R',defaut=0.0E+0),  
           H_BAS_BRID      =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
           FILET_ABST      =SIMP(statut='f',typ='I',max='**'),  
         ),
         IMPRESSION      =FACT(statut='f',min=01,max=01,
           regles=(PRESENT_PRESENT('FICHIER','UNITE'),),
           FORMAT          =SIMP(statut='f',typ='TXM',defaut="RESULTAT",    
                                 into=("RESULTAT","IDEAS","ASTER","CASTEM","ENSIGHT","MED")),
           FICHIER         =SIMP(statut='f',typ='TXM'),  
           UNITE           =SIMP(statut='f',typ='I'),  
           VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(4,5)),
           NIVE_GIBI       =SIMP(statut='f',typ='I',defaut=10,into=(3,10)),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 19/06/2000   AUTEUR DURAND C.DURAND 
MACR_INFO_MAIL=MACRO(nom="MACR_INFO_MAIL",op=-24,docu="U7.03.02-A",
                     fr="Donner des informations sur un maillage.",
#
# 1. Le nom du maillage a analyser
#
         MAILLAGE        =SIMP(statut='o',typ=maillage),
#
# 2. Determination de la qualite des elements du maillage
#    Par defaut, rien ne se fait
#
         QUALITE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
#
# 3. Controle de la non-interpenetration des elements
#    Par defaut, rien ne se fait
#
         INTERPENETRATION=SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
#
# 4. Version homard
#
         VERSION_HOMARD  =SIMP(statut='f',typ='TXM',defaut="V3_15",into=("V3_15","V3_N","V3_N_PERSO")),
#
# 5. Le niveau d'information
#
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 02/06/99   AUTEUR CIBHHLV L.VIVAN 
MACR_PRE_SYRTHES=MACRO(nom="MACR_PRE_SYRTHES",op=-21,fr=" ",docu="U7.02.21-A",
         MAILLAGE        =FACT(statut='d',min=01,max=01,
           UNITE_SYRTHES   =SIMP(statut='f',typ='I',defaut=13),  
           UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
         ),
         RESULTAT        =FACT(statut='d',min=01,max=01,
           UNITE_SYRTHES   =SIMP(statut='f',typ='I',defaut=31),  
           UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut= 91 ),  
         ),
)  ;
#& MODIF COMMANDE  DATE 17/11/1999   AUTEUR CIBHHGB G.BERTRAND 
MACRO_CARA_POUTRE=MACRO(nom="MACRO_CARA_POUTRE",op=-11,sd_prod=tabl_cara_geom,
                       docu="U4.42.02-C",reentrant='n',
                       fr="Détermination des caractéristiques d'une section transversale de poutre à partir d'un maillage 2D de la section",
         regles=(EXCLUS('SYME_X','GROUP_MA_BORD'),
                 EXCLUS('SYME_Y','GROUP_MA_BORD'),
                 ENSEMBLE('LONGUEUR','LIAISON','MATERIAU') ,),
         UNITE_MAILLAGE  =SIMP(statut='f',typ='I',defaut= 20 ),  
         SYME_X          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
         SYME_Y          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
         GROUP_MA_BORD   =SIMP(statut='f',typ=grma,max='**'),
         GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ORIG_INER       =SIMP(statut='f',typ='R',max='**'),  
         NOEUD           =SIMP(statut='f',typ=no,max='**'),
         GROUP_MA_INTE   =SIMP(statut='f',typ=grma,max='**'),
         LONGUEUR        =SIMP(statut='f',typ='R'),  
         MATERIAU        =SIMP(statut='f',typ=mater),
         LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 30/06/98   AUTEUR CIBHHGB G.BERTRAND 
MACRO_CHAR_F_U=MACRO(nom="MACRO_CHAR_F_U",op=-15,sd_prod=char_meca,
                    fr=" ",docu="U4.72.07-A",reentrant='n',
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         CHARGE          =SIMP(statut='o',typ=char_meca),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         COEF_IMPO       =SIMP(statut='f',typ='R',defaut=1.0E+0),  
         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 05/06/2000   AUTEUR CIBHHLV L.VIVAN 
def macro_elas_mult_prod(self,NUME_DDL,CAS_CHARGE,**args ):
  self.type_sdprod(NUME_DDL,nume_ddl)
  if CAS_CHARGE[0]['NOM_CAS']      != None : return mult_elas
  if CAS_CHARGE[0]['MODE_FOURIER'] != None : return fourier_elas
  raise AsException("type de concept resultat non prevu")

MACRO_ELAS_MULT=MACRO(nom="MACRO_ELAS_MULT",op=-10,sd_prod=macro_elas_mult_prod,docu="U4.51.02-C",reentrant='f',
                     fr="Permet la réalisation d une analyse statique linéaire multi cas de charges ou la réalisation des calculs de plusieurs modes de Fourier sur un modèle axisymétrique",
         regles=(UN_PARMI('CHAR_MECA_GLOBAL','CHAR_CINE_GLOBAL','LIAISON_DISCRET', ),),
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         NUME_DDL        =SIMP(statut='f',typ=(CO,nume_ddl)),# CO()
         CHAR_MECA_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'),
         CHAR_CINE_GLOBAL=SIMP(statut='f',typ=char_meca,max='**'),
         LIAISON_DISCRET =SIMP(statut='f',typ='TXM',into=("OUI",)),
         CAS_CHARGE      =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('NOM_CAS','MODE_FOURIER'),
                   UN_PARMI('CHAR_MECA','CHAR_CINE','VECT_ASSE'),),
           NOM_CAS         =SIMP(statut='f',typ='TXM' ),  
           MODE_FOURIER    =SIMP(statut='f',typ='I' ),  
           TYPE_MODE       =SIMP(statut='f',typ='TXM',defaut="SYME",into=("SYME","ANTI","TOUS") ),
           CHAR_MECA       =SIMP(statut='f',typ=char_meca,max='**'),
           CHAR_CINE       =SIMP(statut='f',typ=char_meca,max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',max='**',     
                                 into=("EFGE_ELNO_DEPL","EPOT_ELEM_DEPL","SIGM_ELNO_DEPL","SIEF_ELGA_DEPL",               
                                       "SIGM_ELNO_CART","EFGE_ELNO_CART","DEGE_ELNO_DEPL","EPSI_ELNO_DEPL",               
                                       "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL","EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA",        
                                       "ECIN_ELEM_DEPL","FLUX_ELGA_TEMP","FLUX_ELNO_TEMP","SOUR_ELGA_ELEC",               
                                       "PRES_ELNO_DBEL","PRES_ELNO_REEL","PRES_ELNO_IMAG","INTE_ELNO_ACTI",               
                                       "INTE_ELNO_REAC","SIGM_NOZ1_ELGA","ERRE_ELEM_NOZ1","SIGM_NOZ2_ELGA",               
                                       "ERRE_ELEM_NOZ2","VNOR_ELEM_DEPL","ERRE_ELNO_ELGA","SIRE_ELNO_DEPL",               
                                       "ERRE_ELGA_NORE","EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI",               
                                       "EQUI_ELGA_EPSI","FORC_NODA","REAC_NODA","EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",               
                                       "EFGE_NOEU_DEPL","EQUI_NOEU_SIGM","EQUI_NOEU_EPSI","FLUX_NOEU_TEMP") ),
           NUME_COUCHE     =SIMP(statut='f',typ='I',defaut=1),  
           NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY")),
           SOUS_TITRE      =SIMP(statut='f',typ='TXM',max='**'),  
           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r),
         ),
# 
#  attention d après la documentation U4-02-04B (solveur), PRE_COND figure uniquement avec la méthode GCPC
# 
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT") ),
           PRE_COND        =SIMP(statut='f',typ='TXM',defaut="SANS",into=("SANS","DIAG") ),
           b_mult_front    = BLOC ( condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
            ),
           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2)),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
MACRO_MADMACS=MACRO(nom="MACRO_MADMACS",op=-9,docu="U7.03.21-C",
                    fr="Impression au format fichier universel IDEAS des données nécessaires au chaînage entre Code_Aster et MADMACS",
         regles=(UN_PARMI('MATR_ELEM_RIGI','MATR_RIGI'),
                 UN_PARMI('MATR_ELEM_MASS','MATR_MASS'),
                 PRESENT_ABSENT('MATR_ELEM_AMOR','MATR_AMOR'),),
         FICHIER         =SIMP(statut='f',typ='TXM' ),  
         FORMAT          =SIMP(statut='f',typ='TXM',defaut="IDEAS",into=("IDEAS",)),
         VERSION         =SIMP(statut='f',typ='I',defaut=5,into=(5,)),
         MAILLAGE        =SIMP(statut='o',typ=maillage),
         NUME_DDL        =SIMP(statut='o',typ=nume_ddl),
         CHARGE          =SIMP(statut='o',typ=char_meca,max='**'),
         MATR_ELEM_RIGI  =SIMP(statut='f',typ=matr_elem_depl_r),
         MATR_RIGI       =SIMP(statut='f',typ=matr_asse_depl_r),
         MATR_ELEM_MASS  =SIMP(statut='f',typ=matr_elem_depl_r),
         MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r),
         MATR_ELEM_AMOR  =SIMP(statut='f',typ=matr_elem_depl_r),
         MATR_AMOR       =SIMP(statut='f',typ=matr_asse_depl_r),
         MODE_MECA       =SIMP(statut='o',typ=mode_meca),
         NMAX_MODE       =SIMP(statut='f',typ='I',defaut=10),  
         INTERFACE       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD','GROUP_NO'),
                   UN_PARMI('DDL_ACTIF','MASQUE'),),
           NOM             =SIMP(statut='o',typ='TXM'),  
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           DDL_ACTIF       =SIMP(statut='f',typ='TXM',max='**'),  
           MASQUE          =SIMP(statut='f',typ='TXM',max='**'),  
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 19/05/2000   AUTEUR JFBHHUC C.ROSE 
def macro_matr_ajou_prod(self,MATR_AMOR_AJOU,MATR_MASS_AJOU,MATR_RIGI_AJOU,**args):
  self.type_sdprod(MATR_AMOR_AJOU,matr_asse_depl_r)
  self.type_sdprod(MATR_MASS_AJOU,matr_asse_depl_r)
  self.type_sdprod(MATR_RIGI_AJOU,matr_asse_depl_r)
  return None

MACRO_MATR_AJOU=MACRO(nom="MACRO_MATR_AJOU",op=-13,docu="U4.66.11-B",sd_prod=macro_matr_ajou_prod,
                      fr="Calcul les matrices de masse, d amortissement ou de rigidité ajoutées qu induit un fluide parfait, incompressible, au repos ou en écoulement potentiel, sur une structure en 2D, 2D axisymétrique ou en 3D",
      regles=(AU_MOINS_UN('MODE_MECA','DEPL_IMPO','MODELE_GENE'),
              AU_MOINS_UN('MATR_MASS_AJOU','MATR_AMOR_AJOU','MATR_RIGI_AJOU'), 
              EXCLUS('MODE_MECA','DEPL_IMPO','MODELE_GENE'),),
         MAILLAGE        =SIMP(statut='o',typ=maillage),
         GROUP_MA_FLUIDE =SIMP(statut='o',typ=grma),
         GROUP_MA_INTERF =SIMP(statut='o',typ=grma),
         MODELISATION    =SIMP(statut='o',typ='TXM',into=("PLAN","AXIS","3D")),
         FLUIDE          =FACT(statut='o',min=01,max='**',
           RHO             =SIMP(statut='o',typ='R'),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
           GROUP_MA        =SIMP(statut='f',typ=grma),
           MAILLE          =SIMP(statut='f',typ=ma),
         ),
         DDL_IMPO        =FACT(statut='o',min=01,max='**',
           regles=(UN_PARMI('NOEUD','GROUP_NO'),
                   UN_PARMI('PRES_FLUIDE','PRES_SORTIE'),),
           NOEUD           =SIMP(statut='f',typ=no),
           GROUP_NO        =SIMP(statut='f',typ=grno),
           PRES_FLUIDE     =SIMP(statut='f',typ='R'),  
           PRES_SORTIE     =SIMP(statut='f',typ='R'),  
         ),
         ECOULEMENT      =FACT(statut='f',min=01,max='**',
           GROUP_MA_1      =SIMP(statut='o',typ=grma),
           GROUP_MA_2      =SIMP(statut='o',typ=grma),
           VNOR_1          =SIMP(statut='o',typ='R'),  
           VNOR_2          =SIMP(statut='f',typ='R'),  
           POTENTIEL       =SIMP(statut='f',typ=evol_ther),
         ),
         MODE_MECA       =SIMP(statut='f',typ=mode_meca),
         DEPL_IMPO       =SIMP(statut='f',typ=cham_no_depl_r),
         MODELE_GENE     =SIMP(statut='f',typ=modele_gene),
         NUME_DDL_GENE   =SIMP(statut='f',typ=nume_ddl_gene),
         DIST_REFE       =SIMP(statut='f',typ='R',defaut= 1.0E-2),  
         MATR_MASS_AJOU  =SIMP(statut='f',typ=(CO,matr_asse)),
         MATR_RIGI_AJOU  =SIMP(statut='f',typ=(CO,matr_asse)),
         MATR_AMOR_AJOU  =SIMP(statut='f',typ=(CO,matr_asse)),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non iversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         NOEUD_DOUBLE    =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
         AVEC_MODE_STAT  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR VABHHTS J.PELLET 
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" ,
       "ONDE_FLUI","MASS_MECA_DIAG" ) : t=matr_asse_depl_r
    if opti == "RIGI_MECA_HYST"   : t= matr_asse_depl_c
    if opti == "RIGI_THER"        : t= matr_asse_temp_r
    if opti == "MASS_THER"        : t= matr_asse_temp_r
    if opti == "RIGI_THER_CONV"   : t= matr_asse_temp_r
    if opti == "RIGI_THER_CONV_D" : t= matr_asse_temp_r
    if opti == "RIGI_ACOU"        : t= matr_asse_pres_c
    if opti == "MASS_ACOU"        : t= matr_asse_pres_c
    if opti == "AMOR_ACOU"        : t= matr_asse_pres_c
    self.type_sdprod(m['MATRICE'],t)
  return None

MACRO_MATR_ASSE=MACRO(nom="MACRO_MATR_ASSE",op=-6,docu="U4.61.21-C",
                      sd_prod=macro_matr_asse_prod,
                      fr="Calcul des matrices assemblées (matr_asse_gd) par exemple de rigidité, de masse ",
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou)),
         INST            =SIMP(statut='f',typ='R'),  
         NUME_DDL        =SIMP(statut='o',typ=(nume_ddl,CO)),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",    
                                 into=("LDLT","MULT_FRONT","GCPC")),
           TAILLE_BLOC     =SIMP(statut='f',typ='R'),  
           RENUM           =SIMP(statut='f',typ='TXM',into=("SANS","RCMK","MD","MDA","METIS")),
         ),
         MATR_ASSE       =FACT(statut='o',min=01,max='**',
           MATRICE         =SIMP(statut='o',typ=(matr_asse,CO)),
           OPTION          =SIMP(statut='o',typ='TXM',     
                                 into=("RIGI_MECA","MASS_MECA","MASS_MECA_DIAG", 
                                       "AMOR_MECA","RIGI_MECA_HYST","IMPE_MECA",        
                                       "ONDE_FLUI","RIGI_FLUI_STRU","MASS_FLUI_STRU",   
                                       "RIGI_ROTA","RIGI_GEOM","RIGI_MECA_LAGR",        
                                       "RIGI_THER","MASS_THER","RIGI_ACOU","MASS_ACOU",      
                                       "AMOR_ACOU")),
           SIEF_ELGA       =SIMP(statut='f',typ=cham_elem_sief_r),
           MODE_FOURIER    =SIMP(statut='f',typ='I'),  
           THETA           =SIMP(statut='f',typ=theta_geom),
           PROPAGATION     =SIMP(statut='f',typ='R'),  
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 02/02/99   AUTEUR ACBHHCD G.DEVESA 
MACRO_MISS_3D=MACRO(nom="MACRO_MISS_3D",op=-18,fr=" ",docu="U7.03.11-A",
         OPTION          =FACT(statut='o',min=01,max=01,
           regles=(UN_PARMI('TOUT','MODULE'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",)),
           MODULE          =SIMP(statut='f',typ='TXM',into=("PRE_MISS","MISS_EVOL","MISS_IMPE")),
         ),
         PROJET          =SIMP(statut='o',typ='TXM'),  
         REPERTOIRE      =SIMP(statut='f',typ='TXM'),  
         UNITE_IMPR_ASTER=SIMP(statut='f',typ='I',defaut=25),  
         UNITE_OPTI_MISS =SIMP(statut='f',typ='I',defaut=26),  
         UNITE_MODELE_SOL=SIMP(statut='f',typ='I',defaut=27),  
         UNITE_RESU_IMPE =SIMP(statut='f',typ='I',defaut=30),  
)  ;
#& MODIF COMMANDE  DATE 04/04/2000   AUTEUR D6BHHBQ B.QUINNEZ 
def macro_mode_meca_prod(self,MATR_A,MATR_B,**args ):
  self.type_sdprod(MATR_A,matr_asse_depl_r)
  self.type_sdprod(MATR_B,matr_asse_depl_r)
  return mode_meca

MACRO_MODE_MECA=MACRO(nom="MACRO_MODE_MECA",op= -12,sd_prod=macro_mode_meca_prod,
                     fr="Permet d alléger le calcul d une structure de données de type mode_meca par le découpage d un intervalle de fréquences global en sous-intervalles",
                     docu="U4.52.02-C",reentrant='n',
         MATR_A          =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ),
         MATR_B          =SIMP(statut='o',typ=(CO,matr_asse_depl_r) ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
#  ce mot cle ne devrait il pas etre dans calc_freq  
         METHODE         =SIMP(statut='f',typ='TXM',defaut="SORENSEN",    
                               into=("TRI_DIAG","JACOBI","SORENSEN",) ),
         OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",    
                               into=("MODE_RIGIDE","SANS") ),
         CALC_FREQ       =FACT(statut='d',min=00,max=01,
           regles=(UN_PARMI('FREQ','FREQ_MAX'),
                   PRESENT_PRESENT('FREQ_MIN','FREQ_MAX'),
                   PRESENT_PRESENT('FREQ_MAX','NB_BLOC_FREQ'),),
           FREQ            =SIMP(statut='f',typ='R',max='**' ),  
           FREQ_MIN        =SIMP(statut='f',typ='R' ),  
           FREQ_MAX        =SIMP(statut='f',typ='R' ),  
           NB_BLOC_FREQ    =SIMP(statut='f',typ='I' ),  
           NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),  
           DIM_SOUS_ESPACE =SIMP(statut='f',typ='I',defaut= 0 ),  
           NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),  
           NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),  
           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),  
           PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-10 ),  
           PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12 ),  
           NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ),  
           NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30 ),  
           PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.4E-10 ),  
           NMAX_ITER_BATHE =SIMP(statut='f',typ='I' ,defaut= 12 ),  
           PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2 ),  
           NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ),  
           PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E0 ),  
           NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ),  
           PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ),  
           SEUIL_FREQ      =SIMP(statut='f',typ='R' ,defaut= 1.E-2 ),  
           STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="NON" ,into=("OUI","NON") ),
         ),
         VERI_MODE       =FACT(statut='d',min=00,max=01,
           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6 ),  
           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),  
           STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         NORM_MODE       =FACT(statut='o',min=01,max='**',
           MASS_INER       =SIMP(statut='o',typ=tabl_mass_iner ),
           NORME           =SIMP(statut='f',typ='TXM',defaut="TRAN_ROTA",    
                                 into=("MASS_GENE","RIGI_GENE","EUCL",           
                                       "EUCL_TRAN","TRAN","TRAN_ROTA") ),
           INFO            =SIMP(statut='f',typ='I',defaut= 1 ,into=(1,2) ),
         ),
         FILTRE_MODE     =FACT(statut='f',min=01,max=01,
           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
                                 into=("MASS_EFFE_UN","MASS_GENE") ),
           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
         ),
         IMPRESSION      =FACT(statut='d',min=01,max=01,
           TOUT_PARA       =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           CUMUL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           CRIT_EXTR       =SIMP(statut='f',typ='TXM',defaut="MASS_EFFE_UN",    
                                 into=("MASS_EFFE_UN","MASS_GENE",) ),
         ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
def macro_proj_base_prod(self,MATR_ASSE_GENE,VECT_ASSE_GENE,**args ):
  if MATR_ASSE_GENE != None:
    for m in MATR_ASSE_GENE:
      self.type_sdprod(m['MATRICE'],matr_asse_gene_r)
      self.type_sdprod(m['MATR_ASSE'],matr_asse_depl_r)
  if VECT_ASSE_GENE != None:
    for m in VECT_ASSE_GENE:
      self.type_sdprod(m['VECTEUR'],vect_asse_gene)
  return None

MACRO_PROJ_BASE=MACRO(nom="MACRO_PROJ_BASE",op=-8,docu="U4.63.11-C",
                      sd_prod=macro_proj_base_prod,
                      fr="Projection des matrices et/ou vecteurs assemblés sur une base de vecteurs", 
         BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene) ),
         NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999),  
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),  
         MATR_ASSE_GENE  =FACT(statut='f',min=01,max='**',
           MATRICE         =SIMP(statut='o',typ=(CO,matr_asse)),
           MATR_ASSE       =SIMP(statut='f',typ=(CO,matr_asse_depl_r)),
           MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r),
           PROFIL          =SIMP(statut='f',typ='TXM',defaut="DIAG",into=("PLEIN","DIAG") ),
         ),
         VECT_ASSE_GENE  =FACT(statut='f',min=01,max='**',
           VECTEUR         =SIMP(statut='o',typ=(CO,vect_asse)),
           TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),  
           VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r),
           VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 08/09/97   AUTEUR VABHHTS J.PELLET 
MAJ_CATA=PROC(nom="MAJ_CATA",op=20,docu="U4.15.01-D",
              fr="Compilation des catalogues de commandes et d éléments",
         regles=(UN_PARMI('COMMANDE','ELEMENT','VALIDATION'),),
         COMMANDE        =FACT(statut='f',min=01,max=01,
           UNITE           =SIMP(statut='o',typ='I' ),  
         ),
         ELEMENT         =FACT(statut='f',min=01,max=01,),
         VALIDATION      =FACT(statut='f',min=01,max=01,
           UNITE           =SIMP(statut='o',typ='I' ),  
           TOUT            =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
         ),
)  ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR 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-F",reentrant='n',
                   regles=(EXCLUS("INST","LIST_INST"),),
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         EXCIT           =FACT(statut='o',min=1,max='**',
           CHARGE          =SIMP(statut='o',typ=(char_meca,char_cine_meca)),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE",into=("FIXE",) ),
         ),
         INST            =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         LIST_INST       =SIMP(statut='f',typ=listr8),
         OPTION          =SIMP(statut='f',typ='TXM',max='**',
                               into=("SIEF_ELGA_DEPL","SIGM_ELNO_DEPL","SIPO_ELNO_DEPL","EFGE_ELNO_DEPL",
                                     "EPSI_ELNO_DEPL","EPSI_ELGA_DEPL","EPME_ELNO_DEPL","EPME_ELGA_DEPL",
                                     "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM","EQUI_ELNO_EPSI","EQUI_ELGA_EPSI",
                                     "EQUI_ELNO_EPME","EQUI_ELGA_EPME","DEGE_ELNO_DEPL","EPOT_ELEM_DEPL",
                                     "ENEL_ELGA","ENEL_ELNO_ELGA") ),
         NUME_COUCHE     =SIMP(statut='f',typ='I',defaut=1),
         NIVE_COUCHE     =SIMP(statut='f',typ='TXM',defaut="MOY",into=("SUP","INF","MOY") ),
         ANGLE           =SIMP(statut='f',typ='I',defaut=0),
         PLAN            =SIMP(statut='f',typ='TXM',defaut="MAIL",into=("SUP","INF","MOY","MAIL") ),
         SENSIBILITE     =FACT(statut='f',min=1,max=1,
           THETA           =SIMP(statut='o',typ=theta_geom),
         ),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),
           ),
           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut=8),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut=1.E-6),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 09/09/98   AUTEUR SABJLMA P.LATRUBESSE 
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',
         BASE_MODALE     =SIMP(statut='o',typ=base_modale ),
         NB_MODE         =SIMP(statut='f',typ='I',defaut= 999 ),
         NB_SECTEUR      =SIMP(statut='o',typ='I' ),
         LIAISON         =FACT(statut='o',min=01,max=01,
           DROITE          =SIMP(statut='o',typ='TXM' ),
           GAUCHE          =SIMP(statut='o',typ='TXM' ),
           AXE             =SIMP(statut='f',typ='TXM' ),
         ),
         VERI_CYCL       =FACT(statut='f',min=01,max=01,
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF",) ),
           DIST_REFE       =SIMP(statut='f',typ='R' ),
         ),
         CALCUL          =FACT(statut='o',min=01,max=01,
           TOUT_DIAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NB_DIAM         =SIMP(statut='f',typ='I',max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE"
                                ,into=("PLUS_PETITE","CENTRE","BANDE") ),
           b_centre      =BLOC(condition = "OPTION == 'CENTRE'",
             FREQ            =SIMP(statut='o',typ='R',min=01,max=01),
           ),
           b_bande       =BLOC(condition = "OPTION == 'BANDE'",
             FREQ            =SIMP(statut='o',typ='R',min=02,max=02),
           ),
#  NMAX_FREQ n a-t-il pas un sens qu avec OPTION CENTRE                                
           NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
           PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 100. ),
           PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 50 ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 24/05/2000   AUTEUR D6BHHBQ B.QUINNEZ 
def mode_iter_inv_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
  if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
  if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
  if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
  if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
  if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
  raise AsException("type de concept resultat non prevu")

MODE_ITER_INV=OPER(nom="MODE_ITER_INV",op=  44,sd_prod=mode_iter_inv_prod
                    ,fr="Modes propres par itérations inverses ; valeurs propres et modes réels ou complexes",
                     docu="U4.52.04-F",reentrant='n',
         MATR_A          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
         MATR_B          =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_gene_r,matr_asse_pres_r ) ),
         MATR_C          =SIMP(statut='f',typ=matr_asse_depl_r ),
         TYPE_RESU       =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE",   
                               into=("MODE_FLAMB","DYNAMIQUE"),fr="Type d analyse" ),
         b_dynam         =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
           CALC_FREQ       =FACT(statut='o',min=01,max=01,fr="Choix des paramètres pour le calcul des valeurs propres",
           
             OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
                                   fr="Choix de l option pour estimer les valeurs propres"  ),
             FREQ            =SIMP(statut='o',typ='R',max='**'),
             AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),     
             NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0 ),           
             NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30 ),
             PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
             NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
             PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4 ),

             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
           ),
         ),
         b_flamb        =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
           CALC_FREQ       =FACT(statut='o',min=01,max=01,fr="Choix des paramètres pour le calcul des valeurs propres",
           
             OPTION          =SIMP(statut='f',typ='TXM',defaut="AJUSTE",into=("SEPARE","AJUSTE","PROCHE"),
                                 fr="Choix de l option pour estimer les valeurs propres"  ),
             CHAR_CRIT       =SIMP(statut='o',typ='R',max='**' ),
             NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 0 ),           
             NMAX_ITER_SEPARE=SIMP(statut='f',typ='I' ,defaut= 30 ),
             PREC_SEPARE     =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
             NMAX_ITER_AJUSTE=SIMP(statut='f',typ='I',defaut= 15 ),
             PREC_AJUSTE     =SIMP(statut='f',typ='R',defaut= 1.E-4 ),
           
             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
           ),
         ),
         CALC_MODE       =FACT(statut='d',min=00,max=01,fr="Choix des paramètres pour le calcul des vecteurs propres",
           OPTION          =SIMP(statut='f',typ='TXM',defaut="DIRECT",into=("DIRECT","RAYLEIGH") ),
           PREC            =SIMP(statut='f',typ='R',defaut= 1.E-5,fr="Précision de convergence" ),
           NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 30 ),
         ),
         VERI_MODE       =FACT(statut='d',min=00,max=01,
           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-2,fr="Valeur limite admise pour l ereur a posteriori des modes"  ),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 24/05/2000   AUTEUR D6BHHBQ B.QUINNEZ 
def mode_iter_simult_prod(MATR_A,MATR_C,TYPE_RESU,**args ):
  if TYPE_RESU == "MODE_FLAMB" : return mode_flamb
  if AsType(MATR_C) == matr_asse_depl_r : return mode_meca_c
  if AsType(MATR_A) == matr_asse_depl_r : return mode_meca
  if AsType(MATR_A) == matr_asse_pres_r : return mode_acou
  if AsType(MATR_A) == matr_asse_gene_r : return mode_gene
  raise AsException("type de concept resultat non prevu")

MODE_ITER_SIMULT=OPER(nom="MODE_ITER_SIMULT",op=  45,sd_prod=mode_iter_simult_prod,
                      fr="Modes propres par itérations simultanées ; valeurs propres et modes propres réels ou complexes",
                      docu="U4.52.03-E",reentrant='n',
         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 ),
         METHODE         =SIMP(statut='f',position='global',typ='TXM',defaut="SORENSEN",into=("TRI_DIAG","JACOBI","SORENSEN") ),
         TYPE_RESU       =SIMP(statut='f',position='global',typ='TXM',defaut="DYNAMIQUE",into=("MODE_FLAMB","DYNAMIQUE"),
                               fr="Type d analyse" ),
         OPTION          =SIMP(statut='f',typ='TXM',defaut="SANS",into=("MODE_RIGIDE","SANS"),fr="Calcul des modes de corps rigide, uniquement pour la méthode TRI_DIAG" ),

         b_flamb         =BLOC(condition = "TYPE_RESU == 'MODE_FLAMB'",
           CALC_FREQ       =FACT(statut='d',min=00,max=01,
             OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
                                   fr="Choix de l option et par conséquent du shift du problème modal" ),
             b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
             ),
             b_centre      =BLOC(condition = "OPTION == 'CENTRE'",fr="Recherche des valeurs propres les plus proches d une valeur donnée",
               CHAR_CRIT       =SIMP(statut='o',typ='R',min=01,max=01,fr="Charge critique autour de laquelle on cherche les charges critiques propres"),
             ),
             b_bande       =BLOC(condition = "(OPTION == 'BANDE')",fr="Recherche des valeurs propres dans une bande donnée",
               CHAR_CRIT       =SIMP(statut='o',typ='R',min=02,max=02,fr="Valeur des deux charges critiques délimitant la bande de recherche"),
             ),           
             APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
             DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
             b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
               PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12 ),
               NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ),
               PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8 ),
               NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30 ), 
             ),
             b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
               PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10 ),
               NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40 ),
               PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
               NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ),
             ),
             b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
               PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
               NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ),  
               PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ),
             ),
             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
           ),
         ),

         b_dynam        =BLOC(condition = "TYPE_RESU == 'DYNAMIQUE'",
           CALC_FREQ       =FACT(statut='d',min=00,max=01,
             OPTION          =SIMP(statut='f',typ='TXM',defaut="PLUS_PETITE",into=("PLUS_PETITE","BANDE","CENTRE"),
                                   fr="Choix de l option et par conséquent du shift du problème modal" ),
             b_plus_petite =BLOC(condition = "OPTION == 'PLUS_PETITE'",fr="Recherche des plus petites valeurs propres",
               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
             ),
             b_centre       =BLOC(condition = "OPTION == 'CENTRE'",fr="Recherche des valeurs propres les plus proches d une valeur donnée",
               FREQ            =SIMP(statut='o',typ='R',min=01,max=01,fr="Fréquence autour de laquelle on cherche les fréquences propres"),
               AMOR_REDUIT     =SIMP(statut='f',typ='R',max=01),
               NMAX_FREQ       =SIMP(statut='f',typ='I',defaut= 10 ),
             ),
             b_bande         =BLOC(condition = "(OPTION == 'BANDE')",fr="Recherche des valeurs propres dans une bande donnée",
               FREQ            =SIMP(statut='o',typ='R',min=02,max=02,fr="Valeur des deux fréquences délimitant la bande de recherche"),
             ),           
             APPROCHE        =SIMP(statut='f',typ='TXM',defaut="REEL",into=("REEL","IMAG"),fr="Choix du pseudo-produit scalaire pour la résolution du problème quadratique" ),           
             DIM_SOUS_ESPACE =SIMP(statut='f',typ='I' ),
             b_tri_diag =BLOC(condition = "METHODE == 'TRI_DIAG'",
               PREC_ORTHO      =SIMP(statut='f',typ='R',defaut= 1.E-12 ),
               NMAX_ITER_ORTHO =SIMP(statut='f',typ='I',defaut= 5 ),
               PREC_LANCZOS    =SIMP(statut='f',typ='R',defaut= 1.E-8 ),
               NMAX_ITER_QR    =SIMP(statut='f',typ='I',defaut= 30 ), 
             ),
             b_jacobi =BLOC(condition = "METHODE == 'JACOBI'",
               PREC_BATHE      =SIMP(statut='f',typ='R',defaut= 1.E-10 ),
               NMAX_ITER_BATHE =SIMP(statut='f',typ='I',defaut= 40 ),
               PREC_JACOBI     =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
               NMAX_ITER_JACOBI=SIMP(statut='f',typ='I',defaut= 12 ),
             ),
             b_sorensen =BLOC(condition = "METHODE == 'SORENSEN'",
               PREC_SOREN      =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
               NMAX_ITER_SOREN =SIMP(statut='f',typ='I',defaut= 20 ),  
               PARA_ORTHO_SOREN=SIMP(statut='f',typ='R',defaut= 0.717 ),
             ),
             NPREC_SOLVEUR   =SIMP(statut='f',typ='I',defaut= 8 ),
             NMAX_ITER_SHIFT =SIMP(statut='f',typ='I',defaut= 5 ),
             PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-2 ),
             SEUIL_FREQ      =SIMP(statut='f',typ='R',defaut= 1.E-2 ),
           ),
         ),

         VERI_MODE       =FACT(statut='d',min=00,max=01,
           STOP_ERREUR     =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
           PREC_SHIFT      =SIMP(statut='f',typ='R',defaut= 5.E-3 ),
           SEUIL           =SIMP(statut='f',typ='R',defaut= 1.E-6,fr="Valeur limite admise pour l ereur a posteriori des modes" ),
           STURM           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         STOP_FREQ_VIDE  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),        
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
MODE_STATIQUE=OPER(nom="MODE_STATIQUE",op=  93,sd_prod=mode_stat,
                   fr="Calcul de modes statiques",
                   docu="U4.52.14-E",reentrant='n',
         MATR_RIGI       =SIMP(statut='o',typ=matr_asse_depl_r ),
         MATR_MASS       =SIMP(statut='f',typ=matr_asse_depl_r ),
         DDL_IMPO        =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
                   UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
           SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
         ),
         FORCE_NODALE    =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
                   UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
           SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
         ),
         ACCE_UNIF       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('AXE','DIRECTION', ),),
           AXE             =SIMP(statut='f',typ='TXM',into=("X","Y","Z"),max=03),
           DIRECTION       =SIMP(statut='f',typ='R',max=03),
           b_dir           =BLOC(condition = "DIRECTION != None",
             NOM_DIR         =SIMP(statut='f',typ='TXM' ),
           ), 
         ),
         ACCE_IMPO       =FACT(statut='f',min=01,max='**',
            regles=(UN_PARMI('TOUT','NOEUD','GROUP_NO'),
                    UN_PARMI('TOUT_CMP','AVEC_CMP','SANS_CMP'),),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           AVEC_CMP        =SIMP(statut='f',typ='TXM',max='**'),
           SANS_CMP        =SIMP(statut='f',typ='TXM',max='**'),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR CIBHHAB N.RAHNI 
MODI_BASE_MODALE=OPER(nom="MODI_BASE_MODALE",op= 149,sd_prod=mode_meca,
                      fr="Modélisation d une base modale pour tenir compte du couplage fluidélastique (mêmes déformées modales, modification des valeurs des fréquences et amortissements)",
                      docu="U4.66.21-C",reentrant='f',
#  la commande modi_base _modale : reentrant = f ou o                      
         regles=(EXCLUS('AMOR_UNIF','AMOR_REDUIT', ),),
         BASE            =SIMP(statut='o',typ=mode_meca ),
         BASE_ELAS_FLUI  =SIMP(statut='o',typ=melasflu ),
         NUME_VITE_FLUI  =SIMP(statut='o',typ='I' ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
         AMOR_REDUIT     =SIMP(statut='f',typ='R',max='**'),
         AMOR_UNIF       =SIMP(statut='f',typ='R' ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
)  ;
#& MODIF COMMANDE  DATE 22/05/2000   AUTEUR AUBHHMB M.BONNAMY 
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-C",reentrant='o',
      regles=(UN_PARMI('ORIE_CONTACT','DEFORME','EQUE_PIQUA','ORIE_PEAU_2D',
                       'ORIE_PEAU_3D','ORIE_NORM_COQUE','PLAQ_TUBE','MODI_MAILLE'),
              EXCLUS('EQUE_PIQUA','PLAQ_TUBE'),
              EXCLUS('EQUE_PIQUA','TUBE_COUDE'),),
         MAILLAGE        =SIMP(statut='o',typ=maillage ),         
         
         ORIE_CONTACT    =FACT(statut='f',min=01,max=01,
           GROUP_MA        =SIMP(statut='o',typ=grma,max='**'),
         ),
         
         DEFORME         =FACT(statut='f',min=01,max=01,
           OPTION          =SIMP(statut='o',typ='TXM',into=("TRAN",) ),
           DEPL            =SIMP(statut='o',typ=cham_no_depl_r ),
         ),
         
         EQUE_PIQUA      =FACT(statut='f',min=01,max=01,
           GROUP_NO        =SIMP(statut='o',typ=grno),
           E_BASE          =SIMP(statut='o',typ='R' ),
           DEXT_BASE       =SIMP(statut='o',typ='R' ),
           L_BASE          =SIMP(statut='o',typ='R' ),
           L_CHANF         =SIMP(statut='o',typ='R' ),
           H_SOUD          =SIMP(statut='o',typ='R' ),
           ANGL_SOUD       =SIMP(statut='o',typ='R' ),
           JEU_SOUD        =SIMP(statut='o',typ='R' ),
           E_CORP          =SIMP(statut='o',typ='R' ),
           DEXT_CORP       =SIMP(statut='o',typ='R' ),
           AZIMUT          =SIMP(statut='o',typ='R' ),
           RAFF_MAIL       =SIMP(statut='o',typ='TXM' ),
           X_MAX           =SIMP(statut='o',typ='R' ),
         ),
         ORIE_PEAU_2D    =FACT(statut='f',min=01,max='**',
           GROUP_MA        =SIMP(statut='o',typ=grma,max='**'),
         ),
         ORIE_PEAU_3D    =FACT(statut='f',min=01,max='**',
           GROUP_MA        =SIMP(statut='o',typ=grma,max='**'),
         ),
         ORIE_NORM_COQUE =FACT(statut='f',min=01,max='**',
           regles=(EXCLUS('NOEUD','GROUP_NO'),
	           PRESENT_PRESENT('NOEUD','VECT_NORM'),
		   PRESENT_PRESENT('GROUP_NO','VECT_NORM'),),
           GROUP_MA        =SIMP(statut='o',typ=grma,max='**'),
           VECT_NORM       =SIMP(statut='f',typ='R',max=03),
           NOEUD           =SIMP(statut='f',typ=no),
           GROUP_NO        =SIMP(statut='f',typ=grno),
         ),
         b_modele        =BLOC(condition = "(ORIE_PEAU_2D != None) or (ORIE_PEAU_3D != None) or(ORIE_NORM_COQUE != None)",
           MODELE          =SIMP(statut='o',typ=modele ),
         ),
         PLAQ_TUBE       =FACT(statut='f',min=01,max=01,
           DEXT            =SIMP(statut='o',typ='R' ),
           EPAIS           =SIMP(statut='o',typ='R' ),
           L_TUBE_P1       =SIMP(statut='o',typ='R' ),
           AZIMUT          =SIMP(statut='f',typ='R',defaut= 90. ),
           COUTURE         =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON",)  ),
         ),
         TUBE_COUDE      =FACT(statut='f',min=01,max=01,
           ANGLE           =SIMP(statut='o',typ='R' ),
           R_CINTR         =SIMP(statut='o',typ='R' ),
           L_TUBE_P1       =SIMP(statut='o',typ='R' ),
         ),
         MODI_MAILLE     =FACT(statut='f',min=01,max=01,
           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='**'),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 07/04/98   AUTEUR ACBHHCD G.DEVESA 
MODI_OBSTACLE=OPER(nom="MODI_OBSTACLE",op=182,sd_prod=obstacle,
                   fr=" ",docu="U4.44.22-A",reentrant='f',
      regles=(PRESENT_ABSENT('R_MOBILE','CRAYON'),),
         TABL_USURE      =SIMP(statut='f',typ=tabl_post_usur),
         INST            =SIMP(statut='f',typ='R'),  
         OBSTACLE        =SIMP(statut='f',typ=obstacle),
         GUIDE           =SIMP(statut='o',typ=obstacle),
         CRAYON          =SIMP(statut='f',typ=obstacle),
         R_MOBILE        =SIMP(statut='f',typ='R'),  
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 05/09/2000   AUTEUR CIBHHLV L.VIVAN 
def norm_mode_prod(MODE,**args ):
  if AsType(MODE) == mode_meca   : return mode_meca
  if AsType(MODE) == mode_meca_c : return mode_meca_c
  if AsType(MODE) == mode_flamb  : return mode_flamb
  raise AsException("type de concept resultat non prevu")

NORM_MODE=OPER(nom="NORM_MODE",op=  37,sd_prod=norm_mode_prod,
               fr="Normalisation de modes propres",
               docu="U4.52.11-E",reentrant='f',
         regles=(UN_PARMI('NORME','NOEUD','AVEC_CMP','SANS_CMP'),),
         MODE            =SIMP(statut='o',typ=(mode_meca,mode_flamb) ),
         NORME           =SIMP(statut='f',typ='TXM',fr="Norme prédéfinie : masse généralisée, euclidienne,...",
                               into=("MASS_GENE","RIGI_GENE","EUCL","EUCL_TRAN","TRAN","TRAN_ROTA") ),
         NOEUD           =SIMP(statut='f',typ=no, fr="Composante donnée d un noeud spécifié égale à 1"),
         b_noeud         =BLOC(condition = "NOEUD != None",                          
           NOM_CMP         =SIMP(statut='o',typ='TXM' ),
         ),
         AVEC_CMP        =SIMP(statut='f',typ='TXM',fr="Norme plus grande composante = 1 en prenant seulement en compte les degrés de libertés suivant",max='**'),
         SANS_CMP        =SIMP(statut='f',typ='TXM',fr="Norme plus grande composante = 1 en ne prenant pas en compte les degrés de libertés suivant",max='**'),
         MASS_INER       =SIMP(statut='f',typ=tabl_mass_iner ),
         MODE_SIGNE      =FACT(statut='f',min=00,max=01,fr="Imposer un signe sur une des composantes des modes",
           NOEUD           =SIMP(statut='o',typ=no,fr="Noeud où sera imposé le signe"),
           NOM_CMP         =SIMP(statut='o',typ='TXM',fr="Composante du noeud où sera imposé le signe" ),
           SIGNE           =SIMP(statut='f',typ='TXM',defaut="POSITIF",into=("NEGATIF","POSITIF"),fr="Choix du signe" ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2) ),
)  ;
#& MODIF COMMANDE  DATE 19/05/2000   AUTEUR JFBHHUC C.ROSE 
NUME_DDL=OPER(nom="NUME_DDL",op=11,sd_prod=nume_ddl,docu="U4.61.11-F",reentrant='n',
              fr="Etablissement de la numérotation des ddl avec ou sans renumérotation et du stockage de la matrice",
         MATR_RIGI       =SIMP(statut='o',typ=(matr_elem_depl_r ,matr_elem_depl_c,   
                                               matr_elem_temp_r,matr_elem_pres_c),max='**' ),
         METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
         b_mult_front    =BLOC(condition="METHODE=='MULT_FRONT'",fr="paramètres associés à la méthode multifrontale",
           RENUM           =SIMP(statut='f',typ='TXM',into=("MD","MDA","METIS") ),
         ),
         b_ldlt          =BLOC(condition="METHODE=='LDLT'",fr="paramètres associés à la méthode LDLT",
           RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS") ),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
         ),
         b_gcpc          =BLOC(condition="METHODE=='GCPC'",fr="paramètres associés à la méthode gradient conjugué",
           RENUM           =SIMP(statut='f',typ='TXM',into=("RCMK","SANS") ),
         ),
         INFO            =SIMP(statut='f',typ='I',into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 02/10/96   AUTEUR CIBHHLV L.VIVAN 
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-D",reentrant='n',
         MODELE_GENE     =SIMP(statut='f',typ=modele_gene ),
         BASE            =SIMP(statut='f',typ=(mode_meca,base_modale,mode_gene ) ),
         NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999 ),
         STOCKAGE        =SIMP(statut='f',typ='TXM',defaut="LIGN_CIEL",into=("PLEIN","DIAG","LIGN_CIEL") ),
         TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
)  ;
#& MODIF COMMANDE  DATE 04/08/98   AUTEUR SABJLMA P.LATRUBESSE 
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',
         regles=(UN_PARMI('NOEUD_I','NUME_ORDRE_I','OPTION'),),
         INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
         NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),  
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE_I    =SIMP(statut='f',typ='I',max='**' ),
         NOEUD_I         =SIMP(statut='f',typ=no,max='**'),         
         OPTION          =SIMP(statut='f',typ='TXM',into=("DIAG",) ),
         b_nume_ordre_i =BLOC(condition = "NUME_ORDRE_I != None",
           NUME_ORDRE_J    =SIMP(statut='o',typ='I',max='**' ),   
         ),  
         b_noeud_i      =BLOC(condition = "NOEUD_I != None",
           NOEUD_J         =SIMP(statut='o',typ=no,max='**'),
           NOM_CMP_I       =SIMP(statut='o',typ='TXM',max='**' ),  
           NOM_CMP_J       =SIMP(statut='o',typ='TXM',max='**' ),     
         ),  
         DEPASSEMENT     =FACT(statut='f',min=01,max='**',
           fr="Loi de dépassement d un seuil pendant une durée donnée",
           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
           VALE_MIN        =SIMP(statut='f',typ='R' ),  
           VALE_MAX        =SIMP(statut='f',typ='R' ),  
           PAS             =SIMP(statut='f',typ='R' ),  
           DUREE           =SIMP(statut='f',typ='R',defaut= 1. ),  
         ),
         RAYLEIGH        =FACT(statut='f',min=01,max='**',
           fr="Densité de probabilité de pic positif, loi adaptée à des signaux à bande étroite",
           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
           VALE_MIN        =SIMP(statut='f',typ='R' ),  
           VALE_MAX        =SIMP(statut='f',typ='R' ),  
           PAS             =SIMP(statut='f',typ='R' ),  
         ),
         GAUSS           =FACT(statut='f',min=01,max='**',
           fr="Densité de probabilité de pic positif, loi normale adaptée à des signaux large bande",
           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
           VALE_MIN        =SIMP(statut='f',typ='R' ),  
           VALE_MAX        =SIMP(statut='f',typ='R' ),  
           PAS             =SIMP(statut='f',typ='R' ),  
         ),
         VANMARCKE       =FACT(statut='f',min=01,max='**',
           fr="Probabilité de non dépassement de seuil pendant une durée donnée (analyse sismique)",
           regles=(ENSEMBLE('VALE_MIN','VALE_MAX'),),
           VALE_MIN        =SIMP(statut='f',typ='R' ),  
           VALE_MAX        =SIMP(statut='f',typ='R' ),  
           PAS             =SIMP(statut='f',typ='R' ),  
           DUREE           =SIMP(statut='f',typ='R',defaut= 10. ),  
         ),
         MOMENT          =SIMP(statut='f',typ='I',max='**',fr="Moments spectraux en complément des cinq premiers" ),  
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR CIBHHLV L.VIVAN 
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',
        regles=(UN_PARMI('CHOC','RELA_EFFO_DEPL', ),),
         RESU_GENE       =SIMP(statut='o',typ=tran_gene ),
         CHOC            =FACT(statut='f',min=01,max='**',
                               fr="Analyse des non linéarités de choc",
           INST_INIT       =SIMP(statut='f',typ='R',defaut= -1. ),  
           INST_FIN        =SIMP(statut='f',typ='R',defaut= 999. ),  
           NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
           SEUIL_FORCE     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           DUREE_REPOS     =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           OPTION          =SIMP(statut='f',typ='TXM',defaut="USURE",into=("IMPACT","USURE") ),
           NB_CLASSE       =SIMP(statut='f',typ='I',defaut= 10 ),  
         ),
         RELA_EFFO_DEPL  =FACT(statut='f',min=01,max=01,
                               fr="Analyse des relationsnon linéaires effort-déplacement",
           NOEUD           =SIMP(statut='o',typ=no),
           NOM_CMP         =SIMP(statut='o',typ='TXM' ),  
         ),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=(1,2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 05/12/2000   AUTEUR G8BHHXD X.DESROCHES 
def post_elem_prod( MASS_INER,ENER_POT,ENER_CIN,INDU_MUTU,WEIBULL,
                    CARA_GEOM,CARA_POUTRE,RICE_TRACEY,CHAR_LIMITE,
                    INDIC_ENER,INDIC_SEUIL,ENER_ELAS,ENER_TOTALE,
                    AIRE_INTERNE,**args ):
  if MASS_INER    != None  : return tabl_mass_iner
  if ENER_POT     != None  : return tabl_ener_pot
  if ENER_CIN     != None  : return tabl_ener_cin
  if INDU_MUTU    != None  : return tabl_indu_mutu
  if WEIBULL      != None  : return tabl_weibull
  if CARA_GEOM    != None  : return tabl_cara_geom
  if CARA_POUTRE  != None  : return tabl_cara_geom
  if RICE_TRACEY  != None  : return tabl_rice_tracey
  if CHAR_LIMITE  != None  : return tabl_char_limite
  if INDIC_ENER   != None  : return tabl_indic_ener
  if INDIC_SEUIL  != None  : return tabl_indic_seuil
  if ENER_ELAS    != None  : return tabl_ener_elas
  if ENER_TOTALE  != None  : return tabl_ener_totale
  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-D",reentrant='f',
               fr="Calcul de quantités globales (masse, inerties, énergie, ...) sur tout ou partie du modèle",
         regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','NUME_MODE',       
                        'NOEUD_CMP','LIST_ORDRE','LIST_INST','LIST_FREQ','NOM_CAS'),
                 EXCLUS('CHAM_GD','RESULTAT'),
                 UN_PARMI('MASS_INER', 'ENER_POT', 'ENER_CIN', 'INDU_MUTU',
                          'WEIBULL', 'RICE_TRACEY', 'CARA_GEOM','CHAR_LIMITE',
                          'CARA_POUTRE', 'INDIC_ENER', 'INDIC_SEUIL',
                          'AIRE_INTERNE','ENER_ELAS','ENER_TOTALE'),
                 PRESENT_PRESENT( 'MASS_INER', 'MODELE' ),
                 PRESENT_PRESENT( 'CARA_GEOM', 'MODELE' ),
                 PRESENT_PRESENT( 'AIRE_INTERNE', 'MODELE' ),
                 PRESENT_PRESENT( 'CARA_POUTRE', 'MODELE' ),
                 PRESENT_PRESENT( 'ENER_POT', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'ENER_CIN', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'INDU_MUTU', 'MODELE','CHARGE' ),
                 PRESENT_PRESENT( 'WEIBULL', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'RICE_TRACEY', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'INDIC_ENER', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'INDIC_SEUIL', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'ENER_ELAS', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'ENER_TOTALE', 'MODELE', 'CHAM_MATER' ),
                 PRESENT_PRESENT( 'CHAR_LIMITE', 'MODELE', 'CHAM_MATER' ),
             ),    
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='f',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         CHARGE          =SIMP(statut='f',typ=(char_meca,char_ther,char_acou),max='**' ),
         MODE_FOURIER    =SIMP(statut='f',typ='I',defaut=0),  
         NUME_COUCHE     =SIMP(statut='f',typ='I',defaut=1),  
         NIVE_COUCHE     =SIMP(statut='f',typ='TXM',into=("INF","SUP","MOY"),defaut="MOY"),  
         ANGLE           =SIMP(statut='f',typ='I',defaut=0),  
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         GEOMETRIE       =SIMP(statut='f',typ='TXM',defaut="INITIALE",into=("INITIALE","DEFORMEE")),
         CHAM_GD         =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_elem_ener_r) ),
         RESULTAT        =SIMP(statut='f',typ=(mode_meca,evol_elas,evol_ther,evol_noli,mult_elas,fourier_elas) ),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),  
         LIST_ORDRE      =SIMP(statut='f',typ=listis),
         INST            =SIMP(statut='f',typ='R',max='**'),  
         LIST_INST       =SIMP(statut='f',typ=listr8),
         FREQ            =SIMP(statut='f',typ='R',max='**'),  
         LIST_FREQ       =SIMP(statut='f',typ=listr8),
         NUME_MODE       =SIMP(statut='f',typ='I',max='**'),  
         NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**'),  
         NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),  
         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),

         MASS_INER       =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           ORIG_INER       =SIMP(statut='f',typ='R',min=3,max=3 ),  
         ),

         ENER_POT        =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),

         ENER_CIN        =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),

         INDU_MUTU       =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),

         WEIBULL         =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")),
           CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
           COEF_MULT       =SIMP(statut='f',typ='R',defaut=1.),  
         ),

         RICE_TRACEY     =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY")),
           LOCAL           =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
         ),

         INDIC_ENER      =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),

         ENER_ELAS       =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),

         ENER_TOTALE    =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),

         CHAR_LIMITE     =FACT(statut='f',min=00,max=01,
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='o',typ='TXM',into=("OUI",)),
           N               =SIMP(statut='f',typ='R',max=1),  
         ),

         INDIC_SEUIL     =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
         ),

         CARA_GEOM       =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA','MAILLE'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           SYME_X          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           SYME_Y          =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
           ORIG_INER       =SIMP(statut='f',typ='R',min=2,max=2),  
         ),

         CARA_POUTRE     =FACT(statut='f',min=1,max='**',
           regles=(AU_MOINS_UN('TOUT','GROUP_MA'),
                   ENSEMBLE('LONGUEUR','LIAISON','MATERIAU'),),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           GROUP_MA_INTE   =SIMP(statut='f',typ=grma,max='**'),
           CARA_GEOM       =SIMP(statut='f',typ=tabl_cara_geom),
           LAPL_PHI        =SIMP(statut='f',typ=evol_ther),
           LAPL_PHI_Y      =SIMP(statut='f',typ=evol_ther),
           LAPL_PHI_Z      =SIMP(statut='f',typ=evol_ther),
           LIAISON         =SIMP(statut='f',typ='TXM',into=("ROTULE","ENCASTREMENT")),
           LONGUEUR        =SIMP(statut='f',typ='R'),  
           MATERIAU        =SIMP(statut='f',typ=mater),
           OPTION          =SIMP(statut='f',typ='TXM',into=("CARA_TORSION","CARA_CISAILLEMENT","CARA_GAUCHI") ),
         ),

         AIRE_INTERNE    =FACT(statut='f',min=1,max='**',
           GROUP_MA_BORD   =SIMP(statut='o',typ=grma,max='**'),
         ),
 )  ;
#& MODIF COMMANDE  DATE 16/12/97   AUTEUR CIBHHLV L.VIVAN 
POST_FATI_ALEA=OPER(nom="POST_FATI_ALEA",op=170,sd_prod=tabl_post_f_alea,docu="U4.84.03-C",reentrant='n',
                    fr="Calcul du dommage subi par une structure soumise à unesollicitation de type aléatoire",
         regles=(ENSEMBLE('MOMENT_SPEC_0','MOMENT_SPEC_2'),
                 PRESENT_PRESENT( 'MOMENT_SPEC_4','MOMENT_SPEC_0'),
                 UN_PARMI('TABL_POST_ALEA','MOMENT_SPEC_0'), ),
         MOMENT_SPEC_0   =SIMP(statut='f',typ='R'),  
         MOMENT_SPEC_2   =SIMP(statut='f',typ='R'),  
         MOMENT_SPEC_4   =SIMP(statut='f',typ='R'),  
         TABL_POST_ALEA  =SIMP(statut='f',typ=tabl_post_alea),
         COMPTAGE        =SIMP(statut='o',typ='TXM',into=("PIC","NIVEAU")),
         DUREE           =SIMP(statut='f',typ='R',defaut= 1.),  
         CORR_KE         =SIMP(statut='f',typ='TXM',into=("RCCM",)),
         DOMMAGE         =SIMP(statut='o',typ='TXM',into=("WOHLER",)),
         MATER           =SIMP(statut='o',typ=mater),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
)  ;
#& MODIF COMMANDE  DATE 01/10/97   AUTEUR CIBHHLV L.VIVAN 
POST_FATIGUE=OPER(nom="POST_FATIGUE",op=136,sd_prod=tabl_post_fatig,docu="U4.83.01-C",reentrant='n',
                  fr="Calcul du dommage subi par une structure soumise à une histoire de chargement",
         regles=(PRESENT_PRESENT('CORR_KE','MATER'),
                 PRESENT_PRESENT('CORR_SIGM_MOYE','MATER'),
                 PRESENT_PRESENT('CRITERE','MATER'),   
                 PRESENT_PRESENT('DOMMAGE','MATER'),),
         HISTOIRE        =FACT(statut='o',min=1,max=1,
           regles=(EXCLUS('SIGM','EPSI'),
                   EXCLUS('SIGM','SIGM_XX'),
                   EXCLUS('SIGM','SIGM_XZ'),
                   EXCLUS('SIGM','SIGM_YZ'),
                   EXCLUS('SIGM','EPSP'),     
                   EXCLUS('SIGM','TEMP',),
                   EXCLUS('EPSI','SIGM_XX'),
                   EXCLUS('EPSI','SIGM_XZ'),
                   EXCLUS('EPSI','SIGM_YZ'),
                   EXCLUS('EPSI','EPSP'),     
                   EXCLUS('EPSI','TEMP'),
                   ENSEMBLE('SIGM_XX','SIGM_YY','SIGM_ZZ','SIGM_XY'),
                   ENSEMBLE('SIGM_XZ','SIGM_YZ'),
                   ENSEMBLE('EPSP','TEMP'),),
           SIGM            =SIMP(statut='f',typ=fonction),
           EPSI            =SIMP(statut='f',typ=fonction),
           SIGM_XX         =SIMP(statut='f',typ=fonction),
           SIGM_YY         =SIMP(statut='f',typ=fonction),
           SIGM_ZZ         =SIMP(statut='f',typ=fonction),
           SIGM_XY         =SIMP(statut='f',typ=fonction),
           SIGM_XZ         =SIMP(statut='f',typ=fonction),
           SIGM_YZ         =SIMP(statut='f',typ=fonction),
           EPSP            =SIMP(statut='f',typ=fonction),
           TEMP            =SIMP(statut='f',typ=fonction),
         ),
         COMPTAGE        =SIMP(statut='f',typ='TXM',into=("RAINFLOW","RCCM","NATUREL")),
         DELTA_OSCI      =SIMP(statut='f',typ='R',defaut= 0.0E+0),  
         COEF_MULT       =FACT(statut='f',min=1,max=1,
           KT              =SIMP(statut='f',typ='R'),  
         ),
         CORR_KE         =SIMP(statut='f',typ='TXM',into=("RCCM",)),
         CORR_SIGM_MOYE  =SIMP(statut='f',typ='TXM',into=("GOODMAN","GERBER")),
         TAHERI_NAPPE    =SIMP(statut='f',typ=fonction),
         TAHERI_FONC     =SIMP(statut='f',typ=fonction),
         CRITERE         =SIMP(statut='f',typ='TXM',into=("CROSSLAND","PAPADOPOULOS")),
         COEF_CORR       =SIMP(statut='f',typ='R'),  
         DOMMAGE         =SIMP(statut='f',typ='TXM',into=("WOHLER","MANSON_COFFIN","TAHERI_MANSON",   
                                                          "TAHERI_MIXTE","LEMAITRE")),
         MATER           =SIMP(statut='f',typ=mater),
         CUMUL           =SIMP(statut='f',typ='TXM',into=("LINEAIRE",)),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
)  ;
#& MODIF COMMANDE  DATE 15/09/1999   AUTEUR F1BHHAJ J.ANGLES 
POST_GOUJ2E=OPER(nom="POST_GOUJ2E",op=187,sd_prod=tabl_post_gouj2e,reentrant='n', 
                 fr=" ",docu="U4.GJ.30-A",
         TABLE           =SIMP(statut='o',typ=tabl_post_rele),
)  ;
#& MODIF COMMANDE  DATE 31/05/2000   AUTEUR CIBHHLV L.VIVAN 
POST_K1_K2_K3=OPER(nom="POST_K1_K2_K3",op=188,sd_prod=tabl_post_k,
                   fr="Calcul des facteurs d intensité des contraintes par extrapolation du champ de déplacements sur les lèvres de la fissure",
                   docu="U4.82.05-A",reentrant='n',
      regles=(PRESENT_PRESENT('REPERE','VECT_Y', ),),
         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,fr="Fond de fissure issu de DEFI_FOND_FISS"),
         b_fond_3d       =BLOC (condition="(FOND_3D != None)",
                           MAILLAGE  = SIMP(statut='o',typ=maillage),
                           PRECISION = SIMP(statut='f',typ='R',defaut=0.001)
                           ),
         MATER           =SIMP(statut='o',typ=mater,fr="Matériau homogène et isotrope cohérent avec celui utilisé pour le calcul des déplacements"),
         TABL_DEPL_SUP   =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t sur les noeuds de la lèvre supérieure"),
         TABL_DEPL_INF   =SIMP(statut='o',typ=tabl_post_rele,fr="Table issue de post_releve_t sur les noeuds de la lèvre inférieure"),
         ABSC_CURV_MAXI  =SIMP(statut='f',typ='R',fr="distance maximum à partir du fond de fissure à utiliser pour le calcul"),  
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         REPERE          =SIMP(statut='f',typ='TXM',into=("LOCAL",),fr="Les déplacements sont transportés dans le repère local à la fissure"),
         VECT_Y          =SIMP(statut='f',typ='R',max='**',fr="Vecteur dont la projection sur le plan normal au segment de calcul défini l axe Y local"),  
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
)  ;
#& MODIF COMMANDE  DATE 27/04/98   AUTEUR CIBHHLV L.VIVAN 
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-C",reentrant='n',
         MATER           =SIMP(statut='o',typ=mater ),
         TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE_MAX",into=("VALE_MAX","VALE_INST") ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         OPTION          =SIMP(statut='o',typ='TXM',max='**',
                               into=("PM_PB",
                                     "SN",
                                     "FATIGUE_SPMAX",
                                     "FATIGUE_ZH210"
                                     ) ),
         SEGMENT         =FACT(statut='o',min=01,max='**',fr="Segment sur lequel s effectue le depouillement",
           INTITULE        =SIMP(statut='f',typ='TXM' ),
           CHEMIN          =SIMP(statut='o',typ=(courbe,surface) ),
         ),
         TRANSITOIRE     =FACT(statut='o',min=01,max='**',fr="transitoire à dépouiller",
           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','LIST_ORDRE'),),
           INTITULE        =SIMP(statut='f',typ='TXM' ),
           RESULTAT        =SIMP(statut='o',typ=(evol_elas,evol_noli) ),
           RESU_SIGM_THER  =SIMP(statut='f',typ=(evol_elas,evol_noli),fr="résultat sous chargement thermique seul" ),
           NB_OCCUR        =SIMP(statut='f',typ='I',defaut= 1,fr="nombre d occurences réelles de ce transitoire" ),
           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("SIEF_ELNO_ELGA","SIGM_ELNO_DEPL") ),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           LIST_ORDRE      =SIMP(statut='f',typ=listis ),
           INST            =SIMP(statut='f',typ='R',max='**'),
           LIST_INST       =SIMP(statut='f',typ=listr8 ),
           b_inst          =BLOC(condition = "(INST != None) or (LIST_INST != None)" ,
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
           ), 
         ),
)  ;
#& MODIF COMMANDE  DATE 11/10/2000   AUTEUR CIBHHLV L.VIVAN 
POST_RELEVE_T=OPER(nom="POST_RELEVE_T",op=51,sd_prod=tabl_post_rele,docu="U4.81.21-D",reentrant='n',
                   fr="Relevé de valeurs et calculs d invariants avec stockage et organisation du relevé dans un concept de type table",
         ACTION          =FACT(statut='o',min=01,max='**',
           regles=(AU_MOINS_UN('CHEMIN','GROUP_NO','NOEUD'),
                   EXCLUS('CHEMIN','GROUP_NO'),
                   EXCLUS('CHEMIN','NOEUD'),
                   PRESENT_ABSENT('CHEMIN','GROUP_MA','MAILLE'),
                   UN_PARMI('RESULTAT','CHAM_GD'),            
                   UN_PARMI('TOUT_CMP','NOM_CMP','INVARIANT','ELEM_PRINCIPAUX','RESULTANTE'),
                   PRESENT_PRESENT('TRAC_DIR','DIRECTION'),          
                   PRESENT_PRESENT('TRAC_DIRECTION','DIRECTION'),
                   ENSEMBLE('MOMENT','POINT'),
                   PRESENT_PRESENT('MOMENT','RESULTANTE'),
                   PRESENT_ABSENT('TOUT_CMP','TRAC_DIRECTION','TRAC_NORMALE'),
                   PRESENT_ABSENT('TOUT_CMP','TRAC_DIR','TRAC_NOR'),
                   PRESENT_PRESENT('ORIGINE','AXE_Z'),),
           INTITULE        =SIMP(statut='o',typ='TXM'),  
           CHEMIN          =SIMP(statut='f',typ=(courbe,surface) ),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           FORMAT_C        =SIMP(statut='f',typ='TXM',defaut="MODULE",into=("MODULE","REEL","IMAG")),
           CHAM_GD         =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_no_var2_r,      
                                                 cham_elem_sief_r,cham_elem_epsi_r,cham_elem_flux_r,cham_elem_crit_r,                 
                                                 cham_elem_ener_r,cham_elem_dbel_r,cham_elem_pres_r,cham_elem_erreur,                 
                                                 cham_elem_vari_r,cham_no_depl_c,cham_no_temp_c,cham_no_pres_c,
                                                 cham_elem_sief_c,cham_elem_epsi_c)),
           RESULTAT        =SIMP(statut='f',typ=(evol_elas,evol_ther,evol_noli,dyna_trans,          
                                                 mode_meca,mode_flamb,mode_acou,base_modale,        
                                                 mult_elas,fourier_elas,dyna_harmo,acou_harmo)),
           b_extrac        =BLOC(condition = "RESULTAT != None",fr="extraction des résultats",
             regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','NUME_MODE','LIST_MODE',         
                            'INST','LIST_INST','FREQ','LIST_FREQ','NOM_CAS'), ),           
             NOM_CHAM        =SIMP(statut='o',typ='TXM' ),  
             TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
             NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),  
             LIST_ORDRE      =SIMP(statut='f',typ=listis),
             NUME_MODE       =SIMP(statut='f',typ='I',max='**'),  
             LIST_MODE       =SIMP(statut='f',typ=listis),
             NOM_CAS         =SIMP(statut='f',typ='TXM',max='**'),  
             FREQ            =SIMP(statut='f',typ='R',max='**'),  
             LIST_FREQ       =SIMP(statut='f',typ=listr8),
             INST            =SIMP(statut='f',typ='R',max='**'),  
             LIST_INST       =SIMP(statut='f',typ=listr8),
             PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-6),  
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
           ),
           TOUT_CMP        =SIMP(statut='f',typ='TXM',into=("OUI",)),
           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**'),  
           INVARIANT       =SIMP(statut='f',typ='TXM',into=("OUI",)),
           ELEM_PRINCIPAUX =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           RESULTANTE      =SIMP(statut='f',typ='TXM',max='**'),  
           MOMENT          =SIMP(statut='f',typ='TXM',max='**'),  
           POINT           =SIMP(statut='f',typ='R',max='**'),  

           REPERE          =SIMP(statut='f',typ='TXM',defaut="GLOBAL",
                                 into=("GLOBAL","LOCAL","POLAIRE","UTILISATEUR","CYLINDRIQUE"),),
           ANGL_NAUT       =SIMP(statut='f',typ='R',min=3,max=3),  
           ORIGINE         =SIMP(statut='f',typ='R',min=3,max=3),  
           AXE_Z           =SIMP(statut='f',typ='R',min=3,max=3),  

           TRAC_NOR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
           TRAC_DIR        =SIMP(statut='f',typ='TXM',into=("OUI",)),
           DIRECTION       =SIMP(statut='f',typ='R',max='**'),  
           TRAC_DIRECTION  =SIMP(statut='f',typ='TXM',into=("OUI",)),
           TRAC_NORMALE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
 
           VECT_Y          =SIMP(statut='f',typ='R',max='**'),  
           MOYE_NOEUD      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON")),
           OPERATION       =SIMP(statut='o',typ='TXM',into=("EXTRACTION","MOYENNE","MOYENNE_RCCM")),
         ),
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
)  ;
#& MODIF COMMANDE  DATE 18/01/99   AUTEUR CIBHHBC B.CIREE 
POST_SIMPLIFIE=OPER(nom="POST_SIMPLIFIE",op=185,sd_prod=tabl_post_simpli,
                    fr=" ",docu="U4.PS.10-A",reentrant='n',
         MATER           =SIMP(statut='o',typ=(mater) ),
         DEF_EQUI        =FACT(statut='f',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',max='**',defaut="UTO_2_3",
                                 into=("UTO_2_3",) ),
           EPAIS           =SIMP(statut='o',typ='R'),  
           LONG_FISS       =SIMP(statut='o',typ='R'),  
           LONG_LIGA_INT   =SIMP(statut='o',typ='R'),  
           DEXT            =SIMP(statut='o',typ='R'),  
           TEMP_ANALYSE    =SIMP(statut='f',typ='R'),  
         ),
)  ;
#& MODIF COMMANDE  DATE 07/04/98   AUTEUR ACBHHCD G.DEVESA 
POST_USURE=OPER(nom="POST_USURE",op=153,sd_prod=tabl_post_usur,docu="U4.84.05-C",reentrant='f',
                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'),),
         ETAT_INIT       =FACT(statut='f',min=01,max=01,
           TABL_USURE      =SIMP(statut='f',typ=tabl_post_usur),
           INST_INIT       =SIMP(statut='f',typ='R'),  
                         ),
         RESU_GENE       =SIMP(statut='f',typ=tran_gene),
         NOEUD           =SIMP(statut='f',typ=no,max=1),
         INST_INIT       =SIMP(statut='f',typ='R',defaut=-1.0E+0),  
         INST_FIN        =SIMP(statut='f',typ='R'),  
         NB_BLOC         =SIMP(statut='f',typ='I',defaut= 1 ),  
         PUIS_USURE      =SIMP(statut='f',typ='R'),  
         LOI_USURE       =SIMP(statut='o',typ='TXM',into=("ARCHARD","KWU_EPRI","EDF_MZ")),
         b_archard       =BLOC(condition = "LOI_USURE == 'ARCHARD'",
           regles=(EXCLUS('MATER_USURE','OBSTACLE'),
                   EXCLUS('MOBILE','USURE_OBST'),),
           MOBILE          =FACT(statut='f',min=01,max=01,
             COEF_USURE      =SIMP(statut='o',typ='R'), 
           ),   
           OBSTACLE        =FACT(statut='f',min=01,max=01,
             COEF_USURE      =SIMP(statut='o',typ='R'), 
           ),   
           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
           USURE_OBST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
         ),
         b_kwu_epri        =BLOC(condition = "LOI_USURE == 'KWU_EPRI'",
           regles=(UN_PARMI('MOBILE','MATER_USURE'), 
                   EXCLUS('MATER_USURE','OBSTACLE'),
                   EXCLUS('MOBILE','USURE_OBST'),),
           MOBILE          =FACT(statut='f',min=01,max=01,
             COEF_FNOR       =SIMP(statut='f',typ='R'),  
             COEF_VTAN       =SIMP(statut='f',typ='R'),  
             COEF_USURE      =SIMP(statut='f',typ='R'),  
             COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
             COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
           ),   
           OBSTACLE        =FACT(statut='f',min=01,max=01,
             COEF_FNOR       =SIMP(statut='f',typ='R' ),  
             COEF_VTAN       =SIMP(statut='f',typ='R' ),  
             COEF_USURE      =SIMP(statut='o',typ='R'), 
             COEF_K          =SIMP(statut='f',typ='R',defaut=5.0E+0),  
             COEF_C          =SIMP(statut='f',typ='R',defaut=10.0E+0),  
           ),   
           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
           USURE_OBST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
           FNOR_MAXI       =SIMP(statut='f',typ='R' ),  
           VTAN_MAXI       =SIMP(statut='f',typ='R' ),  
         ),
         b_edf_mz          =BLOC(condition = "LOI_USURE == 'EDF_MZ'",
           regles=(UN_PARMI('MOBILE','MATER_USURE'), 
                   EXCLUS('MATER_USURE','OBSTACLE'),
                   EXCLUS('MOBILE','USURE_OBST'),),
           MOBILE          =FACT(statut='f',min=01,max=01,
             COEF_USURE      =SIMP(statut='f',typ='R',defaut=1.0E-13),  
             COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
             COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
             COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
           ),   
           OBSTACLE        =FACT(statut='f',min=01,max=01,
             COEF_USURE      =SIMP(statut='o',typ='R',defaut=1.0E-13), 
             COEF_B          =SIMP(statut='f',typ='R',defaut=1.2E+0),  
             COEF_N          =SIMP(statut='f',typ='R',defaut=2.44E-8),  
             COEF_S          =SIMP(statut='f',typ='R',defaut=1.14E-16),  
           ),   
           MATER_USURE     =SIMP(statut='f',typ='TXM'),  
           USURE_OBST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON")),
         ),
         SECTEUR         =FACT(statut='f',min=01,max='**',
           CONTACT         =SIMP(statut='f',typ='TXM',into=("TUBE_BAV","TUBE_ALESAGE","TUBE_4_ENCO",  
                                                            "GRAPPE_ALESAGE","TUBE_3_ENCO","TUBE_TUBE", 
                                                            "GRAPPE_1_ENCO","GRAPPE_2_ENCO")),
           COEF_USUR_MOBILE=SIMP(statut='f',typ='R'),  
           COEF_USUR_OBST  =SIMP(statut='f',typ='R'),  
           ANGL_INIT       =SIMP(statut='f',typ='R'),  
           ANGL_FIN        =SIMP(statut='f',typ='R'),  
         ),
         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")),
         LARGEUR_OBST    =SIMP(statut='f',typ='R'),  
         ANGL_INCLI      =SIMP(statut='f',typ='R'),  
         ANGL_ISTHME     =SIMP(statut='f',typ='R'),  
         ANGL_IMPACT     =SIMP(statut='f',typ='R'),  
         INST            =SIMP(statut='f',typ='R',max='**'),  
         LIST_INST       =SIMP(statut='f',typ=listr8),
         COEF_INST       =SIMP(statut='f',typ='R',defaut=1.0E+0),  
         INFO            =SIMP(statut='f',typ='I',defaut=1,into=(1,2)),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 31/08/1999   AUTEUR G8BHHXD X.DESROCHES 
POST_ZAC=OPER(nom="POST_ZAC",op= 175,sd_prod=mult_elas,docu="U4.83.21-B",reentrant='n',
              fr="Donne l'état adapté ou accommodé d'une structure sous chargement cyclique élastique affine ou non",
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         EXCIT           =FACT(statut='o',min=01,max='**',
           CHARGE          =SIMP(statut='o',typ=char_meca),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",into=("FIXE_CSTE",)),
         ),
         EVOL_ELAS       =SIMP(statut='o',typ=evol_elas),
         b_evol_elas     =BLOC(condition="EVOL_ELAS != None",
           regles=(UN_PARMI('NUME_ORDRE','LIST_INST','INST'),),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),  
           LIST_INST       =SIMP(statut='f',typ=listr8),
           INST            =SIMP(statut='f',typ='R',max='**'),  
         ),
         TEMP_ZAC        =SIMP(statut='f',typ='R',defaut=0.0E+0),  
         EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
         b_evol_noli     =BLOC(condition="EVOL_NOLI != None",
           INST_MAX        =SIMP(statut='o',typ='R'),  
         ),
         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),

)  ;
#& AJOUT COMMANDE    
POURSUITE=MACRO(nom="POURSUITE",op=0,repetable='n',fr="Poursuite d une étude",
                docu="U4.11.03-f",sd_prod = ops.POURSUITE,
                op_init = ops.POURSUITE_context,fichier_ini = 1,
         PAR_LOT         =SIMP(fr="mode de traitement des commandes",statut='f',typ='TXM' ),
         BASE            =FACT(fr="définition des parmètres associés aux bases JEVEUX",
                               statut='f',min=01,max=03,
           FICHIER         =SIMP(fr="nom de la base",statut='o',typ='TXM'),
           TITRE           =SIMP(statut='f',typ='TXM'),
           CAS             =SIMP(statut='f',typ='TXM'),
           NMAX_ENRE       =SIMP(fr="nombre maximum d enregistrements",statut='f',typ='I'),
           LONG_ENRE       =SIMP(fr="longueur des enregistrements",statut='f',typ='I'),
           LONG_REPE       =SIMP(fr="longueur du répertoire",statut='f',typ='I'),
         ),
         IMPRESSION      =FACT(statut='f',min=01,max=03,
           FICHIER         =SIMP(statut='o',typ='TXM'),
           UNITE           =SIMP(statut='o',typ='I'),
         ),
         CATALOGUE       =FACT(statut='f',min=01,max=10,
           FICHIER         =SIMP(statut='o',typ='TXM'),
           TITRE           =SIMP(statut='f',typ='TXM'),
           UNITE           =SIMP(statut='f',typ='I'),
         ),
         DEBUG           =FACT(fr="option de déboggage reservée aux développeurs",
                               statut='f',min=01,max=01,
           JXVERI          =SIMP(fr="vérifie l intégrité de la segmentation mémoire",
                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
           JEVEUX          =SIMP(fr="force les déchargement sur disque",
                                 statut='f',typ='TXM',into=('OUI','NON'),defaut='NON'),
           ENVIMA          =SIMP(fr="imprime les valeurs définies dans ENVIMA",
                                 statut='f',typ='TXM',into=('TES',)),
         ),
         MEMOIRE         =FACT(fr="mode de gestion mémoire utilisé",statut='f',min=01,max=01,
           GESTION         =SIMP(statut='f',typ='TXM',into=('COMPACTE','RAPIDE'),defaut='RAPIDE'),  
           TYPE_ALLOCATION =SIMP(statut='f',typ='I',into=(1,2,3,4),defaut=1),  
           TAILLE          =SIMP(statut='f',typ='I'),  
           PARTITION       =SIMP(statut='f',typ='R' ),  
         ),
)  ;
#& MODIF COMMANDE DATE 01/04/92 AUTEUR INCONNU INCONNU
PRE_CHAR_IDEAS=PROC(nom="PRE_CHAR_IDEAS",op=100,docu="U7.01.02-E",
                    fr="Conversion de conditions aux limites et chargements IDEAS en commandes Aster",
         UNITE_IDEAS     =SIMP(statut='f',typ='I',defaut=19),  
         UNITE_ASTER     =SIMP(statut='f',typ='I',defaut=21),  
         MODELE          =SIMP(statut='o',typ=modele),
)  ;
#& MODIF COMMANDE DATE 28/11/90 AUTEUR INCONNU INCONNU
PRE_GIBI=PROC(nom="PRE_GIBI",op=49,docu="U7.01.11-F",
              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 23/04/92 AUTEUR INCONNU INCONNU
PRE_IDEAS=PROC(nom="PRE_IDEAS",op=47,docu="U7.01.01-F",
               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 16/06/2000   AUTEUR D6BHHJP J.P.LEFEBVRE 
PROCEDURE=PROC(nom="PROCEDURE",op=-3, docu="U4.13.03-E",
          fr="Nommer le fichier de commandes secondaires",
          NOM  =SIMP(statut='f',typ='TXM',defaut=" "),
) ;                                                                                                                                                                                                                    
#& MODIF COMMANDE  DATE 11/07/95   AUTEUR CIBHHLV L.VIVAN 
def prod_matr_cham_prod(MATR_ASSE,**args):
  if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
  if AsType(MATR_ASSE) == matr_asse_depl_c : return cham_no_depl_c
  if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
  if AsType(MATR_ASSE) == matr_asse_pres_c : return cham_no_pres_c
  raise AsException("type de concept resultat non prevu")

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',
         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 12/05/99   AUTEUR VABHHTS J.PELLET 
def proj_champ_prod(RESULTAT=None,CHAM_NO_REFE=None,**args ):
    if AsType(RESULTAT)     == evol_ther      : return evol_ther
    if AsType(RESULTAT)     == evol_elas      : return evol_elas
    if AsType(RESULTAT)     == evol_noli      : return evol_noli
    if AsType(CHAM_NO_REFE) == cham_no_depl_r : return cham_no_depl_r
    if AsType(CHAM_NO_REFE) == cham_no_depl_c : return cham_no_depl_c
    if AsType(CHAM_NO_REFE) == cham_no_pres_c : return cham_no_pres_c
    if AsType(CHAM_NO_REFE) == cham_no_temp_r : return cham_no_temp_r
    if AsType(CHAM_NO_REFE) == cham_no_epsi_r : return cham_no_epsi_r
    if AsType(CHAM_NO_REFE) == cham_no_sief_r : return cham_no_sief_r
    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-C",reentrant='n',
                fr="Projection d un champ aux noeuds sur les noeuds d un autre maillage",
# 
         METHODE         =SIMP(statut='f',typ='TXM',defaut="NUAGE_DEG_1",    
                               into=("NUAGE_DEG_0","NUAGE_DEG_1","ELEM",) ),
         b_nuage         =BLOC(condition="(METHODE=='NUAGE_DEG_1') or (METHODE=='NUAGE_DEG_0')",
                               fr="Lissage d un nuage de points",
           CHAM_NO         =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,        
                                                 cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
           CHAM_NO_REFE    =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_depl_c,cham_no_pres_c,cham_no_temp_r,        
                                                 cham_no_epsi_r,cham_no_sief_r,cham_no_flux_r)),
         ),                    
         b_elem          =BLOC(condition="METHODE=='ELEM'",
                              fr="Utilisation des fonctions de forme",
           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','FREQ','LIST_INST','LIST_FREQ','LIST_ORDRE'), ),
           RESULTAT        =SIMP(statut='f',typ=(evol_ther,evol_elas,evol_noli) ),
           MODELE_1        =SIMP(statut='f',typ=modele),
           MODELE_2        =SIMP(statut='f',typ=modele),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**' ),  
           LIST_ORDRE      =SIMP(statut='f',typ=listis),
           INST            =SIMP(statut='f',typ='R',max='**' ),  
           LIST_INST       =SIMP(statut='f',typ=listr8),
           FREQ            =SIMP(statut='f',typ='R',max='**' ),  
           LIST_FREQ       =SIMP(statut='f',typ=listr8),
         ), 

         VIS_A_VIS       =FACT(statut='f',min=01,max='**',
           regles=(AU_MOINS_UN('TOUT_1','GROUP_MA_1','MAILLE_1','GROUP_NO_1','NOEUD_1'),
                   AU_MOINS_UN('TOUT_2','GROUP_MA_2','MAILLE_2','GROUP_NO_2','NOEUD_2'),),
           TOUT_1          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA_1      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_1        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_1      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_1         =SIMP(statut='f',typ=no,max='**'),
           TOUT_2          =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA_2      =SIMP(statut='f',typ=grma,max='**'),
           MAILLE_2        =SIMP(statut='f',typ=ma,max='**'),
           GROUP_NO_2      =SIMP(statut='f',typ=grno,max='**'),
           NOEUD_2         =SIMP(statut='f',typ=no,max='**'),
         ),

         TITRE           =SIMP(statut='f',typ='TXM',max='**' ), 
)  ;
#& MODIF COMMANDE  DATE 29/06/95   AUTEUR ACBHHJA G.JACQUART 
PROJ_MATR_BASE=OPER(nom="PROJ_MATR_BASE",op=  71,sd_prod=matr_asse_gene_r,
                    fr="Projection d une matrice assemblée sur une base (modale ou de RITZ)",
                    docu="U4.63.12-E",reentrant='n',
         regles=(UN_PARMI('MATR_ASSE','MATR_ASSE_GENE'),),            
         BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ),
         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
         NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999 ),
         MATR_ASSE       =SIMP(statut='f',typ=matr_asse_depl_r ),
         MATR_ASSE_GENE  =SIMP(statut='f',typ=matr_asse_gene_r ),
)  ;

#& MODIF COMMANDE  DATE 27/06/2000   AUTEUR CIBHHBC B.CIREE 
def proj_mesu_modal_prod(MESURE,**args):
     vale=MESURE['NOM_PARA']
     if  vale == 'INST'   : return tran_gene
     raise AsException("type de concept resultat non prevu")

PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,
                     sd_prod=proj_mesu_modal_prod,
                     docu="U4.73.01-A",reentrant='n',
                     fr="Extrapolation de resultats experimentaux sur un modele numerique en dynamique",

# commentaire C. Durand-13/10/2000 :
#le mot cle NOM_PARA, par construction, vaut tjs INST : donc on retourne TRAN_GENE a chaque fois
#def proj_mesu_modal_prod(**args):
#     vale=args['MESURE'].get_child('NOM_PARA').get_valeur()
#     if  vale == 'INST'   : return tran_gene
#     raise AsException("type de concept resultat non prevu")
#PROJ_MESU_MODAL=OPER(nom="PROJ_MESU_MODAL",op= 193,sd_prod=proj_mesu_modal_prod,)

         MODELE          =SIMP(statut='f',typ=(modele) ),
         MASS_GENE       =SIMP(statut='o',typ=(matr_asse_gene_r) ),
         RIGI_GENE       =SIMP(statut='o',typ=(matr_asse_gene_r) ),
         MESURE          =FACT(statut='o',min=01,max=01,
           MAILLAGE        =SIMP(statut='o',typ=(maillage) ),
           CARA_ELEM       =SIMP(statut='o',typ=(cara_elem) ),
           UNITE           =SIMP(statut='f',typ='I',defaut= 33 ),  
           NOM_PARA        =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST",) ),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
           NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","SIGM_NOEU_DEPL","EPSI_NOEU_DEPL",) ),
                         ),
         REGULARISATION  =FACT(statut='f',min=01,max=01,
      regles=(UN_PARMI('COEF_PONDER','COEF_PONDER_F', ),),
           METHODE         =SIMP(statut='f',typ='TXM',defaut="TIKHONOV",into=("TIKHONOV",) ),
           NORM_MIN        =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
           COEF_PONDER     =SIMP(statut='f',typ='R',max='**' ),  
           COEF_PONDER_F   =SIMP(statut='f',typ=(fonction),max='**' ),
                         ),
                       )  ;
#& MODIF COMMANDE  DATE 11/02/98   AUTEUR SABJLMA P.LATRUBESSE 
PROJ_SPEC_BASE=OPER(nom="PROJ_SPEC_BASE",op= 146,sd_prod=tabl_intsp,docu="U4.63.14-C",reentrant='n',
                    fr="Projection d un ou plusieurs spectres de turbulence, définis par DEFI_SPEC_TURB, sur un ensemble de bases modales ",
      regles=(UN_PARMI('BASE_ELAS_FLUI','MODE_MECA','CHAM_NO'),
              ENSEMBLE('FREQ_INIT','FREQ_FIN','NB_POIN'),),
         SPEC_TURB       =SIMP(statut='o',typ=spectre,max='**' ),
         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu ),
         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
         CHAM_NO         =SIMP(statut='f',typ=cham_no_depl_r ),
         FREQ_INIT       =SIMP(statut='f',typ='R' ),  
         FREQ_FIN        =SIMP(statut='f',typ='R' ),  
         NB_POIN         =SIMP(statut='f',typ='I' ),  
         OPTION          =SIMP(statut='f',typ='TXM',defaut="TOUT",into=("TOUT","DIAG")),
         GROUP_MA        =SIMP(statut='f',typ=grma),
#  Quel est le type attendu derriere  MODELE_INTERFACE         
         MODELE_INTERFACE=SIMP(statut='f',typ=modele),
         VECT_X          =SIMP(statut='f',typ='R',min=03,max=03 ),  
         VECT_Y          =SIMP(statut='f',typ='R',min=03,max=03 ),  
         ORIG_AXE        =SIMP(statut='f',typ='R',min=03,max=03 ),  
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 29/06/95   AUTEUR ACBHHJA G.JACQUART 
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-E",reentrant='n',
         regles=(UN_PARMI('VECT_ASSE','VECT_ASSE_GENE'),),              
         BASE            =SIMP(statut='o',typ=(mode_meca,base_modale,mode_gene ) ),
         NUME_DDL_GENE   =SIMP(statut='o',typ=nume_ddl_gene ),
         NB_VECT         =SIMP(statut='f',typ='I',defaut= 9999 ),
         TYPE_VECT       =SIMP(statut='f',typ='TXM',defaut="FORC"),
         VECT_ASSE       =SIMP(statut='f',typ=cham_no_depl_r ),
         VECT_ASSE_GENE  =SIMP(statut='f',typ=vect_asse_gene ),
)  ;
#& MODIF COMMANDE  DATE 25/09/2000   AUTEUR T2BAXJM R.MASSON 
RECA_WEIBULL=OPER(nom="RECA_WEIBULL",op= 197,sd_prod=tabl_reca_weib,
                     fr=" ",docu="U4.82.06-A",reentrant='n',
         LIST_PARA       =SIMP(statut='o',typ='TXM',max='**',into=("SIGM_REFE","M",) ),
         RESU            =FACT(statut='o',min=01,max='**',
           regles=(EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST',),            
                   AU_MOINS_UN('TOUT','GROUP_MA','MAILLE', ),),
           EVOL_NOLI       =SIMP(statut='o',typ=(evol_noli) ),
           MODELE          =SIMP(statut='o',typ=(modele) ),
           CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
           TEMPE           =SIMP(statut='f',typ='R' ),  
           LIST_INST_RUPT  =SIMP(statut='o',typ='R',max='**' ),  
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**' ),  
           INST            =SIMP(statut='f',typ='R',max='**' ),  
           LIST_INST       =SIMP(statut='f',typ=(listr8) ),
           TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400.E0 ),  
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.E0 ),  
                         ),
         OPTION          =SIMP(statut='f',typ='TXM',defaut="SIGM_ELGA",into=("SIGM_ELGA","SIGM_ELMOY",) ),
         CORR_PLAST      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
         METHODE         =SIMP(statut='f',typ='TXM',defaut="MAXI_VRAI",into=("MAXI_VRAI","REGR_LINE",) ),
         INCO_GLOB_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
         ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),  
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ,) ),
                       )  ;
#& MODIF COMMANDE  DATE 07/06/2000   AUTEUR VABHHTS J.PELLET 
def recu_champ_prod(NOM_CHAM,RESULTAT,**args ):
  if AsType(RESULTAT) == dyna_harmo : return cham_no_depl_c
  if NOM_CHAM == "GEOMETRIE"      : return cham_no_geom_r
  if NOM_CHAM == "DEPL"           : return cham_no_depl_r
  if NOM_CHAM == "DEPL_ABSOLU"    : return cham_no_depl_r
  if NOM_CHAM == "VITE"           : return cham_no_depl_r
  if NOM_CHAM == "VITE_ABSOLU"    : return cham_no_depl_r
  if NOM_CHAM == "ACCE"           : return cham_no_depl_r
  if NOM_CHAM == "ACCE_ABSOLU"    : return cham_no_depl_r
  if NOM_CHAM == "TEMP"           : return cham_no_temp_r
  if NOM_CHAM == "FORC_NODA"      : return cham_no_depl_r
  if NOM_CHAM == "REAC_NODA"      : return cham_no_depl_r
  if NOM_CHAM == "EPSI_NOEU_DEPL" : return cham_no_sief_r
  if NOM_CHAM == "SIGM_NOEU_CART" : return cham_no_sief_r
  if NOM_CHAM == "SIGM_NOEU_DEPL" : return cham_no_sief_r
  if NOM_CHAM == "SIGM_NOEU_VARI" : return cham_no_sief_r
  if NOM_CHAM == "SIGM_NOEU_SIEF" : return cham_no_sief_r
  if NOM_CHAM == "SIPO_NOEU_SIEF" : return cham_no_sief_r
  if NOM_CHAM == "EFGE_NOEU_CART" : return cham_no_sief_r
  if NOM_CHAM == "EFGE_NOEU_DEPL" : return cham_no_sief_r
  if NOM_CHAM == "EQUI_NOEU_SIGM" : return cham_no_sief_r
  if NOM_CHAM == "EQUI_NOEU_EPSI" : return cham_no_sief_r
  if NOM_CHAM == "FLUX_NOEU_TEMP" : return cham_no_flux_r
  if NOM_CHAM == "SIGM_NOZ1_ELGA" : return cham_no_sief_r
  if NOM_CHAM == "SIGM_NOZ2_ELGA" : return cham_no_sief_r
  if NOM_CHAM == "INTE_NOEU_ACTI" : return cham_no_inte_r
  if NOM_CHAM == "INTE_NOEU_REAC" : return cham_no_inte_r
  if NOM_CHAM == "PRES_NOEU_DBEL" : return cham_no_dbel_r
  if NOM_CHAM == "PRES_NOEU_IMAG" : return cham_no_pres_r
  if NOM_CHAM == "PRES_NOEU_REEL" : return cham_no_pres_r
  if NOM_CHAM == "VARI_NOEU_ELGA" : return cham_no_var2_r
  if NOM_CHAM == "META_NOEU_TEMP" : return cham_no_var2_r
  if NOM_CHAM == "GRAD_NOEU_THETA": return cham_no_var2_r
  if NOM_CHAM == "PHASMETA"       : return cham_elem_meta_r
  if NOM_CHAM == "DEGE_ELNO_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "ECIN_ELEM_DEPL" : return cham_elem_ener_r
  if NOM_CHAM == "EFGE_ELNO_CART" : return cham_elem_sief_r
  if NOM_CHAM == "EFGE_ELNO_DEPL" : return cham_elem_sief_r
  if NOM_CHAM == "EPOT_ELEM_DEPL" : return cham_elem_ener_r
  if NOM_CHAM == "EPSG_ELGA_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "EPSG_ELNO_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "EPSP_ELGA"      : return cham_elem_epsi_r
  if NOM_CHAM == "EPSP_ELNO"      : return cham_elem_epsi_r
  if NOM_CHAM == "EPSI_ELGA_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "EPSI_ELNO_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "EPSA_ELNO"      : return cham_elem_epsi_r
  if NOM_CHAM == "EQUI_ELGA_SIGM" : return cham_elem_sief_r
  if NOM_CHAM == "EQUI_ELGA_EPSI" : return cham_elem_sief_r
  if NOM_CHAM == "EQUI_ELNO_EPSI" : return cham_elem_sief_r
  if NOM_CHAM == "EQUI_ELNO_SIGM" : return cham_elem_sief_r
  if NOM_CHAM == "ERRE_ELEM_NOZ1" : return cham_elem_erreur
  if NOM_CHAM == "ERRE_ELEM_NOZ2" : return cham_elem_erreur
  if NOM_CHAM == "ERRE_ELGA_NORE" : return cham_elem_erreur
  if NOM_CHAM == "ERRE_ELNO_ELGA" : return cham_elem_erreur
  if NOM_CHAM == "FLUX_ELGA_TEMP" : return cham_elem_flux_r
  if NOM_CHAM == "FLUX_ELNO_TEMP" : return cham_elem_flux_r
  if NOM_CHAM == "INTE_ELNO_ACTI" : return cham_elem_inte_r
  if NOM_CHAM == "INTE_ELNO_REAC" : return cham_elem_inte_r
  if NOM_CHAM == "PRES_ELNO_DBEL" : return cham_elem_dbel_r
  if NOM_CHAM == "PRES_ELNO_IMAG" : return cham_elem_pres_r
  if NOM_CHAM == "PRES_ELNO_REEL" : return cham_elem_pres_r
  if NOM_CHAM == "SIEF_ELGA"      : return cham_elem_sief_r
  if NOM_CHAM == "SIEF_ELNO"      : return cham_elem_sief_r
  if NOM_CHAM == "SIEF_ELGA_DEPL" : return cham_elem_sief_r
  if NOM_CHAM == "SIGM_ELNO_CART" : return cham_elem_sief_r
  if NOM_CHAM == "SIGM_ELNO_DEPL" : return cham_elem_sief_r
  if NOM_CHAM == "SIGM_ELNO_VARI" : return cham_elem_sief_r
  if NOM_CHAM == "SIGM_ELNO_SIEF" : return cham_elem_sief_r
  if NOM_CHAM == "SIPO_ELNO_SIEF" : return cham_elem_sief_r
  if NOM_CHAM == "SIEF_ELNO_ELGA" : return cham_elem_sief_r
  if NOM_CHAM == "SIPO_ELNO_DEPL" : return cham_elem_sief_r
  if NOM_CHAM == "SIRE_ELNO_DEPL" : return cham_elem_sief_r
  if NOM_CHAM == "SOUR_ELGA_ELEC" : return cham_elem_sour_r
  if NOM_CHAM == "VARI_ELGA"      : return cham_elem_vari_r
  if NOM_CHAM == "VARI_ELNO"      : return cham_elem_vari_r
  if NOM_CHAM == "VARI_ELNO_ELGA" : return cham_elem_vari_r
  if NOM_CHAM == "VNOR_ELEM_DEPL" : return cham_elem_vnor_c
  if NOM_CHAM == "DCHA_ELGA_SIGM" : return cham_elem_vari_r
  if NOM_CHAM == "DCHA_ELNO_SIGM" : return cham_elem_vari_r
  if NOM_CHAM == "RADI_ELGA_SIGM" : return cham_elem_vari_r
  if NOM_CHAM == "RADI_ELNO_SIGM" : return cham_elem_vari_r
  if NOM_CHAM == "ENDO_ELNO_SIGM" : return cham_elem_sief_r
  if NOM_CHAM == "ENDO_ELNO_SIGA" : return cham_elem_sief_r
  if NOM_CHAM == "ENDO_ELNO_SINO" : return cham_elem_sief_r
  if NOM_CHAM == "EPME_ELNO_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "EPME_ELGA_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "EPME_ELNO_DPGE" : return cham_elem_epsi_r
  if NOM_CHAM == "EPMG_ELNO_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "EPMG_ELGA_DEPL" : return cham_elem_epsi_r
  if NOM_CHAM == "THETA"          : return cham_no_depl_r
  if NOM_CHAM == "GRAD_ELGA_THETA" : return cham_elem_g_depl
  if NOM_CHAM == "GRAD_ELNO_ELGA" : return cham_elem_g_depl
  if NOM_CHAM == "HYDR_ELGA"      : return cham_elem_hydr_r
  raise AsException("type de concept resultat non prevu")

RECU_CHAMP=OPER(nom="RECU_CHAMP",op=  59,sd_prod=recu_champ_prod,
                fr="Récupération dans un résultat composé d un seul champ aux noeuds ou par éléments",
                docu="U4.71.01-F",reentrant='n',
      regles=(UN_PARMI('TYPE_MAXI','NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL', ),
              UN_PARMI('RESULTAT','MAILLAGE'),),
#  creer une structure de donnees RESULTAT global              
         RESULTAT        =SIMP(statut='f',typ=resultat),
         MAILLAGE        =SIMP(statut='f',typ=maillage),
         NOM_CHAM        =SIMP(statut='o',typ='TXM',     
                               into=( "DEPL","VITE","ACCE","DEPL_ABSOLU",         
                                      "VITE_ABSOLU","TEMP","ACCE_ABSOLU","FORC_NODA",
                                      "REAC_NODA","EFGE_NOEU_DEPL","EFGE_NOEU_CART",
                                      "EPSI_NOEU_DEPL","SIGM_NOEU_DEPL",
                                      "SIGM_NOEU_CART","SIPO_NOEU_DEPL",
                                      "EQUI_NOEU_SIGM","EQUI_NOEU_EPSI",
                                      "FLUX_NOEU_TEMP","FLUX_ELGA_TEMP",
                                      "FLUX_ELNO_TEMP","META_ELGA_TEMP",
                                      "META_ELNO_TEMP","META_NOEU_TEMP",
                                      "DURT_ELGA_META","DURT_ELNO_META",
                                      "DURT_NOEU_META","SIEF_ELGA","SIEF_ELNO_ELGA",
                                      "SIEF_ELGA_DEPL","VARI_ELNO_ELGA","VARI_ELGA",
                                      "EPOT_ELEM_DEPL","ECIN_ELEM_DEPL",
                                      "SOUR_ELGA_ELEC","PRES_ELNO_REEL",
                                      "PRES_ELNO_IMAG","PRES_ELNO_DBEL",
                                      "INTE_ELNO_ACTI","INTE_ELNO_REAC",
                                      "EFGE_ELNO_DEPL","SIGM_ELNO_DEPL",
                                      "EFGE_ELNO_CART","SIGM_ELNO_CART",
                                      "SIPO_ELNO_DEPL","EPSI_ELNO_DEPL",
                                      "EPSI_ELGA_DEPL","EPSG_ELNO_DEPL",
                                      "EPSG_ELGA_DEPL","EPSP_ELNO","EPSP_ELGA",
                                      "EQUI_ELNO_SIGM","EQUI_ELGA_SIGM",
                                      "EQUI_ELNO_EPSI","EQUI_ELGA_EPSI",
                                      "ERRE_ELNO_ELGA","ERRE_ELGA_NORE",
                                      "ERRE_ELEM_NOZ1","ERRE_ELEM_NOZ2",
                                      "SIGM_NOZ1_ELGA","SIGM_NOZ2_ELGA",
                                      "DEGE_ELNO_DEPL","SIRE_ELNO_DEPL",
                                      "VNOR_ELEM_DEPL","SIEF_ELNO","VARI_ELNO",
                                      "SIEF_NOEU_ELGA","VARI_NOEU_ELGA",
                                      "PRES_NOEU_DBEL","PRES_NOEU_REEL",
                                      "PRES_NOEU_IMAG","INTE_NOEU_ACTI",
                                      "INTE_NOEU_REAC","DCHA_ELGA_SIGM",
                                      "DCHA_ELNO_SIGM","RADI_ELGA_SIGM",
                                      "RADI_ELNO_SIGM","ENDO_ELNO_SIGA",
                                      "ENDO_ELNO_SINO","ENDO_ELNO_SIGM",
                                      "SIGM_ELNO_VARI","SIGM_NOEU_VARI",
                                      "EPME_ELNO_DEPL","EPME_ELGA_DEPL",
                                      "EPME_ELNO_DPGE","EPMG_ELNO_DEPL",
                                      "EPMG_ELGA_DEPL","GRAD_ELGA_THETA",
                                      "GTHE_ELNO_ELGA","GRAD_NOEU_THETA","HYDR_ELGA",
                                      "THETA","SIGM_ELNO_SIEF","SIPO_ELNO_SIEF",) ),
         TYPE_MAXI       =SIMP(statut='f',typ='TXM',     
                               into=("MAXI","MINI","MAXI_ABS","MINI_ABS","NORM_TRAN") ),
         NUME_ORDRE      =SIMP(statut='f',typ='I' ),  
         INST            =SIMP(statut='f',typ='R' ),  
         FREQ            =SIMP(statut='f',typ='R' ),  
         NUME_MODE       =SIMP(statut='f',typ='I' ),  
         NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**' ),  
         NOM_CAS         =SIMP(statut='f',typ='TXM' ),  
         ANGL            =SIMP(statut='f',typ='R' ),  
         b_prec_crit     =BLOC(condition = "(INST != None) or (FREQ != None)",
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
         ), 
         b_type_maxi     =BLOC(condition = "TYPE_MAXI != None",
           regles=(EXCLUS('TOUT_ORDRE','LIST_INST' ),),
           TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="VALE",into=("VALE","INST") ),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           LIST_INST       =SIMP(statut='f',typ=listr8 ),
           b_prec_crit   =BLOC(condition = "(INST != None) or (FREQ != None)",
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 28/06/2000   AUTEUR CIBHHLV L.VIVAN 
def recu_fonction_prod(RESULTAT=None,OBSTACLE=None,TABLE=None,RESU_GENE=None,BASE_ELAS_FLUI=None,CHAM_GD=None,TYPE_RESU=None,**args):
  if AsType(RESULTAT) == dyna_harmo : return fonction_c
#  On ne sait pas interpreter les deux conditions suivantes
  if TABLE != None :
     if TYPE_RESU != None :
        if TYPE_RESU == "FONCTION_C" : return fonction_c
        if TYPE_RESU == "FONCTION"   : return fonction
     else:
        return fonction
  if RESU_GENE      != None         : return fonction
  if BASE_ELAS_FLUI != None         : return fonction
  if RESULTAT       != None         : return fonction
  if CHAM_GD        != None         : return fonction
  if OBSTACLE       != None         : return fonction
  raise AsException("type de concept resultat non prevu")

RECU_FONCTION=OPER(nom="RECU_FONCTION",op=  90,sd_prod=recu_fonction_prod,
                   fr="Extraire sous forme d une fonction, l évolution temporelle d une composante d un champ ou d une table",
                   docu="U4.32.03-E",reentrant='n',
         regles=(UN_PARMI('CHAM_GD','RESULTAT','RESU_GENE','TABLE','BASE_ELAS_FLUI','OBSTACLE'),),
             
         CHAM_GD         =SIMP(statut='f',typ=(cham_no_depl_r,cham_no_temp_r,cham_no_pres_r,cham_elem_sief_r,
                                               cham_elem_vari_r,cham_elem_epsi_r,cham_elem_flux_r,
                                               cham_elem_pres_r,cham_elem_meta_r ) ),
         RESULTAT        =SIMP(statut='f',typ=(evol_elas,dyna_trans,evol_noli,evol_ther,dyna_harmo ) ),
         RESU_GENE       =SIMP(statut='f',typ=tran_gene),
#  concept table à créer         
         TABLE           =SIMP(statut='f',typ=table),
         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu),
         REPERE          =SIMP(statut='f',typ='TXM',into=("POLAIRE","GLOBAL") ),
         OBSTACLE        =SIMP(statut='f',typ=obstacle),
         
         b_tran_gene = BLOC ( condition = "RESU_GENE != None",fr="Récupération de la fonction concernant les chocs à partir d un concept TRAN_GENE",
            regles=(PRESENT_PRESENT('SOUS_STRUC','INTITULE'),
                    PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),),
             MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","OUI") ),
             CORR_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
             ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction),
             PARA_X          =SIMP(statut='f',typ='TXM' ),
             PARA_Y          =SIMP(statut='f',typ='TXM' ),
             SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),
             LIST_PARA       =SIMP(statut='f',typ=listr8 ),
             INTITULE        =SIMP(statut='f',typ='TXM' ),                       
         ), 
         b_base_elas_flui = BLOC ( condition = "BASE_ELAS_FLUI != None",fr="Récupération de la fonction à partir d un concept melasflu",
           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE'),),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           NUME_MODE       =SIMP(statut='o',typ='I' ),
           PARA_X          =SIMP(statut='o',typ='TXM',into=("VITE_FLU",) ),
           PARA_Y          =SIMP(statut='o',typ='TXM',into=("FREQ","AMOR") ),                   
         ), 
         b_table = BLOC ( condition = "TABLE != None",fr="Récupération de la fonction à partir d un concept table",
           regles=(UN_PARMI('PARA_X','NOM_PARA_TABL'),
                   PRESENT_PRESENT('PARA_X','PARA_Y'),),
           PARA_X          =SIMP(statut='f',typ='TXM',
                                 fr="1ère colonne de la table qui définit la fonction à récupérer", ),
           PARA_Y          =SIMP(statut='f',typ='TXM',
                                 fr="2ème colonne de la table qui définit la fonction à récupérer", ),
           NOM_PARA_TABL   =SIMP(statut='f',typ='TXM',into=("FONCTION",),
                                 fr="Nom du paramètre de la table à qui est associé la fonction" ),  
           b_nom_para_tabl = BLOC (condition = "NOM_PARA_TABL != None",
             TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="FONCTION",into=("FONCTION","FONCTION_C") ),
           ),
           FILTRE          =FACT(statut='f',min=01,max='**',
             regles=(UN_PARMI('VALE','VALE_I','VALE_C','VALE_K','VALE_CO'),),
             NOM_PARA        =SIMP(statut='o',typ='TXM' ),
             CRIT_COMP       =SIMP(statut='f',typ='TXM',defaut="EQ",
                                   into=("EQ","LT","GT",
                                         "NE","LE","GE",
                                         "VIDE","NON_VIDE",) ),
             VALE            =SIMP(statut='f',typ='R' ),
             VALE_I          =SIMP(statut='f',typ='I' ),
             VALE_C          =SIMP(statut='f',typ='C' ),
             VALE_K          =SIMP(statut='f',typ='TXM' ),
             VALE_CO         =SIMP(statut='f',typ=geom),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           ),
         ),
# RESULTAT
         b_resu = BLOC ( condition = "RESULTAT != None", fr="Opérandes en cas de RESULTAT",
           regles=(
#    A voir par Matthieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
#           UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),
                   AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
                   PRESENT_PRESENT('MAILLE','NOM_CMP'),
                   PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
                   PRESENT_PRESENT('POINT','NOM_CMP'),
                   EXCLUS('POINT','NOEUD'),
                   EXCLUS('GROUP_MA','MAILLE'),
                   EXCLUS('GROUP_NO','NOEUD'),
                   EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
#    A voir par Matthieu Courtois : les champs INTO de NOM_CHAM
#           NOM_CHAM        =SIMP(statut='f',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
           NOM_CHAM        =SIMP(statut='f',typ='TXM' ),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           LIST_ORDRE      =SIMP(statut='f',typ=listis ),
           TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           INST            =SIMP(statut='f',typ='R',max='**'),
           LIST_INST       =SIMP(statut='f',typ=listr8 ),
           FREQ            =SIMP(statut='f',typ='R',max='**'),
           LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
           b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             INTERP_NUME     =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN") ),
           ),  
           NOM_CMP         =SIMP(statut='f',typ='TXM' ),

           MAILLE          =SIMP(statut='f',typ=ma),
           GROUP_MA        =SIMP(statut='f',typ=grma),
           NOEUD           =SIMP(statut='f',typ=no),
           GROUP_NO        =SIMP(statut='f',typ=grno),
           POINT           =SIMP(statut='f',typ='I' ),
           NOEUD_CHOC      =SIMP(statut='f',typ=no),
           GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
         ),
# RESU_GENE
         b_resu_gene = BLOC ( condition = "RESU_GENE != None", fr="Opérandes en cas de RESU_GENE",
#    A voir par Matthieu Courtois : il existe de tests (SDNX300B) qui ne satisfont pas ce UN_PARMI
#           regles=(UN_PARMI('TOUT_ORDRE','NUME_ORDRE','LIST_ORDRE','TOUT_INST','LIST_INST','FREQ','LIST_FREQ'),),
#    A voir par Matthieu Courtois : les champs INTO de NOM_CHAM
#    A voir par Matthieu Courtois : NOM_CHAM facultatif et non obligatoire
#           NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
           NOM_CHAM        =SIMP(statut='f',typ='TXM' ),
           TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           NUME_ORDRE      =SIMP(statut='f',typ='I',max='**'),
           LIST_ORDRE      =SIMP(statut='f',typ=listis ),
           TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           INST            =SIMP(statut='f',typ='R',max='**'),
           LIST_INST       =SIMP(statut='f',typ=listr8 ),
           FREQ            =SIMP(statut='f',typ='R',max='**'),
           LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
           b_prec = BLOC ( condition = "(INST != None) or (LIST_INST != None) or (FREQ != None) or (LIST_FREQ != None)",
             PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
             CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
             INTERP_NUME     =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN") ),
           ),  
           b_local_cham = BLOC ( condition = "NOM_CHAM!='PTEM'", fr="Opérandes de localisation du champ",
             regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
                     PRESENT_PRESENT('MAILLE','NOM_CMP'),
                     PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
                     PRESENT_PRESENT('NOEUD','NOM_CMP'),
                     PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
                     PRESENT_PRESENT('POINT','NOM_CMP'),
                     EXCLUS('POINT','NOEUD'),
                     EXCLUS('GROUP_MA','MAILLE'),
                     EXCLUS('GROUP_NO','NOEUD'),
                     EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
             NOM_CMP         =SIMP(statut='f',typ='TXM' ),

             MAILLE          =SIMP(statut='f',typ=ma),
             GROUP_MA        =SIMP(statut='f',typ=grma),
             NOEUD           =SIMP(statut='f',typ=no),
             GROUP_NO        =SIMP(statut='f',typ=grno),
             POINT           =SIMP(statut='f',typ='I' ),
             NOEUD_CHOC      =SIMP(statut='f',typ=no),
             GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
           ),  
         ),
# CHAM_GD
         b_cham_gd = BLOC ( condition = "(CHAM_GD != None)", fr="Opérandes en cas de CHAM_GD",
#    A voir par Matthieu Courtois : les champs INTO de NOM_CHAM
#    A voir par Matthieu Courtois : NOM_CHAM facultatif et non obligatoire
#           NOM_CHAM        =SIMP(statut='o',typ='TXM',into=("DEPL","VITE","ACCE","PTEM") ),
           NOM_CHAM        =SIMP(statut='f',typ='TXM' ),
           regles=(AU_MOINS_UN('MAILLE','GROUP_MA','GROUP_NO','NOEUD','NOEUD_CHOC','GROUP_NO_CHOC'),
                   PRESENT_PRESENT('MAILLE','NOM_CMP'),
                   PRESENT_PRESENT('GROUP_MA','NOM_CMP'),
                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
                   PRESENT_PRESENT('POINT','NOM_CMP'),
                   EXCLUS('POINT','NOEUD'),
                   EXCLUS('GROUP_MA','MAILLE'),
                   EXCLUS('GROUP_NO','NOEUD'),
                   EXCLUS('NOEUD_CHOC','GROUP_NO_CHOC'),),
           NOM_CMP         =SIMP(statut='f',typ='TXM' ),

           MAILLE          =SIMP(statut='f',typ=ma),
           GROUP_MA        =SIMP(statut='f',typ=grma),
           NOEUD           =SIMP(statut='f',typ=no),
           GROUP_NO        =SIMP(statut='f',typ=grno),
           POINT           =SIMP(statut='f',typ='I' ),
           NOEUD_CHOC      =SIMP(statut='f',typ=no),
           GROUP_NO_CHOC   =SIMP(statut='f',typ=grno),
         ),
###
         NOM_PARA        =SIMP(statut='f',typ='TXM',
                               into=("DX","DY","DZ","DRX","DRY","DRZ","TEMP",
                                     "INST","X","Y","Z","EPSI","FREQ","PULS","AMOR","ABSC") ),
         NOM_RESU        =SIMP(statut='f',typ='TXM' ),
         INTERPOL        =SIMP(statut='f',typ='TXM',max=02,into=("NON","LIN","LOG") ),
         PROL_DROIT      =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
         PROL_GAUCHE     =SIMP(statut='f',typ='TXM',into=("CONSTANT","LINEAIRE","EXCLU") ),
                  
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',defaut= 1,into=( 1 , 2 ) ),
)  ;
#& MODIF COMMANDE  DATE 03/03/97   AUTEUR A2BHHWS A.C.LEGER 
RECU_GENE=OPER(nom="RECU_GENE",op=  76,sd_prod=vect_asse_gene,docu="U4.71.03-E",reentrant='n',
               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 ),
         INST            =SIMP(statut='o',typ='R' ),
         NOM_CHAM        =SIMP(statut='f',typ='TXM',defaut="DEPL",into=("DEPL","VITE","ACCE") ),
         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF" ,into=("ABSOLU","RELATIF") ),
         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
)  ;
#& MODIF COMMANDE  DATE 22/07/99   AUTEUR CIBHHLV L.VIVAN 
RECU_TABLE=OPER(nom="RECU_TABLE",op= 174,sd_prod=table,
                fr=" ",docu="U4.71.02-A",reentrant='n',
         CO              =SIMP(statut='o',typ=assd),
         NOM_TABLE       =SIMP(statut='o',typ='TXM' ),  
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),  
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR VABHHTS J.PELLET 
def reso_grad_prod(MATR_ASSE,**args ):
  if AsType(MATR_ASSE) == matr_asse_depl_r : return cham_no_depl_r
  if AsType(MATR_ASSE) == matr_asse_temp_r : return cham_no_temp_r
  if AsType(MATR_ASSE) == matr_asse_pres_r : return cham_no_pres_r
  raise AsException("type de concept resultat non prevu")

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',
         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 ) ),
         CHAM_CINE       =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r ) ),
         MATR_FACT       =SIMP(statut='f',typ=(matr_asse_depl_r,matr_asse_temp_r,matr_asse_pres_r ) ),
         NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),  
         REPRISE         =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1E-6 ),  
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 02/10/96   AUTEUR CIBHHLV L.VIVAN 
def reso_ldlt_prod(CHAM_NO,**args ):
  if AsType(CHAM_NO) == cham_no_temp_r : return cham_no_temp_r
  if AsType(CHAM_NO) == cham_no_depl_r : return cham_no_depl_r
  if AsType(CHAM_NO) == cham_no_pres_r : return cham_no_pres_r
  if AsType(CHAM_NO) == cham_no_temp_c : return cham_no_temp_c
  if AsType(CHAM_NO) == cham_no_depl_c : return cham_no_depl_c
  if AsType(CHAM_NO) == cham_no_pres_c : return cham_no_pres_c
  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",
         MATR_FACT       =SIMP(statut='o',typ=(matr_asse_depl_r,matr_asse_depl_c,matr_asse_temp_r,
                                               matr_asse_temp_c,matr_asse_pres_r,matr_asse_pres_c) ),
         CHAM_NO         =SIMP(statut='o',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_r,
                                               cham_no_temp_c,cham_no_depl_c,cham_no_pres_c) ),
         CHAM_CINE       =SIMP(statut='f',typ=(cham_no_temp_r,cham_no_depl_r,cham_no_pres_c) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 31/05/2000   AUTEUR CIBHHLV L.VIVAN 
def rest_base_phys_prod(RESU_GENE,RESULTAT,**args ):
  if AsType(RESU_GENE) == tran_gene : return dyna_trans
  if AsType(RESU_GENE) == mode_gene : return mode_meca
  if AsType(RESU_GENE) == mode_cycl : return mode_meca
  if AsType(RESU_GENE) == harm_gene : return dyna_harmo
  if AsType(RESULTAT)  == mode_meca : return mode_meca
  raise AsException("type de concept resultat non prevu")

REST_BASE_PHYS=OPER(nom="REST_BASE_PHYS",op=  75,sd_prod=rest_base_phys_prod,
                    fr="Restituer dans la base physique des résultats en coordonnées généralisées",
                    docu="U4.63.21-E",reentrant='n',
        regles=(UN_PARMI('RESU_GENE','RESULTAT'),
                EXCLUS('TOUT_ORDRE','NUME_ORDRE','INST','LIST_INST','TOUT_INST'),
                EXCLUS('TOUT_INST','NUME_ORDRE','INST','LIST_INST','TOUT_ORDRE'),
#  Doc U à revoir
                PRESENT_ABSENT('MULT_APPUI','CORR_STAT'),
                EXCLUS('MULT_APPUI','NOEUD','GROUP_NO'),
                EXCLUS('CORR_STAT','NOEUD','GROUP_NO'),             
                EXCLUS('NOEUD','GROUP_NO'), 
                PRESENT_PRESENT('RESULTAT','SQUELETTE'),
                PRESENT_PRESENT('ACCE_MONO_APPUI','DIRECTION'),),
         RESU_GENE       =SIMP(statut='f',typ=(tran_gene,mode_gene,mode_cycl,harm_gene ) ),
         RESULTAT        =SIMP(statut='f',typ=mode_meca ),
         
         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
         TOUT_ORDRE      =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**' ),  
         TOUT_INST       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         INST            =SIMP(statut='f',typ='R',max='**' ),  
         LIST_INST       =SIMP(statut='f',typ=listr8 ),
         FREQ            =SIMP(statut='f',typ='R',max='**' ),  
         LIST_FREQ       =SIMP(statut='f',typ=listr8 ),
         b_prec_crit     =BLOC(condition = "INST != None or LIST_INST != None or FREQ != None or LIST_FREQ != None",
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("ABSOLU","RELATIF") ),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
         ),
         INTERPOL        =SIMP(statut='f',typ='TXM',defaut="NON",into=("NON","LIN") ),
         
         MULT_APPUI      =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         CORR_STAT       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         NOM_CHAM        =SIMP(statut='f',typ='TXM',max=8,defaut="ACCE",   
                               into=("DEPL","VITE","ACCE","ACCE_ABSOLU","EFGE_ELNO_DEPL","SIPO_ELNO_DEPL",                 
                                     "SIGM_ELNO_DEPL","FORC_NODA",) ),
         TOUT_CHAM       =SIMP(statut='f',typ='TXM',into=("OUI",) ),
         GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
         NOEUD           =SIMP(statut='f',typ=no,max='**'),
 
         ACCE_MONO_APPUI =SIMP(statut='f',typ=fonction),
         DIRECTION       =SIMP(statut='f',typ='R',max='**' ),

         SQUELETTE       =SIMP(statut='f',typ=squelette ),
         SOUS_STRUC      =SIMP(statut='f',typ='TXM' ),  
         SECTEUR         =SIMP(statut='f',typ='I',defaut= 1 ),  
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 16/12/97   AUTEUR CIBHHLV L.VIVAN 
REST_SPEC_PHYS=OPER(nom="REST_SPEC_PHYS",op= 148,sd_prod=tabl_intsp,
                    fr="Calcul, à partir d un interspectre de réponse modale, de la réponse d une structure dans la base physique, à certains noeuds sélectionnés du maillage",
                    docu="U4.63.22-C",reentrant='n',
         regles=(AU_MOINS_UN('BASE_ELAS_FLUI','MODE_MECA'),),
         BASE_ELAS_FLUI  =SIMP(statut='f',typ=melasflu ),
         MODE_MECA       =SIMP(statut='f',typ=mode_meca ),
         BANDE           =SIMP(statut='f',typ='R',min=02,max=02 ),  
         NUME_ORDRE      =SIMP(statut='f',typ='I',max='**' ),  
         INTE_SPEC_GENE  =SIMP(statut='o',typ=tabl_intsp ),
         NOEUD           =SIMP(statut='o',typ=no,max='**'),
         NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),  
         MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         NOM_CHAM        =SIMP(statut='o',typ='TXM',max=07,    
                               into=("DEPL","VITE","ACCE","EFGE_ELNO_DEPL",      
                                     "SIPO_ELNO_DEPL","SIGM_ELNO_DEPL","FORC_NODA") ),
         MODE_STAT       =SIMP(statut='f',typ=mode_stat ),
         EXCIT           =FACT(statut='f',max=01,
           NOEUD           =SIMP(statut='o',typ=no,max='**'),
           NOM_CMP         =SIMP(statut='o',typ='TXM',max='**' ),  
         ),
         MOUVEMENT       =SIMP(statut='f',typ='TXM',defaut="ABSOLU",into=("RELATIF","ABSOLU","DIFFERENTIEL") ),
         OPTION          =SIMP(statut='f',typ='TXM',defaut="DIAG_DIAG",    
                               into=("DIAG_TOUT","DIAG_DIAG","TOUT_TOUT","TOUT_DIAG") ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
)  ;
#& MODIF COMMANDE  DATE 16/06/2000   AUTEUR D6BHHJP J.P.LEFEBVRE 
RETOUR=PROC(nom="RETOUR",op= -2,docu="U4.13.02-E",
            fr="Retour au fichier de commandes appelant", 
) ;
#& MODIF COMMANDE  DATE 03/10/2000   AUTEUR VABHHTS J.PELLET 
#  RESPONSABLE                            GJBHHEL E.LORENTZ
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-E",reentrant='f',
         regles=(AU_MOINS_UN('COMP_INCR','COMP_ELAS'),
                 EXCLUS('RECH_LINEAIRE','PILOTAGE'), ),
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         EXCIT           =FACT(statut='o',min=01,max='**',
           CHARGE          =SIMP(statut='o',typ=char_meca),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
           TYPE_CHARGE     =SIMP(statut='f',typ='TXM',defaut="FIXE_CSTE",    
                                 into=("FIXE_CSTE","FIXE_PILO","SUIV","DIDI")),
         ),
         COMP_INCR       =FACT(statut='f',min=01,max='**',
           RELATION        =SIMP(statut='o',typ='TXM',defaut="VMIS_ISOT_TRAC",    
                                 into=( "ELAS",
                                        "VMIS_ISOT_TRAC",
                                        "VMIS_ISOT_LINE",
                                        "VMIS_ECMI_TRAC",
                                        "VMIS_ECMI_LINE",
                                        "ENDO_LOCAL",
                                        "ENDO_FRAGILE",
                                        "BETON_ENDO_LOCAL",
                                        "RUPT_FRAG",
                                        "PLAS_GRAD",
                                        "DURC_GRAD",
                                        "META_PL",
                                        "META_PL_PT",
                                        "META_PL_RE",
                                        "META_PL_PT_RE",
                                        "META_VL",
                                        "META_VL_PT",
                                        "META_VL_RE",
                                        "META_VL_PT_RE",
                                        "META_PNL",
                                        "META_PNL_PT",
                                        "META_PNL_RE",
                                        "META_PNL_PT_RE",
                                        "META_VNL",
                                        "META_VNL_PT",
                                        "META_VNL_RE",
                                        "META_VNL_PT_RE",
                                        "VMIS_CINE_LINE",
                                        "TAHERI",
                                        "VISC_TAHERI",
                                        "CHABOCHE",
                                        "VISCOCHAB",
                                        "VMIS_CIN1_CHAB",
                                        "VMIS_CIN2_CHAB",
                                        "POLY_CFC",
                                        "LMARC",
                                        "ROUSSELIER",
                                        "VMIS_POU_LINE",
                                        "VMIS_POU_FLEJOU",
                                        "COULOMB",
                                        "ARME",
                                        "ASSE_CORN",
                                        "NORTON_HOFF",
                                        "LEMAITRE",
                                        "ZIRC_CYRA2",
                                        "ZIRC_EPRI",
                                        "ASSE_COMBU",
                                        "VENDOCHAB",
                                        "NADAI_B",
                                        "DIS_CONTACT",
                                        "DIS_CHOC",
                                        "DIS_GOUJ2E_PLAS",
                                        "DIS_GOUJ2E_ELAS",
                                        "GRILLE_ISOT_LINE",
                                        "GRILLE_CINE_LINE",
                                        "GRILLE_PINTO_MEN",
                                        "PINTO_MENEGOTTO",
                                        "CJS",
                                        "OHNO",
                                        "GRANGER_FP",
                                        "GRANGER_FP_V",
                                        "BETON_DOUBLE_DP",
                                        "KIT_HM",
                                        "KIT_HHM",
                                        "KIT_THH",
                                        "KIT_THM",
                                        "KIT_THHM",
                                        "VMIS_ASYM_LINE",
                                        "ELAS_THM",
                                        "SURF_ETAT_NSAT",
                                        "SURF_ETAT_SATU",
                                        "CAM_CLAY_THM",
                                        "KIT_DDI",
					) ),
           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           VMIS_ISOT_TRAC  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           VMIS_ISOT_LINE  =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           VMIS_ECMI_TRAC  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
           VMIS_ECMI_LINE  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
           ENDO_LOCAL      =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           ENDO_FRAGILE    =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
           BETON_ENDO_LOCAL=SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           RUPT_FRAG       =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           PLAS_GRAD       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
           DURC_GRAD       =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
           META_PL         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_PL_PT      =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_PL_RE      =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_PL_PT_RE   =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VL         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VL_PT      =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VL_RE      =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VL_PT_RE   =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_PNL        =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_PNL_PT     =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_PNL_RE     =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_PNL_PT_RE  =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VNL        =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VNL_PT     =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VNL_RE     =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           META_VNL_PT_RE  =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           VMIS_CINE_LINE  =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
           CHABOCHE        =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
           VISCOCHAB       =SIMP(statut='c',typ='I',defaut=28,into=(28,)),
           VMIS_CIN1_CHAB  =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
           VMIS_CIN2_CHAB  =SIMP(statut='c',typ='I',defaut=14,into=(14,)),
           POLY_CFC        =SIMP(statut='c',typ='I',defaut=1688,into=(1688,)),
           LMARC           =SIMP(statut='c',typ='I',defaut=20,into=(20,)),
           TAHERI          =SIMP(statut='c',typ='I',defaut=15,into=(15,)),
           VISC_TAHERI     =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
           ROUSSELIER      =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
           VMIS_POU_LINE   =SIMP(statut='c',typ='I',defaut=9,into=(9,)),
           VMIS_POU_FLEJOU =SIMP(statut='c',typ='I',defaut=9 ,into=(9,)),
           COULOMB         =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           ASSE_CORN       =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           ARME            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           NORTON_HOFF     =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           LEMAITRE        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           ZIRC_CYRA2      =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           ZIRC_EPRI       =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           ASSE_COMBU      =SIMP(statut='c',typ='I',defaut=5,into=(5,)),
           NADAI_B         =SIMP(statut='c',typ='I',defaut=34,into=(34,)),
           VENDOCHAB       =SIMP(statut='c',typ='I',defaut=10,into=(10,)),
           GRILLE_ISOT_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           GRILLE_CINE_LINE=SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           GRILLE_PINTO_MEN=SIMP(statut='c',typ='I',defaut=16,into=(16,)),
           DIS_CONTACT     =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
           DIS_CHOC        =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
           DIS_GOUJ2E_PLAS =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           DIS_GOUJ2E_ELAS =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           PINTO_MENEGOTTO =SIMP(statut='c',typ='I',defaut=8,into=(8,)),
           CJS             =SIMP(statut='c',typ='I',defaut=16,into=(16,)),
           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,)),
           BETON_DOUBLE_DP =SIMP(statut='c',typ='I',defaut=4,into=(4,)),
           KIT_HM          =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           KIT_HHM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           KIT_THH         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           KIT_THM         =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           KIT_THHM        =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           VMIS_ASYM_LINE  =SIMP(statut='c',typ='I',defaut=4,into=(4,)),

           RELATION_KIT    =SIMP(statut='f',typ='TXM',max='**',     
                                 into=(
# MECA
                                       "ELAS",
                                       "CJS",
                                       "ELAS_THM",
                                       "SURF_ETAT_NSAT",
                                       "SURF_ETAT_SATU",
                                       "CAM_CLAY_THM",
# THMC
                                       "GAZ",
                                       "LIQU_SATU",
                                       "LIQU_SATU_GAT",
                                       "LIQU_GAZ_ATM",
                                       "LIQU_VAPE_GAZ",           
                                       "LIQU_NSAT_GAT",           
                                       "LIQU_GAZ",
# THER
                                       "THER_HOMO",
                                       "THER_POLY",
# HYDR
                                       "HYDR_UTIL",
                                       "HYDR",
# MECA_META
                                       "ACIER",
                                       "ZIRC",
# MECA KIT_DDI
                                       "VMIS_ISOT_TRAC",
                                       "VMIS_ISOT_LINE",
                                       "VMIS_ISOT_CINE",
                                       "GRANGER_FP",
                                       "GRANGER_FP_V",
                                       "ROUSSELIER",
                                       "CHABOCHE",
                                       "OHNO",
                                       "NADAI_B",
                                       "BETON_DOUBLE_DP",
                                       ) ),
           ELAS_THM        =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           SURF_ETAT_NSAT  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           SURF_ETAT_SATU  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           CAM_CLAY_THM    =SIMP(statut='c',typ='I',defaut=6,into=(6,)),
           GAZ             =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           LIQU_SATU       =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           LIQU_SATU_GAT   =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           LIQU_GAZ_ATM    =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           LIQU_VAPE_GAZ   =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
           LIQU_NSAT_GAT   =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
           LIQU_GAZ        =SIMP(statut='c',typ='I',defaut=2,into=(2,)),
           THER_HOMO       =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           THER_POLY       =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           HYDR_UTIL       =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           HYDR            =SIMP(statut='c',typ='I',defaut=0,into=(0,)),
           ACIER           =SIMP(statut='c',typ='I',defaut=7,into=(7,)),
           ZIRC            =SIMP(statut='c',typ='I',defaut=5,into=(5,)),

           COQUE_NCOU      =SIMP(statut='f',typ='I'),  
           TUYAU_NCOU      =SIMP(statut='f',typ='I' ),  
           TUYAU_NSEC      =SIMP(statut='f',typ='I' ),  
           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT",into=("PETIT","PETIT_REAC","SIMO_MIEHE")),
           ALGO_C_PLAN     =SIMP(statut='f',typ='TXM',into=("DEBORST",)),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
         COMP_ELAS       =FACT(statut='f',min=01,max='**',
           RELATION        =SIMP(statut='o',typ='TXM',defaut="ELAS",    
                                 into=("ELAS","ELAS_VMIS_LINE","ELAS_VMIS_TRAC", 
                                       "ELAS_POUTRE_GR","CABLE")),
           ELAS            =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           ELAS_VMIS_TRAC  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           ELAS_VMIS_LINE  =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           ELAS_POUTRE_GR  =SIMP(statut='c',typ='I',defaut=3,into=(3,)),
           CABLE           =SIMP(statut='c',typ='I',defaut=1,into=(1,)),
           COQUE_NCOU      =SIMP(statut='f',typ='I'),  
           TUYAU_NCOU      =SIMP(statut='f',typ='I'),  
           TUYAU_NSEC      =SIMP(statut='f',typ='I'),  
           DEFORMATION     =SIMP(statut='f',typ='TXM',defaut="PETIT" ,into=("PETIT","GREEN","GREEN_GR",) ),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
         ETAT_INIT       =FACT(statut='f',min=01,max=01,
           regles=(AU_MOINS_UN('EVOL_NOLI','DEPL','SIGM','VARI','VARI_NON_LOCAL',),  
                   EXCLUS('EVOL_NOLI','DEPL',),
                   EXCLUS('EVOL_NOLI','SIGM',),
                   EXCLUS('EVOL_NOLI','VARI',),
                   EXCLUS('EVOL_NOLI','VARI_NON_LOCAL',),       
                   EXCLUS('NUME_ORDRE','INST'), ),
           DEPL            =SIMP(statut='f',typ=cham_no_depl_r),
           SIGM            =SIMP(statut='f',typ=(cham_elem_sief_r,carte_sief_r)),
           VARI            =SIMP(statut='f',typ=cham_elem_vari_r),
           VARI_NON_LOCAL  =SIMP(statut='f',typ=cham_no_vanl_r),
           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
           NUME_ORDRE      =SIMP(statut='f',typ='I'),  
           INST            =SIMP(statut='f',typ='R'),  
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           NUME_DIDI       =SIMP(statut='f',typ='I'),  
           INST_ETAT_INIT  =SIMP(statut='f',typ='R'),  
         ),
         INCREMENT       =FACT(statut='o',min=01,max=01,
           regles=(EXCLUS('NUME_INST_INIT','INST_INIT'),
                   EXCLUS('NUME_INST_FIN','INST_FIN'),),
           LIST_INST       =SIMP(statut='o',typ=listr8),
           EVOLUTION       =SIMP(statut='f',typ='TXM',defaut="CHRONOLOGIQUE",    
                                 into=("CHRONOLOGIQUE","RETROGRADE","SANS",) ),
           NUME_INST_INIT  =SIMP(statut='f',typ='I'),  
           INST_INIT       =SIMP(statut='f',typ='R'),  
           NUME_INST_FIN   =SIMP(statut='f',typ='I'),  
           INST_FIN        =SIMP(statut='f',typ='R'),  
           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),  
           SUBD_PAS        =SIMP(statut='f',typ='I',defaut=1),  
           SUBD_PAS_MINI   =SIMP(statut='f',typ='R'),  
           COEF_SUBD_PAS_1 =SIMP(statut='f',typ='R',defaut= 1.0E+0),  
         ),
         NEWTON          =FACT(statut='d',min=01,max=01,
           REAC_INCR       =SIMP(statut='f',typ='I',defaut= 1 ),  
           PREDICTION      =SIMP(statut='f',typ='TXM',into=("DEPL_CALCULE","TANGENTE","ELASTIQUE","EXTRAPOL") ),
           MATRICE         =SIMP(statut='f',typ='TXM',defaut="TANGENTE",into=("TANGENTE","ELASTIQUE") ),
           REAC_ITER       =SIMP(statut='f',typ='I',defaut=0),  
           EVOL_NOLI       =SIMP(statut='f',typ=evol_noli),
         ),
         RECH_LINEAIRE   =FACT(statut='f',min=01,max=01,
           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 3),  
         ),
         PILOTAGE        =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('NOEUD','GROUP_NO'),),
           TYPE            =SIMP(statut='o',typ='TXM',into=("DDL_IMPO","LONG_ARC","PRED_ELAS") ),
           COEF_MULT       =SIMP(statut='f',typ='R',defaut= 1.0E+0),  
           ETA_PILO_MAX    =SIMP(statut='f',typ='R'),  
           ETA_PILO_MIN    =SIMP(statut='f',typ='R'),  
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOM_CMP         =SIMP(statut='f',typ='TXM',max='**' ),  
                         ),
         CONVERGENCE     =FACT(statut='d',min=01,max=01,
           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),  
           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),  
           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut=10),  
           ARRET           =SIMP(statut='f',typ='TXM',defaut="OUI"),  
           RESI_INTE_RELA  =SIMP(statut='f',typ='R'     
                                ,defaut= 1.0E-6),  
           ITER_INTE_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),  
           ITER_INTE_PAS   =SIMP(statut='f',typ='I',defaut= 0 ),  
           TYPE_MATR_COMP  =SIMP(statut='f',typ='TXM',defaut="TANG_VIT",into=("TANG_VIT",)),
           RESO_INTE       =SIMP(statut='f',typ='TXM',defaut="IMPLICITE",into=("RUNGE_KUTTA_2","RUNGE_KUTTA_4","IMPLICITE")),
         ),
         PARM_THETA      =SIMP(statut='f',typ='R'     
                              ,defaut= 1. ),  
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
         ARCHIVAGE       =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('PAS_ARCH','LIST_INST','INST'),
                   EXCLUS('ARCH_ETAT_INIT','NUME_INIT'), ),
           LIST_INST       =SIMP(statut='f',typ=(listr8) ),
           INST            =SIMP(statut='f',typ='R',max='**' ),  
           PAS_ARCH        =SIMP(statut='f',typ='I' ),  
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
           ARCH_ETAT_INIT  =SIMP(statut='f',typ='TXM',into=("OUI",)),
           NUME_INIT       =SIMP(statut='f',typ='I'),  
           DETR_NUME_SUIV  =SIMP(statut='f',typ='TXM',into=("OUI",)),
           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',max='**',into=("DEPL","SIEF_ELGA","VARI_ELGA",           
                                                                     "VARI_NON_LOCAL","LANL_ELGA")),
         ),
         MODELE_NON_LOCAL=SIMP(statut='f',typ=(modele) ),
         SOLV_NON_LOCAL  =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt         =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult    =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc         =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
         LAGR_NON_LOCAL  =FACT(statut='d',max=01,
           ITER_DUAL_MAXI  =SIMP(statut='f',typ='I',defaut= 50),  
           RESI_DUAL_ABSO  =SIMP(statut='o',typ='R'),  
           RESI_PRIM_ABSO  =SIMP(statut='o',typ='R'),  
           RHO             =SIMP(statut='f',typ='R',defaut= 1000.),  
           ITER_PRIM_MAXI  =SIMP(statut='f',typ='I',defaut= 10),  
         ),
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
 )  ;
#& MODIF COMMANDE  DATE 20/09/1999   AUTEUR DURAND C.DURAND 
TEST_FONCTION=PROC(nom="TEST_FONCTION",op= 135,fr="Extraction d une valeur numérique ou d un attribut de fonction pour la comparer à une valeur de référence",
                   docu="U4.92.02-E",
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
         TEST_NOOK       =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         VALEUR          =FACT(statut='f',min=01,max='**',
                               fr="Tester la valeur d une fonction ou d une nappe",
           regles=(UN_PARMI('VALE_REFE','VALE_REFE_C', ),),
           FONCTION        =SIMP(statut='o',typ=fonction ),
           NOM_PARA        =SIMP(statut='f',typ='TXM',max=02),
           VALE_PARA       =SIMP(statut='o',typ='R',max=02),
           VALE_REFE       =SIMP(statut='f',typ='R' ),
           VALE_REFE_C     =SIMP(statut='f',typ='C' ),
           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
                                 defaut= 1.E-3 ),
           REFERENCE       =SIMP(statut='f',typ='TXM',
                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
           b_version = BLOC (condition = "REFERENCE == 'NON_REGRESSION'", 
             VERSION         =SIMP(statut='f',typ='TXM' ),
           ),
         ),
         ATTRIBUT        =FACT(statut='f',min=01,max='**',
                               fr="Tester la valeur d un attribut d une fonction ou d''une nappe",
           FONCTION        =SIMP(statut='o',typ=fonction ),
           PARA            =SIMP(statut='f',typ='R' ),
           CRIT_PARA       =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PREC_PARA       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),
           ATTR            =SIMP(statut='o',typ='TXM',
                                 into=("NOM_PARA","NOM_RESU","PROL_DROIT","PROL_GAUCHE","INTERPOL",
                                       "PROL_GAUCHE_FONC","PROL_DROIT_FONC","INTERPOL_FONC","NOM_PARA_FONC") ),
           ATTR_REFE       =SIMP(statut='o',typ='TXM' ),
           REFERENCE       =SIMP(statut='f',typ='TXM',
                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
             VERSION         =SIMP(statut='f',typ='TXM' ),
           ),
         ),
         TABL_INTSP      =FACT(statut='f',min=01,max='**',
                               fr="Tester la valeur d une fonction contenue dans une table interspectrale",
           regles=(UN_PARMI('NUME_ORDRE_I','NOEUD_I'),),
           INTE_SPEC       =SIMP(statut='o',typ=tabl_intsp ),
           NOEUD_I         =SIMP(statut='f',typ=no),
           NUME_ORDRE_I    =SIMP(statut='f',typ='I' ),
           b_nume_ordre_i = BLOC (condition = "NUME_ORDRE_I != None", 
             NUME_ORDRE_J    =SIMP(statut='o',typ='I' ),
           ),
           b_noeud_i = BLOC (condition = "NOEUD_I != None",             
             NOEUD_J         =SIMP(statut='o',typ=no),
             NOM_CMP_I       =SIMP(statut='o',typ='TXM' ),
             NOM_CMP_J       =SIMP(statut='o',typ='TXM' ),
           ),
           NUME_VITE_FLUI  =SIMP(statut='f',typ='I' ),
           VALE_PARA       =SIMP(statut='o',typ='R' ),
           VALE_REFE_C     =SIMP(statut='o',typ='C' ),
           CRITERE         =SIMP(statut='f',typ='TXM',fr="Critère de comparaison avec la solution de référence",
                                 defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PRECISION       =SIMP(statut='f',typ='R',fr="Ecart maximal autorisé avec la solution de référence",
                                 defaut= 1.E-3 ),
           REFERENCE       =SIMP(statut='f',typ='TXM',
                                 into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
           b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
             VERSION         =SIMP(statut='f',typ='TXM' ),
           ),
         ),
)  ;
#& MODIF COMMANDE  DATE 03/05/2000   AUTEUR VABHHTS J.PELLET 
TEST_RESU=PROC(nom="TEST_RESU",op=23,docu="U4.92.01-F",
               fr="Extraction d une valeur et comparaison à une valeur de référence",
         regles=(AU_MOINS_UN('CHAM_NO','CHAM_ELEM','RESU','OBJET')),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),  
         CHAM_NO         =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NOEUD','GROUP_NO','TYPE_TEST'),
                   EXCLUS('NOEUD','GROUP_NO'),
                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
                   PRESENT_PRESENT( 'GROUP_NO','NOM_CMP'),
                   UN_PARMI('VALE','VALE_I','VALE_C'),),
           CHAM_GD         =SIMP(statut='o',typ=cham_no),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           NOM_CMP         =SIMP(statut='f',typ='TXM' ),  
           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
           VALE            =SIMP(statut='f',typ='R'),  
           VALE_I          =SIMP(statut='f',typ='I'),  
           VALE_C          =SIMP(statut='f',typ='C'),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3),  
           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",            
                                                            "NON_REGRESSION","AUTRE_ASTER")),
           VERSION         =SIMP(statut='f',typ='TXM'),  
         ),
         CHAM_ELEM       =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('MAILLE','TYPE_TEST',),
                   EXCLUS('NOEUD','GROUP_NO','POINT'),
                   PRESENT_PRESENT('NOEUD','NOM_CMP'),
                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
                   PRESENT_PRESENT('POINT','NOM_CMP'),       
                   UN_PARMI('VALE','VALE_I','VALE_C'), ),
           CHAM_GD         =SIMP(statut='o',typ=cham_elem),# CO()
           MAILLE          =SIMP(statut='f',typ=ma),# CO()
           POINT           =SIMP(statut='f',typ='I' ),  
           NOEUD           =SIMP(statut='f',typ=no),# CO()
           GROUP_NO        =SIMP(statut='f',typ=grno),# CO()
           NOM_CMP         =SIMP(statut='f',typ='TXM' ),  
           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
           VALE            =SIMP(statut='f',typ='R' ),  
           VALE_I          =SIMP(statut='f',typ='I' ),  
           VALE_C          =SIMP(statut='f',typ='C' ),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),  
           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",            
                                                            "NON_REGRESSION","AUTRE_ASTER") ),
           VERSION         =SIMP(statut='f',typ='TXM' ),  
         ),
         RESU            =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('NUME_ORDRE','INST','FREQ','NUME_MODE','NOEUD_CMP','NOM_CAS','ANGL'),
                   UN_PARMI('NOM_CHAM','PARA'),
                   PRESENT_ABSENT('PARA','NOEUD','GROUP_NO','POINT','NOM_CMP','TYPE_TEST'),        
                   PRESENT_PRESENT('NOM_CMP','NOM_CHAM'),
                   EXCLUS('NOEUD','GROUP_NO','POINT','TYPE_TEST'),
                   PRESENT_PRESENT('NOEUD','NOM_CMP'),        
                   PRESENT_PRESENT('GROUP_NO','NOM_CMP'),
                   PRESENT_PRESENT('POINT','NOM_CMP'),
                   UN_PARMI('VALE','VALE_I','VALE_C') ,),
           RESULTAT        =SIMP(statut='o',typ=resultat),
           NUME_ORDRE      =SIMP(statut='f',typ='I'),  
           INST            =SIMP(statut='f',typ='R'),  
           FREQ            =SIMP(statut='f',typ='R'),  
           NUME_MODE       =SIMP(statut='f',typ='I'),  
           NOEUD_CMP       =SIMP(statut='f',typ='TXM',max='**' ),  
           NOM_CAS         =SIMP(statut='f',typ='TXM'),  
           ANGL            =SIMP(statut='f',typ='R'),  
           PARA            =SIMP(statut='f',typ='TXM'),  
           NOM_CHAM        =SIMP(statut='f',typ='TXM'),  
           NOM_CMP         =SIMP(statut='f',typ='TXM'),  
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
           NOEUD           =SIMP(statut='f',typ=no,max='**'),
           GROUP_NO        =SIMP(statut='f',typ=grno,max='**'),
           POINT           =SIMP(statut='f',typ='I'),  
           TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN")),
           VALE            =SIMP(statut='f',typ='R'),  
           VALE_I          =SIMP(statut='f',typ='I'),  
           VALE_C          =SIMP(statut='f',typ='C'),  
           CRITERE         =SIMP(statut='f',typ='TXM',into=("RELATIF","ABSOLU"),max=02),
           PRECISION       =SIMP(statut='f',typ='R',max=02),  
           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",            
                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
           VERSION         =SIMP(statut='f',typ='TXM' ),  
         ),
         OBJET           =FACT(statut='f',max='**',
         regles=(UN_PARMI('INDICE','S_I','S_R','RESUME',),
                 UN_PARMI('VALE','VALE_I','VALE_C','RESUME','S_R','S_I'),),
           NOM             =SIMP(statut='o',typ='TXM'),  
           INDICE          =SIMP(statut='f',typ='I'),  
           NUM_OBJ         =SIMP(statut='f',typ='I'),  
           S_R             =SIMP(statut='f',typ='R'),  
           S_I             =SIMP(statut='f',typ='I'),  
           RESUME          =SIMP(statut='f',typ='I'),  
           VALE            =SIMP(statut='f',typ='R'),  
           VALE_I          =SIMP(statut='f',typ='I'),  
           VALE_C          =SIMP(statut='f',typ='C'),  
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU")),
           PRECISION       =SIMP(statut='f',typ='R',defaut=1.0E-3 ),  
           REFERENCE       =SIMP(statut='f',typ='TXM',into=("ANALYTIQUE","SOURCE_EXTERNE",            
                                                            "NON_REGRESSION","AUTRE_ASTER",) ),
           VERSION         =SIMP(statut='f',typ='TXM' ),  
         ),
)  ;
#& MODIF COMMANDE  DATE 20/09/1999   AUTEUR DURAND C.DURAND 
TEST_TABLE=PROC(nom="TEST_TABLE",op= 177,fr="Tester une 'cellule' d un concept de type table.Imprime dans le fichier 'RESULTAT' : OK si la valeur trouvée est identique à la valeur donnée en référence, NOOK sinon",
                docu="U4.92.03-B",
         regles=(UN_PARMI('VALE','VALE_I','VALE_C', ),),
         FICHIER         =SIMP(statut='f',typ='TXM',defaut="RESULTAT"),
#  concept table à créer           
         TABLE           =SIMP(statut='o',typ=table),
         FILTRE          =FACT(statut='f',min=01,max='**',
           regles=(UN_PARMI('VALE','VALE_I','VALE_C','VALE_K','VALE_CO', ),),
           NOM_PARA        =SIMP(statut='o',typ='TXM' ),  
           VALE            =SIMP(statut='f',typ='R' ),  
           VALE_I          =SIMP(statut='f',typ='I' ),  
           VALE_C          =SIMP(statut='f',typ='C' ),  
           VALE_K          =SIMP(statut='f',typ='TXM' ),  
           VALE_CO         =SIMP(statut='f',typ=geom),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
         ),
         TYPE_TEST       =SIMP(statut='f',typ='TXM',into=("SOMM_ABS","SOMM","MAX","MIN") ),
         NOM_PARA        =SIMP(statut='o',typ='TXM' ),  
         VALE            =SIMP(statut='f',typ='R' ),  
         VALE_I          =SIMP(statut='f',typ='I' ),  
         VALE_C          =SIMP(statut='f',typ='C' ),  
         CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU") ),
         PRECISION       =SIMP(statut='f',typ='R',defaut= 1.2E-3 ),  
         REFERENCE       =SIMP(statut='f',typ='TXM',     
                               into=("ANALYTIQUE","SOURCE_EXTERNE","NON_REGRESSION","AUTRE_ASTER") ),
         b_version       =BLOC(condition = "REFERENCE == 'NON_REGRESSION'", 
             VERSION         =SIMP(statut='f',typ='TXM' ),
         ),  
)  ;
#& MODIF COMMANDE  DATE 19/05/2000   AUTEUR JFBHHUC C.ROSE 
THER_LINEAIRE=OPER(nom="THER_LINEAIRE",op=25,sd_prod=evol_ther,docu="U4.54.01-F",reentrant='f',
                   fr="Analyse thermique linéaire stationnaire ou transitoire",
         MODELE          =SIMP(statut='o',typ=modele),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater),
         CARA_ELEM       =SIMP(statut='f',typ=cara_elem),
         EXCIT           =FACT(statut='o',min=01,max='**',
           CHARGE          =SIMP(statut='o',typ=(char_ther,char_cine_ther)),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
         ),
         INCREMENT       =FACT(statut='f',min=01,max=01,
           LIST_INST       =SIMP(statut='o',typ=listr8 ),
           NUME_INIT       =SIMP(statut='f',typ='I'),
           NUME_FIN        =SIMP(statut='f',typ='I'),
         ),
         TEMP_INIT       =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
           CHAM_NO         =SIMP(statut='f',typ=cham_no_temp_r),
           VALE            =SIMP(statut='f',typ='R'),
           NUME_INIT       =SIMP(statut='f',typ='I'),
         ),
         SENSIBILITE     =FACT(statut='f',min=01,max=01,
           THETA           =SIMP(statut='o',typ=theta_geom),
         ),
         DEUL_INIT       =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('STATIONNAIRE','EVOL_THER', ),),
           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
           NUME_INIT       =SIMP(statut='f',typ='I'),
         ),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult      =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
         ),
         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57),
         ARCHIVAGE       =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST'),),
           LIST_ARCH       =SIMP(statut='f',typ=listis),
           LIST_INST       =SIMP(statut='f',typ=listr8),
           INST            =SIMP(statut='f',typ='R',max='**'),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",
                                 into=("RELATIF","ABSOLU")),
           PAS_ARCH        =SIMP(statut='f',typ='I'),
           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',max='**',into=("VARI",)),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         OPTION          =SIMP(statut='f',typ='TXM',max='**',
                               into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP")),
         INFO            =SIMP(statut='f',typ='I',into=(1,2)),
)  ;
#& MODIF COMMANDE  DATE 19/05/2000   AUTEUR JFBHHUC C.ROSE 
THER_NON_LINE=OPER(nom="THER_NON_LINE",op= 186,sd_prod=evol_ther,docu="U4.54.02-D",reentrant='f',
                   fr="Analyse thermique non linéaire stationnaire ou transitoire" ,
         MODELE          =SIMP(statut='o',typ=(modele) ),
         CHAM_MATER      =SIMP(statut='o',typ=(cham_mater) ),
         CARA_ELEM       =SIMP(statut='c',typ=(cara_elem) ),
         COMP_THER_NL    =FACT(statut='d',min=01,max='**',
           RELATION        =SIMP(statut='f',typ='TXM',defaut="THER_NL",
                                 into=("THER_NL",
                                       "THER_HYDR",
                                       "SECH_GRANGER",
                                       "SECH_MENSI",
                                       "SECH_BAZANT",
                                       "SECH_NAPPE"
                                       ) ),
           TOUT            =SIMP(statut='f',typ='TXM',into=("OUI",) ),
           GROUP_MA        =SIMP(statut='f',typ=grma,max='**'),
           MAILLE          =SIMP(statut='f',typ=ma,max='**'),
         ),
         EVOL_THER_SECH  =SIMP(statut='f',typ=evol_ther),
         EXCIT           =FACT(statut='o',min=01,max='**',
           CHARGE          =SIMP(statut='o',typ=char_ther),
           FONC_MULT       =SIMP(statut='f',typ=fonction),
         ),
         INCREMENT       =FACT(statut='f',min=01,max=01,
           LIST_INST       =SIMP(statut='o',typ=listr8),
           NUME_INIT       =SIMP(statut='f',typ='I'),
           NUME_FIN        =SIMP(statut='f',typ='I'),
         ),
         TEMP_INIT       =FACT(statut='f',min=01,max=01,
           regles=(EXCLUS('STATIONNAIRE','EVOL_THER','CHAM_NO','VALE'),),
           STATIONNAIRE    =SIMP(statut='f',typ='TXM',into=("OUI",)),
           EVOL_THER       =SIMP(statut='f',typ=evol_ther),
           CHAM_NO         =SIMP(statut='f',typ=cham_no_temp_r),
           VALE            =SIMP(statut='f',typ='R'),
           NUME_INIT       =SIMP(statut='f',typ='I'),
         ),
         NEWTON          =FACT(statut='d',min=01,max=01,
           REAC_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
           RESI_LINE_RELA  =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
           ITER_LINE_MAXI  =SIMP(statut='f',typ='I',defaut= 0 ),
         ),
         CONVERGENCE     =FACT(statut='d',min=01,max=01,
           RESI_GLOB_MAXI  =SIMP(statut='f',typ='R'),
           RESI_GLOB_RELA  =SIMP(statut='f',typ='R'),
           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),
         ),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
#  A quoi sert eps           
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),
           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON",) ),
         ),
         PARM_THETA      =SIMP(statut='f',typ='R',defaut= 0.57 ),
         ARCHIVAGE       =FACT(statut='f',min=01,max=01,
           regles=(UN_PARMI('LIST_ARCH','PAS_ARCH','LIST_INST','INST', ),),
           LIST_ARCH       =SIMP(statut='f',typ=(listis) ),
           LIST_INST       =SIMP(statut='f',typ=(listr8) ),
           INST            =SIMP(statut='f',typ='R',max='**'),
           PRECISION       =SIMP(statut='f',typ='R',defaut= 1.0E-3 ),
           CRITERE         =SIMP(statut='f',typ='TXM',defaut="RELATIF",into=("RELATIF","ABSOLU",) ),
           PAS_ARCH        =SIMP(statut='f',typ='I'),
           CHAM_EXCLU      =SIMP(statut='f',typ='TXM',max='**',into=("VARI",)),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**'),
         OPTION          =SIMP(statut='f',typ='TXM',max='**',
                               into=("FLUX_ELGA_TEMP","FLUX_ELNO_TEMP") ),
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
)  ;
#& MODIF COMMANDE  DATE 19/05/2000   AUTEUR JFBHHUC C.ROSE 
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',
         MODELE          =SIMP(statut='o',typ=modele ),
         CHAM_MATER      =SIMP(statut='o',typ=cham_mater ),
         CARA_ELEM       =SIMP(statut='c',typ=cara_elem ),
         EXCIT           =FACT(statut='o',min=01,max='**',
           CHARGE          =SIMP(statut='o',typ=char_ther ),
           FONC_MULT       =SIMP(statut='c',typ=fonction ),
         ),
         TEMP_INIT       =FACT(statut='f',min=01,max=01,
           EVOL_THER       =SIMP(statut='f',typ=evol_ther ),
           NUME_INIT       =SIMP(statut='f',typ='I',defaut= 0 ),  
         ),
         CONVERGENCE     =FACT(statut='d',min=01,max=01,
           CRIT_TEMP_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-3 ),  
           CRIT_ENTH_RELA  =SIMP(statut='f',typ='R',defaut= 1.E-2 ),  
           ITER_GLOB_MAXI  =SIMP(statut='f',typ='I',defaut= 10 ),  
           ARRET           =SIMP(statut='c',typ='TXM',defaut="OUI",into=("OUI","NON") ),
         ),
         SOLVEUR         =FACT(statut='d',min=01,max=01,
           METHODE         =SIMP(statut='f',typ='TXM',defaut="MULT_FRONT",into=("MULT_FRONT","LDLT","GCPC") ),
           b_mult_front    =BLOC(condition = "METHODE == 'MULT_FRONT' ",fr="Paramètres de la méthode multi frontale",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="MDA",into=("MD","MDA","METIS") ),
           ),
           b_ldlt          =BLOC(condition = "METHODE == 'LDLT' ",fr="Paramètres de la méthode LDLT",
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
             TAILLE_BLOC     =SIMP(statut='f',typ='R',defaut= 400. ),
           ),
           b_ldlt_mult     =BLOC(condition = "METHODE == 'LDLT' or METHODE == 'MULT_FRONT' ",
                                   fr="Paramètres relatifs à la non inversibilité de la matrice à factorise",
             NPREC           =SIMP(statut='f',typ='I',defaut= 8 ),
             STOP_SINGULIER  =SIMP(statut='f',typ='TXM',defaut="OUI",into=("OUI","NON") ),             
           ),
           b_gcpc          =BLOC(condition = "METHODE == 'GCPC' ", fr="Paramètres de la méthode du gradient conjugué",
             PRE_COND        =SIMP(statut='f',typ='TXM',into=("LDLT_INC","SANS","DIAG") ),
             NIVE_REMPLISSAGE=SIMP(statut='f',typ='I',defaut= 0 ),
             RESI_RELA       =SIMP(statut='f',typ='R',defaut= 1.E-6 ),
             NMAX_ITER       =SIMP(statut='f',typ='I',defaut= 0 ),
             RENUM           =SIMP(statut='f',typ='TXM',defaut="RCMK",into=("RCMK","SANS") ),
           ),
           EPS             =SIMP(statut='f',typ='R',defaut= 0.E+0 ),  
           SYME            =SIMP(statut='f',typ='TXM',defaut="NON",into=("OUI","NON") ),
         ),
         TITRE           =SIMP(statut='f',typ='TXM',max='**' ),  
         INFO            =SIMP(statut='f',typ='I',into=(1,2) ),
)  ;


  
