Download derivo.eso

Back to the list

   1 : C DERIVO    SOURCE    CHAT      05/01/12    22:43:04     5004           
   2 :       SUBROUTINE DERIVO (SX,SY,RL,ABSI,ORD,HS4,HS5,HS6,EXX,EYY,                 
   3 :      /  HXABS,HXORD,HYABS,HYORD)                                                
   4 : C                                                                               
   5 : C********************************************************************           
   6 : C       CE SOUS PROGRAMME CALCULE LES DERIVEES DES FONCTIONS DE                 
   7 : C       FORME DES ROTATIONS  BETAX ET BETAY                                     
   8 : C********************************************************************           
   9 : C                                                                               
  10 :       IMPLICIT INTEGER(I-N)
  11 :        IMPLICIT REAL*8 (A-H,O-Z)                                                
  12 :        DIMENSION EXX(3),EYY(3),HS4(9),HS5(9),HS6(9)                             
  13 :        DIMENSION HXABS(9),HXORD(9),HYABS(9),HYORD(9)                            
  14 :        DIMENSION DNDABS(6),DNDORD(6)                                            
  15 :        DIMENSION SX(3),SY(3),RL(3)                                              
  16 : *                                                                               
  17 :        DNDABS(1)=-3.D0+4.D0*ABSI+4.D0*ORD                                       
  18 :        DNDORD(1)=DNDABS(1)                                                      
  19 :        DNDABS(2)=4.D0*ABSI-1.D0                                                 
  20 :        DNDORD(2)=0.D0                                                           
  21 :        DNDABS(3)=0.D0                                                           
  22 :        DNDORD(3)=4.D0*ORD-1.D0                                                  
  23 :        DNDABS(4)=4.D0*ORD                                                       
  24 :        DNDORD(4)=4.D0*ABSI                                                      
  25 :        DNDABS(5)=-4.D0*ORD                                                      
  26 :        DNDORD(5)=4.D0-4.D0*ABSI-8.D0*ORD                                        
  27 :        DNDABS(6)=4.D0-8.D0*ABSI-4.D0*ORD                                        
  28 :        DNDORD(6)=-4.D0*ABSI                                                     
  29 : C                                                                               
  30 :        DO 60 I=1,9                                                              
  31 :        HXABS(I)=EXX(1)*DNDABS(4)*HS4(I)+EXX(2)*DNDABS(5)*HS5(I)                 
  32 :      A+EXX(3)*DNDABS(6)*HS6(I)                                                  
  33 :    60  CONTINUE                                                                 
  34 :        HXABS(2)=HXABS(2)-(-0.5D0*DNDABS(5)*EYY(2)*EXX(2)                        
  35 :      A-0.5D0*DNDABS(6)*EYY(3)*EXX(3))                                           
  36 :        HXABS(3)=HXABS(3)-(-DNDABS(1)-0.5D0*DNDABS(5)*(EYY(2)**2)                
  37 :      A-0.5D0*DNDABS(6)*(EYY(3)**2))                                             
  38 :        HXABS(5)=HXABS(5)-(-0.5D0*DNDABS(6)*EYY(3)*EXX(3)                        
  39 :      A-0.5D0*DNDABS(4)*EYY(1)*EXX(1))                                           
  40 :        HXABS(6)=HXABS(6)-(-DNDABS(2)-0.5D0*DNDABS(6)*(EYY(3)**2)                
  41 :      A-0.5D0*DNDABS(4)*(EYY(1)**2))                                             
  42 :        HXABS(8)=HXABS(8)-(-0.5D0*DNDABS(4)*EYY(1)*EXX(1)                        
  43 :      A-0.5D0*DNDABS(5)*EYY(2)*EXX(2))                                           
  44 :        HXABS(9)=HXABS(9)-(-DNDABS(3)-0.5D0*DNDABS(4)*(EYY(1)**2)                
  45 :      A-0.5D0*DNDABS(5)*(EYY(2)**2))                                             
  46 :        DO 70 I=1,9                                                              
  47 :        HXORD(I)=EXX(1)*DNDORD(4)*HS4(I)+EXX(2)*DNDORD(5)*HS5(I)                 
  48 :      A+EXX(3)*DNDORD(6)*HS6(I)                                                  
  49 :    70  CONTINUE                                                                 
  50 :        HXORD(2)=HXORD(2)-(-0.5D0*DNDORD(5)*EYY(2)*EXX(2)                        
  51 :      A-0.5D0*DNDORD(6)*EYY(3)*EXX(3))                                           
  52 :        HXORD(3)=HXORD(3)-(-DNDORD(1)-0.5D0*DNDORD(5)*(EYY(2)**2)                
  53 :      A-0.5D0*DNDORD(6)*(EYY(3)**2))                                             
  54 :        HXORD(5)=HXORD(5)-(-0.5D0*DNDORD(6)*EYY(3)*EXX(3)                        
  55 :      A-0.5D0*DNDORD(4)*EYY(1)*EXX(1))                                           
  56 :        HXORD(6)=HXORD(6)-(-DNDORD(2)-0.5D0*DNDORD(6)*(EYY(3)**2)                
  57 :      A-0.5D0*DNDORD(4)*(EYY(1)**2))                                             
  58 :        HXORD(8)=HXORD(8)-(-0.5D0*DNDORD(4)*EYY(1)*EXX(1)                        
  59 :      A-0.5D0*DNDORD(5)*EYY(2)*EXX(2))                                           
  60 :        HXORD(9)=HXORD(9)-(-DNDORD(3)-0.5D0*DNDORD(4)*(EYY(1)**2)                
  61 :      A-0.5D0*DNDORD(5)*(EYY(2)**2))                                             
  62 :        DO 80 I=1,9                                                              
  63 :        HYABS(I)=EYY(1)*DNDABS(4)*HS4(I)+EYY(2)*DNDABS(5)*HS5(I)                 
  64 :      A+EYY(3)*DNDABS(6)*HS6(I)                                                  
  65 :    80  CONTINUE                                                                 
  66 :        HYABS(2)=HYABS(2)-(+0.5D0*DNDABS(5)*EXX(2)*EXX(2)                        
  67 :      A+0.5D0*DNDABS(6)*EXX(3)*EXX(3)+DNDABS(1))                                 
  68 :        HYABS(3)=HYABS(3)-(+0.5D0*DNDABS(5)*EYY(2)*EXX(2)                        
  69 :      A+0.5D0*DNDABS(6)*EYY(3)*EXX(3))                                           
  70 :        HYABS(5)=HYABS(5)-(+0.5D0*DNDABS(6)*EXX(3)*EXX(3)                        
  71 :      A+0.5D0*DNDABS(4)*EXX(1)*EXX(1))-DNDABS(2)                                 
  72 :        HYABS(6)=HYABS(6)-(+0.5D0*DNDABS(6)*EYY(3)*EXX(3)                        
  73 :      A+0.5D0*DNDABS(4)*EYY(1)*EXX(1))                                           
  74 :        HYABS(8)=HYABS(8)-(+0.5D0*DNDABS(4)*EXX(1)*EXX(1)                        
  75 :      A+0.5D0*DNDABS(5)*EXX(2)*EXX(2)+DNDABS(3))                                 
  76 :        HYABS(9)=HYABS(9)-(+0.5D0*DNDABS(4)*EYY(1)*EXX(1)                        
  77 :      A+0.5D0*DNDABS(5)*EYY(2)*EXX(2))                                           
  78 :        DO 90 I=1,9                                                              
  79 :        HYORD(I)=EYY(1)*DNDORD(4)*HS4(I)+EYY(2)*DNDORD(5)*HS5(I)                 
  80 :      A+EYY(3)*DNDORD(6)*HS6(I)                                                  
  81 :    90  CONTINUE                                                                 
  82 :        HYORD(2)=HYORD(2)-(+0.5D0*DNDORD(5)*EXX(2)*EXX(2)                        
  83 :      A+0.5D0*DNDORD(6)*EXX(3)*EXX(3)+DNDORD(1))                                 
  84 :        HYORD(3)=HYORD(3)-(+0.5D0*DNDORD(5)*EYY(2)*EXX(2)                        
  85 :      A+0.5D0*DNDORD(6)*EYY(3)*EXX(3))                                           
  86 :        HYORD(5)=HYORD(5)-(+0.5D0*DNDORD(6)*EXX(3)*EXX(3)                        
  87 :      A+0.5D0*DNDORD(4)*EXX(1)*EXX(1))-DNDORD(2)                                 
  88 :        HYORD(6)=HYORD(6)-(+0.5D0*DNDORD(6)*EYY(3)*EXX(3)                        
  89 :      A+0.5D0*DNDORD(4)*EYY(1)*EXX(1))                                           
  90 :        HYORD(8)=HYORD(8)-(+0.5D0*DNDORD(4)*EXX(1)*EXX(1)                        
  91 :      A+0.5D0*DNDORD(5)*EXX(2)*EXX(2)+DNDORD(3))                                 
  92 :        HYORD(9)=HYORD(9)-(+0.5D0*DNDORD(4)*EYY(1)*EXX(1)                        
  93 :      A+0.5D0*DNDORD(5)*EYY(2)*EXX(2))                                           
  94 :        RETURN                                                                   
  95 :        END                                                                      
  96 :                                                                                 
  97 :  

© Cast3M 2003 - All rights reserved.
Disclaimer