The code USE ISO_C_BINDING, ONLY: C_PTR, C_LOC REAl, TARGET ::A1 TYPE(C_PTR) :: D = C_LOC(A1) yields the following error message TYPE(c_ptr) :: D = C_LOC(A1) 1 Error: Function 'c_loc' in initialization expression at (1) must be an intrinsic or a specification function Obviously the manual currently describes C_LOC as an intrinsic and the value of the expression is relatively known at compile time, and the code could be compiled to cause the value to fixed by the linker/loader. Failing that, the error message ought to be Error: Intrinsic function 'c_loc' at (1) is not permitted in an initialization expression