object - Fortran 派生类型 :

标签 object fortran90 derived-types

我被下面的例子弄糊涂了:

TYPE :: car 
    real :: x,  u ! position, velocity
    real :: y,  v ! 
    real :: z,  w !  
    real,dimension(3) :: uvw_0    ! initial uvw
END TYPE

TYPE (car), pointer:: mercedes
TYPE (car), DIMENSION(m,n,q,r), TARGET :: mercedes_ay 

它看起来像一个对象的实现,但是是什么

TYPE (car), DIMENSION(m,n,q,r), TARGET :: mercedes_ay 

关于 TYPE(car) - DIMENSION(m,n,q,r) 引用了哪些变量? mercedes_ay(1,1,1,1) 是什么意思? mercedes(1,1,1,1) 是什么意思?

最佳答案

它所做的只是声明一个维度为 (m,n,q,r) 的 car 数组。不过,您的示例代码并未定义这些维度。

mercedes_ay(1,1,1,1) 是数组中的第一辆车。所以mercedes_ay(1,1,1,1)%x就是第一辆​​车的x位置。 mercedes_ay(1,1,1,1)%uvw_0(1) 是第一辆车的初始u。等等。

mercedes(1,1,1,1) 是不可能的,因为它没有维度,它是一个标量。所以它只能指向一个标量。相反,它可能会像这样使用:

mercedes => mercedes_ay(1,1,1,1)

这意味着您将 mercedes 指向数组中的第一辆车。它基本上充当别名。

关于object - Fortran 派生类型 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13196201/

相关文章:

Fortran 派生类型运算符

object - 在 rdlc 中绑定(bind)子对象属性(报告)

c++ - 临时对象在 C++ 中的行为如何?

arrays - 从其他数组继承大小的简洁表示法?

arrays - 向量化访问非连续内存位置的循环

fortran - 在 Fortran 中导出宏

javascript - 如何在 Node 中缓存使用 fetch 的异步函数中的数据

javascript - 我是否将映射变量正确设置为获取的 json?

fortran - 在 Fortran 中多次循环后访问派生数据类型

fortran - gfortran 成员析构函数