The Intermediate Complexity Atmospheric Research model (ICAR)
A computationally efficient atmospheric model for downscaling.
 All Classes Files Functions Variables
Public Member Functions | Private Member Functions | Private Attributes | List of all members
adv_mpdata Module Reference


The MPDATA advection scheme More...

Public Member Functions

subroutine, public advect3d (q, u, v, w, rho, dz, nx, nz, ny, options, err)
 
subroutine, public mpdata_init (domain, options)
 
subroutine, public mpdata (domain, options, dt)
 

Private Member Functions

subroutine flux1 (l, r, U, f)
 
subroutine upwind_advection (q, u, v, w, q2, nx, nz, ny)
 
subroutine mpdata_fluxes (q, u, v, w, u2, v2, w2, nx, nz, ny)
 
subroutine flux_limiter (q, q2, u, v, w, nx, nz, ny)
 

Private Attributes

real, dimension(:,:,:), allocatable u_m
 
real, dimension(:,:,:), allocatable v_m
 
real, dimension(:,:,:), allocatable w_m
 
integer order
 

Detailed Description


The MPDATA advection scheme

Author
Ethan Gutmann (gutma.nosp@m.nn@u.nosp@m.car.e.nosp@m.du)

Member Function/Subroutine Documentation

subroutine, public adv_mpdata::advect3d ( real, dimension(1:nx,1:nz,1:ny), intent(inout)  q,
real, dimension(1:nx-1,1:nz,1:ny), intent(in)  u,
real, dimension(1:nx,1:nz,1:ny-1), intent(in)  v,
real, dimension(1:nx,1:nz,1:ny), intent(in)  w,
real, dimension(1:nx,1:nz,1:ny), intent(in)  rho,
real, dimension(1:nx,1:nz,1:ny), intent(in)  dz,
integer, intent(in)  nx,
integer, intent(in)  nz,
integer, intent(in)  ny,
type(options_type), intent(in)  options,
integer, intent(inout)  err 
)

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine adv_mpdata::flux1 ( real, dimension(:), intent(in)  l,
real, dimension(:), intent(in)  r,
real, dimension(:), intent(in)  U,
real, dimension(:), intent(inout)  f 
)
private

Here is the caller graph for this function:

subroutine adv_mpdata::flux_limiter ( real, dimension(1:nx,1:nz,1:ny), intent(in)  q,
real, dimension(1:nx,1:nz,1:ny), intent(in)  q2,
real, dimension(1:nx-1,1:nz,1:ny), intent(inout)  u,
real, dimension(1:nx,1:nz,1:ny-1), intent(inout)  v,
real, dimension(1:nx,1:nz,1:ny), intent(inout)  w,
integer, intent(in)  nx,
integer, intent(in)  nz,
integer, intent(in)  ny 
)
private

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine, public adv_mpdata::mpdata ( type(domain_type), intent(inout)  domain,
type(options_type), intent(in)  options,
real, intent(in)  dt 
)

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine adv_mpdata::mpdata_fluxes ( real, dimension(nx,nz,ny), intent(in)  q,
real, dimension(nx-1,nz,ny), intent(in)  u,
real, dimension(nx,nz,ny-1), intent(in)  v,
real, dimension(nx,nz,ny), intent(in)  w,
real, dimension(nx-1,nz,ny), intent(out)  u2,
real, dimension(nx,nz,ny-1), intent(out)  v2,
real, dimension(nx,nz,ny), intent(out)  w2,
integer, intent(in)  nx,
integer, intent(in)  nz,
integer, intent(in)  ny 
)
private

Here is the caller graph for this function:

subroutine, public adv_mpdata::mpdata_init ( type(domain_type), intent(inout)  domain,
type(options_type), intent(in)  options 
)

Here is the caller graph for this function:

subroutine adv_mpdata::upwind_advection ( real, dimension(1:nx,1:nz,1:ny), intent(in)  q,
real, dimension(1:nx-1,1:nz,1:ny), intent(in)  u,
real, dimension(1:nx,1:nz,1:ny-1), intent(in)  v,
real, dimension(1:nx,1:nz,1:ny), intent(in)  w,
real, dimension(1:nx,1:nz,1:ny), intent(inout)  q2,
integer, intent(in)  nx,
integer, intent(in)  nz,
integer, intent(in)  ny 
)
private

Here is the caller graph for this function:

Member Data Documentation

integer adv_mpdata::order
private
real, dimension(:,:,:), allocatable adv_mpdata::u_m
private
real, dimension(:,:,:), allocatable adv_mpdata::v_m
private
real, dimension(:,:,:), allocatable adv_mpdata::w_m
private

The documentation for this module was generated from the following file: