array_utils Module

Provides wrappers to some simple array operations. We use this indirection in order to be able to consistently treat performance concerns. Currently this is limited to adding OpenMP, although in the future it might allow different approaches as appropriate.


Contents


Interfaces

public interface copy

Interface to helper subroutines for copying one array into another.

  • private subroutine copy_real_array_3(array_in, array_out)

    Copy 3D real arrays

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:, :, :) :: array_in
    real, intent(out), dimension(:, :, :) :: array_out
  • private subroutine copy_real_array_4(array_in, array_out)

    Copy 4D real arrays

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in), dimension(:, :, :, :) :: array_in
    real, intent(out), dimension(:, :, :, :) :: array_out
  • private subroutine copy_complex_array_3(array_in, array_out)

    Copy 3D complex arrays

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:, :, :) :: array_in
    complex, intent(out), dimension(:, :, :) :: array_out
  • private subroutine copy_complex_array_4(array_in, array_out)

    Copy 4D complex arrays

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(in), dimension(:, :, :, :) :: array_in
    complex, intent(out), dimension(:, :, :, :) :: array_out

public interface gs2_maxval

Interface to helper functions for finding the maximum in an array

  • private function gs2_maxval_real_array_2(array_in) result(the_max)

    Find maximum in 2D array

    Arguments

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

    Return Value real

  • private function gs2_maxval_real_array_3(array_in) result(the_max)

    Find maximum in 3D array

    Arguments

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

    Return Value real

public interface gs2_abs

Interface to helper functions for finding magnitude of an array

  • private function gs2_abs_real_array_2(array_in) result(array_out)

    Return absolute of 2D array

    Arguments

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

    Return Value real, dimension(:, :), allocatable

  • private function gs2_abs_real_array_3(array_in) result(array_out)

    Return absolute of 3D array

    Arguments

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

    Return Value real, dimension(:, :, :), allocatable

  • private function gs2_abs_complex_array_2(array_in) result(array_out)

    Return absolute of 2D array

    Arguments

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

    Return Value real, dimension(:, :), allocatable

  • private function gs2_abs_complex_array_3(array_in) result(array_out)

    Return absolute of 3D array

    Arguments

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

    Return Value real, dimension(:, :, :), allocatable

public interface gs2_max_abs

Interface to helper functions for finding maxval of magnitude of an array

  • private function gs2_max_abs_real_array_2(array_in) result(the_max)

    Find maximum of abs 2D array

    Arguments

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

    Return Value real

  • private function gs2_max_abs_real_array_3(array_in) result(the_max)

    Find maximum of abs 3D array

    Arguments

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

    Return Value real

  • private function gs2_max_abs_complex_array_2(array_in) result(the_max)

    Find maximum of abs 2D array

    Arguments

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

    Return Value real

  • private function gs2_max_abs_complex_array_3(array_in) result(the_max)

    Find maximum of abs 3D array

    Arguments

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

    Return Value real

public interface zero_array

Interface to helper functions to zero an array

  • private subroutine zero_array_real_array_1(array_in)

    Zero out a 1D array

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:) :: array_in
  • private subroutine zero_array_real_array_2(array_in)

    Zero out a 2D array

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:, :) :: array_in
  • private subroutine zero_array_real_array_3(array_in)

    Zero out a 3D array

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:, :, :) :: array_in
  • private subroutine zero_array_real_array_4(array_in)

    Zero out a 4D array

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:, :, :, :) :: array_in
  • private subroutine zero_array_real_array_5(array_in)

    Zero out a 5D array

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout), dimension(:, :, :, :, :) :: array_in
  • private subroutine zero_array_complex_array_1(array_in)

    Zero out a 1D array

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:) :: array_in
  • private subroutine zero_array_complex_array_2(array_in)

    Zero out a 2D array

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:, :) :: array_in
  • private subroutine zero_array_complex_array_3(array_in)

    Zero out a 3D array

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:, :, :) :: array_in
  • private subroutine zero_array_complex_array_4(array_in)

    Zero out a 4D array

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:, :, :, :) :: array_in
  • private subroutine zero_array_complex_array_5(array_in)

    Zero out a 5D array

    Arguments

    Type IntentOptional Attributes Name
    complex, intent(inout), dimension(:, :, :, :, :) :: array_in

