Download caljqb.eso

Back to the list

   1 : C CALJQB    SOURCE    CHAT      05/01/12    21:46:53     5004           
   2 :       SUBROUTINE CALJQB(XYZ,P,IES,NP)                                           
   3 : C***********************************************************************        
   4 : C   CE SP CALCULE                                                               
   5 : C       LA MATRICE DE ROTATION DU REPERE GLOBALE VERS LE REPERE LOCAL           
   6 : C   DEFINI PAR DEUX OU TROIS POINTS PRIS DANS XYZ SUIVANT QU'ON EST
   7 : C   EN 2D OU EN 3D
   8 : C   ON PREND P1 P2 ET PNP                                                       
   9 : C                                                                               
  10 : C     U                TEL QUE T SOIT DIRIGE SUIVANT P1P2 V TOURNE VERS         
  11 : C     .     .V          P1PNP ET U = T VECTORIEL V                              
  12 : C     .   .                                                                     
  13 : C     . .                             __       __
  14 : C (P1). . . . .T (P2)                | tx ty tz  |
  15 : C                                    |           |
  16 : C  ON A ALORS WL= P WG          P  = | vx vy vz  |
  17 : C                                    |           |
  18 : C                                    | ux uy uz  |
  19 : C                                    |__       __|
  20 : C***********************************************************************
  21 :       IMPLICIT INTEGER(I-N)
  22 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
  23 :                                                                                 
  24 :       REAL*8 XYZ(IES,NP),P(IES,IES)                                             
  25 :                                                                                 
  26 : C***                                                                            
  27 :                                                                                 
  28 :       IF(IES.EQ.2)GO TO 200                                                     
  29 :                                                                                 
  30 :       TX=XYZ(1,2)-XYZ(1,1)                                                      
  31 :       TY=XYZ(2,2)-XYZ(2,1)                                                      
  32 :       TZ=XYZ(3,2)-XYZ(3,1)                                                      
  33 :       TT=TX*TX+TY*TY+TZ*TZ                                                      
  34 :       TT=1.D0/SQRT(TT)                                                          
  35 :       TX=TX*TT                                                                  
  36 :       TY=TY*TT                                                                  
  37 :       TZ=TZ*TT                                                                  
  38 : C     WRITE(6,*)'TX= TY= TZ= TT=',TX,TY,TZ,TT                                   
  39 :       UX=(XYZ(2,NP)-XYZ(2,1))*TZ-(XYZ(3,NP)-XYZ(3,1))*TY                        
  40 :       UY=(XYZ(3,NP)-XYZ(3,1))*TX-(XYZ(1,NP)-XYZ(1,1))*TZ                        
  41 :       UZ=(XYZ(1,NP)-XYZ(1,1))*TY-(XYZ(2,NP)-XYZ(2,1))*TX                        
  42 :       UU=UX*UX+UY*UY+UZ*UZ                                                      
  43 :       UU=1.D0/SQRT(UU)                                                          
  44 :       UX=-UX*UU                                                                 
  45 :       UY=-UY*UU                                                                 
  46 :       UZ=-UZ*UU                                                                 
  47 : C     WRITE(6,*)'UX,UY,UZ,UU',UX,UY,UZ,UU                                       
  48 :       VX=+UY*TZ-UZ*TY                                                           
  49 :       VY=+UZ*TX-UX*TZ                                                           
  50 :       VZ=+UX*TY-UY*TX                                                           
  51 : C     WRITE(6,*)'VX= VY= VZ=',VX,VY,VZ                                          
  52 :       P(1,1)=TX                                                                 
  53 :       P(1,2)=TY                                                                 
  54 :       P(1,3)=TZ                                                                 
  55 :       P(2,1)=VX                                                                 
  56 :       P(2,2)=VY                                                                 
  57 :       P(2,3)=VZ                                                                 
  58 :       P(3,1)=UX                                                                 
  59 :       P(3,2)=UY                                                                 
  60 :       P(3,3)=UZ                                                                 
  61 : C                                                                               
  62 :       RETURN                                                                    
  63 :                                                                                 
  64 :  200  CONTINUE                                                                  
  65 :                                                                                 
  66 :       TX=XYZ(1,2)-XYZ(1,1)                                                      
  67 :       TY=XYZ(2,2)-XYZ(2,1)                                                      
  68 :       TT=TX*TX+TY*TY                                                            
  69 :       TT=SQRT(TT)                                                               
  70 :       TX=TX/TT                                                                  
  71 :       TY=TY/TT                                                                  
  72 :                                                                                 
  73 :       VX=-TY                                                                    
  74 :       VY= TX                                                                    
  75 :                                                                                 
  76 :       P(1,1)=TX                                                                 
  77 :       P(1,2)=TY                                                                 
  78 :       P(2,1)=VX                                                                 
  79 :       P(2,2)=VY                                                                 
  80 :                                                                                 
  81 :       RETURN                                                                    
  82 :       END                                                                       
  83 :  

© Cast3M 2003 - All rights reserved.
Disclaimer