Download ella22.eso

Back to the list

   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