Issues compiling abinit 6.12.1 on Power6
Posted: Fri Mar 30, 2012 11:19 pm
I'm attempting to compile abinit on an IBM Power6 running AIX 5.3. Everything seems to go fine until it gets to 2 files (irrzg.F90 and symfind.F90). When compiled, both of these files complain with the following error:
What I've found that they both have in common is a variable called 'class' declared as such:
It seems as though the mpxlf90_r compiler doesn't like the 'class' word due to the polymorphic entities available in Fortran 2003. The xlf.cfg.53 file we're pointing to has the following in the options, though:
I would think that the -qxlf2003=nopolymorphic option would tell the compiler to ignore the 'class' word as being a polymorphic declaration, but apparently it doesn't.
Subsequently, changing 'class' to another variable name has allowed for proper compilation.. However, I was curious if this has been encountered before, and if so, what the resolution was, if any.
Thanks!
Code: Select all
mpxlf90_r -F /scr/abinit-6.12.1/xlf.cfg.53 -q64 -DHAVE_CONFIG_H -I. -I../.. -I../../src/incs -I../../src/incs -I/scr/abinit-6.12.1/fallbacks/exports/include -WF,-DHAVE_CONFIG_H -qsuffix=cpp=F90:f=f90 -qfree=f90 -qmoddir=/scr/abinit-6.12.1/src/mods -I/scr/abinit-6.12.1/src/mods -O3 -qmaxmem=65536 -qspill=2000 -qarch=auto -qtune=auto -qcache=auto -qstrict -qsuppress=1520-022:1520-031 -q64 -qzerosize -c -o symfind.o symfind.F90
"/scr/tmp/F8409656x-qd7b", 1516-036 (S) Entity class has undefined type.
** symfind === End of Compilation 1 ===
1501-511 Compilation failed for file symfind.F90.
What I've found that they both have in common is a variable called 'class' declared as such:
Code: Select all
integer,allocatable :: class(:) <-- irrzg.F90
integer,allocatable :: class(:,:) <-- symfind.F90
It seems as though the mpxlf90_r compiler doesn't like the 'class' word due to the polymorphic entities available in Fortran 2003. The xlf.cfg.53 file we're pointing to has the following in the options, though:
Code: Select all
mpxlf90_r: use = DEFLT
libraries = -L/usr/lpp/ppe.poe/lib/threads,-L/usr/lpp/ppe.poe/lib,-L/lib/threads,-lmpi_r,-lxlf90,-L/usr/lpp/xlf/lib,-lxlopt,-lxlf,-lxlomp_
ser,-lpthreads,-lm,-lc
proflibs = -L/usr/lpp/ppe.poe/lib/profiled/threads,-L/usr/lpp/ppe.poe/lib/profiled,-L/lib/profiled,-L/usr/lib/profiled
smplibraries = -L/usr/lpp/ppe.poe/lib/threads,-L/usr/lpp/ppe.poe/lib,-L/lib/threads,-lmpi_r,-lxlf90,-L/usr/lpp/xlf/lib,-lxlopt,-lxlf,-lxlsm
p,-lpthreads,-lm,-lc
options = -qxlf90=noautodealloc:nosignedzero:oldpad,-qthreaded,-qfree=f90,-binitfini:poe_remote_main,-qxlf2003=nopolymorphic:nobozlitargs:nostopexcept:novolatile:noautorealloc:oldnaninf
include = -I/usr/lpp/ppe.poe/include
I would think that the -qxlf2003=nopolymorphic option would tell the compiler to ignore the 'class' word as being a polymorphic declaration, but apparently it doesn't.
Subsequently, changing 'class' to another variable name has allowed for proper compilation.. However, I was curious if this has been encountered before, and if so, what the resolution was, if any.
Thanks!