SABER
interpolatorbump_mod Module Reference

Generic ranks, dimensions and types. More...

Data Types

type  bump_interpolator
 

Functions/Subroutines

subroutine bint_init (bint, comm, lon1d_in, lat1d_in, lon_in, lat_in, afunctionspace_in, lon1d_out, lat1d_out, lon_out, lat_out, afunctionspace_out, nl, masks, config)
 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. More...
 
subroutine bint_driver (bint, mpl, rng, nam, geom)
 Initialize BUMP to perform interpolation. More...
 
subroutine bint_apply (bint, fieldset_in, fieldset_out)
 Apply interpolation If the fields that constitute 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. More...
 
subroutine bint_apply_int_r1_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r1_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r1_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r2_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r2_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r2_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r3_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r3_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_int_r3_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r1_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r1_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r1_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r2_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r2_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r2_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r3_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r3_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_real_r3_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r1_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r1_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r1_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r2_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r2_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r2_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r3_r1 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r3_r2 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_logical_r3_r3 (bint, array_in, array_out, trans_in, trans_out, nn)
 Apply interpolation. More...
 
subroutine bint_apply_interp_int (bint, array_in, array_out, nn)
 Low-level routine to apply the interpolation to a single field on a single level. More...
 
subroutine bint_apply_interp_real (bint, array_in, array_out, nn)
 Low-level routine to apply the interpolation to a single field on a single level. More...
 
subroutine bint_apply_interp_logical (bint, array_in, array_out, nn)
 Low-level routine to apply the interpolation to a single field on a single level. More...
 
subroutine bint_apply_ad (bint, fieldset_out, fieldset_in)
 Apply interpolator operator adjoint 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. More...
 
subroutine bint_apply_ad_r1_r1 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r1_r2 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r1_r3 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r2_r1 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r2_r2 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r2_r3 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r3_r1 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r3_r2 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_ad_r3_r3 (bint, array_out, array_in, trans_out, trans_in)
 Apply interpolation operator adjoint. More...
 
subroutine bint_apply_interp_ad (bint, array_out, array_in)
 Low-level routine to apply the adjoint of the interpolation operator to a single field on a single level. More...
 
subroutine bint_deallocate_outgrid (bint)
 Release memory (partial) by deallocating output grid. More...
 
subroutine bint_delete (bint)
 Release all memory. More...
 
subroutine bint_dummy_final (bint)
 Dummy finalization. More...
 

Variables

integer, parameter max_string = 1024
 Maximum string size. More...
 

Detailed Description

Generic ranks, dimensions and types.

Subroutines/functions list Instrumentation functions BUMP interpolation module

Date
Jan, 2020: Created by M. Miesch (JCSDA/UCAR) based on previously exising type_obsop.F90 written by Benjamin Menetrier (JCSDA/UCAR, CERFACS, METEO-FRANCE, IRIT)
Dec, 2020: Updated by B. Menetrier (JCSDA/IRIT) to use FYPP preprocessing directives

Function/Subroutine Documentation

◆ bint_apply()

subroutine interpolatorbump_mod::bint_apply ( class(bump_interpolator), intent(inout)  bint,
type(fieldset_type), intent(in)  fieldset_in,
type(fieldset_type), intent(inout)  fieldset_out 
)
private

Apply interpolation If the fields that constitute 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.

Parameters
[in,out]bintBUMP interpolator
[in]fieldset_inInput fields represented as an ATLAS fieldset, created from a functionspace
[in,out]fieldset_outOutput fields represented as an ATLAS fieldset

Definition at line 713 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad()

subroutine interpolatorbump_mod::bint_apply_ad ( class(bump_interpolator), intent(inout)  bint,
type(fieldset_type), intent(in)  fieldset_out,
type(fieldset_type), intent(inout)  fieldset_in 
)
private

Apply interpolator operator adjoint 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.

Parameters
[in,out]bintBUMP interpolator
[in]fieldset_outFields 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]fieldset_inFields defined on the first grid, i.e. the source grid of the original interpolation. For the adjoint, these are treated as an output.

Definition at line 3494 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r1_r1()

