1       PROGRAM WRITETEXT
 2       IMPLICIT NONE
 3       INTEGER,PARAMETER :: NE=6!fortran90 语法定义变量
 4       DOUBLE PRECISION A(6,6),B(6,6)
 5       INTEGER I,J,M
 6 C     非二进制读写文本文档 
 7       DO 10 I=1,NE
 8             DO 10 J=1,NE
 9                   A(I,J)=I+J
10    10 CONTINUE
11       OPEN(6,FILE='State.txt',STATUS='UNKNOWN')
12       WRITE(6,100) ((A(I,J),J=1,6),I=1,6)!写入txt
13       CLOSE(6)
14       OPEN(6,FILE='State.txt',status='OLD',ACCESS='SEQUENTIAL')
15 100   FORMAT(6(E16.9,1X))
16 C     读取text中数据到数组 
17       I=0
18    15 I=I+1
19       READ(6,200) (B(I,J),J=1,6)      
20       IF (I.LT.6) GOTO 15      
21 200   FORMAT(6(E16.9,1X)) 
22 c     二进制方法读写文档
23       
24       ENDPROGRAM WRITETEXT

 fortran77读写文本文档

下面添加二进制形式。

 1       PROGRAM WRITETEXT
 2       IMPLICIT NONE
 3       INTEGER,PARAMETER :: NE=6!fortran90 语法定义变量
 4       DOUBLE PRECISION A(6,6),B(6,6),C(6,6)
 5       INTEGER I,J,M
 6 CCCCC     非二进制读写文本文档 
 7 C     初始化A 
 8       DO 10 I=1,NE
 9             DO 10 J=1,NE
10                   A(I,J)=I+J
11    10 CONTINUE
12 C     将A写入文档6 
13       OPEN(6,FILE='State.txt',STATUS='UNKNOWN')!往文本文档中写东西时最好用这种,若存在会自动删除
14       WRITE(6,100) ((A(I,J),J=1,6),I=1,6)!写入txt
15       !CLOSE(6)!其实可以不关闭而由内存直接写到硬盘上。
16       !OPEN(6,FILE='State.txt',status='OLD',ACCESS='SEQUENTIAL')!如果不进行关闭再打开动作,文件指针在最后一行,就需要REWIND 6语句
17 100   FORMAT(6(E16.9,1X))
18 C     读取text 6中数据到数组B,实现了数据A--->B 
19       I=0
20    15 I=I+1
21       REWIND 6!将6号文档的指针移到文档开头
22       READ(6,200) (B(I,J),J=1,6)      
23       IF (I.LT.6) GOTO 15      
24 200   FORMAT(6(E16.9,1X)) 
25 c     下面二进制方法读写文档,实现数据A--->C 
26       OPEN(1,FILE='FTEMP1.DAT',STATUS='NEW',ACCESS='SEQUENTIAL',
27      + FORM='UNFORMATTED')
28       WRITE(1) ((A(I,J),J=1,6),I=1,6)!写入txt
29       REWIND 1!将1号文档的指针移到文档开头
30       READ(1) ((C(I,J),J=1,6),I=1,6)!写入txt
31       CLOSE(6)
32       CLOSE(1,STATUS='DELETE')
33       ENDPROGRAM WRITETEXT

 通过下面的代码可以看出,现在的编译器可以很好的兼容Fortran77和Fortran90,在Fortran77中写Fortran90代码也没问题,比如变量名字长度可以超过6个字符长度(但要小于31个字符长度)

 1       PROGRAM WRITETEXT
 2       IMPLICIT NONE
 3       INTEGER,PARAMETER :: NE=6!fortran90 语法定义变量
 4       DOUBLE PRECISION A(6,6),B(6,6),C(6,6)
 5       INTEGER I,J,M,abcdefghijklmnopqrstuvwxyz!名字的长度不能超过 31个字符。
 6 CCCCC     非二进制读写文本文档 
 7 C     初始化A 
 8       DO 10 abcdefghijklmnopqrstuvwxyz=1,NE
 9             DO 10 J=1,NE
10             A(abcdefghijklmnopqrstuvwxyz,J)=abcdefghijklmnopqrstuvwxyz+J
11    10 CONTINUE
12 C     将A写入文档6 
13       OPEN(6,FILE='State.txt',STATUS='UNKNOWN')!往文本文档中写东西时最好用这种,若存在会自动删除
14       WRITE(6,100) ((A(I,J),J=1,6),I=1,6)!写入txt
15       !CLOSE(6)!其实可以不关闭而由内存直接写到硬盘上。
16       !OPEN(6,FILE='State.txt',status='OLD',ACCESS='SEQUENTIAL')!如果不进行关闭再打开动作,文件指针在最后一行,就需要REWIND 6语句
17 100   FORMAT(6(E16.9,1X))
18 C     读取text 6中数据到数组B,实现了数据A--->B 
19       I=0
20    15 I=I+1
21       REWIND 6!将6号文档的指针移到文档开头
22       READ(6,200) (B(I,J),J=1,6)      
23       IF (I.LT.6) GOTO 15      
24 200   FORMAT(6(E16.9,1X)) 
25 c     下面二进制方法读写文档,实现数据A--->C 
26       OPEN(1,FILE='FTEMP1.DAT',STATUS='NEW',ACCESS='SEQUENTIAL',
27      + FORM='UNFORMATTED')
28       WRITE(1) ((A(I,J),J=1,6),I=1,6)!写入txt
29       REWIND 1!将1号文档的指针移到文档开头
30       READ(1) ((C(I,J),J=1,6),I=1,6)!写入txt
31       CLOSE(6)
32       CLOSE(1,STATUS='DELETE')
33       ENDPROGRAM WRITETEXT
fortran77代码

相关文章:

  • 2022-01-29
  • 2022-12-23
  • 2022-12-23
  • 2021-08-09
  • 2021-08-10
  • 2022-12-23
  • 2021-05-08
猜你喜欢
  • 2022-12-23
  • 2022-02-12
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2022-12-23
  • 2021-12-25
相关资源
相似解决方案