Functions

private function gs2_maxval_real_array_2(array_in) result(the_max)

Find maximum in 2D array

Arguments

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

Return Value real

private function gs2_maxval_real_array_3(array_in) result(the_max)

Find maximum in 3D array

Arguments

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

Return Value real

private function gs2_abs_real_array_2(array_in) result(array_out)

Return absolute of 2D array

Arguments

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

Return Value real, dimension(:, :), allocatable

private function gs2_abs_real_array_3(array_in) result(array_out)

Return absolute of 3D array

Arguments

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

Return Value real, dimension(:, :, :), allocatable

private function gs2_abs_complex_array_2(array_in) result(array_out)

Return absolute of 2D array

Arguments

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

Return Value real, dimension(:, :), allocatable

private function gs2_abs_complex_array_3(array_in) result(array_out)

Return absolute of 3D array

Arguments

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

Return Value real, dimension(:, :, :), allocatable

private function gs2_max_abs_real_array_2(array_in) result(the_max)

Find maximum of abs 2D array

Arguments

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

Return Value real

private function gs2_max_abs_real_array_3(array_in) result(the_max)

Find maximum of abs 3D array

Arguments

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

Return Value real

private function gs2_max_abs_complex_array_2(array_in) result(the_max)

Find maximum of abs 2D array

Arguments

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

Return Value real

private function gs2_max_abs_complex_array_3(array_in) result(the_max)

Find maximum of abs 3D array

Arguments

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

Return Value real


Subroutines

private subroutine copy_real_array_3(array_in, array_out)

Copy 3D real arrays

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:, :, :) :: array_in
real, intent(out), dimension(:, :, :) :: array_out

private subroutine copy_real_array_4(array_in, array_out)

Copy 4D real arrays

Arguments

Type IntentOptional Attributes Name
real, intent(in), dimension(:, :, :, :) :: array_in
real, intent(out), dimension(:, :, :, :) :: array_out

private subroutine copy_complex_array_3(array_in, array_out)

Copy 3D complex arrays

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, :, :) :: array_in
complex, intent(out), dimension(:, :, :) :: array_out

private subroutine copy_complex_array_4(array_in, array_out)

Copy 4D complex arrays

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, :, :, :) :: array_in
complex, intent(out), dimension(:, :, :, :) :: array_out

private subroutine zero_array_real_array_1(array_in)

Zero out a 1D array

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:) :: array_in

private subroutine zero_array_real_array_2(array_in)

Zero out a 2D array

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:, :) :: array_in

private subroutine zero_array_real_array_3(array_in)

Zero out a 3D array

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:, :, :) :: array_in

private subroutine zero_array_real_array_4(array_in)

Zero out a 4D array

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:, :, :, :) :: array_in

private subroutine zero_array_real_array_5(array_in)

Zero out a 5D array

Arguments

Type IntentOptional Attributes Name
real, intent(inout), dimension(:, :, :, :, :) :: array_in

private subroutine zero_array_complex_array_1(array_in)

Zero out a 1D array

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:) :: array_in

private subroutine zero_array_complex_array_2(array_in)

Zero out a 2D array

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :) :: array_in

private subroutine zero_array_complex_array_3(array_in)

Zero out a 3D array

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :, :) :: array_in

private subroutine zero_array_complex_array_4(array_in)

Zero out a 4D array

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :, :, :) :: array_in

private subroutine zero_array_complex_array_5(array_in)

Zero out a 5D array

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :, :, :, :) :: array_in