SABER
type_geom Module Reference

Geometry derived type. More...

Data Types

type  geom_type
 

Functions/Subroutines

subroutine geom_partial_dealloc (geom)
 Release memory (partial) More...
 
subroutine geom_dealloc (geom)
 Release memory. More...
 
subroutine geom_setup (geom, mpl, rng, nam, afunctionspace, fieldset)
 Setup geometry. More...
 
subroutine geom_from_atlas (geom, mpl, afunctionspace, fieldset)
 Set geometry from fieldset. More...
 
subroutine geom_setup_universe (geom, mpl, rng, nam)
 Setup universe. More...
 
subroutine geom_setup_c0 (geom, mpl)
 Setup subset Sc0. More...
 
subroutine geom_setup_tree (geom, mpl)
 Setup tree. More...
 
subroutine geom_setup_meshes (geom, mpl, rng, nam)
 Setup meshes. More...
 
subroutine geom_setup_independent_levels (geom, mpl)
 Setup independent levels. More...
 
subroutine geom_setup_mask_distance (geom, mpl, nam)
 Setup minimum distance to mask. More...
 
subroutine geom_setup_mask_check (geom, mpl, nam)
 Setup mask checking tool. More...
 
subroutine geom_index_from_lonlat (geom, mpl, lon, lat, il0, iproc, ic0a, gmask)
 Get nearest neighbor index from longitude/latitude/level. More...
 
subroutine geom_setup_dirac (geom, mpl, nam)
 Setup dirac indices. More...
 
subroutine geom_check_arc (geom, mpl, il0, lon_s, lat_s, lon_e, lat_e, valid)
 Check if an arc is crossing boundaries. More...
 
subroutine geom_copy_c0a_to_mga_single (geom, mpl, fld_c0a, fld_mga)
 Copy from subset Sc0 to model grid, halo A, single field. More...
 
subroutine geom_copy_c0a_to_mga_all (geom, mpl, nam, fld_c0a, fld_mga)
 Copy from subset Sc0 to model grid, halo A, all fields. More...
 
subroutine geom_copy_mga_to_c0a_real_single (geom, mpl, fld_mga, fld_c0a)
 Copy from model grid to subset Sc0, halo A, real, single field. More...
 
subroutine geom_copy_mga_to_c0a_real_all (geom, mpl, nam, fld_c0a, fld_mga)
 Copy from model grid to subset Sc0, halo A, real, all fields. More...
 
subroutine geom_copy_mga_to_c0a_logical_single (geom, mpl, fld_mga, fld_c0a)
 Copy from model grid to subset Sc0, halo A, logical, single field. More...
 
subroutine geom_copy_mga_to_c0a_logical_all (geom, mpl, nam, fld_c0a, fld_mga)
 Copy from model grid to subset Sc0, halo A, logical, all fields. More...
 
subroutine geom_fieldset_to_c0 (geom, mpl, nam, fieldset, fld_c0a)
 Fieldset to Fortran array on subset Sc0. More...
 
subroutine geom_c0_to_fieldset (geom, mpl, nam, fld_c0a, fieldset)
 Fortran array on subset Sc0 to fieldset. More...
 
subroutine geom_compute_deltas (geom, ic0u, il0, jc0u, jl0, dx, dy, dz)
 Compute deltas for LCT definition. More...
 
subroutine geom_rand_point (geom, mpl, rng, il0, iproc, ic0a, nr)
 Select random valid point on the horizontal grid. More...
 
integer function geom_mg_to_proc (geom, img)
 Conversion from global to processor on model grid. More...
 
integer function geom_c0_to_c0a (geom, ic0)
 Conversion from global to halo A on subset Sc0. More...
 
integer function geom_c0_to_proc (geom, ic0)
 Conversion from global to processor on subset Sc0. More...
 
integer function geom_c0_to_c0u (geom, ic0)
 Conversion from global to universe on subset Sc0. More...
 

Detailed Description

Geometry derived type.

Function/Subroutine Documentation

◆ geom_c0_to_c0a()

integer function type_geom::geom_c0_to_c0a ( class(geom_type), intent(in)  geom,
integer, intent(in)  ic0 
)
private

Conversion from global to halo A on subset Sc0.

Parameters
[in]geomGeometry
[in]ic0Global index

Definition at line 1905 of file type_geom.F90.

◆ geom_c0_to_c0u()

integer function type_geom::geom_c0_to_c0u ( class(geom_type), intent(in)  geom,
integer, intent(in)  ic0 
)
private

Conversion from global to universe on subset Sc0.

Parameters
[in]geomGeometry
[in]ic0Global index

Definition at line 1953 of file type_geom.F90.

◆ geom_c0_to_fieldset()

subroutine type_geom::geom_c0_to_fieldset ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam,
real(kind_real), dimension(geom%nc0a,geom%nl0,nam%nv), intent(in)  fld_c0a,
type(fieldset_type), intent(inout)  fieldset 
)
private

Fortran array on subset Sc0 to fieldset.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]namNamelist
[in]fld_c0aField on subset Sc0, halo A

Definition at line 1774 of file type_geom.F90.

◆ geom_c0_to_proc()

integer function type_geom::geom_c0_to_proc ( class(geom_type), intent(in)  geom,
integer, intent(in)  ic0 
)
private

Conversion from global to processor on subset Sc0.

Parameters
[in]geomGeometry
[in]ic0Global index

Definition at line 1931 of file type_geom.F90.

◆ geom_check_arc()

subroutine type_geom::geom_check_arc ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
integer, intent(in)  il0,
real(kind_real), intent(in)  lon_s,
real(kind_real), intent(in)  lat_s,
real(kind_real), intent(in)  lon_e,
real(kind_real), intent(in)  lat_e,
logical, intent(out)  valid 
)
private

Check if an arc is crossing boundaries.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]il0Level
[in]lon_sFirst point longitude
[in]lat_sFirst point latitude
[in]lon_eSecond point longitude
[in]lat_eSecond point latitude
[out]validTrue for valid arcs

Definition at line 1497 of file type_geom.F90.

Here is the call graph for this function:

◆ geom_compute_deltas()

subroutine type_geom::geom_compute_deltas ( class(geom_type), intent(in)  geom,
integer, intent(in)  ic0u,
integer, intent(in)  il0,
integer, intent(in)  jc0u,
integer, intent(in)  jl0,
real(kind_real), intent(out)  dx,
real(kind_real), intent(out)  dy,
real(kind_real), intent(out)  dz 
)
private

Compute deltas for LCT definition.

Parameters
[in]geomGeometry
[in]ic0uFirst horizontal index, universe
[in]il0First vertical index
[in]jc0uSecond horizontal index, universe
[in]jl0Second vertical index
[out]dxLongitude delta
[out]dyLatitude delta
[out]dzAltitude delta

Definition at line 1811 of file type_geom.F90.

Here is the call graph for this function:

◆ geom_copy_c0a_to_mga_all()

subroutine type_geom::geom_copy_c0a_to_mga_all ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam,
real(kind_real), dimension(geom%nc0a,geom%nl0,nam%nv), intent(in)  fld_c0a,
real(kind_real), dimension(geom%nmga,geom%nl0,nam%nv), intent(out)  fld_mga 
)
private

Copy from subset Sc0 to model grid, halo A, all fields.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]namNamelist
[in]fld_c0aField on subset Sc0, halo A
[out]fld_mgaField on model grid, halo A

Definition at line 1590 of file type_geom.F90.

Here is the caller graph for this function:

◆ geom_copy_c0a_to_mga_single()

subroutine type_geom::geom_copy_c0a_to_mga_single ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
real(kind_real), dimension(geom%nc0a,geom%nl0), intent(in)  fld_c0a,
real(kind_real), dimension(geom%nmga,geom%nl0), intent(out)  fld_mga 
)
private

Copy from subset Sc0 to model grid, halo A, single field.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]fld_c0aField on subset Sc0, halo A
[out]fld_mgaField on model grid, halo A

