Télécharger prpl3d.eso

Retour à la liste

Numérotation des lignes :

prpl3d
  1. C PRPL3D SOURCE PV090527 23/01/27 21:15:59 11574
  2. subroutine prpl3d(NDIMG,NBRCT,ninc,NBRACTT,ACTIFT,FTR,LNUMCRT,
  3. # LNCRT,REST,ACTIF_T,dfdst,AUX_DFDST,dirt,AUX_DIRT,affiche,err1)
  4.  
  5. c preparation de l ecoulement plastique de traction en fonctions
  6. c de l ordre et de l activite des criteres
  7.  
  8.  
  9. implicit real*8 (a-h,o-z)
  10. implicit integer (i-n)
  11.  
  12. integer NDIMG,NBRCT,ninc,err1
  13. integer NBRACTT,LNCRT(NBRCT),LNUMCRT(NDIMG)
  14. real*8 FTR(NDIMG),REST(NBRCT),dirt(NBRCT,3),dfdst(NBRCT)
  15. logical ACTIF_T(NBRCT),ACTIFT(NDIMG)
  16. real*8 AUX_DFDST(NDIMG),AUX_DIRT(NDIMG)
  17. logical affiche
  18.  
  19.  
  20. real*8 fmax
  21. integer iphase,idebut,icrt,idir
  22. logical affiche_local
  23. affiche_local=affiche
  24.  
  25. if (NBRACTT.ge.1) then
  26. c critere le plus grand
  27. fmax=FTR(LNUMCRT(1))
  28. fmin=FTR(LNUMCRT(NBRACTT))
  29. c choix des criteres a resoudre
  30. do iphase=0,ninc
  31.  
  32. c --------criteres radiaux dans la phase------------------
  33.  
  34. if(iphase.eq.0) then
  35. c direction globale
  36. idebut=9*ninc
  37. c numero du critere pour l ecoulement
  38. icrt=3*ninc+1
  39. else
  40. c direction globale
  41. idebut=(iphase-1)*9
  42. c numero du critere radial pour l ecoulement
  43. icrt=(iphase-1)*3+1
  44. end if
  45. c initialisation des directions et des activites
  46. REST(icrt)=fmax
  47. c activite du groupe de critere
  48. ACTIF_T(icrt)=.false.
  49. LNCRT(icrt)=idebut+1
  50. DFDST(icrt)=0.d0
  51. do idir=1,3
  52. c on conserve tous les ecoulemnts actifs
  53. dirt(icrt,idir)=AUX_DIRT(idebut+idir)
  54. if(ACTIFT(idebut+idir)) then
  55. ACTIF_T(icrt)=.true.
  56. if(FTR(idebut+idir).le.REST(icrt)) then
  57. REST(icrt)=FTR(idebut+idir)
  58. LNCRT(icrt)=idebut+idir
  59. dfdst(icrt)=AUX_DFDST(idebut+idir)
  60. end if
  61. end if
  62. end do
  63.  
  64. if (iphase.ne.0) then
  65.  
  66. c ---- critere d interface desactives ----------------
  67.  
  68. icrt=(iphase-1)*3+2
  69. idebut=(iphase-1)*9+3
  70. ACTIF_T(icrt)=.false.
  71. LNCRT(icrt)=idebut+1
  72. DFDST(icrt)=0.d0
  73. do idir=1,3
  74. dirt(icrt,idir)=0.d0
  75. end do
  76.  
  77. c ---- critere orthoradial ---------------------------
  78.  
  79. icrt=(iphase-1)*3+3
  80. idebut=(iphase-1)*9+6
  81. ACTIF_T(icrt)=.false.
  82. LNCRT(icrt)=idebut+1
  83. DFDST(icrt)=0.d0
  84. c initialisation des directions et des activites
  85. REST(icrt)=fmax
  86. do idir=1,3
  87. c on conserve tous les ecoulemnts actifs
  88. dirt(icrt,idir)=AUX_DIRT(idebut+idir)
  89. if(ACTIFT(idebut+idir)) then
  90. ACTIF_T(icrt)=.true.
  91. if(FTR(idebut+idir).le.REST(icrt)) then
  92. REST(icrt)=FTR(idebut+idir)
  93. LNCRT(icrt)=idebut+idir
  94. dfdst(icrt)=AUX_DFDST(idebut+idir)
  95. end if
  96. end if
  97. end do
  98.  
  99. end if
  100. end do
  101. else
  102. print*,'Il n y a rien a preparer dans prpl3d'
  103. err1=1
  104. return
  105. end if
  106.  
  107. if(affiche_local) then
  108. print*,'Dans prpl3d'
  109. do idir=1,ndimg
  110. write(*,'(A9,I2,A11,E10.3,A12,E10.3)')
  111. # 'direction',idir,' aux_dfdst=',aux_dfdst(idir),
  112. # ' aux_dirt=',aux_dirt(idir)
  113. end do
  114. do icrt=1,4
  115. print*,'Groupe',icrt,actif_t(icrt),
  116. # 'dfdst(',icrt,')=',dfdst(icrt)
  117. do idir=1,3
  118. write(*,'(A9,I2,A6,I2,I2,A2,E10.3)')
  119. # 'direction',idir,' dirt(',icrt,idir,')=',
  120. # dirt(icrt,idir)
  121. end do
  122. end do
  123. end if
  124.  
  125. return
  126. end
  127.  
  128.  
  129.  

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