Hi,
What’s the official status on using assumed sized character variables inside OpenACC kernels regions with nvfortran? The example below provides 3 different kernels regions of increasing complexity:
- the first started compiling with version 23.7, maybe simple due to some dead-code elimination;
- the second never compiled;
- and the third started compiling with version 23.7, but stopped compiling again with version 23.9.
Compile with nvfortran -c -acc=gpu ice.f90
.
subroutine ice(a, c)
real, intent(inout) :: a
character(len = *), intent(in) :: c
integer :: j
! Compiles with nvfortran 23.7 and 23.9
!$acc kernels
if (c == 'C') then
end if
!$acc end kernels
! Compiles with no nvfortran version
!$acc kernels
if (c == 'C') then
do j = 1, 10
enddo
end if
!$acc end kernels
! Compiles with nvfortran 23.7 only
!$acc kernels
if (c == 'C') then
do j = 1, 10
a = 1
enddo
end if
!$acc end kernels
end subroutine ice
Cheers,
-Nuno