爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4555|回复: 4

[分享资料] grads截取资料为无格式文件可是运行fortran不行

[复制链接]

新浪微博达人勋

发表于 2013-5-6 19:10:59 | 显示全部楼层 |阅读模式

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

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

x
我要求西南降水和中国秋季降水的相关性
先用grads截取中国秋季降水平均
可是出来的grd应该是无格式文件
然后运行fortran的时候出现了
forrtl: severe (257): formatted I/O to unit open for unformatted transfers, unit
2, file E:\lunwen\rain\qiuji.grd
Press any key to continue
就是说无格式文件什么的吧,请问我应该怎么改
ctl
dset e:\lunwen\rain\rain.grd
title MM5 data
undef -9999.
xdef  136 linear  70 0.5
ydef  112 linear  1 0.5
zdef  1 levels  1000.00
tdef 720 linear 00:00Z01JAN1951 1mo
vars 1
pr      0 99 accum conv pcn (cm/d)
endvars

gs
'reinit'
'open e:\lunwen\rain\rain.ctl'
'set gxout fwrite'
'set fwrite e:\lunwen\rain\js.grd'
'set x 1 136'
'set y 1 112'
'set z 1'
year=1
while(year<=60)
mon=9
while(mon<=11)
ij=(year-1)*12+mon
'set t 'ij''
mon=mon+1
endwhile
sj=(year-1)*12+9
'define jp=ave(pr,t='sj',t='sj+2')'
'd jp'
year=year+1
endwhile
'disable fwrite'
;
fortran
program main
implicit none
integer,parameter::yy=60,ii=136,jj=112
dimension iod(yy),summerrain(ii,jj,yy),correlation(ii,jj),averain(ii,jj),suma(ii,jj),sumb(ii,jj)
real iod,summerrain,correlation,averain,aveiod,suma,sumb,sumc
integer i,j,y
open(1,file='E:\lunwen\rain\js.grd',form='binary')
open(2,file='E:\lunwen\rain\qiuji.grd',form='unformatted')
!
do y=1,yy
   do i=1,ii
     do j=1,jj
            read(1) summerrain(i,j,y)
         end do
   end do
       read(2,*) iod(y)
end do
!
  do i=1,ii
    do j=1,jj
         suma(i,j)=0
         sumb(i,j)=0
         sumc=0
          do y=2,yy
            averain(i,j)=(summerrain(i,j,1)+summerrain(i,j,y))/yy
                aveiod=(iod(1)+iod(y))/yy
          end do
          do y=1,yy
        suma(i,j)=suma(i,j)+(summerrain(i,j,y)-averain(i,j))*(iod(y)-aveiod)
        sumb(i,j)=sumb(i,j)+(summerrain(i,j,y)-averain(i,j))**2
        sumc=sumc+(iod(y)-aveiod)**2
          end do
      correlation(i,j)=(suma(i,j)/yy)/sqrt((sumb(i,j)/yy)*(sumc/yy))
   end do
end do
!
open(3,file='E:\lunwen\program\jscor.grd',form='binary')
do i=1,ii
   do j=1,jj
     write(3) correlation(i,j)
   end do
end do
close(1)
close(2)
close(3)
end
请各位大神帮忙
我看了http://bbs.06climate.com/forum.php?mod=viewthread&tid=9469
这篇帖子还是有有问题
   

correlation coefficient.f90

1.13 KB, 下载次数: 1, 下载积分: 金钱 -5

hehe.gs

347 Bytes, 下载次数: 0, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2013-5-6 19:23:33 | 显示全部楼层
open(1,file='E:\lunwen\rain\js.grd',form='binary',access='sequential',recl=yy*ii*jj,convert='little_endian')
read(1) (((summerrain(i,j,y),i=1,ii),j=1,jj),y=1,yy)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-5-6 19:24:16 | 显示全部楼层
把fortran改下就行了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-6 19:36:11 | 显示全部楼层

你好,出来这个错误--------------------Configuration: correlation coefficient - Win32 Debug--------------------
Compiling Fortran...
E:\lunwen\program\correlation coefficient.f90
E:\lunwen\program\correlation coefficient.f90(13) : Error: An assignment to a DO variable within a DO body is invalid.   [I]
   read(1) (((summerrain(i,j,y),i=1,ii),j=1,jj),y=1,yy)
---------------------------------------^
E:\lunwen\program\correlation coefficient.f90(13) : Error: An assignment to a DO variable within a DO body is invalid.   [J]
   read(1) (((summerrain(i,j,y),i=1,ii),j=1,jj),y=1,yy)
-----------------------------------------------^
E:\lunwen\program\correlation coefficient.f90(13) : Error: An assignment to a DO variable within a DO body is invalid.   [Y]
   read(1) (((summerrain(i,j,y),i=1,ii),j=1,jj),y=1,yy)
-------------------------------------------------------^
Error executing df.exe.

correlation coefficient.obj - 3 error(s), 0 warning(s)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-5-6 20:11:35 | 显示全部楼层
能轩 发表于 2013-5-6 19:24
把fortran改下就行了

我觉得他提示的是文件2有问题,应该是文件2 的格式有问题吧?该怎么设置呢,还是截取资料的gs不正确?文件2是个一维的60年西南秋季降水距平,图都画的出来。。。。啊啊啊,做论文快疯掉了
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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