diff --git a/.gitignore b/.gitignore index b83a1f6d2d..019e3dc856 100644 --- a/.gitignore +++ b/.gitignore @@ -34,18 +34,21 @@ bmad-doc/cookbook_bmad_tao/doc/cookbook_bmad_tao.pdf bmad-doc/cookbook_bmad_tao/doc/cookbook_bmad_tao.toc bmad-doc/tao_examples/csr_beam_tracking/csr_wake.dat -bmad/doc/*aux -bmad/doc/bmad.idx -bmad/doc/bmad.ilg -bmad/doc/bmad.ind -bmad/doc/bmad.lof -bmad/doc/bmad.log -bmad/doc/bmad.lot -bmad/doc/bmad.out bmad/doc/bmad.pdf -bmad/doc/bmad.rdx -bmad/doc/bmad.rnd -bmad/doc/bmad.toc +bsim/**/doc/*.pdf + +**/doc/*.idx +**/doc/*.ilg +**/doc/*.ind +**/doc/*.lof +**/doc/*.log +**/doc/*.lot +**/doc/*.out +**/doc/*.rdx +**/doc/*.rnd +**/doc/*.toc +**/doc/*.aux +**/2www.pl regression_tests/*/output.now regression_tests/*/lat.bmad diff --git a/bmad-doc/other_manuals/sodom2.pdf b/bmad-doc/other_manuals/sodom2.pdf index df01d9b991..cb0c2b6093 100644 Binary files a/bmad-doc/other_manuals/sodom2.pdf and b/bmad-doc/other_manuals/sodom2.pdf differ diff --git a/bmad-doc/other_manuals/tune_scan.pdf b/bmad-doc/other_manuals/tune_scan.pdf index 1ee736229f..27958d4607 100644 Binary files a/bmad-doc/other_manuals/tune_scan.pdf and b/bmad-doc/other_manuals/tune_scan.pdf differ diff --git a/bmad/code/set_tune.f90 b/bmad/code/set_tune.f90 index 1fbff0f120..8fcc83d8e7 100644 --- a/bmad/code/set_tune.f90 +++ b/bmad/code/set_tune.f90 @@ -43,7 +43,7 @@ function set_tune (phi_a_set, phi_b_set, dk1, eles, branch, orb, print_err) resu logical, optional :: print_err logical ok, err, rf_on, master_saved -character(20) :: r_name = 'set_tune' +character(*), parameter :: r_name = 'set_tune' real(rp), dimension(2) :: phi_array ! Init @@ -150,5 +150,4 @@ function set_tune (phi_a_set, phi_b_set, dk1, eles, branch, orb, print_err) resu 'SET TUNE: \2f\ ', & r_array = [phi_a/twopi, phi_b/twopi, phi_a_set/twopi, phi_b_set/twopi ]) - end function diff --git a/bmad/code/set_tune_via_group_knobs.f90 b/bmad/code/set_tune_via_group_knobs.f90 new file mode 100644 index 0000000000..5c3db7eb89 --- /dev/null +++ b/bmad/code/set_tune_via_group_knobs.f90 @@ -0,0 +1,189 @@ +!+ +! Function set_tune_via_group_knobs (phi_set, branch, group_knobs, orb, print_err) result (ok) +! +! Function to Q_tune a lattice branch. The tunes will be set to within 0.001 radian (0.06 deg). +! Note: The tune is computed with reference to the closed orbit. +! +! Input: +! phi_set(2) -- real(rp): Set tunes (radians). +! branch -- branch_struct: Lattice branch to tune. +! group_knobs(2) -- character(*): Names of group knobs to vary. +! orb(0)%vec(6) -- Coord_struct: If RF is off: Energy dE/E at which the tune is computed. +! print_err -- logical, optional: Print error message if there is a problem? Default is True. +! +! Output: +! branch -- branch_struct: Q_tuned lattice branch +! orb(0:) -- coord_struct: New closed orbit. +! ok -- logical: Set True if everything is ok. False otherwise. +!- + +function set_tune_via_group_knobs (phi_set, branch, group_knobs, orb, print_err) result (ok) + +use bmad_interface, except_dummy => set_tune_via_group_knobs + +implicit none + +type (branch_struct), target :: branch +type (ele_struct), pointer :: group1, group2 +type (ele_struct) :: ave +type (ele_struct), pointer :: ele +type (coord_struct), allocatable :: orb(:) + +real(rp) phi_set(2), dphi_a, dphi_b, dQ_max +real(rp) phi_a, phi_b, d_a1, d_a2, d_b1, d_b2, det +real(rp) d1, d2, del0 +real(rp) :: phi_array(2) +real(rp), allocatable :: deriv1(:), deriv2(:), kinit(:) + +integer i, j, status, n_loc + +logical, optional :: print_err +logical ok, err, rf_on, master_saved + +character(*) group_knobs(2) +character(*), parameter :: r_name = 'set_tune_via_group_knobs' + +! Init + +dQ_max = 0.001 +del0 = 0.001 +ok = .false. +rf_on = rf_is_on(branch) + +allocate(kinit(branch%n_ele_track), deriv1(branch%n_ele_track), deriv2(branch%n_ele_track)) +deriv1 = 0; deriv2 = 0 + +group1 => find_group(group_knobs(1), branch, del0, kinit, deriv1, err); if (err) return +group2 => find_group(group_knobs(2), branch, del0, kinit, deriv2, err); if (err) return + +! Q tune + +do i = 1, 10 + call lattice_bookkeeper(branch%lat) + + if (rf_on) then + call closed_orbit_calc (branch%lat, orb, 6, 1, branch%ix_branch, err, print_err) + else + call closed_orbit_calc (branch%lat, orb, 4, 1, branch%ix_branch, err, print_err) + endif + + if (err) return + + call lat_make_mat6 (branch%lat, -1, orb, branch%ix_branch) + + call twiss_at_start(branch%lat, status, branch%ix_branch, print_err) + if (status /= ok$) return + + call twiss_propagate_all (branch%lat, branch%ix_branch, err) + if (err) return + + phi_a = branch%ele(branch%n_ele_track)%a%phi + phi_b = branch%ele(branch%n_ele_track)%b%phi + dphi_a = phi_set(1) - phi_a + dphi_b = phi_set(2) - phi_b + if (abs(dphi_a) < dQ_max .and. abs(dphi_b) < dQ_max) then + ok = .true. + return + endif + + d_a1 = 0 + d_a2 = 0 + d_b1 = 0 + d_b2 = 0 + + do j = 1, branch%n_ele_track + if (deriv1(j) == 0 .and. deriv2(j) == 0) cycle + ele => branch%ele(j) + call twiss_at_element (ele, average = ave) + + if (deriv1(j) /= 0) then + d_a1 = d_a1 + deriv1(j) * ave%a%beta * ave%value(l$) / 2 + d_b1 = d_b1 - deriv1(j) * ave%b%beta * ave%value(l$) / 2 + endif + + if (deriv2(j) /= 0) then + d_a2 = d_a2 + deriv2(j) * ave%a%beta * ave%value(l$) / 2 + d_b2 = d_b2 - deriv2(j) * ave%b%beta * ave%value(l$) / 2 + endif + enddo + + det = d_a1 * d_b2 - d_a2 * d_b1 + d1 = (d_b2 * dphi_a - d_b1 * dphi_b) / det + d2 = (d_a1 * dphi_b - d_a2 * dphi_a) / det + + ! Put in the changes + + group1%control%var(1)%value = group1%control%var(1)%value + d1 + group2%control%var(1)%value = group2%control%var(1)%value + d2 + + call set_flags_for_changed_attribute (group1) + call set_flags_for_changed_attribute (group2) +enddo + +phi_array(1) = phi_a/twopi +phi_array(2) = phi_b/twopi +phi_array(1) = phi_set(1)/twopi +phi_array(2) = phi_set(2)/twopi +call out_io (s_error$, r_name, 'CANNOT GET TUNE RIGHT.', & + 'CURRENT TUNE: \2f\ ', & + 'SET TUNE: \2f\ ', & + r_array = [phi_a/twopi, phi_b/twopi, phi_set(1)/twopi, phi_set(2)/twopi ]) + +!-------------------------------------------------------------------------------- +contains + +function find_group(name, branch, del0, kinit, deriv, err) result (group_ele) + +type (branch_struct) branch +type (ele_struct), pointer :: group_ele, ele +type (ele_pointer_struct), allocatable ::eles(:) +character(*) name +real(rp) del0, kinit(:), deriv(:) +integer i, j, n_loc +logical err + +! + +call lat_ele_locator(name, branch%lat, eles, n_loc, err, ix_dflt_branch = branch%ix_branch) +if (err) return +err = .true. + +if (n_loc == 0) then + call out_io(s_error$, r_name, 'Group element not found: ' // ele%name) + return +endif + +if (n_loc > 1) then + call out_io(s_error$, r_name, 'Multiple lattice elements match group name: ' // ele%name) + return +endif + +group_ele => eles(1)%ele +if (group_ele%key /= group$) then + call out_io(s_error$, r_name, 'Element is not a group type element which is needed for tune variation: ' // ele%name) + return +endif + +! + +kinit = branch%ele(1:branch%n_ele_track)%value(k1$) + +group_ele%control%var(1)%value = group_ele%control%var(1)%value + del0 +call control_bookkeeper(branch%lat, group_ele) + +do i = 1, branch%n_ele_track + ele => branch%ele(i) + if (ele%key /= quadrupole$) cycle + if (ele%value(tilt$) /= 0) cycle + if (ele%value(k1$) == kinit(i)) cycle + deriv(i) = (ele%value(k1$) - kinit(i)) / del0 +enddo + +group_ele%control%var(1)%value = group_ele%control%var(1)%value - del0 +call control_bookkeeper(branch%lat, group_ele) + +err = .false. + +end function find_group + +end function diff --git a/bmad/doc/charged-tracking.tex b/bmad/doc/charged-tracking.tex index 0fe6ab3068..62a07ef62f 100644 --- a/bmad/doc/charged-tracking.tex +++ b/bmad/doc/charged-tracking.tex @@ -48,7 +48,7 @@ \section{Relative Versus Absolute Time Tracking} upstream end of the element. $t_\text{eff}$ is defined such that a particle entering an element with $z = 0$ has $t_\text{eff} = 0$. -With \vn{absolute time tracking}, and \vn{bmad_com%absolute_time_ref_shift} set to True (the +With \vn{absolute time tracking}, and \vn{bmad_com[absolute_time_ref_shift]} set to True (the default), $t_\text{eff}$ is defined by \begin{equation} t_\text{eff}(s) = t(s) - t_0(s_\text{ent}) @@ -58,7 +58,7 @@ \section{Relative Versus Absolute Time Tracking} reference particle at the entrance end of the element on the first pass. For absolute time tracking, it is important to keep in mind that $t_0(s_\text{ent})$ is a property of the element independent of how tracking is done. Thus, if a particle goes through a particular element multiple times, the -value of $t_\text{ent}$ will be the same for each transit. If \vn{bmad_com%absolute_time_ref_shift} +value of $t_\text{ent}$ will be the same for each transit. If \vn{bmad_com[absolute_time_ref_shift]} set to True, $t_\text{eff}$ is simply \begin{equation} t_\text{eff}(s) = t(s) @@ -67,7 +67,7 @@ \section{Relative Versus Absolute Time Tracking} To understand the difference between relative and absolute time tracking, consider a particle traveling on the reference orbit along side the reference particle in a circular ring with one RF cavity. This particle always has $z = 0$ and thus, with \vn{relative time tracking}, $t_\text{eff}$ -will always be zero (assuming \vn{bmad_com%absolute_time_ref_shift} is set to True) at the entrance +will always be zero (assuming \vn{bmad_com[absolute_time_ref_shift] is set to True) at the entrance to the cavity. With \vn{absolute time tracking}, the particle, on the first turn, will have $t_\text{eff}$ equal to zero. However, on subsequent turns (or subsequent passes if using multipass), the time will increase by the revolution time $t_\text{C}$ on each turn. If the RF diff --git a/bmad/doc/lattice-file.tex b/bmad/doc/lattice-file.tex index f0eb905488..b97de6135b 100644 --- a/bmad/doc/lattice-file.tex +++ b/bmad/doc/lattice-file.tex @@ -698,7 +698,8 @@ \section{Particle Species Names} The curly brackets \{...\} denote optional prefixes and suffixes. \vn{AA} here is the atomic symbol, \vn{\#nnn} is the number of nucleons, and \vn{ccc} is the charge. Examples: \begin{example} - parameter[particle] = \#12C+3 ! Triply charged carbon-12 + parameter[particle] = \#12C+3 ! Triply charged carbon-12. + parameter[p0c] = 12 * 500e6 ! Reference momentum is total momentum for particle. parameter[particle] = He-- ! Doubly charged He. \end{example} If the number of nucleons is given, the appropriate weight for that isotope is used. If the number @@ -714,6 +715,9 @@ \section{Particle Species Names} mass shifts due to finite electron binding energies. This shift is small typically being well less than 1\% of the mass of the electron. +Note: When setting the reference momentum \vn{parameter[p0c]}, or reference total energy +\vn{parameter[E_tot]}, the total for the whole particle is used. {\em Not} the value per nucleon. + Another group of particles are the ``known'' molecules. The syntax for these are: \begin{example} BBB\{@Mxxxx\}\{ccc\} diff --git a/bmad/modules/attribute_mod.f90 b/bmad/modules/attribute_mod.f90 index 3386ead67b..7facc6bc05 100644 --- a/bmad/modules/attribute_mod.f90 +++ b/bmad/modules/attribute_mod.f90 @@ -1405,14 +1405,14 @@ subroutine init_attribute_name_array () call init_attribute_name1 (crab_cavity$, cylindrical_map$, 'CYLINDRICAL_MAP') call init_attribute_name1 (crab_cavity$, gen_grad_map$, 'GEN_GRAD_MAP') call init_attribute_name1 (crab_cavity$, grid_field$, 'GRID_FIELD') -call init_attribute_name1 (crab_cavity$, gradient$, 'GRADIENT', dependent$) +call init_attribute_name1 (crab_cavity$, gradient$, 'GRADIENT') call init_attribute_name1 (crab_cavity$, rf_frequency$, 'RF_FREQUENCY') call init_attribute_name1 (crab_cavity$, rf_wavelength$, 'RF_WAVELENGTH', dependent$) call init_attribute_name1 (crab_cavity$, rf_clock_harmonic$, 'rf_clock_harminic', private$) -call init_attribute_name1 (crab_cavity$, field_autoscale$, 'FIELD_AUTOSCALE', private$) ! Not yet used -call init_attribute_name1 (crab_cavity$, phi0_autoscale$, 'PHI0_AUTOSCALE', private$) ! Not yet used +call init_attribute_name1 (crab_cavity$, field_autoscale$, 'FIELD_AUTOSCALE', private$) ! Not yet used +call init_attribute_name1 (crab_cavity$, phi0_autoscale$, 'PHI0_AUTOSCALE', private$) ! Not yet used call init_attribute_name1 (crab_cavity$, autoscale_amplitude$, 'AUTOSCALE_AMPLITUDE', private$) ! Not yet used -call init_attribute_name1 (crab_cavity$, autoscale_phase$, 'AUTOSCALE_PHASE', private$) ! Not yet used +call init_attribute_name1 (crab_cavity$, autoscale_phase$, 'AUTOSCALE_PHASE', private$) ! Not yet used call init_attribute_name1 (crab_cavity$, field_master$, 'FIELD_MASTER') call init_attribute_name1 (rfcavity$, longitudinal_mode$, 'LONGITUDINAL_MODE') diff --git a/bmad/modules/bmad_routine_interface.f90 b/bmad/modules/bmad_routine_interface.f90 index 7fba77e8db..237782e031 100644 --- a/bmad/modules/bmad_routine_interface.f90 +++ b/bmad/modules/bmad_routine_interface.f90 @@ -2163,6 +2163,17 @@ function set_tune (phi_a_set, phi_b_set, dk1, eles, branch, orb, print_err) resu logical ok end function +function set_tune_via_group_knobs (phi_set, branch, group_knobs, orb, print_err) result (ok) + import + implicit none + type (branch_struct), target :: branch + type (coord_struct), allocatable :: orb(:) + character(*) group_knobs(2) + real(rp) phi_set(2) + logical, optional :: print_err + logical ok +end function + function significant_difference (value1, value2, abs_tol, rel_tol) result (is_different) import implicit none diff --git a/bmad/multiparticle/beam_file_io.f90 b/bmad/multiparticle/beam_file_io.f90 index d512ce4ef1..24215505a7 100644 --- a/bmad/multiparticle/beam_file_io.f90 +++ b/bmad/multiparticle/beam_file_io.f90 @@ -188,9 +188,11 @@ subroutine read_beam_file (file_name, beam, beam_init, err_flag, ele, print_mom_ return endif +! Note: BIN type files no longer generated by Bmad (HDF5 is always used instead). + read (iu, '(a80)') line if (index(line, '!BINARY') /= 0) then - call out_io (s_error$, r_name, 'IN FILE: ' // trim(file_name), 'OLD STYLE BEAM0 FILE NOT SUPPORTED...') + call out_io (s_error$, r_name, 'IN FILE: ' // trim(file_name), 'OLD STYLE BEAM FILE NOT SUPPORTED...') return elseif (index(line, '!BIN::2') /= 0) then file_type = 'BIN::2' @@ -199,8 +201,20 @@ subroutine read_beam_file (file_name, beam, beam_init, err_flag, ele, print_mom_ elseif (index(line, '!ASCII::3') /= 0) then file_type = 'ASCII::3' else - file_type = 'ASCII::3' + do + if (len_trim(line) /= 0) exit + read (iu, '(a)') line + enddo + + if (line(1:1) == '#') then + file_type = 'ASCII::4' + else + file_type = 'ASCII::3' + endif + rewind (iu) + call read_beam_ascii4(iu, file_name, beam, beam_init, err_flag, ele, print_mom_shift_warning, conserve_momentum) + return endif if (file_type(1:3) == 'BIN') then @@ -214,8 +228,9 @@ subroutine read_beam_file (file_name, beam, beam_init, err_flag, ele, print_mom_ read (iu, *, iostat = ios, err = 9000) ix_ele read (iu, *, iostat = ios, err = 9000) n_bunch read (iu, *, iostat = ios, err = 9000) n_particle + else - read (iu) line(1:7) ! read "!BINARY" line + read (iu) line(1:7) ! Read "!BIN::" line read (iu, iostat = ios, err = 9000) ix_ele, n_bunch, n_particle endif @@ -529,4 +544,128 @@ end function remove_first_number end subroutine read_beam_file +!----------------------------------------------------------------------------- +!----------------------------------------------------------------------------- +!----------------------------------------------------------------------------- +!+ +! Subroutine read_beam_ascii4 (iu, file_name, beam, beam_init, err_flag, ele, print_mom_shift_warning, conserve_momentum) +! +! Subroutine to read in a beam definition file. +! If non_zero, the following components of beam_init are used to rescale the beam: +! %n_bunch +! %n_particle +! %bunch_charge +! +! If the beam file has '.h5' or '.hdf5' suffix then the file is taken to be an HDF5 file. +! Otherwise the file is assumed to be ASCII. +! +! Input: +! iu -- integer: File unit number +! file_name -- character(*): Name of beam file. +! beam_init -- beam_init_struct: See above. +! ele -- ele_struct, optional: Element with reference energy, etc. +! print_mom_shift_warning -- logical, optional: Default is True. See hdf5_read_beam doc. Only used when reading hdf5 file. +! shift_momentum -- logical, optional: Default is True. See hdf5_read_beam doc. Only used when reading hdf5 file. +! +! Output: +! beam -- Beam_struct: Structure holding the beam information. +! err_flag -- Logical: Set True if there is an error. False otherwise. +!+ + +subroutine read_beam_ascii4 (iu, file_name, beam, beam_init, err_flag, ele, print_mom_shift_warning, conserve_momentum) + +type (beam_struct), target :: beam +type (beam_init_struct) beam_init +type (ele_struct), optional :: ele +type (bunch_struct), pointer :: bunch +type (coord_struct), pointer :: p + +real(rp) bunch_charge, z_center, t_center + +integer iu, ip, ix, ios, n_particle, n_bunch + +character(*) file_name +character(*), parameter :: r_name = 'read_beam_ascii4' +character(200) cols, line + +logical err_flag +logical, optional :: print_mom_shift_warning, conserve_momentum + +! + + +cols = '' +n_bunch = 0 +do + do + read (iu, '(a)', iostat = ios) line + if (line(1:1) /= '#') exit + call string_trim(line(2:), line, ix) + + select case (line(:ix)) + case ('n_bunch'); n_bunch = nint(read_param(line)) + case ('n_particle'); n_particle = nint(read_param(line)) + case ('bunch_charge'); bunch_charge = read_param(line) + case ('z_center'); z_center = read_param(line) + case ('t_center'); t_center = read_param(line) + case ('columns'); cols = read_string(line) + end select + enddo + + call reallocate_beam(beam, n_bunch, n_particle) + + do ip = 1, n_particle + p => beam%bunch(ip)%particle(ip) + read (iu, *, iostat = ios, err = 9000) p%vec, p%p0c + enddo + + n_bunch = n_bunch + 1 + !!call reallocate_bunch( + + +enddo + + +9000 continue +stop + +!--------------------------------------------------------------------------------------------------- +contains + +function read_param(line) result (param) +character(*) line +real(rp) param +integer ix, ios + +! + +ix = index(line, '=') +read(line(ix+1:), *, iostat = ios) param +if (ios /= 0 .or. ix == 0) then + call out_io (s_error$, r_name, 'ERROR READING BEAM FILE PARAMETER!') +endif + +end function read_param + +!--------------------------------------------------------------------------------------------------- +! contains + +function read_string(line) result (str) +character(*) line +character(200) str +integer ix, ios + +! + +ix = index(line, '=') +if (ix == 0) then + call out_io (s_error$, r_name, 'ERROR READING BEAM FILE PARAMETER!') + return +endif +str = unquote(trim(line(ix+1:))) + +end function read_string + +end subroutine read_beam_ascii4 + end module diff --git a/bmad/parsing/bmad_parser.f90 b/bmad/parsing/bmad_parser.f90 index 32cecd0f0a..e756a20fd4 100644 --- a/bmad/parsing/bmad_parser.f90 +++ b/bmad/parsing/bmad_parser.f90 @@ -1081,7 +1081,7 @@ subroutine bmad_parser (lat_file, lat, make_mats6, digested_read_ok, use_line, e call drift_multipass_name_correction(lat) !------------------------------------- -! If a girder elements refer to a line then must expand that line. +! If a girder element refers to a line then must expand that line. do i = 1, n_max lord => in_lat%ele(i) @@ -1114,26 +1114,6 @@ subroutine bmad_parser (lat_file, lat, make_mats6, digested_read_ok, use_line, e enddo enddo -! Check for misspellings of superposition reference elements. - -if (bp_com%do_superimpose) then - do i = 1, n_max - if (in_lat%ele(i)%lord_status /= super_lord$) cycle - pele => plat%ele(i) - if (pele%ref_name == blank_name$) cycle - - call lat_ele_locator (pele%ref_name, lat, eles, n_loc, err) - if (err) cycle ! this error already handled by parser_add_superimpose - if (n_loc /= 0) cycle - - call lat_ele_locator (pele%ref_name, in_lat, eles, n_loc, err) - if (n_loc /= 0) cycle - - call parser_error ('NO MATCH FOR REFERENCE ELEMENT: ' // pele%ref_name, & - 'FOR SUPERPOSITION OF: ' // in_lat%ele(i)%name, pele = pele) - enddo -endif - ! PTC stuff. ! Use arbitrary energy above the rest mass energy since when tracking individual elements the ! true reference energy is used. diff --git a/bmad/parsing/bmad_parser_mod.f90 b/bmad/parsing/bmad_parser_mod.f90 index c331ef71f6..6d22c5713b 100644 --- a/bmad/parsing/bmad_parser_mod.f90 +++ b/bmad/parsing/bmad_parser_mod.f90 @@ -7154,6 +7154,8 @@ subroutine settable_dep_var_bookkeeping (ele) else ele%value(gradient$) = ele%value(voltage$) / ele%value(l$) endif + else + ele%value(voltage$) = ele%value(gradient$) * ele%value(l$) endif !------------------ diff --git a/bmad/searchf.namelist b/bmad/searchf.namelist new file mode 100644 index 0000000000..fd128fddac --- /dev/null +++ b/bmad/searchf.namelist @@ -0,0 +1,3481 @@ + +File: code/add_lattice_control_structs.f90 +add_lattice_control_structs + +File: code/angle_to_canonical_coords.f90 +angle_to_canonical_coords + +File: code/apply_all_rampers.f90 +apply_all_rampers + +File: code/apply_rampers_to_slave.f90 +apply_rampers_to_slave + +File: code/at_this_ele_end.f90 +at_this_ele_end + +File: code/attribute_bookkeeper.f90 +attribute_bookkeeper + +File: code/attribute_set_bookkeeping.f90 +attribute_set_bookkeeping + +File: code/bend_exact_multipole_field.f90 +bend_exact_multipole_field +convert_bend_exact_multipole + +File: code/branch_name.f90 +branch_name + +File: code/c_to_cbar.f90 +c_to_cbar + +File: code/calc_z_tune.f90 +calc_z_tune + +File: code/canonical_to_angle_coords.f90 +canonical_to_angle_coords + +File: code/cbar_to_c.f90 +cbar_to_c + +File: code/check_if_s_in_bounds.f90 +check_if_s_in_bounds + +File: code/choose_quads_for_set_tune.f90 +choose_quads_for_set_tune + +File: code/chrom_calc.f90 +chrom_calc + +File: code/chrom_tune.f90 +chrom_tune + +File: code/classical_radius.f90 +classical_radius + +File: code/clear_lat_1turn_mats.f90 +clear_lat_1turn_mats + +File: code/clear_taylor_maps_from_elements.f90 +clear_taylor_maps_from_elements + +File: code/closed_orbit_calc.f90 +closed_orbit_calc + +File: code/closed_orbit_from_tracking.f90 +closed_orbit_from_tracking + +File: code/combine_consecutive_elements.f90 +combine_consecutive_elements + +File: code/control_bookkeeper.f90 +control_bookkeeper + +File: code/convert_coords.f90 +convert_coords + +File: code/convert_particle_coordinates_s_to_t.f90 +convert_particle_coordinates_s_to_t + +File: code/convert_particle_coordinates_t_to_s.f90 +convert_particle_coordinates_t_to_s + +File: code/convert_pc_to.f90 +convert_pc_to + +File: code/convert_total_energy_to.f90 +convert_total_energy_to + +File: code/create_element_slice.f90 +create_element_slice + +File: code/create_lat_ele_nametable.f90 +create_lat_ele_nametable + +File: code/create_unique_ele_names.f90 +create_unique_ele_names + +File: code/default_tracking_species.f90 +default_tracking_species + +File: code/do_mode_flip.f90 +do_mode_flip + +File: code/e_accel_field.f90 +e_accel_field + +File: code/ele_full_name.f90 +ele_full_name + +File: code/ele_has_nonzero_kick.f90 +ele_has_nonzero_kick + +File: code/ele_has_nonzero_offset.f90 +ele_has_nonzero_offset + +File: code/ele_loc_name.f90 +ele_loc_name + +File: code/ele_order_calc.f90 +ele_order_calc + +File: code/ele_unique_name.f90 +ele_unique_name + +File: code/ele_value_has_changed.f90 +ele_value_has_changed + +File: code/element_slice_iterator.f90 +element_slice_iterator + +File: code/em_field_calc.f90 +em_field_calc + +File: code/equivalent_taylor_attributes.f90 +equivalent_taylor_attributes + +File: code/find_element_ends.f90 +find_element_ends + +File: code/find_matching_fieldmap.f90 +find_matching_fieldmap + +File: code/fringe_here.f90 +fringe_here + +File: code/g_bending_strength_from_em_field.f90 +g_bending_strength_from_em_field + +File: code/gamma_ref.f90 +gamma_ref + +File: code/get_slave_list.f90 +get_slave_list + +File: code/insert_element.f90 +insert_element + +File: code/ion_kick.f90 +ion_kick + +File: code/key_name_to_key_index.f90 +key_name_to_key_index + +File: code/lat_compute_reference_energy.f90 +lat_compute_ref_energy_and_time +ele_compute_ref_energy_and_time + +File: code/lat_ele_locator.f90 +lat_ele_locator + +File: code/lat_make_mat6.f90 +lat_make_mat6 + +File: code/lat_sanity_check.f90 +lat_sanity_check + +File: code/lattice_bookkeeper.f90 +lattice_bookkeeper + +File: code/lord_edge_aligned.f90 +lord_edge_aligned + +File: code/low_energy_z_correction.f90 +low_energy_z_correction + +File: code/make_g_mats.f90 +make_g_mats + +File: code/make_hybrid_lat.f90 +make_hybrid_lat + +File: code/make_mat6.f90 +make_mat6 + +File: code/make_v_mats.f90 +make_v_mats + +File: code/map_to_angle_coords.f90 +map_to_angle_coords + +File: code/momentum_compaction.f90 +momentum_compaction + +File: code/multi_turn_tracking_analysis.f90 +multi_turn_tracking_analysis + +File: code/multi_turn_tracking_to_mat.f90 +multi_turn_tracking_to_mat + +File: code/multipass_all_info.f90 +multipass_all_info + +File: code/multipass_chain.f90 +multipass_chain + +File: code/multipole_ele_to_ab.f90 +multipole_ele_to_ab + +File: code/multipole_init.f90 +multipole_init + +File: code/new_control.f90 +new_control + +File: code/num_lords.f90 +num_lords + +File: code/offset_particle.f90 +offset_particle + +File: code/one_turn_mat_at_ele.f90 +one_turn_mat_at_ele + +File: code/orbit_amplitude_calc.f90 +orbit_amplitude_calc + +File: code/order_super_lord_slaves.f90 +order_super_lord_slaves + +File: code/particle_is_moving_backwards.f90 +particle_is_moving_backwards + +File: code/particle_is_moving_forward.f90 +particle_is_moving_forward + +File: code/particle_rf_time.f90 +particle_rf_time + +File: code/pointer_to_attribute.f90 +pointer_to_attribute + +File: code/pointer_to_ele_multipole.f90 +pointer_to_ele_multipole + +File: code/pointer_to_girder.f90 +pointer_to_girder + +File: code/pointer_to_lord.f90 +pointer_to_lord + +File: code/pointer_to_multipass_lord.f90 +pointer_to_multipass_lord + +File: code/pointer_to_next_ele.f90 +pointer_to_next_ele + +File: code/pointer_to_wake_ele.f90 +pointer_to_wake_ele + +File: code/pointers_to_attribute.f90 +pointers_to_attribute + +File: code/radiation_integrals.f90 +radiation_integrals + +File: code/reference_energy_correction.f90 +reference_energy_correction + +File: code/rel_tracking_charge_to_mass.f90 +rel_tracking_charge_to_mass + +File: code/relative_mode_flip.f90 +relative_mode_flip + +File: code/remove_eles_from_lat.f90 +remove_eles_from_lat + +File: code/reverse_lat.f90 +reverse_lat + +File: code/rf_clock_setup.f90 +rf_clock_setup + +File: code/rf_is_on.f90 +rf_is_on + +File: code/s_calc.f90 +s_calc + +File: code/save_a_step.f90 +save_a_step + +File: code/set_ele_attribute.f90 +set_ele_attribute + +File: code/set_ele_name.f90 +set_ele_name + +File: code/set_ele_real_attribute.f90 +set_ele_real_attribute + +File: code/set_ele_status_stale.f90 +set_ele_status_stale + +File: code/set_fringe_on_off.f90 +set_fringe_on_off + +File: code/set_on_off.f90 +set_on_off + +File: code/set_orbit_to_zero.f90 +set_orbit_to_zero + +File: code/set_particle_from_rf_time.f90 +set_particle_from_rf_time + +File: code/set_status_flags.f90 +set_status_flags + +File: code/set_tune.f90 +set_tune + +File: code/set_z_tune.f90 +set_z_tune + +File: code/significant_difference.f90 +significant_difference + +File: code/slice_lattice.f90 +slice_lattice + +File: code/spline_fit_orbit.f90 +spline_fit_orbit + +File: code/split_lat.f90 +split_lat + +File: code/start_branch_at.f90 +start_branch_at + +File: code/stream_ele_end.f90 +stream_ele_end + +File: code/taper_mag_strengths.f90 +taper_mag_strengths + +File: code/tilt_coords.f90 +tilt_coords + +File: code/track1.f90 +track1 + +File: code/track_all.f90 +track_all + +File: code/track_from_s_to_s.f90 +track_from_s_to_s + +File: code/track_many.f90 +track_many + +File: code/tracking_rad_map_setup.f90 +tracking_rad_map_setup + +File: code/transfer_map_calc.f90 +transfer_map_calc + +File: code/transfer_mat_from_twiss.f90 +transfer_mat_from_twiss + +File: code/transfer_matrix_calc.f90 +transfer_matrix_calc + +File: code/twiss_and_track_from_s_to_s.f90 +twiss_and_track_from_s_to_s + +File: code/twiss_and_track_intra_ele.f90 +twiss_and_track_intra_ele + +File: code/twiss_at_element.f90 +twiss_at_element + +File: code/twiss_at_start.f90 +twiss_at_start + +File: code/twiss_from_mat6.f90 +twiss_from_mat6 + +File: code/twiss_from_tracking.f90 +twiss_from_tracking + +File: code/twiss_propagate1.f90 +twiss_propagate1 +twiss1_propagate + +File: code/twiss_propagate_all.f90 +twiss_propagate_all + +File: code/type_coord.f90 +type_coord + +File: code/type_ele.f90 +type_ele + +File: code/type_twiss.f90 +type_twiss + +File: code/valid_field_calc.f90 +valid_field_calc + +File: code/valid_fringe_type.f90 +valid_fringe_type + +File: code/valid_mat6_calc_method.f90 +valid_mat6_calc_method + +File: code/valid_tracking_method.f90 +valid_tracking_method + +File: code/value_of_attribute.f90 +value_of_attribute + +File: code/write_bmad_lattice_file.f90 +write_bmad_lattice_file + +File: code/zero_ele_kicks.f90 +zero_ele_kicks + +File: code/zero_ele_offsets.f90 +zero_ele_offsets + +File: code/write_lattice_in_foreign_format.f90 +write_lattice_in_foreign_format + +File: code/set_tune_via_group_knobs.f90 +set_tune_via_group_knobs + +File: custom/apply_element_edge_kick_hook.f90 +apply_element_edge_kick_hook + +File: custom/check_aperture_limit_custom.f90 +check_aperture_limit_custom + +File: custom/distance_to_aperture_custom.f90 +distance_to_aperture_custom + +File: custom/ele_geometry_hook.f90 +ele_geometry_hook + +File: custom/ele_to_fibre_hook.f90 +ele_to_fibre_hook + +File: custom/em_field_custom.f90 +em_field_custom + +File: custom/init_custom.f90 +init_custom + +File: custom/make_mat6_custom.f90 +make_mat6_custom + +File: custom/radiation_integrals_custom.f90 +radiation_integrals_custom + +File: custom/time_runge_kutta_periodic_kick_hook.f90 +time_runge_kutta_periodic_kick_hook + +File: custom/track1_bunch_hook.f90 +track1_bunch_hook + +File: custom/track1_custom.f90 +track1_custom + +File: custom/track1_postprocess.f90 +track1_postprocess + +File: custom/track1_preprocess.f90 +track1_preprocess + +File: custom/track1_spin_custom.f90 +track1_spin_custom + +File: custom/track1_wake_hook.f90 +track1_wake_hook + +File: custom/track_many_hook.f90 +track_many_hook + +File: custom/wall_hit_handler_custom.f90 +wall_hit_handler_custom + +File: dummy_routines/xraylib_dummy.f90 +xraylib +crystal_struct +compounddatanist +r_e +crystal_getcrystal +crystal_f_h_structurefactor +atomicnumbertosymbol +atomicweight +atomicdensity +atomic_factors +elementdensity +getcompounddatanistbyindex +crystal_dspacing +freecompounddatanist + +File: geometry/bend_shift.f90 +bend_shift + +File: geometry/coords_body_to_local.f90 +coords_body_to_local + +File: geometry/coords_body_to_rel_exit.f90 +coords_body_to_rel_exit + +File: geometry/coords_curvilinear_to_floor.f90 +coords_curvilinear_to_floor + +File: geometry/coords_floor_to_curvilinear.f90 +coords_floor_to_curvilinear + +File: geometry/coords_floor_to_local_curvilinear.f90 +coords_floor_to_local_curvilinear + +File: geometry/coords_floor_to_relative.f90 +coords_floor_to_relative + +File: geometry/coords_local_curvilinear_to_body.f90 +coords_local_curvilinear_to_body + +File: geometry/coords_local_curvilinear_to_floor.f90 +coords_local_curvilinear_to_floor + +File: geometry/coords_relative_to_floor.f90 +coords_relative_to_floor + +File: geometry/ele_geometry.f90 +ele_geometry + +File: geometry/ele_geometry_with_misalignments.f90 +ele_geometry_with_misalignments + +File: geometry/ele_misalignment_L_S_calc.f90 +ele_misalignment_l_s_calc + +File: geometry/floor_angles_to_w_mat.f90 +floor_angles_to_w_mat + +File: geometry/floor_w_mat_to_angles.f90 +floor_w_mat_to_angles + +File: geometry/lat_geometry.f90 +lat_geometry + +File: geometry/orbit_to_floor_phase_space.f90 +orbit_to_floor_phase_space + +File: geometry/orbit_to_local_curvilinear.f90 +orbit_to_local_curvilinear + +File: geometry/patch_flips_propagation_direction.f90 +patch_flips_propagation_direction + +File: geometry/s_body_calc.f90 +s_body_calc + +File: geometry/update_floor_angles.f90 +update_floor_angles + +File: geometry/w_mat_for_bend_angle.f90 +w_mat_for_bend_angle + +File: geometry/w_mat_for_tilt.f90 +w_mat_for_tilt + +File: geometry/w_mat_for_x_pitch.f90 +w_mat_for_x_pitch + +File: geometry/w_mat_for_y_pitch.f90 +w_mat_for_y_pitch + +File: hdf5/hdf5_interface.f90 +hdf5_interface +h5o_type_attribute_f +hdf5_info_struct +hdf5_read_dataset_int +procedure +procedure +procedure +procedure +hdf5_read_dataset_real +procedure +procedure +procedure +procedure +hdf5_read_attribute_real +procedure +procedure +hdf5_read_attribute_int +procedure +procedure +hdf5_write_dataset_int +procedure +procedure +procedure +procedure +hdf5_write_dataset_real +procedure +procedure +procedure +procedure +hdf5_write_attribute_real +procedure +procedure +hdf5_write_attribute_int +procedure +procedure +hdf5_write_attribute_string +procedure +procedure +hdf5_write_attribute_string_rank0 +hdf5_write_attribute_string_rank1 +hdf5_write_attribute_int_rank0 +hdf5_write_attribute_int_rank1 +hdf5_write_attribute_real_rank0 +hdf5_write_attribute_real_rank1 +hdf5_open_file +hdf5_open_object +hdf5_close_object +hdf5_exists +hdf5_open_group +hdf5_group_n_links +hdf5_get_object_by_index +hdf5_open_dataset +hdf5_num_attributes +hdf5_get_attribute_by_index +hdf5_attribute_info +hdf5_object_info +hdf5_read_attribute_int_rank0 +hdf5_read_attribute_int_rank1 +hdf5_read_attribute_real_rank0 +hdf5_read_attribute_real_rank1 +hdf5_read_attribute_alloc_string +hdf5_read_attribute_string +hdf5_write_dataset_real_rank0 +hdf5_write_dataset_real_rank1 +hdf5_write_dataset_real_rank2 +hdf5_write_dataset_real_rank3 +hdf5_write_dataset_int_rank0 +hdf5_write_dataset_int_rank1 +hdf5_write_dataset_int_rank2 +hdf5_write_dataset_int_rank3 +hdf5_read_dataorder +hdf5_check_open +hdf5_read_dataset_real_rank0 +hdf5_read_dataset_real_rank1 +hdf5_read_dataset_real_rank2 +hdf5_read_dataset_real_rank3 +hdf5_read_dataset_int_rank0 +hdf5_read_dataset_int_rank1 +hdf5_read_dataset_int_rank2 +hdf5_read_dataset_int_rank3 + +File: hdf5/hdf5_openpmd_mod.f90 +hdf5_openpmd_mod +pmd_unit_struct +dim_1 +dim_length +dim_mass +dim_time +dim_current +dim_temperture +dim_mol +dim_luminous +dim_charge +dim_electric_field +dim_velocity +dim_energy +dim_momentum +dim_tesla +dim_hbar +pmd_write_int_to_dataset +procedure +procedure +procedure +pmd_write_real_to_dataset +procedure +procedure +procedure +pmd_write_complex_to_dataset +procedure +procedure +procedure +pmd_read_int_dataset +procedure +procedure +procedure +pmd_read_real_dataset +procedure +procedure +procedure +pmd_read_complex_dataset +procedure +procedure +procedure +pmd_init_compound_complex +pmd_kill_compound_complex +pmd_write_int_to_dataset_rank1 +pmd_write_int_to_dataset_rank2 +pmd_write_int_to_dataset_rank3 +pmd_write_int_to_pseudo_dataset +pmd_write_real_to_dataset_rank1 +pmd_write_real_to_dataset_rank2 +pmd_write_real_to_dataset_rank3 +pmd_write_real_to_pseudo_dataset +pmd_write_complex_to_dataset_rank1 +pmd_write_complex_to_dataset_rank2 +pmd_write_complex_to_dataset_rank3 +pmd_write_complex_to_pseudo_dataset +my_h5ltset_attribute_complex +pmd_write_units_to_dataset +pmd_read_int_dataset_rank1 +pmd_read_int_dataset_rank2 +pmd_read_int_dataset_rank3 +pmd_read_real_dataset_rank1 +pmd_read_real_dataset_rank2 +pmd_read_real_dataset_rank3 +pmd_read_complex_dataset_rank1 +pmd_read_complex_dataset_rank2 +pmd_read_complex_dataset_rank3 + +File: hdf5/hdf5_read_beam.f90 +hdf5_read_beam + +File: hdf5/hdf5_read_grid_field.f90 +hdf5_read_grid_field + +File: hdf5/hdf5_write_beam.f90 +hdf5_write_beam + +File: hdf5/hdf5_write_grid_field.f90 +hdf5_write_grid_field + +File: interface/astra_interface_mod.f90 +astra_interface_mod +astra_lattice_param_struct +write_astra_lattice_file +write_astra_ele +write_astra_bend +rotate3 +get_astra_fieldgrid_name_and_scaling +write_astra_field_grid_file +write_astra_field_grid_file_3d +astra_max_field_reference + +File: interface/blender_interface_mod.f90 +blender_interface_mod +write_blender_lat_layout +skip_ele_blender +write_blender_ele + +File: interface/gpt_interface_mod.f90 +gpt_interface_mod +gpt_lat_param_struct +gpt_to_particle_bunch +write_gpt_lattice_file +write_gpt_ele +get_gpt_fieldgrid_name_and_scaling +gpt_field_grid_scaling +write_gpt_field_grid_file_1d +write_gpt_field_grid_file_2d +write_gpt_field_grid_file_3d +gpt_max_field_reference +rotate_field_zx +convert_local_curvilinear_to_local_cartesian +convert_local_cartesian_to_local_curvilinear + +File: interface/opal_interface_mod.f90 +opal_interface_mod +write_opal_lattice_file +get_opal_fieldgrid_name_and_scaling +write_opal_field_grid_file +write_opal_line + +File: interface/xraylib_interface.f90 +xraylib_interface +xraylib_z_max$ +photon_absorption_and_phase_shift +multilayer_type_to_multilayer_params +crystal_type_to_crystal_params +xraylib_nist_compound + +File: low_level/absolute_time_tracking.f90 +absolute_time_tracking + +File: low_level/ac_kicker_amp.f90 +ac_kicker_amp + +File: low_level/allocate_branch_array.f90 +allocate_branch_array + +File: low_level/allocate_element_array.f90 +allocate_element_array + +File: low_level/allocate_lat_ele_array.f90 +allocate_lat_ele_array + +File: low_level/apply_element_edge_kick.f90 +apply_element_edge_kick + +File: low_level/apply_energy_kick.f90 +apply_energy_kick + +File: low_level/autoscale_phase_and_amp.f90 +autoscale_phase_and_amp + +File: low_level/average_twiss.f90 +average_twiss + +File: low_level/bbi_slice_calc.f90 +bbi_slice_calc + +File: low_level/c_multi.f90 +c_multi + +File: low_level/calc_next_fringe_edge.f90 +calc_next_fringe_edge + +File: low_level/calc_super_slave_key.f90 +calc_super_slave_key + +File: low_level/check_aperture_limit.f90 +check_aperture_limit + +File: low_level/create_wiggler_cartesian_map.f90 +create_wiggler_cartesian_map + +File: low_level/deallocate_ele_array_pointers.f90 +deallocate_ele_array_pointers + +File: low_level/deallocate_ele_pointers.f90 +deallocate_ele_pointers + +File: low_level/deallocate_lat_pointers.f90 +deallocate_lat_pointers + +File: low_level/diffraction_plate_or_mask_hit_spot.f90 +diffraction_plate_or_mask_hit_spot + +File: low_level/distance_to_aperture.f90 +distance_to_aperture + +File: low_level/ele_has_constant_ds_dt_ref.f90 +ele_has_constant_ds_dt_ref + +File: low_level/ele_loc.f90 +ele_loc + +File: low_level/ele_nametable_index.f90 +ele_nametable_index + +File: low_level/entering_element.f90 +entering_element + +File: low_level/g_integrals_calc.f90 +g_integrals_calc + +File: low_level/gen_grad1_to_em_taylor.f90 +gen_grad1_to_em_taylor + +File: low_level/gen_grad_at_s_to_em_taylor.f90 +gen_grad_at_s_to_em_taylor + +File: low_level/gradient_shift_sr_wake.f90 +gradient_shift_sr_wake + +File: low_level/init_bmad.f90 +init_bmad + +File: low_level/init_ele.f90 +init_ele + +File: low_level/init_fringe_info.f90 +init_fringe_info + +File: low_level/init_lat.f90 +init_lat + +File: low_level/knot_interpolate.f90 +knot_interpolate + +File: low_level/make_g2_mats.f90 +make_g2_mats + +File: low_level/make_mat6_bmad.f90 +make_mat6_bmad + +File: low_level/make_mat6_symp_lie_ptc.f90 +make_mat6_symp_lie_ptc + +File: low_level/make_mat6_taylor.f90 +make_mat6_taylor + +File: low_level/make_mat6_tracking.f90 +make_mat6_tracking + +File: low_level/master_parameter_value.f90 +master_parameter_value + +File: low_level/mat4_multipole.f90 +mat4_multipole + +File: low_level/mat6_add_offsets.f90 +mat6_add_offsets + +File: low_level/mat6_add_pitch.f90 +mat6_add_pitch + +File: low_level/mat_symp_decouple.f90 +mat_symp_decouple + +File: low_level/match_ele_to_mat6.f90 +match_ele_to_mat6 + +File: low_level/mexp.f90 +mexp + +File: low_level/multipole_kick_mat.f90 +multipole_kick_mat + +File: low_level/orbit_too_large.f90 +orbit_too_large + +File: low_level/patch_length.f90 +patch_length + +File: low_level/physical_ele_end.f90 +physical_ele_end + +File: low_level/pointer_to_branch.f90 +pointer_to_branch_given_name +pointer_to_branch_given_ele + +File: low_level/pointer_to_indexed_attribute.f90 +pointer_to_indexed_attribute + +File: low_level/quad_mat2_calc.f90 +quad_mat2_calc + +File: low_level/re_allocate_eles.f90 +re_allocate_eles + +File: low_level/reallocate_control.f90 +reallocate_control + +File: low_level/reallocate_expression_stack.f90 +reallocate_expression_stack + +File: low_level/remove_lord_slave_link.f90 +remove_lord_slave_link + +File: low_level/rf_coupler_kick.f90 +rf_coupler_kick + +File: low_level/rf_ref_time_offset.f90 +rf_ref_time_offset + +File: low_level/set_lords_status_stale.f90 +set_lords_status_stale + +File: low_level/sol_quad_mat6_calc.f90 +sol_quad_mat6_calc + +File: low_level/solenoid_track_and_mat.f90 +solenoid_track_and_mat + +File: low_level/strong_beam_sigma_calc.f90 +strong_beam_sigma_calc + +File: low_level/strong_beam_strength.f90 +strong_beam_strength + +File: low_level/symp_lie_bmad.f90 +symp_lie_bmad + +File: low_level/tilt_mat6.f90 +tilt_mat6 + +File: low_level/track1_bmad.f90 +track1_bmad + +File: low_level/track1_linear.f90 +track1_linear + +File: low_level/track1_runge_kutta.f90 +track1_runge_kutta + +File: low_level/track1_spin.f90 +track1_spin + +File: low_level/track1_spin_bmad.f90 +track1_spin_bmad + +File: low_level/track1_spin_taylor.f90 +track1_spin_taylor + +File: low_level/track1_symp_lie_ptc.f90 +track1_symp_lie_ptc + +File: low_level/track1_taylor.f90 +track1_taylor + +File: low_level/track1_time_runge_kutta.f90 +track1_time_runge_kutta + +File: low_level/track_a_beambeam.f90 +track_a_beambeam + +File: low_level/track_a_bend.f90 +track_a_bend +sbend_body_with_k1_map + +File: low_level/track_a_converter.f90 +track_a_converter + +File: low_level/track_a_crab_cavity.f90 +track_a_crab_cavity + +File: low_level/track_a_drift.f90 +track_a_drift + +File: low_level/track_a_foil.f90 +track_a_foil + +File: low_level/track_a_gkicker.f90 +track_a_gkicker + +File: low_level/track_a_lcavity.f90 +track_a_lcavity + +File: low_level/track_a_mask.f90 +track_a_mask + +File: low_level/track_a_match.f90 +track_a_match + +File: low_level/track_a_patch.f90 +track_a_patch + +File: low_level/track_a_quadrupole.f90 +track_a_quadrupole + +File: low_level/track_a_rfcavity.f90 +track_a_rfcavity + +File: low_level/track_a_sad_mult.f90 +track_a_sad_mult + +File: low_level/track_a_sol_quad.f90 +track_a_sol_quad + +File: low_level/track_a_thick_multipole.f90 +track_a_thick_multipole + +File: low_level/track_a_wiggler.f90 +track_a_wiggler + +File: low_level/track_a_zero_length_element.f90 +track_a_zero_length_element + +File: low_level/transfer_ac_kick.f90 +transfer_ac_kick + +File: low_level/transfer_branch.f90 +transfer_branch + +File: low_level/transfer_branch_parameters.f90 +transfer_branch_parameters + +File: low_level/transfer_branches.f90 +transfer_branches + +File: low_level/transfer_ele.f90 +transfer_ele + +File: low_level/transfer_ele_taylor.f90 +transfer_ele_taylor + +File: low_level/transfer_eles.f90 +transfer_eles + +File: low_level/transfer_fieldmap.f90 +transfer_fieldmap + +File: low_level/transfer_lat.f90 +transfer_lat + +File: low_level/transfer_lat_parameters.f90 +transfer_lat_parameters + +File: low_level/transfer_mat2_from_twiss.f90 +transfer_mat2_from_twiss + +File: low_level/transfer_twiss.f90 +transfer_twiss + +File: low_level/transfer_wake.f90 +transfer_wake + +File: low_level/transfer_wall3d.f90 +transfer_wall3d + +File: low_level/twiss_from_mat2.f90 +twiss_from_mat2 + +File: low_level/twiss_to_1_turn_mat.f90 +twiss_to_1_turn_mat + +File: low_level/unlink_fieldmap.f90 +unlink_fieldmap + +File: low_level/unlink_wall3d.f90 +unlink_wall3d + +File: modules/bmad.f90 +bmad + +File: modules/bmad_interface.f90 +bmad_interface + +File: modules/bmad_routine_interface.f90 +bmad_routine_interface +pointer_to_branch +pointer_to_branch_given_name +pointer_to_branch_given_ele + +File: modules/changed_attribute_bookkeeper.f90 +changed_attribute_bookkeeper +set_flags_for_changed_attribute +procedure +procedure +procedure +procedure +procedure +set_flags_for_changed_all_attribute +set_flags_for_changed_integer_attribute +set_flags_for_changed_logical_attribute +set_flags_for_changed_lat_attribute +set_flags_for_changed_real_attribute + +File: modules/complex_taylor_mod.f90 +complex_taylor_mod +complex_taylor_coef +procedure +procedure +complex_taylor_clean +complex_taylor_coef1 +complex_taylor_coef2 +type_complex_taylors +complex_taylor_make_unit +add_complex_taylor_term1 +add_complex_taylor_term2 +kill_complex_taylor +sort_complex_taylor_terms +complex_taylor_exponent_index +complex_taylor_to_mat6 +mat6_to_complex_taylor +track_complex_taylor +truncate_complex_taylor_to_order + +File: modules/coord_mod.f90 +coord_mod +reallocate_coord +procedure +procedure +init_coord +procedure +procedure +procedure +reallocate_coord_n +reallocate_coord_lat +reallocate_coord_array +init_coord1 +init_coord2 +init_coord3 + +File: modules/dynamic_aperture_mod.f90 +dynamic_aperture_mod +dynamic_aperture_scan +set_branch_and_ele_for_omp +dynamic_aperture_point + +File: modules/element_at_s_mod.f90 +element_at_s_mod +element_at_s +procedure +procedure +element_at_s_branch +element_at_s_lat +pointer_to_element_at_s + +File: modules/element_modeling_mod.f90 +element_modeling_mod +wiggler_modeling_common_struct +create_sol_quad_model +create_planar_wiggler_model +wig_func +yfit_calc +mat_flatten + +File: modules/em_field_mod.f90 +em_field_mod +g_bend_from_em_field +to_fieldmap_coords +rotate_em_field +grid_field_interpolate +field_interpolate_3d +em_field_derivatives +gen_grad_field + +File: modules/equal_mod.f90 +equal_mod +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +operator +procedure +map1_times_map1 +em_field_plus_em_field +ele_equal_ele +ele_equals_ele +ele_vec_equal_ele_vec +lat_equal_lat +lat_vec_equal_lat_vec +branch_equal_branch +coord_equal_coord +taylor_equal_taylor +taylors_equal_taylors +init_taylor_series +em_taylor_equal_em_taylor +em_taylors_equal_em_taylors +init_em_taylor_series +complex_taylor_equal_complex_taylor +complex_taylors_equal_complex_taylors +init_complex_taylor_series +bunch_equal_bunch +beam_equal_beam + +File: modules/equality_mod.f90 +equality_mod +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +eq_spline +eq_spin_polar +eq_surface_orientation +eq_ac_kicker_time +eq_ac_kicker_freq +eq_ac_kicker +eq_interval1_coef +eq_photon_reflect_table +eq_photon_reflect_surface +eq_coord +eq_coord_array +eq_bpm_phase_coupling +eq_expression_atom +eq_wake_sr_mode +eq_wake_sr +eq_wake_lr_mode +eq_wake_lr +eq_lat_ele_loc +eq_wake +eq_taylor_term +eq_taylor +eq_em_taylor_term +eq_em_taylor +eq_cartesian_map_term1 +eq_cartesian_map_term +eq_cartesian_map +eq_cylindrical_map_term1 +eq_cylindrical_map_term +eq_cylindrical_map +eq_grid_field_pt1 +eq_grid_field_pt +eq_grid_field +eq_floor_position +eq_high_energy_space_charge +eq_xy_disp +eq_twiss +eq_mode3 +eq_bookkeeping_state +eq_rad_map +eq_rad_map_ele +eq_gen_grad1 +eq_gen_grad_map +eq_surface_grid_pt +eq_surface_grid +eq_target_point +eq_surface_curvature +eq_photon_target +eq_photon_material +eq_pixel_pt +eq_pixel_detec +eq_photon_element +eq_wall3d_vertex +eq_wall3d_section +eq_wall3d +eq_control +eq_controller_var1 +eq_controller +eq_ellipse_beam_init +eq_kv_beam_init +eq_grid_beam_init +eq_beam_init +eq_lat_param +eq_mode_info +eq_pre_tracker +eq_anormal_mode +eq_linac_normal_mode +eq_normal_modes +eq_em_field +eq_strong_beam +eq_track_point +eq_track +eq_space_charge_common +eq_bmad_common +eq_rad_int1 +eq_rad_int_branch +eq_rad_int_all_ele +eq_ele +eq_complex_taylor_term +eq_complex_taylor +eq_branch +eq_lat +eq_bunch +eq_bunch_params +eq_beam +eq_aperture_point +eq_aperture_param +eq_aperture_scan + +File: modules/expression_mod.f90 +expression_mod +expression_string_to_stack +pushit +expression_value +expression_stack_value +expression_stack_to_string +split_expression_string +linear_coef + +File: modules/fringe_mod.f90 +fringe_mod +bend_edge_kick +linear_bend_edge_kick +hwang_bend_edge_kick +sad_mult_hard_bend_edge_kick +soft_quadrupole_edge_kick +hard_multipole_edge_kick +sad_soft_bend_edge_kick +ptc_wedger +ptc_fringe_dipoler +ptc_rot_xz +exact_bend_edge_kick + +File: modules/integration_timer_mod.f90 +integration_timer_mod +integration_timer +procedure +procedure +integration_timer_ele +integration_timer_fibre +get_taylor +diff +term_diff + +File: modules/mad_mod.f90 +mad_mod +mad_energy_struct +mad_map_struct +make_mat6_mad +make_mad_map +mad_add_offsets_and_multipoles +mad_drift +mad_elsep +mad_sextupole +mad_sbend +mad_sbend_fringe +mad_sbend_body +mad_tmfoc +mad_quadrupole +mad_rfcavity +mad_solenoid +mad_tmsymm +mad_tmtilt +mad_concat_map2 +mad_track1 +track1_mad +mad_map_to_taylor +taylor_to_mad_map +make_unit_mad_map + +File: modules/measurement_mod.f90 +measurement_mod +ele_is_monitor +compute_measurement_distortion_mat +to_orbit_reading +to_eta_reading +to_phase_and_coupling_reading + +File: modules/mode3_mod.f90 +mode3_mod +m +o +l +t6_to_b123 +normal_mode3_calc +make_hvbp +xyz_to_action +action_to_xyz +eigen_decomp_6mat +mytan +order_evecs_by_n_similarity +order_evecs_by_plane_dominance +order_evecs_by_tune +make_n +get_emit_from_sigma_mat +beam_tilts +make_smat_from_abc +normalize_evecs +project_emit_to_xyz +twiss3_propagate_all +twiss3_propagate1 +twiss3_from_twiss2 +twiss3_at_start + +File: modules/multipole_mod.f90 +multipole_mod +multipole_ab_to_kt +multipole1_ab_to_kt +multipole_ele_to_kt +multipole_kt_to_ab +multipole1_kt_to_ab +multipole_kicks +ab_multipole_kicks +multipole_kick +ab_multipole_kick +elec_multipole_field + +File: modules/pointer_to_ele_mod.f90 +pointer_to_ele_mod +pointer_to_ele +procedure +procedure +procedure +procedure +pointer_to_ele1 +pointer_to_ele2 +pointer_to_ele3 +pointer_to_ele4 +pointer_to_field_ele +num_field_eles + +File: modules/rad_6d_mod.f90 +rad_6d_mod +emit_6d +rad_damp_and_stoc_mats +rad1_damp_and_stoc_mats +rad_g_integrals + +File: modules/rad_int_common.f90 +rad_int_common +no_cache$ +cache_no_misalign$ +rad_int_track_point_struct +rad_int_cache1_struct +rad_int_cache_struct +rad_int_info_struct +qromb_rad_int +propagate_part_way +calc_wiggler_g_params + +File: modules/runge_kutta_mod.f90 +runge_kutta_mod +runge_kutta_common_struct +odeint_bmad +rk_adaptive_step +rk_step1 +kick_vector_calc + +File: modules/srdt_mod.f90 +srdt_mod +summation_rdt_struct +srdt_first +srdt_second +sliced_eles_struct +srdt_calc +srdt_calc_with_cache +make_srdt_cache +make_slices +srdt_lsq_solution + +File: modules/superimpose_mod.f90 +superimpose_mod +add_superimpose +split_this_lat +delete_underscore +adjust_super_slave_names +adjust_drift_names + +File: modules/taylor_mod.f90 +taylor_mod +taylor_clean +taylor_coef +taylor_expn +type_taylors +taylor_make_quaternion_unit +taylor_make_unit +taylor_term_index +add_taylor_term +remove_taylor_term +kill_taylor +taylor_extract_zeroth_order_part +sort_taylor_terms +taylor_exponent_index +taylor_to_mat6 +mat6_to_taylor +track_taylor +truncate_taylor_to_order +evaluate_em_taylor +add_em_taylor_term + +File: modules/time_tracker_mod.f90 +time_tracker_mod +odeint_bmad_time +rk_adaptive_time_step +rk_time_step1 +em_field_kick_vector_time +particle_in_global_frame +drift_orbit_time +write_time_particle_distribution +track_until_dead + +File: modules/transfer_map_mod.f90 +transfer_map_mod +transfer_map_from_s_to_s +transfer_this_map +mat6_from_s_to_s +transfer_this_mat +concat_transfer_mat + +File: modules/tune_tracker.f90 +tune_tracker_mod +max_tt +tt_param_struct +tt_state_struct +init_dtt +reset_dtt +dest_dtt +tt_update +get_dtt +modulator +check_id + +File: modules/twiss_and_track_mod.f90 +twiss_and_track_mod +twiss_and_track +procedure +procedure +twiss_and_track_branch +twiss_and_track_all +twiss_and_track1 +twiss_and_track_at_s + +File: modules/wall3d_mod.f90 +wall3d_mod +re_allocate +procedure +procedure +re_allocate_wall3d_vertex_array +re_allocate_wall3d_section_array +wall3d_initializer +wall3d_section_initializer +calc_wall_radius +wall3d_d_radius +pointer_to_wall3d +wall3d_to_position +create_concatenated_wall3d +mark_patch_regions + +File: modules/write_lat_file_mod.f90 +write_lat_file_mod +write_line_element +re_str +array_re_str +cmplx_re_str +rchomp +write_lat_line +value_to_line +write_lat_in_sad_format + +File: modules/bookkeeper_mod.f90 +bookkeeper_mod +makeup_group_lord +makeup_multipass_slave +makeup_super_slave +makeup_super_slave1 +compute_slave_coupler +makeup_control_slave +aperture_bookkeeper +attributes_need_bookkeeping + +File: modules/attribute_mod.f90 +attribute_mod +does_not_exist$ +is_free$ +quasi_free$ +dependent$ +private$ +overlay_slave$ +field_master_dependent$ +ele_attribute_struct +attribute_free +procedure +procedure +procedure +attribute_index +procedure +procedure +attribute_name +procedure +procedure +attribute_index1 +attribute_index2 +attribute_name1 +attribute_name2 +attribute_info +init_attribute_name_array +init_short_attrib_array +init_attribute_name1 +has_orientation_attributes +attribute_type +attribute_units +string_attrib +switch_attrib_value_name +n_attrib_string_max_len +has_attribute +custom_attribute_ubound_index +set_custom_attribute_name +custom_ele_attrib_name_list +attribute_free1 +attribute_free2 +attribute_free3 +check_this_attribute_free +field_attribute_free + +File: modules/bmad_struct.f90 +bmad_struct +bmad_inc_version$ +none$ +fringe_field_info_struct +n_pole_maxx +old_control_var_offset$ +var_offset$ +n_var_max$ +taylor_offset$ +expression_atom_struct +bmad_standard$ +symp_lie_ptc$ +runge_kutta$ +linear$ +tracking$ +time_runge_kutta$ +fixed_step_runge_kutta$ +symp_lie_bmad$ +auto$ +sprint$ +fixed_step_time_runge_kutta$ +mad$ +n_methods$ +tracking_method_name +spin_tracking_method_name +mat6_calc_method_name +drift_kick$ +matrix_kick$ +ripken_kick$ +ptc_integration_type_name +sub_key_name +sector$ +straight$ +ptc_field_geometry_name +fieldmap$ +planar_model$ +refer_to_lords$ +no_field$ +helical_model$ +soft_edge$ +field_calc_name +uniform$ +gaussian$ +spherical$ +curve$ +distribution_name +ix_slice_slave$ +minor_slave$ +super_slave$ +free$ +group_lord$ +super_lord$ +overlay_lord$ +girder_lord$ +multipass_lord$ +multipass_slave$ +not_a_lord$ +slice_slave$ +control_lord$ +ramper_lord$ +control_name +set$ +unset$ +auto_aperture$ +rectangular$ +elliptical$ +wall3d$ +custom_aperture$ +aperture_type_name +soft_edge_only$ +hard_edge_only$ +full$ +sad_full$ +linear_edge$ +basic_bend$ +fringe_type_name +standing_wave$ +traveling_wave$ +ptc_standard$ +cavity_type_name +x_invariant$ +multipole_symmetry$ +ptc_fringe_geometry_name +control_var$ +old_control_var$ +all_control_var$ +elec_multipole$ +ok$ +in_stop_band$ +non_symplectic$ +unstable$ +unstable_a$ +unstable_b$ +xfer_mat_calc_failure$ +twiss_propagate_failure$ +no_closed_orbit$ +twiss_struct +include_kicks$ +short$ +user_set$ +first_pass$ +multipass_ref_energy_name +interval1_coef_struct +photon_reflect_table_struct +photon_reflect_surface_struct +incoherent$ +coherent$ +photon_type_name +ascii$ +binary$ +hdf5$ +one_file$ +num_ele_attrib$ +off$ +on$ +save_state$ +restore_state$ +off_and_save$ +horizontally_pure$ +vertically_pure$ +exact_multipoles_name +one_dim$ +steady_state_3d$ +csr_method_name +slice$ +fft_3d$ +cathode_fft_3d$ +space_charge_method_name +pauli_struct +spin_eigen_struct +spin_axis_struct +spin_matching_struct +spin_polar_struct +spin_orbit_map1_struct +linear_isf1_struct +linear_ele_isf_struct +x_unit_vec +y_unit_vec +z_unit_vec +magnetic$ +electric$ +mixed$ +em_field_type_name +bragg_diffracted$ +forward_diffracted$ +undiffracted$ +ref_orbit_follows_name +reflection$ +transmission$ +mode_name +anchor_beginning$ +anchor_center$ +anchor_end$ +anchor_pt_name +entrance_end$ +exit_end$ +both_ends$ +no_end$ +no_aperture$ +nowhere$ +continuous$ +surface$ +wall_transition$ +upstream_end$ +downstream_end$ +inside$ +center_pt$ +start_end$ +first_track_edge$ +second_track_edge$ +in_between$ +aperture_at_name +end_at_name +ref_coords_name +ref_pt_name +location_name +normal$ +clear$ +opaque$ +wall_start$ +wall_end$ +wall3d_section_type_name +wall3d_vertex_struct +absolute$ +relative$ +shifted_to_relative$ +wall3d_section_struct +chamber_wall$ +mask_plate$ +wall3d_name +wall3d_struct +taylor_term_struct +complex_taylor_term_struct +taylor_struct +complex_taylor_struct +x_plane$ +y_plane$ +z_plane$ +n_plane$ +s_plane$ +plane_name +field_plane_name +moving_forward$ +pre_born$ +alive$ +lost$ +lost_neg_x_aperture$ +lost_pos_x_aperture$ +lost_neg_y_aperture$ +lost_pos_y_aperture$ +lost_pz_aperture$ +lost_z_aperture$ +vec0$ +coord_struct +coord_array_struct +bpm_phase_coupling_struct +x_polarization$ +y_polarization$ +sr_transverse_polarization_name +leading$ +trailing$ +x_leading$ +y_leading$ +x_trailing$ +y_trailing$ +sr_transverse_position_dep_name +sr_longitudinal_position_dep_name +wake_sr_mode_struct +wake_sr_struct +wake_lr_mode_struct +wake_lr_struct +wake_struct +ac_kicker_time_struct +ac_kicker_freq_struct +ac_kicker_struct +family_y$ +family_x$ +family_qu$ +family_sq$ +hyper_y$ +hyper_xy$ +hyper_x$ +cartesian_map_family_name +cartesian_map_form_name +cartesian_map_term1_struct +cartesian_map_term_struct +cartesian_map_struct +cylindrical_map_term1_struct +cylindrical_map_term_struct +cylindrical_map_struct +gen_grad1_struct +gen_grad_map_struct +grid_field_pt1_struct +grid_field_pt_struct +grid_field_struct +em_taylor_term_struct +em_taylor_struct +vec3_zero$ +vec6_zero$ +floor_position_struct +high_energy_space_charge_struct +xy_disp_struct +lat_ele_loc_struct +lat_ele_order1_struct +lat_ele_order_array_struct +lat_ele_order_struct +ele_pointer_struct +branch_pointer_struct +lat_pointer_struct +mode3_struct +super_ok$ +stale$ +attribute_group$ +control_group$ +floor_position_group$ +s_position_group$ +ref_energy_group$ +mat6_group$ +rad_int_group$ +all_groups$ +s_and_floor_position_group$ +bookkeeping_state_struct +multipole_cache_struct +rad_map_struct +rad_map_ele_struct +surface_orientation_struct +surface_grid_pt_struct +surface_grid_struct +segmented$ +h_misalign$ +displacement$ +surface_grid_type_name +pixel_pt_struct +pixel_detec_struct +surface_curvature_struct +target_point_struct +photon_target_struct +photon_material_struct +polarized$ +unpolarized$ +polarization_name +photon_element_struct +bunch_struct +beam_struct +ellipse_beam_init_struct +kv_beam_init_struct +grid_beam_init_struct +beam_init_struct +random_engine_name +random_gauss_converter_name +beam_distribution_type_name +bunch_params_struct +bunch_track_struct +converter_prob_pc_r_struct +converter_dir_1d_struct +converter_dir_2d_struct +converter_dir_coef_struct +converter_direction_out_struct +converter_sub_distribution_struct +converter_distribution_struct +converter_struct +control_struct +controller_var1_struct +cubic$ +interpolation_name +controller_struct +ele_struct +lat_param_struct +ptc_layout_pointer_struct +ptc_branch1_struct +mode_info_struct +resonance_h_struct +bmad_normal_form_struct +ptc_normal_form_struct +branch_struct +opal$ +impactt$ +pre_tracker_struct +lat_struct +coord_name +coord_name_cap +drift$ +sbend$ +quadrupole$ +group$ +sextupole$ +overlay$ +custom$ +taylor$ +rfcavity$ +elseparator$ +beambeam$ +wiggler$ +sol_quad$ +marker$ +kicker$ +hybrid$ +octupole$ +rbend$ +multipole$ +def_bmad_com$ +def_mad_beam$ +ab_multipole$ +solenoid$ +patch$ +lcavity$ +def_parameter$ +null_ele$ +beginning_ele$ +def_line$ +match$ +monitor$ +instrument$ +hkicker$ +vkicker$ +rcollimator$ +ecollimator$ +girder$ +converter$ +def_particle_start$ +photon_fork$ +fork$ +mirror$ +crystal$ +pipe$ +capillary$ +multilayer_mirror$ +e_gun$ +em_field$ +floor_shift$ +fiducial$ +undulator$ +diffraction_plate$ +photon_init$ +sample$ +detector$ +sad_mult$ +mask$ +ac_kicker$ +lens$ +def_space_charge_com$ +crab_cavity$ +ramper$ +def_ptc_com$ +rf_bend$ +gkicker$ +foil$ +n_key$ +key_name +val1$ +val2$ +val3$ +val4$ +val5$ +beta_a0$ +alpha_a0$ +beta_b0$ +alpha_b0$ +beta_a1$ +alpha_a1$ +beta_b1$ +alpha_b1$ +dphi_a$ +dphi_b$ +eta_x0$ +etap_x0$ +eta_y0$ +etap_y0$ +eta_x1$ +etap_x1$ +eta_y1$ +etap_y1$ +c11_mat0$ +c12_mat0$ +c21_mat0$ +c22_mat0$ +mode_flip0$ +c11_mat1$ +c12_mat1$ +c21_mat1$ +c22_mat1$ +mode_flip1$ +x0$ +px0$ +y0$ +py0$ +z0$ +pz0$ +x1$ +px1$ +y1$ +py1$ +z1$ +pz1$ +phase_trombone_input$ +phase_trombone$ +match_end_input$ +match_end$ +match_end_orbit_input$ +match_end_orbit$ +delta_time$ +x$ +px$ +y$ +py$ +z$ +pz$ +t$ +field_x$ +field_y$ +phase_x$ +phase_y$ +e_photon$ +e1$ +e2$ +fint$ +fintx$ +hgap$ +hgapx$ +h1$ +h2$ +radius$ +focal_strength$ +l$ +tilt$ +roll$ +n_part$ +inherit_from_fork$ +ref_tilt$ +direction$ +repetition_frequency$ +kick$ +x_gain_err$ +taylor_order$ +r_solenoid$ +k1$ +kx$ +harmon$ +h_displace$ +y_gain_err$ +final_charge$ +critical_angle_factor$ +tilt_corr$ +ref_coords$ +dt_max$ +graze_angle$ +k2$ +b_max$ +v_displace$ +gradient_tot$ +ks$ +flexible$ +crunch$ +ref_orbit_follows$ +pc_out_min$ +gradient$ +k3$ +noise$ +new_branch$ +ix_branch$ +g_max$ +g$ +symmetry$ +field_scale_factor$ +pc_out_max$ +dg$ +bbi_const$ +osc_amplitude$ +ix_to_branch$ +angle_out_max$ +gradient_err$ +critical_angle$ +bragg_angle_in$ +spin_dn_dpz_x$ +delta_e_ref$ +interpolation$ +bragg_angle_out$ +k1x$ +spin_dn_dpz_y$ +charge$ +x_gain_calib$ +ix_to_element$ +voltage$ +g_tot$ +rho$ +voltage_err$ +bragg_angle$ +k1y$ +n_particle$ +spin_dn_dpz_z$ +fringe_type$ +dbragg_angle_de$ +fringe_at$ +gang$ +darwin_width_sigma$ +darwin_width_pi$ +spin_fringe_on$ +pendellosung_period_sigma$ +sig_x$ +exact_multipoles$ +pendellosung_period_pi$ +sig_y$ +graze_angle_in$ +r0_elec$ +rf_frequency$ +sig_z$ +graze_angle_out$ +r0_mag$ +rf_wavelength$ +sig_vx$ +static_linear_map$ +sig_vy$ +autoscale_amplitude$ +sig_e$ +autoscale_phase$ +sig_pz$ +d1_thickness$ +default_tracking_species$ +n_slice$ +y_gain_calib$ +constant_ref_energy$ +longitudinal_mode$ +sig_e2$ +fb1$ +polarity$ +crunch_calib$ +alpha_angle$ +d2_thickness$ +beta_a_strong$ +beta_a_out$ +e_loss$ +gap$ +spin_x$ +e_center$ +fb2$ +x_offset_calib$ +v1_unitcell$ +psi_angle$ +cavity_type$ +emit_fraction$ +beta_b_strong$ +beta_b_out$ +spin_y$ +e2_center$ +n_period$ +y_offset_calib$ +v_unitcell$ +v2_unitcell$ +spin_z$ +l_period$ +fq1$ +alpha_a_strong$ +alpha_a_out$ +e2_probability$ +phi0_max$ +fq2$ +phi0$ +tilt_calib$ +e_center_relative_to_ref$ +direction_particle_start$ +alpha_b_strong$ +alpha_b_out$ +is_mosaic$ +px_aperture_width2$ +phi0_err$ +current$ +mosaic_thickness$ +px_aperture_center$ +time_dir_particle_start$ +eta_x_out$ +quad_tilt$ +de_eta_meas$ +spatial_distribution$ +species_strong$ +eta_y_out$ +bend_tilt$ +mode$ +velocity_distribution$ +py_aperture_width2$ +phi0_multipass$ +n_sample$ +origin_ele_ref_pt$ +mosaic_angle_rms_in_plane$ +eps_step_scale$ +e_tot_strong$ +etap_x_out$ +phi0_autoscale$ +dx_origin$ +energy_distribution$ +x_quad$ +ds_photon_slice$ +mosaic_angle_rms_out_plane$ +py_aperture_center$ +x_dispersion_err$ +etap_y_out$ +dy_origin$ +y_quad$ +e_field_x$ +b_field_tot$ +y_dispersion_err$ +z_aperture_width2$ +user_sets_length$ +rf_clock_harmonic$ +upstream_coord_dir$ +dz_origin$ +mosaic_diffraction_num$ +z_aperture_center$ +cmat_11$ +field_autoscale$ +l_sagitta$ +e_field_y$ +x_dispersion_calib$ +cmat_12$ +dtheta_origin$ +b_param$ +l_chord$ +scale_field_to_one$ +downstream_coord_dir$ +pz_aperture_width2$ +y_dispersion_calib$ +voltage_tot$ +cmat_21$ +l_active$ +dphi_origin$ +split_id$ +ref_cap_gamma$ +l_soft_edge$ +transverse_sigma_cut$ +pz_aperture_center$ +cmat_22$ +dpsi_origin$ +t_offset$ +ds_slice$ +use_reflectivity_table$ +angle$ +n_cell$ +mode_flip$ +z_crossing$ +x_kick$ +x_pitch$ +px_kick$ +y_pitch$ +y_kick$ +x_offset$ +py_kick$ +y_offset$ +z_kick$ +z_offset$ +pz_kick$ +hkick$ +d_spacing$ +x_offset_mult$ +emittance_a$ +crab_x1$ +vkick$ +y_offset_mult$ +p0c_ref_init$ +emittance_b$ +crab_x2$ +bl_hkick$ +e_tot_ref_init$ +emittance_z$ +crab_x3$ +bl_vkick$ +crab_tilt$ +bl_kick$ +b_field$ +e_field$ +high_energy_space_charge_on$ +crab_x4$ +photon_type$ +coupler_phase$ +db_field$ +crab_x5$ +lattice_type$ +b1_gradient$ +e1_gradient$ +coupler_angle$ +live_branch$ +b2_gradient$ +e2_gradient$ +coupler_strength$ +geometry$ +coupler_at$ +e_tot_offset$ +ptc_canonical_coords$ +b3_gradient$ +e3_gradient$ +ptc_fringe_geometry$ +e_tot_set$ +bs_field$ +p0c_set$ +ptc_field_geometry$ +delta_ref_time$ +p0c_start$ +e_tot_start$ +p0c$ +e_tot$ +x_pitch_tot$ +no_end_marker$ +y_pitch_tot$ +x_offset_tot$ +y_offset_tot$ +z_offset_tot$ +tilt_tot$ +roll_tot$ +ref_tilt_tot$ +multipass_ref_energy$ +ref_time_start$ +thickness$ +integrator_order$ +num_steps$ +ds_step$ +csr_ds_step$ +lord_pad1$ +lord_pad2$ +ref_wavelength$ +x1_limit$ +x2_limit$ +y1_limit$ +y2_limit$ +check_sum$ +g_err$ +b_field_err$ +spherical_curvature$ +distribution$ +tt$ +x_knot$ +alias$ +max_fringe_order$ +eta_x$ +electric_dipole_moment$ +lr_self_wake_on$ +x_ref$ +species_out$ +y_knot$ +eta_y$ +lr_wake_file$ +px_ref$ +elliptical_curvature_x$ +etap_x$ +slave$ +lr_freq_spread$ +y_ref$ +elliptical_curvature_y$ +etap_y$ +lattice$ +phi_a$ +multipoles_on$ +py_ref$ +elliptical_curvature_z$ +aperture_type$ +eta_z$ +machine$ +taylor_map_includes_offsets$ +pixel$ +p88$ +csr_method$ +var$ +z_ref$ +p89$ +pz_ref$ +space_charge_method$ +p90$ +mat6_calc_method$ +tracking_method$ +s_long$ +ref_time$ +ptc_integration_type$ +spin_tracking_method$ +eta_a$ +aperture$ +etap_a$ +x_limit$ +absolute_time_tracking$ +eta_b$ +y_limit$ +etap_b$ +offset_moves_aperture$ +aperture_limit_on$ +alpha_a$ +reflectivity_table$ +energy_probability_curve$ +exact_misalign$ +physical_source$ +sr_wake_file$ +alpha_b$ +term$ +frequencies$ +old_integrator$ +curvature$ +x_position$ +exact_model$ +symplectify$ +y_position$ +n_slice_spline$ +z_position$ +amp_vs_time$ +is_on$ +theta_position$ +vertical_kick$ +field_calc$ +phi_position$ +psi_position$ +wall$ +aperture_at$ +beta_a$ +ran_seed$ +origin_ele$ +beta_b$ +to_line$ +field_overlaps$ +field_master$ +to_element$ +descrip$ +scale_multipoles$ +sr_wake$ +ref_orbit$ +lr_wake$ +phi_b$ +crystal_type$ +material_type$ +type$ +ref_origin$ +ele_origin$ +superimpose$ +super_offset$ +reference$ +cartesian_map$ +cylindrical_map$ +grid_field$ +gen_grad_map$ +create_jumbo_slave$ +accordion_edge$ +start_edge$ +end_edge$ +s_position$ +ref_species$ +particle$ +wrap_superimpose$ +a0$ +a21$ +b0$ +b21$ +k0l$ +k21l$ +t0$ +t21$ +k0sl$ +k21sl$ +a0_elec$ +a21_elec$ +b0_elec$ +b21_elec$ +custom_attribute0$ +custom_attribute_num$ +num_ele_attrib_extended$ +blank_name$ +open$ +closed$ +lattice_type_name +geometry_name +anormal_mode_struct +linac_normal_mode_struct +normal_modes_struct +bends$ +wigglers$ +all$ +upstream$ +downstream$ +radians$ +degrees$ +cycles$ +radians_over_2pi$ +angle_units_name +short_angle_units_name +em_field_struct +rotationally_symmetric_rz$ +xyz$ +grid_field_geometry_name +grid_field_dimension +strong_beam_struct +track_point_struct +track_struct +multipass_lord_info_struct +multipass_ele_info_struct +multipass_branch_info_struct +multipass_all_info_struct +aperture_point_struct +aperture_param_struct +aperture_scan_struct +space_charge_common_struct +time_runge_kutta_common_struct +invalid_name$ +is_logical$ +is_integer$ +is_real$ +is_switch$ +is_string$ +is_struct$ +unknown$ +patch_problem$ +outside$ +cannot_find$ +extra_parsing_info_struct +bmad_common_struct +bmad_private_struct +ptc_common_struct +ptc_private_struct +small_rel_change$ +rad_int1_struct +rad_int_branch_struct +rad_int_all_ele_struct +pmd_header_struct +end_stack$ +plus$ +minus$ +times$ +divide$ +l_parens$ +r_parens$ +power$ +unary_minus$ +unary_plus$ +no_delim$ +sin$ +cos$ +tan$ +asin$ +acos$ +atan$ +abs$ +sqrt$ +log$ +exp$ +ran$ +ran_gauss$ +atan2$ +factorial$ +int$ +nint$ +floor$ +ceiling$ +numeric$ +variable$ +mass_of$ +charge_of$ +anomalous_moment_of$ +species$ +species_const$ +sinc$ +constant$ +comma$ +rms$ +average$ +sum$ +l_func_parens$ +arg_count$ +antiparticle$ +cot$ +sec$ +csc$ +sign$ +sinh$ +cosh$ +tanh$ +coth$ +asinh$ +acosh$ +atanh$ +acoth$ +min$ +max$ +modulo$ +expression_op_name +expression_eval_level +next_in_branch +coord_state_name +is_attribute +pointer_to_slave +ele_finalizer + +File: modules/radiation_mod.f90 +radiation_mod +release_rad_int_cache +track1_radiation +radiation_map_setup +track1_radiation_center + +File: multiparticle/bbi_kick.f90 +bbi_kick + +File: multiparticle/calc_emit_from_beam_init.f90 +calc_emit_from_beam_init + +File: multiparticle/envelope_mod.f90 +envelope_mod +eps7 +limit +o +l +make_ykick_mat +make_sr_mats +diffusion_matrix_b +damping_matrix_d +transport_with_sr +transport_with_sr_and_ibs +make_v +integrated_mats +envelope_radints_ibs +envelope_radints +make_pbrh +ibs_matrix_c +beam_envelope_ibs +kubo_integrand +eigensys +ety +etyt +ety2 +etdiv + +File: multiparticle/ibs_mod.f90 +ibs_mod +ibs_sim_param_struct +ibs_lifetime_struct +ibs_maxratio_struct +eps_7 +space_limit +ibs_equib_rlx +ibs_equib_der +ibs_lifetime +ibs_delta_calc +ibs_rates1turn +ibs_blowup1turn +ibs1 +multi_coulomb_log +rclog_integrand +bl_via_vlassov +bl_via_mat + +File: multiparticle/ibs_rates_mod.f90 +ibs_rates_mod +ibs_struct +eps7 +limit +bjmt1 +bjmt_integrand +bane1 +integrand +mpxx1 +mpxx_integrand +mpzt1 +zot_integrand +cimp1 + +File: multiparticle/init_wake.f90 +init_wake + +File: multiparticle/longitudinal_profile_mod.f90 +longitudinal_profile_mod +limit +psi_prime +psi_prime_sca +jac +solve_psi_adaptive +solve_psi_fixed_steps +integrate_psi +find_normalization +find_fwhm +get_bl_from_fwhm +set_pwd_ele +pwd_mat + +File: multiparticle/reallocate_beam.f90 +reallocate_beam + +File: multiparticle/reallocate_bunch.f90 +reallocate_bunch + +File: multiparticle/save_a_beam_step.f90 +save_a_beam_step + +File: multiparticle/save_a_bunch_step.f90 +save_a_bunch_step + +File: multiparticle/touschek_mod.f90 +touschek_mod +momentum_aperture_struct +eps7 +limit +touschek_lifetime +touschek_lifetime_ele_by_ele +touschek_lifetime_with_aperture +touschek_rate1_zap +integrand_zap +touschek_rate1 +integrand_base +integrand_base_cov +exp_bessi0 + +File: multiparticle/track_bunch_time.f90 +track_bunch_time + +File: multiparticle/wake_mod.f90 +wake_mod +randomize_lr_wake_frequencies +zero_lr_wakes_in_lat +track1_lr_wake +sr_longitudinal_wake_particle +sr_transverse_wake_particle +order_particles_in_z +track1_sr_wake + +File: multiparticle/write_beam_floor_positions.f90 +write_beam_floor_positions + +File: multiparticle/beam_mod.f90 +beam_mod +track_beam +track_bunch +track1_bunch + +File: multiparticle/beam_utils.f90 +beam_utils +track1_bunch_hom +init_beam_distribution +init_bunch_distribution +init_random_distribution +init_grid_distribution +init_ellipse_distribution +init_kv_distribution +combine_bunch_distributions +init_spin_distribution +calc_bunch_params_slice +calc_bunch_params_z_slice +calc_bunch_params +calc_emittances_and_twiss_from_sigma_matrix +calc_spin_params +calc_bunch_sigma_matrix_etc +bunch_init_end_calc + +File: multiparticle/beam_file_io.f90 +beam_file_io +write_beam_file +read_beam_file +read_beam_ascii4 + +File: parsing/binary_parser_mod.f90 +binary_parser_mod +write_binary_cartesian_map +read_binary_cartesian_map +write_binary_cylindrical_map +read_binary_cylindrical_map +write_binary_grid_field +read_binary_grid_field +open_binary_file + +File: parsing/bmad_parser.f90 +bmad_parser + +File: parsing/bmad_parser2.f90 +bmad_parser2 + +File: parsing/bmad_parser_mod.f90 +bmad_parser_mod +parser_set_attribute +get_called_file +add_this_taylor_term +parser_call_check +get_next_word +parser_file_stack +load_parse_line +evaluate_array_index +evaluate_logical +parse_evaluate_value +word_to_value +parser_add_constant +bmad_parser_string_attribute_set +parser_read_sr_wake +parser_read_lr_wake +parser_read_old_format_lr_wake +parser_read_old_format_sr_wake +get_list_of_names +get_overlay_group_names +verify_valid_name +parser_error +add_this_multipass +drift_multipass_name_correction +reallocate_bp_com_const +parser_add_superimpose +parser2_add_superimpose +compute_super_lord_s +check_for_superimpose_problem +get_sequence_args +parse_line_or_list +allocate_plat +parser_add_lord +drift_and_pipe_track_methods_adjustment +settable_dep_var_bookkeeping +form_digested_bmad_file_name +parser_add_branch +parser_identify_fork_to_element +parser_expand_line +bp_set_ran_status +parser_debug_print_info +parse_cartesian_map +parse_cylindrical_map +parse_grid_field +parse_gen_grad_map +parse_integer_list +parse_integer_list2 +parse_real_list +parse_real_lists +parse_real_list2 +parser_get_integer +parser_get_logical +expect_this +get_switch +expect_one_of +equal_sign_here +parser_print_line +parser_init_custom_elements +reallocate_sequence +parse_superimpose_command +init_surface_segment +parser_transfer_control_struct +parser_fast_integer_read +parser_fast_complex_read +parser_fast_real_read + +File: parsing/bmad_parser_struct.f90 +bmad_parser_struct +n_parse_line +n_parse_line_extended +seq_ele_struct +base_line_ele_struct +seq_struct +f_maxx +stack_file_struct +parser_controller_struct +parser_ele_struct +parser_lat_struct +line$ +list$ +element$ +replacement_line$ +def$ +redef$ +bp_const_struct +bp_common_struct +bp_common2_struct + +File: parsing/check_controller_controls.f90 +check_controller_controls + +File: parsing/converter_distribution_parser.f90 +converter_distribution_parser + +File: parsing/create_field_overlap.f90 +create_field_overlap + +File: parsing/create_girder.f90 +create_girder + +File: parsing/create_group.f90 +create_group + +File: parsing/create_overlay.f90 +create_overlay + +File: parsing/create_ramper.f90 +create_ramper + +File: parsing/init_bmad_parser_common.f90 +init_bmad_parser_common + +File: parsing/read_digested_bmad_file.f90 +read_digested_bmad_file + +File: parsing/write_digested_bmad_file.f90 +write_digested_bmad_file + +File: parsing/set_ele_defaults.f90 +set_ele_defaults + +File: photon/capillary_mod.f90 +capillary_mod +photon_coord_struct +photon_track_struct +track_a_capillary +capillary_track_photon_to_wall +capillary_propagate_photon_a_step +capillary_photon_hit_spot_calc +capillary_reflect_photon + +File: photon/crystal_attribute_bookkeeper.f90 +crystal_attribute_bookkeeper + +File: photon/init_a_photon_from_a_photon_init_ele.f90 +init_a_photon_from_a_photon_init_ele + +File: photon/make_mat6_bmad_photon.f90 +make_mat6_bmad_photon + +File: photon/offset_photon.f90 +offset_photon + +File: photon/photon_init_mod.f90 +photon_init_mod +photon_init_spline_pt_struct +photon_init_spline_struct +gen_poly_spline$ +end_spline$ +absolute_photon_position +bend_photon_init +bend_photon_energy_integ_prob +bend_vert_angle_integ_prob +bend_photon_polarization_init +bend_photon_vert_angle_init +bend_photon_e_rel_init +bend_photon_energy_normalized_probability +photon_init_spline_coef_calc +photon_init_spline_eval +e_crit_photon +init_photon_integ_prob + +File: photon/photon_init_spline_mod.f90 +photon_init_spline_mod +photon_init_x_angle_spline_struct +photon_init_y_angle_spline_struct +photon_init_splines_struct +photon_read_spline + +File: photon/photon_reflection_mod.f90 +photon_reflection_mod +cheb_diffuse_struct +converge +gmin +gmax +maxsum +ismax +bmax +diffuse_common_struct +photon_reflection_std_surface_init +finalize_reflectivity_table +read_surface_reflection_file +photon_reflectivity +photon_reflection +photon_diffuse_scattering +prob_x_diffuse +ptwo +zmmax +cos_phi +zzfi +zzfp +hzz +zbessi +zbessi1 +zbessi0 +zzexp +output_specular_reflection_input_params + +File: photon/photon_target_mod.f90 +photon_target_mod +photon_target_setup +photon_target_corner_calc +photon_add_to_detector_statistics +detector_pixel_pt +to_photon_angle_coords +to_surface_coords + +File: photon/photon_utils_mod.f90 +photon_utils_mod +has_curvature +photon_type +z_at_surface +pointer_to_surface_grid_pt +surface_grid_displacement +crystal_diffraction_field_calc + +File: photon/rotate_for_curved_surface.f90 +rotate_for_curved_surface + +File: photon/tilt_coords_photon.f90 +tilt_coords_photon + +File: photon/track1_bmad_photon.f90 +track1_bmad_photon + +File: photon/track1_photon_mod.f90 +track1_photon_mod +track1_lens +track_a_patch_photon +track1_diffraction_plate_or_mask +track1_sample +point_photon_emission +track1_mirror +track1_multilayer_mirror +track1_mosaic_crystal +track1_crystal +crystal_h_misalign +target_rot_mats +target_min_max_calc +track_a_bend_photon + +File: photon/track_a_drift_photon.f90 +track_a_drift_photon + +File: photon/track_to_surface.f90 +track_to_surface + +File: ptc/ele_to_taylor.f90 +ele_to_taylor + +File: ptc/fibre_to_ele.f90 +fibre_to_ele + +File: ptc/kill_ptc_layouts.f90 +kill_ptc_layouts + +File: ptc/lat_to_ptc_layout.f90 +lat_to_ptc_layout + +File: ptc/pointer_to_fibre.f90 +pointer_to_fibre + +File: ptc/ptc_bookkeeper.f90 +ptc_bookkeeper + +File: ptc/ptc_interface_mod.f90 +ptc_interface_mod +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +operator +procedure +ptc_set_taylor_order_if_needed +taylor_plus_taylor +taylor_minus_taylor +map_coef +type_map1 +type_ptc_internal_state +type_ptc_fibre +type_end_stuff +kind_name +set_ptc_com_pointers +bmad_taylor_equal_damap +damap_equal_bmad_taylor +bmad_taylor_equal_real_8 +real_8_equal_bmad_taylor +ptc_taylor_equal_bmad_taylor +sigma_mat_ptc_to_bmad +universal_equal_universal +universal_to_bmad_taylor +complex_taylor_equal_c_taylor +complex_taylors_equal_c_taylors +bmad_taylor_equal_ptc_taylor +bmad_taylors_equal_ptc_taylors +form_complex_taylor +concat_real_8 +taylor_to_genfield +remove_constant_taylor +taylor_inverse +concat_taylor +concat_ele_taylor +taylor_to_real_8 +real_8_to_taylor +taylor_propagate1 +type_real_8_taylors +sort_universal_terms +type_map +beambeam_fibre_setup +misalign_ptc_fibre +bmad_patch_parameters_to_ptc +ele_to_ptc_magnetic_an_bn +apply_patch_to_ptc_fibre +set_ptc_quiet + +File: ptc/ptc_layout_mod.f90 +ptc_layout_mod +type_ptc_layout +branch_to_ptc_m_u +add_ptc_layout_to_list +ptc_setup_tracking_with_damping_and_excitation +ptc_one_turn_mat_and_closed_orbit_calc +ptc_emit_calc +ptc_spin_calc +ptc_track_all +ptc_closed_orbit_calc +ptc_one_turn_map_at_ele +ptc_map_to_normal_form +normal_form_taylors +normal_form_complex_taylors +normal_form_rd_terms +set_ptc_verbose +update_ele_from_fibre +ptc_calculate_tracking_step_size +ptc_layouts_resplit +ptc_check_for_lost_particle + +File: ptc/ptc_linear_isf_calc.f90 +ptc_linear_isf_calc + +File: ptc/ptc_map_with_radiation_mod.f90 +ptc_map_with_radiation_mod +ptc_rad_map_struct +ptc_setup_map_with_radiation +ptc_track_map_with_radiation +ptc_write_map_with_radiation +ptc_read_map_with_radiation +ptc_kill_map_with_radiation + +File: ptc/ptc_ran_seed_put.f90 +ptc_ran_seed_put + +File: ptc/ptc_read_flat_file.f90 +ptc_read_flat_file + +File: ptc/ptc_set_rf_state_for_c_normal.f90 +ptc_set_rf_state_for_c_normal + +File: ptc/ptc_spin_matching_calc.f90 +ptc_spin_matching_calc + +File: ptc/ptc_transfer_map_with_spin.f90 +ptc_transfer_map_with_spin + +File: ptc/set_ptc.f90 +set_ptc + +File: ptc/set_ptc_base_state.f90 +set_ptc_base_state + +File: ptc/update_fibre_from_ele.f90 +update_fibre_from_ele + +File: ptc/ele_to_fibre.f90 +ele_to_fibre + +File: space_charge/csr3d_mod.f90 +csr3d_mod +csr3d_steady_state_solver +calc_density_derivative_complex +get_cgrn_csr3d +write_2d +ellipinc_test + +File: space_charge/csr_and_space_charge_mod.f90 +csr_and_space_charge_mod +csr_ele_info_struct +csr_bunch_slice_struct +csr_kick1_struct +csr_particle_position_struct +csr_struct +track1_bunch_csr +csr_bin_particles +csr_bin_kicks +s_source_calc +lsc_kick_params_calc +i_csr +image_charge_kick_calc +csr_and_sc_apply_kicks +dspline_len +s_ref_to_s_chord +track1_bunch_csr3d + +File: space_charge/fast_fourier_am.f90 +fast_fourier_am +ccfftam +fft1 +mfft1 +sfft + +File: space_charge/fft_interface_mod.f90 +fft_interface_mod +ccfft3d +mccfft1d + +File: space_charge/high_energy_space_charge_mod.f90 +high_energy_space_charge_mod +setup_high_energy_space_charge_calc +track1_high_energy_space_charge +make_mat6_high_energy_space_charge + +File: space_charge/open_spacecharge_core_mod.f90 +open_spacecharge_core_mod +osc_freespace_solver +osc_alloc_freespace_array +coulombfun +igfcoulombfun +lafun +igfexfun +igfeyfun +igfezfun +xlafun +ylafun +zlafun +getrhotilde +osc_getgrnfree +conv3d +osc_rectpipe_solver +osc_getgrnpipe +rfun +fftconvcorr3d +osc_read_rectpipe_grn +osc_write_rectpipe_grn +osc_alloc_rectpipe_arrays +osc_cathodeimages_solver +osc_alloc_image_array +osc_getgrnimageshift +osc_getgrnimageconvcorr +imageconvcorr3d + +File: space_charge/open_spacecharge_mod.f90 +open_spacecharge_mod +mesh3d_struct +print_mesh3d +space_charge_freespace +space_charge_cathodeimages +space_charge_rectpipe +deposit_particles +interpolate_field +space_charge_3d +osc_freespace_solver2 +osc_get_cgrn_freespace + +File: space_charge/space_charge_mod.f90 +space_charge_mod +sc_field_calc +sc_step +sc_adaptive_step +track_bunch_to_s +track_bunch_to_t +drift_particle_to_s +drift_particle_to_t + +File: space_charge/track1_bunch_space_charge.f90 +track1_bunch_space_charge + +File: spin/angle_between_polars.f90 +angle_between_polars + +File: spin/map1_inverse.f90 +map1_inverse + +File: spin/map1_make_unit.f90 +map1_make_unit + +File: spin/multipole_spin_tracking.f90 +multipole_spin_tracking + +File: spin/polar_to_spinor.f90 +polar_to_spinor + +File: spin/polar_to_vec.f90 +polar_to_vec + +File: spin/rotate_spin.f90 +rotate_spin + +File: spin/rotate_spin_a_step.f90 +rotate_spin_a_step + +File: spin/rotate_spin_given_field.f90 +rotate_spin_given_field + +File: spin/spin_concat_linear_maps.f90 +spin_concat_linear_maps + +File: spin/spin_depolarization_rate.f90 +spin_depolarization_rate + +File: spin/spin_dn_dpz_from_mat8.f90 +spin_dn_dpz_from_mat8 + +File: spin/spin_dn_dpz_from_qmap.f90 +spin_dn_dpz_from_qmap + +File: spin/spin_map1_normalize.f90 +spin_map1_normalize + +File: spin/spin_mat8_resonance_strengths.f90 +spin_mat8_resonance_strengths + +File: spin/spin_mat_to_eigen.f90 +spin_mat_to_eigen + +File: spin/spin_omega.f90 +spin_omega + +File: spin/spin_quat_resonance_strengths.f90 +spin_quat_resonance_strengths + +File: spin/spin_taylor_to_linear.f90 +spin_taylor_to_linear + +File: spin/spinor_to_polar.f90 +spinor_to_polar + +File: spin/spinor_to_vec.f90 +spinor_to_vec + +File: spin/sprint_spin_taylor_map.f90 +sprint_spin_taylor_map + +File: spin/valid_spin_tracking_method.f90 +valid_spin_tracking_method + +File: spin/vec_to_polar.f90 +vec_to_polar + +File: spin/vec_to_spinor.f90 +vec_to_spinor diff --git a/bsim/code/bsim_interface.f90 b/bsim/code/bsim_interface.f90 index f12310b1dd..0f6693832b 100644 --- a/bsim/code/bsim_interface.f90 +++ b/bsim/code/bsim_interface.f90 @@ -4,7 +4,7 @@ module bsim_interface interface -function set_tune_3d (branch, target_tunes, mask, use_phase_trombone, z_tune_set, print_err) result (everything_ok) +function set_tune_3d (branch, target_tunes, mask, use_phase_trombone, z_tune_set, group_knobs, print_err) result (everything_ok) import implicit none type (branch_struct), target :: branch @@ -12,6 +12,7 @@ function set_tune_3d (branch, target_tunes, mask, use_phase_trombone, z_tune_set logical everything_ok logical, optional :: use_phase_trombone, z_tune_set, print_err character(*), optional :: mask + character(*), optional :: group_knobs(2) end function subroutine insert_phase_trombone(branch) diff --git a/bsim/code/set_tune_3d.f90 b/bsim/code/set_tune_3d.f90 index 24132a738c..d6970b78dc 100644 --- a/bsim/code/set_tune_3d.f90 +++ b/bsim/code/set_tune_3d.f90 @@ -1,5 +1,5 @@ !+ -! function set_tune_3d (branch, target_tunes, use_phase_trombone, quad_mask, z_tune_set, print_err) result (everything_ok) +! function set_tune_3d (branch, target_tunes, use_phase_trombone, quad_mask, z_tune_set, group_knobs, print_err) result (everything_ok) ! ! Wrapper for set_tune and set_z_tune together. ! @@ -10,6 +10,7 @@ ! use_phase_trombone -- logical, optional: Default False. If true, use a match element in phase trombone mode to adjust the tunes. ! The match element must be the first element in the lattice. Use insert_phase_trombone to insert one. ! z_tune_set -- logical, optional: Default True. If false, do not try to set the synch tune. +! group_knobs(2) -- character(*), optional: If set non-blank, use these group elements for tuning. ! print_err -- logical, optional: Print error message if there is a problem? Default is True. ! ! Output: @@ -17,7 +18,7 @@ ! everything_ok -- logical: Returns true or false if set was successful. !- -function set_tune_3d (branch, target_tunes, quad_mask, use_phase_trombone, z_tune_set, print_err) result (everything_ok) +function set_tune_3d (branch, target_tunes, quad_mask, use_phase_trombone, z_tune_set, group_knobs, print_err) result (everything_ok) use bmad @@ -31,9 +32,9 @@ function set_tune_3d (branch, target_tunes, quad_mask, use_phase_trombone, z_tun real(rp), allocatable :: dk1(:) integer n, status logical, optional :: use_phase_trombone, z_tune_set, print_err -logical everything_ok, err +logical everything_ok, err, use_groups -character(*), optional :: quad_mask +character(*), optional :: quad_mask, group_knobs(2) character(*), parameter :: r_name = 'set_tune_3d' ! @@ -68,15 +69,25 @@ function set_tune_3d (branch, target_tunes, quad_mask, use_phase_trombone, z_tun ! -allocate(dk1(branch%n_ele_max)) -call choose_quads_for_set_tune(branch, dk1, eles, quad_mask, err) -if (err) then - call out_io (s_error$, r_name, & - 'CANNOT FIND A QUAD WITH BETA_A < BETA_B AND A QUAD WITH BETA_A > BETA_B (BOTH WITH NO TILT).') - return +use_groups = .false. +if (present(group_knobs)) use_groups = (group_knobs(1) /= '') + +if (use_groups) then + everything_ok = set_tune_via_group_knobs(twopi*target_tunes, branch, group_knobs, co, print_err) + +else + allocate(dk1(branch%n_ele_max)) + call choose_quads_for_set_tune(branch, dk1, eles, quad_mask, err) + if (err) then + call out_io (s_error$, r_name, & + 'CANNOT FIND A QUAD WITH BETA_A < BETA_B AND A QUAD WITH BETA_A > BETA_B (BOTH WITH NO TILT).') + return + endif + + everything_ok = set_tune(twopi*target_tunes(1), twopi*target_tunes(2), dk1, eles, branch, co, print_err) endif -everything_ok = set_tune(twopi*target_tunes(1), twopi*target_tunes(2), dk1, eles, branch, co, print_err) +! if (logic_option(.true., z_tune_set)) call set_z_tune(branch, twopi*target_tunes(3)) diff --git a/bsim/long_term_tracking/doc/long_term_tracking.tex b/bsim/long_term_tracking/doc/long_term_tracking.tex index 53fe5e3656..87d3669446 100644 --- a/bsim/long_term_tracking/doc/long_term_tracking.tex +++ b/bsim/long_term_tracking/doc/long_term_tracking.tex @@ -99,7 +99,7 @@ \Section{Introduction} \label{s:intro} -The \ltt program is for long term (over many turns) tracking of a particle or a beam in a ring. The +The \ltt program is for long term (over many turns) tracking of a particle or a beam in a ring. The \ltt program can track spin as well as simulate such things as element misalignments, wake fields, higher order mode cavity resonances, energy ramping, beta squeezing, etc. The output of the program will be such things as turn-by-turn particle tracks or beam statistics including beam sizes and @@ -197,10 +197,11 @@ simulation mode is set by the \vn{ltt%simulation_mode} parameter in the master input file (\sref{s:input}). Possible settings of \vn{ltt%simulation_mode} are: \begin{code} -"CHECK" ! Quick tracking check. -"SINGLE" ! Single particle tracking. -"BEAM" ! Beam tracking. -"STAT" ! Lattice statistics. +"CHECK" ! Quick tracking check. +"SINGLE" ! Tracking a single particle. +"INDIVIDUAL" ! Tracking a set of particles one at a time. +"BEAM" ! Beam (multi-particle) tracking. +"STAT" ! Lattice statistics (no tracking done). \end{code} \begin{description} @@ -231,15 +232,24 @@ % \item["SINGLE"] \Newline -In this mode a single particle is tracked for \vn{ltt%n_turns} turns. The starting coordinates are determined -in the same way as is done with the \vn{"CHECK"} mode. +In this mode a single particle is tracked for \vn{ltt%n_turns} turns. The starting coordinates are +determined in the same way as is done with the \vn{"CHECK"} mode. The name of the data file is set by the \vn{ltt%phase_space_output_file} parameter (\sref{s:input}). The particle position will be output every \vn{ltt%particle_output_every_n_turns} turns. If this parameter is zero or negative, the position will be outputted at every element. % +\item["INDIVIDUAL"] \Newline +A set of particles are tracked one-by-one until lost (or until the maximum number of turns set by +the user is reached). Unlike \vn{"BEAM"} mode, no statistics are recorded. Rather the output is the +final position of the particles. The \vn{"INDIVIDUAL"} mode is useful for the situation when there +is ramping (\sref{s:ramp}) and individual are seeing different guide fields due to the time +separation between particles. Specifically, the \vn{"INDIVIDUAL"} mode is useful for simulating +resonant slow extraction. +% \item["BEAM"] \Newline -In this mode a particle beam is tracked for \vn{ltt%n_turns} turns. +In this mode a particle beam is tracked for \vn{ltt%n_turns} turns. Beam statistics are recorded +periodically as set by the user. % \item["STAT"] \Newline In this mode statistics about the lattice are calculated. No long term tracking is done. @@ -272,8 +282,8 @@ amplitude is too large. Only the \vn{BMAD} method is able to handle a machine that is being ramped (\sref{s:ramp}). That is, -when \vn{ltt%ramping_on} set to True. The program will detect if there is a conflict and issue an error -message and stop. +when \vn{ltt%ramping_on} set to True. The program will detect if there is a conflict and issue an +error message and stop. %------------------------------------------------------------------ \Section{Map Tracking} @@ -454,11 +464,12 @@ \vn{ltt%ramp_update_each_particle} is set to True, rampers are applied to a given lattice element as each particle of the beam passes through the element using the time the particle would pass through the center of the element. This is appropriate if ramping is fast on the time scale of a bunch -passage. If set to False (the default), rampers are applied to a given element only once per beam -passage using the time of the center of the bunch passing the center of the element. This is -appropriate for parameters that vary slowly on the time scale of a bunch passage. For example if -ramping magnet strengths with energy ramping which occurs over many turns, calculating once per beam -passage should be a good approximation. +passage or if in \vn{"INDIVIDUAL"} or \vn{"SINGLE"} mode. If set to False, rampers are applied to a +given element only once per beam passage using the time of the center of the bunch passing the +center of the element. This is appropriate for parameters that vary slowly on the time scale of a +bunch passage. For example if ramping magnet strengths with energy ramping which occurs over many +turns, calculating once per beam passage should be a good approximation. The default setting of +\vn{ltt%ramp_update_each_particle} is False for \vn{"BEAM"} mode and True for all other modes. Before a simulation, individual ramper elements may be toggled on or off by setting the element's \vn{is_on} attribute in the lattice file: @@ -939,7 +950,8 @@ \subsection{Output File Parameters} \item[ltt\%particle_output_every_n_turns] \Newline Sets the number of turns between particle position data files. If set to -1 (the default), a file will only be generated at the last turn. If set to 0, a file will be generated at the beginning turn -(turn 0) and at the last turn. +(turn 0) and at the last turn. With the \vn{ltt%simulation_mode} set to \vn{"INDIVIDUAL"}, there is +no periodic output and this parameter will be ignored. % \item[ltt\%per_particle_output_file] \Newline Used with \vn{ltt%simulation_mode} set to \vn{"BEAM"}. The name of the ASCII files diff --git a/bsim/long_term_tracking/long_term_tracking.f90 b/bsim/long_term_tracking/long_term_tracking.f90 index 6f8e9adf54..7b06d6bb1d 100644 --- a/bsim/long_term_tracking/long_term_tracking.f90 +++ b/bsim/long_term_tracking/long_term_tracking.f90 @@ -25,9 +25,10 @@ program long_term_tracking case ('BEAM') call ltt_init_beam_distribution(lttp, ltt_com, beam) call ltt_run_beam_mode(lttp, ltt_com, lttp%ix_turn_start, lttp%ix_turn_stop, beam) ! Beam tracking -case ('CHECK'); call ltt_run_check_mode(lttp, ltt_com) ! A single turn tracking check -case ('SINGLE'); call ltt_run_single_mode(lttp, ltt_com) ! Single particle tracking -case ('STAT'); call ltt_run_stat_mode(lttp, ltt_com) ! Lattice statistics (radiation integrals, etc.). +case ('CHECK'); call ltt_run_check_mode(lttp, ltt_com) ! A single turn tracking check +case ('INDIVIDUAL'); call ltt_run_individual_mode(lttp, ltt_com) ! Particle-by-particle tracking. +case ('SINGLE'); call ltt_run_single_mode(lttp, ltt_com) ! Single particle tracking. +case ('STAT'); call ltt_run_stat_mode(lttp, ltt_com) ! Lattice statistics (radiation integrals, etc.). case default print *, 'BAD SIMULATION_MODE: ' // lttp%simulation_mode end select diff --git a/bsim/long_term_tracking/long_term_tracking_mpi.f90 b/bsim/long_term_tracking/long_term_tracking_mpi.f90 index c8b43d40b7..c9e5d9a761 100644 --- a/bsim/long_term_tracking/long_term_tracking_mpi.f90 +++ b/bsim/long_term_tracking/long_term_tracking_mpi.f90 @@ -22,7 +22,7 @@ program long_term_tracking integer, parameter :: base_tag$ = 1000 logical am_i_done, err_flag, ok, too_many_dead -logical, allocatable :: stop_here(:) +logical, allocatable :: stop_here(:), slave_working(:) character(200) pwd character(100) line, path, basename @@ -118,21 +118,126 @@ program long_term_tracking case ('CHECK'); call ltt_run_check_mode(lttp, ltt_com) ! A single turn tracking check case ('SINGLE'); call ltt_run_single_mode(lttp, ltt_com) ! Single particle tracking case ('STAT'); call ltt_run_stat_mode(lttp, ltt_com) ! Lattice statistics (radiation integrals, etc.). -case ('BEAM'); ! Handled below. Only the BEAM simulation mode uses mpi. -case default; print *, 'BAD SIMULATION_MODE: ' // lttp%simulation_mode +case ('BEAM') + if (.not. ltt_com%using_mpi) then + print '(a, i0)', 'Number of threads is one! (Need to use mpirun or mpiexec if on a single machine.)' + call ltt_init_beam_distribution(lttp, ltt_com, beam) + call ltt_run_beam_mode(lttp, ltt_com, lttp%ix_turn_start, lttp%ix_turn_stop, beam) + stop + endif + +case ('INDIVIDUAL') + if (.not. ltt_com%using_mpi) then + print '(a, i0)', 'Number of threads is one! (Need to use mpirun or mpiexec if on a single machine.)' + call ltt_run_individual_mode(lttp, ltt_com, lttp%ix_turn_start, lttp%ix_turn_stop, beam) + stop + endif + +case default + print *, 'BAD SIMULATION_MODE: ' // lttp%simulation_mode end select ! Not using mpi if there is only one thread. -if (.not. ltt_com%using_mpi) then - print '(a, i0)', 'Number of threads is one! (Need to use mpirun or mpiexec if on a single machine.)' - call ltt_init_beam_distribution(lttp, ltt_com, beam) - call ltt_run_beam_mode(lttp, ltt_com, lttp%ix_turn_start, lttp%ix_turn_stop, beam) - stop + +!----------------------------------------------------------------------------------------------------------------- +!----------------------------------------------------------------------------------------------------------------- +! INDIVIDUAL simulation + +if (lttp%simulation_mode == 'INDIVIDUAL') then + dat_size = storage_size(beam%bunch(1)%particle(1)) / 8 + + if (ltt_com%mpi_rank == master_rank$) then + print '(a, i0)', 'Number of processes (including Master): ', mpi_n_proc + call ltt_print_mpi_info (lttp, ltt_com, 'Master: Initial Ramper Ran State: ' // int_str(ltt_com%ramper_ran_state%ix)) + + call ltt_init_beam_distribution(lttp, ltt_com, beam) + n_particle = size(beam%bunch(1)%particle) + + allocate (slave_working(num_slaves), ixp_slave(num_slaves)) + slave_working = .false. + + do ib = 1, size(beam%bunch) + do ip = 1, size(beam%bunch(ib)%particle) + particle => beam%bunch(ib)%particle(ip) + + if (all(slave_working)) then + slave_rank = MPI_ANY_SOURCE + call ltt_print_mpi_info (lttp, ltt_com, 'Master: Waiting for data.') + call mpi_recv (orbit, dat_size, MPI_BYTE, slave_rank, base_tag$+3, MPI_COMM_WORLD, stat, ierr) + if (ierr /= MPI_SUCCESS) call ltt_print_mpi_info (lttp, ltt_com, 'MPI ERROR!', .true.) + slave_rank = stat(MPI_SOURCE) ! Slave rank + nn = ixp_slave(slave_rank) + beam%bunch(ib)%particle(nn) = orbit + slave_working(slave_rank) = .false. + call ltt_print_mpi_info (lttp, ltt_com, 'Master: Got data from slave: ' // int_str(slave_rank)) + endif + + ix = findloc(slave_working, .false.) + call ltt_print_mpi_info (lttp, ltt_com, 'Master: Tell slave ' // int_str(ix)) // ' to be ready to track using Slave') + call mpi_send (1, 1, MPI_INTEGER, ix, base_tag$+1, MPI_COMM_WORLD, ierr) + if (ierr /= MPI_SUCCESS) call ltt_print_mpi_info (lttp, ltt_com, 'MPI ERROR #2!', .true.) ! Tell slave more tracking needed. + call ltt_print_mpi_info (lttp, ltt_com, 'Master: Starting particle ' // int_str(ip) // ' using Slave: ' // int_str(ix)) + call mpi_send (particle, dat_size, MPI_BYTE, ix, base_tag$+2, MPI_COMM_WORLD, ierr) + if (ierr /= MPI_SUCCESS) call ltt_print_mpi_info (lttp, ltt_com, 'MPI ERROR #3!', .true.) + ixp_slave(ix) = ip + slave_working(ix) = .true. + enddo + enddo + + ! Finish getting data + + call ltt_print_mpi_info (lttp, ltt_com, 'Master: Finished broadcasting particle runs. Now collecting final data.') + do + if (all(.not. slave_working)) exit + call mpi_recv (orbit, dat_size, MPI_BYTE, slave_rank, base_tag$+3, MPI_COMM_WORLD, stat, ierr) + if (ierr /= MPI_SUCCESS) call ltt_print_mpi_info (lttp, ltt_com, 'MPI ERROR!', .true.) + slave_rank = stat(MPI_SOURCE) ! Slave rank + nn = ixp_slave(slave_rank) + beam%bunch(ib)%particle(nn) = orbit + slave_working(slave_rank) = .false. + enddo + + ! Tell slaves we are done. + + do i = 1, num_slaves + if (.not. slave_working(i)) cycle + call ltt_print_mpi_info (lttp, ltt_com, 'Slave: Waiting for init position info.') + call mpi_send (0, 1, MPI_INTEGER, ix, base_tag$+2, MPI_COMM_WORLD, ierr) ! No more tracking. + enddo + + ! And write data. + + call ltt_write_particle_data (lttp, ltt_com, 0, beam) + call mpi_finalize(ierr) + + !--------------------------------------------------------- + ! INDIVIDUAL Slave + + else + call ltt_print_mpi_info (lttp, ltt_com, 'Slave Starting...', .true.) + call ltt_print_mpi_info (lttp, ltt_com, 'Slave: Initial Ramper Ran State: ' // int_str(ltt_com%ramper_ran_state%ix)) + + do + call ltt_print_mpi_info (lttp, ltt_com, 'Slave: Waiting for Master command.') + call mpi_recv (nn, 1, MPI_INTEGER, master_rank$, base_tag$+1, MPI_COMM_WORLD, stat, ierr) + if (nn == 0) exit + call ltt_print_mpi_info (lttp, ltt_com, 'Slave: Waiting for particle info...') + call mpi_recv (particle, dat_size, MPI_BYTE, master_rank$, base_tag$+2, MPI_COMM_WORLD, stat, ierr) + call ltt_print_mpi_info (lttp, ltt_com, 'Slave: Starting tracking.') + call ltt_run_single_mode(lttp, ltt_com, particle) + call mpi_send (particle, dat_size, MPI_BYTE, master_rank$, base_tag$+3, MPI_COMM_WORLD, ierr) + enddo + + call ltt_print_mpi_info (lttp, ltt_com, 'Slave: Master says all done!') + call mpi_finalize(ierr) + stop + endif endif -!----------------------------------------- -! MPI BEAM simulation +!----------------------------------------------------------------------------------------------------------------- +!----------------------------------------------------------------------------------------------------------------- +! BEAM simulation ! Init beam distribution in master @@ -205,10 +310,8 @@ program long_term_tracking if (lttp%debug .and. ltt_com%mpi_rank == master_rank$) print *, 'ix_stop:', n, ix_stop_turn(n) enddo - -!------------------------------------------------------------------------------------------ !------------------------------------------------------------------------------------------ -! Master: +! BEAM Master: if (ltt_com%mpi_rank == master_rank$) then print '(a, i0)', 'Number of processes (including Master): ', mpi_n_proc @@ -301,8 +404,7 @@ program long_term_tracking call mpi_finalize(ierr) !------------------------------------------------------------------------------------------ -!------------------------------------------------------------------------------------------ -else ! Is a slave +else ! BEAM slave call ltt_print_mpi_info (lttp, ltt_com, 'Slave Starting...', .true.) call ltt_print_mpi_info (lttp, ltt_com, 'Slave: Initial Ramper Ran State: ' // int_str(ltt_com%ramper_ran_state%ix)) diff --git a/bsim/modules/lt_tracking_mod.f90 b/bsim/modules/lt_tracking_mod.f90 index f4667285e1..9db9019c92 100644 --- a/bsim/modules/lt_tracking_mod.f90 +++ b/bsim/modules/lt_tracking_mod.f90 @@ -38,7 +38,7 @@ module lt_tracking_mod ! User settable parameters type ltt_params_struct - character(20) :: simulation_mode = '' ! CHECK, SINGLE, BEAM, STAT + character(20) :: simulation_mode = '' ! CHECK, SINGLE, BEAM, STAT, INDIVIDUAL character(20) :: tracking_method = 'BMAD' ! MAP, PTC, BMAD character(100) :: exclude_from_maps = 'beambeam::*' character(40) :: ele_start = '' @@ -319,7 +319,7 @@ subroutine ltt_init_params(ltt, ltt_com) select case (ltt%simulation_mode) case ('BEAM', 'STAT') -case ('CHECK', 'SINGLE') +case ('CHECK', 'SINGLE', 'INDIVIDUAL') ltt%ramp_update_each_particle = .true. case ('BUNCH') print '(a)', '"BUNCH" SETTING FOR LTT%SIMULATION_MODE HAS BEEN CHANGED TO "BEAM"' @@ -961,7 +961,38 @@ end subroutine ltt_run_check_mode !------------------------------------------------------------------------------------------- !------------------------------------------------------------------------------------------- -subroutine ltt_run_single_mode (lttp, ltt_com) +subroutine ltt_run_individual_mode (lttp, ltt_com) + +type (ltt_params_struct) lttp +type (ltt_com_struct), target :: ltt_com +type (beam_struct), target :: beam +type (coord_struct), pointer :: particle +type (coord_struct) orbit + +integer ib, ip + +! + +call ltt_init_beam_distribution(lttp, ltt_com, beam) + +do ib = 1, size(beam%bunch) + do ip = 1, size(beam%bunch(ib)%particle) + particle => beam%bunch(ib)%particle(ip) + call ltt_run_single_mode(lttp, ltt_com, particle) + enddo +enddo + +if (.not. ltt_com%using_mpi) then + call ltt_write_particle_data (lttp, ltt_com, 0, beam) +endif + +end subroutine + +!------------------------------------------------------------------------------------------- +!------------------------------------------------------------------------------------------- +!------------------------------------------------------------------------------------------- + +subroutine ltt_run_single_mode (lttp, ltt_com, orb_in) type (ltt_params_struct) lttp type (ltt_com_struct), target :: ltt_com @@ -969,13 +1000,14 @@ subroutine ltt_run_single_mode (lttp, ltt_com) type (lat_struct), pointer :: lat type (coord_struct), allocatable :: orb(:) type (coord_struct) :: orbit +type (coord_struct), optional :: orb_in type (ele_struct), pointer :: ele_start, ele0, ele1 type (probe) prb real(rp) average(6), sigma(6,6), dt integer i, n_sum, iu_part, i_turn, ix_branch -! Run serial in single mode. +! Run a single particle in single mode. lat => ltt_com%tracking_lat @@ -990,7 +1022,9 @@ subroutine ltt_run_single_mode (lttp, ltt_com) if (lttp%tracking_method == 'BMAD') call reallocate_coord (orb, lat) -if (ltt_com%beam_init%use_particle_start) then +if (present(orb_in)) then + call init_coord (orbit, orb_in, ele_start, downstream_end$, lat%param%particle) +elseif (ltt_com%beam_init%use_particle_start) then call init_coord (orbit, ltt_com%lat%particle_start, ele_start, downstream_end$, lat%param%particle) else call init_coord (orbit, ltt_com%beam_init%center, ele_start, downstream_end$, lat%param%particle, spin = ltt_com%beam_init%spin) @@ -1006,14 +1040,19 @@ subroutine ltt_run_single_mode (lttp, ltt_com) ! -iu_part = lunget() -if (lttp%phase_space_output_file == '') lttp%phase_space_output_file = 'single.dat' -open(iu_part, file = lttp%phase_space_output_file, recl = 300) -call ltt_write_params_header(lttp, ltt_com, iu_part, 1) -write (iu_part, '(a)') '## Turn ix_ele | x px y py z pz pc p0c time | spin_x spin_y spin_z | Element' -write (iu_part, ltt_com%ps_fmt) 0, ele_start%ix_ele, orbit%vec, (1.0_rp+orbit%vec(6))*orbit%p0c, orbit%p0c, orbit%t, orbit%spin, trim(ele_start%name) +if (lttp%simulation_mode == 'INDIVIDUAL') then + iu_part = -1 +else + iu_part = lunget() + if (lttp%phase_space_output_file == '') lttp%phase_space_output_file = 'single.dat' + open(iu_part, file = lttp%phase_space_output_file, recl = 300) + call ltt_write_params_header(lttp, ltt_com, iu_part, 1) + write (iu_part, '(a)') '## Turn ix_ele | x px y py z pz pc p0c time | spin_x spin_y spin_z | Element' + write (iu_part, ltt_com%ps_fmt) 0, ele_start%ix_ele, orbit%vec, (1.0_rp+orbit%vec(6))*orbit%p0c, orbit%p0c, orbit%t, orbit%spin, trim(ele_start%name) + if (lttp%custom_output_file /= '') call ltt_write_custom (lttp, ltt_com, 0, orbit = orbit) +endif -if (lttp%custom_output_file /= '') call ltt_write_custom (lttp, ltt_com, 0, orbit = orbit) +! do i_turn = lttp%ix_turn_start+1, lttp%ix_turn_stop select case (lttp%tracking_method) @@ -1052,17 +1091,23 @@ subroutine ltt_run_single_mode (lttp, ltt_com) ! + if (orbit%state /= alive$) then + if (lttp%simulation_mode == 'INDIVIDUAL') then + orb_in = orbit + return + endif + print '(a, i0, 8a)', 'Particle lost at turn: ', i_turn + exit + endif + + if (lttp%simulation_mode == 'INDIVIDUAL') cycle + if (lttp%particle_output_every_n_turns > 0) then if (modulo(i_turn, lttp%particle_output_every_n_turns) == 0) then write (iu_part, ltt_com%ps_fmt) i_turn, ele_start%ix_ele, orbit%vec, (1.0_rp+orbit%vec(6))*orbit%p0c, orbit%p0c, orbit%t, orbit%spin, trim(ele_start%name) endif endif - if (orbit%state /= alive$) then - print '(a, i0, 8a)', 'Particle lost at turn: ', i_turn - exit - endif - if (lttp%averages_output_file /= '') then average = average + orbit%vec sigma = sigma + outer_product(orbit%vec, orbit%vec) @@ -1072,6 +1117,11 @@ subroutine ltt_run_single_mode (lttp, ltt_com) if (lttp%custom_output_file /= '') call ltt_write_custom (lttp, ltt_com, i_turn, orbit = orbit) enddo +if (lttp%simulation_mode == 'INDIVIDUAL') then + orb_in = orbit + return +endif + print '(2a)', 'Particle output file: ', trim(lttp%phase_space_output_file) close(iu_part) @@ -2649,7 +2699,9 @@ subroutine ltt_track_bmad_single (lttp, ltt_com, ele_start, ele_stop, orbit, i_t call track1 (orbit, ele, ele%branch%param, orbit, err_flag = err_flag) endif - if (present(iu_part) .and. lttp%particle_output_every_n_turns < 1) then + if (orbit%state /= alive$) return + + if (integer_option(-1, iu_part) > 0 .and. lttp%particle_output_every_n_turns < 1) then write (iu_part, ltt_com%ps_fmt) i_turn, ele%ix_ele, orbit%vec, (1.0_rp+orbit%vec(6))*orbit%p0c, orbit%p0c, orbit%t, orbit%spin, trim(ele%name) endif diff --git a/bsim/modules/ts_mod.f90 b/bsim/modules/ts_mod.f90 index 5db584b530..ffeb475990 100644 --- a/bsim/modules/ts_mod.f90 +++ b/bsim/modules/ts_mod.f90 @@ -12,6 +12,8 @@ module ts_mod type ts_params_struct character(100) :: lat_file = '', dat_out_file = '', quad_mask = '' + character(40) :: group_knobs(2) = ["", ""] + character(40) :: test = "" real(rp) :: Q_a0 = 0, Q_a1 = 0, dQ_a = 0 real(rp) :: Q_b0 = 0, Q_b1 = 0, dQ_b = 0 real(rp) :: Q_z0 = 0, Q_z1 = 0, dQ_z = 0 @@ -61,7 +63,7 @@ subroutine ts_init_params (ts, ts_com) type (ele_struct), pointer :: ele integer n_arg -logical err +logical err, rf_on namelist / params / bmad_com, ts @@ -70,8 +72,8 @@ subroutine ts_init_params (ts, ts_com) n_arg = command_argument_count() if (n_arg > 1) then - print *, 'Usage: tune_scan ' - print *, 'Default: = tune_scan.init' + print '(a)', 'Usage: tune_scan ' + print '(a)', 'Default: = tune_scan.init' stop endif @@ -88,6 +90,16 @@ subroutine ts_init_params (ts, ts_com) if (ts%dat_out_file == '') call file_suffixer(ts_com%master_input_file, ts%dat_out_file, 'dat', .true.) +if (ts%group_knobs(1) == '' .xor. ts%group_knobs(2) == '') then + print '(a)', 'Error: Both ts%group_knobs(1) and ts%group_knobs(2) strings must be non-blank or both must be non-blank' + stop +endif + +if (ts%use_phase_trombone .and. ts%group_knobs(1) /= '') then + print '(a)', 'Error: ts%use_phase_trombone and ts%group_knobs cannot both be used at the same time.' + stop +endif + !--------------------------------------------- ! Calculate number of steps to take from range and step size @@ -123,7 +135,21 @@ subroutine ts_init_params (ts, ts_com) call bmad_parser(ts%lat_file, ts_com%ring, err_flag = err) if (err) stop -if (.not. ts%rf_on) call set_on_off(rfcavity$, ts_com%ring, off$) +rf_on = rf_is_on(ts_com%ring%branch(0)) +if (ts%rf_on .neqv. rf_on) then + if (ts%rf_on) then + call set_on_off(rfcavity$, ts_com%ring, on$) + else + call set_on_off(rfcavity$, ts_com%ring, off$) + endif +endif + +rf_on = rf_is_on(ts_com%ring%branch(0)) +if (ts%rf_on .neqv. rf_on) then + print '(a)', 'Cannot turn RF on. Will stop here.' + stop +endif + if (ts%use_phase_trombone) call insert_phase_trombone(ts_com%ring%branch(0)) allocate(ts_com%closed_orb(0:ts_com%ring%n_ele_max)) @@ -164,7 +190,7 @@ end subroutine ts_init_params !------------------------------------------------------------------------------------------- !------------------------------------------------------------------------------------------- -recursive subroutine ts_track_particle(ts, ts_com, ja, jb, jz, ts_dat) +recursive subroutine ts_track_particle(ts, ts_com, jtune, ts_dat) type (ts_params_struct) ts type (ts_com_struct) ts_com @@ -175,27 +201,27 @@ recursive subroutine ts_track_particle(ts, ts_com, ja, jb, jz, ts_dat) type (ele_struct), pointer :: ele real(rp) Jvec0(1:6), Jvec(1:6), init_vec(6), amp(3), r(3), v_mat(4,4) -integer ja, jb, jz, nt, track_state, status +integer jtune(3), nt, track_state, status logical ok, error ! ts_dat = ts_data_struct() -ts_dat%ix_q = [ja, jb, jz] +ts_dat%ix_q = jtune -ts_dat%tune(1) = ts_com%int_Qa + ts%Q_a0 + ja*ts%dQ_a -ts_dat%tune(2) = ts_com%int_Qb + ts%Q_b0 + jb*ts%dQ_b +ts_dat%tune(1) = ts_com%int_Qa + ts%Q_a0 + jtune(1)*ts%dQ_a +ts_dat%tune(2) = ts_com%int_Qb + ts%Q_b0 + jtune(2)*ts%dQ_b if (ts%rf_on) then - ts_dat%tune(3) = -(ts%Q_z0 + jz*ts%dQ_z) + ts_dat%tune(3) = -(ts%Q_z0 + jtune(3)*ts%dQ_z) else - ts_dat%tune(3) = ts%pz0 + jz*ts%dpz + ts_dat%tune(3) = ts%pz0 + jtune(3)*ts%dpz endif ring = ts_com%ring ! Use copy in case tune setting fails, which may garble the lattice closed_orb = ts_com%closed_orb ! Use copy in case tune setting fails, which may garble the closed orbit ele => ring%ele(0) -ok = set_tune_3d (ring%branch(0), ts_dat%tune, ts%quad_mask, ts%use_phase_trombone, ts%rf_on) ! Tunes in radians. +ok = set_tune_3d (ring%branch(0), ts_dat%tune, ts%quad_mask, ts%use_phase_trombone, ts%rf_on, ts%group_knobs) ! Tunes in radians. if (.not. ok) return ! Tunes could not be set, probably on a resonance. if (ts%rf_on) then @@ -247,7 +273,7 @@ recursive subroutine ts_track_particle(ts, ts_com, ja, jb, jz, ts_dat) amp = [sqrt(Jvec(1)**2 + Jvec(2)**2)/sqrt(ts_com%a_emit), sqrt(Jvec(3)**2 + Jvec(4)**2)/sqrt(ts_com%b_emit), & sqrt(Jvec(5)**2 + Jvec(6)**2)/ts_com%sig_pz] if (error) then - print *, "BAD: xyz_to_action returned error." + print '(a)', "BAD: xyz_to_action returned error." endif else coords%vec(6) = 0 ! The dispersion has already been subtracted off diff --git a/bsim/searchf.namelist b/bsim/searchf.namelist new file mode 100644 index 0000000000..9aae2e52e0 --- /dev/null +++ b/bsim/searchf.namelist @@ -0,0 +1,590 @@ + +File: aperture_by_tracking/aperture_by_tracking.f90 +aperture_by_tracking + +File: aperture_by_tracking/aperture_by_tracking_mod.f90 +aperture_by_tracking_mod +progress_indicator +prep_lat_ring +make_slices +check_if_lost_ring +check_if_lost_linac +binary_search + +File: aperture_by_tracking/aperture_by_tracking_mpi_mod.f90 +aperture_by_tracking_mpi_mod +aperture_by_tracking_mpi_mod_max_apertures +aperturejob_struct +apertureresult_struct +mympi_initialize +mympi_bmad_parser +mympi_register_derived_types +mympi_check_mailbox_with_timeout +mympi_receive_result +mympi_send_result +mympi_receive_job +mympi_send_job +mympi_shutdown + +File: apisa/nsga2/nsga2.cpp +main +check_sel +if +if + +File: apisa/nsga2/nsga2_functions.cpp +initialize +chk_malloc +create_pop +create_ind +free_memory +free_pop +free_ind +selection +mergeOffspring +calcFitnesses +calcDistances +environmentalSelection +matingSelection +select_initial +select_normal +irand +read_ini +read_var +write_sel +write_arc +check_sel +check_arc + +File: apisa/nsga2/nsga2_io.cpp +read_pop + +File: apisa/spea2/spea2.cpp +main + +File: apisa/spea2/spea2_functions.cpp +initialize +chk_malloc +create_pop +create_ind +free_memory +free_pop +free_ind +selection +mergeOffspring +calcFitnesses +calcDistances +environmentalSelection +truncate_nondominated +truncate_dominated + +File: apisa/spea2/spea2_io.cpp +read_pop + +File: bbu/bbu_program.f90 +bbu_program + +File: code/adjust_optics.f90 +adjust_optics + +File: code/bbu_track_mod.f90 +bbu_track_mod +bbu_stage_struct +bbu_beam_struct +bbu_current_variation_struct +bbu_param_struct +bbu_setup +bbu_track_all +bbu_track_a_stage +bbu_add_a_bunch +bbu_remove_head_bunch +bbu_hom_voltage_calc +rf_cav_names +check_rf_freq +write_bunch_by_bunch_info +hom_voltage +logical_to_python + +File: code/bsim_interface.f90 +bsim_interface + +File: code/count_lines_in_file.f90 +count_lines_in_file_mod +count_lines_in_file + +File: code/insert_phase_trombone.f90 +insert_phase_trombone + +File: code/longitudinal_beta.f90 +longitudinal_beta + +File: code/set_tune_3d.f90 +set_tune_3d + +File: code/slice_mod.f90 +slice_mod +track_s_to_s + +File: code_synrad/break_wall_into_segments.f90 +break_wall_into_segments + +File: code_synrad/calculate_synrad_power.f90 +calculate_synrad_power + +File: code_synrad/check_end.f90 +check_end + +File: code_synrad/check_wall.f90 +check_wall + +File: code_synrad/ele_synrad_power.f90 +ele_synrad_power + +File: code_synrad/get_initial_wall_pt.f90 +get_initial_wall_pt + +File: code_synrad/init_ray.f90 +init_ray + +File: code_synrad/outline_concat.f90 +outline_concat + +File: code_synrad/outline_reverse.f90 +outline_reverse + +File: code_synrad/ray_is_outside_wall.f90 +ray_is_outside_wall + +File: code_synrad/seg_power_calc.f90 +seg_power_calc + +File: code_synrad/set_wall_eles.f90 +set_wall_eles + +File: code_synrad/synrad_adjust_wall_points.f90 +synrad_adjust_wall_points + +File: code_synrad/synrad_custom_seg_calc.f90 +synrad_custom_seg_calc + +File: code_synrad/synrad_interface.f90 +synrad_interface + +File: code_synrad/synrad_mod.f90 +synrad_mod + +File: code_synrad/synrad_read_vac_wall_geometry.f90 +synrad_read_vac_wall_geometry + +File: code_synrad/synrad_setup_walls.f90 +synrad_setup_walls + +File: code_synrad/synrad_struct.f90 +synrad_struct +wall_pt_struct +source_struct +seg_power_struct +wall_seg_struct +wall_struct +walls_struct +ray_struct +ele_power_struct +synrad_param_struct +synrad_mode_struct +outline_pt_struct +outline_struct +wall_list_struct +concat_part_struct +concat_struct +negative_x$ +positive_x$ +start_side$ +exit_side$ +synrad_significant_length + +File: code_synrad/synrad_write_power_mod.f90 +synrad_write_power_mod +write_power_header +write_power_results +write_header +write_results + +File: code_synrad/theta_floor.f90 +theta_floor + +File: code_synrad/track_ray_to_wall.f90 +track_ray_to_wall + +File: code_synrad3d/synrad3d_output_mod.f90 +synrad3d_output_mod +sr3d_write_hit_points +sr3d_write_photon_start_file +sr3d_record_photon_position + +File: code_synrad3d/synrad3d_parse_wall.f90 +synrad3d_parse_wall +sr3d_section_struct +sr3d_multi_section_struct +sr3d_wall_struct +sr3d_section_input +surface_input +old_wall_section_input +sr3d_read_wall_file +sr3d_old_wall_file_format +sr3d_associate_surface +sr3d_read_wall_multi_section + +File: code_synrad3d/synrad3d_plot_mod.f90 +synrad3d_plot_mod +sr3d_plot_diffuse_probability +sr3d_plot_reflection_probability +sr3d_plot_wall_vs_s +sr3d_plot_wall_cross_sections +sr3d_find_wall_point + +File: code_synrad3d/synrad3d_struct.f90 +synrad3d_struct +sr3d_photon_wall_hit_struct +sr3d_coord_struct +sr3d_photon_track_struct +sr3d_params_struct +sr3d_fast_struct +sr3d_branch_overlap_struct +sr3d_branch_com_struct +sr3d_common_struct +is_through_wall$ +at_wall_end$ +inside_the_wall$ +at_transverse_wall$ +sr3d_plot_param_struct + +File: code_synrad3d/synrad3d_test_mod.f90 +synrad3d_test_mod +sr3d_diffuse_probability_test +sr3d_monte_carlo_reflection_test +sr3d_specular_reflection_test + +File: code_synrad3d/synrad3d_track_mod.f90 +synrad3d_track_mod +sr3d_track_photon +sr3d_track_photon_to_wall +sr3d_check_if_photon_init_coords_outside_wall +sr3d_photon_status_calc +sr3d_propagate_photon_a_step +sr3d_photon_hit_spot_calc +sr3d_reflect_photon + +File: code_synrad3d/synrad3d_utils.f90 +synrad3d_utils +sr3d_get_emission_pt_params +sr3d_emit_photon +sr3d_photon_d_radius +sr3d_get_section_index +sr3d_print_photon_info +i0_eff_calc + +File: code_synrad3d/synrad3d_wall_to_synrad_walls_mod.f90 +synrad3d_wall_to_synrad_walls_mod +synrad3d_wall_to_synrad_walls +calc_this_side +add_this_point +calc_this_x + +File: custom_tracking/track1_preprocess.f90 +track1_preprocess + +File: dark_current_tracker/dark_current_mod.f90 +dark_current_mod +dark_current_param_struct +dark_current_tally_struct +plot_particle_track +plot_wall +write_particle_track +wall_position_from_s_to_s +import_time_distribution +dark_current_tracker_parse_command_args + +File: dark_current_tracker/dark_current_tracker.f90 +dark_current_tracker + +File: dynamic_aperture/da_program_mod.f90 +da_program_mod + +File: dynamic_aperture/dynamic_aperture.f90 +dynamic_aperture_program + +File: dynamic_aperture/track_many_hook.f90 +track_many_hook + +File: envelope_ibs/envelope_ibs.f90 +envelope_ibs + +File: frequency_map/frequency_map.f90 +frequency_map + +File: ibs_linac/ibs_linac.f90 +ibs_linac + +File: ibs_ring/ibs_ring.f90 +ibs_ring +param_bomb + +File: long_term_tracking/long_term_tracking.f90 +long_term_tracking + +File: long_term_tracking/long_term_tracking_mpi.f90 +long_term_tracking + +File: long_term_tracking/track1_bunch_hook.f90 +track1_bunch_hook + +File: modules/adts_mod.f90 +adts_mod +tune_ele_by_ele +accumulate_phase_advance + +File: modules/crm_mod.f90 +crm_mod +numerical_delta +crm_struct +crm_alloc +crm_build + +File: modules/custom_dynamic_aperture_mod.f90 +custom_dynamic_aperture_mod +custom_aperture_data_struct +custom_aperture_param_struct +custom_aperture_scan_struct +custom_dynamic_aperture_scan +custom_dynamic_aperture +local_cosphi +local_sinphi + +File: modules/dynap_mod.f90 +dynap_mod +get_magnet_strengths +set_magnet_strengths +is_linear_ele +frac +read_initial_population +k2_to_omega +omega_to_k2 +count_feasible_in_pop +write_population + +File: modules/four_mod.f90 +four_mod +xy_to_action + +File: modules/linear_aperture_mod.f90 +linear_aperture_mod +linear_aperture + +File: modules/lt_tracking_mod.f90 +lt_tracking_mod +master_rank$ +in_map$ +not_in_map$ +core_max$ +ltt_column_struct +ltt_params_struct +map$ +ele$ +ltt_section_struct +ltt_com_struct +new$ +valid$ +written$ +ltt_bunch_data_struct +ltt_read_params +ltt_init_params +ltt_init_tracking +ltt_print_per_particle_file_header +ltt_per_particle_file_name +ltt_print_inital_info +ltt_write_line +ltt_run_check_mode +ltt_run_individual_mode +ltt_run_single_mode +ltt_init_beam_distribution +ltt_run_beam_mode +ltt_run_stat_mode +ltt_track1_radiation_center +ltt_setup_high_energy_space_charge +ltt_write_particle_data +ltt_write_custom +ltt_write_beam_binary_file +ltt_write_params_header +ltt_calc_bunch_data +ltt_averages_file_name +ltt_write_averages_data +ltt_write_single_mode_sigma_file +ltt_read_map +ltt_write_map +ltt_map_file_name +ltt_make_map +ltt_make_tracking_lat +ltt_pointer_to_map_ends +ltt_track_bmad_single +ltt_track_bmad_bunch +ltt_track_map +ltt_print_mpi_info +ltt_bunch_time_sum +ltt_apply_rampers_to_slave + +File: modules/moga_struct_mod.f90 +moga_struct_mod +mag_struct + +File: modules/namelist_da.f90 +namelist_da +max_de + +File: modules/namelist_general.f90 +namelist_general + +File: modules/namelist_moga.f90 +namelist_moga +max_mags + +File: modules/pisa_mod.f90 +pisa_mod +pool_struct +pop_struct +breeder_params_struct +find_empty_pop_slot +delete_the_dead +pisa_cfg_parser +increment_ptr +name_to_ix +read_pisa_indexes +write_pop_pisa +write_objective_report +write_constraint_report +block_on_pisa_status +poll_state +write_state +kangal_breeder +niave_breeder + +File: modules/ts_mod.f90 +ts_mod +master_rank$ +job_tag$ +have_data_tag$ +results_tag$ +ts_params_struct +ts_com_struct +ts_data_struct +ts_init_params +ts_track_particle +ts_write_results +ts_print_mpi_info + +File: moga/moga.f90 +moga + +File: sodom2/sodom2.f90 +sodom2 + +File: sodom2/sodom2_mod.f90 +sodom2_mod +master_rank$ +a_mode$ +b_mode$ +c_mode$ +j_tol$ +angle_max$ +sodom2_params_struct +sodom2_com_struct +sodom2_read_params +sodom2_init_params +sodom2_init_bunch +sodom2_track_bunch +quat_to_su2 +sodom2_construct_quaternions +sodom2_fft +sodom2_construct_mat +sodom2_deallocate_memory +sodom2_eig +sodom2_determine_adst +sodom2_write_n +sodom2_write_particles +sodom2_check_n + +File: spin_stroboscope/spin_stroboscope.f90 +spin_stroboscope + +File: spin_stroboscope/track1_custom.f90 +track1_custom + +File: srdt_lsq_soln/srdt_lsq_soln.f90 +srdt_lsq_soln + +File: synrad/synrad.f90 +synrad + +File: synrad/synrad_plot_mod.f90 +synrad_plot_mod +plot_param_struct +synrad_plot_sx + +File: synrad3d/synrad3d.f90 +synrad3d + +File: synrad3d/custom/synrad3d_photon_init_custom.f90 +synrad3d_photon_init_custom + +File: synrad_aperture_to_wall/synrad_aperture_to_wall.f90 +synrad_aperture_to_wall + +File: touschek_background/special_collimate_lattice.f90 +special_collimate_lattice_mod +collimator_struct +special_collimate_lattice + +File: touschek_background/touschek_background.f90 +touschek_background + +File: touschek_background/touschek_background_mod.f90 +touschek_background_mod +orbit_data_struct +raw_touschek_analysis + +File: touschek_background/touschek_background_mpi_mod.f90 +touschek_background_mpi_mod +trackjob_struct +jobdesc_struct +trackresult_struct +jobresults_struct +mympi_initialize +mympi_register_derived_types +mympi_bmad_parser +mympi_bcast_sigmap +mympi_check_mailbox_with_timeout +mympi_send_job_desc +mympi_recv_job_desc +mympi_receive_results +mympi_send_results +mympi_shutdown + +File: tune_plane_res_plot/tune_plane_res_mod.f90 +tune_plane_res_mod +res_params_struct +res_line_struct +res_struct +res_line_calc +res_line_write_list +res_line_plot + +File: tune_plane_res_plot/tune_plane_res_plot.f90 +tune_plane_res_plot + +File: tune_scan/tune_scan.f90 +tune_scan + +File: tune_scan/tune_scan_mpi.f90 +tune_scan_mpi + +File: wall_generator/wall_generator.f90 +wall_generator diff --git a/bsim/tune_scan/doc/tune_scan.tex b/bsim/tune_scan/doc/tune_scan.tex index bf05146a2f..fd504da2b9 100644 --- a/bsim/tune_scan/doc/tune_scan.tex +++ b/bsim/tune_scan/doc/tune_scan.tex @@ -75,7 +75,7 @@ \title{Tune Scan Program} \author{} -\date{David Sagan \\ April 26, 2022} +\date{David Sagan \\ October 22, 2023} \begin{document} \maketitle @@ -141,9 +141,9 @@ bsim/tune_scan/example \end{code} -When running the MPI version threaded over multiple computers, the details of how to start the process will -vary depending upon the installation. See your local Guru for details. When running on a single machine, -the typical command will look like +When running the MPI version threaded over multiple computers, the details of how to start the +process will vary depending upon the installation. See your local Guru for details. When running on +a single machine, the typical command will look like \begin{code} mpiexec -n tune_scan_mpi {} \end{code} @@ -171,27 +171,23 @@ ... / \end{code} -The tag \vn{"\&"} starts the namelist where -\vn{} is the name of the namelist. The namelist ends -with the slash \vn{"/"} tag. Anything outside of this is -ignored. Within the namelist, anything after an exclamation mark -\vn{"!"} is ignored including the exclamation mark. \vn{}, -\vn{}, etc. are variable names. Example: +The tag \vn{"\&"} starts the namelist where \vn{} is the name of the +namelist. The namelist ends with the slash \vn{"/"} tag. Anything outside of this is ignored. Within +the namelist, anything after an exclamation mark \vn{"!"} is ignored including the exclamation +mark. \vn{}, \vn{}, etc. are variable names. Example: \begin{code} &place section = 0.0, "arc_std", "elliptical", 0.045, 0.025 / \end{code} -here \vn{place} is the namelist name and \vn{section} is a -variable name. Notice that here \vn{section} is a ``structure'' which -has five components -- a real number, followed by two strings, +here \vn{place} is the namelist name and \vn{section} is a variable name. Notice that here +\vn{section} is a ``structure'' which has five components -- a real number, followed by two strings, followed by two real numbers. Everything is case insensitive except for quoted strings. -Logical values are specified by \vn{True} or \vn{False} or can be -abbreviated \vn{T} or \vn{F}. Avoid using the dots (periods) that one -needs in Fortran code. +Logical values are specified by \vn{True} or \vn{False} or can be abbreviated \vn{T} or +\vn{F}. Avoid using the dots (periods) that one needs in Fortran code. %------------------------------------------------------------------ \Section{Master Input File} @@ -214,6 +210,7 @@ ts%use_phase_trombone = F ! Use phase trombone ele to adjust transverse tunes? ts%quad_mask = "" ! Quadrupole mask used with quadrupole variation. + ts%group_knobs = "", "" ! Tune variation can optionally be done using group elements. ts%Q_z0 = 0.066 ! Q_z range (when RF is on) is [Q_z0, Q_z1]. ts%Q_z1 = 0.067 ! Units are rad/2pi. @@ -246,7 +243,16 @@ \item[ts\%dat_out_file] \Newline Data output file name. Default if blank or not present is \vn{tune_scan.dat}. % -\item[ts\%] \Newline +\item[ts\%group_knobs] \Newline +If \vn{ts%group_knobs} is set, tune variation can be done by variation of two \vn{group} elements +whose names are given by \vn{ts%group_knobs}. Example: +\begin{code} + ts%group_knobs = "qtune1", "qtune2" +\end{code} +% +%\item[ts\%test] \Newline +%If non-blank, instead of a tune scan, a test is run. Currently the only test is is \vn{"TUNE"} +%which tests how accurately the program is setting the tune. % \item[ts\%Q_a0, ts\%Q_a1, ts\%dQ_a] \Newline \vn{[ts%Q_a0, ts%Q_a1]} is the range of the tune plane grid along the $Q_a$ axis and \vn{ts%dQ_a} is @@ -336,22 +342,30 @@ } The units are in radians/2$\pi$. Only the fractional part of the tune should be given. -The transverse $(Q_x, Q_y)$ tunes are set by either varying quadrupole strengths in the lattice or -by varying the phase advance through a \vn{match} element set in phase trombone mode. Which strategy -is used is determined by the setting of \vn{ts%use_phase_trombone}. If set to True, a \vn{match} -element in phase trombone mode is added to the lattice and the phase advance in the element is -adjusted as needed. This gives a ``smooth'' tune variation in the sense that the Twiss parameters do -not change around the ring. It is somewhat unrealistic though when trying to simulate an actual -machine. When not using a phase trombone element, lattice tune variation is achieved by varying -quadrupole strengths. The general algorithm is to exclude any quadrupoles that are tilted and then -divide the upright quadrupoles into two groups. One group were $\beta_a > \beta_b$ at the quadrupole -and the other group with $\beta_a < \beta_b$. The $k_1$ quadrupole strength of the quadrupoles of -each group are varied in unison. The two groups represent two variables which can be used to match -the two tune conditions. It may be desirable to not vary selected quadrupoles. For example, the -quadrupoles in an interaction region. - -To exclude quadrupoles from being varied the \vn{ts%quad_mask} string can be set appropriately. See -the Bmad manual for details about element selection. For example: +The transverse $(Q_x, Q_y)$ tunes can be veried in one of three ways: +\begin{description} +\item +If \vn{ts%use_phase_trombone} is set to True, a \vn{match} element in phase trombone mode is added +to the lattice and the phase advance in the element is adjusted as needed. This gives a ``smooth'' +tune variation in the sense that the Twiss parameters do not change around the ring. It is somewhat +unrealistic though when trying to simulate an actual machine. +% +\item +If \vn{ts%group_knobs} (which is a vector of two strings) is set to non-blank values, the +group elements in the lattice matching the names will be used to vary the tune. +\begin{code} + ts%group_knobs = "qtune1", "qtune2" +\end{code} +% +\item +If none of the above methods are used, the lattice tune variation is achieved by varying quadrupole +strengths. The general algorithm is to exclude any quadrupoles that are tilted and then divide the +upright quadrupoles into two groups. One group were $\beta_a > \beta_b$ at the quadrupole and the +other group with $\beta_a < \beta_b$. The $k_1$ quadrupole strength of the quadrupoles of each group +are varied in unison. The two groups represent two variables which can be used to match the two tune +conditions. It may be desirable to not vary selected quadrupoles. For example, the quadrupoles in an +interaction region. To exclude quadrupoles from being varied, the \vn{ts%quad_mask} string can be +set appropriately. See the Bmad manual for details about element selection. For example: \begin{code} ts%quad_mask = "QT* IP:M34" \end{code} @@ -363,7 +377,7 @@ In this example all quadrupole elements are vetoed except for quadrupoles whose name begins with ``\vn{QT}'' and has three letters. That is, only quadrupoles whose name begins with ``\vn{QT}'' and has three letters will be varied. - +\end{description} There are two modes of operation. In the \vn{RF off} mode, \vn{ts%rf_on} is set to False (the default). In the \vn{RF on} mode, \vn{ts%rf_on} is set to True. In the \vn{RF off} mode, tune plane diff --git a/bsim/tune_scan/tune_scan.f90 b/bsim/tune_scan/tune_scan.f90 index 5f63cdcf9e..5be755e9e1 100644 --- a/bsim/tune_scan/tune_scan.f90 +++ b/bsim/tune_scan/tune_scan.f90 @@ -25,7 +25,7 @@ program tune_scan do ja = 0, ts_com%n_a do jb = 0, ts_com%n_b do jz = 0, ts_com%n_z - call ts_track_particle (ts, ts_com, ja, jb, jz, ts_dat(ja,jb,jz)) + call ts_track_particle (ts, ts_com, [ja, jb, jz], ts_dat(ja,jb,jz)) call run_timer ('READ', del_time) if (del_time - time0 > ts%timer_print_dtime) then diff --git a/bsim/tune_scan/tune_scan_mpi.f90 b/bsim/tune_scan/tune_scan_mpi.f90 index dc1dbee75e..b551961a2a 100644 --- a/bsim/tune_scan/tune_scan_mpi.f90 +++ b/bsim/tune_scan/tune_scan_mpi.f90 @@ -65,7 +65,7 @@ program tune_scan_mpi do ja = 0, ts_com%n_a do jb = 0, ts_com%n_b do jz = 0, ts_com%n_z - call ts_track_particle (ts, ts_com, ja, jb, jz, ts_dat(ja,jb,jz)) + call ts_track_particle (ts, ts_com, [ja, jb, jz], ts_dat(ja,jb,jz)) enddo enddo enddo diff --git a/code_examples/searchf.namelist b/code_examples/searchf.namelist new file mode 100644 index 0000000000..964cd6c7dc --- /dev/null +++ b/code_examples/searchf.namelist @@ -0,0 +1,60 @@ + +File: beam_track_example/beam_track_example.f90 +beam_track_example + +File: bmad_to_opal_example/bmad_to_opal_example.f90 +bmad_to_opal_example + +File: coarray_example/coarray_example.f90 +coarray_example + +File: construct_taylor_map/construct_taylor_map.f90 +construct_taylor_map + +File: csr_example/csr_example.f90 +csr_example + +File: dispersion_simulation/dispersion_simulation.f90 +dispersion_simulation + +File: em_field_query_example/em_field_query_example.f90 +em_field_query_example + +File: lapack_examples/lapack_examples.f90 +lapack_examples + +File: lattice_geometry_example/lattice_geometry_example.f90 +lattice_geometry_example + +File: mpi_mp/mpi_mp.f90 +mpi_mp + +File: multi_turn_tracking_example/multi_turn_tracking_example.f90 +multi_turn_tracking_example + +File: parallel_track_example/parallel_track_example.f90 +parallel_track_example + +File: particle_track_example/particle_track_example.f90 +particle_track_example + +File: plot_example/plot_example.f90 +example_plot + +File: ptc_layout_example/ptc_layout_example.f90 +ptc_layout_example + +File: ptc_spin_orbital_normal_form/ptc_spin_orbital_normal_form.f90 +ptc_spin_orbital_normal_form + +File: simple_bmad_program/simple_bmad_program.f90 +test + +File: spin_amplitude_dependent_tune/spin_amplitude_dependent_tune.f90 +spin_phase_advance_isf + +File: spin_matching/spin_matching.f90 +spin_matching + +File: tune_tracker/TT_example.f90 +tune_tracker_driver diff --git a/forest/searchf.namelist b/forest/searchf.namelist new file mode 100644 index 0000000000..460ab2f35f --- /dev/null +++ b/forest/searchf.namelist @@ -0,0 +1,6677 @@ + +File: code/Sa_extend_poly.f90 +s_extend_poly +operator +procedure +procedure +procedure +procedure +assignment +procedure +procedure +procedure +procedure +scdadd +daddsc +daddsco +scdaddo +equal_real8_cmap +equal_cmap_real8 +equal_c_map_ray8 +equal_ray8_c_map +prtp1 +prtp +analyse_aperture_flag + +File: code/Sb_sagan_pol_arbitrary.f90 +s_pol_sagan +assignment +procedure +blpol2_0 + +File: code/Sc_euclidean.f90 +s_euclidean +trans +procedure +procedure +rot_xz +procedure +procedure +rot_yz +procedure +procedure +rot_xy +procedure +procedure +r_xy +r_z +t_xyz +e_general +init +procedure +procedure +procedure +procedure +procedure +print_e_general +zero_r_xy +zero_r_z +zero_t_xyz +zero_e_general +zero_e_general_s +trans_dl +track_e_general_s +track_e_general +recombine +commute_e +rot_yzr +rot_yzp +transr +transp +rot_xyr +rot_xyp +rot_xzr +rot_xzp + +File: code/Sd_frame.f90 +s_frame +assignment +procedure +procedure +equal +procedure +procedure +copy +procedure +procedure +geo_rot +procedure +procedure +procedure +procedure +compute_angle +procedure +find_patch +procedure +find_patch_bmad +procedure +assignment +procedure +null_f +alloc_f +null_af +null_gs +alloc_af +kill_af +kill_f +equal_f +copy_patch +copy_chart +copy_chart1 +copy_patch1 +zero_patch +zero_chart +copy_vector +change_basis +geo_tra +print_triad +geo_rota_no_vec +geo_rota +geo_rotab_no_vec +rotate_frame +translate_frame +translate_point +make_rot_x +make_rot_y +make_rot_z +geo_rotb +check_frame +make_normal +compute_distance +compute_entrance_angle +compute_entrance_angle_mengyu +find_patch_mengyu +find_patch_from_mengyu_to_ptc +compute_entrance_angle_bmad +convert_patch_mengyu_to_etienne +print33 +convert_patch_etienne_to_mengyu +compute_scalar +find_patch_bmad0 +find_patch_b +find_patch_bmad_marker +inverse_find_patch +inverse_find_patch_bmad + +File: code/Sf_def_all_kinds.f90 +s_def_all_kinds +get_length + +File: code/Sg_sagan_wiggler.f90 +sagan_wiggler +hyper_y_family_y +hyper_xy_family_y +hyper_x_family_y +hyper_y_family_x +hyper_xy_family_x +hyper_x_family_x +hyper_y_family_qu +hyper_xy_family_qu +hyper_x_family_qu +hyper_y_family_sq +hyper_xy_family_sq +hyper_x_family_sq +conv_to_xp +procedure +procedure +adjust_px_exi +procedure +procedure +adjust_px_ent +procedure +procedure +conv_to_px +procedure +procedure +feval_sagan +procedure +procedure +rk2_sagan +procedure +procedure +rk4_sagan +procedure +procedure +rk6_sagan +procedure +procedure +get_z_wi +procedure +procedure +driftsagan +procedure +procedure +kickpath +procedure +procedure +kick +procedure +procedure +compx +procedure +procedure +compy +procedure +procedure +compz +procedure +procedure +b_field +procedure +procedure +e_field +procedure +procedure +e_potential +procedure +procedure +track +procedure +procedure +alloc +procedure +procedure +pointers_sagan +procedure +procedure +pointers_w +procedure +procedure +kill +procedure +procedure +copy +procedure +procedure +procedure +procedure +procedure +procedure +scale_sagan +procedure +procedure +print_user +procedure +read_user +procedure +assignment +procedure +procedure +procedure +procedure +track_slice +procedure +procedure +adjust_like_abell +procedure +procedure +adjust_wi +procedure +procedure +kick_integral +procedure +procedure +gen_conv_to_px +procedure +procedure +gen_conv_to_xp +procedure +procedure +conv_to_xp +procedure +procedure +procedure +procedure +conv_to_px +procedure +procedure +procedure +procedure +b_e_field +procedure +procedure +fx_new +procedure +procedure +adjust_wir +adjust_wip +kick_integral_r +kick_integral_p +intr +get_z_wir +get_z_wip +int_saganr +intp +int_saganp +zero_saganr +zero_saganp +zero_wr +zero_wp +copy_el_elp +copy_elp_el +copy_el_el +copy_w_w +copy_w_wp +copy_wp_w +pointers_saganr +pointers_saganp +pointers_wr +pointers_wp +alloc_sagan +alloc_wiggler +kill_sagan +kill_wiggler +reset_wi +reset_wig +elp_pol_sagan +scale_saganr +scale_saganp +driftsaganr +driftsaganp +kickpathr +kickpathp +compx_r +compx_p +compy_r +compy_p +compz_r +eval_thin_q +compz_p +e_potentialr +e_potentialp +e_fieldr +e_fieldp +k_normal +b_fieldr +b_fieldp +kickr +kickp +print_ +read_ +feval_saganr +feval_saganp +rk2saganr +rk4saganr +rk6saganr +rk2saganp +rk4saganp +rk6saganp +adjust_like_abellr +adjust_like_abellp +adjust_px_entr +adjust_px_entp +adjust_px_exir +adjust_px_exip +conv_to_xprsagan +conv_to_xppsagan +conv_to_pxrsagan +conv_to_pxpsagan +gen_conv_to_xpr +gen_conv_to_xpp +gen_conv_to_pxr +gen_conv_to_pxp +conv_to_xprabell +conv_to_xppabell +conv_to_pxrabell +conv_to_pxpabell +conv_to_xpr +conv_to_xpp +conv_to_pxr +conv_to_pxp +b_e_fieldr +b_e_fieldp +fx_newr +fx_newp + +File: code/Sh_def_kind.f90 +s_def_kind +n_enge +radiate_2_force +procedure +procedure +rad_spin_qua_probe +procedure +procedure +rad_spin_force_probe +procedure +procedure +track_slice_sol5 +procedure +procedure +track_slice_dkd2 +procedure +procedure +track_slice_dkd2_old +procedure +procedure +track_slice_tktf +procedure +procedure +track_slice_sagan +procedure +procedure +track_slice_cav4 +procedure +procedure +track_slice_pancake +procedure +procedure +feval_cav_bmad_probe +procedure +procedure +feval_sagan_probe +procedure +procedure +rk2_sagan_probe +procedure +procedure +rk4_sagan_probe +procedure +procedure +rk6_sagan_probe +procedure +procedure +rk2bmad_cav_probe +procedure +procedure +rk4bmad_cav_probe +procedure +procedure +rk6bmad_cav_probe +procedure +procedure +track_slice_cav4_old +procedure +procedure +track_slice_teapot +procedure +procedure +track_slice_teapot_old +procedure +procedure +track_slice_strex +procedure +procedure +track_slice_strex_old +procedure +procedure +track_slice +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +fake_shift +procedure +procedure +fringe_hel +procedure +procedure +patch_drift +procedure +procedure +get_z_ab +procedure +procedure +adjust_abell +procedure +procedure +adjust_pancake +procedure +procedure +track_fringe +procedure +procedure +fringe_teapot +procedure +procedure +fringe_strex +procedure +procedure +get_z_cav +procedure +procedure +track +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +drift +procedure +procedure +sympintex +procedure +procedure +monti +procedure +procedure +rcollimatori +procedure +procedure +ecollimatori +procedure +procedure +kickcav +procedure +procedure +abmad_trans +procedure +procedure +a_trans +procedure +procedure +procedure +feval_cav +procedure +procedure +feval_cav_imp +procedure +rk1bmad_cav_imp +procedure +feval_cav_bmad +procedure +procedure +feval_teapot +procedure +procedure +feval_abell +procedure +procedure +rk2_abell +procedure +procedure +rk4_abell +procedure +procedure +rk6_abell +procedure +procedure +rk2_cav_trav +procedure +procedure +rk2bmad_cav +procedure +procedure +rk4_cav_trav +procedure +procedure +rk4bmad_cav +procedure +procedure +rk6_cav_trav +procedure +procedure +rk6bmad_cav +procedure +procedure +rk2_teapot +procedure +procedure +feval_teapot_qua +procedure +procedure +rk2_teapot_probe +procedure +procedure +rk4_teapot_probe +procedure +procedure +rk6_teapot_probe +procedure +procedure +rk4_teapot +procedure +procedure +rk6_teapot +procedure +procedure +fringecav +procedure +procedure +adjust_time_cav4 +procedure +procedure +adjust_time_cav_trav_out +procedure +procedure +fringecav_trav +procedure +procedure +fringe_cav_trav +procedure +procedure +cavity +procedure +procedure +multipole_fringe +procedure +procedure +fringe_dipole +procedure +procedure +face +procedure +procedure +procedure +procedure +edge +procedure +procedure +kick +procedure +procedure +kickex +procedure +procedure +elliptical_b +procedure +procedure +inte +procedure +procedure +inte_strex +procedure +procedure +kick_sol +procedure +procedure +fringe2quad +procedure +procedure +getmulb_sol +procedure +procedure +getnewb +procedure +procedure +kickmul +procedure +procedure +intesol +procedure +procedure +septtrack +procedure +procedure +copy +procedure +procedure +procedure +procedure +procedure +procedure +pointers_abell +procedure +procedure +pointers_pancake +procedure +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +alloc +procedure +procedure +procedure +kill +procedure +procedure +procedure +expcosy6 +procedure +procedure +getmat +procedure +procedure +intktk +procedure +procedure +pushktk +procedure +procedure +kickktk +procedure +procedure +expcosy +procedure +procedure +expcosy7 +procedure +procedure +getmat7 +procedure +procedure +pushtkt7 +procedure +procedure +kicktkt7 +procedure +procedure +kickpath +procedure +procedure +procedure +procedure +procedure +procedure +inttkt7 +procedure +procedure +getanbn +procedure +procedure +getaebe +procedure +procedure +getelectric +procedure +procedure +procedure +procedure +getmagnetic +procedure +procedure +sprot +procedure +procedure +ssec +procedure +procedure +ssech1 +procedure +procedure +spar +procedure +procedure +skick +procedure +procedure +sinte +procedure +procedure +wedge +procedure +procedure +wedge_int +procedure +procedure +fx +procedure +procedure +fx_newc +procedure +procedure +fxc +procedure +procedure +step_symp_p_pancake +procedure +procedure +feval_pancake +procedure +procedure +feval_pancake_probe +procedure +procedure +rk4_pancake_probe +procedure +procedure +rk6_pancake_probe +procedure +procedure +rk4_pancake +procedure +procedure +rk6_pancake +procedure +procedure +rks_pancake +procedure +procedure +compute_f4 +procedure +procedure +compute_f4e +procedure +procedure +compute_f4s +procedure +procedure +drift +procedure +procedure +kick_he +procedure +procedure +get_field +procedure +procedure +get_bfield_fringe +procedure +procedure +get_bz_fringe +procedure +procedure +get_bfield +procedure +procedure +b_pancake +procedure +procedure +get_be_cav +procedure +procedure +b_para_perp +procedure +procedure +direction_v +procedure +procedure +push_quaternion +procedure +procedure +get_omega_spin +procedure +procedure +radiate_2 +procedure +procedure +radiate_2_probe +procedure +procedure +makeso3 +procedure +procedure +patch_driftr +patch_driftp +inter_drift1 +intep_drift1 +inter_superdrift +intep_superdrift +super_drift_p +super_drift_r +drift_inter +drift_intep +fringe_straightr +fringe_straightp +adjust_time_cav4r +adjust_time_cav4p +track_slice4r +inte_cav4r +inte_cav4p +track_slice4p +caver +check_symplectic_bmad_cavity +cavep +cavityr +cavityp +abmad_transr +abmad_transp +feval_cav_bmadr +feval_cav_bmadp +get_z_abr +get_z_abp +inter_abell_slice +intep_abell_slice +interabell +intepabell +rk2abellr +rk4abellr +rk6abellr +rk2abellp +rk4abellp +rk6abellp +rk2bmad_cavr +rk4bmad_cavr +rk6bmad_cavr +rk2bmad_cavp +rk4bmad_cavp +rk6bmad_cavp +inte_cavbmad4r +inte_cavbmad4p +fringecavr +fringecavp +kickcavr +kickcavp +driftr +driftp +kicktr +kicktp +multipole_fringer +multipole_fringep +newfacer +newfacep +facer +facep +fringe_dipoler +fringe_dipolep +fringe2quadr +fringe2quadp +edger +edgep +kickr +kickp +inter_dkd2 +intep_dkd2 +inter +intep +sympintr +sympintp +kick_solr +kick_solp +getnewbr +getnewbp +getmulb_solr +getmulb_solp +kickmulr +kickmulp +inter_sol5 +intep_sol5 +intesolr +intesolp +sympintsolr +sympintsolp +getmatr +getmatd +expr +expd +expcosy6r +expcosy6d +inter_ktk +intep_ktk +intktkr +intktkd +pushktkr +pushktkd +kickktkr +kickktkp +sympintktkr +sympintktkd +getmat7r +getmat7d +pushtkt7r +pushtkt7d +kicktkt7r +kicktkt7p +kickpath6r +kickpath6p +kickpathr +kickpathd +inte_tktfr +inte_tktfp +inttkt7r +inttkt7d +sympinttkt7r +sympinttkt7d +expr7 +expd7 +push_nsmi_r +push_nsmi_d +push_ssmi_r +push_ssmi_d +getanbnr +getanbnp +getaeber +getaebep +getmagneticr +getmagneticp +getelectricr +getelectricp +feval_teapotr +feval_teapotp +rk2_teapotr +rk2_teapotp +rk4_teapotr +rk4_teapotp +rk6_teapotr +rk6_teapotp +ssech1r +ssech1p +sprotr +sprotp +ssecr +ssecp +skickr +skickp +inter_teapot +intep_teapot +sinter +sintep +checkpotknob +makepotknob +makepotknob_elec +unmakepotknob +unmakepotknob_elec +fringe_teapotr +fringe_teapotp +ssympintr +ssympintp +montr +montp +montir +montip +rcollimatorr +rcollimatorp +rcollimatorir +rcollimatorip +ecollimatorr +ecollimatorp +ecollimatorir +ecollimatorip +electric_field_septumr +electric_field_septump +sepr +sepp +sympsepr +sympsepp +f_prof +set_f_in_k16 +kickexr +kickexp +inte_strexr +inte_strexp +inteexr +inteexp +fringe_strexr +fringe_strexp +sympintexr +sympintexp +sparr +sparp +check_root_drift +wedger +wedge_intr +wedge_intp +wedgep +adjust_time_cav_trav_outr +adjust_time_cav_trav_outp +get_z_cavr +get_z_cavp +inter_cav_trav +intep_cav_trav +caver_trav +cavep_trav +fringecav_travr +fringecav_travp +fringe_cav_travr +fringe_cav_travp +zeror_cav_trav +zerop_cav_trav +zeror_mon +zerop_mon +zeror_rcol +zerop_rcol +zeror_ecol +zerop_ecol +zeror_dkd2 +zerop_dkd2 +zeror_sol5 +zerop_sol5 +zeror_ktk +zerop_ktk +allocktk +killktk +zeror_tkt7 +zerop_tkt7 +alloctkt7 +killtkt7 +zeror_teapot +zerop_teapot +zero_cav4r +zero_cav4p +zero_abellr +feval_abellr +feval_abellp +zero_abellp +zeror_superdrift +zerop_superdrift +zeror_ramp +alloc_acceleration +alloc_tableau +kill_tableau +kill_acceleration +nullify_acceleration +copy_tableau +copy_acceleration +lecture_fichier +alloc_ramping +alloc_table +kill_table +kill_ramping +nullify_ramping +copy_table +copy_ramping +reading_file +zeror_kickt3 +zerop_kickt3 +zeror_strex +zerop_strex +allocteapot +killteapot +fx_newcr +fx_newcp +fxr_canonical +fxp_canonical +fxr +fxp +zeror_pancake +zerop_pancake +pointers_pancaker +pointers_pancakep +pointers_abellr +pointers_abellp +copyabell_el_elp +copyabell_el_el +copyabell_elp_el +copypancake_el_elp +copypancake_el_el +copypancake_elp_el +reset_pa +reset_abell +step_symp_p_pancaker +step_symp_p_pancakep +feval_pancaker +feval_pancakep +rks_pancaker +rks_pancakep +rk4_pancaker +rk4_pancakep +rk6_pancakep +rk6_pancaker +adjust_abellr +adjust_abellp +adjust_pancaker +adjust_pancakep +inter_pancake +intep_pancake +intpancaker +intpancakep +feval_cav_impr +rk1bmad_cav_impr +feval_cavr +feval_cavp +a_transl +a_transr +a_transp +rk2_cavr +rk2_cavp +rk4_cavr +rk4_cavp +rk6_cavr +rk6_cavp +zeror_he22 +zerop_he22 +compute_f4gr +compute_f4gp +compute_f4r +compute_f4p +compute_f4rold +compute_f4pold +kickr_he +kickp_he +intr_he +intp_he +fake_shiftr +fringe_helr +fringe_help +fake_shiftp +intr_he_tot +intp_he_tot +kickpathr_he +kickpathr_he_exact_nonsymp +kickpathp_he_exact_nonsymp +kickpathp_he +driftr_he +driftp_he +enge_f +zeror_enge +zerop_enge +elliptical_b_r +elliptical_b_p +get_fieldr +get_fieldp +get_bfield_fringer +get_bfield_fringep +get_bz_fringer +get_bz_fringep +get_bfieldr +get_bfieldp +b_pancaker +b_pancakep +get_be_cavr +get_be_cavp +b_para_perpr +b_para_perpp +direction_vr +direction_vp +get_omega_spinr +get_omega_spinp +radiate_2_forcer +radiate_2_forcep +radiate_2_prober +radiate_2_probep +radiate_2r +radiate_2p +crossp +quaternion_r_to_matrix +quaternion_8_to_matrix +feval_sagan_prober +feval_sagan_probep +rk2_sagan_prober +rk2_sagan_probep +rk4_sagan_prober +rk4_sagan_probep +rk6_sagan_prober +rk6_sagan_probep +feval_cav_bmad_prober +feval_cav_bmad_probep +rk2bmad_cav_prober +rk2bmad_cav_probep +rk4bmad_cav_prober +rk4bmad_cav_probep +rk6bmad_cav_prober +rk6bmad_cav_probep +feval_teapot_quar +feval_teapot_quap +rk2_teapot_prober +rk4_teapot_prober +rk6_teapot_prober +rk2_teapot_probep +rk4_teapot_probep +rk6_teapot_probep +inte_pancake_prober +inte_pancake_probep +rk4_pancake_prober +rk4_pancake_probep +rk6_pancake_prober +rk6_pancake_probep +feval_pancake_prober +feval_pancake_probep +inte_cav4_prober +inte_cav4_probep +inte_teapot_prober +inte_teapot_probep +inte_tktf_prober +inte_tktf_probep +inte_strex_prober +inte_strex_probep +inte_sol5_prober +inte_sol5_probep +inte_dkd2_prober +rad_spin_force_prober +rad_spin_force_probep +radiate_envelope +rad_spin_qua_prober +rad_spin_qua_probep +kick_stochastic_before +kick_stochastic_after +clear_compute_stoch_kick +inte_dkd2_probep +push_quaternionr +push_quaternionp +int_sagan_prober +int_sagan_probep + +File: code/Sk_link_list.f90 +s_fibre_bundle +it0 +it1 +it2 +it3 +it4 +it5 +it6 +it7 +it8 +it9 +kill +procedure +procedure +procedure +procedure +procedure +procedure +super_kill +procedure +alloc +procedure +procedure +procedure +copy +procedure +append +procedure +append_empty +procedure +move_to +procedure +procedure +procedure +procedure +find_patch +procedure +find_patch_bmad +procedure +find_pos +procedure +procedure +assignment +procedure +alloc_info +copy_info +kill_info +append_mad_like +kill_layout +append_fibre +append_clone +move_to_p +move_to_p_safe +move_to_name_old +move_to_partial +move_to_name_firstname +move_to_names +move_to_i +set_up +de_set_up +nullify_layout +line_l +ring_l +append_point +append_empty_fibre +append_not_so_empty_fibre +null_fibre +allocate_fibre +allocate_data_fibre +alloc_fibre +zero_fibre +super_zero_fibre +dealloc_fibre +super_dealloc_fibre +append_flat +check_need_patch +remove_patch +find_patch_p_new +find_patch_0 +find_patch_bmad_0 +set_up_universe +kill_last_layout +kill_universe +kill_layout_in_universe +find_pos_in_universe +move_to_layout_i +move_to_layout_name +de_set_up_universe +nullify_universe +append_empty_layout +locate_in_universe +find_pos_in_layout +unify_mad_universe +tie_mad_universe +guniverse_max_n +guniverse_max_node_n +move_to_name +null_thin +allocate_thin +nullify_node_layout +set_up_node_layout +append_empty_thin +allocate_node_frame +line_l_thin +ring_l_thin +dealloc_integration_node +kill_node_layout +de_set_up_orbit_lattice +kill_orbit_node1 +alloc_orbit_node1 +set_up_orbit_lattice +de_set_up_node_layout +move_to_integration_node +alloc_beam_beam_node +kill_beam_beam_node +assign_aperture +assign_one_aperture +toggle_one_aperture +turn_off_one_aperture +toggle_aperture +turn_off_aperture +turn_on_aperture + +File: code/Sl_family.f90 +s_family +el_to_elp +procedure +elp_to_el +procedure +copy +procedure +kill_para +procedure +add +procedure +put_aperture +procedure +procedure +remove_aperture +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +equal +procedure +copy +procedure +procedure +trans +procedure +procedure +procedure +translate +procedure +procedure +procedure +rotate +procedure +procedure +procedure +procedure +rotation +procedure +procedure +procedure +locate_mid_frame +locate_fibre +get_freq +get_loss +get_all +get_all_mad_like +locate_next_cav +locate_all_cav +set_freq +add_freq +addp_anbn +put_aperture_fib +put_aperture_fibt +remove_aperture_fib +layout_work +fibre_work +work_fibre +alloc_s_aperture +kill_s_aperture +copy_fibre +find_affine_siamese +find_frame_siamese +find_affine_girder +find_frame_girder +extract_girder_frame +translate_girder +translate_siamese +translate_magnet +rotate_magnet +rotate_siamese +rotate_girder +translate_layout +translate_fibre +rotate_layout +rotate_fibre +fibre_bl +bl_fibre +copy_layout +copy_layout_ij +copy_layout_i +kill_para_l +fibre_pol +el_pol_force +scan_for_polymorphs +el_to_elp_l +elp_to_el_l + +File: code/Sm_tracking.f90 +s_tracking +compute +track +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +track_fibre_single +procedure +procedure +track_flag +procedure +procedure +procedure +procedure +patch_fib +procedure +procedure +mis_fib +procedure +procedure +track_layout_flag_r1f +track_layout_flag_p1f +track_layout_flag_r1 +track_layout_flag_p1 +track_layout_flag_rf +track_layout_flag_pf +track_fibre_based_r +track_fibre_based_p +track_layout_flag_r +track_layout_flag_p +track_fibre_r +track_fibre_p +patch_fibr +patch_fibp +mis_fibr +mis_fibp + +File: code/Sma0_beam_beam_ptc.f90 +beam_beam_ptc +ccperrf +procedure +procedure +bbkickx +procedure +procedure +bbkickn +procedure +procedure +bbkick +procedure +procedure +patch_bb +procedure +procedure +bbpatch_spin +procedure +procedure +rad_spin_bb_probe +procedure +procedure +patch_bbx +procedure +procedure +get_field_bb +procedure +procedure +rot_spin_x +procedure +procedure +rot_spin_y +procedure +procedure +rot_spin_z +procedure +procedure +get_omega_spin_bb +procedure +procedure +rot_spin_yr +rot_spin_xr +rot_spin_zr +rot_spin_yp +rot_spin_xp +rot_spin_zp +patch_bbr +patch_bbp +bbpatch_spinr +bbpatch_spinp +patch_bbxr +patch_bbxp +bbkickr +bbkickp +get_field_bbr +get_field_bbp +get_omega_spin_bb_r +get_omega_spin_bb_p +rad_spin_bb_prober +rad_spin_bb_probep +bbkicknr +ccperrfr +bbkicknp +ccperrfp +bbkickxr +bbkickxp + +File: code/Sma_multiparticle.f90 +ptc_multiparticle +dobb +assignment +procedure +track_node_single_qua +procedure +procedure +track_node_single +procedure +procedure +track_node_single +procedure +convert_bmad_to_ptc +procedure +procedure +procedure +procedure +convert_ptc_to_bmad +procedure +procedure +procedure +procedure +drift_back_to_position +procedure +procedure +track_fibre_front +procedure +procedure +track_fibre_back +procedure +procedure +operator +procedure +operator +procedure +modulate +procedure +procedure +track_modulation +procedure +procedure +three_d_info +survey +procedure +procedure +procedure +find_patch_with_survey +procedure +modulate_r +do_ramping_r +do_ramping_p +set_all_ramp +set_ramp +modulate_p +track_modulation_r +track_modulation_p +fuzzy_eq +fuzzy_neq +move_to_s +track_fibre_frontr +track_fibre_frontp +track_fibre_backr +track_fibre_backp +track_node_singlev +track_node_single_quar +track_node_single_quap +track_node_singler +track_node_singlep +track_node_single_newr +track_node_single_newp +make_node_layout +sum_ds_ac +make_node_layout_2 +stat_node_layout +drift_to_time +driftr_back_to_position +driftp_back_to_position +alloc_three_d_info +s_locate_beam_beam +locate_beam_beam +convert_bmad_to_ptcar +convert_bmad_to_ptcap +convert_ptc_to_bmadar +convert_ptc_to_bmadap +convert_bmad_to_ptcr +convert_bmad_to_ptcp +convert_ptc_to_bmadr +convert_ptc_to_bmadp +in_noncanonical_units +in_canonical_units +survey_exist_planar_ij_new +survey_integration_layout +survey_fibre_new +survey_exist_planar_l_new +survey_integration_fibre +survey_integration_node_p +survey_integration_fringe +survey_integration_node_case0 +survey_integration_special_superdrift +adjust_cav_frame +adjust_pancake_frame +adjust_abell_frame +mis_survey +set_aperture_all_case0 +misalign_fibre_equal +move_frames +misalign_fibre +print_magnet_framet +mad_misalign_fibre +misalign_girder +misalign_siamese +find_patch_0_survey +convert_mis_to_patch + +File: code/Sn_mad_like.f90 +mad_like +el_list +operator +procedure +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +procedure +assignment +procedure +procedure +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +el_q_for_madx +procedure +octupole +procedure +sextupole +procedure +quadrupole +procedure +helical +procedure +solenoid +procedure +smisixtract +procedure +single_lens +procedure +multipole_block +procedure +superdrift +procedure +multipole +procedure +hkicker +procedure +vkicker +procedure +kicker +procedure +rbend +procedure +sbend +procedure +gbend +procedure +drift +procedure +marker +procedure +rcollimator +procedure +ecollimator +procedure +monitor +procedure +hmonitor +procedure +vmonitor +procedure +instrument +procedure +rfcavity +procedure +twcavity +procedure +elseparator +procedure +wiggler +procedure +pancake +procedure +abell_dragt +procedure +set_madx_ +r_r +checksmi +a10 +b10 +a9 +b9 +a8 +b8 +a7 +b7 +a6 +b6 +a5 +b5 +a4 +b4 +a3 +b3 +a2 +b2 +a1 +b1 +el_0 +smitilt +bltilt +hkicktilt +vkicktilt +gkicktilt +quadtilt +multipoletilt +helicaltilt +soltilt +sexttilt +octutilt +sbtilt +abelltilt +pottilt +gbtilt +recttilt +rectaetilt +drft +superdrft +rcolit +ecolit +monit +hmonit +vmonit +instrumen +mark +changeref +rfcavityl +twcavityl +elsestilt +wigglerl +nullify_for_madx +el_q +clean_up +set_pointers +set_mad +set_madx +get_energy +get_gam +get_one +set_mad_v +set_pancake_constants +set_abell_constants +set_metc_for_pancake +pancake_tilt +pancake_bmad +pancake_bmad_empty +set_tree_g_pancake +allocate_for_pancake +kill_for_pancake +equal_l +set_up_mad +equal_l_l +add_ee +add_eb +add_be +add_bb +sub_bb +mul_b +mul_e +unary_subb +makeitc +makeits + +File: code/So_fitting.f90 +s_fitting +find_orbit +procedure +lattice_get_chrom +lattice_get_tune +compute_a_4d +compute_map_general +compute_map_4d +fill_beta +comp_longitudinal_accel +comp_linear2 +lattice_fit_tune_gmap_auto +lattice_fit_tune_gmap +lattice_fit_chrom_gmap +lattice_fit_chrom_gmap2 +lattice_fit_chrom_gmap1 +c_lattice_fit_chrom_gmap1 +lattice_print_res_from_a +lattice_random_error_new +toggle_verbose +find_orbit_layout +find_orbit_layout_noda +fit_all_bends +fit_bare_bend +track_aperture +point_m_u +thin_lens_resplit +recut_kind7_one +recut_kind7 +dipole_check_step +skickt +prot_drift +check_bend +thin_lens_restart +print_bn_an +read_bn_an +reverse_beam_line +putfringe +putbend_fringe +mess_up_alignment +mess_up_alignment_name +sigma_of_alignment +dyn_aper +dyn_aperalex + +File: code/Sp_keywords.f90 +madx_keywords +keywords +madx_survey +create_fibre_append +change_method_in_create_fibre +create_fibre +zero_key +print_pancake_field +print_pancake_field_integer +read_pancake_new +read_pancake_new_integer +track_g_pancake +switch_layout_to_cavity +switch_to_cavity +switch_to_kind7 +print_new_flat +print_universe +print_universe_girders +read_universe_girders +print_universe_siamese +read_universe_siamese +read_universe_database +read_lattice_append +read_lattice +against_the_method +check_mis_presence +read_elementlist +fib_fib0 +patch_patch0 +chart_chart0 +mc_mc0 +el_el0 +print_elementlist +cav4_cav40 +hel_hel0 +wig_wig0 +tcav4_tcav40 +sol5_sol50 +thin3_thin30 +tp10_tp100 +ab_ab0 +k16_k160 +ap_aplist +r_ap_aplist +print_universe_pointed +read_universe_pointed +print_initial_chart +read_initial_chart +create_dna +zero_ele0 +zero_fib0 +zero_chart0 +zero_magl0 +zero_patch0 +specify_element_type + +File: code/Spb_fake_gino_sub.f90 +call_gino +open_gino_graphics +close_gino_graphics + +File: code/Sra_fitting.f90 +s_fitting_new +fibre_monitor_data +find_orbit_tpsa_x +procedure +procedure +find_orbit_probe_tpsa_x +procedure +procedure +find_orbit_x +procedure +procedure +find_orbit_probe_x +procedure +procedure +lattice_fit_tune_chrom_gmap_new +lattice_fit_tune_gmap_rad +find_time_patch +compute_linear_one_magnet_maps +compute_linear_one_turn_maps +special_alex_main_ring +special_alex_main_ring_auto +special_alex_main_ring1 +lattice_linear_res_gmap +special_alex_main_ring_removal +alex_track_monitors +invert_monitors +alex_mom_monitors +alex_apply_a_on_data +alex_count_monitors +alex_count_jparc_monitors +alex_read_r_jparc +scale_bpm +alex_average_r_jparc +alloc_fibre_monitor_data +kill_fibre_monitor_data +alex_mom_real_monitors +alex_print_xf +alex_read_r +lattice_fit_bump_rcs +lattice_fit_bump_min_rcs +find_orbit_layout_da +find_orbit_layout_da_object +find_orbit_layout_noda +find_orbit_layout_noda_object +find_orbit_layout_noda_object_orig +find_orbit_tapering +taper +untaper +gettot +is_orbit_stable + +File: code/Ss_fake_mad.f90 +madx_ptc_module +ptc_ini +ptc_ini_no_append +ptc_end + +File: code/St_pointers.f90 +pointer_lattice +script +procedure +hermite +set_lattice_pointers +read_ptc_command +locate_b_b +compute_polarisation +get_polarisation +radia_new +totalpath_cavity +power_cavity +zero_sex +charge_dir +remove_drifts +print_frames +print_frame +printframes +universe_max_n +universe_max_node_n +read_ptc_rays +eval_new +interpolate +interpolate_2d +eval_g +track_hermite +track_hermite_invert2 +alloc_hermite +compute_hermite +compute_partially_inverted_location +track_hermite_linear_inv +track_hermite_linear +track_hermite_linear_inv_8 +fill_hermite +fill_hermite_gen +kill_hermite +symplectify_for_oleksii +phase_advance +read_ptc_command77 +gino_ptc_command77 +read_mad_command77 +my_user_routine1 + +File: code/b_da_arrays_all_pancake.f90 +da_arrays_pancake +alloc_all +alloc_ +dealloc_all +danum +danum0 + +File: code/c_dabnew_pancake.f90 +dabnew_pancake +dapri_pancake +dapri77_pancake +darea77_pancake +darea_pancake +dacmu_pancake +damul_pancake +daadd_pancake +dapok_pancake +davar_pancake +alloc_pancake +daall0_pancake +dadal1_pancake +kill_pancake +init_pancake +mtree_pancake +ppushgetn_pancake +dacon_pancake +dacop_pancake +dacdi_pancake +daini +dallsta +daallno1 +daall +daall1 +daall0 +dadal +dadal1 +count_da +davar +dacon +danot +daeps +dapek +dapok +daclr +dacop +daadd +datrunc +dasub +damul +damult +dadiv +dasqr +dasqrt +dacad +dacsu +dasuc +dacmu +dacmut +dacdi +dadic +dacma +dalin +dalint +dafun +dafunt +daabs +dacct +dacctt +mtree +ppushprint +ppushstore_pancake +ppushgetn +ppush +ppush1 +dainv +dainvt +dapin +dapint +dader +dadert +dacfur +dacfurt +dacfu +dacfui +dacfuit +dacfut +dapri +dapri77 +dashift +darea +darea77 +dadeb +dainf +dapac +dachk +damch +dadcd +dancd +datra +hash +dehash +daran +dacycle +daclean + +File: code/d_lielib.f90 +lielib_yang_berz +lieinit +flowpara +pertpeek +inputres +respoke +liepeek +etallnom +etall +etall1 +etcct +getcct +trx +gtrx +trxflo +simil +etini +etinv +etpin +getinv +dapokzer +davar0 +comcfu +take +taked +daclrd +dacopd +datruncd +dacmud +dalind +daread +daprid +daflo +daflod +intd +difd +expflo +expflod +facflo +facflod +fexpo +etcom +etpoi +exp1d +expnd2 +flofacg +flofac +liefact +mapnorm +gettura +setidpr +mapnormf +get_flip_info +flip +flip_real_array +flip_resonance +flipflo +flip_i +gofix +orderflo +nuanaflo +dhdjflo +h2pluflo +rotflo +rotiflo +hyper +ctor +rtoc +ctorflo +rtocflo +ctord +rtocd +resvec +reelflo +midbflo +mapflol +mulnd2 +movearou +movemul +initpert +cpart +ctoi +itoc +etrtc +etctr +etcjg +eig6 +ety +etyt +ety2 +etdiv +sympl3 +diagonalise_envelope_a +mapflol6s +eig6s +movearous +movemuls + +File: code/h_definition.f90 +definition +i_ +kind +i_ +kind +case1 +case2 +case0 +casep1 +casep2 +caset +casetf1 +casetf2 +wiggler_suntao +ndim2t +sub_taylor +taylor +universal_taylor +c_universal_taylor +complextaylor +real_8 +quaternion +complex_quaternion +quaternion_8 +complex_8 +spinor +spinor_8 +dascratch +dalevel +damap +gmap +vecfield +pbfield +tree +dragtfinn +reversedragtfinn +onelieexponent +normalform +genfield +pbresonance +vecresonance +taylorresonance +tree_element +rf_phasor +rf_phasor_8 +probe +probe_8 +temporal_probe +temporal_beam +c_taylor +c_dascratch +c_dalevel +c_spinmatrix +c_spinor +c_yu_w +c_quaternion +c_damap +c_vector_field +c_vector_field_fourier +c_factored_lie +c_normal_form +c_ray +fibre_array +node_array +in_bmad_units +in_ptc_units +alloc_fibre_array +kill_fibre_array +reset_aperture_flag +produce_aperture_flag + +File: code/i_tpsa.f90 +tpsa +i4b +dp +nbi +procedure +procedure +procedure +procedure +nbi_etienne +procedure +procedure +procedure +procedure +nbi_david +procedure +procedure +procedure +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +clean +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +print_for_bmad_parser +procedure +print +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +operator +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +operator +procedure +procedure +procedure +operator +procedure +operator +procedure +operator +procedure +abs +procedure +procedure +procedure +abs_square +procedure +procedure +dabs +procedure +exp +procedure +procedure +dexp +procedure +cexp +procedure +cdexp +procedure +cos +procedure +cdcos +procedure +dcos +procedure +ccos +procedure +cosh +procedure +dcosh +procedure +sin +procedure +cdsin +procedure +ccsin +procedure +dsin +procedure +sinh +procedure +dsinh +procedure +log +procedure +dlog +procedure +cdlog +procedure +clog +procedure +sqrt +procedure +dsqrt +procedure +atanh +procedure +tan +procedure +tanh +procedure +dtan +procedure +pek +procedure +pok +procedure +shiftda +procedure +cfu +procedure +full_abs +procedure +alloc +procedure +procedure +procedure +procedure +kill +procedure +procedure +procedure +procedure +alloctpsa +procedure +killtpsa +procedure +ass +procedure +set_1 +change_default_tpsa +set_in_tpsa +count_taylor +unaryaddq +unarysubq +invq +absq +absq2 +cunaryaddq +cunarysubq +cinvq +cabsq +cabsq2 +log_complex_quaternion +c_exp_quaternion +unaryadd +unarysub +maketree +allocda +a_opt +k_opt +allocdas +killda +killdas +equal +equalq +equalcq +equalcq_q +equalq_cq +equalqr +cequalqr +equalqi +cequalqi +dequal +requal +daabsequal +dequaldacon +equaldacon +iequaldacon +dexpt +full_abst +dtant +datanht +dcost +dsint +dsinht +dcosht +dtanht +dlogt +dsqrtt +mul +pbbra +getorder +cutorder +dputchar +dputint +dputint0 +getcharnd2s +getintnd2s +getintk +getchar +getint +getdiff +getintegrate +check_gtpsa +getdatra +powq +cpowq +pow +powr8 +powr +dmulsc +mulsc +imulsc +dscmul +scmul +iscmul +div +dscdiv +scdiv +iscdiv +ddivsc +divsc +idivsc +add +addq +subq +mulq +divq +caddq +csubq +cmulq +cmulqc +ccmulq +cmulqr +rcmulq +cdivq +daddsc +addsc +iaddsc +dscadd +scadd +iscadd +subs +dsubsc +subsc +isubsc +dscsub +scsub +iscsub +varf +varf001 +shift000 +pek0 +pok0 +pek000 +pok000 +taylor_ran +cfu000 +dacfu_gtpsa +cfu000_new +taylor_eps +getcharnd2 +getintnd2 +getintnd2t +taylor_cycle +taylor_cycle_dabnew +taylor_cycle_gtpsa +check_snake +charint +check_j +filter +filter_part +printq +cprintq +print_for_bmad_parse +pri +rea +kill_uni +null_uni +alloc_u +fill_uni_r +fill_uni +refill_uni +printunitaylor +crap1 +real_stop +ndum_warning_user +set_up +de_set_up +null_it +line_l +ring_l +append_da +insert_da +alloc_da +kill_dalevel +dealloc_dascratch +set_up_level +report_level +assign +deassign +asstaylor +ass0 +clean_taylor +clean_pbfield +clean_pbresonance +clean_damap +clean_vecfield +clean_vecresonance +clean_onelieexponent +clean_complextaylor +clean_gmap +etienne_bessel_ir +etienne_bessel_it +etienne_bessel_itr +etienne_bessel_irt +norm_bessel_ir +factorial +bessel_i0 +bessel_i1 +bessel_i +poly_eval +nbittaylortr +nbittaylorrt +nbittaylor +nbitreal +nbit +nbitrt +nbittr + +File: code/j_tpsalie.f90 +tpsalie +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +operator +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +operator +procedure +dainput +procedure +procedure +procedure +procedure +procedure +read +procedure +procedure +procedure +procedure +procedure +daprint +procedure +procedure +procedure +procedure +procedure +procedure +print +procedure +procedure +procedure +procedure +procedure +procedure +checksymp +procedure +print_for_bmad +procedure +texp +procedure +procedure +procedure +procedure +exp +procedure +procedure +procedure +procedure +full_abs +procedure +alloc +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +alloctpsa +procedure +procedure +procedure +procedure +kill +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +killtpsa +procedure +procedure +procedure +procedure +assdamap +procedure +procedure +procedure +procedure +procedure +checkdamap +procedure +procedure +procedure +procedure +set_2 +mul_pbf_t +mul_vecf_t +mul_vecf_map +mul_pbf_map +set_in_tpsalie +alloctree +allocmap +allocgmap +allocvec +allocpb +killtree +killmap +killgmap +killvec +killpb +a_opt_damap +k_opt_damap +a_opt_gmap +k_opt_gmap +a_opt_vecfield +k_opt_vecfield +a_opt_pbfield +k_opt_pbfield +a_opt_tree +k_opt_tree +dareadtaylors +dareadtaylor +dareadmap +dareadvec +dareapb +daprintmap +print_for_bmad_parsem +daprintgmap +daprinttaylors +daprintvec +daprintpb +daprinttaylor +dabsmap +dpekmap +dpekgmap +dpokmap +dpokgmap +treemap +matrixtmapr +matrixmapr +mapmatrixr +maptaylors +taylorsmap +equalmap +equalgmap +equalgmapdamap +equaldamapgmap +identityequalmap +identityequalgmap +zeroequalmap +equalvec +equalvecpb +difd +equalpbvec +intd +equalpbpb +equalpbda +equaldapb +cutorder +cutorderg +cutorderpb +cutordervec +getordermap +getordergmap +getordervec +getorderpb +pushtree +pushmatrixr +pushmap +push1pol +push1polslow +concat +concatg +fpp_mad_tpsa_compose +concator +concatorg +trxflow +trxflo_g +trxpb +trxtaylor +trxgtaylor +trxtaylorc +trxgtaylorc +texpdf +texpdft +explieflo +expflot +expliepb +exppb +addmap +submap +dmulmapsc +mulmapsc +imulmapsc +scdmulmap +scmulmap +scimulmap +fpp_mad_tpsa_minv +fpp_mad_tpsa_pminv +powmap +gpowmap +gpowmaptpsa +powmap_inv +checksympo +checkmap +checkvec +checkpb +checktaylor +asspb +asstaylor +assvec +assmap +assgmap +daflo_g +daflod_g +expflo_g +facflod_g +facflo_g +taked_g +dacmud_g +expflod_g +dacopd_g + +File: code/k_tpsalie_analysis.f90 +tpsalie_analysis +init_tpsalie +procedure +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +alloc +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +kill +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +daprint +procedure +procedure +procedure +procedure +procedure +print +procedure +procedure +procedure +procedure +procedure +dainput +procedure +procedure +procedure +procedure +procedure +read +procedure +procedure +procedure +procedure +procedure +set_3 +df_map +map_df +fd_map +map_fd +go_to_fix_point +normalmap +mapnormal +oneexpmap +maponeexp +revdfmap +dfmap +resovec +vecreso +respb +pbres +resta +tares +mapdf +maprevdf +allocgen +killgen +equalgenmap +equalmapgen +pushgen +allocpbres +alloctares +allocvecres +allocdf +alloconelie +allocnormal +allocfd +killnormal +killonelie +killpbres +killtares +killvecres +killdf +killrevdf +daprintonelie +dareadonelie +daprintvecres +dareadvecres +daprintdf +dareaddf +daprintrevdf +dareadrevdf +daprintpbres +dareadpbres +init_map +kill_fpp +init_tpsa +daterminate +mapnormf_g +orderflo_g +nuanaflo_g +comcfu +reelflo_g +ctord_g +ctor_g +ctoi_g +etctr_g +dalin_g +etcjg_g +dacop_g +trx_g +rtoc_g +itoc_g +cpart_g +etrtc_g +dalind_g +etini_g +ctorflo_g +rtocflo_g +daclrd_g +simil_g +gofix_g +datruncd_g +rotiflo_g +rtocd_g +h2pluflo_g +resvec_g +midbflo_g +dhdjflo_g + +File: code/l_complex_taylor.f90 +complex_taylor +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +procedure +operator +procedure +operator +procedure +operator +procedure +procedure +procedure +operator +procedure +operator +procedure +procedure +operator +procedure +procedure +procedure +aimag +procedure +dimag +procedure +dble +procedure +dreal +procedure +cmplx +procedure +dcmplx +procedure +conjg +procedure +abs +procedure +dabs +procedure +log +procedure +dlog +procedure +clog +procedure +cdlog +procedure +atan +procedure +procedure +datan +procedure +procedure +asin +procedure +procedure +dasin +procedure +procedure +acos +procedure +procedure +dacos +procedure +procedure +tan +procedure +dtan +procedure +cos +procedure +cdcos +procedure +ccos +procedure +dcos +procedure +sin +procedure +cdsin +procedure +csin +procedure +dsin +procedure +exp +procedure +dexp +procedure +cexp +procedure +cdexp +procedure +cosh +procedure +dcosh +procedure +sinh +procedure +dsinh +procedure +tanh +procedure +dtanh +procedure +sqrt +procedure +dsqrt +procedure +cdsqrt +procedure +pok +procedure +pek +procedure +full_abs +procedure +read +procedure +dainput +procedure +alloc +procedure +procedure +procedure +kill +procedure +procedure +procedure +ass +procedure +set_4 +dimagt +drealt +getcharnd2 +getintnd2 +getcharnd2s +getintnd2s +dputchar +dputint +varco +varco1 +getorder +cutorder +getchar +getint +pow +powr +powr8 +getdiff +getdatra +alloccomplex +alloccomplexn +a_opt +k_opt +inputcomplex +killcomplex +killcomplexn +mul +div +cscdiv +dscdiv +scdiv +iscdiv +idivsc +divsc +ddivsc +cdivsc +cscmul +ctmul +cmult +caddt +ctadd +csubt +ctsub +cdivt +ctdiv +dscmul +scmul +iscmul +cmulsc +dmulsc +mulsc +imulsc +equal +ctequal +tcequal +cequal +dequal +requal +cequaldacon +dequaldacon +equaldacon +iequaldacon +add +tadd +addt +tsub +subt +tmul +mult +tdiv +divt +csubsc +dsubsc +subsc +isubsc +cscsub +dscsub +scsub +iscsub +unarysub +subs +cscadd +caddsc +daddsc +addsc +iaddsc +dscadd +scadd +iscadd +unaryadd +inv +logtpsat +logtpsa +full_abstpsat +abstpsat +dcmplxt +conjgt +datant +datantt +dasintt +dasint +dacostt +dacost +tant +dtanht +dcost +dcosht +dsint +dsinht +exptpsat +dsqrtt +exptpsa +assc +kill_tpsa +init_map_c +init_tpsa_c +set_in_complex +getintk +pekc +pokc + +File: code/m_real_polymorph.f90 +polymorphic_taylor +i4b +arcsin_x +procedure +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +operator +procedure +procedure +exp +procedure +invqq +procedure +dexp +procedure +cexp +procedure +cdexp +procedure +cos +procedure +ccos +procedure +cdcos +procedure +dcos +procedure +atanh +procedure +tan +procedure +dtan +procedure +tand +procedure +dtand +procedure +cosd +procedure +dcosd +procedure +sin +procedure +cdsin +procedure +ccsin +procedure +dsin +procedure +sind +procedure +dsind +procedure +norm_bessel_i +procedure +nbi +procedure +log +procedure +dlog +procedure +cdlog +procedure +clog +procedure +sqrt +procedure +dsqrt +procedure +abs +procedure +procedure +abs_square +procedure +dabs +procedure +atan +procedure +datan +procedure +atan2 +procedure +procedure +datan2 +procedure +procedure +atan2d +procedure +datan2d +procedure +atand +procedure +datand +procedure +asin +procedure +dasin +procedure +acos +procedure +dacos +procedure +cosh +procedure +dcosh +procedure +sinh +procedure +dsinh +procedure +tanh +procedure +dtanh +procedure +full_abs +procedure +morph +procedure +sinhx_x +procedure +procedure +sinx_x +procedure +procedure +cos_quaternion +procedure +procedure +sin_quaternion +procedure +procedure +daprint +procedure +procedure +procedure +procedure +procedure +print +procedure +procedure +procedure +procedure +procedure +alloc +procedure +procedure +procedure +procedure +kill +procedure +procedure +procedure +procedure +procedure +procedure +reset +procedure +procedure +make_it_knob +procedure +kill_knob +procedure +ass +procedure +set_5 +make_it_knobr +kill_knobr +polymorpht +getcharnd2 +getintnd2 +getchar +getint +getorder +cutorder +greatereq +dgreatereqsc +dscgreatereq +greatereqsc +scgreatereq +igreatereqsc +iscgreatereq +greaterthan +igreatersc +iscgreater +dgreatersc +dscgreater +greatersc +scgreater +lessthan +dlessthansc +dsclessthan +lessthansc +sclessthan +ilessthansc +isclessthan +lesseq +dlesseqsc +dsclesseq +lesseqsc +sclesseq +ilesseqsc +isclesseq +eq +deqsc +dsceq +eqsc +sceq +ieqsc +isceq +neq +dneqsc +dscneq +neqsc +scneq +ineqsc +iscneq +dexpt +arcsin_xr +arcsin_xt +arcsin_xp +asin_coeff_set +abst +pabs +full_abst +dtant +dtandt +absoftdtandr +dcost +dcosdt +absoftdcosdr +dsint +dsindt +absoftdsindr +dlogt +dsqrtt +pow +powr +powr8 +unaryadd +unarysub +nbip +add +addq +absq2 +absq +subq +invq +powq +mulq +subs +daddsc +dscadd +dsubsc +dscsub +addsc +scadd +subsc +scsub +iaddsc +iscadd +isubsc +iscsub +mul +div +dmulmapconcat +dmulsc +dscmul +ddivsc +dscdiv +mulsc +scmul +divsc +scdiv +imulsc +iscmul +idivsc +iscdiv +printpolyq +printpoly +print6 +printdouble +printsingle +resetpoly +resetpolyn +resetpoly_r +resetpoly_rn +resetpoly_r31 +resetpoly_r31n +resetpoly0 +k_opt +resetpolyn0 +allocpoly +allocquaternion +killquaternion +allocquaternionn +killquaternionn +a_opt_quaternion +k_opt_quaternion +a_opt +allocpolyn +init_map_p +init_tpsa_p +set_in_polyp +equal2d +equal1d +equalq +equalq_r_8 +equalq_8_r +equalq_r +equal +complexreal_8 +realequal +singleequal +taylorequal +equaltaylor +real_8univ +univreal_8 +mequaldacon +dequaldacon +iequaldaconn +equaldacon +iequaldacon +assp +assp_no_master +datant +datanht +datandt +absoftdatandr +datan2t +datan2tt +datan2dt +absoftdatan2dr +dasint +dacost +dcosht +dsinht +dtanht +mapreal_8 +normal_p +real_8map +varfk1 +varfk2 +sinh_hr +sin_hr +sinx_xt +sin_quaternionr +sin_quaternionp +cos_quaternionr +cos_quaternionp +sinhx_xt +clean_real_8 + +File: code/n_complex_polymorph.f90 +polymorphic_complextaylor +init +procedure +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +operator +procedure +procedure +aimag +procedure +dimag +procedure +real +procedure +dreal +procedure +dble +procedure +cmplx +procedure +dcmplx +procedure +exp +procedure +dexp +procedure +cexp +procedure +cdexp +procedure +cos +procedure +cdcos +procedure +dcos +procedure +ccos +procedure +sin +procedure +cdsin +procedure +ccsin +procedure +dsin +procedure +log +procedure +dlog +procedure +cdlog +procedure +clog +procedure +sqrt +procedure +dsqrt +procedure +cdsqrt +procedure +abs +procedure +dabs +procedure +morph +procedure +conjg +procedure +alloc +procedure +procedure +kill +procedure +procedure +procedure +procedure +reset +procedure +procedure +make_it_knob +procedure +kill_knob +procedure +ass +procedure +set_6 +polymorpht +set_da_pointers +init_map_cp +init_tpsa_cp +set_in_poly +resetpoly +resetpolyn +resetpoly0 +getcharnd2 +getintnd2 +getchar +getint +getorder +cutorder +a_opt +k_opt +resetpolyn0 +resetpoly_r +resetpoly_rn +allocpoly +allocpolyn +equal +equalrp +rpequal +drealt +dimagt +dcmplxt +complexequal +equalcomplext +complextequal +dequaldacon +equaldacon +iequaldacon +cequaldacon +add +unaryadd +daddsc +caddsc +dscadd +cscadd +addsc +scadd +iaddsc +iscadd +subs +unarysub +dsubsc +dscsub +csubsc +cscsub +subsc +scsub +isubsc +iscsub +mul +pmul +mulp +padd +addp +psub +subp +pdiv +divp +cmulsc +cscmul +cpmulsc +cpscmul +cpaddsc +cpscadd +cpsubsc +cpscsub +cpdivsc +cpscdiv +dmulsc +dscmul +mulsc +scmul +imulsc +iscmul +div +ddivsc +dscdiv +cdivsc +cscdiv +divsc +scdiv +idivsc +iscdiv +pow +powr +powr8 +dexpt +conjgt +dcost +dsint +dlogt +dsqrtt +abst +asscp +make_it_knobc +kill_knobc +varck1 +varck2 +clean_complex_8 + +File: code/o_tree_element.f90 +tree_element_module +nfac +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +probe_quaternion_to_matrix +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +print +procedure +procedure +procedure +procedure +procedure +read +procedure +procedure +alloc +procedure +procedure +procedure +procedure +procedure +kill +procedure +procedure +procedure +procedure +track +procedure +procedure +trackg +procedure +procedure +kill +procedure +procedure +average +procedure +daddsco +scdaddo +real6real_8 +real_8real_8 +real_8real6 +copy_tree +copy_tree_n +null_tree +alloc_tree +set_tree +set_tree_g +track_tree_g +track_treep_g +kill_tree +kill_tree_n +track_tree +track_treep +dainput_special6 +equal_identity_spinor_8 +equal_identity_spinor_8_r3 +equal_identity_spinor +equal_probe_real6 +equal_probe8_real6 +equal_probe8_probe8 +equal_rf8_rf8 +equal_rf8_rf +equal_rf_rf8 +equal_probe8_probe +equal_probe_probe8 +equal_probe_probe +equal_identity_probe +equal_identity_probe_8 +equal_spinor8_spinor8 +equal_spinor_spinor8 +equal_spinor8_spinor +equal_damap_ray8 +probe_quaternion_to_matrixr +probe_quaternion_to_matrixp +print_probe +print_probe8 +print_rf_phasor_8 +print_rf_phasor +print_spinor_8 +read_spinor_8 +read_probe8 +norm_spinor_8 +alloc_spinor_8 +alloc_probe_8 +alloc_rf_phasor_8 +kill_spinor_8 +kill_probes_8 +alloc_probes_8 +kill_probe_8 +kill_rf_phasor_8 +dot_spinor +dot_real +make_spinor_basis +realdp_spinor +sub_spinor +cross_spinor +cross_real +cross_spinor8 +dot_spinor_8 +check_rad +r_average +clean_spinor_8 +number_mon +mul_fac +make_fac +pos_mon +pos_no +find_exp + +File: code/Ci_tpsa.f90 +c_tpsa +ndim2t +compute_lattice_functions +procedure +procedure +abs_square +procedure +abs +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +assignment +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +procedure +operator +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +operator +procedure +procedure +operator +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +operator +procedure +procedure +checksymp +procedure +q_part +procedure +c_phasor +procedure +ci_phasor +procedure +clean +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +c_simil +procedure +procedure +texp_inv +procedure +exp_inv +procedure +real +procedure +aimag +procedure +cget_field_c_universal_taylor +procedure +get_field_c_universal_taylor +procedure +exp +procedure +procedure +procedure +procedure +procedure +procedure +procedure +makequaternion +procedure +makeso3 +procedure +procedure +average +procedure +iexp +procedure +texp +procedure +procedure +procedure +procedure +procedure +procedure +procedure +abs +procedure +dabs +procedure +exp +procedure +dexp +procedure +cexp +procedure +cdexp +procedure +log +procedure +procedure +procedure +procedure +cos +procedure +cdcos +procedure +dcos +procedure +ccos +procedure +sin +procedure +cdsin +procedure +ccsin +procedure +dsin +procedure +sqrt +procedure +tan +procedure +dtan +procedure +c_pek +procedure +c_pok +procedure +shiftda +procedure +cfu +procedure +full_abs +procedure +daread +procedure +procedure +procedure +procedure +procedure +procedure +read +procedure +procedure +procedure +procedure +procedure +procedure +daprint +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +print +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +daprint +procedure +procedure +procedure +print +procedure +procedure +procedure +alloc +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +alloc_nn +procedure +kill_nn +procedure +matmul_nn +procedure +matmulr_nn +procedure +procedure +kill +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +alloctpsa +procedure +killtpsa +procedure +ass +procedure +alloc +procedure +procedure +kill +procedure +procedure +get_rf +c_get_indices +locally_set_da_pointers +c_count_taylor +unaryadd +unarysub +unarysub_vec +unarysub_q +unarysub_spinor +normalise_spinor +orthogonalise_spin_matrix +dotc_spinor +c_maketree +c_allocda +alloc_c_quaternion +kill_c_quaternion +c_a_opt +k_opt +a_opt_c_damap +k_opt_c_damap +a_opt_c_vector +k_opt_c_vector +c_allocdas +c_killda +c_killdas +alloc_c_damap +alloc_c_damaps +alloc_c_yu_w +kill_c_yu_w +alloc_c_vector_field +alloc_c_factored_lie +alloc_c_normal_form +kill_c_normal_form +kill_c_factored_lie +kill_c_damap +kill_c_damaps +kill_c_vector_field +alloc_c_spinmatrix +alloc_c_spinor +kill_c_spinor +kill_c_spinmatrix +c_real +c_aimag +equalc_t +equalt_c +equalc_ray_ray +equalc_ray_r6 +equalc_ray_r6r +equalc_r6_ray +equalc_t_ct +equalc_ct_c +equalc_cmap_map +equalc_map_cmap +equal_c_spinmatrix_probe +equal_probe_c_spinmatrix +equal_c_spinmatrix_3_by_3 +equal_3_by_3_c_spinmatrix +equal_3_by_3_probe +equal_probe_3_by_3 +equalc_cvec_vec +equalc_cspinor_cspinor +equalc_spinor_c_quaternion +equalc_quaternion_c_spinor +equalc_spinor_cspinor +equalc_cspinor_spinor +c_dpekmap +c_dpokmap +equal +equal_map_real8 +equal_map_complex8 +equal_real8_map +equal_complex8_map +equal_c_tayls +equalspinmatrix +cdequal +dequal +requal +daabsequal +cdequaldacon +dequaldacon +dequaldacons +equaldacon +iequaldacon +dexpt +c_logt +flatten_c_factored_lie_r +flatten_c_factored_lie +c_logf_spin +c_logf +c_logc +get_log +full_abst +dtant +dcost +dsint +sqrtt +mul +pbbra +cpbbra +liebraquaternion +liebra +getorder +getordermap +getorderquaternion +getorderspinmatrix +from_phasor +to_phasor +cutorder +cutordermap +cutordervec +cutorderspin +cutorderquaternion +cutorderspinor +dputchar +dputcharr +dputint +dputintr +c_dputint0 +c_dputint0r +getcharnd2s +getintnd2s +getintk +getchar +getint +getintmat +getdiff +getdiff_universal +getintegrate +getpb +cgetpb +getpb_from_transverse +derive +getvectorfield +getvectorfield_universal +cgetvectorfield_universal +cgetvectorfield +getdatra +pow +cdmulsc +dmulsc +mulsc +imulsc +cdscmul +dscmul +scmul +iscmul +div +cdscdiv +dscdiv +scdiv +iscdiv +cddivsc +ddivsc +divsc +idivsc +add +addq +absq2 +absq +mulq +mulcq +subq +c_invq +powq +powql +equalq +equalq_c_r +equalq_r_c +equalql_i +equalql_r +qua_ql +equal_c_l_f +compute_lattice_functions_2 +compute_lattice_functions_1 +equalql_c_spin +equalql_q +equalql_cmap +equalcmap_ql +equalq_ql +equal_c_quaternion_complex_quaternion +equal_complex_quaternion_c_quaternion +equalql_ql +print_ql +inv_symplectic66 +inv_c_linear_map +inv_c_linear_map_symplectic +mulqdiv +mul_ql_m +mul_ql_cm +addql +mulql +subql +equalq_c_8 +equalq_8_c +equalq_r +equalq_i +matrix_to_quaternion_in_c_damap +quaternion_to_matrix_in_c_damap +c_linear_map_to_matrix +cdaddsc +daddsca +addsc +iaddsc +cdscadd +dscadd +scadd +iscadd +subs +cdsubsc +dsubsc +subsc +isubsc +cdscsub +dscsub +scsub +iscsub +varf +varf001 +shift000 +c_pek000 +c_pok000 +c_taylor_ran +c_cfu000 +c_taylor_eps +getcharnd2 +getintnd2 +getintnd2t +c_taylor_cycle +c_cycle +c_check_snake +check_j +check_harmonic_order +filter +c_filter_part +c_pri_c_ray +c_pri_map +print_e_ij +c_pri_quaternion +c_read_quaternion +c_read_map +c_pri_vec +c_pri_factored_lie +c_pri_spinmatrix +c_read_spinmatrix +c_full_norm_spin +c_norm_spin +c_pri_spinor +c_read_spinor +c_pri +printcomplex +printpoly +print6 +daprinttaylors +c_rea +dareadtaylors +c_crap1 +c_real_stop +c_ndum_warning_user +set_up +de_set_up +null_it +line_l +ring_l +append_da +insert_da +c_alloc_da +kill_dalevel +dealloc_dascratch +set_up_level +c_report_level +c_assign +c_deassign +c_asstaylor +c_ass0 +c_assmap +c_ass_quaternion +c_ass_spinmatrix +c_ass_spinor +c_ass_vector_field +c_norm +c_clean_yu_w +clean_matrix_complex +clean_vector_complex +clean_matrix +clean_vector +c_clean_taylor +c_clean_linear_map +c_clean_spinmatrix +c_clean_quaternion +c_clean_spinor +c_clean_damap +c_clean_cm +c_clean_c_factored_lie +c_clean_vector_field +clean_c_universal_taylor +c_bmad_reinit +c_init +init_map_all +c_init_all +c_etcct +c_etinv +c_etpin +transform_vector_field_by_map +c_concat +c_concat_tpsa +maketpsa +makeda +c_adjoint +c_adjoint_vec +c_spinmatrix_spinmatrix +c_spinmatrix_mul_cray +c_quaternion_mul_cray +c_spinmatrix_spinor +c_transpose +c_spinor_cmap +c_spinor_cmap_tpsa +c_complex_spinmatrix +c_spinmatrix_add_spinmatrix +c_spinmatrix_sub_spinmatrix +c_spinor_add_spinor +c_spinor_sub_spinor +c_taylor_spinor +c_complex_spinor +c_real_spinor +c_spinor_spinor +c_trxspinmatrix +c_trxquaternion +c_trxquaternion_tpsa +c_trxspinmatrixda +c_trxtaylor +c_trxtaylor_da +c_concat_spinor_ray +c_concat_spinmatrix_ray +c_concat_quaternion_ray +c_concat_c_ray +c_concat_map_ray +c_concat_vector_field_ray +c_bra_v_ct +c_bra_v_q +c_bra_v_dm +powmap +powmap_inv +pow_tpsamap +powmaps +c_equalmap +c_map_vec +c_equalvec +c_equalcray +c_identityequalmap +c_zero_constant_in_map +c_identityequalspin +c_identityequalspinor +c_identityequalvec +c_identityequalfactored +matrixmapr +r_matrixmapr +mapmatrixr +r_mapmatrixr +c_linear_a +c_linear_a_stoch +c_locate_planes +c_locate_modulated_magnet_planes +c_linear_ac_longitudinal +c_gofix +c_factor_map +c_canonise +c_full_factor_map +c_full_canonise +c_identify_resonance +c_full_factorise +c_normal_spin_linear_quaternion +c_normal_spin_linear +c_convert_spin +coast +c_normal_radiation +c_stochastic_kick +check_kernel +check_kernel_spin +check_resonance +check_resonance_spin +c_kernel +c_average +c_expflo_fac +c_expflo_fac_inv +c_add_map +c_sub_map +c_1_vf_q +c_1_map +c_add_vf +c_sub_vf +real_mul_map +real_mul_vec +complex_mul_vec +map_mul_vec_q +map_mul_vec +exp_ad +iexp_ad +c_expflo_map +c_expflo +c_flofacg +c_find_n0 +c_n0_to_nr +c_nr_to_n0 +c_q0_to_qr +c_qr_to_q0 +c_find_om_da +c_find_as +c_inv_as +c_find_spin_angle +c_log_spinmatrix +c_vector_field_quaternion +c_exp_spinmatrix +c_exp_quaternion +c_exp_vectorfield_on_quaternion +c_full_norm_damap +c_full_norm_spin_map +c_full_norm_spinmatrix +c_full_norm_quaternion +c_norm_spinmatrix +c_full_norm_vector_field +c_full_norm_spinor +c_full_norm_fourier +c_check_rad +c_check_rad_spin +exp_mat +norm_matrix +c_eig6 +ety +etyt +ety2 +etdiv +ohmi_factor +get_4d_disp0 +get_6d_disp +get_6d_ohmi +teng_edwards_a1 +c_int_partial +copy_damap_matrix +invert_22 +dagger_22 +matmulr_33 +matmult_33 +matmul_33 +alloc_33t +prin_33t +kill_33t +copy_matrix_matrix +extract_linear_from_normalised +extract_a0 +extract_only_a0 +extract_a1 +extract_only_a1 +extract_a2 +factor_ely_rest +c_remove_y_rot +produce_orthogonal +orthogonalise_ray +c_identityequalvecfourier +equal_c_vector_field_fourier +alloc_c_vector_field_fourier +kill_c_vector_field_fourier +transform_vector_field_fourier_by_map +exp_vector_field_fourier +ddt_vector_field_fourier +print_vector_field_fourier +print_poisson_bracket_fourier +bra_vector_field_fourier +add_vector_field_fourier +mulc_vector_field_fourier +c_clean_vector_field_fourier +c_clean_taylors +c_evaluate_vector_field_fourier +normalise_vector_field_fourier +check_resonance_ham +normalise_vector_field_fourier_factored +symplectify_for_sethna +nth_root +alloc_node_array_tpsa +kill_node_array_tpsa +kill_node_array +alloc_node_array +get_c_yu_w +transform_c_yu_w +c_fast_canonise +canonize_damping +extract_a0_mat +c_normal +set_tree_g_complex_zhe +set_tree_g_complex_zhe_as_is +fill_tree_element_line_zhe_outside_map +compute_lie_map_matrix_complex +compute_lie_map_matrix +create_taylor_vector +init_moment_map +create_moment_map_one +create_vector_field +create_moment_map_one_complex +create_moment_map +create_yu_map +norm_moment_matrix +matinvn +ludcmp_nr0n +lubksb_nr0n +copy_tree_into_tree_zhe +print_tree_element +print_tree_elements +read_tree_element +read_tree_elements +symplectify_for_zhe +furman_symp +furman_step +checksympn +cholesky_dt +c_kill_uni +c_kill_unis +c_null_uni +c_alloc_u +c_alloc_us +c_get_coeff +c_fill_uni_r +c_fill_uni +c_fill_uni_complextaylor +c_concat_c_uni_ray +c_concat_c_uni_rays +c_equal_uni +c_refill_uni +c_printunitaylors +c_printunitaylor_old +r_field_for_demin +d_field_for_demin +c_uni_reorder +d_mod_demin +check_re +c_normalf +c_normalg +c_normal_usual + +File: code/Se_status.f90 +s_status +kind0 +kind1 +kind2 +kind3 +kind4 +kind5 +kind6 +kind7 +kind8 +kind9 +kind10 +kind11 +kind12 +kind13 +kind14 +kind15 +kind16 +kind17 +kind18 +kind19 +kind20 +kind21 +kind22 +kind23 +kindfitted +kinduser1 +kinduser2 +kindhel +kindwiggler +kindmu +kindpa +kindsuperdrift +kindabell +drift_kick_drift +matrix_kick_matrix +kick_sixtrack_kick +b_cyl +operator +procedure +assignment +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +make_states +procedure +procedure +check_aperture +procedure +procedure +check_s_aperture +procedure +procedure +check_s_aperture_out +procedure +procedure +init +procedure +print +procedure +alloc +procedure +procedure +procedure +kill +procedure +procedure +procedure +b2perp +procedure +procedure +orthonormalise +procedure +procedure +dtiltd +procedure +procedure +track_tree_g_complex +procedure +procedure +track_tree_probe_complex +procedure +procedure +null_a +alloc_a +dealloc_a +null_p +alloc_p +dealloc_p +kill_s_aperture +alloc_s_aperture +check_s_aperture_r +check_s_aperture_p +check_s_aperture_out_r +check_s_aperture_out_p +equal_a +equal_p +check_aperture_r +check_aperture_p +chkaperpolygon +minu +equaltilt +make_states_0 +print_curv +print_curv_elec +make_set_coef +clear_states +print_s +conv +make_states_m +update_states +equalt +equali +add +sub +para_rema +init_all +s_init +kill_map_cp +init_default +b2perpr +b2perpp +dtiltr_external +dtiltp_external +dd_p +set_s_b +set_s_e +set_s_b_mcmillan +set_s_e_mcmillan +get_bend_electric_coeff +get_bend_magnetic_potential +invert_laplace +make_coef +nul_coef +set_tree_g_complex +track_tree_probe_complexr +orthonormaliser +track_tree_probe_complexp_new +orthonormalisep +furman_rrt +track_tree_g_complexr +track_tree_g_complexp + +File: code/Si_def_element.f90 +s_def_element +equal +procedure +procedure +procedure +copy +procedure +procedure +procedure +procedure +add +procedure +procedure +zero_anbn +procedure +procedure +operator +procedure +operator +procedure +print +procedure +setfamily +procedure +procedure +null_element +procedure +procedure +put_aperture +procedure +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +track +procedure +procedure +trackr +trackp +work_0 +work_r +print_work +unaryw_w +elp_work +el_work +work_el +work_elp +mod_n +bl_0 +blpol_0 +bl_el +bl_elp +el_bl +elp_bl +elp_pol +elp_pol_force +elp_pol_print +copy_bl +unaryp_bl +setfamilyr +setfamilyp +zero_anbn_r +zero_anbn_p +transfer_anbn +restore_anbn +restore_anbn_single +force_restore_anbn_single +force_restore_anbn +change_settings_fibre +change_settings_magnetr +change_settings_magnetp +add_anbnr +add_anbnp +null_el +null_elp +zero_el +zero_elp +cop_el_elp +cop_elp_el +cop_el_el +copy_el_elp +copy_elp_el +copy_el_el +reset31 +find_energy +put_aperture_el +put_aperture_elp +remove_aperture_el +remove_aperture_elp +decode_element + +File: code/Sr_spin.f90 +ptc_spin +assignment +procedure +alloc +procedure +procedure +track_probe2 +procedure +procedure +track_probe +procedure +procedure +procedure +procedure +track_node_probe_old +procedure +procedure +track_node_probe +procedure +procedure +track_node_x +procedure +procedure +track_node_v +procedure +track_probe_x +procedure +procedure +procedure +procedure +propagate +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +patch_spin +procedure +procedure +mis_spin +procedure +procedure +dtilt_spin +procedure +procedure +track_spin_front +procedure +procedure +track_spin_back +procedure +procedure +track_rotate_spin +procedure +procedure +track_wedge_spin +procedure +procedure +track_fringe_spin_multipole +procedure +procedure +track_fringe_spin +procedure +procedure +superdrift_spin +procedure +procedure +push_spin +procedure +procedure +push_spin_fake_fringe +procedure +procedure +fluc_spin +push_spin_fake_fringer +push_spin_fake_fringep +push_spinr +push_spinp +quaternion_to_damps +track_node_layout_flag_pr_t12_r +track_node_layout_flag_pr_t12_p +track_node_layout_flag_pr_s12_r +track_node_layout_flag_pr_s12_p +track_layout_flag_probe_spin12r +track_layout_flag_probe_spin12p +track_layout_flag_spin12r_x +track_layout_flag_spin12p_x +track_layout_flag_spint12r_x +track_layout_flag_spint12p_x +track_fill_ref +track_node_layout_flag_spin_v +track_node_layout_flag_spinr_x +track_node_layout_flag_spinp_x +track_node_flag_probe_quar +track_node_flag_probe_quap +track_node_flag_probe_wrap_r +track_node_flag_probe_wrap_p +track_node_flag_probe_r +track_node_flag_probe_p +track_fringe_spinr +track_fringe_spinp +track_wedge_spinr +track_wedge_spinp +track_rotate_spin_r +track_rotate_spin_p +track_fringe_spin_multipole_r +track_fringe_spin_multipole_p +track_spin_frontr +track_spin_frontp +track_spin_backr +track_spin_backp +superdrift_spinr +superdrift_spinp +patch_spinr +patch_spinp +mis_spinr +mis_spinp +dtilt_spinr +dtilt_spinp +stroboscopic_average +track_time +ptc_global_x_p +locate_temporal_probe +fit_temporal_probe +fit_temporal_probe_nocav +fit_temporal_probe_cav +ptc_print +find_frac_r +find_as +find_n0 +equal_temporal +alloc_temporal_beam +alloc_temporal_probe +track_temporal_beam +fill_tree_element +fill_tree_element_line +fill_tree_element_line_zhe0 +fill_tree_element_line_zhe0_node +fill_tree_element_line_zhe +set_tree_g_complex_zhe0 +symplectify_for_zhe0 +extract_moments +checksympglobal + +File: code/Su_duan_zhe_map.f90 +duan_zhe_map +i_ +kind +bunch +internal_state +tree_element +spinor +quaternion +probe +operator +procedure +assignment +procedure +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +operator +procedure +operator +procedure +print +procedure +procedure +operator +procedure +abs +procedure +abs_square +procedure +print +procedure +track_tree_probe_complex_ptc +procedure +alloc_tree +kill_tree +print_probe_zhe +equal_probe_real6_zhe +equal_probe_real6_bunch +alloc_bunch +kill_bunch +minu_zhe +print_s +conv +equalt_zhe +equali_zhe +add_zhe +sub_zhe +para_rema_zhe +track_tree_g_complex +print_tree_element +print_tree_elements_zhe +read_tree_element +read_tree_elements +track_tree_probe_complexr +orthonormaliser +track_tree_g_complexr +orthonormalise +track_tree_probe_complex_zhe +track_tree_probe_simple_zhe +track_miyajima_zhe +track_tree_probe_complex_zhe_no_orbital +track_tree_probe_complex_zhe_no_orbital_quaternion +change_ntot +gaussian_seed_zhe +nrmax_zhe +nrmax_used_zhe +get_seed +set_seed +matinv +ludcmp_nr +lubksb_nr +kanalnummer +reportopenfiles +zhe_ini +read_tree_zhe +kill_tree_zhe +unaryaddq +unarysubq +invq +absq +absq2 +equalq +equalqr +equalqi +powq +addq +subq +mulq +divq +printq + +File: code/a_scratch_size.f90 +precision_constants +no_e +read +procedure +procedure +procedure +procedure +control +read_int +read_int_a +read_d +read_d_a +mat_norm +make_yoshida +input_sector +get_ncar +dofma +c_matinv +ludcmp_nr +lubksb_nr +matinv +ludcmp_nr0 +lubksb_nr0 +scratch_size +file_handler +file_ +file_k +assignment +procedure +procedure +intfile +intfile_k +zerofile +kanalnummer +reportopenfiles +context +create_name +my_own_1d_tpsa +n_my_1d_taylor +my_1d_taylor +assignment +procedure +procedure +operator +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +operator +procedure +exp +procedure +log +procedure +sqrt +procedure +cos +procedure +sin +procedure +set_my_taylor_no +add +daddsc +dscadd +unaryadd +subs +unarysub +dsubsc +dscsub +mul +dmulsc +dscmul +ddivsc +idivsc +pow +inv +div +dscdiv +input_real_in_my_1d_taylor +input_my_1d_taylor_in_real +dexpt +dlogt +dsqrtt +dcost +dsint +gauss_dis +gaussian_seed +grnf +my_own_linear_tpsa +i_ +my_linear_taylor +assignment +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +procedure +procedure +procedure +procedure +operator +procedure +procedure +exp +procedure +tpsa_exp +procedure +log +procedure +sqrt +procedure +cos +procedure +sin +procedure +tan +procedure +atan +procedure +atan2 +procedure +operator +procedure +alloc +procedure +kill +procedure +morph +procedure +clean +procedure +init_linear_taylor +clean_taylor +clean_taylor_print +alloc_my_linear_taylor +morpht +monot +add +daddsc +dscadd +daddscc +dscaddc +unaryadd +subs +unarysub +dsubsc +dscsub +dsubscc +dscsubc +mul +dmulsc +dscmul +dmulscc +dscmulc +ddivsc +ddivscc +idivsc +pow +powr +inv +div +dscdiv +input_real_in_my_linear_taylor +input_real_in_my_linear_taylors +input_comp_in_my_linear_taylor +input_my_linear_taylor_in_comp +input_my_linear_taylor_in_my_linear_taylor +input_my_linear_taylor_in_real +dexpt +dlogt +dsqrtt +dcost +atant +dtant +atan2t +dsint +tpsa_expt +mypause +mypauses + +File: code/b_da_arrays_all.f90 +da_arrays +alloc_all +alloc_ +dealloc_all +danum +danum0 + +File: code/c_dabnew.f90 +dabnew +change_package +daini +dallsta +daallno1 +daall +daall1 +daall0 +dadal +dadal1 +count_da +davar +dacon +danot +daeps +dapek +dapok +daclr +dacop +daadd +datrunc +dasub +damul +damult +dadiv +dasqr +dasqrt +dacad +dacsu +dasuc +dacmu +dacmut +dacdi +dadic +dacma +dalin +dalint +dafun +dafunt +daabs +dacctt1 +dacctt2da +dacctt2tpsa +dacct +dacctt +mtree +ppushprint +ppushstore +ppushgetn +ppush +ppush1 +dainvt1 +dainv +dainvt2 +dainvt +dapin +dapint +dader +dadert +dacfu +dacfut +dapri +dapri77 +dashift +darea +darea77 +dadeb +dainf +dapac +dachk +damch +dadcd +dancd +datra +hash +dehash +daran +dacycle + +File: code/cb_da_arrays_all.f90 +c_da_arrays +alloc_all_c +alloc_c +dealloc_all_c +danum_c +danum0_c + +File: code/cc_dabnew.f90 +c_dabnew +c_daall1 +c_daall +c_daall0 +c_dadal +c_dadal1 +c_davar +c_dacma +c_daini +dalc_lsta +daalc_lno1 +daall +daall1 +c_print_c_nda_dab_c_lda +c_etall1 +c_daall0 +dadal +c_dadal1 +c_count_da +c_davar +c_dacon +c_danot +c_daeps +c_print_eps +c_dapek +c_dapok +daclr +c_dacop +c_daadd +c_datrunc +c_dasub +c_damul +damult +c_dadiv +dasqr +dasqrt +c_dacad +c_dacsu +c_dasuc +c_dacmu +dacmut +c_dacdi +c_dadic +dacma +dalin +dalint +c_daabs +dacctt1 +dacctt2tpsa +dacctt2da +c_dacctt2datest +c_dacct +dacctt +c_mtree +ppushprint +ppushstore +ppushgetn +ppush +ppush1 +dainvt1 +dainvt2 +c_dainv +dainvt +dapin +c_dapint +c_dader +dadert +c_dacfu +dacfut +c_dapri +c_clean_complex +c_dapri77 +c_dashift +c_darea +c_darea77 +dadeb +dainf +dapac +dachk +damch +dadcd +dancd +c_datra +hash +dehash +c_dacycle +c_dafun +dafunt +c_take +c_daran +c_dapek0 +c_dapok0 +c_etcom + +File: examples/ndpt_bmad.f90 +one_turn_orbital_map_phase_ad +build_lattice_als0 + +File: examples/radiation_bmad.f90 +program_als +build_als + +File: fpp_manual/programs/real_8_example.f90 +real_8_example + +File: include/a_def_all_kind.inc +temps_energie +acceleration +drift1 +drift1p +superdrift +superdriftp +dkd2 +dkd2p +kickt3 +kickt3p +abell +abellp +cav4 +cav4p +cav_trav +cav_travp +sol5 +sol5p +ktk +ktkp +tktf +tktfp +nsmi +nsmip +ssmi +ssmip +teapot +teapotp +mon +monp +rcol +rcolp +ecol +ecolp +eseptum +eseptump +strex +strexp +enge +engep +pancake +pancakep +helical_dipole +helical_dipolep + +File: include/a_def_element_fibre_layout.inc +c_linear_map +c_lattice_function +girder +girder_info +girder_list +mul_block +work +internal_state +pol_block +pol_block_inicond +madx_aperture +s_aperture +magnet_chart +tilting +time_energy +ramping +element +elementp +fibre_appearance +info +integration_node +fibre +layout +layout_array +girder_siamese +mad_universe +beam_location +node_layout +orbit_node +orbit_lattice +beam_beam_node +extra_work +e_beam + +File: include/a_def_frame_patch_chart.inc +affine_frame +magnet_frame +patch +chart + +File: include/a_def_sagan.inc +pol_sagan +pol_block_sagan +undu_r +undu_p +sagan +saganp + +File: include/a_def_worm.inc +inner_frame +worm + +File: include/a_namelists.inc +fibrelist +patchlist +chartlist +magnet_chartlist +ele_list +cav_list +hel_list +thin3_list +sol5_list +tp10_list +ab_list +k16_list +ap_list +tcav_list +siam_list +track_list +wig_list + +File: papers/from_tracking_code_to_analysis_examples/hamiltonian_guignard.f90 +guignard_hamiltonian + +File: papers/from_tracking_code_to_analysis_examples/hamiltonian_guignard_1df.f90 +guignard_normal_form + +File: papers/from_tracking_code_to_analysis_examples/hamiltonian_guignard_1df_x.f90 +guignard_normal_form_average_x + +File: papers/from_tracking_code_to_analysis_examples/hamiltonian_guignard_cs.f90 +guignard_hamiltonian_cs + +File: papers/from_tracking_code_to_analysis_examples/modulated_map.f90 +modulated_map + +File: papers/from_tracking_code_to_analysis_examples/modulated_map_jordan.f90 +modulated_map + +File: papers/from_tracking_code_to_analysis_examples/one_resonance_map.f90 +one_resonance_map + +File: papers/from_tracking_code_to_analysis_examples/one_turn_cavity_map.f90 +one_turn_cavity_map +clean_mat + +File: papers/from_tracking_code_to_analysis_examples/one_turn_orbital_map.f90 +program_one_turn_map + +File: papers/from_tracking_code_to_analysis_examples/one_turn_orbital_map_normal_form_2d.f90 +one_turn_orbital_map_normal_form_2d + +File: papers/from_tracking_code_to_analysis_examples/one_turn_orbital_map_phase_ad.f90 +one_turn_orbital_map_phase_ad + +File: papers/from_tracking_code_to_analysis_examples/pendulum.f90 +pendulum + +File: papers/from_tracking_code_to_analysis_examples/radiation_map.f90 +radiation_map + +File: papers/from_tracking_code_to_analysis_examples/spin_phase_advance_isf.f90 +spin_phase_advance_isf + +File: papers/from_tracking_code_to_analysis_examples/standard_map.f90 +standard_map + +File: papers/from_tracking_code_to_analysis_examples/very_damped_map.f90 +very_damped_map + +File: papers/from_tracking_code_to_analysis_examples/als/z_als_lattice.f90 +build_lattice_als diff --git a/regression_tests/scripts/svn_regression.py b/regression_tests/scripts/svn_regression.py index e1543aa6cf..ee2dcaa35a 100755 --- a/regression_tests/scripts/svn_regression.py +++ b/regression_tests/scripts/svn_regression.py @@ -17,7 +17,7 @@ "https://accserv.classe.cornell.edu/svn/packages/lapack95" : "53051", "https://accserv.classe.cornell.edu/svn/packages/openmpi" : "51988", "https://accserv.classe.cornell.edu/svn/packages/plplot" : "55075", # Change from 54925 - "https://accserv.classe.cornell.edu/svn/packages/xraylib" : "54916", # Change from 53181 + "https://accserv.classe.cornell.edu/svn/packages/xraylib" : "55246", # Change from 54916 } all_pass = True diff --git a/sim_utils/searchf.namelist b/sim_utils/searchf.namelist new file mode 100644 index 0000000000..cbc9aac6ee --- /dev/null +++ b/sim_utils/searchf.namelist @@ -0,0 +1,1492 @@ + +File: file/calc_file_number.f90 +calc_file_number + +File: file/change_file_number.f90 +change_file_number + +File: file/directory_mod.f90 +directory_mod +dir_list +dir_open +dir_read +dir_close + +File: file/file_directorizer.f90 +file_directorizer + +File: file/file_get.f90 +file_get + +File: file/file_get_open.f90 +file_get_open + +File: file/file_suffixer.f90 +file_suffixer + +File: file/filename_mod.f90 +filename_mod +fullfilename +splitfilename +file_name_is_relative +simplify_path +append_subdirectory + +File: file/get_file_number.f90 +get_file_number + +File: file/get_file_time_stamp.f90 +get_file_time_stamp + +File: file/increment_file_number.f90 +increment_file_number + +File: file/object_model_mod.f90 +object_model_mod +temp_struct +object_struct +object_document_parse +object_print +subobject_reallocate +object_deallocate +subobject_number +pointer_to_subobject +object_tree_name +object_root + +File: file/read_dir.cpp +close_dir_ +open_dir_ +read_dir_ + +File: file/real_path.f90 +real_path + +File: file/skip_header.f90 +skip_header + +File: file/type_this_file.f90 +type_this_file + +File: geodesic_lm/accept.f90 +acceptance + +File: geodesic_lm/converge.f90 +convergence_check + +File: geodesic_lm/fdavv.f90 +fdavv + +File: geodesic_lm/fdjac.f90 +fdjac + +File: geodesic_lm/geodesic_lm.f90 +geodesic_lm +geodesic_lm_param_struct +type_geodesic_lm +run_geodesic_lm + +File: geodesic_lm/lambda.f90 +trustregion +updatelam_factor +updatelam_nelson +updatelam_umrigar +updatedelta_factor +updatedelta_more + +File: geodesic_lm/leastsq.f90 +geolevmar_module +geodesiclm + +File: geodesic_lm/updatejac.f90 +updatejac + +File: geodesic_lm/user_signal.f90 +user_signal + +File: interfaces/parallel_mod.f90 +parallel_mod + +File: interfaces/physical_constants.f90 +physical_constants +pi +twopi +fourpi +sqrt_2 +sqrt_3 +m_electron +m_proton +m_neutron +m_muon +m_helion +e_mass +p_mass +m_pion_0 +m_pion_charged +m_deuteron +atomic_mass_unit +c_light +r_e +r_p +e_charge +h_planck +h_bar_planck +mu_0_vac +eps_0_vac +classical_radius_factor +n_avogadro +fine_structure_constant +anomalous_mag_moment_electron +anomalous_mag_moment_proton +anomalous_mag_moment_muon +anomalous_mag_moment_deuteron +anomalous_mag_moment_neutron +anomalous_mag_moment_he3 + +File: interfaces/precision_def.f90 +precision_def +rp +sp +dp +i4_b +global_common_struct +named_number_struct + +File: interfaces/sim_utils.f90 +sim_utils + +File: interfaces/sim_utils_interface.f90 +sim_utils_interface +set_parameter +set_parameter_real +set_parameter_int +set_parameter_logic +inverse_prob +is_alphabetic +is_decreasing_sequence +is_increasing_sequence +is_integer +is_logical +is_real +isatty +j_bessel +linear_fit +linear_fit_2d +location_decode +logic_str +lunget +match_reg +milli_sleep +make_legal_comment +match_wild +mat_pseudoinverse +mat_eigen +mat_inverse +mat_rotation +mat_scale_p0 +mat_symp_conj +mat_symp_conj_i +mat_symp_error +mat_symplectify +mat_type +mat_make_unit +match_word +max_nonzero +n_choose_k +n_spline_create +nametable_add +nametable_bracket_indexx +nametable_change1 +nametable_init +nametable_remove +node_put +ordinal_str +outer_product +parse_fortran_format +pointer_to_locations +poly_eval +probability_funct +query_string +quote +quoten +real_to_string +reals_to_string +reals_to_table_row +all_pointer_to_string +unquote +real_num_fortran_format +str_set +svd_fit +real_path +real_str +rms_value +rot_2d +run_timer +sinc +sincc +sinhx_x +skip_header +sqrt_one +str_first_in_set +str_first_not_in_set +str_last_in_set +str_last_not_in_set +string_to_int +string_to_real +string_trim2 +substr +test_tune_tracker_lock +to_str +type_this_file +upcase +upcase_string +word_len +word_read +str_substitute +str_match_wild +str_upcase +str_downcase +system_command +string_trim +virtual_memory_usage + +File: interfaces/sim_utils_struct.f90 +sim_utils_struct +var_length_string_struct +str_index_struct +nametable_struct +all_pointer_struct +i_imaginary +i_imag +int_garbage$ +real_garbage$ +null_name$ +str_garbage$ +lf$ +invalid$ +not_set$ +invalid_name +x_axis$ +y_axis$ +z_axis$ +true$ +false$ +true_int$ +false_int$ +yes$ +no$ +maybe$ +provisional$ +rl_prompt_start_ignore +rl_prompt_end_ignore +black_color +red_color +green_color +yellow_color +blue_color +magenta_color +cyan_color +gray_color +dark_gray_color +peach_color +light_green_color +light_yellow_color +light_blue_color +pink_color +aqua_color +white_color +blink_color +bold_color +reset_color +int_logic +is_true +is_false +value_of_all_ptr + +File: interfaces/particle_species_mod.f90 +particle_species_mod +pion_0$ +helion$ +ref_particle$ +neutron$ +deuteron$ +pion_plus$ +antimuon$ +proton$ +positron$ +photon$ +electron$ +antiproton$ +muon$ +pion_minus$ +anti_deuteron$ +anti_neutron$ +anti_ref_particle$ +anti_helion$ +lb_subatomic +ub_subatomic +subatomic_species_name +openpmd_subatomic_species_name +charge_of_subatomic +mass_of_subatomic +anomalous_moment_of_subatomic +antiparticle_of_subatomic +spin_of_subatomic +atomic_name +atom_struct +mean_excitation_energy_over_z +molecular_name +antiparticle +species_of +species_id +species_name +species_id_from_openpmd +openpmd_species_name +anomalous_moment_of +spin_of +charge_of +mass_of +charge_to_mass_of +set_species_charge +x0_radiation_length +atomic_number +is_subatomic_species + +File: io/command_line_mod.f90 +command_line_mod +cesr_iargc +cesr_getarg + +File: io/get_tty_char_c.c +init_tty_char_ +get_tty_char_c_ +init_tty_char_ +get_tty_char_c_ + +File: io/input_mod.f90 +input_mod +get_tty_char +get_a_char +read_a_line +readline_read_history +readline_write_history + +File: io/lunget.f90 +lunget + +File: io/out_io_called.f90 +out_io_called + +File: io/out_io_end.f90 +out_io_end + +File: io/out_io_line.f90 +out_io_line + +File: io/output_mod.f90 +output_mod +s_nooutput$ +s_blank$ +s_info$ +s_dinfo$ +s_success$ +s_warn$ +s_dwarn$ +s_error$ +s_fatal$ +s_abort$ +s_important$ +out_io_output_direct_struct +out_io_mod_com_struct +out_io +procedure +procedure +procedure +procedure +procedure +output_direct +out_io_line_out +out_io_real +out_io_int +out_io_logical +out_io_line12 +out_io_lines +insert_numbers +find_format +header_io +out_io_print_and_capture_setup +out_io_buffer_reset +out_io_buffer_num_lines +out_io_buffer_get_line + +File: io/read_line.c +read_line_ +read_history_ +write_history_ + +File: io/system_command.f90 +system_command + +File: io/ttychr.f90 +ttychr + +File: math/all_phase_fft.f90 +all_phase_fft +apfft_corr +apfft +apfft_ext +hanhan +han + +File: math/bin_mod.f90 +bin_mod +bin_struct +general_bin_struct +bin_data_density +bin_data +bin_data_density_2d +bin_2d +bin_index +bin_x_center +count_at_index +n_bins_automatic +general_bin_index +general_bin_count +general_bin_index_in_bounds + +File: math/bit_set_mod.f90 +bit_mod +bit_set + +File: math/bracket_index.f90 +bracket_index + +File: math/bracket_index2.f90 +bracket_index2 + +File: math/bracket_index_int.f90 +bracket_index_int + +File: math/cross_product.f90 +cross_product + +File: math/cubic_interpolation_mod.f90 +cubic_interpolation_mod +field1_at_2d_pt_struct +field_at_2d_box_struct +bicubic_coef_struct +cmplx_field1_at_2d_pt_struct +cmplx_field_at_2d_box_struct +bicubic_cmplx_coef_struct +field1_at_3d_pt_struct +field_at_3d_box_struct +tricubic_coef_struct +cmplx_field1_at_3d_pt_struct +cmplx_field_at_3d_box_struct +tricubic_cmplx_coef_struct +m16_row_struct +m16_matrix_struct +m64_row_struct +m64_matrix_struct +bicubic_compute_field_at_2d_box +bicubic_interpolation_coefs +bicubic_eval +tricubic_compute_field_at_3d_box +tricubic_interpolation_coefs +tricubic_eval +bicubic_compute_cmplx_field_at_2d_box +bicubic_interpolation_cmplx_coefs +bicubic_cmplx_eval +tricubic_compute_cmplx_field_at_3d_box +tricubic_interpolation_cmplx_coefs +tricubic_cmplx_eval + +File: math/da2_mod.f90 +da2_mod +da2_mult +da2_div +da2_inverse +da2_evaluate + +File: math/fft_1d.f90 +fft_1d + +File: math/fourier_mod.f90 +fourier_mod +coarse_frequency_estimate +fine_frequency_estimate +fourier_amplitude + +File: math/inverse.f90 +inverse + +File: math/is_decreasing_sequence.f90 +is_decreasing_sequence + +File: math/is_increasing_sequence.f90 +is_increasing_sequence + +File: math/linear_fit.f90 +linear_fit + +File: math/linear_fit_2d.f90 +linear_fit_2d + +File: math/max_nonzero.f90 +max_nonzero + +File: math/n_spline_create.f90 +n_spline_create + +File: math/naff.f90 +naff_mod +naff +projdd +ed +maximize_projection +interpolated_fft_gsl +interpolated_fft + +File: math/outer_product.f90 +outer_product + +File: math/poly_eval.f90 +poly_eval + +File: math/probability_funct.f90 +probability_funct + +File: math/random_mod.f90 +random_mod +kr4b +im_nr_ran +sobseq_maxbit +sobseq_maxdim +ran_engine_name +ran_gauss_converter_name +pseudo_random$ +quasi_random$ +quick_gaussian$ +exact_gaussian$ +random_state_struct +ran_gauss +procedure +procedure +ran_uniform +procedure +procedure +ran_gauss_scalar +ran_gauss_vector +ran_engine +ran_gauss_converter +ran_seed_put +ran_seed_get +ran_default_state +ran_uniform_scalar +ran_uniform_vector +super_sobseq +pointer_to_ran_state +allocate_thread_states + +File: math/rms_value.f90 +rms_value + +File: math/rot_2d.f90 +rot_2d + +File: math/rotation_3d_mod.f90 +rotation_3d_mod +quat_conj +procedure +procedure +quat_mul +procedure +procedure +quat_rotate +procedure +procedure +w_mat_to_axis_angle +w_mat_to_quat +quat_to_w_mat +axis_angle_to_w_mat +quat_to_omega +omega_to_quat +quat_to_axis_angle +axis_angle_to_quat +quat_conj_real +quat_conj_complex +quat_inverse +quat_mul_real +quat_mul_complex +quat_rotate_real +quat_rotate_complex +rotate_vec_given_axis_angle +rotate_vec +rotate_mat + +File: math/sign_of_mod.f90 +sign_of_mod +sign_of +procedure +procedure +sign_of_real +sign_of_int + +File: math/spline_mod.f90 +spline_mod +spline_struct +reallocate_spline +create_a_spline +spline_akima_interpolate +spline_evaluate +bracket_index_for_spline +spline1 +spline_akima +end_akima_spline_calc +akima_spline_slope_calc +akima_spline_coef23_calc + +File: math/super_recipes_mod.f90 +super_recipes_mod +super_mrqmin_storage_struct +super_bicubic_interpolation +super_bicubic_coef +super_sort +super_rtsafe +super_mnbrak +shft +super_brent +shft +super_dbrent +mov3 +super_zbrent +super_mrqmin +super_mrqcof +super_gaussj +super_ludcmp +super_qromb +super_polint +super_trapzd +super_qromb_2d +trapzd_2d +super_poly +covar_expand + +File: math/windowLS.f90 +windowls_mod +max_wls +wls_struct +initfixedwindowls +destfixedwindowls +fixedwindowls +shortfactorial + +File: matrix/cplx_mat_inverse.f90 +cplx_mat_inverse + +File: matrix/cplx_mat_make_unit.f90 +cplx_mat_make_unit + +File: matrix/determinant.f90 +determinant + +File: matrix/mat_eigen.f90 +mat_eigen + +File: matrix/mat_inverse.f90 +mat_inverse + +File: matrix/mat_make_unit.f90 +mat_make_unit + +File: matrix/mat_pseudoinverse.f90 +mat_pseudoinverse + +File: matrix/mat_rotation.f90 +mat_rotation + +File: matrix/mat_scale_p0.f90 +mat_scale_p0 + +File: matrix/mat_symp_conj.f90 +mat_symp_conj + +File: matrix/mat_symp_conj_i.f90 +mat_symp_conj_i + +File: matrix/mat_symp_error.f90 +mat_symp_error + +File: matrix/mat_symplectify.f90 +mat_symplectify + +File: matrix/mat_type.f90 +mat_type + +File: matrix/qr_mod.f90 +qr_mod +qr +thin_qr +twonorm2 +house +rbacks +print_mat + +File: matrix/svd_fit.f90 +svd_fit + +File: misc/assert_equal.f90 +assert_equal + +File: misc/cpp_fortran_utils.cpp +bool_to_int +int_to_bool + +File: misc/csr_bell.f90 +csr_bell + +File: misc/err_exit.f90 +err_exit + +File: misc/fortran_cpp_utils.f90 +fortran_cpp_utils +c_dummy_struct +vec2fvec +procedure +fscalar2scalar +procedure +fvec2vec +procedure +procedure +procedure +procedure +mat2vec +procedure +procedure +procedure +procedure +tensor2vec +procedure +procedure +procedure +procedure +vec2mat +procedure +procedure +procedure +procedure +vec2tensor +procedure +procedure +procedure +procedure +remove_null_in_string +procedure +procedure +f_logic +procedure +procedure +c_logic +procedure +procedure +f_logic_int +f_logic_bool +r_size +i_size +remove_null_in_string_arr +remove_null_in_string_char +to_f_str +bool_fscalar2scalar +real_fvec2vec +int_fvec2vec +cmplx_fvec2vec +bool_fvec2vec +real_mat2vec +int_mat2vec +bool_mat2vec +cmplx_mat2vec +real_tensor2vec +int_tensor2vec +cmplx_tensor2vec +bool_tensor2vec +bool_vec2fvec +real_vec2mat +int_vec2mat +bool_vec2mat +cmplx_vec2mat +real_vec2tensor +int_vec2tensor +cmplx_vec2tensor +bool_vec2tensor +set_fortran_string + +File: misc/logical_is_garbage.f90 +logical_is_garbage + +File: misc/milli_sleep.f90 +milli_sleep + +File: misc/program_sleep.cpp +program_sleep_ + +File: misc/re_allocate_mod.f90 +re_allocate_mod +re_allocate +procedure +procedure +procedure +procedure +procedure +procedure +procedure +procedure +re_allocate2 +procedure +procedure +procedure +procedure +procedure +procedure +procedure +re_allocate2d +procedure +procedure +procedure +procedure +procedure +re_associate +procedure +procedure +procedure +procedure +procedure +re_allocate_string +re_allocate_var_string +re_allocate_var_string1 +re_allocate_integer +re_allocate_complex +re_allocate_real +re_allocate_all_pointer +re_allocate_logical +re_allocate2_string +re_allocate2_var_string +re_allocate2_integer +re_allocate2_complex +re_allocate2_real +re_allocate2_all_pointer +re_allocate2_logical +re_allocate_string2d +re_allocate_var_string2d +re_allocate_integer2d +re_allocate_real2d +re_allocate_logical2d +re_associate_string +re_associate_var_string +re_associate_integer +re_associate_real +re_associate_logical + +File: misc/run_timer.f90 +run_timer + +File: misc/set_logical_to_garbage.f90 +set_logical_to_garbage + +File: misc/set_parameter.f90 +set_parameter_real +set_parameter_int +set_parameter_logic + +File: misc/swap_mod.f90 +swap_mod +swap +procedure +procedure +procedure +procedure +procedure +procedure +swap_i +swap_r +swap_rv +swap_c +swap_cv +swap_cm + +File: misc/transfer_logical.f90 +transfer_logical + +File: misc/userex.c +userex_ + +File: misc/utilities_mod.f90 +utilities_mod +integer_option +logic_option +real_option +string_option +eval_logical +on_off_logic + +File: misc/virtual_memory_usage.f90 +virtual_memory_usage + +File: mpi/opti_de_mpi_mod.f90 +opti_de_mpi_mod +solution_struct +opti_de_mpi +this_merit_calc + +File: optimizers/lmdif_mod.f90 +lmdif_mod +opti_lmdif +initial_lmdif +suggest_lmdif +lmdif +fdjac2 +lmpar +qrfac +qrsolv + +File: optimizers/opti.cpp +RandInt +UniRand + +File: optimizers/opti_de_mod.f90 +opti_de_mod +opti_de_param_struct +opti_de +solution_struct + +File: optimizers/opti_de_openmp_mod.f90 +opti_de_openmp_mod +opti_de_openmp +solution_struct + +File: plot/display_size_and_resolution.c +display_size_and_res +display_size_and_res + +File: plot/display_size_and_resolution.f90 +display_size_and_resolution + +File: plot/noplot_interface.f90 +noplot_interface +qp_set_graph_position_basic +qp_set_symbol_size_basic +qp_paint_rectangle_basic +qp_set_symbol_fill_basic +qp_set_line_width_basic +qp_set_line_pattern_basic +qp_set_clip_basic +qp_set_char_size_basic +qp_set_text_background_color_basic +qp_text_len_basic +qp_draw_text_basic +qp_draw_arrow_basic +qp_draw_symbol_basic +qp_save_state_basic +qp_restore_state_basic +qp_set_color_basic +qp_clear_page_basic +qp_clear_box_basic +qp_draw_polyline_basic +qp_open_page_basic +qp_select_page_basic +qp_close_page_basic +qp_end_basic + +File: plot/pgplot_interface.f90 +pgplot_interface +pg_interface_struct +qp_set_graph_position_basic +qp_set_symbol_size_basic +qp_set_symbol_fill_basic +qp_set_line_width_basic +qp_set_line_pattern_basic +qp_set_clip_basic +qp_set_char_size_basic +qp_set_text_background_color_basic +qp_text_len_basic +qp_draw_text_basic +qp_draw_arrow_basic +qp_draw_symbol_basic +qp_save_state_basic +qp_restore_state_basic +qp_wait_to_flush_basic +qp_set_color_basic +qp_clear_page_basic +qp_paint_rectangle_basic +qp_draw_polyline_basic +qp_open_page_basic +qp_select_page_basic +qp_close_page_basic +qp_end_basic + +File: plot/pgsubs.f90 +palett + +File: plot/plplot_interface.f90 +plplot_interface +viewport_size +pl_interface_struct +qp_set_graph_position_basic +qp_set_symbol_size_basic +qp_paint_rectangle_basic +qp_set_symbol_fill_basic +qp_set_line_width_basic +qp_set_line_pattern_basic +qp_set_clip_basic +qp_set_char_size_basic +qp_set_text_background_color_basic +qp_text_len_basic +qp_draw_text_basic +qp_draw_arrow_basic +qp_draw_symbol_basic +qp_save_state_basic +qp_restore_state_basic +qp_wait_to_flush_basic +qp_set_color_basic +qp_clear_page_basic +qp_clear_box_basic +qp_draw_polyline_basic +qp_open_page_basic +qp_select_page_basic +qp_close_page_basic +qp_end_basic + +File: plot/quick_plot.f90 +quick_plot +qp_base_library +qp_base_library +qp_base_library +qp_set_layout +qp_get_layout_attrib +qp_wait_to_flush +qp_init_com_struct +qp_save_state +qp_restore_state +qp_pointer_to_axis +qp_use_axis +qp_set_axis +qp_get_axis_attrib +qp_calc_and_set_axis +qp_calc_axis_params +qp_calc_axis_scale +qp_axis_niceness +qp_calc_axis_places +qp_set_graph_limits +qp_clear_page +qp_clear_box +qp_paint_rectangle +qp_set_box +qp_set_page_border_to_box +qp_set_page_border +qp_from_inch_rel +qp_from_inch_abs +qp_to_inch_rel +qp_to_inches_rel +qp_to_inch_abs +qp_to_inches_abs +qp_convert_point_rel +qp_convert_point_abs +qp_convert_rectangle_rel +qp_join_units_string +qp_split_units_string +qp_set_graph_placement +qp_set_margin +qp_draw_rectangle +qp_draw_arrow +qp_draw_symbol +qp_draw_symbols +qp_set_graph +qp_draw_graph +qp_draw_data +qp_draw_axes +qp_draw_graph_title +qp_draw_histogram +qp_draw_text_legend +qp_draw_curve_legend +qp_draw_ellipse +qp_draw_circle +qp_draw_polyline +qp_draw_polyline_no_set +qp_draw_line +qp_open_page +qp_select_page +qp_close_page +qp_draw_text +qp_draw_text_no_set +qp_justify +qp_draw_main_title +qp_set_arrow +qp_set_symbol +qp_set_arrow_attrib +qp_set_symbol_attrib +qp_get_arrow_attrib +qp_get_symbol_attrib +qp_set_line +qp_get_line_attrib +qp_set_line_attrib +qp_set_clip +qp_subset_box +qp_get_text_attrib +qp_set_text_attrib +qp_draw_x_axis +qp_draw_y_axis +qp_to_axis_number_text +qp_text_len +qp_set_graph_attrib +qp_draw_grid +qp_calc_minor_div +qp_get_parameters +qp_set_parameters +qp_text_height_to_inches +qp_read_data +qp_eliminate_xy_distortion +qp_continuous_color +qp_continuous_color_inverse +qp_end + +File: plot/quick_plot_struct.f90 +quick_plot_struct +white$ +black$ +red$ +green$ +blue$ +cyan$ +magenta$ +yellow$ +orange$ +yellow_green$ +light_green$ +navy_blue$ +purple$ +reddish_purple$ +dark_grey$ +light_grey$ +transparent$ +qp_color_name +solid$ +dashed$ +dash_dot$ +dotted$ +dash_dot3$ +qp_line_pattern_name +solid_fill$ +no_fill$ +hatched$ +cross_hatched$ +qp_symbol_fill_pattern_name +square_sym$ +dot_sym$ +plus_sym$ +times_sym$ +circle_sym$ +x_symbol_sym$ +triangle_sym$ +circle_plus_sym$ +circle_dot_sym$ +square_concave_sym$ +diamond_sym$ +star5_sym$ +triangle_filled_sym$ +red_cross_sym$ +star_of_david_sym$ +square_filled_sym$ +circle_filled_sym$ +star5_filled_sym$ +qp_symbol_type_name +dflt_draw$ +dflt_set$ +print_page_long_len +print_page_short_len +filled_arrow_head$ +outline_arrow_head$ +qp_arrow_head_type_name +qp_axis_struct +qp_plot_struct +qp_point_struct +qp_rect_struct +qp_text_struct +qp_line_struct +qp_symbol_struct +qp_arrow_struct +qp_state_struct +qp_string_to_enum +qp_enum_to_string + +File: special_functions/asinc.f90 +asinc + +File: special_functions/complex_error_function.f90 +complex_error_function + +File: special_functions/cos_one.f90 +cos_one + +File: special_functions/cosc.f90 +cosc + +File: special_functions/dj_bessel.f90 +dj_bessel + +File: special_functions/elliptic_integral_mod.f90 +elliptic_integral_mod +ellipinc +test_xgelbd +gelbd +rgelbd +elbd +elsbd +elcbd +celbd +serbd +relbd +relsbd +relcbd +rcelbd +rserbd + +File: special_functions/factorial.f90 +factorial + +File: special_functions/gen_complete_elliptic.f90 +gen_complete_elliptic + +File: special_functions/i_bessel.f90 +i_bessel + +File: special_functions/i_bessel_extended.f90 +i_bessel_extended + +File: special_functions/j_bessel.f90 +j_bessel + +File: special_functions/modulo2_mod.f90 +modulo2_mod +modulo2 +procedure +procedure +procedure +modulo2_sp +modulo2_dp +modulo2_int + +File: special_functions/n_choose_k.f90 +n_choose_k + +File: special_functions/sinc.f90 +sinc + +File: special_functions/sincc.f90 +sincc + +File: special_functions/sinhx_x.f90 +sinhx_x + +File: special_functions/sqrt_one.f90 +sqrt_one + +File: string/all_pointer_to_string.f90 +all_pointer_to_string + +File: string/date_and_time_stamp.f90 +date_and_time_stamp + +File: string/djb_hash.f90 +djb_hash + +File: string/djb_str_hash.f90 +djb_str_hash + +File: string/doubleup_quotes.f90 +doubleup_quotes + +File: string/downcase.f90 +downcase + +File: string/downcase_string.f90 +downcase_string + +File: string/index_nocase.f90 +index_nocase + +File: string/indexer_mod.f90 +indexer_mod +indexer +procedure +procedure +procedure +procedure +find_index +procedure +procedure +procedure +procedure +init_str_index_struct +find_index0 +find_index1 +find_index2 +find_index3 +indexer_str +indexer_var_str +indexer_real +indexer_int + +File: string/int_str.f90 +int_str + +File: string/is_alphabetic.f90 +is_alphabetic + +File: string/is_integer.f90 +is_integer + +File: string/is_logical.f90 +is_logical + +File: string/is_real.f90 +is_real + +File: string/location_decode.f90 +location_decode + +File: string/location_encode_mod.f90 +location_encode_mod +location_encode +procedure +procedure +location_encode2 +location_encode1 + +File: string/logic_str.f90 +logic_str + +File: string/make_legal_comment.f90 +make_legal_comment + +File: string/match_reg.f90 +match_reg + +File: string/match_reg_c.c +match_reg_c_ + +File: string/match_wild.f90 +match_wild + +File: string/match_word.f90 +match_word + +File: string/nametable_add.f90 +nametable_add + +File: string/nametable_bracket_indexx.f90 +nametable_bracket_indexx + +File: string/nametable_change1.f90 +nametable_change1 + +File: string/nametable_init.f90 +nametable_init + +File: string/nametable_remove.f90 +nametable_remove + +File: string/ordinal_str.f90 +ordinal_str + +File: string/parse_fortran_format.f90 +parse_fortran_format + +File: string/pointer_to_locations.f90 +pointer_to_locations + +File: string/query_string.f90 +query_string + +File: string/quote.f90 +quote + +File: string/quoten.f90 +quoten + +File: string/real_num_fortran_format.f90 +real_num_fortran_format + +File: string/real_str.f90 +real_str + +File: string/real_to_string.f90 +real_to_string + +File: string/reals_to_string.f90 +reals_to_string + +File: string/reals_to_table_row.f90 +reals_to_table_row + +File: string/str_downcase.f90 +str_downcase + +File: string/str_first_in_set.f90 +str_first_in_set + +File: string/str_first_not_in_set.f90 +str_first_not_in_set + +File: string/str_last_in_set.f90 +str_last_in_set + +File: string/str_last_not_in_set.f90 +str_last_not_in_set + +File: string/str_match_wild.f90 +str_match_wild + +File: string/str_set.f90 +str_set + +File: string/str_substitute.f90 +str_substitute + +File: string/str_upcase.f90 +str_upcase + +File: string/string_to_int.f90 +string_to_int + +File: string/string_to_real.f90 +string_to_real + +File: string/string_trim.f90 +string_trim + +File: string/string_trim2.f90 +string_trim2 + +File: string/substr.f90 +substr + +File: string/to_str.f90 +to_str + +File: string/unquote.f90 +unquote + +File: string/upcase.f90 +upcase + +File: string/upcase_string.f90 +upcase_string + +File: string/var_length_string_mod.f90 +var_length_string_mod +all_equal_var_str + +File: string/word_len.f90 +word_len + +File: string/word_read.f90 +word_read diff --git a/tao/searchf.namelist b/tao/searchf.namelist new file mode 100644 index 0000000000..938e81e9e9 --- /dev/null +++ b/tao/searchf.namelist @@ -0,0 +1,835 @@ + +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_command.f90 +tao_command + +File: code/tao_command_mod.f90 +tao_command_mod +tao_cmd_history_record +tao_re_execute +tao_cmd_split +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 +var_num$ +lat_num$ +data_num$ +ele_num$ +tao_evaluate_lat_or_beam_data +tao_to_phase_and_coupling_reading +tao_get_data +tao_data_coupling_init +tao_evaluate_a_datum +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_evaluate_expression +tao_param_value_routine +tao_evaluate_datum_at_s +tao_evaluate_stack +tao_to_int +tao_set_invalid +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_ele_to_ele_track.f90 +tao_ele_to_ele_track + +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_help.f90 +tao_help + +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 +old_tao_ele_shape_struct +tao_transfer_shape +number_template_plots +tao_setup_default_plotting +default_plot_init +transfer_this_axis +old_style_title_syntax +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_plot_page_test_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_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_no_beam_left +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_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_python_cmd.f90 +tao_python_cmd + +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_flags_for_changed_attribute.f90 +tao_set_flags_for_changed_attribute + +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_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_single_mode.f90 +tao_single_mode + +File: code/tao_spin_matrices_calc_needed.f90 +tao_spin_matrices_calc_needed + +File: code/tao_spin_matrix_calc.f90 +tao_spin_matrix_calc + +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_timer.f90 +tao_timer + +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_top_level.f90 +tao_top_level + +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_write_cmd.f90 +tao_write_cmd + +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_show_this.f90 +tao_show_this + +File: code/tao_spin_polarization_calc.f90 +tao_spin_polarization_calc + +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 +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 +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 +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: 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 diff --git a/tao/version/tao_version_mod.f90 b/tao/version/tao_version_mod.f90 index bdfec2ce40..97e70d83a2 100644 --- a/tao/version/tao_version_mod.f90 +++ b/tao/version/tao_version_mod.f90 @@ -6,5 +6,5 @@ !- module tao_version_mod -character(*), parameter :: tao_version_date = "2023/10/10 11:50:30" +character(*), parameter :: tao_version_date = "2023/10/16 23:05:40" end module diff --git a/util_programs/searchf.namelist b/util_programs/searchf.namelist new file mode 100644 index 0000000000..97cc900895 --- /dev/null +++ b/util_programs/searchf.namelist @@ -0,0 +1,190 @@ + +File: beam_file_translate_format/beam_file_translate_format.f90 +beam_file_translate_format + +File: bmad_to_astra/bmad_to_astra.f90 +bmad_to_astra + +File: bmad_to_blender/bmad_to_blender.f90 +bmad_to_blender + +File: bmad_to_csrtrack/bmad_to_csrtrack.f90 +bmad_to_csrtrack + +File: bmad_to_gpt/bmad_to_gpt.f90 +bmad_to_gpt + +File: bmad_to_mad_sad_elegant/bmad_to_mad_sad_elegant.f90 +bmad_to_mad_sad_elegant + +File: bmad_to_merlin/bmad_to_merlin.f90 +bmad_to_merlin + +File: bmad_to_slicktrack/bmad_to_slicktrack.f90 +bmad_to_slicktrack + +File: cartesian_map_fit/cartesian_map_fit.f90 +cartesian_map_fit + +File: cartesian_map_fit/cartesian_map_fit_mod.f90 +cartesian_map_fit_mod +term_struct +read_field_table +read_cartesian_map_fit_param_file +curl_calc +print_stuff +funcs_lm +funcs_de + +File: compare_tracking_methods_plot/compare_tracking_methods_plot.f90 +compare_tracking_methods_plot +which_box +my_draw_axes +plot_it +create_plot + +File: compare_tracking_methods_text/compare_tracking_methods_text.f90 +compare_tracking_methods_text + +File: controller_response_plot/controller_response_plot.f90 +controller_response_plot + +File: converter_element_modeling/fitter/bmad.cpp +write_bmad_file + +File: converter_element_modeling/fitter/cauchy.cpp +sqr +gsl_to_cauchy_point +asym_cauchy_fit +asym_cauchy_fit + +File: converter_element_modeling/fitter/chisq.cpp +sqr +cauchy_eval + +File: converter_element_modeling/fitter/gnuplot.cpp +output_cauchy_impl +output_cauchy_gp +sqr +integrate +output_meta_cauchy_gp +write_poly_coefs +write_1d_files +output_metafit_gp +output_master_gp + +File: converter_element_modeling/fitter/main.cpp +main + +File: converter_element_modeling/fitter/meta_fit.cpp +fit_to_string +make_junk +rescale +gsl_to_fit +get_real_val + +File: converter_element_modeling/fitter/parser.cpp +convert +parse_config_file + +File: converter_element_modeling/fitter/read_data.cpp +fuzzy_file_open +read_list_data_impl +read_list_data +read_list_data +read_table_data + +File: converter_element_modeling/simulation/main.cpp +signal_handler +main + +File: converter_element_modeling/simulation/src/EventAction.cpp +G4UserEventAction + +File: converter_element_modeling/simulation/src/GeantMain.cpp +Initialize_Geant +run_simulation + +File: converter_element_modeling/simulation/src/PhysListEmPolarized.cpp +G4VPhysicsConstructor + +File: converter_element_modeling/simulation/src/RunAction.cpp +G4UserRunAction + +File: converter_element_modeling/simulation/src/cal_binner.cpp +r_auto_bin + +File: converter_element_modeling/simulation/src/parser.cpp +convert +parse_config_file + +File: converter_element_modeling/simulation/src/point_cache.cpp +p + +File: converter_element_modeling/test_prog/converter_test.f90 +converter_test + +File: element_attributes/element_attributes.f90 +element_attributes + +File: f77_to_f90/f77_to_f90.f90 +f77_to_f90 +convert1 + +File: generalized_gradient_fit/generalized_gradient_fit.f90 +generalized_gradient_fit + +File: generalized_gradient_fit/gg_fit_mod.f90 +gg_fit_mod +gg1_struct +fit_info_struct +b_fit_struct +plot1_struct +m_max +read_field_table +write_binary_field_table +write_ascii_field_table +fit_field +sincos_name +sym_score_calc +write_gg_info +write_gg_bmad +read_gg + +File: lattice_cleaner/lattice_cleaner.f90 +lattice_cleaner + +File: mad_to_bmad/errors_mad_to_bmad.f90 +test + +File: mais_ripken/mais_ripken.f90 +coupling_convert_et2rip + +File: make_a_matching_knob/make_a_matching_knob.f90 +make_a_matching_knob + +File: photon_init_plot/photon_init_plot.f90 +photon_init_plot + +File: photon_surface_plot/photon_surface_data.f90 +photon_surface_data + +File: ptc_flat_file_to_bmad/ptc_to_bmad.f90 +ptc_to_bmad + +File: ptc_profiler/ptc_profiler.f90 +ptc_profiler + +File: rf_field_coef_calc/rf_field_coef_calc.f90 +rf_field_coef_calc + +File: rf_field_coef_calc/rf_field_coef_calc_mod.f90 +rf_field_coef_calc_mod +field_cylinder_values +e_field_calc + +File: sad_to_bmad/sad_to_bmad_postprocess.f90 +sad_to_bmad_postprocess + +File: wake_fit/wake_fit.f90 +wake_fit