Procedures

ProcedureLocationProcedure TypeDescription
add_cross_sectionsstate_to_state_cross_sections_modSubroutine

Add partial cross-sections to accumulated cross-sections

add_scalar_to_diagonalarray_operations_modInterface
alloc_statusutility_functions_modSubroutine

check the status after allocation

allocate_1darray_operations_modInterface
allocate_2darray_operations_modInterface
allocate_3darray_operations_modInterface
appendarray_operations_modInterface
calculate_centrifugal_matrixcentrifugal_matrix_modSubroutine

calculates the (R*2)centrifugal matrix from the second term of Eq. 3 in "What are coupled equations?" section; Matrix elements are given in Eq. 4 and 6 of "Coupling Matrix" secion

calculate_coupling_matrixpropagator_modSubroutine

Combines the contribution from the interaction potential, total and and internal energy (pes_matrix_) with centrifugal matrix \( W_{\mathrm{N}} = V_{\mathrm{N}} + 1/R^{2} L^{2} \)

calculate_diagonal_centrifugal_elementcentrifugal_matrix_modFunction

calculates diagonal element of the centrifgual matrix, see Eq. 4 in "Coupling Matrix" section

calculate_k_matrixboundary_conditions_modSubroutine

calculates the K-matrix from log-derivative matrix using Eq. (4) in "Solution of coupled equations"

calculate_largest_wavevectorchannels_modFunction

Calculates the largest wavevector in the block; called only if there are any open channels

calculate_log_der_matrixpropagator_modSubroutine

calculates the log-derivative matrix from called by numerov at the end of the propagation

calculate_number_of_channels_body_fixedchannels_modSubroutine

calculate number of channels in even and odd parity blocks in the body-fixed frame; in principle, \(\bar{\Omega}\in \langle 0, \mathrm{min}(j, J))), but number of channels additionally depends on the sign of \( p (-1)^{J} \): channels with \(\bar{\Omega}=0\) values enter blocks with \( p (-1)^{J} = + 1 \) only;

calculate_number_of_channels_space_fixedchannels_modSubroutine

calculate number of channels in even and odd parity blocks in the space-fixed frame based on available values of orbital angular momentum: \( l \in \langle |j-J|, j+J \rangle \); parity is defined as \(p= (-1)^{j+l}\)

calculate_number_of_stepschannels_modFunction

Calculates the number of steps on the intermolecular (R) grid in current block. This is done either directly (if r_step > 0) or through the number of steps per half de Broglie wavelength

calculate_offdiagonal_centrifugal_elementcentrifugal_matrix_modFunction

calculates off-diagonal element of the centrifgual matrix, see Eq. 5 in "Coupling Matrix" section

calculate_pes_matrixpes_matrix_modSubroutine

calculates the contribution to the coupling matrix from the the interaction potential (PES); see Eq. 1 in "Coupling Matrix" section; diagonal contribution from wavevectors (see the last term in Eq. 3 of "What are coupled equations" section) is added

calculate_s_matrixboundary_conditions_modSubroutine

calculates S-matrix from open-open portion of the K-matrix using Eq. (12) in "Solution of coupled equations"

calculate_sf_matrix_from_bf_matrixboundary_conditions_modSubroutine

takes as an input matrix in the body-fixed frame and transforms it to the spec-fixed frame; iterates over all matrix elements and calls calculate_single_SF_element

calculate_single_pes_matrix_elementpes_matrix_modFunction

Implementation of Eq. 1 in "Coupling Matrix" section; diagonal contribution from wavevectors (see the last term in Eq. 3 of "What are coupled equations" section) is added

calculate_single_SF_elementboundary_conditions_modSubroutine

calculates a single space-fixed matrix element from Eq. (2) in "Solution of coupled equations"

calculate_state_to_state_cross_sectionstate_to_state_cross_sections_modSubroutine

Calculates all state-to-state cross-sections.

calculate_sum_of_squares_for_each_channelunitarity_check_modSubroutine

calculates the sum \( \sum_{\gamma'} \Bigl|{S}^{Jp}_{\gamma, \gamma'}\Bigr|^{2} \) for all \(\gamma\) channels

calculate_t_matrixpropagator_modSubroutine

Calculates the T-matrix from the coupling matrix at grid point N: \( T_{\mathrm{N}} = h^{2}/12 W_{\mathrm{N}} \)

calculate_u_matrixpropagator_modSubroutine

Calculates the U-matrix from T-matrix at grid point N: \(U_{\mathrm{N}} = 12(\mathbf{I} - 10 T_{\mathrm{N}})^{-1} - 10 \mathbf{I}\)

char_to_lowercaseutility_functions_modFunction

forces lowercase on a single character

check_cross_section_thresholdsstate_to_state_cross_sections_modSubroutine

Checks if the elastic_xs_threshold (threshold for elastic XS) and inelastic_xs_threshold (threshold for inelastic XS) conditions are already fulfilled.

check_namelist_basisinput_validationSubroutine

Check variables read from namelist "basis"

check_namelist_inputinput_validationSubroutine

Check variables read from namelist "input"

check_namelist_potentialinput_validationSubroutine

Check variables read from namelist "potential"

check_nonzero_pes_matrix_elementspes_matrix_modSubroutine

checks the number of non-zero PES matrix elements due to the \bar{\Omega} = \bar{\Omega}' condition, "number_of_nonzero_pes_matrix_elements", and the total number of non-zero algebraic coefficients, \( g_{{\lambda},\gamma,\gamma'}^{Jp} \), in the whole matrix, "number_of_nonzero_algebraic_coefficients".

check_number_of_channelschannels_modSubroutine

