print_all_cross_sections Subroutine

private subroutine print_all_cross_sections(open_basis_levels_, cross_sections_)

Prints information about cross-sections from provided "cross_sections_" array

Arguments

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

array holding indices to open basis levels

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

holds values of the cross-sections


Calls

proc~~print_all_cross_sections~~CallsGraph proc~print_all_cross_sections print_all_cross_sections proc~write_message write_message proc~print_all_cross_sections->proc~write_message proc~total_energy total_energy proc~print_all_cross_sections->proc~total_energy

Called by

proc~~print_all_cross_sections~~CalledByGraph proc~print_all_cross_sections print_all_cross_sections proc~print_cross_sections_for_jtot print_cross_sections_for_jtot proc~print_cross_sections_for_jtot->proc~print_all_cross_sections proc~print_final_cross_sections print_final_cross_sections proc~print_final_cross_sections->proc~print_all_cross_sections program~scattering SCATTERING program~scattering->proc~print_cross_sections_for_jtot program~scattering->proc~print_final_cross_sections

Contents


Variables

Type Visibility Attributes Name Initial
integer(kind=int32), private :: cross_section_index_
character(len=200), private :: header_line_
integer(kind=int32), private :: index_1_
integer(kind=int32), private :: index_2_
character(len=200), private :: line_
integer(kind=int32), private :: number_of_open_basis_levels_

Source Code

      subroutine print_all_cross_sections(open_basis_levels_, cross_sections_)
         !! Prints information about cross-sections from provided
         !! "cross_sections_" array
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: open_basis_levels_(:)
            !! array holding indices to open basis levels
         real(dp), intent(in) :: cross_sections_(:)
            !! holds values of the cross-sections
         !---------------------------------------------------------------------!
         character(len=200) :: header_line_, line_
         integer(int32) :: index_1_, index_2_, cross_section_index_,           &
            number_of_open_basis_levels_
         !---------------------------------------------------------------------!
         write(header_line_, "(2x,a4,2x,a4,2x,a2,2x,a4,2x,a4,14x,a4,16x,a2)")  &
            "v1_f", "j1_f", "<-", "v1_i", "j1_i", "Ekin", "XS"
         call write_message(header_line_)
         !---------------------------------------------------------------------!
         number_of_open_basis_levels_ = size(open_basis_levels_)
         !---------------------------------------------------------------------!
         do index_1_ = 1, size(open_basis_levels_)
            do index_2_ = 1, size(open_basis_levels_)
               cross_section_index_ = (index_1_ - 1)                           &
                  * number_of_open_basis_levels_ + index_2_
               write(line_, "(2X,I4,2X,I4,6X,I4,2X,I4,2X,E16.8,2X,E16.8)")     &
                  vib_levels(open_basis_levels_(index_2_)),                    &
                  rot_levels(open_basis_levels_(index_2_)),                    &
                  vib_levels(open_basis_levels_(index_1_)),                    &
                  rot_levels(open_basis_levels_(index_1_)),                    &
                  (total_energy()-internal_energies(open_basis_levels_(index_1_)))&
                     * hartree_to_cm, cross_sections_(cross_section_index_)
               call write_message(line_)
            enddo
         enddo
         !---------------------------------------------------------------------!
      end subroutine print_all_cross_sections