ellp22
C ELLP22 SOURCE KK2000 14/04/09 21:15:20 8027 * ZS,NP,NP24,NMAS,NNT) C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Y) IMPLICIT COMPLEX*16 (Z) C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C OPERATEUR ELFE LAPLACE POUTRE C C PRISE EN COMPTE DE LA MASSE PONCTUELLE C C PARAMETRES : C C COOR : TABLEAU DES COORDONNEES DES NOEUDS (3,2*NP) C GAMA : TABLEAU DES VECTEUR DEFINISSANT LE PLAN LOCALE OXY (3,2*NP) C ZA1 : MATRICE DE RIGIDITE C MASS : LIEU DES MASSES PONCTUELLES C RASS : VALEUR DES MASSES PONCTUELLES C ZS : VALEUR DE LA VARIABLE DE LAPLACE C NP : NOMBRE DE POUTRES C NP24 : --> NP*24 C NMAS : NOMBRE DE MASSES PONCTUELLES C NNT : NOMBRE TOTAL DE NOEUDS C C C AUTEURS : SAINT-DIZIER ET GORCY C DATE : 04 FEVRIER 1991 C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C DIMENSION COOR(3,*),GAMA(3,*) DIMENSION ZA1(NP24,*),MASS(NNT,4) DIMENSION RMAS(NNT,4) INTEGER FLAG(*),CORRES(*) C C C IF (NMAS.GT.0) THEN DO 10 I = 1 , NMAS INP = MASS(I,2) N1 = 2*INP-1 N2 = 2*INP X1 = COOR (1,N1) Y1 = COOR (2,N1) Z1 = COOR (3,N1) X2 = COOR (1,N2) Y2 = COOR (2,N2) Z2 = COOR (3,N2) C XL = SQRT((X2-X1)**2 + (Y2-Y1)**2 + (Z2-Z1)**2) C C -- VECTEUR UNITAIRE OX REPERE LOCALE C XI1 = (X2-X1)/XL XI2 = (Y2-Y1)/XL XI3 = (Z2-Z1)/XL C C -- VECTEUR UNITAIRE OY REPERE LOCALE C GX = GAMA(1,INP) GY = GAMA(2,INP) GZ = GAMA(3,INP) GG = SQRT(GX*GX + GY*GY + GZ*GZ) GX = GX/GG GY = GY/GG GZ = GZ/GG C DELTA = SQRT (1.D0 - (XI1*GX + XI2*GY + XI3*GZ)**2) C C XJ1 = -XI2 XJ2 = 0. XJ3 = 0. ELSE ENDIF C C -- VECTEUR UNITAIRE OZ REPERE LOCALE C XK1 = XI2*XJ3 - XI3*XJ2 XK2 = XI3*XJ1 - XI1*XJ3 XK3 = XI1*XJ2 - XI2*XJ1 C Z11 = XJ2*XK3 - XJ3*XK2 Z12 = XJ3*XK1 - XJ1*XK3 Z13 = XJ1*XK2 - XJ2*XK1 Z21 = XI3*XK2 - XI2*XK3 Z22 = XI1*XK3 - XI3*XK1 Z23 = XI2*XK1 - XI1*XK2 Z31 = XI2*XJ3 - XI3*XJ2 Z32 = XI3*XJ1 - XI1*XJ3 Z33 = XI1*XJ2 - XI2*XJ1 C NN = CORRES (MASS(I,1)) IZA1 = MASS(I,4) JZA1 = MASS(I,3) C C IF (FLAG((NN-1)*12+1).EQ.0) THEN ZA1(IZA1 ,JZA1) = -CMPLX(1.D0)*RMAS(I,1)*ZS*ZS ENDIF IF (FLAG((NN-1)*12+2).EQ.0) THEN ZA1(IZA1+1,JZA1+1) = -CMPLX(1.D0)*RMAS(I,1)*ZS*ZS ENDIF IF (FLAG((NN-1)*12+3).EQ.0) THEN ZA1(IZA1+2,JZA1+2) = -CMPLX(1.D0)*RMAS(I,1)*ZS*ZS ENDIF C IF (FLAG((NN-1)*12+4).EQ.0) THEN ZA1(IZA1+3,JZA1+3) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z11*XI1 * + RMAS(I,3)*Z21*XJ1 + RMAS(I,4)*Z31*XK1 ) ZA1(IZA1+3,JZA1+4) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z12*XI1 * + RMAS(I,3)*Z22*XJ1 + RMAS(I,4)*Z32*XK1 ) ZA1(IZA1+3,JZA1+5) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z13*XI1 * + RMAS(I,3)*Z23*XJ1 + RMAS(I,4)*Z33*XK1 ) ENDIF C IF (FLAG((NN-1)*12+5).EQ.0) THEN ZA1(IZA1+4,JZA1+3) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z11*XI2 * + RMAS(I,3)*Z21*XJ2 + RMAS(I,4)*Z31*XK2 ) ZA1(IZA1+4,JZA1+4) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z12*XI2 * + RMAS(I,3)*Z22*XJ2 + RMAS(I,4)*Z32*XK2 ) ZA1(IZA1+4,JZA1+5) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z13*XI2 * + RMAS(I,3)*Z23*XJ2 + RMAS(I,4)*Z33*XK2 ) ENDIF C IF (FLAG((NN-1)*12+6).EQ.0) THEN ZA1(IZA1+5,JZA1+3) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z11*XI3 * + RMAS(I,3)*Z21*XJ3 + RMAS(I,4)*Z31*XK3 ) ZA1(IZA1+5,JZA1+4) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z12*XI3 * + RMAS(I,3)*Z22*XJ3 + RMAS(I,4)*Z32*XK3 ) ZA1(IZA1+5,JZA1+5) = -CMPLX(1.D0)*ZS*ZS*( RMAS(I,2)*Z13*XI3 * + RMAS(I,3)*Z23*XJ3 + RMAS(I,4)*Z33*XK3 ) ENDIF C C 10 CONTINUE C END IF C END
© Cast3M 2003 - Tous droits réservés.
Mentions légales