|  | 
| subroutine | mod_shape_basic::initialize_shape_circle (shape) | 
|  | Initialize the circle/sphere. 
 | 
|  | 
| subroutine | mod_shape_basic::copy_shape_circle (shape, copy) | 
|  | Copy the circle/sphere. 
 | 
|  | 
| logical pure function | mod_shape_basic::shape_circle_is_inside (shape, point) | 
|  | Check if a point lies inside the circle/sphere. 
 | 
|  | 
| subroutine | mod_shape_basic::shape_circle_get_samples_inside (shape, i, j, k, n, n_samples, samples) | 
|  | Check if a given number of point lies in a circle/sphere. 
 | 
|  | 
| pure subroutine | mod_shape_basic::shape_circle_get_distance (shape, point, distance, direction) | 
|  | Compute the signed distance and the signed direction from a point to the circle/sphere. 
 | 
|  | 
| subroutine | mod_shape_basic::initialize_shape_rectangle (shape) | 
|  | Initialize the rectangle/rectangular cuboid. 
 | 
|  | 
| subroutine | mod_shape_basic::copy_shape_rectangle (shape, copy) | 
|  | Copy the rectangle. 
 | 
|  | 
| logical pure function | mod_shape_basic::shape_rectangle_is_inside (shape, point) | 
|  | Check if a point lies inside the rectangle/rectangular cuboid. 
 | 
|  | 
| subroutine | mod_shape_basic::shape_rectangle_get_samples_inside (shape, i, j, k, n, n_samples, samples) | 
|  | Check if a given number of point lies in a rectrangle/rectangular cuboid. 
 | 
|  | 
| pure subroutine | mod_shape_basic::shape_rectangle_get_distance (shape, point, distance, direction) | 
|  | Compute the signed distance and the signed direction from a point to the rectangle/rectangular cuboid. 
 | 
|  | 
| subroutine | mod_shape_basic::initialize_shape_halfspace (shape) | 
|  | Initialize the half-space. 
 | 
|  | 
| subroutine | mod_shape_basic::copy_shape_halfspace (shape, copy) | 
|  | Copy the half-space. 
 | 
|  | 
| logical pure function | mod_shape_basic::shape_halfspace_is_inside (shape, point) | 
|  | Check if a point lies inside the half-space. 
 | 
|  | 
| subroutine | mod_shape_basic::shape_halfspace_get_samples_inside (shape, i, j, k, n, n_samples, samples) | 
|  | Check if a given number of point lies in a half-space. 
 | 
|  | 
| pure subroutine | mod_shape_basic::shape_halfspace_get_distance (shape, point, distance, direction) | 
|  | Compute the signed distance and the signed direction from a point to the half-space. 
 | 
|  | 
| subroutine | mod_shape_basic::initialize_shape_cylinder (shape) | 
|  | Initialize the cylinder. 
 | 
|  | 
| subroutine | mod_shape_basic::copy_shape_cylinder (shape, copy) | 
|  | Copy the cylinder. 
 | 
|  | 
| logical pure function | mod_shape_basic::shape_cylinder_is_inside (shape, point) | 
|  | Check if a point lies inside the cylinder (3D only) 
 | 
|  | 
| subroutine | mod_shape_basic::shape_cylinder_get_samples_inside (shape, i, j, k, n, n_samples, samples) | 
|  | Check if a given number of point lies in a cylinder. 
 | 
|  | 
| pure subroutine | mod_shape_basic::shape_cylinder_get_distance (shape, point, distance, direction) | 
|  | Compute the signed distance and the signed direction from a point to the cylinder. 
 | 
|  | 
| subroutine | mod_shape_basic::initialize_shape_torus (shape) | 
|  | Initialize the torus. 
 | 
|  | 
| subroutine | mod_shape_basic::copy_shape_torus (shape, copy) | 
|  | Copy the torus. 
 | 
|  | 
| logical pure function | mod_shape_basic::shape_torus_is_inside (shape, point) | 
|  | Check if a point lies inside the torus (3D only) 
 | 
|  | 
| subroutine | mod_shape_basic::shape_torus_get_samples_inside (shape, i, j, k, n, n_samples, samples) | 
|  | Check if a given number of point lies in a torus. 
 | 
|  | 
| pure subroutine | mod_shape_basic::shape_torus_get_distance (shape, point, distance, direction) | 
|  | Compute the signed distance and the signed direction from a point to the torus. 
 | 