check if the number of channels is the same in body-fixed and space-fixed frames

check_unitarity_for_each_channelunitarity_check_modFunction

checks if the calculated sum of squares equals 1 for each channel

compute_imag_componentstate_to_state_cross_sections_modFunction

Computes the imaginary part of the cross-section contribution for given indices.

compute_individual_cross_sectionstate_to_state_cross_sections_modFunction

Calculates cross-section for a given initial and final state.

compute_real_componentstate_to_state_cross_sections_modFunction

Computes the real part of the cross-section contribution for given indices.

count_open_basis_levelsphysics_utilities_modFunction

counts the energetically accessible levels in the basis

count_open_channels_in_blockchannels_modFunction

counts the energetically accessible channels in the given block

delta_for_zero_omegacentrifugal_matrix_modFunction

Checks if the input value equals 0; used in the calculation of off-diagonal elements of the centrifugal matrix; see Eq. 5 in "Coupling Matrix" section

determine_largest_cross_sectionsstate_to_state_cross_sections_modSubroutine

Determine the largest partial elastic and inelastic cross-sections in a given set of cross-sections.

envjspecial_functions_modFunction

utility function used by MSTA1 and MSTA2.

file_io_statusutility_functions_modSubroutine

check the status during various io operations on files

fill_symmetric_matrixarray_operations_modInterface
find_coupling_indexradial_coupling_terms_modFunction

Locates the correct quantum number that describes the v/j coupling. Note that coupling terms are symmetric with respect to the change of pre- and post-collisional quantum numbers.

find_lambda_indexradial_coupling_terms_modFunction

Locates given \(\lambda\) value in legendre_indices.

find_reduced_termradial_coupling_terms_modFunction

Finds and returns the reduced term for the given indices.

float_to_characterutility_functions_modFunction

Converts a floating-point number to a character string.

general_propagation_steppropagator_modSubroutine
get_block_indicesstate_to_state_cross_sections_modFunction

Returns indices from channel_indices_ that match the specified quantum state.

get_radial_coupling_term_valueradial_coupling_terms_modSubroutine

Returns the interpolated value of a specific radial coupling term at a given distance.

handle_coupling_index_errorradial_coupling_terms_modSubroutine

Handles error when the appropriate coupling term is not found.

handle_final_propagation_stepspropagator_modSubroutine

Handles propagation at the last two grid points: R_{N-1} and R_{N}: provides T-matrix at N-1, N and N+1 points and the Ratio matrix at N and N+1 points

handle_lambda_index_errorradial_coupling_terms_modSubroutine

Handles error when \(\lambda\) is not found in legendre_indices.

handle_unitarity_output_messageunitarity_check_modSubroutine

handle printing messages depending on the outcome of unitarity check

incorrect_valueutility_functions_modInterface

interface for the following message: incorrect value encountered: variable_name = variable_value

incorrect_value_chutility_functions_modSubroutine

incorrect value encountered: variable_name = variable_value

incorrect_value_dputility_functions_modSubroutine

incorrect value encountered: variable_name = variable_value

incorrect_value_int32utility_functions_modSubroutine

incorrect value encountered: variable_name = variable_value

incorrect_value_sputility_functions_modSubroutine

incorrect value encountered: variable_name = variable_value

initial_setuppropagator_modSubroutine

Initial setup of the propagator: call centrifugal matrix (kept throughotu the propagation) and other matrices at \(R_{\mathrm{min}}\)

initialize_cross_section_arraysstate_to_state_cross_sections_modSubroutine

allocate arrays keeping accumulated and partial cross-sections in each jtot and parity block

initialize_pes_matrixpes_matrix_modSubroutine

launches "check_nonzero_pes_matrix_elements" and "prepare_pes_matrix_elements" subroutines; called from the main program

input_summaryinput_reader_modSubroutine

summarize the input parameters for the current run

integer_to_characterutility_functions_modFunction

transfers integer to a character

interpolate_radial_coupling_termsradial_coupling_terms_modSubroutine

Interpolates the radial coupling terms using cubic spline functions. The resulting spline coefficients for each coupling term are stored in coupling_terms_b_coeffs, coupling_terms_c_coeffs, and coupling_terms_d_coeffs matrices.

invert_symmetric_matrixarray_operations_modInterface
is_openphysics_utilities_modFunction

checks if a channel/level is energetically accessible (open) by comparing energy with total_energy

is_sum_evenmath_utilities_modFunction

checks if the sum of 3 integers is an even integer

isplinemath_utilities_modFunction

returns interpolated value at guven u_ point number of points and ascending order of x is not checked since ispline is called after "spline" where these checks are done

modified_bessel_k_ratiomath_utilities_modSubroutine

calculates the ratio of the modified Bessel function of the second kind K_{l_ + 1/2}(x) and its first derivative (Eq. 8 in the "Solution of the coupled equations" section) Uses Temme's algorithm [N. M. Temme, J. Comput. Phys. 19 (1975) 324], implemented in "modified_bessel_temme_algorithm" subroutine; Unfortunately, the "ikv" function from special_functions library failed at large x_ values.

modified_bessel_temme_algorithmmath_utilities_modSubroutine

Implementation of the Temme's algorithm [N. M. Temme, J. Comput. Phys. 19 (1975) 324] to calculating modified Bessel functions of the second kind. This is a direct modernization of the "mbessk" subroutine in MOLSCAT: https://github.com/molscat/molscat/blob/master/source_code/rbessk.f

msta1special_functions_modFunction

determines a backward recurrence starting point for Jn(x).

msta2special_functions_modFunction

