Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
29236 Discussions

Inter Fortan compiler error for Gaussian03 D

wenxinzy
Beginner
1,353 Views

I am trying to compile the Gaussian03 D on 64bit Xeon processor.I have compiled successfully without the option of "-parallel". However when I add this option for generate multi-threaded code, error ocured for l607.F compiling. the detail as follow:

fortcom: Severe: **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.
in file naoanl.f, line 322, column 22

Such error happen when I used compiler of the version of 9.1.040. While when I changed to the newest one, the version of 9.1.045, the error didn't be solved.

I don't know whether it is just an error for intel fortan compiler itself or there are something errors in the l607.F

Is there anyone who came up against this error, and howdo I deal with it?

thank a lot~!

0 Kudos
6 Replies
TimP
Honored Contributor III
1,353 Views

In principle, any such internal error is a compiler bug, and you should file a problem report on premier.intel.com.

I haven't heard of anyone trying to use auto-parallel on Gaussian; I thought it would come with instructions on how to parallelize, if that is intended to be supported.

0 Kudos
wenxinzy
Beginner
1,353 Views

Thanks for your help.Iwill repot this problem on premier.intel.com firt

While I have already successfully compiled onan ia32 machineusingauto-parallel, and it looks like working well. On an em64t machine,auto-paralle works well until subroutine "naoanl" in l607.F.

HenceI wonder if I can just make some change in l607.F, orare there any other ways to solve this problem withoutaltering compiler.

0 Kudos
joseph-krahn
New Contributor I
1,353 Views
I just finished compiling G03.D on an ia64 system. For parallel, you should use the OpenMP flags. Gaussian has OpenMP directives which tells it where and how to parallelize. I did not have any problems with either 9.1.041 or 10.0.017-beta. Of course, the -parallel problem you found is still a bug worth reporting.

The relevant OpenMP compiler flags are already in the Gaussian make files:

PARMETH = -D_OPENMP_ -D_OPENMP_MM_
PARFLAG = -DGAUSS_PAR -DGAUSS_THPAR $(PARMETH)
PARSWITCHC = -openmp
PARSWITCH = -openmp -fpp2 -auto

I also compiled it using BLAS routines from the MKL library. Using MKL LAPACK was a bit of a problem due to the Gaussian code calling GLAMCH(), which I think corresponds to the normal LAPACK's DLAMCH().

Also, you can check the bsd/mdutil.c code and disable the following definitions to compile C routines, where Intel Fortran already has built-in versions:
#define NEED_GETPID
#define NEED_EXIT
#define NEED_UNLINK
#define NEED_AND
#define NEED_ISHFT
#define NEED_ETIME
#define NEED_FDATE
#define NEED_TIME

If you exclude these routines in mdutil.c, beware that the Intel ETIME() will give you the sum of CPU time for a parallel build, but the mdutil.c version only gives the time for a single CPU.
0 Kudos
Intel_C_Intel
Employee
1,353 Views
Can you help me to compile G03-C02 on IA 64(Itanium2) with MKL(9) and Intel Fortran(9)?
I have modified the ia64.make:
-----------------------------------------------------------------------------------------
BSTATIC = -Bstatic
BLAS = /opt/intel/mkl/9.0/lib/64/libmkl_ipf.a

RUNF77SO = ifort -w -WB $(I8FLAG) -ftz $(PARSWITCH) $(DEBUGF)
RUNF77 = $(RUNF77SO) $(BSTATIC)
COMPDIR = /opt/intel/fc/9.1.043/lib
LIBS = $(BLAS) $(COMPDIR)/libcxa.a $(COMPDIR)/libcprts.a $(COMPDIR)/libunwind.a
----------------------------------------------------------------------------------------
But failed:
----------------------------------------------------------------------------------------
make[1]: Leaving directory `/opt/Gaussian/g03'
ifort -WB -i8 -r8 -w -ftz -openmp -fpp2 -auto -O3 -o g03 ml0.o util.so /opt/intel/mkl/9.0/lib/64/libmkl_ipf.a /opt/intel/fc/9.1.043/lib/libcxa.a /opt/intel/fc/9.1.043/lib/libcprts.a /opt/intel/fc/9.1.043/lib/libunwind.a
ml0.o(.text+0x4b2): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x5e2): In function `MAIN__':
: undefined reference to `fixinout_'
ml0.o(.text+0x1232): In function `MAIN__':
: undefined reference to `putenv_'
ml0.o(.text+0x12a2): In function `MAIN__':
: undefined reference to `getexen_'
ml0.o(.text+0x16e2): In function `MAIN__':
: undefined reference to `gaufls_'
ml0.o(.text+0x1712): In function `MAIN__':
: undefined reference to `gsyst_'
ml0.o(.text+0x1b72): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1c02): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1db2): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1e42): In function `MAIN__':
: undefined reference to `gauabt_'
ml0.o(.text+0x1f42): In function `MAIN__':
: undefined reference to `ggeten_'
util.so: undefined reference to `writwa_'
------------------------------------------------------------------------------------

Would you do me a favour to help me or send the ia64.make to me?
0 Kudos
Intel_C_Intel
Employee
1,353 Views
the first error:
--------------------------------------------------------------------------
cp ../bsd/mdutil.c bsd
make -f ../bsd/g03.make JUNK1=JUNK mdutil.o
bsd/mdutil.c: In function `wait_':
bsd/mdutil.c:2565: error: incompatible type for argument 1 of `wait'
make: *** [mdutil.o] Error 1
ar rlv ../util.a mdutil.o
ar: creating ../util.a
ar: mdutil.o: No such file or directory
endif
rm mdutil.o
rm: cannot remove `mdutil.o': No such file or directory
endif
-------------------------------------------------------------------------
the bsd/mdutil.c file:
#ifdef _IA64_
f77_int fork_() { return(fork()); }
f77_int wait_(ist) f77_ptr ist; {return(wait(ist)); } <-------line 2565
int stat_(path, len) char *path; int len; {struct stat buff;
char *ppath; ppath = path; return stat(ppath,&buff); }
void flush_() { fflush(stdout); }
#endif
--------------------------------------------------------------------------
0 Kudos
hmli
Beginner
1,353 Views
I have fixed it by modifing bsd/mdutil.c
-----------------------------------------------------------------------------
/*f77_int wait_(ist) f77_ptr ist; {return(wait(ist)); }*/ line 2565
f77_int wait_(ist) __WAIT_STATUS ist; {return(wait(ist)); }
-----------------------------------------------------------------------------
0 Kudos
Reply