integration Module

Utility module containing generic integration routines


Contents


Variables

Type Visibility Attributes Name Initial
logical, private, parameter :: use_compensated_sum = .true.

Interfaces

public interface trapezoidal_integration

  • private function real_trapezoidal_integration(x, y) result(integral)

    Apply the trapezium rule to integrate y over the domain of x.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: x
    real, intent(in), dimension(:) :: y

    Return Value real

  • private function complex_trapezoidal_integration(x, y) result(integral)

    Apply the trapezium rule to integrate y over the domain of x.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: x
    complex, intent(in), dimension(:) :: y

    Return Value complex

public interface rectangular_integration

  • private function real_rectangular_integration(x, y) result(integral)

    Apply the (left) rectangular rule to integrate y over the domain of x.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: x
    real, intent(in), dimension(:) :: y

    Return Value real

  • private function complex_rectangular_integration(x, y) result(integral)

    Apply the (left) rectangular rule to integrate y over the domain of x.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: x
    complex, intent(in), dimension(:) :: y

    Return Value complex

private interface local_sum

  • private pure function real_local_sum(array) result(total)

    A wrapper routine to perform a sum. Used to provide a single point at which we choose a summation method

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:) :: array

    Return Value real

  • private pure function complex_local_sum(array) result(total)

    A wrapper routine to perform a sum. Used to provide a single point at which we choose a summation method

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:) :: array

    Return Value complex


Functions

private pure function real_local_sum(array) result(total)

A wrapper routine to perform a sum. Used to provide a single point at which we choose a summation method

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: array

Return Value real

private pure function complex_local_sum(array) result(total)

A wrapper routine to perform a sum. Used to provide a single point at which we choose a summation method

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:) :: array

Return Value complex

private function real_trapezoidal_integration(x, y) result(integral)

Apply the trapezium rule to integrate y over the domain of x.

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: x
real, intent(in), dimension(:) :: y

Return Value real

private function complex_trapezoidal_integration(x, y) result(integral)

Apply the trapezium rule to integrate y over the domain of x.

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: x
complex, intent(in), dimension(:) :: y

Return Value complex

private function real_rectangular_integration(x, y) result(integral)

Apply the (left) rectangular rule to integrate y over the domain of x.

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: x
real, intent(in), dimension(:) :: y

Return Value real

private function complex_rectangular_integration(x, y) result(integral)

Apply the (left) rectangular rule to integrate y over the domain of x.

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:) :: x
complex, intent(in), dimension(:) :: y

Return Value complex