草庐IT

fortran95

全部标签

python - 读取由 Python 代码创建的 Fortran 二进制文件

我有一个使用Python代码创建的二进制文件。这段代码主要编写了一堆任务来预处理一组数据文件。我现在想用Fortran阅读这个二进制文件。二进制文件的内容是简单格式的点坐标,例如:点数,x0,y0,z0,x1,y1,z1,....这些二进制文件是使用numpy中的“tofile”函数创建的。到目前为止,我在Fortran中有以下代码:integer::intValuedoubleprecision::dblValueinteger::counterinteger::checkopen(unit=10,file='file.bin',form='unformatted',status='

python - 使用 f2py 在 (Fortran) 模块错误中停止 python 代码?

我正在使用f2py在Fortran中创建一个Python模块。如果在Fortran模块中遇到错误,我想在Python程序中产生错误(包括错误消息)。考虑以下示例:Fortran代码(test.f):subroutinefoo(a,m)integer::m,iinteger,dimension(m)::a!f2pyintent(in)::m!f2pyintent(in,out)::a!f2pyintent(hide),depend(a)::m=shape(a)doi=1,mif(a(i).eq.0)thenprint*,'ERRORHERE..?'endifa(i)=a(i)+1endd

python - 为什么我的 Fortran 代码用 f2py 包装使用了这么多内存?

我正在尝试计算大约十万个点之间的所有距离。我有以下用Fortran语言编写并使用f2py编译的代码:C1234567C123456789012345678901234567890123456789012345678901234567890123456789012subroutinedistances(coor,dist,n)doubleprecisioncoor(n,3),dist(n,n)integerndoubleprecisionx1,y1,z1,x2,y2,z2,diff2cf2pyintent(in)::coor,distcf2pyintent(in,out)::distcf

python - 性能比较Fortran,Numpy,Cython和Numexpr

我有以下功能:defget_denom(n_comp,qs,x,cp,cs):'''len(n_comp)=1#numberofproteinslen(cp)=n_comp#proteinconcentrationlen(qp)=n_comp#proteincapacitylen(x)=3*n_comp+1#fitparameterslen(cs)=1'''k=x[0:n_comp]sigma=x[n_comp:2*n_comp]z=x[2*n_comp:3*n_comp]a=(sigma+z)*(k*(qs/cs)**(z-1))*cpdenom=np.sum(a)+csreturn

python - 使用 SymPy codegen 为方程组生成 Fortran 子程序

基于我发现的一个以前的例子here,我试图找出如何生成与我需要坚持的特定形式相对应的Fortran代码。所需的FORTRAN代码如下所示(itisbasedontheFitzHugh–Nagumomodel):SUBROUTINEFF(NE,U,PAR,F)!------------!DefinethenonlineartermIMPLICITNONEINTEGER,INTENT(IN)::NEDOUBLEPRECISION,INTENT(IN)::U(NE),PAR(*)DOUBLEPRECISION,INTENT(OUT)::F(NE)DOUBLEPRECISIONu,v,e,a1

python - TensorFlow tf.reshape Fortran 命令(像 numpy)

TensorFlow是否提供了一种在Fortran中reshape张量的方法(列优先顺序?NumPy允许:a=...np.reshape(a,(32,32,3),order='F')我正在尝试将CIFAR图像reshape为32x32x3(来自形状为3072x1的矢量),但我得到的图像看起来像这样:在Numpy中使用Fortran顺序可以解决问题,但我需要在TensorFlow中执行相同的操作。编辑:我现在意识到我可以通过整形为3x32x32然后转置输出来获得正确的输出。我仍然有点惊讶TF没有提供行优先或列优先顺序的开箱即用的reshape。 最佳答案

python - 将 python 与 c/fortran 进行比较

我编写了以下程序来比较python和c/fortran的速度。为了获得程序使用的时间,我使用了“时间”命令。所有程序计算xx+yy+z*z的平方根,其中x、y、z是float。我使用了平方根,因为它是最耗时的部分之一科学计算,我参与其中。我有以下时间:fortran0m29.9s//c0m20.7s//python30m10.8s根据我做的简单测试发现Python不推荐用于科学计算。但可能我的代码效率很低。您认为我可以仅针对这个简单的测试用例提高我的代码的效率吗?语言:programroot_squareimplicitnoneintegeri,jrealx,y,z,rx=1.0y=2

python - 如何记录 f2py 的 fortran 函数?

我想使用docstring或类似的东西来记录我的fortran例程,它可以与pythonhelp命令一起使用。f2py自动生成的docstring非常不够用,我需要像使用python函数docstring一样添加更多详细信息。在我看来,它应该是这样的:我的模组.f:subroutinefoo()!Thisismyfunctionendsubroutine在pythonsession中:>>>importmymod>>>help(mymod.foo) 最佳答案 一个有点肮脏的解决方案是将文档保存在ascii文件中并在运行时加载它们。f

python - 当前用 Python 包装现代 Fortran 代码的最佳方法

我知道并使用过f2py2e包装一些旧的Fortran77代码,但我的理解是它不适用于较新的Fortran95代码。我已经研究了我应该使用什么,并且遇到了fwrap和G3f2py,它们似乎都没有对它们的当前状态或如何使用它们给出任何解释。我看到f2py的版本有使用第三代f2py的选项,但是被注释为无功能。鉴于此,我不知道应该使用哪个项目。我应该使用哪一个?这个问题现在已经交叉发布到(并在)计算科学堆栈交换站点作为WhichpackageshouldIusetowrapModernFortranCodewithPython? 最佳答案

python - 从 python 中的共享 fortran 库调用函数

我想在Python中调用Fortran共享库中的一些函数。我在网上找到了一些链接并阅读了它们,根据我的发现,我应该这样做libadd=cdll.LoadLibrary('./libbin.so')加载共享对象。但是,此共享库包含来自另一个共享库的一些符号。我阅读了cdll的帮助,但似乎无法同时加载多个共享对象文件。我如何调用这个Fortran库中的函数,它很可能是由英特尔Fortran编译器编译的? 最佳答案 您需要了解共享对象中函数的签名。您是否有源代码或一些解释函数名称和参数类型的引用资料?例如,我有这个源代码(mult.f90