Télécharger gradig.eso

Retour à la liste

Numérotation des lignes :

gradig
  1. C GRADIG SOURCE AM 11/05/26 21:15:36 6982
  2. subroutine GRADIG (da, force, q, force_prec, Xkapai,
  3. & Xksii, Xkapa_prec, Xksi_prec, Gradgs, Xkapa, Xksi)
  4. C Routine permettant le calcul des dérivées de la loi d'écoulement par rapport à l'effort et au vecteur force et d'écrouissage
  5.  
  6. IMPLICIT INTEGER(I-N)
  7. IMPLICIT REAL*8(A-H,O-Z)
  8. DIMENSION da(20), force(5), q(5), force_prec(5)
  9. DIMENSION Gradgs(5), Xk19(4), term_Gradgs1(4)
  10. *
  11. a=da(8)
  12. b=da(9)
  13. c=da(10)
  14. d=da(11)
  15. e=da(12)
  16. f=da(13)
  17.  
  18. gamma_prec=1
  19.  
  20. if (force(1).le.0) then
  21. den1=0
  22. den2=0
  23. else
  24. den1=q(5)*a*((force(1))**c)*((gamma-force(1))**d)
  25. den2=q(5)*b*((force(1))**e)*((gamma-force(1))**f)
  26. endif
  27.  
  28. Xk11 = force(2)/den1
  29. Xk12 = force(3)/den2
  30. Xk13 = force(4)/den1
  31. Xk14 = force(5)/den2
  32.  
  33. Xk15 = q(1)/q(5)
  34. Xk16 = q(2)/q(5)
  35. Xk17 = q(3)/q(5)
  36. Xk18 = q(4)/q(5)
  37. Xk19(1) = Xk11-Xk15
  38. Xk19(2) = Xk12-Xk16
  39. Xk19(3) = Xk13-Xk17
  40. Xk19(4) = Xk14-Xk18
  41. *
  42. term_Gradgs1(1) = Xk19(1)*force(2)*d/den1*
  43. & (2*force(1)-gamma*(1-Xkapai))/
  44. & ((gamma-force(1))*(Xkapai*gamma+force(1)))
  45. term_Gradgs1(2) = Xk19(2)*force(3)*f/den2*
  46. & (2*force(1)-gamma*(1-Xksii))/
  47. & ((gamma-force(1))*(Xksii*gamma+force(1)))
  48. term_Gradgs1(3) = Xk19(3)*force(4)*d/den1*
  49. & (2*force(1)-gamma*(1-Xkapai))/
  50. & ((gamma-force(1))*(Xkapai*gamma+force(1)))
  51. term_Gradgs1(4) = Xk19(4)*force(5)*f/den2*
  52. & (2*force(1)-gamma*(1-Xksii))/
  53. & ((gamma-force(1))*(Xksii*gamma+force(1)))
  54.  
  55. if (force_prec(1).le.gamma_prec*(1-Xkapai)/2) then
  56. term_Gradgs1(1)=0
  57. term_Gradgs1(3)=0
  58. Xkapa=1-2*force_prec(1)/gamma_prec
  59. if (Xkapa.lt.Xkapa_prec) then
  60. *pour empêcher Xkapa de diminuer
  61. Xkapa=Xkapa_prec
  62. endif
  63. else
  64. Xkapa=Xkapai
  65. endif
  66.  
  67. if (force_prec(1).le.gamma_prec*(1-Xksii)/2) then
  68. term_Gradgs1(2)=0
  69. term_Gradgs1(4)=0
  70. Xksi=1-2*force_prec(1)/gamma_prec
  71. if (Xksi.lt.Xksi_prec) then
  72. *pour empêcher Xksi de diminuer
  73. Xksi=Xksi_prec
  74. endif
  75. else
  76. Xksi=Xksii
  77. endif
  78.  
  79.  
  80. Gradgs(1) = abs(2*(term_Gradgs1(1)+term_Gradgs1(2)+
  81. & term_Gradgs1(3)+term_Gradgs1(4)))
  82. Gradgs(2) = 2*Xk19(1)/den1
  83. Gradgs(3) = 2*Xk19(2)/den2
  84. Gradgs(4) = 2*Xk19(3)/den1
  85. Gradgs(5) = 2*Xk19(4)/den2
  86. *
  87. C Gradgs(1) =0
  88. call SCALPR(5,Gradgs,Gradgs,Xnorm_Gradgs)
  89. Xnorm_Gradgs=sqrt(Xnorm_Gradgs)
  90. DO I=1,5
  91. Gradgs(I)=Gradgs(I)/Xnorm_Gradgs
  92. ENDDO
  93. return
  94. end
  95.  
  96.  

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