fortran動態結構體陣列的實現
阿新 • • 發佈:2019-01-29
舉例說明,現在我們要實現這麼個功能:
- 有很多點,需要以一種簡單的方式來對它們的三個座標值進行處理,那麼如果分別定義三個陣列,x(i),y(i),z(i)來表示也並非不可,但實在臃腫難看。好在f90開始加入了自定義資料型別的功能,類似於c++中的結構體。
一開始不知道有多少個點,點的數目是後來根據某種規則知道的。有一個辦法:將陣列初始化得非常大!當然這很蠢
我們採用動態結構體陣列來實現這個想法。
完成之後,我們將能這麼使用它:
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