爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5542|回复: 8

grads运行出错

[复制链接]
发表于 2015-3-27 21:32:31 | 显示全部楼层 |阅读模式
数据资料
我看过提问的智慧: 看过

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

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

x

zdef 26 levels
1000 975 950 925 900 850 800 750 700 650 600 550 500 450 400 350 300 250 200 150 100 70 50 30 20 10
vars 121
no4LFTXsfc  0 132,1,0  ** surface Best (4-layer) lifted index [K]
no5WAVAprs  0 230,100,500  ** 5-wave geopot. height anomaly [gpm]
no5WAVHprs  0 222,100,500  ** 5-wave geopotential height [gpm]
ABSVprs 26 41,100,0 ** Absolute vorticity
ACPCPsfc  0 63,1,0  ** surface Convective precipitation [kg/m^2]
ALBDOsfc  0 84,1,0  ** surface Albedo [%]
APCPsfc  0 61,1,0  ** surface Total precipitation [kg/m^2]
CAPEsfc  0 157,1,0  ** surface Convective Avail. Pot. Energy [J/kg]
CAPE180_0mb  0 157,116,46080 ** 180-0 mb above gnd Convective Avail. Pot.
这是fnl的ctl文件,我想画变量为APCPsfc这个变量,编写gs文件如下
'reinit'
'open d:/shuju/201407/fnl_20140712_06_00.ctl'
'set lat -30 90'
'set lon 30 180'
'set lev 1000'
'enable print d:/shuju/tu/tp.gmf'
'set gxout shaded'
'set mpdset hires'
'set mpdset cnworld'
'set grid off'
'set grads on'
tt=1
while(tt<=40)
'set t 'tt
'd APCPsfc'
'q time'
x1=subwrd(result,3)
'draw title 'x1'tp'
'print'
'c'
tt=tt+1
endwhile
'disable print'
;
运行之后出来的图是d:/1.pngd:/1.png
1.png
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-3-27 21:59:19 | 显示全部楼层
图传不上去,想@river也@不了,,,,
密码修改失败请联系微信:mofangbao
发表于 2015-3-28 07:51:43 | 显示全部楼层
你先不要用脚本,直接打开ctl ,画一下那个变量,如果还不行,那是你数据有问题
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-3-28 19:54:49 | 显示全部楼层
river 发表于 2015-3-28 07:51
你先不要用脚本,直接打开ctl ,画一下那个变量,如果还不行,那是你数据有问题

我找你说的做了,结果还是一样,可能是数据问题,可是我下的确实是美国的再分析资料,上面说这个变量APCPsfc是地表变量,而层次是从1000hpa开始的,是不是这里有问题?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-3-28 20:09:03 | 显示全部楼层
river 发表于 2015-3-28 07:51
你先不要用脚本,直接打开ctl ,画一下那个变量,如果还不行,那是你数据有问题

我还想问一个问题,我想计算水汽通量等物理量,我要提取气压温度等数据,然后用fortran编程计算,但是在fortran中要怎么读取气压温度等物理量?
'reinit'
'open d:/shuju/201407/fnl_20140712_06_00.ctl'
'set gxout fwrite'
'set fwrite d:/shuju/sj/p.dat'
'set lat -10 60'
'set lon 60 160'
tt=1
while (tt<=40)
'set t 'tt
zz=1
while(zz<=26)
'set z 'zz
'd HGTprs'
zz=zz+1
endwhile
tt=tt+1
endwhile
'disable fwrite'
这是我用grads提取的数据
密码修改失败请联系微信:mofangbao
发表于 2015-3-28 20:32:28 | 显示全部楼层
linyu临宇 发表于 2015-3-28 20:09
我还想问一个问题,我想计算水汽通量等物理量,我要提取气压温度等数据,然后用fortran编程计算,但是在f ...

