FMS  2026.01.01-dev
Flexible Modeling System
horiz_interp_bicubic_mod

Data Types

interface  bcucof
 Generic interface used internally in bcuint to compute bicubic coefficients when interpolating data from source grid to target grid. Calls bcuof_r4 when all arguments are in 32-bit precision. Calls bcuof_r8 when all arguemnts are in 64-bit precision. More...
 
interface  bcuint
 Generic interface used internally when interpolating data from source grid to target grid. Calls bcuint_r4 when input and output data are in 32-bit precision. Calls bcuint_r8 when input and output data are in 64-bit precision. More...
 
interface  fill_xy
 Unused interface. More...
 
interface  horiz_interp_bicubic
 Generic interface to horiz_interp_bicubic_* to interpolate data using the weights stored in Interp. Calls horiz_interp_bicubic_r4 if input and output data are 2D arrays in 32-bit precision. Calls horiz_interp_bicubic_r8 if input and output data are 2D arrays in 64-bit precision. More...
 
interface  indl
 Generic interface used internally in finding neighbors. More...
 
interface  indu
 Generic interface used internally in finding neighbors. More...
 

Functions/Subroutines

 bcucof_r4
 
 bcucof_r8
 
 bcuint_r4
 
 bcuint_r8
 
 fill_xy_r4
 
 fill_xy_r8
 
subroutine, public horiz_interp_bicubic_del (Interp)
 
subroutine, public horiz_interp_bicubic_init
 
 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_r4
 
 horiz_interp_bicubic_r8
 
 indl_r4
 
 indl_r8
 
 indu_r4
 
 indu_r8
 

Variables

logical module_is_initialized = .FALSE.
 Include variable "version" to be written to log file. More...
 
real(r8_kind) tpi
 is 2*PI.
 
integer verbose_bicubic = 0
 sets the default verbosity level.
 

Detailed Description

Author
marti.nosp@m.n.sc.nosp@m.hmidt.nosp@m.@io-.nosp@m.warne.nosp@m.muen.nosp@m.de.de (2004)
Horiz_interp_bicubic_mod contains methods called from horiz_interp_mod for bicubic interpolation from a coarse regular grid on a fine regular grids. Users are recommended to use the top-level module horiz_interp_mod with "interp" set to "bicubic" for bicubic interpolation. Internally used subroutines bcuint and bcuof, used internally, have been implemented following
  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
All public interfaces and subroutines in this module can be accessed from public interfaces and subroutines in horiz_interp_mod. For simplicity, users are recommended to call all procedures throug horiz_interp_mod. Note from the author: 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

Generic interface used internally in bcuint to compute bicubic coefficients when interpolating data from source grid to target grid. Calls bcuof_r4 when all arguments are in 32-bit precision. Calls bcuof_r8 when all arguemnts are in 64-bit precision.

Definition at line 107 of file horiz_interp_bicubic.F90.

Private Member Functions

 bcucof_r4
 
 bcucof_r8
 

◆ horiz_interp_bicubic_mod::bcuint

interface horiz_interp_bicubic_mod::bcuint

Generic interface used internally when interpolating data from source grid to target grid. Calls bcuint_r4 when input and output data are in 32-bit precision. Calls bcuint_r8 when input and output data are in 64-bit precision.

Definition at line 99 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

Unused interface.

Definition at line 91 of file horiz_interp_bicubic.F90.

Private Member Functions

 fill_xy_r4
 
 fill_xy_r8
 

◆ horiz_interp_bicubic_mod::horiz_interp_bicubic

interface horiz_interp_bicubic_mod::horiz_interp_bicubic

Generic interface to horiz_interp_bicubic_* to interpolate data using the weights stored in Interp. Calls horiz_interp_bicubic_r4 if input and output data are 2D arrays in 32-bit precision. Calls horiz_interp_bicubic_r8 if input and output data are 2D arrays in 64-bit precision.

Definition at line 78 of file horiz_interp_bicubic.F90.

Private Member Functions

 horiz_interp_bicubic_r4
 
 horiz_interp_bicubic_r8
 

◆ horiz_interp_bicubic_mod::indl

interface horiz_interp_bicubic_mod::indl

Generic interface used internally in finding neighbors.

Definition at line 113 of file horiz_interp_bicubic.F90.

Private Member Functions

 indl_r4
 
 indl_r8
 

◆ horiz_interp_bicubic_mod::indu

interface horiz_interp_bicubic_mod::indu

Generic interface used internally in finding neighbors.

Definition at line 119 of file horiz_interp_bicubic.F90.

Private Member Functions

 indu_r4
 
 indu_r8
 

Function/Subroutine Documentation

◆ horiz_interp_bicubic_del()

subroutine, public horiz_interp_bicubic_mod::horiz_interp_bicubic_del ( type(horiz_interp_type), intent(inout)  Interp)
Deallocates arrays holding bicubic interpolation weights and mapping indices in Interp. Resets is_allocated to .false. Called from horiz_interp_del in horiz_interp_mod.
Parameters
[in,out]interpwill be reset with deallocated memory.

Definition at line 143 of file horiz_interp_bicubic.F90.

◆ horiz_interp_bicubic_init()

subroutine, public horiz_interp_bicubic_mod::horiz_interp_bicubic_init
Initializes horiz_interp_bicubic_mod including setting tpi. Called from horiz_interp_init in horiz_interp_mod.

Definition at line 130 of file horiz_interp_bicubic.F90.

Variable Documentation

◆ module_is_initialized

logical module_is_initialized = .FALSE.
private

Include variable "version" to be written to log file.

is a flag to prevent module re-initialization.

Definition at line 85 of file horiz_interp_bicubic.F90.