Skip to content

fossil_curvilinear_block ​

Source: src/lib/fossil_curvilinear_block.f90

Dependencies

Contents ​

Variables ​

NameTypeAttributesDescription
TOPO_BOUNDARYinteger(kind=I4P)parameter
TOPO_ABUTinteger(kind=I4P)parameter
TOPO_PERIODICinteger(kind=I4P)parameter
TOPO_SINGULARinteger(kind=I4P)parameter
BLOCK_STATUS_OKinteger(kind=I4P)parameter
BLOCK_STATUS_BAD_INPUTinteger(kind=I4P)parameter

Derived Types ​

topo_record_t ​

Components ​

NameTypeAttributesDescription
kindinteger(kind=I4P)
faceinteger(kind=I4P)
lointeger(kind=I4P)
hiinteger(kind=I4P)
namecharacter(len=32)
donor_blockinteger(kind=I4P)
donor_faceinteger(kind=I4P)
begininteger(kind=I4P)
donor_begininteger(kind=I4P)
transforminteger(kind=I4P)
collapsedinteger(kind=I4P)
rotationreal(kind=R8P)
translationreal(kind=R8P)

curvilinear_block_t ​

Components ​

NameTypeAttributesDescription
niinteger(kind=I4P)
njinteger(kind=I4P)
nkinteger(kind=I4P)
idinteger(kind=I4P)
namecharacter(len=:)allocatable
xreal(kind=R8P)allocatable
yreal(kind=R8P)allocatable
zreal(kind=R8P)allocatable
nrecinteger(kind=I4P)
rectype(topo_record_t)allocatable
cell_statusinteger(kind=I4P)allocatable
orientreal(kind=R8P)
searchtype(cell_bvh_t)
on_devicelogical
flat_xreal(kind=R8P)allocatable
flat_yreal(kind=R8P)allocatable
flat_zreal(kind=R8P)allocatable

Type-Bound Procedures ​

NameAttributesDescription
initializepass(self)
destroypass(self)
add_recordpass(self)
cells_numberpass(self)
cornerspass(self)
geometrypass(self)
orientationpass(self)
validitypass(self)
build_searchpass(self)
locate_manypass(self)
locate_many_devicepass(self)
enter_devicepass(self)
exit_devicepass(self)
stencilspass(self)
qualitypass(self)

curvilinear_block_2d_t ​

Components ​

NameTypeAttributesDescription
niinteger(kind=I4P)
njinteger(kind=I4P)
idinteger(kind=I4P)
namecharacter(len=:)allocatable
ureal(kind=R8P)allocatable
vreal(kind=R8P)allocatable
nrecinteger(kind=I4P)
rectype(topo_record_t)allocatable
cell_statusinteger(kind=I4P)allocatable
orientreal(kind=R8P)
searchtype(cell_bvh_t)
on_devicelogical
flat_ureal(kind=R8P)allocatable
flat_vreal(kind=R8P)allocatable

Type-Bound Procedures ​

NameAttributesDescription
initializepass(self)
destroypass(self)
add_recordpass(self)
cells_numberpass(self)
cornerspass(self)
geometrypass(self)
orientationpass(self)
validitypass(self)
build_searchpass(self)
locate_manypass(self)
locate_many_devicepass(self)
enter_devicepass(self)
exit_devicepass(self)
stencilspass(self)
qualitypass(self)

vx_t ​

Components ​

NameTypeAttributesDescription
ninteger(kind=I4P)
creal(kind=R8P)allocatable

bv_t ​

Components ​

NameTypeAttributesDescription
minteger(kind=I4P)
idinteger(kind=I4P)allocatable
xsreal(kind=R8P)allocatable

Subroutines ​

initialize_3d ​

fortran
subroutine initialize_3d(self, x, y, z, name, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)inout
xreal(kind=R8P)in
yreal(kind=R8P)in
zreal(kind=R8P)in
namecharacter(len=*)inoptional
statusinteger(kind=I4P)outoptional

Call graph

initialize_2d ​

