subroutine set_kicker_params(lat, kicker_params) use bmad use muon_mod use parameters_bmad implicit none type (lat_struct), target::lat type (kicker_params_struct) kicker_params type (branch_struct), pointer :: branch ! ring type (ele_struct), pointer :: ele type(all_pointer_struct) a_ptr integer i,ib integer kicker_id logical err logical err_flag real(rp) Delta_B do ib=0,ubound(lat%branch,1) branch=> lat%branch(ib) do i=1,branch%n_ele_max ele => branch%ele(i) if(ele%slave_status == super_slave$ .or. ele%slave_status == slice_slave$)ele => pointer_to_lord(ele,1) if( index(ele%name,'KICKER')/= 0 ) then call pointer_to_attribute(ele,'KICKER_ID', .false., a_ptr,err_flag) if(err_flag)then print *,' subroutine fields: line 151: KICKER_ID not found' stop endif kicker_id = a_ptr%r call set_ele_real_attribute (ele, 'KICKER_FIELD', kicker_params%kicker_field(kicker_id), err) call set_ele_real_attribute (ele, 'KICK_WIDTH', kicker_params%kick_width(kicker_id), err) call set_ele_real_attribute (ele, 'DTRISE_AND_FALL',kicker_params%dtRise(kicker_id), err) print '(a,es12.4)',ele%name, value_of_attribute (ele, 'KICKER_FIELD') end if end do end do return end subroutine set_kicker_params