fortran动态结构体数组的实现

来源:互联网 发布:萨尔浒之战 知乎 编辑:程序博客网 时间:2024/06/10 15:42

举例说明,现在我们要实现这么个功能:

  1. 有很多点,需要以一种简单的方式来对它们的三个坐标值进行处理,那么如果分别定义三个数组,x(i),y(i),z(i)来表示也并非不可,但实在臃肿难看。好在f90开始加入了自定义数据类型的功能,类似于c++中的结构体。
  2. 一开始不知道有多少个点,点的数目是后来根据某种规则知道的。有一个办法:将数组初始化得非常大!当然这很蠢

    我们采用动态结构体数组来实现这个想法。
    完成之后,我们将能这么使用它:
    node(i).x !第i个node的x坐标值
    node(i).y !第i个node的y坐标值
    node(i).z !第i个node的z坐标值

    代码如下所示:

type node_struct    real x,y,zend typetype(node_struct),allocatable,dimension(:)::node !属性为node_struct的名为node的动态数组!该动态数组的分配allocate(node(100)) !分配100个node
0 0
原创粉丝点击