fortran
subroutine initialize_2d(self, u, v, name, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)inout
ureal(kind=R8P)in
vreal(kind=R8P)in
namecharacter(len=*)inoptional
statusinteger(kind=I4P)outoptional

Call graph

destroy_3d ​

Attributes: elemental

fortran
subroutine destroy_3d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)inout

destroy_2d ​

Attributes: elemental

fortran
subroutine destroy_2d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)inout

add_record_3d ​

Attributes: pure

fortran
subroutine add_record_3d(self, rec)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)inout
rectype(topo_record_t)in

add_record_2d ​

Attributes: pure

fortran
subroutine add_record_2d(self, rec)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)inout
rectype(topo_record_t)in

geometry_3d ​

fortran
subroutine geometry_3d(self, volume, centroid, face_i, face_j, face_k)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
volumereal(kind=R8P)outallocatable, optional
centroidreal(kind=R8P)outallocatable, optional
face_ireal(kind=R8P)outallocatable, optional
face_jreal(kind=R8P)outallocatable, optional
face_kreal(kind=R8P)outallocatable, optional

Call graph

geometry_2d ​

fortran
subroutine geometry_2d(self, area, centroid, face_i, face_j)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
areareal(kind=R8P)outallocatable, optional
centroidreal(kind=R8P)outallocatable, optional
face_ireal(kind=R8P)outallocatable, optional
face_jreal(kind=R8P)outallocatable, optional

Call graph

validity_3d ​

fortran
subroutine validity_3d(self, status, min_jacobian, orientation)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
statusinteger(kind=I4P)outallocatable
min_jacobianreal(kind=R8P)outallocatable, optional
orientationreal(kind=R8P)inoptional

Call graph

validity_2d ​

fortran
subroutine validity_2d(self, status, min_jacobian, orientation)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
statusinteger(kind=I4P)outallocatable
min_jacobianreal(kind=R8P)outallocatable, optional
orientationreal(kind=R8P)inoptional

Call graph

build_search_3d ​

fortran
subroutine build_search_3d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)inout

Call graph

build_search_2d ​

fortran
subroutine build_search_2d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)inout

Call graph

locate_many_3d ​

fortran
subroutine locate_many_3d(self, px, py, pz, cell, xi, status, walk, start, jumps, fallbacks)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
pxreal(kind=R8P)in
pyreal(kind=R8P)in
pzreal(kind=R8P)in
cellinteger(kind=I4P)outallocatable
xireal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable
walklogicalinoptional
startinteger(kind=I4P)inoptional
jumpsinteger(kind=I4P)outoptional
fallbacksinteger(kind=I4P)outoptional

Call graph

locate_many_2d ​

fortran
subroutine locate_many_2d(self, pu, pv, cell, xi, status, walk, start, jumps, fallbacks)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
cellinteger(kind=I4P)outallocatable
xireal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable
walklogicalinoptional
startinteger(kind=I4P)inoptional
jumpsinteger(kind=I4P)outoptional
fallbacksinteger(kind=I4P)outoptional

Call graph

enter_device_3d ​

fortran
subroutine enter_device_3d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)inout

exit_device_3d ​

fortran
subroutine exit_device_3d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)inout

enter_device_2d ​

fortran
subroutine enter_device_2d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)inout

exit_device_2d ​

fortran
subroutine exit_device_2d(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)inout

locate_many_device_3d ​

fortran
subroutine locate_many_device_3d(self, px, py, pz, cell, xi, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)inouttarget
pxreal(kind=R8P)in
pyreal(kind=R8P)in
pzreal(kind=R8P)in
cellinteger(kind=I4P)outallocatable
xireal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable

Call graph

locate_many_device_2d ​

fortran
subroutine locate_many_device_2d(self, pu, pv, cell, xi, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)inouttarget
pureal(kind=R8P)in
pvreal(kind=R8P)in
cellinteger(kind=I4P)outallocatable
xireal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable

Call graph

walk_3d ​