Definition at line 1551 of file type_geom.F90.

Here is the caller graph for this function:

◆ geom_copy_mga_to_c0a_logical_all()

subroutine type_geom::geom_copy_mga_to_c0a_logical_all ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam,
logical, dimension(geom%nc0a,geom%nl0,nam%nv), intent(out)  fld_c0a,
logical, dimension(geom%nmga,geom%nl0,nam%nv), intent(in)  fld_mga 
)
private

Copy from model grid to subset Sc0, halo A, logical, all fields.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]namNamelist
[in]fld_mgaField on model grid, halo A
[out]fld_c0aField on subset Sc0, halo A

Definition at line 1713 of file type_geom.F90.

Here is the caller graph for this function:

◆ geom_copy_mga_to_c0a_logical_single()

subroutine type_geom::geom_copy_mga_to_c0a_logical_single ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
logical, dimension(geom%nmga,geom%nl0), intent(in)  fld_mga,
logical, dimension(geom%nc0a,geom%nl0), intent(out)  fld_c0a 
)
private

Copy from model grid to subset Sc0, halo A, logical, single field.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]fld_mgaField on model grid, halo A
[out]fld_c0aField on subset Sc0, halo A

Definition at line 1672 of file type_geom.F90.

Here is the caller graph for this function:

◆ geom_copy_mga_to_c0a_real_all()

subroutine type_geom::geom_copy_mga_to_c0a_real_all ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam,
real(kind_real), dimension(geom%nc0a,geom%nl0,nam%nv), intent(out)  fld_c0a,
real(kind_real), dimension(geom%nmga,geom%nl0,nam%nv), intent(in)  fld_mga 
)
private

Copy from model grid to subset Sc0, halo A, real, all fields.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]namNamelist
[in]fld_mgaField on model grid, halo A
[out]fld_c0aField on subset Sc0, halo A

Definition at line 1648 of file type_geom.F90.

Here is the caller graph for this function:

◆ geom_copy_mga_to_c0a_real_single()

subroutine type_geom::geom_copy_mga_to_c0a_real_single ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
real(kind_real), dimension(geom%nmga,geom%nl0), intent(in)  fld_mga,
real(kind_real), dimension(geom%nc0a,geom%nl0), intent(out)  fld_c0a 
)
private

Copy from model grid to subset Sc0, halo A, real, single field.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]fld_mgaField on model grid, halo A
[out]fld_c0aField on subset Sc0, halo A

Definition at line 1614 of file type_geom.F90.

Here is the caller graph for this function:

◆ geom_dealloc()

subroutine type_geom::geom_dealloc ( class(geom_type), intent(inout)  geom)
private

Release memory.

Parameters
[in,out]geomGeometry

Definition at line 237 of file type_geom.F90.

◆ geom_fieldset_to_c0()

subroutine type_geom::geom_fieldset_to_c0 ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam,
type(fieldset_type), intent(in)  fieldset,
real(kind_real), dimension(geom%nc0a,geom%nl0,nam%nv), intent(out)  fld_c0a 
)
private

Fieldset to Fortran array on subset Sc0.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]namNamelist
[out]fld_c0aField on subset Sc0, halo A

Definition at line 1737 of file type_geom.F90.

◆ geom_from_atlas()

subroutine type_geom::geom_from_atlas ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl,
type(atlas_functionspace), intent(in)  afunctionspace,
type(fieldset_type), intent(in), optional  fieldset 
)
private

Set geometry from fieldset.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data
[in]afunctionspaceATLAS function space

Definition at line 375 of file type_geom.F90.

Here is the call graph for this function:

◆ geom_index_from_lonlat()

subroutine type_geom::geom_index_from_lonlat ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
real(kind_real), intent(in)  lon,
real(kind_real), intent(in)  lat,
integer, intent(in)  il0,
integer, intent(out)  iproc,
integer, intent(out)  ic0a,
logical, intent(out)  gmask 
)
private

Get nearest neighbor index from longitude/latitude/level.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in]lonLongitude
[in]latLatitude
[in]il0Level index
[out]iprocTask index
[out]ic0aLocal index
[out]gmaskLocal mask

