find_reduced_term Function

private function find_reduced_term(r_index_, lambda_index_, coupling_index_) result(reduced_term)

Finds and returns the reduced term for the given indices.

Arguments

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

index interating over intermolecular grid

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

index interating over Legendre expansion terms

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

index interating over necessary couplings

Return Value real(kind=dp)

(output) sought value of the coupling term


Called by

proc~~find_reduced_term~~CalledByGraph proc~find_reduced_term find_reduced_term proc~reduce_coupling_terms reduce_coupling_terms proc~reduce_coupling_terms->proc~find_reduced_term proc~reduce_radial_coupling_terms reduce_radial_coupling_terms proc~reduce_radial_coupling_terms->proc~reduce_coupling_terms program~scattering SCATTERING program~scattering->proc~reduce_radial_coupling_terms

Contents

Source Code


Variables

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

Source Code

      function find_reduced_term(r_index_, lambda_index_, coupling_index_)     &
         result(reduced_term)
         !! Finds and returns the reduced term for the given indices.
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: r_index_
            !! index interating over intermolecular grid         
         integer(int32), intent(in) :: lambda_index_
            !! index interating over Legendre expansion terms
         integer(int32), intent(in) :: coupling_index_
            !! index interating over necessary couplings
         real(dp) :: reduced_term
            !! (output) sought value of the coupling term
         !---------------------------------------------------------------------!
         integer(int32) :: column_index_
         !---------------------------------------------------------------------!
         reduced_term = 0.0_dp
         do column_index_ = 1, total_number_of_coupling_terms
         !---------------------------------------------------------------------!
         ! iterate over quantum numbers describing all couplings
         ! (v1/j1/v1p/rot_prime_couplings) until necessary couplings are found
         !---------------------------------------------------------------------!
            if ((reduced_rot_couplings(coupling_index_)                        &
                  == rot_couplings(column_index_)).and.                        &
               (reduced_rot_prime_couplings(coupling_index_)                   &
                  == rot_prime_couplings(column_index_)).and.                  &
               (reduced_vib_couplings(coupling_index_)                         &
                  == vib_couplings(column_index_)).and.                        &
               (reduced_vib_prime_couplings(coupling_index_)                   &
                  == vib_prime_couplings(column_index_))) then
               reduced_term = tabulated_coupling_terms(r_index_, lambda_index_,&
                  column_index_)
               exit
            endif
         enddo
         !---------------------------------------------------------------------!
      end function find_reduced_term