[Wien] compilation problems in the new pes module
Peter Blaha
pblaha at theochem.tuwien.ac.at
Tue Jul 10 13:05:27 CEST 2018
Thank's for this.
When you run pes compiled with -C, you will notice an uninitialized
variable, which should be removed .....
optimize_charge.f:
! bndstep = bndstep+0.01
bndstep = +0.01
On 07/10/2018 12:57 PM, Pavel Ondračka wrote:
> Thanks for the fixes, the code compiles now. I've prepared a patch so
> that other users don't have to patch by hand, and also for Gavin if he
> continues the great work of collecting fixes in his repo. Copy to the
> SRC_pes folder and apply with patch -p1 < pes-patch.txt
> Best regards
> Pavel
>
>
> On Tue, 2018-07-10 at 08:33 +0200, Peter Blaha wrote:
>> Thanks for the report. See inlined comments.
>>
>> PS: Unfortunately, when I looked into the code, I saw it is in
>> terrible
>> shape. It mixes real*4 up to real*16 variables randomly and has a
>> couple
>> of unclear things in it (for instance just before calling spline....
>>
>> Peter Blaha
>>
>>> I'm interested in the new pes module. Unfortunately, the
>>> compilation of
>>> the module faces some problems with gfortran, specifically:
>>>
>>> -------------
>>>
>>> pes.f:114:19:
>>>
>>> read (*,'(I)') database
>>> 1
>>> Error: Nonnegative width required in format string at (1)
>>> pes.f:146:21:
>>>
>>> read (*,'(i)') scheme
>>> 1
>>> Error: Nonnegative width required in format string at (1)
>>>
>>> - This is nonstandard behavior, looking at the expected values it
>>> should be probably I1 in both cases
>>
>>
>> Yes I1 is fine.
>>
>>> ------------
>>>
>>> pes.f:235:39:
>>>
>>> 500 format(A,A16,2x,A16,2x,<7>(A16,2x))
>>> 1
>>> Error: Unexpected element ‘<’ in format string at (1)
>>> pes.f:239:42:
>>>
>>> 600 format(f16.8,2x,e16.8,2x,<7>(e16.8,2x))
>>> 1
>>> Error: Unexpected element ‘<’ in format string at (1)
>>> ind_p.f:39:26:
>>>
>>> 100 format(<15>A1)
>>> 1
>>> Error: Unexpected element ‘<’ in format string at (1)
>>> optimize_charge.f:239:21:
>>>
>>> 1013 FORMAT(<3>A15)
>>> 1
>>> Error: Unexpected element ‘<’ in format string at (1)
>>>
>>> - Another nonstandard ifort specific stuff. Since the value is
>>> constant the brackets are not needed anyway.
>>
>> Yes, the "<" and ">" characters should simply be removed.
>>
>>
>>>
>>> ------------
>>>
>>> pes.f:266:22:
>>>
>>> 800 format(4x,I)
>>> 1
>>> Error: Non-negative width required in format string at (1)
>>> optimize_charge.f:64:25:
>>>
>>> 1001 FORMAT(3x,A1,I)
>>
>> This should be I3
>>
>>
>>> 1
>>> Error: Nonnegative width required in format string at (1)
>>> read_dos.f:41:21:
>>>
>>> 301 FORMAT (7x,I)
>>
>> This should be I5
>>
>>> 1
>>> Error: Nonnegative width required in format string at (1)
>>> read_dos.f:44:45:
>>>
>>> 400 format(4x,f10.5,10x,i3,10x,i8,20x,f)
>>
>> should be f10.5
>>
>>> 1
>>> Error: Nonnegative width required in format string at (1)
>>>
>>> - No idea here about the required width, but needs to be set too.
>>>
>>> ------------
>>>
>>> pes.f:279:26:
>>>
>>> if((ERROR.eq.0).AND.(STR.eq.'#')) then
>>
>> Yes, of course this should be STTR instead of STR
>>
>>> 1
>>> Error: Operands of comparison operator ‘.eq.’ at (1) are
>>> INTEGER(4)/CHARACTER(1)
>>>
>>> -It looks like the STR is undefined, probably a typo (did author
>>> want
>>> STTR in the comparison)?
>>>
>>> ------------
>>>
>>> read_dos.f:51:36:
>>>
>>> 600 format(f10.5,<n_clmn>f14.8)
>>
>> Should simply be: 600 format(f10.5,7f14.8)
>>
>>> 1
>>> Error: Unexpected element ‘<’ in format string at (1)
>>> Find_p.f:46:25:
>>>
>>> 200 format(<j-1>A1)
>>
>> It should be 15A1
>>
>>> 1
>>> Error: Unexpected element ‘<’ in format string at (1)
>>> Find_p.f:50:25:
>>>
>>> 300 format(<m-j>A1)
>>
>> Also here: 15A1
>>
>>> 1
>>> Error: Unexpected element ‘<’ in format string at (1)
>>>
>>> - Can be rewritten with combination of internal output and string
>>> formats.
>>>
>>> for example:
>>> write(Anumber,200)(temp(l),l=1,k-1)
>>> 200 format(<j-1>A1)
>>>
>>> should be equivalent to
>>>
>>> character(len=10) :: frmt
>>> write(frmt,'("(",I0,"A1)")') j-1
>>> write(Anumber,frmt)(temp(l),l=1,k-1)
>>>
>>> ------------
>>>
>>> optimize_charge.f:103:9:
>>>
>>> IF(PCHECK(j).EQ. .FALSE.)THEN
>>> 1
>>> Error: Logicals at (1) must be compared with .eqv. instead of .eq.
>>> optimize_charge.f:329:12:
>>>
>>> IF (CHECK.EQ..FALSE.) THEN
>>> 1
>>> Error: Logicals at (1) must be compared with .eqv. instead of .eq.
>>> read_database2.f:68:5:
>>>
>>> if (data_exist.eq..false.)then
>>> 1
>>> Error: Logicals at (1) must be compared with .eqv. instead of .eq.
>>>
>>> - Use .eqv. as suggested.
>>
>> Yes, in all these cases it should be .eqv.
>>
>>>
>>> -------------
>>>
>>> SPLINE.f:15:14:
>>>
>>> call setup(p0, p1, p2, p3,
>>> delta_x,X,F,N,strt,stp,J,interpolation)
>>> 1
>>> Error: Explicit interface required for ‘setup’ at (1): allocatable
>>> argument
>>
>> edit SPLINE.f and remove p0-p3 from the arguments of subroutine
>> setup
>> and remove the intent(out) definition for these variables:
>>
>> ...
>> call setup(delta_x,X,F,N,strt,stp,J,interpolation)
>>
>> END SUBROUTINE SPLINE
>>
>> subroutine setup(delta_x,tempx,tempy,n,strt,stp,J,interpolation)
>> ...
>> ! real(dp),dimension(:),allocatable, intent(out) :: p0, p1, p2, p3
>> !
>> spline coefficients
>> real(dp),dimension(:),allocatable :: p0, p1, p2, p3 ! spline
>> coefficients
>> ...
>>
>>>
>>> - No idea here :-(
>>>
>>> -------------
>>>
>>> read_int.f:18:25:
>>>
>>> read(22,100),ndos
>>
>>
>> remove comma before ndos
>>
>>> 1
>>> Warning: Legacy Extension: Comma before i/o item list at (1)
>>>
>>> Find_p.f:66:65:
>>>
>>> write(output_names(output_counter),500)
>>> ,aname(m),composition(m,n),m
>>
>> Remove comma before aname
>>
>>> 1
>>> Warning: Legacy Extension: Comma before i/o item list at (1)
>>>
>>> - Some unrelated harmless easy to fix warnings.
>>> -------------
>>>
>>> Most of the fixes are probably obvious except the missing length
>>> for
>>> the read formats, where the proper fix requires some knowledge
>>> about
>>> the input structuring and also the "Explicit interface required"
>>> stuff.
>>>
>>> Best regards
>>> Pavel
>>>
>>> _______________________________________________
>>> 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
>>>
>>
>>
>>
>> _______________________________________________
>> 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
--
P.Blaha
--------------------------------------------------------------------------
Peter BLAHA, Inst.f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-1-58801-165300 FAX: +43-1-58801-165982
Email: blaha at theochem.tuwien.ac.at WIEN2k: http://www.wien2k.at
WWW: http://www.imc.tuwien.ac.at/TC_Blaha
--------------------------------------------------------------------------
More information about the Wien
mailing list