# (REDUCED) Compile-time issue on openacc branch with NVHPC 23.11
## Compiler reports ("dependence prevents parallelization")
### Subroutine ice_dyn_adv_pra
- Line icedyn_adv_pra.f90:343 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/icedyn_adv_pra.f90):
```
343, Loop is parallelizable
Loop carried dependence of pe_i$r prevents parallelization
Loop carried backward dependence of pe_i$r prevents vectorization
Loop is parallelizable
Loop carried dependence of pe_s$r prevents parallelization
Loop carried backward dependence of pe_s$r prevents vectorization
Loop is parallelizable
```
```
...
343 zdiag_adv_heat(ji,jj) = - SUM(SUM( pe_i(ji,jj,1:nlay_i,:) , dim=2 ), dim=1 ) &
344 & - SUM(SUM( pe_s(ji,jj,1:nlay_s,:) , dim=2 ), dim=1 )
345
346 ! record at_i before advection (for open water)
347 zati1(ji,jj) = SUM( pa_i(ji,jj,:), dim=1 )
348 END DO
349 END DO
350 !$acc end parallel loop
```
- Line icedyn_adv_pra.f90:528 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/icedyn_adv_pra.f90):
```
528, Loop is parallelizable
Loop carried reuse of pa_i$r22 prevents parallelization
Loop is parallelizable
```
```
525 !$acc parallel loop
526 !! !$omp do
527 DO jj = 1, jpj
528 zati2(:,jj) = SUM( pa_i(:,jj,:), dim=2 )
529 END DO
530 !! !$omp end do
531 !$acc end parallel loop
```
- Line icedyn_adv_pra.f90:572 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/icedyn_adv_pra.f90):
```
572, Loop is parallelizable
Loop carried dependence of pe_i$r28 prevents parallelization
Loop carried backward dependence of pe_i$r28 prevents vectorization
Loop is parallelizable
Loop carried dependence of pe_s$r30 prevents parallelization
Loop carried backward dependence of pe_s$r30 prevents vectorization
Loop is parallelizable
```
```
...
572 diag_adv_heat(ji,jj) = diag_adv_heat(ji,jj) + ( - SUM(SUM( pe_i(ji,jj,1:nlay_i,:) , dim=2 ), dim=1 ) &
573 & - SUM(SUM( pe_s(ji,jj,1:nlay_s,:) , dim=2 ), dim=1 ) &
574 & - zdiag_adv_heat(ji,jj) ) * z1_dt
575 END DO
576 END DO
577 !! !$omp end do
578 !! !$omp end parallel
579 !$acc end parallel loop
```
### Subroutine lbc_nfd_nogather_2d_gpu_dp
- Line lbcnfd.f90:8835 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbcnfd.f90):
```
8835, Loop carried dependence of ptab prevents parallelization
Loop carried backward dependence of ptab prevents vectorization
Generating implicit firstprivate(psgn,nlcj)
```
```
8834 !$acc parallel loop gang vector
8835 DO jl = 1, ipl; DO jk = 1, ipk
8836 ptab(1,nlcj) = psgn * ptab(3,nlcj-2)
8837 END DO; END DO
8838 !$acc end parallel loop
```
- Line lbcnfd.f90:8851 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbcnfd.f90):
```
8851, Loop carried dependence of ptab prevents parallelization
Loop carried dependence of ptab prevents vectorization
Loop carried backward dependence of ptab prevents vectorization
Complex loop carried dependence of ptab prevents parallelization
8852, Loop carried dependence of ptab prevents parallelization
Loop carried backward dependence of ptab prevents vectorization
Generating implicit firstprivate(jia,jpnj,jpiglo,ijta,ijt,nlcj,psgn,nimpp)
```
```
8850 !$acc parallel loop gang vector
8851 DO jl = 1, ipl; DO jk = 1, ipk
8852 DO ji = startloop, nlci
8853 ijt = jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 4
8854 jia = ji + nimpp - 1
8855 ijta = jpiglo - jia + 2
8856 IF( ijta >= startloop+nimpp-1 .AND. ijta < jia ) THEN
8857 ptab(ji,nlcj-1) = psgn * ptab(ijta-nimpp+1,nlcj-1)
8858 ELSE
8859 ptab(ji,nlcj-1) = psgn * ptab2(ijt,ijpjp1,jk,jl)
8860 ENDIF
8861 END DO
8862 END DO; END DO
8863 !$acc end parallel loop
```
- Line lbcnfd.f90:8907 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbcnfd.f90):
```
8907, Loop carried dependence of ptab prevents parallelization
Loop carried dependence of ptab prevents vectorization
Loop carried backward dependence of ptab prevents vectorization
Complex loop carried dependence of ptab prevents parallelization
8908, Loop carried dependence of ptab prevents parallelization
Loop carried backward dependence of ptab prevents vectorization
Generating implicit firstprivate(jia,jpnj,jpiglo,ijua,iju,psgn,nlcj,nimpp)
```
```
8906 !$acc parallel loop gang vector
8907 DO jl = 1, ipl; DO jk = 1, ipk
8908 DO ji = startloop, endloop
8909 iju = jpiglo - ji - nimpp - nfiimpp(isendto(1),jpnj) + 3
8910 jia = ji + nimpp - 1
8911 ijua = jpiglo - jia + 1
8912 IF( ijua >= startloop+nimpp-1 .AND. ijua < jia ) THEN
8913 ptab(ji,nlcj-1) = psgn * ptab(ijua-nimpp+1,nlcj-1)
8914 ELSE
8915 ptab(ji,nlcj-1) = psgn * ptab2(iju,ijpjp1,jk,jl)
8916 ENDIF
8917 END DO
8918 END DO; END DO
8919 !$acc end parallel loop
```
- Line lbcnfd.f90:9020 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbcnfd.f90):
```
9020, Loop carried dependence of ptab prevents parallelization
Loop carried backward dependence of ptab prevents vectorization
Generating implicit firstprivate(psgn,nlcj,nlci)
```
```
9019 !$acc parallel loop gang vector
9020 DO jl = 1, ipl; DO jk = 1, ipk
9021 ptab(nlci,nlcj) = psgn * ptab(nlci-2,nlcj-1)
9022 END DO; END DO
9023 !$acc end parallel loop
```
- Line lbcnfd.f90:9072 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbcnfd.f90):
```
9072, Loop carried dependence of ptab prevents parallelization
Loop carried backward dependence of ptab prevents vectorization
Generating implicit firstprivate(psgn,nlcj,nlci)
```
```
9071 !$acc parallel loop gang vector
9072 DO jl = 1, ipl; DO jk = 1, ipk
9073 ptab(nlci,nlcj) = psgn * ptab(nlci-2,nlcj-2)
9074 END DO; END DO
9075 !$acc end parallel loop
```
### Subroutine mpp_lnk_2d_gpu_dp
- Line lbclnk.f90:12906 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbclnk.f90):
```
12906, Loop carried dependence of ptab prevents parallelization
Loop carried backward dependence of ptab prevents vectorization
Complex loop carried dependence of ptab prevents parallelization
Loop is parallelizable
Loop carried backward dependence of ptab prevents vectorization
```
```
12903 !$acc parallel loop gang vector
12904 DO jf = 1, ipf ! number of arrays to be treated
12905 IF( .NOT. cd_nat_temp(jf) == 'F' ) THEN ! do nothing for F point
12906 DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, jpj ; DO ji = 1, ihl
12907 ptab(ji,jj) = ptab(ihl+1,jj)
12908 END DO ; END DO ; END DO ; END DO
12909 ENDIF
12910 END DO
12911 !$acc end parallel loop
```
- Line lbclnk.f90:13075 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbclnk.f90):
```
13075, Loop carried dependence of ptab prevents parallelization
Loop carried backward dependence of ptab prevents vectorization
Complex loop carried dependence of ptab prevents parallelization
Loop is parallelizable
```
```
13072 !$acc parallel loop gang vector
13073 DO jf = 1, ipf ! number of arrays to be treated
13074 IF( .NOT. cd_nat_temp(jf) == 'F' ) THEN ! do nothing for F point
13075 DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1, ihl ; DO ji = 1, jpi
13076 ptab(ji,jj) = ptab(ji,ihl+1)
13077 END DO ; END DO ; END DO ; END DO
13078 ENDIF
13079 END DO
13080 !$acc end parallel loop
```
### Subroutine mpp_nfd_2d_gpu_dp
- Line lbclnk.f90:17527 (nemo.src/cfgs/ORCA2/BLD/ppsrc/nemo/lbclnk.f90):
```
17527, Loop carried reuse of znorthloc prevents parallelization
Generating implicit firstprivate(js,jl)
```
```
17525 !$acc parallel loop gang vector
17526 DO jf = 1, ipf ! Loop over the number of arrays to be processed
17527 DO jj = 1, ipj_s(jf)
17528 js = idx_s(jf) + jj
17529 DO jl = 1, ipl
17530 DO jk = 1, ipk
17531 znorthloc(1:jpi,js,jk,jl,1) = ptab(1:jpi,jj_s(jf,jj))
17532 END DO
17533 END DO
17534 END DO
17535 END DO
17536 !$acc end parallel loop
```