Module ppm_module_topo_box2subs

This module provides the routine that converts tree boxes to subs.

Defined Types

name description

no types

Defined Module Interfaces

name description

ppm_topo_box2subs

Defined Module Subroutines

name description

no subroutines

Interface ppm_topo_box2subs

Subroutines contained in this interface:

name description

ppm_topo_box2subs_s

ppm_topo_box2subs_d

This routine converts boxes from a ppm tree

Subroutine ppm_topo_box2subs_d

This routine converts boxes from a ppm tree (created by ppm_tree) to a set of subdomains which define a valid domain decomposition. If no tree level is specified, this is done by taking each childless tree box as a sub. Otherwise the boxes of the specific level are taken. If a certain branch of the tree does not extend to that level, the next higher existing box can be taken to fill the gap in order to return a decomposition with no holes in space.

Arguments

name type dimension intent optional description

min_box

real array

(:,:)

(IN)

Lower coordinates of the boxes.

max_box

real array

(:,:)

(IN)

Upper coordinates of the boxes.

nchld

integer array

(:)

(IN)

Number of children of each box.

nbox

integer

(IN)

Total number of boxes

min_sub

real array

(:,:)

Returns lower coordinates of the subs.

max_sub

real array

(:,:)

Returns upper coordinates of the subs.

nsubs

integer

(OUT)

Number of subs.

info

integer

(OUT)

Returns status, 0 upon success

boxid

integer array

(:)

X

To which of the original boxes does each sub correspond?

level

integer

(IN)

X

Specifies tree level from which boxes are

blevel

integer array

(:)

(IN)

X

Tree level of each box as returned by ppm_tree.

child

integer array

(:,:)

(IN)

X

Children (1st index) of all boxes (2nd index).

min_box

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

Lower coordinates of the boxes.

1st index: x,y[,z] 2nd: box ID

max_box

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

Upper coordinates of the boxes.

1st index: x,y[,z] 2nd: box ID

nchld

integer array, (:), (IN)

Number of children of each box.

nbox

integer, , (IN)

Total number of boxes

min_sub

real array, (:,:), no intent declared

Returns lower coordinates of the subs.

max_sub

real array, (:,:), no intent declared

Returns upper coordinates of the subs.

nsubs

integer, , (OUT)

Number of subs.

info

integer, , (OUT)

Returns status, 0 upon success

(Optional) boxid

integer array, (:), no intent declared

To which of the original boxes does each sub correspond? Only allocated and returned of present.

(Optional) level

integer, , (IN)

Specifies tree level from which boxes are to be taken. If > 0, only the boxes which are precisely on that level are returned, possibly leading to holes in the decomposition. If < 0, holes are filled with the next higher-level existing box.

(Optional) blevel

integer array, (:), (IN)

Tree level of each box as returned by ppm_tree. Needs to be present if level is present.

(Optional) child

integer array, (:,:), (IN)

Children (1st index) of all boxes (2nd index). Needs to be present if level is present.

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_topo_box2subs_s

Arguments

name type dimension intent optional description

min_box

real array

(:,:)

(IN)

Lower coordinates of the boxes.

max_box

real array

(:,:)

(IN)

Upper coordinates of the boxes.

nchld

integer array

(:)

(IN)

Number of children of each box.

nbox

integer

(IN)

Total number of boxes

min_sub

real array

(:,:)

Returns lower coordinates of the subs.

max_sub

real array

(:,:)

Returns upper coordinates of the subs.

nsubs

integer

(OUT)

Number of subs.

info

integer

(OUT)

Returns status, 0 upon success

boxid

integer array

(:)

X

To which of the original boxes does each sub correspond?

level

integer

(IN)

X

Specifies tree level from which boxes are

blevel

integer array

(:)

(IN)

X

Tree level of each box as returned by ppm_tree.

child

integer array

(:,:)

(IN)

X

Children (1st index) of all boxes (2nd index).

min_box

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

Lower coordinates of the boxes.

1st index: x,y[,z] 2nd: box ID

max_box

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

Upper coordinates of the boxes.

1st index: x,y[,z] 2nd: box ID

nchld

integer array, (:), (IN)

Number of children of each box.

nbox

integer, , (IN)

Total number of boxes

min_sub

real array, (:,:), no intent declared

Returns lower coordinates of the subs.

max_sub

real array, (:,:), no intent declared

Returns upper coordinates of the subs.

nsubs

integer, , (OUT)

Number of subs.

info

integer, , (OUT)

Returns status, 0 upon success

(Optional) boxid

integer array, (:), no intent declared

To which of the original boxes does each sub correspond? Only allocated and returned of present.

(Optional) level

integer, , (IN)

Specifies tree level from which boxes are to be taken. If > 0, only the boxes which are precisely on that level are returned, possibly leading to holes in the decomposition. If < 0, holes are filled with the next higher-level existing box.

(Optional) blevel

integer array, (:), (IN)

Tree level of each box as returned by ppm_tree. Needs to be present if level is present.

(Optional) child

integer array, (:,:), (IN)

Children (1st index) of all boxes (2nd index). Needs to be present if level is present.

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Defined Module Variables

name type dimension description

no variables

Used Modules

has no uses