module da_interface interface subroutine init_phase_space(ele,emitx,emity,emitz,co, i_dim) use bmad implicit none ! type(lat_struct) lat type(ele_struct) ele type(coord_struct), allocatable:: co(:) real(rp) emitx, emity, emitz integer i_dim end subroutine end interface interface subroutine compute_ft_matrix(lat,ref_orbit,emitx,emity,emitz,ix_start, ix_end,co,i_dim,full_turn,M,x_co) use bmad use nr implicit none type (lat_struct) lat type(coord_struct), allocatable:: co(:), orbit(:), ref_orbit(:) type(coord_struct) x_co real(rp), allocatable :: X_in(:,:), X_out(:,:), a(:,:),b(:,:),J(:,:), temp(:,:) real(rp), allocatable :: P(:,:), M(:,:) real(rp) emitx, emity, emitz integer i, i_dim, n integer ix_start, ix_end logical full_turn end subroutine end interface interface subroutine measure_ft(M,det,tune) use bmad implicit none real(rp), allocatable:: M(:,:) real(rp) det, tune(3) end subroutine end interface interface subroutine osc_parameters(lat, ix_start,ix_end, co, osc_param, verbose) use bmad use da_mod implicit none type (lat_struct) lat type (coord_struct), allocatable :: co(:) type (osc_param_struct) osc_param integer ix_start, ix_end logical verbose end subroutine osc_parameters end interface interface subroutine nonlin_map_calc(lat,ix_start, ix_end, emitx,emity,emitz, ref_orbit, det, ft_matrix) use bmad implicit none type (lat_struct) lat type(coord_struct), allocatable:: ref_orbit(:) real(rp), allocatable :: ft_matrix(:,:) real(rp) emitx,emity,emitz, det, tune(3) integer ix_start, ix_end end subroutine nonlin_map_calc end interface interface subroutine check_bypass_linearity(lat,orbit,mode, ix_start, ix_end, osc_param) use bmad use beam_mod use da_mod implicit none type (lat_struct) lat type(coord_struct), allocatable :: orbit(:) type (osc_param_struct) osc_param type (normal_modes_struct) mode integer ix_start, ix_end end subroutine check_bypass_linearity end interface end module da_interface