intpl Module

Interpolation/weighting functions


Uses

  • module~~intpl~~UsesGraph module~intpl intpl module~data_arch data_arch module~intpl->module~data_arch iso_fortran_env iso_fortran_env module~data_arch->iso_fortran_env

Used by

  • module~~intpl~~UsedByGraph module~intpl intpl program~test_intpl test_intpl program~test_intpl->module~intpl

Variables

Type Visibility Attributes Name Initial
real(kind=R8), private, parameter :: ci1_00 = +1.0_R8/2.0_R8
real(kind=R8), private, parameter :: ci1_01 = +1.0_R8/2.0_R8
real(kind=R8), private, parameter :: ci3_00 = -1.0_R8/16.0_R8
real(kind=R8), private, parameter :: ci3_01 = +9.0_R8/16.0_R8
real(kind=R8), private, parameter :: ci3_02 = +9.0_R8/16.0_R8
real(kind=R8), private, parameter :: ci3_03 = -1.0_R8/16.0_R8
real(kind=R8), private, parameter :: ci5_00 = +3.0_R8/256.0_R8
real(kind=R8), private, parameter :: ci5_01 = -25.0_R8/256.0_R8
real(kind=R8), private, parameter :: ci5_02 = +150.0_R8/256.0_R8
real(kind=R8), private, parameter :: ci5_03 = +150.0_R8/256.0_R8
real(kind=R8), private, parameter :: ci5_04 = -25.0_R8/256.0_R8
real(kind=R8), private, parameter :: ci5_05 = +3.0_R8/256.0_R8
real(kind=R8), private, parameter :: ci7_00 = -5.0_R8/2048.0_R8
real(kind=R8), private, parameter :: ci7_01 = +49.0_R8/2048.0_R8
real(kind=R8), private, parameter :: ci7_02 = -245.0_R8/2048.0_R8
real(kind=R8), private, parameter :: ci7_03 = +1225.0_R8/2048.0_R8
real(kind=R8), private, parameter :: ci7_04 = +1225.0_R8/2048.0_R8
real(kind=R8), private, parameter :: ci7_05 = -245.0_R8/2048.0_R8
real(kind=R8), private, parameter :: ci7_06 = +49.0_R8/2048.0_R8
real(kind=R8), private, parameter :: ci7_07 = -5.0_R8/2048.0_R8
real(kind=R8), private, parameter :: cp0_00 = +1.0_R8
real(kind=R8), private, parameter :: cp1_00 = +1.0_R8/4.0_R8
real(kind=R8), private, parameter :: cp1_01 = +2.0_R8/4.0_R8
real(kind=R8), private, parameter :: cp1_02 = +1.0_R8/4.0_R8
real(kind=R8), private, parameter :: cp3_00 = -1.0_R8/32.0_R8
real(kind=R8), private, parameter :: cp3_01 = +0.0_R8/32.0_R8
real(kind=R8), private, parameter :: cp3_02 = +9.0_R8/32.0_R8
real(kind=R8), private, parameter :: cp3_03 = +16.0_R8/32.0_R8
real(kind=R8), private, parameter :: cp3_04 = +9.0_R8/32.0_R8
real(kind=R8), private, parameter :: cp3_05 = +0.0_R8/32.0_R8
real(kind=R8), private, parameter :: cp3_06 = -1.0_R8/32.0_R8
real(kind=R8), private, parameter :: cp5_00 = +3.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_01 = +0.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_02 = -25.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_03 = +0.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_04 = +150.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_05 = +256.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_06 = +150.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_07 = +0.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_08 = -25.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_09 = +0.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp5_10 = +3.0_R8/512.0_R8
real(kind=R8), private, parameter :: cp7_00 = -5.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_01 = +0.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_02 = +49.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_03 = +0.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_04 = -245.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_05 = +0.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_06 = +1225.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_07 = +2048.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_08 = +1225.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_09 = +0.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_10 = -245.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_11 = +0.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_12 = +49.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_13 = +0.0_R8/4096.0_R8
real(kind=R8), private, parameter :: cp7_14 = -5.0_R8/4096.0_R8

