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