Module ppm_module_inl_clist

This module is used to create cell lists stored in various depths, providing ease of USE to form inhomogeneous cell lists

Defined Types

name description

ppm_clist

Defined Module Interfaces

Defined Module Subroutines

name description

getcelldepth

Given the cell index, return the depth of the cell.

isempty

Given the index of the cell, returns whether the cell is

parent

Given the index of child cell, returns the index of its parent.

ppm_destroy_inl_clist

deallocates all arrays in clist, sets variables back to

Type ppm_clist

Defined Type Members

name type dimension description

borders

integer array

(:,:)

contains the boundaries in the particle rank array separating the

borders_pos

integer

borders_pos_max

integer

grow_htable

logical

lookup

ppm_htable

max_depth

integer

n_all_p

integer

n_real_p

integer

ncell

integer

rank

integer array

(:)

rankbypos

integer array

(:)

rc_borders

integer array

(:)

borders

integer array, (:,:)

contains the boundaries in the particle rank array separating the particles belonging to different cells.

in 2D this is a 6xn_cells array The column indeces of borders(:,k) contain indeces to the rank array specifying which particles belong in which subcell of cell k

|2:3 |4:5 |
|----|----|
|1:2 |3:4 |

e.g. index 1 (+1) to index 2 are all particles belonging to lower left subcell -→ rank(borders(1,k)+1:borders(2,k))

index 6 is 1 if the cell contains particles in deeper levels, otherwise it is -1

borders_pos

integer,

borders_pos_max

integer,

grow_htable

logical,

lookup

ppm_htable,

max_depth

integer,

n_all_p

integer,

n_real_p

integer,

ncell

integer,

rank

integer array, (:)

rankbypos

integer array, (:)

rc_borders

integer array, (:)

Interface getcellcoor_depth

Subroutines contained in this interface:

name description

getcellcoor_depth_s

Given the cell index and the domain, modifies coor and

getcellcoor_depth_d

Given the cell index and the domain, modifies coor and

Interface getcellidx

Subroutines contained in this interface:

name description

getcellidx_s

Given coordinates and depth, this subroutine returns the index

getcellidx_d

Given coordinates and depth, this subroutine returns the index

Interface getmaxdepth

Subroutines contained in this interface:

name description

getmaxdepth_s

This function returns the maximum depth within a domain

getmaxdepth_d

This function returns the maximum depth within a domain

Interface getminimumrc

Subroutines contained in this interface:

name description

getminimumrc_s

Given the cutoff radii and rank arrays and the skin

getminimumrc_d

Given the cutoff radii and rank arrays and the skin

Interface getminimumsidelength

Subroutines contained in this interface:

name description

getminimumsidelength_s

Given a physical domain, returns the longest side in it.

getminimumsidelength_d

Given a physical domain, returns the longest side in it.

Interface getrc_borders

Subroutines contained in this interface:

name description

getrc_borders_s

Computes the borders on rc_borders array such that two

getrc_borders_d

Computes the borders on rc_borders array such that two

Interface lastidxforrc

Subroutines contained in this interface:

name description

lastidxforrc_s

For a given cutoff radius, returns the last index in the rank

lastidxforrc_d

For a given cutoff radius, returns the last index in the rank

Interface partition

Subroutines contained in this interface:

name description

partition_s

Given particles coordinates, rank array of particles, the midpoint

partition_d

Given particles coordinates, rank array of particles, the midpoint

Interface partitionbyrc

Subroutines contained in this interface:

name description

partitionbyrc_s

This subroutine partitions particles by their cutoff radii and

partitionbyrc_d

This subroutine partitions particles by their cutoff radii and

Interface ppm_create_inl_clist

Subroutines contained in this interface:

name description

create_inl_clist_s

Given particle coordinates(xp), number of all particles including

create_inl_clist_d

Given particle coordinates(xp), number of all particles including

Interface setsubregions

Subroutines contained in this interface:

name description

setsubregions_s

Given the input region, subdivides it and distributes the portions

setsubregions_d

Given the input region, subdivides it and distributes the portions

Interface sortbyposition

Subroutines contained in this interface:

name description

sortbyposition_s

The recursive subroutine which sorts the particles by their position;

sortbyposition_d

The recursive subroutine which sorts the particles by their position;

Interface sortbyrc

Subroutines contained in this interface:

name description

sortbyrc_s