fortran
subroutine walk_3d(self, p, c0, cell, xi, done, jumps)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
preal(kind=R8P)in
c0integer(kind=I4P)in
cellinteger(kind=I4P)out
xireal(kind=R8P)out
donelogicalout
jumpsinteger(kind=I4P)inout

Call graph

walk_2d ​

fortran
subroutine walk_2d(self, p, c0, cell, xi, done, jumps)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
preal(kind=R8P)in
c0integer(kind=I4P)in
cellinteger(kind=I4P)out
xireal(kind=R8P)out
donelogicalout
jumpsinteger(kind=I4P)inout

Call graph

locate_in_blocks ​

fortran
subroutine locate_in_blocks(blocks, px, py, pz, block, cell, xi, status)

Arguments

NameTypeIntentAttributesDescription
blockstype(curvilinear_block_t)in
pxreal(kind=R8P)in
pyreal(kind=R8P)in
pzreal(kind=R8P)in
blockinteger(kind=I4P)outallocatable
cellinteger(kind=I4P)outallocatable
xireal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable

Call graph

locate_in_blocks_2d ​

fortran
subroutine locate_in_blocks_2d(blocks, pu, pv, block, cell, xi, status)

Arguments

NameTypeIntentAttributesDescription
blockstype(curvilinear_block_2d_t)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
blockinteger(kind=I4P)outallocatable
cellinteger(kind=I4P)outallocatable
xireal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable

Call graph

stencils_3d ​

fortran
subroutine stencils_3d(self, cell, xi, q, nodes, weights, status, order_matched, reduce, xi_matched)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
cellinteger(kind=I4P)in
xireal(kind=R8P)in
qinteger(kind=I4P)in
nodesinteger(kind=I4P)outallocatable
weightsreal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable
order_matchedlogicalinoptional
reducelogicalinoptional
xi_matchedreal(kind=R8P)outallocatable, optional

Call graph

map_tensor_3d ​

fortran
subroutine map_tensor_3d(self, st0, qq, nd, sh, marked)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
st0integer(kind=I4P)in
qqinteger(kind=I4P)in
ndinteger(kind=I4P)out
shreal(kind=R8P)out
markedlogicalout

Call graph

map_vertex_3d ​

fortran
subroutine map_vertex_3d(self, m, shift, ok, bad)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
minteger(kind=I4P)inout
shiftreal(kind=R8P)out
oklogicalout
badinteger(kind=I4P)out

Call graph

stencils_2d ​

fortran
subroutine stencils_2d(self, cell, xi, q, nodes, weights, status, order_matched, reduce, xi_matched)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
cellinteger(kind=I4P)in
xireal(kind=R8P)in
qinteger(kind=I4P)in
nodesinteger(kind=I4P)outallocatable
weightsreal(kind=R8P)outallocatable
statusinteger(kind=I4P)outallocatable
order_matchedlogicalinoptional
reducelogicalinoptional
xi_matchedreal(kind=R8P)outallocatable, optional

Call graph

map_tensor_2d ​

fortran
subroutine map_tensor_2d(self, st0, qq, nd, sh, marked)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
st0integer(kind=I4P)in
qqinteger(kind=I4P)in
ndinteger(kind=I4P)out
shreal(kind=R8P)out
markedlogicalout

Call graph

quality_3d ​

fortran
subroutine quality_3d(self, skewness, orthogonality, aspect, warp, min_jacobian)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
skewnessreal(kind=R8P)outallocatable, optional
orthogonalityreal(kind=R8P)outallocatable, optional
aspectreal(kind=R8P)outallocatable, optional
warpreal(kind=R8P)outallocatable, optional
min_jacobianreal(kind=R8P)outallocatable, optional

Call graph

quality_2d ​

fortran
subroutine quality_2d(self, skewness, orthogonality, aspect, min_jacobian)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
skewnessreal(kind=R8P)outallocatable, optional
orthogonalityreal(kind=R8P)outallocatable, optional
aspectreal(kind=R8P)outallocatable, optional
min_jacobianreal(kind=R8P)outallocatable, optional

Call graph

detect_topology ​

fortran
subroutine detect_topology(blocks, tolerance, translations)

