37 2 NSVG ,H1 ,H2 ,H3 ,H4 ,STIF ,
38 3 FX1 ,FY1 ,FZ1 ,FX2 ,FY2 ,FZ2 ,
39 4 FX3 ,FY3 ,FZ3 ,FX4 ,FY4 ,FZ4 ,
40 5 FXI ,FYI ,FZI ,FSKYI,ISKY ,NISKYFI,
41 6 NIN ,NOINT ,MULTI_FVM,DT,JTASK)
64#include
"implicit_f.inc"
78 INTEGER JLT,NISKYFI,NIN,NOINT,INTTH,
80 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ),IX4(MVSIZ),NSVG(MVSIZ)
82 . H1(MVSIZ),H2(MVSIZ),H3(MVSIZ),H4(MVSIZ),STIF(MVSIZ),
83 . fx1(mvsiz),fy1(mvsiz),fz1(mvsiz),
84 . fx2(mvsiz),fy2(mvsiz),fz2(mvsiz),
85 . fx3(mvsiz),fy3(mvsiz),fz3(mvsiz),
86 . fx4(mvsiz),fy4(mvsiz),fz4(mvsiz),
87 . fxi(mvsiz),fyi(mvsiz),fzi(mvsiz),
88 . fskyi(lskyi,nfskyi),dt
89 TYPE(multi_fvm_struct),
INTENT(INOUT) :: MULTI_FVM
93 INTEGER , , IG, NISKYL1, NISKYL,IGP,IGM,IDR,NISKYFIL
95 REAL(kind=8),
DIMENSION(6,3*MVSIZ) :: LOCAL_DP,REMOTE_DP
96 my_real,
DIMENSION(3*MVSIZ) :: F_LOCAL, F_REMOTE
97 INTEGER :: NINDEX_LOCAL,NINDEX_REMOTE
98 INTEGER,
DIMENSION(MVSIZ) :: INDEX_LOCAL,INDEX_REMOTE
99 INTEGER :: SHIFT_FORCE_INT
103 IF (h1(i)/=zero) niskyl1 = niskyl1 + 1
106 IF (h2(i)/=zero) niskyl1 = niskyl1 + 1
109 IF (h3(i)/=zero) niskyl1 = niskyl1 + 1
112 IF (h4(i)/=zero) niskyl1 = niskyl1 + 1
122 nisky = nisky + niskyl1 + igp
124 niskyfi = niskyfi + igm
125#include "lockoff.inc"
127 IF (niskyl+niskyl1+igp > lskyi)
THEN
128 CALL ancmsg(msgid=26,anmode=aninfo)
131 IF (niskyfil+igm >
nlskyfi(nin))
THEN
132 CALL ancmsg(msgid=26,anmode=aninfo)
138 fskyi(niskyl,1)=fx1(i)
139 fskyi(niskyl,2)=fy1(i)
140 fskyi(niskyl,3)=fz1(i)
141 fskyi(niskyl,4)=stif(i)*abs(h1(i))
142 isky(niskyl) = ix1(i)
146 IF (h2(i)/=zero)
THEN
148 fskyi(niskyl,1)=fx2(i)
149 fskyi(niskyl,2)=fy2(i)
150 fskyi(niskyl,3)=fz2(i)
151 fskyi(niskyl,4)=stif(i)*abs(h2(i))
152 isky(niskyl) = ix2(i)
156 IF (h3(i)/=zero)
THEN
158 fskyi(niskyl,1)=fx3(i)
159 fskyi(niskyl,2)=fy3(i)
160 fskyi(niskyl,3)=fz3(i)
161 fskyi(niskyl,4)=stif(i)*abs(h3(i))
162 isky(niskyl) = ix3(i)
166 IF (h4(i)/=zero)
THEN
168 fskyi(niskyl,1)=fx4(i)
169 fskyi(niskyl,2)=fy4(i)
170 fskyi(niskyl,3)=fz4(i)
171 fskyi(niskyl,4)=stif(i)*abs(h4(i))
172 isky(niskyl) = ix4(i)
184 nindex_local = nindex_local + 1
185 index_local(nindex_local) = ig
186 f_local( 3*(nindex_local-1)+ 1 ) = -dt * fxi(i)
187 f_local( 3*(nindex_local-1)+ 2 ) = -dt * fyi(i)
188 f_local( 3*(nindex_local-1)+ 3 ) = -dt * fzi(i)
193 nindex_remote = nindex_remote + 1
194 index_remote(nindex_remote) = ig
195 f_remote( 3*(nindex_remote-1)+ 1 ) = -dt * fxi(i)
196 f_remote( 3*(nindex_remote-1)+ 2 ) = -dt * fyi(i)
197 f_remote( 3*(nindex_remote-1)+ 3 ) = -dt * fzi(i)
205 shift_force_int = (jtask-1)*numels
208 multi_fvm%FORCE_INT_PON(1,1:6,ig+shift_force_int) =
209 . multi_fvm%FORCE_INT_PON(1,1:6,ig+shift_force_int) + local_dp(1:6,3*(i-1)+1)
210 multi_fvm%FORCE_INT_PON(2,1:6,ig+shift_force_int) =
211 . multi_fvm%FORCE_INT_PON(2,1:6,ig+shift_force_int) + local_dp(1:6,3*(i-1)+2)
212 multi_fvm%FORCE_INT_PON(3,1:6,ig+shift_force_int) =
213 . multi_fvm%FORCE_INT_PON(3,1:6,ig+shift_force_int) + local_dp(1:6,3*(i-1)+3)
219 nodfi = multi_fvm%R_AFI(nin)%NODFI
220 shift_force_int = (jtask-1)*nodfi
223 multi_fvm%R_AFI(nin)%R_FORCE_INT(1,1:6,ig+shift_force_int) =
224 . multi_fvm%R_AFI(nin)%R_FORCE_INT(1,1:6,ig+shift_force_int) +
225 . remote_dp(1:6,3*(i-1)+1)
226 multi_fvm%R_AFI(nin)%R_FORCE_INT(2,1:6,ig+shift_force_int) =
227 . multi_fvm%R_AFI(nin)%R_FORCE_INT(2,1:6,ig+shift_force_int) +
228 . remote_dp(1:6,3*(i-1)+2)
229 multi_fvm%R_AFI(nin)%R_FORCE_INT(3,1:6,ig+shift_force_int) =
230 . multi_fvm%R_AFI(nin)%R_FORCE_INT(3,1:6,ig+shift_force_int) +
231 . remote_dp(1:6,3*(i-1)+3)
subroutine multi_i18_force_pon(jlt, ix1, ix2, ix3, ix4, nsvg, h1, h2, h3, h4, stif, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, fskyi, isky, niskyfi, nin, noint, multi_fvm, dt, jtask)
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)