35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "com01_c.inc"
43#include "com04_c.inc"
44#include "sphcom.inc"
45#include "param_c.inc"
46#include "task_c.inc"
47#include "spmd_c.inc"
48
49
50
51
52 INTEGER IADD(*),IPARG(NPARG,*),
53 . MATER(*),EL2FA(*),
54 . IADG(NSPMD,*),
55 . DD_IAD(NSPMD+1,*),
56 . KXSP(NISP,*),IPARTSP(*),
57 . NODGLOB(*)
58
59
61 . off
62 INTEGER II, IE, NG, ITY, LFT, LLT, KPT, N, I,
63 . NEL, IAD, NPAR, NFT, IPRT,
64 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,
65 . JJ, INOD,
66 . NP(NUMSPH),BUF,BUFP
67
68
69 nn1 = 1
70 nn2 = nn1 + numsph+maxpjet
71 ie = 0
72
73
74
75 npar = 0
76 jj = 0
77
78 DO 100 iprt = 1 , npart
79
80 IF(mater(iprt)/=4) GOTO 100
81 npar = npar + 1
82 DO 90 ng=1,ngroup
83 nel =iparg(2,ng)
84 nft =iparg(3,ng)
85 iad =iparg(4,ng)
86 ity =iparg(5,ng)
87 lft=1
88 llt=nel
89 IF(ity==51)THEN
90
91
92
93 DO 20 i=lft,llt
94 n = i + nft
95 IF(ipartsp(n)/=iprt) GOTO 20
96 inod=kxsp(3,n)
97 IF (nspmd == 1) THEN
98 ii = inod-1
100 ELSE
101 np(jj+1) = nodglob(inod)-1
102 END IF
103 jj = jj+1
104 ie = ie + 1
105 el2fa(nn1+n) = ie
106 20 CONTINUE
107 ELSE
108 ENDIF
109 90 CONTINUE
110
111
112
113 iadd(npar) = ie
114 100 CONTINUE
115
116 IF (nspmd > 1) THEN
117 IF (ispmd==0) THEN
118 bufp = npart
119 buf = numsphg
120 ELSE
121 bufp = 1
122 buf=1
123 END IF
124
127 ELSE
128 DO i = 1, npart
129 iadg(1,i) = iadd(i)
130 END DO
131 ENDIF
132
133 RETURN
subroutine spmd_iget_partn(size, nbf_l, np, nbpart, iadg, srbuf, iflag)
subroutine spmd_iglob_partn(iad, nbpart, iadg, sbuf)
void write_i_c(int *w, int *len)