鍍金池/ 教程/ Java/ Fortran數(shù)組
Fortran還原功能
Fortran關(guān)系運(yùn)算符
Fortran運(yùn)算符優(yōu)先級(jí)
Fortran基本語(yǔ)法
Fortran文件輸入輸出
Fortran嵌套select case結(jié)構(gòu)
Fortran變量
Fortran Cycle語(yǔ)句
Fortran語(yǔ)言環(huán)境設(shè)置
Fortran數(shù)據(jù)類(lèi)型
Fortran數(shù)組
Fortran字符
Fortran if...else if...else 語(yǔ)句
Fortran調(diào)試程序
Fortran編程風(fēng)格
Fortran if...then語(yǔ)句結(jié)構(gòu)
Fortran嵌套循環(huán)
Fortran常量
Fortran循環(huán)
Fortran導(dǎo)出數(shù)據(jù)類(lèi)型
Fortran字符串
Fortran操作函數(shù)
Fortran do...while循環(huán)結(jié)構(gòu)
Fortran內(nèi)部函數(shù)
Fortran數(shù)字精度
Fortran選擇決策
Fortran重塑函數(shù)
Fortran運(yùn)算符
Fortran構(gòu)造函數(shù)
Fortran模塊
Fortran位置函數(shù)
Fortran數(shù)字
Fortran指針
Fortran算術(shù)運(yùn)算符
Fortran exit語(yǔ)句
Fortran動(dòng)態(tài)數(shù)組
Fortran嵌套if結(jié)構(gòu)
Fortran select case結(jié)構(gòu)
Fortran向量和矩陣乘法函數(shù)
Fortran邏輯運(yùn)算符
Fortran if...then...else 結(jié)構(gòu)
Fortran教程
Fortran過(guò)程
Fortran Stop語(yǔ)句
Fortran基本輸入輸出
Fortran do循環(huán)結(jié)構(gòu)
Fortran查詢函數(shù)

Fortran數(shù)組

數(shù)組可以存儲(chǔ)相同類(lèi)型的元件的固定大小的連續(xù)集合。數(shù)組是用來(lái)存儲(chǔ)數(shù)據(jù)的集合,但它往往是更加有用認(rèn)為數(shù)組為相同類(lèi)型的變量的集合。

所有數(shù)組由連續(xù)的存儲(chǔ)單元。最低的地址對(duì)應(yīng)于所述第一元件和所述最高地址的最后一個(gè)元素。

Numbers(1) Numbers(2) Numbers(3) Numbers(4)

數(shù)組可以是一維的(如向量),二維(如矩陣),F(xiàn)ortran允許最多創(chuàng)建7維數(shù)組。

聲明數(shù)組

數(shù)組的尺寸屬性聲明。

例如,聲明含有5個(gè)元素的實(shí)數(shù)的一個(gè)一維陣列命名號(hào)編寫(xiě),

real, dimension(5) :: numbers

數(shù)組的各個(gè)元素通過(guò)指定其下標(biāo)引用。數(shù)組的第一元件具有一個(gè)的下標(biāo)。數(shù)組數(shù)字包含五個(gè)實(shí)變量- numbers(1), numbers(2), numbers(3), numbers(4), 和numbers(5)。

要?jiǎng)?chuàng)建一個(gè)5×5的二維矩陣命名的整數(shù)數(shù)組:

integer, dimension (5,5) :: matrix  

也可以聲明某些明確的下限,例如數(shù)組:

real, dimension(2:6) :: numbers
integer, dimension (-3:2,0:4) :: matrix  

賦值

可以將值分配給各個(gè)成員一樣,

numbers(1) = 2.0

或者,可以使用一個(gè)循環(huán),

do i=1,5
   numbers(i) = i * 2.0
end do

一維數(shù)組元素可直接分配其值使用短手形符號(hào),被稱為數(shù)組構(gòu)造,如,

numbers = (/1.5, 3.2,4.5,0.9,7.2 /)

請(qǐng)注意,不存在括號(hào)“(”和背斜杠“/”之間所允許有空格

例子

下面的例子演示了上面討論的概念。

program arrayProg

   real :: numbers(5) !one dimensional integer array
   integer :: matrix(3,3), i , j !two dimensional real array
   
   !assigning some values to the array numbers
   do i=1,5
      numbers(i) = i * 2.0
   end do
   
   !display the values
   do i = 1, 5
      Print *, numbers(i)
   end do
   
   !assigning some values to the array matrix
   do i=1,3
      do j = 1, 3
         matrix(i, j) = i+j
      end do
   end do
   
   !display the values
   do i=1,3
      do j = 1, 3
         Print *, matrix(i,j)
      end do
   end do
   
   !short hand assignment
   numbers = (/1.5, 3.2,4.5,0.9,7.2 /)
   
   !display the values
   do i = 1, 5
      Print *, numbers(i)
   end do
   
end program arrayProg

當(dāng)上述代碼被編譯和執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:

 2.00000000    
 4.00000000    
 6.00000000    
 8.00000000    
 10.0000000    
         2
         3
         4
         3
         4
         5
         4
         5
         6
 1.50000000    
 3.20000005    
 4.50000000    
0.899999976    
 7.19999981    

數(shù)組相關(guān)某些術(shù)語(yǔ)

下表給出了一些陣列相關(guān)的術(shù)語(yǔ):

術(shù)語(yǔ) 意思
Rank 它的尺寸數(shù)組具有的數(shù)目。例如,對(duì)于數(shù)組命名矩陣,秩為2,并且對(duì)數(shù)組命名號(hào),秩為1。
Extent 它是沿一維中的元素的數(shù)量。例如,陣列數(shù)字具有范圍5和命名矩陣陣列具有在兩個(gè)維度范圍3。
Shape 數(shù)組的形狀是一維整數(shù)數(shù)組,包含在每一維的元素(程度)的數(shù)量。例如,對(duì)于數(shù)組基質(zhì),形狀為(3,3)和數(shù)組數(shù)字它是(5)。
Size 它是元素的數(shù)組中包含的數(shù)量。對(duì)于數(shù)組矩陣,它是9,而對(duì)于數(shù)字陣列,其為5。

數(shù)組傳遞給過(guò)程

可以傳遞一個(gè)數(shù)組到過(guò)程作為參數(shù)。下面的例子演示了這一概念:

program arrayToProcedure      
implicit none      

   integer, dimension (5) :: myArray  
   integer :: i
   
   call fillArray (myArray)      
   call printArray(myArray)
   
end program arrayToProcedure


subroutine fillArray (a)      
implicit none      

   integer, dimension (