amormo
C AMORMO SOURCE FANDEUR 11/07/19 21:15:16 7042 C*********************************************************************** C * C FABRICATION DE LA MATRICE D'AMORTISSEMENT MODAL * C SYNTAXE : AMO1= AMOR BASE PROG ; * C AMO1 MATRICE D'AMORTISSEMENT * C BASE OBJET DE TYPE BASE MODALE * C PROG OBJET DE TYPE MLREEL LISTE DES * C COEFFICIENTS D'AMORTISSEMENT REDUITS (%) * C CREATION : 26/11/86 * C PROGRAMMEUR : GUILBAUD * C * C*********************************************************************** IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC SMLREEL -INC SMRIGID -INC SMBASEM -INC SMSOLUT * LOGICAL BASMUL LOGICAL L0,L1 CHARACTER*8 TYPRET,CHARRE MLREEL = IPROG SEGACT,MLREEL IP = 0 IF (IBASE.LE.0) THEN c* equivalent a IF (ITABL.GT.0) THEN IF (BASMUL) THEN ITBAM = ITABL IB = 0 10 CONTINUE IB = IB + 1 TYPRET = ' ' & TYPRET,I1,X1,CHARRE,L1,IBAS) IF (IBAS.NE.0 .AND. TYPRET.EQ.'TABLE ') GOTO 10 NBASE = IB - 1 DO NBAS = 1, NBASE & 'TABLE',I1,X1,CHARRE,L1,ITBAS) & 'TABLE',I1,X1,CHARRE,L1,NTBAS) IB = 0 14 CONTINUE IB = IB + 1 TYPRET = ' ' & TYPRET,I1,X1,CHARRE,L1,ITMOD) IF (ITMOD.NE.0 .AND. TYPRET.EQ.'TABLE ') GOTO 14 IP = IP + IB - 1 ENDDO ELSE ITBAS = ITABL NBASE = 1 & 'TABLE',I1,X1,' ',L1,NTBAS) IB = 0 16 CONTINUE IB = IB + 1 TYPRET = ' ' & TYPRET,I1,X1,CHARRE,L1,ITMOD) IF (ITMOD.NE.0 .AND. TYPRET.EQ.'TABLE ') GOTO 16 IP = IP + IB - 1 ENDIF ELSE MBASEM = IBASE SEGACT,MBASEM NBASE = LISBAS(/1) DO 20 NBAS = 1,NBASE MSOBAS = LISBAS(NBAS) SEGACT,MSOBAS MSOLUT = IBSTRM(2) SEGACT,MSOLUT MSOLEN = MSOLIS(4) SEGACT,MSOLEN IP = IP + ISOLEN(/1) SEGDES,MSOLEN,MSOLUT,MSOBAS 20 CONTINUE ENDIF * le nb de modes de la base n'est pas egal au nb d'amortissements IF (LON.NE.IP) THEN GOTO 999 ENDIF KRIGI = 0 IRIG = 3 IP = 0 DO 100 NBAS = 1,NBASE IF (IBASE.EQ.0) THEN IF ( BASMUL ) THEN & 'TABLE',I1,X1,' ',L1,ITBAS) ENDIF & 'TABLE',I1,X1,' ',L1,NTBAS) ELSE MSOBAS = LISBAS(NBAS) SEGACT,MSOBAS IMODE = IBSTRM(2) SEGDES,MSOBAS ENDIF IF (KRIG.EQ.0) GOTO 999 MRIGID = KRIG SEGACT MRIGID XMATRI = IRIGEL(4,1) SEGACT,XMATRI*MOD NELRIG = RE(/3) DO 40 I = 1,NELRIG 40 CONTINUE IP = IP + NELRIG SEGDES,XMATRI,MRIGID IF (KRIGI.EQ.0) THEN KRIGI = KRIG ELSE MRIGID = KRIGI SEGSUP,MRIGID KRIGI = IRET ENDIF 100 CONTINUE IPRIG = KRIGI 999 CONTINUE IF (IBASE.NE.0) SEGDES,MBASEM SEGDES,MLREEL RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales