Some other bugs in the XML data-file fixed. C.S.

git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2587 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
sbraccia 2005-12-13 21:58:44 +00:00
parent b9100e61d4
commit 993a67204a
4 changed files with 49 additions and 23 deletions

View File

@ -1652,7 +1652,7 @@ MODULE cp_restart
CALL iotk_scan_dat( iunpun, "CELL_SYMMETRY", symm_type )
!
CALL iotk_scan_dat( iunpun, "LATTICE_PARAMETER", alat )
CALL iotk_scan_dat( iunpun, "CELLDM", celldm(1:6) )
CALL iotk_scan_dat( iunpun, "CELL_DIMENSION", celldm(1:6) )
!
CALL iotk_scan_begin( iunpun, "DIRECT_LATTICE_VECTORS" )
CALL iotk_scan_dat( iunpun, "a1", a1 )

View File

@ -455,7 +455,7 @@ MODULE xml_io_base
CALL iotk_write_attr( attr, "UNIT", "Bohr", FIRST = .TRUE. )
CALL iotk_write_dat( iunpun, "LATTICE_PARAMETER", alat, ATTR = attr )
!
CALL iotk_write_dat( iunpun, "CELLDM", celldm(1:6) )
CALL iotk_write_dat( iunpun, "CELL_DIMENSION", celldm(1:6) )
!
CALL iotk_write_begin( iunpun, "DIRECT_LATTICE_VECTORS" )
CALL iotk_write_dat( iunpun, "a1", a1(:) * alat, ATTR = attr )
@ -734,6 +734,8 @@ MODULE xml_io_base
INTEGER, OPTIONAL, INTENT(IN) :: tetra(:,:)
REAL(DP), OPTIONAL, INTENT(IN) :: degauss, f_inp(:,:)
!
INTEGER :: i
!
!
CALL iotk_write_begin( iunpun, "OCCUPATIONS" )
!
@ -756,7 +758,12 @@ MODULE xml_io_base
!
CALL iotk_write_dat( iunpun, "NUMBER_OF_TETRAHEDRA", ntetra )
!
CALL iotk_write_dat( iunpun, "TETRAHEDRA", tetra(:,:) )
DO i = 1, ntetra
!
CALL iotk_write_dat( iunpun, "TETRAHEDRON" // &
& iotk_index( i ), tetra(1:4,i) )
!
END DO
!
END IF
!

View File

@ -910,8 +910,8 @@ MODULE pw_restart
USE symme, ONLY : nsym
USE gvect, ONLY : nr1, nr2, nr3, ngm_g, ecutwfc, dual
USE gsmooth, ONLY : nr1s, nr2s, nr3s, ngms_g
USE lsda_mod, ONLY : lsda, nspin
USE noncollin_module, ONLY : noncolin, npol
USE lsda_mod, ONLY : lsda
USE noncollin_module, ONLY : noncolin
USE ktetra, ONLY : ntetra
USE klist, ONLY : nkstot, nelec
USE wvfct, ONLY : nbnd, npwx, gamma_only
@ -996,20 +996,8 @@ MODULE pw_restart
!
CALL iotk_scan_dat( iunpun, "LSDA", lsda )
!
IF ( lsda ) THEN
!
nspin = 2
!
ELSE
!
nspin = 1
!
END IF
!
CALL iotk_scan_dat( iunpun, "NON-COLINEAR_CALCULATION", noncolin )
!
CALL iotk_scan_dat( iunpun, "SPINOR_DIM", npol, DEFAULT = 1 )
!
CALL iotk_scan_end( iunpun, "SPIN" )
!
CALL iotk_scan_begin( iunpun, "OCCUPATIONS" )
@ -1062,9 +1050,7 @@ MODULE pw_restart
CALL mp_bcast( nr3s, ionode_id )
CALL mp_bcast( ngms_g, ionode_id )
CALL mp_bcast( lsda, ionode_id )
CALL mp_bcast( nspin, ionode_id )
CALL mp_bcast( noncolin, ionode_id )
CALL mp_bcast( npol, ionode_id )
CALL mp_bcast( ntetra, ionode_id )
CALL mp_bcast( nkstot, ionode_id )
CALL mp_bcast( nelec, ionode_id )
@ -1145,7 +1131,7 @@ MODULE pw_restart
IF ( ibrav == 0 ) &
CALL iotk_scan_dat( iunpun, "CELL_SYMMETRY", symm_type )
!
CALL iotk_scan_dat( iunpun, "CELLDM", celldm(1:6) )
CALL iotk_scan_dat( iunpun, "CELL_DIMENSION", celldm(1:6) )
!
CALL iotk_scan_dat( iunpun, "LATTICE_PARAMETER", alat )
!
@ -1628,6 +1614,14 @@ MODULE pw_restart
!
CALL iotk_scan_attr( attr, "WEIGHT", wk(ik) )
!
IF ( nspin == 2 ) THEN
!
xk(:,ik+num_k_points) = xk(:,ik)
!
wk(ik+num_k_points) = wk(ik)
!
END IF
!
END DO
!
CALL iotk_scan_end( iunpun, "BRILLOUIN_ZONE" )
@ -1660,6 +1654,8 @@ MODULE pw_restart
CHARACTER(LEN=*), INTENT(IN) :: dirname
INTEGER, INTENT(OUT) :: ierr
!
INTEGER :: i
!
!
IF ( locc_read ) RETURN
!
@ -1693,7 +1689,12 @@ MODULE pw_restart
!
CALL iotk_scan_dat( iunpun, "NUMBER_OF_TETRAHEDRA", ntetra )
!
CALL iotk_scan_dat( iunpun, "TETRAHEDRA", tetra(1:4,1:ntetra) )
DO i = 1, ntetra
!
CALL iotk_scan_dat( iunpun, "TETRAHEDRON" // &
& iotk_index( i ), tetra(1:4,i) )
!
END DO
!
END IF
!

View File

@ -14,7 +14,6 @@ SUBROUTINE read_file()
! ... This routine allocates space for all quantities already computed
! ... in the pwscf program and reads them from the data file.
!
!
USE kinds, ONLY : DP
USE parameters, ONLY : natx
USE ions_base, ONLY : nat, nsp, ityp, tau, if_pos
@ -111,7 +110,26 @@ SUBROUTINE read_file()
!
CALL divide_et_impera( xk, wk, isk, lsda, nkstot, nks )
!
current_spin = 1
! ... check whether LSDA
!
IF ( lsda ) THEN
!
nspin = 2
npol = 1
!
ELSE IF ( noncolin ) THEN
!
nspin = 4
npol = 2
current_spin = 1
!
ELSE
!
nspin = 1
npol = 1
current_spin = 1
!
END IF
!
cell_factor = 1.D0
lmovecell = .FALSE.