diff --git a/bmad/code/em_field_calc.f90 b/bmad/code/em_field_calc.f90 index 227b2dd01..93ade6ba0 100644 --- a/bmad/code/em_field_calc.f90 +++ b/bmad/code/em_field_calc.f90 @@ -1,5 +1,5 @@ !+ -! Subroutine em_field_calc (ele, param, s_pos, orbit, local_ref_frame, field, calc_dfield, err_flag, & +! Subroutine em_field_calc (ele, param, s_pos, orbit, local_ref_frame, field, calc_dfield, err_flag, ! calc_potential, use_overlap, grid_allow_s_out_of_bounds, rf_time, used_eles, print_err) ! ! Routine to calculate the E and B fields at a particular place in an element. @@ -653,9 +653,9 @@ recursive subroutine em_field_calc (ele, param, s_pos, orbit, local_ref_frame, f do i = 0, ix_pole_max if (a_pole(i) == 0 .and. b_pole(i) == 0) cycle if (do_df_calc) then - call ab_multipole_kick(a_pole(i), b_pole(i), i, local_orb%species, 0, local_orb, kx, ky, dkm) + call ab_multipole_kick(a_pole(i), b_pole(i), i, ele%ref_species, 0, local_orb, kx, ky, dkm) else - call ab_multipole_kick(a_pole(i), b_pole(i), i, local_orb%species, 0, local_orb, kx, ky) + call ab_multipole_kick(a_pole(i), b_pole(i), i, ele%ref_species, 0, local_orb, kx, ky) endif field%B(1) = field%B(1) + f_p0c * ky / ele%value(l$) field%B(2) = field%B(2) - f_p0c * kx / ele%value(l$) @@ -1378,7 +1378,7 @@ recursive subroutine em_field_calc (ele, param, s_pos, orbit, local_ref_frame, f if (logic_option(.false., calc_potential)) then if (r /= 0) then - abs_tol = abs(1e-10_rp * r * orbit%p0c * (1 + orbit%vec(6)) / (c_light * charge_of(orbit%species))) + abs_tol = abs(1e-10_rp * r * orbit%p0c * (1 + orbit%vec(6)) / (c_light * charge_of(ele%ref_species))) inte = super_qromb(rb_field, 0.0_rp, r, 1e-12_rp, abs_tol, 2, err) / r field%A(1:2) = field%A(1:2) + inte * [-y, x] / r endif diff --git a/bmad/code/offset_particle.f90 b/bmad/code/offset_particle.f90 index 7729dd7e5..bfb16c624 100644 --- a/bmad/code/offset_particle.f90 +++ b/bmad/code/offset_particle.f90 @@ -154,10 +154,10 @@ subroutine offset_particle (ele, set, orbit, set_tilt, set_hvkicks, drift_to_edg rel_p = (1 + orbit%vec(6)) -rel_tracking_charge = rel_tracking_charge_to_mass (orbit, ele%ref_species) -charge_dir = rel_tracking_charge * sign_z_vel * orbit%time_dir - if (set_hv) then + rel_tracking_charge = rel_tracking_charge_to_mass (orbit, ele%ref_species) + charge_dir = rel_tracking_charge * sign_z_vel * orbit%time_dir + select case (ele%key) case (elseparator$, kicker$, hkicker$, vkicker$) set_hv1 = .false. diff --git a/tao/code/tao_locate_all_elements.f90 b/tao/code/tao_locate_all_elements.f90 index 6a084ea39..fb14e3b01 100644 --- a/tao/code/tao_locate_all_elements.f90 +++ b/tao/code/tao_locate_all_elements.f90 @@ -8,7 +8,7 @@ ! Input: ! ele_list -- Character(*): String with element names using element list format. ! ignore_blank -- Logical, optional: If present and true then do nothing if -! ele_list is blank. otherwise treated as an error. +! ele_list is blank. otherwise a blank is treated as an error. ! ! Output: ! eles -- ele_pointer_struct(:), allocatable: Array of elements in the model lat. diff --git a/tao/code/tao_write_cmd.f90 b/tao/code/tao_write_cmd.f90 index cd2973158..594c39472 100644 --- a/tao/code/tao_write_cmd.f90 +++ b/tao/code/tao_write_cmd.f90 @@ -33,7 +33,9 @@ subroutine tao_write_cmd (what) type (branch_struct), pointer :: branch type (ele_pointer_struct), allocatable :: eles(:) type (ele_struct), pointer :: ele +type (lat_param_struct), pointer :: param type (coord_struct), pointer :: p +type (coord_struct) :: orbit type (tao_d2_data_struct), pointer :: d2 type (tao_d1_data_struct), pointer :: d1 type (tao_data_struct), pointer :: dat @@ -43,6 +45,7 @@ subroutine tao_write_cmd (what) type (bunch_track_struct), pointer :: bunch_params_comb(:) type (bunch_track_struct), pointer :: comb1 type (bunch_params_struct), pointer :: bpt +type (em_field_struct) field real(rp) scale, mat6(6,6) real(rp), allocatable :: values(:) @@ -57,7 +60,7 @@ subroutine tao_write_cmd (what) character(200) :: word(40) character(*), parameter :: r_name = 'tao_write_cmd' -real(rp) dr(3), r_max(3), r_min(3) +real(rp) dr(3), r_max(3), r_min(3), rr(3) integer i, j, k, m, n, ie, ic, id, ix, iu, nd, ii, i_uni, ib, ip, ios, loc, iy, iz integer n_max(3), n_min(3), i_chan, ix_beam, ix_word, ix_w2, file_format @@ -519,6 +522,7 @@ subroutine tao_write_cmd (what) n_min = int_garbage$ n_max = int_garbage$ file_name = '' + ix_word = 0 do ix_word = ix_word + 1 @@ -557,7 +561,7 @@ subroutine tao_write_cmd (what) endif if (r_max(1) /= real_garbage$ .and. r_min(1) == real_garbage$) r_min = [-r_max(1), -r_max(2), 0.0_rp] - if (n_max(1) /= real_garbage$ .and. n_min(1) == real_garbage$) n_min = [-n_max(1), -n_max(2), 0] + if (n_max(1) /= int_garbage$ .and. n_min(1) == int_garbage$) n_min = [-n_max(1), -n_max(2), 0] if (r_max(1) == real_garbage$) then r_max = n_max * dr @@ -569,19 +573,43 @@ subroutine tao_write_cmd (what) dr = (r_max - r_min) / (n_max - n_min) endif - call tao_locate_elements(ele_name, -2, eles, err) + call tao_locate_elements (ele_name, s%global%default_universe, eles, err) if (err) return if (size(eles) > 1) then - call out_io(s_error$, r_name, 'ELEMENT NAME MATCHES TO MULTIPLE ELEMENTS: ' // ele_name) - return + call out_io(s_warn$, r_name, 'Element name matches to multiple elements: ' // ele_name, 'Will use first one.') elseif (size(eles) == 0) then call out_io(s_error$, r_name, 'ELEMENT NAME DOES NOT MATCH TO ANY ELEMENTS: ' // ele_name) return endif - do + ele => eles(1)%ele + + ! + open (iu, file = file_name) + write (iu, '(9a)') '# ele = ', quote(ele%name) + write (iu, '(9a)') '# nx = [', int_str(n_min(1)), ', ', int_str(n_max(1)), ']' + write (iu, '(9a)') '# ny = [', int_str(n_min(2)), ', ', int_str(n_max(2)), ']' + write (iu, '(9a)') '# nz = [', int_str(n_min(3)), ', ', int_str(n_max(3)), ']' + write (iu, '(9a)') '# rx = [', real_str(r_min(1)), ', ', real_str(r_max(1)), ']' + write (iu, '(9a)') '# ry = [', real_str(r_min(2)), ', ', real_str(r_max(2)), ']' + write (iu, '(9a)') '# rz = [', real_str(r_min(3)), ', ', real_str(r_max(3)), ']' + write (iu, '(9a)') '# dr = [', real_str(dr(1)), ', ', real_str(dr(2)), ', ', real_str(dr(3)), ']' + write (iu, '(9a)') '##' + write (iu, '(9a)') '## x y z Bx By Bz' + + branch => pointer_to_branch(ele) + + do ix = n_min(1), n_max(1) + do iy = n_min(2), n_max(2) + do iz = n_min(3), n_max(3) + rr = [ix, iy, iz] * dr + orbit%vec(1:3:2) = rr(1:2) + call em_field_calc(ele, branch%param, rr(3), orbit, .false., field) + write (iu, '(3f12.6, 3es20.11)') rr, field%b + enddo + enddo enddo !--------------------------------------------------- diff --git a/tao/doc/command-list.tex b/tao/doc/command-list.tex index ff1350ffd..43d4d23cf 100644 --- a/tao/doc/command-list.tex +++ b/tao/doc/command-list.tex @@ -3846,6 +3846,7 @@ \section{write}\index{commands!write} write derivative_matrix ... ! \sref{s:write.deriv.matrix} write digested ... ! \sref{s:write.digested} write elegant ... ! \sref{s:write.elegant} + write field ... ! \sref{s:write.field write gif ... ! \sref{s:write.gif} write hard ! \sref{s:write.hard} write mad8 ... ! \sref{s:write.mad8} @@ -4077,6 +4078,48 @@ \subsection{write elegant} Write a lattice file in \vn{Elegant} format. The default file name is \vn{lat_\#.lte} where \vn{\#} is replaced by the universe number. +%% write field -------------------------------------------------------------- + +\subsection{write field} +\label{s:write.field} + +The \vn{write field} command creates a file with a table of magnetic field values for a given lattice +element. Syntax: +\begin{example} + write field \{-nmax , \} \{-nmin , \} + \{-rmax , \} \{-rmin , \} + \{-dr \} -ele \{\} +\end{example} + +The default file name is \vn{field.dat}. + +The fiducial point for the grid is the coordinates at the entrance end of the the lattice element +given by the \vn{-ele} switch. Laboratory (not body) coordinates are used. + +The field grid indexes runs from \vn{nx_min} to \vn{nx_max} for $x$, +etc. The distance between points is set with the \vn{-dr} switch and the extent of the grid is set +by \vn{-rmin} and \vn{rmax} switches. + +If \vn{-nmin} is present, so must \vn{-nmax} be present. If \vn{-nmin} is not present but \vn{-nmax} +is, the default values for \vn{-nmin} are [-nx_max, -ny_max, 0]. + +If \vn{-rmin} is present, so must \vn{-rmax} be present. If \vn{-rmin} is not present but \vn{-rmax} +is, the default values for \vn{-rmin} are [-rx_max, -ry_max, 0]. + +\vn{-dr}, \vn{-nmax}, and \vn{-rmax} values are interdependent. For example: +\begin{example} + rx_max = nx_max * dr_x +\end{example} +Given this, exactly two of the three needs to be present. + +Examples: +\begin{example} + write field -ele Q1 -dr 0.01 0.02 0.05 -nmax 30 20, 200 + write field -ele Q1 -dr 0.01 0.02 0.05 -rmax 0.3 0.4 10.0 ! Same as above +\end{example} +The above examples both specify the same grid which will have an index range in $x$ of $[-30, 30]$, +ana range in $y$ of $[-20, 20]$, + %% write gif -------------------------------------------------------------- \subsection{write gif} diff --git a/tao/searchf.namelist b/tao/searchf.namelist deleted file mode 100644 index d70f637be..000000000 --- a/tao/searchf.namelist +++ /dev/null @@ -1,871 +0,0 @@ - -File: code/tao_abort_command_file.f90 -tao_abort_command_file - -File: code/tao_alias_cmd.f90 -tao_alias_cmd - -File: code/tao_beam_emit_calc.f90 -tao_beam_emit_calc - -File: code/tao_beam_track_endpoint.f90 -tao_beam_track_endpoint - -File: code/tao_branch_index.f90 -tao_branch_index - -File: code/tao_c_interface_mod.f90 -tao_c_interface_mod -tao_c_interface_common_struct -re_allocate_c_double -tao_c_init_tao -tao_c_command -tao_c_out_io_buffer_num_lines -tao_c_real_array_size -tao_c_integer_array_size -tao_c_out_io_buffer_get_line -tao_c_get_real_array -tao_c_get_integer_array -tao_c_out_io_buffer_reset - -File: code/tao_call_cmd.f90 -tao_call_cmd - -File: code/tao_change_mod.f90 -tao_change_mod -tao_change_tune -tao_change_z_tune -tao_change_var -tao_change_ele -tao_to_change_number - -File: code/tao_chrom_calc_needed.f90 -tao_chrom_calc_needed - -File: code/tao_clear_cmd.f90 -tao_clear_cmd - -File: code/tao_clip_cmd.f90 -tao_clip_cmd - -File: code/tao_close_command_file.f90 -tao_close_command_file - -File: code/tao_cmd_end_calc.f90 -tao_cmd_end_calc - -File: code/tao_help.f90 -tao_help - -File: code/tao_command_mod.f90 -tao_command_mod -tao_cmd_history_record -tao_re_execute -tao_cmd_split -tao_next_word -tao_next_switch - -File: code/tao_constraint_type_name.f90 -tao_constraint_type_name - -File: code/tao_control_tree_list.f90 -tao_control_tree_list - -File: code/tao_count_strings.f90 -tao_count_strings - -File: code/tao_curve_ix_uni.f90 -tao_curve_ix_uni - -File: code/tao_curve_name.f90 -tao_curve_name - -File: code/tao_curve_rms_calc.f90 -tao_curve_rms_calc - -File: code/tao_d2_d1_name.f90 -tao_d2_d1_name - -File: code/tao_data_and_eval_mod.f90 -tao_data_and_eval_mod -tao_evaluate_lat_or_beam_data -tao_to_phase_and_coupling_reading -tao_get_data -tao_data_coupling_init -tao_load_this_datum -tao_datum_s_position -tao_datum_integrate -tao_tracking_ele_index -integrate_min -integrate_max -tao_scratch_values_calc -tao_do_wire_scan -tao_pointer_to_datum_ele -tao_to_real -tao_param_value_routine -tao_evaluate_datum_at_s -tao_evaluate_stack -tao_to_int -tao_ele_geometry_with_misalignments -tao_eval_floor_orbit - -File: code/tao_data_check.f90 -tao_data_check - -File: code/tao_data_sanity_check.f90 -tao_data_sanity_check - -File: code/tao_data_show_use.f90 -tao_data_show_use - -File: code/tao_datum_has_associated_ele.f90 -tao_datum_has_associated_ele - -File: code/tao_datum_name.f90 -tao_datum_name - -File: code/tao_de_optimizer.f90 -tao_de_optimizer -merit_wrapper - -File: code/tao_dmerit_mod.f90 -tao_dmerit_mod -tao_dmodel_dvar_calc -tao_veto_vars_with_zero_dmodel -tao_dmerit_calc - -File: code/tao_ele_shape_info.f90 -tao_ele_shape_info - -File: code/tao_curve_ele_ref.f90 -tao_curve_ele_ref - -File: code/tao_evaluate_element_parameters.f90 -tao_evaluate_element_parameters - -File: code/tao_evaluate_tune.f90 -tao_evaluate_tune - -File: code/tao_find_data.f90 -tao_find_data - -File: code/tao_find_plot_region.f90 -tao_find_plot_region - -File: code/tao_find_plots.f90 -tao_find_plots - -File: code/tao_find_var.f90 -tao_find_var - -File: code/tao_floor_to_screen.f90 -tao_floor_to_screen - -File: code/tao_floor_to_screen_coords.f90 -tao_floor_to_screen_coords - -File: code/tao_geodesic_lm_optimizer_mod.f90 -tao_geodesic_lm_optimizer_mod -tao_geodesic_lm_optimizer -tao_geo_lm_func -callback -jacobian -avv -user_signal - -File: code/tao_get_opt_vars.f90 -tao_get_opt_vars - -File: code/tao_get_user_input_mod.f90 -tao_get_user_input_mod -tao_get_user_input -tao_alias_translate - -File: code/tao_graph_name.f90 -tao_graph_name - -File: code/tao_graph_setup_mod.f90 -tao_graph_setup_mod -tao_graph_setup -tao_graph_controller_setup -tao_graph_data_slice_setup -tao_data_type_substitute -tao_graph_phase_space_setup -tao_graph_dynamic_aperture_setup -tao_curve_beam_ellipse_setup -tao_graph_histogram_setup -tao_phase_space_axis_index -tao_particle_data_value -tao_graph_data_setup -tao_curve_data_setup -tao_calc_data_at_s_pts -tao_data_useit_plot_calc -tao_curve_datum_calc -tao_set_curve_invalid -tao_curve_check_universe -tao_graph_s_min_max_calc - -File: code/tao_init.f90 -tao_init - -File: code/tao_init_building_wall.f90 -tao_init_building_wall - -File: code/tao_init_data_mod.f90 -tao_init_data_mod -tao_init_data -tao_init_data_end_stuff -tao_allocate_data_array -tao_d2_data_stuffit -tao_init_data_in_universe -tao_point_d1_to_data - -File: code/tao_init_find_elements.f90 -tao_init_find_elements - -File: code/tao_init_lattice.f90 -tao_init_lattice - -File: code/tao_init_mod.f90 -tao_init_mod -tao_init_global -tao_init_beams -tao_init_beam_in_universe -tao_init_dynamic_aperture - -File: code/tao_init_plotting.f90 -tao_init_plotting -tao_read_in_patterns - -File: code/tao_init_variables_mod.f90 -tao_init_variables_mod -tao_init_variables -tao_var_stuffit1 -tao_allocate_v1_var -tao_var_stuffit2 -tao_pointer_to_var_in_lattice -tao_pointer_to_var_in_lattice2 -tao_allocate_var_array -tao_point_v1_to_var - -File: code/tao_input_struct.f90 -tao_input_struct -tao_d2_data_input -tao_d1_data_input -tao_datum_input -tao_v1_var_input -tao_var_input -tao_region_input -tao_place_input -tao_curve_input -tao_graph_input -tao_plot_input -tao_design_lat_input -tao_key_input -tao_plot_page_input -tao_ele_shape_input -tao_set_plotting -tao_ele_shape_struct_to_input -tao_ele_shape_input_to_struct - -File: code/tao_interface.f90 -tao_interface -tao_pointer_to_universe -procedure -procedure -tao_hook_branch_calc_def -tao_hook_command_def -tao_hook_curve_s_pt_def -tao_hook_draw_floor_plan_def -tao_hook_draw_graph_def -tao_hook_evaluate_a_datum_def -tao_hook_graph_postsetup_def -tao_hook_graph_setup_def -tao_hook_init_beam_def -tao_hook_init_data_def -tao_hook_init_global_def -tao_hook_init_lattice_post_parse_def -tao_hook_init_plotting_def -tao_hook_init_read_lattice_info_def -tao_hook_init1_def -tao_hook_init2_def -tao_hook_init_var_def -tao_hook_lattice_calc_def -tao_hook_merit_data_def -tao_hook_merit_var_def -tao_hook_optimizer_def -tao_hook_parse_command_args_def -tao_hook_plot_setup_def -tao_hook_post_process_data_def -tao_hook_show_cmd_def -tao_pointer_to_universe_int -tao_pointer_to_universe_str -tao_uni_ampersand_index - -File: code/tao_is_valid_name.f90 -tao_is_valid_name - -File: code/tao_json_cmd.f90 -tao_json_cmd - -File: code/tao_key_info_to_str.f90 -tao_key_info_to_str - -File: code/tao_lat_bookkeeper.f90 -tao_lat_bookkeeper - -File: code/tao_lat_emit_calc.f90 -tao_lat_emit_calc - -File: code/tao_lat_sigma_calc_needed.f90 -tao_lat_sigma_calc_needed - -File: code/tao_lattice_calc.f90 -tao_lattice_calc - -File: code/tao_lattice_calc_mod.f90 -tao_lattice_calc_mod -tao_single_track -tao_lat_sigma_track -tao_beam_track -tao_too_many_particles_lost -tao_inject_particle -tao_inject_beam - -File: code/tao_limit_calc.f90 -tao_limit_calc - -File: code/tao_lm_optimizer_mod.f90 -tao_lm_optimizer_mod -tao_lm_optimizer -tao_mrq_func - -File: code/tao_lmdif_optimizer.f90 -tao_lmdif_optimizer - -File: code/tao_locate_all_elements.f90 -tao_locate_all_elements - -File: code/tao_locate_elements.f90 -tao_locate_elements - -File: code/tao_mark_lattice_ele.f90 -tao_mark_lattice_ele - -File: code/tao_merit.f90 -tao_merit - -File: code/tao_one_turn_map_calc_needed.f90 -tao_one_turn_map_calc_needed - -File: code/tao_open_file.f90 -tao_open_file - -File: code/tao_open_scratch_file.f90 -tao_open_scratch_file - -File: code/tao_optimization_status.f90 -tao_optimization_status - -File: code/tao_orient_building_wall_pt.f90 -tao_oreint_building_wall_pt - -File: code/tao_param_value_at_s.f90 -tao_param_value_at_s - -File: code/tao_parse_command_args.f90 -tao_parse_command_args - -File: code/tao_parse_element_param_str.f90 -tao_parse_element_param_str - -File: code/tao_pause_cmd.f90 -tao_pause_cmd - -File: code/tao_pick_universe.f90 -tao_pick_universe - -File: code/tao_place_cmd.f90 -tao_place_cmd - -File: code/tao_plot_cmd.f90 -tao_plot_cmd - -File: code/tao_plot_mod.f90 -tao_plot_mod -tao_draw_plots -tao_plot_histogram -tao_plot_wave -tao_plot_key_table -tao_draw_floor_plan -tao_set_floor_plan_axis_label -tao_draw_ele_for_floor_plan -tao_draw_lat_layout -tao_draw_beam_chamber_wall -tao_plot_data -tao_draw_curve_data -tao_draw_histogram_data -tao_draw_graph_axes - -File: code/tao_plot_setup.f90 -tao_plot_setup - -File: code/tao_plot_struct_transfer.f90 -tao_plot_struct_transfer - -File: code/tao_plot_window_mod.f90 -tao_plot_window_mod -tao_create_plot_window -tao_destroy_plot_window - -File: code/tao_pointer_to_branches.f90 -tao_pointer_to_branches - -File: code/tao_pointer_to_building_wall_shape.f90 -tao_pointer_to_building_wall_shape - -File: code/tao_pointer_to_datum.f90 -tao_pointer_to_datum - -File: code/tao_pointer_to_ele_shape.f90 -tao_pointer_to_ele_shape - -File: code/tao_pointer_to_tao_lat.f90 -tao_pointer_to_tao_lat - -File: code/tao_pointer_to_universes.f90 -tao_pointer_to_universes - -File: code/tao_print_command_line_info.f90 -tao_print_command_line_info - -File: code/tao_ptc_cmd.f90 -tao_ptc_cmd - -File: code/tao_ptc_normal_form.f90 -tao_ptc_normal_form - -File: code/tao_command.f90 -tao_command - -File: code/tao_quiet_set.f90 -tao_quiet_set - -File: code/tao_rad_int_calc_needed.f90 -tao_rad_int_calc_needed - -File: code/tao_re_allocate_expression_info.f90 -tao_re_allocate_expression_info - -File: code/tao_read_cmd.f90 -tao_read_cmd - -File: code/tao_read_phase_space_index.f90 -tao_read_phase_space_index - -File: code/tao_remove_blank_characters.f90 -tao_remove_blank_characters - -File: code/tao_run_cmd.f90 -tao_run_cmd - -File: code/tao_scale_mod.f90 -tao_scale_mod -tao_scale_cmd -tao_scale_plot -tao_scale_graph - -File: code/tao_scale_ping_data.f90 -tao_scale_ping_data - -File: code/tao_set_data_useit_opt.f90 -tao_set_data_useit_opt - -File: code/tao_set_opt_vars.f90 -tao_set_opt_vars - -File: code/tao_set_var_model_value.f90 -tao_set_var_model_value - -File: code/tao_set_var_useit_opt.f90 -tao_set_var_useit_opt - -File: code/tao_setup_key_table.f90 -tao_setup_key_table - -File: code/tao_shape_init.f90 -tao_shape_init - -File: code/tao_show_cmd.f90 -tao_show_cmd - -File: code/tao_pipe_cmd.f90 -tao_pipe_cmd - -File: code/tao_spin_tracking_turn_on.f90 -tao_spin_tracking_turn_on - -File: code/tao_split_component.f90 -tao_split_component - -File: code/tao_srdt_calc_needed.f90 -tao_srdt_calc_needed - -File: code/tao_subin_uni_number.f90 -tao_subin_uni_number - -File: code/tao_svd_optimizer_mod.f90 -tao_svd_optimizer_mod -tao_svd_optimizer -tao_svd_func - -File: code/tao_symbol_import_from_lat.f90 -tao_symbol_import_from_lat - -File: code/tao_taper_cmd.f90 -tao_taper_cmd - -File: code/tao_top10_mod.f90 -tao_top10_mod -tao_top10_struct -tao_top10_merit_categories_print -tao_top10_derivative_print -tao_to_top10 -tao_show_constraints -tao_var_write -tao_print_vars -tao_write_lines - -File: code/tao_turn_on_special_calcs_if_needed_for_plotting.f90 -tao_turn_on_special_calcs_if_needed_for_plotting - -File: code/tao_universe_index.f90 -tao_universe_index - -File: code/tao_use_data.f90 -tao_use_data - -File: code/tao_use_var.f90 -tao_use_var - -File: code/tao_user_is_terminating_optimization.f90 -tao_user_is_terminating_optimization - -File: code/tao_var1_name.f90 -tao_var1_name - -File: code/tao_var_attrib_name.f90 -tao_var_attrib_name - -File: code/tao_var_check.f90 -tao_var_check - -File: code/tao_var_repoint.f90 -tao_var_repoint - -File: code/tao_var_show_use.f90 -tao_var_show_use - -File: code/tao_var_target_calc.f90 -tao_var_target_calc - -File: code/tao_var_useit_plot_calc.f90 -tao_var_useit_plot_calc - -File: code/tao_wave_mod.f90 -tao_wave_mod -tao_wave_cmd -tao_wave_analysis -tao_orbit_beta_wave_anal -tao_phase_wave_anal -tao_cbar_wave_anal -tao_wave_fit -ele_at_curve_point - -File: code/tao_x_axis_cmd.f90 -tao_x_axis_cmd - -File: code/tao_x_scale_mod.f90 -tao_x_scale_mod -tao_x_scale_cmd -tao_x_scale_plot -tao_x_scale_graph - -File: code/tao_set_invalid.f90 -tao_set_invalid - -File: code/tao_spin_matrix_calc.f90 -tao_spin_matrix_calc - -File: code/tao_regression_test.f90 -tao_regression_test - -File: code/tao_struct.f90 -tao_struct -model$ -base$ -design$ -apparent_emit$ -projected_emit$ -tao_floor_plan_view_name -tao_lat_type_name -tao_data_source_name -tao_graph_type_name -tao_x_axis_type_name -tao_data_type_z_name -tao_var_merit_type_name -tao_data_merit_type_name -tao_optimizer_name -tao_shape_shape_name -present_str -negated_str -tao_shape_label_name -tao_wave_data_name -n_char_show -assignment -procedure -procedure -tao_cmd_history_struct -tao_real_pointer_struct -tao_logical_array_struct -tao_integer_array_struct -tao_string_array_struct -tao_expression_info_struct -tao_eval_stack1_struct -tao_ele_pointer_struct -tao_ele_shape_struct -tao_drawing_struct -tao_shape_pattern_point_struct -tao_shape_pattern_struct -var_num$ -lat_num$ -data_num$ -ele_num$ -tao_title_struct -tao_data_var_component_struct -tao_histogram_struct -tao_curve_orbit_struct -tao_curve_color_struct -tao_curve_struct -tao_floor_plan_struct -tao_graph_struct -tao_plot_struct -tao_plot_region_struct -n_curve_pts_init$ -tao_plot_page_struct -tao_region_array_struct -tao_plot_array_struct -tao_graph_array_struct -tao_curve_array_struct -tao_spin_map_struct -tao_data_struct -tao_d1_data_struct -tao_d2_data_struct -tao_data_array_struct -tao_d1_data_array_struct -tao_d2_data_array_struct -tao_var_slave_struct -tao_var_struct -tao_v1_var_struct -tao_var_array_struct -tao_v1_var_array_struct -tao_building_wall_orientation_struct -tao_building_wall_point_struct -tao_building_wall_section_struct -tao_building_wall_struct -tao_global_struct -tao_alias_struct -tao_command_file_struct -do_loop_struct -n_uni_init$ -tao_common_struct -tao_init_struct -tao_beam_shake_struct -tao_scratch_space_struct -tao_lat_mode_struct -tao_lat_sigma_struct -tao_spin_dn_dpz_struct -tao_spin_ele_struct -tao_spin_polarization_struct -tao_plot_cache_struct -tao_lattice_branch_struct -tao_lattice_struct -tao_model_element_struct -tao_beam_branch_struct -tao_model_branch_struct -tao_beam_uni_struct -tao_universe_calc_struct -tao_mpi_struct -tao_dynamic_aperture_struct -tao_wave_kick_pt_struct -tao_wave_struct -tao_ping_scale_struct -tao_universe_pointer_struct -tao_universe_struct -tao_super_universe_struct -tao_deallocate_plot_cache -tao_lattice_branches_equal_tao_lattice_branches -tao_lattice_equal_tao_lattice - -File: code/tao_single_mode.f90 -tao_single_mode - -File: code/tao_spin_matrices_calc_needed.f90 -tao_spin_matrices_calc_needed - -File: code/tao_set_flags_for_changed_attribute.f90 -tao_set_flags_for_changed_attribute - -File: code/tao_top_level.f90 -tao_top_level - -File: code/tao_evaluate_a_datum.f90 -tao_evaluate_a_datum - -File: code/tao_show_this.f90 -tao_show_this - -File: code/tao_spin_polarization_calc.f90 -tao_spin_polarization_calc - -File: code/tao_python_cmd.f90 -tao_python_cmd - -File: code/tao_set_mod.f90 -tao_set_mod -tao_set_tune_cmd -tao_set_z_tune_cmd -tao_set_calculate_cmd -tao_set_key_cmd -tao_set_ran_state_cmd -tao_set_lattice_cmd -tao_set_global_cmd -tao_set_space_charge_com_cmd -tao_set_bmad_com_cmd -tao_set_ptc_com_cmd -tao_set_geodesic_lm_cmd -tao_set_opti_de_param_cmd -tao_set_wave_cmd -tao_set_beam_cmd -tao_set_beam_init_cmd -tao_set_particle_start_cmd -tao_set_plot_page_cmd -tao_set_curve_cmd -tao_set_plot_cmd -tao_set_region_cmd -tao_set_graph_cmd -tao_set_var_cmd -tao_set_branch_cmd -tao_set_data_cmd -tao_set_default_cmd -tao_set_dynamic_aperture_cmd -tao_set_universe_cmd -tao_set_elements_cmd -tao_set_logical_value -tao_set_integer_value -tao_set_switch_value -tao_set_real_value -tao_set_drawing_cmd -tao_set_symbolic_number_cmd -tao_set_qp_rect_struct -tao_set_qp_axis_struct -tao_set_qp_point_struct - -File: code/tao_write_cmd.f90 -tao_write_cmd - -File: code/tao_evaluate_expression.f90 -tao_evaluate_expression - -File: code/tao_timer.f90 -tao_timer - -File: hook/tao_hook_branch_calc.f90 -tao_hook_branch_calc - -File: hook/tao_hook_command.f90 -tao_hook_command - -File: hook/tao_hook_curve_s_pt.f90 -tao_hook_curve_s_pt - -File: hook/tao_hook_draw_floor_plan.f90 -tao_hook_draw_floor_plan - -File: hook/tao_hook_draw_graph.f90 -tao_hook_draw_graph - -File: hook/tao_hook_evaluate_a_datum.f90 -tao_hook_evaluate_a_datum - -File: hook/tao_hook_graph_postsetup.f90 -tao_hook_graph_postsetup - -File: hook/tao_hook_graph_setup.f90 -tao_hook_graph_setup - -File: hook/tao_hook_init1.f90 -tao_hook_init1 - -File: hook/tao_hook_init2.f90 -tao_hook_init2 - -File: hook/tao_hook_init_beam.f90 -tao_hook_init_beam - -File: hook/tao_hook_init_data.f90 -tao_hook_init_data - -File: hook/tao_hook_init_global.f90 -tao_hook_init_global - -File: hook/tao_hook_init_lattice_post_parse.f90 -tao_hook_init_lattice_post_parse - -File: hook/tao_hook_init_plotting.f90 -tao_hook_init_plotting - -File: hook/tao_hook_init_read_lattice_info.f90 -tao_hook_init_read_lattice_info - -File: hook/tao_hook_init_var.f90 -tao_hook_init_var - -File: hook/tao_hook_lattice_calc.f90 -tao_hook_lattice_calc - -File: hook/tao_hook_merit_data.f90 -tao_hook_merit_data - -File: hook/tao_hook_merit_var.f90 -tao_hook_merit_var - -File: hook/tao_hook_optimizer.f90 -tao_hook_optimizer - -File: hook/tao_hook_parse_command_args.f90 -tao_hook_parse_command_args - -File: hook/tao_hook_plot_setup.f90 -tao_hook_plot_setup - -File: hook/tao_hook_post_process_data.f90 -tao_hook_post_process_data - -File: hook/tao_hook_show_cmd.f90 -tao_hook_show_cmd - -File: mpi/tao_mpi_mod.f90 -tao_mpi_mod -tao_mpi_initialize -tao_mpi_test_send_receive -tao_broadcast_opt_vars_mpi -tao_broadcast_chars_mpi -tao_mpi_finalize - -File: program/tao_program.f90 -tao_program - -File: version/tao_version_mod.f90 -tao_version_mod -tao_version_date