FE-Project
Loading...
Searching...
No Matches
scale_mesh_cubedspheredom3d::meshcubedspheredom3d Type Reference

Derived type to manage a cubed-sphere 3D computational domain. More...

Inheritance diagram for scale_mesh_cubedspheredom3d::meshcubedspheredom3d:
scale_mesh_base3d::meshbase3d scale_mesh_base::meshbase

Public Member Functions

procedure init (this, negx, negy, negz, rplanet, dom_zmin, dom_zmax, refelem, nlocalmeshperprc, nproc, myrank, fz, shallow_approx)
 Initialize an object to manage a cubed-sphere 3D computational domain.
procedure final (this)
 Finalize an object managing a cubed-sphere 3D computational domain.
procedure generate (this)
 Generate the cubed-sphere 3D computational domain.
procedure assigndomid (this, nprcx_lc, nprcy_lc, nprcz_lc, tileid_table, panelid_table, pi_table, pj_table, pk_table)
procedure getmesh2d (this, ptr_mesh2d)
procedure set_geometric_with_vcoord (this, lcdomid, gsqrtv_lc, zlev_lc, g13_lc, g23_lc)
 Set the geometric information of the local mesh with the vertical coordinate transformation.
Public Member Functions inherited from scale_mesh_base3d::meshbase3d
procedure(meshbase3d_generate), deferred generate meshbase3d_generate
procedure(meshbase3d_getmesh2d), deferred getmesh2d meshbase3d_getmesh2d
procedure(meshbase3d_set_geometric_with_vcoord), deferred set_geometric_with_vcoord meshbase3d_set_geometric_with_vcoord
procedure getlocalmesh (this, id, ptr_lcmesh)
Public Member Functions inherited from scale_mesh_base::meshbase
procedure(meshbase_get_localmesh), deferred getlocalmesh meshbase_get_localmesh
procedure setdiminfo (this, dimid, name, unit, desc, positive_down)

Public Attributes

integer negx
 Number of elements in X direction in a panel of the cubed-sphere mesh.
integer negy
 Number of elements in Y direction in a panel of the cubed-sphere mesh.
integer negz
 Number of elements in Z direction in a panel of the cubed-sphere mesh.
real(rp), public xmin_gl
 Minimum x-coordinate in a panel of the cubed-sphere mesh.
real(rp), public xmax_gl
 Maximum x-coordinate in a panel of the cubed-sphere mesh.
real(rp), public ymin_gl
 Minimum y-coordinate in a panel of the cubed-sphere mesh.
real(rp), public ymax_gl
 Maximum y-coordinate in a panel of the cubed-sphere mesh.
real(rp), public zmin_gl
 Minimum z-coordinate of the global domain.
real(rp), public zmax_gl
 Maximum z-coordinate of the global domain.
real(rp), dimension(:), allocatable fz
integer, dimension(:,:,:,:), allocatable rcdomijkp2lcmeshid
 Mapping from (i,j,k,panel) to local mesh ID.
real(rp) rplanet
 Radius of the planet (or sphere) for the cubed-sphere mesh.
type(meshcubedspheredom2d) mesh2d
type(quadrilateralelement) refelem2d
logical shallow_approx
 Flag to indicate if the shallow water approximation is used.
Public Attributes inherited from scale_mesh_base3d::meshbase3d
type(localmesh3d), dimension(:), allocatable lcmesh_list
type(elementbase3d), pointer refelem3d
Public Attributes inherited from scale_mesh_base::meshbase
integer local_mesh_num
 Number of local meshes in each MPI process.
integer prc_num
 Number of MPI processes.
integer local_mesh_num_global
 Total number of local meshes across all MPI processes.
integer, dimension(:,:), allocatable tileid_globalmap
integer, dimension(:,:), allocatable tilefaceid_globalmap
integer, dimension(:,:), allocatable tilepanelid_globalmap
integer, dimension(:), allocatable tileid_global2localmap
integer, dimension(:), allocatable prcrank_globalmap
class(elementbase), pointer refelem
 Pointer to an object with a reference element.
