38 2 NSV ,ILOC ,IRTL ,ICODE ,ISKEW ,
39 3 SKEW ,MSR ,LMSR ,NSEG ,IRECTS ,
40 4 IRECT ,UPW ,IXQ ,ELBUF_TAB ,
41 5 IPARG ,PM ,NALE ,EE ,IELES ,
42 6 IELEM ,TSTIF ,INTTH ,IEULT ,STENS ,
43 7 ISIZES ,ISIZEM, NRTS, NRTM,NSN,NMN)
51#include "implicit_f.inc"
57#include "scr08_a_c.inc"
63 INTEGER,
INTENT(IN) :: NRTS, NRTM,NSN,NMN
64 INTEGER IRECT(4,*), NSV(NSN), ILOC(*), IRTL(NSN), ICODE(*), ISKEW(*),
65 . MSR(*), IRECTS(4,*), LMSR(*), NSEG(*),IXQ(NIXQ,*),
66 . IPARG(NPARG,*), IELES(*), IELEM(*),NALE(*) ,
67 . INTTH, IEULT, ISIZES, ISIZEM
70 . upw, tstif,ttt, stens,
71 . x(3,*), v(3,*), w(3,*), a(3,*), crst(2,*), skew(lskew,*),
73 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
77 INTEGER II, N, L, JJ, NN, LL, LL1, LL2, LG, KK, KKK, K1, K2,
78 . I1, I2, IERR, IGROU, IELN,
79 . ixx(4), iperm(2), jperm(2),
80 . itemp(2), is, im, ilen,
81 . tags(isizes),tagm(isizem), lists(isizes),listm(isizem),
82 . icomerr(isizem+isizes),icomngr(isizem+isizes),
83 . icomnel(isizem+isizes)
86 . vmx, vmy, vmz, vx, vy, vz, vv, nx, ny, nz, vt,
87 . nnx, nny, nnz, fac, p, x1, y1, z1,x2, y2, z2, tx, ty, tz,
88 . efric, vols, volm, ts, tm ,tstifm, tstifs, dvn,
89 . tstift, phi, areas, aream, vn, wn, stensy, stensz,
90 . comarea(isizem+isizes),comstf(isizem+isizes),
91 . comt(isizem+isizes),comvol(isizem+isizes),combuf(isizem+isizes)
92 TYPE(g_bufel_) ,
POINTER :: GBUF
94 DATA IPERM/ 2, 1/,JPERM/ 1, -1/
111 IF(iloc(ii)>0.AND.nmn>0)
THEN
148 ix(1) = msr(irect(1,l))
149 ix(2) = msr(irect(2,l))
152 1 ierr ,comarea(ii),comstf(ii),comt(ii),comvol(ii),
153 2 ielem(l) ,x ,ixq(1,ielem(l)),ix ,
154 3 iparg,pm ,elbuf_tab , igrou ,ieln )
172 ixx(1)=nsv(irects(1,l))
173 ixx(2)=nsv(irects(2,l))
176 1 ierr ,comarea(im+ii),comstf(im+ii),comt(im+ii),comvol(im+ii),
177 2 ieles(l) ,x ,ixq(1,ieles(l)) ,ixx ,
178 3 iparg,pm ,elbuf_tab ,igrou ,ieln )
179 icomerr(im+ii) = ierr
180 icomngr(im+ii) = igrou
181 icomnel(im+ii) = ieln
183 comarea(im+ii) = zero
206 IF(ispmd/=0)
GOTO 900
217 IF(iloc(ii)>0.AND.nmn>0)
THEN
226 h(1) = half*(one - crst(1,ii))
227 h(2) = half*(one + crst(1,ii))
235 vmy=vmy+w(2,ix(jj))*h(jj)
236 vmz=vmz+w(3,ix(jj))*h(jj)
246 efric = half * ee(ii) / (ll2-ll1+1)
262 tstift = tstifm + tstifs + tstif
263 phi = areas * dt1 * (tm-ts) / tstift
264 combuf(jj) = combuf(jj)
266 combuf(kk) = combuf(kk)
274 ELSEIF(iloc(ii)<0.OR.nmn==0)
THEN
282 vv =
max(em30,sqrt(vy**2+vz**2))
292 200
IF(irects(kk,lg)==ii)
GO TO 250
298 i1 = nsv(irects(k1,lg))
299 ty = x(2,i1) - x(2,n)
300 tz = x(3,i1) - x(3,n)
301 ttt =
max(em30,sqrt(ty**2+tz**2))
303 vt = v(2,n)*ty + v(3,n)*tz
304 p = onep0001 - upw*(half + sign(half,vt))
314 stensy = stens * ty / ttt
315 stensz = stens * tz / ttt
316 a(2,n) = a(2,n) + stensy
317 a(3,n) = a(3,n) + stensz
319 fac =
max(em30,sqrt(nny**2+nnz**2))
329 dvn = vy * nny + vz * nnz
330 w(2,n) = w(2,n) + dvn * nny
331 w(3,n) = w(3,n) + dvn * nnz
332 CALL bcs2(w(1,n),skew(1,iskew(n)),iskew(n),icode(n))
333 vn = v(2,n)*nny + v(3,n)*nnz
334 wn = w(2,n)*nny + w(3,n)*nnz
340 w(2,n) = w(2,n) * fac
341 w(3,n) = w(3,n) * fac
348 vn = v(2,n) * nny + v(3,n) * nnz
356 dvn = vy * nny + vz * nnz
357 w(2,n) = w(2,n) + dvn * nny
358 w(3,n) = w(3,n) + dvn * nnz
382 elbuf_tab(igrou)%GBUF%EINT(ieln) =
383 . elbuf_tab(igrou)%GBUF%EINT(ieln) + combuf(ii)
390 igrou = icomngr(im+ii)
391 ieln = icomnel(im+ii)
392 elbuf_tab(igrou)%GBUF%EINT(ieln) =
393 . elbuf_tab(igrou)%GBUF%EINT(ieln) + combuf(im+ii)
subroutine i9wal2(x, v, w, a, crst, nsv, iloc, irtl, icode, iskew, skew, msr, lmsr, nseg, irects, irect, upw, ixq, elbuf_tab, iparg, pm, nale, ee, ieles, ielem, tstif, intth, ieult, stens, isizes, isizem, nrts, nrtm, nsn, nmn)