39 2 NSV ,ILOC ,IRTL ,ICODE ,ISKEW ,
40 3 SKEW ,MSR ,LMSR ,NSEG ,IRECTS ,
41 4 IRECT ,UPW ,IXQ ,ELBUF_TAB ,
42 5 IPARG ,PM ,NALE ,EE ,IELES ,
43 6 IELEM ,TSTIF ,INTTH ,IEULT ,STENS ,
44 7 ISIZES ,ISIZEM, NRTS, NRTM,NSN,NMN)
49 use element_mod ,
only : nixq
53#include "implicit_f.inc"
59#include "scr08_a_c.inc"
65 INTEGER,
INTENT(IN) :: NRTS, NRTM,NSN,NMN
66 INTEGER IRECT(4,*), NSV(NSN), ILOC(*), IRTL(NSN), ICODE(*), ISKEW(*),
67 . MSR(*), IRECTS(4,*), LMSR(*), NSEG(*),IXQ(NIXQ,*),
68 . IPARG(NPARG,*), IELES(*), IELEM(*),NALE(*) ,
69 . INTTH, IEULT, ISIZES, ISIZEM
72 . upw, tstif,ttt, stens,
73 . x(3,*), v(3,*), w(3,*), a(3,*), crst(2,*), skew(lskew,*),
75 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
79 INTEGER II, N, L, JJ, NN, LL, LL1, LL2, LG, KK, KKK, K1,
80 . I1, IERR, IGROU, IELN,
81 . ixx(4), iperm(2), jperm(2),
82 . itemp(2), is, im, ilen,
83 . tags(isizes),tagm(isizem), lists(isizes),listm(isizem),
84 . icomerr(isizem+isizes),icomngr(isizem+isizes),
85 . icomnel(isizem+isizes)
88 . vmy, vmz, vy, vz, vv, ny, nz, vt,
89 . nny, nnz, fac, p, ty, tz,
90 . efric, vols, volm, ts, tm ,tstifm, tstifs, dvn,
91 . tstift, phi, areas, aream, vn, wn, stensy, stensz,
92 . comarea(isizem+isizes),comstf(isizem+isizes),
93 . comt(isizem+isizes),comvol(isizem+isizes),combuf(isizem+isizes)
96 DATA iperm/ 2, 1/,jperm/ 1, -1/
113 IF(iloc(ii)>0.AND.nmn>0)
THEN
150 ix(1) = msr(irect(1,l))
151 ix(2) = msr(irect(2,l))
154 1 ierr ,comarea(ii),comstf(ii),comt(ii),comvol(ii),
155 2 ielem(l) ,x ,ixq(1,ielem(l)),ix ,
156 3 iparg,pm ,elbuf_tab , igrou ,ieln )
174 ixx(1)=nsv(irects(1,l))
175 ixx(2)=nsv(irects(2,l))
178 1 ierr ,comarea(im+ii),comstf(im+ii),comt(im+ii),comvol(im+ii),
179 2 ieles(l) ,x ,ixq(1,ieles(l)) ,ixx ,
180 3 iparg,pm ,elbuf_tab ,igrou ,ieln )
181 icomerr(im+ii) = ierr
182 icomngr(im+ii) = igrou
183 icomnel(im+ii) = ieln
185 comarea(im+ii) = zero
208 IF(ispmd/=0)
GOTO 900
219 IF(iloc(ii)>0.AND.nmn>0)
THEN
228 h(1) = half*(one - crst(1,ii))
229 h(2) = half*(one + crst(1,ii))
237 vmy=vmy+w(2,ix(jj))*h(jj)
238 vmz=vmz+w(3,ix(jj))*h(jj)
248 efric = half * ee(ii) / (ll2-ll1+1)
264 tstift = tstifm + tstifs + tstif
265 phi = areas * dt1 * (tm-ts) / tstift
266 combuf(jj) = combuf(jj)
268 combuf(kk) = combuf(kk)
276 ELSEIF(iloc(ii)<0.OR.nmn==0)
THEN
284 vv =
max(em30,sqrt(vy**2+vz**2))
294 200
IF(irects(kk,lg)==ii)
GO TO 250
300 i1 = nsv(irects(k1,lg))
301 ty = x(2,i1) - x(2,n)
302 tz = x(3,i1) - x(3,n)
303 ttt =
max(em30,sqrt(ty**2+tz**2))
305 vt = v(2,n)*ty + v(3,n)*tz
306 p = onep0001 - upw*(half + sign(half,vt))
316 stensy = stens * ty / ttt
317 stensz = stens * tz / ttt
318 a(2,n) = a(2,n) + stensy
319 a(3,n) = a(3,n) + stensz
321 fac =
max(em30,sqrt(nny**2+nnz**2))
331 dvn = vy * nny + vz * nnz
332 w(2,n) = w(2,n) + dvn * nny
333 w(3,n) = w(3,n) + dvn * nnz
334 CALL bcs2(w(1,n),skew(1,iskew(n)),iskew(n),icode(n))
335 vn = v(2,n)*nny + v(3,n)*nnz
336 wn = w(2,n)*nny + w(3,n)*nnz
342 w(2,n) = w(2,n) * fac
343 w(3,n) = w(3,n) * fac
350 vn = v(2,n) * nny + v(3,n) * nnz
358 dvn = vy * nny + vz * nnz
359 w(2,n) = w(2,n) + dvn * nny
360 w(3,n) = w(3,n) + dvn * nnz
384 elbuf_tab(igrou)%GBUF%EINT(ieln) =
385 . elbuf_tab(igrou)%GBUF%EINT(ieln) + combuf(ii)
392 igrou = icomngr(im+ii)
393 ieln = icomnel(im+ii)
394 elbuf_tab(igrou)%GBUF%EINT(ieln) =
395 . 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)