subroutine interpolatorbump_mod::bint_apply_ad_r1_r1 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:), intent(in)  array_out,
real(kind_real), dimension(:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 3573 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r1_r2()

subroutine interpolatorbump_mod::bint_apply_ad_r1_r2 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:), intent(in)  array_out,
real(kind_real), dimension(:,:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 3653 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r1_r3()

subroutine interpolatorbump_mod::bint_apply_ad_r1_r3 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:), intent(in)  array_out,
real(kind_real), dimension(:,:,:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 3743 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r2_r1()

subroutine interpolatorbump_mod::bint_apply_ad_r2_r1 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:), intent(in)  array_out,
real(kind_real), dimension(:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 3837 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r2_r2()

subroutine interpolatorbump_mod::bint_apply_ad_r2_r2 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:), intent(in)  array_out,
real(kind_real), dimension(:,:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 3927 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r2_r3()

subroutine interpolatorbump_mod::bint_apply_ad_r2_r3 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:), intent(in)  array_out,
real(kind_real), dimension(:,:,:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 4027 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r3_r1()

subroutine interpolatorbump_mod::bint_apply_ad_r3_r1 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:,:), intent(in)  array_out,
real(kind_real), dimension(:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 4131 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r3_r2()

subroutine interpolatorbump_mod::bint_apply_ad_r3_r2 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:,:), intent(in)  array_out,
real(kind_real), dimension(:,:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 4223 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_ad_r3_r3()

subroutine interpolatorbump_mod::bint_apply_ad_r3_r3 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:,:), intent(in)  array_out,
real(kind_real), dimension(:,:,:), intent(inout)  array_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  trans_in 
)
private

Apply interpolation operator adjoint.

Parameters
[in,out]bintBUMP interpolator
[in]array_outOutput array, the rightmost dimension being the vertical
[in,out]array_inInput array, the rightmost dimension being the vertical
[in]trans_outOutput array should be transposed
[in]trans_inInput array should be transposed

Definition at line 4325 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r1_r1()

subroutine interpolatorbump_mod::bint_apply_int_r1_r1 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:), intent(in)  array_in,
integer(kind_int), dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 795 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r1_r2()

subroutine interpolatorbump_mod::bint_apply_int_r1_r2 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:), intent(in)  array_in,
integer(kind_int), dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 873 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r1_r3()

subroutine interpolatorbump_mod::bint_apply_int_r1_r3 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:), intent(in)  array_in,
integer(kind_int), dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 961 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r2_r1()

subroutine interpolatorbump_mod::bint_apply_int_r2_r1 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:,:), intent(in)  array_in,
integer(kind_int), dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1053 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r2_r2()

subroutine interpolatorbump_mod::bint_apply_int_r2_r2 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:,:), intent(in)  array_in,
integer(kind_int), dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1141 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r2_r3()

subroutine interpolatorbump_mod::bint_apply_int_r2_r3 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:,:), intent(in)  array_in,
integer(kind_int), dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1239 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r3_r1()

subroutine interpolatorbump_mod::bint_apply_int_r3_r1 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:,:,:), intent(in)  array_in,
integer(kind_int), dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1341 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r3_r2()

subroutine interpolatorbump_mod::bint_apply_int_r3_r2 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:,:,:), intent(in)  array_in,
integer(kind_int), dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1431 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_int_r3_r3()

subroutine interpolatorbump_mod::bint_apply_int_r3_r3 ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(:,:,:), intent(in)  array_in,
integer(kind_int), dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1531 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_interp_ad()

subroutine interpolatorbump_mod::bint_apply_interp_ad ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(bint%nouta,bint%bump%geom%nl0), intent(in)  array_out,
real(kind_real), dimension(bint%bump%geom%nc0a,bint%bump%geom%nl0), intent(out)  array_in 
)
private

Low-level routine to apply the adjoint of the interpolation operator to a single field on a single level.

Parameters
[in,out]bintBUMP interpolator
[in]array_outField on input grid
[out]array_inField on output grid

Definition at line 4432 of file interpolatorbump_mod.F90.

◆ bint_apply_interp_int()

subroutine interpolatorbump_mod::bint_apply_interp_int ( class(bump_interpolator), intent(inout)  bint,
integer(kind_int), dimension(bint%bump%geom%nc0a,bint%bump%geom%nl0), intent(in)  array_in,
integer(kind_int), dimension(bint%nouta,bint%bump%geom%nl0), intent(out)  array_out,
logical, intent(in), optional  nn 
)
private

