update_channel_counts_body_fixed Subroutine

private 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}\)

Arguments

Type IntentOptional 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


Called by

proc~~update_channel_counts_body_fixed~~CalledByGraph proc~update_channel_counts_body_fixed update_channel_counts_body_fixed proc~calculate_number_of_channels_body_fixed calculate_number_of_channels_body_fixed proc~calculate_number_of_channels_body_fixed->proc~update_channel_counts_body_fixed proc~set_number_of_channels set_number_of_channels proc~set_number_of_channels->proc~calculate_number_of_channels_body_fixed program~scattering SCATTERING program~scattering->proc~set_number_of_channels

Contents


Source Code

      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