29 SUBROUTINE iniphase(N2D ,NUMELS ,NUMELTG ,NUMELQ ,
31 . IXS ,IPART_ ,IPHASE ,IDP ,
32 . KVOL ,NUPARAM ,UPARAM ,NTRACE ,
33 . ITAGNSOL ,ISOLNOD ,PART_FILL ,NBIP ,
34 . NBSUBMAT ,MLW ,ELBUF_TAB ,NG , MULTI_FVM,
35 . IXQ ,IXTG ,ITYP ,NEL )
42 use element_mod ,
only :nixs,nixq,nixtg
46#include
"implicit_f.inc"
50 INTEGER,
INTENT(IN) :: N2D
51 INTEGER,
INTENT(IN) :: NUMELS, NUMELTG, NUMELQ, NUMNOD, NGROUP
52 INTEGER,
INTENT(IN) :: NBSUBMAT
53 INTEGER IXS(NIXS,NUMELS),IPART_(*),IPHASE(NBSUBMAT+1,*),IDP,NUPARAM
54 INTEGER ITAGNSOL(NUMNOD)
55 INTEGER :: NBIP(NBSUBMAT,NEL)
57 INTEGER ISOLNOD,PART_FILL(*)
58 INTEGER,
INTENT(IN) :: IXQ(NIXQ,NUMELQ)
59 INTEGER,
INTENT(IN) :: IXTG(,NUMELTG)
60 INTEGER,
INTENT(IN) :: ITYP
63 INTEGER,
INTENT(IN) :: MLW
64 INTEGER,
INTENT(IN) :: NG
65 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP),
INTENT(IN) :: ELBUF_TAB
66 TYPE (MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
67 INTEGER,
INTENT(IN) :: NEL
74 my_real :: AV(NBSUBMAT)
75 TYPE(G_BUFEL_) ,
POINTER :: GBUF
76 TYPE(L_BUFEL_) ,
POINTER :: LBUF
90 gbuf => elbuf_tab(ng)%GBUF
91 DO i=1,multi_fvm%NBMAT
92 lbuf => elbuf_tab(ng)%BUFLY(i)%LBUF(1,1,1)
93 av(i) = lbuf%VOL(1) / gbuf%VOL(1)
98 IF(ipart_(i) /= 0)
THEN
99 IF (ipart_(i) /= idp .AND. part_fill(ipart_(i)) == 0)
THEN
100 kvol(1:nbsubmat,i) = av(1:nbsubmat)
101 part_fill(ipart_(i)) = 1
102 ELSEIF (ipart_(i) == idp)
THEN
103 imat=maxloc(av(1:nbsubmat),1)
105 iphase(nbsubmat+1,i) = 1
107 IF (nbip(imat,i) == 0)
THEN
108 nbip(imat,i) = ntrace
110 IF (isolnod == 8)
THEN
113 IF(itagnsol(j) == 0)itagnsol(j) = 1
115 ELSEIF (isolnod == 4)
THEN
122 IF(itagnsol(j) == 0)itagnsol(j) = 1
124 ELSEIF(ityp == 7 .AND. n2d > 0)
THEN
125 IF(itagnsol(ixtg(2,i)) == 0)itagnsol(ixtg(2,i)) = 1
126 IF(itagnsol(ixtg(3,i)) == 0)itagnsol(ixtg(3,i)) = 1
127 IF(itagnsol(ixtg(4,i)) == 0)itagnsol(ixtg(4,i)) = 1
128 ELSEIF(ityp == 2)
THEN
129 IF(itagnsol(ixq(2,i)) == 0)itagnsol
130 IF(itagnsol(ixq(3,i)) == 0)itagnsol(ixq(3,i)) = 1
131 IF(itagnsol(ixq(4,i)) == 0)itagnsol(ixq(4,i)) = 1
132 IF(itagnsol(ixq(5,i)) == 0)itagnsol(ixq(5,i)) = 1
subroutine iniphase(n2d, numels, numeltg, numelq, numnod, ngroup, ixs, ipart_, iphase, idp, kvol, nuparam, uparam, ntrace, itagnsol, isolnod, part_fill, nbip, nbsubmat, mlw, elbuf_tab, ng, multi_fvm, ixq, ixtg, ityp, nel)