30
31
32
33#include "implicit_f.inc"
34
35
36
37#include "param_c.inc"
38#include "com04_c.inc"
39
40
41
43 . rwbuf(nrwlp,*)
44 INTEGER NESCT,NERWL,NESBW,NNWL,
45 . NSTRF(*),NPRW(*),IXS(NIXS,*)
46
47
48
49 INTEGER J, I, K, K1, N, NSEG, N1, N2, N3, N4,NSEGC, NSEGTG,
50 . ITYP, KK,ITMP, K0, K5, K9
52 . xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3,
53 . xx4, yy4, zz4, d13, xxc, yyc, zzc
54 INTEGER NSEGS, POWER2(8),IPACK,
55 . II(8), N5, N6, N7, N8, K3
56 DATA power2/1,2,4,8,16,32,64,128/
57
58 IF (nsect>0) THEN
59 k0 = nstrf(25)
60 DO i=1,nsect
61 k5=k0+30+nstrf(k0+14)+nstrf(k0+6)
62 1 + 2*nstrf(k0+7) +nstrf(k0+8)*2
63 nsegc = nstrf(k0+9)
64 DO j=1,nsegc
65 kk = k5+2*(j-1)+1
66 IF(nstrf(kk)/=0) nesct = nesct + 1
67 ENDDO
68 k9=k5+2*nstrf(k0+9) +2*nstrf(k0+10)
69 1 +2*nstrf(k0+11)+2*nstrf(k0+12)
70 nsegtg = nstrf(k0+13)
71 DO j=1,nsegtg
72 kk = k9+2*(j-1)+1
73 IF(nstrf(kk)/=0) nesct = nesct + 1
74 ENDDO
75 k3=k0+30+nstrf(k0+14)+nstrf(k0+6)
76 nsegs=nstrf(k0+7)
77
78 IF(nsegs/=0) nesct = nesct + 1
79
80 DO j=1,nsegs
81 kk=k3+2*(j-1)
82 ipack=nstrf(kk+1)
83 IF(ipack/=0)THEN
84 n =nstrf(kk)
85 ii(1)=ixs(2,n)
86 ii(2)=ixs(3,n)
87 ii(3)=ixs(4,n)
88 ii(4)=ixs(5,n)
89 ii(5)=ixs(6,n)
90 ii(6)=ixs(7,n)
91 ii(7)=ixs(8,n)
92 ii(8)=ixs(9,n)
93 IF( ii(2)==ii(1).AND.ii(4)==ii(3)
94 . .AND.ii(8)==ii(5).AND.ii(7)==ii(6))THEN
95 n1=mod(ipack/power2(1),2)
96 n2=mod(ipack/power2(3),2)
97 n3=mod(ipack/power2(5),2)
98 n4=mod(ipack/power2(6),2)
99 IF(n1/=0.AND.n2/=0.AND.n3/=0)
100 . nesct = nesct + 1
101 IF(n1/=0.AND.n2/=0.AND.n4/=0)
102 . nesct = nesct + 1
103 IF(n2/=0.AND.n3/=0.AND.n4/=0)
104 . nesct = nesct + 1
105 IF(n3/=0.AND.n1/=0.AND.n4/=0)
106 . nesct = nesct + 1
107 ELSE
108 n1=mod(ipack/power2(1),2)
109 n2=mod(ipack/power2(2),2)
110 n3=mod(ipack/power2(3),2)
111 n4=mod(ipack/power2(4),2)
112 n5=mod(ipack/power2(5),2)
113 n6=mod(ipack/power2(6),2)
114 n7=mod(ipack/power2(7),2)
115 n8=mod(ipack/power2(8),2)
116 IF(n1/=0.AND.n2/=0.AND.n3/=0.AND.n4/=0)
117 . nesct = nesct + 1
118 IF(n5/=0.AND.n6/=0.AND.n7/=0.AND.n8/=0)
119 . nesct = nesct + 1
120 IF(n1/=0.AND.n5/=0.AND.n6/=0.AND.n2/=0)
121 . nesct = nesct + 1
122 IF(n4/=0.AND.n8/=0.AND.n7/=0.AND.n3/=0)
123 . nesct = nesct + 1
124 IF(n1/=0.AND.n4/=0.AND.n8/=0.AND.n5/=0)
125 . nesct = nesct + 1
126 IF(n2/=0.AND.n3/=0.AND.n7/=0.AND.n6/=0)
127 . nesct = nesct + 1
128 END IF
129 END IF
130 END DO
131 k0=nstrf(k0+24)
132 ENDDO
133 ENDIF
134
135 k=1
136 DO n=1,nrwall
137 n2=n +nrwall
138 n3=n2+nrwall
139 n4=n3+nrwall
140 ityp= nprw(n4)
141
142 IF(iabs(ityp)==1)THEN
143 nerwl = nerwl + 1 + 1
144 nnwl = nnwl + 4
145 ELSEIF(ityp==2)THEN
146 nerwl = nerwl + 24 + 1
147 nnwl = nnwl + 48
148 ELSEIF(ityp==3)THEN
149 nerwl = nerwl + 216 + 1
150 nnwl = nnwl + 294
151 ELSEIF(ityp==4)THEN
152 nerwl = nerwl + 1 + 1
153 nnwl = nnwl + 4
154 ENDIF
155 k=k+nprw(n)
156 IF(nprw(n4)==-1)k=k+nint(rwbuf(8,n))
157 ENDDO
158
159 nesbw = nesct + nerwl
160
161 RETURN