OpenACC Using derf in kernels

I’m using OpenACC in FORTRAN with nvfortran. How can i use derf function in acc kernels? Derf can be used outside of kernels declared explicitly, but in kernels they can’t be used because don’t have acc routine directives. I don’t know how to attach routine directives to derf.


Hi Kodo,

Unfortunately not all Fortran intrinsics have been ported to include a device callable version, including DERF. However, I did submit a RFE (request for enhancement), TPR #31303, and we’ll see if it’s something we can add.


derf() is a nonstandard extension for the double precision erf() function. We do support the generic erf() function on the device, callable from do concurrent with stdpar, OpenACC, OpenMP, and CUDA Fortran, which takes a real(4) or real(8) argument.