C ELLA11 SOURCE KK2000 14/04/09 21:15:16 8027 SUBROUTINE ELLA11(COOR , CORRES, GAMA , CARACT, & XCL , FLAG , NUMERO, & ZA1 , ZSM , ZXX , ZSOL , & MASS , RMAS , NMAS , & IPIVO , JPIVO , IAUX , XFRQ , & IRAILO, VALRAI, NRAIDE, & IEXPER,ALPHAI,NELEXP, NP , NP28 , NNT , & NNT14 , NFRQ , S0 , & XPI , METH , IMP) C C OPERATEUR ELFE LAPLACE ACOU C C PROGRAMME PRINCIPAL DE FORTRAN EN SORTIE DE L'INTERFACE ESOPE C C L'ALGORITHME EST LE SUIVANT : C C C - ACQUISITION DES DONNEES PAR ARGUMENTS DE ELLA11 C C - REMPLISSAGE DE LA 2EME PARTIE DE ZA1 (INDEPENDANT DE W) C + 2EME PARTIE DU SECOND MEMBRE (CALL ELLA12) C C - BOUCLE SUR W C | C | S = S0 + I W C | C | - BOUCLE SUR CHAQUE POUTRE C | | C | | - CALCUL DE CHAQUE MATRICE CI (CALL ELLA21) C | | C | | - ASSEMBLAGE DES MATRICES C | | C | | - CALCUL DU SECOND MEMBRE C | | C | - RESOLUTION (CALL ELLA51) C | C - RETURN C C PARAMETRES : C C COOR : TABLEAU DES COORDONNEES DES 2*NP NOEUDS FICTIFS C CORRES : TABLEAU D'ENTIER DES NUMEROS DES NOEUDS REELS C POUR CHAQUE NOEUD FICTIF C GAMA : TABLEAU DES VECTEUR DONNANT LE PLAN OXY POUR CHAQUE POUTRE C CARACT : TABLEAU DES CARACTERISTIQUE DES POUTRES (10 ,NP) C XCL : TABLEAU DES VALEURS DES CONDITIONS AUX LIMITES C FLAG : TABLEAU DE POINTEURS SUR XCL C NUMERO : TABLEAU DE NUMEROTATION GLOBALE <--> LOCALE C XFRQ : TABLEAU DES POINTS DE CALCUL EN FREQUENCE C C NFRQ : NOMBRE DE POINTS DE CALCUL EN FREQUENCE C NP : NOMBRE DE POUTRES C NNT : NOMBRE DE NOEUDS REELS C C SORTIES : C C ZA1 : TABLEAU COMPLEXE REPRESENTANT LA MATRICE DE "RIGIDITE" C ZSM : VECTEUR COMPLEXE SECOND MEMBRE C ZXX : VECTEUR COMPLEXE SOLUTION C C C AUTEURS : SAINT-DIZIER ET GORCY C DATE : 24 JANVIER 1991 C IMPLICIT INTEGER(I-N) COMPLEX*16 ZA1,ZSM,ZXX,ZC1,ZSOL,ZI,ZS,ALPHAI REAL*8 COOR,GAMA,CARACT,XCL,XFRQ,RMAS,VALRAI, & XPI,S0,EPS INTEGER FLAG,CORRES,NUMERO,MASS,I,II,IAUX,IFRQ,IMP,INP, & IPIVO,IRAILO,J,JPIVO,K,KK,METH,NFRQ,NMAS,NNT, & NNT14,NP,NP28,NRAIDE,IEXPER,NELEXP,NUMEXP C DIMENSION ZA1(NP28,*),ZSM(*),ZXX(*),ZC1(14,28),ZSOL(NNT14,*), & ALPHAI(14,28,NP,NFRQ) DIMENSION COOR(3,*),GAMA(3,*),CARACT(10,*),XCL(17,*), & XFRQ(*),RMAS(4,*),VALRAI(6,*) DIMENSION FLAG(*),CORRES(*),NUMERO(*),MASS(4,*),IPIVO(*), & JPIVO(*),IAUX(*),IRAILO(4,*),IEXPER(*) C C C INITIALISATION C K=0 KK=0 C ZI = (0.D0 , 1.D0) C C BOUCLE SUR LES FREQUENCES C DO 30 IFRQ = 1 , NFRQ C IF (IMP.NE.0) WRITE(IMP,*) 'IFREQ ',IFRQ C C REMISE A ZERO DES MATRICE POUR CHAQUE FREQUENCE C DO 58 I = 1 , 28*NP DO 59 J = 1 , 28*NP ZA1(I,J) = (0.D0,0.D0) 59 CONTINUE ZSM(I) = (0.D0,0.D0) 58 CONTINUE C ZS = S0 + ZI * (2.D0,0.D0) * XPI * XFRQ(IFRQ) C C REMPLISSAGE DE LA 2EME PARTIE DE ZA1 (DEPENDANT DE W) C + 2EME PARTIE DU SECOND MEMBRE C CALL ELLA12(CORRES ,XCL ,FLAG,NUMERO,CARACT,COOR, & MASS , NMAS , & IRAILO , VALRAI, NRAIDE , * NP,NP28,NNT,ZA1,ZSM,ZS,XPI,IMP) C C BOUCLE SUR LES POUTRES C NUMEXP=0 C DO 40 INP = 1 , NP IF (IEXPER(INP).NE.1) THEN C C CALCUL DE ZC1 MATRICE ELEMENTAIRE FORMULATION INTEGRALE C CALL ELLA21 (CARACT,INP,ZS,COOR,GAMA,ZC1,XPI) C ELSE C C LECTURE DES COEFFICIENTS POUR UN ELEMENT EXPERIMENTAL C NUMEXP=NUMEXP+1 C IF (NUMEXP.GT.NELEXP) THEN RETURN END IF C CALL ELLA24(INP,IFRQ,NP,COOR,GAMA,ALPHAI,ZC1) C END IF C C ------------------------------------- ASSEMBLAGE DE ZC1 DANS ZA1 C DO 41 J = 1 , 28 DO 42 I = 1 , 14 ZA1(14*(INP-1)+I,28*(INP-1)+J) = ZC1(I,J) 42 CONTINUE 41 CONTINUE C 40 CONTINUE C C -------------------------- PRISE EN COMPTE DES MASSES PONCTUELLES C CALL ELLA22 (CORRES,FLAG,COOR,GAMA,ZA1, & MASS,RMAS, & ZS,NP28,NMAS) C C IMPRESSION DE LA MATRICE ZA1 C IF ((IMP.NE.0).AND.(IFRQ.EQ.1)) THEN C EPS = 1.D-12 C WRITE(IMP,*)'IMPRESSION DE LA MATRICE ZA1 :' DO 10 I = 1 , 28*NP DO 11 J = 1 , 28 * NP IF (ABS(ZA1(I,J)).GT.EPS) THEN WRITE(IMP,1001)I,J,ZA1(I,J) END IF 11 CONTINUE 10 CONTINUE C WRITE(IMP,*)'IMPRESSION DU SECOND MEMBRE ZSM :' DO 22 I = 1 , 28*NP WRITE(IMP,*)'ZSM(',I,')',ZSM(I) 22 CONTINUE C END IF C C RESOLUTION DU SYSTEME ZA1 * ZXX = ZSM C IF (IFRQ.EQ.1) THEN CALL ELLA51(ZA1,ZSM,ZXX,NP28,IPIVO,JPIVO,IAUX) C ELSE IF (METH.EQ.1) THEN C CALL ELLA51(ZA1,ZSM,ZXX,NP28,IPIVO,JPIVO,IAUX) ELSE IF (METH.EQ.2) THEN C CALL ELLA53(ZA1,ZSM,ZXX,NP28,IPIVO,JPIVO,IAUX) END IF C DO 51 I = 1 , 2*NP KK = CORRES ( I ) C DO 52 II = 1 , NNT IF (NUMERO(II).EQ.KK) THEN K = II END IF 52 CONTINUE C DO 53 J = 1 , 14 ZSOL((K-1)*14+J,IFRQ) = ZXX((I-1)*14+J) 53 CONTINUE C 51 CONTINUE C 30 CONTINUE C 1001 FORMAT('ZA1(',I3,',',I3,') =',2E12.5) C RETURN END