FMS  2024.03
Flexible Modeling System
horiz_interp_bicubic_mod

Delivers methods for bicubic interpolation from a coarse regular grid on a fine regular grid. More...

Data Types

interface  bcucof
 
interface  bcuint
 
interface  fill_xy
 
interface  horiz_interp_bicubic_new
 Creates a new horiz_interp_type for bicubic interpolation. Allocates space and initializes a derived-type variable that contains pre-computed interpolation indices and weights. More...
 
interface  indl
 find the lower neighbour of xf in field xc, return is the index More...
 
interface  indu
 find the upper neighbour of xf in field xc, return is the index More...
 

Functions/Subroutines

subroutine bcucof_ (y, y1, y2, y12, d1, d2, c)
 
 bcucof_r4
 
 bcucof_r8
 
subroutine bcuint_ (y, y1, y2, y12, x1l, x1u, x2l, x2u, t, u, ansy, ansy1, ansy2)
 
 bcuint_r4
 
 bcuint_r8
 
subroutine fill_xy_ (fi, ics, ice, jcs, jce, mask, maxpass)
 
 fill_xy_r4
 
 fill_xy_r8
 
subroutine horiz_interp_bicubic_ (Interp, data_in, data_out, verbose, mask_in, mask_out, missing_value, missing_permit)
 Perform bicubic horizontal interpolation.
 
subroutine, public horiz_interp_bicubic_del (Interp)
 Free memory from a horiz_interp_type used for bicubic interpolation (allocated via horiz_bicubic_new)
 
subroutine, public horiz_interp_bicubic_init
 Initializes module and writes version number to logfile.out.
 
subroutine horiz_interp_bicubic_new_1d_ (Interp, lon_in, lat_in, lon_out, lat_out, verbose, src_modulo)
 Creates a new horiz_interp_type. More...
 
subroutine horiz_interp_bicubic_new_1d_s_ (Interp, lon_in, lat_in, lon_out, lat_out, verbose, src_modulo)
 Creates a new horiz_interp_type. More...
 
integer function indl_ (xc, xf)
 find the lower neighbour of xf in field xc, return is the index
 
 indl_r4
 
 indl_r8
 
integer function indu_ (xc, xf)
 find the upper neighbour of xf in field xc, return is the index
 
 indu_r4
 
 indu_r8
 

Variables

logical module_is_initialized = .FALSE.
 
real(r8_kind) tpi
 
integer verbose_bicubic = 0
 

Detailed Description

Delivers methods for bicubic interpolation from a coarse regular grid on a fine regular grid.

This module delivers methods for bicubic interpolation from a coarse regular grid on a fine regular grid. Subroutines

are methods taken from

  W. H. Press, S. A. Teukolski, W. T. Vetterling and B. P. Flannery,
  Numerical Recipies in FORTRAN, The Art of Scientific Computing.
  Cambridge University Press, 1992

written by marti.nosp@m.n.sc.nosp@m.hmidt.nosp@m.@io-.nosp@m.warne.nosp@m.muen.nosp@m.de.de (2004) revised by marti.nosp@m.n.sc.nosp@m.hmidt.nosp@m.@io-.nosp@m.warne.nosp@m.muen.nosp@m.de.de (2004)

Version 1.0.0.2005-07-06 The module is thought to interact with MOM-4. Alle benotigten Felder werden extern von MOM verwaltet, da sie nicht fur alle interpolierten Daten die gleiche Dimension haben mussen.


Data Type Documentation

◆ horiz_interp_bicubic_mod::bcucof

interface horiz_interp_bicubic_mod::bcucof

Definition at line 114 of file horiz_interp_bicubic.F90.

Private Member Functions

 bcucof_r4
 
 bcucof_r8
 

◆ horiz_interp_bicubic_mod::bcuint

interface horiz_interp_bicubic_mod::bcuint

Definition at line 109 of file horiz_interp_bicubic.F90.

Private Member Functions

 bcuint_r4
 
 bcuint_r8
 

◆ horiz_interp_bicubic_mod::fill_xy

interface horiz_interp_bicubic_mod::fill_xy

Definition at line 104 of file horiz_interp_bicubic.F90.

Private Member Functions

 fill_xy_r4
 
 fill_xy_r8
 

◆ horiz_interp_bicubic_mod::horiz_interp_bicubic_new

interface horiz_interp_bicubic_mod::horiz_interp_bicubic_new

Creates a new horiz_interp_type for bicubic interpolation. Allocates space and initializes a derived-type variable that contains pre-computed interpolation indices and weights.

Definition at line 66 of file horiz_interp_bicubic.F90.

Private Member Functions

 horiz_interp_bicubic_new_1d_r4
 
 horiz_interp_bicubic_new_1d_r8
 
 horiz_interp_bicubic_new_1d_s_r4
 
 horiz_interp_bicubic_new_1d_s_r8
 

◆ horiz_interp_bicubic_mod::indl

interface horiz_interp_bicubic_mod::indl

find the lower neighbour of xf in field xc, return is the index

Definition at line 120 of file horiz_interp_bicubic.F90.

Private Member Functions

 indl_r4
 
 indl_r8
 

◆ horiz_interp_bicubic_mod::indu

interface horiz_interp_bicubic_mod::indu

find the upper neighbour of xf in field xc, return is the index

Definition at line 126 of file horiz_interp_bicubic.F90.

Private Member Functions

 indu_r4
 
 indu_r8
 

Function/Subroutine Documentation

◆ horiz_interp_bicubic_new_1d_()

subroutine horiz_interp_bicubic_new_1d_ ( type(horiz_interp_type), intent(inout)  Interp,
real(fms_hi_kind_), dimension(:), intent(in)  lon_in,
real(fms_hi_kind_), dimension(:), intent(in)  lat_in,
real(fms_hi_kind_), dimension(:), intent(in)  lon_out,
real(fms_hi_kind_), dimension(:), intent(in)  lat_out,
integer, intent(in), optional  verbose,
logical, intent(in), optional  src_modulo 
)

Creates a new horiz_interp_type.

Allocates space and initializes a derived-type variable that contains pre-computed interpolation indices and weights.

Definition at line 201 of file horiz_interp_bicubic.inc.

◆ horiz_interp_bicubic_new_1d_s_()

subroutine horiz_interp_bicubic_new_1d_s_ ( type(horiz_interp_type), intent(inout)  Interp,
real(fms_hi_kind_), dimension(:), intent(in)  lon_in,
real(fms_hi_kind_), dimension(:), intent(in)  lat_in,
real(fms_hi_kind_), dimension(:,:), intent(in)  lon_out,
real(fms_hi_kind_), dimension(:,:), intent(in)  lat_out,
integer, intent(in), optional  verbose,
logical, intent(in), optional  src_modulo 
)

Creates a new horiz_interp_type.

Allocates space and initializes a derived-type variable that contains pre-computed interpolation indices and weights.

Parameters
[in,out]interpA derived-type variable containing indices and weights used for subsequent interpolations. To reinitialize this variable for a different grid-to-grid interpolation you must first use the HORIZ_INTERP_BICUBIC_NEW__del interface.
[in]lon_inLongitude (radians) for source data grid
[in]lat_inLatitude (radians) for source data grid
[in]lon_outLongitude (radians) for output data grid
[in]lat_outLatitude (radians) for output data grid
[in]verboseflag for print output amount
[in]src_moduloindicates if the boundary condition along zonal boundary is cyclic or not. Zonal boundary condition is cyclic when true

Definition at line 26 of file horiz_interp_bicubic.inc.