爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5100|回复: 9

[求助] 这程序把我折磨疯了,为什么就是不能出现正确的图呢?

[复制链接]
发表于 2013-10-30 15:24:06 | 显示全部楼层 |阅读模式

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

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

x

你们看看这图怎么了?

你们看看这图怎么了?
实习内容计算1948-2013年1月500hPa高度场平均图,2008年1月500hPa高度距平图,2008年1月500hPa高度纬偏图,程序是这样的,如果把三个变量写入一个grd文件就会出错,如果单个写就会出正确的图,程序如下:
program EX1
real a(144,73,12,65),ave1(144,73),ab(144,73),wp(144,73),n(73)
open(2,file='e:\duanqishixi\hgt500.grd',form='binary') !补充正确路径

!补充数据输出路径
      do it=1,65
do imo=1,12
do j=1,73
do i=1,144
read(2)a(i,j,imo,it)
enddo;enddo;enddo;enddo
    do j=1,73
do i=1,144
do it=1,65
ave1(i,j)=ave1(i,j)+a(i,j,1,it)      !65年1月的500hPa高度场累jia
end do
end do
end do
do j=1,73
do i=1,144
      ave1(i,j)=ave1(i,j)/65.0
end do;end do
      do j=1,73
do i=1,144
      ab(i,j)=a(i,j,1,61)-ave1(i,j) !2008年1月的高度场距平
      end do
end do
      do j=1,73
do i=1,144
      n(j)=n(j)+a(i,j,1,61)
    end do
n(j)=n(j)/144.0
      end do
   do j=1,73
   do i=1,144
    wp(i,j)=n(j)
end do
end do
do j=1,73
do i=1,144
    wp(i,j)=a(i,j,1,61)-wp(i,j)!2008年1月500hPa高度纬偏场
end do;end do
    open(8,file='e:\duanqishixi\swx\new1.grd',form='binary')
    do j=1,73
do i=1,144
write(8)  ave1(i,j)
    write(8)  ab(i,j)
write(8)   wp(i,j)
end do
end do
close(8)
end
我新编的ctl你们看看有错没?
dset e:\duanqishixi\swx\new1.grd
undef -9.99E+33
title  NCEP Reanalysis PROJECT
xdef 144 linear 0.000 2.500
ydef 73 linear -90.000 2.500
zdef 1 levels 500
tdef 780 linear jan1948 1mo
vars 3
ave1 1 0
ab   1 0
wp   1 0
endvars
;
这是画出来的平均图很奇葩的准备好你们的眼睛就是上面的那个图。
快来救救我吧1

密码修改失败请联系微信:mofangbao
发表于 2013-10-30 15:34:58 | 显示全部楼层
变量要在外层循环,好好看看grads的数据格式要求吧。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-30 15:48:10 | 显示全部楼层
密码修改失败请联系微信:mofangbao
发表于 2013-10-30 15:57:58 | 显示全部楼层
本帖最后由 lqouc 于 2013-10-30 15:59 编辑

在fortran输出的时候要把变量也循环,是放在空间格点的外层循环,如果有时间的话时间在最外层。
你做的这些用grads直接计算很简单的,用不着这么费事还要写个fortran
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-30 16:01:26 | 显示全部楼层
lqouc 发表于 2013-10-30 15:57
在fortran输出的时候要把变量也循环,是放在空间格点的外层循环,如果有时间的话时间在最外层。
你做的这些 ...

我去试试,没办法啊,老师非得让我们编个frotran
密码修改失败请联系微信:mofangbao
发表于 2013-10-30 16:03:57 | 显示全部楼层
什么都不会{:5_275:}
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-30 16:14:23 | 显示全部楼层
TWiligHT 发表于 2013-10-30 16:01
我去试试,没办法啊,老师非得让我们编个frotran

大神我膜拜你,我给改了图出来啦
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-30 16:14:57 | 显示全部楼层

孩子不要灰心,上面的大神会帮助你的。
密码修改失败请联系微信:mofangbao
发表于 2013-10-30 18:13:43 | 显示全部楼层
本帖最后由 river 于 2013-10-30 18:16 编辑

这个实习要求用fortran是为了提高fortran的能力吧,其实直接用grads很简单就出图了。楼主之所以用fortran出不来最主要的问题是没有理解grads所需资料的排列方式,看下手册就知道了,数据排放顺序为先经度、纬度、高度,然后是物理变量,最后是时次变化。一个x、y数据场构成一个记录。简单说就是(x,y),z,VAR,t

还有就是你计算的距平场 平均场 纬偏场都只有一个时次,你的ctl怎么能写780个呢

评分

参与人数 1金钱 +5 收起 理由
lqouc + 5 正解,话说我都没好好看。嘿嘿

查看全部评分

密码修改失败请联系微信:mofangbao
 楼主| 发表于 2013-10-31 21:44:02 | 显示全部楼层
river 发表于 2013-10-30 18:13
这个实习要求用fortran是为了提高fortran的能力吧,其实直接用grads很简单就出图了。楼主之所以用fortran出 ...

谢谢啦,我改啦,都改啦,出图啦,撒花。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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