32
33
34
35#include "implicit_f.inc"
36
37
38
39#include "com04_c.inc"
40#include "param_c.inc"
41
42
43
44 INTEGER NESBW,NSTRF(*),IXC(NIXC,*),IXTG(NIXTG,*),
45 . NODCUT,NPRW(*), IXS(NIXS,*)
47 . x(3,*),rwbuf(nrwlp,*)
48
49
50
51 INTEGER J, JJ, LEN, I, K, L, KK, K0, K1, K5, K9, N,
52 . N0, N1, N2, N3, N4, N10, NSEG, NSEGC, NSEGTG, ITYP,
53 . UNPACK(15,4), II(8), N5, N6, N7
55 . xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3,
56 . xx4, yy4, zz4, d13, xxc, yyc, zzc
57 INTEGER POWER2(8),IPACK
58 DATA power2/1,2,4,8,16,32,64,128/
59
60 DATA unpack
61 . 0,0,2,0,3,3,2,0,4,4,2,4,3,3,2,
62 . 0,0,0,0,0,0,3,0,0,0,4,0,4,4,3,
63 . 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4/
64 IF (nsect>0) THEN
65 k0 = nstrf(25)
66 DO i=1,nsect
67 jj = 0
68 n0 = numnod + nodcut + i - 1
69 k5=k0+30+nstrf(k0+14)+nstrf(k0+6)
70 1 + 2*nstrf(k0+7) +nstrf(k0+8)*2
71 nsegc = nstrf(k0+9)
72
73 DO j=1,nsegc
74 kk = k5+2*(j-1)
75 n = nstrf(kk)
76 IF(nstrf(kk+1)/=0) THEN
77 n1 = unpack(nstrf(kk+1),1)
78 n2 = unpack(nstrf(kk+1),2)
79 IF(n2==0)THEN
80 n2 = n1
81 n3 = n1
82 ELSE
83 n3 = unpack(nstrf(kk+1),3)
84 IF(n3==0)n3 = n2
85 ENDIF
86 ii(1) = n0
87 ii(2) = ixc(1+n1,n)-1
88 ii(3) = ixc(1+n2,n)-1
89 ii(4) = ixc(1+n3,n)-1
91 ENDIF
92 ENDDO
93 jj = 0
94 k9=k5+2*nstrf(k0+9) +2*nstrf(k0+10)
95 1 +2*nstrf(k0+11)+2*nstrf(k0+12)
96 nsegtg = nstrf(k0+13)
97 DO j=1,nsegtg
98 kk = k9+2*(j-1)
99 n = nstrf(kk)
100 IF(nstrf(kk+1)/=0) THEN
101 n1 = unpack(nstrf(1+kk),1)
102 n2 = unpack(nstrf(1+kk),2)
103 IF(n2==0)THEN
104 n2 = n1
105 n3 = n1
106 ELSE
107 n3 = unpack(nstrf(1+kk),3)
108 IF(n3==0)n3 = n2
109 ENDIF
110 ii(1) = n0
111 ii(2) = ixtg(1+n1,n)-1
112 ii(3) = ixtg(1+n2,n)-1
113 ii(4) = ixtg(1+n3,n)-1
115 ENDIF
116 ENDDO
117 jj = 0
118 k3=k0+30+nstrf(k0+14)+nstrf(k0+6)
119 nsegs=nstrf(k0+7)
120 IF(nsegs/=0)THEN
121 ii(1) = n0
122 ii(2) = n0
123 ii(3) = n0
124 ii(4) = n0
126 END IF
127
128 DO j=1,nsegs
129 kk=k3+2*(j-1)
130 ipack=nstrf(kk+1)
131 IF(ipack/=0)THEN
132 n =nstrf(kk)
133 ii(1)=ixs(2,n)-1
134 ii(2)=ixs(3,n)-1
135 ii(3)=ixs(4,n)-1
136 ii(4)=ixs(5,n)-1
137 ii(5)=ixs(6,n)-1
138 ii(6)=ixs(7,n)-1
139 ii(7)=ixs(8,n)-1
140 ii(8)=ixs(9,n)-1
141 IF( ii(2)==ii(1).AND.ii(4)==ii(3)
142 . .AND.ii(8)==ii(5).AND.ii(7)==ii(6))THEN
143
144 n1=mod(ipack/power2(1),2)
145 n2=mod(ipack/power2(3),2)
146 n3=mod(ipack/power2(5),2)
147 n4=mod(ipack/power2(6),2)
148 IF(n1/=0.AND.n2/=0.AND.n3/=0)THEN
153 END IF
154 IF(n1/=0.AND.n2/=0.AND.n4/=0)THEN
159 END IF
160 IF(n2/=0.AND.n3/=0.AND.n4/=0)THEN
165 END IF
166 IF(n3/=0.AND.n1/=0.AND.n4/=0)THEN
171 END IF
172 ELSE
173
174 n1=mod(ipack/power2(1),2)
175 n2=mod(ipack/power2(2),2)
176 n3=mod(ipack/power2(3),2)
177 n4=mod(ipack/power2(4),2)
178 n5=mod(ipack/power2(5),2)
179 n6=mod(ipack/power2(6),2)
180 n7=mod(ipack/power2(7),2)
181 n8=mod(ipack/power2(8),2)
182 IF(n1/=0.AND.n2/=0.AND.n3/=0.AND.n4/=0)THEN
187 END IF
188 IF(n5/=0.AND.n6/=0.AND.n7/=0.AND.n8/=0)THEN
193 END IF
194 IF(n1/=0.AND.n5/=0.AND.n6/=0.AND.n2/=0)THEN
199 END IF
200 IF(n4/=0.AND.n8/=0.AND.n7/=0.AND.n3/=0)THEN
205 END IF
206 IF(n1/=0.AND.n4/=0.AND.n8/=0.AND.n5/=0)THEN
211 END IF
212 IF(n2/=0.AND.n3/=0.AND.n7/=0.AND.n6/=0)THEN
217 END IF
218 END IF
219 END IF
220 END DO
221
222 k0=nstrf(k0+24)
223 ENDDO
224 ENDIF
225
226 n0 = numnod + nodcut + nsect
227 n1 = numnod + nodcut + nsect + nrwall
228
229 DO n=1,nrwall
230 ii(1) = n0
231 ii(2) = n0
232 ii(3) = n0
233 ii(4) = n0
235 n0 = n0 + 1
236 k=1
237 n2=n +nrwall
238 n3=n2+nrwall
239 n4=n3+nrwall
240 ityp= nprw(n4)
241
242 IF(iabs(ityp)==1.OR.ityp==4)THEN
243 ii(1) = n1
244 ii(2) = n1 + 3
245 ii(3) = n1 + 2
246 ii(4) = n1 + 1
248 n1 = n1 + 4
249 ELSEIF(ityp==2)THEN
250 n10 = n1
251 DO j = 1,23
252 ii(1) = n1
253 ii(2) = n1 + 2
254 ii(3) = n1 + 3
255 ii(4) = n1 + 1
257 n1 = n1 + 2
258 ENDDO
259 ii(1) = n1
260 ii(2) = n10
261 ii(3) = n10 + 1
262 ii(4) = n1 + 1
264 n1 = n1 + 2
265 ELSEIF(ityp==3)THEN
266 DO i = 1,6
267 DO j = 1,6
268 DO l = 1,6
269 ii(1) = n1
270 ii(2) = n1 + 1
271 ii(3) = n1 + 8
272 ii(4) = n1 + 7
274 n1 = n1 + 1
275 ENDDO
276
277 ENDDO
278 n1 = n1 + 7
279 ENDDO
280 ENDIF
281 k=k+nprw(n)
282 IF(nprw(n4)==-1)k=k+nint(rwbuf(8,n))
283 ENDDO
284
285 RETURN
void write_i_c(int *w, int *len)