Monday, September 29, 2025

Hysplit: CONC.CFG

Breakdown of Parameters in CONC.CFG

Breakdown of Parameters in CONC.CFG

The CONC.CFG file is a crucial configuration file that controls advanced settings for the HYSPLIT concentration (dispersion) model. It defines how calculations are performed and what output is generated, complementing the CONTROL file used in your MATLAB script.

Here's a breakdown of the CONC.CFG file structure and parameters:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
&SETUP
 tratio = 0.75,
 delt = 0.0,
 initd = 0,
 kpuff = 0,
 khmax = 9999,
 khinp = 0,
 numpar = 2500,
 maxpar = 10000,
 nbptyp = 1,
 qcycle = 0.0,
 efile = '',
 k10m = 1,
 kdef = 0,
 krand = 2,
 kzmix = 0,
 kbls = 1,
 kblt = 0,
 isot = -99,
 idsp = 1,
 wvert = .TRUE.,
 plrise = 1,
 area = 0,
 vscale = 200.0,
 vscales = 5.0,
 vscaleu = 200.0,
 hscale = 10800.0,
 capemin = -1.0,
 tkemin = 0.001,
 uratio = 5.873300076,
 tvmix = 1.00,
 tkerd = 0.18,
 tkern = 0.18,
 kmix0 = 150,
 kmixd = 0,
 ninit = 1,
 ndump = 0,
 ncycl = 0,
 pinbc = 'PARINBC',
 pinpf = 'PARINIT',
 poutf = 'PARDUMP',
 messg = 'MESSAGE',
 vdist = 'VMSDIST',
 mgmin = 10,
 conage = 24,
 gemage = 48,
 kmsl = 0,
 kwet = 1,
 ichem = 0,
 cpack = 1,
 cmass = 0,
 kspl = 1,
 krnd = 6,
 frhmax = 3.00,
 splitf = 1.00,
 frhs = 1.00,
 frvs = 0.01,
 frts = 0.10,
 dxf = 1.00,
 dyf = 1.00,
 dzf = 0.01,
 /

Parameter Explanations

Core Simulation Parameters

  • tratio = 0.75 - Time step ratio (stability factor). HYSPLIT adjusts its internal time step so a particle/puff doesn't travel more than 75% of a grid cell in one step. Potential values: 0.0 to 1.0 (typically 0.5–0.9). Affects how your pollutant (e.g., SO2) disperses in the atmosphere.
  • delt = 0.0 - Fixed time step (minutes). 0.0 means HYSPLIT uses a variable time step controlled by tratio. Potential values: 0.0 (auto) or positive values (e.g., 1.0). Ensures efficient computation for your 48-hour simulation.
  • initd = 0 - Particle/puff initialization method. 0 = 3D particle mode (pure Lagrangian, tracks individual particles), 1 = Gaussian horizontal puff, vertical particle, 2 = Top-hat horizontal puff, vertical particle, 3 = Gaussian puff (3D), 4 = Top-hat puff (3D). Suitable for detailed dispersion tracking in your SO2 simulation.
  • kpuff = 0 - Horizontal puff growth option. 0 = Linear growth with time, 1 = Growth proportional to square root of time. Ignored since initd = 0. Not applicable in your current setup.
  • khmax = 9999 - Maximum duration (hours) for a particle/puff. 9999 means "no limit". Potential values: Positive integers. Matches your 48-hour forward run (param.runTime).
  • khinp = 0 - Input flag for puff splitting. 0 = No special input. Typically unused unless puff-splitting files are used. Not relevant unless customizing puff behavior.

Particle and Emission Parameters

  • numpar = 2500 - Number of particles or puffs released per emission cycle. Potential values: Positive integers (e.g., 1000–10000). Controls how finely your SO2 emission (param.emissionRate = 1000 kg/hr) is resolved.
  • maxpar = 10000 - Maximum total number of particles/puffs allowed. Potential values: Positive integers (e.g., 1000–100000). Ensures your simulation doesn’t crash due to too many particles.
  • nbptyp = 1 - Number of bytes per particle in the output file (affects PARDUMP file size). Potential values: 1, 2, or 4. Affects the PARDUMP file if used (not in your script’s output).
  • qcycle = 0.0 - Emission cycle time (hours). 0.0 = Continuous emission during emissionHours. Potential values: 0.0 or positive values (e.g., 1.0 for hourly pulses). Matches your 1-hour emission event (param.emissionHours = 1).
  • efile = '' - Path to an emission input file for complex source configurations. Potential values: Empty string ('') or a file path. Not needed since your script specifies param.emissionRate.

