Télécharger wfis3d.eso

Retour à la liste

Numérotation des lignes :

wfis3d
  1. C WFIS3D SOURCE PV090527 23/01/27 21:16:09 11574
  2. subroutine wfis3d(depspt3,long3,vdepspt33t,wplt06,wplt6,
  3. # vwpl33,vwpl33t,wpl3,wpltx06,wpltx6,vwplx33,vwplx33t,wplx3)
  4.  
  5. c calcul des ouvertures de fissures
  6. c Sellier 26/04/2021
  7. implicit real*8 (a-h,o-z)
  8. implicit integer (i-n)
  9.  
  10.  
  11. real*8 depspt3(3),long3(3),vdepspt33t(3,3),wplt06(6),wplt6(6)
  12. real*8 vwpl33(3,3),vwpl33t(3,3),wpl3(3),wpltx06(6),wpltx6(6)
  13. real*8 vwplx33(3,3),vwplx33t(3,3),wplx3(3)
  14.  
  15. real*8 dwp6(6),dw6(6)
  16. integer i
  17. real*8 wplt33(3,3)
  18. real*8 wplt61(6),wpltx061(6),wpltx61(6)
  19. real*8 wpltx33(3,3)
  20.  
  21. c increment des ouvertures
  22. c print*,'Dans wfis3d,depspt3,long3'
  23. do i=1,3
  24. dwp6(i)=depspt3(i)*long3(i)
  25. c print*,depspt3(i),long3(i)
  26. end do
  27. do i=4,6
  28. dwp6(i)=0.d0
  29. end do
  30. c passage des increments en base fixe
  31. call chrep6(dwp6,vdepspt33t,.false.,dw6)
  32. c actualisation de l ouverture actuelle (stockage en gamma)
  33. do i=1,6
  34. wplt6(i)=wplt06(i)+dw6(i)
  35. end do
  36. c direction principale des ouvertures actuelles
  37. c passage en epsilon pour diagonalise
  38. c passage 33
  39. call x6x33(wplt6,wplt33)
  40. c diagonalisation
  41. c print*,'dans wfis3d, wplt33'
  42. c call afic33(wplt33)
  43. call b3_v33(wplt33,wpl3,vwpl33)
  44. c construction matrice de passage inverse
  45. call traps1(vwpl33t,vwpl33,3)
  46. c on s assure que les valeurs propres sont positives
  47. do i=1,3
  48. wpl3(i)=max(wpl3(i),0.d0)
  49. wplt61(i)=wpl3(i)
  50. end do
  51. do i=4,6
  52. wplt61(i)=0.d0
  53. end do
  54. c on repasse en matrice de def avec des eps
  55. call chrep6(wplt61,vwpl33t,.false.,wplt6)
  56. c print*,' apres actualisation 1 dans majw3d'
  57. c do i=1,3
  58. c print*,'ds majw3d wpl3(',i,')=',wpl3(i)
  59. c end do
  60.  
  61. c ***** ouvertures maximales ***************************************
  62.  
  63. c passage des ouvertures maximale dans la base principale actuelle
  64. call chrep6(wpltx06,vwpl33,.false.,wpltx061)
  65. c comparaison des valeurs normales maxi
  66. do i=1,3
  67. wpltx61(i)=max(wpltx061(i),wpl3(i))
  68. end do
  69. c completion
  70. do i=4,6
  71. wpltx61(i)=wpltx061(i)
  72. end do
  73. c retour en base fixe des ouvertures maximales
  74. call chrep6(wpltx61,vwpl33t,.false.,wpltx6)
  75. c on a les nouveaux gama
  76. c print*,' apres actualisation 2 dans majw3d'
  77. c do i=1,3
  78. c print*,'ds majw3d wpl3(',i,')=',wpl3(i)
  79. c end do
  80. c diagonalisation des ouvertures maxi pour la base d endommagement
  81. c passage 33 pour diagonalisation (apres passage en epsilon)
  82. c passage en epsilon pour diagonaliser
  83. c do i=1,6
  84. c print*,'maj wpltx6(',i,')=',wpltx6(i)
  85. c end do
  86. c on diagonalise les epsilon
  87. call x6x33(wpltx6,wpltx33)
  88. c diagonalisation
  89. c print*,' apres actualisation 3 dans majw3d'
  90. c do i=1,3
  91. c print*,'ds majw3d wpl3(',i,')=',wpl3(i)
  92. c end do
  93. call b3_v33(wpltx33,wplx3,vwplx33)
  94. do i=1,3
  95. wplx3(i)=max(wplx3(i),0.d0)
  96. end do
  97. c print*,' apres actualisation 4 dans majw3d'
  98. c do i=1,3
  99. c print*,'ds majw3d wpl3(',i,')=',wpl3(i)
  100. c end do
  101. c construction matrice de passage inverse
  102. call traps1(vwplx33t,vwplx33,3)
  103.  
  104. c print*,' apres actualisation dans majw3d w'
  105. c call afic33( vwpl33)
  106. c call afic33( wplt33)
  107. c print*,' apres actualisation dans majw3d wmax'
  108. c call afic33( vwplx33t)
  109. c call afic33( wpltx33)
  110.  
  111. c do i=1,3
  112. c print*,'ds majw3d wpl3(',i,')=',wpl3(i)
  113. c print*,'ds majw3d wplx3(',i,')=',wplx3(i)
  114. c end do
  115. return
  116. end
  117.  
  118.  
  119.  

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