Module ppm_module_util_rank

This module provides the utility ranking routines.

Defined Types

name description

no types

Defined Module Interfaces

Defined Module Subroutines

name description

no subroutines

Interface ppm_util_rank2d

Subroutines contained in this interface:

name description

ppm_util_rank2d_s

Sort particles in cells. Create index table to

ppm_util_rank2d_d

Sort particles in cells. Create index table to

Interface ppm_util_rank3d

Subroutines contained in this interface:

name description

ppm_util_rank3d_s

Sort particles in cells. Create index table to

ppm_util_rank3d_d

Sort particles in cells. Create index table to

Subroutine ppm_util_rank2d_d

Sort particles in cells. Create index table to particles and pointer to first particle in each cell.

[Note]Note

Two do loops do not vectorize.

[Note]Note

The routine uses no (0) automatic arrays.

[Note]Note

The particles in cell ibox are: lpdx(lhbx(ibox):lhbx(ibox+1)-1) We are not using linked lists! as they do not vectorize !

[Note]Note

We are not using automatic arrays as they do not tell you if the resources are exhausted!

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates

np

integer

(IN)

Number of particles

xmin

real array

(:)

(IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array

(:)

(IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array

(:)

(IN)

Number of mesh points (cells)

ngl

integer array

(:)

(IN)

Number of ghost layers to add. The ghost layers will be added to the

lpdx

integer array

(:)

Index of particles in cells (lpdx(icnt))

lhbx

integer array

(:)

Pointer to first particle (in lpdx) in each cell (lhbx(nbx+1))

info

integer

(INOUT)

Return status, 0 on success

xp

real array, (:,:), (IN)

Particle coordinates

np

integer, , (IN)

Number of particles

xmin

real array, (:), (IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array, (:), (IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array, (:), (IN)

Number of mesh points (cells)

ngl

integer array, (:), (IN)

Number of ghost layers to add. The ghost layers will be added to the domain passed in xmin(:) and xmax()

  • nm(1) : added layers below xmin(1)
  • nm(2) : added layers below xmin(2)
  • nm(3) : added layers above xmax(1)
  • nm(4) : added layers above xmax(2)
lpdx

integer array, (:), no intent declared

Index of particles in cells (lpdx(icnt))

lhbx

integer array, (:), no intent declared

Pointer to first particle (in lpdx) in each cell (lhbx(nbx+1))

info

integer, , (INOUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_util_rank2d_s

Sort particles in cells. Create index table to particles and pointer to first particle in each cell.

[Note]Note

Two do loops do not vectorize.

[Note]Note

The routine uses no (0) automatic arrays.

[Note]Note

The particles in cell ibox are: lpdx(lhbx(ibox):lhbx(ibox+1)-1) We are not using linked lists! as they do not vectorize !

[Note]Note

We are not using automatic arrays as they do not tell you if the resources are exhausted!

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates

np

integer

(IN)

Number of particles

xmin

real array

(:)

(IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array

(:)

(IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array

(:)

(IN)

Number of mesh points (cells)

ngl

integer array

(:)

(IN)

Number of ghost layers to add. The ghost layers will be added to the

lpdx

integer array

(:)

Index of particles in cells (lpdx(icnt))

lhbx

integer array

(:)

Pointer to first particle (in lpdx) in each cell (lhbx(nbx+1))

info

integer

(INOUT)

Return status, 0 on success

xp

real array, (:,:), (IN)

Particle coordinates

np

integer, , (IN)

Number of particles

xmin

real array, (:), (IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array, (:), (IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array, (:), (IN)

Number of mesh points (cells)

ngl

integer array, (:), (IN)

Number of ghost layers to add. The ghost layers will be added to the domain passed in xmin(:) and xmax()

  • nm(1) : added layers below xmin(1)
  • nm(2) : added layers below xmin(2)
  • nm(3) : added layers above xmax(1)
  • nm(4) : added layers above xmax(2)
lpdx

integer array, (:), no intent declared

Index of particles in cells (lpdx(icnt))

lhbx

integer array, (:), no intent declared

Pointer to first particle (in lpdx) in each cell (lhbx(nbx+1))

info

integer, , (INOUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_util_rank3d_d

Sort particles in cells. Create index table to particles and pointer to first particle in each cell.

[Note]Note

Two do loops do not vectorize.

[Note]Note

The routine uses no (0) automatic arrays.

[Note]Note

The particles in cell ibox are: lpdx(lhbx(ibox):lhbx(ibox+1)-1) We are not using linked lists! as they do not vectorize !

[Note]Note

We are not using automatic arrays as they do not tell you if the resources are exhausted!

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates

np

integer

(IN)

Number of particles

xmin

real array

(:)

(IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array

(:)

(IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array

(:)

(IN)

Number of mesh points (cells)

ngl

integer array

(:)

(IN)

Number of ghost layers to add. The ghost layers will be added to

lpdx

integer array

(:)

Index of particles in cells ( lpdx(icnt) )

lhbx

integer array

(:)

Pointer to first particle (in lpdx) in each cell ( lhbx(nbx+1) )

info

integer

(INOUT)

Return status, 0 on success

xp

real array, (:,:), (IN)

Particle coordinates

np

integer, , (IN)

Number of particles

xmin

real array, (:), (IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array, (:), (IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array, (:), (IN)

Number of mesh points (cells)

ngl

integer array, (:), (IN)

Number of ghost layers to add. The ghost layers will be added to the domain passed in xmin(:) and xmax()

  • nm(1) : added layers below xmin(1)
  • nm(2) : added layers below xmin(2)
  • nm(3) : added layers below xmin(3)
  • nm(4) : added layers above xmax(1)
  • nm(5) : added layers above xmax(2)
  • nm(6) : added layers above xmax(3)
lpdx

integer array, (:), no intent declared

Index of particles in cells ( lpdx(icnt) )

lhbx

integer array, (:), no intent declared

Pointer to first particle (in lpdx) in each cell ( lhbx(nbx+1) )

info

integer, , (INOUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Subroutine ppm_util_rank3d_s

Sort particles in cells. Create index table to particles and pointer to first particle in each cell.

[Note]Note

Two do loops do not vectorize.

[Note]Note

The routine uses no (0) automatic arrays.

[Note]Note

The particles in cell ibox are: lpdx(lhbx(ibox):lhbx(ibox+1)-1) We are not using linked lists! as they do not vectorize !

[Note]Note

We are not using automatic arrays as they do not tell you if the resources are exhausted!

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates

np

integer

(IN)

Number of particles

xmin

real array

(:)

(IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array

(:)

(IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array

(:)

(IN)

Number of mesh points (cells)

ngl

integer array

(:)

(IN)

Number of ghost layers to add. The ghost layers will be added to

lpdx

integer array

(:)

Index of particles in cells ( lpdx(icnt) )

lhbx

integer array

(:)

Pointer to first particle (in lpdx) in each cell ( lhbx(nbx+1) )

info

integer

(INOUT)

Return status, 0 on success

xp

real array, (:,:), (IN)

Particle coordinates

np

integer, , (IN)

Number of particles

xmin

real array, (:), (IN)

Minimum extent of mesh (not including any ghost layer)

xmax

real array, (:), (IN)

Maximum extent of mesh (not including any ghost layer)

nm

integer array, (:), (IN)

Number of mesh points (cells)

ngl

integer array, (:), (IN)

Number of ghost layers to add. The ghost layers will be added to the domain passed in xmin(:) and xmax()

  • nm(1) : added layers below xmin(1)
  • nm(2) : added layers below xmin(2)
  • nm(3) : added layers below xmin(3)
  • nm(4) : added layers above xmax(1)
  • nm(5) : added layers above xmax(2)
  • nm(6) : added layers above xmax(3)
lpdx

integer array, (:), no intent declared

Index of particles in cells ( lpdx(icnt) )

lhbx

integer array, (:), no intent declared

Pointer to first particle (in lpdx) in each cell ( lhbx(nbx+1) )

info

integer, , (INOUT)

Return status, 0 on success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_write, ppm_module_substart

Defined Module Variables

name type dimension description

no variables

Used Modules

has no uses