Recursive algorithm which sorts particles by their cutoff radii

sortbyrc_d

Recursive algorithm which sorts particles by their cutoff radii

Interface sortbyrc_pos

Subroutines contained in this interface:

name description

sortbyrc_pos_s

The recursive subroutine which sorts the particles by their position

sortbyrc_pos_d

The recursive subroutine which sorts the particles by their position

Subroutine create_inl_clist_d

Given particle coordinates(xp), number of all particles including ghost particles(Mp), cutoff radii of particles(cutoff), skin parameter and the physical extent of whole domain including ghost layers; this subroutine creates cell lists that are to be stored in the hash table where borders on the particle arrays are to be stored.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i.

np

integer

(IN)

Number of real particles

mp

integer

(IN)

Number of all particles including ghost particles

cutoff

real array

(:)

(IN)

Particles cutoff radii

skin

real

(IN)

Skin parameter

actual_domain

real array

(2*ppm_dim)

ghost_extend

real array

(ppm_dim)

(IN)

Extra area/volume over the actual domain introduced by

lsymm

logical

(IN)

If lsymm = TRUE, verlet lists are symmetric and we have ghost

clist

ppm_clist

(INOUT)

info

integer

(OUT)

Info to be returned. 0 if SUCCESSFUL.

xp

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

Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i.

np

integer, , (IN)

Number of real particles

mp

integer, , (IN)

Number of all particles including ghost particles

cutoff

real array, (:), (IN)

Particles cutoff radii

skin

real, , (IN)

Skin parameter

actual_domain

real array, (2*ppm_dim), no intent declared

ghost_extend

real array, (ppm_dim), (IN)

Extra area/volume over the actual domain introduced by ghost layers.

lsymm

logical, , (IN)

If lsymm = TRUE, verlet lists are symmetric and we have ghost layers only in (+) directions in all axes. Else, we have ghost layers in all directions.

clist

ppm_clist, , (INOUT)

info

integer, , (OUT)

Info to be returned. 0 if SUCCESSFUL.

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine create_inl_clist_s

Given particle coordinates(xp), number of all particles including ghost particles(Mp), cutoff radii of particles(cutoff), skin parameter and the physical extent of whole domain including ghost layers; this subroutine creates cell lists that are to be stored in the hash table where borders on the particle arrays are to be stored.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i.

np

integer

(IN)

Number of real particles

mp

integer

(IN)

Number of all particles including ghost particles

cutoff

real array

(:)

(IN)

Particles cutoff radii

skin

real

(IN)

Skin parameter

actual_domain

real array

(2*ppm_dim)

ghost_extend

real array

(ppm_dim)

(IN)

Extra area/volume over the actual domain introduced by

lsymm

logical

(IN)

If lsymm = TRUE, verlet lists are symmetric and we have ghost

clist

ppm_clist

(INOUT)

info

integer

(OUT)

Info to be returned. 0 if SUCCESSFUL.

xp

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

Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i.

np

integer, , (IN)

Number of real particles

mp

integer, , (IN)

Number of all particles including ghost particles

cutoff

real array, (:), (IN)

Particles cutoff radii

skin

real, , (IN)

Skin parameter

actual_domain

real array, (2*ppm_dim), no intent declared

ghost_extend

real array, (ppm_dim), (IN)

Extra area/volume over the actual domain introduced by ghost layers.

lsymm

logical, , (IN)

If lsymm = TRUE, verlet lists are symmetric and we have ghost layers only in (+) directions in all axes. Else, we have ghost layers in all directions.

clist

ppm_clist, , (INOUT)

info

integer, , (OUT)

Info to be returned. 0 if SUCCESSFUL.

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine getcellcoor_depth_d

Given the cell index and the domain, modifies coor and cell_depth variables such that coor contains midpoint coordinates of the cell and cell_depth has the depth of the cell. Works for nD.

Arguments

name type dimension intent optional description

cell_idx

integer

(IN)

Index of the cell whose midpoint coordinates and depth will be

domain

real array

(2*ppm_dim)

(IN)

Physical extent of whole domain including ghost layers.

coor

real array

(ppm_dim)

(INOUT)

Midpoint coordinates of the cell to be returned.

cell_depth

integer

(INOUT)

Depth of the cell to be returned.

max_depth

integer

(IN)

maximum cell depth in cell tree

info

integer

0 on success

