爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索

micaps多时次单变量批处理及其后grads画图

  [复制链接]

新浪微博达人勋

发表于 2018-12-12 14:07:28 | 显示全部楼层

第一次发图,捣鼓了半天才传上去,不好意思
这是fortran程序:
parameter(nt=92)
integer::n,num
real,allocatable::lon(:),lat(:),altitude(:),tmax(:) !动态数组分别用来储存站点的经纬度和日最高温度
character*8,allocatable::sta(:) !动态数组,储存站号,站号必须是8个字符,5个的话会stnmap不出来
character*12 filename(nt) !用于储存92个时次的文件名6.1-8.31
open(11,file='filename.txt')
do i=1,nt
read(11,*) filename(i)
!print*,filename(i)
enddo
close(11)
open(12,file='tmax.grd',form='binary') !储存80个时次的最高气温场
do k=1,nt
       open(13,file=filename(k))
       read(13,*)
       read(13,*)
       read(13,*)
       read(13,*)
       read(13,*) n,n !将该时次的站点数赋值于 n
       allocate(lat(n))
       allocate(lon(n))
       allocate(tmax(n))
       allocate(altitude(n))
       allocate(sta(n))
       !print*,n
              do j=1,n !此循环为该时次的站点循环
                     read(13,*)sta(j),lon(j),lat(j),altitude(j),tmax(j)
                     !print*,tmax(j)
                     tim=0.0;nlev=1;nflag=1
                     write(12)sta(j),lat(j),lon(j),tim,nlev,nflag,tmax(j)               
              enddo
       nlev=0
       write(12)sta(n),lat(n),lon(n),tim,nlev,nflag
       !一个时次的高温场输入完毕
       deallocate(lat)
       deallocate(lon)
       deallocate(tmax)
       deallocate(altitude)
       deallocate(sta)
       close(13)
       close(12)
!      pause
enddo
end


micaps数据

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

新浪微博达人勋

发表于 2018-12-12 14:10:23 | 显示全部楼层
这是ctl文件
dset  D:\18wang\learnGrads\batchDrawStation\tmax.grd
dtype    station
stnmap   D:\18wang\learnGrads\batchDrawStation\tmax.map
undef    9999
title    daily tmax
tdef 92 linear  02z01Jun2018 1dy
vars 1
tmax  0 99  daily tmax
endvars
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-12-12 19:17:47 | 显示全部楼层
landu_cainingze 发表于 2018-12-12 14:03
改了程序的几个地方,出的数据没什么问题,可是还是生成map文件的时候出错
萝卜可以帮忙看一下吗

你在应用stnmap命令的时候有问题吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-12-12 19:20:40 | 显示全部楼层
landu_cainingze 发表于 2018-12-12 14:07
第一次发图,捣鼓了半天才传上去,不好意思
这是fortran程序:
parameter(nt=92)integer::n,numreal,al ...

把close(12)放在大循环的外边
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-13 12:59:17 | 显示全部楼层
平流层的萝卜 发表于 2018-12-12 19:20
把close(12)放在大循环的外边

太感谢萝卜了!!是循环的问题!!解决了!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-12-13 19:07:06 | 显示全部楼层
landu_cainingze 发表于 2018-12-13 12:59
太感谢萝卜了!!是循环的问题!!解决了!!!

解决就好
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-12-15 11:12:35 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-4-5 15:54:43 | 显示全部楼层
cmd能给个详细过程吗,我这种菜鸟做不出来
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-4-13 20:15:32 | 显示全部楼层
海soso 发表于 2016-1-9 20:58
楼主 为什么我运行了以后出现这个?怎么解决啊。。。想好几天了

请问出现这种情况是什么原因呢?我现在也遇到了这个问题,最后你是怎么解决的?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-12-23 09:48:58 | 显示全部楼层
按照上述操作,得出的站点数为0呢?请大神指教
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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