Derived Types

type, public ::  tborne

Components

Type Visibility Attributes Name Initial
integer(kind=I4), public :: lb1

lower bound 1

integer(kind=I4), public :: lb2

lower bound 2

integer(kind=I4), public :: ub1

upper bound 1

integer(kind=I4), public :: ub2

upper bound 2


Functions

private function interp(tab, lb, ind, ordre)

Interpolate evenly spaced points

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension(lb:) :: tab

tableau 1D à interpoler

integer(kind=I4), intent(in) :: lb

borne inférieure

integer(kind=4), intent(in) :: ind

position de l’élément “milieu”

integer(kind=4), intent(in) :: ordre

ordre de l’interp 1, 3, 5 ou 7

Return Value real(kind=R8)

valeur particulière interpolée

private function restrict(tab, lb, ind, ordre)

Restrict evenly spaced points

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension(lb:) :: tab

tableau 1D à réduire

integer(kind=4), intent(in) :: lb

borne inférieure

integer(kind=4), intent(in) :: ind

position de l’élément “milieu”

integer(kind=4), intent(in) :: ordre

ordre de la restriction 1, 3, 5 ou 7

Return Value real(kind=R8)

valeur particulière pondérée


Subroutines

private subroutine genere_coeff_lagrange()

subroutine generating coefficients for kth-order interpolation

Arguments

None

public subroutine interp1D(tabgros, lb_gros, tabfin, lb_fin, ub_gros, ordre)

Interpolate evenly spaced points, taking into account the borders

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension(lb_gros:) :: tabgros

tableau grossier à interpoler

integer(kind=I4), intent(in) :: lb_gros

indice inférieur

real(kind=R8), intent(out), dimension(lb_fin :) :: tabfin

tableau résultant, 2 fois plus fin

integer(kind=I4), intent(in) :: lb_fin

indice inférieur de tab_fin

integer(kind=I4), intent(in) :: ub_gros

taille de tabgros

integer(kind=I4), intent(in) :: ordre

ordre de l’interpolation

public subroutine interp2D(tabgro, bgro, tabfin, bfin, ordre)

Interpolate 2D evenly spaced points, taking into account the borders

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension(bgro%lb1:bgro%ub1, bgro%lb2:bgro%ub2) :: tabgro

tableau grossier départ

type(tborne), intent(in) :: bgro

indices des tableaux

real(kind=R8), intent(out), dimension(bfin%lb1:bfin%ub1, bfin%lb2:bfin%ub2) :: tabfin

tableau résultant fin

type(tborne), intent(in) :: bfin

indices des tableaux

integer(kind=I4), intent(in) :: ordre

ordre de l’interpolation

public subroutine restrict1D(tabfin, lb_fin, tabgros, lb_gros, ub_gros, ordre)

Restrict evenly spaced points, taking into account the borders

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension(lb_fin:) :: tabfin

tableau de départ

integer(kind=I4), intent(in) :: lb_fin

indice inférieur de tab_fin

real(kind=R8), intent(out), dimension(lb_gros:) :: tabgros

tableau grossier résultant

integer(kind=I4), intent(in) :: lb_gros

indice inférieur

integer(kind=I4), intent(in) :: ub_gros

taille de tabgros

integer(kind=I4), intent(in) :: ordre

ordre de la restriction

public subroutine restrict2D(tabfin, bfin, tabgros, bgros, ordre)

Interpolate 2D evenly spaced points, taking into account the borders

Arguments

Type IntentOptional Attributes Name
real(kind=R8), intent(in), dimension( bfin%lb1: bfin%ub1, bfin%lb2: bfin%ub2) :: tabfin

tableau de départ fin

type(tborne), intent(in) :: bfin

indices des tableaux

real(kind=R8), intent(out), dimension(bgros%lb1:bgros%ub1, bgros%lb2:bgros%ub2) :: tabgros

tableau grossier résultant

type(tborne), intent(in) :: bgros

indices des tableaux

integer(kind=I4), intent(in) :: ordre

ordre de l’interpolation