[Wien] Help Request for making WIEN2K (ver18.2) programs executable.

Pavel Ondračka pavel.ondracka at email.cz
Wed Oct 24 09:24:18 CEST 2018


It would be probably reasonable to add the "-ffpe-summary=none" to the 
default gfortran flags to not scare a new users (as this "issue") is being 
brought up over and over again  (hint to prof. Blaha).




In fact, I tried quite hard to debug lot of those things and in general to 
hunt down the uninitialized stuff and the remaining ones (at least in the 
common codepaths) should be harmless. IIRC the denormals in lapw0 and lapw2 
comes from something like "exp(-big_number)"  which is completely OK and the
scary ones IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO in mixer come from lapack-
netlib/SRC/ieeeck.f function which is intentionally doing all the divide by 
zero and infinity math to check if it can depend on the compliance with the 
IEEE 754 standard.




Regarding the ifort vs gfortran, this is mostly a matter of personal taste. 
gfrortan strictly adheres to the Fortran specification and this caused some 
issues in the Wien2k code. gfortran is also somewhat slower but this is due 
to much more conservative default flags. At -O2 gfortran won't do any SIMD 
vectorization or loop unrolling in general, no link-time (interprocedural) 
optimizations and it strictly adheres to IEEE compliance (and does a lot or 
other stuff, like properly setting errno after library calls etc. which 
ifort does not do with the Wien2k flags). I can maybe someday write some 
blogpost which flags to use to get ifort-like behavior and speed.





Best regards

Pavel







---------- Původní e-mail ----------
Od: Gavin Abo <gsabo at crimson.ua.edu>
Komu: wien at zeus.theochem.tuwien.ac.at
Datum: 24. 10. 2018 4:19:56
Předmět: Re: [Wien] Help Request for making WIEN2K (ver18.2) programs 
executable. 
"Those gfortran warnings have been seen in symmetry [ 
https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17396.html 
] and dstart [ 
https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17389.html 
], which if I recall correctly were resolved by the fixes seen on the 
updated page [ http://susi.theochem.tuwien.ac.at/reg_user/updates/ ]:

VERSION_18.1: 1.6.2018
SRC_dstart: fix of zamt initialization
SRC_symmetry: setting yvec,zvec=0

>From the above, you can see that uninitialized variables in the code 
tend to be the cause of those type of warnings.  Apparently, ifort 
either handles them better (or ignores the issue).

It is not surprising and perhaps expected that those warnings might 
appear in more programs than just lapw0.  As I mentioned before, WIEN2k 
compiled with gfortran is less vetted and less maintained by the 
developers [ 
https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg18018.html 
].  I suppose that is one drawback of using that free compiler. Though, 
I suppose Intel's recent 2016 or newer ifort compiler standardization 
changes breaking some of the WIEN2k code is perhaps not better in some 
cases [ 
https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17542.html 
].  So, pick your poison.

As mentioned on stackoverflow page at the link in the previous post at 
https://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/msg17385.html ,

I think the statement there describes well the meaning of those warning 
messages:

They can be a "hint about numerical problems in your code, but it is not 
an error per se."

Adding "-ffpe-summary=none" to the compiler settings might suppress that 
warning message when compiling with gfortran. However, I don't recommend 
doing that as it might suppress other more important warnings/errors.  
Someday in the future, 'maybe' the WIEN2k code could be reprogrammed to 
remove that warning message (which I think would be the proper way to 
remove that message).

In summary, unless you can fix the code yourself to remove the error, 
you would have the ignore them and continue on with your calculation 
unless it results in something absurdly wrong.

P.S., Pavel has been good at gfortran debugging and resolving those, 
which has been quite appreciated.  Though, I believe he is a user (not 
developer) less obligated to help fix such problems.

On 10/23/2018 2:27 PM, Ashwani Kumar wrote:
> thank you, Program compiled successfully withour any error. I tried to 
> remove manually but still some error occurred, Followed Mr. Gavin's 
> method (from previous thread) for LIBXC link to R_LIBS. Done 
> successfully. But while running an example of TiC (to check everything 
> is fine), STDOUT file shows warning message (for lapw0 and lapw2) but 
> program executed without error. I checked makefile, makefile.orig (and 
> makefile.orig_14 also for lapw0) and found nothing suspicious.
> **************************************************************************
********
> in cycle 9    ETEST: .0000154200000000   CTEST: .0009143
> STOP  LAPW0 END
> Note: The following floating-point exceptions are signalling: 
> IEEE_DENORMAL
> STOP  LAPW1 END
> STOP  LAPW2 END
> Note: The following floating-point exceptions are signalling: 
> IEEE_DENORMAL
> STOP  CORE  END
> Note: The following floating-point exceptions are signalling: 
> IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
> STOP  MIXER END
> ec cc and fc_conv 1 0 1
> in cycle 10    ETEST: .0000051000000000   CTEST: .0005302
> STOP  LAPW0 END
> Note: The following floating-point exceptions are signalling: 
> IEEE_DENORMAL
> STOP  LAPW1 END
> STOP  LAPW2 END
> Note: The following floating-point exceptions are signalling: 
> IEEE_DENORMAL
> STOP  CORE  END
> Note: The following floating-point exceptions are signalling: 
> IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
> STOP  MIXER END
> ec cc and fc_conv 1 0 1
> in cycle 11    ETEST: .0000031500000000   CTEST: .0000970
> STOP  LAPW0 END
> Note: The following floating-point exceptions are signalling: 
> IEEE_DENORMAL
> STOP  LAPW1 END
> STOP  LAPW2 END
> Note: The following floating-point exceptions are signalling: 
> IEEE_DENORMAL
> STOP  CORE  END
> Note: The following floating-point exceptions are signalling: 
> IEEE_INVALID_FLAG IEEE_DIVIDE_BY_ZERO IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
> STOP  MIXER END
> ec cc and fc_conv 1 1 1
>
> >   stop
> **************************************************************************
****************************************
> Please make me understand why the warning message appearing.
>
> thanks
> Ashwani Kumar
_______________________________________________
Wien mailing list
Wien at zeus.theochem.tuwien.ac.at
http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
SEARCH the MAILING-LIST at: http://www.mail-archive.com/wien@zeus.theochem.
tuwien.ac.at/index.html
"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://zeus.theochem.tuwien.ac.at/pipermail/wien/attachments/20181024/37522c43/attachment-0001.html>


More information about the Wien mailing list