[CPMD-list] CPMD 3.11.1 compilation error

Rodolphe Vuilleumier vuilleum at lptl.jussieu.fr
Mon Dec 10 22:07:31 UTC 2007


Hello,

It appears that in gfortran the minus sign is parsed as the unitary 
operator, as it should be. Then -2147483648 is the minus of the integer 
2147483648 but that integer is out of range so that the syntax 
"-2147483648" is not valid while the integer -2147483648 would be a 
valid integer (you can find on the web lengthy discussions of the 
gfortrans folks on this topic). To turn around the syntax problem I defined
PARAMETER (UMASK=-2147483647-1, LMASK=2147483647)
the operand -2147483647, as the minus of 2147483647, is well defined and 
is not the smallest integer so that you can still substract one to get 
the smallest possible integer (in 32 bit).

Yours,
Rodolphe


Yirdaw, Robel Birru a écrit :
> Hello,
>
> I have been trying to compile CPMD 3.11.1 but I get the following error:
>
> rm -f shop_adds.f
> /lib/cpp -P -C -traditional -D__Linux -D__PGI -D__GNU -DFFT_DEFAULT  
> ./shop_adds.F ./shop_adds.f
> gfortran  -c -fdefault-real-8 -O2 -fcray-pointer  ./shop_adds.f -o 
> ./shop_adds.o
> ./shop_adds.f:788.34:
>
>       PARAMETER (UMASK=-2147483648, LMASK=2147483647)
>                                  1
> Error: Integer too big for its kind at (1)
> make: *** [shop_adds.o] Error 1
>
> My machine is an Intel P4 with 1GB RAM running Ubuntu 7.10.  The fortran
> compiler is gfortran 4.2.  I invoked the compile using the PC-GFORTRAN
> platform.  If anyone has any feedback, I'd really apprecaite it.
>
> Thank you,
> -Robel
>
> _______________________________________________
> CPMD-list mailing list
> CPMD-list at cpmd.org
> http://cpmd.org/mailman/listinfo/cpmd-list
>   



More information about the CPMD-list mailing list