cell_idx

integer, , (IN)

Index of the cell whose midpoint coordinates and depth will be returned.

domain

real array, (2*ppm_dim), (IN)

Physical extent of whole domain including ghost layers.

coor

real array, (ppm_dim), (INOUT)

Midpoint coordinates of the cell to be returned.

cell_depth

integer, , (INOUT)

Depth of the cell to be returned.

max_depth

integer, , (IN)

maximum cell depth in cell tree

info

integer, , no intent declared

0 on success

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine getcellcoor_depth_s

Given the cell index and the domain, modifies coor and cell_depth variables such that coor contains midpoint coordinates of the cell and cell_depth has the depth of the cell. Works for nD.

Arguments

name type dimension intent optional description

cell_idx

integer

(IN)

Index of the cell whose midpoint coordinates and depth will be

domain

real array

(2*ppm_dim)

(IN)

Physical extent of whole domain including ghost layers.

coor

real array

(ppm_dim)

(INOUT)

Midpoint coordinates of the cell to be returned.

cell_depth

integer

(INOUT)

Depth of the cell to be returned.

max_depth

integer

(IN)

maximum cell depth in cell tree

info

integer

0 on success

cell_idx

integer, , (IN)

Index of the cell whose midpoint coordinates and depth will be returned.

domain

real array, (2*ppm_dim), (IN)

Physical extent of whole domain including ghost layers.

coor

real array, (ppm_dim), (INOUT)

Midpoint coordinates of the cell to be returned.

cell_depth

integer, , (INOUT)

Depth of the cell to be returned.

max_depth

integer, , (IN)

maximum cell depth in cell tree

info

integer, , no intent declared

0 on success

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine getcelldepth

Given the cell index, return the depth of the cell.

Arguments

name type dimension intent optional description

cell_idx

integer

(IN)

Index of cell

cell_idx

integer, , (IN)

Index of cell

Used Modules

has no uses

Subroutine getcellidx_d

Given coordinates and depth, this subroutine returns the index of the cell.Input coordinates do not have to be midpoint coordinates, but any coordinates that are within the physical region of the cell or on left and/or bottom boundaries of the cell. Works for nD.

Arguments

name type dimension intent optional description

coor

real array

(ppm_dim)

(IN)

Input coordinates of the cell whose index is asked for.

cell_depth

integer

(IN)

Depth of the cell whose index is asked for.

domain

real array

(2*ppm_dim)

(IN)

Physical extent of whole domain including ghost layers.

coor

real array, (ppm_dim), (IN)

Input coordinates of the cell whose index is asked for.

cell_depth

integer, , (IN)

Depth of the cell whose index is asked for.

domain

real array, (2*ppm_dim), (IN)

Physical extent of whole domain including ghost layers.

Used Modules

has no uses

Subroutine getcellidx_s

Given coordinates and depth, this subroutine returns the index of the cell.Input coordinates do not have to be midpoint coordinates, but any coordinates that are within the physical region of the cell or on left and/or bottom boundaries of the cell. Works for nD.

Arguments

name type dimension intent optional description

coor

real array

(ppm_dim)

(IN)

Input coordinates of the cell whose index is asked for.

cell_depth

integer

(IN)

Depth of the cell whose index is asked for.

domain

real array

(2*ppm_dim)

(IN)

Physical extent of whole domain including ghost layers.

coor

real array, (ppm_dim), (IN)

Input coordinates of the cell whose index is asked for.

cell_depth

integer, , (IN)

Depth of the cell whose index is asked for.

domain

real array, (2*ppm_dim), (IN)

Physical extent of whole domain including ghost layers.

Used Modules

has no uses

Subroutine getmaxdepth_d

This function returns the maximum depth within a domain

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

clist

ppm_clist

(IN)

domain

real array

(2*ppm_dim)

(IN)

cutoff

real array, (:), (IN)

clist

ppm_clist, , (IN)

domain

real array, (2*ppm_dim), (IN)

Used Modules

has no uses

Subroutine getmaxdepth_s

This function returns the maximum depth within a domain

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

clist

ppm_clist

(IN)

domain

real array

(2*ppm_dim)

(IN)

cutoff

real array, (:), (IN)

clist

ppm_clist, , (IN)

domain

real array, (2*ppm_dim), (IN)

Used Modules

has no uses

Subroutine getminimumrc_d

