目录

Fortran语言中read*,和read(*,*)的区别

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函数包提供程序接口)。