24小时热门版块排行榜    

CyRhmU.jpeg
查看: 710  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

宝莲灯

木虫 (小有名气)

虫虫


[交流] 【讨论】编程求助

在Linux系统下编译fortran。想取sufer中geo2km-gzdw中的部分数据,把它加高20米,然后再放回到geo2km-gzdw文件中原来的位置。该怎么做?
       我编的程序如下:
                   dimension a(100,100)
                  sed -n '547,623p' geo2km-gzdw.dat > ab.dat   *这句话有问题,下面的都运行过,没有问题*
                  open (10,file='ab.adt')
                  do j=1,76
                  read (10,*) (a(i,j),i=1,66)
                  do i=1,66
                   if (i.ge.23.and.i.le.32.and.j.gz.32.and.j.le.42) then
      20        format(10f20.9)
                   a(i,j)=a(i,j)+20
                   endif
                  end do
                   end do
                   do j=1,76
                   write(*,30) a(i,j),i=1,66)
      30          format(66F20.9)
                  end do
                    close(10)
                     stop
                     end
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
6楼2017-06-20 21:32:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

snoopyzhao

至尊木虫 (职业作家)

★ ★
宝莲灯(金币+1):谢谢参与
余泽成(金币+1):谢谢参与应助! 2010-08-26 21:13:25
宝莲灯(金币+10): 2010-08-28 07:51:58
sed -n '547,623p' geo2km-gzdw.dat > ab.dat
这是外部程序,不能放在 Fortran 中使用……

很难将 geo2km-gzdw 中的数据取出,然后再写入(似乎新的 fortran 标准允许,但我不确定)。除非你将geo2km-gzdw 逐行读入,然后,修改相应的部分,再写入另一个文件中……
2楼2010-08-26 20:28:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yscot

木虫 (正式写手)

★ ★
宝莲灯(金币+1):谢谢参与
余泽成(金币+1):谢谢参与应助! 2010-09-04 22:24:48
宝莲灯(金币+10): 2010-09-06 08:49:22
建议楼主把 sed -n '547,623p' geo2km-gzdw.dat > ab.dat
直接在程序中用fortran语句表达出来
或者程序中直接读入处理后的输入文件

把linux命令直接写到程序里好像执行不了的啊~
3楼2010-09-04 22:09:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coolrainbow

木虫 (著名写手)

未来国家冻凉

★ ★
宝莲灯(金币+1):谢谢参与
余泽成(金币+1):谢谢参与应助,欢迎常来程序语言版! 2010-09-05 17:20:44
宝莲灯(金币+10): 2010-09-06 08:49:34
sed是外部程序,不能直接在fortran语言中调用,这个你怎么能不知道呢~~~

如果非要调的话,可以

call system('sed -n '547,623p' geo2km-gzdw.dat > ab.dat')

但会降低程序的可移植性
技术博客:http://hi.baidu.com/coolrainbow/blog
4楼2010-09-05 07:55:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见