Given the cutoff radii and rank arrays and the skin parameter, returns the minimum cutoff radius within these arrays.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Cutoff radii array

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(IN)

Rank array, containing particles ranks

cutoff

real array, (:), (IN)

Cutoff radii array

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (IN)

Rank array, containing particles ranks

Used Modules

has no uses

Subroutine getminimumrc_s

Given the cutoff radii and rank arrays and the skin parameter, returns the minimum cutoff radius within these arrays.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Cutoff radii array

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(IN)

Rank array, containing particles ranks

cutoff

real array, (:), (IN)

Cutoff radii array

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (IN)

Rank array, containing particles ranks

Used Modules

has no uses

Subroutine getminimumsidelength_d

Given a physical domain, returns the longest side in it. Works for nD.

Arguments

name type dimension intent optional description

domain

real array

(:)

(IN)

Physical extent of the domain

domain

real array, (:), (IN)

Physical extent of the domain

Used Modules

has no uses

Subroutine getminimumsidelength_s

Given a physical domain, returns the longest side in it. Works for nD.

Arguments

name type dimension intent optional description

domain

real array

(:)

(IN)

Physical extent of the domain

domain

real array, (:), (IN)

Physical extent of the domain

Used Modules

has no uses

Subroutine getrc_borders_d

Computes the borders on rc_borders array such that two consecutive indices will contain borders for particle in that level.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

clist

ppm_clist

(INOUT)

the cell list

domain

real array

(2*ppm_dim)

Physical extent of whole domain including ghost layers

info

integer

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

clist

ppm_clist, , (INOUT)

the cell list

domain

real array, (2*ppm_dim), no intent declared

Physical extent of whole domain including ghost layers

info

integer, , no intent declared

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine getrc_borders_s

Computes the borders on rc_borders array such that two consecutive indices will contain borders for particle in that level.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

clist

ppm_clist

(INOUT)

the cell list

domain

real array

(2*ppm_dim)

Physical extent of whole domain including ghost layers

info

integer

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

clist

ppm_clist, , (INOUT)

the cell list

domain

real array, (2*ppm_dim), no intent declared

Physical extent of whole domain including ghost layers

info

integer, , no intent declared

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine isempty

Given the index of the cell, returns whether the cell is empty or not.

Arguments

name type dimension intent optional description

c_idx

integer

(IN)

Input index

lookup

ppm_htable

(IN)

hash table

c_idx

integer, , (IN)

Input index

lookup

ppm_htable, , (IN)

hash table

Used Modules

has no uses

Subroutine lastidxforrc_d

For a given cutoff radius, returns the last index in the rank array that is greater than or equal to this cutoff radius; given cutoff radii of particles, skin parameter and input cutoff radius. The result is necessary for sorting particles according to their position for a specific level in SortByRC_Pos subroutine. In the end, resulting index is returned by idx.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

clist

ppm_clist

(IN)

rank array

inputrc

real

(IN)

Input cutoff radius

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

clist

ppm_clist, , (IN)

rank array

inputrc

real, , (IN)

Input cutoff radius

Used Modules

has no uses

Subroutine lastidxforrc_s

For a given cutoff radius, returns the last index in the rank array that is greater than or equal to this cutoff radius; given cutoff radii of particles, skin parameter and input cutoff radius. The result is necessary for sorting particles according to their position for a specific level in SortByRC_Pos subroutine. In the end, resulting index is returned by idx.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

clist

ppm_clist

(IN)

rank array

inputrc

real

(IN)

Input cutoff radius

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

clist

ppm_clist, , (IN)

rank array

inputrc

real, , (IN)

Input cutoff radius

Used Modules

has no uses

Subroutine parent

Given the index of child cell, returns the index of its parent. Works for nD.

Arguments

name type dimension intent optional description

idx

integer

(IN)

Input index

idx

integer, , (IN)

Input index

Used Modules

has no uses

Subroutine partition_d

Given particles coordinates, rank array of particles, the midpoint that particles will be partitioned by, axis to define on which axis partitioning will take place and border to be updated such that particles up to this border will be those before the midPoint and after the border will be those after the midPoint.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Input array for particles coordinates

rank

integer array

(:)

(INOUT)

ranks of particles

midpoint

real

(IN)

Midpoint that particles will be partitioned by

border

integer

(INOUT)

Border index to be returned

axis

integer

