Fortran关于默认数组读取的认识
本文摘要(由AI生成):Fortran中数组是重要的数据结构,用于存储同类型数据。Fortran默认采用列优先存储,与常见的行优先不同。在处理数组时,需要正确理解和控制数据的读取和赋值顺序。文章中的例子展示了如何通过隐式循环指定行优先顺序,确保数据正确填充到数组中。这种显式控制读取顺序的方法提高了代码的可读性和准确性,避免了潜在错误。因此,在使用Fortran处理数组时,应理解和正确应用列优先与行优先的概念。有这样一组数据:1536859667451414282345564545341242655667431245607385969382651629这里想将其写入到一个A(4,8)的数组里面。首先定义integer::A(4,8)然后进行读取read(11,*)A那么输出会是怎样的呢?是这样排列的。a(11)a(21)a(31)a(41)a(12)a(22)a(32)a(42)a(13)a(23)a(33)a(43)a(14)a(24)a(34)a(44)a(15)a(25)a(35)a(45)a(16)a(26)a(36)a(46)a(17)a(27)a(37)a(47)a(18)a(28)a(38)a(48)结果并不是如我们所期望,如果不留意,很容易出错,为了确保安全,可以在读取的时候这样写:read(11,*)((A(i,j),j=1,8),i=1,4)!这是一个隐循环那么结果就是自己期望的那样:a(11)a(12)a(13)a(14)a(15)a(16)a(17)a(18)a(21)a(22)a(23)a(24)a(25)a(26)a(27)a(28)a(31)a(32)a(33)a(34)a(35)a(36)a(37)a(38)a(41)a(42)a(43)a(44)a(45)a(46)a(47)a(48)来源:数值分析与有限元编程