Internal compiler error with nvfortran 22.9

Hi, the following code successfully compiles with nvfortran 22.7 but causes a compiler error with nvfortran 22.9. Tested with: nvfortran -acc=gpu -o stopar -c stopar.f90.

module stopar
  implicit none

  real(kind=8), allocatable, dimension(:,:,:), public :: sto2d

  public :: sto_par

  contains
  subroutine sto_par()
    real(kind=8) :: stomax

    !$acc kernels
    sto2d(:,:,1) = SIGN_ARRAY_2D_A(MIN(stomax, sto2d(:,:,1)), sto2d(:,:,1))
    !$acc end kernels

  end subroutine sto_par

  function SIGN_ARRAY_2D_A(pa, pb)
    real(kind=8), dimension(:,:) :: pa
    real(kind=8), dimension(:,:) :: pb
    REAL(KIND = 8) :: SIGN_ARRAY_2D_A(SIZE(pb, 1), SIZE(pb, 2))

    !$acc routine
    WHERE (pb >= 0.E0)
      sign_array_2d_a = ABS(pa)
    ELSEWHERE
      sign_array_2d_a = - ABS(pa)
    END WHERE

  end function SIGN_ARRAY_2D_A

end module stopar

Cheers,
-Nuno

Thanks Nuno. I was able to reproduce the error here and have filed a problem report, TPR #32529. Engineering will investigate.

-Mat

Hi Mat,

This seems to have been resolved in 22.11, can you please confirm that’s the case?

Cheers,
-Nuno

I was just starting to go through the fixed issues in 22.11 and update the forum, but you beat me to it!

Yes, TPR #32529, was fixed in 22.11.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.