(IN)

Axis on which partitioning will take place

xp

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

Input array for particles coordinates

rank

integer array, (:), (INOUT)

ranks of particles

midpoint

real, , (IN)

Midpoint that particles will be partitioned by

border

integer, , (INOUT)

Border index to be returned

axis

integer, , (IN)

Axis on which partitioning will take place

Used Modules

has no uses

Subroutine partition_s

Given particles coordinates, rank array of particles, the midpoint that particles will be partitioned by, axis to define on which axis partitioning will take place and border to be updated such that particles up to this border will be those before the midPoint and after the border will be those after the midPoint.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Input array for particles coordinates

rank

integer array

(:)

(INOUT)

ranks of particles

midpoint

real

(IN)

Midpoint that particles will be partitioned by

border

integer

(INOUT)

Border index to be returned

axis

integer

(IN)

Axis on which partitioning will take place

xp

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

Input array for particles coordinates

rank

integer array, (:), (INOUT)

ranks of particles

midpoint

real, , (IN)

Midpoint that particles will be partitioned by

border

integer, , (INOUT)

Border index to be returned

axis

integer, , (IN)

Axis on which partitioning will take place

Used Modules

has no uses

Subroutine partitionbyrc_d

This subroutine partitions particles by their cutoff radii and updates marker; given cutoff radii, skin parameter and rank array.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

ranks of particles

marker

integer

(OUT)

marker to be updated

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

ranks of particles

marker

integer, , (OUT)

marker to be updated

Used Modules

has no uses

Subroutine partitionbyrc_s

This subroutine partitions particles by their cutoff radii and updates marker; given cutoff radii, skin parameter and rank array.

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

ranks of particles

marker

integer

(OUT)

marker to be updated

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

ranks of particles

marker

integer, , (OUT)

marker to be updated

Used Modules

has no uses

Subroutine ppm_destroy_inl_clist

deallocates all arrays in clist, sets variables back to default values and calls the destructor for the hash table

Arguments

name type dimension intent optional description

clist

ppm_clist

(INOUT)

info

integer

(OUT)

Info to be returned. 0 if SUCCESSFUL.

clist

ppm_clist, , (INOUT)

info

integer, , (OUT)

Info to be returned. 0 if SUCCESSFUL.

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine setsubregions_d

Given the input region, subdivides it and distributes the portions to subregions. Works for nD.

Arguments

name type dimension intent optional description

ownregion

real array

(:)

(IN)

Coordinates of input region containing minimum and maximum

subregions

real array

(:,:)

(INOUT)

Array of subregions, which will contain minimum and maximum

info

integer

ownregion

real array, (:), (IN)

Coordinates of input region containing minimum and maximum physical extents of it.

subregions

real array, (:,:), (INOUT)

Array of subregions, which will contain minimum and maximum physical extents of each subregion. For example, subregions(5,3) contains the x-coordinate of maximum physical extent of 5th subregion.

info

integer, , no intent declared

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine setsubregions_s

Given the input region, subdivides it and distributes the portions to subregions. Works for nD.

Arguments

name type dimension intent optional description

ownregion

real array

(:)

(IN)

Coordinates of input region containing minimum and maximum

subregions

real array

(:,:)

(INOUT)

Array of subregions, which will contain minimum and maximum

info

integer

ownregion

real array, (:), (IN)

Coordinates of input region containing minimum and maximum physical extents of it.

subregions

real array, (:,:), (INOUT)

Array of subregions, which will contain minimum and maximum physical extents of each subregion. For example, subregions(5,3) contains the x-coordinate of maximum physical extent of 5th subregion.

info

integer, , no intent declared

Used Modules

ppm_module_substop, ppm_module_substart

Subroutine sortbyposition_d

The recursive subroutine which sorts the particles by their position; given particles coordinates, their cutoff radii, skin parameter, rank array of particles, the domain that these particles take place, index of current cell and increment parameter. REMARK: increment parameter is essential for recursion, since it is used to keep track of which chunk of particle array is being used.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Input array for particles coordinates

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

rank array

clist

ppm_clist

(INOUT)

cell list

ownregion

real array

(:)

(IN)

Region that will be used to sort particles within

idx

integer

(IN)

Index of cell to be processed

increment

integer

(IN)

Start index in particles arrays.

xp

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

Input array for particles coordinates

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

rank array

clist

