Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python';s相当于;“等价性”;Fortran中的概念?_Python_Porting_Equivalence - Fatal编程技术网

Python';s相当于;“等价性”;Fortran中的概念?

Python';s相当于;“等价性”;Fortran中的概念?,python,porting,equivalence,Python,Porting,Equivalence,我对将旧的Fortran代码重写为Python感兴趣。该代码用于求解任何一般场变量,称之为F(速度、温度、压力等)。但要解决每个变量,我们必须将该变量的等价性定义为F 例如,类似这样的内容: 等价(F(1,1,1),TP(1,1)),(折叠(1,1,1),TPOLD(1,1)) 是否有上述概念的Python版本 据我所知,在python中无法操纵内存使用。 您可以简单地使用列表 F=[] 及 当你这样做的时候 F=FOLD F和FOLD将指向相同的数据。 我建议使用numpy和scipy

我对将旧的Fortran代码重写为Python感兴趣。该代码用于求解任何一般场变量,称之为
F
(速度、温度、压力等)。但要解决每个变量,我们必须将该变量的
等价性定义为
F

例如,类似这样的内容:

等价(F(1,1,1),TP(1,1)),(折叠(1,1,1),TPOLD(1,1))

是否有上述概念的Python版本

据我所知,在python中无法操纵内存使用。 您可以简单地使用列表

F=[]

当你这样做的时候

F=FOLD 
F和FOLD将指向相同的数据。
我建议使用numpy和scipy来创建解算器,并使用python概念来提高效率,而不是试图模仿fortran概念。尤其是非常老的问题。

(我不理解这里提到的Python概念,但有一个简短的评论:)Fortran的
等价性
语句不一定使
F
TP
指向相同的数据。相反,它使(部分)
T
和(部分)
TP
指向同一事物。也就是说,两个数组的长度可能不同,只有重叠部分共享内存。答案的这个Python构造是否具有相同的效果?不,它没有。它将指针(可以说)从一个列表移动到另一个列表。@Michael,我不会将
F
FOLD
等同起来。相反,我必须将
F
等同于
T
FOLD
等同于
tell
F
FOLD
被定义为三维数组。由于变量太多(速度、温度、压力等),很难单独求解每个变量,因此他使用了
等效的思想来求解每个变量,如
F(:,:,1)=T
F(:,:,2)=v
F(:,:,3)=p
等…我想我必须做一些类似于上面的事情,但不完全基于
等价性。可能类似于
F(:,:,1)=T
F(:,:,2)=v
F(:,:,3)=p
。然后用循环索引作为数组
F
的第三维,在一个循环中求解它们。有人能告诉我上述方法是否合适,或者有更好的方法吗?
F=FOLD