43
44
45
47 USE elbufdef_mod
50
51
52
53#include "implicit_f.inc"
54
55
56
57#include "com01_c.inc"
58#include "param_c.inc"
59#include "sphcom.inc"
60#include "task_c.inc"
61#include "vect01_c.inc"
62
63
64
65 INTEGER KXSP(NISP,*),
66 . IPARTSP(*), IPARG(NPARG,*), NGROUNC,
67 . IGROUNC(*), ITASK, IXSP(KVOISPH,*), NOD2SP(*),
68 . SOL2SPH(2,*), WASPACT(*)
70 . x(3,*), spbuf(nspbuf,*)
71 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
72
73
74
75 INTEGER I, N, IP, KP, NG, MG, J, NP, KFT, IG, NELEM,
76 . NEL, OFFSET, NVOIS, M, JNOD, NN, IERROR
77
78
79 TYPE(G_BUFEL_) ,POINTER :: GBUF, GBUFSP
80 TYPE(L_BUFEL_) ,POINTER :: LBUF
81 TYPE(BUF_MAT_) ,POINTER :: MBUF
82
83 IF(itask==0)THEN
84 ALLOCATE(
wspcloud(numsph),stat=ierror)
85 IF(ierror/=0) THEN
86 CALL ancmsg(msgid=19,anmode=aninfo,
87 . c1='(SOLIDS to SPH)')
89 ENDIF
91 END IF
92
94
95
96 DO ig = 1, ngrounc
97 ng = igrounc(ig)
98
99
101 DO nelem = 1,iparg(2,ng),nvsiz
102 offset = nelem - 1
103 nel =iparg(2,ng)
104 nft =iparg(3,ng) + offset
105 iad =iparg(4,ng)
106 ity =iparg(5,ng)
107 lft=1
108 llt=
min(nvsiz,nel-nelem+1)
109 IF(ity==51) THEN
110
111 DO i=lft,llt
112 np=nft+i
113 IF(kxsp(2,np)>0) THEN
114 iparg(8,ng)=0
116 ELSEIF(kxsp(2,np)<0) THEN
117 nvois=kxsp(4,np)
118 DO j=1,nvois
119 jnod=ixsp(j,np)
120 IF(jnod>0)THEN
121 m=nod2sp(jnod)
122 IF(kxsp(2,m)>0)THEN
123 iparg(8,ng)=0
125 EXIT
126 END IF
127 ELSE
128 nn = -jnod
129 IF(nint(xsphr(13,nn))>0)THEN
130 iparg(8,ng)=0
132 EXIT
133 END IF
134 END IF
135 END DO
136 END IF
137 ENDDO
138 END IF
139 END DO
141
142 END DO
143
144
145 IF(itask==0)THEN
146 DO np=1,numsph
148 nsphact=nsphact+1
149 waspact(nsphact)=np
150 END IF
151 END DO
153 END IF
154
155 RETURN
integer, dimension(:), allocatable wspcloud
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)