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

news/2024/11/17 4:54:48/

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

http://www.ppmy.cn/news/598619.html

相关文章

C与Fortran混合编程

混合编程 1、C调Fortran:判断两个数的最大值,C输入,Fortran判断2、Fortran调C:二维数组运算,Fortran进行相关定义,C运算3、遇到的问题 1、C调Fortran:判断两个数的最大值,C输入&…

fortran并行程序入门(1)

入门俩程序 前言一、简单并行程序?二、Fortran并行的一些注解1.线程通信的一些代码注解 总结 前言 今天,迫不得已还是要学fortran了,不然工作进行不下去。 一、简单并行程序? 本处先加载前人所写的部分代码。 program mainuse…

python调用fortran的3种形式【f2py,动态链接库,os命令】

一、f2py调用fortran 基于 F2PY,在 Python 中调用 Fortran 函数的基本流程是: Fortran 代码使用f2py编译 Fortran 代码,产生动态库在 Python 中通过import引入动态库 注意: F2py 支持有限的 Fortran 子集。 """…

关于gfortran和ifort

最近用fortran写了个程序,分别用gfortran和ifort进行了编译,却发现同样的代码,gfortran可以编译通过,而ifort出错。下面以样例程序加以说明,看看这两个编译器有什么小区别。 代码包括三个源文件:一个主程序…

macOS使用CodeRunner快速配置fortran环境

个人网站:xzajyjs.cn 由于一些项目的缘故,需要有fortran的需求,但由于是M1 mac的缘故,不能像windows那样直接使用vsivf这种经典配置。搜了一下网上主流的跨平台方案,主要是gfortran,最近用Coderunner(主要…

python调用fortran学习笔记

起因:不想把fortran结果手动搬到excel里画图表 先在window系统试, 使用f2py方法的时候总是报错has fortran sources but no fortran compiler found,或者not supported between instances of nonetype and str。 使用dllctypes库的时候&am…

在Linux环境下,使用ifortran编译 带有结构的和.inc头文件 的fortran项目生成.so文件

在Linux环境下,使用ifortran编译 带有结构的和.inc头文件 的fortran项目生成.so文件 1 致谢2 参考文章和手册3 需求描述3.1 文件结构3.2 文件调用关系 4 主程序改造为函数5 项目编译方法5.1 方案一 直接对所有.f90源文件进行编译5.1.1 具体实现5.1.2 注意事项 5.2 方…

Fortran入门——菜鸟级基础语法

前言: 最近需要自学Fortran,本人菜鸟,零基础,这篇文章也是帮助我自己更好的记住一些基础语法。所以,有Fortran基础的,可以跳过本篇啦~ 本文的环境是mingw vscode 哈 1.后缀 Fortran文件的后缀是 .f90(还…