Index | Rundeck: P1SoM40 | Created: Thu May 9 03:30:17 EDT 2024 |
DYNAMICS | File: ATMDYN_COM.F90 |
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 |