Fortran语言中read*,和read(*,*)的区别是: read*描述读取一个区域中的字符数据,区域宽度与被读取的字符变量长度相同;read(*,*)描述符是在一个固定宽度w的区域中读取字符数据。
一、Fortran语言中read*,和read(*,*)的区别
read*描述读取一个区域中的字符数据,区域宽度与被读取的字符变量长度相同。read(*,*)描述符是在一个固定宽度w的区域中读取字符数据。如果区域宽度大于字符变量长度,则将该区域最右边部分的数据读入到字符变量中。如果小于字符变量长度,则将该区域中的字符保存到变量的最左边,变量的其余部分用空格填充。
CHARACTER(len=6)::string
INTEGER::input
READ(*,”(I6,T1,A6)”)input,string
!输入:
123456789
!读入:
input=123456
string=’123456′
REAL::a,b,c,d
READ(*,300)a,b,c,d
300 FORMAT(2F10.2,//,2F10.2)
!输入:
1.0 2.0 3.0
4.0 5.0 6.0
7.0 8.0 9.0
!读入:
a=1.0 b=2.0 c=7.0 d=8.0
注意:
如果READ语句在格式结束前用完了所有变量,则格式的使用就停在最后堆区的变量后面。下一个READ语句将从一个新的输入缓冲区开始,原有的输入缓冲区中的其他数据被丢弃。
READ(*,30)i,j
READ(*,30)k,l,m
30 FORMAT(5I5)
!输入:
1 2 3 4 5
6 7 8 9 0
!读入
i=1 j=2 k=6 l=7 m=8
如果在READ语句变量全赋完值之前扫描到了格式的结尾,则程序丢弃当前的输入缓冲区,然后重新获取一个新的输入缓冲区,并在格式中最右边不带重复次数的开始括号处重新开始,WRITE一样。
延伸阅读:
二、Fortran语言发展趋势
Fortran语言是一种极具发展潜力的语言,在全球范围内流行过程中,Fortran语言的标准化不断吸收现代化编程语言的新特性,并且在工程计算领域仍然占有重要地位。
Fortran语言与程序化语言JAVA,C#等高级语言相比,它缺乏创造力。但是,由于很多优异的工程计算软件都是运用Fortran语言编写,例如ANSYS、Marc,为了能够使用这些商业软件的高级功能,用户必须先学会Fortran语言,才能编写应用程序接口。由此决定了Fortran在工程计算领域将长期处于统治地位.
在数值计算中,Fortran语言仍然不可替代。Fortran 90标准引入了数组计算等非常利于矩阵运算的功能。在数组运算时,Fortran能够自动进行并行运算,这是很多编程语言不具备的。运用Fortran语言,用户能够运用很多现成的函数软件包,所以非常便利(MATLAB的早期版本,主要就是为两个知名的Fortran函数包提供程序接口)。