[xcrysden] A small bug in wn_readbakgen.f

xianghjun xcrysden@democritos.it
Wed, 24 Aug 2005 17:21:50 +0800


Dear all,
  Today I want to calculate the fermi surface using wien2k, I encounter 
an error
just before the fermi surface plotting. I find that in
"~/xcrys_tmp/xc_13519/FS/FS.outputfs", it reads:
 BEGIN_BLOCK_BANDGRID3D
 band_energies
 BANDGRID_3D_BANDS
          38
           9          14          10
   0.000000E+00   0.000000E+00   0.000000E+00
  0.113965000000000        0.00000000000000D+000   0.00000000000000D+000
   0.00000000000000D+000  0.185889000000000        0.00000000000000D+000
   0.00000000000000D+000   0.00000000000000D+000  0.130882000000000
 BAND:            1
...

It seems that "D+000" is the source of the error since by replacing 'D' 
with 'E',
the error disappears.

Finally I replace some codes in wn_readbakgen.f with the following codes:
C xhj add here
!      write(10,*) 0.0,0.0,0.0  !origin
      write(10,'(3f16.9)') 0.0,0.0,0.0
c     -------------------------------
c     VEC(i,j) = VEC(#vec,xyz) !!!!!!
c     -------------------------------
!      write(10,*) (recVec(1,j),j=1,3)    !reciprocal vectors
       write(10,'(3f16.9)') (recVec(1,j),j=1,3)
!      write(10,*) (recVec(2,j),j=1,3)    !reciprocal vectors
       write(10,'(3f16.9)') (recVec(2,j),j=1,3)
!      write(10,*) (recVec(3,j),j=1,3)    !reciprocal vectors
       write(10,'(3f16.9)') (recVec(3,j),j=1,3)
C xhj add end here

Now it works.

I think this might be a bug related to the compiler (The binary version 
might work).
I have compiled XCrySDen-1.4.1s using ifc 7.1 and gcc 3.3.5 in Debian Linux.

Best regards,
xianghjun

=============================================================
 H. J. Xiang
 Ph.D. Candidate,
 Hefei National Laboratory For Physical Sciences at Microscale,
 University of Science and Technology of China,
 Hefei, Anhui, 230026,
 People's Republic of China
 Tel.: 86-551-3606428
 Fax.: 86-551-3602969
 E-mail: xhongjun@mail.ustc.edu.cn
=============================================================