Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions src/core_atmosphere/dynamics/mpas_atm_time_integration.F
Original file line number Diff line number Diff line change
Expand Up @@ -4156,20 +4156,19 @@ subroutine atm_divergence_damping_3d( state, diag, mesh, configs, dts, edgeStart
nCellsSolve = nCellsSolve_ptr
nVertLevels = nVertLevels_ptr


call mpas_timer_start('atm_divergence_damping_3d_4160')
!$acc parallel default(present)
!$acc loop gang worker
!$acc loop gang worker vector collapse(2)
do iEdge=edgeStart,edgeEnd ! MGD do we really just need edges touching owned cells?
!DIR$ IVDEP
do k=1,nVertLevels

cell1 = cellsOnEdge(1,iEdge)
cell2 = cellsOnEdge(2,iEdge)

! update edges for block-owned cells
if (cell1 <= nCellsSolve .or. cell2 <= nCellsSolve ) then

!DIR$ IVDEP
!$acc loop vector
do k=1,nVertLevels


!! unscaled 3d divergence damping
!! divCell1 = -(rtheta_pp(k,cell1)-rtheta_pp_old(k,cell1))*rdts
Expand All @@ -4183,11 +4182,12 @@ subroutine atm_divergence_damping_3d( state, diag, mesh, configs, dts, edgeStart
ru_p(k,iEdge) = ru_p(k,iEdge) + coef_divdamp*(divCell2-divCell1)*(1.0_RKIND - specZoneMaskEdge(iEdge)) &
/(theta_m(k,cell1)+theta_m(k,cell2))

end do
end if ! edges for block-owned cells

end if ! edges for block-owned cells
end do
end do ! end loop over edges
!$acc end parallel

call mpas_timer_stop('atm_divergence_damping_3d_4160')


end subroutine atm_divergence_damping_3d
Expand Down