I think lines 2245-2250 in CMAQv5.3.1 contain the following block
WRITE( XMSG,'(A,A16,A,/,I3,A11,A16,A,/,A)' ), & 'ERROR: Surrogate Species ',TRIM(SPEC),' on emission stream ', & ISRM, ' has units ',TRIM(UNITS),' which are unkown to CMAQ. ', & 'Please correct them to proceed.' CALL LOG_MESSAGE( OUTDEV, XMSG ) STOP
This points to units in one or more of your emission files that aren’t known to CMAQ (e.g. not moles/s, g/s, etc.), and somehow the formatting of these unknown-to-CMAQ units trips up the formatted writing of this error message. If this formatted write hadn’t failed, CMAQ would have exited with the message shown above, pointing to the unknown units and species. I don’t know why the formatted write failed, but the underlying reason are unknown emission units.
To solve this, please check the units of all variables in your emission files, even for non-emission variables you might have in your files. CMAQ currently expects all variables contained in emission files to be emission variables and exits if any of them has units not recognized as valid emission units.