Error in spcmat when running SMOKE with saprc

I am trying to run SMOKE using the 2011 NEI platform with SAPRC speciation, using the GSREF and GSPRO files for SAPRC from I have previously run SMOKE successfully with the CB06 speciation.

I am getting the following error multiple times for different regions and SCC in the spcmat log (attached):
“ERROR: No speciation cross-reference available (and no default) for:
Region: 048375
SCC: 2310021400 POL: VOC”

spcmat_np_oilgas_2011ek_saprc_v6_11g_saprc.txt (1.8 MB)

I don’t know if there is a problem with the GSREF and GSPRO files (and if so how to change them), or if there is something else I should have changed in the SMOKE setup.

While these files were up to date at the time of posting, it’s possible something was missing for certain region and SCC combinations.

We’ve uploaded a later version of the GSPRO that may help:

If not, you may need to update the GSREF to reference only profiles that are available.

You didn’t mention whether your error was for all sectors or only certain sectors of processing.

The oil and gas sectors are particularly tricky when it comes to speciation cross references.

The error is for the np_oilgas, pt_oilgas, ptegu, and ptnonipm sectors. The onroad and other non-point sectors seem to run fine.

The updated gspro file results in the same error. How do I update the GSREF to reference only available profiles? And what will this mean for the output? Will it ignore species if there is no available profile?

Did you move to the updated GSPRO that was referenced earlier?

Are you getting the same error for the same SCCs, or for different SCCs compared to the first attempt? In other words, are there any differences in the error messages when using the original GSPRO versus this new GSPRO? There should be at least some changes in the error messages with the new GSPRO.

If there are some changes in the error messages compared to the first attempt, can you provide the new Spcmat logs for each sector so that we can see which SCCs/profiles are still at fault and write direction on how to resolve?

If there are no changes in the error messages, then it’s possible Spcmat didn’t actually use the new GSPRO?

Changes to the GSREF may not be needed after all. In theory, the same GSREF could be used, unless it contains references to older profiles which are no longer in our platform and aren’t in the provided GSPRO.

I moved to the new GSPRO. The spcmat file is different, with fewer SCCs coming up as errors than before.
spcmat_np_oilgas_2011ek_saprc_v6_11g_saprc_newGSPROfile.txt (1.3 MB)

With the new GSPRO file it is only the np_oil_gas sector that is getting the error. The other sectors seem to be completing successfully.

Can you please attach the log with the errors to your post?

The spcmat log file with the errors is attached. I had to rename it as .txt to upload it and add to the filename to differentiate from the log for the previous run, but it is the log file. I’ve also attached the other log file that is produced in the run.

smkinven_np_oilgas_2011ek_saprc_v6_11g.txt (32.9 KB)
spcmat_np_oilgas_2011ek_saprc_v6_11g_saprc_newGSPROfile.txt (1.3 MB)

We note that the older platform GSREF references some obsolete oil and gas profiles. In your GSREF, make the following changes:

  • replace “DJVNT” with “DJVNT_R”

  • replace “SSJCO” with “SSJCO_R”

  • replace “PNC01” with “PNC01_R”

  • replace “PRBCB” with “PRBCB_R”

  • replace “UNT01” with “UNT01_R”

It’s possible that you may also need to add these two lines to the GSREF.

First check if SCC 2310021411 is already in their GSREF; if it is not, then add these two lines:

“2310021411”,“FLR99”,“NONHAPVOC”,"! Flares - Natural Gas This SCC is not in the existing speciation cross reference we suggest to use Flare profile for this SCC "

“2310021411”,“FLR99”,“VOC”,"! Flares - Natural Gas This SCC is not in the existing speciation cross reference we suggest to use "“Flare"” profile for this SCC "

This may not be an exhaustive list of all changes needed. If you still get errors, then set SMK_MAXWARNING to 10000 (this will help show the full list of missing profiles) and then send back the new Spcmat log.

I made these changes to the GSREF file, and set SMK_MAXWARNING to 10000. I then got errors for SCC 2310023100, 2310023400 and 2310023600. (Log file:
spcmat_np_oilgas_2011ek_saprc_v6_11g_saprc.txt (1.3 MB))

These SCCs are already in the GSREF file for NONHAPVOC and PM2_5, but not for VOC. For NONHAPVOC the lines are
2310023600;“8949”;“NONHAPVOC”;;;;;;;! Updated for 2011eg_v6_11g based on API comments. Profile name: Natural Gas Production
2310023400;“8949”;“NONHAPVOC”;;;;;;;! Updated for 2011eg_v6_11g based on API comments. Profile name: Natural Gas Production
2310023100;“8949”;“NONHAPVOC”;;;;;;;! Updated for 2011eg_v6_11g based on API comments. Profile name: Natural Gas Production
(GSREF file:
gsref_SAPRC07TB_2011eh_v6_11g_05jan2015.txt (2.7 MB))
Should I copy these lines for VOC?

Yes, you should copy the “NONHAPVOC” profile assignments for those SCCs to “VOC”.

That worked for np_oil_gas sector, which is now completing with no errors.

When trying to merge all the sectors, however, I get an error because the unit for VOC_INV is g/s for the onroad files and moles/s for everything else (Log file:
mrggrid_all_2011ek_saprc_v6_11g_20111201_12CA2_saprc.txt (12.6 KB))
Looking into the onroad scripts, I realised that these use a different gspro and gsref to the other scripts:
gspro_MOVES2014_CB6_27aug2015_v1.txt (6.9 KB)
gsref_MOVES2014_17nov2014_v2.txt (1.9 KB)

