Télécharger lr1l3d.eso

Retour à la liste

Numérotation des lignes :

lr1l3d
  1. C LR1L3D SOURCE PV090527 23/02/13 21:15:10 11592
  2. SUBROUTINE LR1LDP3D(K,G,b,d,s1,s2,s3,Hdp,f1,R1,f2,lr1,ldp,
  3. # precision3d,log_err)
  4. c Multiplicateur plastique Rankine1 et Drucker Prager couples
  5. c (A.Sellier 2021/04/22)
  6. implicit real*8 (a-h,o-z)
  7. implicit integer (i-n)
  8.  
  9. real*8 K,G,b,d,s1,s2,s3,Hdp,f1,R1,f2,lr1,ldp,precision3d
  10. real*8 CC(2,2),denom
  11. logical log_err
  12. log_err=.false.
  13.  
  14. t3 = R1 ** 2
  15. t5 = -s2 - s3
  16. t7 = s2 ** 2
  17. t8 = 0.3D1 * t7
  18. t10 = 0.3D1 * s2 * s3
  19. t11 = s3 ** 2
  20. t12 = 0.3D1 * t11
  21. t14 = (0.3D1 * R1 * t5 - t10 + t12 + 0.3D1 * t3 + t8)
  22. if(t14.ge.0.) then
  23. t14=sqrt(t14)
  24. else
  25. print*,'Pb dans lr1ldp3d t14<0'
  26. log_err=.true.
  27. goto 10
  28. end if
  29. t15 = 0.1D1 / t14
  30. t16 = b * K
  31. t19 = s2 / 0.2D1
  32. t20 = s3 / 0.2D1
  33. t27 = s1 ** 2
  34. t31 = (0.3D1 * s1 * t5 - t10 + t12 + 0.3D1 * t27 + t8)
  35. if(t31.gt.0.d0) then
  36. t31=sqrt(t31)
  37. else
  38. c print*,'Pb dans lr1ldp3d t14<0'
  39. log_err=.true.
  40. goto 10
  41. end if
  42. t32 = 0.1D1 / t31
  43. CC(1,1) = -0.4D1 / 0.3D1 * G - K
  44. CC(1,2) = -0.4D1 / 0.3D1 * (0.3D1 / 0.4D1 * t14 * t16 + 0.3D1 /
  45. # 0.2D1 * (R1 - t19 - t20) * G) * t15
  46. CC(2,1) = -0.3D1 * (t31 * d * K / 0.3D1 + 0.2D1 / 0.3D1 * (s1 -
  47. # t19 - t20) * G) * t32
  48. CC(2,2) = -0.3D1 * t15 * (t14 * t31 * (d * t16 + Hdp) / 0.3D1 + G
  49. # * (t7 + (-R1 / 0.2D1 - s1 / 0.2D1 - s3) * s2 + t11 + s3 * (-R1 -
  50. # s1) / 0.2D1 + R1 * s1)) * t32
  51.  
  52. denom=CC(1,1) * CC(2,2) - CC(1,2) * CC(2,1)
  53.  
  54. if(abs(denom).lt.precision3d) then
  55. log_err=.true.
  56. goto 10
  57. else
  58. lr1 = (CC(1,2) * f2 - CC(2,2) * f1) / denom
  59. ldp = -(CC(1,1) * f2 - CC(2,1) * f1) / denom
  60. end if
  61.  
  62. 10 if(log_err.or.lr1.ne.lr1.or.ldp.ne.ldp) then
  63. c print*,'Pb1 dans lr1l3d'
  64. c print*,'K,G,b,d,s1,s2,s3,Hdp,f1,R1,f2,lr1,ldp'
  65. c print*,K,G,b,d,s1,s2,s3,Hdp,f1,R1,f2,lr1,ldp
  66. lr1=0.d0
  67. ldp=0.d0
  68. log_err=.true.
  69. end if
  70.  
  71. c attention remplcer s1=R1 dans le gradient de DP( Vdep )
  72.  
  73. return
  74. end
  75.  
  76.  
  77.  
  78.  
  79.  

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