[Q-e-developers] [Pw_forum] Bug fix after NAG compilation of QE

Samuel Poncé samuel.pon at gmail.com
Wed Sep 16 15:34:48 CEST 2015


Hello,

I forgot to mention that the intrinsic function 'system' is non-standard in
Fortran and should be replace by standard 'execute_command_line' (see
http://www.nag.co.uk/nagware/np/doc/faq.asp)

For example in PHonon/FD/fd.f90:
    call system('mkdir '//trim(fd_outfile_dir))

should be replace by
call execute_command_line('mkdir '//trim(fd_outfile_dir))

Best,

Samuel


On 16 September 2015 at 13:58, Samuel Poncé <samuel.pon at gmail.com> wrote:

> Dear QE-developers,
>
> I've now debug the PH part of QE using NAG. There was only 8 'bugs'
> therefore I did not do a patch. There should all be safe and minor.
>
> 1) Error: find_mode_sym.F90, line 63: Implicit type for NAT
> ==> swap after definition
>
>   INTEGER, INTENT(IN) ::             &
>        nat,         &     ! number of atoms
>        nsym,        &     ! number of symmetries
>        flag,        &     ! if 1 u are displacements, if 0 u are
> eigenvectors
>        ntyp,        &     ! number of atomic types
>        ityp(nat),   &     ! the type of each atom
>        irt(48,nat)        ! the rotated of each atom
>
>   INTEGER, INTENT(OUT) :: num_rap_mode ( 3 * nat )
>
> 2) Error: io_pattern.F90, line 55: Implicit type for NAT
>   INTEGER :: nirr, nat, npert(3*nat), iflag
>
> 3) Error: obsolete.F90, line 1737: Implicit type for NAT
>   INTEGER, INTENT(IN) ::             &
>        nat,         &
>        nsym,        &
>        flag,        &
>        ntyp,        &
>        ityp(nat),   &
>        irt(48,nat)
>
>   CHARACTER(15), INTENT(OUT) :: name_rap_mode( 3 * nat )
>   INTEGER, INTENT(OUT) :: num_rap_mode ( 3 * nat )
>   INTEGER, INTENT(IN) :: nspin_mag
>
> 4) Error: transform_int_so.F90, line 203: Implicit type for NPERT
> INTEGER :: na, npert
> COMPLEX(DP) :: int3(nhm,nhm,npert,nat,nspin_mag)
>
> 5) Error: transform_int_nc.F90, line 162: Implicit type for NPERT
> INTEGER :: na, npert
> COMPLEX(DP) :: int3(nhm,nhm,npert,nat,nspin_mag)
>
> 6) Error: transform_dbecsum_so.F90, line 61: Implicit type for MODES
> INTEGER :: na, modes
> COMPLEX(DP) :: dbecsum_nc( nhm, nhm, nat, nspin, modes)
> COMPLEX(DP) :: dbecsum( nhm*(nhm+1)/2, nat, nspin_mag, modes)
>
> 7) Error: fqha.F90, line 54: Nonstandard format field $: please use the
> ADVANCE='NO' specifier instead
> + other errors (comma missing):
>   write (*,"('File containing the dos >>> ')",advance="no")
>   write (*,"('Output file for the Free energy >>> ')",advance="no")
>   write (*,"('Temperature (K) >>> ')",advance="no")
>   write(*,"('Check: 3*Nat = ',f8.4,5x,'zero-point energy (Ry)=',f15.8)")
> norm,F0
>
> 8) q2qstar.028286.028286.c:(.text+0x73): undefined reference to `iargc_'
> q2qstar.028286.028286.c:(.text+0xde): undefined reference to `getarg_'
>
> Intrinsic functions should not be declared:
> USE F90_UNIX_ENV,       ONLY : iargc, getarg
> !  INTEGER :: iargc ! intrinsic function
>
> Best Regards,
>
> Samuel
>
>
> On 15 September 2015 at 21:40, Filippo Spiga <spiga.filippo at gmail.com>
> wrote:
>
>> Dear Samuel,
>>
>> thank you very much for the patch! I suggest not to commit anything too
>> destruptive this week because we are going to release a minor on
>> Saturday/Sunday. Better be safe.  In the meanwhile I will also try to sort
>> out a temporary NAG license for testing, we do not have it in Cambridge at
>> the moment...
>>
>> This "NAG thing" is top list next Monday.
>>
>> --
>> Mr. Filippo SPIGA, M.Sc.
>> Quantum ESPRESSO Foundation
>> http://fspiga.github.io ~ skype: filippo.spiga
>>
>> *****
>> Disclaimer: "Please note this message and any attachments are
>> CONFIDENTIAL and may be privileged or otherwise protected from disclosure.
>> The contents are not to be disclosed to anyone other than the addressee.
>> Unauthorized recipients are requested to preserve this confidentiality and
>> to advise the sender immediately of any error in transmission."
>>
>> > On Sep 15, 2015, at 8:24 PM, Samuel Poncé <samuel.pon at gmail.com> wrote:
>> >
>> > Dear QE developer,
>> >
>> > We've recently purchase a NAG licence (latest version) and ran it on QE.
>> >
>> > Here is a list of changes/bug fix to make NAG happy (we have only solve
>> the error, not
>> > the warnings).
>> >
>> > 1) lapack-3.2/make.inc
>> > Although my environment is set up for nagfor, the configure is not able
>> to modify
>> > the install/make_lapack.inc correctly. Therefore we have to change
>> manually the following:
>> > FORTRAN  = nagfor
>> > OPTS     = -O0 -kind=byte -dcfuns -mismatch
>> > DRVOPTS  = -O0 -kind=byte -dcfuns -mismatch
>> > NOOPT    = -O0 -g
>> > LOADER   = nagfor
>> > LOADOPTS = -g
>> >
>> > The same has to be done for install/make_blas.inc
>> >
>> > 2) The "pthread" option is not accepted by NAG.
>> > This is not really a bug, just to say we had to remove this option from
>> the make.sys file
>> > of QE.
>> >
>> > Additionally, NAG doesn't have a great internal fortran preprocessor,
>> > so use CPP (from make.sys):
>> > .f90.o:
>> >         $(CPP) $(CPPFLAGS) $< -o $*.F90
>> >         $(MPIF90) $(F90FLAGS) -c $*.F90 -o $*.o
>> >
>> > Also on the make.sys file, NAG does not support -x options, therefore
>> change
>> > to. Also notice the -kind=byte option to tell NAG that KIND(4) and
>> KIND(8) is
>> > the convention in QE.
>> > The -mismatch option is to make NAG less strict and -dcfuncs  is to
>> allow non standard casting variable like dcmplx
>> >
>> > CFLAGS         = -O0 $(DFLAGS) $(IFLAGS)
>> > F90FLAGS       = $(FFLAGS) $(FDFLAGS) $(IFLAGS) $(MODFLAGS)
>> > FFLAGS         = -O0 -kind=byte -dcfuns -mismatch
>> >
>> > 3) It would be usefull to have a macro
>> > !#ifdef NAG
>> >   USE F90_UNIX_ENV, ONLY : IARGC,GETARG
>> >
>> > The Wannier90 code does have a ifdef NAG macro.
>> >
>> > 4) The main corrections are related to
>> > - change $ which is depreciated by advance="NO"
>> > - small bug (an interface was defined with optional argument but the
>> subroutine
>> > called was not)
>> > - swapping order of variable declaration so that the variable is first
>> declared
>> > and then used
>> > - Change X by 1X
>> >
>> > Join to this email is a patch of the difference (to be applied on the
>> QE-r11723):
>> >
>> > patch -p1 < diff-nag.patch
>> >
>> > Note: This only solves the problems to "make pw". Other parts like ph
>> are not done yet.
>> >
>> > Best Regards,
>> >
>> > Samuel and Henry
>> >
>> > <diff-nag.patch>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/developers/attachments/20150916/54028a3d/attachment.html>


More information about the developers mailing list