Fortran Coder

标题: 有两个问题:1文件中内容的替换;2数组换行的打印 [打印本页]

作者: 274068459    时间: 2017-3-9 13:35
标题: 有两个问题:1文件中内容的替换;2数组换行的打印
1.文件内容的替换
   问题概述:我在读取数据中,会遇到数据却测的情况,显示为“//////”,我想要把这些符号再碰到的时候换成“-999.9”,(目的是为了保证数组数据数量的一致性,后面计算的时候我碰到-999.9就直接剔除就行了)
我的程序:
[Fortran] 纯文本查看 复制代码

do k=1,linenum_max
        read(unit=num,FMT='(I5,X,F7.3)', IOSTAT=res), nouse, read_data(k,i)
        if(res/=0)then
                  write(*,*)'-999.9'
            end if
                write(*,*),read_data(k,i)
      end do

      close(unit=num)
    end do

问题:输出的不是-999.9,请问怎么办

2.数组换行的问题
我要在新的文件中打印出一个read_data(k,i)的数组
[Fortran] 纯文本查看 复制代码

open(unit=12,file='windspeed.txt')
    do k=1,filenum_read
          do i=1,filenum_valid
            write(12,30)read_data(k,i)
          end do
        end do
  close(unit=12)
  30 format(60F7.3,/)]

但是现在打印出来全部在一列当中!!!我想要分列显示怎么办?

作者: li913    时间: 2017-3-9 17:38
第一个问题:fortran对于读取文件中的“/”会有一点问题,这是因为斜杠有其他作用。一般先把斜杠替换掉,再去读取。替换,你可以自己写代码,也可以用其他编辑器;
第二个问题:http://fcode.cn/guide-45-1.html
[Fortran] 纯文本查看 复制代码
open(unit=12,file='windspeed.txt')
    do k=1,filenum_read
            write(12,30)read_data(k,1:filenum_valid)
        end do
  close(unit=12)
  30 format(60F7.3,/)





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2