C语言调用Fortran
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言调用Fortran相关的知识,希望对你有一定的参考价值。
将fortran代码封装成静态链接库(lib),然后调用约定改为 大写(编译器不同配置也不同),在C中包含这个库,然后生命外部函数 就可以调用了 参考技术A 好像也可以用system()调用编译好的Fortran吧。#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
void main()
char letter;
do
printf("A Display directory listing\n");
printf("B Display disk information\n");
printf("C Change system date\n");
printf("Q Quit\n");
printf("Choice: ");
letter = getch();
letter = toupper(letter);
if (letter == 'A')
system("DIR");
else if (letter == 'B')
system("CHKDSK");
else if (letter == 'C')
system("DATE");
while (letter != 'Q');
getch();
Python调用Fortran的三种形式
Python调用Fortran的三种形式
1. 简介
在一些研究领域很多经典算法和工具都由上古语言Fortran编写,而这部分代码又没有对应的C/C++和Python版本。因此,掌握Python语言调用Fortran程序这一技能,在一些研究领域有助于我们站在巨人的肩上看的更远。
Python调用Fortran可以总结为三种:(1)于 F2PY的f2py调用Fortran;(2)使用动态链接库;(3)利用Python的os包调用Fortran
2. Python调用Fortran的三种方法
2.1 计算圆面积的Fortran函数
接下来将用下面的函数进行演示。这里的例子是返回一个参数的,返回多个参数以及修改参数的Fortran用法,可以参考:Fortran - 程序( Procedures)。
function area_of_circle (r)
! function result
implicit none
! dummy arguments
real :: area_of_circle
! local variables
real :: r
real :: pi
pi = 4 * atan (1.0)
area_of_circle = pi * r**2
end function area_of_circle
2.2 基于 F2PY的f2py调用Fortran
新建circle.f90后,在终端中运行如下代码:
python -m numpy.f2py -c circle.f95 -m circle
具体步骤如下图,然后可以看到生成的circle.cpython-36m-x86_64-linux-gnu.so
在Python中,可以直接import上面的函数名
import circle
print(circle.__doc__)
print(circle.area_of_circle(2))
注意上面的__doc __是f2py自动生成的,可以看到fortran模块里面包含几个函数,每个函数里面还可以再调用doc看到接口参数类型。
2.3 使用动态链接库调用Fortran
2.4 利用Python的os包调用Fortran
参考
Python与Fortran混合编程
python调用fortran的3种形式【f2py,动态链接库,os命令】
以上是关于C语言调用Fortran的主要内容,如果未能解决你的问题,请参考以下文章