This module provides the routine that determines when a tree is done.

name | description |
---|---|

Subroutines contained in this interface:

name | description |
---|---|

This routine decides if a decomposition is done or | |

This routine decides if a decomposition is done or |

This routine decides if a decomposition is done or one or more boxes need further refinement.

Note | |
---|---|

Decomposition is considered done if more boxes than minboxes are present and the variance of the costs of all divisible (i.e. childless and non-empty) boxes is below maxvariance. Alternatively, a decomposition is always done when no more divisible boxes exist or the specified maximum number of levels has been reached. |

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Minimum number of childless boxes of non-zero cost to create. | |||

integer | (IN) | Number of childless boxes with non-zero cost. This is not the | |||

real array | (:) | (IN) | Computational cost associated with each box | ||

integer array | (:) | (IN) | List of divisible boxes. | ||

integer | (IN) | Number of boxes which could be divided further (i.e. length of | |||

integer | (IN) | Number if tree levels (tree depth) so far. | |||

real | (IN) | Maximum variance of cost allowed between boxes. Set to .LE. 0 to | |||

real | (IN) | Maximum allowed cost of a box. Tree will stop if all boxes are | |||

integer | (IN) | Maximum number of levels to be created. Tree stops as soon as | |||

logical | (OUT) |
| |||

integer | (OUT) | Return status, 0 on success |

integer, , (IN)

Minimum number of childless boxes of non-zero cost to create.

integer, , (IN)

Number of childless boxes with non-zero cost. This is not the same as number of divisible boxes as they need not be larger than 2*minboxsize in this case.

real array, `(:)`

, (IN)

Computational cost associated with each box

integer array, `(:)`

, (IN)

List of divisible boxes.

integer, , (IN)

Number of boxes which could be divided further (i.e. length of iboxlist).

integer, , (IN)

Number if tree levels (tree depth) so far.

real, , (IN)

Maximum variance of cost allowed between boxes. Set to .LE. 0 to disable this.

real, , (IN)

Maximum allowed cost of a box. Tree will stop if all boxes are below this cost. If .LE. 0, cost is unlimited.

integer, , (IN)

Maximum number of levels to be created. Tree stops as soon as this is reached. If .LE. 0, levels are unlimited.

logical, , (OUT)

`FALSE`

if no further subdivision is needed, `TRUE`

otherwise.

integer, , (OUT)

Return status, 0 on success

ppm_module_data, ppm_module_error, ppm_module_write, ppm_module_substop, ppm_module_substart

This routine decides if a decomposition is done or one or more boxes need further refinement.

Note | |
---|---|

Decomposition is considered done if more boxes than minboxes are present and the variance of the costs of all divisible (i.e. childless and non-empty) boxes is below maxvariance. Alternatively, a decomposition is always done when no more divisible boxes exist or the specified maximum number of levels has been reached. |

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Minimum number of childless boxes of non-zero cost to create. | |||

integer | (IN) | Number of childless boxes with non-zero cost. This is not the | |||

real array | (:) | (IN) | Computational cost associated with each box | ||

integer array | (:) | (IN) | List of divisible boxes. | ||

integer | (IN) | Number of boxes which could be divided further (i.e. length of | |||

integer | (IN) | Number if tree levels (tree depth) so far. | |||

real | (IN) | Maximum variance of cost allowed between boxes. Set to .LE. 0 to | |||

real | (IN) | Maximum allowed cost of a box. Tree will stop if all boxes are | |||

integer | (IN) | Maximum number of levels to be created. Tree stops as soon as | |||

logical | (OUT) |
| |||

integer | (OUT) | Return status, 0 on success |

integer, , (IN)

Minimum number of childless boxes of non-zero cost to create.

integer, , (IN)

Number of childless boxes with non-zero cost. This is not the same as number of divisible boxes as they need not be larger than 2*minboxsize in this case.

real array, `(:)`

, (IN)

Computational cost associated with each box

integer array, `(:)`

, (IN)

List of divisible boxes.

integer, , (IN)

Number of boxes which could be divided further (i.e. length of iboxlist).

integer, , (IN)

Number if tree levels (tree depth) so far.

real, , (IN)

Maximum variance of cost allowed between boxes. Set to .LE. 0 to disable this.

real, , (IN)

Maximum allowed cost of a box. Tree will stop if all boxes are below this cost. If .LE. 0, cost is unlimited.

integer, , (IN)

Maximum number of levels to be created. Tree stops as soon as this is reached. If .LE. 0, levels are unlimited.

logical, , (OUT)

`FALSE`

if no further subdivision is needed, `TRUE`

otherwise.

integer, , (OUT)

Return status, 0 on success

ppm_module_data, ppm_module_error, ppm_module_write, ppm_module_substop, ppm_module_substart