This module contains subroutines that transform the asymptotic log-derivative matrix into the scattering S-matrix (see "Solution of coupled equations" section).
calculates the P coefficients from Eq. (3) in "Solution of coupled equations"
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | total_angular_momentum_ |
total angular momentum |
||
integer(kind=int32), | intent(in) | :: | j_ |
rotational quantum number |
||
integer(kind=int32), | intent(in) | :: | l_ |
orbital angular momentum |
||
integer(kind=int32), | intent(in) | :: | omega_ |
projection of j on the BF-Z axis |
result - P function (Eq. (3) in "Solution of coupled equations")
calculates the K-matrix from log-derivative matrix using Eq. (4) in "Solution of coupled equations"
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | number_of_channels |
y-matrix is of number_of_channels x number_of_channels size |
||
real(kind=dp), | intent(in) | :: | log_der_matrix(number_of_channels,number_of_channels) |
asymptotic log-derivative matrix |
||
integer(kind=int32), | intent(in) | :: | number_of_open_channels |
number of open channels |
||
integer(kind=int32), | intent(in) | :: | channel_indices(number_of_channels) |
holds the indices pointing to the basis arrays |
||
integer(kind=int32), | intent(in) | :: | channel_l_values(number_of_channels) |
holds all values of l |
||
real(kind=dp), | intent(in) | :: | r_ |
r_max |
||
real(kind=dp), | intent(inout) | :: | k_matrix(number_of_open_channels,number_of_open_channels) |
K-matrix |
calculates S-matrix from open-open portion of the K-matrix using Eq. (12) in "Solution of coupled equations"
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | number_of_open_channels |
number of open channels |
||
real(kind=dp), | intent(in) | :: | k_matrix(number_of_open_channels,number_of_open_channels) |
K-matrix |
||
real(kind=dp), | intent(inout) | :: | s_matrix_real(number_of_open_channels,number_of_open_channels) |
(output) real part of the S-matrix |
||
real(kind=dp), | intent(inout) | :: | s_matrix_imag(number_of_open_channels,number_of_open_channels) |
(output) imaginary part of the S-matrix |
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
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | number_of_channels |
size of the basis |
||
integer(kind=int32), | intent(in) | :: | total_angular_momentum_ |
total angular momentum |
||
integer(kind=int32), | intent(in) | :: | channel_indices(number_of_channels) |
holds the indices pointing to the basis arrays |
||
integer(kind=int32), | intent(in) | :: | channels_omega_values(number_of_channels) |
holds all values of \bar{\Omega} |
||
integer(kind=int32), | intent(in) | :: | channel_l_values(number_of_channels) |
holds all values of l |
||
real(kind=dp), | intent(in) | :: | bf_matrix(number_of_channels,number_of_channels) |
matrix in the BF frame |
||
real(kind=dp), | intent(inout) | :: | sf_matrix(number_of_channels,number_of_channels) |
(output) matrix in the SF frame |
calculates a single space-fixed matrix element from Eq. (2) in "Solution of coupled equations"
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | number_of_channels |
size of the basis |
||
integer(kind=int32), | intent(in) | :: | total_angular_momentum_ |
total angular momentum |
||
integer(kind=int32), | intent(in) | :: | v_ |
vibrational and rotational quantum numbers |
||
integer(kind=int32), | intent(in) | :: | j_ |
vibrational and rotational quantum numbers |
||
integer(kind=int32), | intent(in) | :: | vp_ |
vibrational and rotational quantum numbers |
||
integer(kind=int32), | intent(in) | :: | jp_ |
vibrational and rotational quantum numbers |
||
integer(kind=int32), | intent(in) | :: | l_ |
orbital angular momenta |
||
integer(kind=int32), | intent(in) | :: | lp_ |
orbital angular momenta |
||
integer(kind=int32), | intent(in) | :: | channel_indices(number_of_channels) |
holds the indices pointing to the basis arrays |
||
integer(kind=int32), | intent(in) | :: | channels_omega_values(number_of_channels) |
holds all values of \bar{\Omega} |
||
real(kind=dp), | intent(in) | :: | bf_matrix(number_of_channels,number_of_channels) |
matrix in the BF frame |
||
real(kind=dp), | intent(out) | :: | sf_element |
(output) matrix element in the SF frame |