SABER
|
Bump Interpolation module. More...
Data Types | |
type | bump_interpolator |
Functions/Subroutines | |
subroutine | bint_init (self, config, comm, in_funcspace, out_funcspace, masks) |
Linked list implementation. More... | |
subroutine | bint_driver (self, mpl, rng, nam, geom) |
Initialize bump to perform interpolation. More... | |
subroutine | bint_apply (self, infields, outfields) |
Apply interpolation. More... | |
subroutine | apply_interp (self, infield, outfield) |
Subroutine: apply_interp Purpose: low-level routine to apply the interpolation to a single field on a single level. More... | |
subroutine | bint_apply_ad (self, fields_outgrid, fields_ingrid) |
Apply interpolator operator adjoint. More... | |
subroutine | apply_interp_ad (self, fld_outgrid, fld_ingrid) |
Subroutine: apply_interp_ad Purpose: low-level routine to apply the adjoint of the interpolation operator to a single field on a single level. More... | |
subroutine | bint_deallocate_outgrid (self) |
Release memory (partial) by deallocating output grid. More... | |
subroutine | bint_delete (self) |
Release all memory. More... | |
subroutine | dummy (bump) |
Dummy finalization. More... | |
Variables | |
integer, parameter | max_string = 1024 |
type(registry_t), public | bump_interpolator_registry |
Registry for bump_interpolator objects. More... | |
Bump Interpolation module.
|
private |
Subroutine: apply_interp Purpose: low-level routine to apply the interpolation to a single field on a single level.
[in] | infield | input field |
[out] | outfield | output field |
Definition at line 480 of file bump_interpolation_mod.F90.
|
private |
Subroutine: apply_interp_ad Purpose: low-level routine to apply the adjoint of the interpolation operator to a single field on a single level.
[in] | mpl | bump MPI data |
[in] | geom | bump geometry data |
[in] | fld_outgrid | field on output grid |
[out] | fld_ingrid | field on input grid |
Definition at line 609 of file bump_interpolation_mod.F90.
|
private |
Apply interpolation.
[in] | instate | = input fields represented as an atlas fieldset, created from a functionspace |
[out] | outstate | = output fields represented as an atlas fieldset. If the fields that constitudte the fieldset are not already allocated by the caller, then they will be created and allocated by this method. So, the user can optionally pass this routine an empty output fieldset. |
Definition at line 399 of file bump_interpolation_mod.F90.
|
private |
Apply interpolator operator adjoint.
[in] | fields_outgrid | = These are the fields on the second grid, i.e. the target grid of the original interpolation. For the adjoint, these fields are treated as an input. |
[in,out] | fields_ingrid | = These are the fields defined on the first grid, i.e. the source grid of the original interpolation. For the adjoint, these are treated as an output. The caller can optionally pass this arguement as an empty fieldset and the routine will create and allocate each component of the fieldset. Or, if the field components of the fieldset are already allocated by the caller, then this routine will merely replace the field values with the result of the computation. |
Definition at line 523 of file bump_interpolation_mod.F90.
|
private |
Release memory (partial) by deallocating output grid.
Definition at line 637 of file bump_interpolation_mod.F90.
|
private |
Release all memory.
Definition at line 649 of file bump_interpolation_mod.F90.
subroutine bump_interpolation_mod::bint_driver | ( | class(bump_interpolator), intent(inout) | self, |
type(mpl_type), intent(inout) | mpl, | ||
type(rng_type), intent(inout) | rng, | ||
type(nam_type), intent(in) | nam, | ||
type(geom_type), intent(in) | geom | ||
) |
Initialize bump to perform interpolation.
[in,out] | mpl | < MPI data |
[in,out] | rng | < Random number generator |
[in] | nam | < Namelist |
[in] | geom | < Geometry |
Definition at line 267 of file bump_interpolation_mod.F90.
|
private |
Linked list implementation.
Initialize interpolation object
The input and output fields are atlas_FieldSet objects that are assumed to be created from atlas functionspaces. So, they have the grid and mesh information built in.
[in] | config | = configuration |
[in] | in_afs | = This is the input grid, rendered as an atlas functionspace, so it includes information about the mesh (parallel connectivity) as well. |
[in] | out_afs | = This is the output grid, also represented as an altas_functionspace. |
[in] | masks | = This contains metadata needed for the interpolation. It is rendered as an atlas FieldSet with the following named fields. Each of these named fields is optional; if omitted default values will be provided
|
Definition at line 133 of file bump_interpolation_mod.F90.
|
private |
Dummy finalization.
Definition at line 664 of file bump_interpolation_mod.F90.
type(registry_t), public bump_interpolation_mod::bump_interpolator_registry |
Registry for bump_interpolator objects.
Linked list interface - defines registry_t type Global registry
Definition at line 99 of file bump_interpolation_mod.F90.
|
private |
Definition at line 43 of file bump_interpolation_mod.F90.