print_mbe_energy_breakdown Subroutine

private subroutine print_mbe_energy_breakdown(sum_by_level, max_level, total_energy)

Print MBE energy breakdown to logger

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: sum_by_level(:)
integer, intent(in) :: max_level
real(kind=dp), intent(in) :: total_energy

Calls

proc~~print_mbe_energy_breakdown~~CallsGraph proc~print_mbe_energy_breakdown print_mbe_energy_breakdown info info proc~print_mbe_energy_breakdown->info

Called by

proc~~print_mbe_energy_breakdown~~CalledByGraph proc~print_mbe_energy_breakdown print_mbe_energy_breakdown proc~compute_mbe compute_mbe proc~compute_mbe->proc~print_mbe_energy_breakdown proc~global_coordinator global_coordinator proc~global_coordinator->proc~compute_mbe proc~serial_fragment_processor serial_fragment_processor proc~serial_fragment_processor->proc~compute_mbe interface~global_coordinator global_coordinator interface~global_coordinator->proc~global_coordinator interface~serial_fragment_processor serial_fragment_processor interface~serial_fragment_processor->proc~serial_fragment_processor proc~mbe_run_distributed mbe_context_t%mbe_run_distributed proc~mbe_run_distributed->interface~global_coordinator proc~mbe_run_serial mbe_context_t%mbe_run_serial proc~mbe_run_serial->interface~serial_fragment_processor

Variables

Type Visibility Attributes Name Initial
character(len=256), private :: energy_line
integer, private :: nlevel

Source Code

   subroutine print_mbe_energy_breakdown(sum_by_level, max_level, total_energy)
      !! Print MBE energy breakdown to logger
      real(dp), intent(in) :: sum_by_level(:)
      integer, intent(in) :: max_level
      real(dp), intent(in) :: total_energy

      integer :: nlevel
      character(len=256) :: energy_line

      call logger%info("MBE Energy breakdown:")
      do nlevel = 1, max_level
         if (abs(sum_by_level(nlevel)) > 1e-15_dp) then
            write (energy_line, '(a,i0,a,f20.10)') "  ", nlevel, "-body:  ", sum_by_level(nlevel)
            call logger%info(trim(energy_line))
         end if
      end do
      write (energy_line, '(a,f20.10)') "  Total:   ", total_energy
      call logger%info(trim(energy_line))
   end subroutine print_mbe_energy_breakdown