mod_advection Module

module~~mod_advection~~UsesGraph module~mod_advection mod_advection module~mod_precision mod_precision module~mod_precision->module~mod_advection iso_fortran_env iso_fortran_env iso_fortran_env->module~mod_precision
Help

Interfaces

public interface advectUpwind1stOrder

  • private pure function advectUpwind1stOrder1dRank0(f, u, dx) result(dfdt)

    Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a first order, positive-definite upwind differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:):: u

    Advective velocity [m/s]

    real(kind=rk), intent(in), dimension(:):: dx

    Grid spacing [m]

    Return Value real(kind=rk), dimension(:), allocatable

    Advective tendency

  • public pure function advectUpwind1stOrder1dRank1(f, u, dx) result(dfdt)

    Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a first order, positive-definite upwind differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:):: u

    Advective velocity [m/s]

    real(kind=rk), intent(in), dimension(:):: dx

    Grid spacing [m]

    Return Value real(kind=rk), dimension(:,:), allocatable

    Advective tendency

  • public pure function advectUpwind1stOrder1dRank2(f, u, dx) result(dfdt)

    Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a first order, positive-definite upwind differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:,:):: u

    Advective velocity [m/s]

    real(kind=rk), intent(in), dimension(:):: dx

    Grid spacing [m]

    Return Value real(kind=rk), dimension(:,:,:), allocatable

    Advective tendency

  • private pure function advectUpwind1stOrder2dRank0(f, u, v, dx, dy) result(dfdt)

    Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a first order, positive-definite upwind differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:):: u

    Advective velocity in x-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: v

    Advective velocity in y-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: dx

    Grid spacing in x-direction [m]

    real(kind=rk), intent(in), dimension(:,:):: dy

    Grid spacing in x-direction [m]

    Return Value real(kind=rk), dimension(:,:), allocatable

    Advective tendency

  • public pure function advectUpwind1stOrder2dRank1(f, u, v, dx, dy) result(dfdt)

    Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a first order, positive-definite upwind differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:,:):: u

    Advective velocity in x-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:,:):: v

    Advective velocity in y-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: dx

    Grid spacing in x-direction [m]

    real(kind=rk), intent(in), dimension(:,:):: dy

    Grid spacing in x-direction [m]

    Return Value real(kind=rk), dimension(:,:,:), allocatable

    Advective tendency

  • public pure function advectUpwind1stOrder2dRank2(f, u, v, dx, dy) result(dfdt)

    Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a first order, positive-definite upwind differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:,:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:,:,:):: u

    Advective velocity in x-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:,:,:):: v

    Advective velocity in y-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: dx

    Grid spacing in x-direction [m]

    real(kind=rk), intent(in), dimension(:,:):: dy

    Grid spacing in x-direction [m]

    Return Value real(kind=rk), dimension(:,:,:,:), allocatable

    Advective tendency

public interface advectCentered2ndOrder

  • private pure function advectCentered2ndOrder1dRank0(f, u, dx) result(dfdt)

    Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a second order centered differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:):: u

    Advective velocity [m/s]

    real(kind=rk), intent(in), dimension(:):: dx

    Grid spacing [m]

    Return Value real(kind=rk), dimension(:), allocatable

    Advective tendency

  • public pure function advectCentered2ndOrder1dRank1(f, u, dx) result(dfdt)

    Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a second order centered differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:):: u

    Advective velocity [m/s]

    real(kind=rk), intent(in), dimension(:):: dx

    Grid spacing [m]

    Return Value real(kind=rk), dimension(:,:), allocatable

    Advective tendency

  • public pure function advectCentered2ndOrder1dRank2(f, u, dx) result(dfdt)

    Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a second order centered differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:,:):: u

    Advective velocity [m/s]

    real(kind=rk), intent(in), dimension(:):: dx

    Grid spacing [m]

    Return Value real(kind=rk), dimension(:,:,:), allocatable

    Advective tendency

  • private pure function advectCentered2ndOrder2dRank0(f, u, v, dx, dy) result(dfdt)

    Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a second order centered differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:):: u

    Advective velocity in x-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: v

    Advective velocity in y-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: dx

    Grid spacing in x-direction [m]

    real(kind=rk), intent(in), dimension(:,:):: dy

    Grid spacing in y-direction [m]

    Return Value real(kind=rk), dimension(:,:), allocatable

    Advective tendency

  • private pure function advectCentered2ndOrder2dRank1(f, u, v, dx, dy) result(dfdt)

    Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a second order centered differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:,:):: u

    Advective velocity in x-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:,:):: v

    Advective velocity in y-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: dx

    Grid spacing in x-direction [m]

    real(kind=rk), intent(in), dimension(:,:):: dy

    Grid spacing in y-direction [m]

    Return Value real(kind=rk), dimension(:,:,:), allocatable

    Advective tendency

  • private pure function advectCentered2ndOrder2dRank2(f, u, v, dx, dy) result(dfdt)

    Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a second order centered differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

    Arguments

    Type IntentOptional AttributesName
    real(kind=rk), intent(in), dimension(:,:,:,:):: f

    Input field to be advected

    real(kind=rk), intent(in), dimension(:,:,:,:):: u

    Advective velocity in x-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:,:,:):: v

    Advective velocity in y-direction [m/s]

    real(kind=rk), intent(in), dimension(:,:):: dx

    Grid spacing in x-direction [m]

    real(kind=rk), intent(in), dimension(:,:):: dy

    Grid spacing in y-direction [m]

    Return Value real(kind=rk), dimension(:,:,:,:), allocatable

    Advective tendency


