CAM
edge_mod_base Module Reference

Functions/Subroutines

subroutine, public initedgesbuffer (par, edge, elem, nlyr, bptr, rptr)
 
subroutine, public initedgebuffer (par, edge, elem, nlyr, NewMethod)
 
subroutine, public initlongedgebuffer (edge, nlyr)
 
subroutine, public edgedgvpack (edge, v, vlyr, kptr, ielem)
 
subroutine, public freeedgebuffer (edge)
 
subroutine, public freeghostbuffer3d (buffer)
 
subroutine, public freelongedgebuffer (edge)
 
subroutine, public edgevpack (edge, v, vlyr, kptr, ielem)
 Pack edges of v into an edge buffer for boundary exchange. More...
 
subroutine, public edgespack (edge, v, vlyr, kptr, ielem)
 
subroutine, public longedgevpack (edge, v, vlyr, kptr, desc)
 
subroutine, public edgevunpack (edge, v, vlyr, kptr, ielem)
 
subroutine, public edgevunpackvert (edge, v, ielem)
 
subroutine, public edgedgvunpack (edge, v, vlyr, kptr, ielem)
 
subroutine, public edgevunpackmax (edge, v, vlyr, kptr, ielem)
 
subroutine, public edgesunpackmax (edge, v, vlyr, kptr, ielem)
 
subroutine, public edgesunpackmin (edge, v, vlyr, kptr, ielem)
 
subroutine, public edgevunpackmin (edge, v, vlyr, kptr, ielem)
 
subroutine, public longedgevunpackmin (edge, v, vlyr, kptr, desc)
 
subroutine, public ghostvpackfull (edge, v, nc1, nc2, nc, vlyr, kptr, desc)
 Pack edges of v into an edge buffer for boundary exchange. More...
 
subroutine, public ghostvunpackfull (edge, v, nc1, nc2, nc, vlyr, kptr, desc)
 
subroutine, public ghostvpack_unoriented (edge, v, nc, vlyr, kptr, desc)
 Pack edges of v into an edge buffer for boundary exchange. More...
 
subroutine, public ghostvunpack_unoriented (edge, v, nc, vlyr, kptr, desc, GlobalId, u)
 
subroutine, public initghostbuffer3d (ghost, nlyr, np, nhc_in)
 
subroutine, public ghostvpack3d (ghost, v, vlyr, kptr, desc)
 
subroutine, public ghostvunpack3d (g, v, vlyr, kptr, desc, sw, se, nw, ne, mult)
 

Variables

logical, private threadsafe =.true.
 
real(kind=real_kind), parameter, public edgedefaultval = 1.11e+100_real_kind
 

Function/Subroutine Documentation

◆ edgedgvpack()

