Download cisar.eso

Back to the list

   1 : C CISAR     SOURCE    CHAT      05/01/12    22:03:19     5004           
   2 :       SUBROUTINE CISAR(ASS,BSS,AXX,AYY,BXX,BYY,RL,EXX,EYY,HS4,HS5,              
   3 :      *                HS6,HFX,HFY)                                              
   4 : C                                                                               
   5 : C**************** CE SOUS PROGRAMME CALCULE LES FONCTIONS HS(K,I)******         
   6 : C                                                                               
   7 :       IMPLICIT INTEGER(I-N)
   8 :       IMPLICIT REAL*8 (A-H,O-Z)                                                 
   9 :       DIMENSION ASS(6),BSS(6),AXX(3),AYY(3),BXX(3),BYY(3)                       
  10 :       DIMENSION EXX(3),EYY(3),RL(3)                                             
  11 :       DIMENSION HS4(9),HS5(9),HS6(9)                                            
  12 :       DIMENSION COFA(3,3),COFB(3,3)                                             
  13 :       DIMENSION DGX4(9),DGX5(9),DGX6(9),HFX(9),HFY(9)                           
  13 :       CALL ZERO(COFB,3,3)                                                       
  14 :       COFB(1,1)=1.D0-1.5D0*EXX(1)*ASS(4)-1.5D0*EYY(1)*BSS(4)                    
  15 :       COFB(2,2)=1.D0-1.5D0*EXX(2)*ASS(5)-1.5D0*EYY(2)*BSS(5)                    
  16 :       COFB(3,3)=1.D0-1.5D0*EXX(3)*ASS(6)-1.5D0*EYY(3)*BSS(6)                    
  17 :       COFB(1,2)=-1.5D0*EXX(1)*ASS(5)-1.5D0*EYY(1)*BSS(5)                        
  18 :       COFB(1,3)=-1.5D0*EXX(1)*ASS(6)-1.5D0*EYY(1)*BSS(6)                        
  19 :       COFB(2,1)=-1.5D0*EXX(2)*ASS(4)-1.5D0*EYY(2)*BSS(4)                        
  20 :       COFB(2,3)=-1.5D0*EXX(2)*ASS(6)-1.5D0*EYY(2)*BSS(6)                        
  21 :       COFB(3,1)=-1.5D0*EXX(3)*ASS(4)-1.5D0*EYY(3)*BSS(4)                        
  22 :       COFB(3,2)=-1.5D0*EXX(3)*ASS(5)-1.5D0*EYY(3)*BSS(5)                        
  23 : *                                                                               
  23 :       CALL ZERO(COFA,3,3)                                                       
  24 : C       INVERSION DE LA MATRICE COFB((3,3)                                      
  25 :       COFA(1,1)= COFB(2,2)*COFB(3,3)-COFB(2,3)*COFB(3,2)                        
  26 :       COFA(2,2)= COFB(1,1)*COFB(3,3)-COFB(1,3)*COFB(3,1)                        
  27 :       COFA(3,3)= COFB(1,1)*COFB(2,2)-COFB(1,2)*COFB(2,1)                        
  28 :       COFA(1,2)=-COFB(1,2)*COFB(3,3)+COFB(3,2)*COFB(1,3)                        
  29 :       COFA(2,1)=-COFB(2,1)*COFB(3,3)+COFB(2,3)*COFB(3,1)                        
  30 :       COFA(1,3)= COFB(1,2)*COFB(2,3)-COFB(2,2)*COFB(1,3)                        
  31 :       COFA(3,1)= COFB(2,1)*COFB(3,2)-COFB(2,2)*COFB(3,1)                        
  32 :       COFA(2,3)=-COFB(1,1)*COFB(2,3)+COFB(2,1)*COFB(1,3)                        
  33 :       COFA(3,2)=-COFB(1,1)*COFB(3,2)+COFB(1,2)*COFB(3,1)                        
  34 :       DJAC=COFB(1,1)*COFA(1,1)+COFB(2,1)*COFA(1,2)+COFB(3,1)*COFA(1,3)          
  35 :       XXXX = DJAC                                                               
  36 :       IF(DJAC.NE.0.D0) XXXX=1.D0/DJAC                                           
  37 :       DO 10 IA=1,3                                                              
  38 :       DO 10 IB=1,3                                                              
  39 :       COFA(IA,IB)=COFA(IA,IB)*XXXX                                              
  40 :  10    CONTINUE                                                                 
  40 :       CALL ZERO(DGX4,9,1)                                                       
  40 :       CALL ZERO(DGX5,9,1)                                                       
  40 :       CALL ZERO(DGX6,9,1)                                                       
  41 :       DGX4(1)=0.D0+00                                                           
  42 :       DGX4(3)=1.5D0*(EXX(1)*AXX(1)+EYY(1)*BXX(1))                               
  43 :       DGX4(2)=-1.5D0*(EXX(1)*AYY(1)+EYY(1)*BYY(1))                              
  44 :       DGX4(6)=1.5D0*(EXX(1)*AXX(2)+EYY(1)*BXX(2))-(EXX(1)/4.D0)                 
  45 :       DGX4(5)=-1.5D0*(EXX(1)*AYY(2)+EYY(1)*BYY(2))+(EYY(1)/4.D0)                
  46 :       DGX4(9)=1.5D0*(EXX(1)*AXX(3)+EYY(1)*BXX(3))-(EXX(1)/4.D0)                 
  47 :       DGX4(8)=-1.5D0*(EXX(1)*AYY(3)+EYY(1)*BYY(3))+(EYY(1)/4.D0)                
  48 :       DGX4(4)=1.5D0/RL(1)                                                       
  49 :       DGX4(7)=-1.5D0/RL(1)                                                      
  50 : C                                                                               
  51 :       DGX5(1)=-1.5D0/RL(2)                                                      
  52 :       DGX5(3)=1.5D0*(EXX(2)*AXX(1)+EYY(2)*BXX(1))-EXX(2)/4.D0                   
  53 :       DGX5(2)=-1.50D+00*(EXX(2)*AYY(1)+EYY(2)*BYY(1))+EYY(2)/4.D0               
  54 :       DGX5(6)=1.5D0*(EXX(2)*AXX(2)+EYY(2)*BXX(2))                               
  55 :       DGX5(5)=-1.5D0*(EXX(2)*AYY(2)+EYY(2)*BYY(2))                              
  56 :       DGX5(9)=1.5D0*(EXX(2)*AXX(3)+EYY(2)*BXX(3))-EXX(2)/4.D0                   
  57 :       DGX5(8)=-1.5D0*(EXX(2)*AYY(3)+EYY(2)*BYY(3))+EYY(2)/4.D0                  
  58 :       DGX5(4)=0.D0                                                              
  59 :       DGX5(7)=1.5D0/RL(2)                                                       
  60 : C                                                                               
  61 :       DGX6(1)=1.5D0/RL(3)                                                       
  62 :       DGX6(3)=1.5D0*(EXX(3)*AXX(1)+EYY(3)*BXX(1))-EXX(3)/4.D0                   
  63 :       DGX6(2)=-1.5D0*(EXX(3)*AYY(1)+EYY(3)*BYY(1))+EYY(3)/4.D0                  
  64 :       DGX6(6)=1.5D0*(EXX(3)*AXX(2)+EYY(3)*BXX(2))-EXX(3)/4.D0                   
  65 :       DGX6(5)=-1.5D0*(EXX(3)*AYY(2)+EYY(3)*BYY(2))+EYY(3)/4.D0                  
  66 :       DGX6(9)=1.5D0*(EXX(3)*AXX(3)+EYY(3)*BXX(3))                               
  67 :       DGX6(8)=-1.5D0*(EXX(3)*AYY(3)+EYY(3)*BYY(3))                              
  68 :       DGX6(4)=-1.5D0/RL(3)                                                      
  69 :       DGX6(7)=0.D0                                                              
  69 :       CALL ZERO(HS4,9,1)                                                        
  69 :       CALL ZERO(HS5,9,1)                                                        
  69 :       CALL ZERO(HS6,9,1)                                                        
  70 :       DO 50 I=1,9                                                               
  71 :       HS4(I)=COFA(1,1)*DGX4(I)+COFA(1,2)*DGX5(I)+COFA(1,3)*DGX6(I)              
  72 :       HS5(I)=COFA(2,1)*DGX4(I)+COFA(2,2)*DGX5(I)+COFA(2,3)*DGX6(I)              
  73 :       HS6(I)=COFA(3,1)*DGX4(I)+COFA(3,2)*DGX5(I)+COFA(3,3)*DGX6(I)              
  74 :   50    CONTINUE                                                                
  74 :       CALL ZERO(HFX,9,1)                                                        
  74 :       CALL ZERO(HFY,9,1)                                                        
  75 :       HFX(1)=ASS(4)*HS4(1)+ASS(5)*HS5(1)+ASS(6)*HS6(1)                          
  76 :       HFX(4)=ASS(4)*HS4(4)+ASS(5)*HS5(4)+ASS(6)*HS6(4)                          
  77 :       HFX(7)=ASS(4)*HS4(7)+ASS(5)*HS5(7)+ASS(6)*HS6(7)                          
  78 :       HFX(2)=ASS(4)*HS4(2)+ASS(5)*HS5(2)+ASS(6)*HS6(2)-AYY(1)                   
  79 :       HFX(3)=ASS(4)*HS4(3)+ASS(5)*HS5(3)+ASS(6)*HS6(3)+AXX(1)                   
  80 :       HFX(5)=ASS(4)*HS4(5)+ASS(5)*HS5(5)+ASS(6)*HS6(5)-AYY(2)                   
  81 :       HFX(6)=ASS(4)*HS4(6)+ASS(5)*HS5(6)+ASS(6)*HS6(6)+AXX(2)                   
  82 :       HFX(8)=ASS(4)*HS4(8)+ASS(5)*HS5(8)+ASS(6)*HS6(8)-AYY(3)                   
  83 :       HFX(9)=ASS(4)*HS4(9)+ASS(5)*HS5(9)+ASS(6)*HS6(9)+AXX(3)                   
  84 : *                                                                               
  85 :       HFY(1)=BSS(4)*HS4(1)+BSS(5)*HS5(1)+BSS(6)*HS6(1)                          
  86 :       HFY(4)=BSS(4)*HS4(4)+BSS(5)*HS5(4)+BSS(6)*HS6(4)                          
  87 :       HFY(7)=BSS(4)*HS4(7)+BSS(5)*HS5(7)+BSS(6)*HS6(7)                          
  88 :       HFY(2)=BSS(4)*HS4(2)+BSS(5)*HS5(2)+BSS(6)*HS6(2)-BYY(1)                   
  89 :       HFY(3)=BSS(4)*HS4(3)+BSS(5)*HS5(3)+BSS(6)*HS6(3)+BXX(1)                   
  90 :       HFY(5)=BSS(4)*HS4(5)+BSS(5)*HS5(5)+BSS(6)*HS6(5)-BYY(2)                   
  91 :       HFY(6)=BSS(4)*HS4(6)+BSS(5)*HS5(6)+BSS(6)*HS6(6)+BXX(2)                   
  92 :       HFY(8)=BSS(4)*HS4(8)+BSS(5)*HS5(8)+BSS(6)*HS6(8)-BYY(3)                   
  93 :       HFY(9)=BSS(4)*HS4(9)+BSS(5)*HS5(9)+BSS(6)*HS6(9)+BXX(3)                   
  94 : *                                                                               
  95 :       RETURN                                                                    
  96 :       END                                                                       
  97 :  

© Cast3M 2003 - All rights reserved.
Disclaimer