Functions

private pure function advectUpwind1stOrder1dRank0(f, u, dx) result(dfdt)

Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a first order, positive-definite upwind differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:):: u

Advective velocity [m/s]

real(kind=rk), intent(in), dimension(:):: dx

Grid spacing [m]

Return Value real(kind=rk), dimension(:), allocatable

Advective tendency

public pure function advectUpwind1stOrder1dRank1(f, u, dx) result(dfdt)

Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a first order, positive-definite upwind differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:):: u

Advective velocity [m/s]

real(kind=rk), intent(in), dimension(:):: dx

Grid spacing [m]

Return Value real(kind=rk), dimension(:,:), allocatable

Advective tendency

public pure function advectUpwind1stOrder1dRank2(f, u, dx) result(dfdt)

Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a first order, positive-definite upwind differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:,:):: u

Advective velocity [m/s]

real(kind=rk), intent(in), dimension(:):: dx

Grid spacing [m]

Return Value real(kind=rk), dimension(:,:,:), allocatable

Advective tendency

private pure function advectUpwind1stOrder2dRank0(f, u, v, dx, dy) result(dfdt)

Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a first order, positive-definite upwind differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:):: u

Advective velocity in x-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: v

Advective velocity in y-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: dx

Grid spacing in x-direction [m]

real(kind=rk), intent(in), dimension(:,:):: dy

Grid spacing in x-direction [m]

Return Value real(kind=rk), dimension(:,:), allocatable

Advective tendency

public pure function advectUpwind1stOrder2dRank1(f, u, v, dx, dy) result(dfdt)

Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a first order, positive-definite upwind differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:,:):: u

Advective velocity in x-direction [m/s]

real(kind=rk), intent(in), dimension(:,:,:):: v

Advective velocity in y-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: dx

Grid spacing in x-direction [m]

real(kind=rk), intent(in), dimension(:,:):: dy

Grid spacing in x-direction [m]

Return Value real(kind=rk), dimension(:,:,:), allocatable

Advective tendency

public pure function advectUpwind1stOrder2dRank2(f, u, v, dx, dy) result(dfdt)

Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a first order, positive-definite upwind differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:,:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:,:,:):: u

Advective velocity in x-direction [m/s]

real(kind=rk), intent(in), dimension(:,:,:,:):: v

Advective velocity in y-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: dx

Grid spacing in x-direction [m]

real(kind=rk), intent(in), dimension(:,:):: dy

Grid spacing in x-direction [m]

Return Value real(kind=rk), dimension(:,:,:,:), allocatable

Advective tendency

private pure function advectCentered2ndOrder1dRank0(f, u, dx) result(dfdt)

Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a second order centered differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:):: u

Advective velocity [m/s]

real(kind=rk), intent(in), dimension(:):: dx

Grid spacing [m]

Return Value real(kind=rk), dimension(:), allocatable

Advective tendency

public pure function advectCentered2ndOrder1dRank1(f, u, dx) result(dfdt)

Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a second order centered differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:):: u

Advective velocity [m/s]

real(kind=rk), intent(in), dimension(:):: dx

Grid spacing [m]

Return Value real(kind=rk), dimension(:,:), allocatable

Advective tendency

public pure function advectCentered2ndOrder1dRank2(f, u, dx) result(dfdt)

Computes the advective tendency of an input field f given the advective velocity field u [m/s] and grid spacing dx [m], using a second order centered differencing. Fields f and u are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:,:):: u

Advective velocity [m/s]

real(kind=rk), intent(in), dimension(:):: dx

Grid spacing [m]

Return Value real(kind=rk), dimension(:,:,:), allocatable

Advective tendency

private pure function advectCentered2ndOrder2dRank0(f, u, v, dx, dy) result(dfdt)

Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a second order centered differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:):: u

Advective velocity in x-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: v

Advective velocity in y-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: dx

Grid spacing in x-direction [m]

real(kind=rk), intent(in), dimension(:,:):: dy

Grid spacing in y-direction [m]

Return Value real(kind=rk), dimension(:,:), allocatable

Advective tendency

private pure function advectCentered2ndOrder2dRank1(f, u, v, dx, dy) result(dfdt)

Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a second order centered differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:,:):: u

Advective velocity in x-direction [m/s]

real(kind=rk), intent(in), dimension(:,:,:):: v

Advective velocity in y-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: dx

Grid spacing in x-direction [m]

real(kind=rk), intent(in), dimension(:,:):: dy

Grid spacing in y-direction [m]

Return Value real(kind=rk), dimension(:,:,:), allocatable

Advective tendency

private pure function advectCentered2ndOrder2dRank2(f, u, v, dx, dy) result(dfdt)

Computes the 2-d advective tendency of an input field f given the advective velocity field u and v [m/s] and grid spacing dx and dy [m], using a second order centered differencing. Fields f, u, and v are defined on a semi-staggered Arakawa C-grid:

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in), dimension(:,:,:,:):: f

Input field to be advected

real(kind=rk), intent(in), dimension(:,:,:,:):: u

Advective velocity in x-direction [m/s]

real(kind=rk), intent(in), dimension(:,:,:,:):: v

Advective velocity in y-direction [m/s]

real(kind=rk), intent(in), dimension(:,:):: dx

Grid spacing in x-direction [m]

real(kind=rk), intent(in), dimension(:,:):: dy

Grid spacing in y-direction [m]

Return Value real(kind=rk), dimension(:,:,:,:), allocatable

Advective tendency