30 SUBROUTINE i15can(NSI ,KSI ,X ,KSURF ,IGRSURF ,
31 2 BUFSF ,NSC ,KSC ,NTC , KTC ,
40#include "implicit_f.inc"
48 INTEGER NSI, NSC, NTC, KSURF, KSI(4,*),
49 . IACTIV(*),KSC(*), KTC(*)
53 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
57 INTEGER ADRBUF, I, IN1, IN2, IN3, IN4
60 . xm, ym, zm, xg, yg, zg, a, b, c, rot(9),
62 . xlmin, xlmax, ylmin, ylmax, zlmin, zlmax,
63 . xgmin, xgmax, ygmin, ygmax, zgmin, zgmax,
68 . xrmin, xrmax, yrmin, yrmax, zrmin, zrmax
70 adrbuf=igrsurf(ksurf)%IAD_BUFR
86 rot(i)=bufsf(adrbuf+7+i-1)
96 xgmin=rot(1)*xlmin+rot(4)*ylmin+rot(7)*zlmin
97 ygmin=rot(2)*xlmin+rot(5)*ylmin+rot(8)*zlmin
98 zgmin=rot(3)*xlmin+rot(6)*ylmin+rot(9)*zlmin
102 xg =rot(1)*xlmax+rot(4)*ylmin+rot(7)*zlmin
103 yg =rot(2)*xlmax+rot(5)*ylmin+rot(8)*zlmin
104 zg =rot(3)*xlmax+rot(6)*ylmin+rot(9)*zlmin
105 IF (xg<xgmin) xgmin=xg
106 IF (xg>xgmax) xgmax=xg
107 IF (yg<ygmin) ygmin=yg
108 IF (yg>ygmax) ygmax=yg
109 IF (zg<zgmin) zgmin=zg
110 IF (zg>zgmax) zgmax=zg
111 xg =rot(1)*xlmin+rot(4)*ylmax+rot(7)*zlmin
112 yg =rot(2)*xlmin+rot(5)*ylmax+rot(8)*zlmin
113 zg =rot(3)*xlmin+rot(6)*ylmax+rot(9)*zlmin
114 IF (xg<xgmin) xgmin=xg
115 IF (xg>xgmax) xgmax=xg
116 IF (yg<ygmin) ygmin=yg
117 IF (yg>ygmax) ygmax=yg
118 IF (zg<zgmin) zgmin=zg
119 IF (zg>zgmax) zgmax=zg
120 xg =rot(1)*xlmin+rot(4)*ylmin+rot(7)*zlmax
121 yg =rot(2)*xlmin+rot(5)*ylmin+rot(8)*zlmax
122 zg =rot(3)*xlmin+rot(6)*ylmin+rot(9)*zlmax
123 IF (xg<xgmin) xgmin=xg
124 IF (xg>xgmax) xgmax=xg
125 IF (yg<ygmin) ygmin=yg
126 IF (yg>ygmax) ygmax=yg
127 IF (zg<zgmin) zgmin=zg
128 IF (zg>zgmax) zgmax=zg
129 xg =rot(1)*xlmax+rot(4)*ylmax+rot(7)*zlmin
130 yg =rot(2)*xlmax+rot(5)*ylmax+rot(8)*zlmin
131 zg =rot(3)*xlmax+rot(6)*ylmax+rot(9)*zlmin
132 IF (xg<xgmin) xgmin=xg
133 IF (xg>xgmax) xgmax=xg
134 IF (yg<ygmin) ygmin=yg
135 IF (yg>ygmax) ygmax=yg
136 IF (zg<zgmin) zgmin=zg
137 IF (zg>zgmax) zgmax=zg
138 xg =rot(1)*xlmax+rot(4)*ylmin+rot(7)*zlmax
139 yg =rot(2)*xlmax+rot(5)*ylmin+rot(8)*zlmax
140 zg =rot(3)*xlmax+rot(6)*ylmin+rot(9)*zlmax
141 IF (xg<xgmin) xgmin=xg
142 IF (xg>xgmax) xgmax=xg
143 IF (yg<ygmin) ygmin=yg
144 IF (yg>ygmax) ygmax=yg
145 IF (zg<zgmin) zgmin=zg
146 IF (zg>zgmax) zgmax=zg
147 xg =rot(1)*xlmin+rot(4)*ylmax+rot(7)*zlmax
148 yg =rot(2)*xlmin+rot(5)*ylmax+rot(8)*zlmax
149 zg =rot(3)*xlmin+rot(6)*ylmax+rot(9)*zlmax
150 IF (xg<xgmin) xgmin=xg
151 IF (xg>xgmax) xgmax=xg
152 IF (yg<ygmin) ygmin=yg
153 IF (yg>ygmax) ygmax=yg
155 IF (zg>zgmax) zgmax=zg
156 xg =rot(1)*xlmax+rot(4)*ylmax+rot(7)*zlmax
157 yg =rot(2)*xlmax+rot(5)*ylmax+rot(8)*zlmax
158 zg =rot(3)*xlmax+rot(6)*ylmax+rot(9)*zlmax
159 IF (xg<xgmin) xgmin=xg
160 IF (xg>xgmax) xgmax=xg
161 IF (yg<ygmin) ygmin=yg
162 IF (yg>ygmax) ygmax=yg
163 IF (zg<zgmin) zgmin=zg
164 IF (zg>zgmax) zgmax=zg
170 IF (iactiv(i)==-1)
GOTO 110
194 IF (x2<xrmin) xrmin=x2
196 IF (y2<yrmin) yrmin=y2
197 IF (y2>yrmax) yrmax=y2
198 IF (z2<zrmin) zrmin=z2
199 IF (z2>zrmax) zrmax=z2
200 IF (x3<xrmin) xrmin=x3
201 IF (x3>xrmax) xrmax=x3
202 IF (y3<yrmin) yrmin=y3
203 IF (y3>yrmax) yrmax=y3
204 IF (z3<zrmin) zrmin=z3
205 IF (z3>zrmax) zrmax=z3
206 IF (x4<xrmin) xrmin=x4
207 IF (x4>xrmax) xrmax=x4
208 IF (y4<yrmin) yrmin=y4
209 IF (y4>yrmax) yrmax=y4
210 IF (z4<zrmin) zrmin=z4
211 IF (z4>zrmax) zrmax=z4
212 IF ( .NOT.( xrmax<xgmin.OR.xrmin>xgmax
213 . .OR.yrmax<ygmin.OR.yrmin>ygmax
214 . .OR.zrmax<zgmin.OR.zrmin>zgmax) )
THEN
228 IF (x2<xrmin) xrmin=x2
229 IF (x2>xrmax) xrmax=x2
230 IF (y2<yrmin) yrmin=y2
231 IF (y2>yrmax) yrmax=y2
232 IF (z2<zrmin) zrmin=z2
233 IF (z2>zrmax) zrmax=z2
234 IF (x3<xrmin) xrmin=x3
235 IF (x3>xrmax) xrmax=x3
236 IF (y3<yrmin) yrmin=y3
237 IF (y3>yrmax) yrmax=y3
238 IF (z3<zrmin) zrmin=z3
239 IF (z3>zrmax) zrmax=z3
240 IF ( .NOT.( xrmax<xgmin.OR.xrmin>xgmax
241 . .OR.yrmax<ygmin.OR.yrmin>ygmax
242 . .OR.zrmax<zgmin.OR.zrmin>zgmax) )
THEN