Download joploc.eso

Back to the list

   1 : C JOPLOC    SOURCE    CHAT      05/01/13    00:50:04     5004           
   2 :       SUBROUTINE JOPLOC(XE,SHPTOT,NBBB,NBNO,IFOU,XEL,BPSS)                                
   3 : C
   4 : C=======================================================================        
   5 : C                                                                       
   6 : C    -CALCUL DE LA MATRICE DE PASSAGE BPSS                              
   7 : C    -CALCUL DES COORDONNEES LOCALES XEL                                                                                                                             
   8 : C          ROUTINE FORTRAN PUR POUR LES ELEMENTS JOINTS POREUX (BALD)                                                
   9 : C
  10 : C=======================================================================        
  11 : C
  12 : C  INPUT                                                                                                                                                                                                        
  13 : C     XE     = COORDONNEES GLOBALES DE L ELEMENT                                
  14 : C     SHPTOT = FONCTIONS DE FORME                                       
  15 : C     NBBB   = NOMBRE DE NOEUDS DE L'ELEMENT
  16 : C     NBNO   = NOMBRE DE FONCTIONS DE FORME
  17 : C     IFOU   = IFOUR DE COPTIO
  18 : C  OUTPUT                                                               
  19 : C     XEL    = COORDONNEES LOCALES DE L ELEMENT                                        
  20 : C     BPSS   = MATRICE DE PASAGE REPERE GLOBAL/REPERE LOCAL             
  21 : C
  22 : C=======================================================================        
  23 :       IMPLICIT INTEGER(I-N)
  24 :       IMPLICIT REAL*8(A-H,O-Z)
  25 :       DIMENSION XE(3,NBBB),XEL(3,NBBB),BPSS(3,3),SHPTOT(6,NBNO,*)
  26 :       DIMENSION V2(3),XD(3,20)  
  27 :       DIMENSION S1(3),S2(3),SN(3)
  28 : C
  29 :       NBNB=(3*NBBB-NBNO)/2
  30 :       NNNN=NBNB/2
  31 : C
  32 :       DO 1 I=1,3
  33 :          S1(I)=0.0D0
  34 :          S2(I)=0.0D0
  35 :          SN(I)=0.0D0
  36 :          V2(I)=0.0D0
  37 :    1  CONTINUE
  38 : C
  38 :       CALL ZERO(BPSS,3,3)
  38 :       CALL ZERO(XD,3,20)
  38 :       CALL ZERO(XEL,3,NBBB)
  39 : C
  40 :       IF (IFOU.EQ.2) THEN
  41 : C
  42 : C----------     CALCUL DE LA MATRICE DE  PASSAGE
  43 : C
  44 :       DO 2 I=1,NNNN
  45 : C
  46 : C-------------------TANGENTE AU POINT DE GAUSS 1 SELON QSI
  47 : C
  48 :          S1(1) = S1(1) + ( SHPTOT(2,I,1)*XE(1,I) )
  49 :          S1(2) = S1(2) + ( SHPTOT(2,I,1)*XE(2,I) )
  50 :          S1(3) = S1(3) + ( SHPTOT(2,I,1)*XE(3,I) )
  51 : C
  52 : C-------------------TANGENTE AU POINT DE GAUSS 1 SELON ETA
  53 : C
  54 :          V2(1) = V2(1) + ( SHPTOT(3,I,1)*XE(1,I) )
  55 :          V2(2) = V2(2) + ( SHPTOT(3,I,1)*XE(2,I) )
  56 :          V2(3) = V2(3) + ( SHPTOT(3,I,1)*XE(3,I) )
  57 :     2  CONTINUE
  57 :        CALL NORMER(S1)
  57 :        CALL NORMER(V2)  
  58 : C
  59 : C-------------------NORMALE AU PLAN DU JOINT
  60 : C
  61 :        SN(1) = (S1(2)*V2(3)) - (S1(3)*V2(2))
  62 :        SN(2) = (S1(3)*V2(1)) - (S1(1)*V2(3))
  63 :        SN(3) = (S1(1)*V2(2)) - (S1(2)*V2(1))
  63 :        CALL NORMER(SN) 
  64 : C
  65 : C-------------------ORTHOGONALISATION DE S2
  66 : C
  67 :        S2(1) = (SN(2)*S1(3)) - (SN(3)*S1(2))
  68 :        S2(2) = (SN(3)*S1(1)) - (SN(1)*S1(3))
  69 :        S2(3) = (SN(1)*S1(2)) - (SN(2)*S1(1))
  69 :        CALL NORMER(S2)
  70 : C
  71 : C-------------------STOCKAGE DE LA MATRICE DE PASSAGE
  72 : C
  73 :        DO 3 I=1,3
  74 :           BPSS(1,I) = S1(I)
  75 :           BPSS(2,I) = S2(I)
  76 :           BPSS(3,I) = SN(I)
  77 :     3  CONTINUE   
  78 : C
  79 : C----------     CALCUL DES COORDONNEES LOCALES DE L'ELEMENT
  80 : C
  81 : C-------------------CHANGEMENT D'ORIGINE ( ORIGINE AU NOEUD 1 )
  82 : C
  83 :        DO 4 J=1,NBBB
  84 :           DO 5 I=1,3
  85 :              XD(I,J) = XE(I,J) - XE(I,1)
  86 :     5  CONTINUE
  87 :     4  CONTINUE
  88 : C
  89 : C-------------------PROJECTION SUR LE PLAN DU JOINT
  90 : C
  91 :        DO 6 J=1,NBBB
  92 :         XEL(1,J)=XD(1,J)*S1(1)+XD(2,J)*S1(2)+XD(3,J)*S1(3)
  93 :         XEL(2,J)=XD(1,J)*S2(1)+XD(2,J)*S2(2)+XD(3,J)*S2(3)
  94 :         XEL(3,J)=0.0D0
  95 :     6  CONTINUE
  96 : C
  97 :       ELSE IF(IFOU.EQ.-2.OR.IFOU.EQ.-1.OR.IFOU.EQ.0)THEN
  98 : C
  99 : C----------     CALCUL DE LA MATRICE DE  PASSAGE
 100 : C
 101 :        DO 7 I=1,NNNN
 102 : C
 103 : C-------------------TANGENTE AU POINT DE GAUSS 1 SELON QSI
 104 : C
 105 :          S1(1) = S1(1) + ( SHPTOT(2,I,1)*XE(1,I) )
 106 :          S1(2) = S1(2) + ( SHPTOT(2,I,1)*XE(2,I) )
 107 :     7  CONTINUE
 108 : C
 109 : C-------------------NORMALISATION DE S1
 110 : C
 111 :        XNORME = SQRT((S1(1)**2) + (S1(2)**2))
 112 :        S1(1) = S1(1) / XNORME
 113 :        S1(2) = S1(2) / XNORME
 114 : C
 115 : C-------------------NORMALE AU JOINT (PAR ROTATION DE 90 DEGRES)
 116 : C
 117 :        SN(1) =-S1(2)
 118 :        SN(2) = S1(1)
 119 : C
 120 : C-------------------STOCKAGE DE LA MATRICE DE PASSAGE
 121 : C
 122 :        DO 8 I=1,2
 123 :           BPSS(1,I) = S1(I)
 124 :           BPSS(2,I) = SN(I)
 125 :     8  CONTINUE
 126 : C
 127 : C----------     CALCUL DES COORDONNEES LOCALES DE L'ELEMENT
 128 : C
 129 : C-------------------CHANGEMENT D'ORIGINE ( ORIGINE AU NOEUD 1)
 130 : C
 131 :        DO 9 J=1,NBBB
 132 :           DO 10 I=1,2
 133 :              XD(I,J) = XE(I,J) - XE(I,1)
 134 :    10  CONTINUE
 135 :     9  CONTINUE
 136 : C
 137 : C-------------------PROJECTION SUR LE PLAN DU JOINT
 138 : C
 139 :        DO 11 J=1,NBBB
 140 :         XEL(1,J)=XD(1,J)*S1(1)+XD(2,J)*S1(2)
 141 :         XEL(2,J)=0.0D0
 142 :    11  CONTINUE
 143 : C
 144 :       END IF
 145 : C
 146 :       RETURN
 147 :       END
 148 : 
 149 : 
 150 : 
 151 :  
 152 :  

© Cast3M 2003 - All rights reserved.
Disclaimer