diff --git a/EPW/src/allocate_epwq.f90 b/EPW/src/allocate_epwq.f90 deleted file mode 100644 index b0ef60da7..000000000 --- a/EPW/src/allocate_epwq.f90 +++ /dev/null @@ -1,63 +0,0 @@ - ! - ! Copyright (C) 2010-2016 Samuel Ponce', Roxana Margine, Carla Verdi, Feliciano Giustino - ! Copyright (C) 2007-2009 Jesse Noffsinger, Brad Malone, Feliciano Giustino - ! - ! This file is distributed under the terms of the GNU General Public - ! License. See the file `LICENSE' in the root directory of the - ! present distribution, or http://www.gnu.org/copyleft.gpl.txt . - ! - ! Code adapted from PH/allocate_phq - Quantum-ESPRESSO group - ! 09/2009 There is a lot of excess in this file. - ! - !----------------------------------------------------------------------- - SUBROUTINE allocate_epwq - !----------------------------------------------------------------------- - !! - !! Dynamical allocation of arrays: quantities needed for the linear - !! response problem - !! - !! RM - Nov/Dec - 2014 - Imported the noncolinear case implemented by xlzhang - !! SP - 2016 - Updated for QE 5 - !! RM - Jan 2019 - Updated based on QE 6.3 - !! - USE ions_base, ONLY : nat, ntyp => nsp - USE pwcom, ONLY : nbnd, nspin - USE gvect, ONLY : ngm - USE noncollin_module, ONLY : noncolin, nspin_mag - USE spin_orb, ONLY : lspinorb - USE phus, ONLY : int1, int1_nc, int2, int2_so, & - int4, int4_nc, int5, int5_so, & - alphap - USE lrus, ONLY : becp1 - USE elph2, ONLY : elph, el_ph_mat - USE becmod, ONLY : becp, allocate_bec_type - USE uspp_param, ONLY : nhm - USE uspp, ONLY : okvan, nkb - USE klist, ONLY : nks - USE fft_base, ONLY : dfftp - USE epwcom, ONLY : nstemp - ! - IMPLICIT NONE - ! - INTEGER :: ik - !! k-point - INTEGER :: ipol - !! Polarization index - ! - ! ALLOCATE space for the quantities needed in EPW - ! - ! SP: nrxx is not used in QE 5 ==> tg_nnr is the maximum among nnr - ! This should have the same dim as nrxx had. - ! ALLOCATE (dmuxc ( nrxx, nspin, nspin)) - ! SP: Again a new change in QE (03/08/2016) - ! ALLOCATE (dmuxc ( dffts%tg_nnr, nspin, nspin)) - ! SP: Following new FFT restructuration from Aug. 2017 (SdG) - ! nnr = local number of FFT grid elements ( ~nr1*nr2*nr3/nproc ) - ! nnr_tg = local number of grid elements for task group FFT ( ~nr1*nr2*nr3/proc3 ) - ! --> tg = task group - ! ALLOCATE (dmuxc ( dffts%nnr, nspin, nspin)) - ! - ! - RETURN - ! - END SUBROUTINE allocate_epwq diff --git a/EPW/src/io_scattering.f90 b/EPW/src/io_scattering.f90 index a8d4ebbc5..4b6e9902e 100644 --- a/EPW/src/io_scattering.f90 +++ b/EPW/src/io_scattering.f90 @@ -1,4 +1,4 @@ - !iufilibtev_sup + ! ! Copyright (C) 2010-2016 Samuel Ponce', Roxana Margine, Carla Verdi, Feliciano Giustino ! ! This file is distributed under the terms of the GNU General Public diff --git a/EPW/src/print_ibte.f90 b/EPW/src/print_ibte.f90 index a86859b6d..36ea28667 100644 --- a/EPW/src/print_ibte.f90 +++ b/EPW/src/print_ibte.f90 @@ -472,51 +472,47 @@ ! WRITE(stdout,'(a,i9,E22.8)') ' Total number of element written ',ind_tot ! ! Size of what we write - lsize = INT( ind(my_pool_id+1), kind = MPI_OFFSET_KIND ) + lsize = INT(ind(my_pool_id + 1), kind = MPI_OFFSET_KIND) ! Offset where we need to start writing (we increment for each q-points) lrepmatw = lrepmatw2 + & - INT( SUM( ind(1:my_pool_id+1)) - ind(my_pool_id+1), kind = MPI_OFFSET_KIND ) * 8_MPI_OFFSET_KIND + INT(SUM(ind(1:my_pool_id + 1)) - ind(my_pool_id + 1), kind = MPI_OFFSET_KIND) * 8_MPI_OFFSET_KIND lrepmatw3 = lrepmatw4 + & - INT( SUM( ind(1:my_pool_id+1)) - ind(my_pool_id+1), kind = MPI_OFFSET_KIND ) * 4_MPI_OFFSET_KIND + INT(SUM(ind(1:my_pool_id + 1)) - ind(my_pool_id + 1), kind = MPI_OFFSET_KIND) * 4_MPI_OFFSET_KIND ! - CALL MPI_FILE_SEEK(iunepmat, lrepmatw,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunepmat, trans_prob, lsize, MPI_DOUBLE_PRECISION,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + !CALL MPI_FILE_SEEK(iunepmat, lrepmatw,MPI_SEEK_SET,ierr) + !IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) + !CALL MPI_FILE_WRITE(iunepmat, trans_prob, lsize, MPI_DOUBLE_PRECISION,MPI_STATUS_IGNORE,ierr) + !IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + CALL MPI_FILE_WRITE_AT_ALL(iunepmat, lrepmatw, trans_prob, lsize, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) ! - CALL MPI_FILE_SEEK (iunsparseq, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparseq, sparse_q, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + !CALL MPI_FILE_SEEK (iunsparseq, lrepmatw3,MPI_SEEK_SET,ierr) + !IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) + !CALL MPI_FILE_WRITE(iunsparseq, sparse_q, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) + !IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + CALL MPI_FILE_WRITE_AT_ALL(iunsparseq, lrepmatw3, sparse_q, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) ! - CALL MPI_FILE_SEEK (iunsparsek, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparsek, sparse_k, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + CALL MPI_FILE_WRITE_AT_ALL(iunsparsek, lrepmatw3, sparse_k, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) ! - CALL MPI_FILE_SEEK (iunsparsei, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparsei, sparse_i, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + CALL MPI_FILE_WRITE_AT_ALL(iunsparsei, lrepmatw3, sparse_i, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) ! - CALL MPI_FILE_SEEK (iunsparsej, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparsej, sparse_j, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + CALL MPI_FILE_WRITE_AT_ALL(iunsparsej, lrepmatw3, sparse_j, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) ! - CALL MPI_FILE_SEEK (iunsparset, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparset, sparse_t, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + CALL MPI_FILE_WRITE_AT_ALL(iunsparset, lrepmatw3, sparse_t, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) ! ! Offset for the next q iteration - lrepmatw2 = lrepmatw2 + INT( SUM( ind(:) ), kind = MPI_OFFSET_KIND ) * 8_MPI_OFFSET_KIND - lrepmatw4 = lrepmatw4 + INT( SUM( ind(:) ), kind = MPI_OFFSET_KIND ) * 4_MPI_OFFSET_KIND + lrepmatw2 = lrepmatw2 + INT(SUM(ind(:)), kind = MPI_OFFSET_KIND ) * 8_MPI_OFFSET_KIND + lrepmatw4 = lrepmatw4 + INT(SUM(ind(:)), kind = MPI_OFFSET_KIND ) * 4_MPI_OFFSET_KIND ! ! now write in the support file - CALL mp_sum(xkf_all, world_comm) - CALL mp_sum(wkf_all, world_comm) + CALL MP_SUM(xkf_all, world_comm) + CALL MP_SUM(wkf_all, world_comm) ! ENDIF IF ( sum(indcb) > 0 ) THEN @@ -527,47 +523,35 @@ ! WRITE(stdout,'(a,i9,E22.8)') ' Total number of element written in electron ',ind_totcb ! ! Size of what we write - lsize = INT( indcb(my_pool_id+1), kind = MPI_OFFSET_KIND ) + lsize = INT(indcb(my_pool_id + 1), kind = MPI_OFFSET_KIND) ! Offset where we need to start writing (we increment for each q-points) lrepmatw = lrepmatw5 + & - INT( SUM( indcb(1:my_pool_id+1)) - indcb(my_pool_id+1), kind = MPI_OFFSET_KIND ) * 8_MPI_OFFSET_KIND + INT(SUM(indcb(1:my_pool_id + 1)) - indcb(my_pool_id + 1), kind = MPI_OFFSET_KIND) * 8_MPI_OFFSET_KIND lrepmatw3 = lrepmatw6 + & - INT( SUM( indcb(1:my_pool_id+1)) - indcb(my_pool_id+1), kind = MPI_OFFSET_KIND ) * 4_MPI_OFFSET_KIND + INT(SUM(indcb(1:my_pool_id + 1)) - indcb(my_pool_id + 1), kind = MPI_OFFSET_KIND) * 4_MPI_OFFSET_KIND ! - CALL MPI_FILE_SEEK(iunepmatcb, lrepmatw,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunepmatcb, trans_probcb, lsize, MPI_DOUBLE_PRECISION,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) - ! - CALL MPI_FILE_SEEK (iunsparseqcb, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparseqcb, sparsecb_q, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) - ! - CALL MPI_FILE_SEEK (iunsparsekcb, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparsekcb, sparsecb_k, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) - ! - CALL MPI_FILE_SEEK (iunsparseicb, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparseicb, sparsecb_i, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) - ! - CALL MPI_FILE_SEEK (iunsparsejcb, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparsejcb, sparsecb_j, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) - ! - CALL MPI_FILE_SEEK (iunsparsetcb, lrepmatw3,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_WRITE(iunsparsetcb, sparsecb_t, lsize, MPI_INTEGER4,MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'print_ibte', 'error in MPI_FILE_WRITE',1 ) + CALL MPI_FILE_WRITE_AT_ALL(iunepmatcb, lrepmatw, trans_probcb, lsize, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) ! + CALL MPI_FILE_WRITE_AT_ALL(iunsparseqcb, lrepmatw3, sparsecb_q, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) + ! + CALL MPI_FILE_WRITE_AT_ALL(iunsparsekcb, lrepmatw3, sparsecb_k, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) + ! + CALL MPI_FILE_WRITE_AT_ALL(iunsparseicb, lrepmatw3, sparsecb_i, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) + ! + CALL MPI_FILE_WRITE_AT_ALL(iunsparsejcb, lrepmatw3, sparsecb_j, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) + ! + CALL MPI_FILE_WRITE_AT_ALL(iunsparsetcb, lrepmatw3, sparsecb_t, lsize, MPI_INTEGER4, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('print_ibte', 'error in MPI_FILE_WRITE_AT_ALL',1) + ! ! Offset for the next q iteration - lrepmatw5 = lrepmatw5 + INT( SUM( indcb(:) ), kind = MPI_OFFSET_KIND ) * 8_MPI_OFFSET_KIND - lrepmatw6 = lrepmatw6 + INT( SUM( indcb(:) ), kind = MPI_OFFSET_KIND ) * 4_MPI_OFFSET_KIND + lrepmatw5 = lrepmatw5 + INT(SUM(indcb(:)), kind = MPI_OFFSET_KIND) * 8_MPI_OFFSET_KIND + lrepmatw6 = lrepmatw6 + INT(SUM(indcb(:)), kind = MPI_OFFSET_KIND) * 4_MPI_OFFSET_KIND ! ENDIF ! indcb #endif @@ -605,9 +589,9 @@ etf_all(ibnd, ik+lower_bnd-1) = etf(ibndmin-1+ibnd, ikk) ENDDO ENDDO - CALL mp_sum ( vkk_all, world_comm ) - CALL mp_sum ( etf_all, world_comm ) - CALL mp_sum ( wkf_all, world_comm ) + CALL MP_SUM(vkk_all, world_comm) + CALL MP_SUM(etf_all, world_comm) + CALL MP_SUM(wkf_all, world_comm) ! IF ( my_pool_id == 0 ) THEN @@ -621,9 +605,9 @@ WRITE(iufilibtev_sup,'(i8,2E22.12)') itemp, ef0(itemp), efcb(itemp) ENDDO WRITE(iufilibtev_sup,'(a)') '# ik ibnd velocity (x,y,z) eig weight ' - DO ik = 1, nkqtotf/2 - DO ibnd = 1, ibndmax-ibndmin+1 - WRITE(iufilibtev_sup,'(i8,i6,5E22.12)') ik, ibnd, vkk_all(:,ibnd,ik), etf_all(ibnd, ik), wkf_all(ik) + DO ik=1, nkqtotf / 2 + DO ibnd=1, ibndmax - ibndmin + 1 + WRITE(iufilibtev_sup,'(i8,i6,5E22.12)') ik, ibnd, vkk_all(:, ibnd, ik), etf_all(ibnd, ik), wkf_all(ik) ENDDO ENDDO CLOSE(iufilibtev_sup) @@ -636,36 +620,36 @@ carrier_density = 0.0 ! IF ( ncarrier < 0.0 ) THEN ! VB - DO ik = 1, nkf - DO ibnd = 1, ibndmax-ibndmin+1 + DO ik=1, nkf + DO ibnd=1, ibndmax - ibndmin + 1 ! This selects only valence bands for hole conduction - IF (etf_all (ibnd, ik+lower_bnd-1 ) < ef0(itemp) ) THEN + IF (etf_all(ibnd, ik + lower_bnd - 1 ) < ef0(itemp)) THEN ! energy at k (relative to Ef) ekk = etf_all (ibnd, ik+lower_bnd-1 ) - ef0(itemp) fnk = wgauss( -ekk / etemp, -99) ! The wkf(ikk) already include a factor 2 - carrier_density = carrier_density + wkf_all(ik+lower_bnd-1 ) * (1.0d0 - fnk ) + carrier_density = carrier_density + wkf_all(ik + lower_bnd - 1) * (1.0d0 - fnk) ENDIF ENDDO ENDDO - CALL mp_sum( carrier_density, world_comm ) + CALL MP_SUM(carrier_density, world_comm) carrier_density = carrier_density * inv_cell * ( bohr2ang * ang2cm)**(-3) WRITE(stdout,'(5x, 1f8.3, 1f12.4, 1E19.6)') etemp *ryd2ev/kelvin2eV, & ef0(itemp)*ryd2ev, carrier_density ELSE ! CB - DO ik = 1, nkf - DO ibnd = 1, ibndmax-ibndmin+1 + DO ik=1, nkf + DO ibnd=1, ibndmax - ibndmin + 1 ! This selects only valence bands for hole conduction IF (etf_all (ibnd, ik+lower_bnd-1 ) > efcb(itemp) ) THEN ! energy at k (relative to Ef) - ekk = etf_all (ibnd, ik+lower_bnd-1 ) - efcb(itemp) + ekk = etf_all(ibnd, ik+lower_bnd-1) - efcb(itemp) fnk = wgauss( -ekk / etemp, -99) ! The wkf(ikk) already include a factor 2 - carrier_density = carrier_density + wkf_all(ik+lower_bnd-1 ) * fnk + carrier_density = carrier_density + wkf_all(ik + lower_bnd - 1) * fnk ENDIF ENDDO ENDDO - CALL mp_sum( carrier_density, world_comm ) + CALL MP_SUM(carrier_density, world_comm) carrier_density = carrier_density * inv_cell * ( bohr2ang * ang2cm)**(-3) WRITE(stdout,'(5x, 1f8.3, 1f12.4, 1E19.6)') etemp *ryd2ev/kelvin2eV, & efcb(itemp)*ryd2ev, carrier_density diff --git a/EPW/src/wan2bloch.f90 b/EPW/src/wan2bloch.f90 index 93c784e21..db31f98f9 100644 --- a/EPW/src/wan2bloch.f90 +++ b/EPW/src/wan2bloch.f90 @@ -1271,10 +1271,12 @@ ! or noncollective (=non blocking) if using MPI_FILE_SEEK & MPI_FILE_READ. ! Here we want non blocking because not all the process have the same nb of ir. ! - CALL MPI_FILE_SEEK(iunepmatwp2,lrepmatw,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_READ(iunepmatwp2, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_READ_ALL',1 ) + !CALL MPI_FILE_SEEK(iunepmatwp2,lrepmatw,MPI_SEEK_SET,ierr) + !IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_SEEK',1 ) + !CALL MPI_FILE_READ(iunepmatwp2, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE,ierr) + !IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_READ_ALL',1 ) + CALL MPI_FILE_READ_AT_ALL(iunepmatwp2, lrepmatw, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('ephwan2blochp', 'error in MPI_FILE_READ_AT_ALL',1) ! DO iw2=1, dims DO iw=1, dims @@ -1325,10 +1327,12 @@ ! or noncollective (=non blocking) if using MPI_FILE_SEEK & MPI_FILE_READ. ! Here we want non blocking because not all the process have the same nb of ir. ! - CALL MPI_FILE_SEEK(iunepmatwp2,lrepmatw,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_READ(iunepmatwp2, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_READ_ALL',1 ) + !CALL MPI_FILE_SEEK(iunepmatwp2,lrepmatw,MPI_SEEK_SET,ierr) + !IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_SEEK',1 ) + !CALL MPI_FILE_READ(iunepmatwp2, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE,ierr) + !IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_READ_ALL',1 ) + CALL MPI_FILE_READ_AT_ALL(iunepmatwp2, lrepmatw, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('ephwan2blochp', 'error in MPI_FILE_READ_AT_ALL',1) ! CALL ZAXPY(nbnd * nbnd * nrr_k, cfac(1,ir,1,1), epmatw(:,:,:,1), 1, & eptmp(:,:,:,imode), 1) @@ -1734,10 +1738,12 @@ ! or noncollective (=non blocking) if using MPI_FILE_SEEK & MPI_FILE_READ. ! Here we want non blocking because not all the process have the same nb of ir. ! - CALL MPI_FILE_SEEK(iunepmatwp2,lrepmatw,MPI_SEEK_SET,ierr) - IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_SEEK',1 ) - CALL MPI_FILE_READ(iunepmatwp2, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE,ierr) - IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_READ_ALL',1 ) + !CALL MPI_FILE_SEEK(iunepmatwp2,lrepmatw,MPI_SEEK_SET,ierr) + !IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_SEEK',1 ) + !CALL MPI_FILE_READ(iunepmatwp2, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE,ierr) + !IF( ierr /= 0 ) CALL errore( 'ephwan2blochp', 'error in MPI_FILE_READ_ALL',1 ) + CALL MPI_FILE_READ_AT_ALL(iunepmatwp2, lrepmatw, epmatw, lrepmatw2, MPI_DOUBLE_PRECISION, MPI_STATUS_IGNORE, ierr) + IF (ierr /= 0) CALL errore('ephwan2blochp_mem', 'error in MPI_FILE_READ_AT_ALL',1) #endif ! !write(stdout,*)'ir epmatw ',use_ws, ir, sum(epmatw)