爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7980|回复: 26

[分享资料] txt转成dat求助【已解决】

[复制链接]

新浪微博达人勋

发表于 2014-3-22 21:04:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 希尔博拉斯 于 2014-3-22 21:58 编辑

小弟最近在做一个经度,高度的剖面图,经度为13个格点,高度17层,原文件为txt格式的,现在要把它转成dat画图程序如下:
parameter(m=17,n=13)
dimension  x(m,n)
integer i,j
open(11,file='d:\fprogram\egvt1.txt')
read(11,*) ((x(i,j),j=1,n),i=1,m)
close(11)  

open(12,file='d:\fprogram\egvt.dat',access='direct',form='binary',recl=n*4)
do i=1,m
do j=1,n
write(12,rec=i) x(i,j)
enddo
enddo
close(12)

可是这样的dat我配一个ctl后出不了图,但是如果我把ctl配成13个经度,17个纬度的话,是可以出图的,求解问题出在哪?

egvt1.txt

2.21 KB, 下载次数: 9, 下载积分: 金钱 -5

原文件

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

新浪微博达人勋

发表于 2014-3-22 21:08:40 | 显示全部楼层
不是高度么?怎么出来纬度了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-22 21:10:29 | 显示全部楼层

本来应该是17个高度,1个纬度,可是这样画不出图。但是我如果把在ctl中把这17个高度变成17个纬度,一个高度,那么可以画出图。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-22 21:14:26 | 显示全部楼层
把ctl贴出来。
不过先说说你的Fortran啊,你都用binary了就不要写rec了,如果要写rec那就不要对水平空间进行显式循环。grads的数据如何排列是有严格规则的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-22 21:15:38 | 显示全部楼层
CTL写成经度-高度,你画图的时候设置set z 1 17   ????
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-22 21:16:12 | 显示全部楼层
小傅之追梦 发表于 2014-3-22 21:15
CTL写成经度-高度,你画图的时候设置set z 1 17   ????

默认是第一层的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-22 21:16:44 | 显示全部楼层
lqouc 发表于 2014-3-22 21:14
把ctl贴出来。
不过先说说你的Fortran啊,你都用binary了就不要写rec了,如果要写rec那就不要对水平空间进 ...

dset d:/fprogram/egvt.dat
title qingzang
unpack scale_factor add_offset 1 32066
undef -9.99e+33
xdef 13 linear 75 2.5
ydef 1 linear 0 1
zdef 17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
tdef 1 linear 00Z01JAN1948 1yr
vars 1
air 1 t,z,y,x mean daily air temperature
endvars
这是ctl
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-22 21:18:12 | 显示全部楼层
lqouc 发表于 2014-3-22 21:14
把ctl贴出来。
不过先说说你的Fortran啊,你都用binary了就不要写rec了,如果要写rec那就不要对水平空间进 ...

dset d:/fprogram/egvt.dat
title qingzang
unpack scale_factor add_offset 1 32066
undef -9.99e+33
xdef 13 linear 75 2.5
ydef 17 linear 0 1
zdef 1 levels 1000
tdef 1 linear 00Z01JAN1948 1yr
vars 1
air 1 t,z,y,x mean daily air temperature
endvars
如果我把ctl写成这样子,是可以出图的。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-3-22 21:19:14 | 显示全部楼层
小傅之追梦 发表于 2014-3-22 21:15
CTL写成经度-高度,你画图的时候设置set z 1 17   ????

对啊。。设置
set x 1 13
set y 1
set z 1 17
set t 1
可是就是不行啊。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-22 21:21:12 | 显示全部楼层
希尔博拉斯 发表于 2014-3-22 21:18
dset d:/fprogram/egvt.dat
title qingzang
unpack scale_factor add_offset 1 32066

吧air后面的1改成17

点评

改了,可是还是不行。。  发表于 2014-3-22 21:24
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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