38 . IXR ,GEO ,PM ,IPARG ,ELBUF_TAB,
39 . MS ,IN ,ITAB ,IGEO ,IPM ,
40 . UPARAM ,IPART ,IGRNOD ,IGRPART)
51 USE spmd_comm_world_mod,
ONLY : spmd_comm_world
52#include "implicit_f.inc"
72#include "tabsiz_c.inc"
74#include "vect01_c.inc"
78 INTEGER IXR(NIXR,*), ITAB(*),
79 . IGEO(NPROPGI,*),(NPROPMI,*),IPARG(NPARG,*)
80 INTEGER,
DIMENSION(SIPART),
TARGET :: IPART
83 . geo(npropg,*),pm(npropm,*),uparam(*),ms(*),in(*)
85 TYPE(elbuf_struct_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
86 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
87 TYPE (GROUP_) ,
DIMENSION(NGRPART) :: IGRPART
91 INTEGER I,N,N1,N2,IPID,IMAT,IADBUF,IEQUI,IP,IERR,IERROR,
94 INTEGER I15ATH,I15A,I15B,I15C,I15D,I15E,I15F,I15G,I15H,I15I,I15J,I15K
97 . xkm, xcm, xkr, xcr, xin(mvsiz)
98 TYPE(g_bufel_) ,
POINTER :: GBUF
99 INTEGER,
DIMENSION(:),
POINTER :: IPARTR
100 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGN
101 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGR
102 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TAGPRT_SMS
104 CALL my_alloc(tagn,numnod)
105 CALL my_alloc(tagr,numelr)
106 CALL my_alloc(tagprt_sms,npart)
111 i15ath=1+lipart1*(npart+nthpart)
112 i15a=i15ath+2*9*(npart+nthpart)
124 ipartr => ipart(i15f:i15g-1)
133 IF (iabs(idtgr(11))==igrnod(n)%ID)
THEN
139 CALL ancmsg(msgid=237,anmode=aninfo,
140 . i1=iabs(idtgr(11)))
143 DO n=1,igrnod(idtgrx)%NENTITY
144 tagn(igrnod(idtgrx)%ENTITY(n)) = 1
164 IF (igrpart(n)%ID==-idtgrs)
THEN
169 CALL ancmsg(msgid=21,anmode=aninfo_blind,
175 DO i=1,igrpart(idtgrx)%NENTITY
181 IF (isms_selec==1)
THEN
186 ELSEIF (isms_selec==2)
THEN
189 IF(tagprt_sms(ipartr(i))==0)
THEN
195 ELSEIF (isms_selec==3)
THEN
203 gbuf => elbuf_tab(ng)%GBUF
205 IF(gbuf%ISMS(i)==0)
THEN
213 ELSEIF (isms_selec==4)
THEN
221 gbuf => elbuf_tab(ng)%GBUF
223 IF(gbuf%ISMS(i)==0.AND.tagprt_sms(ipartr(nft+i))==0)
THEN
241 gbuf => elbuf_tab(ng)%GBUF
249 iadbuf = ipm(7,imat) - 1
259 iequi = uparam(iadbuf+2)
260 xkm=
max(uparam(iadbuf + k11 + 1)*uparam(iadbuf + k1 + 1),
261 . uparam(iadbuf + k11 + 2)*uparam(iadbuf + k1 + 2),
262 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3))
263 xcm=
max(uparam(iadbuf + k12 + 1),uparam(iadbuf + k12 + 2),uparam(iadbuf
264 xkr=
max(uparam(iadbuf
265 . uparam(iadbuf + k11 + 5)*uparam(iadbuf + k1 + 5),
266 . uparam(iadbuf + k11 + 6)*uparam(iadbuf + k1 + 6))
267 xcr=
max(uparam(iadbuf + k12 + 4),uparam(iadbuf + k12 + 5),uparam(iadbuf + k12 + 6))
271 IF(gbuf%MASS(i)==zero)
THEN
272 IF(xkm/=zero.OR.xcm/=zero)
THEN
273 IF(nodadt==0.AND.idtmins/=2)
THEN
275 ELSEIF(.NOT.((nodadt/=0 .AND.tagn(n1)/=0 .AND. tagn(n2)/=0).OR.
276 . (idtmins==2.AND.tagr(i)/=0)))
THEN
283 IF(xkr/=zero.OR.xcr/=zero.OR.(iequi/=0.AND.(xkm/=zero.OR.xcm/=zero)))
THEN
284 IF(nodadt==0.AND.idtmins/=2)
THEN
286 ELSEIF(.NOT.((nodadt/=0 .AND.tagn(n1)/=0 .AND. tagn(n2)/=0).OR.
287 . (idtmins==2.AND.tagr(i)/=0)))
THEN
300 CALL mpi_allreduce(mpi_in_place,ierr,1,mpi_integer,mpi_max,spmd_comm_world,ierror)
307 CALL ancmsg(msgid=286,anmode=aninfo_blind_1)
313 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)