|  | 
| subroutine | mod_shape_basic::initialize_shape_universe (shape) | 
|  | Initialize the universe. 
 | 
|  | 
| subroutine | mod_shape_basic::copy_shape_universe (shape, copy) | 
|  | Copy the universe. 
 | 
|  | 
| logical pure function | mod_shape_basic::shape_universe_is_inside (shape, point) | 
|  | Check if a point lies inside the universe (always true) 
 | 
|  | 
| subroutine | mod_shape_basic::shape_universe_get_samples_inside (shape, i, j, k, n, n_samples, samples) | 
|  | Check if a given number of point lies in the universe (yes, they do!) 
 | 
|  | 
| pure subroutine | mod_shape_basic::shape_universe_get_distance (shape, point, distance, direction) | 
|  | Compute the signed distance and the signed direction from a point to the universe. 
 | 
|  | 
      
        
          | subroutine mod_shape_basic::shape_circle_get_samples_inside | ( | class(t_shape_circle), intent(inout) | shape, | 
        
          |  |  | integer, intent(in) | i, | 
        
          |  |  | integer, intent(in) | j, | 
        
          |  |  | integer, intent(in) | k, | 
        
          |  |  | integer, intent(in) | n, | 
        
          |  |  | integer, intent(in) | n_samples, | 
        
          |  |  | integer, dimension(:,:,:), intent(inout) | samples ) | 
      
 
Check if a given number of point lies in a circle/sphere. 
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level: 
  !!    n_samples = 0   n_samples = 1   n_samples = 2
  !!      ┏━━━━━━━┓       ×━━━×━━━×       ×━×━×━×━×
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┃   ×   ┃       ×   ×   ×       × × × × ×    ...
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┗━━━━━━━┛       ×━━━×━━━×       ×━×━×━×━×
  !! 
- Parameters
- 
  
    | [in,out] | shape | circle/sphere shape |  | [in] | i,j,k | coordinates of the cell |  | [in] | n | value to put where the sample is inside the circle/sphere |  | [in] | n_samples | sampling level (see description) |  | [in,out] | samples | array of the (2*n_samples+1)^d samples |  
 
 
 
      
        
          | subroutine mod_shape_basic::shape_cylinder_get_samples_inside | ( | class(t_shape_cylinder), intent(inout) | shape, | 
        
          |  |  | integer, intent(in) | i, | 
        
          |  |  | integer, intent(in) | j, | 
        
          |  |  | integer, intent(in) | k, | 
        
          |  |  | integer, intent(in) | n, | 
        
          |  |  | integer, intent(in) | n_samples, | 
        
          |  |  | integer, dimension(:,:,:), intent(inout) | samples ) | 
      
 
Check if a given number of point lies in a cylinder. 
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level: 
  !!    n_samples = 0   n_samples = 1   n_samples = 2
  !!      ┏━━━━━━━┓       ×━━━×━━━×       ×━×━×━×━×
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┃   ×   ┃       ×   ×   ×       × × × × ×    ...
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┗━━━━━━━┛       ×━━━×━━━×       ×━×━×━×━×
  !! 
- Parameters
- 
  
    | [in,out] | shape | cylinder shape |  | [in] | i,j,k | coordinates of the cell |  | [in] | n | value to put where the sample is inside the cylinder |  | [in] | n_samples | sampling level (see description) |  | [in,out] | samples | array of the (2*n_samples+1)^d samples |  
 
 
 
      
        
          | subroutine mod_shape_basic::shape_halfspace_get_samples_inside | ( | class(t_shape_halfspace), intent(inout) | shape, | 
        
          |  |  | integer, intent(in) | i, | 
        
          |  |  | integer, intent(in) | j, | 
        
          |  |  | integer, intent(in) | k, | 
        
          |  |  | integer, intent(in) | n, | 
        
          |  |  | integer, intent(in) | n_samples, | 
        
          |  |  | integer, dimension(:,:,:), intent(inout) | samples ) | 
      
 
Check if a given number of point lies in a half-space. 
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level: 
  !!    n_samples = 0   n_samples = 1   n_samples = 2
  !!      ┏━━━━━━━┓       ×━━━×━━━×       ×━×━×━×━×
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┃   ×   ┃       ×   ×   ×       × × × × ×    ...
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┗━━━━━━━┛       ×━━━×━━━×       ×━×━×━×━×
  !! 
