FORTRAN的read语句中END参数的用法

编程入门 行业动态 更新时间:2024-10-11 23:23:57

FORTRAN的read<a href=https://www.elefans.com/category/jswz/34/1770772.html style=语句中END参数的用法"/>

FORTRAN的read语句中END参数的用法

FORTRAN的read语句中END参数的用法

END=子句
Fortran程序设计(第四版)p518:该子句指定了一个可执行语句的标号。当检测到输入文件结束时,将跳转到该标号。END=子句提供了一个处理意外文件结束条件的方法。
书中简单描述了END语句的作用,以下用一个例子说明。
例如在linux系统的一个目录下有input和test.f90两个文件,input文件中的内容如下:

1 2
3 4
5 6
7 8
9 10

test.f90中的源代码如下:

PROGRAM end_test
IMPLICIT NONE
INTEGER::var1 ,var2open(30, "input")
do read(30, *, end =1000)var1,var2write(*,*)var1,var2
end do
1000 write(*,*)"END子句"END PROGRAM end_test

然后在终端中用gfortran或ifort等Fortran编译器进行编译,如

gfortran test.f90

此时该目录下生成一个a.out文件
在终端中输入:

./a.out

运行该可执行程序,此时输出结果:

1 2
3 4
5 6
7 8
9 10
END子句

从这个例子中可以看到,end子句只有在文件内容读取完后才会跳转执行。在这个do循环中,由于没有规定循环的次数,循环将一直运行。而read语句中的END参数给循环指定了一个跳出循环的条件,即文件读取完毕时,跳转到END子句:

1000 write(*,*)"END子句"

然后跳出DO循环。因此在这个例子中,DO循环过程中代码运行的顺序是:

	read(30, *, end =1000)var1,var2write(*,*)var1,var2    !DO1read(30, *, end =1000)var1,var2write(*,*)var1,var2  		!DO2read(30, *, end =1000)var1,var2write(*,*)var1,var2		!DO3read(30, *, end =1000)var1,var2write(*,*)var1,var2		!DO4read(30, *, end =1000)var1,var2write(*,*)var1,var2		!DO51000 write(*,*)"END子句"    !此时imput文件中的内容读取完毕,检测到输入文件结束,代码跳转到end语句执行END PROGRAM end_test

更多推荐

FORTRAN的read语句中END参数的用法

本文发布于:2024-03-14 17:00:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736932.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语句   参数   FORTRAN   read

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!