*get,prkey_,active,0,prkey
/nopr
acs_=arg1
compdir_=arg2
cm,kpset_,kp
*get,arr1typ_,parm,totkpd_,type
*get,arr2typ_,parm,kpd_,type
*if,arr1typ_,eq,1,then
*set,totkpd_(1),
*endif
*if,arr2typ_,eq,1,then
*set,kpd_(1),
*endif
*get,comptyp_,parm,compdir_,type
*if,comptyp_,ne,3,then
compdir_='r'
*endif
*get,actcs_,active,,csys
csys,acs_
*get,acstyp_,cdsy,acs_,attr,kcs
*if,acstyp_,ne,0,then
create_cs,0,,0,0,0,0,0,0,0
*endif
entity_array,'k','totkpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kx_=kx(totkpd_(ijk_,1))
ky_=ky(totkpd_(ijk_,1))
kz_=kz(totkpd_(ijk_,1))
kdmax_=sqrt((kx_**2)+(ky_**2)+(kz_**2))
totkpd_(ijk_,2)=kdmax_
*enddo
max_value,'totkpd_',kpcnt_,2,1,1,1,2,1
max_dist=max_val
kp_maxd=totkpd_(max_indx,1)
*if,compdir_,eq,'+x',then
cmsel,s,kpset_
ksel,r,loc,x,0,1.1*max_dist
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=kx(kpd_(ijk_,1))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'+y',then
cmsel,s,kpset_
ksel,r,loc,y,0,1.1*max_dist
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=ky(kpd_(ijk_,1))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'+z',then
cmsel,s,kpset_
ksel,r,loc,z,0,1.1*max_dist
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=kz(kpd_(ijk_,1))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'-x',then
cmsel,s,kpset_
ksel,r,loc,x,-1.1*max_dist,0
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=abs(kx(kpd_(ijk_,1)))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'-y',then
cmsel,s,kpset_
ksel,r,loc,y,-1.1*max_dist,0
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=abs(ky(kpd_(ijk_,1)))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'-z',then
cmsel,s,kpset_
ksel,r,loc,z,-1.1*max_dist,0
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=abs(kz(kpd_(ijk_,1)))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'x',then
cmsel,s,kpset_
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=abs(kx(kpd_(ijk_,1)))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'y',then
cmsel,s,kpset_
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=abs(ky(kpd_(ijk_,1)))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*elseif,compdir_,eq,'z',then
cmsel,s,kpset_
*get,kpcnt_,kp,,count
*if,kpcnt_,ge,1,then
entity_array,'k','kpd_','array',1,,2,1
kpcnt_=ecount
*do,ijk_,1,kpcnt_,1
kdmax_=abs(kz(kpd_(ijk_,1)))
kpd_(ijk_,2)=kdmax_
*enddo
*endif
*endif
*if,compdir_,ne,'r',then
*if,kpcnt_,ge,1,then
*set,totkpd_(1),
max_value,'kpd_',kpcnt_,2,1,1,1,2,1
max_dist=max_val
kp_maxd=kpd_(max_indx,1)
*else
max_dist=0
kp_maxd=0
*endif
*endif
cmsel,s,kpset_
csys,actcs_
*set,acs_,
*set,actcs_,
*set,compdir_,
*set,ecount,
*set,max_val,
*set,arr1typ_,
*set,arr2typ_,
*set,kdmax_,
*set,kpcnt_,
*set,kx_,
*set,ky_,
*set,kz_,
cmdele,kpset_
*if,prkey_,eq,1,then
/go
*endif