From e8d138642f8222a1c52aa5a851e38b525755cc32 Mon Sep 17 00:00:00 2001 From: sbraccia Date: Wed, 4 Jan 2006 01:31:41 +0000 Subject: [PATCH] Cleanup. Some of the modifications suggested by G.Bussi implemented. C.S. git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2683 c92efa57-630b-4861-b058-cf58834340f0 --- CPV/cp_restart.f90 | 38 ++++++++-------- Modules/xml_io_base.f90 | 96 +++++++++++++++++------------------------ PW/pw_restart.f90 | 51 +++++++++++----------- 3 files changed, 84 insertions(+), 101 deletions(-) diff --git a/CPV/cp_restart.f90 b/CPV/cp_restart.f90 index 3507ed90a..f7bf23358 100644 --- a/CPV/cp_restart.f90 +++ b/CPV/cp_restart.f90 @@ -109,7 +109,7 @@ MODULE cp_restart REAL(DP), OPTIONAL, INTENT(IN) :: mat_z(:,:,:) ! ! CHARACTER(LEN=20) :: dft_name - CHARACTER(LEN=256) :: dirname, filename, rho_file + CHARACTER(LEN=256) :: dirname, filename, rho_file_base CHARACTER(LEN=4) :: cspin INTEGER :: kunit, ib, ik_eff INTEGER :: k1, k2, k3 @@ -264,12 +264,12 @@ MODULE cp_restart CALL iotk_write_attr( attr, "ITERATION", nfi, FIRST = .TRUE. ) CALL iotk_write_empty(iunpun, "STEP", attr ) ! - CALL iotk_write_attr( attr, "UNIT", "pico-seconds", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "pico-seconds", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "TIME", simtime, ATTR = attr ) ! CALL iotk_write_dat( iunpun, "TITLE", TRIM( title ) ) ! - CALL iotk_write_attr( attr, "UNIT", "Hartree", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Hartree", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "KINETIC_ENERGY", ekin, ATTR = attr ) CALL iotk_write_dat( iunpun, "HARTREE_ENERGY", eht, ATTR = attr ) CALL iotk_write_dat( iunpun, "EWALD_TERM", esr, ATTR = attr ) @@ -351,17 +351,17 @@ MODULE cp_restart ! END IF ! - rho_file = 'charge-density.dat' + rho_file_base = 'charge-density' ! IF ( ionode )& - CALL iotk_link( iunpun, "RHO_FILE", rho_file, & + CALL iotk_link( iunpun, "RHO", rho_file_base, & CREATE = .FALSE., BINARY = .FALSE. ) ! - rho_file = TRIM( dirname ) // '/' // TRIM( rho_file ) + rho_file_base = TRIM( dirname ) // '/' // TRIM( rho_file_base ) ! IF ( nspin == 1 ) THEN ! - CALL write_rho_xml( rho_file, rho(:,1), nr1, & + CALL write_rho_xml( rho_file_base, rho(:,1), nr1, & nr2, nr3, nr1x, nr2x, dfftp%ipp, dfftp%npp ) ! ELSE IF ( nspin == 2 ) THEN @@ -370,31 +370,31 @@ MODULE cp_restart ! rhosum = rho(:,1) + rho(:,2) ! - CALL write_rho_xml( rho_file, rhosum, nr1, & + CALL write_rho_xml( rho_file_base, rhosum, nr1, & nr2, nr3, nr1x, nr2x, dfftp%ipp, dfftp%npp ) ! DEALLOCATE( rhosum ) ! - rho_file = 'charge-density-up.dat' + rho_file_base = 'charge-density-up' ! IF ( ionode ) & - CALL iotk_link( iunpun, "RHO_FILE", rho_file, & + CALL iotk_link( iunpun, "RHO_UP", rho_file_base, & CREATE = .FALSE., BINARY = .FALSE. ) ! - rho_file = TRIM( dirname ) // '/' // TRIM( rho_file ) + rho_file_base = TRIM( dirname ) // '/' // TRIM( rho_file_base ) ! - CALL write_rho_xml( rho_file, rho(:,1), & + CALL write_rho_xml( rho_file_base, rho(:,1), & nr1, nr2, nr3, nr1x, nr2x, dfftp%ipp, dfftp%npp ) ! - rho_file = 'charge-density-dw.dat' + rho_file_base = 'charge-density-dw' ! IF ( ionode ) & - CALL iotk_link( iunpun, "RHO_FILE", rho_file, & + CALL iotk_link( iunpun, "RHO_DW", rho_file_base, & CREATE = .FALSE., BINARY = .FALSE. ) ! - rho_file = TRIM( dirname ) // '/' // TRIM( rho_file ) + rho_file_base = TRIM( dirname ) // '/' // TRIM( rho_file_base ) ! - CALL write_rho_xml( rho_file, rho(:,2), & + CALL write_rho_xml( rho_file_base, rho(:,2), & nr1, nr2, nr3, nr1x, nr2x, dfftp%ipp, dfftp%npp ) ! END IF @@ -523,7 +523,7 @@ MODULE cp_restart ! CALL iotk_write_begin( iunpun, "K-POINT" // TRIM( iotk_index(ik) ) ) ! - CALL iotk_write_attr( attr, "UNIT", "2 pi / a", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "2 pi / a", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, & "K-POINT_COORDS", xk(:,ik), ATTR = attr ) ! @@ -533,7 +533,7 @@ MODULE cp_restart ! cspin = iotk_index( ispin ) ! - CALL iotk_write_attr( attr, "UNIT", "Hartree", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Hartree", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "ET" // TRIM( cspin ), & et(:,ik,ispin), ATTR = attr ) ! @@ -1729,7 +1729,7 @@ MODULE cp_restart END DO ! CALL iotk_scan_empty( iunpun, "UNITS_FOR_ATOMIC_POSITIONS", attr ) - CALL iotk_scan_attr( attr, "UNIT", pos_unit ) + CALL iotk_scan_attr( attr, "UNITS", pos_unit ) ! DO i = 1, nat ! diff --git a/Modules/xml_io_base.f90 b/Modules/xml_io_base.f90 index 685035830..06e2d6e41 100644 --- a/Modules/xml_io_base.f90 +++ b/Modules/xml_io_base.f90 @@ -450,7 +450,7 @@ MODULE xml_io_base ! CALL iotk_write_dat( iunpun, "CELL_SYMMETRY", symm_type ) ! - CALL iotk_write_attr( attr, "UNIT", "Bohr", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Bohr", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "LATTICE_PARAMETER", alat, ATTR = attr ) ! CALL iotk_write_dat( iunpun, "CELL_DIMENSIONS", celldm(1:6) ) @@ -461,7 +461,7 @@ MODULE xml_io_base CALL iotk_write_dat( iunpun, "a3", a3(:) * alat, ATTR = attr ) CALL iotk_write_end( iunpun, "DIRECT_LATTICE_VECTORS" ) ! - CALL iotk_write_attr( attr, "UNIT", "2 pi / a", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "2 pi / a", FIRST = .TRUE. ) CALL iotk_write_begin( iunpun, "RECIPROCAL_LATTICE_VECTORS" ) CALL iotk_write_dat( iunpun, "b1", b1(:), ATTR = attr ) CALL iotk_write_dat( iunpun, "b2", b2(:), ATTR = attr ) @@ -522,7 +522,7 @@ MODULE xml_io_base CALL copy_file( TRIM( file_pseudo ), & TRIM( dirname ) // "/" // TRIM( psfile(i) ) ) ! - CALL iotk_write_attr( attr, "UNIT", "a.m.u.", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "a.m.u.", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, TRIM( atm(i) ) // "_MASS", & amass(i), ATTR = attr ) ! @@ -531,7 +531,7 @@ MODULE xml_io_base ! END DO ! - CALL iotk_write_attr( attr, "UNIT", "Bohr", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Bohr", FIRST = .TRUE. ) CALL iotk_write_empty( iunpun, "UNITS_FOR_ATOMIC_POSITIONS", attr ) ! DO i = 1, nat @@ -577,7 +577,7 @@ MODULE xml_io_base ! DO i = 1, nsym ! - CALL iotk_write_attr( attr, "UNIT", "Crystal", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Crystal", FIRST = .TRUE. ) ! tmp(1) = ftau(1,i) / DBLE( nr1 ) tmp(2) = ftau(2,i) / DBLE( nr2 ) @@ -614,7 +614,7 @@ MODULE xml_io_base ! CALL iotk_write_begin( iunpun, "PLANE_WAVES" ) ! - CALL iotk_write_attr( attr, "UNIT", "Hartree", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Hartree", FIRST = .TRUE. ) ! CALL iotk_write_dat( iunpun, "WFC_CUTOFF", ecutwfc / e2, ATTR = attr ) ! @@ -628,14 +628,14 @@ MODULE xml_io_base CALL iotk_write_attr( attr, "nr1", nr1, FIRST = .TRUE. ) CALL iotk_write_attr( attr, "nr2", nr2 ) CALL iotk_write_attr( attr, "nr3", nr3 ) - CALL iotk_write_empty( iunpun, "FFT_GRID", attr ) + CALL iotk_write_empty( iunpun, "FFT_GRID", ATTR = attr ) ! CALL iotk_write_dat( iunpun, "GVECT_NUMBER", ngm_g ) ! CALL iotk_write_attr( attr, "nr1s", nr1s, FIRST = .TRUE. ) CALL iotk_write_attr( attr, "nr2s", nr2s ) CALL iotk_write_attr( attr, "nr3s", nr3s ) - CALL iotk_write_empty( iunpun, "SMOOTH_FFT_GRID", attr ) + CALL iotk_write_empty( iunpun, "SMOOTH_FFT_GRID", ATTR = attr ) ! CALL iotk_write_dat( iunpun, "SMOOTH_GVECT_NUMBER", ngms_g ) ! @@ -646,16 +646,16 @@ MODULE xml_io_base CALL iotk_link( iunpun, "G-VECTORS_FILE", & "gvectors.dat", CREATE = .TRUE., BINARY = .TRUE. ) ! - CALL iotk_write_begin( iunpun, "G-VECTORS", attr = attr ) - CALL iotk_write_dat( iunpun, "g", itmp(1:3,1:ngm_g), FMT = "(3I5)" ) + CALL iotk_write_begin( iunpun, "G-VECTORS", ATTR = attr ) + CALL iotk_write_dat( iunpun, "g", itmp(1:3,1:ngm_g), COLUMNS = 3 ) CALL iotk_write_end( iunpun, "G-VECTORS" ) ! END IF ! - CALL iotk_write_attr( attr, "nr1b", nr1b , first = .TRUE. ) + CALL iotk_write_attr( attr, "nr1b", nr1b , FIRST = .TRUE. ) CALL iotk_write_attr( attr, "nr2b", nr2b ) CALL iotk_write_attr( attr, "nr3b", nr3b ) - CALL iotk_write_empty( iunpun, "SMALLBOX_FFT_GRID", attr ) + CALL iotk_write_empty( iunpun, "SMALLBOX_FFT_GRID", ATTR = attr ) ! CALL iotk_write_end( iunpun, "PLANE_WAVES" ) ! @@ -801,7 +801,7 @@ MODULE xml_io_base ! CALL iotk_write_dat( iunpun, "NUMBER_OF_K-POINTS", num_k_points ) ! - CALL iotk_write_attr( attr, "UNIT", "2 pi / a", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "2 pi / a", FIRST = .TRUE. ) CALL iotk_write_empty( iunpun, "UNITS_FOR_K-POINTS", attr ) ! DO ik = 1, num_k_points @@ -831,7 +831,7 @@ MODULE xml_io_base ! CALL iotk_write_dat( iunpun, "NUMBER_OF_MODES", modenum ) ! - CALL iotk_write_attr( attr, "UNIT", "2 pi / a", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "2 pi / a", FIRST = .TRUE. ) CALL iotk_write_empty( iunpun, "UNITS_FOR_Q-POINT", attr ) ! CALL iotk_write_dat( iunpun, "Q-POINT", xqq(:) ) @@ -843,7 +843,7 @@ MODULE xml_io_base ! ... methods to write and read charge_density ! !------------------------------------------------------------------------ - SUBROUTINE write_rho_xml( rho_file, rho, & + SUBROUTINE write_rho_xml( rho_file_base, rho, & nr1, nr2, nr3, nr1x, nr2x, ipp, npp ) !------------------------------------------------------------------------ ! @@ -862,22 +862,22 @@ MODULE xml_io_base ! INTEGER, INTENT(IN) :: nr1, nr2, nr3 INTEGER, INTENT(IN) :: nr1x, nr2x - CHARACTER(LEN=*), INTENT(IN) :: rho_file - + CHARACTER(LEN=*), INTENT(IN) :: rho_file_base REAL(DP), INTENT(IN) :: rho(:) INTEGER, OPTIONAL, INTENT(IN) :: ipp(:) INTEGER, OPTIONAL, INTENT(IN) :: npp(:) ! - INTEGER :: ierr, i, j, k, kk, ldr, ip - INTEGER :: ierr_iotk - CHARACTER(LEN=iotk_attlenx) :: attr - REAL(DP), ALLOCATABLE :: rho_plane(:) - INTEGER, ALLOCATABLE :: kowner(:) + INTEGER :: ierr, i, j, k, kk, ldr, ip + CHARACTER(LEN=256) :: rho_file + REAL(DP), ALLOCATABLE :: rho_plane(:) + INTEGER, ALLOCATABLE :: kowner(:) ! ! + rho_file = TRIM( rho_file_base ) // '.xml' + ! IF ( ionode ) & CALL iotk_open_write( rhounit, & - FILE = rho_file, BINARY = .FALSE., ierr = ierr ) + FILE = rho_file, BINARY = .FALSE., IERR = ierr ) ! CALL mp_bcast( ierr, ionode_id ) ! @@ -961,8 +961,8 @@ MODULE xml_io_base END SUBROUTINE write_rho_xml ! !------------------------------------------------------------------------ - SUBROUTINE read_rho_xml( rho_file, rho, & - nr1, nr2, nr3, nr1x, nr2x, ipp, npp ) + SUBROUTINE read_rho_xml( rho_file_base, rho, & + nr1, nr2, nr3, nr1x, nr2x, ipp, npp ) !------------------------------------------------------------------------ ! ! ... Writes charge density rho, one plane at a time. @@ -980,27 +980,27 @@ MODULE xml_io_base ! INTEGER, INTENT(IN) :: nr1, nr2, nr3 INTEGER, INTENT(IN) :: nr1x, nr2x - CHARACTER(LEN=*), INTENT(IN) :: rho_file - + CHARACTER(LEN=*), INTENT(IN) :: rho_file_base REAL(DP), INTENT(OUT) :: rho(:) INTEGER, OPTIONAL, INTENT(IN) :: ipp(:) INTEGER, OPTIONAL, INTENT(IN) :: npp(:) ! - INTEGER :: ierr, i, j, k, kk, ldr, ip - INTEGER :: nr( 3 ) - INTEGER :: ierr_iotk - CHARACTER(LEN=iotk_attlenx) :: attr - REAL(DP), ALLOCATABLE :: rho_plane(:) - INTEGER, ALLOCATABLE :: kowner(:) + INTEGER :: ierr, i, j, k, kk, ldr, ip + INTEGER :: nr( 3 ) + CHARACTER(LEN=256) :: rho_file + REAL(DP), ALLOCATABLE :: rho_plane(:) + INTEGER, ALLOCATABLE :: kowner(:) ! ! + rho_file = TRIM( rho_file_base ) // '.xml' + ! IF ( ionode ) & CALL iotk_open_read( rhounit, FILE = TRIM( rho_file ), & - BINARY = .FALSE., ierr = ierr ) + BINARY = .FALSE., IERR = ierr ) ! CALL mp_bcast( ierr, ionode_id ) ! - CALL errore( ' read_rho_xml ', & + CALL errore( 'read_rho_xml', & 'cannot open rho_file file for writing', ierr ) ! IF ( ionode ) THEN @@ -1017,9 +1017,8 @@ MODULE xml_io_base ! CALL mp_bcast( nr, ionode_id ) ! - IF( nr1 /= nr( 1 ) .OR. nr2 /= nr( 2 ) .OR. nr3 /= nr( 3 ) ) THEN + IF ( nr1 /= nr( 1 ) .OR. nr2 /= nr( 2 ) .OR. nr3 /= nr( 3 ) ) & CALL errore( ' read_rho_xml ', ' dimensions do not match ', 1 ) - END IF ! ALLOCATE( rho_plane( nr1 * nr2 ) ) ALLOCATE( kowner( nr3 ) ) @@ -1129,8 +1128,6 @@ MODULE xml_io_base ! CALL iotk_open_write( iuni, FILE = TRIM( filename ), BINARY = .TRUE. ) ! - CALL iotk_write_begin( iuni, "K-POINT" // iotk_index( ik ) ) - ! CALL iotk_write_attr( attr, "ngw", ngw, FIRST = .TRUE. ) CALL iotk_write_attr( attr, "nbnd", nbnd ) CALL iotk_write_attr( attr, "ik", ik ) @@ -1162,8 +1159,7 @@ MODULE xml_io_base ! ELSE ! - CALL mergewf( wf0(:,j), wtmp, ngwl, igl, & - mpime, nproc, ionode_id ) + CALL mergewf( wf0(:,j), wtmp, ngwl, igl, mpime, nproc, ionode_id ) ! END IF ! @@ -1172,13 +1168,7 @@ MODULE xml_io_base ! END DO ! - IF ( ionode ) THEN - ! - CALL iotk_write_end( iuni, "K-POINT" // iotk_index( ik ) ) - ! - CALL iotk_close_write( iuni ) - ! - END IF + IF ( ionode ) CALL iotk_close_write( iuni ) ! DEALLOCATE( wtmp ) ! @@ -1229,8 +1219,6 @@ MODULE xml_io_base 'cannot open restart file for reading', ierr ) ! IF ( ionode ) THEN - ! - CALL iotk_scan_begin( iuni, "K-POINT" // iotk_index( ik ) ) ! CALL iotk_scan_empty( iuni, "INFO", attr ) ! @@ -1290,13 +1278,7 @@ MODULE xml_io_base ! END DO ! - IF ( ionode ) THEN - ! - CALL iotk_scan_end( iuni, "K-POINT" // iotk_index( ik ) ) - ! - CALL iotk_close_read( iuni ) - ! - END IF + IF ( ionode ) CALL iotk_close_read( iuni ) ! DEALLOCATE( wtmp ) ! diff --git a/PW/pw_restart.f90 b/PW/pw_restart.f90 index dd7f2eb43..ec2f79422 100644 --- a/PW/pw_restart.f90 +++ b/PW/pw_restart.f90 @@ -94,7 +94,7 @@ MODULE pw_restart CHARACTER(LEN=*), INTENT(IN) :: what ! CHARACTER(LEN=20) :: dft_name - CHARACTER(LEN=256) :: dirname, filename, file_pseudo, rho_file + CHARACTER(LEN=256) :: dirname, filename, file_pseudo, rho_file_base CHARACTER(LEN=80) :: bravais_lattice INTEGER :: i, ig, ik, ngg,ig_, ierr, ipol, & flen, ik_eff, num_k_points @@ -353,17 +353,17 @@ MODULE pw_restart ! END IF ! - rho_file = 'charge-density.dat' + rho_file_base = 'charge-density' ! IF ( ionode ) & - CALL iotk_link( iunpun, "RHO_FILE", rho_file, & + CALL iotk_link( iunpun, "RHO", rho_file_base, & CREATE = .FALSE., BINARY = .FALSE. ) ! - rho_file = TRIM( dirname ) // '/' // TRIM( rho_file ) + rho_file_base = TRIM( dirname ) // '/' // TRIM( rho_file_base ) ! IF ( nspin == 1 ) THEN ! - CALL write_rho_xml( rho_file, rho(:,1), nr1, & + CALL write_rho_xml( rho_file_base, rho(:,1), nr1, & nr2, nr3, nrx1, nrx2, dfftp%ipp, dfftp%npp ) ! ELSE IF ( nspin == 2 ) THEN @@ -372,31 +372,31 @@ MODULE pw_restart ! rhosum = rho(:,1) + rho(:,2) ! - CALL write_rho_xml( rho_file, rhosum, nr1, & + CALL write_rho_xml( rho_file_base, rhosum, nr1, & nr2, nr3, nrx1, nrx2, dfftp%ipp, dfftp%npp ) ! DEALLOCATE( rhosum ) ! - rho_file = 'charge-density-up.dat' + rho_file_base = 'charge-density-up' ! IF ( ionode ) & - CALL iotk_link( iunpun, "RHO_FILE", rho_file, & + CALL iotk_link( iunpun, "RHO_UP", rho_file_base, & CREATE = .FALSE., BINARY = .FALSE. ) ! - rho_file = TRIM( dirname ) // '/' // TRIM( rho_file ) + rho_file_base = TRIM( dirname ) // '/' // TRIM( rho_file_base ) ! - CALL write_rho_xml( rho_file, rho(:,1), & + CALL write_rho_xml( rho_file_base, rho(:,1), & nr1, nr2, nr3, nrx1, nrx2, dfftp%ipp, dfftp%npp ) ! - rho_file = 'charge-density-dw.dat' + rho_file_base = 'charge-density-dw' ! IF ( ionode ) & - CALL iotk_link( iunpun, "RHO_FILE", rho_file, & + CALL iotk_link( iunpun, "RHO_DW", rho_file_base, & CREATE = .FALSE., BINARY = .FALSE. ) ! - rho_file = TRIM( dirname ) // '/' // TRIM( rho_file ) + rho_file_base = TRIM( dirname ) // '/' // TRIM( rho_file_base ) ! - CALL write_rho_xml( rho_file, rho(:,2), & + CALL write_rho_xml( rho_file_base, rho(:,2), & nr1, nr2, nr3, nrx1, nrx2, dfftp%ipp, dfftp%npp ) ! END IF @@ -417,7 +417,7 @@ MODULE pw_restart ! CALL iotk_write_dat( iunpun, "NUMBER_OF_BANDS", nbnd ) ! - CALL iotk_write_attr( attr, "UNIT", "Hartree", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Hartree", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "FERMI_ENERGY", ef / e2, ATTR = attr ) ! CALL iotk_write_dat( iunpun, "NUMBER_OF_SPIN_COMPONENTS", nspin ) @@ -433,7 +433,7 @@ MODULE pw_restart CALL iotk_write_begin( iunpun, & "K-POINT" // TRIM( iotk_index( ik ) ) ) ! - CALL iotk_write_attr( attr, "UNIT", "2 pi / a", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "2 pi / a", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, & "K-POINT_COORDS", xk(:,ik), ATTR = attr ) ! @@ -441,7 +441,7 @@ MODULE pw_restart ! IF ( nspin == 2 ) THEN ! - CALL iotk_write_attr( attr, "UNIT", "Hartree", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Hartree", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "ET.1", & et(:,ik) / e2, ATTR = attr ) ! @@ -457,7 +457,7 @@ MODULE pw_restart ! ik_eff = ik + num_k_points ! - CALL iotk_write_attr( attr, "UNIT", "Hartree", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Hartree", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "ET.2", & et(:,ik_eff) / e2, ATTR = attr ) ! @@ -474,7 +474,7 @@ MODULE pw_restart ! ELSE ! - CALL iotk_write_attr( attr, "UNIT", "Hartree", FIRST = .TRUE. ) + CALL iotk_write_attr( attr, "UNITS", "Hartree", FIRST = .TRUE. ) CALL iotk_write_dat( iunpun, "ET.1", & et(:,ik) / e2, ATTR = attr ) ! @@ -496,7 +496,7 @@ MODULE pw_restart ! filename = TRIM( wfc_filename( ".", 'gkvectors', ik ) ) ! - CALL iotk_link( iunpun, "gkvectors", & + CALL iotk_link( iunpun, "GK-VECTORS", & filename, CREATE = .FALSE., BINARY = .TRUE. ) ! filename = TRIM( wfc_filename( dirname, 'gkvectors', ik ) ) @@ -525,7 +525,7 @@ MODULE pw_restart ! filename = TRIM( wfc_filename( ".", 'evc', ik, ispin ) ) ! - CALL iotk_link( iunpun, "wfc", filename, & + CALL iotk_link( iunpun, "WFC", filename, & CREATE = .FALSE., BINARY = .TRUE. ) ! filename = TRIM( wfc_filename( dirname, 'evc', ik, ispin ) ) @@ -550,7 +550,7 @@ MODULE pw_restart ! filename = TRIM( wfc_filename( ".", 'evc', ik, ispin ) ) ! - CALL iotk_link( iunpun, "wfc", filename, & + CALL iotk_link( iunpun, "WFC", filename, & CREATE = .FALSE., BINARY = .TRUE. ) ! filename = TRIM( wfc_filename( dirname, 'evc', ik, ispin ) ) @@ -581,7 +581,7 @@ MODULE pw_restart ! filename = TRIM( wfc_filename( ".", 'evc', ik ) ) ! - CALL iotk_link( iunpun, "wfc", filename, & + CALL iotk_link( iunpun, "WFC", filename, & CREATE = .FALSE., BINARY = .TRUE. ) ! filename = TRIM( wfc_filename( dirname, 'evc', ik ) ) @@ -681,7 +681,8 @@ MODULE pw_restart ! if ( itmp1(ig) == ig ) THEN ! - ngg = ngg + 1 + ngg = ngg + 1 + ! igwk(ngg,ik) = ig ! END IF @@ -699,7 +700,7 @@ MODULE pw_restart ! CALL iotk_write_dat( iun, "INDEX", igwk(1:ngk_g(ik),ik) ) CALL iotk_write_dat( iun, "GRID", itmp(1:3,igwk(1:ngk_g(ik),ik)), & - FMT = "(3I5)" ) + COLUMNS = 3 ) ! CALL iotk_write_end( iun, "K-POINT" // iotk_index( ik ) ) !