subroutine, public edge_mod_base::edgedgvpack ( type (edgebuffer_t edge,
real (kind=real_kind), dimension(np,np,vlyr), intent(in)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)
Here is the call graph for this function:

◆ edgedgvunpack()

subroutine, public edge_mod_base::edgedgvunpack ( type (edgebuffer_t), intent(in)  edge,
real (kind=real_kind), dimension(0:np+1,0:np+1,vlyr), intent(out)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)

◆ edgespack()

subroutine, public edge_mod_base::edgespack ( type (edgebuffer_t edge,
real (kind=real_kind), dimension(vlyr), intent(in)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)
Here is the call graph for this function:

◆ edgesunpackmax()

subroutine, public edge_mod_base::edgesunpackmax ( type (edgebuffer_t), intent(in)  edge,
real (kind=real_kind), dimension(vlyr), intent(inout)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)

◆ edgesunpackmin()

subroutine, public edge_mod_base::edgesunpackmin ( type (edgebuffer_t), intent(in)  edge,
real (kind=real_kind), dimension(vlyr), intent(inout)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)

◆ edgevpack()

subroutine, public edge_mod_base::edgevpack ( type (edgebuffer_t edge,
real (kind=real_kind), dimension(np,np,vlyr), intent(in)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)

Pack edges of v into an edge buffer for boundary exchange.

This subroutine packs for one or more vertical layers into an edge buffer. If the buffer associated with edge is not large enough to hold all vertical layers you intent to pack, the method will halt the program with a call to parallel_mod::haltmp().

Parameters
[in]edgeEdge Buffer into which the data will be packed. This buffer must be previously allocated with initEdgeBuffer().
[in]vThe data to be packed.
[in]vlyrNumber of vertical level coming into the subroutine for packing for input v.
[in]kptrVertical pointer to the place in the edge buffer where data will be located.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ edgevunpack()

subroutine, public edge_mod_base::edgevunpack ( type (edgebuffer_t), intent(in)  edge,
real (kind=real_kind), dimension(np,np,vlyr), intent(inout)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)

◆ edgevunpackmax()

subroutine, public edge_mod_base::edgevunpackmax ( type (edgebuffer_t), intent(in)  edge,
real (kind=real_kind), dimension(np,np,vlyr), intent(inout)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)

◆ edgevunpackmin()

subroutine, public edge_mod_base::edgevunpackmin ( type (edgebuffer_t), intent(in)  edge,
real (kind=real_kind), dimension(np,np,vlyr), intent(inout)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
integer, intent(in)  ielem 
)

◆ edgevunpackvert()

subroutine, public edge_mod_base::edgevunpackvert ( type (edgebuffer_t), intent(inout)  edge,
type (cartesian3d_t), dimension(:,:,:), intent(out)  v,
integer, intent(in)  ielem 
)
Here is the call graph for this function:

◆ freeedgebuffer()

subroutine, public edge_mod_base::freeedgebuffer ( type (edgebuffer_t), intent(inout)  edge)

◆ freeghostbuffer3d()

subroutine, public edge_mod_base::freeghostbuffer3d ( type (ghostbuffer3d_t), intent(inout)  buffer)

◆ freelongedgebuffer()

subroutine, public edge_mod_base::freelongedgebuffer ( type (longedgebuffer_t), intent(inout)  edge)

◆ ghostvpack3d()

subroutine, public edge_mod_base::ghostvpack3d ( type (ghostbuffer3d_t ghost,
real (kind=real_kind), dimension(ghost%np, ghost%np, vlyr), intent(in)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t), intent(in)  desc 
)

◆ ghostvpack_unoriented()

subroutine, public edge_mod_base::ghostvpack_unoriented ( type (ghostbuffer3d_t), intent(inout)  edge,
real (kind=real_kind), dimension(nc,nc,vlyr), intent(in)  v,
integer, intent(in)  nc,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t), intent(in)  desc 
)

Pack edges of v into an edge buffer for boundary exchange.

This subroutine packs for one or more vertical layers into an edge buffer. If the buffer associated with edge is not large enough to hold all vertical layers you intent to pack, the method will halt the program with a call to parallel_mod::haltmp().

Parameters
[in]edgeGhost Buffer into which the data will be packed. This buffer must be previously allocated with initghostbuffer().
[in]vThe data to be packed.
[in]vlyrNumber of vertical level coming into the subroutine for packing for input v.
[in]kptrVertical pointer to the place in the edge buffer where data will be located.

◆ ghostvpackfull()

subroutine, public edge_mod_base::ghostvpackfull ( type (ghostbuffer3d_t edge,
real (kind=real_kind), dimension(nc1:nc2,nc1:nc2,vlyr), intent(in)  v,
integer, intent(in)  nc1,
integer, intent(in)  nc2,
integer, intent(in)  nc,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t), intent(in)  desc 
)

Pack edges of v into an edge buffer for boundary exchange.

This subroutine packs for one or more vertical layers into an edge buffer. If the buffer associated with edge is not large enough to hold all vertical layers you intent to pack, the method will halt the program with a call to parallel_mod::haltmp().

Parameters
[in]edgeGhost Buffer into which the data will be packed. This buffer must be previously allocated with initghostbufferfull().
[in]vThe data to be packed.
[in]vlyrNumber of vertical level coming into the subroutine for packing for input v.
[in]kptrVertical pointer to the place in the edge buffer where data will be located.
Here is the call graph for this function:

◆ ghostvunpack3d()

subroutine, public edge_mod_base::ghostvunpack3d ( type (ghostbuffer3d_t), intent(in)  g,
real (kind=real_kind), dimension (1-g%nhc : g%np+g%nhc, 1-g%nhc : g%np+g%nhc, vlyr), intent(inout)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t desc,
real (kind=real_kind), dimension(1-g%nhc : 1, 1-g%nhc : 1, vlyr, max_corner_elem-1), intent(out)  sw,
real (kind=real_kind), dimension( g%np : g%np+g%nhc, 1-g%nhc : 1, vlyr, max_corner_elem-1), intent(out)  se,
real (kind=real_kind), dimension(1-g%nhc : 1, g%np : g%np+g%nhc, vlyr, max_corner_elem-1), intent(out)  nw,
real (kind=real_kind), dimension( g%np : g%np+g%nhc, g%np : g%np+g%nhc, vlyr, max_corner_elem-1), intent(out)  ne,
integer, dimension(5:8), intent(out)  mult 
)

◆ ghostvunpack_unoriented()

subroutine, public edge_mod_base::ghostvunpack_unoriented ( type (ghostbuffer3d_t), intent(inout)  edge,
real (kind=real_kind), dimension(nc,nc,vlyr,*), intent(out)  v,
integer, intent(in)  nc,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t), intent(in)  desc,
integer(kind=int_kind), intent(in)  GlobalId,
real (kind=real_kind), dimension(nc,nc,vlyr), intent(in)  u 
)

◆ ghostvunpackfull()

subroutine, public edge_mod_base::ghostvunpackfull ( type (ghostbuffer3d_t), intent(in)  edge,
real (kind=real_kind), dimension(nc1:nc2,nc1:nc2,vlyr), intent(inout)  v,
integer, intent(in)  nc1,
integer, intent(in)  nc2,
integer, intent(in)  nc,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t desc 
)
Here is the call graph for this function:

◆ initedgebuffer()

subroutine, public edge_mod_base::initedgebuffer ( type (parallel_t), intent(in)  par,
type (edgebuffer_t), intent(out), target  edge,
type (element_t), dimension(:), intent(in)  elem,
integer, intent(in)  nlyr,
logical (kind=log_kind), intent(in), optional  NewMethod 
)
Here is the caller graph for this function:

◆ initedgesbuffer()

subroutine, public edge_mod_base::initedgesbuffer ( type (parallel_t), intent(in)  par,
type (edgebuffer_t), intent(out), target  edge,
type (element_t), dimension(:), intent(in)  elem,
integer, intent(in)  nlyr,
real(kind=real_kind), dimension(:), optional, pointer  bptr,
real(kind=real_kind), dimension(:), optional, pointer  rptr 
)
Here is the call graph for this function:

◆ initghostbuffer3d()

subroutine, public edge_mod_base::initghostbuffer3d ( type (ghostbuffer3d_t), intent(out)  ghost,
integer, intent(in)  nlyr,
integer, intent(in)  np,
integer, intent(in), optional  nhc_in 
)
Here is the call graph for this function:

◆ initlongedgebuffer()

subroutine, public edge_mod_base::initlongedgebuffer ( type (longedgebuffer_t), intent(out)  edge,
integer, intent(in)  nlyr 
)
Here is the call graph for this function:

◆ longedgevpack()

subroutine, public edge_mod_base::longedgevpack ( type (longedgebuffer_t)  edge,
integer (kind=int_kind), dimension(np,np,vlyr), intent(in)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t), intent(in)  desc 
)

◆ longedgevunpackmin()

subroutine, public edge_mod_base::longedgevunpackmin ( type (longedgebuffer_t), intent(in)  edge,
integer (kind=int_kind), dimension(np,np,vlyr), intent(inout)  v,
integer, intent(in)  vlyr,
integer, intent(in)  kptr,
type (edgedescriptor_t), intent(in)  desc 
)

Variable Documentation

◆ edgedefaultval

real(kind=real_kind), parameter, public edge_mod_base::edgedefaultval = 1.11e+100_real_kind

◆ threadsafe

logical, private edge_mod_base::threadsafe =.true.
private