1 : C PROCHE SOURCE CHAT 05/01/13 02:29:44 5004 2 : C SUBROUTINE PROCHE(IPMASS,IPSOLU,IPFREQ,IPRIG1,IPRIG2,LIMAGE,IPNMOD,MBASC 3 : C ,INSYM) 4 : ************************************************************************ 5 : * 6 : * P R O C H E 7 : * ----------- 8 : * 9 : * SOUS-PROGRAMME ASSOCIE A L'OPTION "PROCHE" DE L'OPERATEUR 10 : * "VIBRATION". 11 : * 12 : * FONCTION: 13 : * --------- 14 : * 15 : * DETERMINER UNE SERIE DE MODES PROPRES DONT LES FREQUENCES SONT 16 : * LES PLUS PROCHES D'UNE SUITE DE VALEURS DONNEES. 17 : * 18 : * PHRASE D'APPEL: 19 : * ---------------------------- 20 : * 21 : * MODES = VIBRATION PROCHE SUIT_VAL [ SUIT_MULT ] MAT_K MAT_M ; 22 : * 22 : * CALL PROCHE(IPMASS,IPSOLU,IPFREQ,IPRIG1,IPRIG2,LIMAGE,IPNMOD ) 23 : * 24 : * OPERANDES ET RESULTATS: 25 : * ----------------------- 26 : * 27 : * IPFREQ 'LISTREEL' (E) SUITE DE VALEURS REELLES DES QUELLES LES 28 : * FREQUENCES PROPRES DEVRONT ETRE PROCHES. 29 : * IPNMOD 'LISTENTI' (E) SUITE DES MULTIPLICITES DES FREQUENCE 30 : * PROPRES ( OPTIONEL ). 31 : * IPRIG? 'RIGIDITE' (E) MATRICE DE RIGIDITE. 32 : * IPRIG? 'RIGIDITE' (E) MATRICE MASSE. 33 : * IPMASS 'RIGIDITE' (S) MATRICE MASSE. (UTILISEE DANS VIBRAT). 34 : * IPSOLU 'SOLUTION' (S) ENSEMBLE DES MODES PROPRES CALCULES. 35 : * MBASC 'TABLE SOLUTION' (S) ENSEMBLE DE MODES PROPRES COMPLEXES 36 : * 37 : * 38 : * AUTEUR, DATE DE CREATION: 39 : * ------------------------- 40 : * 41 : * PASCAL MANIGOT 1ER OCTOBRE 1984 (ESOPE) 42 : * 43 : ************************************************************************ 44 : 45 : SUBROUTINE PROCHE( IPMASS, IPSOLU, IPFREQ, IPRIG1, IPRIG2, 46 : $ LIMAGE, IPNMOD, MBASC ,INSYM) 47 : 48 : IMPLICIT INTEGER(I-N) 49 : IMPLICIT REAL*8 (A-H,O-Z) 50 : -INC CCOPTIO 51 : -INC SMLREEL 52 : -INC SMLENTI 53 : -INC SMTABLE 54 : ****** 55 : * -- ARGUMENTS -- 56 : *** 57 : POINTEUR IPNMOD.MLENTI, IPFREQ.MLREEL 58 : INTEGER IPMASS, IPSOLU, IPRIG1, IPRIG2 59 : LOGICAL LIMAGE 60 : 61 : ****** 62 : * -- VARIABLES LOCALES -- 63 : *** 64 : INTEGER IB100, NBFREQ 65 : 66 : ****** 67 : * -- SI UNE 'LISTENTI' A ETE FOURNIE, IPNMOD EST DIFFERENT DE 68 : * ZERO. SINON, IPNMOD EST NUL. DANS CE CAS TOUTES LES VALEURS 69 : * PROPRES SONT SUPPOSEES SIMPLES.ON CREE DONC L'IPNMOD ADEQUAT: -- 70 : *** 71 : IF ( IPNMOD .EQ. 0 ) THEN 72 : SEGACT ,IPFREQ 73 : NBFREQ = IPFREQ.PROG(/1) 74 : SEGDES ,IPFREQ 75 : JG = NBFREQ 76 : SEGINI ,IPNMOD 77 : DO 100 IB100 = 1, NBFREQ 78 : IPNMOD.LECT( IB100 ) = 1 79 : 100 CONTINUE 80 : SEGDES ,IPNMOD 81 : ENDIF 82 : 83 : ****** 84 : * -- VERIFICATION DES SOUS-TYPES DES 'RIGIDITE' -- 85 : *** 85 : CALL WHICH1 (IPRIG1,IPRIG2, IPRIGI,IPMASS) 86 : IF (IERR .NE. 0) RETURN 87 : 88 : ****** 89 : * -- DETERMINATION DES MODES PROPRES -- 90 : *** 90 : CALL PROCH1 ( IPFREQ, IPNMOD, IPRIGI, IPMASS, IPSOLU, 91 : & LIMAGE, MBASC , INSYM) 92 : IF (IERR .NE. 0) RETURN 93 : 94 : 95 : RETURN 96 : END 97 : 98 : 99 :
© Cast3M 2003 - All rights reserved.
Disclaimer