updates number_of_channels_even and number_of_channels_odd in the body-fixed frame for given \(J\) and \(\bar{Omega}_{max}\)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=int32), | intent(in) | :: | omega_max_ |
largest value of \(\bar{\Omega}\), for given rotational and total angular momenta |
||
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 for the p = 1 block |
||
integer(kind=int32), | intent(inout) | :: | number_of_channels_odd_parity_block |
number of channels for the p = -1 block |
subroutine update_channel_counts_body_fixed(omega_max_, &
total_angular_momentum_, number_of_channels_even_parity_block, &
number_of_channels_odd_parity_block)
!! updates number_of_channels_even and number_of_channels_odd
!! in the body-fixed frame for given \\(J\\) and \\(\bar{Omega}_{max}\\)
!---------------------------------------------------------------------!
integer(int32), intent(in) :: omega_max_
!! largest value of \\(\bar{\Omega}\\), for given
!! rotational and total angular momenta
integer(int32), intent(in) :: total_angular_momentum_
!! total angular momentum
integer(int32), intent(inout) :: number_of_channels_even_parity_block
!! number of channels for the p = 1 block
integer(int32), intent(inout) :: number_of_channels_odd_parity_block
!! number of channels for the p = -1 block
!---------------------------------------------------------------------!
if (mod(total_angular_momentum_, 2) == 0) then
!------------------------------------------------------------------!
! Even J: channels with Omega = 0 only count in the even parity block
!------------------------------------------------------------------!
number_of_channels_even_parity_block &
= number_of_channels_even_parity_block + omega_max_ + 1
number_of_channels_odd_parity_block &
= number_of_channels_odd_parity_block + omega_max_
else
!------------------------------------------------------------------!
! Odd J: channels with Omega = 0 only count in the odd parity block
!------------------------------------------------------------------!
number_of_channels_odd_parity_block &
= number_of_channels_odd_parity_block + omega_max_ + 1
number_of_channels_even_parity_block &
= number_of_channels_even_parity_block + omega_max_
endif
!---------------------------------------------------------------------!
end subroutine update_channel_counts_body_fixed