文件名 fortran_lib.f90。文件名可以自己定,子程序名可以自己定,注意 bind 指定的C调用名称。 // C++ 代码示例(main.cpp) #include <iostream> extern "C" { // 声明 Fortran 函数 void fadd_(int* arg1, double* arg2); } int main() { int a = 5; double b = 3.14; // 调用 Fortran 函数 ...
编译环境:Fortran:推荐使用Compaq Visual Fortran 6.0以上的版本,C++:Microsoft Visual C++6.0。 1. 显式链接, (a) 找开CVF编译器,然后新建一个Fortran DLL工程(选择Fortran Dynamic Link Library),并指定工程名,如下图所示: 按确定按钮,然后新建一个Fortran 源文件,并输入以下的Fortran代码: (这里仅为说明问题,...
system("pause");return-2; }//第三步,调用floata =1.0;floatb =2.0;floatc =0.0; summator(a,b,&c);//调用函数cout<< c <<endl;//输出计算的cFreeLibrary(hLibrary);//释放Librarysystem("pause");return0; } 三、完整代码 3.1 Fortran代码部分 !函数功能 两数相加SUBROUTINESummator(a,b,c)!M...
2, Fortran 调用 C 函数 编辑C源码add.c 1 #include 2 3 void add_(float *a, float *b, float *c) 4 { 5 *c = *a + *b; 6 printf(“%f + %f = %f\n“, *a, *b, *c); 7 } Notes The funtion name “add_“ 编译源代码 # gcc -o add.o -c add.c 编辑fortran 主程序main...
被调用的代码应该是共享库的格式。大多数 C 和 Fortran 库都已经被编译为共享库。如果自己使用 GCC (或 Clang )编译代码,需要添加 -shared 和-fPIC 选项。Julia 调用这些库的开销与本地 C 语言相同。调用共享库和函数时使用多元组形式: (:function, "library") 或("function", "library") ,其中 function ...
示例代码介绍 我的工作中需要经常进行物性计算,这方面的权威软件是美国 NIST 的REFPROP。下面以编译其 FORTRAN 源码为例,介绍C 语言调用 FORTRAN 函数的方法。 在C 的源代码中,需要声明 Fortran 函数的原型, REFPROP 官方提供了相关的头文件。我没有用其头文件,而是自行编写了函数声明。字符串参数的传递是一个易引...
C语言调用Fortran.dll(Win10+VS2019|OneAPI,安装参考https://zhuanlan.zhihu.com/p/411167136) 1.创建Fortran的dll 1.1创建fortran的动态库,这里命名为f_dll.dll 1.2添加f_dll代码,右击“Resource file”---“添加”---“新建项” 1.3编写f_dll代码,编译。函数”tqf”功能为把输入的数dt和数组T所有元素乘10...
接着我们添加一个类:FortranMethod.cs 该类用来调用Fortran DLL。 代码如下: using System; usingSystem.Text; usingSystem.Runtime.InteropServices; namespaceMixedProgram { publicstaticclassFortranMethod { [DllImport("TestDll.dll",CallingConvention =CallingConvention.Cdecl)] publicstaticexterndouble Add(double a...
1.Fortran 生成DLL 新建Fortran DLL程序test1.f 添加如下代码:! test1.f90 !! FUNCTIONS/SUBROUTINES exported from test1.dll:! test1 - subroutine !示例没有返回值的子例程 subroutine test1(a,b)! Expose subroutine test1 to users of this DLL !!DEC$ ATTRIBUTES C,DLLEXPORT::...