Next: , Previous: C_ASSOCIATED, Up: Intrinsic Procedures


8.41 C_F_POINTER — Convert C into Fortran pointer

Description:
C_F_POINTER(CPTR, FPTR[, SHAPE]) Assign the target the C pointer CPTR to the Fortran pointer FPTR and specify its shape.
Standard:
Fortran 2003 and later
Class:
Subroutine
Syntax:
CALL C_F_POINTER(CPTR, FPTR[, SHAPE])
Arguments:

CPTR scalar of the type C_PTR. It is INTENT(IN).
FPTR pointer interoperable with cptr. It is INTENT(OUT).
SHAPE (Optional) Rank-one array of type INTEGER with INTENT(IN). It shall be present if and only if fptr is an array. The size must be equal to the rank of fptr.

Example:
          program main
            use iso_c_binding
            implicit none
            interface
              subroutine my_routine(p) bind(c,name='myC_func')
                import :: c_ptr
                type(c_ptr), intent(out) :: p
              end subroutine
            end interface
            type(c_ptr) :: cptr
            real,pointer :: a(:)
            call my_routine(cptr)
            call c_f_pointer(cptr, a, [12])
          end program main

See also:
C_LOC, C_F_PROCPOINTER