The GNU Fortran Compiler: C_F_POINTER

Next: C_F_PROCPOINTER, Previous: C_ASSOCIATED, Up: Intrinsic Procedures [Contents][Index]

### 9.49 `C_F_POINTER` — Convert C into Fortran pointer

Description:

  `C_F_POINTER(CPTR, FPTR[, SHAPE])` assigns the target of the C pointer CPTR to the Fortran pointer FPTR and specifies 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