30 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
31 2 IXR ,IXTG ,MSS ,MSQ ,
32 3 MSC ,MST ,MSP ,MSR ,MSTG ,
33 4 INC ,INP ,INR ,INTG ,
34 5 INDEX,ITRI ,MS ,IN ,
35 6 PTG ,GEO ,IXS10,IXS20,
36 7 IXS16,MSSX ,MSNF ,MSSF ,VNS ,
37 8 VNSX ,STC ,STT ,STP ,STR ,
38 9 STTG ,STUR ,BNS ,BNSX ,VOLNOD ,
39 A BVOLNOD ,ETNOD ,STIFINT,INS ,
40 B MCPC ,MCP ,MCPS ,MCPSX ,
41 C MCPTG,SH4TREE,SH3TREE,MS_LAYERC,ZI_LAYERC,
42 D MS_LAYER , ZI_LAYER,MSZ2C,MSZ2,ZPLY,
43 E KXIG3D ,IXIG3D ,MSIG3D,NCTRLMAX,STRC,
44 F STRP,STRR,STRTG,STIFINTR,NSHNOD,VNIGE,BNIGE,
50#include "implicit_f.inc"
58#include "remesh_c.inc"
62 INTEGER IXS(NIXS,*), IXQ(NIXQ,*), IXC(NIXC,*),
63 . IXT(NIXT,*),IXP(NIXP,*), IXR(NIXR,*), IXTG(6,*),
65 . IXS10(6,*),IXS20(12,*),IXS16(8,*),
66 . SH4TREE(KSH4TREE,*), SH3TREE(KSH3TREE,*),KXIG3D(NIXIG3D,*),
68 INTEGER,
INTENT(IN) :: ITHERM_FE
71 . MSS(8,*), MSQ(*),MSC(*),MST(*),MSP(*),MSR(3,*),
72 . MSTG(*),MSSX(12,*),INC(*),
76 . VNS(8,*) ,(12,*) ,STC(*) ,STT(*) ,STP(*) ,STR(*) ,
77 . STTG(*) ,STUR(*) ,BNS(8,*) ,BNSX(12,*) ,
78 . volnod(*) ,bvolnod(*) ,etnod(*), stifint(*), ins(8,*),
79 . mcp(*),mcpc(*),mcps(8,*),mcpsx(12,*),mcptg(*),
80 . ms_layerc(numelc,*),zi_layerc(numelc,*),
82 . zply(*),msig3d(numelig3d,nctrlmax),strc(*),strp(*),
strr(*),
83 . strtg(*),stifintr(*), vnige(nctrlmax,*),bnige(nctrlmax,*),
96 CALL my_orders(0,work,itri,index,numels8,1)
99 CALL my_orders(0,work,itri(ideb),index(ideb),numels10,1)
102 index(ideb+j-1) = index(ideb+j-1)+numels8
105 ideb = ideb + numels10
106 CALL my_orders(0,work,itri(ideb),index(ideb),numels20,1)
108 index(ideb+j-1) = index(ideb+j-1)+numels8+numels10
111 ideb = ideb + numels20
112 CALL my_orders(0,work,itri(ideb),index(ideb),numels16,1)
114 index(ideb+j-1) = index(ideb+j-1)+numels8+numels10+numels20
117 IF(itherm_fe == 0 )
THEN
130 ms(n) = ms(n) + mss(k,i)
131 mcp(n) = mcp(n) + mcps(k,i)
136 IF(iale==1.OR.ieuler==1 .OR. ialelag==1)
THEN
141 msnf(n) = msnf(n) + mssf(k,i)
146 IF(itherm_fe== 0 )
THEN
151 n = ixs10(k,i-numels8)
161 i = index(numels8+numels10+j)
163 n = ixs20(k,i-numels8-numels10)
165 ms(n) = ms(n) + mssx(k,i)
173 i = index(numels8+numels10+numels20+j)
175 n = ixs16(k,i-numels8-numels10-numels20)
177 ms(n) = ms(n) + mssx(k,i)
190 n = ixs10(k,i-numels8)
192 ms(n) = ms(n) + mssx(k,i)
193 mcp(n) = mcp(n) + mcpsx(k,i)
201 i = index(numels8+numels10+j)
203 n = ixs20(k,i-numels8-numels10)
205 ms(n) = ms(n) + mssx(k,i)
206 mcp(n) = mcp(n) + mcpsx(k,i)
214 i = index(numels8+numels10+numels20+j)
216 n = ixs16(k,i-numels8-numels10-numels20)
218 ms(n) = ms(n) + mssx(k,i)
219 mcp(n) = mcp(n) + mcpsx(k,i)
228 DO j=1,numels8+numels10
232 in(n) = in(n) + ins(k,i)
242 volnod(n) = volnod(n) + vns(k,i)
243 bvolnod(n) = bvolnod(n) + bns(k,i)
251 n = ixs10(k,i-numels8)
253 volnod(n) = volnod(n) + vnsx(k,i)
254 bvolnod(n) = bvolnod(n) + bnsx(k,i)
262 i = index(numels8+numels10+j)
264 n = ixs20(k,i-numels8-numels10)
266 volnod(n) = volnod(n) + vnsx(k,i)
267 bvolnod(n) = bvolnod(n) + bnsx(k,i)
275 i = index(numels8+numels10+numels20+j)
277 n = ixs16(k,i-numels8-numels10-numels20)
279 volnod(n) = volnod(n) + vnsx(k,i)
280 bvolnod(n) = bvolnod(n) + bnsx(k,i)
288 itri(i) = kxig3d(5,i)
290 CALL my_orders(0,work,itri,index,numelig3d,1)
294 n = ixig3d(kxig3d(4,i)+k-1)
296 volnod(n) = volnod(n) + vnige(k,i)
297 bvolnod(n) = bvolnod(n) + bnige(k,i)
307 CALL my_orders(0,work,itri,index,numelq,1)
312 ms(n) = ms(n) + msq(i)
320 CALL my_orders(0,work,itri,index,numelc,1)
322 IF(itherm_fe == 0 )
THEN
328 ms(n) = ms(n) + msc(i)
329 in(n) = in(n) + inc(i)
339 ms(n) = ms(n) + msc(i)
340 in(n) = in(n) + inc(i)
347 IF(sh4tree(3,i) == 0 .OR. sh4tree(3,i) == -1)
THEN
350 ms(n) = ms(n) + msc(i)
351 in(n) = in(n) + inc(i)
363 ms(n) = ms(n) + msc(i)
364 in(n) = in(n) + inc(i)
365 mcp(n) = mcp(n) + mcpc(i)
372 IF(sh4tree(3,i) >= 0)
THEN
384 IF(sh4tree(3,i) == -1)
THEN
388 in(n) = in(n) + inc(i)
393 ms(n) = ms(n) + msc(i
394 in(n) = in(n) + inc(i)
395 mcp(n) = mcp(n) + mcpc(i)
397 ELSEIF(sh4tree(3,i) > 0)
THEN
400 mcp(n) = mcp(n) + mcpc(i)
408 IF(iplyxfem > 0)
THEN
414 ms_layer(n,ip) = ms_layer(n,ip) + ms_layerc(i,ip)
415 IF(zi_layerc(i,ip) == zero)
THEN
416 zi_layer(n,ip) = zply(ip)
418 zi_layer(n,ip) = zi_layerc(i,ip)
429 msz2(n) = msz2(n) + msz2c(i)
440 etnod(n) = etnod(n) + stc(i)
455 ms(n) = ms(n) + mst(i)
464 stifint(n) = stifint(n) + stt(i)
472 CALL my_orders(0,work,itri,index,numelp,1)
473 IF(itherm_fe == 0)
THEN
477 ms(n) = ms(n) + msp(i)
478 in(n) = in(n) + inp(i)
480 ms(n) = ms(n) + msp(i)
481 in(n) = in(n) + inp(i)
487 ms(n) = ms(n) + msp(i)
488 in(n) = in(n) + inp(i)
489 mcp(n) = mcp(n) + mcpp(i)
491 ms(n) = ms(n) + msp(i)
492 in(n) = in(n) + inp(i)
493 mcp(n) = mcp(n) + mcpp(i)
501 stifint(n) = stifint(n) + stp(i)
502 stifintr(n) = stifintr(n) + strp(i)
504 stifint(n) = stifint(n) + stp(i)
505 stifintr(n) = stifintr(n) + strp(i)
512 CALL my_orders(0,work,itri,index,numelr,1)
517 ms(n) = ms(n) + msr(k,i)
518 in(n) = in(n) + inr(k,i)
520 igtyp = nint(geo(12,ixr(1,i)))
523 ms(n) = ms(n) + msr(3,i)
524 in(n) = in(n) + inr(3,i)
533 stifint(n) = stifint(n) + str(i)
534 stifintr(n) = stifintr(n) +
strr(i)
536 igtyp = nint(geo(12,ixr(1,i)))
539 stifint(n) = stifint(n) + two*str(i)
547 CALL my_orders(0,work,itri,index,numeltg,1)
548 IF(itherm _fe== 0 )
THEN
554 ms(n) = ms(n) + mstg(i)*ptg(k,i)
555 in(n) = in(n) + intg(i)*ptg(k,i)
562 IF(sh3tree(3,i) >= 0)
THEN
565 ms(n) = ms(n) + mstg(i)*ptg(k,i)
566 in(n) = in(n) + intg(i)*ptg(k,i)
573 IF(sh3tree(3,i) == 0 .OR. sh3tree(3,i) == -1)
THEN
576 ms(n) = ms(n) + mstg(i)*ptg(k,i)
577 in(n) = in(n) + intg(i)*ptg(k,i)
589 ms(n) = ms(n) + mstg(i)*ptg(k,i)
590 mcp(n) = mcp(n) + mcptg(i)*ptg(k,i)
597 IF(sh3tree(3,i) >= 0)
THEN
600 ms(n) = ms(n) + mstg(i)*ptg(k,i)
601 mcp(n) = mcp(n) + mcptg(i)*ptg(k,i)
608 IF(sh3tree(3,i) == -1)
THEN
611 ms(n) = ms(n) + mstg(i)*ptg(k,i)
613 ELSEIF(sh3tree(3,i) == 0)
THEN
616 ms(n) = ms(n) + mstg(i)*ptg(k,i)
617 mcp(n) = mcp(n) + mcptg(i)*ptg(k,i)
619 ELSEIF(sh3tree(3,i) > 0)
THEN
622 mcp(n) = mcp(n) + mcptg(i)*ptg(k,i)
635 etnod(n) = etnod(n) + sttg(i)
636 stifintr(n) = stifintr(n) + strtg(i)/nshnod(n)
642 itri(i) = kxig3d(5,i)
644 CALL my_orders(0,work,itri,index,numelig3d,1)
648 n = ixig3d(kxig3d(4,i)+k-1)
649 ms(n) = ms(n) + msig3d(i,k)
subroutine spmd_msin(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, mss, msq, msc, mst, msp, msr, mstg, inc, inp, inr, intg, index, itri, ms, in, ptg, geo, ixs10, ixs20, ixs16, mssx, msnf, mssf, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, stifint, ins, mcpc, mcp, mcps, mcpsx, mcptg, sh4tree, sh3tree, ms_layerc, zi_layerc, ms_layer, zi_layer, msz2c, msz2, zply, kxig3d, ixig3d, msig3d, nctrlmax, strc, strp, strr, strtg, stifintr, nshnod, vnige, bnige, mcpp, itherm_fe)