Télécharger c2.eso

Retour à la liste

Numérotation des lignes :

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

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