type(meshdiminfo), dimension(:), allocatable diminfo
 Array of information for each dimension.
real(rp) dom_vol
 Total volume of the computational domain.
logical isgenerated
 Flag whether the mesh is generated.

Detailed Description

Derived type to manage a cubed-sphere 3D computational domain.

Definition at line 48 of file scale_mesh_cubedspheredom3d.F90.

Member Function/Subroutine Documentation

◆ init()

procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::init ( class(meshcubedspheredom3d), intent(inout) this,
integer, intent(in) negx,
integer, intent(in) negy,
integer, intent(in) negz,
real(rp), intent(in) rplanet,
real(rp), intent(in) dom_zmin,
real(rp), intent(in) dom_zmax,
type(hexahedralelement), intent(in), target refelem,
integer, intent(in) nlocalmeshperprc,
integer, intent(in), optional nproc,
integer, intent(in), optional myrank,
real(rp), dimension(negz+1), intent(in), optional fz,
logical, intent(in), optional shallow_approx )

Initialize an object to manage a cubed-sphere 3D computational domain.

Definition at line 71 of file scale_mesh_cubedspheredom3d.F90.

◆ final()

procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::final ( class(meshcubedspheredom3d), intent(inout) this)

Finalize an object managing a cubed-sphere 3D computational domain.

Definition at line 72 of file scale_mesh_cubedspheredom3d.F90.

◆ generate()

procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::generate ( class(meshcubedspheredom3d), intent(inout), target this)

Generate the cubed-sphere 3D computational domain.

Definition at line 73 of file scale_mesh_cubedspheredom3d.F90.

◆ assigndomid()

procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::assigndomid ( class(meshcubedspheredom3d), intent(inout), target this,
integer, intent(in) nprcx_lc,
integer, intent(in) nprcy_lc,
integer, intent(in) nprcz_lc,
integer, dimension(this%local_mesh_num, this%prc_num), intent(out) tileid_table,
integer, dimension(this%local_mesh_num*this%prc_num), intent(out) panelid_table,
integer, dimension(this%local_mesh_num*this%prc_num), intent(out) pi_table,
integer, dimension(this%local_mesh_num*this%prc_num), intent(out) pj_table,
integer, dimension(this%local_mesh_num*this%prc_num), intent(out) pk_table )

Definition at line 74 of file scale_mesh_cubedspheredom3d.F90.

◆ getmesh2d()

procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::getmesh2d ( class(meshcubedspheredom3d), intent(in), target this,
class(meshbase2d), intent(out), pointer ptr_mesh2d )

Definition at line 75 of file scale_mesh_cubedspheredom3d.F90.

◆ set_geometric_with_vcoord()

procedure scale_mesh_cubedspheredom3d::meshcubedspheredom3d::set_geometric_with_vcoord ( class(meshcubedspheredom3d), intent(inout), target this,
integer, intent(in) lcdomid,
real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) gsqrtv_lc,
real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) zlev_lc,
real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) g13_lc,
real(rp), dimension(this%refelem3d%np,this%lcmesh_list(lcdomid)%nea), intent(in) g23_lc )

Set the geometric information of the local mesh with the vertical coordinate transformation.

Definition at line 76 of file scale_mesh_cubedspheredom3d.F90.

Member Data Documentation

◆ negx

integer scale_mesh_cubedspheredom3d::meshcubedspheredom3d::negx

Number of elements in X direction in a panel of the cubed-sphere mesh.

Definition at line 49 of file scale_mesh_cubedspheredom3d.F90.

49 integer :: NeGX !< Number of elements in X direction in a panel of the cubed-sphere mesh

◆ negy

integer scale_mesh_cubedspheredom3d::meshcubedspheredom3d::negy

Number of elements in Y direction in a panel of the cubed-sphere mesh.

Definition at line 50 of file scale_mesh_cubedspheredom3d.F90.

50 integer :: NeGY !< Number of elements in Y direction in a panel of the cubed-sphere mesh

◆ negz

integer scale_mesh_cubedspheredom3d::meshcubedspheredom3d::negz

Number of elements in Z direction in a panel of the cubed-sphere mesh.