你提取出来的资料就是一个四维数据集啊,最外围是时间,往里面就是层次 、纬度和经度,循环读取就行了啊。和你提取资料的循环是一样的
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-3-28 21:52:27 | 显示全部楼层
river 发表于 2015-3-28 20:32
你提取出来的资料就是一个四维数据集啊,最外围是时间,往里面就是层次 、纬度和经度,循环读取就行了啊 ...

    比如下面是我写的读取数据的一个fortran程序



  REAL,PARAMETER:: Omega=7.292e-5,R=6371e+3,PI=3.1415926,Delta=1.00
      INTEGER,PARAMETER :: nx=101,ny=71,nz=26,nt=40
      INTEGER WtTopLevel(NX,NY,NT)
      REAl lat(ny),lon(nx),sigmadeltD
   
      real,allocatable :: temper(:,:,:,:),q(:,:,:,:),u(:,:,:,:),v(:,:,:,:),height(:,:,:,:),qu(:,:,:,:),qv(:,:,:,:),adq(:,:,:,:),adqv(:,:,:,:),vorg(:,:,:,:),voro(:,:,:,:),div(:,:,:,:),temp(:,:,:,:),vorop(:,:,:,:)
      allocate (temper(NX,NY,NZ,NT),q(NX,NY,nz,NT),u(NX,NY,NZ,NT),v(NX,NY,NZ,NT),height(NX,NY,NZ,NT),qu(NX,NY,NZ,NT),qv(NX,NY,NZ,NT),adq(NX,NY,NZ,NT),adqv(NX,NY,NZ,NT),vorg(NX,NY,NZ,NT),voro(NX,NY,NZ,NT),div(NX,NY,NZ,NT),temp(NX,NY,NZ,NT),vorop(NX,NY,NZ,NT) )

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     


      do i=1,nx
      lon(i)=50.0+(i-1)*Delta
      lon(i)=lon(i)*pi/180.
      enddo
      do i=1,ny
      lat(i)=10.0+(i-1)*Delta
      lat(i)=lat(i)*pi/180.
      enddo
!--------------read temperature----------------
   
            ! level
            ! time
      OPEN(11,file='d:/s/p.dat',status='old',form='binary')
      read(11,*)
      do it=1,nt
          do iz=1,nz
          do j=1,ny

        read(11,100)(height(i,j,iz,it),i=1,NX)           
        enddo
        enddo
        enddo
100        format(10f8.2)

      CLOSE(11)
   
     write(*,*) height(1,1,1,1)
         end
出来的结果如下:


forrtl: severe (257): formatted I/O to unit open for unformatted transfers, unit
11, file d:\s\p.dat
Image              PC        Routine            Line        Source
all2.exe           0040D389  Unknown               Unknown  Unknown

Incrementally linked image--PC correlation disabled.
Press any key to continue
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2015-3-28 22:04:37 | 显示全部楼层
river 发表于 2015-3-28 20:32
你提取出来的资料就是一个四维数据集啊,最外围是时间,往里面就是层次 、纬度和经度,循环读取就行了啊 ...


    比如下面是我写的读取数据的一个fortran程序



  REAL,PARAMETER:: Omega=7.292e-5,R=6371e+3,PI=3.1415926,Delta=1.00
      INTEGER,PARAMETER :: nx=101,ny=71,nz=26,nt=40
      INTEGER WtTopLevel(NX,NY,NT)
      REAl lat(ny),lon(nx),sigmadeltD
   
      real,allocatable :: temper(:,:,:,:),q(:,:,:,:),u(:,:,:,:),v(:,:,:,:),height(:,:,:,:),qu(:,:,:,:),qv(:,:,:,:),adq(:,:,:,:),adqv(:,:,:,:),vorg(:,:,:,:),voro(:,:,:,:),div(:,:,:,:),temp(:,:,:,:),vorop(:,:,:,:)
      allocate (temper(NX,NY,NZ,NT),q(NX,NY,nz,NT),u(NX,NY,NZ,NT),v(NX,NY,NZ,NT),height(NX,NY,NZ,NT),qu(NX,NY,NZ,NT),qv(NX,NY,NZ,NT),adq(NX,NY,NZ,NT),adqv(NX,NY,NZ,NT),vorg(NX,NY,NZ,NT),voro(NX,NY,NZ,NT),div(NX,NY,NZ,NT),temp(NX,NY,NZ,NT),vorop(NX,NY,NZ,NT) )

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     


      do i=1,nx
      lon(i)=50.0+(i-1)*Delta
      lon(i)=lon(i)*pi/180.
      enddo
      do i=1,ny
      lat(i)=10.0+(i-1)*Delta
      lat(i)=lat(i)*pi/180.
      enddo
!--------------read temperature----------------
   
            ! level
            ! time
      OPEN(11,file='d:/s/p.dat',status='old',form='binary')
      read(11,*)
      do it=1,nt
          do iz=1,nz
          do j=1,ny

        read(11,100)(height(i,j,iz,it),i=1,NX)           
        enddo
        enddo
        enddo
100        format(10f8.2)

      CLOSE(11)
   
     write(*,*) height(1,1,1,1)
         end
出来的结果如下:


forrtl: severe (257): formatted I/O to unit open for unformatted transfers, unit
11, file d:\s\p.dat
Image              PC        Routine            Line        Source
all2.exe           0040D389  Unknown               Unknown  Unknown

Incrementally linked image--PC correlation disabled.
Press any key to continue
密码修改失败请联系微信:mofangbao
发表于 2015-3-29 08:40:48 | 显示全部楼层
linyu临宇 发表于 2015-3-28 22:04
比如下面是我写的读取数据的一个fortran程序

fortran的最基本知识缺乏,我没办法帮你了······先看一下fortran的基本输入输出吧
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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