39 . IXR ,GEO ,PM ,IPARG ,ELBUF_TAB,
40 . MS ,IN ,ITAB ,IGEO ,IPM ,
41 . UPARAM ,IPART ,IGRNOD ,IGRPART)
49 use element_mod ,
only : nixr
50 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
54#include "implicit_f.inc"
74#include "tabsiz_c.inc"
76#include "vect01_c.inc"
80 INTEGER IXR(NIXR,*), ITAB(*),
81 . IGEO(NPROPGI,*),IPM(NPROPMI,*),IPARG(NPARG,*)
82 INTEGER,
DIMENSION(SIPART),
TARGET :: IPART
85 . geo(npropg,*),pm(npropm,*),uparam(*),ms(*),in(*)
87 TYPE(elbuf_struct_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
88 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
89 TYPE (GROUP_) ,
DIMENSION(NGRPART) :: IGRPART
93 INTEGER I,N,N1,N2,IPID,IMAT,IADBUF,IEQUI,IP,IERR,IERROR,
96 INTEGER I15ATH,I15A,I15B,I15C,I15D,I15E,I15F,I15G,I15H,I15I,I15J,I15K
99 . xkm, xcm, xkr, xcr, xin(mvsiz)
100 TYPE(g_bufel_) ,
POINTER :: GBUF
101 INTEGER,
DIMENSION(:),
POINTER :: IPARTR
102 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGN
103 INTEGER,
DIMENSION(:),
ALLOCATABLE ::
104 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGPRT_SMS
106 CALL my_alloc(tagn,numnod)
107 CALL my_alloc(tagr,numelr)
108 CALL my_alloc(tagprt_sms
113 i15ath=1+lipart1*(npart+nthpart)
114 i15a=i15ath+2*9*(npart+nthpart)
126 ipartr => ipart(i15f:i15g-1)
135 IF (iabs(idtgr(11))==igrnod(n)%ID)
THEN
141 CALL ancmsg(msgid=237,anmode=aninfo,
142 . i1=iabs(idtgr(11)))
145 DO n=1,igrnod(idtgrx)%NENTITY
146 tagn(igrnod(idtgrx)%ENTITY(n)) = 1
166 IF (igrpart(n)%ID==-idtgrs)
THEN
171 CALL ancmsg(msgid=21,anmode=aninfo_blind,
177 DO i=1,igrpart(idtgrx)%NENTITY
178 ip=igrpart(idtgrx)%ENTITY(i)
183 IF (isms_selec==1)
THEN
188 ELSEIF (isms_selec==2)
THEN
191 IF(tagprt_sms(ipartr(i))==0)
THEN
197 ELSEIF (isms_selec==3)
THEN
205 gbuf => elbuf_tab(ng)%GBUF
207 IF(gbuf%ISMS(i)==0)
THEN
215 ELSEIF (isms_selec==4)
THEN
223 gbuf => elbuf_tab(ng)%GBUF
225 IF(gbuf%ISMS(i)==0.AND.tagprt_sms(ipartr(nft+i))==0)
THEN
243 gbuf => elbuf_tab(ng)%GBUF
251 iadbuf = ipm(7,imat) - 1
261 iequi = uparam(iadbuf+2)
262 xkm=
max(uparam(iadbuf + k11 + 1)*uparam(iadbuf + k1 + 1),
263 . uparam(iadbuf + k11 + 2)*uparam(iadbuf + k1 + 2),
264 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3))
265 xcm=
max(uparam(iadbuf + k12 + 1),uparam(iadbuf + k12 + 2),uparam(iadbuf + k12 + 3))
266 xkr=
max(uparam(iadbuf + k11 + 4)*uparam(iadbuf + k1 + 4),
267 . uparam(iadbuf + k11 + 5)*uparam(iadbuf + k1 + 5),
268 . uparam(iadbuf + k11 + 6)*uparam(iadbuf + k1 + 6))
269 xcr=
max(uparam(iadbuf + k12 + 4),uparam(iadbuf + k12 + 5),uparam(iadbuf + k12 + 6))
273 IF(gbuf%MASS(i)==zero)
THEN
274 IF(xkm/=zero.OR.xcm/=zero)
THEN
275 IF(nodadt==0.AND.idtmins/=2)
THEN
277 ELSEIF(.NOT.((nodadt/=0 .AND.tagn(n1)/=0 .AND. tagn(n2)/=0).OR.
278 . (idtmins==2.AND.tagr(i)/=0)))
THEN
285 IF(xkr/=zero.OR.xcr/=zero.OR.(iequi/=0.AND.(xkm/=zero.OR.xcm/=zero)))
THEN
286 IF(nodadt==0.AND.idtmins/=2)
THEN
288 ELSEIF(.NOT.((nodadt/=0 .AND.tagn(n1)/=0 .AND. tagn(n2)/=0).OR.
289 . (idtmins==2.AND.tagr(i)/=0)))
THEN
302 CALL mpi_allreduce(mpi_in_place,ierr,1,mpi_integer,mpi_max,spmd_comm_world,ierror)
309 CALL ancmsg(msgid=286,anmode=aninfo_blind_1)
315 DEALLOCATE(tagprt_sms)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)