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, fieldset, 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, 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 736 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 3517 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 3596 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 3676 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 3766 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 3860 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 3950 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 4050 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 4154 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 4246 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 4348 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 818 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 896 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 984 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 1076 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 1164 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 1262 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 1364 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 1454 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 1554 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 4455 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 3344 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 3459 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 3397 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 2502 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 2580 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 2668 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 2760 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 2848 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 2946 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 3048 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 3138 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 3238 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 1660 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 1738 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 1826 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 1918 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 2006 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 2104 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 2206 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 2296 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 2396 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 4501 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 4529 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(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]namNamelist
[in]geomGeometry

Definition at line 564 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 4563 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  fieldset,
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]fieldsetMetadata 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 355 of file interpolatorbump_mod.F90.

Variable Documentation

◆ max_string

integer, parameter interpolatorbump_mod::max_string = 1024
private

Maximum string size.

Definition at line 75 of file interpolatorbump_mod.F90.