1. 程式人生 > >fortran動態結構體陣列的實現

fortran動態結構體陣列的實現

舉例說明,現在我們要實現這麼個功能:

  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,z
end type
type(node_struct),allocatable,dimension(:)::node !屬性為node_struct的名為node的動態陣列

!該動態陣列的分配
allocate(node(100)) !分配100個node