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}\)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | total_angular_momentum_ |
total angular momentum |
||
integer(kind=int32), | intent(inout) | :: | number_of_channels_even_parity_block |
number of channels in the p = 1 (even parity) block |
||
integer(kind=int32), | intent(inout) | :: | 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 | :: | l_max_ | ||||
integer(kind=int32), | private | :: | l_min_ | ||||
integer(kind=int32), | private | :: | level_index_ |
subroutine calculate_number_of_channels_space_fixed( &
total_angular_momentum_, number_of_channels_even_parity_block, &
number_of_channels_odd_parity_block)
!! 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}\\)
!---------------------------------------------------------------------!
integer(int32), intent(in) :: total_angular_momentum_
!! total angular momentum
integer(int32), intent(inout) :: number_of_channels_even_parity_block
!! number of channels in the p = 1 (even parity) block
integer(int32), intent(inout) :: number_of_channels_odd_parity_block
!! number of channels in the p = -1 (odd parity) block
!---------------------------------------------------------------------!
integer(int32) :: level_index_, l_min_, l_max_
!---------------------------------------------------------------------!
number_of_channels_even_parity_block = 0
number_of_channels_odd_parity_block = 0
do level_index_ = 1, number_of_basis_levels
l_min_ = abs(total_angular_momentum_ - rot_levels(level_index_))
l_max_ = total_angular_momentum_ + rot_levels(level_index_)
call update_channel_counts_space_fixed(l_min_, l_max_, &
level_index_, number_of_channels_even_parity_block, &
number_of_channels_odd_parity_block)
end do
!---------------------------------------------------------------------!
end subroutine calculate_number_of_channels_space_fixed