小编vit*_*yav的帖子

Fortran从C接受字符串(?)

我觉得这应该是一个简单的问题,但我无法让它发挥作用.我有一些Fortran代码,它接受如下输入:

      SUBROUTINE TRACE(X,Y,NAME,XX,YY)
      EXTERNAL NAME
      CALL NAME(X,Y,XX,YY)
Run Code Online (Sandbox Code Playgroud)

我试图从以下形式传递C++的名称:

float x,y,xx,yy;
char * name="IGRF";
trace_(&x,&y,name,&xx,&yy);
Run Code Online (Sandbox Code Playgroud)

它编译,但当我尝试调用NAME子例程时,我总是得到段错误.在文件中定义了一个名为IGRF的子程序,我可以直接从C++调用IGRF子程序,但需要这个TRACE例程.在gdb中运行时,它表示NAME变量作为指向void的指针.

我已经尝试传递NAME,&NAME和NAME [0],一个字符名称[4],它被剥离了\ 0以完全符合名称,并且它们都返回显示相同的空指针.有谁知道如何从C++中将函数名称转换为Fortran中的EXTERNAL变量?

谢谢

c++ fortran

4
推荐指数
1
解决办法
3070
查看次数

标签 统计

c++ ×1

fortran ×1