Arguments

NameTypeIntentAttributesDescription
blockstype(curvilinear_block_t)inout
tolerancereal(kind=R8P)inoptional
translationsreal(kind=R8P)inoptional

Call graph

detect_topology_2d ​

fortran
subroutine detect_topology_2d(blocks, tolerance, translations)

Arguments

NameTypeIntentAttributesDescription
blockstype(curvilinear_block_2d_t)inout
tolerancereal(kind=R8P)inoptional
translationsreal(kind=R8P)inoptional

Call graph

detect_core ​

fortran
subroutine detect_core(vx, dm, tolerance, translations, found, owner)

Arguments

NameTypeIntentAttributesDescription
vxtype(vx_t)in
dminteger(kind=I4P)in
tolerancereal(kind=R8P)inoptional
translationsreal(kind=R8P)inoptional
foundtype(topo_record_t)outallocatable
ownerinteger(kind=I4P)outallocatable

Call graph

face_ranges ​

fortran
subroutine face_ranges(vx, dm, bv, tol, b, f, shift, periodic, covered, found, owner)

Arguments

NameTypeIntentAttributesDescription
vxtype(vx_t)in
dminteger(kind=I4P)in
bvtype(bv_t)in
tolreal(kind=R8P)in
binteger(kind=I4P)in
finteger(kind=I4P)in
shiftreal(kind=R8P)in
periodiclogicalin
coveredlogicalinoutallocatable
foundtype(topo_record_t)inoutallocatable
ownerinteger(kind=I4P)inoutallocatable

Call graph

seed_record ​

fortran
subroutine seed_record(vx, dm, bv, tol, b, f, p, shift, rec, ok)

Arguments

NameTypeIntentAttributesDescription
vxtype(vx_t)in
dminteger(kind=I4P)in
bvtype(bv_t)in
tolreal(kind=R8P)in
binteger(kind=I4P)in
finteger(kind=I4P)in
pinteger(kind=I4P)in
shiftreal(kind=R8P)in
rectype(topo_record_t)out
oklogicalout

Call graph

grow_record ​

fortran
subroutine grow_record(vx, dm, tol, b, f, shift, rec)

Arguments

NameTypeIntentAttributesDescription
vxtype(vx_t)in
dminteger(kind=I4P)in
tolreal(kind=R8P)in
binteger(kind=I4P)in
finteger(kind=I4P)in
shiftreal(kind=R8P)in
rectype(topo_record_t)inout

Call graph

unique_image ​

fortran
subroutine unique_image(vx, bv, tol, b, p, shift, t, uniq)

Arguments

NameTypeIntentAttributesDescription
vxtype(vx_t)in
bvtype(bv_t)in
tolreal(kind=R8P)in
binteger(kind=I4P)in
pinteger(kind=I4P)in
shiftreal(kind=R8P)in
tinteger(kind=I4P)out
uniqlogicalout

Call graph

face_range ​

Attributes: pure

fortran
subroutine face_range(n, f, lo, hi)

Arguments

NameTypeIntentAttributesDescription
ninteger(kind=I4P)in
finteger(kind=I4P)in
lointeger(kind=I4P)out
hiinteger(kind=I4P)out

Call graph

face_cover ​

fortran
subroutine face_cover(n, f, covered)

Arguments

NameTypeIntentAttributesDescription
ninteger(kind=I4P)in
finteger(kind=I4P)in
coveredlogicaloutallocatable

Call graph

boundary_vertices ​

fortran
subroutine boundary_vertices(vx, dm, bv)

Arguments

NameTypeIntentAttributesDescription
vxtype(vx_t)in
dminteger(kind=I4P)in
bvtype(bv_t)out

Call graph

merge_sort ​

Attributes: recursive

fortran
subroutine merge_sort(key, ids, perm, tmp, lo, hi)

Arguments

NameTypeIntentAttributesDescription
keyreal(kind=R8P)in
idsinteger(kind=I4P)in
perminteger(kind=I4P)inout
tmpinteger(kind=I4P)inout
lointeger(kind=I4P)in
hiinteger(kind=I4P)in