Are there SAPRC versions of the MOVES GSPRO and GSREF files available anywhere?

Yes, I believe they are here for onroad as nonpoint:

With these onroad GSPRO, GSREF and INVTABLE files I now get the error ‘No valid speciation cross-reference entries!’
I think this is to do with the meproc files. Are there SAPRC meproc files available?

onload log files:
spcmat_RPD_onroad_dec_2011ek_saprc_v6_11g_saprc.txt (6.4 KB)
spcmat_RPH_onroad_dec_2011ek_saprc_v6_11g_saprc.txt (5.5 KB)
spcmat_RPP_onroad_dec_2011ek_saprc_v6_11g_saprc.txt (5.5 KB)
spcmat_RPV_onroad_dec_2011ek_saprc_v6_11g_saprc.txt (5.5 KB)

meproc files:
meproc_MOVES2014_RPD_AQ_27aug2015_v6.txt (1.4 KB)
meproc_MOVES2014_RPH_AQ_27aug2015_v7.txt (1.6 KB)
meproc_MOVES2014_RPP_AQ_27aug2015_v3.txt (588 Bytes)
meproc_MOVES2014_RPV_AQ_27aug2015_v6.txt (1.2 KB)

There is other data for the 2017 platform here:

cross references are usually in GSREF which is part of the speciation zip.

It seems there is a meproc here:

I don’t think the meproc or gsref would change based on the speciation mechanism, but I’m not sure.

If you are still having trouble after reviewing the contents of the above files, we won’t be able to respond until Wednesday July 6.

Using the meproc files from that link didn’t change anything. I’m not sure what is causing the problem. I’ve attached all the files that are opened before the ‘No valid speciation cross-reference entries!’ error message in the spcmat log (spcmat_RPP_onroad_dec_2011ek_saprc_v6_11g_saprc.txt (5.5 KB)).

MSRC: msrc_RPP_onroad_dec.txt (1.5 MB)
TMP_POL_FILE (header information of netcdf file): mobl_RPP_onroad_dec_VPOP_header.txt (6.4 KB)
GSREF:gsref_onroad_custom_speciation_MOVES3.txt (81.8 KB)
GSPRO:gspro_onroad-as-nonpoint_saprc07tc.txt (11.9 KB)
INVTABLE:invtable_MOVES2014_custom_speciation_16nov2015_v0.txt (12.4 KB)
MEPROC:meproc_MOVES2014_RPP_AQ_27jun2017_v5.txt (815 Bytes)

Since 2011ek is an older case, it will be difficult to run with SAPRC speciation. You can run onroad one of two ways – with SMOKE-MOVES, or you may use the ‘onroad-as-nonpoint’ method. Onroad-as-nonpoint won’t work for 2011ek because we not all of the needed pollutants are in the onroad FF10s (e.g., NONHAPTOG by mode, all VOC HAPs). So SMOKE-MOVES is probably the better path.

For SMOKE-MOVES, we have a recent package for processing SAPRC speciation with SMOKE-MOVES…

But this package is for MOVES3, and the setup for 2011ek will be a bit different, for RPV in particular. Also, the GSREFs in this package are designed for 2016v2 rep counties, and the 2011ek rep counties are different, so the GSREFs for 2016 won’t work for 2011.

So we don’t think you can run onroad SAPRC for 2011ek given the files that are currently available. You could mostly use the contents of the 2016v2 package, but a with a different GSREF. Other inputs would also need to be modified to work with the older version of MOVES.

Do you have a specific reason that you are wanting to run 2011 instead of a more recent year?

I want to run CMAQ for 2011, so need the 2011 emissions

OK – instead of running SMOKE-MOVES for SAPRC for 2011, please use the onroad as nonpoint approach

This onroad-as-nonpoint package under 2017 platform has all of the cross-references you should need. You may already be using the cross-references from that package, but you should also use the run script from that package in order to run onroad as a nonpoint sector rather than via SMOKE-MOVES.

The file to use as your inventory input file to run as nonpoint has been posted here:

There is only one script in the 2017/onroad_as_nonpoint zip file:
Is this the only script to run in the onroad as nonpoint approach (as opposed to the RPP, RPD, RPV and RPH scripts for standard and catx_adj in the SMOKE-MOVES approach)?

Also, the Monthly_onroad_inv_respeciate_12US1_EQUATES_2017.csh file calls two emissions in files:
setenv EMISINV_A “$CASEINPUTS/onroad_inv_gas/gas_MYR_2017_SMOKE_MOVES_MOVES3_AQstyle_15dec2020_v0.csv”
setenv EMISINV_B “$CASEINPUTS/onroad_inv_diesel/diesel_MYR_2017_SMOKE_MOVES_MOVES3_AQstyle_15dec2020_v0.csv”

but the EQUATES 2011 zip file only contains one file:

Should I assign this to EMISINV_A and comment out EMISINV_B?

Yes, you should only need the one script. We ran SMOKE MOVES to generate the inventory file.

Good point – I’ll check on what to do regarding the gas and diesel files.

I suspect gas and diesel are together in that same file.

I believe you are on the right track, but I can confirm on Friday.