CAMx v6.50 compilation

Dear CMAS community,
Is it possible to raise a question of CAMx (Comprehensive Air quality Modeling with Extension) in this forum?
I am trying to compiling the CAMx latest version (v6.50) in my Linux system, but it faces some errors described below:
When I use command “pgf” for Portland Group compiler for Linux, an error occurred:
“pgf90-Error-Unknown switch: -mcmodel=medium”
I found some suggests to change to intel compiler, then another error happed:
“: catastrophic error: Internal compiler error: internal abort Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for CMC/hddmjac2.f (code 1)
make[1]: *** [CMC/hddmjac2.o] Error 1
make[1]: Leaving directory `/home/scratch/CAMx_v6.50’
make: *** [comp_ifort] Error 2”

Could you please guide me how to address these errors?
My PGI version is 10.1.0 32-bit; CentOS 5.8,

Thank you very much!
Ha Chi

The version-17 pgf90 manual https://www.pgroup.com/resources/docs/17.10/x86/pgi-ref-guide/index.htm section 2.1.4, table 10 certainly says that that version should support -mcmodel=medium

On the other hand, unless you’re running a really-huge grid and a very large mechanism, you shouldn’t need it. Do you really have individual arrays larger than 2 GB? Or more than 2GB of COMMON?

See here for a note about Linux memory models: https://cjcoats.github.io/ioapi/AVAIL.html#medium

Hi cjcoats

I want to compile mozart2camx, but when I type make in src directory, it didn’t work. Could you guide me, please?
Thank you

I’m running ifort version 14.0.0, I/O API 3.2 installed under my $HOME,
netcdf-4.4.1.1, and netcdf-fortran-4.4.4, with the netCDF libs copied to
the appropriate $HOME/$BIN

I modified the Makefile.mozart2camx as indicated in the attached, with
corrected flags and include- and libs-directories, and did

make -f Makefile.mozart2camx

It built just fine.

BTW, either none or all of the compiler-flag sets should have
“-mcmodel=medium”; if “ifort” does not need it, then neither does “pgf90”.

– Carlie

(Attachment Makefile.mzrt2camx is missing)

1 Like

Here’s the Makefile.Makefile.mzrt2camx.txt (5.1 KB)

1 Like

Hi Carlie

Thank you. I have another problem in running ncf2ioapi.mozart.job. It gives me this error:

MZRT_HALF_PRESS written to OUTFILE3D for   2017335:060000

DATECHAR: 20171202
YR: 2017 MN: 12 DT: 2

 *** ERROR ABORT in subroutine NCF2IOAPI
 Error: Input time:   60000 Input date: 2017336 Expected time:  120000 Expected date: 2017335
 Date and time  12:00:00  Dec. 1, 2017    (2017335:120000)

I download many mozart files ,But all of them give me the same error. Could you help me, please?
Thank you

run.log.txt (40.2 KB)

Hi cjcoats,

thank you very much!
Your reply make me understand better the problem. My PGI version is 10.1 for 32-bit. So it may not support the -mcmodel=medium. I’m not really understand what -mcmodel=medium mean, but the PGI compiler reference manual say " Generate code which supports the medium memory model in the linux86-64 environment."

In this case, should I upgrade my OS to 64-bit before compiling the model?

Thanks

That Makefile was rather strange in terms of what it was using for compile-flags. The original PGI flags definitely indicate 64-bit and medium memory model, whereas neither the Intel nor GNU Fortran flags indicate 64-bit nor medium memory model. I don’t really know…