ppm_clist, , (INOUT)

cell list

ownregion

real array, (:), (IN)

Region that will be used to sort particles within

idx

integer, , (IN)

Index of cell to be processed

increment

integer, , (IN)

Start index in particles arrays.

Used Modules

has no uses

Subroutine sortbyposition_s

The recursive subroutine which sorts the particles by their position; given particles coordinates, their cutoff radii, skin parameter, rank array of particles, the domain that these particles take place, index of current cell and increment parameter. REMARK: increment parameter is essential for recursion, since it is used to keep track of which chunk of particle array is being used.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Input array for particles coordinates

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

rank array

clist

ppm_clist

(INOUT)

cell list

ownregion

real array

(:)

(IN)

Region that will be used to sort particles within

idx

integer

(IN)

Index of cell to be processed

increment

integer

(IN)

Start index in particles arrays.

xp

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

Input array for particles coordinates

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

rank array

clist

ppm_clist, , (INOUT)

cell list

ownregion

real array, (:), (IN)

Region that will be used to sort particles within

idx

integer, , (IN)

Index of cell to be processed

increment

integer, , (IN)

Start index in particles arrays.

Used Modules

has no uses

Subroutine sortbyrc_d

Recursive algorithm which sorts particles by their cutoff radii in descending order; given cutoff radii, skin parameter and the rank array (swapping is actually done on rank array).

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

ranks of particles

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

ranks of particles

Used Modules

has no uses

Subroutine sortbyrc_pos_d

The recursive subroutine which sorts the particles by their position and their cutoff radii; given particles coordinates, their cutoff radii, skin parameter, rank array of particles, the domain that these particles take place, index of current cell and increment parameter. REMARK: increment parameter is essential for recursion, since it is used to keep track of which chunk of particle array is being used.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Input array for particles coordinates

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

rank array

clist

ppm_clist

(INOUT)

cell list

ownregion

real array

(:)

(IN)

Region that will be used to sort particles within

idx

integer

(IN)

Index of cell to be processed

level

integer

(IN)

Destination level that particles of this depth level

increment

integer

(IN)

Start index in particles arrays.

xp

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

Input array for particles coordinates

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

rank array

clist

ppm_clist, , (INOUT)

cell list

ownregion

real array, (:), (IN)

Region that will be used to sort particles within

idx

integer, , (IN)

Index of cell to be processed

level

integer, , (IN)

Destination level that particles of this depth level will be sorted.

increment

integer, , (IN)

Start index in particles arrays.

Used Modules

has no uses

Subroutine sortbyrc_pos_s

The recursive subroutine which sorts the particles by their position and their cutoff radii; given particles coordinates, their cutoff radii, skin parameter, rank array of particles, the domain that these particles take place, index of current cell and increment parameter. REMARK: increment parameter is essential for recursion, since it is used to keep track of which chunk of particle array is being used.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Input array for particles coordinates

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

rank array

clist

ppm_clist

(INOUT)

cell list

ownregion

real array

(:)

(IN)

Region that will be used to sort particles within

idx

integer

(IN)

Index of cell to be processed

level

integer

(IN)

Destination level that particles of this depth level

increment

integer

(IN)

Start index in particles arrays.

xp

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

Input array for particles coordinates

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

rank array

clist

ppm_clist, , (INOUT)

cell list

ownregion

real array, (:), (IN)

Region that will be used to sort particles within

idx

integer, , (IN)

Index of cell to be processed

level

integer, , (IN)

Destination level that particles of this depth level will be sorted.

increment

integer, , (IN)

Start index in particles arrays.

Used Modules

has no uses

Subroutine sortbyrc_s

Recursive algorithm which sorts particles by their cutoff radii in descending order; given cutoff radii, skin parameter and the rank array (swapping is actually done on rank array).

Arguments

name type dimension intent optional description

cutoff

real array

(:)

(IN)

Input array for particles cutoff radii

skin

real

(IN)

Skin parameter

rank

integer array

(:)

(INOUT)

ranks of particles

cutoff

real array, (:), (IN)

Input array for particles cutoff radii

skin

real, , (IN)

Skin parameter

rank

integer array, (:), (INOUT)

ranks of particles

Used Modules

has no uses

Defined Module Variables

name type dimension description

no variables

Used Modules

ppm_module_data, ppm_module_inl_hash, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_mktopo, ppm_module_substart