save_partial_xs_single_block Subroutine

public subroutine save_partial_xs_single_block(jtot_, block_number_, open_basis_levels_, xs_block)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: jtot_
integer(kind=int32), intent(in) :: block_number_
integer(kind=int32), intent(in) :: open_basis_levels_(:)
real(kind=dp), intent(in) :: xs_block(:)

Calls

proc~~save_partial_xs_single_block~~CallsGraph proc~save_partial_xs_single_block save_partial_xs_single_block proc~total_energy total_energy proc~save_partial_xs_single_block->proc~total_energy proc~write_message write_message proc~save_partial_xs_single_block->proc~write_message

Called by

proc~~save_partial_xs_single_block~~CalledByGraph proc~save_partial_xs_single_block save_partial_xs_single_block program~scattering SCATTERING program~scattering->proc~save_partial_xs_single_block

Contents


Variables

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

Source Code

      subroutine save_partial_xs_single_block(jtot_, block_number_,            &
         open_basis_levels_, xs_block)
         !! ...
         !---------------------------------------------------------------------!
         integer(int32), intent(in) :: jtot_
         integer(int32), intent(in) :: block_number_
         integer(int32), intent(in) :: open_basis_levels_(:)
         real(dp), intent(in) :: xs_block(:)
         !---------------------------------------------------------------------!
         character(len=200) :: partial_line
         integer(int32) :: number_of_open_basis_levels_, index_1_, index_2_,   &
            cross_section_index_
         !---------------------------------------------------------------------!
         number_of_open_basis_levels_ = size(open_basis_levels_)
         do index_1_ = 1, number_of_open_basis_levels_
            do index_2_ = 1, number_of_open_basis_levels_
               cross_section_index_ = (index_1_-1)                             &
                  * number_of_open_basis_levels_ + index_2_
               write(partial_line,                                             &
                  "(I6,2X,I6,2X,I4,2X,I4,6X,I4,2X,I4,2X,E16.8,2X,E16.8)")      &
                  jtot_, block_number_,                                        &
                  vib_levels(open_basis_levels_(index_1_)),                    &
                  rot_levels(open_basis_levels_(index_1_)),                    &
                  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, xs_block(cross_section_index_)
               call write_message(partial_line, unit_ = 12)
            enddo
         enddo
         !---------------------------------------------------------------------!
      end subroutine save_partial_xs_single_block