Fortran输入输出格式控制
- 格式:doc
- 大小:196.00 KB
- 文档页数:11
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 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用法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 输出浮点数格式定义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输入输出格式控制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语句,则应在子程序定义语句之后)。
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‖,使第二个记录的第一个字符为―空格‖,作为纵向走纸符)。