amber-developers: Problems with g95 running in x86_64 mode...

From: Ross Walker <ross.rosswalker.co.uk>
Date: Mon, 27 Mar 2006 20:10:35 -0700

Compiling Amber with g95 running in 64 bit mode:

x86_64-unknown-linux-gnu-g95
G95 (GCC 4.0.3 (g95!) Mar 20 2006)

Gives the error:

g95 -c -O3 -fno-second-underscore -march=nocona -ffree-form
-I../../sander -o ../obj/doscfqmmm.o ../obj/doscfqmmm.f
In file ../obj/doscfqmmm.f:732

        CALL DIFFP_STAT(DPMAX,ICOUNT,NUM_TOP,IATM_TOP,JATM_TOP, &
                             1
Error: Type mismatch in parameter 'dpmax' at (1). Passing REAL(4) to
REAL(8)
make[3]: *** [../obj/doscfqmmm.o] Error 1

This is kind of weird. There is an interface declaration to DIFFP_STAT
that
declares DPMAX as real*8 but the routine that calls diffp_stat allocated
DPMAX via an implicit double precision statement at the beginning of the
routine.

Hence it looks like g95 (64 bit) may treat implicit double precision as
REAL*4 - seems wrong to me but it looks like this is what it is doing.

Modifying one of the declaration lines in src/dcqtp/src/scf/doscfqmmm.F90
from

real*8 :: DP_TOP(500)
to
real*8 :: DP_MAX, DP_TOP(500)

Allows sander to compile okay. To get divcon to compile a similar change
in
src/dcqtp/src/doscf.F90 is required.

Note, this simply allows the code to compile - none of the divcon or
sander.DIVCON test pass with these changes so there must be deeper errors
-
32 bit doesn't work either.

There are also many other errors with this compiler with cytosine, LES and
many others.

See the attached make_test_g95_64bit.log TEST_FAILURES_g95_64bit.dat file.

Ideas?

----
Also, this compiler version does not seem to work well with MKL (8.0.2)
all
the veclib stuff works but things like tgtmd (PME) fail with a failure in
dgeev
| TOTAL SIZE OF NONBOND LIST =     303963
 Error in diagonalization routine dgeev
 Fatal Error calculating RMSD !
and divcon fails with a strange glibc error.
cd qmmm2/lysine_PM3; ./Run.lysine_divcon
*** glibc detected *** corrupted double-linked list: 0x0000002a956055c0
***
Abort
  ./Run.lysine_divcon:  Program error
make: *** [test.sander.DIVCON] Error 1
Any ideas? Perhaps one just can't use MKL with g95 running in 64 bit mode.
----
The 32 bit version of g95 seems to work fine, with and without MKL with
everything passing except sander divcon stuff which gives many diffs with
or
without MKL - see attached TEST_FAILURE files.
All the best
Ross
/\
\/
|\oss Walker
| HPC Consultant and Staff Scientist |
| San Diego Supercomputer Center |
| Tel: +1 858 822 0854 | EMail:- ross.rosswalker.co.uk |
| http://www.rosswalker.co.uk | PGP Key available on request |
Note: Electronic Mail is not secure, has no guarantee of delivery, may not
be read every day, and should not be used for urgent or sensitive issues. 




Received on Wed Apr 05 2006 - 23:49:34 PDT
Custom Search