Download chalim.eso

Back to the list

   1 : C CHALIM    SOURCE    CHAT      05/01/12    21:54:33     5004           
   2 :       SUBROUTINE CHALIM(EPS,R,XMAT,TET,ICOD,A1,C1,A2,C2,R0,RM,B,                
   3 :      .PHI,PSI,OME,ICENT2,IDIAM,NUMCHA)                                          
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 :       DIMENSION XMAT(*),LMOT(5)                                                 
   7 :       DATA LMOT/5,7,7,9,1/                                                      
   8 :       LLMOT=LMOT(NUMCHA)                                                        
   9 :       NTET=0                                                                    
  10 :       IF(NTET.NE.0) GO TO 20                                                    
  11 :       GO TO (11,12,13,14,15),NUMCHA                                             
  12 : 11    R=XMAT(7)                                                                 
  13 :       PSI=XMAT(8)                                                               
  14 :       OME=XMAT(9)                                                               
  15 :       IF(PSI.EQ.0.D0.AND.OME.EQ.0.D0) PSI=1.D0                                  
  16 :       IF(ICOD.EQ.1) GO TO 500                                                   
  17 :       ICENT2=0                                                                  
  18 :       IDIAM=0                                                                   
  19 :       GO TO 16                                                                  
  20 : 12    R0=XMAT(7)                                                                
  21 :       PSI=XMAT(8)
  22 :       OME=XMAT(9)
  23 :       RM=XMAT(10)
  24 :       B=XMAT(11)
  25 :       IF(PSI.EQ.0.D0.AND.OME.EQ.0.D0) PSI=1.D0                                  
  26 :       IF(ICOD.EQ.1) GO TO 100                                                   
  27 :       ICENT2=0                                                                  
  28 :       IDIAM=1                                                                   
  29 :       GO TO 16                                                                  
  30 : 13    R=XMAT(9)                                                                 
  31 :       PSI=XMAT(10)                                                              
  32 :       OME=XMAT(11)                                                              
  33 :       IF(PSI.EQ.0.D0.AND.OME.EQ.0.D0) PSI=1.D0                                  
  34 :       IF(ICOD.EQ.1) GO TO 500                                                   
  35 :       A2=XMAT(7)                                                                
  36 :       C2=XMAT(8)                                                                
  37 :       ICENT2=1                                                                  
  38 :       IDIAM=0                                                                   
  39 :       GO TO 16                                                                  
  40 : 14    R0=XMAT(9)                                                                
  41 :       PSI=XMAT(10)
  42 :       OME=XMAT(11)
  43 :       RM=XMAT(12)
  44 :       B=XMAT(13)
  45 :       IF(PSI.EQ.0.D0.AND.OME.EQ.0.D0) PSI=1.D0                                  
  46 :       IF(ICOD.EQ.1) GO TO 100                                                   
  47 :       A2=XMAT(7)                                                                
  48 :       C2=XMAT(8)                                                                
  49 :       ICENT2=1                                                                  
  50 :       IDIAM=1                                                                   
  51 :       GO TO 16                                                                  
  52 : 15    CONTINUE                                                                  
  53 : 16    A1=XMAT(5)                                                                
  54 :       C1=XMAT(6)                                                                
  55 :       RETURN                                                                    
  56 : 20    T1=XMAT(3)                                                                
  57 :       T2=XMAT(4)                                                                
  58 :       IT1=1                                                                     
  59 :       IT2=2                                                                     
  60 : C                                                                               
  61 : C  LES TEMPERATURES SONT SUPPOSEES RENTREES DANS L'ORDRE CROISSANT              
  62 : C                                                                               
  63 :       IF(NTET.EQ.2) GO TO 250                                                   
  64 :       IF(TET.LE.T2) GO TO 250                                                   
  65 :       T1=XMAT(4)                                                                
  66 :       T2=XMAT(5)                                                                
  67 :       IT1=2                                                                     
  68 :       IT2=3                                                                     
  69 : 250   DT=T2-T1                                                                  
  70 :       XX=(TET-T1)/DT                                                            
  71 :       XY=1.-XX                                                                  
  72 :       IT1=5+LLMOT*(IT1-1)                                                       
  73 :       IT2=5+LLMOT*(IT2-1)                                                       
  74 :       GO TO (261,262,263,264,265),NUMCHA                                        
  75 : 261   R=XMAT(IT1+3)*XY+XMAT(IT2+3)*XX                                           
  76 :       PSI=XMAT(IT1+4)*XY+XMAT(IT2+4)*XX                                         
  77 :       OME=XMAT(IT1+5)*XY+XMAT(IT2+5)*XX                                         
  78 :       IF(ICOD.EQ.1) GO TO 500                                                   
  79 :       ICENT2=0                                                                  
  80 :       IDIAM=0                                                                   
  81 :       GO TO 266                                                                 
  82 : 262   R0=XMAT(IT1+3)*XY+XMAT(IT2+3)*XX                                          
  83 :       RM=XMAT(IT1+4)*XY+XMAT(IT2+4)*XX                                          
  84 :       B= XMAT(IT1+5)*XY+XMAT(IT2+5)*XX                                          
  85 :       PSI=XMAT(IT1+6)*XY+XMAT(IT2+6)*XX                                         
  86 :       OME=XMAT(IT1+7)*XY+XMAT(IT2+7)*XX                                         
  87 :       IF(ICOD.EQ.1) GO TO 100                                                   
  88 :       ICENT2=0                                                                  
  89 :       IDIAM=1                                                                   
  90 :       GO TO 266                                                                 
  91 : 263   R= XMAT(IT1+5)*XY+XMAT(IT2+5)*XX                                          
  92 :       PSI=XMAT(IT1+6)*XY+XMAT(IT2+6)*XX                                         
  93 :       OME=XMAT(IT1+7)*XY+XMAT(IT2+7)*XX                                         
  94 :       IF(ICOD.EQ.1) GO TO 500                                                   
  95 :       A2=XMAT(IT1+3)*XY+XMAT(IT2+3)*XX                                          
  96 :       C2=XMAT(IT1+4)*XY+XMAT(IT2+4)*XX                                          
  97 :       ICENT2=1                                                                  
  98 :       IDIAM=0                                                                   
  99 :       GO TO 266                                                                 
 100 : 264   R0=XMAT(IT1+5)*XY+XMAT(IT2+5)*XX                                          
 101 :       RM=XMAT(IT1+6)*XY+XMAT(IT2+6)*XX                                          
 102 :       B= XMAT(IT1+7)*XY+XMAT(IT2+7)*XX                                          
 103 :       PSI=XMAT(IT1+8)*XY+XMAT(IT2+8)*XX                                         
 104 :       OME=XMAT(IT1+9)*XY+XMAT(IT2+9)*XX                                         
 105 :       IF(ICOD.EQ.1) GO TO 100                                                   
 106 :       A2=XMAT(IT1+3)*XY+XMAT(IT2+3)*XX                                          
 107 :       C2=XMAT(IT1+4)*XY+XMAT(IT2+4)*XX                                          
 108 :       ICENT2=1                                                                  
 109 :       IDIAM=1                                                                   
 110 :       GO TO 266                                                                 
 111 : 265   CONTINUE                                                                  
 112 : 266   A1=XMAT(IT1+1)*XY+XMAT(IT2+1)*XX                                          
 113 :       C1=XMAT(IT1+2)*XY+XMAT(IT2+2)*XX                                          
 114 :       RETURN                                                                    
 115 : 100   R=RM-(RM-R0)*EXP(-B*EPS)                                                  
 116 : 500   CONTINUE                                                                  
 117 :       PHI=1.D00                                                                 
 118 :       IF(PSI.NE.1.D00)                                                          
 119 :      .      PHI=1.D00+(PSI-1.D00)*EXP(-OME*EPS)                                 
 120 :       RETURN                                                                    
 121 :       END                                                                       
 122 :  

© Cast3M 2003 - All rights reserved.
Disclaimer