- Parameters
- 
  
    | [in,out] | shape | half-space shape |  | [in] | i,j,k | coordinates of the cell |  | [in] | n | value to put where the sample is inside the half-space |  | [in] | n_samples | sampling level (see description) |  | [in,out] | samples | array of the (2*n_samples+1)^d samples |  
 
 
 
      
        
          | subroutine mod_shape_basic::shape_rectangle_get_samples_inside | ( | class(t_shape_rectangle), intent(inout) | shape, | 
        
          |  |  | integer, intent(in) | i, | 
        
          |  |  | integer, intent(in) | j, | 
        
          |  |  | integer, intent(in) | k, | 
        
          |  |  | integer, intent(in) | n, | 
        
          |  |  | integer, intent(in) | n_samples, | 
        
          |  |  | integer, dimension(:,:,:), intent(inout) | samples ) | 
      
 
Check if a given number of point lies in a rectrangle/rectangular cuboid. 
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level: 
  !!    n_samples = 0   n_samples = 1   n_samples = 2
  !!      ┏━━━━━━━┓       ×━━━×━━━×       ×━×━×━×━×
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┃   ×   ┃       ×   ×   ×       × × × × ×    ...
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┗━━━━━━━┛       ×━━━×━━━×       ×━×━×━×━×
  !! 
- Parameters
- 
  
    | [in,out] | shape | rectangle/rectangular cuboid shape |  | [in] | i,j,k | coordinates of the cell |  | [in] | n | value to put where the sample is inside the rectangle/rectangular cuboid |  | [in] | n_samples | sampling level (see description) |  | [in,out] | samples | array of the (2*n_samples+1)^d samples |  
 
 
 
      
        
          | subroutine mod_shape_basic::shape_torus_get_samples_inside | ( | class(t_shape_torus), intent(inout) | shape, | 
        
          |  |  | integer, intent(in) | i, | 
        
          |  |  | integer, intent(in) | j, | 
        
          |  |  | integer, intent(in) | k, | 
        
          |  |  | integer, intent(in) | n, | 
        
          |  |  | integer, intent(in) | n_samples, | 
        
          |  |  | integer, dimension(:,:,:), intent(inout) | samples ) | 
      
 
Check if a given number of point lies in a torus. 
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level: 
  !!    n_samples = 0   n_samples = 1   n_samples = 2
  !!      ┏━━━━━━━┓       ×━━━×━━━×       ×━×━×━×━×
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┃   ×   ┃       ×   ×   ×       × × × × ×    ...
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┗━━━━━━━┛       ×━━━×━━━×       ×━×━×━×━×
  !! 
- Parameters
- 
  
    | [in,out] | shape | torus shape |  | [in] | i,j,k | coordinates of the cell |  | [in] | n | value to put where the sample is inside the torus |  | [in] | n_samples | sampling level (see description) |  | [in,out] | samples | array of the (2*n_samples+1)^d samples |  
 
 
 
      
        
          | subroutine mod_shape_basic::shape_universe_get_samples_inside | ( | class(t_shape_universe), intent(inout) | shape, | 
        
          |  |  | integer, intent(in) | i, | 
        
          |  |  | integer, intent(in) | j, | 
        
          |  |  | integer, intent(in) | k, | 
        
          |  |  | integer, intent(in) | n, | 
        
          |  |  | integer, intent(in) | n_samples, | 
        
          |  |  | integer, dimension(:,:,:), intent(inout) | samples ) | 
      
 
Check if a given number of point lies in the universe (yes, they do!) 
Sample a cell of coordinates (i,j,k) with (2*n_samples+1)^d samples, where d denotes the dimension of the cell. Return a integer array samples containing the value n where the sample is inside the shape.
n_samples is called the sampling level and can take its value in range [0,∞].
Example of sampling for various sampling level: 
  !!    n_samples = 0   n_samples = 1   n_samples = 2
  !!      ┏━━━━━━━┓       ×━━━×━━━×       ×━×━×━×━×
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┃   ×   ┃       ×   ×   ×       × × × × ×    ...
  !!      ┃       ┃       ┃       ┃       × × × × ×
  !!      ┗━━━━━━━┛       ×━━━×━━━×       ×━×━×━×━×
  !! 
- Parameters
- 
  
    | [in,out] | shape | universe shape |  | [in] | i,j,k | coordinates of the cell |  | [in] | n | value to put where the sample is inside the universe |  | [in] | n_samples | sampling level (see description) |  | [in,out] | samples | array of the (2*n_samples+1)^d samples |