Skip to content

Commit

Permalink
Playing around with OMP final part
Browse files Browse the repository at this point in the history
  • Loading branch information
JanStreffing committed Aug 19, 2024
1 parent 581e1b0 commit c1d078e
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/oce_adv_tra_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -350,8 +350,9 @@ subroutine do_oce_adv_tra(dt, vel, w, wi, we, tr_num, dynamics, tracers, partit,
if ((ldiag_DVD) .and. (tr_num<=2)) then
!_______________________________________________________________________
if (trim(tracers%data(tr_num)%tra_adv_lim)=='FCT') then
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(n, nz)
!$OMP PARALLEL DEFAULT(SHARED) PRIVATE(n, nz)
!$ACC PARALLEL LOOP GANG VECTOR DEFAULT(PRESENT) DEFAULT(PRESENT) VECTOR_LENGTH(acc_vl)
!$OMP DO
do n=1, myDim_edge2D
!$ACC LOOP VECTOR
do nz=1, mesh%nl-1
Expand All @@ -361,9 +362,11 @@ subroutine do_oce_adv_tra(dt, vel, w, wi, we, tr_num, dynamics, tracers, partit,
end do
!$ACC END LOOP
end do
!$OMP END DO
!$ACC END PARALLEL LOOP

!$ACC PARALLEL LOOP GANG VECTOR DEFAULT(PRESENT) DEFAULT(PRESENT) VECTOR_LENGTH(acc_vl)
!$OMP DO
do n=1, myDim_nod2D
!$ACC LOOP VECTOR
do nz=1, mesh%nl
Expand All @@ -373,34 +376,39 @@ subroutine do_oce_adv_tra(dt, vel, w, wi, we, tr_num, dynamics, tracers, partit,
end do
!$ACC END LOOP
end do
!$OMP END DO
!$ACC END PARALLEL LOOP

!$OMP END PARALLEL DO
!$OMP END PARALLEL

!_______________________________________________________________________
else
!$OMP PARALLEL DO DEFAULT(SHARED) PRIVATE(n, nz)
!$OMP PARALLEL DEFAULT(SHARED) PRIVATE(n, nz)
!$ACC PARALLEL LOOP GANG VECTOR DEFAULT(PRESENT) DEFAULT(PRESENT) VECTOR_LENGTH(acc_vl)
!$OMP DO
do n=1, myDim_edge2D
!$ACC LOOP VECTOR
do nz=1, mesh%nl-1
tracers%work%dvd_trflx_hor(nz, n, tr_num) = adv_flux_hor(nz, n)
end do
!$ACC END LOOP
end do
!$OMP END DO
!$ACC END PARALLEL LOOP

!$ACC PARALLEL LOOP GANG VECTOR DEFAULT(PRESENT) DEFAULT(PRESENT) VECTOR_LENGTH(acc_vl)
!$OMP DO
do n=1, myDim_nod2D
!$ACC LOOP VECTOR
do nz=1, mesh%nl
tracers%work%dvd_trflx_ver(nz, n, tr_num) = adv_flux_ver(nz, n)
end do
!$ACC END LOOP
end do
!$OMP END DO
!$ACC END PARALLEL LOOP

!$OMP END PARALLEL DO
!$OMP END PARALLEL
end if
end if !-->if ((ldiag_DVD) .and. (tr_num<=2)) then

Expand Down

0 comments on commit c1d078e

Please sign in to comment.