subroutine update_ele(value, lat, ix_ele, attrib, num) use bmad use precision_def implicit none type (lat_struct) lat type (all_pointer_struct) :: p_attrib real(rp) value integer ix_ele, attrib integer i, ix integer num integer ixx, len_ele character*40 ele_name logical err_flag ! ele_name = lat%ele(ix_ele)%name call string_trim(ele_name, ele_name, ix) len_ele = len(ele_name) num = 0 do i = 1, lat%n_ele_track ixx = len(lat%ele(i)%name) if(lat%ele(i)%name(1:ixx) == ele_name(1:ixx) .and. ixx == len_ele)then call pointer_to_indexed_attribute (lat%ele(i), attrib, .true., p_attrib, err_flag) p_attrib%r = value num = num +1 endif end do return end subroutine update_ele