IndexRundeck: P1SoM40Created: Thu May 9 03:30:17 EDT 2024

DYNAMICS

File: ATMDYN_COM.F90
Summary: DYNAMICS contains all the pressure and momentum related variables
Author : Original development team
Version:

Subroutines:
aic_part2
aic_part2 Once the fundamental atm state variables have been read from the AIC file, this routine converts everything to ModelE form (units changes, auxiliary variables, etc.)
alloc_dynamics

calc_vert_amp
CALC_VERT_AMPK calculates air mass and pressure vertical arrays
daily_atmdyn
DAILY performs daily tasks at end-of-day and maybe at (re)starts
init_sdrag

matop
MAtoP calculates haloed pressure arrays PEDN, PMID, PDSIG and PK from haloed air mass MA
perturb_temps


Global Variables:
grid : used from domain_decomp_atm

lm : used from resolution

ls1 : used from resolution

sige : real*8, dimension(LM+1)
sigma levels at layer interfaces (1)
Used by: | :compute_gz | :diaga | :diagb | :j_defs | :unrdrag | DIAG_SERIAL:ilmap | DIAG_SERIAL:jlmap | DYNAMICS:alloc_dynamics | DYNAMICS:calc_vert_amp |
bydsig :
mid point, depth, 1/depth of sigma levels (1)
Used by: | :condse | :nonorographic_drag | :orographic_drag | DIAG_SERIAL:diagil | DYNAMICS:alloc_dynamics |
dsig :
mid point, depth, 1/depth of sigma levels (1)
Used by: | :calc_amp | :compute_gz | :condse | :conserv_amb_ext | :conserv_ke | :diag5a | :diag5d | :diaga | :diagb | :diaggc_prep | :downscale_pressure_li | :downscale_temperature_li | :unrdrag | DIAG_SERIAL:ilmap | DIAG_SERIAL:jlmap | DIAG_SERIAL:print_generic_jl | DYNAMICS:alloc_dynamics | DYNAMICS:calc_vert_amp |
sig :
mid point, depth, 1/depth of sigma levels (1)
Used by: | :ahourly | :compute_gz | :condse | :diag5a | :diaga | :diagb | :pgrad_pbl | :unrdrag | ATMDYN:filter | DYNAMICS:alloc_dynamics | DYNAMICS:calc_vert_amp |
conv : real*8, allocatable, dimension(:, :, :)
(kg/s) = mass fluxes
Used by: | :diagb | :diagcd | ATMDYN:advecm | ATMDYN:aflux | DYNAMICS:alloc_dynamics |
mw : real*8, allocatable, dimension(:, :, :)
(kg/s) = mass fluxes
Used by: | :aadvt | ATMDYN:advecm | ATMDYN:aflux | ATMDYN:dynam | DYNAMICS:alloc_dynamics |
mv : real*8, allocatable, dimension(:, :, :)
(kg/s) = mass fluxes
Used by: | :aadvt | ATMDYN:aflux | ATMDYN:dynam | DYNAMICS:alloc_dynamics |
mu : real*8, allocatable, dimension(:, :, :)
(kg/s) = mass fluxes
Used by: | :aadvt | ATMDYN:aflux | ATMDYN:dynam | DYNAMICS:alloc_dynamics |
wcp : real*8, allocatable, dimension(:, :, :)
= vertical mass flux in a constant-pressure vertical
Used by: | :diaga | DYNAMICS:alloc_dynamics |
wcpsig : real*8, allocatable, dimension(:, :, :)
: WCP interpolated to terrain-following coordinate surfaces (sigma levels)
Used by: | :condse | DYNAMICS:alloc_dynamics |
smass : real*8, allocatable, dimension(:)
= local but "SAVE"d array ADVECV in MOMEN2ND made global
Used by: | DYNAMICS:alloc_dynamics |
cos_limit : real*8, parameter
Initial Value = 0.15d0
Used by: | ATMDYN:dynam | ATMDYN:filter | ATMDYN:fltruv |
dt : real*8
= (atmospheric) dynamics time step (s)
Initial Value = 450
Used by: | :atm_phase1 | :diaggc_prep | :gc_defs | ATMDYN:aflux | ATMDYN:dynam | ATMDYN:fltruv | ATMDYN:isotropslp | ATMDYN:isotropuv | DIAG_SERIAL:diag5p |
nidyn : integer
= DTsrc / DT
Used by: | :atm_phase1 | :atm_phase2 | :daily_atm | :jl_defs | ATMDYN:dynam |
nstep : integer
= number of DT steps during dynamics
Used by: | :atm_phase1 | ATMDYN:dynam |
mrch : integer
= kind of step: 0 = initial forward, -1 = backward, 2 = even leap-frog, -2 = odd leap-frog
Used by: | ATMDYN:advecm | ATMDYN:dynam | ATMDYN:fltruv | ATMDYN:pgf | MOMENTS:advecv |
mfiltr : integer
: if 1 => PSL, if 2 => T, if 3 => PSL&T is filtered
Initial Value = 1
Used by: | :atm_phase1 | :atm_phase2 | ATMDYN:filter |
nfiltr : integer
= DT_filter / DTsrc
Initial Value = 1
Used by: | :atm_phase1 | :atm_phase2 | :init_diag | :set_con |
dt_xufilter : real*8
dU is multiplied by dt/DT_XUfilter in E-W, value of 0 switches off filter
Initial Value = 0
Used by: | ATMDYN:fltruv |
dt_xvfilter : real*8
dV is multiplied by dt/DT_XVfilter in E-W
Initial Value = 0
Used by: | ATMDYN:fltruv |
dt_yufilter : real*8
dU is multiplied by dt/DT_YUfilter in N-S
Initial Value = 0
Used by: | ATMDYN:fltruv |
dt_yvfilter : real*8
dV is multiplied by dt/DT_YVfilter in N-S
Initial Value = 0
Used by: | ATMDYN:fltruv |
do_polefix : integer
= 1 to correct u,v tendencies near poles
Initial Value = 1
Used by: | ATMDYN:aflux | ATMDYN:fltruv | ATMDYN:pgf | MOMENTS:advecv |
ang_uv : integer
= 1 to conserve ang mom in UVfilter
Initial Value = 1
Used by: | ATMDYN:fltruv |
quvfilter : logical
= True if any of DT_[XY][UV]filter are not 0
Used by: | ATMDYN:dynam |
x_sdrag : real*8, dimension(2)
. SDRAG ~X_SDRAG(1)+X_SDRAG(2)*wind_magnitude
Initial Value = (/2.5d-4,2.5d-5/)
Used by: | ATMDYN:sdrag |
c_sdrag : real*8
. SDRAG=C_SDRAG (const.) above PTOP
Initial Value = 2.5d-5
p_csdrag :
pressure level above which const.drag is increased
p_sdrag :
= pressure level above which SDRAG is applied (mb), PP_SDRAG = near poles
wc_jdrag :
= critical velocity for J.Hansen/Judith Perlwitz drag; if 0 no JDRAG feature in SDRAG
Used by: | ATMDYN:sdrag |
wmax :
= imposed limit for stratospheric winds (m/s) in SDRAG
Used by: | ATMDYN:sdrag |
vsdragl :
= tuning factor for stratospheric drag (not =1 e.g. if used with explicit grav.wave drag scheme)
Used by: | ATMDYN:sdrag |
use_unr_drag : integer
: if 1 => SDRAG is turned off and GWD is applied
Initial Value = 0
Used by: | :input_atm | ATMDYN:dynam | DYNAMICS:init_sdrag |
lsdrag : integer
= level above which SDRAG is applied, LPSDRAG = near pole
Initial Value = LM
Used by: | ATMDYN:sdrag | DYNAMICS:init_sdrag |
ang_sdrag : integer
if =1: angular momentum lost by SDRAG is added in below PTOP
Initial Value = 1
Used by: | ATMDYN:sdrag | DYNAMICS:init_sdrag |
lpsdrag : integer
Initial Value = LM
Used by: | ATMDYN:sdrag | DYNAMICS:init_sdrag |
linear_sdrag : logical
flag whether to use a condition-independent
Used by: | ATMDYN:sdrag | DYNAMICS:init_sdrag |
l1_rtau : integer
lowest layer at which to apply linear_sdrag
Used by: | ATMDYN:sdrag | DYNAMICS:init_sdrag |
rtau : real*8, allocatable, dimension(:)
rayleigh friction timescale (seconds) as a function of layer
Used by: | ATMDYN:sdrag | DYNAMICS:init_sdrag |
maxcolmass : real*8
minimum/maximum allowed column mass (kg/m2)
Used by: | ATMDYN:advecm |
mincolmass : real*8
minimum/maximum allowed column mass (kg/m2)
Used by: | ATMDYN:advecm |
do_gwdrag : logical
when true, prints Gravity Wave diagnostics
Initial Value = .False.
Used by: | :diagjl_prep | :gc_defs | :ij_defs | :jl_defs | DIAG_SERIAL:diagjk |
ido_gwdrag : integer
number if AIJ Gravity wave diagnostics
Initial Value = 0
Used by: | :ij_defs | DIAG_SERIAL:diagij |

Simplex Website Curator: Igor Aleinov — NASA Official: Gavin A. Schmidt

Contact GISS NASA Privacy PolicyAccessibility