31 2 KSURF ,IGRSURF ,BUFSF,
33 4 NSC ,KSC ,NSP ,KSP ,
34 5 IMPACT,CIMP,NIMP,EW )
42#include
"implicit_f.inc"
50 INTEGER NSI, NSC, NSP, KSURF,
54 . x(3,*), bufsf(*), g, ksc(*), ksp(*),
55 . cimp(3,*),nimp(3,*),ew(*)
56 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
60 INTEGER ADRBUF, I, , IL
63 . XG, YG, ZG, A, B, C, ROT(9),
65 . trmx, trmy, trmz, trmxn, trmyn, trmzn,
69 adrbuf=igrsurf(ksurf)%IAD_BUFR
89 rot(i)=bufsf(adrbuf+7+i-1)
105#include "vectorize.inc"
111 trmx=rot(1)*xp+rot(2)*yp+rot(3)*zp
112 trmy=rot(4)*xp+rot(5)*yp+rot(6)*zp
113 trmz=rot(7)*xp+rot(8)*yp+rot(9)*zp
114 IF (impact(i)==0)
THEN
125 ew(in)=trmxn+trmyn+trmzn
126 ELSEIF (impact(i)>0)
THEN
128 ew(in)= nimp(1,i)*(trmx-cimp(1,i))
129 . +nimp(2,i)*(trmy-cimp(2,i))
130 . +nimp(3,i)*(trmz-cimp(3,i))
136 IF (impact(i)>0)
THEN
138 IF (ew(in) <= g)
THEN
149 IF (ew(in) <= hn)
THEN
subroutine i14can(nsi, ksi, x, ksurf, igrsurf, bufsf, g, nsc, ksc, nsp, ksp, impact, cimp, nimp, ew)