This module contains subroutines that check the unitarity condition of the S-matrix (see Eq. (13) in "Solution of coupled equations").
checks if the calculated sum of squares equals 1 for each channel
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | sum_of_squares(:) |
\(\sum_{\gamma'} \Bigl|{S}^{Jp}_{\gamma, \gamma'}\Bigr|^{2}\) |
(output) if .true. unitarity is fulfilled, .false. otherwise
print the final warning that the unitarity check failed in given blocks
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | list_of_blocks(:) |
array holding values of total angular momenta, for which unitarity condition is not fulfilled |
checks the unitarity of the S-matrix (Eq. (13) 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) | :: | s_matrix_real(number_of_open_channels,number_of_open_channels) |
real part of the S-matrix |
||
real(kind=dp), | intent(in) | :: | s_matrix_imag(number_of_open_channels,number_of_open_channels) |
imaginary part of the S-matrix |
||
logical, | intent(inout) | :: | is_unitary |
(output) if .true. unitarity is fulfilled, .false. otherwise |
calculates the sum \( \sum_{\gamma'} \Bigl|{S}^{Jp}_{\gamma, \gamma'}\Bigr|^{2} \) for all \(\gamma\) channels
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | s_matrix_real(:,:) |
real part of the S-matrix |
||
real(kind=dp), | intent(in) | :: | s_matrix_imag(:,:) |
imaginary part of the S-matrix |
||
real(kind=dp), | intent(out) | :: | sum_of_squares_(:) |
(output) \( \sum_{\gamma'} \Bigl|{S}^{Jp}_{\gamma, \gamma'}\Bigr|^{2} \) |
handle printing messages depending on the outcome of unitarity check
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
logical, | intent(in) | :: | is_unitary |
if .true. unitarity is fulfilled, .false. otherwise |
||
real(kind=dp), | intent(in) | :: | sum_of_squares(:) |
array holding \(\sum_{\gamma^{\prime}}|S_{\gamma,\gamma^{\prime}}|^{2}\) for each \(\gamma\) |
print S-matrix on screen
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | sum_of_squares(:) |
array holding \(\sum_{\gamma^{\prime}}|S_{\gamma,\gamma^{\prime}}|^{2}\) for each \(\gamma\) |