diff --git a/PW/src/v_of_rho.f90 b/PW/src/v_of_rho.f90 index acbc53e6b..010727a63 100644 --- a/PW/src/v_of_rho.f90 +++ b/PW/src/v_of_rho.f90 @@ -470,6 +470,10 @@ SUBROUTINE v_xc( rho, rho_core, rhog_core, etxc, vtxc, v ) REAL(DP), PARAMETER :: vanishing_charge = 1.D-10, & vanishing_mag = 1.D-20 ! + + logical :: homer + + CALL start_clock( 'v_xc' ) ! etxc = 0.D0 ; rhoneg1 = 0.D0 @@ -482,9 +486,6 @@ SUBROUTINE v_xc( rho, rho_core, rhog_core, etxc, vtxc, v ) ALLOCATE( ec(dfftp%nnr), vc(dfftp%nnr,nspin) ) !$acc data create( ex, ec, vx, vc ) ! - !$acc host_data use_device( rho%of_r, rho%of_g, rho_core, rhog_core, v,& - !$acc& ex, ec, vx, vc ) - ! !$acc parallel loop DO ir = 1, dfftp%nnr rho%of_r(ir,1) = rho%of_r(ir,1) + rho_core(ir) @@ -565,7 +566,6 @@ SUBROUTINE v_xc( rho, rho_core, rhog_core, etxc, vtxc, v ) ! ENDIF ! - !$acc end host_data !$acc end data DEALLOCATE( ex, vx ) DEALLOCATE( ec, vc ) diff --git a/XClib/xc_wrapper_lda_lsda.f90 b/XClib/xc_wrapper_lda_lsda.f90 index 95932dd69..17ab10515 100644 --- a/XClib/xc_wrapper_lda_lsda.f90 +++ b/XClib/xc_wrapper_lda_lsda.f90 @@ -40,9 +40,10 @@ SUBROUTINE xc( length, srd, svd, rho_in, ex_out, ec_out, vx_out, vc_out, gpu_arg ! IF ( gpu_args ) THEN ! - !$acc data deviceptr( rho_in(length,srd), ex_out(length), ec_out(length), & - !$acc& vx_out(length,svd), vc_out(length,svd) ) + !$acc data present( rho_in, ex_out, ec_out, vx_out, vc_out ) + !$acc host_data use_device( rho_in, ex_out, ec_out, vx_out, vc_out ) CALL xc_( length, srd, svd, rho_in, ex_out, ec_out, vx_out, vc_out ) + !$acc end host_data !$acc end data ! ELSE