Download rota3d.eso

Back to the list

   1 : C ROTA3D    SOURCE    CHAT      05/01/13    03:04:51     5004           
   2 :       SUBROUTINE ROTA3D(ROTATS,TATORS,ROTATE,TATORE,                            
   3 :      .                  VECX,VECY,VECZ,ANGLE)                                   
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
   6 :       DIMENSION ROTATS(6,6),TATORS(6,6),                                        
   7 :      .          ROTATE(6,6),TATORE(6,6),                                        
   8 :      .          R(6,6),VECX(3),VECY(3),VECZ(3)                                  
   9 : C                                                                               
  10 : C  CETTE ROUTINE CALCUL LA MATRICE DE ROTATION 3D ROTATS ET SON                 
  11 : C  INVERSE TATORS POUR SIGMA (ROTATE ET TATORE POUR EPSILON)                    
  12 : C                                                                               
  13 : C  EXEMPLE :          SIGFI = ROTATS * SIGIN                                    
  14 : C                     SIGIN = TATORS * SIGFI                                    
  15 : C                                                                               
  16 : C  ENTREES :                                                                    
  17 : C                                                                               
  18 : C         VECX   : VECTEUR PROPRE DE LA DIRECTION X                             
  19 : C         VECY   : VECTEUR PROPRE DE LA DIRECTION Y                             
  20 : C         VECZ   : VECTEUR PROPRE DE LA DIRECTION Z                             
  21 : C         ANGLE  : ANGLE DANS LE PLAN X-Y AVEC LE VECTEUR X (RADIAN)            
  22 : C                                                                               
  23 : C  SORTIES :                                                                    
  24 : C                                                                               
  25 : C         ROTATS : MATRICE DE ROTATION EN 3D POUR SIGMA                         
  26 : C         TATORS : MATRICE INVERSE                                              
  27 : C                                                                               
  28 : C         ROTATE : MATRICE DE ROTATION EN 3D POUR EPSILON                       
  29 : C         TATORE : MATRICE INVERSE                                              
  30 : C                                                                               
  31 : C     INITIALISATION                                                            
  32 : C                                                                               
  33 :       X1=VECX(1)                                                                
  34 :       X2=VECX(2)                                                                
  35 :       X3=VECX(3)                                                                
  36 :       Y1=VECY(1)                                                                
  37 :       Y2=VECY(2)                                                                
  38 :       Y3=VECY(3)                                                                
  39 :       Z1=VECZ(1)                                                                
  40 :       Z2=VECZ(2)                                                                
  41 :       Z3=VECZ(3)                                                                
  42 : C                                                                               
  43 :       C=COS(ANGLE)                                                              
  44 :       S=SIN(ANGLE)                                                              
  45 :       CC=C*C                                                                    
  46 :       SS=S*S                                                                    
  47 :       CS=C*S                                                                    
  48 : C                                                                               
  49 :       X1X1=X1*X1                                                                
  50 :       X2X2=X2*X2                                                                
  51 :       X3X3=X3*X3                                                                
  52 : C                                                                               
  53 :       Y1Y1=Y1*Y1                                                                
  54 :       Y2Y2=Y2*Y2                                                                
  55 :       Y3Y3=Y3*Y3                                                                
  56 : C                                                                               
  57 :       Z1Z1=Z1*Z1                                                                
  58 :       Z2Z2=Z2*Z2                                                                
  59 :       Z3Z3=Z3*Z3                                                                
  60 : C                                                                               
  61 :       X1X2=X1*X2                                                                
  62 :       X2X3=X2*X3                                                                
  63 :       X3X1=X3*X1                                                                
  64 : C                                                                               
  65 :       Y1Y2=Y1*Y2                                                                
  66 :       Y2Y3=Y2*Y3                                                                
  67 :       Y3Y1=Y3*Y1                                                                
  68 : C                                                                               
  69 :       Z1Z2=Z1*Z2                                                                
  70 :       Z2Z3=Z2*Z3                                                                
  71 :       Z3Z1=Z3*Z1                                                                
  72 : C                                                                               
  73 :       X1Y1=X1*Y1                                                                
  74 :       X2Y2=X2*Y2                                                                
  75 :       X3Y3=X3*Y3                                                                
  76 : C                                                                               
  77 :       Y1Z1=Y1*Z1                                                                
  78 :       Y2Z2=Y2*Z2                                                                
  79 :       Y3Z3=Y3*Z3                                                                
  80 : C                                                                               
  81 :       Z1X1=Z1*X1                                                                
  82 :       Z2X2=Z2*X2                                                                
  83 :       Z3X3=Z3*X3                                                                
  84 : C                                                                               
  85 :       X1Y2=X1*Y2                                                                
  86 :       Y2Z3=Y2*Z3                                                                
  87 :       Z3X1=Z3*X1                                                                
  88 : C                                                                               
  89 :       X2Y3=X2*Y3                                                                
  90 :       Y3Z1=Y3*Z1                                                                
  91 :       Z1X2=Z1*X2                                                                
  92 : C                                                                               
  93 :       X3Y1=X3*Y1                                                                
  94 :       Y1Z2=Y1*Z2                                                                
  95 :       Z2X3=Z2*X3                                                                
  96 : C                                                                               
  97 :       X2Y1=X2*Y1                                                                
  98 :       Y3Z2=Y3*Z2                                                                
  99 :       Z1X3=Z1*X3                                                                
 100 : C                                                                               
 101 :       X3Y2=X3*Y2                                                                
 102 :       Y1Z3=Y1*Z3                                                                
 103 :       Z2X1=Z2*X1                                                                
 104 : C                                                                               
 105 :       X1Y3=X1*Y3                                                                
 106 :       Y2Z1=Y2*Z1                                                                
 107 :       Z3X2=Z3*X2                                                                
 108 : C                                                                               
 109 :       R(1,1)=X1X1*CC+Y1Y1*SS+2.D0*X1Y1*CS                                       
 110 :       R(1,2)=X1X1*SS+Y1Y1*CC-2.D0*X1Y1*CS                                       
 111 :       R(1,3)=Z1Z1                                                               
 112 :       R(1,4)=-X1X1*CS+X1Y1*(CC-SS)+Y1Y1*CS                                      
 113 :       R(1,5)=-Z1X1*S+Y1Z1*C                                                     
 114 :       R(1,6)=Z1X1*C+Y1Z1*S                                                      
 115 : C                                                                               
 116 :       R(2,1)=X2X2*CC+Y2Y2*SS+2.D0*X2Y2*CS                                       
 117 :       R(2,2)=X2X2*SS+Y2Y2*CC-2.D0*X2Y2*CS                                       
 118 :       R(2,3)=Z2Z2                                                               
 119 :       R(2,4)=-X2X2*CS+X2Y2*(CC-SS)+Y2Y2*CS                                      
 120 :       R(2,5)=-Z2X2*S+Y2Z2*C                                                     
 121 :       R(2,6)=Z2X2*C+Y2Z2*S                                                      
 122 : C                                                                               
 123 :       R(3,1)=X3X3*CC+Y3Y3*SS+2.D0*X3Y3*CS                                       
 124 :       R(3,2)=X3X3*SS+Y3Y3*CC-2.D0*X3Y3*CS                                       
 125 :       R(3,3)=Z3Z3                                                               
 126 :       R(3,4)=-X3X3*CS+X3Y3*(CC-SS)+Y3Y3*CS                                      
 127 :       R(3,5)=-Z3X3*S+Y3Z3*C                                                     
 128 :       R(3,6)=Z3X3*C+Y3Z3*S                                                      
 129 : C                                                                               
 130 :       R(4,1)=X1X2*CC+Y1Y2*SS+X1Y2*CS+X2Y1*CS                                    
 131 :       R(4,2)=X1X2*SS+Y1Y2*CC-X1Y2*CS-X2Y1*CS                                    
 132 :       R(4,3)=Z1Z2                                                               
 133 :       R(4,4)=-2.D0*X1X2*CS+X1Y2*(CC-SS)+X2Y1*(CC-SS)+2.D0*Y1Y2*CS               
 134 :       R(4,5)=-Z1X2*S-Z2X1*S+Y1Z2*C+Y2Z1*C                                       
 135 :       R(4,6)=Z1X2*C+Z2X1*C+Y1Z2*S+Y2Z1*S                                        
 136 : C                                                                               
 137 :       R(5,1)=X2X3*CC+Y2Y3*SS+X2Y3*CS+X3Y2*CS                                    
 138 :       R(5,2)=X2X3*SS+Y2Y3*CC-X2Y3*CS-X3Y2*CS                                    
 139 :       R(5,3)=Z2Z3                                                               
 140 :       R(5,4)=-2.D0*X2X3*CS+X2Y3*(CC-SS)+X3Y2*(CC-SS)+2.D0*Y2Y3*CS               
 141 :       R(5,5)=-Z2X3*S-Z3X2*S+Y2Z3*C+Y3Z2*C                                       
 142 :       R(5,6)=Z2X3*C+Z3X2*C+Y2Z3*S+Y3Z2*S                                        
 143 : C                                                                               
 144 :       R(6,1)=X3X1*CC+Y3Y1*SS+X3Y1*CS+X1Y3*CS                                    
 145 :       R(6,2)=X3X1*SS+Y3Y1*CC-X3Y1*CS-X1Y3*CS                                    
 146 :       R(6,3)=Z3Z1                                                               
 147 :       R(6,4)=-2.D0*X3X1*CS+X3Y1*(CC-SS)+X1Y3*(CC-SS)+2.D0*Y3Y1*CS               
 148 :       R(6,5)=-Z3X1*S-Z1X3*S+Y3Z1*C+Y1Z3*C                                       
 149 :       R(6,6)=Z3X1*C+Z1X3*C+Y3Z1*S+Y1Z3*S                                        
 150 : C                                                                               
 151 :       DO 10 I=1,6                                                               
 152 :       DO 10 J=1,6                                                               
 153 :       ROTATS(I,J)=R(I,J)                                                        
 154 :       TATORS(I,J)=R(J,I)                                                        
 155 :    10 CONTINUE                                                                  
 156 : C                                                                               
 157 :       DO 20 I=1,3                                                               
 158 :       DO 20 J=4,6                                                               
 159 :       ROTATS(I,J)=2.D0*ROTATS(I,J)                                              
 160 :       TATORS(I,J)=2.D0*TATORS(I,J)                                              
 161 :    20 CONTINUE                                                                  
 162 : C                                                                               
 163 : C  CAS DU TENSEUR DE DEFORMATIONS                                               
 164 : C                                                                               
 165 :       DO 30 I=1,6                                                               
 166 :       DO 30 J=1,6                                                               
 167 :       ROTATE(I,J)=R(I,J)                                                        
 168 :       TATORE(I,J)=R(J,I)                                                        
 169 :    30 CONTINUE                                                                  
 170 : C                                                                               
 171 :       DO 40 I=4,6                                                               
 172 :       DO 40 J=1,3                                                               
 173 :       ROTATE(I,J)=2.0D0*ROTATE(I,J)                                             
 174 :       TATORE(I,J)=2.0D0*TATORE(I,J)                                             
 175 :    40 CONTINUE                                                                  
 176 : C                                                                               
 177 :       RETURN                                                                    
 178 :       END                                                                       
 179 :  

© Cast3M 2003 - All rights reserved.
Disclaimer