Call graph

Functions ​

cells_number_3d ​

Attributes: elemental

Returns: integer(kind=i4p)

fortran
function cells_number_3d(self) result(n)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in

cells_number_2d ​

Attributes: elemental

Returns: integer(kind=i4p)

fortran
function cells_number_2d(self) result(n)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in

record_map ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function record_map(rec, p) result(q)

Arguments

NameTypeIntentAttributesDescription
rectype(topo_record_t)in
pinteger(kind=I4P)in

Call graph

corners_3d ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function corners_3d(self, i, j, k) result(c)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
iinteger(kind=I4P)in
jinteger(kind=I4P)in
kinteger(kind=I4P)in

corners_2d ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function corners_2d(self, i, j) result(c)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
iinteger(kind=I4P)in
jinteger(kind=I4P)in

vtx ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function vtx(self, i, j, k) result(p)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
iinteger(kind=I4P)in
jinteger(kind=I4P)in
kinteger(kind=I4P)in

Call graph

orientation_3d ​

Returns: real(kind=r8p)

fortran
function orientation_3d(self) result(o)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in

Call graph

orientation_2d ​

Returns: real(kind=r8p)

fortran
function orientation_2d(self) result(o)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in

Call graph

cross_record_3d ​

Returns: logical

fortran
function cross_record_3d(self, ijk, a, s, cand) result(ok)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_t)in
ijkinteger(kind=I4P)in
ainteger(kind=I4P)in
sinteger(kind=I4P)in
candinteger(kind=I4P)out

Call graph

contains_2d ​

Returns: logical

fortran
function contains_2d(self, ij, p, on_edge) result(yes)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
ijinteger(kind=I4P)in
preal(kind=R8P)in
on_edgelogicalout

Call graph

cross_record_2d ​

Returns: logical

fortran
function cross_record_2d(self, ij, a, s, cand) result(ok)

Arguments

NameTypeIntentAttributesDescription
selfclass(curvilinear_block_2d_t)in
ijinteger(kind=I4P)in
ainteger(kind=I4P)in
sinteger(kind=I4P)in
candinteger(kind=I4P)out

Call graph

linear_to_ijk ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function linear_to_ijk(c, ni, nj) result(ijk)

Arguments

NameTypeIntentAttributesDescription
cinteger(kind=I4P)in
niinteger(kind=I4P)in
njinteger(kind=I4P)in

Call graph

line_maps ​

Returns: logical

fortran
function line_maps(vx, tol, b, shift, rec, lo, hi) result(ok)

Arguments

NameTypeIntentAttributesDescription
vxtype(vx_t)in
tolreal(kind=R8P)in
binteger(kind=I4P)in
shiftreal(kind=R8P)in
rectype(topo_record_t)in
lointeger(kind=I4P)in
hiinteger(kind=I4P)in

Call graph

face_collapses ​

Returns: logical

fortran
function face_collapses(v, f, a, tol) result(yes)

Arguments

NameTypeIntentAttributesDescription
vtype(vx_t)in
finteger(kind=I4P)in
ainteger(kind=I4P)in
tolreal(kind=R8P)in

Call graph

coincide ​

Attributes: pure

Returns: logical

fortran
function coincide(p, q, tol) result(yes)

Arguments

NameTypeIntentAttributesDescription
preal(kind=R8P)in
qreal(kind=R8P)in
tolreal(kind=R8P)in

Call graph

precedes ​

Attributes: pure

Returns: logical

fortran
function precedes(ka, ia, kb, ib) result(yes)

Arguments

NameTypeIntentAttributesDescription
kareal(kind=R8P)in
iainteger(kind=I4P)in
kbreal(kind=R8P)in
ibinteger(kind=I4P)in

Call graph

lower_bound ​

Attributes: pure

Returns: integer(kind=i4p)

fortran
function lower_bound(xs, v) result(e)

Arguments

NameTypeIntentAttributesDescription
xsreal(kind=R8P)in
vreal(kind=R8P)in

Call graph