FV3DYCORE  Version1.0.0
fv_dynamics_mod Module Reference

The module 'fv_dynamics' is the top-level routine for the dynamical core. More...

Functions/Subroutines

subroutine, public fv_dynamics (npx, npy, npz, nq_tot, ng, bdt, consv_te, fill, reproduce_sum, kappa, cp_air, zvir, ptop, ks, ncnst, n_split, q_split, u, v, w, delz, hydrostatic, pt, delp, q, ps, pe, pk, peln, pkz, phis, q_con, omga, ua, va, uc, vc, ak, bk, mfx, mfy, cx, cy, ze0, hybrid_z, gridstruct, flagstruct, neststruct, idiag, bd, parent_grid, domain, diss_est, time_total)
 
subroutine rayleigh_super (dt, npx, npy, npz, ks, pm, phis, tau, u, v, w, pt, ua, va, delz, agrid, cp, rg, ptop, hydrostatic, conserve, rf_cutoff, gridstruct, domain, bd)
 
subroutine rayleigh_friction (dt, npx, npy, npz, ks, pm, tau, u, v, w, pt, ua, va, delz, cp, rg, ptop, hydrostatic, conserve, rf_cutoff, gridstruct, domain, bd)
 
subroutine compute_aam (npz, is, ie, js, je, isd, ied, jsd, jed, gridstruct, bd, ptop, ua, va, u, v, delp, aam, ps, m_fac)
 The subroutine 'compute_aam' computes vertically (mass) integrated Atmospheric Angular Momentum. More...
 

Variables

logical rf_initialized = .false.
 
logical pt_initialized = .false.
 
logical bad_range = .false.
 
real, dimension(:), allocatable rf
 
integer kmax =1
 
integer k_rf = 0
 
real agrav
 

Detailed Description

The module 'fv_dynamics' is the top-level routine for the dynamical core.

It executes on the dt_atmos (or p_split) loop.

Function/Subroutine Documentation

◆ compute_aam()

subroutine fv_dynamics_mod::compute_aam ( integer, intent(in)  npz,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  isd,
integer, intent(in)  ied,
integer, intent(in)  jsd,
integer, intent(in)  jed,
type(fv_grid_type), intent(in)  gridstruct,
type(fv_grid_bounds_type), intent(in)  bd,
real, intent(in)  ptop,
real, dimension(isd:ied,jsd:jed, npz), intent(inout)  ua,
real, dimension(isd:ied,jsd:jed, npz), intent(inout)  va,
real, dimension(isd:ied ,jsd:jed+1,npz), intent(inout)  u,
real, dimension(isd:ied+1,jsd:jed,npz), intent(inout)  v,
real, dimension(isd:ied,jsd:jed,npz), intent(inout)  delp,
real, dimension(is:ie,js:je), intent(out)  aam,
real, dimension(isd:ied,jsd:jed), intent(out)  ps,
real, dimension(is:ie,js:je), intent(out)  m_fac 
)
private

The subroutine 'compute_aam' computes vertically (mass) integrated Atmospheric Angular Momentum.

Parameters
[in,out]uD grid zonal wind (m/s)
[in,out]vD grid meridional wind (m/s)

Definition at line 1441 of file fv_dynamics.F90.

◆ fv_dynamics()

subroutine, public fv_dynamics_mod::fv_dynamics ( integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npz,
integer, intent(in)  nq_tot,
integer, intent(in)  ng,
real, intent(in)  bdt,
real, intent(in)  consv_te,
logical, intent(in)  fill,
logical, intent(in)  reproduce_sum,
real, intent(in)  kappa,
real, intent(in)  cp_air,
real, intent(in)  zvir,
real, intent(in)  ptop,
integer, intent(in)  ks,
integer, intent(in)  ncnst,
integer, intent(in)  n_split,
integer, intent(in)  q_split,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed+1,npz), intent(inout)  u,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed ,npz), intent(inout)  v,
real, dimension( bd%isd: ,bd%jsd: ,1:), intent(inout)  w,
real, dimension(bd%isd:,bd%jsd:,1:), intent(inout)  delz,
logical, intent(in)  hydrostatic,
real, dimension( bd%isd:bd%ied ,bd%jsd:bd%jed ,npz), intent(inout)  pt,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed ,npz), intent(inout)  delp,
real, dimension( bd%isd:bd%ied ,bd%jsd:bd%jed ,npz, ncnst), intent(inout)  q,
real, dimension (bd%isd:bd%ied ,bd%jsd:bd%jed), intent(inout)  ps,
real, dimension (bd%is-1:bd%ie+1, npz+1,bd%js-1:bd%je+1), intent(inout)  pe,
real, dimension (bd%is:bd%ie,bd%js:bd%je, npz+1), intent(inout)  pk,
real, dimension(bd%is:bd%ie,npz+1,bd%js:bd%je), intent(inout)  peln,
real, dimension (bd%is:bd%ie,bd%js:bd%je,npz), intent(inout)  pkz,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(inout)  phis,
real, dimension(bd%isd:, bd%jsd:, 1:), intent(inout)  q_con,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  omga,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed ,npz), intent(inout)  ua,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed ,npz), intent(inout)  va,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed ,npz), intent(inout)  uc,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed+1,npz), intent(inout)  vc,
real, dimension(npz+1), intent(in)  ak,
real, dimension(npz+1), intent(in)  bk,
real, dimension(bd%is:bd%ie+1, bd%js:bd%je, npz), intent(inout)  mfx,
real, dimension(bd%is:bd%ie , bd%js:bd%je+1, npz), intent(inout)  mfy,
real, dimension(bd%is:bd%ie+1, bd%jsd:bd%jed, npz), intent(inout)  cx,
real, dimension(bd%isd:bd%ied ,bd%js:bd%je+1, npz), intent(inout)  cy,
real, dimension(bd%is:, bd%js: ,1:), intent(inout)  ze0,
logical, intent(in)  hybrid_z,
type(fv_grid_type), intent(inout), target  gridstruct,
type(fv_flags_type), intent(inout)  flagstruct,
type(fv_nest_type), intent(inout)  neststruct,
type(fv_diag_type), intent(in)  idiag,
type(fv_grid_bounds_type), intent(in)  bd,
type(fv_atmos_type), intent(in), pointer  parent_grid,
type(domain2d), intent(inout)  domain,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed,npz), intent(inout)  diss_est,
real, intent(in), optional  time_total 
)
Parameters
[in]bdtLarge time-step
[in]nq_tottransported tracers
[in]n_splitsmall-step horizontal dynamics
[in]q_splittracer
[in]hybrid_zUsing hybrid_z for remapping
[in,out]uD grid zonal wind (m/s)
[in,out]vD grid meridional wind (m/s)
[in,out]wW (m/s)
[in,out]pttemperature (K)
[in,out]delppressure thickness (pascal)
[in,out]qspecific humidity and constituents
[in,out]delzdelta-height (m); non-hydrostatic only
[in,out]ze0height at edges (m); non-hydrostatic
[in,out]psSurface pressure (pascal)
[in,out]peedge pressure (pascal)
[in,out]pkpe**kappa
[in,out]pelnln(pe)
[in,out]pkzfinite-volume mean pk
[in,out]phisSurface geopotential (g*Z_surf)
[in,out]omgaVertical pressure velocity (pa/s)
[in,out]uc(uc,vc) mostly used as the C grid winds

