mesh_base.f90 File Reference

Go to the source code of this file.

Data Types

type  mesh_base_mod::fargo_base
 base class for fargo transport properties and methods More...
 
type  mesh_base_mod::mesh_base
 mesh data structure More...
 
interface  mesh_base_mod::TensorDivergence3D
 
interface  mesh_base_mod::VectorDivergence3D
 
interface  mesh_base_mod::VectorDivergence2D_1
 
interface  mesh_base_mod::TensorDivergence2D_1
 
interface  mesh_base_mod::Finalize
 

Modules

module  mesh_base_mod
 basic mesh module
 

Functions/Subroutines

recursive subroutine decompose (pi, pj, pk)
 searches for the best domain decomposition More...
 

Public Attributes

mesh types

integer, parameter mesh_base_mod::midpoint = 1
 use midpoint rule to approximate flux integrals More...
 
integer, dimension(3), parameter mesh_base_mod::nfaces = (/ 2, 4, 6 /)
 number of faces More...
 
integer, dimension(3), parameter mesh_base_mod::ncorners = (/ 2, 4, 8 /)
 number of corners More...
 
integer, parameter mesh_base_mod::west = 1
 named constant for western boundary More...
 
integer, parameter mesh_base_mod::east = 2
 named constant for eastern boundary More...
 
integer, parameter mesh_base_mod::south = 3
 named constant for southern boundary More...
 
integer, parameter mesh_base_mod::north = 4
 named constant for northern boundary More...
 
integer, parameter mesh_base_mod::bottom = 5
 named constant for bottom boundary More...
 
integer, parameter mesh_base_mod::top = 6
 named constant for top boundary More...
 
integer, parameter mesh_base_mod::vector_x = INT(B'001')
 flags to check which vector components are enabled More...
 
integer, parameter mesh_base_mod::vector_y = INT(B'010')
 
integer, parameter mesh_base_mod::vector_z = INT(B'100')
 

Variables in Parallel Mode

subroutine mesh_base_mod::initmesh (this, config, IO, mtype, mname)
 Constructor of generic mesh module. More...
 
subroutine mesh_base_mod::setoutput (this, config, IO)
 Setup mesh fields for i/o. More...
 
subroutine mesh_base_mod::calculaterotation (this)
 initialize array for rotation angle More...
 
pure logical function mesh_base_mod::internalpoint (this, x, y, z, mask)
 Check if a given coordinate pair represents an internal point. More...
 
subroutine mesh_base_mod::initmesh_parallel (this, config)
 Initialize MPI (parallel mode only) More...
 
subroutine mesh_base_mod::calculatedecomposition (ni, nj, nk, ginum, pi, pj, pk)
 return the best partitioning of processes More...
 
pure subroutine getcosts (n1, n2, n3, p1, p2, p3, bl, vl)
 
real function, dimension(:,:,:), pointer mesh_base_mod::remapbounds_1 (this, array)
 remap lower bounds in the first 2 dimensions of rank 2 subarrays More...
 
real function, dimension(:,:,:,:), pointer mesh_base_mod::remapbounds_2 (this, array)
 remap lower bounds in the first 2 dimensions of rank 3 subarrays More...
 
real function, dimension(:,:,:,:,:), pointer mesh_base_mod::remapbounds_3 (this, array)
 remap lower bounds in the first 2 dimensions of rank 4 subarrays More...
 
real function, dimension(:,:,:,:,:,:), pointer mesh_base_mod::remapbounds_4 (this, array)
 remap lower bounds in the first 2 dimensions of rank 5 subarrays More...
 
subroutine mesh_base_mod::finalize_base (this)
 Destructor of mesh class. More...
 
pure integer function mesh_base_mod::getdirection (this)
 Get the fargo transport direction. More...
 
pure character(len=4) function mesh_base_mod::getdirectionname (this)
 Get the fargo transport direction as string. More...
 

Function/Subroutine Documentation

◆ decompose()

recursive subroutine calculatedecomposition::decompose ( integer, intent(inout)  pi,
integer, intent(inout)  pj,
integer, intent(inout)  pk 
)

searches for the best domain decomposition

Accounts for the costs due to MPI communication (internal boundaries) and optimizes for a given vector length (VECTOR_LENGTH) on vector computers; parameters: svl: system vector length ni : number of grid cells in first dimension nj : number of grid cells in second dimension nk : number of grid cells in third dimension pi : number of processes in first dimension (=NumProcs first call) pj : number of processes in second dimension (=1 at first call) pk : number of processes in third dimension (=1 at first call)

Definition at line 1355 of file mesh_base.f90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getcosts()

pure subroutine calculatedecomposition::getcosts ( integer, intent(in)  n1,
integer, intent(in)  n2,
integer, intent(in)  n3,
integer, intent(in)  p1,
integer, intent(in)  p2,
integer, intent(in)  p3,
integer, intent(out)  bl,
integer, intent(out)  vl 
)
private

Definition at line 1447 of file mesh_base.f90.

Here is the caller graph for this function: