Hello,
I am working on parallelizing my CFD code using CUDA Fortran, and I want some subroutines to be called by host and device subroutines. However I got compilation error when I am trying to call (device,host) subroutine from any host subroutine or program, as in the example:
module mod_fun
use cudafor
contains
attributes(host,device) subroutine Plus2(x,y)
implicit none
integer,intent(in) :: x
integer,intent(out) :: y
y=x+2
end subroutine Plus2
end module mod_fun
program test
use mod_fun
implicit none
integer :: i,j
i=7
call Plus2(i,j)
end program test
When I am trying to compile this simple code I get the following:
$ pgfortran -Mcuda=cc13 -c test_host_device.f90
PGF90-S-0188-Argument number 1 to plus2: type mismatch (test_host_device.f90: 17)
PGF90-S-0188-Argument number 2 to plus2: type mismatch (test_host_device.f90: 17)
0 inform, 0 warnings, 2 severes, 0 fatal for test
Does anyone know if attibutes(host,device) is supported in pgfortran 10.5 ??