[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