草庐IT

fortran90

全部标签

python - Fortran 的 "implicit none"在 Python 中是否有等效项?

在Fortran中有一个语句Implicitnone当一个局部变量没有被声明但是被使用时会抛出一个编译错误。我知道Python是一种动态类型的语言,变量的范围可以在运行时确定。但我想避免在忘记初始化局部变量但在主代码中使用它时发生的某些意外错误。例如,以下代码中的变量x是全局变量,尽管我并没有这样打算:deftest():y=x+2#intendedthisxtobealocalvariablebutforgot#xwasnotinitializedprintyx=3test()所以我的问题是:是否有任何方法可以确保test()中使用的所有变量都是本地变量并且没有副作用。我正在使用Py

python - 在 Numpy 中设置 *默认* 数据顺序(C 与 Fortran)

我正在将一些MATLAB代码移植到Numpy。此任务包括从某些C++代码中剥离MEX,并将其替换为对Numpy的C-API的等效调用。一个问题是MEX代码将传入数据视为按Fortran排序的,因为这就是MATLAB对其数组排序的方式。另一方面,Numpy默认使用C排序。如果不完全重写C排序的MEX代码,我可以:(A)使用.copy('F')对进入C代码的数组重新排序,对使用.copy('C')(B)从一开始就按照Fortran顺序执行所有操作,弄清楚如何让numpy“模拟”MATLAB。选项A——目前已实现——工作正常但效率极低。有人知道如何使选项B起作用吗?

python - Cython 和 fortran - 如何在没有 f2py 的情况下一起编译

最终更新这个问题是关于如何写一个setup.py这将编译一个直接访问FORTRAN代码的cython模块,就像C一样。这是一个相当漫长而艰巨的解决方案之旅,但完整的困惑包含在下面作为上下文。原问题我有一个扩展名,它是一个Cython文件,它设置了一些堆内存并将其传递给fortran代码,还有一个fortran文件,这是一个古老的模块,如果可以,我希望避免重新实现。.pyx文件可以很好地编译为C,但是cython编译器在.f90上卡住了带有以下错误的文件:$pythonsetup.pybuild_ext--inplacerunningbuild_extcythoningdelaunay/

python - 如果卡住了 90 秒,如何从功能中返回?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:TimeoutonaPythonfunctioncall我想实现的是,当函数完成时间超过90秒时,它应该在超时时立即返回。有什么办法可以实现吗?defabc(string):importreifre.match('some_pattern',string):returnTrueelse:returnFalseabc('somestringtomatch')已编辑请下载this测试文件。我创建了一个线程类并在发生超时错误时在线程内引发异常。但是线程仍然存在,因为即使在异常之后它也会打印iamstillalive

python - 在 C/C++、Python 或 Fortran 中编程时输入方程式的方法

我正在编写一个代码,其中包含带有许多三角函数和其他恒等式的长数学方程式。有没有一种方法可以在latex中可视化相同的表达式,并从中生成C或Python表达式,或者反过来。如何输入和检查数学表达式以查看括号等是否在正确的位置并在latex文档中使用它们?提前致谢 最佳答案 您看过Sympy了吗?它有一个用于从python代码生成LaTeX的模块,但它实际上要多得多。Sympy,正如您可能从名称中猜到的那样,是一个用于符号计算的python库。Sympy库还包含它自己的内置解释器(cd到站点包中的sympy目录,然后在shell提示符下

python - 在 Python 中重定向 FORTRAN(通过 F2PY 调用)输出

我正在尝试找出如何重定向某些FORTRAN代码的输出,我已使用F2PY为其生成了Python接口(interface)。我试过:fromfortran_codeimportfortran_functionstdout_holder=sys.stdoutstderr_holder=sys.stderrsys.stdout=file("/dev/null","w")fortran_function()sys.stdout.close()sys.stderr.close()sys.stdout=stdout_holdersys.stderr=stderr_holder这是在Python中重定

python - 我怎样才能轻松地将 FORTRAN 代码转换为 Python 代码(真正的代码,而不是包装器)

我有一个FORTRAN数字库(我相信FORTRANIV),我想将它转换为Python代码。我想要可以在任何Python虚拟机——Windows、MacOS-X、Linux、Android上导入的真实源代码。我开始手动执行此操作,但库中大约有1,000个例程,因此这不是一个合理的解决方案。 最佳答案 FortrantoLisp存在这样的工具,或FortrantoC,甚至FortrantoJava.但是您永远不会拥有Fortran到Python的工具,原因很简单:与Fortran、Lisp或C不同,Python没有GOTO[1]。而且F

python - 是否可以使用 MPI 将数据从 Fortran 程序发送到 Python?

我正在开发一种工具来模拟波能转换器,我需要将两个软件包相互耦合。一个程序是用Fortran编写的,另一个是用C++编写的。我需要在每个时间步将信息从Fortran程序发送到C++程序。然而,在将数据发送到C++程序之前,首先需要在Python中对其进行处理。我收到了使用MPI在程序之间传输数据的提示。我现在正尝试将一个简单的字符串从Fortran代码发送到Python,但Python代码卡在接收命令处。我的Fortran代码如下所示:USEGlobalVariablesUSEMPIIMPLICITNONECHARACTER(LEN=10)::astringINTEGER::comm,r

FPGA的ADC信号采集ADS52J90-JESD204B接口

jesd204b实战操作笔记本篇的内容是基于博主设计的jesd204b接口的ADC和FPGA的硬件板卡,通过调用jesd204bip核来一步步在FPGA内部实现高速ADC数据采集,jesd204b协议和xilinx的jesd204IP核相关基本知识已在前面多篇文章中详细介绍,这里不再叙述~在该篇中,博主试图从一个初学者的视角来记录整个开发流程,力求做到每一个读者阅读完该笔记后都能快速开发基于jesd204b接口的FPGA-ADC数据采集,同时也确保几个月甚至几年后的博主本人已经遗忘了jesd204b开发细节后,通过阅读该笔记能够快速重新上手。还是老话说得好:好记性不如烂笔头!硬件工作环境ADC

python - 如何将 numpy 数组顺序强制为 Fortran 样式?

我使用了很多Fortran库来进行一些数学计算。所以numpy中的所有数组都需要Fortran-contiguous。目前我用numpy.asfortranarray()完成了这个.我的问题是:这是告诉numpy数组应该以Fortran格式存储的快速方法还是有更快的方法?是否可以设置一些numpy标志,以便创建的每个数组都采用Fortran样式? 最佳答案 在生成numpy.array对象时使用可选参数order='F'(默认为'C')。这就是我这样做的方式,可能会做与您正在做的相同的事情。关于第2点,我不知道设置默认顺序,但在生成