34 SUBROUTINE admmap3(N ,IXTG ,X ,IPARG ,ELBUF_TAB,
41 use element_mod ,
only : nixtg
45#include "implicit_f.inc"
49#include "vect01_c.inc"
55 INTEGER N, IXTG(NIXTG,*), IPARG(NPARG,*),
56 . igeo(npropgi,*), ipm(npropmi,*), sh3tree(ksh3tree,*)
59 TYPE(elbuf_struct_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
63 INTEGER IB,M,N1,N2,N3,N4,IR,IS,IT,IL,NPTR,NPTS,NPTT,NLAY,
64 . i,j,k,ii,jj,i1,ng,ng1,nel1,nft1,mlw,nel,
65 . matly,nuvar,ivar,istra,iexpan,nptm,kk(8),kk1(8)
68 . stot,x12,y12,z12,x13,y13,z13,s2wake(4)
69 TYPE(g_bufel_) ,
POINTER :: GBUFS,GBUFT
70 TYPE(l_bufel_) ,
POINTER :: LBUFS,LBUFT
71 TYPE(buf_lay_) ,
POINTER :: BUFLY
81 x12 = x(1,n2) - x(1,n1)
82 y12 = x(2,n2) - x(2,n1)
83 z12 = x(3,n2) - x(3,n1)
85 x13 = x(1,n3) - x(1,n1)
86 y13 = x(2,n3) - x(2,n1)
87 z13 = x(3,n3) - x(3,n1)
89 nx = y12*z13 - z12*y13
90 ny = z12*x13 - x12*z13
91 nz = x12*y13 - y12*x13
93 s2wake(ib)=sqrt(nx*nx+ny*ny+nz*nz)
94 stot = stot+s2wake(ib)
111 gbufs => elbuf_tab(ng)%GBUF
112 nlay = elbuf_tab(ng)%NLAY
113 nptr = elbuf_tab(ng)%NPTR
114 npts = elbuf_tab(ng)%NPTS
115 nptt = elbuf_tab(ng)%NPTT
121 m = sh3tree(2,n)+ib-1
126 gbuft => elbuf_tab(ng1)%GBUF
133 gbuft%FOR(kk1(1)+i1) = gbufs%FOR(kk(1)+i)
134 gbuft%FOR(kk1(2)+i1) = gbufs%FOR(kk(2)+i)
135 gbuft%FOR(kk1(3)+i1) = gbufs%FOR(kk(3)+i)
136 gbuft%FOR(kk1(4)+i1) = gbufs%FOR(kk(4)+i)
137 gbuft%FOR(kk1(5)+i1) = gbufs%FOR(kk(5)+i)
139 gbuft%MOM(kk1(1)+i1) = gbufs%MOM(kk(1)+i)
140 gbuft%MOM(kk1(2)+i1) = gbufs%MOM(kk(2)+i)
141 gbuft%MOM(kk1(3)+i1) = gbufs%MOM(kk(3)+i)
143 gbuft%EINT(i1) = gbufs%EINT(i)*s2wake(ib)/stot
144 gbuft%EINT(i1+nel1) = gbufs%EINT(i+nel)*s2wake(ib)/stot
146 gbuft%THK(i1) = gbufs%THK(i)
147 gbuft%OFF(i1) = gbufs%OFF(i)
149 IF (gbuft%G_EPSD > 0)
THEN
150 gbuft%EPSD(i1) = gbufs%EPSD(i)
155 gbuft%STRA(kk1(k)+i1) = gbufs%STRA(kk(k)+i)
159 IF (iexpan /= 0)
THEN
160 gbuft%TEMP(i1) = gbufs%TEMP(i)
169 lbuft => elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)
170 lbufs => elbuf_tab(ng )%BUFLY(il)%LBUF(ir,is,it)
171 lbuft%SIG(kk1(1)+i1) = lbufs%SIG(kk(1)+i)
172 lbuft%SIG(kk1(2)+i1) = lbufs%SIG(kk(2)+i)
173 lbuft%SIG(kk1(3)+i1) = lbufs%SIG(kk(3)+i)
174 lbuft%SIG(kk1(4)+i1) = lbufs%SIG(kk(4)+i)
175 lbuft%SIG(kk1(5)+i1) = lbufs%SIG(kk(5)+i)
183 IF (gbuft%G_PLA > 0)
THEN
188 elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)%PLA(i1) =
189 . elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%PLA(i)
198 IF (mlw>=28 .AND. mlw/=32)
THEN
203 DO k=1,elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
204 elbuf_tab(ng1)%BUFLY(il)%MAT(ir,is,it)%VAR(nel1*(k-1)+i1)=
205 . elbuf_tab(ng )%BUFLY(il)%MAT(ir,is,it)%VAR(nel*(k-1)+i)
242 gbuft => elbuf_tab(ng1)%GBUF
250 gbuft%FOR(kk1(1)+i1) = gbufs%FOR(kk(1)+i)
251 gbuft%FOR(kk1(2)+i1) = gbufs%FOR(kk(2)+i)
252 gbuft%FOR(kk1(3)+i1) = gbufs%FOR(kk(3)+i)
253 gbuft%FOR(kk1(4)+i1) = gbufs%FOR(kk(4)+i)
254 gbuft%FOR(kk1(5)+i1) = gbufs%FOR(kk(5)+i)
256 gbuft%MOM(kk1(1)+i1) = gbufs%MOM(kk(1)+i)
257 gbuft%MOM(kk1(2)+i1) = gbufs%MOM(kk(2)+i)
258 gbuft%MOM(kk1(3)+i1) = gbufs%MOM(kk(3)+i)
260 gbuft%THK(i1) = gbufs%THK(i)
261 gbuft%OFF(i1) = gbufs%OFF(i)
265 gbuft%EINT(i1) = gbufs%EINT(i)*s2wake(ib)/stot
266 gbuft%EINT(i1+nel1) = gbufs%EINT(i+nel)*s2wake(ib)/stot
269 IF (gbuft%G_EPSD > 0)
THEN
270 gbuft%EPSD(i1) = gbufs%EPSD(i)
275 gbuft%STRA(kk1(k)+i1) = gbufs%STRA(kk(k)+i)
280 gbuft%TEMP(i1)=gbufs%TEMP(i)
290 lbuft => elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)
291 lbufs => elbuf_tab(ng )%BUFLY(il)%LBUF(ir,is,it)
292 lbuft%SIG(kk1(1)+i1) = lbufs%SIG(kk(1)+i)
293 lbuft%SIG(kk1(2)+i1) = lbufs%SIG(kk(2)+i)
294 lbuft%SIG(kk1(3)+i1) = lbufs%SIG(kk(3)+i)
295 lbuft%SIG(kk1(4)+i1) =-lbufs%SIG(kk(4)+i)
296 lbuft%SIG(kk1(5)+i1) =-lbufs%SIG(kk(5)+i)
306 lbuft => elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)
307 lbufs => elbuf_tab(ng )%BUFLY(il)%LBUF(ir,is,it)
308 lbuft%SIG(kk1(1)+i1) = lbufs%SIG(kk(1)+i)
309 lbuft%SIG(kk1(2)+i1) = lbufs%SIG(kk(2)+i)
310 lbuft%SIG(kk1(3)+i1) = lbufs%SIG(kk(3)+i)
311 lbuft%SIG(kk1(4)+i1) = lbufs%SIG(kk(4)+i)
312 lbuft%SIG(kk1(5)+i1) = lbufs%SIG(kk(5)+i)
321 IF (gbuft%G_PLA > 0)
THEN
326 elbuf_tab(ng1)%BUFLY(il)%LBUF(ir,is,it)%PLA(i1) =
327 . elbuf_tab(ng )%BUFLY(il)%LBUF(ir,is,it)%PLA(i)
336 IF (mlw>=28 .AND. mlw/=32)
THEN
341 DO k=1,elbuf_tab(ng)%BUFLY(il)%NVAR_MAT
342 elbuf_tab(ng1)%BUFLY(il)%MAT(ir,is,it)%VAR(nel1*(k-1)+i1)=
343 . elbuf_tab(ng )%BUFLY(il)%MAT(ir,is,it)%VAR(nel*(k-1)+i)
375 gbufs%OFF(i) =-abs(gbufs%OFF(i))
377 gbufs%FOR(kk(1)+i) = zero
378 gbufs%FOR(kk(2)+i) = zero
379 gbufs%FOR(kk(3)+i) = zero
380 gbufs%FOR(kk(4)+i) = zero
381 gbufs%FOR(kk(5)+i) = zero
383 gbufs%MOM(kk(1)+i) = zero
384 gbufs%MOM(kk(2)+i) = zero
385 gbufs%MOM(kk(3)+i) = zero
387 gbufs%EINT(i+nel) = zero
388 IF (gbufs%G_EPSD > 0) gbufs%EPSD(i) = zero
391 gbufs%STRA(kk(k)+i) = zero
400 elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%SIG(kk(k)+i)=zero
402 elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)%PLA(i)=zero
subroutine admregul(ixc, ipartc, ixtg, iparttg, ipart, itask, iparg, x, ms, in, elbuf_tab, nodft, nodlt, igeo, ipm, sh4tree, msc, inc, sh3tree, mstg, intg, ptg, mscnd, incnd, pm, mcp, mcpc, mcptg, itherm_fe)