34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "com01_c.inc"
42#include "com04_c.inc"
43#include "sphcom.inc"
44#include "param_c.inc"
45
46
47
48
49 INTEGER IADD(*),IPARG(NPARG,*),IXS(NIXS,*),
50 . MATER(*),EL2FA(*),IPARTS(*),
51 . INSPH,KXSP(NISP,*),IPARTSP(*),
52 . IXS10(6,*) ,IXS16(8,*) ,IXS20(12,*) ,NNSPH,
53 . ISPH3D,SHFT16,SHFTSPH ,NNSPHG
54
55
57 . off
58 INTEGER II(8),,NG, ITY, LFT, LLT, KPT, N, I, J,
59 . IPID, , IAD, , NFT, ,IALEL,MTN,
60 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,
61 . , K, INOD, ISOLNOD ,NNN,
62 . N9,N10,N11,N12,N13,N14,,N16
63
64
65 nn1 = 1
66 nn2 = 1
67 nn3 = nn2 + numels
68 nn4 = nn3 + isph3d*(numsph+maxpjet)
69 ie = 0
70
71
72
73 npar = 0
74 jj = 0
75
76 DO 100 iprt = 1 , npart
77
78 IF(mater(iprt)/=2) GOTO 100
79 npar = npar + 1
80 DO 90 ng=1,ngroup
81 nel =iparg(2,ng)
82 nft =iparg(3,ng)
83 iad =iparg(4,ng)
84 ity =iparg(5,ng)
85 isolnod = iparg(28,ng)
86 lft=1
87 llt=nel
88
89
90
91 nnn = insph + isph3d*nnsph
92 IF(ity==1.AND.isolnod==16)THEN
93 DO i=lft,llt
94 n = i + nft
95 j = n - numels8 - numels10 - numels20
96 n9 =ixs16(1,j)
97 IF( n9==0) n9=ixs(2,n)
98 n10=ixs16(2,j)
99 IF(n10==0)n10=ixs(3,n)
100 n11=ixs16(3,j)
101 IF(n11==0)n11=ixs(4,n)
102 n12=ixs16(4,j)
103 IF(n12==0)n12=ixs(5,n)
104 n13=ixs16(5,j)
105 IF(n13==0)n13=ixs(6,n)
106 n14=ixs16(6,j)
107 IF(n14==0)n14=ixs(7,n)
108 n15=ixs16(7,j)
109 IF(n15==0)n15=ixs(8,n)
110 n16=ixs16(8,j)
111 IF(n16==0)n16=ixs(9,n)
112 IF(iparts(n)==iprt) THEN
113 ii(1) = ixs(2,n) -1
114 ii(2) = n9 -1
115 ii(3) = nnn + 2*j-1 -1
116 ii(4) = n12 -1
117 ii(5) = ixs(6,n) -1
118 ii(6) = n13 -1
119 ii(7) = nnn + 2*j -1
120 ii(8) = n16 -1
122 ii(1) = n9 -1
123 ii(2) = ixs(3,n) -1
124 ii(3) = n10 -1
125 ii(4) = nnn + 2*j-1 -1
126 ii(5) = n13 -1
127 ii(6) = ixs(7,n) -1
128 ii(7) = n14 -1
129 ii(8) = nnn + 2*j -1
131 ii(1) = n12 -1
132 ii(2) = nnn + 2*j-1 -1
133 ii(3) = n11 -1
134 ii(4) = ixs(5,n)-1
135 ii(5) = n16 -1
136 ii(6) = nnn + 2*j -1
137 ii(7) = n15 -1
138 ii(8) = ixs(9,n)-1
140 ii(1) = nnn + 2*j-1 -1
141 ii(2) = n10 -1
142 ii(3) = ixs(4,n)-1
143 ii(4) = n11 -1
144 ii(5) = nnn + 2*j -1
145 ii(6) = n14 -1
146 ii(7) = ixs(8,n)-1
147 ii(8) = n15 -1
149 ie = ie + 1
150 el2fa(nn2+n) = ie
151
152
153 END IF
154 ENDDO
155
156
157
158 ELSEIF(ity==1)THEN
159 DO 10 i=lft,llt
160 n = i + nft
161 IF(iparts(n)/=iprt) GOTO 10
162 ii(1) = ixs(2,n)-1
163 ii(2) = ixs(3,n)-1
164 ii(3) = ixs(4,n)-1
165 ii(4) = ixs(5,n)-1
166 ii(5) = ixs(6,n)-1
167 ii(6) = ixs(7,n)-1
168 ii(7) = ixs(8,n)-1
169 ii(8) = ixs(9,n)-1
171 ie = ie + 1
172 el2fa(nn2+n) = ie
173 jj = jj + 8
174 10 CONTINUE
175 ELSEIF(isph3d==1.AND.ity==51)THEN
176
177
178
179 DO 20 i=lft,llt
180 n = i + nft
181 IF(ipartsp(n)/=iprt) GOTO 20
182 inod=kxsp(3,n)
183 ii(1) = insph+4*(n-1)+1
184 ii(2) = insph+4*(n-1)+2
185 ii(3) = insph+4*(n-1)
186 ii(4) = insph+4*(n-1)+1
187 ii(5) = insph+4*(n-1)+3
188 ii(6) = insph+4*(n-1)+2
189 ii(7) = insph+4*(n-1)+3
190 ii(8) = inod-1
192 ie = ie + 1
193 el2fa(nn3+n) = ie
194 jj = jj + 8
195 20 CONTINUE
196 ELSE
197 ENDIF
198 90 CONTINUE
199
200
201
202 iadd(npar) = ie
203 100 CONTINUE
204
205
206 RETURN
void write_i_c(int *w, int *len)