subroutine set_inflector_params(lat,nbranch, inflector_angle) use bmad use muon_mod use parameters_bmad implicit none type (lat_struct) lat ! type (branch_struct), pointer:: branch ! ring type (ele_struct), pointer :: slave_ele, g2_ele, inf_ele type(ele_pointer_struct), allocatable:: eles(:) integer i integer ix integer nbranch integer n_loc real(rp) inflector_angle logical err !scale inflector grid call lat_ele_locator('INFLECTOR', lat, eles, n_loc, err) inf_ele => eles(1)%ele print *, 'inf_ele%grid_field(1)%field_scale = ', inf_ele%grid_field(1)%field_scale inf_ele%grid_field(1)%field_scale = -inflector_field call set_flags_for_changed_attribute(inf_ele, inf_ele%grid_field(1)%field_scale) call lat_ele_locator('G2', lat, eles, n_loc, err) g2_ele => eles(1)%ele g2_ele%value(x_pitch$) = inflector_angle g2_ele%value(x_offset$) = 0. call set_flags_for_changed_attribute(g2_ele, g2_ele%value(x_pitch$)) call set_flags_for_changed_attribute(g2_ele, g2_ele%value(x_offset$)) call lattice_bookkeeper(lat) print '(a,a,es12.4,a,es12.4)',inf_ele%name, ' inf_ele%grid_field(1)%field_scale = ', & inf_ele%grid_field(1)%field_scale print '(a,a,es12.4,a,es12.4)',g2_ele%name, ' g2_ele%value(x_pitch$) = ', & g2_ele%value(x_pitch$), ' g2_ele%value(x_offset$) = ', g2_ele%value(x_offset$) do ix = 1,inf_ele%n_slave slave_ele => pointer_to_slave(inf_ele,ix) print '(a,a,es12.4)',slave_ele%name, ' slave_ele%grid_field(1)%field_scale = ', & slave_ele%grid_field(1)%field_scale end do do ix = 1,g2_ele%n_slave slave_ele => pointer_to_slave(g2_ele,ix) print '(a,a,es12.4,a,es12.4)',slave_ele%name, ' slave_ele%value(x_pitch_tot$) = ', & slave_ele%value(x_pitch_tot$), ' slave_ele%value(x_offset_tot$) = ', slave_ele%value(x_offset_tot$) end do print * return end