Illegal variable name 13BDE

Hi all,

I’m running CCTM with mechanism saprc07tc, but the error message appeared: illegal variable name “13BDE” in file EMIS 1

I don’t know what’s wrong with me.

Please help.

These are log file and cctm.csh file.
CTM_LOG_001.txt (46.8 KB)

run_cctm.csh (23.9 KB)

Thank you.

Could you please provide the output of ncdump -h of the emission file EMIS_1 (EI_20160424_000000.nc) the program is trying to read? How was that file generated?

In addition, while “13BDE” is the expected name for 1-3-butadiene emissions in the CMAQv5.2.1 saprc07tc mechanism used here according to the GC namelist file, I am wondering if the fact that this variable does not start with an alphabetic character plays a role here.

According to the I/O API documentation, “variable-names should begin with an (upper or lower case) alphabetic character which may be followed by alphabetic, numeric, or or the underscore character _.”, but I’m not clear if should equals must in the context of CMAQ emission species. Clearly the mechanism GC namelist file does expect an emissions variable starting with a number, but I have no insights into the history of this and whether this is the underlying problem encountered in this simulation, when CKFIL3 returns an error. @cjcoats, do you have any thoughts on this?

CKFIL3 calls CKNAME for this test, which uses the following list of legal first characters provided originally by Todd Plessel of the (at that time) EPA Vis Lab, and presumably based on the needs of their software:

    `CHARACTER*56, PARAMETER :: ALPHA =  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz$_#@'`
1 Like

I am not sure how CKFILE3 is getting called. I believe it is not called in CMAQv5.4. What version of CMAQ are you using?
Can you recompile in debug mode and provide the stack trace for when the model crashes?

CKFIL3 is called by OPNFIL3 (called by OPEN3) in the I/O API, and is controlled by (Y/N) environment variable IOAPI_CHECK_HEADERS

1 Like

@dasol, based on the information provided by @cjcoats, I think you could try setting IOAPI_CHECK_HEADERS to F in your CMAQv5.2.1 run script (your log file shows that in your initial run, the default setting of T applied, triggering the error you encountered because of the internal call to CKNAME).

Thank you for your so many replies.

First, I used CMAQ_v5.2.1, and the result of ncdump -h EMIS_1 is:
EMIS_20160424.header.txt (19.9 KB)

Also, I reran CCTM with turning IOAPI_CHECK_HEADER into F in MCIP, and lots of WARNING messages are given to me.

—>> WARNING in subroutine GET_AERO_EMIS:INTERPX
Bad window dimension(s)
M3WARN: DTBUF XX:XX:XX April 24, 2016(2016115:XXXXXX)

—>> WARNING in subroutine GET_AERO_EMIS on PE 001
Could not read XXX from EMIS_1
M3WARN: DTBUF XX:XX:XX April 24, 2016(2016115:XXXXXX)
Bad argument LAY1= 15

XXX in POC, NH3, PTI, PMN, … and so on.
Please, I need your help.

Thank you.
Dasol

The error indicates the code is trying to extract layer 15, but the emissions file header you provided has only 1 layer. Also the XX:XX:XX in the DTBUF string is problematic.
CMAQv5.2.1 came out in April 2018, more than 5 years ago. I would encourage you to use an updated version of CMAQ. If you must use v5.2.1, please state why. In particular, have you modified the code?
You might recompile the model in debug mode, rerun it, and see where the crash occurs.

1 Like

Oh, I can’t use other versions of CMAQ, because version 5.2.1 is used in my lab.

Is there any other ways to fix my problem? Should I change the number of layers in either mcip or emis? I need your help.

Thank you.

Dsaol

Oh, I can’t use other versions of CMAQ, because version 5.2.1 is used in my lab.

This reasoning is not very compelling! Just download CMAQv5.4, and then you can say version 5.4 is used in your lab! :slight_smile:
Having said that, using a newer version will probably not solve this particular problem. I can’t tell what’s wrong.
I suggest recompiling in debug mode – in bldit_cctm.csh, uncomment this line: set Debug_CCTM

Modify the run_cctm script: setenv IOAPI_CHECK_HEADERS N.
Rerun the model. Post the resulting log file (CTM_LOG; one processor is sufficient) as well as the pbs or slurm output file.

1 Like