Error reading IDs in CMAQ emission file

Dear @fsidi,

I read a github post from you talking about the error “Error reading IDs”. I’m dealing with this error with an emission file that I’m customizing by changing the chemical mechanism (saprc07tc_ae6). I know that in VAR-LIST from global attributes, all the variables must be exactly 16 characters long. However, I’m getting this error but I don’t know why if my VAR-LIST looks good. Can you help me with this?

This is the error that I’m getting:

"MET_DOT_3D" opened as OLD:READ-ONLY
     File name "/home/monteajs/CMAQ_intel/saprc07/data/mcipchem_ME_3km-v4/METDOT3D_210326.nc"
     File type GRDDED3
     Execution ID "mcip"
     Grid name "2020_test_DOT"
     Dimensions: 98 rows, 98 cols, 34 lays, 6 vbles
     NetCDF ID:    393216  opened as READONLY
     Starting date and time  2021085:000000 (0:00:00   March 26, 2021)
     Timestep                          010000 (1:00:00 hh:mm:ss)
     Maximum current record number        25
     Error reading IDs for  variable ????????????????
     netCDF error number  -49  processing file "GR_EMIS_001"
     NetCDF: Variable not found


     *** ERROR ABORT in subroutine gridded_files_se on PE 017
     Could not open GR_EMIS_001                      file
 PM3EXIT:  date&time specified as 0
     Date&time specified as 0

And here is how looks my global attributes:


// global attributes:
		:IOAPI_VERSION = "$Id: @(#) ioapi library version 3.2 $" ;
		:EXEC_ID = "WRFCHEM emissions converted to CMAQ and speciated to saprc07tc_ae6" ;
		:FTYPE = 1 ;
		:CDATE = 2022094 ;
		:CTIME = 131038 ;
		:WDATE = 2022094 ;
		:WTIME = 131038 ;
		:SDATE = 2021085 ;
		:STIME = 0 ;
		:TSTEP = 10000 ;
		:NTHIK = 1 ;
		:NCOLS = 97 ;
		:NROWS = 97 ;
		:NLAYS = 1 ;
		:NVARS = 81 ;
		:GDTYP = 2 ;
		:P_ALP = 22.3090000152588 ;
		:P_BET = 22.3090000152588 ;
		:P_GAM = 39.1049995422363 ;
		:XCENT = 39.1049995422363 ;
		:YCENT = 22.3089904785156 ;
		:XORIG = -145500. ;
		:YORIG = -145500. ;
		:XCELL = 3000. ;
		:YCELL = 3000. ;
		:VGTYP = -1 ;
		:VGTOP = 0. ;
		:VGLVLS = 0., 0. ;
		:GDNAM = "2020_test_CROSS " ;
		:UPNAM = "OUTCM3IO        " ;
		:VAR-LIST = "AACD            ACET            ACETONE         ACRO            ACROLEIN        ACYE            ALK1            ALK2            ALK3            ALK4            ALK5            APIN            ARO1            ARO2MN          B124            BACL            BALD            BDE13           BENZ            CCHO            CCOOH           CL2             CO              CRES            ETHE            ETHENE          ETOH            FACD            GLY             HCHO            HCL             HCOOH           HONO            IPRD            ISOP            ISOPRENE        MACR            MEK             MEOH            MGLY            MVK             MXYL            NAPHTHALENE     NH3             NO              NO2             OLE1            OLE2            OXYL            PACD            PAL             PCA             PCL             PEC             PFE             PH2O            PK              PMC             PMG             PMN             PMOTHR          PNA             PNCOM           PNH4            PNO3            POC             PRD2            PROPENE         PRPE            PSI             PSO4            PTI             PXYL            RCHO            RNO3            SO2             SOAALK          SULF            TERP            TOLU            " ;
		:FILEDESC = "Emissions used on WRFCHEM (wrfchemi_d01) and converted to CMAQ format" ;
		:HISTORY = "" ;
}

I don’t know why is reading an empty string of 16 characters if my global attributes seems to be fine.

Thanks.

@jsm2093, It’s a bit tough to debug your problem without having the actual file in front of me. A couple of things to note:

  1. I/O API isn’t a data format it’s an programming interface. So, in general DO NOT try to fake or build I/O API style files. Either use I/O API to build these files from raw output OR use the approved python tools such as The BAMS/EDSS/Models-3 I/O API to build these files. If you require help using I/O API please tag @cjcoats for help.

  2. Your VAR-LIST doesn’t seem to match your variables. For example, your file has variable “SESQ” but your VAR-LIST doesn’t, miss-matches like this will cause I/O related errors like you are seeing. So cross reference your VAR-LIST with the actual variables in your file.