Télécharger xxpt1.eso

Retour à la liste

Numérotation des lignes :

xxpt1
  1. C XXPT1 SOURCE CHAT 05/01/13 04:15:53 5004
  2. SUBROUTINE XXPT1(SIG,EPSV,VAR,EPSVPT,VARPT,XPM,
  3. + XMAT,NSTRS0,NVARI,NCOMAT,MFR)
  4. C
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8(A-H,O-Z)
  7.  
  8. -INC PPARAM
  9. -INC CCOPTIO
  10. DIMENSION SIG(*),EPSV(*),VAR(*),EPSVPT(*),VARPT(*),XPM(*)
  11. DIMENSION XMAT(*)
  12. DIMENSION XX(6),SIG0(6),EPSV0(6),EPS0(6)
  13. PARAMETER (AMAX = 1.0D20, AMIN = 1.D-20)
  14. C----------------------------------------------------------------
  15. C ====> Connaissant l'etat, c'est @ dire SIG, EPSV et VAR
  16. C on calcule les d{riv{es EPSVPT et VARPT ( et XPM )
  17. C en utilisant les constantes XMAT
  18. C Il n'y a que (4+NSTRS) valeurs dans VARPT,
  19. C le reste constitue la m{moire.
  20. C----------------------------------------------------------------
  21. C
  22. C------- CAS DES COQUES EPAISSES: PASSAGE A 6 COMPOSANTES
  23. C
  24. IF (MFR.EQ.5) THEN
  25. NSTRS=NSTRS0+1
  26. SIG0(1)=SIG(1)
  27. SIG0(2)=SIG(2)
  28. SIG0(3)=0.D0
  29. SIG0(4)=SIG(3)
  30. SIG0(5)=SIG(4)
  31. SIG0(6)=SIG(5)
  32. EPSV0(1)=EPSV(1)
  33. EPSV0(2)=EPSV(2)
  34. EPSV0(3)=-1.D0*(EPSV0(1)+EPSV0(2))
  35. EPSV0(4)=EPSV(3)
  36. EPSV0(5)=EPSV(4)
  37. EPSV0(6)=EPSV(5)
  38. ELSE
  39. NSTRS=NSTRS0
  40. DO 01 I=1,NSTRS
  41. SIG0(I)=SIG(I)
  42. EPSV0(I)=EPSV(I)
  43. 01 CONTINUE
  44. ENDIF
  45. C
  46. C------- AFFECTATION DE QUELQUES VARIABLES
  47. P1 = VAR(2)
  48. XN = XMAT(17)
  49. ALPH2 = VAR(3)
  50. ALPH4 = VAR(4)
  51. C
  52. C------- EVALUATION DE J2( SIGMA - X ) = SQRT(3/2* Dev():Dev() )
  53. DO 69 I=1,NSTRS
  54. XX(I) = SIG0(I)- VAR(4+I)
  55. 69 CONTINUE
  56. TRACE = XX(1)+XX(2)+XX(3)
  57. C
  58. DO 70 I=1,NSTRS
  59. A = 0.0D0
  60. IF (I.LE.3) A=1.0D0/3.0D0
  61. XX(I) = XX(I)-A*TRACE
  62. 70 CONTINUE
  63. AJ2 = PROCON (XX,XX,NSTRS)
  64. AJ2 = SQRT(1.5D0*AJ2)
  65. C
  66. C------- CALCUL DU SEUIL
  67. R0 = XMAT(8)
  68. CD = XMAT(9)
  69. C K = XMAT(6), CK = XMAT(7)
  70. R = R0*((1.0D0-CD)+CD*ALPH2)
  71. SEUIL =(AJ2 - R)/( XMAT(6)*( 1.0D0 + XMAT(7)*ALPH2 ) )
  72. C
  73. C------- CALCUL DE EPS0
  74. C N = XMAT(5) XPUISS(X,A,AMAX) CALCULE X**A
  75. IF (SEUIL.GT.0.0D0) THEN
  76. PPT = XPUISS(SEUIL,XMAT(5),AMAX)
  77. ELSE
  78. PPT = 0.0D0
  79. ENDIF
  80. C
  81. DO 71 I=1,NSTRS,1
  82. IF (PPT.EQ.0.0D0) THEN
  83. EPS0(I) = 0.0D0
  84. XX(I) = 0.0D0
  85. ELSE
  86. XX(I) = XX(I)/AJ2
  87. EPS0(I) = XX(I)*PPT*1.5D0
  88. ENDIF
  89. 71 CONTINUE
  90. C
  91. C------- CALCUL DE P POINT
  92. C Par definition :
  93. C PPT = SQRT(2.0/3.0*PROCON(EPS0,EPS0,NSTRS))
  94. VARPT(1) = PPT
  95. VARPT(2) = PPT
  96. C
  97. C------- CALCUL DE LA NORMALE N = 2./3.*DEPSV/DP
  98. C en fait N // @ EPS0 et @ S - X
  99. C On utilisera N(I) = 2./3.*EPS0(I)/ PPT = XX(I)
  100. C
  101. C------- CALCUL DE XPT ( VARPT(4+1..NSTRS) ET XPM)
  102. C En fait on va differencier X ainsi :
  103. C D X = XPM * D P1**XM + XT * D T
  104. C
  105. C--- PREPARATION DU CALCUL DE XPM = CN.N - CX.X
  106. IF (PPT.NE.0.0D0) THEN
  107. C A = XMAT(11), A1 = XMAT(12)
  108. COEF1= XMAT(11)*ALPH2 + XMAT(12)*PROCON(EPSV0,XX,NSTRS)
  109. C C = XMAT(13), C1 = XMAT(14)
  110. COEF2= (XMAT(13)-XMAT(14)*ALPH4)* PROCON(VAR(5),XX,NSTRS)
  111. CN = (2.0D0/3.0D0*COEF1 - COEF2)*1.5D0
  112. CX =XMAT(14)*ALPH4
  113. C C0 = XMAT(23), P1M0 = XMAT(24)
  114. IF (VAR(5+NSTRS).GT.XMAT(24)) THEN
  115. CX = CX + (XMAT(23)*(VAR(5+NSTRS)-XMAT(24)))
  116. ENDIF
  117. ENDIF
  118. C
  119. C--- PREPARATION DU CALCUL DE XPT = - COX.X
  120. C G= XMAT(15), R = XMAT(16)
  121. XII = SQRT(1.5D0*PROCON(VAR(5),VAR(5),NSTRS))
  122. COX = XMAT(15)*XPUISS(XII,XMAT(16)-1.0D0,AMAX)
  123. C
  124. C--- CALCUL DE XPM ET XPT
  125. C Cas ou PPT = 0 (et EPS0 aussi )
  126. C alors XPM = 0.0 convient
  127. DO 72 I=1,NSTRS,1
  128. VARPT(4+I) = - COX*VAR(4+I)
  129. IF (PPT.NE.0.0D0) THEN
  130. XPM (I) = CN*XX(I) - CX*VAR(4+I)
  131. ELSE
  132. XPM(I) = 0.0D0
  133. ENDIF
  134. 72 CONTINUE
  135. C
  136. C------- DERIVEES DE ALPH2 ET ALPH4 : VARPT(3) ET VARPT(4)
  137. C C2,Q,G1,R1,BHETA = XMAT(18..22)
  138. C P,P1,ALPH2,ALPH4 = VAR (1..4)
  139. C Chargement cyclique ? si P1 < P1M
  140. IF (VAR(2).LT.VAR(5+NSTRS)) THEN
  141. AN = XMAT(17)
  142. P1M = VAR (5+NSTRS)
  143. CO = XMAT(18)* (XMAT(19)*XPUISS(P1M,AN,AMAX)-ALPH2)* PPT
  144. VARPT(3) = CO - XMAT(20)*XPUISS(ALPH2,XMAT(21),AMAX)
  145. IF(VAR(1).LT.AMIN)
  146. . WRITE(IOIMP,*) ' PROBLEME XXPT1 - VAR(1) = ',VAR(1)
  147. VARPT(4) = -XMAT(22)*PPT*ALPH4/(VAR(1)+AMIN)
  148. ELSE
  149. VARPT(3) = 0.0D0
  150. VARPT(4) = 0.0D0
  151. ENDIF
  152. C
  153. C------ CAS COQUE EPAISSE: RETOUR A 5 COMPOSANTES
  154. C
  155. IF (MFR.EQ.5) THEN
  156. EPSVPT(1)=EPS0(1)
  157. EPSVPT(2)=EPS0(2)
  158. EPSVPT(3)=EPS0(4)
  159. EPSVPT(4)=EPS0(5)
  160. EPSVPT(5)=EPS0(6)
  161. ELSE
  162. DO 02 I=1,NSTRS
  163. EPSVPT(I)=EPS0(I)
  164. 02 CONTINUE
  165. ENDIF
  166. C
  167. C------ ON RENTRE
  168. RETURN
  169. END
  170.  
  171.  
  172.  

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