Fortran输入输出格式控制
第六讲 Fortran数据结构及输入、输出
将参数转换为复数型。 将参数转换为复数型。
将参数转换为复数型。结
REAL(x) REAL(x) IMAG(x) IMAG(x) CONJG(x) CONJG(x)
求x的实部。 的实部。 同AIMAG(x)。 AIMAG(x)。 (x) 求x的共轭复数。 的共轭复数。
AIMAG(x) 的虚部。 AIMAG(x) 求x的虚部。
字符按先后排列成某种次序, 字符按先后排列成某种次序,每个字符在排序中有确定的位 character(len= 6) first 称为排序号 有了排序号, 排序号。 置,称为排序号。有了排序号,字符之间就可以比较大小及 character(len=10) second 相等与否,组成关系表达式。 相等与否,组成关系表达式。
6.1 字符型数据/ A(11:) 11: A(字符型数据/子字符串 -> 11
Fortran数据结构及输入 数据结构及输入、 第六讲 Fortran数据结构及输入、输出
字符型数据
字符运算符: 字符运算符:// 子字符串 运算符 内部函数 例子
program ex060202 ,系统都把本机上可以使用的各种 关系表达式:对每种机器, 关系表达式:对每种机器
end
Fortran数据结构及输入 数据结构及输入、 第六讲 Fortran数据结构及输入、输出
字符型数据
函数名 子字符串 运算符 内部函数 说明
LGE(s1,s 按 ASCII码值判定字符串 。 LGE(s1,s2 * ASCII码 码值判定字符串s ASCII 码值判定字符串 转换为对应字符。 ACHAR(n)2)将ASCII码n转换为对应字符s1 大于等于 字符串s 字符串s2。 ADJUSTL(string)* 将字符串string 左对齐, string左对齐 ADJUSTL(string)* 将字符串 string 左对齐 , 即去 掉左端空格* 按 ASCII 码值判定字符串 s1 大于字符 LGT(s1,s2 ASCII码值判定字符串 码值判定字符串s LGT(s1,s2) 串s2。 ADJUSTR(string)* 将字符串string 右对齐, string右对齐 ADJUSTR(string)* 将字符串 string 右对齐 , 即去 掉右端空格。string:CH(*),结果类型同string 结果类型同string 掉右端空格。string:CH(*),结果类型同1 小于等于 LLE(s1,s2 ASCII码值判定字符串 码值判定字符串s LLE(s1,s2)* 按 ASCII 码值判定字符串 s 字符串s ASCII码 转换为对应字符。 字符串 CHAR(n)* s2。 CHAR(n)* 将ASCII码n转换为对应字符。 IACHAR(c)* 将字符c转换为对应的ASCII码。 ASCII码 IACHAR(c)** 将字符c转换为对应的ASCII小于字符 LLT(s1,s2 ASCII码值判定字符串 码值判定字符串s LLT(s1,s2) 按 ASCII 码值判定字符串 s1 串s2。 ICHAR(c)* 将字符c转换为对应的ASCII ASCII码 ICHAR(c)* 将字符c转换为对应的ASCII码。
fortran数据格式
2. Fw.d 以w个字符文本框来输出浮点数,小数部分占d个字符宽,输出文本框的设置不中会出现*号。如:write(*,"(F9.3)") 123.45 输出:_ _123.450 ; 前面两空格,后补0
3. Ew.d[Ee] 用科学计数法,以w个字符宽来输出浮点数,小数部分占d个字符宽,指数部分最少输出e个数字。如:write(*,"(E15.7)" 123.45 输出:_ _0.1234500E+03 ; 输出不中15个字符的部分补上空白,小数部分不足7位的会补0
14. 另有kP 、Bw[.m] 、Ow[.m] 、Zw[.m]用的较少,在需要时可以查询。
7. Lw 以w个字符宽来输出T或F的真假值。write(*,"(L4)") .true. ;程序会输出3个空格和一个T
8. / 换行输出。write(*,"(I3//3)") 10,10 程序会得出4行,中间两行空格是从除号"/"得到的。
9. Tc 把输出的位置移动到本行的第c个字节。
10. TLn 输出位置向左相对移动n个字节。
11. TRn 输出位置向左相对移动n个字节。
12. SP、SS 加了SP后,输出数字时如数值为正则加上"+",SS则是用来取消SP的功能。
如 write(*,"(SP , I5 , I5 , SS , I5)") 5 , 5 , 5 输出:+5 +5 5
13. BN、BZ BN定义在输入时没有数据的字节代表没有东西。BZ定义在没有数据的字节代表0
第三章 Fortran基础、输入输出
第三章 Fortran程序设计基础、 输入输出及声明
二、Fortran的数据类型和数学表达式 1. Fortran的数据类型 (2)浮点数(Real) 浮点数的类型又分两种,单精度型和双精度型。 在个人计算 机中占用 有效位数 可记录的 最大数值 最小数值
单精度
双精度
32bits (4bytes) 64bits (8bytes)
Fortran是不区分大小写的语言。 指变量名和执行命令不区分,字符串是区分大小写的。
第三章 Fortran程序设计基础、 输入输出及声明
一、字符集和书面格式 2. 书面格式
Free Format(自由格式)
Fortran程序代码为以*.F90为扩展名的文件
Fixed Format(固定格式) Fortran程序代码扩展名为*.F或*.FOR的文件
使用2个bytes来存放整数的意思。
若在声明时没有特别赋值长短,通常编译器会默认使用长整型。
第三章 Fortran程序设计基础、 输入输出及声明
四、声明
1. 整数类型
若声明多个整型变量时,可以写在同一行,如 integer a,b,c 在Fortran中,声明变量时要注意的几个原则: (1)变量的名称以使用英文字母为原则,可以内含下划线或数字,但前缀必须 是英文字母。 (2)变量名字的长度,在77标准中最起码支持6个字符长,90标准中最起码支 持31个字符长。也就是说在Fortran77种变量长度最好是在1~6之间,在
1. 乘幂要连用两个星号,不能像手写的时候只要把数字写成上标 就行了,例如22必须写成2**2。 2. 乘号不能省略,手写的算式中(A+B)(C+D)和(A+B)*(C+D)是一 样的,但写程序时只容许第2种写法,所以像2*A也不能写成2A。 3. 除法用计算编写时没有下面的表示方法:
fortran中write的用法
fortran中write的用法在Fortran编程语言中,write是一个很重要的指令,用于将数据输出到屏幕、文件或其他设备。
它的用法非常灵活,可以满足各种不同的需求。
首先,我们来了解一下write的基本语法。
在Fortran中,write的语法如下:```fortranwrite(format) [variable_list]```其中,format是一个控制写入输出的格式的字符串。
它用特定的格式指令来定义输出的样式,比如整数、浮点数、字符串等类型的输出。
variable_list是要输出的变量列表,可以是单个变量或多个变量。
下面是一些常见的write的例子:1. 简单的输出整数:```fortraninteger :: num = 10write(*, '(I4)') num```上面的代码将整数num的值以4位整数的格式输出到屏幕。
2. 输出浮点数:```fortranreal :: value = 3.14159write(*, '(F6.2)') value```上面的代码将浮点数value的值以6位宽度、保留2位小数的浮点数格式输出到屏幕。
3. 输出字符串:```fortrancharacter(10) :: name = 'Fortran'write(*, '(A)') name```上面的代码将字符串name的值以字符序列的格式输出到屏幕。
4. 输出到文件:```fortraninteger :: num = 10integer, parameter :: unit = 10open(unit, file='output.txt')write(unit, '(I4)') numclose(unit)```上面的代码将整数num的值以4位整数的格式输出到名为output.txt的文件中。
Fortran程序设计:第六课 格式化输出
INTEGER :: i DO i=1,10 WRITE (*,'(10X,A4,I2,A2,F8.6)') 'sin(',i,')=',sin(3.141593*i/180) END DO WRITE (*,*) '---------1---------2---------3---------4'
INTEGER :: i=-12,j=4,k=-12345 WRITE (*,'(2I5,I6,I10)') i,i+12,j,k WRITE (*,'(2I5.0,I6,I10.8)') i,i+12,j,k WRITE (*,'(2I5.3,I6,I5)') i,i+12,j,k WRITE (*, '(T1,A40)') '---------1---------2---------3---------4'
所以,用E表示的时候,要特别注意表示域的宽度问题,一般至少满足如下 表达式:
w≥d+7
rESw.d
实数输出----ES描述
ES描述和E描述的区别在于尾数的选取不同,ES描述是用的科学记数法,尾 数选取范围是1.0~10.0,这种表示方式更适合科研和工程人员
ES表示:±d.dddddddE ±ee 可以看出,同样宽度下,ES可以比E多一个有效位
实数输出-----F描述符
rFw.d
d表示小数点右边的位数
➢实数在其显示域内右对齐 ➢如果d值小于数据的小数位数,那么显示前会被四舍五入 ➢如果d值超出数据的小数位数,那么在小数最后补齐足够的0 ➢如果实数太大,给定的域放不下,那么用*填充
FORTRAN程序设计-格式输入输出
WRITE(*,10) 2345,67.8 格式说明包含3种编辑描述符X,I和F。分别用I4和F5.1来控制2345和67.8的输出格式, 1X也有特定的用途。
格式说明语句可以放在程序单位语句(主程序语句PROGRAM,子程序语句FUNCTION 或SUBROUTINE)之后,END语句之前的任何位置。
(1)格式说明符是一个“*”,表示输入使用表控格式。 (2)格式说明符是一个字符常量。例如 READ(*,'(I3,2I4)') I,J,K (3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输 入形式。
u是设备号,用于指明具体使用的输入设备。u可以是一个无符号整常 量,也可以是一个整型变量或整型表达式,还可以是星号“*”。 “*”表示 由计算机系统预先约定的外部设备,一般为键盘。
(1)格式说明符是一个“*”,表示输出使用表控格式。这在前面几章已作介绍。 (2)格式说明符是一个字符常量。例如
PRINT '(1X,2F7.3)',X,Y (3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输出形式。 例如 PRINT 100,A,B,C 100 FORMAT(1X,F9.4,2F7.3)
•FORTRAN程序设计-格式输入输 出
6.4常用的编辑描述符
编辑描述符分成两大类:可重复编辑描述符和非重复编辑描述符。
可重复编辑描述符
可重复编辑描述符是用来编辑输入输出项的输入输出格式的,所以它们 总是与输入输出项相对应。不同类型的输入输出项使用不同的编辑描述 符。FORTRAN提供的内部数据类型有整型、实型、复型、字符型和逻 辑型。相应地,编辑描述符也分五类介绍。
fortran print用法
fortran print用法Fortran编程语言是一种高级的程序设计语言,广泛应用于科学计算、工程计算和数据处理等领域。
其中,print函数是Fortran编程语言中最常用的函数之一,用于输出数据到控制台或文件中。
Fortran的print函数有很多用法,包括格式化输出、指定输出文件、控制输出位置等。
下面我们将对Fortran中print函数的用法进行详细介绍。
1. 格式化输出格式化输出是print函数中最常用的用法之一。
格式化输出可以将数据按照一定格式输出,使输出的数据更加清晰、易读。
格式化输出可以使用格式字符串,格式字符串中包含一些特殊的控制字符,用于指定输出数据的类型、精度、宽度等信息。
格式化输出通常的语法为:```print *, format_string, variable1, variable2, ...```下面是一个简单的例子,演示如何使用Fortran的print函数进行格式化输出:```program format_outputimplicit noneinteger :: a,b,ca = 10b = 20c = a + b! 使用格式化输出将a、b、c的值输出到控制台上print *, "a = ", a, ", b = ", b, ", c = ", cend program```输出结果为:```a = 10 ,b = 20 ,c = 30```在这个例子中,我们使用了format_string字符串将输出结果进行了格式化,其中用逗号隔开的每个变量都输出了一个空格,这让输出结果更加清晰。
在Fortran中,可以通过指定格式字符串来改变输出结果的格式。
下面是一些常用的格式控制符:- %d: 整数类型- %f: 浮点数类型- %g: 通用类型(基于数据的大小选择%e或%f)- %c: 字符类型- %s: 字符串类型```program format_outputimplicit nonereal :: num1,num2,num3num1 = 1234.5678num2 = 45.6789num3 = 0.2345678! 使用格式化输出将num1、num2、num3的值输出到控制台上print *, "num1 = ", num1, ", num2 = ", num2, ", num3 = ", num3! 使用格式化输出将num1、num2、num3的值按照不同的格式输出到控制台上print *, "num1 = ", num1, " (default)"print *, "num2 = ", num2, " (f6.2)", FMT="(f6.2)"print *, "num3 = ", num3, " (g10.5)", FMT="(g10.5)"end program``````num1 = 1234.56787 , num2 = 45.6788902 , num3 = 0.234567806num1 = 1234.56787 (default)num2 = 45.68 (f6.2)num3 = 0.23457 (g10.5)```在上面的程序中,我们使用了默认的格式化输出来输出num1、num2、num3的值。
fortran format用法
fortran format用法1.引言1.1 概述Fortran是一种编程语言,由IBM公司于1950年代开发。
它被广泛应用于科学计算和数值分析领域,尤其在大规模计算和高性能计算方面表现出色。
Fortran语言的一个重要特性是它的格式化输出功能,即Fortran Format。
Fortran Format是一种格式控制语句,用于指定数据的输出或输入格式。
它可以精确地控制数据的显示方式,包括字段宽度、数值精度、对齐方式等。
通过使用Fortran Format,程序员可以轻松地格式化输出数据,使其更易于阅读和理解。
在Fortran程序中,可以使用一些特定的符号和代码来定义格式控制语句。
例如,可以使用A表示字符型数据、I表示整型数据、F表示浮点型数据等。
通过在格式控制语句中使用这些符号和代码,可以将不同类型和长度的数据格式化为适合打印或写入文件的形式。
除了基本的数据类型,Fortran Format还提供了许多其他功能,如控制字段宽度、指数表示法、对齐方式、填充字符等。
这些功能使得程序员能够自定义数据的输出格式,满足特定需求。
Fortran Format在科学计算和数据处理中扮演着重要的角色。
它可以帮助程序员更好地展示和共享计算结果,提高代码的可读性和可维护性。
此外,由于Fortran Format提供了丰富的格式化选项,它还可以用于数据文件的读写操作。
本文将介绍Fortran Format的基本概念和常用用法。
首先,我们将讨论Fortran Format的基本原理和语法规则。
然后,我们将探讨一些常见的格式化选项,包括字段宽度控制、数值精度控制和对齐方式控制等。
最后,我们将总结Fortran Format的重要性,并展望它在未来发展中的潜力。
通过本篇文章的阅读,读者将能够全面了解Fortran Format的用法和作用,提高对Fortran编程的理解和应用能力。
无论是初学者还是有一定经验的程序员,都可以从中获益,使其编写的Fortran程序更加出色和实用。
fortran 输出浮点数格式定义
Fortran 输出浮点数格式定义1. 介绍Fortran是一种广泛用于科学计算的编程语言,它支持多种数据类型,包括整数、浮点数等。
在Fortran中,输出浮点数时可以通过格式定义来控制其显示方式和精度。
本文将详细介绍Fortran中输出浮点数的格式定义方法。
2. 基本格式在Fortran中,可以通过使用WRITE语句来输出浮点数。
在WRITE语句中,可以使用格式说明符来定义浮点数的输出格式。
格式说明符由一个字母和一个可选的数字组成,用于指定输出格式的类型和精度。
以下是一些常用的格式说明符和其对应的输出格式:•F: 固定格式,输出浮点数的整数部分和小数部分,小数部分的位数由宽度字段指定。
•E: 科学计数法格式,输出浮点数的指数部分。
•EN: 科学计数法格式,输出浮点数的指数部分,并指定小数部分的位数。
•ES: 科学计数法格式,输出浮点数的指数部分,并在指数前添加一个空格。
•G: 通用格式,根据浮点数的大小动态选择使用F格式或E格式。
3. 格式说明符的使用格式说明符可以与宽度字段和精度字段一起使用,以进一步定义浮点数的输出格式。
3.1 宽度字段宽度字段用于指定输出的最小宽度,即输出的字符数。
宽度字段可以是一个数字,也可以是一个*,表示宽度由后面的参数指定。
例如,F10.2表示输出的宽度为10个字符,其中包括整数部分、小数点和小数部分,小数部分的位数为2。
3.2 精度字段精度字段用于指定输出的小数部分的位数。
精度字段可以是一个数字,也可以是一个*,表示精度由后面的参数指定。
例如,F10.2表示输出的宽度为10个字符,小数部分的位数为2。
3.3 示例以下示例展示了不同格式说明符的使用及其对应的输出结果:PROGRAM output_exampleREAL :: number1 = 123.456789REAL :: number2 = 0.123456789! 固定格式,宽度为10,小数部分位数为2WRITE(*, '(F10.2)') number1 ! 输出: 123.46WRITE(*, '(F10.2)') number2 ! 输出: 0.12! 科学计数法格式,宽度为10WRITE(*, '(E10.2)') number1 ! 输出: 1.23E+02WRITE(*, '(E10.2)') number2 ! 输出: 1.23E-01! 通用格式,宽度为10WRITE(*, '(G10.2)') number1 ! 输出: 123.46WRITE(*, '(G10.2)') number2 ! 输出: 0.12END PROGRAM output_example4. 其他格式选项除了上述基本格式外,Fortran还支持其他一些格式选项,以进一步控制浮点数的输出。
Fortran程序设计(第4章-数据的输入与输出)
X=45.7 Y=289.7 WRITE(*,100)X,Y 100 FORMAT(2HX=,F5.1,4H□□Y=,F6.2) END 结果:X=□45.7□□Y=289.70 也可FORMAT( ‘X=’,F5.1,‘□□Y=’,F6.2)
3.斜杠编辑描述符
作用:结束本记录的输出并开始下一个记录的输出
功能1:在输出时产生空格
1.不需变量对应
2.是不可重复的编辑符
nX
n<0 左移光标 n>0 右移光标
K=123
L=2001
A=34.5
WRITE(*,’(I3,I4,F4.1)’)K,L,A
结果:123200134.5
将格式串改为: ‘(I3,2X,I4,3X,F4.1)’ 结果:123□□2001□□□34.5
§4.3 复型数的输入输出
输入复数,用2Fw.d或‘(Fw.d,Fw.d)’
如:(F8.3,F5.2)
1.3456,37.56
(1.3456,37.56)
5768D-1,2.5E3
(0.577,2500.00)
!!无小数点,则认为时5.678*0.1
§4.4 逻辑型数的输入输出
格式:rLw 功能:逻辑值的输入输出 规则:
输出一个字母,在字段最右段,前面补空格 输入时按宽度读取,以第一个字母作为逻辑值
§4.5 字符型数据的输入输出
格式1:[r]Aw 1.字符型数据的输入 字符变量的长度L对格式起一定的作用
若w>L,仅保留右边的L个字符 若w<L,右边加L-w个空格 例: CHARATER X*4,Y*10 READ(*,100)X,Y 100 FORMAT(A5,A7) END 输入:BASICFORTRAN
Fortran语言 第四章 输入输出
未声明长度的变量,通常编译器默认为长整型;有的编译器支持1 byte的 整数变量。
另外的形式: integer a, b, c integer:: a, b=3 !声明语句中赋初值
注意:整型变量只保存整数,实数的小数 点后数据会自动省略
变量名的隐含约定
• Fortran标准规定:凡是以字母I, J, K, L, M, N六个 字母开头的变量,未经声明默认为整型,其他字母 开头的变量为实型。
integer*4
a !fortran 77 传统作法
integer(4)
a !fortran 77 传统作法
短整型(2个字节)
Integer(kind=2) a
integer*2
a
integer(2)
a
!fortran 90 添加 !fortran 77 传统作法 !fortran 77 传统作法
Fortran 95 程序设计
第三章 输入输出及声明
程序结构
程序开始
PROGRAM MAIN MAIN是自定义名称
…….
主程序代码
WRITE(*,*) “HELLO”
……
程序终止
STOP
此行可省略
主程序代码结束 END
END
( FORTRAN 77)
END PROGRAM
END PROGRAM MAIN
WRITE(*,*) “MY NAME IS “”PETER”.”
WRITE(*,*) ‘That’’s right’
注意:
1)每执行完一个write命令后,会自动换行 2)Fortran 77只能使用单引号封装的字符串 3)引号封装的字符串中含有同类的引号要连
用才能输出
Fortran数据结构及输入输出
CMPLX(x[,y][,kind]) 将参数转换为复数型。 结果:C(kind)。
DCMPLX(x[,y]) 果:C(8)。 6.1 复数型数据运算及内部函数
将参数转换为复数型。结
REAL(x) 求x的实部。
AIMAG(x) 求x的虚部。
IMAG(x) 同AIMAG(x)。
CONJG(x) 求x的共轭复数。
定义 声明1 声明2 声明3 说明
6.2 数组
数组是类型相同的组变量的有序集合。 任何一组类型相同且有序的数据都可使用数组存储。 如:保存30名学生成绩数据的一组变量:s1,s2,s3,…,s30
REAL s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15 这组变量可用数组s取代,数组元素s(1),s(2),…,s(15),分别取代 s1,s2,…,s15。
REAL s(15) 数组分静态数组和动态数组
静6.2 数态组/定数义 组:在编译时分配存储单元,运行时数组大小不能改变。 INTEGER num(5) !在编译时分配5个数组元素存储单元(20字节) 动态数组:在程序运行时分配存储单元,运行时数组大小可改变。 INTEGER,ALLOCATABLE :: num(:) !在编译时不分配存储单元 ALLOCATE(num(5)) !在运行时分配5个数组元素存储单元(20字节) 数组大小为数组元素个数。 数组声明有3种方式:类型声明语句、DIMENSION语句、DIMENSION属性
第六讲 Fortran数据结构及输入、输出
1. Fortran 数据结构 2. 数组 3. 数据有格式输入输出概述 4. 格式说明与格式编辑符 5. 整数有格式输入输出 6. 实数有格式输入输出 7. 复数有格式输入输出 8. 字符串有格式输入输出 9. 逻辑值有格式输入输出 10.二、八、十六进制数据有格式输入输出 11.任意类型数据有格式输入输出 12.不可重复编辑符 13.纵向走纸控制 14.有格式输入输出应用举例 15.作业
Fortran PPT课件-(4简单的输入输出
1.6 简单的输入与输出
注意: 输入数据的个数要和输入表中变量的个 数相等; 输入字符数据时!若输入的字符串中含有 空格或逗号!则这个字符串一定要用撇号 括起来。
1.6 简单的输入与输出
表控输出语句
输出语句的形式
WRITE(unit=u,*)输出表 PRINT*,输出表 √ WRITE*,输入表 × write(unit=5,*)a,b,c = write(5,*)a,b,c write(*,*)a,b,c print*, a,b,c ! 从显示屏幕输入 u为输入设备号,*号表示表控输出,unit= 可以省略; 输出表可以是变量、数组元素名、数组名、 子串名等,它们之间用逗号分隔开。
1.6 简单的输入与输出
表控输入语句
输入语句的形式 READ(unit=u,*)输入表 READ*,输入表 read(unit=5,*)a,b,c = read(5,*)a,b,c read(*,*)a,b,ห้องสมุดไป่ตู้ ! 从键盘输入 u为输入设备号,*号表示表控输入,unit= 可以省略; 输入表可以是变量、数组元素名、数组名、 子串名等,它们之间用逗号分隔开。
Fortran输入输出格式控制
Fortran输入输出格式控制Open, Read and Write in Fortran1:write(*,*)"string";write(unit=*,FMT=*)"string";write(unit=6,FMT=*)"string"。
以上等价,6是默认输出位置,即屏幕。
2:print*,"string"。
Print只能对屏幕输出。
3:integer(kind=4) a !f90;integer*4 a !f77;integer(4) a !f77。
以上等价。
real(kind=4) a !f90;real*4 a !f77;real(4) a !f77。
以上等价。
4:f77,变量名长度1~6;f90,变量名长度1~31。
5:read(*,*)"string";write(unit=*,FMT=*)"string";write(unit=5,FMT=*)"string"。
以上等价,5是默认输入位置,即键盘。
6:FORMAT(http://202.118.74.226/fortran/pages/730.htm)6.1 格式输出格式输出语句由两部分组成:输出语句和输出格式语句。
输出语句的一般形式为:WRITE(*,L) 输出表列或:PRINT L 输出表列其中:* 代表隐含的输出设备,L 指输出格式语句的标号。
输出格式语句的一般形式:L FORMAT(1X,S)其中:L 输出格式语句的标号,1X 纵向走纸符,S 输出格式,用不同的―格式编辑符‖(简称―编辑符‖)来实现指定的输出格式,各格式间用逗号相隔。
FORMAT语句又叫―格式语句‖,是一个非执行语句,本身不产生任何操作,只是提供输入或输出的格式。
FORMAT语句可以出现在程序的任何地方(但必须在PROGRAM语句之后和END语句之前,如果在子程序中用FORMAT语句,则应在子程序定义语句之后)。
FORTRAN90第四章 格式输入输出
如果格式说明中有连续的相同的编辑符,可 以 用 重 复 系 数‚ 合 并 同 类 项‛ 。 例 :FORMAT(1X,F8.3,F8.3,F8.3,F8.3) 等 价 于 FORMAT(1X,4F8.3) 而 FORMAT(1X,I2,E10.3,I2,E10.3) 等 价 于 FORMAT(1X,2(I2,E10.3))
输入时,如果数据超过w列,则只截取输入数 据的w列,因此,输入数据必须不超过w列。在 输入数值型数据时,w列内的空格不起作用,但 是,在负数的负号后留空格会出错。 输入/输出数据时,要选择合适的w值。 输 入 时 用 READ,FORMAT 语 句 READ(*,100)A,B,I
100 FORMAT(F6.3,F7.2,I5) 输出时用WRITE,FORMAT语句 WRITE(*,100)I,A,J,B
要输出的数 1234 789 -12345 88486 编辑符 I5 I8.4 I8.3 I4 输出结果 □1234 □□□□0789 □□-12345 **** 说明
实型编辑符用 Fw.d ,Ew.d[Ee] 和 Gw.d ,其中d为 小数位数。小数部分按‚四舍五入‛或右边补0 的办法保证总有d个数字。 F编辑符用于实数的小数形式,小数形式很 直观,但很大或很小的数会给F格式带来麻烦。 例: 实数3.14159 F8.3输出 3.142左边空3格 输入 3142左边空4格,不要用小数点,因为 F8.3已经说明右边三个数字是小数。如果输 入的数据带有小数点,则d不起作用.
例:READ(*,11) I,A,K,B,N 11 FORMAT(I5,F9.3) 格式说明中编辑符不够用,则另开一记录 并从头引用格式说明。这就可能引起死循 环。 本例数据要分三行。 例:WRITE(*,81) K 81 FORMAT(1X,’Dead Loop’) 出现死循环
fortran第7章 输入和输出
*指数形式输出 指数形式用标准形式输出即输出的整数位为0,小数点 指数形式用标准形式输出即输出的整数位为0,小数点 0, 后是一非零的数 例: 6 PRINT 6,A,B,C FORMAT(1X,E10.3,E13.4,E13.4)
若A=-1.87,B=0.178,C=-178.558 A=-1.87,B=0.178,C=输出: 输出: -0.187E+01 1 2 3 4 0.1780E+00 2 4 4 -0.1786E+03 2 4 4
例3: 自带小数点 READ 10,A,B 10 FORMAT (F6.2,F6.2) 输入记录: 输入记录: 29.6720.8946 F6.2 F6.2 计算机赋值的过程: 计算机赋值的过程: 1.根据W的值 取前6位数字字符 取前6 1.根据W 根据 2.将其赋给输入变量表列中的第一项 2.将其赋给输入变量表列中的第一项 3.后面的情况以此类推于是 3.后面的情况以此类推于是 A=29.672 B=0.8946
(2) 格式输入 READ (*,10) A,B,C,D 10 FORMAT(L3,L4,L1) 输入数据: 输入数据: T T F F
结果A,B .TRUE.,C,D为 结果A,B 为.TRUE.,C,D为.FALSE. 例1: 编辑符 L3 L5 L4 L6 L4 L3 L1 L5 输入字符 T FALSE TRUE .TRUE. .FAL FFF F F T F 输入的值 .TRUE. .FALSE. .TRUE. .TRUE. .FALSE. .FALSE. .FALSE. .FALSE.
注:
自带小数点输入时,d不起作用.即自带小数点优先. ,d不起作用 1. 自带小数点输入时,d不起作用.即自带小数点优先. w,d的取值一定要根据实际来 的取值一定要根据实际来, 2. 对w,d的取值一定要根据实际来,否则会出现大数出 错,小数印丢,但w取太大也会发生难以表示的情况, 小数印丢, 取太大也会发生难以表示的情况, 如 7.2*1036,7.2*10-36 ,这就只有用 E 编辑符来表 示了. 示了.
hh-fortran-06格式输入输出
X编辑符 H编辑符 撇号编辑符 斜扛编辑符 纵向控制符 编辑符的重复 编辑符使用的补充说明
非重复编辑描述符X编辑符
用于在输入输出的常数之间插入空格。 一般格式: nX 其中:n>0,用于指明从当前位置向右跳过n个字符位置。这 里n不能省略,即使n为1,也要写成1X。例如
COMPLEX CM READ(*,10) CM WRITE(*,20) CM 10 FORMAT(2F5.2) 20 FORMAT(1X,2F7.2) 语句执行时,从键盘输入1234567890,则输出为: □123.45□678.90
逻辑型数据编辑描述符
逻辑型数据的输入输出用L编辑符。其一般格式是:
格式说明符有以下三种形式: (1) 一个“*”,表示输出使用表控格式。前面已介绍。 (2) 一个字符常量。例如 PRINT '(1X,2F7.3)',X,Y (3) 是格式语句(FORMAT)的语句标号。最常用。
例如: PRINT 100,A,B,C
100 FORMAT(1X,F9.4,2F7.3) 格式编辑符:
10 FORMAT(1X,A7,A8) 输出为: FORTRAN□PROGRAM
编辑描述符总结
FORTRAN 90提供的编辑描述符很多,掌握共同 特点就不难了。
可重复编辑描述符是用来决定对应输入输出项的 输入输出格式的,其中都有字段宽度w,而且对于 输入都是从输入记录中取w个字符,对于输出都是 在输出记录中输出w个字符。
编辑描述符总结
问题:如何记忆? ➢在输入时,取得的w个字符按什么规则加工后传送 到对应的输入项。 ➢在输出时,当输出项实际包括的字符的个数和编 辑符中所确定的字段宽度(对于数值型数据还有小数 位数)之间不相符时,如何输出? ➢可分数值型、逻辑型、字符型进行总结。
Fortran教程第六章格式输入输出
当输入的是指数形式时,如果E前面的数字部分含有小数
点,则d不起作用。如果数字部分不含有小数点,则自动 按d决定数字部分小数点的位置。 例如 READ(*,10)A,B 10 FORMAT(F8.0,F7.2) 执行语句时,如从键盘输入72.48E-3□□□□2E2,则A、 B的值分别为0.07248、2.0。
6.3 格式说明语句
FORTRAN用专门的格式说明来描述输入输出的格式。 尽管格式说明可以直接放在输入输出语句中,但为了使
程序的可读性更强,最好使用格式说明语句来进行格式
说明。格式说明语句的一般格式是: n FORMAT(格式说明)
其中n是语句标号,FORMAT语句一定带有语句标号, 以便同格式输入输出语句配合使用。格式说明由若干个
编辑描述符组成,编辑描述符之间用逗号分隔。例如
10 FORMAT(1X,I4,F5.1)
格式说明语句是非执行语句,它只是给输入输出语句提
供数据的格式描述。在程序运行过程中,由输入输出语句根 据格式说明语句提供的数据格式描述,实现数据的格式控制。 单独的格式说明语句在程序中不器任何作用。例如 10 FORMAT(1X,I4,F5.1)
6.4常用的编辑描述符 编辑描述符分成两大类: 可重复编辑描述符
非重复编辑描述符。 6.4.1 可重复编辑描述符 可重复编辑描述符是用来编辑输入输出项的输入输出格 式的,所以它们总是与输入输出项相对应。不同类型的输入 输出项使用不同的编辑描述符。FORTRAN提供的内部数据
类型有整型、实型、复型、字符型和逻辑型。相应地,编辑
第六章 格式输入输出
6.1 输入输出概述 6.2 格式输入输出语句 6.3 格式说明语句 6.4常用的编辑描述符 6.5 输入输出项与编辑符的相互作用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Open, Read and Write in Fortran1:write(*,*)"string";write(unit=*,FMT=*)"string";write(unit=6,FMT=*)"string"。
以上等价,6是默认输出位置,即屏幕。
2:print*,"string"。
Print只能对屏幕输出。
3:integer(kind=4) a !f90;integer*4 a !f77;integer(4) a !f77。
以上等价。
real(kind=4) a !f90;real*4 a !f77;real(4) a !f77。
以上等价。
4:f77,变量名长度1~6;f90,变量名长度1~31。
5:read(*,*)"string";write(unit=*,FMT=*)"string";write(unit=5,FMT=*)"string"。
以上等价,5是默认输入位置,即键盘。
6:FORMAT(http://202.118.74.226/fortran/pages/730.htm)6.1 格式输出格式输出语句由两部分组成:输出语句和输出格式语句。
输出语句的一般形式为:WRITE(*,L) 输出表列或:PRINT L 输出表列其中:* 代表隐含的输出设备,L 指输出格式语句的标号。
输出格式语句的一般形式:L FORMAT(1X,S)其中:L 输出格式语句的标号,1X 纵向走纸符,S 输出格式,用不同的―格式编辑符‖(简称―编辑符‖)来实现指定的输出格式,各格式间用逗号相隔。
FORMAT语句又叫―格式语句‖,是一个非执行语句,本身不产生任何操作,只是提供输入或输出的格式。
FORMAT语句可以出现在程序的任何地方(但必须在PROGRAM语句之后和END语句之前,如果在子程序中用FORMAT语句,则应在子程序定义语句之后)。
系统按WRITE语句或PRINT语句中指定的语句标号找到相应的FORMAT语句,并按FORMAT语句所规定的格式对数据进行输出。
注意,PRINT语句中不能再用―*‖,PRINT语句中的第一个标识符是语句标号而不是要打印输出的数据。
输出格式分两类基本格式6.1.1 I格式(又叫整数格式)一般形式:Iw 或:Iw.m其中:w 一个数据占的位数宽度(又称―字段宽度‖),m 需要输出的最少数字位数。
例1:WRITE (*,100)M,N100 FORMAT(1X,I4,I4)如果M=40,N=-12,则输出如下:??40 ?-12例2:WRITE (* , 100) I,J,K100 FORMAT(1X,I5.3,I6.3,I4)若I=1234,J=-24,K=24689 则输出为:?1234 ???-24 ****(1)数字在指定的区域内向右端靠齐,如果数字位数比指定的字段宽度w小,则左边补以空格。
负数的符号也包含在字段宽度内。
(2)如果数字位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满―*‖符号。
(3)如果数字位数超过了m,则按实际应输出的位数输出(但条件是不能超过w)。
m不包括负号所占的一列。
6.1.2 F格式(又叫小数型格式)一般形式:Fw.dw 各数值占的总位数d 输出数据的小数位数(小数点后的位数)。
例1:WRITE(*,100)A,B,C100 FORMAT(1X,F10.2,F9.3,F8.4)若A=1234.56,B=3456.78,C=234.56789 则输出:???1234.56 ?3456.780 234.5679例2:WRITE (* , 100) X,Y100 FORMAT(1X,F10.4,F10.2)若X=24680135.7, Y=0.0012345,则输出为:********** ???????.00(1)数字在指定区域内向右端靠齐,如果数字位数(含小数点和符号位)比指定的字段宽度w小,则左边补以空格;如果数字的位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满―*‖符号。
(2)如果数据的小数位数比指定的小数位数d小,则在小数右边补0以凑足d位;如果小数位数大于d位,则输出时多于的小数位数按―四舍五入‖规则舍去。
(3)假设b为数据整数部分的位数,则应使w≥b+d+1(小数点占一列),如果输出负数,则应保证w≥b+d+2(小数点和负号各占一列)。
(4)用F格式输出时应注意,由于难以事先确切估计出数据的大小,输出大的数时容易产生―宽度不够‖的错误(由于w不够大),输出小的数时会出现丢掉有用数字的情况(由于d不够大而将后面的数字截去),这就是―大数印错,小数印丢‖。
6.1.3 E格式(又叫指数型格式)一般形式:w.dw 各数值占的总位数,d 输出数据的小数位数(小数点后的位数)。
例1:WRITE (*,100)X,Y100 FORMAT(1X,E12.4,E12.5 )如:X=3.17 Y=1234.56 则输出结果为:??0.3170E+01 ?0.12346E+04。
(1)采取标准化的指数形式输出一个实数,d为以指数形式出现的数据的数字部分的小数位数。
(2)指数部分一般占4列,其中字母―E‖和指数的符号各占一列,指数2列。
小数部分d列,再加上一个小数点和小数点前的一个―0‖,因此要保证w≥d+6,输出负数时,w≥d+7。
(3)有的计算机系统允许有较大的实数范围,FORTRAN77提供了一种扩充的编辑符,可以输出三位或四位指数。
这种编辑符的形式为:Ew.dEe,用e指定指数的位数。
有的计算机系统的FORTRAN编译系统已根据其允许的实数范围,自动将指数的位数改为3位或4位,不必在RORMAT语句中用Ew.dEe编辑符单独为某些数据指定所需的指数位数,只需写Ew.d形式即可,输出时系统会给出三位(或四位)指数。
6.1.4 G格式G格式可以根据输出的实数大小决定用小数形式(F格式)输出或指数形式(E 格式)输出。
当输出大数值或小数值时自动按E格式,当输出的数不大不小时用F格式。
其一般形式为:Gw.d(1)凡绝对值小于0.1的数或绝对值大于10d的数用E格式输出;其余的数用F格式输出。
(2)用E格式输出时,最后4列为指数部分,而用F格式输出时最后4列留空。
(3)用指数形式输出时,格式同Ew.d;用F格式输出时,不是按Fw.d形式输出,d规定的不是小数位数而是打印出来的全部数字的位数,小数位数根据数值大小和d的大小而定,这样做的目的是使数的整数部分能全部保留,而适当截去小数部分,以保证输出数值的正确性。
因为小于10d的数,其整数部分最多为d位,因此,可以全部输出这d位整数,小数的位数为:d-(数值整数位数)。
6.1.5 D格式一般形式:Dw.a用于双精度数据的输出,使用方法与E格式相仿,只是把字母―E‖换成―D‖。
6.1.6L格式一般形式:Lw用于逻辑型数据的输出,w 输出数据的字段宽度。
逻辑值―.TRUE.",在输出时打印一个字母T;逻辑值".FLASE.",在输出时打印一个字母F。
T和F打印在字段范围内的最右端。
6.1.7 A格式一般形式:Aw 或:A用于字符型数据的输出,w为字段宽度,不指定w时(即形式:A),按字符变量的实际长度(即程序定义该变量时的长度)输出。
字符串在指定的区域内向右端靠齐,如果字符串的位数比指定的字段宽度w 小,则左边补以空格;如果字符串的位数超过了规定的字段宽度w,则只输出最左面的w个字符。
6.1.8 ‗(撇号)格式用来插入所需的字符串,例如:WRITE(*,100) I,J100 FORMAT(1X,'I=',I3,'J=',I4)如果I=123,J=2347,则输出:I=123J=2347如果需要输出的字符包括撇号,则用两个连续的撇号代表一个被输出的撇号字符。
例如:CHARACTER *10 STUDREAD * STUDWRITE(*,10) STUD10 FORMAT(1X,A,'IS LI''S STUDENT.')END如果输入给STUD的值为‗ZHANG SUN‘,则输出为:ZHANG SUN IS LI'S STUDENT.6.1.9 H格式一般形式:nH <字符串>用来输出字符常量,与撇号格式相似。
n为字符串中字符的个数。
如上面的例子(I=123,J=2347),可改写为:WRITE(*,100) I,J100 FORMAT(1X,2HI=,I3,2HJ=,I4)则输出与上例相同:I=123J=2347可以单独用撇号格式或H格式输出字符串而不必要求WRITE语句中有相应的输出项。
如:WRITE(*,100)100 FORMAT(1X,'ZHANG SUN IS LI''S STUDENT.')或:100 FORMAT(1X,26HZHANG SUN IS LI'S STUDENT.)用H格式必须准确地数出字符串中的字符个数,数错了就会造成错误。
所以最好不用H编辑符而用撇号编辑符,后者不必数字符,使用方便,字符串界线清楚无误。
FORTRAN 77之所以保留H编辑符主要是为了与FORTRAN 66兼容(FORTRAN 66只能用H编辑符输出字符串而没有撇号编辑符)。
6.1.10 X格式一般形式:nX用于输出空格,n 输出的空格数目。
即插入n个空格,或者说,使打印的―当前位置‖向右移动n列。
例:WRITE(*,100)I,A,B100 FORMAT(1X,I3,2X,F6.2,2X,E11.5)当I=146,A=124.32,B=1247.32时,输出为:146 124.32 0.12473E+04如果不用X格式插入空格,数据将连成一片,难以区分开。
注意:不要把2X作为与A对应的格式符,WRITE语句中的I,A,B分别与FORMAT语句中的I3,F6.2和E11.5格式符对应。
X格式符不能用来提供整数、实数、以及其它类型数据的输出格式,它只能插入若干个空格。
FORTRAN 77还允许n是负整数,表示从当前位置向左移动n的绝对值列。
微机上使用的FORTRAN子集不能使用n为负值的格式符。
6.1.11 /(斜杠)格式斜杠(/)编辑符的作用是:结束本记录的输出并开始下一个记录的输出。
例如:WRITE(*,100)I,A,J,B100 FORMAT(1X,I3,F6.1/1X,I3,F6.1)若I=246,A=12.36,J=35,B=173.5,输出结果为:246 12.435 173.5一个WRITE语句输出打印了二行信息,这是由于FORMAT语句中有一斜杠,使之产生两个输出记录(注意,斜杠之后也有一个―1X‖,使第二个记录的第一个字符为―空格‖,作为纵向走纸符)。