find_coupling_index Function

private function find_coupling_index(v_, j_, v_prime_, j_prime_) result(result_index_)

Locates the correct quantum number that describes the v/j coupling. Note that coupling terms are symmetric with respect to the change of pre- and post-collisional quantum numbers.

Arguments

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

pre-collisional vibrational quantum number

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

pre-collisional rotational quantum number

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

post-collisional vibrational quantum number

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

post-collisional rotational quantum number

Return Value integer(kind=int32)

Index pointing to \(v, j, v^{\prime}, j^{\prime}\) in reduced_* arrays


Called by

proc~~find_coupling_index~~CalledByGraph proc~find_coupling_index find_coupling_index proc~get_radial_coupling_term_value get_radial_coupling_term_value proc~get_radial_coupling_term_value->proc~find_coupling_index proc~calculate_single_pes_matrix_element calculate_single_pes_matrix_element proc~calculate_single_pes_matrix_element->proc~get_radial_coupling_term_value proc~calculate_pes_matrix calculate_pes_matrix proc~calculate_pes_matrix->proc~calculate_single_pes_matrix_element proc~initial_setup initial_setup proc~initial_setup->proc~calculate_pes_matrix proc~general_propagation_step general_propagation_step proc~general_propagation_step->proc~calculate_pes_matrix proc~numerov numerov proc~numerov->proc~initial_setup proc~numerov->proc~general_propagation_step proc~handle_final_propagation_steps handle_final_propagation_steps proc~handle_final_propagation_steps->proc~general_propagation_step

Contents

Source Code


Variables

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

Source Code

      function find_coupling_index(v_, j_, v_prime_, j_prime_) result(result_index_)
         !! Locates the correct quantum number that describes the v/j coupling.
         !! Note that coupling terms are symmetric with respect to the change
         !! of pre- and post-collisional quantum numbers.
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: v_
            !! pre-collisional vibrational quantum number
         integer(int32), intent(in) :: j_
            !! pre-collisional rotational quantum number
         integer(int32), intent(in) :: v_prime_
            !! post-collisional vibrational quantum number
         integer(int32), intent(in) :: j_prime_
            !! post-collisional rotational quantum number
         integer(int32) :: result_index_
            !! Index pointing to  \\(v, j, v^{\prime}, j^{\prime}\\)
            !! in reduced_* arrays
         !---------------------------------------------------------------------!
         integer(int32) :: coupling_index_
         !---------------------------------------------------------------------!
         result_index_ = 0
         do coupling_index_ = 1, minimal_number_of_coupling_terms
            if ((((reduced_vib_couplings(coupling_index_) == v_).and.          &
               (reduced_rot_couplings(coupling_index_).eq.j_).and.             &
               (reduced_vib_prime_couplings(coupling_index_).eq.v_prime_).and. &
               (reduced_rot_prime_couplings(coupling_index_).eq.j_prime_))     &
               .or.                                                            &
               ((reduced_vib_couplings(coupling_index_).eq.v_prime_).and.      &
               (reduced_rot_couplings(coupling_index_).eq.j_prime_).and.       &
               (reduced_vib_prime_couplings(coupling_index_).eq.v_).and.       &
               (reduced_rot_prime_couplings(coupling_index_).eq.j_))) ) then
               result_index_ = coupling_index_
               exit
            endif
         enddo
         !---------------------------------------------------------------------!
      end function find_coupling_index