ORB5  v4.9.4
sorting_mod Module Reference

Module containing sorting routines. More...

Data Types

interface  sorting_class
 

Functions/Subroutines

type(sorting_class) function constructor (npalloc, nl_inplace, ndim, xmin, xmax, nx, ymin, ymax, ny, zmin, zmax, nz)
 Sorting constructor. More...
 
subroutine init_gpu (sorting)
 Allocate arrays on GPU (to be called after constructor) More...
 
subroutine build_permutation (sorting, np, x, y, z)
 Build permutation (to be called before applying sorting) More...
 
subroutine 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) More...
 
subroutine 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) More...
 
subroutine 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) More...
 
subroutine 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) More...
 
subroutine 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) More...
 
subroutine 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) More...
 
subroutine 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) More...
 
subroutine 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) More...
 

Detailed Description

Module containing sorting routines.

Authors
Noé Ohana, EPFL
Andreas Jocksch, CSCS
Emmanuel Lanti, EPFL
Date
06.2018

Function/Subroutine Documentation

◆ apply_integer8()

subroutine sorting_mod::apply_integer8 (   sorting,
  markers,
  sorted_markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ apply_integer8_inplace()

subroutine sorting_mod::apply_integer8_inplace (   sorting,
  markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ apply_logical()

subroutine sorting_mod::apply_logical (   sorting,
  markers,
  sorted_markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ apply_logical_inplace()

subroutine sorting_mod::apply_logical_inplace (   sorting,
  markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ apply_real()

subroutine sorting_mod::apply_real (   sorting,
  markers,
  sorted_markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ apply_real4()

subroutine sorting_mod::apply_real4 (   sorting,
  markers,
  sorted_markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ apply_real4_inplace()

subroutine sorting_mod::apply_real4_inplace (   sorting,
  markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ apply_real_inplace()

subroutine sorting_mod::apply_real_inplace (   sorting,
  markers,
  np,
  start_att,
  end_att,
  nl_revert 
)
private

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

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

◆ build_permutation()

subroutine sorting_mod::build_permutation ( class(sorting_class), intent(inout)  sorting,
integer, intent(in)  np,
real, dimension(:), intent(in)  x,
real, dimension(:), intent(in), optional  y,
real, dimension(:), intent(in), optional  z 
)
private

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
+ Here is the call graph for this function:

◆ constructor()

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

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 caller graph for this function:

◆ init_gpu()

subroutine sorting_mod::init_gpu ( class(sorting_class), intent(inout)  sorting)
private

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.