Low-level routine to apply the interpolation to a single field on a single level.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput field
[out]array_outOutput field
[in]nnNearest neighbor interpolation

Definition at line 3321 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_interp_logical()

subroutine interpolatorbump_mod::bint_apply_interp_logical ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(bint%bump%geom%nc0a,bint%bump%geom%nl0), intent(in)  array_in,
logical, dimension(bint%nouta,bint%bump%geom%nl0), intent(out)  array_out,
logical, intent(in), optional  nn 
)
private

Low-level routine to apply the interpolation to a single field on a single level.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput field
[out]array_outOutput field
[in]nnNearest neighbor interpolation

Definition at line 3436 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_interp_real()

subroutine interpolatorbump_mod::bint_apply_interp_real ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(bint%bump%geom%nc0a,bint%bump%geom%nl0), intent(in)  array_in,
real(kind_real), dimension(bint%nouta,bint%bump%geom%nl0), intent(out)  array_out,
logical, intent(in), optional  nn 
)
private

Low-level routine to apply the interpolation to a single field on a single level.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput field
[out]array_outOutput field
[in]nnNearest neighbor interpolation

Definition at line 3374 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r1_r1()

subroutine interpolatorbump_mod::bint_apply_logical_r1_r1 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:), intent(in)  array_in,
logical, dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2479 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r1_r2()

subroutine interpolatorbump_mod::bint_apply_logical_r1_r2 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:), intent(in)  array_in,
logical, dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2557 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r1_r3()

subroutine interpolatorbump_mod::bint_apply_logical_r1_r3 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:), intent(in)  array_in,
logical, dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2645 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r2_r1()

subroutine interpolatorbump_mod::bint_apply_logical_r2_r1 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:,:), intent(in)  array_in,
logical, dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2737 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r2_r2()

subroutine interpolatorbump_mod::bint_apply_logical_r2_r2 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:,:), intent(in)  array_in,
logical, dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2825 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r2_r3()

subroutine interpolatorbump_mod::bint_apply_logical_r2_r3 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:,:), intent(in)  array_in,
logical, dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2923 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r3_r1()

subroutine interpolatorbump_mod::bint_apply_logical_r3_r1 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:,:,:), intent(in)  array_in,
logical, dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 3025 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r3_r2()

subroutine interpolatorbump_mod::bint_apply_logical_r3_r2 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:,:,:), intent(in)  array_in,
logical, dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 3115 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_logical_r3_r3()

subroutine interpolatorbump_mod::bint_apply_logical_r3_r3 ( class(bump_interpolator), intent(inout)  bint,
logical, dimension(:,:,:), intent(in)  array_in,
logical, dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 3215 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r1_r1()

subroutine interpolatorbump_mod::bint_apply_real_r1_r1 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:), intent(in)  array_in,
real(kind_real), dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1637 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r1_r2()

subroutine interpolatorbump_mod::bint_apply_real_r1_r2 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:), intent(in)  array_in,
real(kind_real), dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1715 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r1_r3()

subroutine interpolatorbump_mod::bint_apply_real_r1_r3 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:), intent(in)  array_in,
real(kind_real), dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1803 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r2_r1()

subroutine interpolatorbump_mod::bint_apply_real_r2_r1 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:), intent(in)  array_in,
real(kind_real), dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1895 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r2_r2()

subroutine interpolatorbump_mod::bint_apply_real_r2_r2 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:), intent(in)  array_in,
real(kind_real), dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 1983 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r2_r3()

subroutine interpolatorbump_mod::bint_apply_real_r2_r3 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:), intent(in)  array_in,
real(kind_real), dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2081 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r3_r1()

