Download upvar1.eso

Back to the list

   1 : C UPVAR1    SOURCE    CHAT      05/01/13    03:59:53     5004           
   2 :        SUBROUTINE UPVAR1(SIG,EPSCRP,EPSPLU,EPSMIN,EPSEFF,EPSH,M,                
   3 :      &                                                    NSTRS)  
   4 :       IMPLICIT INTEGER(I-N)
   5 :        IMPLICIT REAL *8 (A-H,O-Z)                                               
   6 :        DIMENSION SIG(*),EPSCRP(*),EPSPLU(*),EPSMIN(*)                           
   7 :        DATA X,Y/1.0D-06,0.0D0/                                                  
   8 : C ____________________________________________________________________          
   9 : C                                                                               
  10 : C    THIS ROUTINE UPDATE THE INTERNAL VARIABLES                                 
  11 : C_____________________________________________________________________          
  12 :        SPLU=0.0D0                                                               
  13 :        GPLU=0.0D0                                                               
  14 :        GMIN=0.0D0                                                               
  15 :        SMIN=0.0D0                                                               
  16 :        DO 11 I=1,NSTRS                                                          
  17 :        A=1.D0 
  18 :        IF (I.GT.3) A=2.D0  
  19 :        SPLU=SPLU+(EPSCRP(I)-EPSPLU(I))*SIG(I)*A                           
  20 :        SMIN=SMIN+(EPSCRP(I)-EPSMIN(I))*SIG(I)*A                    
  21 :        GPLU=GPLU+(EPSCRP(I)-EPSPLU(I))*(EPSCRP(I)-EPSPLU(I))*A          
  22 :    11  GMIN=GMIN+(EPSCRP(I)-EPSMIN(I))*(EPSCRP(I)-EPSMIN(I))*A     
  23 :        GPLU=SQRT(0.6666666666666666D0*GPLU)                                     
  24 :        GMIN=SQRT(0.6666666666666666D0*GMIN)                                     
  25 :        N=0                                                                      
  26 :        IF(GPLU.LT.X.AND.GMIN.LT.X) THEN                                         
  27 :        N=1                                                                      
  28 :        GO TO 13                                                                 
  29 :        ELSE IF(SPLU.GE.Y.AND.SMIN.LT.Y) THEN                                    
  30 :        N=1                                                                      
  31 :        GO TO 13                                                                 
  32 :        ELSE IF(SPLU.GT.Y.AND.SMIN.LE.Y) THEN                                    
  33 :        N=1                                                                      
  34 :        GO TO 13                                                                 
  35 :        ELSE IF(SPLU.LT.Y.AND.SMIN.GE.Y) THEN                                    
  36 :        N=2                                                                      
  37 :        GO TO 13                                                                 
  38 :        ELSE IF(SPLU.LE.Y.AND.SMIN.GT.Y) THEN                                    
  39 :        N=2                                                                      
  40 :        GO TO 13                                                                 
  41 :        ELSE IF(SPLU.GT.Y.AND.SMIN.GT.Y.AND.GMIN.GT.(GPLU+X)) THEN               
  42 :        N=2                                                                      
  43 :        GO TO 13                                                                 
  44 :        ELSE IF(SPLU.GT.Y.AND.SMIN.GT.Y.AND.GMIN.LE.(GPLU+X)) THEN               
  45 :        N=1                                                                      
  46 :        GO TO 13                                                                 
  47 :        ELSE IF(SPLU.LT.Y.AND.SMIN.LT.Y.AND.GMIN.GT.(GPLU+X)) THEN               
  48 :        N=1                                                                      
  49 :        GO TO 13                                                                 
  50 :        ELSE IF(SPLU.LT.Y.AND.SMIN.LT.Y.AND.GMIN.LE.(GPLU+X)) THEN               
  51 :        N=2                                                                      
  52 :        ENDIF                                                                    
  53 :    13  CONTINUE                                                                 
  54 :        IF(N.EQ.0) GO TO 18                                                      
  55 :        IF(N.EQ.1) LL=0                                                          
  56 :        IF(N.EQ.2) LL=1                                                          
  57 :        IF(LL.EQ.M) GO TO 18                                                     
  58 :        IF(M.EQ.1) GO TO 15                                                      
  59 :        IF(GPLU.LE.EPSEFF) GO TO 18                                              
  60 :        DO 14 L=1,NSTRS                                                          
  61 :    14  EPSMIN(L)=EPSCRP(L)                                                      
  62 :        EPSEFF=GPLU                                                              
  63 :        GO TO 18                                                                 
  64 :    15  IF(GMIN.LE.EPSEFF) GO TO 18                                              
  65 :        DO 16 L=1,NSTRS                                                          
  66 :    16  EPSPLU(L)=EPSCRP(L)                                                      
  67 :        EPSEFF=GMIN                                                              
  68 :    18  CONTINUE                                                                 
  69 :        IF(LL.NE.0) GO TO 20                                                     
  70 :        EPSH=0.0D0                                                               
  71 :        DO 19 L=1,NSTRS                                                          
  72 :        A=1.D0 
  73 :        IF (L.GT.3) A=2.D0
  74 :    19  EPSH=EPSH+(EPSCRP(L)-EPSPLU(L))*(EPSCRP(L)-EPSPLU(L))*A        
  75 :        EPSH=SQRT(0.66666666666666666D0*EPSH)                                    
  76 :        GO TO 22                                                                 
  77 :    20  EPSH=0.0D0                                                               
  78 :        DO 21 L=1,NSTRS                                                          
  79 :        A=1.D0
  80 :        IF (L.GT.3) A=2.D0
  81 :    21  EPSH=EPSH+(EPSCRP(L)-EPSMIN(L))*(EPSCRP(L)-EPSMIN(L))*A                
  82 :        EPSH=SQRT(0.66666666666666666D0*EPSH)                                    
  83 :    22  CONTINUE                                                                 
  84 :        M =LL                                                                    
  85 : C                                                                               
  86 : C______________________________________________________________________         
  87 :        RETURN                                                                   
  88 :        END                                                                      
  89 :  
  90 :  

© Cast3M 2003 - All rights reserved.
Disclaimer