WRF demo/tutorial - University of California, Los Angeles

Download Report

Transcript WRF demo/tutorial - University of California, Los Angeles

WRF demo/tutorial 12-13-2004 Robert Fovell

[email protected]

Background 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)

WRF 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

Further advantages • Allows real data and idealized simulations in same framework • Plug-in architecture (different groups will supply WRF “cores”) • What I’m calling WRF is really the “Advanced Research WRF” (ARW) core

WRF 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]

Overview • WRF Standard Initialization (WRFSI) – Set up domain – Prepare data for model run – MM5 equiv: terrain, pregrid, regridder • WRF model – Initialize model (MM5’s interpf) – Run model • WRF post-processing • WRF 3DVAR (not covered today)

Web stuff… • • • • • • • http://www.mmm.ucar.edu/wrf/users/user_main.html

model users’ site) (WRF http://www.mmm.ucar.edu/wrf/users/wrfv2/wrf-namelist.html

(WRF namelist.input page) http://www.mmm.ucar.edu/wrf/users/docs/user_guide/contents.h

tml (WRF users guide) http://www.mmm.ucar.edu/wrf/users/tutorial/tutorial-2004.htm

(Slides from 2004 WRF tutorial at NCAR) http://www.atmos.ucla.edu/~fovell/WRF/WRF_ports.html

(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)

WRF for real data run Example: 24-26 October 2003 (Simi fire)

Directory 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

WRFSI …/WRFV2/wrfsi/wrf_tools

Domain 1 terrain

Output from WRFSI • …/WRFV2/wrfsi/domains/SoCal/siprd • IC, BC files for D1, IC file for D2 • Move or link into …/WRFV2/test/em_real

WRF model …/WRFV2/

Directory structure • In ../WRFV2 – main/ – test/ – run/ is where executables live – arch/ – frame/ default config stuff model framework stuff – phys/, dyn_em/ – external/ model physics, solver mainly I/O, MPI stuff test cases live here can run model from here, too

Preparing 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

Configuring • ./configure presents option list • Example: chose option 3, MPI

Compiling • ./compile presents options • Example: chose

compile em_real

– Eulerian mass-coordinate real-data model

Final 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

Editing namelist.input

• Web resource – http://www.mmm.ucar.edu/wrf/users/wrfv2/ wrf-namelist.html

• Namelist sections [partial list] – &time_control – &domains – &physics – &dynamics

Setup for single domain run Columns provided for 3 domains (parent & 2 nests) but if max_dom =1 extra columns ignored

Setup for single domain run time_step ~ 6*DX (3*DX for MM5)… unless convective; Change max_dom when ready to activate nest

Setup 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

Setup for single domain run s_we = start index for west-east direction, always 1.

e_we = end index west east, that’s your dimension

Setup for single domain run Make sure dx, dy set correctly -- the model does NOT check GUI-created inputs!

Setup for single domain run Columns provided for 3 domains (parent & 2 nests) but if max_dom =1 extra columns ignored

Setup for single domain run Here, subgrid mixing and computational diffusion is deactivated; model’s odd order advection is diffusive

Run 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

Files created by WRF run • Named like: wrfout_d01_2003-10-24_12:00:00 [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

WRF postprocessing • RIP (just like MM5) • WRF2GrADS converter • WRF2VIS5D converter • Software that can handle NetCDF

RIP • 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*

Animation using RIP • Part of Domain 1 shown for 24Oct2003 case QuickTime™ and a Video decompressor are needed to see this picture.

Color: 2 m temperature; topo contours; 10 m wind vectors

Nesting • Created domains 1, 2 for SoCal in WRFSI • WRFSI created wrf_real_input_em* files for both domains • • Need to run

real.exe

namelist.input

real.exe run once for each domain needs to be edited for each • Files have to be renamed to “fool” real.exe

• Web page explanation: http://www.mmm.ucar.edu/wrf/users/wrfv2/runwrf.html

MM5 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…

Fooling 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, it’s wrf_real_input_em.d02.2003-10-24_12:00:00 being renamed as wrf_real_input_em.d01.2003-10-24_12:00:00 • Then…

Fooling real.exe - 2 domain example (cont.) • This creates a

wrfinput_d01

real.exe thinks it’s domain #1) file (since • Rename that file as really for domain #2)

wrfinput_d02

(since it’s • Restore original domain #1 IC file – Here, it’s wrf_real_input_em.d01.2003-10-24_12:00: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

Nesting 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

Nesting 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

Nesting initialization, step by step (cont.) • Temporary namelist.input’s &time_control

Nesting initialization, step by step (cont.) • Temporary namelist.input’s &domains • Run real.exe

• Rename wrfinput_d01 as wrfinput_d02

Nesting initialization, step by step (cont.) • Clean up: – Move namelist.input.real to namelist.input

– Move wrf_real_input_em.d01.2003-10-24_12:00:00.real

wrf_real_input_em.d01.2003-10-24_12:00:00 back to • 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!

Animation of nest • Domain 2 shown for 24Oct2003 case QuickTime™ and a Video decompressor are needed to see this picture.

Color: 2 m temperature; topo contours; 10 m wind vectors

Restarting WRF • In namelist.input, set

restart_interval

desired restart output file interval to (minutes) • To restart a simulation – Set

restart

= .true.

– Set

start_*

time to reflect restart time

WRF performance on my machines

Compile 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 – Don’t use

-xW

[vectorization] flag w/o checking (my results so far always wrong) • On Macs, IBM xlf is a great compiler – But use

-qfloat=nomaf

flag for accuracy – My tests: virtually identical results between optimized and non-optimized when

nomaf

used

WRF for idealized cases • • Ready-made examples include 2D squall lines and 3D supercells

compile em_squall2d_x

squall line example for the 2D x-z plane • In …/WRFV2/test/em_squall2d_x , run

ideal.exe

then

wrf.exe

• To change IC for this case, modify …/WRFV2/dyn_em/module_initialize_squall2d_x.F

recompile and and

Ideal run output using WRF2GrADS

- End -