c_loc(x)
determines the C address of the argument.
Fortran 2003 and later
result = c_loc(x)
x
- Shall have either the pointer
or target
attribute. It shall not be a coindexed object. It shall either be a variable with interoperable type and kind type parameters, or be a scalar, nonpolymorphic variable with no length type parameters.The return value is of type c_ptr
and contains the C address of the argument.
subroutine association_test(a,b)
use iso_c_binding, only: c_associated, c_loc, c_ptr
implicit none
real, pointer :: a
type(c_ptr) :: b
if(c_associated(b, c_loc(a))) &
stop 'b and a do not point to same target'
end subroutine association_test
c_associated, c_funloc, c_f_pointer, c_f_procpointer, iso_c_binding