Fortran的点点滴滴——调用C++

  前段时间碰见一个问题,需要用Fortran调用一个C++程序,故折腾了半天,找到一些方法,这里把我自己应用的一个方法贴出来。

  C子程序只要在函数名字加上一个下划线,Fortran就可以调用的,但是C++程序不行,然而,我们可以利用这一点作文章:

 

#C++部分

#首先要声明一下

#ifdef __cplusplus

  extern "C"{

    void compute_( int &, int &, double * );

  }

#endif

#程序的开始

void compute_( int &a, int &b, double c[] )

{

  #程序的主体

}

!Fortran部分

PROGRAM TEST

  IMPLICIT NONE

  INTEGER :: A,B

  REAL :: C(20)



  !调用C++程序

  CALL COMPUTE(A,B,C)

END PROGRAM

 

还要值得说明一点是,最后编译生成执行程序的时候应加入 -lstdc++参数

  最终的程序在linux下分别用g++/gfortran组合和g++/ivf组合编译成功。由于对C++仅仅知道些皮毛,很多东西无法详解,要是感兴趣的话可以给我留言讨论。

你可能感兴趣的:(fortran)