了解知识
    首先,FORTRAN数组的索引下界默认情况下为1。
    FORTRAN中的数组是按“列元素优化”的规则进行存储的。C语言中的数组则是按照“行元素优先”的原则进行存储,并且C语言中数组的下标下界固定是从0开始的。在FORTRAN中,使用DO循环进行高效数组操作的代码写法,可能是在C语言中恰恰是最低效的。
    FORTRAN读取文件时,逐行读取文件内容,然后在内存中按列存储。print 和write函数,按列输出。
 
 
 
 
  1. program test1   
  2.     integer temp, b(3,3), c(3,3)   
  3.     temp = 0   
  4.     do 20 i = 1, 3   
  5.         do 20 j = 1, 3   
  6.             temp = temp + 1   
  7.             b(i, j) = temp   
  8.             write(*, *) i, j, '----', b(i, j)   
  9.     20 continue   
  10.     open(100, file = 'test.txt')   
  11.     write(100, *) ((b(i,j),i = 1, 3),j = 1,3)   
  12.     close(100)   
  13.     write(*,*) '###############################'   
  14.     open(101, file = 'test.txt')   
  15.     read(101, *)((c(i, j), i = 1, 3), j = 1, 3)   
  16.     close(101)   
  17.     do 21 i = 1, 3   
  18.         do 21 j = 1, 3   
  19.             write(*,*) i, j, '----', c(i, j)   
  20.     21 continue   
  21. end program test1   
 
 
 
结果:
 
 
  1. [root@c0108 test]# gfortran test1.f90 -o test   
  2. [root@c0108 test]# ./test   
  3.            1           1 ----           1   
  4.            1           2 ----           2   
  5.            1           3 ----           3   
  6.            2           1 ----           4   
  7.            2           2 ----           5   
  8.            2           3 ----           6   
  9.            3           1 ----           7   
  10.            3           2 ----           8   
  11.            3           3 ----           9   
  12.  ###############################   
  13.            1           1 ----           1   
  14.            1           2 ----           2   
  15.            1           3 ----           3   
  16.            2           1 ----           4   
  17.            2           2 ----           5   
  18.            2           3 ----           6   
  19.            3           1 ----           7   
  20.            3           2 ----           8   
  21.            3           3 ----           9   
  22. [root@c0108 test]# cat test.txt    
  23.            1           4           7           2           5           8           3           6           9   
 
标签: Fortran
扩展知识