Skip to main content
 首页 » 编程设计

python之fortran和python的解释

2025年05月04日18youxin

现在我正在尝试将 fortran 代码重写为 python 脚本。

在原始的 fortran 代码中,它将实数声明为:

real a(n),b(n),D(64) 

如何在 python 代码中转换此 D(64)? a(n), b(n) 是我使用的数据中的值,但 D(64) 不是。 我需要将它放入我用 f2py 包装的子模块 fortran 代码中。 该子模块代码如下所示。 M 只是一个整数,将在主代码中定义。

  subroutine multires (a,b,M, D) 
  implicit none 
  real a(*),b(*),D(*) 
        . 
        . 
 
  if(nw.gt.1) D(ms+1)=(sumab/nw) 

请您参考如下方法:

如果您的代码正在寻找良好的性能,stay away from python lists .相反,您想使用 numpy 数组。

import numpy as np 
D = np.zeros((64), np.float32) 

这将构造一个 numpy ndarray,其中 64 个元素的 32 位实数初始化为 0。使用这些类型的数组而不是列表可以大大提高 python 代码相对于列表的性能。它们还可以让您更好地控制类型以实现互操作性,并且您会产生更少的开销,尤其是当您使用 cython 时。