Title: WRF demo/tutorial
1WRF demo/tutorial
- 12-13-2004
- Robert Fovell
- rfovell_at_ucla.edu
2Background on WRF model
- Weather Research and Forecasting
- Co-developed by research and operational
communities - Replaces MM5 and Eta models
- Current version 2.0.3.1
- Platforms (for model) Linux, IBM/AIX, SGI, Cray,
Darwin and Sun (hideous)
3WRF advantages
- Better numerics than MM5
- Arakawa C grid, R-K scheme, odd order advection
w/ implicit diffusion - Much less diffusive, larger effective resolution,
permits longer time steps - Better topography than Eta
- GUI-driven domain configuration, initialization
- Fortran 95 (MM5 was F77)
- NetCDF output
4Further advantages
- Allows real data and idealized simulations in
same framework - Plug-in architecture (different groups will
supply WRF cores) - What Im calling WRF is really the Advanced
Research WRF (ARW) core
5WRF disadvantages
- Bleeding edge
- Smaller range of physics choices overall
- No radiation upper bdry condition yet
- Software design cumbersome, obtuse opinion may
change with experience - Nesting is very serious pain that will change
6Overview
- WRF Standard Initialization (WRFSI)
- Set up domain
- Prepare data for model run
- MM5 equiv terrain, pregrid, regridder
- WRF model
- Initialize model (MM5s interpf)
- Run model
- WRF post-processing
- WRF 3DVAR (not covered today)
7Web stuff
- http//www.mmm.ucar.edu/wrf/users/user_main.html
(WRF model users site) - http//www.mmm.ucar.edu/wrf/users/wrfv2/wrf-nameli
st.html (WRF namelist.input page) - http//www.mmm.ucar.edu/wrf/users/docs/user_guide/
contents.html (WRF users guide) - http//www.mmm.ucar.edu/wrf/users/tutorial/tutoria
l-2004.htm (Slides from 2004 WRF tutorial at
NCAR) - http//www.atmos.ucla.edu/fovell/WRF/WRF_ports.ht
ml (Darwin/Mac OS X port) - http//www.wrf-model.org/si/ (WRFSI home page)
- http//www.mmm.ucar.edu/wrf/WG4/tutorial/wrf3dvar_
download_data.htm (WRF 3DVAR tutorial)
8WRF for real data run
- Example
- 24-26 October 2003 (Simi fire)
9Directory structure
- /WRFV2/
- Parent directory
- /WRFV2/wrfsi
- WRFSI location
- /WRFV2/wrfsi/domains/SoCal
- Domain setup SoCal location
- /WRFV2/test/em_real
- Where real data run will be made
10WRFSI /WRFV2/wrfsi/wrf_tools
11(No Transcript)
12(No Transcript)
13(No Transcript)
14(No Transcript)
15(No Transcript)
16(No Transcript)
17(No Transcript)
18(No Transcript)
19(No Transcript)
20(No Transcript)
21Domain 1 terrain
22(No Transcript)
23(No Transcript)
24(No Transcript)
25(No Transcript)
26(No Transcript)
27(No Transcript)
28Output from WRFSI
- /WRFV2/wrfsi/domains/SoCal/siprd
-
- IC, BC files for D1, IC file for D2
- Move or link into /WRFV2/test/em_real
29WRF model /WRFV2/
30Directory structure
- In ../WRFV2
- main/ is where executables live
- arch/ default config stuff
- frame/ model framework stuff
- phys/, dyn_em/ model physics, solver
- external/ mainly I/O, MPI stuff
- test/ test cases live here
- run/ can run model from here, too
31Preparing to run
- Configure
- ./configure
- Select platform, compiler, whether single
threaded, OpenMP or MPI - Compile
- ./compile em_real
- Creates real.exe and wrf.exe in ../WRFV2/main
- Creates links to real.exe, wrf.exe in
../WRFV2/test/em_real
32Configuring
- ./configure presents option list
- Example chose option 3, MPI
33Compiling
- ./compile presents options
- Example chose compile em_real
- Eulerian mass-coordinate real-data model
34Final initialization step
- Move to .../WRFV2/test/em_real
- Edit namelist.input
- Lots to do here
- Execute ./real.exe
- Creates wrfinput_d01, wrfbdy_d01 files
- Run for each nest separately ouch
- Model executable is wrf.exe
35Editing namelist.input
- Web resource
- http//www.mmm.ucar.edu/wrf/users/wrfv2/wrf-nameli
st.html - Namelist sections partial list
- time_control
- domains
- physics
- dynamics
36Setup for single domain run
Columns provided for 3 domains (parent 2
nests) but if max_dom 1 extra columns ignored
37Setup for single domain run
time_step 6DX (3DX for MM5) unless
convective Change max_dom when ready to activate
nest
38Setup for single domain run
Here I have my MOAD dimensions (80x67) and nest
dimensions (61x37) entered. Third column ignored
since I only created 2 domains
39Setup for single domain run
s_we start index for west-east direction,
always 1. e_we end index west-east, thats your
dimension
40Setup for single domain run
Make sure dx, dy set correctly -- the model does
NOT check GUI-created inputs!
41Setup for single domain run
Columns provided for 3 domains (parent 2
nests) but if max_dom 1 extra columns ignored
42Setup for single domain run
Here, subgrid mixing and computational diffusion
is deactivated models odd order advection is
diffusive
43Run real.exe wrf.exe
- ./real.exe
- Look for real_em SUCCESS COMPLETE REAL_EM INIT
message - mpirun -np 2 wrf.exe
- MPI version creates rsl.out.000 and
rsl.error.000 files - tail -f rsl.out.0000
- Look for wrf SUCCESS COMPLETE WRF
44Files created by WRF run
- Named like
- wrfout_d01_2003-10-24_120000
- d01 domain 1
- file started 12Z 24 October 2003
- Files can be HUGE (NetCDF inefficient)
- - to split output files, namelist entry
- frames_per_outfile in time_control
45WRF postprocessing
- RIP (just like MM5)
- WRF2GrADS converter
- WRF2VIS5D converter
- Software that can handle NetCDF
46RIP
- RIP version 4 required
- Real data runs only
- ripdp_wrf expname all wrfout
- Will unpack every wrfout files in local
directory and all variables and call extracted
files expname - Replace all with basic for less output
- RIP4 unpacker for MM5 is now ripdp_mm5 expname
MMOUT
47Animation using RIP
- Part of Domain 1 shown for 24Oct2003 case
Color 2 m temperature topo contours 10 m wind
vectors
48Nesting
- Created domains 1, 2 for SoCal in WRFSI
- WRFSI created wrf_real_input_em files for both
domains - Need to run real.exe once for each domain
- namelist.input needs to be edited for each
real.exe run - Files have to be renamed to fool real.exe
- Web page explanation http//www.mmm.ucar.edu/wrf/
users/wrfv2/runwrf.html
49MM5 v. WRF on nesting
- MM5
- Need only initialize parent (outer) grid
- MM5 interpolates to nests, using nest terrain
files created using terrain - WRF
- If let model interpolate to nests, higher res
topo files are NOT used, unlike MM5 - So, you need to init each domain separately with
real.exe, and that takes fooling real.exe
50Fooling real.exe - 2 domain example
- Start with domain 2 first
- Edit namelist.input, putting nest information in
first column - Previously, that info was for parent grid
- Rename wrf_real_input_em.d02 IC file as
wrf_real_input_d01 after saving real d01
file!!!! - Here, its wrf_real_input_em.d02.2003-10-24_1200
00 being renamed as wrf_real_input_em.d01.2003-10-
24_120000 - Then
51Fooling real.exe - 2 domain example (cont.)
- This creates a wrfinput_d01 file (since real.exe
thinks its domain 1) - Rename that file as wrfinput_d02 (since its
really for domain 2) - Restore original domain 1 IC file
- Here, its wrf_real_input_em.d01.2003-10-24_1200
00 - Re-edit namelist.input, making sure domain 1
info in 1st column, domain 2 in 2nd - Run real.exe again
- Creates wrfbdy_d01, wrfinput_d01
52Nesting initialization, step by step
- This should be scripted somehow, to avoid
mistakes - Create your namelist.input, with parent and nest
domain info, start and stop times, etc - Set max_dom 2
- Set input_from_file .true., .true.
- ICs for both domains will be read in from files
- Those filenames will be wrfinput_d01, wrfinput_d02
53Nesting initialization, step by step (cont.)
- Rename original d01 IC file as
- Copy d02 IC file with d01 IC file original name
- Copy namelist.input as namelist.input.real
- Edit namelist.input
- This is your temporary namelist.input file
- Set stop time start time only want IC
- Replace parent domain info in column 1 with nest
info from column 2
54Nesting initialization, step by step (cont.)
- Temporary namelist.inputs time_control
55Nesting initialization, step by step (cont.)
- Temporary namelist.inputs domains
- Run real.exe
- Rename wrfinput_d01 as wrfinput_d02
56Nesting initialization, step by step (cont.)
- Clean up
- Move namelist.input.real to namelist.input
- Move wrf_real_input_em.d01.2003-10-24_120000.rea
l back to wrf_real_input_em.d01.2003-10-24_12000
0 - Run real.exe again, this time creating
wrfinput_d01 and wrfbdy_d01 - Now you have
- wrfinput files for d01 and d02
- wrfbdy file for d01
- namelist.input file controlling both domains
- Run the model!
57Animation of nest
- Domain 2 shown for 24Oct2003 case
Color 2 m temperature topo contours 10 m wind
vectors
58Restarting WRF
- In namelist.input, set restart_interval to
desired restart output file interval (minutes) - To restart a simulation
- Set restart .true.
- Set start_ time to reflect restart time
59WRF performance on my machines
60Compile flag notes
- On PCs, Intel beats PGF handily
- But use -mp flag for accuracy, consistency as
number of CPUs varied - This flag does NOT refer to multiprocessing w/
Intel compiler - Dont use -xW vectorization flag w/o checking
(my results so far always wrong) - On Macs, IBM xlf is a great compiler
- But use -qfloatnomaf flag for accuracy
- My tests virtually identical results between
optimized and non-optimized when nomaf used
61WRF for idealized cases
- Ready-made examples include 2D squall lines and
3D supercells - compile em_squall2d_x for the 2D x-z plane squall
line example - In /WRFV2/test/em_squall2d_x, run ideal.exe and
then wrf.exe - To change IC for this case, modify
/WRFV2/dyn_em/module_initialize_squall2d_x.F and
recompile
62Ideal run output using WRF2GrADS
63- End -