爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2282|回复: 5

[求助] 请各位帮忙看下这个批处理程序的错误

[复制链接]

新浪微博达人勋

发表于 2014-4-5 14:56:03 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 sunshinezhpb 于 2014-4-5 15:08 编辑

写了个批处理的程序,编译没出错,能读出我要处理的文件,但不知道改如何写入数据
parameter(m=128,n=72)
dimension  x(m,n)
integer i,j
character :: num

do k=1, 9                             !k--文件数
write(num,100)k
100 format(I1)
open(1,file="SURF_CLI_CHN_PRE_DAY_GRID_0.5-1984120"//num//".txt")
read(1,*)
read(1,*)
read(1,*)
read(1,*)
read(1,*)
read(1,*)
read(1,*) ((x(i,j),j=1,n),i=1,m)
close(1)
enddo
open(12,file='egvt.grd',form='binary')
write(12) ((x(i,j),j=1,n),i=1,m)
close(12)
end

这个程序能打开我要处理的文件,我想把每个文件都保存到一个数组里去,然后9个数组相加求总和,这应该怎么做呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-5 14:58:46 | 显示全部楼层
本帖最后由 sunshinezhpb 于 2014-4-5 15:11 编辑

单个文件读入是没有问题的...我给每个文件的数组加入一个维度再多循环一次,不知道是否可行?还有别的方法吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-4-5 18:10:51 | 显示全部楼层
parameter(m=128,n=72)
dimension  x(m,n,9)
integer i,j
character :: num

do k=1, 9                             !k--文件数
write(num,100)k
100 format(I1)
open(1,file="SURF_CLI_CHN_PRE_DAY_GRID_0.5-1984120"//num//".txt")
do ll=1,6
read(1,*)
enddo
read(1,*) ((x(i,j,k),j=1,n),i=1,m)
close(1)
enddo
open(12,file='egvt.grd',form='binary')
write(12) (((x(i,j,k),j=1,n),i=1,m),k=1,9)
close(12)
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-6 10:33:35 | 显示全部楼层
本帖最后由 sunshinezhpb 于 2014-4-6 10:38 编辑
言深深 发表于 2014-4-5 18:10
parameter(m=128,n=72)
dimension  x(m,n,9)
integer i,j

非常感谢。
这是把9个文件的数据输到一个文件里去,我想求9个文件每个数组元素之和,就这样写
了下去
do k=1,9
do i=1,m
  do j=1,n
   y(i,j,1) = y(i,j,1)+x(i,j,k)
   endif
  enddo
enddo
open(12,file='zong.grd',form='binary')
do i=1,m
write(12) (y(i,j,1),j=1,n)
close(12)

我将结果保存为txt格式,看了下大致是正确的,但是存为grd格式后用grads画图发现图形位置偏移了,大值区在txt里显示是在两广地区,但用grads画图显示是山东一带,就像是偏转了90度,这是怎么回事呢

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2014-4-6 11:59:09 | 显示全部楼层
sunshinezhpb 发表于 2014-4-6 10:33
非常感谢。
这是把9个文件的数据输到一个文件里去,我想求9个文件每个数组元素之和,就这样写
了下去

parameter(m=128,n=72)
dimension  x(m,n,9),y(m,n)
integer i,j
character :: num
do k=1, 9                             !k--文件数
write(num,100)k
100 format(I1)

open(1,file="SURF_CLI_CHN_PRE_DAY_GRID_0.5-1984120"//num//".txt")
do ll=1,6
read(1,*)
enddo
read(1,*) ((x(i,j,k),j=1,n),i=1,m)
close(1)
enddo

do i=1,m
do j=1,n
do k=1,9
y(i,j)=y(i,j)+x(i,j,k)
enddo
enddo
enddo

open(12,file='egvt.grd',form='binary')
write(12) ((y(i,j),j=1,n),i=1,m)
close(12)
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-6 12:29:39 | 显示全部楼层
言深深 发表于 2014-4-6 11:59
parameter(m=128,n=72)
dimension  x(m,n,9),y(m,n)
integer i,j

不好意思,一直麻烦你了。
数据是72行128列的,写成txt格式没错,写出grd画图就有问题。这是我的ctl
dset E:/12jiangshui/evgt.grd
title rainnc
undef -9999.0
xdef 128 linear 72 0.5
ydef 72 linear 18 0.5
zdef 1 levels 1000
tdef 1 linear 00Z01DEC1984 1yr
vars 1
rain 1 t,z,x,y mean daily rainnc
endvars
画图结果为
QQ截图20140406122428.png
从txt里看到的大值中心应该南部沿海一带,很明显有问题...我把输入到grd文件的循环顺序改了一下,就变成这种了
QQ截图20140406122806.png
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表