Télécharger brilam.eso

Retour à la liste

Numérotation des lignes :

  1. C BRILAM SOURCE CHAT 05/01/12 21:42:37 5004
  2. SUBROUTINE BRILAM(ICAS,ALFADV,ALFAD1,ALFAD2,VMELAS,DPELAS,DPELA1,
  3. .DPELA2,PORELA,PENTE1,PENTE2,PENTE3,YUNG,XNU,SIGEL,DSIGP,SIGMAT,
  4. .IC1,IC2,DGLAP1,DGLAP2,DGLAM1,DGLAM2,DGLA1,DGLA2,DL1,DL2,DI1,DI2,
  5. .KERRE)
  6. C
  7. IMPLICIT INTEGER(I-N)
  8. IMPLICIT REAL*8(A-H,O-Z)
  9. -INC CCOPTIO
  10. C
  11. DIMENSION SIGEL(*),DSIGP(*),SIGMAT(*)
  12. C
  13. ZR=0.D0
  14. C
  15. GO TO (100,200,300,400,500,600,700,800),ICAS
  16. WRITE(IOIMP,10)ICAS
  17. KERRE=640
  18. RETURN
  19. C
  20. C CAS DU CRITERE DE LA POROSITE (1) AVEC
  21. C LE CRITERE DE DRUCKER DUCTILE (2)
  22. C
  23. 100 A1=-0.3333333333333333333333333333333333333D0
  24. IB1=0
  25. H1=PENTE3
  26. A2=ALFADV
  27. IB2=1
  28. H2=0.D0
  29. IC1=1
  30. IC2=2
  31. GO TO 2
  32. C
  33. C CAS DU CRITERE DE LA POROSITE (1) AVEC
  34. C LE CRITERE DE VON MISES (2)
  35. C
  36. 200 A1=-0.33333333333333333333333333333333333333D0
  37. IB1=0
  38. H1=PENTE3
  39. A2=0.D0
  40. IB2=1
  41. H2=PENTE1
  42. IC1=1
  43. IC2=3
  44. GO TO 2
  45. C
  46. C CAS DU CRITERE DE DRUCKER DUCTILE (1) AVEC
  47. C LE CRITERE DE VON MISES (2)
  48. C
  49. 300 A1=ALFADV
  50. IB1=1
  51. H1=0.D0
  52. A2=0.D0
  53. IB2=1
  54. H2=PENTE1
  55. IC1=2
  56. IC2=3
  57. GO TO 2
  58. C
  59. C CAS DU CRITERE DE DRUCKER DUCTILE (1) AVEC
  60. C LE CRITERE DE DRUCKER FRAGILE (2)
  61. C
  62. 400 A1=ALFADV
  63. IB1=1
  64. H1=0.D0
  65. A2=ALFAD1
  66. IB2=1
  67. H2=0.D0
  68. IC1=2
  69. IC2=4
  70. GO TO 2
  71. C
  72. C CAS DU CRITERE DE DRUCKER DUCTILE (1) AVEC
  73. C LE CRITERE DE DRUCKER ECROUISSABLE (2)
  74. C
  75. 500 A1=ALFADV
  76. IB1=1
  77. H1=0.D0
  78. A2=ALFAD2
  79. IB2=1
  80. H2=PENTE2
  81. IC1=2
  82. IC2=5
  83. GO TO 2
  84. C
  85. C CAS DU CRITERE DE VON MISES (1) AVEC
  86. C LE CRITERE DE DRUCKER ECROUISSABLE (2)
  87. C
  88. 600 A1=0.D0
  89. IB1=1
  90. H1=PENTE1
  91. A2=ALFAD2
  92. IB2=1
  93. H2=PENTE2
  94. IC1=3
  95. IC2=5
  96. GO TO 2
  97. C
  98. C CAS DU CRITERE DE DRUCKER FRAGILE (1) AVEC
  99. C LE CRITERE DE DRUCKER ECROUISSABLE (2)
  100. C
  101. 700 A1=ALFAD1
  102. IB1=1
  103. H1=0.D0
  104. A2=ALFAD2
  105. IB2=1
  106. H2=PENTE2
  107. IC1=4
  108. IC2=5
  109. GO TO 2
  110. C
  111. C CAS DU CRITERE DE VON MISES (1) AVEC
  112. C LE CRITERE DE DRUCKER FRAGILE (2)
  113. C
  114. 800 A1=0.D0
  115. IB1=1
  116. H1=PENTE1
  117. A2=ALFAD1
  118. IB2=1
  119. H2=0.D0
  120. IC1=3
  121. IC2=4
  122. C
  123. 2 SU=1.5D0*YUNG/(1.D0+XNU)
  124. DU=3.D0*YUNG/(1.D0-2.D0*XNU)
  125. C
  126. C CALCUL DU: A11, A22, A12
  127. C
  128. A11=H1
  129. IF(IB1.NE.0) A11=A11+SU
  130. IF(A1.NE.0.D0) A11=A11+A1*A1*DU
  131. A22=H2
  132. IF(IB2.NE.0) A22=A22+SU
  133. IF(A2.NE.0.D0) A22=A22+A2*A2*DU
  134. A12=IB1*IB2*SU+A1*A2*DU
  135. C
  136. DET=A11*A22-A12*A12
  137. IF(IIMPI.EQ.9)
  138. . WRITE(IOIMP,1000) DET,A11,A22,A12
  139.  
  140. C
  141. IF(DET.NE.0.D0) GO TO 3
  142. WRITE(IOIMP,11)
  143. KERRE=640
  144. RETURN
  145. C
  146. C CALCUL DU: DGLA1, DGLA2
  147. C
  148. 3 TRSIGE=SIGEL(1)+SIGEL(2)+SIGEL(3)
  149. SIGEQ2=AVM(SIGEL,SIGEL)
  150. SIGEQ=SQRT(SIGEQ2)
  151. IF(SIGEQ.EQ.0.D0) GO TO 8
  152. TRDSIG=DSIGP(1)+DSIGP(2)+DSIGP(3)
  153. C1=A1*TRDSIG
  154. IF(IB1.EQ.0)GO TO 4
  155. FF=SIGEL(1)*DSIGP(1)+SIGEL(2)*DSIGP(2)+SIGEL(3)*DSIGP(3)
  156. ZZ=2.D0*(SIGEL(4)*DSIGP(4)+SIGEL(5)*DSIGP(5)+SIGEL(6)*DSIGP(6))
  157. TRSIDS=FF+ZZ-TRSIGE*TRDSIG/3.D0
  158. C1=C1+1.5D0*TRSIDS/SIGEQ
  159. IF(IIMPI.EQ.9)
  160. . WRITE(IOIMP,1001) C1,FF,ZZ,TRDSIG,TRSIDS,TRSIGE
  161. 4 C2=A2*TRDSIG
  162. IF(IB2.EQ.0) GO TO 5
  163. FF=SIGEL(1)*DSIGP(1)+SIGEL(2)*DSIGP(2)+SIGEL(3)*DSIGP(3)
  164. ZZ=2.*(SIGEL(4)*DSIGP(4)+SIGEL(5)*DSIGP(5)+SIGEL(6)*DSIGP(6))
  165. TRSIDS=FF+ZZ-TRSIGE*TRDSIG/3.
  166. C2=C2+1.5D0*TRSIDS/SIGEQ
  167. IF(IIMPI.EQ.9)
  168. . WRITE(IOIMP,1002) C2,FF,ZZ,TRDSIG,TRSIDS,TRSIGE
  169. 5 DGLA1=(C1*A22-C2*A12)/DET
  170. DGLA2=(C2*A11-C1*A12)/DET
  171. IF(IIMPI.EQ.9)
  172. . WRITE(IOIMP,1003) DGLA1,DGLA2
  173. C
  174. C CALCUL DU: DGLAP1, DGLAP2
  175. C
  176. TRSIGE=SIGMAT(1)+SIGMAT(2)+SIGMAT(3)
  177. SIGEQ2=AVM(SIGMAT,SIGMAT)
  178. SIGEQ=SQRT(SIGEQ2)
  179. IF(SIGEQ.EQ.0.D0) GO TO 8
  180. TRDSIG=DSIGP(1)+DSIGP(2)+DSIGP(3)
  181. C1=A1*TRDSIG
  182. IF(IB1.EQ.0)GO TO 6
  183. FF=SIGMAT(1)*DSIGP(1)+SIGMAT(2)*DSIGP(2)+SIGMAT(3)*DSIGP(3)
  184. ZZ=2.D0*(SIGMAT(4)*DSIGP(4)+SIGMAT(5)*DSIGP(5)+SIGMAT(6)*DSIGP(6))
  185. TRSIDS=FF+ZZ-TRSIGE*TRDSIG/3.D0
  186. C1=C1+1.5D0*TRSIDS/SIGEQ
  187. IF(IIMPI.EQ.9)
  188. . WRITE(IOIMP,1001) C1,FF,ZZ,TRDSIG,TRSIDS,TRSIGE
  189. 6 C2=A2*TRDSIG
  190. IF(IB2.EQ.0) GO TO 7
  191. FF=SIGMAT(1)*DSIGP(1)+SIGMAT(2)*DSIGP(2)+SIGMAT(3)*DSIGP(3)
  192. ZZ=2.D0*(SIGMAT(4)*DSIGP(4)+SIGMAT(5)*DSIGP(5)+SIGMAT(6)*DSIGP(6))
  193. TRSIDS=FF+ZZ-TRSIGE*TRDSIG/3.D0
  194. C2=C2+1.5*TRSIDS/SIGEQ
  195. IF(IIMPI.EQ.9)
  196. . WRITE(IOIMP,1002) C2,FF,ZZ,TRDSIG,TRSIDS,TRSIGE
  197. 7 DGLAP1=(C1*A22-C2*A12)/DET
  198. DGLAP2=(C2*A11-C1*A12)/DET
  199. IF(IIMPI.EQ.9)
  200. . WRITE(IOIMP,1004) DGLAP1,DGLAP2
  201. C
  202. C CALCUL DU: DGLAM1, DGLAM2
  203. C
  204. CALL KRITER(IC1,ALFADV,ALFAD1,ALFAD2,VMELAS,DPELAS,
  205. . DPELA1,DPELA2,PORELA,PENTE1,PENTE2,PENTE3,ZR,SIGMAT,FSG,C1,KERRE)
  206. CALL KRITER(IC2,ALFADV,ALFAD1,ALFAD2,VMELAS,DPELAS,
  207. . DPELA1,DPELA2,PORELA,PENTE1,PENTE2,PENTE3,ZR,SIGMAT,FSG,C2,KERRE)
  208. DGLAM1=(C1*A22-C2*A12)/DET
  209. DGLAM2=(C2*A11-C1*A12)/DET
  210. IF(IIMPI.EQ.9)
  211. . WRITE(IOIMP,1005) DGLAM1,DGLAM2
  212. C
  213. C CALCUL DU: DI1, DI2
  214. C
  215. CALL KRITER(IC1,ALFADV,ALFAD1,ALFAD2,VMELAS,DPELAS,
  216. . DPELA1,DPELA2,PORELA,PENTE1,PENTE2,PENTE3,ZR,SIGEL,FSG,C1,KERRE)
  217. CALL KRITER(IC2,ALFADV,ALFAD1,ALFAD2,VMELAS,DPELAS,
  218. . DPELA1,DPELA2,PORELA,PENTE1,PENTE2,PENTE3,ZR,SIGEL,FSG,C2,KERRE)
  219. DI1=(C1*A22-C2*A12)/DET
  220. DI2=(C2*A11-C1*A12)/DET
  221. IF(IIMPI.EQ.9)
  222. . WRITE(IOIMP,1006) DI1,DI2
  223. C
  224. C CALCUL DU: DL1, DL2
  225. C
  226. DL1=DGLAM1-DGLAP1
  227. DL2=DGLAM2-DGLAP2
  228. IF(IIMPI.EQ.9)
  229. . WRITE(IOIMP,1007) DL1,DL2
  230. GOTO 99
  231. C
  232. 8 KERRE=640
  233. WRITE(IOIMP,12)
  234. RETURN
  235. 99 CONTINUE
  236. C
  237. 10 FORMAT(1X,'ERREUR DANS BRILAM I =',I4)
  238. 11 FORMAT(1X,'ERREUR DANS BRILAM DET EGAL A ZERO')
  239. 12 FORMAT(1X,'ERREUR DANS BRILAM SIGEQ EGAL A ZERO')
  240. C
  241. 1000 FORMAT(1X,'DET =',1PD12.5,1X,'A11 =',1PD12.5,
  242. . 1X,'A22 =',1PD12.5,1X,'A12 =',1PD12.5)
  243. 1001 FORMAT(1X,'C1 =',1PD12.5,1X,'FF =',1PD12.5,/,
  244. . 1X,'ZZ =',1PD12.5,1X,'TRDSIG=',1PD12.5,/,
  245. . 1X,'TRSIDS=',1PD12.5,1X,'TRSIGE=',1PD12.5)
  246. 1002 FORMAT(1X,'C2 =',1PD12.5,1X,'FF =',1PD12.5,/,
  247. . 1X,'ZZ =',1PD12.5,1X,'TRDSIG=',1PD12.5,/,
  248. . 1X,'TRSIDS=',1PD12.5,1X,'TRSIGE=',1PD12.5)
  249. 1003 FORMAT(1X,'DGLA1 =',1PD12.5,1X,'DGLA2 =',1PD12.5)
  250. 1004 FORMAT(1X,'DGLAP1=',1PD12.5,1X,'DGLAP2=',1PD12.5)
  251. 1005 FORMAT(1X,'DGLAM1=',1PD12.5,1X,'DGLAM2=',1PD12.5)
  252. 1006 FORMAT(1X,'DI1 =',1PD12.5,1X,'DI2 =',1PD12.5)
  253. 1007 FORMAT(1X,'DL1 =',1PD12.5,1X,'DL2 =',1PD12.5)
  254. C
  255. RETURN
  256. END
  257.  
  258.  

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