subroutine interpolatorbump_mod::bint_apply_real_r3_r1 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:,:), intent(in)  array_in,
real(kind_real), dimension(:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2183 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r3_r2()

subroutine interpolatorbump_mod::bint_apply_real_r3_r2 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:,:), intent(in)  array_in,
real(kind_real), dimension(:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2273 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_apply_real_r3_r3()

subroutine interpolatorbump_mod::bint_apply_real_r3_r3 ( class(bump_interpolator), intent(inout)  bint,
real(kind_real), dimension(:,:,:), intent(in)  array_in,
real(kind_real), dimension(:,:,:), intent(out)  array_out,
logical, intent(in), optional  trans_in,
logical, intent(in), optional  trans_out,
logical, intent(in), optional  nn 
)
private

Apply interpolation.

Parameters
[in,out]bintBUMP interpolator
[in]array_inInput array, the rightmost dimension being the vertical
[out]array_outOutput array, the rightmost dimension being the vertical
[in]trans_inInput array should be transposed
[in]trans_outOutput array should be transposed
[in]nnNearest neighbor interpolation

Definition at line 2373 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_deallocate_outgrid()

subroutine interpolatorbump_mod::bint_deallocate_outgrid ( class(bump_interpolator), intent(inout)  bint)
private

Release memory (partial) by deallocating output grid.

Parameters
[in,out]bintBUMP interpolator

Definition at line 4478 of file interpolatorbump_mod.F90.

◆ bint_delete()

subroutine interpolatorbump_mod::bint_delete ( class(bump_interpolator), intent(inout)  bint)
private

Release all memory.

Parameters
[in,out]bintBUMP interpolator

Definition at line 4506 of file interpolatorbump_mod.F90.

◆ bint_driver()

subroutine interpolatorbump_mod::bint_driver ( class(bump_interpolator), intent(inout)  bint,
type(mpl_type), intent(inout)  mpl,
type(rng_type), intent(inout)  rng,
type(nam_type), intent(in)  nam,
type(geom_type), intent(in)  geom 
)
private

Initialize BUMP to perform interpolation.

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

Definition at line 536 of file interpolatorbump_mod.F90.

◆ bint_dummy_final()

subroutine interpolatorbump_mod::bint_dummy_final ( type(bump_interpolator), intent(inout)  bint)
private

Dummy finalization.

Parameters
[in,out]bintBUMP interpolator

Definition at line 4540 of file interpolatorbump_mod.F90.

Here is the caller graph for this function:

◆ bint_init()

subroutine interpolatorbump_mod::bint_init ( class(bump_interpolator), intent(inout)  bint,
type(fckit_mpi_comm), intent(in)  comm,
real(kind_real), dimension(:), intent(in), optional  lon1d_in,
real(kind_real), dimension(:), intent(in), optional  lat1d_in,
real(kind_real), dimension(:), intent(in), optional  lon_in,
real(kind_real), dimension(:), intent(in), optional  lat_in,
type(atlas_functionspace), intent(in), optional  afunctionspace_in,
real(kind_real), dimension(:), intent(in), optional  lon1d_out,
real(kind_real), dimension(:), intent(in), optional  lat1d_out,
real(kind_real), dimension(:), intent(in), optional  lon_out,
real(kind_real), dimension(:), intent(in), optional  lat_out,
type(atlas_functionspace), intent(in), optional  afunctionspace_out,
integer, intent(in), optional  nl,
type(fieldset_type), intent(in), optional  masks,
type(fckit_configuration), intent(in), optional  config 
)
private

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.

Parameters
[in,out]bintBUMP interpolator
[in]commCommunicator
[in]lon1d_inInput longitudes (regular grid) [in degrees]
[in]lat1d_inInput latitudes (regular grid) [in degrees]
[in]lon_inInput longitudes [in degrees]
[in]lat_inInput latitudes [in degrees]
[in]afunctionspace_inInput ATLAS functionspace
[in]lon1d_outOutput longitudes (regular grid) [in degrees]
[in]lat1d_outOutput latitudes (regular grid) [in degrees]
[in]lon_outOutput longitudes [in degrees]
[in]lat_outOutput latitudes [in degrees]
[in]afunctionspace_outOutput ATLAS functionspace
[in]nlNumber of levels
[in]masksMetadata needed for the interpolation, rendered as an ATLAS FieldSet with the following named fields: area (cell area), vunit (vertical unit), gmask (geometry mask) and smask (sampling mask). Each of these named fields is optional, if omitted default values will be provided
[in]configConfiguration

Definition at line 356 of file interpolatorbump_mod.F90.

Variable Documentation

◆ max_string

integer, parameter interpolatorbump_mod::max_string = 1024
private

Maximum string size.

Definition at line 76 of file interpolatorbump_mod.F90.