Segmentation fault of running ptfire3d

Thanks for sharing me the data promptly. Now I understand the issue of your Smrkreport run. It is not a bug in the code but current version of SMOKE Smkreport does not support to generate the temporal profile summary report for multiple pollutants at a single execution. If you see other than “1” value in the 2nd column in TSUP file, it means that pollutant-specific temporal profiles are assigned to your emission source(s). Since this is not an error, I would suggest to disable this Temporal summary report generation in your Smkreport by updating your “run_setting.txt” input file located next to your “directory_definition.csh” file.

Add the following command in your run_setting.txt input file:
all , $REGION_ABBREV, smkreport, PART2, 0, 0, N

Sample:
all , 36US1, smkreport, PART2, 0, 0, N
all , 12US2, smkreport, PART2, 0, 0, N
all , 12US1, smkreport, PART2, 0, 0, N

Thanks for your suggestion. I will try and let you know the result. Appreciate your valuable time and help.

Best,
K

Hi Bbeak,

Update for the issue. I currently successfully run several sectors. And also got emission outputs from the SMOKE. Now I got a erroe when run the script:

log analyzer
Getting message data (might take some time)…
Finished getting data
Classifying message types…
Total number of known messages: 1194
Total number of unknown messages: 0
Level 3 analysis…
Finished classifying message types
log analyzer
Getting message data (might take some time)…
Finished getting data
Classifying message types…
Total number of known messages: 1194
Total number of unknown messages: 0
Level 1 analysis…
Finished classifying message types
Testing for exit priority <= 1
ERROR: At least one message’s priority is less than or equal to the exit priority: 1
ERROR: Level 1 errors or Level 0 warnings found. Check log files, fix inputs, and rerun.

I check all log files but all show successful completed and emission output seems correct. I assume the program ran successfully but I am curious what this error message means? Is it related to the log analyzer? How to eliminate this error?

Yes, looks like your runs are successful. Those error messages are from log analyzer. Not quite sure how to address that until I see the actual message that triggered the exit priority 1. @eyth.alison can assist you on this matter better than I could.

If the log analyzer failed there is a level 1 problem in your log file that it detected.

Not sure if you’ve uploaded your std output or the log file for the program it stopped on?

I am running 2016 emission for July. I got log analyzer error when run the NP_OILGAS. I got all log files (smkreport, smkmerge et al,.) successfully completed. model output is located under premerged/np_oilgas directory but only has one day emission output, I assume there will be daily emission outputs for whole month so there could be something wrong.
np_oilgas.log.txt (21.2 KB)

I attached the log files here. Hope you could help me with this issue, Thanks!

To see which is causing the log analyzer to fail, you need to review the information output from the log analyzer:

These output files are located in the reports/log_analyzer/ directory.

You could provide that information or send us the messages in that file which have a value of 0 or 1.

You did provide the stdout which doesn’t list those messages.

We’ll note that different sectors have different treatment of representative days. It is correct for np_oilgas to only have a single day of emissions output because the same data are used to represent the emissions throughout the month for np_oilgas. Other sectors will have different results. The temporal settings are documented in the 2016v1 TSD – see the section on temporal profiles.

See https://www.epa.gov/air-emissions-modeling/2016v1-platform for a link to the TSD.

Thanks for your response. I attached the files in log_analyzer directory to here. So it seems model runs well but got the analyzer issue for some reason.
rep_logs_np_oilgas_2016fh_16j_US_12km_all_level1.csv (3.8 KB)
rep_logs_np_oilgas_2016fh_16j_US_12km_all_level3.csv (3.2 MB)

We agree that the things in this log look OK. Not sure why the log analyzer is failing.

Did you visualize the processed emissions file that was produced to confirm it looks reasonable?

Yes I use ncview to check the output emission files and they looks normal and nothing weird in the spatial and temperal patterns. I assume the log-analyzer has error but doesn’t mean the simulation is wrong or interrupted. But I have no idea about the log-analyzer so I am wondering if it indecate the simulation has something wrong.

Hi cjcoats,

