1 : * @RCCM PROCEDUR JC220346 12/09/12 21:15:08 7501 2 : * RCCM PROCEDURE 96/11/20 09:00:00 3 : * ---------------------------------------------------------------------- 4 : ****** PROCEDURE @RCCM ****** 5 : * ---------------------------------------------------------------------- 6 : * 7 : * CETTE PROCEDURE PERMET D'EFFECTUER UN DEPOUILLEMENT RCCM : 8 : * - linearisations de coupes 9 : * - variations d'etats 10 : * - fatigue 11 : * 12 : * ---------------------------------------------------------------------- 13 : * 14 : * LES DONNEES SONT : 15 : * ----> la table de definition des coupes 16 : * ----> la table de definition des etats 17 : * ----> la table de definition des groupes de transitoires 18 : * ----> la table pour le calcul a la fatigue 19 : * 20 : * EN SORTIE : 21 : * ----> impression des resultats 22 : * 23 : * ---------------------------------------------------------------------- 24 : * PAR Joseph MANNINO 25 : * ---------------------------------------------------------------------- 26 : 'DEBPROC' @RCCM TABCOUP*TABLE TABET*TABLE TABGROU/TABLE TABFATI/TABLE; 27 : 28 : * ====================================================================== 29 : * initialisations 30 : * ====================================================================== 31 : MESSAGE ' ' ; 32 : MESSAGE '***** DEBUT DU CALCUL RCCM *****' ; 33 : MESSAGE '--------------------------------' ; 34 : MESSAGE ' ' ; 35 : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 : * formation de la table des etats (la table des etats 37 : * thermomecaniques doit etre complete ; la table des etats thermiques 38 : * peut etre incomplete ou vide, elle est alors completee ici) 39 : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 : M = MOT M ; 41 : T = MOT T ; 42 : FLEXT = VRAI ; 43 : SI (NON (EXISTE TABET M)) ; 44 : MESSAGE 'LA TABLE DES ETATS THERMOMECANIQUES NE CONVIENT PAS' ; 45 : QUITTER @RCCM ; 46 : FINSI ; 47 : NETM = DIME TABET.M ; 48 : SI (NETM EGA 0) ; 49 : MESSAGE 'LA TABLE DES ETATS THERMOMECANIQUES NE CONVIENT PAS' ; 50 : QUITTER @RCCM ; 51 : FINSI ; 52 : REPETER BOUCLE (NETM) ; 53 : I = &BOUCLE ; 54 : SI (NON (EXISTE (TABET.M) I)) ; 55 : MESSAGE 'LA TABLE DES ETATS THERMOMECANIQUES NE CONVIENT PAS' ; 56 : QUITTER @RCCM ; 57 : FINSI ; 58 : FIN BOUCLE ; 59 : SI (NON (EXISTE TABET T)) ; 60 : FLEXT = FAUX ; 61 : FINSI ; 62 : SI (EXISTE TABET T) ; 63 : SI ((DIME TABET.T) > 0) ; 64 : INDT = INDEX (TABET.T) ; 65 : REPETER BOUCLE (DIME INDT) ; 66 : J = &BOUCLE ; 67 : K = INDT.J ; 68 : SI ((K > NETM) OU (K < 1)) ; 69 : MESSAGE 'LA TABLE DES ETATS THERMIQUES NE CONVIENT PAS' ; 70 : QUITTER @RCCM ; 71 : FINSI ; 72 : FIN BOUCLE ; 73 : FINSI ; 74 : FINSI ; 75 : TABETAT = TABLE ; 76 : REPETER BOUCLE (NETM) ; 77 : I = &BOUCLE ; 78 : TABETAT.I = TABET.M.I ; 79 : FIN BOUCLE ; 80 : REPETER BOUCLE (NETM) ; 81 : I = &BOUCLE ; 82 : J = I + NETM ; 83 : SI (FLEXT) ; 84 : SI (EXISTE (TABET.T) I) ; 85 : TABETAT.J = TABET.T.I ; 86 : SINON ; 87 : TABETAT.J = (TABETAT.I) * 0. ; 88 : FINSI ; 89 : FINSI ; 90 : FIN BOUCLE ; 91 : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 92 : * formation de la table des groupes (la table des groupes thermiques 93 : * est formee a partir des groupes thermomecaniques) : 94 : * - 1 : groupe thermomecanique 95 : * - 2 : groupe thermique permettant d'exclure la flexion thermique 96 : * reorganisation de la table des groupes : 97 : * - l'etat 0 est mis a la fin 98 : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 99 : NCOUPS = DIME TABCOUP ; 100 : NETATS = DIME TABETAT ; 101 : L = 1 ; 102 : M = 2 ; 103 : SI ( EXISTE TABGROU ) ; 104 : TABGROU.M = TABLE ; 105 : NGROUPTM = DIME TABGROU.L ; 106 : SI ( NGROUPTM EGA 0 ) ; 107 : MESSAGE 'LES LISTES DES GROUPES NE CONVIENNENT PAS' ; 108 : QUITTER @RCCM ; 109 : FINSI ; 110 : REPETER BOUCLE1 (NGROUPTM) ; 111 : I = &BOUCLE1 ; 112 : LETAT1 = TABGROU.L.I ; 113 : LETAT2 = LECT ; 114 : REPETER BOUCLE2 (DIME LETAT1) ; 115 : J = &BOUCLE2 ; 116 : ETAT = EXTRAIRE LETAT1 J ; 117 : SI (ETAT EGA 0) ; 118 : LETAT2 = LETAT2 ET (LECT ETAT) ; 119 : SINON ; 120 : LETAT2 = LETAT2 ET (LECT (ETAT+NETM)) ; 121 : FINSI ; 122 : FIN BOUCLE2 ; 123 : SI (FLEXT) ; 124 : TABGROU.M.I = LETAT2 ; 125 : MESSAGE ' ' ; 126 : MESSAGE 'CREATION DU GROUPE THERMIQUE CORRESPONDANT AU GROUPE ' 127 : 'THERMOMECANIQUE' I ; 128 : LIST LETAT2 ; 129 : MESSAGE ' ' ; 130 : SINON ; 131 : TABGROU.M.I = LETAT1 ; 132 : MESSAGE ' ' ; 133 : MESSAGE 'ATTENTION VOUS AVEZ EXCLU TOUTE LA FLEXION AU GROUPE ' 134 : 'THERMOMECANIQUE' I ; 135 : LIST LETAT1 ; 136 : MESSAGE ' ' ; 137 : FINSI ; 138 : FIN BOUCLE1 ; 139 : REPETER BOUCLE1 (NGROUPTM) ; 140 : I = &BOUCLE1 ; 141 : LETAT1 = ORDONNER 'DECROISSANT' (TABGROU.L.I) ; 142 : LETAT2 = ORDONNER 'DECROISSANT' (TABGROU.M.I) ; 143 : TABGROU.L.I = LETAT1 ; 144 : TABGROU.M.I = LETAT2 ; 145 : FIN BOUCLE1 ; 146 : FINSI ; 147 : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 : * INITIALISATIONS 149 : * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 : SEISME = FAUX ; 151 : DIMP = VALE DIME ; 152 : TCE = TABLE ; 153 : TVTMG = TABLE ; 154 : TVTHG = TABLE ; 155 : TVARSG = TABLE ; 156 : TABOCCUR = TABLE ; 157 : TABDONF = TABLE ; 158 : ID = 1 ; 159 : IND1 = 1 ; 160 : IND2 = 2 ; 161 : IND3 = 3 ; 162 : IND4 = 4 ; 163 : IND5 = 5 ; 164 : IND6 = 6 ; 165 : IND7 = 7 ; 166 : IND8 = 8 ; 167 : IND9 = 9 ; 168 : * ====================================================================== 169 : * verifications 170 : * ====================================================================== 171 : MESSAGE ' ' ; 172 : MESSAGE '---> phase verification' ; 173 : MESSAGE ' ------------------' ; 174 : MESSAGE ' ' ; 175 : SI ( ( NCOUPS EGA 0 ) OU ( NETATS EGA 0 ) ) ; 176 : QUITTER @RCCM ; 177 : FINSI ; 178 : SI ( EXISTE TABGROU ) ; 179 : REPETER BOUCLE1 ( NGROUPTM ) ; 180 : I = &BOUCLE1 ; 181 : LISTETM = TABGROU.IND1.I ; 182 : NTRANS = DIME LISTETM ; 183 : REPETER BOUCLE2 ( NTRANS ) ; 184 : J = &BOUCLE2 ; 185 : ETAT = EXTRAIRE LISTETM J ; 186 : SI ( ( ETAT > NETATS ) OU ( ETAT < 0 ) ) ; 187 : MESSAGE 'LA FORMATION DES GROUPES THERMO-MECANIQUES NE CONVIENT 188 : PAS' ; 189 : QUITTER @RCCM ; 190 : FINSI ; 191 : FIN BOUCLE2 ; 192 : LISTETH = TABGROU.IND2.I ; 193 : NTRANS = DIME LISTETH ; 194 : REPETER BOUCLE2 ( NTRANS ) ; 195 : J = &BOUCLE2 ; 196 : ETAT = EXTRAIRE LISTETH J ; 197 : SI ( ( ETAT > NETATS ) OU ( ETAT < 0 ) ) ; 198 : MESSAGE 'LA FORMATION DES GROUPES POUR EXCLUSION DE LA FLEXION T 199 : HERMIQUE NE CONVIENT PAS' ; 200 : QUITTER @RCCM ; 201 : FINSI ; 202 : FIN BOUCLE2 ; 203 : FIN BOUCLE1 ; 204 : SI ( EXISTE TABFATI ) ; 205 : NTABFAT1 = DIME TABFATI.IND1 ; 206 : SI ( NTABFAT1 NEG NGROUPTM ) ; 207 : MESSAGE 'LA TABLE DES NOMBRES D"OCCURENCES POUR LA FATIGUE NE CONV 208 : IENT PAS' ; 209 : QUITTER @RCCM ; 210 : FINSI ; 211 : NTABFAT2 = DIME TABFATI.IND2 ; 212 : SI ( NTABFAT2 NEG NCOUPS ) ; 213 : MESSAGE 'LA TABLE DE DESCRIPTION DES MATERIAUX POUR LA FATIGUE NE 214 : CONVIENT PAS' ; 215 : QUITTER @RCCM ; 216 : FINSI ; 217 : SI (EXISTE TABFATI IND3) ; 218 : SEISME = VRAI ; 219 : NTABFAT3 = DIME TABFATI.IND3 ; 220 : SI ( NTABFAT3 NEG NCOUPS ) ; 221 : MESSAGE 'LA TABLE DE DESCRIPTION DES SEISMES POUR LA FATIGUE NE 222 : CO NVIENT PAS' ; 223 : QUITTER @RCCM ; 224 : FINSI ; 225 : FINSI ; 226 : REPETER BOUCLE1 ( NCOUPS ) ; 227 : I = &BOUCLE1 ; 228 : LISTEMA = TABFATI.IND2.I ; 229 : NMATER = DIME ( LISTEMA ) ; 230 : SI (((NON SEISME) ET (NMATER NEG 6)) OU 231 : (SEISME ET (NMATER NEG 7))) ; 232 : MESSAGE 'LA TABLE DE DESCRIPTION DES MATERIAUX POUR LA FATIGUE N 233 : E CONVIENT PAS' ; 234 : QUITTER @RCCM ; 235 : FINSI ; 236 : FIN BOUCLE1 ; 237 : SI (SEISME) ; 238 : REPETER BOUCLE1 ( NCOUPS ) ; 239 : I = &BOUCLE1 ; 240 : LISTSEI = TABFATI.IND3.I ; 241 : NCTORS = DIME ( LISTSEI ) ; 242 : SI (((DIMP EGA 2) ET (NCTORS NEG 6)) OU 243 : ((DIMP EGA 3) ET (NCTORS NEG 8))) ; 244 : MESSAGE 'LA TABLE DE DESCRIPTION DU SEISME POUR LA FATIGUE NE 245 : CONVIENT PAS' ; 246 : QUITTER @RCCM ; 247 : FINSI ; 248 : FIN BOUCLE1 ; 249 : FINSI ; 250 : FINSI ; 251 : FINSI ; 252 : * ====================================================================== 253 : * coupes et linearisation des contraintes 254 : * ====================================================================== 255 : MESSAGE ' ' ; 256 : MESSAGE '---> phase coupes et linearisation des contraintes' ; 257 : MESSAGE ' ---------------------------------------------' ; 258 : MESSAGE ' ' ; 259 : * ---------------------------------------------------------------------- 260 : * boucle sur les etats 261 : * ---------------------------------------------------------------------- 262 : REPETER BOUCLE1 ( NETATS ) ; 263 : I = &BOUCLE1 ; 264 : TCE.I = TABLE ; 265 : * ---------------------------------------------------------------------- 266 : * boucle sur les coupes 267 : * ---------------------------------------------------------------------- 268 : REPETER BOUCLE2 ( NCOUPS ) ; 269 : J = &BOUCLE2 ; 270 : MESSAGE ' ' ; 271 : MESSAGE ' ---> etat ' I ' coupe ' J ; 272 : MESSAGE ' -------------------------' ; 273 : MESSAGE ' ' ; 274 : 275 : TCE.I.J = @RCCMCO2 I J TABCOUP.J.IND1 TABCOUP.J.IND2 276 : TABCOUP.J.IND3 TABCOUP.J.IND4 277 : TABETAT.I TABCOUP.J.IND5 278 : TABCOUP.J.IND6 TABCOUP.J.IND7 279 : TABCOUP.J.IND8 TABCOUP.J.IND9; 280 : 'SI' ('NEG' ('TYPE' (TCE.I.J)) 'TABLE '); 281 : 'SI' ('EGA' (TCE.I.J) 'ARRET') ;'QUITTER' @RCCM ;'FINSI' ; 282 : 'FINSI'; 283 : FIN BOUCLE2 ; 284 : FIN BOUCLE1 ; 285 : MESSAGE ' ' ; 286 : MESSAGE '---> fin phase coupes et linearisation des contraintes' ; 287 : MESSAGE ' -------------------------------------------------' ; 288 : MESSAGE ' ' ; 289 : * ====================================================================== 290 : * variations et fatigue 291 : * ====================================================================== 292 : SI ( EXISTE TABGROU ) ; 293 : SI ( NGROUPTM >EG 1 ) ; 294 : MESSAGE ' ' ; 295 : MESSAGE '---> phase variations' ; 296 : MESSAGE ' ----------------' ; 297 : MESSAGE ' ' ; 298 : * ---------------------------------------------------------------------- 299 : * variations si TABGROU existe 300 : * ---------------------------------------------------------------------- 301 : *modif VARIATI: la procedure VARIATI est supprimee 302 : *et est directement integree ci dessous 303 : *en conservant la notice explicative 304 : *modif effectuees avant l entree dans variati: 305 : * BOUCL01 a 03 remplacent BOUCLE1 a 3 306 : * II JJ KK LL MM NN ont remplace I J K L M N 307 : 308 : REPETER BOUCL01 ( NGROUPTM ) ; 309 : II = &BOUCL01 ; 310 : LISTETM = TABGROU.IND1.II ; 311 : LISTETH = TABGROU.IND2.II ; 312 : NTRANS = DIME LISTETM ; 313 : REPETER BOUCL02 ( NCOUPS ) ; 314 : JJ = &BOUCL02 ; 315 : TVTMG.JJ = TABLE ; 316 : TVTHG.JJ = TABLE ; 317 : LL = 0 ; 318 : REPETER BOUCL03 ( NTRANS ) ; 319 : KK = &BOUCL03 ; 320 : SAUT LIGNE;TIRET= 321 : ' ---------------------------------------------------'; 322 : MESSAGE ' ---> groupe ' II ' coupe ' JJ ' transitoire TM ' KK ; 323 : MESSAGE TIRET; 324 : MESSAGE ' ' ; 325 : ETAT = EXTRAIRE LISTETM KK ; 326 : SI ( ETAT NEG 0 ) ; 327 : LL = LL + 1 ; 328 : TVTMG.JJ.LL = TCE.ETAT.JJ ; 329 : FINSI ; 330 : FIN BOUCL03 ; 331 : NN = 0 ; 332 : REPETER BOUCL03 ( NTRANS ) ; 333 : MM = &BOUCL03 ; 334 : SAUT LIGNE; 335 : MESSAGE ' ---> groupe ' II ' coupe ' JJ ' transitoire TH ' MM ; 336 : MESSAGE TIRET; 337 : SAUT LIGNE; 338 : ETAT = EXTRAIRE LISTETH MM ; 339 : SI ( ETAT NEG 0 ) ; 340 : NN = NN + 1 ; 341 : TVTHG.JJ.NN = TCE.ETAT.JJ ; 342 : FINSI ; 343 : FIN BOUCL03 ; 344 : FIN BOUCL02 ; 345 : *LIST (TVTMG . 1 . 1) ; 346 : *LIST (TVTMG . 1 . 2) ; 347 : *LIST ( TVTHG . 1 . 1); 348 : *LIST ( TVTHG . 1 . 2); 349 : 350 : 351 : *modif 352 : * SI ( LL NEG KK ) ; 353 : * TVARSG.II = @VARIATI FLEXT TABGROU.ID.II TVTMG TVTHG 'NUL' ; 354 : * SINON ; 355 : * TVARSG.II = @VARIATI FLEXT TABGROU.ID.II TVTMG TVTHG ; 356 : * FINSI ; 357 : *initialisations 358 : MOPT*LOGIQUE = FAUX ; 359 : SI ( LL NEG KK ) ;MOPT*LOGIQUE=VRAI ; FINSI ; 360 : *FLEXT ichange 361 : ETATS = TABGROU.ID.II ; 362 : TABVM = TVTMG ; 363 : TABVT = TVTHG ; 364 : *on garde la notice de variati 365 : *$$$$ @VARIATI 366 : * @VARIATI PROCEDURE 96/10/08 16:00:00 367 : * ---------------------------------------------------------------------- 368 : ****** PROCEDURE @VARIATI ****** 369 : * ---------------------------------------------------------------------- 370 : * 371 : * CETTE PROCEDURE PERMET DE CALCULER LA VARIATION MAXIMALE ENTRE 372 : * 2 TORSEURS, SUR LES PEAUX D'UNE COUPE, SUIVANT LE RCCM. 373 : * 374 : * ---------------------------------------------------------------------- 375 : * 376 : * LES DONNEES SONT : 377 : * ----> une variable logique indiquant si VRAI que la flexion 378 : * thermique est exclue 379 : * ----> la liste des etats du groupe 380 : * ----> une table a 2 indices contenant : 381 : * - premier indice : un numero de coupe 382 : * - deuxieme indice : un chargement mecanique sous forme 383 : * de table a 6 indices comprenant : 384 : * - 1 : torseur de flexion, paroi 385 : * interieure 386 : * - 2 : torseur de membrane+flexion, 387 : * paroi interieure 388 : * - 3 : torseur des contraintes totales, 389 : * paroi interieure 390 : * - 4 : torseur de flexion, paroi 391 : * exterieure 392 : * - 5 : torseur de membrane+flexion, 393 : * paroi exterieure 394 : * - 6 : torseur des contraintes totales, 395 : * paroi exterieure 396 : * ----> une table a 2 indices contenant : 397 : * - premier indice : un numero de coupe 398 : * - deuxieme indice : un chargement thermique sous forme 399 : * de table a 6 indices comprenant : 400 : * - 1 : torseur de flexion, paroi 401 : * interieure 402 : * - 2 : torseur de membrane+flexion, 403 : * paroi interieure 404 : * - 3 : torseur des contraintes totales, 405 : * paroi interieure 406 : * - 4 : torseur de flexion, paroi 407 : * exterieure 408 : * - 5 : torseur de membrane+flexion, 409 : * paroi exterieure 410 : * - 6 : torseur des contraintes totales, 411 : * paroi exterieure 412 : * ----> un mot eventuel permettant de prendre en compte un chargement 413 : * supplementaire nul 414 : * 415 : * EN SORTIE : 416 : * ----> impression des resultats 417 : * ----> sortie d'une table a 4 indices contenant : 418 : * - premier indice : numero de coupe 419 : * - deuxieme indice : code : 420 : * - 1 : paroi interieure 421 : * - 2 : paroi exterieure 422 : * - troisieme indice : code : 423 : * - 1 : contraintes totales 424 : * - 2 : contraintes membrane+flexion 425 : * - 3 : contraintes membrane+flexion, 426 : * flexion thermique exclue 427 : * - quatrieme indice : 5 sorties : 428 : * - 1 : indice du premier torseur 429 : * - 2 : indice du deuxieme torseur 430 : * - 3 : premier torseur 431 : * - 4 : deuxieme torseur 432 : * - 5 : tresca 433 : * 434 : * ---------------------------------------------------------------------- 435 : * PAR Joseph MANNINO 436 : * ---------------------------------------------------------------------- 437 : *debut variati 438 : *'DEBPROC' @VARIATI FLEXT*LOGIQUE ETATS*LISTENTI TABVM*TABLE TABVT*TABLE 439 : * MOPT/MOT ; 440 : * ====================================================================== 441 : * initialisation 442 : * ====================================================================== 443 : * 444 : TAB1 = TABLE ; 445 : TAB2 = TABLE ; 446 : TAB3 = TABLE ; 447 : TABVS = TABLE ; 448 : * ====================================================================== 449 : * nombre de coupes 450 : * ====================================================================== 451 : NCOUP = DIME TABVM ; 452 : SI ( NCOUP NEG ( DIME TABVT ) ) ; 453 : MESSAGE 'LES TABLES POUR VARIATIONS NE CONVIENNENT PAS' ; 454 : QUITTER @RCCM ; 455 : FINSI ; 456 : * ====================================================================== 457 : * creation d'une droite fictive et du modele associe, pour calcul 458 : * du TRESCA 459 : * ====================================================================== 460 : DIMG = VALE 'DIME' ; 461 : MODG = VALE 'MODE' ; 462 : 463 : SI ( DIMG EGA 2 ) ; 464 : P1 = 0. 0. ; 465 : P2 = 1. 0. ; 466 : SINON ; 467 : P1 = 0. 0. 0. ; 468 : P2 = 1. 0. 0. ; 469 : FINSI ; 470 : DR = P1 D 1 P2 ; 471 : MODLDR = MODL DR MECANIQUE ELASTIQUE ; 472 : * ====================================================================== 473 : * boucle sur les coupes 474 : * ====================================================================== 475 : REPETER TCOUP ( NCOUP ) ; 476 : L = &TCOUP ; 477 : $L = CHAINE L/3 ; 478 : TABVS.L = TABLE ; 479 : * ---------------------------------------------------------------------- 480 : * boucle sur les parois interieures et exterieures 481 : * m=1 --> paroi interieure 482 : * m=2 --> paroi exterieure 483 : * ---------------------------------------------------------------------- 484 : 485 : REPETER TPARO ( 2 ) ; 486 : M = &TPARO ; 487 : TABVS.L.M = TABLE ; 488 : * ---------------------------------------------------------------------- 489 : * verification des chargements 490 : * ---------------------------------------------------------------------- 491 : NTORS = DIME TABVM.L ; 492 : SI ( NTORS NEG ( DIME TABVT.L ) ) ; 493 : MESSAGE 'LES TABLES POUR VARIATIONS NE CONVIENNENT PAS' ; 494 : QUITTER @RCCM ; 495 : FINSI ; 496 : * ---------------------------------------------------------------------- 497 : * extraction des chargements 498 : * ---------------------------------------------------------------------- 499 : REPETER TCHAR ( NTORS ) ; 500 : N = &TCHAR ; 501 : TABM = TABVM.L.N ; 502 : TABT = TABVT.L.N ; 503 : SI ( M EGA 1 ) ; 504 : TAB1.N = TABM. 3 ; 505 : TAB2.N = TABM. 2; 506 : TAB3.N = TABT. 1 ; 507 : SINON ; 508 : TAB1.N = TABM. 6 ; 509 : TAB2.N = TABM. 5 ; 510 : TAB3.N = TABT. 4 ; 511 : FINSI ; 512 : FIN TCHAR ; 513 : * ---------------------------------------------------------------------- 514 : * on rajoute eventuellement le chargement null 515 : * ---------------------------------------------------------------------- 516 : SI MOPT ; 517 : NTORS = NTORS + 1 ; 518 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 519 : TAB1.NTORS = PROG 0. 0. 0. 0. 0. 0. ; 520 : TAB2.NTORS = PROG 0. 0. 0. 0. 0. 0. ; 521 : TAB3.NTORS = PROG 0. 0. 0. 0. 0. 0. ; 522 : SINON ; 523 : TAB1.NTORS = PROG 0. 0. 0. 0. ; 524 : TAB2.NTORS = PROG 0. 0. 0. 0. ; 525 : TAB3.NTORS = PROG 0. 0. 0. 0. ; 526 : FINSI ; 527 : FINSI ; 528 : * ====================================================================== 529 : * on soustrait 2 a 2 les torseurs contenus dans tab et on retient 530 : * la combinaison qui donne le plus grand tresca 531 : * ====================================================================== 532 : TREJM1 = 0. ; 533 : TREJM2 = 0. ; 534 : TREJM3 = 0. ; 535 : IS1 = 1 ; 536 : JS1 = 1 ; 537 : IS2 = 1 ; 538 : JS2 = 1 ; 539 : IS3 = 1 ; 540 : JS3 = 1 ; 541 : REPETER BOUCLE1 ( NTORS - 1 ) ; 542 : I = &BOUCLE1 ; 543 : J = I ; 544 : REPETER BOUCLE2 ( NTORS - I ) ; 545 : J = J + 1 ; 546 : TORS1 = TAB1.I - TAB1.J ; 547 : TORS2 = TAB2.I - TAB2.J ; 548 : NFOIS = 2 ; 549 : SI ( EXISTE TAB3 ) ; 550 : TORS3 = ( TAB2.I - TAB3.I ) - ( TAB2.J - TAB3.J ) ; 551 : NFOIS = 3 ; 552 : FINSI ; 553 : REPETER BOUCLE3 ( NFOIS ) ; 554 : K = &BOUCLE3 ; 555 : SI ( K EGA 1 ) ; 556 : S1 = EXTRAIRE TORS1 1 ; 557 : S2 = EXTRAIRE TORS1 2 ; 558 : S3 = EXTRAIRE TORS1 3 ; 559 : S4 = EXTRAIRE TORS1 4 ; 560 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 561 : S5 = EXTRAIRE TORS1 5 ; 562 : S6 = EXTRAIRE TORS1 6 ; 563 : FINSI ; 564 : FINSI ; 565 : SI ( K EGA 2 ) ; 566 : S1 = EXTRAIRE TORS2 1 ; 567 : S2 = EXTRAIRE TORS2 2 ; 568 : S3 = EXTRAIRE TORS2 3 ; 569 : S4 = EXTRAIRE TORS2 4 ; 570 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 571 : S5 = EXTRAIRE TORS2 5 ; 572 : S6 = EXTRAIRE TORS2 6 ; 573 : FINSI ; 574 : FINSI ; 575 : SI ( K EGA 3 ) ; 576 : S1 = EXTRAIRE TORS3 1 ; 577 : S2 = EXTRAIRE TORS3 2 ; 578 : S3 = EXTRAIRE TORS3 3 ; 579 : S4 = EXTRAIRE TORS3 4 ; 580 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 581 : S5 = EXTRAIRE TORS3 5 ; 582 : S6 = EXTRAIRE TORS3 6 ; 583 : FINSI ; 584 : FINSI ; 585 : * ---------------------------------------------------------------------- 586 : * creation d'un champ par element fictif constant sur la droite, 587 : * equivalent au torseur 588 : * ---------------------------------------------------------------------- 589 : SI ( DIMG EGA 2 ) ; 590 : SI ( EGA MODG 'FOUR' ) ; 591 : CHAM1 = MANU 'CHPO' DR 6 'SMRR' S1 'SMZZ' S2 'SMTT' S3 592 : 'SMRZ' S4 'SMRT' S5 'SMZT' S6 ; 593 : SINON ; 594 : SI ( EGA MODG 'AXIS' ) ; 595 : CHAM1 = MANU 'CHPO' DR 4 'SMRR' S1 'SMZZ' S2 'SMTT' S3 596 : 'SMRZ' S4 ; 597 : SINON ; 598 : CHAM1 = MANU 'CHPO' DR 4 'SMXX' S1 'SMYY' S2 'SMZZ' S3 599 : 'SMXY' S4 ; 600 : FINSI ; 601 : FINSI ; 602 : SINON ; 603 : CHAM1 = MANU 'CHPO' DR 6 'SMXX' S1 'SMYY' S2 'SMZZ' S3 604 : 'SMXY' S4 'SMXZ' S5 'SMYZ' S6 ; 605 : FINSI ; 606 : 607 : CHAM2 = CHAN 'CHAM' CHAM1 MODLDR ; 608 : * ---------------------------------------------------------------------- 609 : * calcul du tresca 610 : * ---------------------------------------------------------------------- 611 : CHAM3 = TRES MODLDR CHAM2 ; 612 : SI ( K EGA 1 ) ; 613 : TREJ1 = EXTR CHAM3 'SCAL' 1 1 1 ; 614 : SI ( TREJ1 > TREJM1 ) ; 615 : TREJM1 = TREJ1 ; 616 : IS1 = I ; 617 : JS1 = J ; 618 : FINSI ; 619 : FINSI ; 620 : SI ( K EGA 2 ) ; 621 : TREJ2 = EXTR CHAM3 'SCAL' 1 1 1 ; 622 : SI ( TREJ2 > TREJM2 ) ; 623 : TREJM2 = TREJ2 ; 624 : IS2 = I ; 625 : JS2 = J ; 626 : FINSI ; 627 : FINSI ; 628 : SI ( K EGA 3 ) ; 629 : TREJ3 = EXTR CHAM3 'SCAL' 1 1 1 ; 630 : SI ( TREJ3 > TREJM3 ) ; 631 : TREJM3 = TREJ3 ; 632 : IS3 = I ; 633 : JS3 = J ; 634 : FINSI ; 635 : FINSI ; 636 : DETRUIRE CHAM1 ; 637 : DETRUIRE CHAM2 ; 638 : DETRUIRE CHAM3 ; 639 : FIN BOUCLE3 ; 640 : * ---------------------------------------------------------------------- 641 : * destruction des objets crees a chaque pas 642 : * ---------------------------------------------------------------------- 643 : DETRUIRE TORS1 ; 644 : DETRUIRE TORS2 ; 645 : SI (NFOIS EGA 3 ) ; 646 : DETRUIRE TORS3 ; 647 : FINSI ; 648 : FIN BOUCLE2 ; 649 : FIN BOUCLE1 ; 650 : * ====================================================================== 651 : * resultat de la variation 652 : * ====================================================================== 653 : REPETER BOUCLE3 ( NFOIS ) ; 654 : K = &BOUCLE3 ; 655 : TABVS.L.M.K = TABLE ; 656 : SI ( K EGA 1 ) ; UY = TABVS.L.M.K; 657 : UY . 1 = IS1 ; 658 : UY . 2 = JS1 ; 659 : UY . 3 = TAB1.IS1 ; 660 : UY . 4 = TAB1.JS1 ; 661 : UY . 5 = TREJM1 ; 662 : VAL11 = EXTRAIRE TAB1.IS1 1 ; 663 : VAL21 = EXTRAIRE TAB1.IS1 2 ; 664 : VAL31 = EXTRAIRE TAB1.IS1 3 ; 665 : VAL41 = EXTRAIRE TAB1.IS1 4 ; 666 : $VALT1 = CHAINE FORMAT '(F9.2)' VAL11 VAL21 VAL31 VAL41 ; 667 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 668 : VAL51 = EXTRAIRE TAB1.IS1 5 ; 669 : VAL61 = EXTRAIRE TAB1.IS1 6 ; 670 : $VALT1 = CHAINE $VALT1 FORMAT '(F9.2)' VAL61 VAL51; 671 : FINSI ; 672 : VAL12 = EXTRAIRE TAB1.JS1 1 ; 673 : VAL22 = EXTRAIRE TAB1.JS1 2 ; 674 : VAL32 = EXTRAIRE TAB1.JS1 3 ; 675 : VAL42 = EXTRAIRE TAB1.JS1 4 ; 676 : $VALT2 = CHAINE FORMAT '(F9.2)' VAL12 VAL22 VAL32 VAL42 ; 677 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 678 : VAL52 = EXTRAIRE TAB1.JS1 5 ; 679 : VAL62 = EXTRAIRE TAB1.JS1 6 ; 680 : $VALT2 = CHAINE $VALT2 FORMAT '(F9.2)' VAL62 VAL52; 681 : FINSI ; 682 : IS1E = EXTRAIRE ETATS IS1 ; 683 : JS1E = EXTRAIRE ETATS JS1 ; 684 : $IS1 = CHAINE IS1E/3 ; 685 : $JS1 = CHAINE JS1E/3 ; 686 : $TREJM1 = CHAINE FORMAT '(F9.2)' TREJM1 ; 687 : SAUTER 2 'LIGNE'; 688 : SI ( M EGA 1 ) ; 689 : MESSAGE ' COUPE PAROI INTERIEURE' $L ; 690 : SINON ; 691 : MESSAGE ' COUPE PAROI EXTERIEURE' $L ; 692 : FINSI ; 693 : MESSAGE ' -------------------------' ; 694 : SAUTER 'LIGNE'; 695 : MESSAGE 'VARIATION CONTRAINTES TOTALES = DELTA(PM+PB+Q+F) : SP'; 696 : SAUTER 'LIGNE'; 697 : MESSAGE ' ETAT NO' $IS1 ' -->' $VALT1; 698 : MESSAGE ' ETAT NO' $JS1 ' -->' $VALT2; 699 : MESSAGE ' TRESCA' $TREJM1 ' MPA' ; 700 : FINSI ; 701 : SI ( K EGA 2 ) ; UY= TABVS.L.M.K; 702 : UY . 1 = IS2 ; 703 : UY . 2 = JS2 ; 704 : UY . 3 = TAB2.IS2 ; 705 : UY . 4 = TAB2.JS2 ; 706 : UY . 5 = TREJM2 ; 707 : VAL11 = EXTRAIRE TAB2.IS2 1 ; 708 : VAL21 = EXTRAIRE TAB2.IS2 2 ; 709 : VAL31 = EXTRAIRE TAB2.IS2 3 ; 710 : VAL41 = EXTRAIRE TAB2.IS2 4 ; 711 : $VALT1 = CHAINE FORMAT '(F9.2)' VAL11 VAL21 VAL31 VAL41 ; 712 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 713 : VAL51 = EXTRAIRE TAB2.IS2 5 ; 714 : VAL61 = EXTRAIRE TAB2.IS2 6 ; 715 : 716 : $VALT1 = CHAINE $VALT1 FORMAT '(F9.2)' VAL61 VAL51; 717 : FINSI ; 718 : VAL12 = EXTRAIRE TAB2.JS2 1 ; 719 : VAL22 = EXTRAIRE TAB2.JS2 2 ; 720 : VAL32 = EXTRAIRE TAB2.JS2 3 ; 721 : VAL42 = EXTRAIRE TAB2.JS2 4 ; 722 : $VALT2 = CHAINE FORMAT '(F9.2)' VAL12 VAL22 VAL32 VAL42 ; 723 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 724 : VAL52 = EXTRAIRE TAB2.JS2 5 ; 725 : VAL62 = EXTRAIRE TAB2.JS2 6 ; 726 : $VALT2 = CHAINE $VALT2 FORMAT '(F9.2)' VAL62 VAL52; 727 : FINSI ; 728 : IS2E = EXTRAIRE ETATS IS2 ; 729 : JS2E = EXTRAIRE ETATS JS2 ; 730 : $IS2 = CHAINE IS2E/3 ; 731 : $JS2 = CHAINE JS2E/3 ; 732 : $TREJM2 = CHAINE FORMAT '(F9.2)' TREJM2 ; 733 : SAUTER 'LIGNE'; 734 : MESSAGE 'VARIATION CONTRAINTES MEMBRANE+FLEXION = DELTA(PM+PB+Q) 735 : : SN' ; 736 : SAUTER 'LIGNE'; 737 : MESSAGE ' ETAT NO' $IS2 ' -->' $VALT1; 738 : MESSAGE ' ETAT NO' $JS2 ' -->' $VALT2; 739 : MESSAGE ' TRESCA' $TREJM2 ' MPA' ; 740 : FINSI ; 741 : SI ( K EGA 3 ) ; UY= TABVS.L.M.K; 742 : UY . 1 = IS3 ; 743 : UY . 2 = JS3 ; 744 : UY . 3 = ( TAB2.IS3 - TAB3.IS3 ) ; 745 : UY . 4 = ( TAB2.JS3 - TAB3.JS3 ) ; 746 : UY . 5 = TREJM3 ; 747 : VAL11 = ( EXTRAIRE TAB2.IS3 1 ) - ( EXTRAIRE TAB3.IS3 1 ) ; 748 : VAL21 = ( EXTRAIRE TAB2.IS3 2 ) - ( EXTRAIRE TAB3.IS3 2 ) ; 749 : VAL31 = ( EXTRAIRE TAB2.IS3 3 ) - ( EXTRAIRE TAB3.IS3 3 ) ; 750 : VAL41 = ( EXTRAIRE TAB2.IS3 4 ) - ( EXTRAIRE TAB3.IS3 4 ) ; 751 : $VALT1 = CHAINE FORMAT '(F9.2)' VAL11 VAL21 VAL31 VAL41; 752 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 753 : VAL51 = ( EXTRAIRE TAB2.IS3 5 ) - ( EXTRAIRE TAB3.IS3 5 ) ; 754 : VAL61 = ( EXTRAIRE TAB2.IS3 6 ) - ( EXTRAIRE TAB3.IS3 6 ) ; 755 : $VALT1 = CHAINE $VALT1 FORMAT '(F9.2)' VAL61 VAL51; 756 : FINSI ; 757 : VAL12 = ( EXTRAIRE TAB2.JS3 1 ) - ( EXTRAIRE TAB3.JS3 1 ) ; 758 : VAL22 = ( EXTRAIRE TAB2.JS3 2 ) - ( EXTRAIRE TAB3.JS3 2 ) ; 759 : VAL32 = ( EXTRAIRE TAB2.JS3 3 ) - ( EXTRAIRE TAB3.JS3 3 ) ; 760 : VAL42 = ( EXTRAIRE TAB2.JS3 4 ) - ( EXTRAIRE TAB3.JS3 4 ) ; 761 : $VALT2 = CHAINE FORMAT '(F9.2)' VAL12 VAL22 VAL32 VAL42; 762 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 763 : VAL52 = ( EXTRAIRE TAB2.JS3 5 ) - ( EXTRAIRE TAB3.JS3 5 ) ; 764 : VAL62 = ( EXTRAIRE TAB2.JS3 6 ) - ( EXTRAIRE TAB3.JS3 6 ) ; 765 : $VALT2 = CHAINE $VALT2 FORMAT '(F9.2)' VAL62 VAL52; 766 : FINSI ; 767 : IS3E = EXTRAIRE ETATS IS3 ; 768 : JS3E = EXTRAIRE ETATS JS3 ; 769 : $IS3 = CHAINE IS3E/3 ; 770 : $JS3 = CHAINE JS3E/3 ; 771 : $TREJM3 = CHAINE FORMAT '(F9.2)' TREJM3 ; 772 : SAUTER 'LIGNE'; 773 : SI ( FLEXT ) ; 774 : MESSAGE 'VARIATION CONTRAINTES MEMBRANE+FLEXION (FLEXION THER' 775 : 'MIQUE EXCLUE) : SN*' ; 776 : SINON ; 777 : MESSAGE 'VARIATION CONTRAINTES MEMBRANE : SN*' ; 778 : FINSI ; 779 : SAUTER 'LIGNE'; 780 : MESSAGE ' ETAT NO' $IS3 ' -->' $VALT1; 781 : MESSAGE ' ETAT NO' $JS3 ' -->' $VALT2; 782 : MESSAGE ' TRESCA' $TREJM3 ' MPA' ; 783 : FINSI ; 784 : FIN BOUCLE3 ; 785 : FIN TPARO ; 786 : FIN TCOUP ; 787 : *modifs 788 : *FINPROC TABVS ; 789 : TVARSG.II = TABVS ; 790 : 791 : FIN BOUCL01 ; 792 : * 793 : SAUT LIGNE; 794 : MESSAGE '---> fin phase variations' ; 795 : MESSAGE ' --------------------' ; 796 : SAUT LIGNE; 797 : * ---------------------------------------------------------------------- 798 : * fatigue si TABFATI existe 799 : * ---------------------------------------------------------------------- 800 : 801 : SI ( EXISTE TABFATI ) ; 802 : 803 : SAUT LIGNE; 804 : MESSAGE '---> phase fatigue' ; 805 : MESSAGE ' -------------' ; 806 : SAUT LIGNE; 807 : REPETER BOUCLE1 ( NGROUPTM ) ; 808 : I = &BOUCLE1 ; 809 : SAUT LIGNE; 810 : MESSAGE ' ---> occurences groupe ' I ; 811 : MESSAGE ' -----------------------' ; 812 : SAUT LIGNE; 813 : TABOCCUR.I = TABFATI.IND1.I ; 814 : FIN BOUCLE1 ; 815 : 816 : REPETER BOUCLE1 ( NCOUPS ) ; 817 : I = &BOUCLE1 ; 818 : SAUT LIGNE; 819 : MESSAGE ' ---> donnees materiaux pour coupe ' I ; 820 : MESSAGE ' -----------------------------' ; 821 : SAUT LIGNE; 822 : TABDONF.I = TABLE ; 823 : LISTEMA = TABFATI.IND2.I ; 824 : NMATER = DIME ( LISTEMA ) ; 825 : REPETER BOUCLE2 ( NMATER ) ; 826 : J = &BOUCLE2 ; 827 : TABDONF.I.J = EXTRAIRE LISTEMA J ; 828 : FIN BOUCLE2 ; 829 : FIN BOUCLE1 ; 830 : SI (SEISME) ; 831 : TABDSEI = TABLE ; 832 : REPETER BOUCLE1 ( NCOUPS ) ; 833 : I = &BOUCLE1 ; 834 : SAUT LIGNE; 835 : MESSAGE ' ---> donnees seisme pour coupe ' I ; 836 : MESSAGE ' --------------------------' ; 837 : SAUT LIGNE; 838 : TABDSEI.I = TABLE ; 839 : LISTSEI = TABFATI.IND3.I ; 840 : NCTORS = DIME ( LISTSEI ) ; 841 : REPETER BOUCLE2 ( NCTORS ) ; 842 : J = &BOUCLE2 ; 843 : TABDSEI.I.J = EXTRAIRE LISTSEI J ; 844 : FIN BOUCLE2 ; 845 : FIN BOUCLE1 ; 846 : FINSI ; 847 : 848 : *modif FATIGUE: la procedure FATIGUE est supprimee 849 : *et est directement integree ci dessous 850 : *en conservant la notice explicative 851 : *modif effectuees avant l entree dans fatigue: 852 : 853 : * SI (NON SEISME) ; 854 : * @FATIGUE TVARSG TABOCCUR TABDONF ; 855 : * SINON ; 856 : * @FATIGUE TVARSG TABOCCUR TABDONF TABDSEI ; 857 : * FINSI ; 858 : *initialisations 859 : TABVT= TVARSG ; 860 : TABNT= TABOCCUR ; 861 : TABDF= TABDONF ; 862 : SI ( SEISME ) ;TABDS=TABDSEI ;FINSI ; 863 : 864 : *$$$$ @FATIGUE 865 : * @FATIGUE PROCEDURE 96/10/09 16:00:00 866 : * ---------------------------------------------------------------------- 867 : ****** PROCEDURE @FATIGUE ****** 868 : * ---------------------------------------------------------------------- 869 : * 870 : * CETTE PROCEDURE PERMET DE FORMER UN FICHIER POUR USE2. 871 : * 872 : * ---------------------------------------------------------------------- 873 : * 874 : * LES DONNEES SONT : 875 : * ----> une table composee a chaque indice d'une table pour chaque 876 : * coupe contenant elle meme une table a 4 indices correspondant 877 : * a une variation (ou transitoire dans la terminolagie de USE2; 878 : * l'ensemble des transitoires , avec le nombre d'occurences 879 : * pour chaque transitoire forme un groupe, au sens de USE2. 880 : * Cette table a 4 indices est formee 881 : * par VARIATI et contient : 882 : * - premier indice : numero de coupe 883 : * - deuxieme indice : code : 884 : * - 1 : paroi interieure 885 : * - 2 : paroi exterieure 886 : * - troisieme indice : code : 887 : * - 1 : contraintes totales 888 : * - 2 : contraintes membrane+flexion 889 : * - 3 : contraintes membrane+flexion, 890 : * flexion thermique exclue 891 : * - quatrieme indice : 5 sorties : 892 : * - 1 : indice du premier torseur 893 : * - 2 : indice du deuxieme torseur 894 : * - 3 : premier torseur 895 : * - 4 : deuxieme torseur 896 : * - 5 : tresca 897 : * 898 : * ----> une table donnant pour chaque transitoire le nombre 899 : * d'occurences 900 : * ----> une table composee a chaque indice d'une table a 6 indices 901 : * ou 7 indices correspondant a des donnees de materiaux ou code 902 : * seisme pour USE2, pour chaque coupe. 903 : * Cette table a 6 indices contenant : 904 : * - premier indice : code materiau 905 : * - deuxieme indice : module d'elasticite 906 : * - troisieme indice : facteur de concentration des 907 : * contraintes 908 : * - quatrieme indice : contrainte SM de reference 909 : * - cinquieme indice : parametre intervenant dans le calcul 910 : * du facteur de concentration 911 : * elastoplastique KE 912 : * - sixieme indice : parametre intervenant dans le calcul 913 : * du facteur de concentration 914 : * elastoplastique KE 915 : * - septieme indice : code de seisme, si calcul au seisme : 916 : * . 1 : calcul conservatif mais rapide 917 : * . 2 : calcul realiste mais lent 918 : * ----> une table eventuelle composee a chaque indice d'une table a 919 : * 4 indices ou 6 indices correspondant a des donnees de seisme 920 : * pour USE2, pour chaque coupe. 921 : * Cette table a 4 ou 6 indices contenant les composantes du 922 : * torseur du seisme. 923 : * 924 : * EN SORTIE : 925 : * ----> impression des resultats 926 : * 927 : * ---------------------------------------------------------------------- 928 : * PAR Joseph MANNINO 929 : * ---------------------------------------------------------------------- 930 : *'DEBPROC' @FATIGUE TABVT*TABLE TABNT*TABLE TABDF*TABLE TABDS/TABLE ; 931 : * ====================================================================== 932 : * initialisation 933 : * ====================================================================== 934 : DIMG = VALE 'DIME' ; 935 : MODG = VALE 'MODE' ; 936 : * ====================================================================== 937 : * nombre de transitoires 938 : * ====================================================================== 939 : NTRAN = DIME TABVT ; 940 : SI ( NTRAN NEG ( DIME TABNT ) ) ; 941 : MESSAGE 'LES TABLES POUR FATIGUE NE CONVIENNENT PAS' ; 942 : QUITTER @RCCM ; 943 : FINSI ; 944 : * ====================================================================== 945 : * nombre de coupes 946 : * ====================================================================== 947 : NCOUP = DIME TABVT. 1 ; 948 : SI ( NCOUP NEG ( DIME TABDF ) ) ; 949 : MESSAGE 'LES TABLES POUR FATIGUE NE CONVIENNENT PAS' ; 950 : QUITTER @RCCM ; 951 : FINSI ; 952 : * ====================================================================== 953 : * code de revision de USE 2 954 : * ====================================================================== 955 : MESSAGE '5.' ; 956 : * ====================================================================== 957 : * boucle sur les coupes 958 : * ====================================================================== 959 : REPETER TCOUP ( NCOUP ) ; 960 : J = &TCOUP ; 961 : $J = CHAINE J/3 ; 962 : SI (((DIME TABDF.J) NEG 6) ET ((DIME TABDF.J) NEG 7)) ; 963 : MESSAGE 'LES TABLES POUR FATIGUE NE CONVIENNENT PAS' ; 964 : QUITTER @RCCM ; 965 : FINSI ; 966 : UY = TABDF . J; 967 : CAUD = UY . 1 FLOT; 968 : ANT = FLOT NTRAN ; 969 : EMIN = UY . 2 FLOT; 970 : AK = UY . 3 FLOT; 971 : SM = UY . 4 FLOT; 972 : XM = UY . 5 FLOT; 973 : XN = UY . 6 FLOT; 974 : SI (EXISTE UY 7) ; 975 : SEISME = UY . 7 ; 976 : SINON ; 977 : SEISME = 0. ; 978 : FINSI ; 979 : 980 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 981 : OPT = 3. ; 982 : SINON ; 983 : OPT = 2. ; 984 : FINSI ; 985 : TEST = 1. ; 986 : * ---------------------------------------------------------------------- 987 : * boucle sur les parois interieures et exterieures 988 : * k=1 --> paroi interieure 989 : * k=2 --> paroi exterieure 990 : * ---------------------------------------------------------------------- 991 : 992 : REPETER TPARO ( 2 ) ; 993 : 994 : K = &TPARO ; 995 : 996 : SI ( K EGA 1 ) ; 997 : MESSAGE 'FACTEUR D"USAGE DANS LA COUPE' $J ' PAROI INTERIEURE' ; 998 : SINON ; 999 : MESSAGE 'FACTEUR D"USAGE DANS LA COUPE' $J ' PAROI EXTERIEURE' ; 1000 : FINSI ; 1001 : AA = CHAINE FORMAT '(F10.0)' CAUD ANT EMIN FORMAT '(F10.2)' AK 1002 : FORMAT '(F10.1)' SM XM XN FORMAT '(F10.0)' SEISME; 1003 : MESS AA; 1004 : AA = CHAINE FORMAT '(F10.1)' OPT TEST; 1005 : MESS AA; 1006 : * ---------------------------------------------------------------------- 1007 : * ecriture du seisme eventuel 1008 : * ---------------------------------------------------------------------- 1009 : SI ((EXISTE TABDS) ET ((SEISME EGA 1.) OU (SEISME EGA 2.))) ; 1010 : UY = TABDS.J; 1011 : S1 = UY . 1 ; 1012 : S2 = UY . 2 ; 1013 : S3 = UY . 3 ; 1014 : S4 = UY . 4 ; 1015 : S5 = UY . 5 ; 1016 : S6 = UY . 6 ; 1017 : SI (DIMG EGA 3) ; 1018 : S7 = UY . 7 ; 1019 : S8 = UY . 8 ; 1020 : FINSI ; 1021 : SI (DIMG EGA 2) ; 1022 : AA = CHAINE FORMAT '(F10.2)' S1 S2 S3 S4 S5 S6; 1023 : MESS AA; 1024 : SINON ; 1025 : AA = CHAINE FORMAT '(F10.2)' S1 S2 S3 S4 S5 S6 S7 S8; 1026 : MESS AA; 1027 : FINSI ; 1028 : FINSI ; 1029 : * ====================================================================== 1030 : * boucle sur les transitoires 1031 : * ====================================================================== 1032 : REPETER TTRAN ( NTRAN ) ; 1033 : I = &TTRAN ; 1034 : SI ( NCOUP NEG ( DIME TABVT.I ) ) ; 1035 : MESSAGE 'LES TABLES POUR FATIGUE NE CONVIENNENT PAS' ; 1036 : QUITTER @RCCM ; 1037 : FINSI ; 1038 : NOC = TABNT.I FLOT; 1039 : $NOC = CHAINE FORMAT '(F10.0)' NOC ; 1040 : MESSAGE $NOC ; 1041 : UY = TABVT.I.J.K; 1042 : TORS1 = UY . 1 . 3 ; 1043 : TORS2 = UY . 1 . 4 ; 1044 : TORS3 = UY . 2 . 3 ; 1045 : TORS4 = UY . 2 . 4; 1046 : S11 = EXTRAIRE TORS1 1 ; 1047 : S21 = EXTRAIRE TORS1 2 ; 1048 : S31 = EXTRAIRE TORS1 3 ; 1049 : S41 = EXTRAIRE TORS1 4 ; 1050 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 1051 : S51 = EXTRAIRE TORS1 5 ; 1052 : S61 = EXTRAIRE TORS1 6 ; 1053 : FINSI ; 1054 : S12 = EXTRAIRE TORS2 1 ; 1055 : S22 = EXTRAIRE TORS2 2 ; 1056 : S32 = EXTRAIRE TORS2 3 ; 1057 : S42 = EXTRAIRE TORS2 4 ; 1058 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 1059 : S52 = EXTRAIRE TORS2 5 ; 1060 : S62 = EXTRAIRE TORS2 6 ; 1061 : FINSI ; 1062 : S13 = EXTRAIRE TORS3 1 ; 1063 : S23 = EXTRAIRE TORS3 2 ; 1064 : S33 = EXTRAIRE TORS3 3 ; 1065 : S43 = EXTRAIRE TORS3 4 ; 1066 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 1067 : S53 = EXTRAIRE TORS3 5 ; 1068 : S63 = EXTRAIRE TORS3 6 ; 1069 : FINSI ; 1070 : S14 = EXTRAIRE TORS4 1 ; 1071 : S24 = EXTRAIRE TORS4 2 ; 1072 : S34 = EXTRAIRE TORS4 3 ; 1073 : S44 = EXTRAIRE TORS4 4 ; 1074 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 1075 : S54 = EXTRAIRE TORS4 5 ; 1076 : S64 = EXTRAIRE TORS4 6 ; 1077 : FINSI ; 1078 : SI ( ( DIMG EGA 3 ) OU ( EGA MODG 'FOUR' ) ) ; 1079 : AA = CHAINE FORMAT '(F10.2)' S11 S21 S31 S41 S61 S51; 1080 : MESS AA; 1081 : AA = CHAINE FORMAT '(F10.2)' S12 S22 S32 S42 S62 S52 ; 1082 : MESS AA; 1083 : AA = CHAINE FORMAT '(F10.2)' S13 S23 S33 S43 S63 S53 ; 1084 : MESS AA; 1085 : AA = CHAINE FORMAT '(F10.2)' S14 S24 S34 S44 S64 S54 ; 1086 : MESS AA; 1087 : SINON ; 1088 : AA = CHAINE FORMAT '(F10.2)' S11 S21 S31 S41 S12 S22 S32 S42 ; 1089 : MESS AA; 1090 : AA = CHAINE FORMAT '(F10.2)' S13 S23 S33 S43 S14 S24 S34 S44 ; 1091 : MESS AA; 1092 : FINSI ; 1093 : FIN TTRAN ; 1094 : SI ( ( J EGA NCOUP ) ET ( K EGA 2 ) ) ; 1095 : MESSAGE '0.' ; 1096 : SINON ; 1097 : MESSAGE '1.' ; 1098 : FINSI ; 1099 : FIN TPARO ; 1100 : FIN TCOUP ; 1101 : *FINPROC ; 1102 : 1103 : SAUT LIGNE; 1104 : MESSAGE '---> fin phase fatigue' ; 1105 : MESSAGE ' -----------------' ; 1106 : SAUT LIGNE; 1107 : FINSI ; 1108 : FINSI ; 1109 : FINSI ; 1110 : SAUT LIGNE; 1111 : MESSAGE '***** FIN DU CALCUL RCCM *****' ; 1112 : MESSAGE '------------------------------' ; 1113 : SAUT LIGNE; 1114 : FINPROC ; 1115 : 1116 : 1117 : 1118 :
© Cast3M 2003 - All rights reserved.
Disclaimer