!+ ! Subroutine bmad_remove_element (ix_lat, ix_ele, c_err) ! ! Routine to remove an element from the lattice. ! ! Input: ! ix_lat -- Integer: Index of lattice to place the element in. ! ix_ele -- Integer: Element index. ! ! Output: ! c_err -- C_logical: Set True if there is an error. False otherwise. !- subroutine bmad_remove_element (ix_lat, ix_ele, c_err) use bmad_common_mod use superimpose_mod implicit none type (ele_struct), pointer :: ele type (lat_struct), pointer :: lat integer ix_lat, ix_ele logical(c_bool) c_err logical err_flag character(20), parameter :: r_name = 'bmad_remove_element' ! c_err = c_logic(.true.) call bmad_set_lat_pointer (err_flag, r_name, ix_lat, lat, ix_ele, ele, can_be_in_init = .true.) if (err_flag) return if (lat_status(ix_lat) /= in_init$) then call out_io (s_error$, r_name, "Element removal attempted outside of init stage for lat \i0\ ", ix_lat) return endif ele%key = -1 call remove_eles_from_lat(lat, .false.) c_err = c_logic(.false.) end subroutine