Module ppm_module_topo_subs2proc

This module provides the topology subdomain to processor assignment routines.

Defined Types

name description

no types

Defined Module Interfaces

name description

ppm_topo_subs2proc

Defined Module Subroutines

name description

no subroutines

Interface ppm_topo_subs2proc

Subroutines contained in this interface:

name description

ppm_topo_subs2proc_s

This routine assigns the subdomains to the processors

ppm_topo_subs2proc_d

This routine assigns the subdomains to the processors

Subroutine ppm_topo_subs2proc_d

This routine assigns the subdomains to the processors using the cost assigned to each subdomain. It assigns the domains recursively, by assigning domains and their physical neighbours. At the end all processors will know who has what.

[Note]Note

Do we need the truncation handling?

Arguments

name type dimension intent optional description

cost

real array

(:)

(IN)

The estimated cost associated with the subdomains

nneigh

integer array

(:)

(IN)

The number of neighbours of a subdomain

ineigh

integer array

(:,:)

(IN)

Pointers to these neighbours

nsubs

integer

(IN)

Total number of subdomains

sub2proc

integer array

(:)

Full list of processor affiliation of subdomains

isublist

integer array

(:)

List of subdomains assigned to the local processors

nsublist

integer

(OUT)

The number of subdomains assigned

info

integer

(OUT)

Return status, 0 on success

cost

real array, (:), (IN)

The estimated cost associated with the subdomains

nneigh

integer array, (:), (IN)

The number of neighbours of a subdomain

ineigh

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

Pointers to these neighbours

nsubs

integer, , (IN)

Total number of subdomains

sub2proc

integer array, (:), no intent declared

Full list of processor affiliation of subdomains

isublist

integer array, (:), no intent declared

List of subdomains assigned to the local processors

nsublist

integer, , (OUT)

The number of subdomains assigned

info

integer, , (OUT)

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_topo_subs2proc_s

This routine assigns the subdomains to the processors using the cost assigned to each subdomain. It assigns the domains recursively, by assigning domains and their physical neighbours. At the end all processors will know who has what.

[Note]Note

Do we need the truncation handling?

Arguments

name type dimension intent optional description

cost

real array

(:)

(IN)

The estimated cost associated with the subdomains

nneigh

integer array

(:)

(IN)

The number of neighbours of a subdomain

ineigh

integer array

(:,:)

(IN)

Pointers to these neighbours

nsubs

integer

(IN)

Total number of subdomains

sub2proc

integer array

(:)

Full list of processor affiliation of subdomains

isublist

integer array

(:)

List of subdomains assigned to the local processors

nsublist

integer

(OUT)

The number of subdomains assigned

info

integer

(OUT)

Return status, 0 on success

cost

real array, (:), (IN)

The estimated cost associated with the subdomains

nneigh

integer array, (:), (IN)

The number of neighbours of a subdomain

ineigh

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

Pointers to these neighbours

nsubs

integer, , (IN)

Total number of subdomains

sub2proc

integer array, (:), no intent declared

Full list of processor affiliation of subdomains

isublist

integer array, (:), no intent declared

List of subdomains assigned to the local processors

nsublist

integer, , (OUT)

The number of subdomains assigned

info

integer, , (OUT)

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