---
# System prepended metadata

title: (REDUCED) Compile-time issue on openacc branch with NVHPC 23.11

---

# (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
```

