check_unitarity_for_each_channel Function

private function check_unitarity_for_each_channel(sum_of_squares) result(is_unitary_)

checks if the calculated sum of squares equals 1 for each channel

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: sum_of_squares(:)

\(\sum_{\gamma'} \Bigl|{S}^{Jp}_{\gamma, \gamma'}\Bigr|^{2}\)

Return Value logical

(output) if .true. unitarity is fulfilled, .false. otherwise


Called by

proc~~check_unitarity_for_each_channel~~CalledByGraph proc~check_unitarity_for_each_channel check_unitarity_for_each_channel proc~unitarity_check unitarity_check proc~unitarity_check->proc~check_unitarity_for_each_channel program~scattering SCATTERING program~scattering->proc~unitarity_check

Contents


Variables

Type Visibility Attributes Name Initial
integer, private :: channel_index

Source Code

      function check_unitarity_for_each_channel(sum_of_squares)                &
         result(is_unitary_)
         !! checks if the calculated sum of squares equals 1 for each channel
         !---------------------------------------------------------------------!
         real(dp), intent(in) :: sum_of_squares(:)
            !! \\(\sum\_{\gamma'} \Bigl|{S}^{Jp}\_{\gamma, \gamma'}\Bigr|^{2}\\)
         logical :: is_unitary_
            !! (output) if .true. unitarity is fulfilled, .false. otherwise
         !---------------------------------------------------------------------!
         integer :: channel_index
         !---------------------------------------------------------------------!
         is_unitary_ = .true.
         do channel_index = 1, size(sum_of_squares)
            if (abs(sum_of_squares(channel_index) - 1.0_dp) > unitary_tolerance) then
               is_unitary_ = .false.
               exit
            endif
          end do
         !---------------------------------------------------------------------!
      end function check_unitarity_for_each_channel