34
35
36
37#include "implicit_f.inc"
38
39
40#include "com01_c.inc"
41#include "com04_c.inc"
42#include "sphcom.inc"
43#include "param_c.inc"
44#include "task_c.inc"
45#include "spmd_c.inc"
46
47
48
49
50 INTEGER IPARG(NPARG,*),
51 . IXS(,*),EL2FA(*),INUM(*),
52 . NBF,IADG(NSPMD,*),KXSP(NISP,*)
53 INTEGER DD_IAD(NSPMD+1,*), IADD(*), NBPART,
54 . ISPH3D
55
56 INTEGER NG, ITY, LFT, LLT, N, I, J, NEL, IAD, NFT,
57 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10, ISOLNOD,
58 . BUF
59
60C
61 nn1 = 1
62 nn2 = 1
63 nn3 = nn2 + numels
64 nn4 = nn3 + isph3d*(numsph+maxpjet)
65 nn5 = nn4 + numelig3d
66
67 DO 490 ng=1,ngroup
68 nel =iparg(2,ng)
69 nft =iparg(3,ng)
70 iad =iparg(4,ng)
71 ity =iparg(5,ng)
72 isolnod = iparg(28,ng)
73 lft=1
74 llt=nel
75
76
77
78 IF(ity==1.AND.isolnod==16)THEN
79 DO i=lft,llt
80 n = i + nft
81 IF(el2fa(nn2+n)/=0)THEN
82 inum(el2fa(nn2+n)) = ixs(nixs,n)
83 inum(el2fa(nn2+n)+1) = ixs(nixs,n)
84 inum(el2fa(nn2+n)+2) = ixs(nixs,n)
85 inum(el2fa(nn2+n)+3) = ixs(nixs,n)
86 ENDIF
87 ENDDO
88
89
90
91 ELSEIF(ity==1)THEN
92 DO i=lft,llt
93 n = i + nft
94 IF(el2fa(nn2+n)/=0)THEN
95 inum(el2fa(nn2+n)) = ixs(nixs,n)
96 ENDIF
97 ENDDO
98 ELSEIF(isph3d==1.AND.ity==51)THEN
99
100
101
102 DO i=lft,llt
103 n = i + nft
104 IF(el2fa(nn3+n)/=0)THEN
105 inum(el2fa(nn3+n)) = kxsp(nisp,n)
106 ENDIF
107 ENDDO
108 ELSEIF(ity==101)THEN
109
110
111
112 DO i=lft,llt
113 n = i + nft
114 IF(el2fa(nn4+n)/=0)THEN
115 DO j=1,27
116 inum(el2fa(nn4+n)+j-1) = 1000000000 + 27*(n-1) + j
117 ENDDO
118 ENDIF
119 ENDDO
120 ELSE
121 ENDIF
122 490 CONTINUE
123
124 IF (nspmd == 1) THEN
126 ELSE
127
128 IF (ispmd==0) THEN
129 buf = numelsg + 3*numels16g + numsphg + 27* numelig3d
130 ELSE
131 buf = 1
132 ENDIF
133
135 ENDIF
136
137
138 RETURN
subroutine spmd_iget_partn(size, nbf_l, np, nbpart, iadg, srbuf, iflag)
void write_i_c(int *w, int *len)