Download chrep3.eso

Back to the list

   1 : C CHREP3    SOURCE    CHAT      05/01/12    22:01:54     5004           
   2 :       SUBROUTINE CHREP3(ENT,SOR,XMAT,TXR,NSTRS,ICLE,IND,KERRE)
   3 : *
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 : -INC CCOPTIO
   7 :       DIMENSION ENT(*),SOR(*),XMAT(*)
   8 :       DIMENSION ROTS(10,10),TXR(3,*)
   9 :       DIMENSION XLOC(3,3),XGLOB(3,3) 
  10 :       PARAMETER(DEUX=2.D0) 
  11 :                                                                              
  12 : C                                                                               
  13 : C----------------------------------------------                                 
  14 : C     CETTE ROUTINE PERMET DE CHANGER DE REPERE
  15 : C     UN CHAMP DE CONTRAINTE   (ICLE=1)
  16 : C     OU UN CHAMP DE DEFORMATION  (ICLE=2)
  17 : C     d'apres CHREP 
  18 : C     CAS MASSIF 3D
  19 : C
  20 : C
  21 : C     EN PRATIQUE, IL FAUDRAIT PLUTOT APPELER
  22 : C     LES SOUS PROGRAMMES UTILISES DANS RTENS
  23 : C----------------------------------------------                                 
  24 : C                                                                               
  25 :         IF(ICLE.EQ.1) THEN
  26 :          FAC1=1.D0
  27 :          FAC2=2.D0
  28 :         ELSE
  29 :          FAC1=2.D0
  30 :          FAC2=1.D0
  31 :         ENDIF
  32 : *
  32 :         CALL ZERO(XGLOB,3,3)
  32 :         CALL ZERO(ROTS,10,10)
  33 : *
  34 :         XLOC(1,1)=XMAT(3)                                                     
  35 :         IF(IND.EQ.1) THEN 
  36 :             XLOC(2,1)=XMAT(4) 
  37 :             XLOC(1,2)=XMAT(6)
  38 :         ELSE 
  39 :             XLOC(2,1)=-XMAT(4)
  40 :             XLOC(1,2)=-XMAT(6)
  41 :         ENDIF
  42 :         XLOC(3,1)=XMAT(5)                                                     
  43 :         XLOC(2,2)=XMAT(7)                                                     
  44 :         XLOC(3,2)=XMAT(8)
  45 : C                                                                               
  45 :          CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR)  
  46 : *
  47 :          DO 1045  K=1,3                                                         
  48 :           DO 1045 J=1,3                                                        
  49 :             DO 1045 I=1,3 
  50 :                XGLOB(K,J)=TXR(J,I)*XLOC(I,K)+XGLOB(K,J)
  51 :  1045    CONTINUE  
  52 : *
  53 :            DO 1050 IC=1,3                                                         
  54 :             DO 1050 IL=1,3                                                        
  55 :              ROTS(IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC)  
  56 :  1050      CONTINUE                                                             
  57 : C                                                                               
  58 :            DO 1060 IL=1,3                                                         
  59 :             ROTS(IL,4)=FAC2*XGLOB(IL,1)*XGLOB(IL,2)                                 
  60 :             ROTS(IL,5)=FAC2*XGLOB(IL,2)*XGLOB(IL,3)                                 
  61 :             ROTS(IL,6)=FAC2*XGLOB(IL,1)*XGLOB(IL,3)
  62 :  1060      CONTINUE                                                             
  63 : C                                                                               
  64 :            DO 1065 IC=1,3                                                        
  65 :             ROTS(4,IC)=FAC1*XGLOB(1,IC)*XGLOB(2,IC)                            
  66 :             ROTS(5,IC)=FAC1*XGLOB(2,IC)*XGLOB(3,IC)                            
  67 :             ROTS(6,IC)=FAC1*XGLOB(1,IC)*XGLOB(3,IC) 
  68 :  1065      CONTINUE                                                            
  69 : C                                                                               
  70 :            DO 1070 IL=4,6                                                         
  71 :             IL1=IL-3                                                              
  72 :             IL2=IL1+1                                                             
  73 :             IF(IL2.GT.3)IL2=IL2-3                                                 
  74 :             DO 1070 IC=4,6                                                        
  75 :               IC1=IC-3                                                            
  76 :               IC2=IC1+1                                                           
  77 :               IF(IC2.GT.3)IC2=IC2-3                                               
  78 :                ROTS(IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+                        
  79 :      .                       XGLOB(IL1,IC2)*XGLOB(IL2,IC1) 
  80 :  1070      CONTINUE                                                            
  81 :             DO 1075 IC=1,6                                                       
  82 :               AA=ROTS(6,IC)                                                     
  83 :               ROTS(6,IC)=ROTS(5,IC)                                           
  84 :               ROTS(5,IC)=AA                                                     
  85 :  1075       CONTINUE                                                            
  86 :             DO 1080 IL=1,6                                                       
  87 :               AA=ROTS(IL,6)                                                     
  88 :               ROTS(IL,6)=ROTS(IL,5)                                           
  89 :               ROTS(IL,5)=AA                                                     
  90 :  1080       CONTINUE 
  91 : *                                                                               
  92 : *  CHGT D'AXES                                                                  
  93 : *  
  94 :              DO 1090 I=1,6                                                      
  95 :                 SOR(I)=0.D0                                                   
  96 :                 DO 1090 J=1,6  
  97 :                   SOR(I)= SOR(I) +ROTS(I,J)*ENT(J) 
  98 :  1090         CONTINUE    
  99 : *
 100 :       RETURN                                                                    
 101 :       END                                                                       
 102 :  
 103 :  
 104 :  

© Cast3M 2003 - All rights reserved.
Disclaimer