Sie sind auf Seite 1von 49

WRF Tutorial

For Version 2.2 / Synoptic Lab


10/3/2007
Robert Fovell
rfovell@ucla.edu
http://tinyurl.com/2uagrc or
http://www.atmos.ucla.edu/~fovell/WRF/wrf_tutorial_2007.ppt.htm

Background on WRF model


Weather Research and Forecasting
Co-developed by research and operational
communities
ARW core Advanced Research WRF
NMM core Nonhydrostatic Mesoscale Model

Supercedes MM5 and Eta models


Current version 2.2
Platforms include Linux and Mac OS X

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 handling of topography than Eta


(original NAM)
NAM model is now WRF-NMM

Fortran 95 (MM5 was F77)


NetCDF, GRIB1 and GRIB2

Further advantages
MPI from the ground up
Allows real data and idealized simulations in
same framework
Plug-in architecture (different groups will
supply WRF cores)
Recently added: moving nests and nudging
NetCDF output - many great tools such as
NetCDF operators: http://nco.sourceforge.net/

WRF disadvantages
Bleeding edge
Smaller range of physics choices (tho more
modern)
Software design is unintuitive for physical
scientists
Can take hours to compile
But does not need frequent recompiling

Comparatively slower than MM5


NetCDF files can be huge

WRF and related software


WRF Preprocessing System (WPS)
Replaces/supercedes WRF SI

WRF-ARW model
Single node and MPI

WRF postprocessing software


RIP (read/interpolate/plot)
GrADS

Specific to hurricane Synoptic Lab


environment
Neglecting for now: GRIB2, ARWpost

Web resources
WRF model users site
http://www.mmm.ucar.edu/wrf/users/user_main.html

ARW users guide


http://www.mmm.ucar.edu/wrf/users/docs/user_guide/contents.
html

WRF-ARW/WPS online tutorial


http://www.mmm.ucar.edu/wrf/OnLineTutorial/index.htm

WRF namelist description


http://www.mmm.ucar.edu/wrf/users/docs/user_guide/users_g
uide_chap5.html#Nml

Tutorial presentations

http://www.mmm.ucar.edu/wrf/users/tutorial/tutorial_presentati
on.htm

My resources
This presentation (PPT format)
http://www.atmos.ucla.edu/~fovell/WRF/wrf_tutorial_
2007.ppt

WRF on Mac OS X
http://www.atmos.ucla.edu/~fovell/WRF/WRF_ports.h
tml
http://macwrf.blogspot.com

Setup on hurricane
machines
Presumed:
tcsh environment
Intel Fortran compiler (64-bit)
my environment setup employed
precompiled versions of WRF, WPS, RIP and wrf_to_grads

Environment setup
> is the command line prompt

If you dont have a .cshrc file (worth


saving) - recommended
>cp/home/fovell/.cshrc.
>source.cshrc

If you want to keep your present .cshrc


>cp/home/fovell/cshrc_fovell.csh.
>./cshrc_fovell.csh
[you need to have the compiler environment set up
already]

#RGFadditions[abridged]
setenvRIP_ROOT/home/fovell/RIP4
setenvGADDIR/home/fovell/lib/grads
setenvGASCRP/home/fovell/gradslib
#
aliaslsm'lsalt|more'
aliasrm'rmi'
aliascp'cpi'
aliasmv'mvi'
aliastrsl'tailfrsl.out.0000'
aliasmpirun'nohuptime/home/fovell/mpich1.2.7p1/bin/mpirun'
aliasw2g'/home/fovell/WRF2GrADS/wrf_to_grads'
setenvP4_GLOBMEMSIZE4096000
setenvP4_SOCKBUFSIZE65536
unlimit
limitcoredumpsize0

This environment uses my versions of


netcdf, mpich, grads, RIP

Set up a run directory


>cd
>mkdirFELIX
>cdFELIX
>cp/home/fovell/WRFtutorial/make_all_links.csh.
>make_all_links.csh
>cp/home/fovell/WRFtutorial/namelist.*.
[copiesnamelist.input,namelist.wps]

WRF for real-data run


Hurricane Felix (2007)
[This example uses data that
will not remain online]

WPS overview
Tasks
(1) set up a domain (can be reused)
geogrid.exe

(2) unpack parent model data (e.g., from GFS,


NAM, etc.)
ungrib.exe

(3) prepare unpacked data for WRF


metgrid.exe

Controlled by namelist.wps

namelist.wps
&share
wrf_core='ARW',
max_dom=1,
start_date='20070902_00:00:00','20070902_00:00:00',
end_date='20070903_12:00:00','20070903_12:00:00',
interval_seconds=10800,
io_form_geogrid=2,
/

For start_date, end_date need one column for each domain


interval_seconds is parent model data frequency (here, 3 h)

namelist.wps (cont.)
&geogrid
parent_id=1,1,
parent_grid_ratio=1,3,
i_parent_start=1,53,
j_parent_start=1,65,
e_we=70,259,
e_sn=40,199
geog_data_res='2m','2m',
dx=36000,
dy=36000,
map_proj='lambert',
ref_lat=15.0
ref_lon=75.0,
truelat1=29.6,
truelat2=29.6,
stand_lon=75.0,
geog_data_path='/home/fovell/WPS_GEOG/geog'
/

there is more

geogrid - create domain


> geogrid.exe
* creates geo_em.d01.nc(a NetCDF file)
* look for Successfulcompletionofgeogrid.
> plotgrids.exe
* creates gmeta
> idtgmeta
* uses NCAR graphics tool to view domain

gmeta file

>ncdumpgeo_em.d01.nc|more
netcdfgeo_em.d01{
dimensions:
Time=UNLIMITED;//(1currently)
DateStrLen=19;
west_east=69;
south_north=39;
south_north_stag=40;
west_east_stag=70;
land_cat=24;
soil_cat=16;
month=12;
variables:
charTimes(Time,DateStrLen);
floatXLAT_M(Time,south_north,west_east);
XLAT_M:FieldType=104;
XLAT_M:MemoryOrder="XY";
XLAT_M:units="degreeslatitude";
XLAT_M:description="Latitudeonmassgrid";
XLAT_M:stagger="M";

Parent model data issues


Sources include GFS, NAM, NARR
reanalysis data, etc.
Need a different Vtable (variable
table) for each source
e.g., Vtable.GFS, Vtable.AWIP (NAM),
Vtable.NARR, etc.
Look in /home/fovell/WRFtutorial

Accessing parent model data


> link_grib.csh/home/fovell/2007090200/gfs
* links to where parent model for case resides
** data files start with gfs*
> lnsf/home/fovell/WRFtutorial/Vtable.GFSVtable
* specifies appropriate Vtable
> ungrib.exe
* extracts parent model data
* look for Successfulcompletionofungrib.

Next step: metgrid


> metgrid.exe
...hopefullyyousee...
Successfulcompletionofmetgrid.
...Outputlookslike...
met_em.d01.20070902_00:00:00.ncmet_em.d01.20070902_21:00:00.nc
met_em.d01.20070902_03:00:00.ncmet_em.d01.20070903_00:00:00.nc
met_em.d01.20070902_06:00:00.ncmet_em.d01.20070903_03:00:00.nc
met_em.d01.20070902_09:00:00.ncmet_em.d01.20070903_06:00:00.nc
met_em.d01.20070902_12:00:00.ncmet_em.d01.20070903_09:00:00.nc
met_em.d01.20070902_15:00:00.ncmet_em.d01.20070903_12:00:00.nc
met_em.d01.20070902_18:00:00.nc

ncdump on a metgrid file


netcdfmet_em.d01.20070902_00:00:00{
dimensions:
Time=UNLIMITED;//(1currently)
DateStrLen=19;
west_east=69;
south_north=39;
num_metgrid_levels=27;
num_sm_levels=4;
num_st_levels=4;
south_north_stag=40;
west_east_stag=70;
zdimension0012=12;
zdimension0016=16;
zdimension0024=24;

This data source has 27 vertical levels.


This will vary with source.

WRF model steps


Tasks
Run real.exe (to finish creation of WRF
model input data)
Run wrf.exe

Both use namelist.input


Configured separately from namelist.wps
but includes overlapping information

namelist.input
&time_control
run_days=0,
run_hours=36,
run_minutes=0,
run_seconds=0,
start_year=2007,2007,
start_month=09,09,
start_day=02,02,
start_hour=00,00,
start_minute=00,00,
start_second=00,00,
end_year=2007,2007,
end_month=09,09,
end_day=03,03,
end_hour=12,12,
end_minute=00,00,
end_second=00,00,

For start_*, end_*, one column per domain

namelist.input (cont.)
interval_seconds=10800

input_from_file=.true.,.true.,
history_interval=60,60,
frames_per_outfile=6,6,
restart=.false.,
restart_interval=5000,

interval_seconds matches namelist.wps


input_from_file should normally be true for each domain
history_interval - how frequently (in min) output created
frames_per_outfile - number of writes in each history file
If wish to restart mode, restart = .true.
(and set model start_* data to restart time)
restart_interval = frequency (min) for writing restart files

namelist.input (cont.)
&domains

time_step=150,
time_step_fract_num=0,
time_step_fract_den=1,
max_dom=1,
s_we=1,1,1,
e_we=70,259,94,
s_sn=1,1,1,
e_sn=40,199,91,
s_vert=1,1,1,
e_vert=31,31,31,
num_metgrid_levels=27
dx=36000,12000,333,
dy=36000,12000,333,
grid_id=1,2,3,
parent_id=0,1,2,
i_parent_start=0,53,30,
j_parent_start=0,65,30,
parent_grid_ratio=1,3,3,
parent_time_step_ratio=1,3,3,

namelist.input (cont.)
&physics

mp_physics[Microphysics]=1,1,
ra_lw_physics[Longwaverad]=1,1,
ra_sw_physics[Shortwaverad]=1,1,
radt[Radiationtimestep;min]=10,10,
sf_sfclay_physics[Surfacelayer]=1,1,
sf_surface_physics[Surface]=1,1,
bl_pbl_physics[Boundarylayer]=1,1,
bldt[Boundarylayertimestep;min]=0,0,
cu_physics[cumulusscheme]=1,0,
cudt[cumulustimestep;min]=5,
isfflx=1,
ifsnow=0,
icloud=1,
surface_input_source=1,
num_soil_layers=5,
mp_zero_out=0,

Notes on physics
Need to use SAME microphysics (mp)
scheme in each domain, but can use
different cumulus (cu) schemes
Some physics combinations work better
than others, some dont work at all -this is only lightly documented
bldt = 0 means boundary layer scheme
is called every time step

namelist.input (cont.)
&dynamics

w_damping=0,
diff_opt[subgridturbulence]=1,
km_opt[]=4,
diff_6th_opt[numericalsmoothing]=0,
diff_6th_factor[]=0.12,
base_temp=290.
damp_opt=0,
zdamp=5000.,5000.,5000.,
dampcoef=0.01,0.01,0.01
khdif=0,0,0,
kvdif=0,0,0,

Only some diff_opt/km_opt combinations make sense,


and choices are resolution-dependent.
More info:
http://www.mmm.ucar.edu/wrf/users/tutorial/tutorial_presentation.htm

http://www.mmm.ucar.edu/wrf/users/tutorial/200707/WRF_Physics_Dudhia.pdf

real.exe
Has changed a lot since version 2.1.2
Number of vertical model levels now specified
w/ real.exe
e_vert=31,31,31,
num_metgrid_levels=27

Thenum_metgrid_levels comes from parent


model; you set e_vert (number of WRF levels)
here
Can reset WRF levels by rerunning real.exe
Can also specify which levels you want

Setting levels in namelist.input


(optional)
WRF uses sigma or eta coordinates (1.0 is model
bottom, 0.0 is top)
Added lines to &domains in namelist.input, presuming
e_vert = 51, requests a model top pressure of 50 mb
(5000 Pa) and concentrates vertical resolution in lower trop
p_top_requested=5000
eta_levels=1.00,0.9969,0.9935,0.9899,0.9861,0.9821,
0.9777,0.9731,0.9682,0.9629,0.9573,0.9513,
0.9450,0.9382,0.9312,0.9240,0.9165,0.9088,
0.9008,0.8925,0.8840,0.8752,0.8661,0.8567,
0.8471,0.8371,0.8261,0.8141,0.8008,0.7863,0.7704,
0.7531,0.7341,0.7135,0.6911,0.6668,0.6406,
0.6123,0.5806,0.5452,0.5060,0.4630,0.4161,
0.3656,0.3119,0.2558,0.1982,0.1339,0.0804,0.0362,0.0000,

Run real.exe
>mpirunnp2real.exe
wrf@iniki.atmos.ucla.edu'spassword:
startingwrftask0of2
startingwrftask1of2
2.624u1.248s0:12.6330.5%0+0k0+0io0pf+0w

>tailrsl.out.0000
>extrapolatingTEMPERATUREnearsfc:i,j,psfc,ptarget
d0120070903_12:00:00forcingartificialsiltyclayloam
LANDCHANGE=0
WATERCHANGE=0
d0120070903_12:00:00Timingforprocessing0s.
LBCvalidbetweenthesetimes20070903_09:00:00.000020070903_
d0120070903_12:00:00Timingforoutput0s.
d0120070903_12:00:00Timingforloop#13=0s.
d0120070903_12:00:00real_em:SUCCESSCOMPLETEREAL_EMINIT

Aside: password-less
execution
Last slides mpirun command asked for
2 cpus (np2)
By default, 2 cpus on same workstation
are accessed
To avoid being asked for password:
>cd~/.ssh
>sshkeygentdsa[thenhitreturn4times]
Yourpublickeyhasbeensavedin/home/wrf/.ssh/id_dsa.pub.
Thekeyfingerprintis:
cc:78:50:1e:77:23:ca:8f:81:3d:f0:d2:a4:8a:2e:a7wrf@iniki.atmos.ucla.edu
>cpid_dsa.pubauthorized_keys[ifdoesnotalreadyexist]
>cd../FELIX

Run wrf.exe
Output of real.exe is wrfbdy_d01 and
wrfinput_d01 (NetCDF files)
Additional wrfinput files created for nests if
max_dom > 1

Run the model


>mpirunnp4wrf.exe&

Creates wrfout_d01* files keyed by simulation


date, and rsl.out/rsl.error files for each CPU
requested

FELIX output
Namelist set up to do 36 h run
Look for at end of rsl.out.0000 file:
d0120070903_12:00:00wrf:SUCCESSCOMPLETEWRF

Output files created:


wrfout_d01_20070902_00:00:00wrfout_d01_20070903_00:00:00
wrfout_d01_20070902_06:00:00wrfout_d01_20070903_06:00:00
wrfout_d01_20070902_12:00:00wrfout_d01_20070903_12:00:00
wrfout_d01_20070902_18:00:00

This is because history_interval was 60


min and frames_per_outfile was 6

Postprocessing WRF output:


RIP and GrADS
(Vis5D and ARWpost also exist)

RIP
RIP operates in batch mode, using input
scripts
RIP can overlay fields, do arbitrary crosssections, calculate trajectories, and create
Vis5D output files
RIP tasks include
Unpack model output data (ripdp_wrf)
Create RIP plotting scripts (rip.in files)
Execute scripts (rip)

RIP can create a LOT of output files

RIP procedure
>ripdp_wrfrun1allwrfout_d01*
[thiscreatesanewdatasetcalledrun1
andusesallwrfout_d01filescreated]
>riprun1rip.T2.in
[therip.T2.infileisascriptcontaining
RIPplottingcommands]
[theoutputfile,rip.T2.cgm,isagraphics
metafile]
>Youcanviewthecgmfileusingidtorictrans

36 h forecast
(2 m T - color; SLP - contour; 10 m winds - vector)

RIP script

==========================================================================
feld=T2;ptyp=hc;vcor=s;levs=1fb;cint=0.5;cmth=fill;>
arng;cbeg=283;cend=309;cosq=0,violet,12.5,blue,25,green,37.5,>
light.green,50,white,62.5,yellow,75,orange,87.5,red,100,brown
feld=U10,V10;ptyp=hv;vcmx=20.0;colr=black;linw=1;intv=2;
feld=slp;ptyp=hc;vcor=s;levs=1fb;cint=4;nohl;colr=blue;linw=2;nolb
feld=map;ptyp=hb;colr=dark.blue;linw=2;
feld=tic;ptyp=hb
==========================================================================

http://www.mmm.ucar.edu/mm5/documents/ripug_V4.html

GrADS and wrf_to_grads


GrADS produces beautiful graphics
Batch scriptable AND interactive
Interactive: good for overlaying different
datasets, computing difference fields [can
also be done in RIP]
Doesnt create huge numbers of intermediate
files like RIP
Arbitrary cross-sections are very difficult to
construct

GrADS procedure
Copy control_file from
/home/fovell/WRFtutorial and edit

Select variables desired and define


wrfout files to be accessed (next slide)
w2gcontrol_filerun1g

Creates run1g.ctl, run1g.dat


http://grads.iges.org/grads/head.html

control_file
3!timestoputinGrADSfile,negativeignoresthis
00010101_00:00:00
00010101_00:05:00
00010101_00:10:00
end_of_time_list
!3DvariablelistforGrADSfile
!indentonespacetoskip
U!UCompomentofwind
V!VComponentofwind
UMET!UCompomentofwindrotated(diagnostic)
VMET!VComponentofwindrotated(diagnostic)
W!WComponentofwind
THETA!Theta
TK!TemperatureinK
TC!TemperatureinC

List of available 2D fields follows

control_file(cont.)
!Alllistoffilestoreadhere
!Indentnottoread
!FullpathOK
wrfout_d01_20070902_00:00:00
wrfout_d01_20070902_06:00:00
wrfout_d01_20070902_12:00:00
wrfout_d01_20070902_18:00:00
wrfout_d01_20070903_00:00:00
wrfout_d01_20070903_06:00:00
wrfout_d01_20070903_12:00:00
end_of_file_list
!Nowwechecktoseewhattodowiththedata
real!real(input/output)/ideal/static
1!0=nomapbackgroundingrads,1=mapbackgroundingrads
1!specifygradsverticalgrid
!0=cartesian,
!1=interptozfromlowesth
!1listlevels(eitherheightinkm,orpressureinmb)
1000.0
950.0
900.0
850.0
800.0
750.0

Running GrADS
>gradsncl
[GrADSgraphicsoutputwindowopens]
ga>openrun1g
[ga>isGrADSenvironmentprompt]
ga>/home/fovell/WRFtutorial/T2_movie.gs
[executesthisGrADSscript;
hitreturntoadvanceaframe]
ga>quit
[toexit]

36 h forecast
(2 m T and 10 m winds)

= end =

Das könnte Ihnen auch gefallen