! With bind(C), the C (CFI) array descriptor is converted to | |
! a Fortran array descriptor - thus, internally a PARM_DECL is | |
! converted to a VAR_DECL - check that the optional check still works | |
module m | |
contains | |
subroutine foo(x, y) bind(C) | |
integer, optional :: x,y(:) | |
!$omp target map(tofrom:x) | |
if (present (x)) x = 5 | |
if (present (y)) y(1) = 5 | |
!$omp end target | |
end | |
end | |
use m | |
call foo() | |
end |