爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4328|回复: 2

[求助] fortran读取无格式文件,不知道错在哪,堵在这很多天,求帮助

[复制链接]

新浪微博达人勋

发表于 2012-9-15 10:37:20 | 显示全部楼层 |阅读模式

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

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

x
program one
implicit none
integer,parameter::nx=35,ny=21,nt=776,iyear=64
real,dimension(nx,ny,nt)::hgt
real,dimension(nx,ny,iyear)::hgtwinter
integer::i,j,k,t,irec



open(1,file='hgt500hpa.mon.dat',status='old',form='unformatted',access='direct',recl=4) !读取月平均数据,其中
hgt500hpa.mon.dat是用grads转化来的
irec=0
do t=1,nt
  irec=irec+1
  do i=1,nx
   do j=1,ny
  read(1,rec=irec)hgt(i,j,t)
   end do
  end do
end do

close(1)


do i=1,nx
  do j=1,ny
    do t=12,770,12
      if (hgt(i,j,t)/=-9.96921e+36.and.hgt(i,j,t+1)/=-9.96921e+36.and.hgt(i,j,t+2)/=-9.96921e+36) then
         hgtwinter(i,j,(t-12)/12+1)=-9.96921e+36
      else
         hgtwinter(i,j,(t-12)/12+1)=(hgt(i,j,t)+hgt(i,j,t+1)+hgt(i,j,t+2))/3
      end if
    end do
  end do
end do
!抽出冬季数据,求季平均,
-9.96921e+36是缺省值


print*,hgtwinter(30,2,:)

open(2,file='hgtwinter.mean.dat',status='replace',form='unformatted',access='direct',recl=4) !写新季平均数据
irec=0
do t=1,64
irec=irec+1
do i=1,nx
do j=1,ny
write(2,rec=irec)hgtwinter(i,j,t)
end do
end do
end do
close(2)
print*,'zz'

end program one



我不知道real应该取多长,500hpa高度常大小基本都是五千多,recl取4可以读出来,recl取更小就数组越界了,再取的比4大就出很多很大的值,e的多少次幂。。。。请问recl怎么确定?4是我试出来的值。

新数据出来后也画不出来,我真不知道是怎么回事,recl应该怎么取,这个程序还有哪错了么?

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

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-9-15 11:37:25 | 显示全部楼层
与其自己乱试,不如拿本书好好把文件读写部分的例子看一看,彭国伦的那本,只要你看懂了例子,你就知道recl怎么取了,大家再怎么回答也不如书上说的全面。请看书吧!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-12 10:02:46 | 显示全部楼层
mofangbao 发表于 2012-9-15 11:37
与其自己乱试,不如拿本书好好把文件读写部分的例子看一看,彭国伦的那本,只要你看懂了例子,你就知道recl ...

请问是FORTRAN95程序设计吗O(∩_∩)O~
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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