USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC, C_PTR, C_ASSOCIATED 。该模块中定义的过程如下 功能 说明 C_LOC(X) 返回参数的 C 地址 C_ASSOCIATED(C_PTR_1 [, C_PTR_2]) 表示C_PTR_1的关联状态,或者表示C_PTR_1和C_PTR_2是否与同一个实体关联。
Fortran代码: program main use,intrinsic::iso_c_binding implicit none integer :: i,j real*8 :: array(3,2),go_c(6),out_c(6) interface subroutine call_c(before,after) bind(c,name='call_c') use…
intrinsic::iso_c_bindingusepmatrixmodimplicit noneinteger(c_int),allocatable::array2(:,:)integer(c_size_t)::i,j,iiallocate(array2(10,10))doi=1,10doj=1,10array2(i,j)=i+(j*100)end doend doii=pmatrix(array2)
programf_call_cuse,intrinsic::iso_c_bindingimplicitnone! define same struct in Ctype,bind(c)::my_structinteger(c_int)::nntype(c_ptr)::arrayendtypeinterfacetype(my_struct)functionmake_array() bind(c,name='make_array') import!! Make iso_c_binding and my_struct visible hereendfunctionendi...
需要说明的是,(一)和(二)对GCC编译器的版本要求并不高;而(三)和(四)对GCC编译器的要求比较高,需要GCC在4.7及以上才能编译通过,这是由于自Fortran 2003一代语言起,增加了一个名为“iso_c_binding”的模块,可以很方便地在Fortran和C++之间传递参数,简化了两者的混合编程。
在Fortran程序中,使用use, intrinsic :: iso_c_binding语句导入ISO_C_BINDING模块,以便使用C语言的数据类型和函数。 声明MATLAB引擎库的函数和数据类型,例如: 代码语言:fortran 复制 ! 声明MATLAB引擎库的函数和数据类型interfacesubroutineengOpen(arg1)bind(C,name="engOpen")useiso_c_bindingcharacter(kind=c_char...
c. 在Fortran中,使用`ISO_C_BINDING`模块声明C函数,并调用`system_call`函数: “`fortran program main use, intrinsic :: iso_c_binding interface subroutine system_call(command) bind(c) import :: c_char, c_null_char character(kind=c_char), dimension(*), intent(in) :: command ...
use, intrinsic :: iso_c_binding implicit none integer, parameter :: n = 3, nrhs = 1 real, dimension(n, n) :: A real, dimension(n, nrhs) :: B integer, dimension(n) :: IPIV integer :: info ! 初始化系数矩阵A和常数项向量B ...
use,intrinsic::iso_c_binding!>三种接口interface!>接口1:(*)integerfunctionmax_1(two_int)bind(c,name="max")integer,intent(in)::two_int(*)endfunctionmax_1!>接口2(不推荐):(1)integerfunctionmax_2(two_int)bind(c,name="max")integer,intent(in)::two_int(1)endfunctionmax_2!>接口3:c_pt...
2.2.2 C 绑定模块Fortran 2003 标准提供了一种引用 C 语言过程的方式。ISO_C_BINDING 模块按内模块函数形式定义了三个支持过程。访问这些函数需要在调用例程中使用 USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_LOC, C_PTR, C_ASSOCIATED。该模块中定义的过程如下...