|
您好,请教一个Fortran调用C返回实数数组问题。之前群主在论坛里写的一个Fortran调用C返回一个数的例题,我想问问,如何返回一个数组呢?在群主之前的例题上修改了一点,结果还是有问题。我只是想实现在对数组中每个元素加1的结果再返回到Fortran中来,结果是只实现了第一个元素加1,别的不行
C程序:
[C] 纯文本查看 复制代码 04 | double c_add( double a[], int n) |
09 | xx = calloc (n, sizeof ( double )); |
Fortran程序:
[Fortran] 纯文本查看 复制代码 03 | real ( 8 ) function add ( a , n ) Bind ( C , Name = "c_add" ) |
04 | use , Intrinsic :: ISO_C_Binding |
05 | type ( C_PTR ) , value :: a |
13 | use , intrinsic :: ISO_C_Binding |
16 | real ( 8 ) , target :: x ( 5 ) = [ 0.1 , 0.2 , 0.3 , 0.4 , 0.5 ] |
18 | write ( * , * ) add ( c_loc ( x ) , size ( x ) ) |
|
|