Fortran Wiki
c_f_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, iso_c_binding

category: intrinsics