详细请点击:http://www.verydemo.com/demo_c122_i33874.html
上篇里面写的是python调用c,对速度又很大的提升。
今天无聊又写了个python调用fortran的来比较比较。
首先,编写名为test_f.f90的fortran文件:(插入代码居然没有fortran)
!subroutine subroutine is_prime(n,value) implicit none integer::n,i,value !f2py intent(in)::n !f2py intent(out)::value if(mod(n,2)==0) then value=0 return else do i=3,int(sqrt(float(n)))+1,2 if(mod(n,i)==0) then value=0 return end if end do end if value=1 end subroutine
编译fortran文件得到test_f90.so文件:
....................................................................
f2py -m test_f -c test_f.f90
最后编写测试文件:
import test_f def test_f90(): ti=time.time() count=0 for i in xrange(3,10000000): if test_f.is_prime(i): count+=1 return "test_f90: time=%s ;count=%s"%(time.time()-ti,count)
测试判断一千万个素数:
#'test_c: time=14.7924110889 ;count=664578'
#'test_f90: time=6.10868906975 ;count=664578'
#可以看出调用.f90的速度是.c的2倍还多。
#并且调用.f90也相对简
相关推荐
python环境调用Fortran语言生成的动态链接库(一个简单的示例): 1. main.for integer function mysum(a, b) bind(C,name="mysum") !GCC$ATTRIBUTES DLLEXPORT,CDECL :: mysum integer, value :: a,b mysum =...
本文给大家介绍的是在Python中调用fortran代码,主要是用到了f2py这个程序,十分的实用,有需要的小伙伴可以参考下
如何在Fortran中调用Python 并将值返回给Fortran而没有回调。不要忘记: 链接Python库包括Python.h 编译时。创世记: 我最近遇到了这个问题,因为我想从一个非常古老的Fortran代码片段过渡到Python。 基本上,我没有...
建造Fortran文件应构建为共享库,以便可以从Python调用它。 还提供了一个配置文件( python_json_interface.fobis ),该文件也可以构建共享库。 使用mode标志指示要构建的内容。 例如: 要使用gfortran构建共享库,...
PsychroLib的版本适用于Python,C,C#,Fortran,R,JavaScript,Microsoft Excel Visual Basic for Applications(VBA)。 PsychroLib可在公制(SI)和英制(IP)单位中使用。 有关概述和当前可用功能的列表,请...
PGPLOT 提供了C 和 Fortran 77 的接口,也有许多由用户提供的其他编程语言接口, 例如 :C++、 perl、 python、 ruby、tcl/tk...等。 PGPLOT 可以做许多种不依赖于任何装置 的输出, 包含数种图档格式、图形显示终端...
read_fortran_double:一个非常简单的Fortran库,可以读取Fortran格式的双精度(aka real(kind = 8)),并且可以由CC ++ Python程序调用
对于扩展,支持 C++、C 和 Fortran 语言,并且 Octave 可以通过其原生 oct 文件接口调用外部 C/C++ 代码。 目前 Octave 和 Python 之间没有桥梁,pyoctave 扩展的目标是缩小这一差距。 通过此扩展,可以将 Python ...
Fortran 和 Python 中的高斯滤波器/模糊。 使用反射处理边缘。 输入可以被屏蔽。 此代码用于消除在从粗网格到细网格对数据进行保守插值时可以看到的“块状”。 掩蔽旨在保守,并按以下方式处理: 在卷积中被屏蔽...
12.3 调用C代码 281 12.4 利用multiprocessing创建进程池 283 12.5 通过Joblib提高for循环的并发性 286 12.6 比较Bottleneck函数与NumPy函数 287 12.7 通过Jug实现MapReduce 289 12.8 安装MPI for Python 292 ...
ASL组使用的代码-主要是matlab,但也包括shell和fortran / C / python#ASL生产代码库 主意: 例程在目录中分组 目录的依赖关系是分层的(仅以一种方式进行) 界面为王-始终如一的一致性 目录名称应指示其中的内容 ...
Python和Matlab中的MSISE-00 用于Python的NRL MSISE-00大气模型。 也可以通过Matlab访问。 从高度z = 0..1000 km开始有效。 下方的图显示了在全球网格上200公里处的切片。 黄色的球代表太阳在地球上的足迹。 该图...
可以从FORTRAN或C代码以及IDL,Python或MATLAB代码中调用该库。 对于IDL,分发包中提供了Python和MATLAB包装器。 安装 IRBEM需要Fortran编译器,并且可以安装在大多数环境中。 在Linux上使用gfortran的快速构建过程...
使用Fortran,C和Python中的Esprit和RootMusic等方法进行一维和整体信号子空间分析 部分基于 核心子空间代码用Fortran 2008编写,并从其他语言(Python,C)中调用。 由于程序是基于Fortran / Python的,因此它们...
这是一个Fortran模块,将Fortran计算的性能与称为Matplotlib的Python软件包的功能合并在一起,可绘制由您的fortran代码计算的数据。 它允许您将数据分为数据文件组,每个组都存储在其自己的目录中。 它允许您创建...
调用者中函数返回类型的声明 内联函数参数类型声明 区分大小写的标识符 自动添加“隐式无” 有价值的退货声明 导入/多文件支持 将void函数转换为子例程 If-else条件块 用内联变量声明执行循环 对象类型...
RocketCEA包装了NASA Fortran CEA代码并提供了一些有用的工具请参阅以下代码: : 请参阅文档: : 请参阅 PyPI 页面: ://pypi.python.org/pypi/rocketcea 请参阅 NASA CEA 主页: : 参见 NASA CEA 在线: : ...
Python 中的 NUFFT 该存储库包含 NUFFT 和相关算法的纯 Python 实现的实验。 有关更多信息,请参阅,还可以参阅包,它为 nufft Fortran 源提供简单的 Python 包装器。 有关此算法的 Python 版本的讨论,请参阅我关于...
迁移到 Fortran Python 中的 DeerQMC 开发已经停止,软件正在慢慢迁移到 Fortran 2008,直接调用LAPACK 。 开发将在https://github.com/SuperFluffy/DeerQMC-Fortran 。介绍DeerQMC 是行列式量子蒙特卡罗模拟的一种...