I am trying to compile a subroutine in fortran as !$acc routine seq I am getting following error message
/scratch/tmp/pgaccKU0jSWcDesiI.gpu(93): error: identifier "pgf90_mzero8" is undefined
1 error detected in the compilation of "/scratch/tmp/pgnvdgV0jsxZLyFWv.nv0"
PGI compiler version 17.4
Text case
subroutine xx(ndime,pgaus,yy)
!$acc routine seq
implicit none
integer(4) :: ndime, pgaus
real(8) :: yy(ndime,ndime,pgaus)
yy =0.0
end subroutine xx
This is a known issue. I'm assuming that you in your code you are zeroing out an array using array syntax, something like "arr=0.0d0". The front end compiler recognizes this idiom and replaces with an optimized runtime routine. This happens very early in the compilation, long before the compiler knows that this section of code will be compiled to the device. Unfortunately we haven't yet ported this runtime routine to the device and hence the error.
The easiest work around is to compile with the "-Mnoidiom" flag to disable this optimization.