Télécharger brilam.eso

Retour à la liste

Numérotation des lignes :

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

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