Télécharger gamman.eso

Retour à la liste

Numérotation des lignes :

gamman
  1. C GAMMAN SOURCE CHAT 05/01/13 00:15:32 5004
  2. SUBROUTINE GAMMAN(I,S,DS,ALFV,ALF1,ALF2,VOM,DPD,DF1,DF2,POR,
  3. .R1,R2,R3,FST,F1ST,F2ST,CC,SS,CS,ITRAC,IRZ,GAMMA,
  4. .PREC,RFSG,RFEP,RFPR,KERRE)
  5. C
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8(A-H,O-Z)
  8.  
  9. -INC PPARAM
  10. -INC CCOPTIO
  11. C
  12. DIMENSION S(*),DS(*),TS(3)
  13. C
  14. TRS0=S(1)+S(2)+S(3)
  15. SEQ2=AVM(S,S)
  16. SEQ0=SQRT(SEQ2)
  17. GO TO (100,200,300,400,500,600,700),I
  18. WRITE(IOIMP,20) I
  19. KERRE=640
  20. RETURN
  21. C
  22. C CAS DE CRITERE DE LA POROSITE (1)
  23. C
  24. 100 FS0=-TRS0*0.33333333333333333333333333333D0
  25. X=POR-FS0
  26. DEN=FST-FS0
  27. GO TO 1
  28. C
  29. C CAS DU CRITERE DE DRUCKER DUCTILE (2)
  30. C
  31. 200 FS0=ALFV*TRS0+SEQ0
  32. X=DPD-FS0
  33. IF(SEQ0.NE.0.D0) GO TO 201
  34. DEN=ALFV*(DS(1)+DS(2)+DS(3))
  35. GO TO 1
  36. 201 Z=S(1)*DS(1)+S(2)*DS(2)+S(3)*DS(3)+2.D0*(S(4)*DS(4)+S(5)*DS(5)
  37. .+S(6)*DS(6))-((S(1)+S(2)+S(3))*(DS(1)+DS(2)+DS(3))/3.D0)
  38. DEN=Z*3.D0/(2.D0*SEQ0)+ALFV*(DS(1)+DS(2)+DS(3))
  39. GO TO 1
  40. C
  41. C CAS DU CRITERE DE VON MISES (3)
  42. C
  43. 300 FS0=SEQ0
  44. X=VOM-FS0
  45. IF (SEQ0.NE.0.D0) GO TO 301
  46. WRITE(IOIMP,22)
  47. KERRE=640
  48. RETURN
  49. 301 Z=S(1)*DS(1)+S(2)*DS(2)+S(3)*DS(3)+2.D0*(S(4)*DS(4)+S(5)*DS(5)
  50. .+S(6)*DS(6))-((S(1)+S(2)+S(3))*(DS(1)+DS(2)+DS(3))/3.D0)
  51. DEN=Z*3.D0/(2.D0*SEQ0)
  52. GO TO 1
  53. C
  54. C CAS DU CRITERE DE DRUCKER FRAGILE (4)
  55. C
  56. 400 FS0=ALF1*TRS0+SEQ0
  57. X=DF1-FS0
  58. IF(SEQ0.NE.0.D0) GO TO 401
  59. DEN=ALF1*(DS(1)+DS(2)+DS(3))
  60. GO TO 1
  61. 401 Z=S(1)*DS(1)+S(2)*DS(2)+S(3)*DS(3)+2.D0*(S(4)*DS(4)+S(5)*DS(5)
  62. .+S(6)*DS(6))-((S(1)+S(2)+S(3))*(DS(1)+DS(2)+DS(3))/3.D0)
  63. DEN=Z*3.D0/(2.D0*SEQ0)+ALF1*(DS(1)+DS(2)+DS(3))
  64. GO TO 1
  65. C
  66. C CAS DU CRITERE DE DRUCKER FRAGILE ECROUI. (5)
  67. C
  68. 500 FS0=ALF2*TRS0+SEQ0
  69. X=DF2-FS0
  70. IF(SEQ0.NE.0.D0) GO TO 501
  71. DEN=ALF2*(DS(1)+DS(2)+DS(3))
  72. GO TO 1
  73. 501 Z=S(1)*DS(1)+S(2)*DS(2)+S(3)*DS(3)+2.D0*(S(4)*DS(4)+S(5)*DS(5)
  74. .+S(6)*DS(6))-((S(1)+S(2)+S(3))*(DS(1)+DS(2)+DS(3))/3.D0)
  75. DEN=Z*3.D0/(2.D0*SEQ0)+ALF2*(DS(1)+DS(2)+DS(3))
  76. GO TO 1
  77. C
  78. C CAS DU CRITERE DE LA TRACTION DANS LE PLAN RZ (6)
  79. C
  80. 600 IT=ITRAC+1
  81. GO TO(601,602),IT
  82. WRITE(IOIMP,21) IT
  83. KERRE=640
  84. RETURN
  85. C
  86. 601 TS(1)=S(1)
  87. TS(2)=S(2)
  88. TS(3)=S(4)
  89. CALL DIAGOD(TS)
  90. F1S0=TS(1)
  91. F2S0=TS(2)
  92. GO TO 2
  93. C
  94. 602 F1S0=ROTA(S,CC,SS,CS,1)
  95. F2S0=ROTA(S,CC,SS,CS,2)
  96. 2 IF(F1ST.GT.R1) GO TO 3
  97. GAM1=100.D0
  98. GO TO 4
  99. 3 X=R1-F1S0
  100. DEN1=F1ST-F1S0
  101. IF(DEN1.NE.0.D0) GO TO 5
  102. GAM1=100.D0
  103. GO TO 4
  104. 5 GAM1=X/DEN1
  105. 4 IF(F2ST.GT.R2) GO TO 6
  106. GAM2=100.D0
  107. GO TO 7
  108. 6 X=R2-F2S0
  109. DEN2=F2ST-F2S0
  110. IF(DEN2.NE.0.D0) GO TO 8
  111. GAM2=100.D0
  112. GO TO 7
  113. 8 GAM2=X/DEN2
  114. 7 GAMMA=GAM1
  115. IF(ABS(GAM2).LT.ABS(GAM1)) GAMMA=GAM2
  116. IRZ=1
  117. IF(GAMMA.EQ.GAM2) IRZ=2
  118. DENOR=MIN(GAM1,GAM2)
  119. DENOR=MAX(DENOR,RFPR)
  120. DIF=ABS(GAM1-GAM2)/DENOR
  121. IF(DIF.LE.PREC) IRZ=3
  122. RETURN
  123. C
  124. C CAS DU CRITERE DE LA TRACTION DANS LA DIRECTION TETA (7)
  125. C
  126. 700 FS0=S(3)
  127. X=R3-FS0
  128. DEN=FST-FS0
  129. C
  130. 1 IF(DEN.NE.0.D0) GO TO 10
  131. GAMMA=100.D0
  132. RETURN
  133. 10 GAMMA=X/DEN
  134. C
  135. 20 FORMAT(1X,'ERREUR DANS GAMMAN IL FAUT DETERMINER I =',I4)
  136. 21 FORMAT(1X,'ERREUR DANS GAMMAN IL FAUT DETERMINER ITRAC =',I4)
  137. 22 FORMAT(1X,'ERREUR DANS GAMMAN LA VALEUR DE SEQ EST NULLE')
  138. C
  139. RETURN
  140. END
  141.  
  142.  

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