Arrays 使用Do循环,读取一列数据(数字和字符串),并将数字作为输出过滤到另一个文件中

Arrays 使用Do循环,读取一列数据(数字和字符串),并将数字作为输出过滤到另一个文件中,arrays,fortran,dummy-data,Arrays,Fortran,Dummy Data,我有一个输出文件,单列,其中每个第7行是一个字符串,其他行是数字(如下所示) 我需要将这些数据读入另一个文件,省略文本,只保留数字,并尝试循环为我的字符串分配一个伪字符串,但我得到一个错误,因为它无法识别(AI) (8-输入文件和9-输出文件分配) 我对Fortran很陌生,花了很多时间在网上寻找一个解决方案,或者至少是一个类似的问题,但没有找到任何东西。我真的很感谢你的帮助 非常感谢您。如果您只想跳过第七行,可以执行“read(8),(A)“)dummy”,其中dummy被声明为字符串(即,“

我有一个输出文件,单列,其中每个第7行是一个字符串,其他行是数字(如下所示)

我需要将这些数据读入另一个文件,省略文本,只保留数字,并尝试循环为我的字符串分配一个伪字符串,但我得到一个错误,因为它无法识别(AI)

(8-输入文件和9-输出文件分配)

我对Fortran很陌生,花了很多时间在网上寻找一个解决方案,或者至少是一个类似的问题,但没有找到任何东西。我真的很感谢你的帮助


非常感谢您。

如果您只想跳过第七行,可以执行“read(8),(A)“)dummy”,其中dummy被声明为字符串(即,“character(len=80)::dummy”)。这并不重要,因为有些字符是字母,有些是数字


现代人写循环是“做”,“结束做”。。。不需要行号和continue语句。

只需将列表定向输入与空输入项列表一起使用。
此外,第七行在循环中被读取两次。将
val
的读写操作放在
ELSE
部分,或者,将
循环
语句:

DO I = 1, 1000 IF(MOD(I,7) == 0) THEN READ(8,*) CYCLE END IF READ(8,*) val WRITE(9,*) val END DO I=11000吗 如果(MOD(I,7)=0),则 读(8,*) 周期 如果结束 读(8,*)val 写(9,*)val 结束
DO 10 I = 1, 1000
 IF (MOD(I,7) == 0) THEN 
  READ (8, FMT= '(AI)') dummy
 END IF
  READ (8,*) val
  WRITE (9,*) val
10 CONTINUE
DO I = 1, 1000 IF(MOD(I,7) == 0) THEN READ(8,*) CYCLE END IF READ(8,*) val WRITE(9,*) val END DO