小编Kit*_*ttu的帖子

从C调用FORTRAN子例程

我试图从C调用FORTRAN函数

我的问题是:

  1. 如果fortRoutine是我的fortran子程序的名称,那么我从C中调用它fortRoutine_.如果fortRoutine只包含一个字符数组参数,那么我可以像这样传递:

    fortRoutine_("I am in fortran");
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在调用FORTRAN子例程时,何时应该使用pass by值和何时通过引用传递?

由于我是C的新手,我对此并不了解.如果可能的话,请提供一些很好的教程链接.

c fortran fortran-iso-c-binding

13
推荐指数
2
解决办法
9453
查看次数

等价陈述

码:

program CheckEquivalence
  integer*8 intarray(4)
  real*8 realarray(4)

  equivalence(realarray,intarray)
  realarray(3) = 3
  intarray(4) = 4
  realarray(1) = 1.0
  realarray(2) = 2.0

  do i = 1,4
    write(,) 'All real ', realarray(i)
  enddo
  do i = 1,4
    write(,) 'All int ', intarray(i)
  enddo
  do i = 1,3
    write(,) 'Some real ', realarray(i)
  enddo
  write(,) 'Last int ', intarray(4)
end
Run Code Online (Sandbox Code Playgroud)

输出是:

All real 1.
All real 2.
All real 3. 
All real 1.97626258E-323
All int 4607182418800017408 
All int 4611686018427387904
All int 4613937818241073152 
All int …
Run Code Online (Sandbox Code Playgroud)

fortran

5
推荐指数
1
解决办法
6233
查看次数

标签 统计

fortran ×2

c ×1

fortran-iso-c-binding ×1