Turbulence and Boundary Layer Parameters

  • k10m = 1 - Use 10m wind data for turbulence calculations. Potential values: 0 (no), 1 (yes). Enhances accuracy near your 10m emission altitude (alt = 10).
  • kdef = 0 - Horizontal turbulence deformation method. 0 = Based on velocity variances, 1 = Based on deformation field. Suitable for your general-purpose SO2 dispersion.
  • krand = 2 - Random number generator for turbulence. Potential values: 1, 2, or 3. 2 is robust for your run.
  • kzmix = 0 - Vertical mixing method. 0 = Use meteorology data, 1 = Scale by boundary layer depth. Matches your use of GDAS1 files in metPath.
  • kbls = 1 - Boundary layer stability method. 0 = Use input meteorology, 1 = Compute from heat and momentum fluxes. Enhances realism for your SO2 dispersion.
  • kblt = 0 - Boundary layer turbulence parameterization. 0 = Beljaars-Holtslag for stable, Kanthar-Clayson for unstable, 1 = Shortwave radiation-based. Good default for your simulation.
  • isot = -99 - Isotropic turbulence flag. -99 = Disabled. Ignored in your run, safe to leave as is.
  • idsp = 1 - Dispersion method. 0 = No dispersion (advection only), 1 = Dispersion with mixing. Essential for modeling SO2 spread in your script.
  • wvert = .TRUE. - Enable vertical velocity in dispersion calculations. Potential values: .TRUE., .FALSE. Enhances vertical dispersion in your simulation.
  • plrise = 1 - Plume rise calculation method. 0 = No plume rise, 1 = Briggs plume rise. Suitable if your SO2 source is a point source like a factory.
  • area = 0 - Area source size (m²). 0 = Point source. Potential values: 0 or positive value. Matches your single-point emission (lat = 37.5, lon = -120.0, alt = 10).
  • vscale, vscales, vscaleu = 200.0, 5.0, 200.0 - Turbulence velocity scales (m/s) for general, stable, and unstable conditions. Potential values: Positive values (e.g., 5.0–500.0). Affects how widely your SO2 disperses vertically.
  • hscale = 10800.0 - Horizontal turbulence scale (seconds). Potential values: Positive values (e.g., 1000–10800). Influences horizontal spread of pollutants in your simulation.
  • capemin = -1.0 - Minimum convective available potential energy (J/kg) for plume rise. -1.0 = Disabled. Simplifies your run, relying on plrise.
  • tkemin = 0.001 - Minimum turbulent kinetic energy (m²/s²). Potential values: Small positive values (e.g., 0.001–0.1). Ensures turbulence in calm conditions.
  • uratio = 5.873300076 - Ratio of wind speed to turbulence velocity. Potential values: Positive values (default ~5.87). Affects turbulence; default is fine.
  • tvmix = 1.00 - Vertical mixing coefficient. Potential values: 0.0–1.0. Ensures realistic vertical dispersion.
  • tkerd, tkern = 0.18, 0.18 - Daytime and nighttime turbulence ratios. Potential values: 0.1–0.5. Suitable for your run.
  • kmix0 = 150 - Minimum mixing depth (m). Potential values: Positive integers (e.g., 50–500). Reasonable for near-surface emissions.

Initialization and Output Control

  • kmixd = 0 - Mixing depth source. 0 = Use met data, 1 = Compute internally. Matches your reliance on GDAS1 files.
  • ninit = 1 - Initialization of particles from PARINIT file. 0 = None, 1 = Read PARINIT if exists. Not used unless you specify pinpf.
  • ndump = 0 - Interval (hours) for writing PARDUMP file. 0 = None. Potential values: Positive integers. Reduces output file size in your run.
  • ncycl = 0 - Particle release cycle interval (hours). 0 = Continuous. Consistent with your 1-hour emission.
  • pinbc = 'PARINBC' - Filename for boundary condition input. Potential values: File names or empty. Not used in your script.
  • pinpf = 'PARINIT' - Filename for particle initialization. Potential values: File names or empty. Not used in your script.
  • poutf = 'PARDUMP' - Filename for particle dump output. Potential values: File names or empty. Not used in your script.
  • messg = 'MESSAGE' - Names the detailed log file generated by HYSPLIT. Potential values: File name or empty. Default is fine.
  • vdist = 'VMSDIST' - Vertical distribution method. Potential values: String (default 'VMSDIST'). Controls vertical particle distribution; default is standard.
  • mgmin = 10 - Minimum number of particles per grid cell for concentration output. Potential values: Positive integers. Ensures statistical reliability in your grid.
  • conage = 24 - Maximum age (hours) for concentration calculations. Potential values: Positive integers. Fits your 48-hour run, limiting older contributions.
  • gemage = 48 - Maximum age (hours) for particle transport. Potential values: Positive integers. Matches your runTime, ensuring particles don’t persist beyond your simulation.
  • kmsl = 0 - Altitude input type. 0 = Meters above ground level (AGL), 1 = Meters above sea level (ASL). Matches your MATLAB input (alt = 10).

Deposition and Chemistry

  • kwet = 1 - Enable wet deposition. 0 = Off, 1 = On. Ignored unless you modify HYSPLIT_writeControlConc.m to include deposition parameters.
  • ichem = 0 - Chemistry module. 0 = None. Potential values: Other integers (see HYSPLIT docs). Suitable for your simple SO2 simulation.

Output File Parameters

  • cpack = 1 - Concentration output packing. 0 = No packing, 1 = Packed binary output. Matches your cdump_test output.
  • cmass = 0 - Concentration output type. 0 = Concentration (e.g., kg/m³), 1 = Mass loading (e.g., kg). Appropriate for analyzing SO2 concentrations.
  • kspl = 1 - Particle/puff splitting interval (hours). 0 = No splitting. Enhances accuracy in your simulation.
  • krnd = 6 - Random number seed control. Potential values: Positive integers. Ensures reproducible results.
  • frhmax = 3.00 - Maximum horizontal puff growth factor. Potential values: Positive values (e.g., 1.0–5.0). Ignored since initd = 0.
  • splitf, frhs, frvs, frts = 1.00, 1.00, 0.01, 0.10 - Splitting factors for puffs (horizontal, vertical, time). Potential values: Positive values. Ignored since initd = 0.
  • dxf, dyf, dzf = 1.00, 1.00, 0.01 - Scaling factors for horizontal and vertical components of concentration output. Potential values: Positive values. Matches your grid settings (gridSpacing = 0.1).

Note: This configuration is set up for a standard concentration simulation with 2500 particles, continuous emission for 1 hour, and output in a packed binary cdump file. It uses 3D particle mode (initd = 0) for precise dispersion tracking, suitable for your SO2 simulation in MATLAB.

HYSPLIT CONC.CFG Configuration Guide | Understanding HYSPLIT Concentration Model Settings

No comments:

Post a Comment