33 SUBROUTINE admmap3(N ,IXTG ,X ,IPARG ,ELBUF_TAB,
43#include "implicit_f.inc"
47#include "vect01_c.inc"
53 INTEGER N, IXTG(NIXTG,*), IPARG(NPARG,*),
54 . igeo(npropgi,*), ipm(npropmi,*), sh3tree(ksh3tree,*)
57 TYPE(elbuf_struct_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
61 INTEGER IB,M,N1,N2,N3,N4,IR,IS,IT,IL,NPTR,NPTS,NPTT,NLAY,
62 . i,j,k,ii,jj,i1,ng,ng1,nel1,nft1,mlw,nel,
63 . matly,nuvar,ivar,istra,iexpan,nptm,kk(8),kk1(8)
66 . stot,x12,y12,z12,x13,y13,z13,s2wake(4)
67 TYPE(g_bufel_) ,
POINTER :: GBUFS,GBUFT
68 TYPE(l_bufel_) ,
POINTER :: LBUFS,LBUFT
69 TYPE(buf_lay_) ,
POINTER :: BUFLY
79 x12 = x(1,n2) - x(1,n1)
80 y12 = x(2,n2) - x(2,n1)
81 z12 = x(3,n2) - x(3,n1)
83 x13 = x(1,n3) - x(1,n1)
84 y13 = x(2,n3) - x(2,n1)
85 z13 = x(3,n3) - x(3,n1)
87 nx = y12*z13 - z12*y13
88 ny = z12*x13 - x12*z13
89 nz = x12*y13 - y12*x13
91 s2wake(ib)=sqrt(nx*nx+ny*ny+nz*nz)
92 stot = stot+s2wake(ib)
109 gbufs => elbuf_tab(ng)%GBUF
110 nlay = elbuf_tab(ng)%NLAY
111 nptr = elbuf_tab(ng)%NPTR
112 npts = elbuf_tab(ng)%NPTS
113 nptt = elbuf_tab(ng)%NPTT
119 m = sh3tree(2,n)+ib-1
124 gbuft => elbuf_tab(ng1)%GBUF
131 gbuft%FOR(kk1(1)+i1) = gbufs%FOR(kk(1)+i)
132 gbuft%FOR(kk1(2)+i1) = gbufs%FOR(kk(2)+i)
133 gbuft%FOR(kk1(3)+i1) = gbufs%FOR(kk(3)+i)
134 gbuft%FOR(kk1(4)+i1) = gbufs%FOR(kk(4)+i)
135 gbuft%FOR(kk1(5)+i1) = gbufs%FOR(kk(5)+i)
137 gbuft%MOM(kk1(1)+i1) = gbufs%MOM(kk(1)+i)
138 gbuft%MOM(kk1(2)+i1) = gbufs%MOM(kk(2)+i)
139 gbuft%MOM(kk1(3)+i1) = gbufs%MOM(kk(3)+i)
141 gbuft%EINT(i1) = gbufs%EINT(i)*s2wake(ib)/stot
142 gbuft%EINT(i1+nel1) = gbufs%EINT(i+nel)*s2wake(ib)/stot
144 gbuft%THK(i1) = gbufs%THK(i)
145 gbuft%OFF(i1) = gbufs%OFF(i)
147 IF (gbuft%G_EPSD > 0)
THEN
148 gbuft%EPSD(i1) = gbufs%EPSD(i)
153 gbuft%STRA(kk1(k)+i1) = gbufs%STRA(kk(k)+i)
157 IF (iexpan /= 0)
THEN
158 gbuft%TEMP(i1) = gbufs%TEMP(i)
167 lbuft => elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)
169 lbuft%SIG(kk1(1)+i1) = lbufs%SIG(kk(1)+i)
170 lbuft%SIG(kk1(2)+i1) = lbufs%SIG(kk(2)+i)
171 lbuft%SIG(kk1(3)+i1) = lbufs%SIG(kk(3)+i)
172 lbuft%SIG(kk1(4)+i1) = lbufs%SIG(kk
173 lbuft%SIG(kk1(5)+i1) = lbufs%SIG(kk(5)+i)
181 IF (gbuft%G_PLA > 0)
THEN
186 elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)%PLA(i1) =
187 . elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%PLA(i)
196 IF (mlw>=28 .AND. mlw/=32)
THEN
201 DO k=1,elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
202 elbuf_tab(ng1)%BUFLY(il)%MAT(ir,is,it)%VAR(nel1*(k-1)+i1)=
203 . elbuf_tab(ng )%BUFLY(il)%MAT(ir,is,it)%VAR(nel*(k-1)+i)
240 gbuft => elbuf_tab(ng1)%GBUF
248 gbuft%FOR(kk1(1)+i1) = gbufs%FOR(kk(1)+i)
249 gbuft%FOR(kk1(2)+i1) = gbufs%FOR(kk(2)+i)
250 gbuft%FOR(kk1(3)+i1) = gbufs%FOR(kk(3)+i)
251 gbuft%FOR(kk1(4)+i1) = gbufs%FOR(kk(4)+i)
252 gbuft%FOR(kk1(5)+i1) = gbufs%FOR(kk(5)+i)
254 gbuft%MOM(kk1(1)+i1) = gbufs%MOM(kk(1)+i)
255 gbuft%MOM(kk1(2)+i1) = gbufs%MOM(kk(2)+i)
256 gbuft%MOM(kk1(3)+i1) = gbufs%MOM(kk(3)+i)
258 gbuft%THK(i1) = gbufs%THK(i)
259 gbuft%OFF(i1) = gbufs%OFF(i)
263 gbuft%EINT(i1) = gbufs%EINT(i)*s2wake(ib)/stot
264 gbuft%EINT(i1+nel1) = gbufs%EINT(i+nel)*s2wake(ib)/stot
267 IF (gbuft%G_EPSD > 0)
THEN
268 gbuft%EPSD(i1) = gbufs%EPSD(i)
273 gbuft%STRA(kk1(k)+i1) = gbufs%STRA(kk(k)+i)
278 gbuft%TEMP(i1)=gbufs%TEMP(i)
288 lbuft => elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)
289 lbufs => elbuf_tab(ng )%BUFLY(il)%LBUF(ir,is,it)
290 lbuft%SIG(kk1(1)+i1) = lbufs%SIG(kk(1)+i)
291 lbuft%SIG(kk1(2)+i1) = lbufs%SIG(kk(2)+i)
292 lbuft%SIG(kk1(3)+i1) = lbufs%SIG(kk(3)+i)
293 lbuft%SIG(kk1(4)+i1) =-lbufs%SIG(kk(4)+i)
294 lbuft%SIG(kk1(5)+i1) =-lbufs%SIG(kk(5)+i
304 lbuft => elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)
305 lbufs => elbuf_tab(ng )%BUFLY(il)%LBUF(ir,is,it)
306 lbuft%SIG(kk1(1)+i1) = lbufs%SIG(kk(1)+i)
307 lbuft%SIG(kk1(2)+i1) = lbufs%SIG(kk(2)+i)
308 lbuft%SIG(kk1(3)+i1) = lbufs%SIG(kk(3)+i)
309 lbuft%SIG(kk1(4)+i1) = lbufs%SIG(kk(4)+i)
310 lbuft%SIG(kk1(5)+i1) = lbufs%SIG(kk(5)+i)
319 IF (gbuft%G_PLA > 0)
THEN
324 elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)%PLA(i1) =
325 . elbuf_tab(ng )%BUFLY(il)%LBUF(ir,is,it)%PLA(i)
334 IF (mlw>=28 .AND. mlw/=32)
THEN
339 DO k=1,elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
340 elbuf_tab(ng1)%BUFLY(il)%MAT(ir,is,it)%VAR(nel1*(k-1)+i1)=
341 . elbuf_tab(ng )%BUFLY(il)%MAT(ir,is,it)%VAR(nel*(k-1)+i)
373 gbufs%OFF(i) =-abs(gbufs%OFF(i))
375 gbufs%FOR(kk(1)+i) = zero
376 gbufs%FOR(kk(2)+i) = zero
377 gbufs%FOR(kk(3)+i) = zero
378 gbufs%FOR(kk(4)+i) = zero
379 gbufs%FOR(kk(5)+i) = zero
381 gbufs%MOM(kk(1)+i) = zero
382 gbufs%MOM(kk(2)+i) = zero
383 gbufs%MOM(kk(3)+i) = zero
385 gbufs%EINT(i+nel) = zero
386 IF (gbufs%G_EPSD > 0) gbufs%EPSD(i) = zero
389 gbufs%STRA(kk(k)+i) = zero
398 elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%SIG(kk(k)+i)=zero
400 elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%PLA(i)=zero