update_channel_counts_space_fixed Subroutine

private subroutine update_channel_counts_space_fixed(l_min_, l_max_, level_index_, number_of_channels_even_parity_block, number_of_channels_odd_parity_block)

updates number_of_channels_even and number_of_channels_odd in the space-fixed frame for given range of orbital angular momentum

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: l_min_

smallest value of \( l = |j-J|\)

integer(kind=int32), intent(in) :: l_max_

largest value of \( l = j+J\)

integer(kind=int32), intent(in) :: level_index_

index pointing to speceific \(j\) value in rot_levels

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_space_fixed~~CalledByGraph proc~update_channel_counts_space_fixed update_channel_counts_space_fixed proc~calculate_number_of_channels_space_fixed calculate_number_of_channels_space_fixed proc~calculate_number_of_channels_space_fixed->proc~update_channel_counts_space_fixed proc~set_number_of_channels set_number_of_channels proc~set_number_of_channels->proc~calculate_number_of_channels_space_fixed program~scattering SCATTERING program~scattering->proc~set_number_of_channels

Contents


Variables

Type Visibility Attributes Name Initial
integer(kind=int32), private :: l_

Source Code

      subroutine update_channel_counts_space_fixed(l_min_, l_max_,             &
         level_index_, number_of_channels_even_parity_block,                   &
         number_of_channels_odd_parity_block)
         !! updates number_of_channels_even and number_of_channels_odd
         !! in the space-fixed frame for given
         !! range of orbital angular momentum
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: l_min_
            !! smallest value of \\( l = |j-J|\\)
         integer(int32), intent(in) :: l_max_
            !! largest value of \\( l = j+J\\)
         integer(int32), intent(in) :: level_index_
            !! index pointing to speceific \\(j\\) value in rot_levels
         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
         !---------------------------------------------------------------------!
         integer(int32) :: l_
         !---------------------------------------------------------------------!
         do l_ = l_min_, l_max_
            if (mod(rot_levels(level_index_) + l_, 2) == 0) then
               number_of_channels_even_parity_block =                          &
                  number_of_channels_even_parity_block + 1
            else
               number_of_channels_odd_parity_block =                           &
                  number_of_channels_odd_parity_block + 1
            endif
         end do
         !---------------------------------------------------------------------!
      end subroutine update_channel_counts_space_fixed