determines a backward recurrence starting point for Jn(x).

no_open_channels_messageutility_functions_modSubroutine

print a short message that there are no open channels in given block

numerovpropagator_modSubroutine

Renormalized Numerov propagator

p_coeffboundary_conditions_modFunction

calculates the P coefficients from Eq. (3) in "Solution of coupled equations"

percival_seaton_coefficientmath_utilities_modFunction

calculates Percival-Seaton coefficients (body-fixed variant)

prepare_pes_matrix_elementspes_matrix_modSubroutine

-- nonzero_terms_per_element - number of non-vanishing terms in the sum over \(\lambda\) in Eq. 1 in the "Coupling Matrix" section -- nonzero_legendre_indices - corresponding \(\lambda\) value for each non-vanishing coefficient is saved as an index to "legendre_indices" -- nonzero_algebraic_coefficients -- holds all non-vanishing \( g_{{\lambda},\gamma,\gamma'}^{Jp} \) coefficients

prepare_wavevector_arraychannels_modSubroutine

Prepare an array of wavevectors in a given block (in A^2) which are saved in the S-matrix file

print_all_cross_sectionsstate_to_state_cross_sections_modSubroutine

Prints information about cross-sections from provided "cross_sections_" array

print_basic_cross_section_infostate_to_state_cross_sections_modSubroutine

Prints basic information about the largest elastic and inelastic state-to-state xs (print_level <= 2)

print_channelschannels_modSubroutine

prints information about body-fixed channels on screen

print_cross_sections_for_jtotstate_to_state_cross_sections_modSubroutine

Prints information about cross-sections at the end of each total angular momentum (jtot) block

print_detailed_cross_section_infostate_to_state_cross_sections_modSubroutine

Prints detailed information about the largest elastic and inelastic state-to-state xs (print_level >= 3)

print_final_cross_sectionsstate_to_state_cross_sections_modSubroutine

Prints information about cross-sections at the end of the program

print_final_unitarity_warningunitarity_check_modSubroutine

print the final warning that the unitarity check failed in given blocks

print_largest_partial_cross_sectionsstate_to_state_cross_sections_modSubroutine

Print the largest partial elastic and inelastic state-to-state cross-sections in a given block.

print_pes_matrix_elements_summarypes_matrix_modSubroutine

print a shor summary on the number of non-zero matrix elements of the PES matrix

print_pes_quantum_numbersradial_coupling_terms_modSubroutine

Prints quantum numbers describing radial coupling terms of the PES based on the provided set type and column count.

print_short_block_summarychannels_modSubroutine
print_sum_of_squaresunitarity_check_modSubroutine

print S-matrix on screen

process_single_matrix_elementpes_matrix_modSubroutine

calculates the non-zero algebraic coefficients \( g_{{\lambda},\gamma,\gamma'}^{Jp} \) for a single matrix element - see Eq. (1) in the "Coupling matrix" section; algebraic coefficients are saved to nonzero_algebraic_coefficients array; corresponding indices to legendre_indices are saved to nonzero_legendre_indices array

propagator_summarypropagator_modSubroutine

Print a simple message after the propagation is finished

rctjspecial_functions_modSubroutine

computes Riccati-Bessel function of the first kind, and derivatives.

rctyspecial_functions_modSubroutine

computes Riccati-Bessel function of the second kind, and derivatives.

read_and_validate_lambdaradial_coupling_terms_modSubroutine

Reads the value of lambda and compares with expected value.

read_input_fileinput_reader_modSubroutine

reads the input file prepared by the user using NAMELIST feature the code uses 3 namelists: "input", "basis" and "potential"

read_potential_dataradial_coupling_terms_modSubroutine

Reads the intermolecular distance and radial coupling terms formatted in columns by iterating over number of tabulated ]](R\) points. Immediately converts \(R\) and radial coupling terms to a.u.

read_radial_coupling_termsradial_coupling_terms_modSubroutine

Reads the radial coupling terms from the external file. The file is assumed to be formatted as described in "Supplying radial terms" section. The read radial coupling terms are kept in "tabulated_coupling_terms"

reduce_coupling_termsradial_coupling_terms_modSubroutine

Reduces the coupling terms based on the existence of couplings.

reduce_radial_coupling_termsradial_coupling_terms_modSubroutine

Reduces the tabulated_coupling_terms matrix to retain only the necessary coupling terms.

rgammamath_utilities_modFunction

Calculates 1/Gamma(1-X); modernized version of Molscat's rgamma function; see: https://github.com/molscat/molscat/blob/36fa8f93a92f851e9d84245dd6a972e2910541c5/source_code/rbesjy.f --------------------------------------------------------------------!

riccati_bessel_jmath_utilities_modSubroutine

calculates the Riccati-Bessel function of the first kind and its first derivative. Calls the rctj function from special_functions.f90

riccati_bessel_ymath_utilities_modSubroutine

calculates the Riccati-Bessel function of the second kind and its first derivative. Calls the rcty function from special_functions.f90

save_open_basis_levelsphysics_utilities_modSubroutine

saves indices to open levels in the basis and corresponding wavevectors (in A^2)

save_partial_xs_file_headerstate_to_state_cross_sections_modSubroutine

save "header" of the partial cross-sections file: -- label, "itype", number of levels in the basis, reduced mass of the system -- vibrational and rotational quantum numbers -- rovibrational energies -- index pointing to the initial level and the kinetic/total energy

save_partial_xs_single_blockstate_to_state_cross_sections_modSubroutine
save_s_matrix_block_infosave_s_matrix_modSubroutine

save information about current block -- total angular momentum, parity exponent, number of open channels in the current block -- array of indices pointing to the basis arrays, array holding \(l\) values, wavenumbers -- real part of the S-matrix -- imaginary part of the S-matrix

save_s_matrix_file_headersave_s_matrix_modSubroutine

save "header" of the S-matrix file: -- label, "itype", number of levels in the basis, reduced mass of the system -- vibrational and rotational quantum numbers -- rovibrational energies -- index pointing to the initial level and the kinetic/total energy

set_body_fixed_channelschannels_modSubroutine

Prepares the channel_indices array which holds indices that refer to the basis arrays: v1level/j1level/internal_energies, and channels_omega_values which holds values of \bar{\Omega}

set_number_of_channelschannels_modSubroutine

determine the number of scattering channels in each parity block for given total angular momentum in both body-fixed and space-fixed frames

set_space_fixed_channelschannels_modSubroutine

Prepares the channel_l_values array which holds values of orbital angular momentum, \(l\), a space-fixed-frame quantum number.

skip_header_linesradial_coupling_terms_modSubroutine

Skips the first n_skip_lines (read on input) lines in the coupling_terms_file

splinemath_utilities_modSubroutine

determines b, c and d coefficients of the cubic spline function y(x) = y_i + b_i * dx + c_i * dx^2 + d_i * dx^3, where dx = x - x_i, and x_i <= x < x_i+1. The algorithm is based on Gerald, C., and Wheatley, P., "Applied Numerical Analysis", Addison-Wesley, 1994.

sum_cross_section_contributionsstate_to_state_cross_sections_modFunction

Sum the contributions to the cross-section from S-matrix components

time_count_summaryutility_functions_modSubroutine

print the message about the time it took to complete a single task

to_lowercaseutility_functions_modFunction

forces lowercase on given string

total_energyphysics_utilities_modFunction

returns the total energy

triangle_inequality_holdsmath_utilities_modFunction

check if the triangle inequality for 3 variables hols

unitarity_checkunitarity_check_modSubroutine

checks the unitarity of the S-matrix (Eq. (13) in "Solution of coupled equations")

units_conversionphysics_utilities_modSubroutine

converts all physical quantities to atomic units

update_body_fixed_channels_infochannels_modSubroutine

update channel_indices array which holds indices within the loop over level_index_ in set_body_fixed_channels

update_channel_counts_body_fixedchannels_modSubroutine

updates number_of_channels_even and number_of_channels_odd in the body-fixed frame for given \(J\) and \(\bar{Omega}_{max}\)

update_channel_counts_space_fixedchannels_modSubroutine

updates number_of_channels_even and number_of_channels_odd in the space-fixed frame for given range of orbital angular momentum

validate_r_rangeradial_coupling_terms_modSubroutine

Checks if read R values are consistent with r_min and r_max.

wavevector_squared_from_energyphysics_utilities_modFunction

returns the squared wavevector, \(k_{a}^{2}\), given the energy of a given state, \(E_{a}\); calls etot() function; atomic units in the whole function \( k_{a} = \sqrt(2 \mu (E_{tot} - E_{a}) \) since it uses reduced_mass and total_energy(), the function checks if units are already converted

write_channel_linechannels_modSubroutine
write_errorutility_functions_modSubroutine

writes an error message on a chosen unit

write_headerutility_functions_modSubroutine

writes headers on screen

write_messageutility_functions_modSubroutine

writes a message on a chosen unit

write_warningutility_functions_modSubroutine

writes a warning message on a chosen unit

zero_projections_3j_conditionmath_utilities_modFunction

checks the condition for nonvanishing 3-j symbol with zero projections: triangle inequality on x,y,z and if the sum x+y+z is an even integer

call~~graph~~CallGraph proc~propagator_summary propagator_summary proc~write_message write_message proc~propagator_summary->proc~write_message proc~integer_to_character integer_to_character proc~propagator_summary->proc~integer_to_character proc~float_to_character float_to_character proc~propagator_summary->proc~float_to_character proc~check_number_of_channels check_number_of_channels proc~write_error write_error proc~check_number_of_channels->proc~write_error proc~check_number_of_channels->proc~integer_to_character interface~invert_symmetric_matrix invert_symmetric_matrix proc~update_channel_counts_space_fixed update_channel_counts_space_fixed proc~print_final_cross_sections print_final_cross_sections proc~print_all_cross_sections print_all_cross_sections proc~print_final_cross_sections->proc~print_all_cross_sections proc~print_final_cross_sections->proc~write_message interface~fill_symmetric_matrix fill_symmetric_matrix proc~find_coupling_index find_coupling_index proc~set_body_fixed_channels set_body_fixed_channels proc~update_body_fixed_channels_info update_body_fixed_channels_info proc~set_body_fixed_channels->proc~update_body_fixed_channels_info proc~print_detailed_cross_section_info print_detailed_cross_section_info proc~print_detailed_cross_section_info->proc~write_message proc~print_detailed_cross_section_info->proc~integer_to_character proc~calculate_coupling_matrix calculate_coupling_matrix proc~handle_coupling_index_error handle_coupling_index_error proc~handle_coupling_index_error->proc~write_error proc~handle_coupling_index_error->proc~integer_to_character proc~set_space_fixed_channels set_space_fixed_channels proc~set_space_fixed_channels->proc~write_error proc~prepare_pes_matrix_elements prepare_pes_matrix_elements proc~process_single_matrix_element process_single_matrix_element proc~prepare_pes_matrix_elements->proc~process_single_matrix_element proc~print_cross_sections_for_jtot print_cross_sections_for_jtot proc~print_cross_sections_for_jtot->proc~print_all_cross_sections proc~print_cross_sections_for_jtot->proc~write_message proc~total_energy total_energy proc~print_cross_sections_for_jtot->proc~total_energy proc~print_cross_sections_for_jtot->proc~integer_to_character proc~print_cross_sections_for_jtot->proc~float_to_character proc~input_summary input_summary proc~input_summary->proc~write_message proc~input_summary->proc~total_energy proc~input_summary->proc~integer_to_character proc~input_summary->proc~float_to_character proc~calculate_k_matrix calculate_k_matrix proc~is_open is_open proc~calculate_k_matrix->proc~is_open proc~wavevector_squared_from_energy wavevector_squared_from_energy proc~calculate_k_matrix->proc~wavevector_squared_from_energy proc~riccati_bessel_j riccati_bessel_j proc~calculate_k_matrix->proc~riccati_bessel_j proc~riccati_bessel_y riccati_bessel_y proc~calculate_k_matrix->proc~riccati_bessel_y proc~modified_bessel_k_ratio modified_bessel_k_ratio proc~calculate_k_matrix->proc~modified_bessel_k_ratio dgesv dgesv proc~calculate_k_matrix->dgesv dgemm dgemm proc~calculate_k_matrix->dgemm proc~check_unitarity_for_each_channel check_unitarity_for_each_channel proc~update_body_fixed_channels_info->proc~write_error proc~read_input_file read_input_file proc~read_input_file->proc~input_summary proc~read_input_file->proc~write_message interface~allocate_1d allocate_1d proc~read_input_file->interface~allocate_1d interface~allocate_3d allocate_3d proc~read_input_file->interface~allocate_3d proc~file_io_status file_io_status proc~read_input_file->proc~file_io_status proc~check_namelist_basis check_namelist_basis proc~read_input_file->proc~check_namelist_basis proc~check_namelist_input check_namelist_input proc~read_input_file->proc~check_namelist_input proc~to_lowercase to_lowercase proc~read_input_file->proc~to_lowercase proc~check_namelist_potential check_namelist_potential proc~read_input_file->proc~check_namelist_potential proc~initialize_pes_matrix initialize_pes_matrix proc~initialize_pes_matrix->proc~prepare_pes_matrix_elements proc~check_nonzero_pes_matrix_elements check_nonzero_pes_matrix_elements proc~initialize_pes_matrix->proc~check_nonzero_pes_matrix_elements proc~initialize_pes_matrix->interface~allocate_1d proc~print_pes_matrix_elements_summary print_pes_matrix_elements_summary proc~initialize_pes_matrix->proc~print_pes_matrix_elements_summary proc~time_count_summary time_count_summary proc~initialize_pes_matrix->proc~time_count_summary proc~prepare_wavevector_array prepare_wavevector_array proc~prepare_wavevector_array->proc~write_error proc~prepare_wavevector_array->proc~is_open proc~prepare_wavevector_array->proc~wavevector_squared_from_energy proc~zero_projections_3j_condition zero_projections_3j_condition proc~check_nonzero_pes_matrix_elements->proc~zero_projections_3j_condition proc~calculate_t_matrix calculate_t_matrix proc~unitarity_check unitarity_check proc~unitarity_check->proc~check_unitarity_for_each_channel proc~calculate_sum_of_squares_for_each_channel calculate_sum_of_squares_for_each_channel proc~unitarity_check->proc~calculate_sum_of_squares_for_each_channel proc~handle_unitarity_output_message handle_unitarity_output_message proc~unitarity_check->proc~handle_unitarity_output_message proc~unitarity_check->proc~write_message proc~print_all_cross_sections->proc~write_message proc~print_all_cross_sections->proc~total_energy proc~print_sum_of_squares print_sum_of_squares proc~handle_unitarity_output_message->proc~print_sum_of_squares proc~handle_unitarity_output_message->proc~write_message proc~write_warning write_warning proc~handle_unitarity_output_message->proc~write_warning proc~msta1 msta1 proc~envj envj proc~msta1->proc~envj proc~count_open_channels_in_block count_open_channels_in_block proc~count_open_channels_in_block->proc~is_open proc~save_partial_xs_file_header save_partial_xs_file_header proc~save_partial_xs_file_header->proc~write_message proc~save_partial_xs_file_header->proc~file_io_status proc~process_single_matrix_element->proc~zero_projections_3j_condition proc~percival_seaton_coefficient percival_seaton_coefficient proc~process_single_matrix_element->proc~percival_seaton_coefficient proc~save_partial_xs_single_block save_partial_xs_single_block proc~save_partial_xs_single_block->proc~write_message proc~save_partial_xs_single_block->proc~total_energy proc~calculate_offdiagonal_centrifugal_element calculate_offdiagonal_centrifugal_element proc~print_short_block_summary print_short_block_summary proc~print_short_block_summary->proc~write_message proc~print_short_block_summary->proc~integer_to_character proc~print_sum_of_squares->proc~write_message proc~print_sum_of_squares->proc~integer_to_character proc~print_sum_of_squares->proc~float_to_character proc~determine_largest_cross_sections determine_largest_cross_sections proc~print_final_unitarity_warning print_final_unitarity_warning proc~print_final_unitarity_warning->proc~write_message proc~print_final_unitarity_warning->proc~integer_to_character proc~calculate_centrifugal_matrix calculate_centrifugal_matrix proc~calculate_centrifugal_matrix->interface~fill_symmetric_matrix proc~calculate_centrifugal_matrix->proc~calculate_offdiagonal_centrifugal_element proc~calculate_diagonal_centrifugal_element calculate_diagonal_centrifugal_element proc~calculate_centrifugal_matrix->proc~calculate_diagonal_centrifugal_element proc~delta_for_zero_omega delta_for_zero_omega proc~calculate_centrifugal_matrix->proc~delta_for_zero_omega proc~calculate_s_matrix calculate_s_matrix proc~calculate_s_matrix->interface~invert_symmetric_matrix proc~calculate_s_matrix->interface~fill_symmetric_matrix proc~calculate_s_matrix->dgemm interface~incorrect_value incorrect_value proc~incorrect_value_ch incorrect_value_ch interface~incorrect_value->proc~incorrect_value_ch proc~incorrect_value_int32 incorrect_value_int32 interface~incorrect_value->proc~incorrect_value_int32 proc~incorrect_value_dp incorrect_value_dp interface~incorrect_value->proc~incorrect_value_dp proc~incorrect_value_sp incorrect_value_sp interface~incorrect_value->proc~incorrect_value_sp proc~calculate_u_matrix calculate_u_matrix proc~calculate_u_matrix->interface~invert_symmetric_matrix proc~calculate_u_matrix->interface~fill_symmetric_matrix interface~add_scalar_to_diagonal add_scalar_to_diagonal proc~calculate_u_matrix->interface~add_scalar_to_diagonal proc~check_cross_section_thresholds check_cross_section_thresholds proc~calculate_largest_wavevector calculate_largest_wavevector proc~calculate_largest_wavevector->proc~is_open proc~calculate_largest_wavevector->proc~wavevector_squared_from_energy proc~write_warning->proc~write_message proc~calculate_log_der_matrix calculate_log_der_matrix proc~calculate_log_der_matrix->interface~invert_symmetric_matrix proc~calculate_log_der_matrix->interface~fill_symmetric_matrix proc~calculate_log_der_matrix->interface~add_scalar_to_diagonal proc~calculate_log_der_matrix->dgemm proc~calculate_number_of_steps calculate_number_of_steps interface~allocate_2d allocate_2d proc~no_open_channels_message no_open_channels_message proc~no_open_channels_message->proc~write_message proc~no_open_channels_message->proc~integer_to_character proc~print_pes_matrix_elements_summary->proc~write_message proc~print_pes_matrix_elements_summary->proc~integer_to_character proc~triangle_inequality_holds triangle_inequality_holds proc~zero_projections_3j_condition->proc~triangle_inequality_holds proc~is_sum_even is_sum_even proc~zero_projections_3j_condition->proc~is_sum_even proc~write_error->proc~write_message proc~print_channels print_channels proc~print_channels->proc~write_message proc~write_channel_line write_channel_line proc~print_channels->proc~write_channel_line proc~print_channels->proc~is_open proc~print_channels->proc~wavevector_squared_from_energy proc~write_header write_header proc~write_header->interface~incorrect_value proc~write_header->proc~write_message proc~write_header->proc~write_error proc~units_conversion units_conversion proc~time_count_summary->proc~write_message proc~calculate_state_to_state_cross_section calculate_state_to_state_cross_section proc~calculate_state_to_state_cross_section->proc~time_count_summary proc~compute_individual_cross_section compute_individual_cross_section proc~calculate_state_to_state_cross_section->proc~compute_individual_cross_section proc~incorrect_value_ch->proc~write_error proc~write_channel_line->proc~write_message interface~append append proc~alloc_status alloc_status proc~alloc_status->proc~write_error proc~calculate_pes_matrix calculate_pes_matrix proc~calculate_pes_matrix->interface~fill_symmetric_matrix proc~calculate_single_pes_matrix_element calculate_single_pes_matrix_element proc~calculate_pes_matrix->proc~calculate_single_pes_matrix_element proc~invert_symmetric_matrix_dp invert_symmetric_matrix_dp proc~invert_symmetric_matrix_dp->proc~write_message proc~invert_symmetric_matrix_dp->proc~write_error proc~invert_symmetric_matrix_dp->proc~integer_to_character dsytri dsytri proc~invert_symmetric_matrix_dp->dsytri dsytrf dsytrf proc~invert_symmetric_matrix_dp->dsytrf proc~allocate_1d_sp allocate_1d_sp proc~invert_symmetric_matrix_sp invert_symmetric_matrix_sp proc~invert_symmetric_matrix_sp->proc~write_message proc~invert_symmetric_matrix_sp->proc~write_error proc~invert_symmetric_matrix_sp->proc~integer_to_character ssytrf ssytrf proc~invert_symmetric_matrix_sp->ssytrf ssytri ssytri proc~invert_symmetric_matrix_sp->ssytri proc~allocate_1d_int32 allocate_1d_int32 proc~file_io_status->proc~write_error proc~file_io_status->proc~integer_to_character proc~incorrect_value_int32->proc~write_error proc~invert_symmetric_matrix_int32 invert_symmetric_matrix_int32 proc~invert_symmetric_matrix_int32->proc~write_error proc~allocate_2d_int32 allocate_2d_int32 proc~allocate_1d_dp allocate_1d_dp proc~allocate_2d_sp allocate_2d_sp proc~calculate_single_pes_matrix_element->proc~wavevector_squared_from_energy proc~get_radial_coupling_term_value get_radial_coupling_term_value proc~calculate_single_pes_matrix_element->proc~get_radial_coupling_term_value proc~check_namelist_basis->interface~incorrect_value proc~check_namelist_basis->proc~integer_to_character proc~is_open->proc~total_energy proc~wavevector_squared_from_energy->proc~write_error proc~wavevector_squared_from_energy->proc~total_energy proc~incorrect_value_dp->proc~write_error proc~allocate_2d_dp allocate_2d_dp proc~count_open_basis_levels count_open_basis_levels proc~count_open_basis_levels->proc~is_open proc~save_open_basis_levels save_open_basis_levels proc~save_open_basis_levels->interface~allocate_1d proc~save_open_basis_levels->proc~is_open proc~save_open_basis_levels->proc~wavevector_squared_from_energy proc~find_lambda_index find_lambda_index proc~allocate_3d_int32 allocate_3d_int32 proc~sum_cross_section_contributions sum_cross_section_contributions proc~compute_real_component compute_real_component proc~sum_cross_section_contributions->proc~compute_real_component proc~compute_imag_component compute_imag_component proc~sum_cross_section_contributions->proc~compute_imag_component proc~initialize_cross_section_arrays initialize_cross_section_arrays proc~initialize_cross_section_arrays->interface~allocate_1d proc~compute_individual_cross_section->proc~sum_cross_section_contributions proc~get_block_indices get_block_indices proc~compute_individual_cross_section->proc~get_block_indices proc~incorrect_value_sp->proc~write_error proc~allocate_3d_sp allocate_3d_sp proc~add_scalar_to_diagonal_int32 add_scalar_to_diagonal_int32 proc~allocate_3d_dp allocate_3d_dp proc~check_namelist_input->interface~incorrect_value proc~check_namelist_input->proc~write_message proc~check_namelist_input->proc~write_error proc~check_namelist_input->proc~to_lowercase proc~check_namelist_input->proc~integer_to_character proc~char_to_lowercase char_to_lowercase proc~to_lowercase->proc~char_to_lowercase proc~add_scalar_to_diagonal_dp add_scalar_to_diagonal_dp fwig3jj fwig3jj proc~percival_seaton_coefficient->fwig3jj proc~add_scalar_to_diagonal_sp add_scalar_to_diagonal_sp proc~check_namelist_potential->interface~incorrect_value proc~check_namelist_potential->proc~integer_to_character proc~get_radial_coupling_term_value->proc~find_coupling_index proc~get_radial_coupling_term_value->proc~handle_coupling_index_error proc~get_radial_coupling_term_value->proc~find_lambda_index proc~ispline ispline proc~get_radial_coupling_term_value->proc~ispline proc~handle_lambda_index_error handle_lambda_index_error proc~get_radial_coupling_term_value->proc~handle_lambda_index_error proc~append_sp append_sp proc~riccati_bessel_j->proc~write_warning proc~riccati_bessel_j->proc~integer_to_character proc~rctj rctj proc~riccati_bessel_j->proc~rctj proc~riccati_bessel_y->proc~write_warning proc~riccati_bessel_y->proc~integer_to_character proc~rcty rcty proc~riccati_bessel_y->proc~rcty proc~read_potential_data read_potential_data proc~initial_setup initial_setup proc~initial_setup->proc~calculate_coupling_matrix proc~initial_setup->proc~calculate_t_matrix proc~initial_setup->proc~calculate_centrifugal_matrix proc~initial_setup->proc~calculate_u_matrix proc~initial_setup->proc~calculate_pes_matrix proc~rctj->proc~msta1 proc~msta2 msta2 proc~rctj->proc~msta2 proc~numerov numerov proc~numerov->proc~propagator_summary proc~numerov->proc~calculate_log_der_matrix proc~numerov->proc~time_count_summary proc~numerov->proc~initial_setup proc~general_propagation_step general_propagation_step proc~numerov->proc~general_propagation_step proc~handle_final_propagation_steps handle_final_propagation_steps proc~numerov->proc~handle_final_propagation_steps proc~modified_bessel_temme_algorithm modified_bessel_temme_algorithm proc~modified_bessel_k_ratio->proc~modified_bessel_temme_algorithm proc~find_reduced_term find_reduced_term proc~modified_bessel_temme_algorithm->proc~write_error proc~rgamma rgamma proc~modified_bessel_temme_algorithm->proc~rgamma proc~reduce_radial_coupling_terms reduce_radial_coupling_terms proc~reduce_radial_coupling_terms->proc~write_message proc~reduce_radial_coupling_terms->proc~integer_to_character proc~print_pes_quantum_numbers print_pes_quantum_numbers proc~reduce_radial_coupling_terms->proc~print_pes_quantum_numbers proc~reduce_coupling_terms reduce_coupling_terms proc~reduce_radial_coupling_terms->proc~reduce_coupling_terms proc~general_propagation_step->interface~invert_symmetric_matrix proc~general_propagation_step->interface~fill_symmetric_matrix proc~general_propagation_step->proc~calculate_coupling_matrix proc~general_propagation_step->proc~calculate_t_matrix proc~general_propagation_step->proc~calculate_u_matrix proc~general_propagation_step->proc~calculate_pes_matrix proc~append_int32 append_int32 proc~print_pes_quantum_numbers->proc~write_message proc~print_pes_quantum_numbers->proc~integer_to_character proc~handle_final_propagation_steps->proc~general_propagation_step proc~calculate_sf_matrix_from_bf_matrix calculate_sf_matrix_from_bf_matrix proc~calculate_single_sf_element calculate_single_SF_element proc~calculate_sf_matrix_from_bf_matrix->proc~calculate_single_sf_element proc~fill_symmetric_matrix_sp fill_symmetric_matrix_sp proc~fill_symmetric_matrix_sp->proc~write_message proc~fill_symmetric_matrix_sp->proc~write_error proc~fill_symmetric_matrix_sp->proc~to_lowercase proc~fill_symmetric_matrix_sp->proc~integer_to_character proc~reduce_coupling_terms->proc~find_reduced_term proc~save_s_matrix_file_header save_s_matrix_file_header proc~save_s_matrix_file_header->proc~file_io_status proc~validate_r_range validate_r_range proc~validate_r_range->proc~write_error proc~validate_r_range->proc~float_to_character proc~save_s_matrix_block_info save_s_matrix_block_info proc~fill_symmetric_matrix_dp fill_symmetric_matrix_dp proc~fill_symmetric_matrix_dp->proc~write_message proc~fill_symmetric_matrix_dp->proc~write_error proc~fill_symmetric_matrix_dp->proc~to_lowercase proc~fill_symmetric_matrix_dp->proc~integer_to_character proc~fill_symmetric_matrix_int32 fill_symmetric_matrix_int32 proc~fill_symmetric_matrix_int32->proc~write_message proc~fill_symmetric_matrix_int32->proc~write_error proc~fill_symmetric_matrix_int32->proc~to_lowercase proc~fill_symmetric_matrix_int32->proc~integer_to_character proc~interpolate_radial_coupling_terms interpolate_radial_coupling_terms proc~spline spline proc~interpolate_radial_coupling_terms->proc~spline proc~add_cross_sections add_cross_sections proc~ispline->proc~write_warning proc~ispline->proc~float_to_character proc~msta2->proc~envj proc~handle_lambda_index_error->proc~write_error proc~handle_lambda_index_error->proc~integer_to_character proc~spline->proc~write_error proc~spline->proc~integer_to_character proc~set_number_of_channels set_number_of_channels proc~set_number_of_channels->proc~check_number_of_channels proc~calculate_number_of_channels_body_fixed calculate_number_of_channels_body_fixed proc~set_number_of_channels->proc~calculate_number_of_channels_body_fixed proc~calculate_number_of_channels_space_fixed calculate_number_of_channels_space_fixed proc~set_number_of_channels->proc~calculate_number_of_channels_space_fixed proc~update_channel_counts_body_fixed update_channel_counts_body_fixed proc~calculate_number_of_channels_body_fixed->proc~update_channel_counts_body_fixed proc~read_and_validate_lambda read_and_validate_lambda proc~read_and_validate_lambda->proc~write_error proc~read_and_validate_lambda->proc~integer_to_character proc~print_largest_partial_cross_sections print_largest_partial_cross_sections proc~print_largest_partial_cross_sections->proc~print_detailed_cross_section_info proc~print_basic_cross_section_info print_basic_cross_section_info proc~print_largest_partial_cross_sections->proc~print_basic_cross_section_info proc~p_coeff p_coeff proc~p_coeff->fwig3jj proc~append_dp append_dp proc~calculate_single_sf_element->proc~p_coeff proc~calculate_number_of_channels_space_fixed->proc~update_channel_counts_space_fixed proc~skip_header_lines skip_header_lines proc~read_radial_coupling_terms read_radial_coupling_terms proc~read_radial_coupling_terms->proc~file_io_status proc~read_radial_coupling_terms->proc~read_potential_data proc~read_radial_coupling_terms->proc~validate_r_range proc~read_radial_coupling_terms->proc~read_and_validate_lambda proc~read_radial_coupling_terms->proc~skip_header_lines proc~print_basic_cross_section_info->proc~write_message proc~print_basic_cross_section_info->proc~integer_to_character proc~print_basic_cross_section_info->proc~float_to_character program~scattering SCATTERING program~scattering->proc~print_final_cross_sections program~scattering->proc~set_body_fixed_channels program~scattering->proc~set_space_fixed_channels program~scattering->proc~print_cross_sections_for_jtot program~scattering->proc~calculate_k_matrix program~scattering->proc~read_input_file program~scattering->proc~initialize_pes_matrix program~scattering->proc~prepare_wavevector_array program~scattering->proc~unitarity_check program~scattering->proc~count_open_channels_in_block program~scattering->proc~save_partial_xs_file_header program~scattering->proc~save_partial_xs_single_block program~scattering->proc~print_short_block_summary program~scattering->proc~determine_largest_cross_sections program~scattering->proc~print_final_unitarity_warning program~scattering->proc~calculate_s_matrix program~scattering->proc~write_message program~scattering->proc~check_cross_section_thresholds program~scattering->proc~calculate_largest_wavevector program~scattering->proc~calculate_number_of_steps program~scattering->interface~allocate_2d program~scattering->interface~allocate_1d program~scattering->proc~no_open_channels_message program~scattering->proc~print_channels program~scattering->proc~write_header program~scattering->proc~units_conversion program~scattering->proc~time_count_summary program~scattering->proc~calculate_state_to_state_cross_section program~scattering->interface~append program~scattering->proc~count_open_basis_levels program~scattering->proc~save_open_basis_levels program~scattering->proc~initialize_cross_section_arrays program~scattering->proc~numerov program~scattering->proc~reduce_radial_coupling_terms program~scattering->proc~calculate_sf_matrix_from_bf_matrix program~scattering->proc~save_s_matrix_file_header program~scattering->proc~save_s_matrix_block_info program~scattering->proc~interpolate_radial_coupling_terms program~scattering->proc~add_cross_sections program~scattering->proc~set_number_of_channels program~scattering->proc~print_largest_partial_cross_sections program~scattering->proc~read_radial_coupling_terms fwig_table_init fwig_table_init program~scattering->fwig_table_init fwig_temp_init fwig_temp_init program~scattering->fwig_temp_init fwig_temp_free fwig_temp_free program~scattering->fwig_temp_free fwig_table_free fwig_table_free program~scattering->fwig_table_free
Help