ORB5  4.00
Loading...
Searching...
No Matches
sorting_mod::sorting_class Interface Reference

Public Member Functions

procedure init_gpu (sorting)
 Allocate arrays on GPU (to be called after constructor).
procedure build_permutation (sorting, np, x, y, z)
 Build permutation (to be called before applying sorting).
generic apply (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker real attributes (from template sorting_apply.inc).
generic apply (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker logical attributes (from template sorting_apply.inc).
generic apply (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker integer8 attributes (from template sorting_apply.inc).
generic apply (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker real4 attributes (from template sorting_apply.inc).
generic apply (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker real attributes (from template sorting_apply_inplace.inc).
generic apply (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker logical attributes (from template sorting_apply_inplace.inc).
generic apply (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker integer8 attributes (from template sorting_apply_inplace.inc).
generic apply (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker real4 attributes (from template sorting_apply_inplace.inc).
procedure apply_real (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker real attributes (from template sorting_apply.inc).
procedure apply_logical (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker logical attributes (from template sorting_apply.inc).
procedure apply_integer8 (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker integer8 attributes (from template sorting_apply.inc).
procedure apply_real4 (sorting, markers, sorted_markers, np, start_att, end_att, nl_revert)
 Apply (un)sorting to marker real4 attributes (from template sorting_apply.inc).
procedure apply_real_inplace (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker real attributes (from template sorting_apply_inplace.inc).
procedure apply_logical_inplace (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker logical attributes (from template sorting_apply_inplace.inc).
procedure apply_integer8_inplace (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker integer8 attributes (from template sorting_apply_inplace.inc).
procedure apply_real4_inplace (sorting, markers, np, start_att, end_att, nl_revert)
 Apply in-place (un)sorting to marker real4 attributes (from template sorting_apply_inplace.inc).
type(sorting_class) function constructor (npalloc, nl_inplace, ndim, xmin, xmax, nx, ymin, ymax, ny, zmin, zmax, nz)
 Sorting constructor.

Public Attributes

integer ndim
 Number of dimensions.
integer nx
 Number of bins in first dimension.
integer ny
 Number of bins in second dimension.
integer nz
 Number of bins in third dimension.
real(kind=r8) xmin
 Lower bound of first dimension.
real(kind=r8) ymin
 Lower bound of second dimension.
real(kind=r8) zmin
 Lower bound of third dimension.
real(kind=r8) dx_inv
 Inverse bin length in first dimension.
real(kind=r8) dy_inv
 Inverse bin length in second dimension.
real(kind=r8) dz_inv
 Inverse bin length in third dimension.
integer, dimension(:,:), allocatable counts
 Number of markers per bin (last element contains out-of-bounds markers).
integer, dimension(:,:), allocatable displs
 Offset in marker array to access markers in a bin (first element is zero).
integer, dimension(:), allocatable dest
 Index of each marker destination bin.
integer, dimension(:), allocatable indices
 Particle index in the destination bin.
integer, dimension(:), allocatable permut
 Permutation to go from unsorted to sorted array.
integer, dimension(:), allocatable inv_permut
 Permutation to go back to unsorted from sorted array.
integer npalloc
 Maximal number of markers that will be sorted.
real(kind=r8), dimension(:), allocatable work_real
 Real working array for in-place sorting.
logical, dimension(:), allocatable work_logical
 Logical working array for in-place sorting.
real(r4), dimension(:), allocatable work_real4
 Real4 working array for in-place sorting.
integer(i8), dimension(:), allocatable work_integer8
 Integer8 working array for in-place sorting.

Member Function/Subroutine Documentation

◆ apply() [1/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker real attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018

◆ apply() [2/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker logical attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018

◆ apply() [3/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker integer8 attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018

◆ apply() [4/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker real4 attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018

◆ apply() [5/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker real attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018
Here is the call graph for this function:

◆ apply() [6/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker logical attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018

◆ apply() [7/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker integer8 attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018

◆ apply() [8/8]

generic sorting_mod::sorting_class::apply ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker real4 attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018

◆ apply_integer8()

procedure sorting_mod::sorting_class::apply_integer8 ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker integer8 attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018

◆ apply_integer8_inplace()

procedure sorting_mod::sorting_class::apply_integer8_inplace ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker integer8 attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018

◆ apply_logical()

procedure sorting_mod::sorting_class::apply_logical ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker logical attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018

◆ apply_logical_inplace()

procedure sorting_mod::sorting_class::apply_logical_inplace ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker logical attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018

◆ apply_real()

procedure sorting_mod::sorting_class::apply_real ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker real attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018

◆ apply_real4()

procedure sorting_mod::sorting_class::apply_real4 ( sorting,
markers,
sorted_markers,
np,
start_att,
end_att,
nl_revert )

Apply (un)sorting to marker real4 attributes (from template sorting_apply.inc).

Author
N. Ohana
Date
06/2018

◆ apply_real4_inplace()

procedure sorting_mod::sorting_class::apply_real4_inplace ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker real4 attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018
Here is the call graph for this function:

◆ apply_real_inplace()

procedure sorting_mod::sorting_class::apply_real_inplace ( sorting,
markers,
np,
start_att,
end_att,
nl_revert )

Apply in-place (un)sorting to marker real attributes (from template sorting_apply_inplace.inc).

Author
N. Ohana
Date
06/2018

◆ build_permutation()

procedure sorting_mod::sorting_class::build_permutation ( class(sorting_class), intent(inout) sorting,
integer, intent(in) np,
real(kind=r8), dimension(:), intent(in) x,
real(kind=r8), dimension(:), intent(in), optional y,
real(kind=r8), dimension(:), intent(in), optional z )

Build permutation (to be called before applying sorting).

Author
N. Ohana
Date
06/2018
Parameters
[in]npNumber of particles to sort
[in]xMarker positions in first dimension
[in]yMarker positions in second dimension
[in]zMarker positions in third dimension

◆ constructor()

type(sorting_class) function sorting_mod::sorting_class::constructor ( integer, intent(in) npalloc,
logical, intent(in) nl_inplace,
integer, intent(in) ndim,
real(kind=r8), intent(in) xmin,
real(kind=r8), intent(in) xmax,
integer, intent(in) nx,
real(kind=r8), intent(in), optional ymin,
real(kind=r8), intent(in), optional ymax,
integer, intent(in), optional ny,
real(kind=r8), intent(in), optional zmin,
real(kind=r8), intent(in), optional zmax,
integer, intent(in), optional nz )

Sorting constructor.

Author
N. Ohana
Date
06/2018
Parameters
[in]npallocMaximal number of markers that will be sorted
[in]nl_inplaceApply in-place sorting
[in]ndimNumber of dimensions
[in]xminLower bound of first dimension
[in]xmaxUpper bound of first dimension
[in]nxNumber of bins in first dimension
[in]yminLower bound of second dimension if ndim>=2
[in]ymaxUpper bound of second dimension if ndim>=2
[in]nyNumber of bins in second dimension if ndim>=2
[in]zminLower bound of third dimension if ndim>=3
[in]zmaxUpper bound of third dimension if ndim>=3
[in]nzNumber of bins in third dimension if ndim>=3
Here is the call graph for this function:

◆ init_gpu()

procedure sorting_mod::sorting_class::init_gpu ( class(sorting_class), intent(inout) sorting)

Allocate arrays on GPU (to be called after constructor).

Author
N. Ohana
Date
06/2018
Note
Those directives do not work (code crashes) if they are in the constructor.

Member Data Documentation

◆ counts

integer, dimension(:,:), allocatable sorting_mod::sorting_class::counts

Number of markers per bin (last element contains out-of-bounds markers).

◆ dest

integer, dimension(:), allocatable sorting_mod::sorting_class::dest

Index of each marker destination bin.

◆ displs

integer, dimension(:,:), allocatable sorting_mod::sorting_class::displs

Offset in marker array to access markers in a bin (first element is zero).

◆ dx_inv

real(kind=r8) sorting_mod::sorting_class::dx_inv

Inverse bin length in first dimension.

◆ dy_inv

real(kind=r8) sorting_mod::sorting_class::dy_inv

Inverse bin length in second dimension.

◆ dz_inv

real(kind=r8) sorting_mod::sorting_class::dz_inv

Inverse bin length in third dimension.

◆ indices

integer, dimension(:), allocatable sorting_mod::sorting_class::indices

Particle index in the destination bin.

◆ inv_permut

integer, dimension(:), allocatable sorting_mod::sorting_class::inv_permut

Permutation to go back to unsorted from sorted array.

◆ ndim

integer sorting_mod::sorting_class::ndim

Number of dimensions.

◆ npalloc

integer sorting_mod::sorting_class::npalloc

Maximal number of markers that will be sorted.

◆ nx

integer sorting_mod::sorting_class::nx

Number of bins in first dimension.

◆ ny

integer sorting_mod::sorting_class::ny

Number of bins in second dimension.

◆ nz

integer sorting_mod::sorting_class::nz

Number of bins in third dimension.

◆ permut

integer, dimension(:), allocatable sorting_mod::sorting_class::permut

Permutation to go from unsorted to sorted array.

◆ work_integer8

integer(i8), dimension(:), allocatable sorting_mod::sorting_class::work_integer8

Integer8 working array for in-place sorting.

◆ work_logical

logical, dimension(:), allocatable sorting_mod::sorting_class::work_logical

Logical working array for in-place sorting.

◆ work_real

real(kind=r8), dimension(:), allocatable sorting_mod::sorting_class::work_real

Real working array for in-place sorting.

◆ work_real4

real(r4), dimension(:), allocatable sorting_mod::sorting_class::work_real4

Real4 working array for in-place sorting.

◆ xmin

real(kind=r8) sorting_mod::sorting_class::xmin

Lower bound of first dimension.

◆ ymin

real(kind=r8) sorting_mod::sorting_class::ymin

Lower bound of second dimension.

◆ zmin

real(kind=r8) sorting_mod::sorting_class::zmin

Lower bound of third dimension.


The documentation for this interface was generated from the following file: