CMAQv532 ERROR about in subroutine ISAM_STREAMS


When I run the CMAQ - ISAMv5.3.2, in the REGION (S) | EVERWHERE can run, when the REGION (S) | set to other area will be submitted to the above error, and ISAM_REGIONS adopted by the files in the version 5.0.2 is able to run.

Make sure you modify the EmisDefn file in your build directory to be able to open the region file that you define in your run script.

Hi, I have the same error but I could not get your point.
These are my isam_control and Emiss_Ctrl files.

EmissCtrl_cb6r3_ae7_aq.txt (30.9 KB)
isam_control.txt (1.9 KB)

what file exactly should I modify?

Could anyone help me with this issue?

The region you’re referencing in your isam_control.txt file using the “REGION(S)” entry needs to match one of the entries defined in the first column in the RegionsRegistry portion of our EmissCtrl file (named “Region Label”) (unless you’re using the ALL keyword in the that EmissCtrl file section, in which case all variables in the file can be referenced in isam_control.txt by their actual names).

In your case, you’re listing your desired region as “ISAM_ZO” in isam_control.txt

TAG NAME |ZO1
REGION(S) |ISAM_ZO
EMIS STREAM(S) |GRIDDED_EMIS

but in EmissCtrl, you mapped file variable ISAM_Z0 to label Z01

&RegionsRegistry
RGN_NML =
! | Region Label | File_Label | Variable on File
‘EVERYWHERE’ ,‘N/A’ ,‘N/A’,
! ‘WATER’ ,‘CMAQ_MASKS’ ,‘OPEN’,
! ‘ALL’ ,‘CMAQ_MASKS’ ,‘ALL’,
‘ZO1’ ,‘ISAM_REGIONS’,‘ISAM_ZO’,
/
so when the code processes isam_control.txt, it cannot find the region label you specified in that file.

To fix this, either edit isam_control.txt to change ISAM_Z0 to Z01 without editing EmissCtrl, or edit EmissCtrl to change Z01 to ISAM_Z0 (or ALL) in the first column of the RegionsRegistry without editing isam_control.txt.

In addition, you also need to make sure that the logical file name specified in the second column of RegionsRegistry in EmissCtrl - ISAM_REGIONS in your case - is set to the correct file in the CCTM run script.

You can find mode documentation in the user guide here and here.

1 Like

Thanks a lot for your response.
I did what you said to me but I have still that error.

EmissCtrl_cb6r3_ae7_aq.txt (30.9 KB)
isam_control.txt (1.9 KB)
terminal_output.txt (126.0 KB)
CTM_LOG_000.v532_gcc_ISF_2020_201123.txt (134.4 KB)

Thanks again. :pray:

Can you please also post your CCTM run script and a ncdump -h of your ISAM region file containing region ISAM_ZO?

These are the files you wanted.
ncdump_isam_region.txt (37.7 KB)
run_cctm.csh (35.4 KB)
:pray:

Thanks for posting these files.

It seems you have a mismatch between the variable in your region file and how this variable is referenced in your EmissCtrl file. Specifically, in the region file, the variable you’re later referencing is called ISAM_Z0 (the last character is a zero), while in the EmissCtrl file, you’re refencing file variable ISAM_ZO (the last character is an upper case “o”). You’re then consistently using the latter for the label in EmissCtrl and isam_control.txt, but since EmissCtrl maps that label to a file variable that doesn’t exist, the run fails. Please try changing all your ISAM_ZO to ISAM_Z0 to match what’s in the regions file, hopefully this will fix this particular error.

Thanks for your response.

I did test another ISAM_REGION for example ISAM_Z1 but I have still the error.

But, finally, I solved the problem by deleting <Example> in the RegionsRegistry section in the EmissCtrl.

<Example>'ISAM_Z1','ISAM_REGIONS','ISAM_Z1',

to

‘ISAM_Z1’,‘ISAM_REGIONS’,‘ISAM_Z1’,

Thanks for doing the test with ISAM_Z1, figuring out the problem with the EmissCtrl syntax in your example, and reporting back that your setup now works.

You’re correct, the <Example> comment needs to be deleted when implementing your region mapping, sorry I did not pick up on this when first looking at your EmissCtrl file, instead focusing on the other issues I saw.

1 Like

Hi. Thanks to you, too.
Absolutely your guidance helped and led me to solve the problem.
Another point I figured out is that users should also delete <Default> in front of 'EVERYWHERE' in the RegionsRegistry section in the EmissCtrl.
Am I right?

In general, any constructs of the type ! < some explanatory text > in the SizeDistributions and RegionsRegistry Sections should be removed in their entirety when uncommenting the corresponding line.

That said, lines starting with ! < Default > are meant to document the default behavior of the code and do not need to be uncommented to be activated. Put differently, there is no need to uncomment the line !<Default> 'EVERYWHERE' ,'N/A' ,'N/A',. The ‘EVERYWHERE’ label simply refers to a special “region” always recognized by the code that consists of the entire modeling domain without needing to include an ‘EVERYWHERE’ mask in the regions file (or even provide a regions file altogether if ‘EVERYWHERE’ is the only region label used in your setup).

Hi, Christian!
It’s me again. The advice you gave me several days ago helped me a lot. But now I have another problem when I run CMAQ-ISAM. It’s reported:
"
*** ERROR ABORT in subroutine ISAM_STREAMS on PE 001
User specified ISAM tag - AG - not found in available emissions streams
PM3EXIT: DTBUF 0:00:01 Jan. 1, -000
"
A total of 5 emission sources are written in the csh file, namely AG AR PP TR IN.And the related files are attached.
CTM_LOG_00.txt (115.3 KB)
isam_control.txt (3.1 KB)
run_isam.csh (36.9 KB)

Hello Rain,

looking at your CMAQ run script run_isam.csh, you did not correctly set the GR_EMIS_LAB_* environment variables which are needed to associate the files defined by GR_EMIS_* with “labels” that are referenced in the EmissCtrl and isam_control files. Put differently, you need to set GR_EMIS_LAB_* to AG, AR, PP, TR< and IN, respectively, in order to successfully use these labels in EmissCtrl and isam_control.

So, you need to change this section

#> Gridded Emissions Files  
setenv N_EMIS_GR 5   
set EMISfile  = AGarea.nc
setenv GR_EMIS_001 ${EMISpath}/${EMISfile}
#  setenv GR_EMIS_LAB_001 GRIDDED_EMIS
 setenv GR_EMIS_LAB_001 GR_RES_FIRES
 setenv GR_EM_SYM_DATE_001 F # To change default behaviour please see Users Guide for EMIS_SYM_DATE

set EMISfile  = ARarea.nc
setenv GR_EMIS_002 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_002 GR_RES_FIRES
 setenv GR_EM_SYM_DATE_002 F # To change default behaviour please see Users Guide for  EMIS_SYM_DATE

set EMISfile  = INarea.nc
setenv GR_EMIS_003 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_003 GR_RES_FIRES
setenv GR_EM_SYM_DATE_003 F

set EMISfile  = PParea.nc
setenv GR_EMIS_004 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_004 GR_RES_FIRES
setenv GR_EM_SYM_DATE_004 F

set EMISfile  = TRarea.nc
setenv GR_EMIS_005 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_005 GR_RES_FIRES
setenv GR_EM_SYM_DATE_005 F 

to

#> Gridded Emissions Files  
setenv N_EMIS_GR 5   
set EMISfile  = AGarea.nc
setenv GR_EMIS_001 ${EMISpath}/${EMISfile}
#  setenv GR_EMIS_LAB_001 GRIDDED_EMIS
 setenv GR_EMIS_LAB_001 AG
 setenv GR_EM_SYM_DATE_001 F # To change default behaviour please see Users Guide for EMIS_SYM_DATE

set EMISfile  = ARarea.nc
setenv GR_EMIS_002 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_002 AR
 setenv GR_EM_SYM_DATE_002 F # To change default behaviour please see Users Guide for  EMIS_SYM_DATE

set EMISfile  = INarea.nc
setenv GR_EMIS_003 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_003 IN
setenv GR_EM_SYM_DATE_003 F

set EMISfile  = PParea.nc
setenv GR_EMIS_004 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_004 PP
setenv GR_EM_SYM_DATE_004 F

set EMISfile  = TRarea.nc
setenv GR_EMIS_005 ${EMISpath}/${EMISfile}
setenv GR_EMIS_LAB_005 TR
setenv GR_EM_SYM_DATE_005 F

In general, you need to make sure that each label is set to a unique name, reusing the same label for multiple emission streams like in your example (GR_RES_FIRES) will likely cause unintended behavior not only in isam but also, more importantly, for the emission scaling instructions specified in EmissCtrl.

I followed your advice and the problem was solved, and CMAQ-ISAM is running properly now. Thank you again for yet another helping hand, Christian. :handshake: