[Pw_forum] Bug in dynmat
Paolo Giannozzi
giannozz at nest.sns.it
Mon Sep 10 11:26:07 CEST 2007
On Sep 8, 2007, at 21:53 , Eduardo Ariel Menendez P wrote:
> I found a bug in program dynmat. It appears when ibrav=0.
> from latgen : error # 1
> wrong at for ibrav=0
> I think the problem is this
> In dynmat.f90:
> call latgen(ibrav,celldm,at(1,1),at(1,2),at(1,3),omega)
> In flib/latgen.f90:
> subroutine latgen(ibrav,celldm,a1,a2,a3,omega)
> .........
> real(DP), intent(inout) :: a1(3), a2(3), a3(3)
>
> dynmat passes real numers a(i,j) instead of arrays.
no, it is not this. The above syntax is perfectly valid: (old)
fortran passes
the address of a variable (a pointer, in C language) to a subroutine.
The
error means that you have ibrav=0 .and. zero vectors at.
> Moreover, in one package of version 3.2, it seems that the following
> lines were lost in soubroutine readmat.
>
> if (ibrav==0) then
> read(1,'(a)') symm_type
> read(1,*) ((at(i,j),i=1,3),j=1,3)
> end if
this is a more likely reason for the error above! I though case ibrav=0
had been fixed, but apparently it had not.
Paolo
---
Paolo Giannozzi, Democritos and University of Udine, Italy
More information about the Pw_forum
mailing list