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