FINNv2.5 emissions
FINNv2.5 emissions are available in 2 formats: text files for each fire (as for previous versions) and in 0.1x0.1 degree gridded files from the NCAR RDA (https://rda.ucar.edu/datasets/ds312.9/) and on the NCAR computer casper (/glade/campaign/acom/acom-weather/emmons/emissions_finn/finn2.5_grid_0.1x0.1/).
The "fire_emis" fortran program described below reads the text files of each fire emissions. Note that "emis_finn" does not work for some regionally refined grids, so for these cases we recommend regridding the 0.1 gridded files with other standard mass-conserving regridding tools (such as https://ncar.github.io/CAM-chem/examples/functions/Regridding.html).
fire_emis fortran gridding program
fire_emis is a fortran program that grids FINNv1.5 or FINNv2 fire emissions (text files from Christine Wiedinmyer, available at: http://bai.acom.ucar.edu/Data/fire/) and produces netcdf files for WRF-Chem, global regular lat-lon grids, and Spectral Element unstructured grids. The same source code is used to produce any of the model formats, as specified in an input namelist. Please address any questions about this code to the WRF-Chem Fire_Emis Forum: https://groups.google.com/a/ucar.edu/forum/?hl=en#!forum/wrf-chem-fire_emiss
NOTE: FINNv1.5 and FINN2 files contain different species and different numbers of columns. Please read the FINN2 README for more details (at: http://bai.acom.ucar.edu/Data/fire/).
Get the fire_emis code at: https://github.com/NCAR/IPT/tree/master/Emissions/Fire/FINN
Compiling the fire_emis source code
To create the executable program, in the grid_finn_fire_emis source code directory (./src/) issue the command: ./make_fire_emis
The make_fire_emis script is presently set up to compile on linux/unix systems using the Portland Group Fortan90 compiler, pgf95. If you need to use another compiler such as the Gnu Fortran90 compiler, gfortran, you can set the environment variable FC before invoking make_fire_emis. As an example, you would issue the command "export FC=gfortran" in the sh, bash, or ksh Linux shells or "setenv FC gfortran" in the csh or tcsh shells.
On cheyenne.ucar.edu: load module pgi before running 'make_fire_emis'.
Presently the make_fire_emis utility recognizes the following FC settings: pgf90 (PGI), gfortran(GNU) or ifort (Intel).
The fire_emis utility requires the netcdf library and make_fire_emis will attempt to locate the libnetcdf.a library. However, this is not a foolproof process and thus you may need to set the environment variable NETCDF_DIR to the directory containing the file lib/libnetcdf.a. As an example, in the ksh shell, if you issued the command :
export NETCDF_DIR=/usr/local/netcdf-3.6.2
then make_fire_emis would look for the file libnetcdf.a in the directory /usr/local/netcdf-3.6.2/lib (make_fire_emis automatically appends the /lib string to the NETCDF_DIR string).
Running fire_emis
To run fire_emis issue the command:
fire_emis < fire_emis.inp > fire_emis.out
Redirected input is required. Redirected output to fire_emis.out is optional. The fire_emis.inp and fire_emis.out filenames are for illustration only; you may use any valid filename in place of them. Examples and descriptions of the namelist *.inp file are given below. The fire_emis.out file records runtime log messages.
The resulting netcdf emissions files are written in the directory where you run fire_emis, so you may wish to issue the run command in a new directory: copy your namelist file to where you wish to have your output and then use the path of the executable, e.g.,
/home/FINN/src/fire_emis < fire_emis.inp > fire_emis.out
Input Namelist Description (“fire_emis.inp”)
To run fire_emis you must provide a namelist of input variables. Several examples are provided in the /run/ directory.
Namelist variable | Description |
fire_directory | The directory storing the raw FINN data files (*.txt). Note that fire_directory must end with a "/" as in: /myhome/FIRE_data/ |
fire_filename(1) | The file name of the raw FINN data (must be .txt format). You can optionally add up to 5 files here by adding a new line fire_filename(2), etc. If you specify multiple fire filenames the times in the input files must be consecutive with no gaps. |
start_date | The start date of the output emissions in YYYY-MM-DD format. |
end_date | The end date of the output emissions in YYYY-MM-DD format. |
output_timing | The output timing: 'daily' or ‘monthly’ |
Model | ‘WRF’ or ‘CAMFV’ or ‘CAMSE’. Determines how other namelist variables are used and determines the output grid |
wrf_directory | Specifies the directory of the WRF input files wrfinput_d<nn>. Note that wrf_directory must end with a "/". |
mdlFilenm | ONLY FOR CAMSE: The file describing the grid (must be .nc format), see examples provided. |
mdlDir | ONLY FOR CAMSE: The directory storing the grid data files. Default is the current working directory ('./'). |
resol | CAMFV: The resolution of the output grid. Possible options: '0.5x0.5' (720x360); '1x1' (360x180); 'T42LR' (Lin-Rood, 128x64); 'T63LR' (192x96); 'T85LR' (256x128); 'T106LR' (320x160); 'T170LR' (512x256); '1.9x2.5' (144x96); 0.9x1.25 (288x192) CAMSE: label for output files only WRF: not used |
EmisType | The emission type (only used for naming the output files): a label such as ‘bb_surface’. |
FinnVers | The FINN Version: ‘1.5’ or ‘2.2MOD’ or ‘2.2MODVIRS’ (only used for naming the output files). |
defaultUnits | The default units (molecules/cm^2/s). This namelist value is only used for adding unit attributes to the ouput files. If you want to convert to different units, you must update this name and use the glb2fire_map namelist parameter with the appropriate scalling factors for unit conversion. All unit conversions beyond molecules/cm^2/s are done in this namelist, and not by the code itself (see examples). If you want to change units for only certain species, use the optional_non_default_unit_attribute in the glb2fire_map namelist parameter, as explained below. |
glb2fire_map | CAMFV or CAMSE: Specifies the mapping between global model variables and fire emission variables. glb2fire_map is a character array of size 500. If you enter more than 500 variables there is no error halt but only the first 500 will be mapped. Generally the format for gases is Generally the format for aerosols is |
wrf2fire_map | WRF: Specifies the mapping between WRF variables and fire emission variables, as with glb2fire_map. Each entry is limited to 164 characters. Examples: wrf2fire_map = 'co -> CO' maps the FINN variable CO to the WRF variable co. wrf2fire_map = 'co -> CO', 'hc3 -> alk2 + 1.11 * alk3 + 0.4 * meoh' |
domains | WRF (optional): default = 1 If you set domains = 2 then fire_emis will expect to find files wrfinput_d01 and wrfinput_d02 in the directory indicated by the wrf_directory variable. |
max_fire_size | WRF (optional): default = 2 (square kilometers) |
diag_level | Specifies the level of diagnostics output when running fire_emis. The default value of 100 results in the minimum diagnostic output. The diag level is set in multiples of 100. Setting diag_level to 400 produces maximal diagnostics and is appropriate when a prior fire_emis invocation has failed. |
Notes for MOZART-T1 chemistry with MAM4 aerosols in CESM2
Note the aerosol particle number variables (num_bc_a4 and num_pom_a4) have different units ((particles/cm2/s)(molecules/mole)(g/kg)) and the formulas for their calculation are provided below:
General formula: emis_num = emis_mol * mw / (rho * (PI/6) * (diam)^3)
For num_bc_a4:
emis_num_BC = emis_mol_BC * 12. / (1700. * (PI/6) * (0.134e-6)^3) or emis_num_BC = emis_mol_BC * 5.60298303e18
For num_pom_a4:
emis_num_OC = emis_mol_OC * 1.4 * 12. / (1000. * (PI/6) * (0.134e-6)^3) or emis_num_OC = emis_mol_OC * 1.33350996e19
The formulas to calculate IVOC and SVOC (VBS-SOA precursors):
IVOC = 0.2*42./184.*C3H6 + 0.2*44./184.*C3H8 + 0.2*30./184.*C2H6 + 0.2*28./184.*C2H4
+ 0.2*56./184.*BIGENE + 0.2*72./184.*BIGALK + 0.2*58./184.*CH3COCH3
+ 0.2*72./184.*MEK + 0.2*44./184.*CH3CHO + 0.2*30./184.*CH2O
+ 0.2*78./184.*benzene + 0.2*92./184.*toluene + 0.2*106./184.*xylene
For FINNv1.5 where TOLUENE is a lumped aromatic (sum of benzene+toluene+xylenes), use:
IVOC = 0.04565217*C3H6 + 0.04782609*C3H8 + 0.03260870*C2H6 + 0.03043478*C2H4
+ 0.06086957*BIGENE + 0.0782609*BIGALK + 0.06304348*CH3COCH3
+ 0.0782609*MEK + 0.04782609*CH3CHO + 0.03260870*CH2O + 0.1*TOLUENE
For FINNv2 (with BENZENE, TOLUENE, XYLENES each available), use:
IVOC = 0.04565217*C3H6 + 0.04782609*C3H8 + 0.03260870*C2H6 + 0.03043478*C2H4
+ 0.06086957*BIGENE + 0.0782609*BIGALK + 0.06304348*CH3COCH3
+ 0.0782609*MEK + 0.04782609*CH3CHO + 0.03260870*CH2O
+ 0.0848*BENZENE + 0.1*TOLUENE + 0.1152*XYLENE
SVOC = 0.6*12./310.*1.4*OC, which is in the namelist: SVOC = 0.03251613*OC;aerosol
SPECIAL NOTES FOR WRF:
- WRF fire emissions datasets are created in a format for input into WRF-Chem simulations employing the plume rise option. When using the provided "base" fire emissions the created wrffirechemi_d<nn>_<date>_<time> files will include BOTH smoldering and flaming emissions. The resulting netcdf files are named wrffirechemi_d<nn>_<date>_<time>.
- The WRF fire emissions datasets contain species fire emissions and related fire size and vegetation cover type variables. The species emissions are denoted as ebu_in_<species_name> where <species_name> is a valid WRF species name such as co. The species emissions have units of moles/km^2/hr or ug/m^2/s for gas phase or aerosol species respectively. The fire size and vegetation cover type variables are denoted as MEAN_FCT_<type> and FIRESIZE_<type> where <type> is: AGTF = "tropical forest",
AGEF = "extra tropical forest", AGSV = "savanna", AGGR = "grassland". The MEAN_FCT_<type> variable represents the mean area fraction for each of the four vegetation cover types per WRF horizontal grid cell. The FIRESIZE_<type> variable represents the fire size in km^2 for each of the four vegetation cover types per WRF horizontal grid cell. Presently the FIRESIZE_<type> variables are limited to 2 km2. Vegetation maps used for gridding are available at: http://bai.acom.ucar.edu/Data/fire/ and must be placed in the same directory as the original FINN text files. - For WRF, before invoking fire_emis you must have a WRF initial condition file per WRF domain. Standard WRF initial condition files are denoted wrfinput_d<nn>
where <nn> represents the domain number in two-digit, integer format. Thus, the standard initial condition file for WRF domain number 1 is ‘wrfinput_d01’. - fire_emis outputs hourly WRF emission files by applying a diurnal factor to the daily emissions. Presently the "WRAP" diurnal factor is applied.
- WRF fire emissions datasets are created in a format for input into WRF-Chem simulations employing the plume rise option. When using the provided "base" fire emissions the created wrffirechemi_d<nn>_<date>_<time> files will include both smoldering and flaming emissions. Users need to set the scale_fire_emiss variable in namelist.input to .true. and ensure to select a chemistry option that enables this scaling.