Download solutn.eso

Back to the list

   1 : C SOLUTN    SOURCE    CHAT      05/01/13    03:21:51     5004           
   2 :        SUBROUTINE SOLUTN(INPLAS,SIG,EPSC,XMAT,DX,X)                             
   3 :       IMPLICIT INTEGER(I-N)
   4 :        IMPLICIT REAL*8 (A-H,O-Z)                                                
   5 :        DIMENSION XMAT(*)                                                        
   6 :        IF(INPLAS.EQ.20.OR.INPLAS.EQ.61) THEN                                                    
   7 :        F1   = XMAT(6)*DEXP(XMAT(7)*SIG)                                         
   8 :        F2   = XMAT(8)*SIG**XMAT(9)                                              
   9 :        FS   = F1 + F2                                                           
  10 :        R1   = XMAT(10)*DEXP(XMAT(11)*SIG)                                       
  11 :        R2   = XMAT(12)*SIG**XMAT(13)                                            
  12 :        RS   = R1 + R2                                                           
  13 :        CONS = (1.0D0-EPSC/FS)                                                   
  14 :        IF(CONS.GT.0.0D0) THEN                                                   
  15 :        X    =-DLOG(CONS)/RS                                                     
  16 :        RETURN                                                                   
  17 :        ELSE                                                                     
  18 :        X    = 1.0D20                                                            
  19 :        RETURN                                                                   
  20 :        ENDIF                                                                    
  21 :        ELSE IF(INPLAS.EQ.22) THEN                                               
  22 :        X    = (EPSC/XMAT(6)/SIG**XMAT(8))**(1.0D0/XMAT(7))                      
  23 :        RETURN                                                                   
  24 :        ELSE IF(INPLAS.EQ.23) THEN                                               
  25 :        CON1 = XMAT(7)*SIG/XMAT(8)                                               
  26 :        EPSM = XMAT(6)*(0.5D0*(DEXP(CON1)-DEXP(-CON1)))**XMAT(8)                 
  27 :        CON2 = XMAT(10)*SIG/XMAT(11)                                             
  28 :        R    = XMAT(9)*(0.5D0*(DEXP(CON2)-DEXP(-CON2)))**XMAT(11)                
  29 :        EPST = XMAT(12)*EPSM/R                                                   
  30 :        S    = XMAT(13)/XMAT(9)*R                                                
  31 :        EPSX = 0.0D0                                                             
  32 :        IF(SIG.GT.XMAT(16)) EPSX= XMAT(14)+XMAT(15)*SIG                          
  33 :        CON1 = EPST+EPSX-EPSC                                                    
  34 :        IF(CON1.GT.0.0D0) GO TO 7                                                
  35 :        X=1.0D20                                                                 
  36 :        RETURN                                                                   
  37 :        ENDIF                                                                    
  38 :     7  XO  = 0.0D0                                                              
  39 :        NIT=0                                                                    
  40 :     2  CONTINUE                                                                 
  41 :        F1 = CON1-EPST*DEXP(-R*XO)-EPSX*DEXP(-S*XO)                              
  42 :        F2 = EPST*R*DEXP(-R*XO)+EPSX*S*DEXP(-S*XO)                               
  43 :        IF(DABS(F2).LT.1.0D-10) GO TO 5                                          
  44 :        XN = XO - F1/F2                                                          
  45 :        IF(XN.LT.1.0D-10) THEN                                                   
  46 :        XO = 0.0                                                                 
  47 :        GO TO 5                                                                  
  48 :        ENDIF                                                                    
  49 :        DE = DABS(XN)                                                            
  50 :        IF(DE.EQ.0.0D0) DE=1.0                                                   
  51 :        ERR= DABS(XN-XO)/DE                                                      
  52 :        IF(ERR.LT.1.0D-4) GO TO 5                                                
  53 :        NIT= NIT+1                                                               
  54 :        XO = XN                                                                  
  55 :        IF(NIT.LT.200) GO TO 2                                                   
  56 :        WRITE(*,6)                                                               
  57 :     6  FORMAT(5X,'** NON-CONVERGENCY IN SOLUTION OF CREEP EQUATION**')          
  58 :        STOP                                                                     
  59 :     5  X=XO                                                                     
  60 :        RETURN                                                                   
  61 :        END                                                                      
  62 :  
  63 :  

© Cast3M 2003 - All rights reserved.
Disclaimer