Télécharger upvar1.eso

Retour à la liste

Numérotation des lignes :

upvar1
  1. C UPVAR1 SOURCE PV 15/04/13 21:15:18 8474
  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. -INC CCREEL
  9. C ____________________________________________________________________
  10. C
  11. C THIS ROUTINE UPDATE THE INTERNAL VARIABLES
  12. C_____________________________________________________________________
  13. SPLU=0.0D0
  14. GPLU=0.0D0
  15. GMIN=0.0D0
  16. SMIN=0.0D0
  17. sxgr=sqrt(xgrand)
  18. DO 11 I=1,NSTRS
  19. A=1.D0
  20. IF (I.GT.3) A=2.D0
  21. sigi=min(sxgr,max(-sxgr,sig(i)))
  22. epscr=min(sxgr,max(-sxgr,epscrp(i)))
  23. SPLU=SPLU+(EPSCR-EPSPLU(I))*SIGI*A
  24. SMIN=SMIN+(EPSCR-EPSMIN(I))*SIGI*A
  25. GPLU=GPLU+(EPSCR-EPSPLU(I))*(EPSCR-EPSPLU(I))*A
  26. 11 GMIN=GMIN+(EPSCR-EPSMIN(I))*(EPSCR-EPSMIN(I))*A
  27. GPLU=SQRT(0.6666666666666666D0*GPLU)
  28. GMIN=SQRT(0.6666666666666666D0*GMIN)
  29. N=0
  30. IF(GPLU.LT.X.AND.GMIN.LT.X) THEN
  31. N=1
  32. GO TO 13
  33. ELSE IF(SPLU.GE.Y.AND.SMIN.LT.Y) THEN
  34. N=1
  35. GO TO 13
  36. ELSE IF(SPLU.GT.Y.AND.SMIN.LE.Y) THEN
  37. N=1
  38. GO TO 13
  39. ELSE IF(SPLU.LT.Y.AND.SMIN.GE.Y) THEN
  40. N=2
  41. GO TO 13
  42. ELSE IF(SPLU.LE.Y.AND.SMIN.GT.Y) THEN
  43. N=2
  44. GO TO 13
  45. ELSE IF(SPLU.GT.Y.AND.SMIN.GT.Y.AND.GMIN.GT.(GPLU+X)) THEN
  46. N=2
  47. GO TO 13
  48. ELSE IF(SPLU.GT.Y.AND.SMIN.GT.Y.AND.GMIN.LE.(GPLU+X)) THEN
  49. N=1
  50. GO TO 13
  51. ELSE IF(SPLU.LT.Y.AND.SMIN.LT.Y.AND.GMIN.GT.(GPLU+X)) THEN
  52. N=1
  53. GO TO 13
  54. ELSE IF(SPLU.LT.Y.AND.SMIN.LT.Y.AND.GMIN.LE.(GPLU+X)) THEN
  55. N=2
  56. ENDIF
  57. 13 CONTINUE
  58. IF(N.EQ.0) GO TO 18
  59. IF(N.EQ.1) LL=0
  60. IF(N.EQ.2) LL=1
  61. IF(LL.EQ.M) GO TO 18
  62. IF(M.EQ.1) GO TO 15
  63. IF(GPLU.LE.EPSEFF) GO TO 18
  64. DO 14 L=1,NSTRS
  65. 14 EPSMIN(L)=EPSCRP(L)
  66. EPSEFF=GPLU
  67. GO TO 18
  68. 15 IF(GMIN.LE.EPSEFF) GO TO 18
  69. DO 16 L=1,NSTRS
  70. 16 EPSPLU(L)=EPSCRP(L)
  71. EPSEFF=GMIN
  72. 18 CONTINUE
  73. IF(LL.NE.0) GO TO 20
  74. EPSH=0.0D0
  75. DO 19 L=1,NSTRS
  76. A=1.D0
  77. IF (L.GT.3) A=2.D0
  78. 19 EPSH=EPSH+(EPSCRP(L)-EPSPLU(L))*(EPSCRP(L)-EPSPLU(L))*A
  79. EPSH=SQRT(0.66666666666666666D0*EPSH)
  80. GO TO 22
  81. 20 EPSH=0.0D0
  82. DO 21 L=1,NSTRS
  83. A=1.D0
  84. IF (L.GT.3) A=2.D0
  85. 21 EPSH=EPSH+(EPSCRP(L)-EPSMIN(L))*(EPSCRP(L)-EPSMIN(L))*A
  86. EPSH=SQRT(0.66666666666666666D0*EPSH)
  87. 22 CONTINUE
  88. M =LL
  89. C
  90. C______________________________________________________________________
  91. RETURN
  92. END
  93.  
  94.  
  95.  
  96.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales