1 / 56

WRF Tutorial

WRF Tutorial. For Version 3.0.1.1 / Synoptic Lab January, 2009 Robert Fovell rfovell@ucla.edu. http://www.atmos.ucla.edu/~fovell/WRF/wrf_tutorial_2009.ppt.htm. Background on WRF model. “Weather Research and Forecasting” Co-developed by research and operational communities

traciea
Download Presentation

WRF Tutorial

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. WRF Tutorial For Version 3.0.1.1 / Synoptic Lab January, 2009 Robert Fovell rfovell@ucla.edu http://www.atmos.ucla.edu/~fovell/WRF/wrf_tutorial_2009.ppt.htm

  2. 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 3.0.1.1 • Platforms include Linux and Mac OS X

  3. 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 and C (MM5 was F77) • NetCDF, GRIB1 and GRIB2

  4. 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/ • GRIB2 output now possible as well

  5. WRF disadvantages • Bleeding edge • Smaller range of physics choices (changing quickly…) • 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

  6. WRF and related software • WRF Preprocessing System (WPS) • Replaces/supercedes WRF SI • WRF-ARW model • Single node, OpenMP and MPI • WRF postprocessing software • RIP (read/interpolate/plot) • GrADS • NCL • Specific to “hurricane” Synoptic Lab environment • Neglecting for now: ARWpost, WRF Chem, WRF Var, MET (Verification software), VAPOR, Vis5D

  7. Web resources • WRF model users site http://www.mmm.ucar.edu/wrf/users • 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/users/docs/user_guide_V3/contents.html • WRF namelist description http://www.mmm.ucar.edu/wrf/users/docs/user_guide_V3/users_guide_chap5.htm#_Description_of_Namelist • Tutorial presentations http://www.mmm.ucar.edu/wrf/users/supports/tutorial.html

  8. My resources • This presentation (PPT format) http://www.atmos.ucla.edu/~fovell/WRF/wrf_tutorial_2009.ppt • WRF on Mac OS X http://macwrf.blogspot.com

  9. 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

  10. Environment setup>…is the command line prompt • If you don’t 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 would need to do this every time, in every window]

  11. # RGF additions [abridged] setenv RIP_ROOT /home/fovell/RIP4 setenv GADDIR /home/fovell/lib/grads setenv GASCRP /home/fovell/gradslib # alias lsm 'ls -alt | more' alias rm 'rm -i' alias cp 'cp -i' alias mv 'mv -i' alias trsl ' tail -f rsl.out.0000' alias mpirun 'nohup time /home/fovell/mpich-1.2.7p1/bin/mpirun' alias w2g '/home/fovell/WRF2GrADS/wrf_to_grads' setenv P4_GLOBMEMSIZE 4096000 setenv P4_SOCKBUFSIZE 65536 unlimit limit coredumpsize 0 This environment uses my versions of netcdf, mpich, grads, RIP

  12. Set up a run directory > cd > mkdir SQUALL > cd SQUALL > cp /home/fovell/WRFtutorial/make_all_links.csh . > make_all_links.csh > cp /home/fovell/WRFtutorial/namelist.* . [copies namelist.input, namelist.wps]

  13. WRF for real-data run A 2006 squall-line [This example uses data that may not remain online]

  14. Surface map 00Z April 3, 2006

  15. Radar 00Z April 3, 2006

  16. 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 • Input data source: FNL analysis

  17. namelist.wps &share wrf_core = 'ARW', max_dom = 3, start_date = '2006-04-02_18:00:00', '2006-04-02_18:00:00','2006-04-02_18:00:00', end_date = '2006-04-04_00:00:00', '2006-04-04_00:00:00','2006-04-04_00:00:00', interval_seconds = 21600 io_form_geogrid = 2, / • Setup for 3 telescoping domains • For start_date, end_date need one column for each domain • interval_seconds is parent model data frequency (here, 6 h f • or FNL data)

  18. namelist.wps (cont.) &geogrid parent_id = 1, 1, 2, parent_grid_ratio = 1, 3, 3, i_parent_start = 1, 15, 30, j_parent_start = 1, 15, 37, e_we = 70, 133, 190, e_sn = 70, 133, 190, geog_data_res = '10m','2m','30s', dx = 36000, dy = 36000, map_proj = 'lambert', ref_lat = 39., ref_lon = -88.00, truelat1 = 30.0, truelat2 = 60.0, stand_lon = -88.00, geog_data_path = '/home/fovell/WPS_GEOG/geog' / there is more…

  19. geogrid - create domain > geogrid.exe * creates geo_em.d0*.nc (a NetCDF file) * look for “Successful completion of geogrid.” > plotgrids.exe * creates gmeta > idt gmeta * uses NCAR graphics tool to view domain

  20. > ncdump geo_em.d01.nc | more netcdf geo_em.d01 { • dimensions: • Time = UNLIMITED ; // (1 currently) • DateStrLen = 19 ; • west_east = 69 ; • south_north = 69 ; • south_north_stag = 70 ; • west_east_stag = 70 ; • land_cat = 24 ; • soil_cat = 16 ; • month = 12 ; • variables: • char Times(Time, DateStrLen) ; • float XLAT_M(Time, south_north, west_east) ; • XLAT_M:FieldType = 104 ; • XLAT_M:MemoryOrder = "XY " ; • XLAT_M:units = "degrees latitude" ; • XLAT_M:description = "Latitude on mass grid" ; • XLAT_M:stagger = "M" ;

  21. Parent model data issues • Sources include GFS, FNL, NAM, RUC, NARR and NNRP reanalysis data, etc. • Need a different Vtable (variable table) for each source • e.g., Vtable.GFS, Vtable.NAM, Vtable.NARR, etc. • Look in /home/fovell/WRFtutorial

  22. Accessing parent model data > link_grib.csh /home/fovell/FNL2006/fnl * links to where parent model for case resides ** data files start with ‘fnl*’ > ln -sf /home/fovell/WRFtutorial/Vtable.GFS Vtable * specifies appropriate Vtable > ungrib.exe * extracts parent model data * look for “Successful completion of ungrib.”

  23. Next step: metgrid > metgrid.exe ...hopefully you see ... “Successful completion of metgrid.” ...Output looks like... met_em.d01.2006-04-02_18:00:00.nc met_em.d02.2006-04-03_12:00:00.nc met_em.d01.2006-04-03_00:00:00.nc met_em.d02.2006-04-03_18:00:00.nc met_em.d01.2006-04-03_06:00:00.nc met_em.d02.2006-04-04_00:00:00.nc met_em.d01.2006-04-03_12:00:00.nc met_em.d03.2006-04-02_18:00:00.nc met_em.d01.2006-04-03_18:00:00.nc met_em.d03.2006-04-03_00:00:00.nc met_em.d01.2006-04-04_00:00:00.nc met_em.d03.2006-04-03_06:00:00.nc met_em.d02.2006-04-02_18:00:00.nc met_em.d03.2006-04-03_12:00:00.nc met_em.d02.2006-04-03_00:00:00.nc met_em.d03.2006-04-03_18:00:00.nc met_em.d02.2006-04-03_06:00:00.nc met_em.d03.2006-04-04_00:00:00.nc

  24. ncdump on a metgrid file netcdf met_em.d01.2006-04-02_18:00:00 { dimensions: Time = UNLIMITED ; // (1 currently) DateStrLen = 19 ; west_east = 69 ; south_north = 69 ; num_metgrid_levels = 27 ; This data source has 27 vertical levels. This will vary with source - so check an met_em* file.

  25. 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 • Examples set up to use OpenMP on a single node (i.e., WRF will use 1 or more cores)

  26. namelist.input &time_control run_days = 0, run_hours = 12, run_minutes = 0, run_seconds = 0, start_year = 2006, 2006, 2006, start_month = 04, 04, 04, start_day = 02, 02, 02, start_hour = 18, 18, 18, start_minute = 00, 00, 00, start_second = 00, 00, 00, end_year = 2006, 2006, 2006, end_month = 04, 04, 04, end_day = 03, 03, 03, end_hour = 06, 06, 06, end_minute = 00, 00, 00, end_second = 00, 00, 00, For start_*, end_*, one column per domain

  27. namelist.input (cont.) interval_seconds = 21600 input_from_file = .true.,.true.,.true., history_interval = 60, 60, 60, frames_per_outfile = 1, 1, 1, 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

  28. namelist.input (cont.) &domains time_step = 60, time_step_fract_num = 0, time_step_fract_den = 1, max_dom = 1, s_we = 1, 1, 1, e_we = 70, 133, 190, s_sn = 1, 1, 1, e_sn = 70, 133, 190, s_vert = 1, 1, 1, e_vert = 51, 51, 51, num_metgrid_levels = 27 dx = 36000, 12000, 4000, dy = 36000, 12000, 4000, grid_id = 1, 2, 3, parent_id = 0, 1, 2, i_parent_start = 0, 15, 30, j_parent_start = 0, 15, 37, parent_grid_ratio = 1, 3, 3, parent_time_step_ratio = 1, 3, 3,

  29. namelist.input (cont.) &physics mp_physics = 3, 3, 3, ra_lw_physics = 1, 1, 1, ra_sw_physics = 1, 1, 1, radt = 10, 10, 10, cam_abs_freq_s = 21600, cam_abs_dim1 = 4, cam_abs_dim2 = 51, levsiz = 59, paerlev = 29, sf_sfclay_physics = 1, 1, 1, sf_surface_physics = 2, 2, 2, bl_pbl_physics = 1, 1, 1, bldt = 0, 0, 0, cu_physics = 1, 1, 0, cudt = 5, 5, 5, there is more…

  30. 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 don’t work at all -- this is only lightly documented • bldt = 0 means boundary layer (bl) scheme is called every time step • Standard practice: call bl every time step, cu every 5 min, ra (radiation) every 10 min

  31. namelist.input (cont.) &dynamics w_damping = 0, diff_opt [subgrid turbulence] = 1, km_opt [ “ ] = 4, diff_6th_opt [numerical smoothing] = 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/supports/tutorial.html

  32. http://www.mmm.ucar.edu/wrf/users/tutorial/200901/WRF_Physics_Dudhia.pdfhttp://www.mmm.ucar.edu/wrf/users/tutorial/200901/WRF_Physics_Dudhia.pdf

  33. real.exe • Has changed a lot since version 2.1.2 • Number of vertical model levels is specified in this step • The num_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 e_vert = 51, 51, 51, num_metgrid_levels = 27

  34. 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,

  35. Run real.exe and wrf.exe > setenv | grep OMP OMP_NUM_THREADS=4 > real.exe [look for…] d01 2006-04-03_06:00:00 real_em: SUCCESS COMPLETE REAL_EM INIT • max_dom in namelist.input is set to 1… although we created three domains, only one will be used in the run

  36. Run wrf.exe • Output of real.exe is wrfbdy_d01 and wrfinput_d01 (NetCDF files) - Input files created for each domain, up to max_dom • Run the model > nohup time wrf.exe > wrf.out & • Creates wrfout_d0* files keyed by simulation date for each domain > tail -f wrf.out [to watch the model run]

  37. WRF model output • Namelist set up to do 12 h run • Look for at end of wrf.out file: d01 2006-04-03_06:00:00 wrf: SUCCESS COMPLETE WRF • Output files created: • This is because history_interval was 60 min and frames_per_outfile was 1 wrfout_d01_2006-04-02_18:00:00 wrfout_d01_2006-04-03_01:00:00 wrfout_d01_2006-04-02_19:00:00 wrfout_d01_2006-04-03_02:00:00 wrfout_d01_2006-04-02_20:00:00 wrfout_d01_2006-04-03_03:00:00 wrfout_d01_2006-04-02_21:00:00 wrfout_d01_2006-04-03_04:00:00 wrfout_d01_2006-04-02_22:00:00 wrfout_d01_2006-04-03_05:00:00 wrfout_d01_2006-04-02_23:00:00 wrfout_d01_2006-04-03_06:00:00 wrfout_d01_2006-04-03_00:00:00

  38. Postprocessing WRF output:RIP and GrADS(Vis5D, ARWpost and VAPOR also exist)

  39. RIP • RIP operates in batch mode, using input scripts • RIP can overlay fields, do arbitrary cross-sections, 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

  40. RIP procedure > cp /home/fovell/WRFtutorial/rip.T2.in . > ripdp_wrf run1 all wrfout_d01* [this creates a new dataset called ‘run1’ and uses all wrfout_d01 files created] > rip run1 rip.T2.in [the rip.T2.in file is a script containing RIP plotting commands] [the output file, rip.T2.cgm, is a graphics metafile] You can view the cgm file using idt or ictrans

  41. Domain 1 terrain

  42. 12 h forecast(2m T - color; 1h precip totals; 10 m vector winds)

  43. 12 h forecast(2m T - color; 1h precip totals; 10 m vector winds)

  44. RIP script =========================================================================== feld=T2; ptyp=hc; vcor=s; levs=1fb; cint=1; cmth=fill;> arng; cbeg=273; cend=303; 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/wrf/users/docs/ripug.htm

  45. 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] • Doesn’t create huge numbers of intermediate files like RIP • Arbitrary cross-sections are difficult to construct

  46. GrADS procedure • Copy control_file from /home/fovell/WRFtutorial and edit • Select variables desired and define wrfout files to be accessed (next slide) • w2g control_file run1g • Creates run1g.ctl, run1g.dat http://grads.iges.org/grads/head.html

  47. control_file -3 ! times to put in GrADS file, negative ignores this 0001-01-01_00:00:00 0001-01-01_00:05:00 0001-01-01_00:10:00 end_of_time_list ! 3D variable list for GrADS file ! indent one space to skip U ! U Compoment of wind V ! V Component of wind UMET ! U Compoment of wind - rotated (diagnostic) VMET ! V Component of wind - rotated (diagnostic) W ! W Component of wind THETA ! Theta TK ! Temperature in K TC ! Temperature in C List of available 2D fields follows

  48. control_file (cont.) ! All list of files to read here ! Indent not to read ! Full path OK wrfout_d01_2006-04-02_18:00:00 wrfout_d01_2006-04-02_19:00:00 wrfout_d01_2006-04-02_20:00:00 [more…] end_of_file_list ! Now we check to see what to do with the data real ! real (input/output) / ideal / static 1 ! 0=no map background in grads, 1=map background in grads -1 ! specify grads vertical grid ! 0=cartesian, ! -1=interp to z from lowest h ! 1 list levels (either height in km, or pressure in mb) 1000.0 950.0 900.0 850.0 800.0 750.0 [more…]

  49. Running GrADS > gradsnc -l [GrADS graphics output window opens] ga-> open run1g [ga-> is GrADS environment prompt] ga-> /home/fovell/WRFtutorial/T2_movie.gs [executes this GrADS script; hit return to advance a frame] ga-> quit [to exit]

More Related