35 . SHIFT_INTERFACE,INTBUF_TAB,NEWFRONT,IPARI,GEO,
36 . IXS,IXC,IXT,IXP,IXR,IXTG,IXS10,
37 . ADDCNEL,CNEL,TAG_NODE,TAG_ELEM,SHOOT_STRUCT )
51#include "implicit_f.inc"
62 INTEGER,
INTENT(in) :: ITASK
63 INTEGER,
INTENT(in) :: M_EDGE_NB,S_EDGE_NB
64 INTEGER,
DIMENSION(M_EDGE_NB),
INTENT(in) :: M_EDGE_ID
65 INTEGER,
DIMENSION(S_EDGE_NB),
INTENT(in) :: S_EDGE_ID
66 INTEGER,
DIMENSION(NINTER),
INTENT(inout) :: NEWFRONT
67 INTEGER,
DIMENSION(NINTER+1,2),
INTENT(in) :: SHIFT_INTERFACE
68 TYPE(intbuf_struct_),
DIMENSION(NINTER),
INTENT(inout) :: INTBUF_TAB
69 INTEGER,
DIMENSION(NPARI,NINTER),
INTENT(in) :: IPARI
71 INTEGER,
DIMENSION(NIXS,NUMELS),
INTENT(in) :: IXS
72 INTEGER,
DIMENSION(NIXC,NUMELC),
INTENT(in) :: IXC
73 INTEGER,
DIMENSION(NIXT,NUMELT),
INTENT(in) :: IXT
74 INTEGER,
DIMENSION(NIXP,NUMELP),
INTENT(in) :: IXP
75 INTEGER,
DIMENSION(NIXR,NUMELR),
INTENT(in) :: IXR
76 INTEGER,
DIMENSION(NIXTG,NUMELTG),
INTENT(in) :: IXTG
77 INTEGER,
DIMENSION(6,NUMELS10),
INTENT(in) :: IXS10
78 INTEGER,
DIMENSION(0:NUMNOD+1),
INTENT(in) :: ADDCNEL
79 my_real,
DIMENSION(NPROPG,NUMGEO),
INTENT(in) :: geo
80 INTEGER,
DIMENSION(0:LCNEL),
INTENT(in) :: CNEL
81 INTEGER,
DIMENSION(NUMNOD),
INTENT(inout) ::
82 INTEGER,
DIMENSION(NUMELS+NUMELQ+NUMELC+NUMELT+NUMELP+NUMELR+NUMELTG),
INTENT(inout) :: TAG_ELEM
87 LOGICAL :: DEACTIVATION
88 INTEGER :: I,K,FIRST,LAST
89 INTEGER :: NIN,ID_INTER,NUMBER_INTER
91 INTEGER :: N1,N2,N3,N4
92 INTEGER :: NUMBER_NODE
93 INTEGER :: DICHOTOMIC_SEARCH_I_ASC
99 first = 1 + itask * (m_edge_nb / nthread)
100 last = (itask + 1) * (m_edge_nb / nthread)
101 IF((itask+1)==nthread) last = m_edge_nb
103 number_inter = shift_interface(ninter+1,2)
108 id_inter = dichotomic_search_i_asc(k, shift_interface(1,1), number_inter+1)
109 nin = shift_interface(id_inter,2)
110 k = k - shift_interface(id_inter,1) + 1
116 IF(ity==11.AND.idel==1)
THEN
117 shoot_struct%INTER(nin)%REMOTE_ELM_M(k) = shoot_struct%INTER(nin)%REMOTE_ELM_M(k) - 1
122 IF(intbuf_tab(nin)%STFM(k)/=zero)
THEN
124 IF(ity==11.AND.idel==1)
THEN
125 n1 = intbuf_tab(nin)%IRECTM((k-1)*2+1)
126 n2 = intbuf_tab(nin)%IRECTM((k-1)*2+2)
130 IF(shoot_struct%INTER(nin)%REMOTE_ELM_M(k)<1)
THEN
132 . deactivation,geo,ixs,ixc,
133 . ixt,ixp,ixr,ixtg,ixs10,addcnel,cnel,
134 . tag_node,tag_elem )
136 deactivation = .false.
141 IF(deactivation) intbuf_tab(nin)%STFM(k) = zero
150 first = 1 + itask * (s_edge_nb / nthread)
151 last = (itask + 1) * (s_edge_nb / nthread)
152 IF((itask+1)==nthread) last = s_edge_nb
158 id_inter = dichotomic_search_i_asc
159 nin = shift_interface(id_inter,2)
160 k = k - shift_interface(id_inter,1) + 1
166 IF(ity==11.AND.idel==1)
THEN
167 shoot_struct%INTER(nin)%REMOTE_ELM_S(k) = shoot_struct%INTER(nin)%REMOTE_ELM_S(k) - 1
172 IF(intbuf_tab(nin)%STFS(k)/=zero)
THEN
173 IF(ity==11.AND.idel==1)
THEN
174 n1 = intbuf_tab(nin)%IRECTS((k-1)*2+1)
175 n2 = intbuf_tab(nin)%IRECTS((k-1)*2+2)
179 IF(shoot_struct%INTER(nin)%REMOTE_ELM_S(k)<1)
THEN
181 . deactivation,geo,ixs,ixc,
182 . ixt,ixp,ixr,ixtg,ixs10,addcnel,cnel,
183 . tag_node,tag_elem )
185 deactivation = .false.
191 IF(deactivation)
THEN
192 intbuf_tab(nin)%STFS(k) = -abs(intbuf_tab(nin)%STFS(k))
subroutine check_active_elem_edge(number_node, n1, n2, n3, n4, deactivation, geo, ixs, ixc, ixt, ixp, ixr, ixtg, ixs10, addcnel, cnel, tag_node, tag_elem)
subroutine check_edge_state(itask, m_edge_nb, s_edge_nb, m_edge_id, s_edge_id, shift_interface, intbuf_tab, newfront, ipari, geo, ixs, ixc, ixt, ixp, ixr, ixtg, ixs10, addcnel, cnel, tag_node, tag_elem, shoot_struct)