fortran 输入输出格式

简要介绍了fortran的输入输出格式
 1         PROGRAM PSSPAP
 2 C       PLAN STRESS/STRAIN PROBLAM ANALYSIS PROGRAM
 3         DIMENSION LND(500,3),X(200),Y(200),JZ(50,3),
 4      &  PJ(50,3),P(500),TL(20),AK(500,100),AKE(6,6)
 5         OPEN (6,FILE=\'PSSPAP.IN\')
 6         OPEN (8,FILE=\'PSSPAP.OUT\')
 7         READ(6,10) TL
 8 10      FORMAT(20A4)
 9         READ(6,*)NJ,NE,NZ,NPJ,IPS
10         WRITE(8,10)TL
11         IF(IPS.EQ.1) WRITE(8,20)
12         IF(IPS.EQ.2) WRITE(8,30)        
13 20      FORMAT(/1X,\'PLATE STRESS PROBLEM\')
14 30      FORMAT(/1X,\'PLATE STRAIN PROBLEM\')
  • 1.PROGRAM PSSPAP 表示这个fortran的代码名称为PSSPAP.
  • 2. C代表本行为注释行,后面写自己想要说明的东西。
  • 3.DIMENSION可以定义数组,后面跟数组名和维数,DIMENSION语句后若不加任何精度说明,则默认的是real(kind=4),即单精度浮点型。如:我要定义两个双精度浮点型数组,就有以下两种定义方法:

      1.用Dimension

      Dimension A(4,4),B(3,3)

        double precision A,B

      2.第二种方法

      REAL(kind=8)::A(4,4),B(3,3)

  • 4.&代表续行符
  • 5.OPEN(6,FILE=\’PSSPAP.IN\’)     OPEN是打开文档函数,6是开通的通道号,做读取文件用。后续可以采用READ(6,*)的格式从PSSPAP.IN中读取数据,也可以采用WRITE(6,*)将计算得到的数据写入文件PSSPAP.IN中。
  • 6.READ(6,*)A,B,C      表示从代号为6的文件中以默认的方式(后面的“*”表示默认的方式/格式)来依次读取三个值赋给变量A,B,C。      
    READ(6,10) TL意思是读入6号通道的文档,用第10行所写的格式,读入的东西放入TL变量中。
  • 8. FORMAT(20A4)20个长度为4的字符串。        write(*,*)"string";write(unit=*,FMT=*)"string";write(unit=6,FMT=*)"string"。以上等价,6是默认输出位置,即屏幕。

7.WRITE(8,10)TL  意思是将TL 的内容按编号为10的行的格式写入到8通道的文档中。
8.IF(IPS.EQ.1) WRITE(8,20)  意思是如果括号里面的为真,则将20行的内容写入到8文档中。

 

贴一段别人总结好的:
 
格式化输出的控制字符非常的丰富,但常用的并不多,一般说来:” I 、F、E、A、X “是最常使用的几个格式,最
 
好把它们都记下来。

Iw[.m] 以w个字符的宽度来输出整数,至少输出m个数字。                            

 

如:write(*,”(I5)”) 100   输出:_ _100 ; 前面两空格 

 

Fw.d 以w个字符文本框来输出浮点数,小数部分占d个字符宽,输出文本框的设置不中会出现*号。

 

如:write(*,”(F9.3)”) 123.45  输出:_ _123.450 ; 前面两空格,后补0

 

Ew.d[Ee] 用科学计数法,以w个字符宽来输出浮点数,小数部分占d个字符宽,指数部分最少输出e个数字。

 

如:write(*,”(E15.7)” 123.45 输出:_ _0.1234500E+03 ; 输出不中15个字符的部分补上空白,小数部分不足7位的会补0

Dw.d 使用方法同Ew.d,差别在于输出时用来代表指数的字母由E换成D。 

 

Aw 以w个字符宽来输出字符串。 write(*,”(A10)”) “Hello” 固定用是为10我个字符段来输出字符串,不足的前面补空格

 

nX 输出位置向右移动n位。write(*,”(5X,I3)”) 100 ; 将先填5个空格,再输出整数。

 

Lw 以w个字符宽来输出T或F的真假值。write(*,”(L4)”) .true. ;程序会输出3个空格和一个T

 

换行输出。write(*,”(I3//3)”) 10,10 程序会得出4行,中间两行空格是从除号”/”得到的。

Tc 把输出的位置移动到本行的第c个字节。
TLn 输出位置向左相对移动n个字节。
TRn 输出位置向左相对移动n个字节。
SP、SS 加了SP后,输出数字时如数值为正则加上”+”,SS则是用来取消SP的功能。                 如 write(*,”(SP , I5 , I5 , SS , I5)”) 5 , 5 , 5 输出:+5   +5   5
BN、BZ  BN定义在输入时没有数据的字节代表没有东西。BZ定义在没有数据的字节代表0
下面是实例总结:
1、FORMAT(5X,\’******\’,/,5X,\’NON E* POSSIBILIE L ESTRAPOLAZIONE DELIA CURVA MOT\’)
结果:
5个空格******
 

5个空格NON E* POSSIBILIE L ESTRAPOLAZIONE DELIA CURVA MOT

 

2、fortran77中的H用来表示字符算输出*H……代表输出H后面的*个字符。

 

3、format(5(10f7.2/)) 格式,用括号扩起来,前面加一个数字,表示括号内的格式重复这么多次。也就是 n(XX) 等同于 XX,XX,XX,XX …. 重复 n 次。
4、换行斜杠(/)编辑符的作用是结束记录在本行的输出并从下一行开始输出下一个记录。如果有两个连续的斜杠,相当于增加一个空行输出。如果在编辑符的最后出现斜杠,也是再输出一个空行。用n个连续的斜杠,可以达到输出n-1个空行的效果。

 



 

版权声明:本文为zhubinglong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zhubinglong/articles/6295835.html