@@ -6780,15 +6780,29 @@ subroutine atm_bdy_reset_speczone_values( state, diag, mesh, nVertLevels, &
6780
6780
call mpas_pool_get_array(state, ' theta_m' , theta_m, 2 )
6781
6781
call mpas_pool_get_array(diag, ' rtheta_p' , rtheta_p)
6782
6782
call mpas_pool_get_array(diag, ' rtheta_base' , rtheta_base)
6783
+
6784
+ MPAS_ACC_TIMER_START(' atm_bdy_reset_speczone_values [ACC_data_xfer]' )
6785
+ !$acc enter data copyin(rt_driving_values, rho_driving_values, rtheta_base, &
6786
+ !$acc theta_m, rtheta_p)
6787
+ MPAS_ACC_TIMER_STOP(' atm_bdy_reset_speczone_values [ACC_data_xfer]' )
6783
6788
6789
+ !$acc parallel default(present)
6790
+ !$acc loop gang worker
6784
6791
do iCell = cellSolveStart, cellSolveEnd
6785
6792
if ( bdyMaskCell(iCell) > nRelaxZone) then
6793
+ !$acc loop vector
6786
6794
do k= 1 , nVertLevels
6787
6795
theta_m(k,iCell) = rt_driving_values(k,iCell)/ rho_driving_values(k,iCell)
6788
6796
rtheta_p(k,iCell) = rt_driving_values(k,iCell) - rtheta_base(k,iCell)
6789
6797
end do
6790
6798
end if
6791
6799
end do
6800
+ !$acc end parallel
6801
+
6802
+ MPAS_ACC_TIMER_START(' atm_bdy_reset_speczone_values [ACC_data_xfer]' )
6803
+ !$acc exit data copyout(theta_m, rtheta_p) &
6804
+ !$acc delete(rt_driving_values, rho_driving_values, rtheta_base)
6805
+ MPAS_ACC_TIMER_STOP(' atm_bdy_reset_speczone_values [ACC_data_xfer]' )
6792
6806
6793
6807
end subroutine atm_bdy_reset_speczone_values
6794
6808
0 commit comments