Definition at line 181 of file fv_dynamics.F90.

◆ rayleigh_friction()

subroutine fv_dynamics_mod::rayleigh_friction ( real, intent(in)  dt,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npz,
integer, intent(in)  ks,
real, dimension(npz), intent(in)  pm,
real, intent(in)  tau,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed+1,npz), intent(inout)  u,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed,npz), intent(inout)  v,
real, dimension(bd%isd: ,bd%jsd: ,1: ), intent(inout)  w,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  pt,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  ua,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  va,
real, dimension(bd%isd: ,bd%jsd: ,1: ), intent(inout)  delz,
real, intent(in)  cp,
real, intent(in)  rg,
real, intent(in)  ptop,
logical, intent(in)  hydrostatic,
logical, intent(in)  conserve,
real, intent(in)  rf_cutoff,
type(fv_grid_type), intent(in)  gridstruct,
type(domain2d), intent(inout)  domain,
type(fv_grid_bounds_type), intent(in)  bd 
)
private
Parameters
[in]tautime scale (days)
[in,out]uD grid zonal wind (m/s)
[in,out]vD grid meridional wind (m/s)
[in,out]wcell center vertical wind (m/s)
[in,out]pttemp
[in,out]delzdelta-height (m); non-hydrostatic only

Definition at line 1303 of file fv_dynamics.F90.

◆ rayleigh_super()

subroutine fv_dynamics_mod::rayleigh_super ( real, intent(in)  dt,
integer, intent(in)  npx,
integer, intent(in)  npy,
integer, intent(in)  npz,
integer, intent(in)  ks,
real, dimension(npz), intent(in)  pm,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed), intent(in)  phis,
real, intent(in)  tau,
real, dimension(bd%isd:bd%ied ,bd%jsd:bd%jed+1,npz), intent(inout)  u,
real, dimension(bd%isd:bd%ied+1,bd%jsd:bd%jed,npz), intent(inout)  v,
real, dimension(bd%isd: ,bd%jsd: ,1: ), intent(inout)  w,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  pt,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  ua,
real, dimension(bd%isd:bd%ied,bd%jsd:bd%jed,npz), intent(inout)  va,
real, dimension(bd%isd: ,bd%jsd: ,1: ), intent(inout)  delz,
real, dimension(bd%isd:bd%ied, bd%jsd:bd%jed,2), intent(in)  agrid,
real, intent(in)  cp,
real, intent(in)  rg,
real, intent(in)  ptop,
logical, intent(in)  hydrostatic,
logical, intent(in)  conserve,
real, intent(in)  rf_cutoff,
type(fv_grid_type), intent(in)  gridstruct,
type(domain2d), intent(inout)  domain,
type(fv_grid_bounds_type), intent(in)  bd 
)
private
Parameters
[in]tautime scale (days)
[in,out]uD grid zonal wind (m/s)
[in,out]vD grid meridional wind (m/s)
[in,out]wcell center vertical wind (m/s)
[in,out]pttemp
[in,out]delzdelta-height (m); non-hydrostatic only
[in]phisSurface geopotential (g*Z_surf)

Definition at line 1127 of file fv_dynamics.F90.

Variable Documentation

◆ agrav

real fv_dynamics_mod::agrav

Definition at line 161 of file fv_dynamics.F90.

◆ bad_range

logical fv_dynamics_mod::bad_range = .false.

Definition at line 156 of file fv_dynamics.F90.

◆ k_rf

integer fv_dynamics_mod::k_rf = 0

Definition at line 159 of file fv_dynamics.F90.

◆ kmax

integer fv_dynamics_mod::kmax =1

Definition at line 158 of file fv_dynamics.F90.

◆ pt_initialized

logical fv_dynamics_mod::pt_initialized = .false.

Definition at line 155 of file fv_dynamics.F90.

◆ rf

real, dimension(:), allocatable fv_dynamics_mod::rf

Definition at line 157 of file fv_dynamics.F90.

◆ rf_initialized

logical fv_dynamics_mod::rf_initialized = .false.

Definition at line 154 of file fv_dynamics.F90.