Télécharger c2.eso

Retour à la liste

Numérotation des lignes :

  1. C C2 SOURCE CHAT 05/01/12 21:45:04 5004
  2. SUBROUTINE C2(SIG,DSIG,YOUN,ANU,RT1,RDP,ADP,
  3. 1 XLAM1,XLAM2,IDAM,ANG)
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6. -INC CCOPTIO
  7. DIMENSION SIG(3),DSIG(3),SFC(3),DSFC(3),TSFC(3),SFG(3),DSFG(3),
  8. 1 A(4),B(2),IDAM(3),EPC(3),SG(3),DSG(3)
  9. Y=YOUN/(1.D0-ANU*ANU)
  10. C
  11. C--------------------------------------------
  12. C BOITE D ECOULEMENT DE COMPRESSION
  13. C--------------------------------------------
  14. C
  15. C-----------------------------------------------
  16. C ON SE PLACE DANS LE REPERE DE FISSURATION
  17. C-----------------------------------------------
  18. C
  19. IF(IIMPI.EQ.9) WRITE(IOIMP,9999)
  20. 9999 FORMAT(1X,'C2 ECOULEMENT SUIVANT COMP 2',/)
  21. CALL CHREP(SIG,SFG,ANG)
  22. CALL CHREP(DSIG,DSFG,ANG)
  23. DL2=(SFG(2)+DSFG(2))/Y
  24. C
  25. C------------------------------------------
  26. C CAS OU LA FISSURE RESTE OUVERTE
  27. C TOUT LE TEMPS DE L ECOULEMENT (1000)
  28. C-------------------------------------------
  29. C
  30. IF(DL2.GT.0.D0) THEN
  31. IDAM(2)=0
  32. RETURN
  33. ENDIF
  34. IF(DL2.GE.-XLAM2) THEN
  35. EPC(2)=DL2
  36. EPC(1)=0.D0
  37. EPC(3)=0.D0
  38. CALL CPHOOB(EPC,SFC,YOUN,ANU)
  39. X=1.D0
  40. GOTO 1000
  41. ENDIF
  42. C
  43. C-------------------------------------------
  44. C CAS OU LA FISSURE EST FERME AVANT
  45. C LA FIN DE L ECOULEMENT
  46. C-------------------------------------------
  47. C
  48. DL2=-XLAM2
  49. EPC(2)=DL2
  50. EPC(1)=0.D0
  51. EPC(3)=0.D0
  52. CALL CPHOOB(EPC,SFC,YOUN,ANU)
  53. C
  54. C------------------------------------------
  55. C ON CALCULE LA PARTIE DE DSIGMA
  56. C QU IL FAUT POUR FERMER LA FISSURE
  57. C------------------------------------------
  58. C
  59. IF(DSFG(2).EQ.0.D0) THEN
  60. X=0.D0
  61. DO 10 ITYP=1,3
  62. DSFC(ITYP)=DSFG(ITYP)
  63. 10 SFC(ITYP)=SFG(ITYP)-SFC(ITYP)
  64. XLAM2=0.D0
  65. DL2=0.D0
  66. GOTO 1010
  67. ENDIF
  68. X=(-SFG(2)+SFC(2))/DSFG(2)
  69. IF(X.LT.0.D0) THEN
  70. X=0.D0
  71. DO 15 ITYP=1,3
  72. DSFC(ITYP)=DSFG(ITYP)
  73. 15 SFC(ITYP)=SFG(ITYP)-SFC(ITYP)
  74. XLAM2=0.D0
  75. DL2=0.D0
  76. GOTO 1010
  77. ENDIF
  78. 1000 DO 20 ITYP=1,3
  79. DSFC(ITYP)=(1.D0-X)*DSFG(ITYP)
  80. 20 SFC(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-SFC(ITYP)
  81. C
  82. C-----------------------------------------------
  83. C ON REGARDE SI LES AUTRES CRITERES NE
  84. C SONT PAS ENDOMMAGES PENDANT L ECOULEMENT
  85. C-----------------------------------------------
  86. C
  87. CALL CDP(SFC,ADP,RDP,VCDP)
  88. CALL CTRAF(SFC(1),RT1,VCTR1)
  89. CALL CCOAF(SFC(1),XLAM1,VCCO1)
  90. C
  91. C------------------------------------
  92. C CRITERE DE TRACTION ENDOMMAGE
  93. C------------------------------------
  94. C
  95. IF(VCTR1.GT.0.D0) GOTO 2000
  96. C
  97. C----------------------------------------
  98. C CRITERE DE COMPRESSION ENDOMMAGE
  99. C----------------------------------------
  100. C
  101. IF(VCCO1.GT.0.D0) GOTO 3000
  102. C
  103. C------------------------------------
  104. C CRITERE DE TRACTION ENDOMMAGE
  105. C------------------------------------
  106. C
  107. IF(VCDP.GT.0.D0) GOTO 4000
  108. C
  109. C---------------------------------------------------
  110. C AUCUN CRITERE ENDOMMAGE PENDANT L ECOULEMENT
  111. C---------------------------------------------------
  112. C
  113. 1010 DO 30 ITYP=1,3
  114. 30 TSFC(ITYP)=DSFC(ITYP)+SFC(ITYP)
  115. C
  116. C---------------------------------------------------
  117. C ON REGARDE SI L ECOULEMENT RESTANT N ENDOMMAGE
  118. C PAS LES CRITERES
  119. C---------------------------------------------------
  120. C
  121. IDAM(1)=0
  122. IDAM(2)=0
  123. IDAM(3)=0
  124. C=1.D0-1.D-10
  125. IF(X.GE.C) THEN
  126. GAM=1.D0
  127. GOTO 1500
  128. ENDIF
  129. GAMDP=10.D0
  130. GAMCO1=10.D0
  131. GAMTR1=10.D0
  132. CALL CDP(TSFC,ADP,RDP,VCDP)
  133. IF(VCDP.GT.0.D0) CALL GDP(SFC,DSFC,RDP,ADP,GAMDP)
  134. CALL CTRAF(TSFC(1),RT1,VCTR1)
  135. IF(VCTR1.GT.0.D0) CALL GAMTAF(SFC(1),DSFC(1),RT1,GAMTR1)
  136. CALL CCOAF(TSFC(1),XLAM1,VCCO1)
  137. IF(VCCO1.GT.0.D0) CALL GAMCAF(SFC(1),DSFC(1),GAMCO1)
  138. GAM=MIN(GAMTR1,GAMCO1,GAMDP)
  139. IF(GAM.GE.C) THEN
  140. GAM=1.D0
  141. GOTO 1500
  142. ENDIF
  143. IF(ABS(GAMCO1-GAM).LT.1.E-10) IDAM(1)=-1
  144. IF(ABS(GAMTR1-GAM).LT.1.E-10) IDAM(1)=1
  145. IF(ABS(GAMDP-GAM).LT.1.E-10) IDAM(3)=1
  146. XLAM2=0.D0
  147. DL2=0.D0
  148. 1500 DO 40 ITYP=1,3
  149. SFG(ITYP)=SFC(ITYP)+GAM*DSFC(ITYP)
  150. 40 DSFG(ITYP)=(1.D0-GAM)*DSFC(ITYP)
  151. CALL CHREP(SFG,SIG,-ANG)
  152. CALL CHREP(DSFG,DSIG,-ANG)
  153. XLAM2=XLAM2+DL2
  154. RETURN
  155. C
  156. C----------------------------------------
  157. C CAS OU EN ENDOMMAGE LA TRACTION1
  158. C PENDANT LA FERMETURE DE LA FISSURE
  159. C----------------------------------------
  160. C
  161. 2000 A(1)=DSFG(1)
  162. A(3)=DSFG(2)
  163. A(4)=-Y
  164. A(2)=A(4)*ANU
  165. DET=A(1)*A(4)-A(2)*A(3)
  166. IF(DET.EQ.0.D0) THEN
  167. IDAM(1)=1
  168. IDAM(2)=-1
  169. IDAM(3)=0
  170. RETURN
  171. ENDIF
  172. B(1)=RT1-SFG(1)
  173. B(2)=-SFG(2)
  174. CALL SYLIN2(A,B,X,DL2)
  175. EPC(2)=DL2
  176. EPC(1)=0.D0
  177. EPC(3)=0.D0
  178. CALL CPHOOB(EPC,SFC,YOUN,ANU)
  179. DO 50 ITYP=1,3
  180. DSFC(ITYP)=(1.D0-X)*DSFG(ITYP)
  181. 50 SFC(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-SFC(ITYP)
  182. CALL CDP(SFC,ADP,RDP,VCDP)
  183. IF(VCDP.GT.0.D0) GOTO 4000
  184. IDAM(2)=-1
  185. IDAM(1)=1
  186. IDAM(3)=0
  187. XLAM2=XLAM2+DL2
  188. CALL CHREP(DSFC,DSIG,-ANG)
  189. CALL CHREP(SFC,SIG,-ANG)
  190. RETURN
  191. C
  192. C----------------------------------------
  193. C CAS OU EN ENDOMMAGE LA COMPRESSION1
  194. C PENDANT LA FERMETURE DE LA FISSURE
  195. C----------------------------------------
  196. C
  197. 3000 A(1)=DSFG(1)
  198. A(3)=DSFG(2)
  199. A(4)=-Y
  200. A(2)=A(4)*ANU
  201. DET=A(1)*A(4)-A(2)*A(3)
  202. IF(DET.EQ.0.D0) THEN
  203. IDAM(1)=-1
  204. IDAM(2)=-1
  205. IDAM(3)=0
  206. RETURN
  207. ENDIF
  208. B(1)=-SFG(1)
  209. B(2)=-SFG(2)
  210. CALL SYLIN2(A,B,X,DL2)
  211. EPC(2)=DL2
  212. EPC(1)=0.D0
  213. EPC(3)=0.D0
  214. CALL CPHOOB(EPC,SFC,YOUN,ANU)
  215. DO 150 ITYP=1,3
  216. DSFC(ITYP)=(1.D0-X)*DSFG(ITYP)
  217. 150 SFC(ITYP)=SFG(ITYP)+X*DSFG(ITYP)-SFC(ITYP)
  218. CALL CDP(SFC,ADP,RDP,VCDP)
  219. IF(VCDP.GT.0.D0) GOTO 4000
  220. IDAM(1)=-1
  221. IDAM(2)=-1
  222. IDAM(3)=0
  223. XLAM2=XLAM2+DL2
  224. CALL CHREP(DSFC,DSIG,-ANG)
  225. CALL CHREP(SFC,SIG,-ANG)
  226. RETURN
  227. C
  228. C----------------------------------------
  229. C CAS OU EN ENDOMMAGE LE DP
  230. C PENDANT LA FERMETURE DE LA FISSURE
  231. C----------------------------------------
  232. C
  233. 4000 CONTINUE
  234. EPC(1)=0.D0
  235. EPC(2)=1.D0
  236. EPC(3)=0.D0
  237. CALL CPHOOB(EPC,SFC,YOUN,ANU)
  238. E=Y
  239. F=SFG(2)/E
  240. G=DSFG(2)/E
  241. DO 70 ITYP=1,3
  242. SG(ITYP)=SFG(ITYP)-F*SFC(ITYP)
  243. 70 DSG(ITYP)=DSFG(ITYP)-G*SFC(ITYP)
  244. CALL XDP(SG,DSG,RDP,ADP,X,ITEST)
  245. IF(ITEST.EQ.1) THEN
  246. IDAM(1)=0
  247. IDAM(2)=-1
  248. IDAM(3)=1
  249. RETURN
  250. ENDIF
  251. DL2=(SFG(2)+X*DSFG(2))/Y
  252. EPC(1)=0.D0
  253. EPC(2)=DL2
  254. EPC(3)=0.D0
  255. CALL CPHOOB(EPC,SFC,YOUN,ANU)
  256. DO 60 ITYP=1,3
  257. SFG(ITYP)=X*DSFG(ITYP)-SFC(ITYP)+SFG(ITYP)
  258. 60 DSFG(ITYP)=DSFG(ITYP)*(1.D0-X)
  259. XLAM2=XLAM2+DL2
  260. CALL CHREP(DSFG,DSIG,-ANG)
  261. CALL CHREP(SFG,SIG,-ANG)
  262. IDAM(1)=0
  263. IDAM(2)=-1
  264. IDAM(3)=1
  265. RETURN
  266. END
  267.  
  268.  

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