print_channels Subroutine

public subroutine print_channels(parity_exponent_, channel_indices, channels_omega_values)

prints information about body-fixed channels on screen

Arguments

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

parity exponent of the block (0 if p = +1, 1 if p = -1)

integer(kind=int32), intent(inout) :: channel_indices(:)

holds the indices pointing to the basis arrays

integer(kind=int32), intent(inout) :: channels_omega_values(:)

holds all values of \bar{\Omega}


Calls

proc~~print_channels~~CallsGraph proc~print_channels print_channels proc~write_message write_message proc~print_channels->proc~write_message proc~wavevector_squared_from_energy wavevector_squared_from_energy proc~print_channels->proc~wavevector_squared_from_energy proc~write_channel_line write_channel_line proc~print_channels->proc~write_channel_line proc~is_open is_open proc~print_channels->proc~is_open proc~total_energy total_energy proc~wavevector_squared_from_energy->proc~total_energy proc~write_error write_error proc~wavevector_squared_from_energy->proc~write_error proc~write_channel_line->proc~write_message proc~is_open->proc~total_energy proc~write_error->proc~write_message

Called by

proc~~print_channels~~CalledByGraph proc~print_channels print_channels program~scattering SCATTERING program~scattering->proc~print_channels

Contents

Source Code


Variables

Type Visibility Attributes Name Initial
integer(kind=int32), private :: channel_index_
real(kind=dp), private :: internal_energy_
integer(kind=int32), private :: j_
integer(kind=int32), private :: omega_
integer(kind=int32), private :: parity_
integer(kind=int32), private :: v_
real(kind=dp), private :: wavevector_

Source Code

      subroutine print_channels(parity_exponent_, channel_indices,             &
         channels_omega_values)
         !! prints information about body-fixed channels on screen
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: parity_exponent_
            !! parity exponent of the block (0 if p = +1, 1 if p = -1)
         integer(int32), intent(inout) :: channel_indices(:)
            !! holds the indices pointing to the basis arrays
         integer(int32), intent(inout) :: channels_omega_values(:)
            !! holds all values of \bar{\Omega}
         !---------------------------------------------------------------------!
         integer(int32) :: channel_index_, v_, j_, omega_, parity_
         real(dp) :: internal_energy_, wavevector_
         !---------------------------------------------------------------------!
         call write_message("   v1      j1     omega      p" // repeat(" ", 10)&
            // "E_vj" // repeat(" ", 16) // "wv")
         !---------------------------------------------------------------------!
         do channel_index_ = 1, size(channel_indices)
            v_               = vib_levels(channel_indices(channel_index_))
            j_               = rot_levels(channel_indices(channel_index_))
            omega_           = channels_omega_values(channel_index_)
            parity_          = (-1)**parity_exponent_
            internal_energy_ = internal_energies(channel_indices(channel_index_))
            !------------------------------------------------------------------!
            ! format for open channels:
            !------------------------------------------------------------------!
            if (is_open(internal_energy_)) then
               wavevector_ = sqrt( wavevector_squared_from_energy(             &
                  internal_energy_) )
               call write_channel_line(v_, j_, omega_, parity_,                &
                  internal_energy_, wavevector_)
            !------------------------------------------------------------------!
            ! format for closed channels:
            !------------------------------------------------------------------!
            else
               call write_channel_line(v_,j_,omega_,parity_,internal_energy_)
            endif
            !------------------------------------------------------------------!
         enddo
         !---------------------------------------------------------------------!
      end subroutine print_channels