Definition at line 1361 of file type_geom.F90.

Here is the call graph for this function:

◆ geom_mg_to_proc()

integer function type_geom::geom_mg_to_proc ( class(geom_type), intent(in)  geom,
integer, intent(in)  img 
)
private

Conversion from global to processor on model grid.

Parameters
[in]geomGeometry
[in]imgGlobal index

Definition at line 1883 of file type_geom.F90.

◆ geom_partial_dealloc()

subroutine type_geom::geom_partial_dealloc ( class(geom_type), intent(inout)  geom)
private

Release memory (partial)

Parameters
[in,out]geomGeometry

Definition at line 173 of file type_geom.F90.

◆ geom_rand_point()

subroutine type_geom::geom_rand_point ( class(geom_type), intent(in)  geom,
type(mpl_type), intent(inout)  mpl,
type(rng_type), intent(inout)  rng,
integer, intent(in)  il0,
integer, intent(out)  iproc,
integer, intent(out)  ic0a,
integer, intent(out), optional  nr 
)
private

Select random valid point on the horizontal grid.

Parameters
[in]geomGeometry
[in,out]mplMPI data
[in,out]rngRandom number generator
[in]il0Level
[out]iprocProcessor
[out]ic0aLocal index
[out]nrNumber of random tries

Definition at line 1838 of file type_geom.F90.

◆ geom_setup()

subroutine type_geom::geom_setup ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl,
type(rng_type), intent(inout)  rng,
type(nam_type), intent(in)  nam,
type(atlas_functionspace), intent(in)  afunctionspace,
type(fieldset_type), intent(in), optional  fieldset 
)
private

Setup geometry.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data
[in,out]rngRandom number generator
[in]namNamelist
[in]afunctionspaceATLAS function space
[in]fieldsetFieldset containing geometry elements

Definition at line 257 of file type_geom.F90.

◆ geom_setup_c0()

subroutine type_geom::geom_setup_c0 ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl 
)
private

Setup subset Sc0.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data

Definition at line 649 of file type_geom.F90.

Here is the call graph for this function:

◆ geom_setup_dirac()

subroutine type_geom::geom_setup_dirac ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam 
)
private

Setup dirac indices.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data
[in]namNamelist

Definition at line 1439 of file type_geom.F90.

◆ geom_setup_independent_levels()

subroutine type_geom::geom_setup_independent_levels ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl 
)
private

Setup independent levels.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data

Definition at line 1191 of file type_geom.F90.

◆ geom_setup_mask_check()

subroutine type_geom::geom_setup_mask_check ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam 
)
private

Setup mask checking tool.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data
[in]namNamelist

Definition at line 1297 of file type_geom.F90.

Here is the call graph for this function:

◆ geom_setup_mask_distance()

subroutine type_geom::geom_setup_mask_distance ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl,
type(nam_type), intent(in)  nam 
)
private

Setup minimum distance to mask.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data
[in]namNamelist

Definition at line 1238 of file type_geom.F90.

◆ geom_setup_meshes()

subroutine type_geom::geom_setup_meshes ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl,
type(rng_type), intent(inout)  rng,
type(nam_type), intent(in)  nam 
)
private

Setup meshes.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data
[in,out]rngRandom number generator
[in]namNamelist

Definition at line 1090 of file type_geom.F90.

◆ geom_setup_tree()

subroutine type_geom::geom_setup_tree ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl 
)
private

Setup tree.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data

Definition at line 1067 of file type_geom.F90.

◆ geom_setup_universe()

subroutine type_geom::geom_setup_universe ( class(geom_type), intent(inout)  geom,
type(mpl_type), intent(inout)  mpl,
type(rng_type), intent(inout)  rng,
type(nam_type), intent(in)  nam 
)
private

Setup universe.

Parameters
[in,out]geomGeometry
[in,out]mplMPI data
[in,out]rngRandom number generator
[in]namNamelist

Definition at line 523 of file type_geom.F90.

Here is the call graph for this function: