diff --git a/TDDFPT/src/lr_Opsi_magnons.f90 b/TDDFPT/src/lr_Opsi_magnons.f90 index b7fefe144..dde0d8b53 100755 --- a/TDDFPT/src/lr_Opsi_magnons.f90 +++ b/TDDFPT/src/lr_Opsi_magnons.f90 @@ -122,7 +122,7 @@ SUBROUTINE lr_Opsi_magnons (ik, ip, dOpsi) ELSE ! ! FFT to R-space -!$acc data copyin(evc) copy(revc, dOpsi) +!$acc data copyin(evc(1:npwx*npol,ibnd)) copy(revc, dOpsi(1:npwx*npol,ibnd,1)) CALL cft_wave(ik, evc(1,ibnd), revc, +1) ! ! back-FFT to G-space @@ -174,7 +174,7 @@ SUBROUTINE lr_Opsi_magnons (ik, ip, dOpsi) ELSE ! ! FFT to R-space -!$acc data copyin(Tevc) copy(revc, dOpsi) +!$acc data copyin(Tevc(1:npwx*npol,ibnd)) copy(revc, dOpsi(1:npwx*npol,ibnd,2)) CALL cft_wave(ik, Tevc(1,ibnd), revc, +1) ! ! back-FFT to G-space diff --git a/TDDFPT/src/lr_apply_liouvillian_magnons.f90 b/TDDFPT/src/lr_apply_liouvillian_magnons.f90 index 47417e1c4..e9b77124f 100755 --- a/TDDFPT/src/lr_apply_liouvillian_magnons.f90 +++ b/TDDFPT/src/lr_apply_liouvillian_magnons.f90 @@ -152,7 +152,8 @@ SUBROUTINE lr_apply_liouvillian_magnons( evc1, evc1_new, L_dag ) ! The vkb's are needed for the non-local potential in h_psi, ! and for the ultrasoft term. ! - CALL init_us_2 (npwq, igk_k(1,ikq), xk(1,ikq), vkb) + CALL init_us_2 (npwq, igk_k(1,ikq), xk(1,ikq), vkb, .true.) + !$acc update host(vkb) ! ! Read unperturbed wavefuctions evc (wfct at k) ! and evq (wfct at k+q) @@ -258,7 +259,9 @@ SUBROUTINE lr_apply_liouvillian_magnons( evc1, evc1_new, L_dag ) ! Apply the operator ( H - \epsilon S + alpha_pv P_v) to evc1 ! where alpha_pv = 0 ! + !$acc data copyin(evq) copy(evc1(1:npwx*npol,1:nbnd,ik,1),sevc1_new(1:npwx*npol,1:nbnd,ik), et(:,ikk)) CALL ch_psi_all (npwq, evc1(:,:,ik,1), sevc1_new(:,:,ik,1), et(:,ikk), ik, nbnd_occ(ikk)) + !$acc end data ! IF (ALLOCATED(psic_nc)) DEALLOCATE(psic_nc) ! @@ -403,7 +406,9 @@ SUBROUTINE lr_apply_liouvillian_magnons( evc1, evc1_new, L_dag ) ! Apply the operator ( H - \epsilon S + alpha_pv P_v) to evc1 ! where alpha_pv = 0 ! + !$acc data copyin(evq) copy(evc1(1:npwx*npol,1:nbnd,ik,2),sevc1_new(1:npwx*npol,1:nbnd,ik,2), et(:,imk)) CALL ch_psi_all (npwq, evc1(:,:,ik,2), sevc1_new(:,:,ik,2), et(:,imk), ik, nbnd_occ(imk)) + !$acc end data ! ! Change the sign of b_xc back ! diff --git a/TDDFPT/src/lr_dvpsi_magnons.f90 b/TDDFPT/src/lr_dvpsi_magnons.f90 index 08c0b0210..59d9b4039 100755 --- a/TDDFPT/src/lr_dvpsi_magnons.f90 +++ b/TDDFPT/src/lr_dvpsi_magnons.f90 @@ -124,7 +124,7 @@ SUBROUTINE lr_dvpsi_magnons (ik, ip, dvpsi) ELSE ! ! FFT to R-space -!$acc data copyin(evc) copy(revc, dvpsi) +!$acc data copyin(evc(1:npwx*npol,ibnd)) copy(revc(1:dffts%nnr, 1:npol), dvpsi(1:npwx*npol,ibnd,1)) CALL cft_wave(ik, evc(1,ibnd), revc, +1) ! ! back-FFT to G-space @@ -182,7 +182,7 @@ SUBROUTINE lr_dvpsi_magnons (ik, ip, dvpsi) ELSE ! ! FFT to R-space -!$acc data copyin(Tevc) copy(revc, dvpsi) +!$acc data copyin(Tevc(1:npwx*npol,ibnd)) copy(revc, dvpsi(1:npwx*npol,ibnd,2)) CALL cft_wave(ik, Tevc(1,ibnd), revc, +1) ! ! back-FFT to G-space diff --git a/TDDFPT/src/lr_init_nfo.f90 b/TDDFPT/src/lr_init_nfo.f90 index 65fd5ef7d..bf760f157 100644 --- a/TDDFPT/src/lr_init_nfo.f90 +++ b/TDDFPT/src/lr_init_nfo.f90 @@ -170,7 +170,8 @@ SUBROUTINE lr_init_nfo() CALL get_buffer (evc, nwordwfc, iunwfc, ikk) ! ! Calculate beta-functions vkb at point k - CALL init_us_2(npw, igk_k(1,ikk), xk(1,ikk), vkb) + CALL init_us_2(npw, igk_k(1,ikk), xk(1,ikk), vkb, .true.) + !$acc update host(vkb) ! ! Calculate becp1= CALL calbec (npw, vkb, evc, becp1(ik)) diff --git a/TDDFPT/src/lr_magnons_main.f90 b/TDDFPT/src/lr_magnons_main.f90 index dfda526fc..ade39ac10 100755 --- a/TDDFPT/src/lr_magnons_main.f90 +++ b/TDDFPT/src/lr_magnons_main.f90 @@ -61,9 +61,6 @@ PROGRAM lr_magnons_main pol_index = 1 ! CALL mp_startup ( ) - CALL laxlib_start ( ndiag_, intra_bgrp_comm, do_distr_diag_inside_bgrp_ = .true. ) - CALL set_mpi_comm_4_solvers( intra_pool_comm, intra_bgrp_comm, & - inter_bgrp_comm ) ! CALL environment_start ( code3 ) ! diff --git a/TDDFPT/src/lr_read_wf.f90 b/TDDFPT/src/lr_read_wf.f90 index 1635b145a..d8a845149 100644 --- a/TDDFPT/src/lr_read_wf.f90 +++ b/TDDFPT/src/lr_read_wf.f90 @@ -214,7 +214,8 @@ SUBROUTINE normal_read() ! DO ik = 1, nks ! - CALL init_us_2(ngk(ik),igk_k(1,ik),xk(1,ik),vkb) + CALL init_us_2(ngk(ik),igk_k(1,ik),xk(1,ik),vkb,.true.) + !$acc update host(vkb) CALL calbec(ngk(ik),vkb,evc0(:,:,ik),becp1_c(:,:,ik)) becp%k = becp1_c(:,:,ik) CALL s_psi (npwx, ngk(ik), nbnd, evc0(:,:,ik), sevc0(:,:,ik))