1 : C ELLA22 SOURCE CHAT 05/01/12 23:34:16 5004 2 : SUBROUTINE ELLA22(CORRES,FLAG,COOR,GAMA,ZA1,MASS,RMAS, 3 : & ZS,NP28,NMAS) 4 : C 5 : IMPLICIT INTEGER(I-N) 6 : COMPLEX*16 ZA1,ZS 7 : REAL*8 COOR,GAMA,RMAS, 8 : & Z11,Z21,Z12,Z31,Z22,Z13,Z32,Z23,Z33, 9 : & X1,Y1,Z1,X2,Y2,Z2,XI1,XI2,XI3, 10 : & XJ1,XJ2,XJ3,XK1,XK2,XK3, 11 : & XL,GG,GX,GY,GZ,DET,DELTA 12 : INTEGER CORRES,FLAG,I,INP,IZA1,JZA1,MASS,NMAS,NP28,NN,N1,N2 13 : C 14 : C 15 : C OPERATEUR ELFE LAPLACE ACOU 16 : C 17 : C PRISE EN COMPTE DE LA MASSE PONCTUELLE 18 : C 19 : C PARAMETRES : 20 : C 21 : C COOR : TABLEAU DES COORDONNEES DES NOEUDS (3,2*NP) 22 : C GAMA : TABLEAU DES VECTEUR DEFINISSANT LE PLAN LOCALE OXY (3,2*NP) 23 : C ZA1 : MATRICE DE RIGIDITE 24 : C MASS : LIEU DES MASSES PONCTUELLES 25 : C RASS : VALEUR DES MASSES PONCTUELLES 26 : C ZS : VALEUR DE LA VARIABLE DE LAPLACE 27 : C NP : NOMBRE DE POUTRES 28 : C NP28 : --> NP*28 29 : C NMAS : NOMBRE DE MASSES PONCTUELLES 30 : C 31 : C AUTEURS : SAINT-DIZIER ET GORCY 32 : C DATE : 04 FEVRIER 1991 33 : C 34 : DIMENSION COOR(3,*),GAMA(3,*) 35 : DIMENSION ZA1(NP28,*),MASS(4,*) 36 : DIMENSION RMAS(4,*) 37 : DIMENSION FLAG(*),CORRES(*) 38 : C 39 : IF (NMAS.GT.0) THEN 40 : DO 10 I = 1 , NMAS 41 : INP = MASS(2,I) 42 : N1 = 2*INP-1 43 : N2 = 2*INP 44 : X1 = COOR (1,N1) 45 : Y1 = COOR (2,N1) 46 : Z1 = COOR (3,N1) 47 : X2 = COOR (1,N2) 48 : Y2 = COOR (2,N2) 49 : Z2 = COOR (3,N2) 50 : C 51 : XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2) 52 : C 53 : C -- VECTEUR UNITAIRE OX REPERE LOCALE 54 : C 55 : XI1 = (X2-X1)/XL 56 : XI2 = (Y2-Y1)/XL 57 : XI3 = (Z2-Z1)/XL 58 : C 59 : C -- VECTEUR UNITAIRE OY REPERE LOCALE 60 : C 61 : GX = GAMA(1,INP) 62 : GY = GAMA(2,INP) 63 : GZ = GAMA(3,INP) 64 : GG = SQRT(GX*GX + GY*GY + GZ*GZ) 65 : GX = GX/GG 66 : GY = GY/GG 67 : GZ = GZ/GG 68 : C 69 : DELTA = SQRT (1.D0 - (XI1*GX + XI2*GY + XI3*GZ)**2) 70 : C 71 : DET=-(GX*XI3-GZ*XI1)**2-(GY*XI1-GX*XI2)**2-(GY*XI3-GZ*XI2)**2 72 : C 73 : IF (DABS(DET).LT.1.D-12) THEN 74 : XJ1 = -XI2 75 : XJ2 = 0. 76 : XJ3 = 0. 77 : ELSE 78 : XJ1 = (XI2*(GY*XI1-GX*XI2)-XI3*(GX*XI3-GZ*XI1))*DELTA/DET 79 : XJ2 = (XI3*(GZ*XI2-GY*XI3)-XI1*(GY*XI1-GX*XI2))*DELTA/DET 80 : XJ3 = (XI1*(GX*XI3-GZ*XI1)-XI2*(GZ*XI2-GY*XI3))*DELTA/DET 81 : ENDIF 82 : C 83 : C -- VECTEUR UNITAIRE OZ REPERE LOCALE 84 : C 85 : XK1 = XI2*XJ3 - XI3*XJ2 86 : XK2 = XI3*XJ1 - XI1*XJ3 87 : XK3 = XI1*XJ2 - XI2*XJ1 88 : C 89 : Z11 = XJ2*XK3 - XJ3*XK2 90 : Z12 = XJ3*XK1 - XJ1*XK3 91 : Z13 = XJ1*XK2 - XJ2*XK1 92 : Z21 = XI3*XK2 - XI2*XK3 93 : Z22 = XI1*XK3 - XI3*XK1 94 : Z23 = XI2*XK1 - XI1*XK2 95 : Z31 = XI2*XJ3 - XI3*XJ2 96 : Z32 = XI3*XJ1 - XI1*XJ3 97 : Z33 = XI1*XJ2 - XI2*XJ1 98 : C 99 : NN = CORRES (MASS(1,I)) 100 : IZA1 = MASS(4,I) 101 : JZA1 = MASS(3,I) 102 : C 103 : ZA1(IZA1 ,JZA1) = -1.D0*RMAS(1,I)*ZS*ZS 104 : ZA1(IZA1+1,JZA1+1) = -1.D0*RMAS(1,I)*ZS*ZS 105 : ZA1(IZA1+2,JZA1+2) = -1.D0*RMAS(1,I)*ZS*ZS 106 : C 107 : ZA1(IZA1+3,JZA1+3) = -1.D0*ZS*ZS*( RMAS(2,I)*Z11*XI1 108 : * + RMAS(3,I)*Z21*XJ1 + RMAS(4,I)*Z31*XK1 ) 109 : ZA1(IZA1+3,JZA1+4) = -1.D0*ZS*ZS*( RMAS(2,I)*Z12*XI1 110 : * + RMAS(3,I)*Z22*XJ1 + RMAS(4,I)*Z32*XK1 ) 111 : ZA1(IZA1+3,JZA1+5) = -1.D0*ZS*ZS*( RMAS(2,I)*Z13*XI1 112 : * + RMAS(3,I)*Z23*XJ1 + RMAS(4,I)*Z33*XK1 ) 113 : C 114 : ZA1(IZA1+4,JZA1+3) = -1.D0*ZS*ZS*( RMAS(2,I)*Z11*XI2 115 : * + RMAS(3,I)*Z21*XJ2 + RMAS(4,I)*Z31*XK2 ) 116 : ZA1(IZA1+4,JZA1+4) = -1.D0*ZS*ZS*( RMAS(2,I)*Z12*XI2 117 : * + RMAS(3,I)*Z22*XJ2 + RMAS(4,I)*Z32*XK2 ) 118 : ZA1(IZA1+4,JZA1+5) = -1.D0*ZS*ZS*( RMAS(2,I)*Z13*XI2 119 : * + RMAS(3,I)*Z23*XJ2 + RMAS(4,I)*Z33*XK2 ) 120 : C 121 : ZA1(IZA1+5,JZA1+3) = -1.D0*ZS*ZS*( RMAS(2,I)*Z11*XI3 122 : * + RMAS(3,I)*Z21*XJ3 + RMAS(4,I)*Z31*XK3 ) 123 : ZA1(IZA1+5,JZA1+4) = -1.D0*ZS*ZS*( RMAS(2,I)*Z12*XI3 124 : * + RMAS(3,I)*Z22*XJ3 + RMAS(4,I)*Z32*XK3 ) 125 : ZA1(IZA1+5,JZA1+5) = -1.D0*ZS*ZS*( RMAS(2,I)*Z13*XI3 126 : * + RMAS(3,I)*Z23*XJ3 + RMAS(4,I)*Z33*XK3 ) 127 : C 128 : C 129 : 10 CONTINUE 130 : C 131 : END IF 132 : C 133 : END 134 : 135 :
© Cast3M 2003 - All rights reserved.
Disclaimer