Télécharger projvm.eso

Retour à la liste

Numérotation des lignes :

projvm
  1. C PROJVM SOURCE OF166741 25/11/04 21:16:02 12349
  2. C
  3. C CALCULE L ECOULEMENT EN CAS DE CRITERE DE VON MISES
  4. C
  5. SUBROUTINE PROJVM(SIG,EPS,EPST,EPSTAR,DEPS,PENTE,SN,
  6. . PANTIN,SELAS,ITER,SO,SSTAR,SI,NK,IBOU,COEF,JKI,
  7. . KERRE,ecou,necou)
  8.  
  9. IMPLICIT INTEGER(I-N)
  10. IMPLICIT REAL*8(A-H,O-Z)
  11.  
  12. -INC TECOU
  13.  
  14. DIMENSION SIG(*),EPS(*),COEF(*)
  15.  
  16. DATA ITMAX/200/
  17.  
  18. JEBOUC=0
  19. PENTEJ=PENTE
  20. DEPSJ=DEPS
  21.  
  22. 2020 CONTINUE
  23. JEBOUC=JEBOUC+1
  24. PENTE=PENTEJ
  25. DEPS=DEPSJ
  26.  
  27. IF(JEBOUC.GT.1) WRITE(6,77881) PENTE,DEPS
  28. 77881 FORMAT('0 VALEURS INITIALES PENTE=',1PE16.5,2X,
  29. . 'DEPS=',1PE16.5/)
  30. C
  31. C CAS PLASTIQUE
  32. EPST=EPSTAR+DEPS
  33. C CONTRAINTE SUR LA COURBE DE TRACTION CORRESPONDANTE
  34. IF(ICINE.EQ.1) GO TO 81
  35. C CAS ISOTROPE
  36. CALL TRACTI(SN,EPST,SIG,EPS,NCOURB,2,IBI)
  37. IF(IBI.EQ.1) THEN
  38. KERRE=75
  39. GO TO 57
  40. ENDIF
  41. C
  42. C CAS MIXTE CALCUL DU NOUVEAU RAYON DE LA SPHERE
  43. IF(ICINE.EQ.2) SN=SN-PANTIN*EPST
  44. GO TO 82
  45. C CAS CINEMATIQUE
  46. 81 SN=SELAS
  47. 82 CONTINUE
  48. C CONTRAINTE MOYENNE
  49. SM=0.5*(SN+SELAS)
  50. C 2222 CONTINUE
  51. C
  52. C ITERATIONS INTERNES CALCUL DE DELTA EPSILON
  53. C
  54. ITER=0
  55. DEPS0=DEPS
  56. DEPSI=DEPS0
  57. SO=SN
  58. DEPS00=DEPS0
  59. JYCOMP=0
  60. UNSSM=1./SM
  61. SIGT(1)=SIGEL(1)+DSIGP(1)
  62. SI=SSTAR
  63. IF(JEBOUC.GT.1) WRITE(6,77882) SN,SM,SI
  64. 77882 FORMAT('0 SN =',1PE16.5,2X,'SM=',1PE16.5,2X,
  65. . 'SI=',1PE12.5/)
  66.  
  67. 555 CONTINUE
  68. ITER=ITER+1
  69. IF(JEBOUC.GT.1) WRITE(6,77883) ITER
  70. 77883 FORMAT('0 -----> ITER=',I3/)
  71. DEPSI1=DEPSI
  72. SI1=SI
  73. STEST=ecou.ECTEST*SN
  74. Z=0.
  75. DO 52 IB=NK,IBOU
  76.  
  77. Y=UNSSM*E(IB)
  78. X=Y*DEPS
  79.  
  80. IF(X.EQ.0.) GO TO 51
  81. EXPMX=EXP(-X)
  82. UNSX=1./X
  83. UNSX2=UNSX*UNSX
  84. X2=X*X
  85. IF (ABS(X).LT.1.D-17) GO TO 50
  86. SIGT(IB)=(SIGEL(IB)-DSIGP(IB)*UNSX)*EXPMX+DSIGP(IB)*UNSX
  87. Z=Z+COEF(JKI+IB)*SIGT(IB)*(EXPMX*(DSIGP(IB)*UNSX2-SIGEL(IB)+
  88. 1DSIGP(IB)*UNSX)-DSIGP(IB)*UNSX2)*E(IB)
  89. GO TO 52
  90. 50 CONTINUE
  91. SIGT(IB)=SIGEL(IB)*(1.-X+0.5*X2)+DSIGP(IB)*(1-0.5*X)
  92. Z=Z+COEF(JKI+IB)*SIGT(IB)*E(IB)*(DSIGP(IB)*((X/3.)-0.5)-
  93. 1 SIGEL(IB)*(1-X+0.5*X2))
  94. GO TO 52
  95. C UNE VALEUR PROPRE EST NULLE
  96. 51 CONTINUE
  97. SIGT(IB)=SIGEL(IB)+DSIGP(IB)
  98. 52 CONTINUE
  99.  
  100. C NOUVEL DEPS
  101. SI=VNMISD(SIGT,ITYP,ecou.ALFAH,ecou.CVNMSD)
  102. X=PENTE-Z*UNSSM/SI
  103. ZOB1 = UNSSM/SI
  104. ZOB2 = ZOB1 * Z
  105. IF(JEBOUC.GT.1) WRITE(6,77888) PENTE,Z,UNSSM
  106. 77888 FORMAT('0 PENTE =',1PE16.5,2X,'Z=',1PE16.5,2X,'UNSSM=',1PE16.5/)
  107. DEPSI=(SI-SN)/X
  108. DEPS=DEPS+DEPSI
  109. EPST=DEPS+EPSTAR
  110. IF(JEBOUC.GT.1) WRITE(6,77884) SI,SN,X,DEPSI,DEPS
  111. 77884 FORMAT('0 SI =',1PE16.5,2X,'SN=',1PE16.5,2X,
  112. .'X=',1PE16.5,2X, 'DEPSI=',1PE16.5,2X,'DEPS=',1PE16.5/)
  113. IF(ICINE.EQ.1) GO TO 580
  114. C ON CALCULE LA CONTRAINTE SUR LA COURBE DE TRACTION A
  115. C LA FIN DU PAS
  116. EPSTP=EPST
  117. C ON CONTROLE SI LE DEPS EST POSITIF
  118. C SI DEPS EST NEGATIF ON PREND EPSTP =EPST A L ITERATION PRECE
  119. IF(DEPS.LT.0.) EPSTP=EPSTP-DEPSI
  120. CALL TRACTI(SN,EPSTP,SIG,EPS,NCOURB,2,IBI)
  121. IF(IBI.EQ.1) THEN
  122. KERRE=75
  123. GO TO 57
  124. ENDIF
  125. C ON CALCULE LA PENTE A LA COURBE DE TRACTION A LA FIN DU PAS
  126. CALL TRACTI(PENTE1,EPSTP,SIG,EPS,NCOURB,1,IBI)
  127. IF(ICINE.EQ.2) SN=SN-EPST*PANTIN
  128. 580 CONTINUE
  129. IF (ITER.GE.ITMAX) GO TO 56
  130. C ON N A PAS DEPASSE LE NOMBRE MAX D ITERATIONS INTERNES
  131. C** IF(DEPS) 54,500,500
  132. IF (DEPS .LT. 0.D0) GOTO 54
  133. C DEPS EST POSITIF
  134. 500 CONTINUE
  135. C ON PREND COMME NOUVELLE PENTE LA PENTE A LA FIN DU PAS
  136. C* IF(ABS(SI-SN)-STEST) 57,57,555
  137. IF ((ABS(SI-SN)-STEST) .GT. 0.D0) GOTO 555
  138. GOTO 57
  139. C A T ON CONVERGE
  140. 56 SSTST=ABS(SI-SN)/SN
  141. KERRE=2
  142. write(6,fmt='('' kerre projvm'',i6)')kerre
  143. GO TO 57
  144. 54 CONTINUE
  145. C DEPS EST NEGATIF
  146. C LA PENTE A LA FIN DU PAS EST-ELLE SUPERIEURE A LA PENTE
  147. C AU DEBUT DANS LES CAS ISOTROPE ?
  148. IF(ICINE.EQ.1) GO TO 543
  149. C
  150. C MILL 26/3/93
  151. IF(PENTE.EQ.0.D0.AND.DEPS.LE.0.D0) GOTO 540
  152. C
  153. X=ABS(PENTE)
  154. IF(X.LT.ABS(PENTE1)) X=ABS(PENTE1)
  155. X=ABS((PENTE-PENTE1)/(X+1.D-10))
  156. IF(X.LT..2D00) GO TO 543
  157. C LA PENTE VARIE DE PLUS DE 20%
  158. C ON REGARDE SI LA COURBE EST CONCAVE
  159. IF(PENTE1.LT.PENTE) GO TO 543
  160. EPST=EPST-DEPS
  161. DEPS=DEPS-DEPSI
  162. C ON PREND PENTE =.5*(PENTE AU DEBUT + PENTE A LA FIN )
  163. PENTE=0.5D00*(PENTE+PENTE1)
  164. C ON CALCULE LE NOUVEAU DEPSI
  165. X=PENTE-Z*UNSSM/SI
  166. DEPSI=(SI-SN)/X
  167.  
  168. DEPS=DEPS+DEPSI
  169. IF(DEPS.GT.0.D00) GO TO 542
  170. C DEPS EST ENCORE NEGATIF
  171. GO TO 540
  172. 543 CONTINUE
  173. C LE POINT SI EST AU DESSUS DE LA SURFACE
  174. C ON RECOMMENCE AVEC LE PREMIER DEPS DIVISE PAR 2
  175. C LE POINT SI EST EN DESSOUS ON ASSIMILE LA TGT A LA CORDE
  176. EPST=EPST-DEPS
  177. DEPS=DEPS-DEPSI
  178. IF(SI.GT.SN) GO TO 540
  179. X=PENTE-(SI-SI1)/DEPSI1
  180. GO TO 541
  181. 540 CONTINUE
  182. IF(JYCOMP.GT.0) DEPS00=0.5*DEPS00
  183. JYCOMP=JYCOMP+1
  184. IF(JEBOUC.GT.1) WRITE(6,77887) JYCOMP
  185. 77887 FORMAT('0 JYCOMP = ',I4/)
  186. DEPS=0.5*DEPS00
  187. EPSOM=EPSTAR+DEPS
  188. DEPSI=DEPS
  189. CALL TRACTI(SN,EPSOM,SIG,EPS,NCOURB,2,IBI)
  190. IF(IBI.EQ.1) THEN
  191. KERRE=75
  192. GO TO 57
  193. ENDIF
  194. SM=0.5D00*(SN+SELAS)
  195. UNSSM=1.D00/SM
  196. GO TO 542
  197. 541 CONTINUE
  198. DEPSI=(SI-SN)/X
  199. DEPS=DEPS+DEPSI
  200. IF(DEPS.LE.0.D00) GO TO 540
  201. 542 CONTINUE
  202. EPST=EPSTAR+DEPS
  203. GO TO 555
  204.  
  205. 57 CONTINUE
  206. IF (DEPS.LT.0.D0) THEN
  207. IF (JEBOUC.EQ.1) GO TO 2020
  208. ENDIF
  209.  
  210. RETURN
  211. END
  212.  
  213.  
  214.  

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