write_channel_line Subroutine

private subroutine write_channel_line(v_, j_, omega_, parity_, internal_energy_, wavevector_)

Arguments

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

vibrational quantum number

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

rotational quantum number

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

\(\bar{\Omega}\)

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

parity of the block

real(kind=dp), intent(in) :: internal_energy_

\(E_{vj}\)

real(kind=dp), intent(in), optional :: wavevector_

(optional) if the channel is open, print information about the wavevector


Calls

proc~~write_channel_line~~CallsGraph proc~write_channel_line write_channel_line proc~write_message write_message proc~write_channel_line->proc~write_message

Called by

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

Contents

Source Code


Variables

Type Visibility Attributes Name Initial
character(len=200), private :: line_

Source Code

      subroutine write_channel_line(v_, j_, omega_, parity_, internal_energy_, & 
         wavevector_)
         ! Subroutine arguments
         integer(int32), intent(in) :: v_
            !! vibrational quantum number
         integer(int32), intent(in) :: j_
            !! rotational quantum number
         integer(int32), intent(in) :: omega_
            !! \\(\bar{\Omega}\\)
         integer(int32), intent(in) :: parity_
            !! parity of the block
         real(dp), intent(in) :: internal_energy_
            !! \\(E_{vj}\\)
         real(dp), intent(in), optional :: wavevector_
            !! (optional) if the channel is open, print information
            !! about the wavevector
         !---------------------------------------------------------------------!
         character(len=200) :: line_
         !---------------------------------------------------------------------!
         ! Check if wavevector is provided
         !---------------------------------------------------------------------!
         if (present(wavevector_)) then
            write(line_, "(X,I4,4X,I4,6X,I4,5X,I2,2X,F12.4,4X,F14.8)")         &
               v_, j_, omega_, parity_, internal_energy_*hartree_to_cm,        &
               wavevector_/bohr_to_angstrom
         else
            write(line_, "(X,I4,4X,I4,6X,I4,5X,I2,2X,F12.4,4X,'--------------')")&
               v_, j_, omega_, parity_, internal_energy_*hartree_to_cm
         endif
         !---------------------------------------------------------------------!
         ! Print the formatted line
         !---------------------------------------------------------------------!
         call write_message(line_)
         !---------------------------------------------------------------------!
      end subroutine write_channel_line