Download sissib.procedur

Back to the list

   1 : * SISSIB    PROCEDUR  FANDEUR   12/01/25    21:15:01     7264           
   2 : 'DEBPROC' SISSIB  TAB1*'TABLE'   ;
   3 : *
   4 : **********************************************************************
   5 : *
   6 : *      PROCEDURE DE CALCUL SISMIQUE
   7 : *      ----------------------------
   8 : *
   9 : *      DONNEES :
  10 : *      --------
  11 : *
  12 : *   TABRESU = SISSIB TAB1 ;
  13 : *      
  14 : *   TAB1 : OBJET DE TYPE TABLE
  15 : *  
  16 : *   TAB1.'STRUCTURE' = TABLE BASE MODALE
  17 : *   TAB1.'AMORTISSEMENT' = LISTREEL
  18 : *   TAB1.'EXCITATION' = TABLE INDICEE PAR UN ENTIER (<EG 3 ) 
  19 : *  
  20 : *     TAB1.'EXCITATION'.I.DIRECTION = MOT X Y OU Z
  21 : *     TAB1.'EXCITATION'.I . 'SPECTRE' = EVOLUTION
  22 : *     TAB1.'EXCITATION'.I . 'AMORTISSEMENT' = LISTREEL
  23 : *     TAB1.'EXCITATION'.I . 'ACCELERATION_MAXIMALE' = REEL ACCELERATION
  24 : *                                                   MAXIMALE DU SEISME
  25 : *                                                   DANS LA DIRECTION I
  26 : *                                                   (FACULTATIF)
  27 : *  
  28 : *   TAB1.'RECOMBINAISON_MODES' = 'MOT' 'SRSS' OU 'ROSENBLUETH' OU 'CQC' 
  29 : *                               OU 'DIX_POUR_CENT'
  30 : *   TAB1.'DUREE' = REEL (DUREE DE LA PARTIE FORTE DU SIGNAL (FACULTATIF, 
  31 : *                OPTION ROSENBLUETH UNIQUEMENT )
  32 : *  
  33 : *   TAB1.'RECOMBINAISON_DIRECTIONS' = MOT (REGLE DE COMBINAISON DES 
  34 : *                                   DIRECTIONS  : QUADRATIQUE )
  35 : *  
  36 : *   TAB1.'SORTIES' = TABLE
  37 : *     TAB1.'SORTIES'.'DOMAINE'  = MAILLAGE OU MODELE
  38 : *     TAB1.'SORTIES'.'DEPLACEMENTS' = LOGIQUE ( VRAI OU FAUX ) POUR
  39 : *                                     CALCUL DES DEPLACEMENTS
  40 : *     TAB1.'SORTIES'.'ACCELERATIONS' = LOGIQUE ( VRAI OU FAUX ) POUR
  41 : *                                      CALCUL DES ACCELERATIONS
  42 : *     TAB1.'SORTIES'.'CONTRAINTES' = LOGIQUE ( VRAI OU FAUX ) POUR
  43 : *                                  CALCUL DES CONTRAINTES
  44 : *     TAB1.'SORTIES'.'REACTIONS' = LOGIQUE ( VRAI OU FAUX ) POUR
  45 : *                                CALCUL DES REACTIONS
  46 : *  
  47 : *   TAB1.'REPRISE' = TABLE  FACULTATIVE DONNANT LES RESULTATS D'UN 
  48 : *                    CALCUL PRECEDENT
  49 : *     TAB1.'REPRISE'.'SPECTRE' = TABLE INDICEE PAR UN MOT X OU Y OU Z
  50 : *     TAB1.'REPRISE'.'SPECTRE'.'X'.PT1 = S (F1, EPS1) PT1 POINT SOUS
  51 : *                                      TENDANT LE MODE, S (F1, EPS1)
  52 : *                                      VALEUR DU SPECTRE EN
  53 : *                                      PSEUDO - ACCELERATION
  54 : *      TAB1.'REPRISE'.'COEFF'= TABLE INDICEE PAR ENTIERS DE 1 A NMOD
  55 : *      TAB1.'REPRISE'.'COEFF'.I = TABLE INDICEE PAR ENTIERS DE I A NMOD
  56 : *      TAB1.'REPRISE'.'COEFF'.I.J = PIJ REEL COEFFICIENT DE CORELATION
  57 : *  
  58 : *    TAB1.'IMPRESSION' = LOGIQUE ( VRAI OU FAUX) IMPRESSION AUTOMATIQUE
  59 : *                       DE LA TABLE DE RESULTATS. FACULTATIF. 
  60 : *                       PAR DEFAUT FAUX
  61 : *    TAB1.'TRONCATURE' = LOGIQUE ( VRAI OU FAUX). FACULTATIF. PAR DEFAUT
  62 : *                        FAUX PRISE EN COMPTE DES PSEUDOMODES QUI
  63 : *                        DOIVENT ETRE INCLUS DANS LA BASE MODALE
  64 : *
  65 : ***********************************************************************
  66 : ZUN1 = 1 ;  Z2PI = 2. '*' PI ;
  67 : *
  68 : * TABLE ZTABSOR POUR GESTION INTERNE DES SORTIES
  69 : * PERMET DE GARDER LA PROGRAMMATION INITIALE
  70 : * AVANT UNE REFONTE COMPLETE ENVISAGEABLE
  71 : *
  72 : ZTABSOR = 'TABLE' 'SORTIES' ;
  73 : *
  74 : *  NB DE MODES MAILLAGE ;
  75 : *
  76 : ZTMOD = 'TABLE' TAB1.'STRUCTURE'.'MODES' ;
  77 : ZNMOD = ( 'DIME' ZTMOD ) '-'  2  ;
  78 : ZGEO1 = ZTMOD.'MAILLAGE' ;
  79 : *
  80 : *  NB DE DIRECTION DE SEISMES ;
  81 : *
  82 : ZTAB2 = TAB1.'EXCITATION';
  83 : ZNDIR = ( 'DIME' ZTAB2 ) '-' 1 ;
  84 : *
  85 : *    Y A T IL UNE TABLE DE REPRISE
  86 : *
  87 : ZIREP = 0 ; 
  88 : 'SI' ( 'EXISTE' TAB1 'REPRISE' ) ;
  89 :   ZIREP = 1 ;
  90 : 'FINSI' ;
  91 : *
  92 : *  VERIFICATION DU  MAILLAGE DE SORTIE
  93 : *
  94 : 'SI' ( 'EXISTE' ( TAB1.'SORTIES' ) 'DOMAINE' ) ;
  95 :  ZDOM1 =1 ;
  96 :  ZOB1 = TAB1.'SORTIES'.'DOMAINE' ;
  97 :  ZTABSOR . 'DOMAINE' = ZOB1 ;
  98 :  ZTYP1 = 'TYPE' ZOB1 ;
  99 :  'SI' ( 'EGA' ZTYP1 'MMODEL  ' ) ;
 100 :    ZMAI1 = 'EXTRAIRE' ZOB1  'MAIL' ;
 101 :  'SINON' ;
 102 :     'SI' ( 'EGA' ZTYP1 'MAILLAGE' ) ; 
 103 :       ZMAI1 = ZOB1 ;
 104 :     'SINO' ;
 105 :       'MESSAGE' 'A L INDICE DOMAINE IL FAUT DONNER '
 106 :                 'UN OBJET DE TYPE MAILLAGE OU MODELE' ;
 107 :       'ERREUR' 'PROC_SISSI' ;
 108 :     'FINSI';
 109 :  'FINSI' ;
 110 : 'SINON' ;
 111 :   ZDOM1 = 0 ;
 112 : 'FINSI' ; 
 113 : *
 114 : *       PRISE EN COMPTE DES PSEUDOMODES
 115 : *
 116 : ZPSEU = FAUX ;
 117 : 'SI' ( 'EXISTE' TAB1 'TRONCATURE' ) ;
 118 :   ZPSEU1 = TAB1.'TRONCATURE'  ;
 119 :   ZTYP3 = 'TYPE' ZPSEU1 ;
 120 :    'SI' ( 'EGA' ZTYP3 'LOGIQUE ' ) ;
 121 :      ZPSEU = ZPSEU1 ;
 122 :    'SINON' ;
 123 :      'MESSAGE' 'A L INDICE TRONCATURE IL FAUT DONNER '
 124 :                 'UN OBJET DE TYPE LOGIQUE' ;
 125 :      'ERREUR' 'PROC_SISSI' ;
 126 :    'FINSI' ;
 127 : 'FINSI' ;
 128 : *
 129 : ZTSOR = TAB1.'SORTIES' ;
 130 : ZIDEPL = 0 ;
 131 : ZIACCE = 0 ;
 132 : ZICONT = 0 ;
 133 : ZIREAC = 0 ;
 134 : ZISOR = 0 ;
 135 : *
 136 : *   VERIFICATION DE LA COMPATIBILITE DU TYPE DE SORTIES AVEC LES 
 137 : *   DONNEES DE LA BASE MODALE
 138 : *
 139 : 'SI' ( 'EXISTE' ZTSOR 'DEPLACEMENTS' ) ;
 140 :   'SI' ( ZTSOR . 'DEPLACEMENTS' ) ;
 141 :     ZIDEPL = 1 ;
 142 :     ZISOR = ZISOR + 1 ;
 143 :     ZTABSOR . ZISOR = 'MOT' 'DEPLACEMENTS' ;
 144 :    'SI' ( 'NON' ( 'EXISTE' ( ZTMOD.ZUN1 ) 'DEFORMEE_MODALE' )  );
 145 :    'MESSAGE' 'IL MANQUE LES DEFORMEES MODALES DANS LA BASE MODALE' ;
 146 :    'ERREUR' 'PROC_SISSI' ;
 147 :    'FINSI' ;
 148 :   'FINSI' ;
 149 : 'FINSI' ;
 150 : 'SI' ( 'EXISTE' ZTSOR 'ACCELERATIONS' ) ;
 151 :   'SI' ( ZTSOR . 'ACCELERATIONS' ) ;
 152 :     ZIACCE = 1 ;
 153 :     ZISOR = ZISOR + 1 ;
 154 :     ZTABSOR . ZISOR = 'MOT' 'ACCELERATIONS' ;
 155 :    'SI' ( 'NON' ( 'EXISTE' ( ZTMOD.ZUN1 ) 'DEFORMEE_MODALE' )  );
 156 :    'MESSAGE' 'IL MANQUE LES DEFORMEES MODALES DANS LA BASE MODALE' ;
 157 :    'ERREUR' 'PROC_SISSI' ;
 158 :    'FINSI' ;
 159 :   'FINSI' ;
 160 : 'FINSI' ;
 161 : 'SI' ( 'EXISTE' ZTSOR 'CONTRAINTES' ) ;
 162 :   'SI' ( ZTSOR . 'CONTRAINTES' ) ;
 163 :     ZICONT = 1 ;
 164 :     ZISOR = ZISOR + 1 ;
 165 :     ZTABSOR . ZISOR = 'MOT' 'CONTRAINTES' ;
 166 :   'SI' ( 'NON' ( 'EXISTE' ( ZTMOD.ZUN1 )  'CONTRAINTE_MODALE' )  );
 167 :     'MESSAGE' 'IL MANQUE LES CONTRAINTES MODALES DANS LA BASE MODALE' ;
 168 :     'ERREUR' 'PROC_SISSI' ;
 169 :    'FINSI' ;
 170 :   'FINSI' ;
 171 : 'FINSI' ;
 172 : 'SI' ( 'EXISTE' ZTSOR 'REACTIONS' ) ;
 173 :   'SI' ( ZTSOR . 'REACTIONS' ) ;
 174 :     ZIREAC = 1 ;
 175 :     ZISOR = ZISOR + 1 ;
 176 :     ZTABSOR . ZISOR = 'MOT' 'REACTIONS' ;
 177 :   'SI' ( 'NON' ( 'EXISTE' ( ZTMOD.ZUN1 )  'REACTION_MODALE' )  );
 178 :     'MESSAGE' 'IL MANQUE LES REACTIONS MODALES DANS LA BASE MODALE' ;
 179 :     'ERREUR' 'PROC_SISSI' ;
 180 :    'FINSI' ;
 181 :   'FINSI' ;
 182 : 'FINSI' ;
 183 : *
 184 : ZNSOR = ( 'DIME' ZTABSOR ) '-' 2 ;
 185 : 'SI' ( ZDOM1 'EGA' 0 ) ;
 186 :   ZNSOR = ZNSOR '+' 1 ;
 187 : 'FINSI' ;
 188 : *
 189 : 'SI' ( ZNSOR 'EGA' 0 ) ;
 190 :   'MESSAGE' ' ' ;
 191 :   'MESSAGE' 'ATTENTION IL FAUT DEFINIR UNE OU DES SORTIES '
 192 :             'DANS TAB4' ;
 193 :   'ERREUR' 'PROC_SISSI' ;
 194 : 'FINSI' ;
 195 : *
 196 : *     PRETRAITEMENT DES PSEUDOMODES
 197 : *
 198 : 'SI' ZPSEU ;
 199 :   ZTPSEU = 'TABLE' 'PSEUDO' ;
 200 :   ZT2 = TAB1.'STRUCTURE'.'PSEUDO_MODES' ;
 201 :   ZNPSEU = ( 'DIME' ZT2 ) '-' 1 ;
 202 :   ZIPS = 0 ;
 203 :   'REPETER' ZLOO100 ZNPSEU ;
 204 :     ZIPS = ZIPS '+' 1 ;
 205 :     ZPSDIR = ZT2.ZIPS.'DIRECTION' ;
 206 :     ZTPSEUD = 'TABLE' 'PSEU_DIR' ;
 207 :     ZTPSEU.ZPSDIR = ZTPSEUD ;
 208 :     ZTPSEUD.'DEPLACEMENT' = ZT2.ZIPS.'DEPLACEMENT' ;
 209 :     'SI'  ( ZICONT 'EGA' 1 ) ; 
 210 :       'SI'   ( 'EXISTE' ( ZT2.ZIPS ) 'CONTRAINTE' )  ;
 211 :         ZTPSEUD.'CONTRAINTE' = ZT2.ZIPS.'CONTRAINTE' ;
 212 :       'SINON' ;
 213 :        'MESSAGE' 'IL FAUT DONNER LES CONTRAINTES POUR LE PSEUDOMODE' ;
 214 :        'ERREUR' 'PROC_SISSI' ;
 215 :       'FINSI' ;
 216 :     'FINSI' ;
 217 :     'SI'  ( ZIREAC 'EGA' 1 ) ;  
 218 :       'SI'   ( 'EXISTE' ( ZT2.ZIPS ) 'REACTION' )  ;
 219 :         ZTPSEUD.'REACTION' = ZT2.ZIPS.'REACTION' ;
 220 :       'SINON' ;
 221 :        'MESSAGE' 'IL FAUT DONNER LES REACTIONS POUR LE PSEUDOMODE' ;
 222 :        'ERREUR' 'PROC_SISSI' ;
 223 :       'FINSI' ;
 224 :     'FINSI' ;
 225 :   'FIN' ZLOO100 ;
 226 : 'FINSI' ;
 227 : *
 228 : *    VERIFICATION DES DONNEES POUR LA COMBINAISON DES DIRECTIONS
 229 : *
 230 : 'SI' ( 'EXISTE' TAB1 'RECOMBINAISON_DIRECTIONS' ) ;
 231 :   ZMO2 =  TAB1.'RECOMBINAISON_DIRECTIONS' ;
 232 :   'SI' ( 'EGA' ZMO2 'QUADRATIQUE' );
 233 :     ZIRDIR =  1 ;
 234 :   'SINON' ;
 235 :     'MESSAGE' 'ERREUR DE DONNEE POUR LA COMBINAISON DES DIRECTIONS' ;
 236 :     'ERREUR' 'PROC_SISSI' ;
 237 :   'FINSI' ;
 238 : 'SINON';
 239 :   'MESSAGE' 'IL FAUT DONNER UNE REGLE DE COMBINAISON DES DIRECTIONS' ;
 240 :   'ERREUR' 'PROC_SISSI' ;
 241 : 'FINSI' ;
 242 : *
 243 : *    VERIFICATION DES AMORTISSEMENTS
 244 : *
 245 : LAM1 = TAB1.'AMORTISSEMENT' ;
 246 : ZAMAX1 = 'MAXI'  LAM1 ;
 247 : ZAMIN1 = 'MINI'  LAM1 ;
 248 : *
 249 : ZI = 0 ; 
 250 : 'REPETER' ZLOOP3 ZNDIR;
 251 :  ZI = ZI '+' 1 ;
 252 :  ZLASP = ZTAB2.ZI.'AMORTISSEMENT' ;
 253 :  ZAMX1 = 'MAXI' ZLASP ;
 254 :  ZAMN1 = 'MINI' ZLASP ;
 255 : *
 256 :  'SI' ( ( ZAMAX1 '>' ZAMX1 ) 'OU' ( ZAMIN1 '<' ZAMN1 ) ) ;
 257 :    'MESSAGE' 'AMORTISSEMENT STRUCTURE INCOMPATIBLE AVEC';
 258 :    'MESSAGE' 'AMORTISSEMENT DES SPECTRES DU SEISME' ;
 259 :    'ERREUR' 'PROC_SISSI' ;
 260 :  'FINSI' ;
 261 : *
 262 : 'FIN' ZLOOP3 ; 
 263 : *
 264 : *   CREATION DES RAPPORTS Q/M ET Q/MW2
 265 : *
 266 : ZQSM = 'TABLE' 'FACTEUR_DE_PARTICIPATION' ;
 267 : ZQSMW2 = 'TABLE' 'QSMW2' ;
 268 : ZI = 0 ;
 269 : 'REPETER' ZLOOP4 ZNMOD ;
 270 :   ZI = ZI '+' 1 ;
 271 :   ZFR = ZTMOD.ZI.'FREQUENCE' ;
 272 :   ZMG = ZTMOD.ZI.'MASSE_GENERALISEE' ;
 273 :   ZOMEG = Z2PI '*' ZFR ;
 274 :   ZOMEG2 = ZOMEG '*' ZOMEG ;
 275 : *
 276 :   ZQSMI = 'TABLE' 'QSM' ;
 277 :   ZQSMW2I = 'TABLE' 'QSMW2' ;
 278 :   ZQSM.ZI = ZQSMI ;
 279 :   ZQSMW2.ZI = ZQSMW2I ;
 280 :   ZNQ = 3 ;
 281 :   ZDI = 0 ;
 282 :    'REPETER' ZLOOP5 ZNQ ;
 283 :      ZDI = ZDI '+' 1 ;
 284 :      ZQ = ZTMOD.ZI.'DEPLACEMENTS_GENERALISES'.ZDI ;
 285 :      ZQSMI.ZDI = ZQ '/' ZMG  ;
 286 :      ZQSMW2I.ZDI = ZQ '/' (  ZMG '*' ZOMEG2 ) ; 
 287 :    'FIN' ZLOOP5 ;
 288 : 'FIN' ZLOOP4 ;
 289 : *
 290 : *      ACCELERATION MAXIMALE DU SEISME
 291 : *
 292 : ZTGAM = 'TABLE' 'ACCELERATION_MAXIMALE' ;
 293 : ZDIR = 0 ;
 294 : 'REPETER' ZLOOP60 ZNDIR ;
 295 :  ZDIR = ZDIR '+' 1 ;
 296 :  'SI' ( 'EXISTE' ( TAB1.'EXCITATION'.ZNDIR )  
 297 :         'ACCELERATION_MAXIMALE' ) ;
 298 :    ZTGAM.ZDIR = TAB1.'EXCITATION'.ZNDIR.'ACCELERATION_MAXIMALE' ;
 299 :  'SINON' ;
 300 :    ZEVSPI = TAB1.'EXCITATION'.ZDIR.'SPECTRE' ;
 301 :    ZLSPI = 'EXTRAIRE' ZEVSPI 'ORDO' ZUN1 ;
 302 :    ZPTSP = 'DIME' ZLSPI ;
 303 :    ZTGAM.ZDIR = 'EXTRAIRE' ZLSPI ZPTSP ;
 304 :  'FINSI' ;
 305 : 'FIN' ZLOOP60 ;
 306 : *
 307 : *      INITIALISATION DE LA TABLE DES RESULTATS
 308 : *
 309 : TRESU = 'TABLE' 'RESULATS' ;
 310 : *
 311 : *      DETERMINATION DES VALEURS DES SPECTRES POUR CHAQUE MODE
 312 : *      ET CHAQUE DIRECTION
 313 : *
 314 : 'SI' ( ZIREP 'EGA' 1 ) ;
 315 :   ZTSPEC = TAB1.'REPRISE'.'SPECTRE' ;
 316 : 'SINON' ;
 317 :   ZTSPEC = 'TABLE' 'SPECTRE' ;
 318 :   ZTREP  = 'TABLE' 'REPRISE' ;
 319 :   ZTREP.'SPECTRE' = ZTSPEC ;
 320 :   TRESU.'REPRISE' = ZTREP ;
 321 : *
 322 :   ZI = 0 ;
 323 :   'REPETER' ZLOOP1 ZNMOD ;
 324 :   ZI = ZI '+' 1 ;
 325 :   ZXSI = 'EXTRAIRE' TAB1.'AMORTISSEMENT' ZI ;  
 326 :   ZFR = ZTMOD.ZI.'FREQUENCE' ;
 327 :   ZDI = 0;
 328 :   ZTSPD = 'TABLE' 'SPEC_D' ;
 329 :   ZTSPEC.ZI = ZTSPD ;
 330 :     'REPETER' ZLOOP10 ZNDIR ;
 331 :      ZDI = ZDI '+' 1 ;
 332 :      ZEVSPI = TAB1.'EXCITATION'.ZDI.'SPECTRE' ;
 333 :      ZLAMSPI = TAB1.'EXCITATION'.ZDI.'AMORTISSEMENT' ;
 334 :      ZNAM = 'DIME' ZLAMSPI ;
 335 :       'SI' ( ZNAM 'EGA' 1 ) ;
 336 :         ZAMSP = 'EXTRAIRE' ZLAMSPI ZUN1 ;
 337 :         'SI'  ( ( 'ABS' ( ZXSI '-' ZAMSP) ) '<EG' 1.E-4 ) ;
 338 :           ZLFRI = 'EXTRAIRE' ZEVSPI 'ABSC' ZUN1 ;
 339 :           ZLSPI = 'EXTRAIRE' ZEVSPI 'ORDO' ZUN1 ;
 340 :           ZTSPD.ZDI = 'EXP' ( 'IPOL' ( 'LOG' ZFR ) 
 341 :                         ( 'LOG' ZLFRI ) ( 'LOG' ZLSPI ) );       
 342 :         'SINON' ;
 343 :          'MESSAGE' 'ERREUR DANS LES AMORTISSEMENTS' ;
 344 :          'ERREUR' 'PROC_SISSI' ; 
 345 :         'FINSI' ;
 346 :       'SINON' ;
 347 :       ZLSPAM = 'PROG' ZNAM '*' 0.;
 348 :       ZIAM = 0 ;
 349 :        'REPETER' ZLOOP11  ZNAM ;
 350 :         ZIAM = ZIAM '+' 1 ;
 351 :         ZLFRI = 'EXTRAIRE' ZEVSPI 'ABSC' ZIAM ;
 352 :         ZLSPI = 'EXTRAIRE' ZEVSPI 'ORDO' ZIAM ;
 353 :         'REMPLACER' ZLSPAM ZIAM ('EXP' ( 'IPOL' ( 'LOG' ZFR ) 
 354 :                        ( 'LOG' ZLFRI ) ( 'LOG' ZLSPI ) ) ) ;     
 355 :        'FIN' ZLOOP11 ;
 356 :         ZTSPD.ZDI = 'IPOL' ZXSI ZLAMSPI ZLSPAM ; 
 357 :       'FINSI' ;
 358 :     'FIN' ZLOOP10 ;
 359 :   'FIN' ZLOOP1 ;
 360 : 'FINSI' ;
 361 : *
 362 : *         CALCUL DES COEFFICIENTS DE CORELATION ENTRE MODES 
 363 : *          SELON LES TYPES DE COMBINAISON SOUHAITEES
 364 : *
 365 : 'SI' ( ZIREP 'EGA' 1 ) ;
 366 :   ZTPIJ = TAB1.REPRISE.'PIJ' ;
 367 : 'SINON';
 368 :   ZTPIJ = 'TABLE' 'COEFF' ;
 369 :   ZTREP.'PIJ' = ZTPIJ ;
 370 :   ZI = 0 ;
 371 :   'REPETER' ZLOOP20 ZNMOD ;
 372 :   ZI = ZI '+' 1 ;
 373 :   ZTPI = 'TABLE' 'COEFF_I' ;
 374 :   ZTPIJ.ZI = ZTPI ;
 375 :   ZTPI.ZI = 1.0 ;
 376 : * 
 377 :    'SI' ( ZI 'NEG' 1 ) ;
 378 :      ZNJ = ZI '-' 1 ;
 379 :      ZJ = 0 ;
 380 :      'REPETER' ZLOOP21 ZNJ ;
 381 :       ZJ = ZJ '+' 1 ;
 382 :       ZMREC = TAB1.'RECOMBINAISON_MODES';
 383 :       ZXSI = 'EXTRAIRE' TAB1.'AMORTISSEMENT' ZI ;  
 384 :       ZFRI = ZTMOD.ZI.'FREQUENCE' ;
 385 :       ZOMEGI = Z2PI '*' ZFRI ;
 386 :       ZXSJ = 'EXTRAIRE' TAB1.'AMORTISSEMENT' ZJ ;  
 387 :       ZFRJ = ZTMOD.ZJ.'FREQUENCE' ;
 388 :       ZOMEGJ = Z2PI '*' ZFRJ ;
 389 :       'SI' ( 'EGA' ZMREC 'SRSS' ) ;
 390 :         ZTPI.ZJ = 0. ;
 391 :       'SINON';
 392 :         'SI' ( 'EGA' ZMREC 'CQC' ) ;
 393 :           ZOM2I = ZOMEGI '*' ZOMEGI ;
 394 :           ZOM2J = ZOMEGJ '*' ZOMEGJ ;
 395 :           Z1 = 8.0 '*' ( ( ZXSI '*' ZXSJ '*' ZOMEGI '*' ZOMEGJ )
 396 :                          '**' 0.5 ) ;
 397 :           Z2 = ZOMEGI '*' ZOMEGJ ;
 398 :           Z3 = ( ZOM2I - ZOM2J ) '**' 2 ;
 399 :           Z4 = 4. '*' ZXSI '*' ZXSJ '*' ZOMEGI '*' ZOMEGJ 
 400 :                   '*' ( ZOM2I '+' ZOM2J ) ;
 401 :           Z5 = 4. '*'  ( ( ZXSI '**' 2 ) '+' ( ZXSJ '**' 2 )  ) 
 402 :                   '*' ZOM2I '*' ZOM2J ;
 403 :           Z6 = ( ZXSI '*' ZOMEGI ) '+' ( ZXSJ '*' ZOMEGJ )  ;
 404 :           ZTPI.ZJ = Z1 '*' Z6 '*' Z2 '/' ( Z3 '+' Z4 '+' Z5 ) ;
 405 :         'SINON' ;
 406 :           'SI' ( 'EGA' ZMREC 'ROSENBLUETH' ) ;
 407 :             'SI' ( 'EXISTE' TAB1 'DUREE' ) ;
 408 :               ZTDUR = TAB1.'DUREE' ;
 409 :               ZEPSI = ZXSI '+' ( 2. / ( ZOMEGI '*' ZTDUR ) ) ;
 410 :               ZEPSJ = ZXSJ '+' ( 2. / ( ZOMEGJ '*' ZTDUR ) ) ; 
 411 :               ZFR1I = ZFRI '*' ( ( 1. '-' 
 412 :                                  ( ZEPSI '*' ZEPSI ) ) '**' 0.5 ) ;
 413 :               ZFR1J = ZFRJ '*' ( ( 1. '-'
 414 :                                  ( ZEPSJ '*' ZEPSJ ) ) '**' 0.5 ) ;
 415 :               ZALF = ( ZFR1I '-' ZFR1J ) '/' ( ( ZFRI '*' ZEPSI ) 
 416 :                                          '+' ( ZFRJ '*' ZEPSJ ) ) ;
 417 :               ZTPI.ZJ = 1. '/' ( 1. '+' ( ZALF '*' ZALF ) ) ;
 418 :             'SINON' ;
 419 :               'MESSAGE' 'POUR LA METHODE DE ROSENBLUETH DONNER' ;
 420 :               'MESSAGE' 'LA DUREE DU SIGNAL' ;
 421 :               'ERREUR' 'PROC_SISSI' ;
 422 :             'FINSI' ;
 423 :           'SINON' ;
 424 :             'SI' ( 'EGA' ZMREC 'DIX_POUR_CENT' ) ;
 425 :               ZDELT = 'ABS' ( 2. '*' ( ZFRJ '-' ZFRI ) '/'
 426 :                       ( ZFRJ '+' ZFRI ) ) ;
 427 :               'SI' ( ZDELT '<EG' 0.1 ) ;
 428 :                ZTPI.ZJ = 1. ;
 429 :               'SINON';     
 430 :                ZTPI.ZJ = 0. ;
 431 :               'FINSI';     
 432 :             'SINON' ;
 433 :              'MESSAGE' 'ERREUR DE DONNEES POUR LA REGLE' ;
 434 :              'MESSAGE' 'DE COMBINAISON DE MODES' ;
 435 :              'ERREUR' 'PROC_SISSI' ;
 436 :             'FINSI' ;
 437 :           'FINSI' ;
 438 :         'FINSI' ;
 439 :       'FINSI' ;
 440 :      'FIN' ZLOOP21; 
 441 :    'FINSI' ;
 442 :   'FIN' ZLOOP20 ;
 443 : 'FINSI';
 444 : *
 445 : *
 446 : *    ---------------------------------------------------------------
 447 : *    +++++++++++++++    CALCUL DE LA REPONSE       +++++++++++++++++
 448 : *    ---------------------------------------------------------------
 449 : *
 450 : *      REDUCTION DES DONNEES MODALES SUR LE DOMAINE D'ETUDE
 451 : *
 452 : ZTDEPL = 'TABLE' 'DEF_MOD' ;
 453 : ZTCONT = 'TABLE' 'CONT_MOD' ;
 454 : ZI = 0 ;
 455 : 'REPETER' ZLOOP30 ZNMOD ;
 456 :  ZI = ZI '+' 1 ;
 457 :  ZPHI = ZTMOD.ZI.'DEFORMEE_MODALE' ;
 458 : *
 459 : * AJOUT DU TEST SUR LA NECESSITE D AVOIR LES CONTRAINTES MODALES 
 460 : * POUR LE CALCUL DE REPONSE F. PICARD LE 24 MAI 1993
 461 : *
 462 :  'SI' ( 'EGA' ZDOM1  0 ) ;
 463 :    'SI' ( 'EGA' ZI 1 ) ;
 464 :      ZMAI1 = 'EXTRAIRE' ZPHI 'MAIL' 'NOMU' ;
 465 :    'FINSI' ;
 466 :    'SI' ( ( 'EGA' ZIDEPL 1 ) 'OU' ( 'EGA' ZIACCE 1 ) ) ;
 467 :      ZTDEPL.ZI = ZPHI ;
 468 :    'FINSI';
 469 :    'SI' ( 'EGA' ZICONT 1 ) ;
 470 :      ZCON= ZTMOD.ZI.'CONTRAINTE_MODALE';
 471 :      ZTCONT.ZI = ZCON ;
 472 :    'FINSI' ;    
 473 :  'SINON' ;
 474 :    'SI' ( ( 'EGA' ZIDEPL 1 ) 'OU' ( 'EGA' ZIACCE 1 ) ) ;
 475 :      ZTDEPL.ZI = 'REDU' ZPHI ZMAI1 ;
 476 :    'FINSI';
 477 :    'SI' ( 'EGA' ZICONT 1 ) ;
 478 :      ZCON= ZTMOD.ZI.'CONTRAINTE_MODALE';
 479 :      ZTCONT.ZI = 'REDU' ZCON ZOB1 ;
 480 :    'FINSI' ;
 481 :  'FINSI' ;
 482 : 'FIN' ZLOOP30 ;
 483 : *
 484 : *    REDUCTION DES PSEUDOMODES ET VERIFICATION DES DONNEES
 485 : *
 486 : 'SI' ZPSEU ;
 487 :  ZDIR = 0 ;
 488 :  ZDI0 = 0;
 489 :  'REPETER' ZLOO101 ZNDIR ;
 490 :   ZDIR = ZDIR '+' 1 ;
 491 :   ZMORES = 'MOT' TAB1.'EXCITATION'.ZDIR.'DIRECTION'  ;
 492 :    'SI' ( 'EGA' ZMORES 'X' ) ;
 493 :       ZDI = 1 ;
 494 :       MODI = 'MOT' 'UX' ;
 495 :     'FINSI' ;
 496 :     'SI' ( 'EGA' ZMORES 'Y' ) ;
 497 :       ZDI = 2 ;
 498 :       MODI = 'MOT' 'UY' ;
 499 :     'FINSI' ;
 500 :     'SI' ( 'EGA' ZMORES 'Z' ) ;
 501 :       ZDI = 3 ;
 502 :       MODI = 'MOT' 'UZ' ;
 503 :     'FINSI' ;
 504 :    'SI' ( 'EXISTE' ZTPSEU ZDI ) ;
 505 :      ZTPSEUD  = ZTPSEU.ZDI ;
 506 :      'SI' ( 'EGA' ZDOM1 1 ) ;
 507 :        'SI' ( 'EGA' ZIDEPL 1 )  ;
 508 :          ZCH2 = ZTPSEUD.'DEPLACEMENT' ;
 509 :          ZTPSEUD.'DEPLACEMENT' = 'REDU' ZCH2 ZMAI1 ;
 510 :        'FINSI' ; 
 511 :        'SI' ( 'EGA' ZICONT 1) ;
 512 :          ZCO2 = ZTPSEUD.'CONTRAINTE' ;
 513 :          ZTPSEUD.'CONTRAINTE' = 'REDU' ZCO2 ZOB1 ;
 514 :        'FINSI' ;
 515 :      'FINSI' ;
 516 :    'SINON' ;
 517 :     'MESS' 'IL MANQUE LE PSEUDOMODE RELATIF A LA DIRECTION : ' ZMORES ;
 518 :     'ERREUR' 'PROC_SISSI' ;
 519 :    'FINSI' ;
 520 : 'FIN' ZLOO101 ;  
 521 : 'FINSI' ;
 522 : *
 523 : *    REPONSE PAR DIRECTION
 524 : *
 525 : * AJOUT DE TEST POUR LE CAS D UN SEISME MONODIRECTIONNEL OU BIDIRECTIONNEL
 526 : * F. PICARD LE 24 MAI 1993
 527 : *
 528 : ZDIR = 0 ;
 529 : ZDI0 = 0;
 530 : 'REPETER' ZLOOP35 ZNDIR ;
 531 :   ZDIR = ZDIR '+' 1 ;
 532 :   ZMORES = 'MOT' TAB1.'EXCITATION'.ZDIR.'DIRECTION'  ;
 533 :   TRESDIR = 'TABLE' 'RESULTATS_DIRECTIONS' ;
 534 :   TRESU.ZMORES = TRESDIR ; 
 535 : *------------------------------------------------------------
 536 : * mise a jour pour prise en compte correcte des accelerations
 537 : * F PICARD le 15 decembre 1993
 538 : *------------------------------------------------------------
 539 :    'SI' ( 'EGA' ZMORES 'X' ) ;
 540 :       ZDI = 1 ;
 541 :       MODI = 'MOT' 'UX' ;
 542 :     'FINSI' ;
 543 :     'SI' ( 'EGA' ZMORES 'Y' ) ;
 544 :       ZDI = 2 ;
 545 :       MODI = 'MOT' 'UY' ;
 546 :     'FINSI' ;
 547 :     'SI' ( 'EGA' ZMORES 'Z' ) ;
 548 :       ZDI = 3 ;
 549 :       MODI = 'MOT' 'UZ' ;
 550 :     'FINSI' ;
 551 : *----- fin mise a jour --------------*
 552 :   ZSOR = 0 ; 
 553 :    'REPETER' ZLOOP36 ZNSOR ;
 554 :      ZSOR = ZSOR '+' 1 ;
 555 :      ZMOSOR =  'MOT'  ZTABSOR . ZSOR  ;
 556 :       'SI' ( ( 'EGA' ZMOSOR 'DEPLACEMENTS' ) 
 557 :         'OU' ( 'EGA' ZMOSOR 'ACCELERATIONS' ) ) ;
 558 :         ZREP =  ZTDEPL.ZUN1 '*' 0. ; 
 559 :         'SI'  ( 'EGA' ZMOSOR 'ACCELERATIONS' ) ;
 560 :           ZVMOD = 'VALE' 'MODE' ;
 561 :           'SI' ( 'EGA' ZVMOD 'FOUR' ) ;
 562 :             'SI' ( 'EGA' MODI 'UX' );
 563 :               ZU = 'MANU' 'CHPO' ZMAI1 2 'UR' 1.0 'UT' -1.
 564 :                                        'NATURE' 'DIFFUS' ;
 565 :             'FINSI'  ;
 566 :             'SI' ( 'EGA' MODI 'UY' );
 567 :               ZU = 'MANU' 'CHPO' ZMAI1 2 'UR' 1.0 'UT' 1.
 568 :                                        'NATURE' 'DIFFUS' ;
 569 :             'FINSI'  ;
 570 :           'SINON' ;
 571 :              'SI' ( ( 'EGA' ZVMOD 'AXIS' ) 'ET' 
 572 :              ( ( 'EGA' MODI 'UX' ) 'OU' ( 'EGA' MODI 'UY' ) ) );
 573 :                'MESS' 'UNE STRUCTURE AXISYMETRIQUE N EST EXCITABLE'
 574 :                       ' QUE PAR UN SEISME VERTICAL' ;
 575 :                'ERREUR' 'PROC_SISSI' ;
 576 :              'FINSI' ;
 577 :             ZU = 'MANU' 'CHPO' ZMAI1 1 MODI 1.0 'NATURE' 'DIFFUS' ;
 578 :           'FINSI';
 579 :           ZTRON = ZU ;
 580 :           ZK = 0 ;
 581 :            'REPETER' ZLOOP38 ZNMOD ;
 582 :              ZK = ZK '+' 1 ;
 583 :              ZTRON = ZTRON '-' ( ZQSM.ZK.ZDI '*' ZTDEPL.ZK ) ;
 584 :            'FIN' ZLOOP38 ;
 585 :         'FINSI' ;
 586 :       'FINSI';
 587 :       'SI' ( 'EGA' ZMOSOR 'CONTRAINTES' ) ;
 588 :         ZREP  = ZTCONT.ZUN1 '*' 0. ;
 589 :       'FINSI' ;
 590 :       'SI' ( 'EGA' ZMOSOR 'REACTIONS' ) ;
 591 :         ZREP = ZTMOD.ZUN1.'REACTION_MODALE' '*' 0. ;
 592 :       'FINSI' ;
 593 :      ZI = 0 ;
 594 :       'REPETER' ZLOOP37 ZNMOD ;
 595 :         ZI = ZI '+' 1 ;
 596 : *
 597 : *ON ASSOCIE LES BONS QN AUX BONNES DIRECTIONS DE SEISME
 598 : *
 599 :           'SI' ('EGA' ZMORES 'X');
 600 :             ZCOEFI = ZTSPEC.ZI.ZDIR '*' ZQSMW2.ZI.1;
 601 :             'SI' ( 'EGA' ZMOSOR  'ACCELERATIONS' ) ;
 602 :                 ZCOEFI = ZTSPEC.ZI.ZDIR '*' ZQSM.ZI.1 ;
 603 :             'FINSI' ; 
 604 :           'FINSI';
 605 :           'SI' ('EGA' ZMORES 'Y');
 606 :             ZCOEFI = ZTSPEC.ZI.ZDIR '*' ZQSMW2.ZI.2;
 607 :             'SI' ( 'EGA' ZMOSOR  'ACCELERATIONS' ) ;
 608 :                 ZCOEFI = ZTSPEC.ZI.ZDIR '*' ZQSM.ZI.2 ;
 609 :             'FINSI' ; 
 610 :           'FINSI';
 611 :           'SI' ('EGA' ZMORES 'Z');
 612 :             ZCOEFI = ZTSPEC.ZI.ZDIR '*' ZQSMW2.ZI.3;
 613 :             'SI' ( 'EGA' ZMOSOR  'ACCELERATIONS' ) ;
 614 :                 ZCOEFI = ZTSPEC.ZI.ZDIR '*' ZQSM.ZI.3 ;
 615 :             'FINSI' ; 
 616 :           'FINSI';
 617 : ******   PARTIE SRSS ON Y PASSE TOUJOURS ******
 618 :         'SI'  ( 'EGA' ZMOSOR 'DEPLACEMENTS' ) ;
 619 :           ZREP = ZREP '+' ( ( ZCOEFI '*' ZCOEFI ) '*'
 620 :                  (  ZTDEPL.ZI '**' 2 ) ); 
 621 :         'FINSI' ; 
 622 :         'SI'  ( 'EGA' ZMOSOR 'ACCELERATIONS' ) ;
 623 :           ZREP = ZREP '+' ( ( ZCOEFI '*' ZCOEFI ) '*' 
 624 :                    ( ZTDEPL.ZI '**' 2 )  ) ;
 625 :         'FINSI';
 626 :         'SI' ( 'EGA' ZMOSOR 'CONTRAINTES' ) ;
 627 :           ZREP = ZREP '+' ( ( ZCOEFI '*' ZCOEFI ) '*' 
 628 :                    ( ZTCONT.ZI '*' ZTCONT.ZI )  ) ;
 629 :         'FINSI' ;
 630 :         'SI' ( 'EGA' ZMOSOR 'REACTIONS' ) ;
 631 :           ZREI = ZTMOD.ZI.'REACTION_MODALE'  ;
 632 :           ZREP = ZREP '+' ( ( ZCOEFI '*' ZCOEFI ) '*' 
 633 :                    ( ZREI '**' 2 ) )  ;
 634 :         'FINSI' ;
 635 : ******     TRAITEMENT DES DIFFERENTES METHODES DE RECOMBINAISON     ***********
 636 :         ZMREC = TAB1.'RECOMBINAISON_MODES';
 637 : 
 638 :         'SI' ( ( 'NEG' ZMREC  'SRSS' ) 'ET' ( ZI >EG 2 ) ) ;
 639 :           ZJ = 0 ;
 640 :           'REPETER' ZLOOP40 ( ZI '-' 1 ) ;
 641 :             ZJ = ZJ '+' 1 ;
 642 :             ZCOEFJ = ZTSPEC.ZJ.ZDIR '*' ZQSMW2.ZJ.ZDI ;
 643 :              'SI' ( 'EGA' ZMOSOR  'ACCELERATIONS' ) ;
 644 :                ZCOEFJ = ZTSPEC.ZJ.ZDIR '*' ZQSM.ZJ.ZDI ;
 645 :              'FINSI' ;
 646 :             'SI'  ( 'EGA' ZMOSOR 'DEPLACEMENTS' ) ;
 647 :               ZCH1 = MULC ZTDEPL.ZI  ZTDEPL.ZJ ;
 648 :               ZREPC = 2. '*' ZTPIJ.ZI.ZJ '*' ( ZCOEFI '*' ZCOEFJ ) '*' 
 649 :                          ZCH1  ;
 650 :             'FINSI' ; 
 651 :             'SI'  ( 'EGA' ZMOSOR 'ACCELERATIONS' ) ;
 652 :               ZCH2 = MULC ZTDEPL.ZI  ZTDEPL.ZJ ;
 653 :               ZREPC = 2. '*' ZTPIJ.ZI.ZJ '*' ( ZCOEFI '*' ZCOEFJ ) '*' 
 654 :                          ZCH2  ;
 655 :             'FINSI';
 656 :             'SI' ( 'EGA' ZMOSOR 'CONTRAINTES' ) ;
 657 :               ZREPC = 2. '*' ZTPIJ.ZI.ZJ '*' ( ZCOEFI '*' ZCOEFJ ) '*' 
 658 :                    ( ZTCONT.ZI '*' ZTCONT.ZJ )  ;
 659 :             'FINSI' ;
 660 :             'SI' ( 'EGA' ZMOSOR 'REACTIONS' ) ;
 661 :               ZREI = ZTMOD.ZI.'REACTION_MODALE'  ;
 662 :               ZREJ = ZTMOD.ZJ.'REACTION_MODALE'  ;
 663 :               ZCH3 = MULC  ZREI  ZREJ ;
 664 :               ZREPC =  2. '*' ZTPIJ.ZI.ZJ '*' ( ZCOEFI '*' ZCOEFJ ) '*' 
 665 :                           ZCH3  ;
 666 :             'FINSI' ;
 667 :             'SI' ( 'EGA' ZMREC  'DIX_POUR_CENT' ) ;
 668 :               ZREPC = 'ABS' ZREPC ; 
 669 :             'FINSI';
 670 :             'SI' ( 'EGA' ZJ 1 ) ;
 671 :               ZREPCT = ZREPC ;
 672 :             'SINON' ;
 673 :               ZREPCT = ZREPCT '+' ZREPC ;
 674 :             'FINSI' ; 
 675 :           'FIN' ZLOOP40 ;
 676 :           ZREP = ZREP '+' ZREPCT ;
 677 :         'FINSI' ;
 678 :       'FIN' ZLOOP37 ;
 679 : ******     ACCELERATION TERME COMPLEMENTAIRE    ********
 680 :         'SI'  ( 'EGA' ZMOSOR 'ACCELERATIONS' ) ;
 681 :           GAMA0 = ZTGAM.ZDIR ; 
 682 :           ZREP = ZREP '+' ( ( GAMA0 '*' GAMA0 ) 
 683 :                         '*' ( ZTRON '**' 2 ) ) ;
 684 :         'FINSI' ; 
 685 : ******     ON RAJOUTE LES PSEUDOMODES           ********
 686 :         'SI' ZPSEU ;
 687 :           GAMA0 = ZTGAM.ZDIR ; 
 688 :            'SI'  ( 'EGA' ZMOSOR 'DEPLACEMENTS' ) ;
 689 :              ZREP = ZREP '+' ( ( GAMA0 '*' GAMA0 ) 
 690 :                  * ( ZTPSEU.ZDI.'DEPLACEMENT' '**' 2 ) ) ;         
 691 :            'FINSI' ;   
 692 :            'SI'  ( 'EGA' ZMOSOR 'CONTRAINTES' ) ;
 693 :              ZREP = ZREP '+' ( ( GAMA0 '*' GAMA0 ) 
 694 :                  * ( ZTPSEU.ZDI.'CONTRAINTE' '**' 2 ) ) ;         
 695 :            'FINSI' ;  
 696 :            'SI'  ( 'EGA' ZMOSOR 'REACTIONS' ) ;
 697 :              ZREP = ZREP '+' ( ( GAMA0 '*' GAMA0 ) 
 698 :                  * ( ZTPSEU.ZDI.'REACTION' '**' 2 ) ) ;         
 699 :            'FINSI' ;          
 700 :         'FINSI' ; 
 701 : ******     ECRITURE DNS LA TABLE DE RESULTATS   ******* 
 702 :         ZREP = ( 'ABS' ZREP ) '**' 0.5 ;
 703 :         TRESDIR.ZMOSOR = ZREP ; 
 704 :    'FIN' ZLOOP36 ; 
 705 : 'FIN' ZLOOP35 ;
 706 : *
 707 : *   *****  COMBINAISON DES DIRECTIONS   ******
 708 : *
 709 : TREST = 'TABLE' 'RESULTATS_TOTAUX' ;
 710 : TRESU.'REPONSE_TOTALE'  = TREST ;
 711 :  'SI' ( 'EGA' TAB1.'RECOMBINAISON_DIRECTIONS' 'QUADRATIQUE' ) ; 
 712 :    ZSOR = 0 ; 
 713 :     'REPETER' ZLOOP50 ZNSOR ;
 714 :       ZSOR = ZSOR '+' 1 ;
 715 :       ZMOSOR = 'MOT'  ZTABSOR . ZSOR  ;
 716 :       ZDIR = 0 ;
 717 :        'REPETER' ZLOOP51 ZNDIR ;
 718 :          ZDIR = ZDIR '+' 1 ;
 719 :          ZMORES = TAB1.'EXCITATION'.ZDIR.'DIRECTION'  ;
 720 :           'SI' ( 'EGA' ZDIR 1 ) ;
 721 :             ZREPT = TRESU.ZMORES.ZMOSOR '**' 2 ;
 722 :           'SINON' ;
 723 :             ZREPT = ZREPT '+' ( TRESU.ZMORES.ZMOSOR '**' 2 ) ;
 724 :           'FINSI' ;
 725 :        'FIN' ZLOOP51 ;
 726 :        TREST.ZMOSOR = ZREPT '**' 0.5 ;
 727 :     'FIN' ZLOOP50 ;
 728 :   'FINSI' ;
 729 : *
 730 : *
 731 : *      IMPRESSION DES RESULTATS 
 732 : *
 733 : ZIMPR = FAUX ;
 734 : 'SI' ( 'EXISTE' TAB1 'IMPRESSION' ) ;
 735 :   ZIMPR1 = TAB1.'IMPRESSION'  ;
 736 :   ZTYP2 = 'TYPE' ZIMPR1 ;
 737 :    'SI' ( 'EGA' ZTYP2 'LOGIQUE ' ) ;
 738 :      ZIMPR = ZIMPR1 ;
 739 :    'SINON' ;
 740 :      'MESSAGE' 'A L INDICE IMPRESSION IL FAUT DONNER '
 741 :                 'UN OBJET DE TYPE LOGIQUE' ;
 742 :      'ERREUR' 'PROC_SISSI' ;
 743 :    'FINSI' ;
 744 : *
 745 : 'FINSI' ;
 746 : 'SI' ZIMPR ;
 747 :  'SAUTE' 20 'LIGNE' ;
 748 :  'MESS'  '          |-------------------------------------------|' ;
 749 :  'MESS'  '          |   RESULTATS DE LA PROCEDURE    S I S S I  |' ; 
 750 :  'MESS'  '          |___________________________________________|' ;
 751 :  'SAUTE' 5 'LIGNE' ;
 752 : *
 753 :  'MESS' '              VALEUR DU SPECTRE' ;
 754 :  'MESS' '              -----------------' ;
 755 :  'SAUTE' 2 'LIGNE' ;
 756 :  ZI = 0 ;
 757 :  'REPETER' ZLOOP60 ZNMOD ;
 758 :    ZI = ZI '+' 1 ;
 759 :    ZFI = ZTMOD.ZI.'FREQUENCE' ;
 760 :    ZXSI = 'EXTRAIRE' TAB1.'AMORTISSEMENT' ZI ;
 761 :    'MESS' 'MODE NUMERO : '  ZI ' FREQUENCE : ' ZFI 'HZ' 
 762 :            ' AMORTISSEMENT : ' ZXSI ;
 763 :    ZDIR = 0 ;
 764 :    'REPETER' ZLOOP61 ZNDIR ;
 765 :      ZDIR = ZDIR '+' 1 ;
 766 :      ZMODIR  = 'MOT' TAB1.'EXCITATION'.ZDIR.'DIRECTION' ;
 767 :      'MESS' '                    SPECTRE ' ZMODIR  ' : '
 768 :             TRESU.'REPRISE'.'SPECTRE'.ZI.ZDIR ;
 769 :    'FIN' ZLOOP61 ;
 770 :   'SAUTE' 2 'LIGNE' ;
 771 :  'FIN' ZLOOP60 ;
 772 : *
 773 : *
 774 :  'SAUTE' 5 'LIGNE' ;
 775 :  'MESS' '             COEFFICIENTS DE CORRELATION ENTRE MODES' ;
 776 :  'MESS' '             ---------------------------------------' ;
 777 :  'SAUTE' 2 'LIGNE' ;
 778 :  ZI = 1 ;
 779 :  'REPETER' ZLOOP62 ( ZNMOD  '-' 1 ) ;
 780 :    ZI = ZI '+' 1 ;
 781 :    ZJ = 0 ;
 782 :    'REPETER' ZLOOP63  ( ZI '-'  1 ) ;
 783 :      ZJ = ZJ '+' 1 ;
 784 :      'MESS' '      I' ZI 'J' ZJ 'PIJ' TRESU.'REPRISE'.'PIJ'.ZI.ZJ ;
 785 :    'FIN' ZLOOP63 ;
 786 :     'SAUT' 4 'LIGNE' ; 
 787 :   'FIN' ZLOOP62 ;
 788 : *
 789 : *
 790 :  ZDIR = 0;
 791 :  'REPETER' ZLOOP64 ZNDIR ;
 792 :    ZDIR = ZDIR '+' 1 ;
 793 :    ZMODIR = 'MOT' TAB1.'EXCITATION'.ZDIR.'DIRECTION' ;
 794 :    'MESS' '         DIRECTION ' ZDIR ' : '  ZMODIR ;
 795 :    'MESS' '         -------------------------------' ;
 796 :    'SAUTE' 2 'LIGNE' ;
 797 :    ZSOR = 0 ;
 798 :    'REPETER' ZLOOP65 ZNSOR ;
 799 :      ZSOR = ZSOR '+' 1 ;
 800 :      ZMOSOR = 'MOT' ZTABSOR . ZSOR  ;
 801 :      'MESS' 'GRANDEUR  ' ZSOR  ' : ' ZMOSOR ;
 802 :      'MESS' '++++++++++++++++++++++++++++++++' ;
 803 :      'LIST' TRESU.ZMODIR.ZMOSOR ;
 804 :    'FIN' ZLOOP65 ; 
 805 :  'FIN' ZLOOP64 ;
 806 : *
 807 : *
 808 :  ZSOR = 0 ;
 809 :  'MESS' '     REPONSE COMBINEE TOUTES DIRECTIONS D EXCITATION' ;
 810 :  'MESS' '     -----------------------------------------------' ;
 811 :  'SAUTE' 2 'LIGNE' ;
 812 :   'REPETER' ZLOOP66 ZNSOR ;
 813 :    ZSOR = ZSOR '+' 1 ;
 814 :    ZMOSOR = 'MOT' ZTABSOR . ZSOR  ;
 815 :    'MESS' 'GRANDEUR  ' ZSOR  ' : ' ZMOSOR ;
 816 :    'MESS' '++++++++++++++++++++++++++++++++' ;
 817 :    'LIST' TRESU.'REPONSE_TOTALE'.ZMOSOR ;
 818 :   'FIN' ZLOOP66 ;
 819 : *
 820 : 'FINSI' ;
 821 : *
 822 : 'MENAGE' ;
 823 : * 
 824 : 'FINPROC' TRESU ;
 825 :  
 826 :  

© Cast3M 2003 - All rights reserved.
Disclaimer