## Concentration / Display / File Format

Concentration packing has been implemented with HYSPLIT version 4.5. The updated format is downward compatible in that all display programs can read files produced from versions prior to 4.5, but older versions of the display programs cannot read the new packed output format. Note that HYSPLIT V4.5 can be configured to produced the older style unpacked concentration files. Concentration file packing does not write the same information in fewer bytes, but rather writes the same information using twice as many bytes. The packed files are generally smaller because only concentration values at the non-zero grid points are written to the output file by the model. However this requires the grid point location to be written with the concentration, hence the additional bytes. If most of the grid is expected to have non-zero concentrations, then the old style format will save space. The output format of the unformatted binary (big-endian) concentration file written by dispersion model (hycs_std) and read by all concentration display programs is as follows:

Record #1

- CHAR*4 Meteorological MODEL Identification
- INT*4 Meteorological file starting time (YEAR, MONTH, DAY, HOUR, FORECAST-HOUR)
- INT*4 NUMBER of starting locations
- INT*4 Concentration packing flag (0=no 1=yes)

Record #2 Loop to record: Number of starting locations

- INT*4 Release starting time (YEAR, MONTH, DAY, HOUR)
- REAL*4 Starting location and height (LATITUDE, LONGITUDE, METERS)
- INT*4 Release starting time (MINUTES)

Record #3

- INT*4 Number of (LATITUDE-POINTS, LONGITUDE-POINTS)
- REAL*4 Grid spacing (DELTA-LATITUDE,DELTA-LONGITUDE)
- REAL*4 Grid lower left corner (LATITUDE, LONGITUDE)

Record #4

- INT*4 NUMBER of vertical levels in concentration grid
- INT*4 HEIGHT of each level (meters above ground)

Record #5

- INT*4 NUMBER of different pollutants in grid
- CHAR*4 Identification STRING for each pollutant

Record #6 Loop to record: Number of output times

- INT*4 Sample start (YEAR MONTH DAY HOUR MINUTE FORECAST)

Record #7 Loop to record: Number of output times

- INT*4 Sample stop (YEAR MONTH DAY HOUR MINUTE FORECAST)

Record #8 Loop to record: Number levels, Number of pollutant types

- CHAR*4 Pollutant type identification STRING
- INT*4 Output LEVEL (meters) of this record

  No Packing (all elements)

- REAL*4 Concentration output ARRAY

  Packing (only non-zero elements)

  INT*4 Loop non-zero elements

- INT*2 First (I) index value
- INT*2 - Second (J) index value
- REAL*4 - Concentration at (I,J)

Table of Contents