Title: Dynamics%20and%20Thermodynamics%20Demonstration%20Model%20(DTDM)
1Dynamics and Thermodynamics Demonstration
Model(DTDM)
- Robert Fovell
- University of California, Los Angeles
- rfovell_at_ucla.edu
2DTDM home page
http//www.atmos.ucla.edu/fovell/DTDM/
or http//tinyurl.com/nhoj6 Files DTDM_package.
tar lt 1 MB DTDM_examples.tar.gz 600 MB,
expands to 1 GB Extract tar -xvf
DTDM_package.tar tar -zxvf DTDM_examples.tar.gz
3DTDM is
- A very simple, 2D compressible model
- Free, portable Fortran 77 (g77) and GrADS
- Demonstrates gravity waves, sea-breeze
circulations, convective rolls, KHI, etc. - Options for including heat and momentum sources,
surface fluxes, cold pools, etc. - Input script driven may not need to modify code
4What DTDM is not
- Not a sophisticated model
- Second-order numerics, primitive physics
- Crude boundary conditions
- Not guaranteed bug-free
- Not always physically accurate or realistic
- Some parameters, processes may be exaggerated for
demonstration purposes and/or computational
efficiency - Not complete or research-quality
5DTDM features
- Model prognostic variables
- Wind components u, w, v (when Coriolis active)
- Potential temperature ?
- Nondimensional pressure ?
- Environmental settings
- Brunt-Vaisala frequency of boundary layer, free
troposphere and stratosphere - Up to 3 layers for vertical shear
- Latitude (for Coriolis parameter)
- Numerical settings
- Horizontal and vertical diffusion
- Temporal diffusion
- Wave speed for open lateral boundaries
- Speed of sound
6DTDM features
- Source terms
- Momentum source, configurable as single or
repeated, steady or oscillatory - Heat source, steady or oscillatory
- Surface heat flux
- Sea-breeze-specific heat source
- Lower tropospheric cooling zone and/or impulsive
cold block - Impulsive thermal
- Creates GrADS output
7DTDM rationale and use
- Demonstrate physical and thermodynamical
phenomena with simple simulations - Stills, animations, decomposing forcing fields,
etc. - Provide a hands-on package suitable for
homeworks, labs - Easily runs on Unix and Unix-like systems (Linux,
Mac OS X, Suns, etc.) - Next generation
- Java or C?
- Web-based?
- Implement using WRF?
- Namelist input (done as of July 2006 version)
8DTDM package DTDM_package.tar
- DTDM_model.f program
- storage.txt defines arrays
- Makefile
- If storage.txt modifed, touch DTDM_model.f and
make again - Model input scripts (input_.txt)
- GrADS plotting scripts (.gs)
9storage.txt
c max array dimensions parameter(nxm503,nzm
122,ny1) ! requires nx lt nxm, nz lt nzm
nxm, nzm are max values of horizontal dimensions
nx and nz
10Makefile
Mac OS X (PPC) with IBM xlf FC xlf FCFLAGS
-O3 -C -Wl,-stack_size,10000000,-stack_addr,0xc0
000000 Linux with Intel compiler FC
ifort FCFLAGS -O3 -convert big_endian Linux
with Portland Group compiler FC pgf77 FCFLAGS
-O3 -byteswapio SOURCESsrc/DTDM_model.f
src/blktri.f OBJS (SOURCES.f.o) dtdm
(OBJS) (FC) (FCFLAGS) -o _at_ (OBJS)
11How to run
- Edit Makefile - make sure correct lines are
uncommented - Execute ./make (executable is dtdm)
- Edit input.txt file (many examples included)
- First line specifies name of GrADS output
- ./dtdm lt input.txt
- Output are GrADS control (.ctl) and data (.dat)
files - Do NOT use gt symbol by accident!
12New for July, 2006, version
- Namelist input replaces previous input scripts
- Anelastic model option installed
- Warning not all combinations of model physics
switches and parameters have been tried bugs may
remain - Many input scripts set up with sound speed csnd
50 m/s, which is far, far too small - In many cases, this permits much faster
integration without fundamentally altering results
13Statospheric gravity waves produced by obstacles
(convective cells)Reference Fovell, Durran and
Holton (1992, J. Atmos. Sci.)
references to my papers illustrate my interest
in these phenomena
14input_strfcn_isolated_nowind.txt
c
c c The experiment namelist
sets the casename for naming the c GrADS
output. Max 72 characters and avoid using
underscores. c Enter filename within single
quotes (e.g., 'test.number.1') c c
experiment casename 'strfcn.isolated.1200s
ec.nowind',
First namelist section sets experiment name
(casename) Names used for GrADS files limited to
76 characters avoid underscores with GrADS
15input_strfcn_isolated_nowind.txt
c
c c The grid_run namelist
specifies model dimensions, integration c
length, and plotting output interval c c nx -
number of horizontal grid points - max NXM in
storage.txt c default is 101 c nz - number
of vertical grid points - max NZM in
storage.txt c default is 84 c dx -
horizontal grid spacing (m default 1000.) c
dz - vertical grid spacing (m default 250.) c
dt - time step (s default 1.0) c timend -
integration stop time (s default 7200.) c
plot - plotting interval (s default 300.) c
if interval lt 60 sec, GrADS will report time
incorrectly c
grid_run nx
101, nz 122, dx 1000., dz 250., dt
1.0, timend 7200., plot 60.,
16input_strfcn_isolated_nowind.txtenviron section
c
c c The environ namelist sets
up the model initial state c c bvpbl - PBL
tropospheric BV freq (1s default 0.01) c
pbld - PBL depth (m default 2000.) c bvtropo
- free tropospheric BV freq (1s default
0.01) c tropo - tropopause height (m default
12000.) c bvstrat - stratospheric BV freq (1s
default 0.02) c psurf - surface pressure (mb
default 965.) c usurf - surface wind speed
(ms default 0.) c shear1 - vertical shear
for first layer (1s default 0.) c depth1 -
thickness of first layer (m default 3000.) c
shear2 - vertical shear for second layer (1s
default 0.) c depth2 - thickness of second
layer (m default 1500.) c shear3 - vertical
shear above second layer (1s default 0.) c
this layer extends to model top c c
17input_strfcn_isolated_nowind.txtenviron section
environ bvpbl 0.002, pbld 2000., bvtropo
0.01, tropo 12000., bvstrat 0.02, psurf
965., usurf 0., shear1 0., sdepth1
3000., shear2 0., sdepth2 1500., shear3
0.,
18input_strfcn_isolated_nowind.txtstreamfunction
section
c
c c The streamfunction
namelist sets up a momentum source used c to
excite gravity waves. The source may be isolated
or repeated, c oscillatory or steady c c
istrfcn (1 turn streamfunction forcing on
default is 0) c s_repeat(1 for repeated source,
0 for single source default 0) c s_ampl -
amplitude of momentum source (kgm/s/s default
40.) c s_naught - height of source center (m
default 6000.) c s_hwavel - horizontal
wavelength of source (m default 40000.) c
s_vwavel - vertical wavelength of source (m
default 18000.) c s_period - oscillation
period (s default 1200.) c c
streamfunction istrfcn 1, s_repeat
0, s_ampl 40., s_znaught 6000., s_hwavel
10000., s_vwavel 18000., s_period 1200.,
dtdm lt input_strfcn_isolated_nowind.txt
19Streamfunction ?
20Initial conditions
Note aspect ratio not 11
21Animation (strfcn_isolated_movie.gs)
s_period 1200 sec For this run bvpbl
.01 (only part of model depth shown)
Note aspect ratio not 11
22Invoking GrADS
- gradsnc -l
- -l requests landscape-oriented window
- Opens a GrADS graphics window
- GrADS prompt is ga-gt
- ga-gt open strfcn.isolated.1200sec.nowind
- Tab completion works!
- ga-gt strfcn_isolated_movie.gs
- Executes a GrADS script (gs)
23Varying oscillation period(strfcn_isolated.gs)
Only part of domain is shown
Note aspect ratio not 11
24Inside a GrADS script(strfcn_isolated.gs)
'set gxout shaded' 'set xaxis 34 64 4' 'set yaxis
10 16 2' 'set clevs -2.5 -2.0 -1.5 -1.0 -0.5 0
0.5 1.0 1.5 2.0 2.5' 'set ccols 49 47 45 43
41 0 61 62 63 65 67 69' 'd thp' 'cbarn 1.0 0
6.0' 'set gxout contour' 'set cmax 2.4' 'set cmin
-2.4' 'set cint 0.4' 'd w'
'set mproj off' 'set display color white'
changes aspect ratio of plot 'set vpage 0.5 11.0
0.5 5' 'clear' 'set grads off' 'set lev 10
16' 'set lon 24 74 ' 'run rgbset.gs Continues
25Executing this GrADS script
gradsnc -l ga-gt open strfcn.isolated.1200sec.nowi
nd ga-gt q file File 1 DTDM demo simulation
Descriptor strfcn.isolated.1200sec.nowind.ctl
Binary strfcn.isolated.1200sec.nowind.dat Type
Gridded Xsize 99 Ysize 1 Zsize 120
Tsize 121 Number of Variables 9 u 120 0
horizontal velocity up 120 0 pert horizontal
velocity w 120 0 vertical velocity th 120
0 potential temperature thp 120 0 pert
potential temperature pi 120 0 ndim pressure
pip 120 0 pert ndim pressure ppmb 120 0
pert pressure in millibars str 120 0
streamfunction ga-gt set t 115 ga-gt strfcn_isolated
26Gravity waves
Period and frequency
Intrinsic frequency mean flow
Wavelength and wavenumber
Dispersion relation
27Gravity waves
Tilt angle from vertical
Dispersion relation
28Adding flow relative to momentum source
input_strfcn_isolated_up4.txt
environ bvpbl 0.01, pbld 2000., bvtropo
0.01, tropo 12000., bvstrat 0.02, psurf
965., usurf 0., shear1 0., sdepth1
8000., shear2 0.002, sdepth2 2000., shear3
0.,
Shear 0.002 over 2000 m ?U 4 m/s Shear
0.004 yields ?U 8 m/s
dtdm lt input_strfcn_isolated_up4.txt
29Flow relative to obstacle
Height z
Wind U
30Flow relative to obstacle(period 1200 sec)
U 0 U 4 m/s U 8 m/s
Note aspect ratio not 11
31Further exploration
- Measure phase angles, compare to theory
- Perhaps alter plot aspect ratio to 11
- Vary source frequency, amplitude, width
- Vary environmental stability, wind and wind shear
32Obstacle-effect gravity wavesabove convective
rolls
Reference Fovell (2004, Mon. Wea. Rev.)
33input_strfcn_rolls.txtenviron section
usurf 0., shear1 0., sdepth1
1800., shear2 -0.0036, sdepth2
2500., shear3 0.,
Zero shear below 1.8 km -9 m/s of wind speed
difference between 1.8 and 4.3 km
34input_strfcn_rolls.txt
streamfunction istrfcn 1, s_repeat
1, s_ampl .40, s_znaught 1000., s_hwavel
10000., s_vwavel 6000., s_period 0.,
s_repeat 1 for repeated source s_period0 for
steady momentum source
35Initial conditions
dtdm lt input_strfcn_rolls.txt
36Varying flow above obstacle(strfcn_rolls.gs)
u -3 m/s u -6 m/s u -9 m/s
Note aspect ratio not 11
37Gravity waves excited by heat sources
References Fovell (2002, QJRMS), Fovell,
Mullendore and Kim (2006, Mon. Wea.
Rev.) Nicholls et al. (1991, J. Atmos.
Sci.) Mapes (1993, J. Atmos. Sci.)
38input_hsrc.txt
environ bvpbl 0.00, pbld 1500., bvtropo
0.01, tropo 12000., bvstrat 0.02, psurf
965., usurf 0., shear1 0., sdepth1
1800., shear2 0., sdepth2 2500., shear3
0.,
experiment casename 'hsrc.2mode.no.oscil',
grid_run nx 101, nz 84, dx
1000., dz 250., dt 2.0, timend
6000., plot 60.,
39input_hsrc.txt
c
c c The atmos_heat_source
namelist sets up a free tropospheric heat
source c used to excite gravity waves. The
source may be oscillatory or steady c c ihsrc (1
turn tropospheric heat source on default is
0) c h_ampl - amplitude of heat source (Ks
default 0.075) c h_radius_x - horizontal
radius of heat source (m default 3000.) c
h_radius_z - vertical radius of heat source (m
default 3000.) c h_center_z - height of heat
source center (m default 3000.) c h_freq -
frequency for heat source oscillation (1s
default 0.005) c h_modes - number of vertical
modes (ndim, max 2 default 2) c c
atmos_heat_source ihsrc 1, h_ampl
0.025, h_radius_x 3000., h_radius_z
3000., h_center_z 3000., h_freq
0.000, h_modes 2,
40Heating profiles
For heat source depth H
1st mode H 6000 m (2 x h_radius_z) 2nd mode H
3000 m
41Results(hsrc.gs)
42Animations(hsrc_movie.gs)
43Phase speed
44Animationh_freq 0.005 21 min
45A simple sea-breeze circulation
Reference Dailey and Fovell (1999, Mon. Wea.
Rev.)
46Simple sea-breeze strategy
- Add a surface heat flux for part of domain
(land) - Large vertical diffusion as proxy for boundary
layer mixing - One use to investigate effect of offshore or
onshore wind on lifting and propagation of
sea-breeze front
47input_sbf_no_rolls.txt
experiment casename 'sbf.noroll.nowind',
grid_run nx 301, nz 26, dx
1000., dz 400., dt 1.0, timend
18000., plot 300., framework csnd
50., numerics cstar 100., dkx
1500., dkz 100.,
Coarse resolution large diffusion suppresses
noise and mixes surface heating vertically
48input_sbf_no_rolls.txt
c
c c The surface_flux namelist
sets up at least part of a domain c to represent
a heated surface, to heat atmosphere from
below c c ishflux (1 turn surface heat flux
on default is 0) c tdelt - initial ground-air T
difference (K default 12) c icoast - gridpt
location of coastline (0 for all land default
30) c cdh - effective heat flux coefficient
(ndim default 7.2e-3) c irand - (1 impose
randomness on surface heat flux default is
0) c c
surface_flux ishflux
1, tdelt 12., icoast 90, cdh
7.2e-3, irand 0,
Coastline 90 grid points from left side (of 301
total) Large cdh reflects unstable conditions No
imposed random perturbations (irand0)
49Cases
Surface wind speed -3, 0 and 3 m/s
50Offshore case animation(sbf_movie.gs)
Colored vertical velocity Contoured
perturbation horizontal velocity
51Mean flow effect on sea-breeze(sbf_noroll.gs)
3 m/s offshore No mean flow 3 m/s onshore
Perturbation u (contoured) and w (shaded) Aspect
ratio not 11
52Sea-breeze with rolls
- irand 1 superimposes random perturbations on
surface heat flux - Encourages 2D pseudo-roll circulations
- In reality, rolls are 3D organized by along-roll
shear - Two-dimensionality provides an (overpowering)
organization mechanism - input_sbf_with_rolls.txt
53Vertical velocity(sbfhcr.gs)
set t 20 sbfhcr.gs
54Added horizontal velocity
set ccolor 1 set cthick 6 d up
55Added airflow vectors
set ccolor 1 d uw
56Animation(sbfhcr_movie.gs)
57Effect of Coriolis on the sea-breeze circulation
Reference Rotunno (1983, J. Atmos. Sci.)
58Long-term sea-breeze strategy
- Add a lower tropospheric heat source (Rotunno
1983), mimicking effect of surface heating
vertical mixing - Reduce vertical diffusion
- Simulations start at sunrise
- One use to investigate effect of latitude and/or
linearity on onshore flow, timing and circulation
strength
59input_seabreeze.txtrotunno_seabreeze section
c
c c The rotunno_seabreeze
namelist implements a lower tropospheric c heat
source following Rotunno (1983), useful for
long-term c integrations of the sea-land-breeze
circulation c c iseabreeze (1 turn Rotunno
heat source on default is 0) c sb_ampl -
amplitude of heat source (Ks default
0.000175) c sb_x0 - controls heat source shape
at coastline (m default 1000.) c sb_z0 -
controls heat source shape at coastline (m
default 1000.) c sb_period - period of
heating, in days (default 1.0) c sb_latitude -
latitude for experiment (degrees default
60.) c sb_linear (1 linearize model default
1) c c
60input_seabreeze.txtrotunno_seabreeze section
rotunno_seabreeze iseabreeze 1, sb_ampl
0.000175, sb_x0 1000., sb_z0
1000., sb_period 1.0, sb_latitude
30., sb_linear 1,
sb_latitude ? 0 activates Coriolis sb_linear 1
linearizes the model Other settings include dx
2000 m, dz 250 m, dt 1 sec dkx dkz 5
m2/s (since linear)
61Cross-shore near-surface wind at coastline
(linear model)
62Time series using GrADS
gt open seabreeze.rotunno.00deg gt set t 1 289 gt
set z 1 gt set x 100 gt set vrange -25 25 gt set
xaxis 0 24 3 gt d u gt open seabreeze.rotunno.60deg
gt d u.2 gt open seabreeze.rotunno.30deg gt d u.3
63Cross-shore flow and vertical motion at noon
Shaded vertical velocity contoured cross-shore
velocity
(seabreeze.gs)
64Cross-shore flow and vertical motion at sunset
65Cross-shore flow and vertical motion at midnight
66Hovmoller diagrams (seabreeze_hov.gs)
Note lack of propagation
67Further exploration
- Make model nonlinear
- Add mean flow and wind shear
- Explain latitudinal dependence
- Compare to actual data
68Fun with cold pools
Reference Fovell and Tan (2000,
QJRMS) Droegemeier and Wilhelmson (1987, J.
Atmos. Sci.)
69Cold pool options
- ICOOLZONE has two options
- ICOOLZONE 1 for storm-adaptive cold pool
maintained and stays aligned with gust front - ICOOLZONE 2 gives model impulsive block of cold
air - Lower resolution - look at lifting
- Higher resolution - Kelvin-Helmholtz instability
- Either - compare buoyancy and dynamic components
of pressure field
70Kelvin-Helmholtz Instability (KHI)
- input_coldpool_hires.txt
- nx501, nz101, dxdz50 m, dt0.125 sec,
plotting interval 20 sec - GrADS ctl file will misreport plot interval as 1
min - ICOOLZONE2, cz_width4000 m, cz_depth2000 m
- coldpool.hires.ctl, coldpool.hires.dat
- Simulation takes a very long time
71Animation(khi_movie.gs)
72Perturbation potential temperature(khi.gs)
73Vertical velocity
74Horizontal velocity
75Airflow vectors
76Perturbation pressure (p)
77Perturbation buoyancy pressure (pbyc)
ipressure 1 Enables calculation of buoyancy
and dynamic pressure components of perturbation
pressure
78Perturbation dynamic pressure (pdyn)
79Pressure decomposition
equations
operation
80Pressure decomposition
yields (if density constant)
where
and because pressure perturbation is separable
Solve for buoyancy and dynamic pressure
perturbations dimensionalize to millibars
81Comparing ppmb and ptot
ptot pbycpdyn ppmb
82ICOOLZONE 1(input_coolzone.txt
coolzone_movie.gs)
83Contact infohelp, bug reports, suggestions
Robert Fovell Atmospheric and Oceanic
Sciences University of California, Los
Angeles 405 Hilgard Ave Los Angeles, CA
90095-1565 rfovell_at_ucla.edu (310) 206-9956
84(No Transcript)