2

我对以下示例感到困惑:

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) 是什么意思?梅赛德斯(1,1,1,1)是什么意思?

4

1 回答 1

6

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

mercedes_ay(1,1,1,1)是阵列中的第一辆车。第一辆车mercedes_ay(1,1,1,1)%x的位置也是如此。是第一辆车的首字母。ETC..xmercedes_ay(1,1,1,1)%uvw_0(1)u

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

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

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

于 2012-11-02T13:34:06.663 回答