Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

call c_f_pointer

Brett_Wilt
Beginner
629 Views

Upgraded to later version of Intel Fortran compiler. i now receive error:

There is no matching specific subroutine for this generic subroutine call.   [C_F_POINTER]
          call c_f_pointer(gfld%discipline,grbdisc)

Here is my code:

use m_gribfield

use, intrinsic:: iso_c_binding

type(gribfield), pointer:: gfld

Any thoughts? The previous linux compiler was 2011.3.174, and it compiles ok with that. I included the structure below.

0 Kudos
1 Reply
Steven_L_Intel1
Employee
629 Views
gfld%discipline is integer(g2int). This argument is required to be type(c_ptr). I don't know how you have declared grbdisc. As it happened, we tightened up C_F_POINTER (and C_F_PROCPOINTER) in this regard in Update 4 to Composer XE 2011, so you had just missed the change in the earlier compiler. You may need to use TRANSFER, though I will caution you that you've hardwired 32-bitness into this code and it will be very wrong if you build for x64.
0 Kudos
Reply