module bpm_interface interface subroutine integrate_charge(theta1, theta2, q, theta, pt, button) use precision_def implicit none real(rp) theta1, theta2, button real(rp) q(:), theta(:) logical pt(:) end subroutine end interface interface subroutine setup_elliptical_grid(grid,bpm,np) use precision_def use bpm_mod implicit none integer np type (grid_struct), allocatable :: grid(:) type (bpm_geometry_struct) bpm end subroutine end interface interface subroutine setup_extrusion_grid(grid,bpm,np, wire_radius) use precision_def use bpm_mod implicit none integer np type (grid_struct), allocatable :: grid(:) type (bpm_geometry_struct) bpm real(rp) wire_radius end subroutine end interface interface subroutine setup_l3bpm_grid(grid,bpm,np, wire_radius) use precision_def use bpm_mod implicit none integer np type (grid_struct), allocatable :: grid(:) type (bpm_geometry_struct) bpm real(rp) wire_radius end subroutine end interface end module