Definition at line 51 of file scale_mesh_cubedspheredom3d.F90.

51 integer :: NeGZ !< Number of elements in Z direction in a panel of the cubed-sphere mesh

◆ xmin_gl

real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::xmin_gl

Minimum x-coordinate in a panel of the cubed-sphere mesh.

Definition at line 53 of file scale_mesh_cubedspheredom3d.F90.

53 real(RP), public :: xmin_gl !< Minimum x-coordinate in a panel of the cubed-sphere mesh

◆ xmax_gl

real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::xmax_gl

Maximum x-coordinate in a panel of the cubed-sphere mesh.

Definition at line 54 of file scale_mesh_cubedspheredom3d.F90.

54 real(RP), public :: xmax_gl !< Maximum x-coordinate in a panel of the cubed-sphere mesh

◆ ymin_gl

real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::ymin_gl

Minimum y-coordinate in a panel of the cubed-sphere mesh.

Definition at line 55 of file scale_mesh_cubedspheredom3d.F90.

55 real(RP), public :: ymin_gl !< Minimum y-coordinate in a panel of the cubed-sphere mesh

◆ ymax_gl

real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::ymax_gl

Maximum y-coordinate in a panel of the cubed-sphere mesh.

Definition at line 56 of file scale_mesh_cubedspheredom3d.F90.

56 real(RP), public :: ymax_gl !< Maximum y-coordinate in a panel of the cubed-sphere mesh

◆ zmin_gl

real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::zmin_gl

Minimum z-coordinate of the global domain.

Definition at line 57 of file scale_mesh_cubedspheredom3d.F90.

57 real(RP), public :: zmin_gl !< Minimum z-coordinate of the global domain

◆ zmax_gl

real(rp), public scale_mesh_cubedspheredom3d::meshcubedspheredom3d::zmax_gl

Maximum z-coordinate of the global domain.

Definition at line 58 of file scale_mesh_cubedspheredom3d.F90.

58 real(RP), public :: zmax_gl !< Maximum z-coordinate of the global domain

◆ fz

real(rp), dimension(:), allocatable scale_mesh_cubedspheredom3d::meshcubedspheredom3d::fz

Definition at line 60 of file scale_mesh_cubedspheredom3d.F90.

60 real(RP), allocatable :: FZ(:)

◆ rcdomijkp2lcmeshid

integer, dimension(:,:,:,:), allocatable scale_mesh_cubedspheredom3d::meshcubedspheredom3d::rcdomijkp2lcmeshid

Mapping from (i,j,k,panel) to local mesh ID.

Definition at line 62 of file scale_mesh_cubedspheredom3d.F90.

62 integer, allocatable :: rcdomIJKP2LCMeshID(:,:,:,:) !< Mapping from (i,j,k,panel) to local mesh ID

◆ rplanet

real(rp) scale_mesh_cubedspheredom3d::meshcubedspheredom3d::rplanet

Radius of the planet (or sphere) for the cubed-sphere mesh.

Definition at line 64 of file scale_mesh_cubedspheredom3d.F90.

64 real(RP) :: RPlanet !< Radius of the planet (or sphere) for the cubed-sphere mesh

◆ mesh2d

type(meshcubedspheredom2d) scale_mesh_cubedspheredom3d::meshcubedspheredom3d::mesh2d

Definition at line 66 of file scale_mesh_cubedspheredom3d.F90.

66 type(MeshCubedSphereDom2D) :: mesh2D

◆ refelem2d

type(quadrilateralelement) scale_mesh_cubedspheredom3d::meshcubedspheredom3d::refelem2d

Definition at line 67 of file scale_mesh_cubedspheredom3d.F90.

67 type(QuadrilateralElement) :: refElem2D

◆ shallow_approx

logical scale_mesh_cubedspheredom3d::meshcubedspheredom3d::shallow_approx

Flag to indicate if the shallow water approximation is used.

Definition at line 69 of file scale_mesh_cubedspheredom3d.F90.

69 logical :: shallow_approx !< Flag to indicate if the shallow water approximation is used

The documentation for this type was generated from the following file: