<div dir="ltr"><div><div><div>Currently the only occurrence of __XLF is in Modules/parser.f90:<br>#if defined (__XLF)<br> ! ... with the IBM xlf compiler some combination of flags lead to<br> ! ... variables being defined as static, hence giving a conflict<br> ! ... with PURE function. We then force the variable to be AUTOMATIC<br> CHARACTER(LEN=1), AUTOMATIC :: sep1, sep2<br> INTEGER, AUTOMATIC :: j<br>#else<br> CHARACTER(LEN=1) :: sep1, sep2<br> INTEGER :: j<br>#endif<br></div><div>So we may<br>- remove the PURE statement (it is the only one in QE: are all others IMPURE?) and related #ifdef and -D__XLF<br></div><div>- figure out if the xlf compiler automatically #defines some suitable variable, like e.g. __xlf_compiler<br>- make the safe assumption that there is nobody on the planet using gfortran on a powerpc to run QE<br>- remove only the above #ifdef, and see what happens<br><br></div></div>Any solution is fine for me as soon as it takes less time to implement it than to write this message. I prefer the first one.<br><br></div>Paolo<br><div><div><div><div> <br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Sep 24, 2016 at 12:37 PM, Michael Banck <span dir="ltr"><<a href="mailto:mbanck@debian.org" target="_blank">mbanck@debian.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I noticed that QE fails to build on Debian ppc64:<br>
<br>
|mpif90 -O3 -g -x f95-cpp-input -D__XLF -D__GFORTRAN -D__STD_F95<br>
|-D__FFTW3 -D__MPI -D__PARA -D__SCALAPACK -D__ELPA -I../include<br>
|-I/usr/include/elpa/modules -I../iotk/src -I../ELPA/src -I../FFTXlib<br>
|-I../LAXlib -I. -c parser.f90<br>
|f951: Warning: Nonexistent include directory '../ELPA/src'<br>
|[-Wmissing-include-dirs]<br>
|parser.f90:65:21:<br>
|<br>
| CHARACTER(LEN=1), AUTOMATIC :: sep1, sep2<br>
| 1<br>
|Error: Invalid character in name at (1)<br>
<br>
Note thet -D__XLF which makes it use a different codepath in parser.f90.<br>
This seems to be due to this in configure:<br>
<br>
|case $arch in<br>
|[...]<br>
|ppc64 )<br>
| try_mpif90="mpxlf90_r mpf90_r mpif90"<br>
| try_f90="xlf90_r $try_f90"<br>
| try_dflags="-D__XLF"<br>
| ;;<br>
<br>
So QE assumes XLC to be used on ppc64, but gfortran appears to be a<br>
valid choice to me as well.<br>
<br>
<br>
Michael<br>
______________________________<wbr>_________________<br>
Q-e-developers mailing list<br>
<a href="mailto:Q-e-developers@qe-forge.org">Q-e-developers@qe-forge.org</a><br>
<a href="http://qe-forge.org/mailman/listinfo/q-e-developers" rel="noreferrer" target="_blank">http://qe-forge.org/mailman/<wbr>listinfo/q-e-developers</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Paolo Giannozzi, Dip. Scienze Matematiche Informatiche e Fisiche,<br>Univ. Udine, via delle Scienze 208, 33100 Udine, Italy<br>Phone +39-0432-558216, fax +39-0432-558222<br><br></div></div></div></div></div>
</div>