Thanks for reading. I had same error message (Floating-point exception - erroneous arithmetic operation.) when I try to run pfagfire3D. Error came as: Backtrace for this error:
#0 0x2B378651B6D7
#1 0x2B378651BD1E
#2 0x2B3786D783FF
#3 0x426A69 in fire_preplm_ at fire_preplm.f:146 (discriminator 8)
#4 0x415CFD in MAIN__ at laypoint.f:1440

I check the fire_preplm.f file at line 146. It is a process calculate the temperatures a full layers:
DO L = 1, EMLAYS - 1
DELZ = ZH( L+1 ) - ZH( L )
TF( L ) = TV( L ) + ( TV( L+1 ) - TV( L ) ) *
& ( ZF( L ) - ZH( L ) ) / DELZ
END DO

    DELZ = ZH( EMLAYS ) - ZH( EMLAYS-1 )
    TF( EMLAYS ) = TV( EMLAYS ) - (TV( EMLAYS-1 ) - TV( EMLAYS )) *
 &                 ( ZF( EMLAYS ) - ZH( EMLAYS ) ) / DELZ

    THV1 = TF( 1 ) * ( 1000. / PRES( 1 ) )**0.286
    DTHDZ( 1 ) = ( THV1 - THETG ) / ZF( 1 )

    DO L = 2, EMLAYS

        IF ( HMIX > ZF( L-1 ) )  LPBL = L
        IF ( HTS > ZF( L-1 ) )  LSTK = L

        THVK = TF( L ) * ( 1000. / PRES( L ) )**0.286
        DTHDZ( L ) = DDZF( L ) * ( THVK - THV1 )
        THV1 = THVK

        ZZF( L ) = ZF( L )

    END DO

Do I need to initiate any variables or how to solve this problem?

Thanks your time and hope to receive your help.

Best,
K

Sure, you can initialize these local variables to see whether that fixes the issue or not.

    REAL  ::      THVK = 0.0
    REAL  ::      TV( EMLAYS ) = 0.0     ! virtual temperature
    REAL  ::      TF( EMLAYS ) = 0.0    ! full-layer height temperatures
    REAL  ::      DELZ = 0.0

If this does not fix, you can add a compiler flag that allows you to initialize a class of variables to zero or to various numeric exceptional values. As an example, ifort has an option “init” that does exactly that. Please check out the option for your compiler and add that flag into the Makeinclude file.

Thanks for reply. I tried either way (intial the variables in the source code and add the flags in the makeinclude file) but still got same error message. std log file show the error from fire_preplm.f file and same lines. what should I do at this moment?

Are you processing np_oilgas sector? Np_oilgas sector is categorized as area source which means you do not need to vertically allocate the emissions. So, you should not run Laypoint program since it is only designed for point sources which come with latitude and longitude location coordinate.
Also, the routine you are having a problem is for fire inventory sources.

Please check your run script to make sure you are not running Laypoint and treat it as Area sources.

I am running ptagfire3D at this moment thus I will have the Laypoint program in this simulation.

Good to know. I got confused from previous messages. Are you running for 12US1 domain or your own domain? Laypoint gives sometime an error when there is no fire to process within the domain. Were you able to run Laypoint for other date(s)?

I am running a domain created by myself that cover whole U.S. but not using the provided 12US1 domain. I am running the July emission so I believe there are several fires during this period.

Have you tried to run other months to see whether Laypoint runs successfully without any issue? If you have, then you need to add a fake fire into your daily inventory with very small emissions in your modeling domain for Laypoint to pass this issue.

Thanks for your suggestion. I will try to run the August emission and will let you know if it works.

Hi Beak,

I run the ptagfire3d for the august and still has same error. Do you think it is due to the inventory itself that has no data on July and August or still the Laypoint program that I used?
Following is the error from the std log file:
Program received signal SIGFPE: Floating-point exception - erroneous arithmetic operation.

Backtrace for this error:
#0 0x2AE304CD96D7
#1 0x2AE304CD9D1E
#2 0x2AE3055363FF
#3 0x4272D1 in fire_preplm_ at fire_preplm.f:152 (discriminator 8)
#4 0x4163CE in MAIN__ at laypoint.f:1440
Floating exception

If I need to add a fake agfire data to test if it works, what should I do for the input file?