determine the number of scattering channels in each parity block for given total angular momentum in both body-fixed and space-fixed frames
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | total_angular_momentum_ |
total angular momentum |
||
integer(kind=int32), | intent(out) | :: | number_of_channels_even_parity_block |
number of channels in the p = 1 (even parity) block |
||
integer(kind=int32), | intent(out) | :: | number_of_channels_odd_parity_block |
number of channels in the p = -1 (odd parity) block |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=int32), | private | :: | number_of_channels_even_parity_block_sf | ||||
integer(kind=int32), | private | :: | number_of_channels_odd_parity_block_sf |
subroutine set_number_of_channels(total_angular_momentum_, &
number_of_channels_even_parity_block, number_of_channels_odd_parity_block)
!! determine the number of scattering channels in each parity block
!! for given total angular momentum in both body-fixed and
!! space-fixed frames
!---------------------------------------------------------------------!
integer(int32), intent(in) :: total_angular_momentum_
!! total angular momentum
integer(int32), intent(out) :: number_of_channels_even_parity_block
!! number of channels in the p = 1 (even parity) block
integer(int32), intent(out) :: number_of_channels_odd_parity_block
!! number of channels in the p = -1 (odd parity) block
!---------------------------------------------------------------------!
integer(int32) :: number_of_channels_even_parity_block_sf, &
number_of_channels_odd_parity_block_sf
!---------------------------------------------------------------------!
! body-fixed frame
!---------------------------------------------------------------------!
call calculate_number_of_channels_body_fixed(total_angular_momentum_, &
number_of_channels_even_parity_block, number_of_channels_odd_parity_block)
!---------------------------------------------------------------------!
! space-fixed frame
!---------------------------------------------------------------------!
call calculate_number_of_channels_space_fixed(total_angular_momentum_, &
number_of_channels_even_parity_block_sf, number_of_channels_odd_parity_block_sf)
!---------------------------------------------------------------------!
! Check if the number of channels is the same
!---------------------------------------------------------------------!
call check_number_of_channels(number_of_channels_even_parity_block, &
number_of_channels_even_parity_block_sf, "even")
call check_number_of_channels(number_of_channels_odd_parity_block, &
number_of_channels_odd_parity_block_sf, "odd")
!---------------------------------------------------------------------!
end subroutine set_number_of_channels