io_grib2 Author: Todd Hutchinson WSI thutchinson@wsi.com 28 September 2005 I. Introduction io_grib2 is a WRF module that allows for input and output of WRF data in GRIB version 2 format. Why would anyone use GRIB2 output? Data stored in GRIB2 format is compressed using advanced compression (i.e., JPEG2000), so output files are much smaller than in other formats such as netCDF and grib version 1. Better compression is achieved with larger grids. II. Prerequisites In order to compile and link WRF using the grib2 format, one system library is required: libjasper.a: http://www.ece.uvic.ca/~mdadams/jasper/ The library should be installed in a system accessible place (i.e., /usr/lib). The paths to the jasper library and include files must be specified via environment variables prior to running ./configure . Please use the following environment variables: JASPERLIB Path to jasper library files (libjasperlib.a) JASPERINC Path to jasper include files Note that if these environment variables are not defined before ./configure is run, the Grib2 I/O package will not be built. III. Running WRF with grib2 input/output 1. Set namelist entry or entries io_form_ to 10 2. Run WRF as you normally would, for example: cd test/em_real ./real.exe ./wrf.exe IV. Quilting If you are running WRF using MPI, you may use a seperate processor for quilting just as is done with netCDF. Simply set the namelist variable nio_tasks_per_group to 1 (or more). V. Details 1. grib2map.tbl file io_grib2 makes use of a table for encoding the WRF data into GRIB2 format. The table that io_grib2 uses is contained in the WRF run directory, and is called grib2map.tbl. This file is read at run-time by io_grib2. Settings in this file are used to encode the corresponding parameters in the output files. You may modify this file to suit your needs. The format of the table is described within the file itself. VI. Comparison between file formats. 1. The following table shows the file sizes and run times for netcdf, grib1, and grib2 format for a 6 hour simlation of the WRF jun11 test case. The domain size in this case is 91x82 by 28 levels. Data was output every 3 hours (for a total of 3 output times). The simulations were run on NCAR's bluesky system. | Size (MB) | WRF Time(m:s) ------------------------------------ NETCDF | 38.40 | 19:31 | GRIB1 | 13.42 | 21:22 | GRIB2 | 4.33 | 22:36 | ------------------------------------ VII. New namelist variables for Grib2 I/O: The following new namelist variables may be optionally used to control Grib2 I/O. They are defined in new namelist "&grib2". Note that the &grib2 namelist must be included in file "namelist.input" even if empty. (This annoyance is ultimately due to problems with old OSF1 Fortran90 compilers.) background_proc_id - Background generating process identifier, typically defined by the originating center to identify the background data that was used in creating the data. This is octet 13 of Section 4 in the grib2 message. Default is 255. forecast_proc_id - Analysis or generating forecast process identifier, typically defined by the originating center to identify the forecast process that was used to generate the data. This is octet 14 of Section 4 in the grib2 message. Default is 255. production_status - Production status of processed data in the grib2 message. See Code Table 1.3 of the grib2 manual. This is octet 20 of Section 1 in the grib2 record. Default is 255. compression - The compression method to encode the output grib2 message. Only 40 for jpeg2000 or 41 for PNG are supported. The default is 40.