fortran77读写文本文档

时间:2023-03-09 04:34:53
fortran77读写文本文档
       PROGRAM WRITETEXT
IMPLICIT NONE
INTEGER,PARAMETER :: NE=!fortran90 语法定义变量
DOUBLE PRECISION A(,),B(,)
INTEGER I,J,M
C 非二进制读写文本文档
DO I=,NE
DO J=,NE
A(I,J)=I+J
CONTINUE
OPEN(,FILE='State.txt',STATUS='UNKNOWN')
WRITE(,) ((A(I,J),J=,),I=,)!写入txt
CLOSE()
OPEN(,FILE='State.txt',status='OLD',ACCESS='SEQUENTIAL')
FORMAT((E16.,1X))
C 读取text中数据到数组
I=
I=I+
READ(,) (B(I,J),J=,)
IF (I.LT.) GOTO
FORMAT((E16.,1X))
c 二进制方法读写文档 ENDPROGRAM WRITETEXT

fortran77读写文本文档

下面添加二进制形式。

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

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

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

fortran77代码

并且也不是变量名比较长时就取前6个字符(要是只取前6个字符的话两个较长的变量名前6个字符相同时会认为是同一个变量),而是全部字符都作为变量名。

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

fortran77