subroutine which_ibms_fiber(ibmsNum, orb, fiber, thickness) use bmad implicit none type (coord_struct) orb integer ibmsNum, fiber integer i real(rp) xfiber(1:16)/-0.0225,-0.0195,-0.0165,-0.0135,-0.0105,-0.0075,-0.0045,-0.0015,0.0015,0.0045,0.0075,0.0105,0.0135,0.0165,0.0195,0.0225/ real(rp) yfiber(-3:3)/-0.039,-0.026,-0.013,0.,0.013,0.026,0.039/ real(rp) radius/0.00025/ real(rp) delta real(rp) thickness ! initialize harp positions fiber = 0 thickness = 0 if(ibmsNum == 3)then do i=1,16 delta = orb%vec(1) - xfiber(i) if(abs(delta) < radius)then fiber = i thickness = 2*sqrt(radius**2 - delta**2) exit endif end do endif return end subroutine