爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3519|回复: 8

[求助] 在求年平均的时候编译运行都没错,可是结果出现错误,请大家看看

[复制链接]

新浪微博达人勋

发表于 2014-5-10 22:52:52 | 显示全部楼层 |阅读模式

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

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

x
program Console2

!default parameters
integer,parameter ::yrbegin=2001,yrend=2099,nx=72,ny=46,nz=17,nt=99

!recycle varable
integer year,t,z

character(len=40) yr(99),file_end1,file_end2,file_head

!array to read data
real v1(nx,ny,nz,nt),v7(nx,ny,nz,nt)

!array to restore average of and V
real ave_v1(nx,ny,nz),ave_v7(nx,ny,nz)

!file name at the end
file_end1="-01.grd"
file_end2="-07.grd"

file_head='V'

!to reverse the int_var to the char_var
do year=yrbegin,yrend
write(yr(year-yrbegin+1) , "(I4)" ) year
end do

!just to read V1 ,V7 data from every file
do t=1,nt
open(11,file='d:/lunwen/1yuegrd/'//trim(adjustl(file_head))//trim(adjustl(yr(t)))//trim(adjustl(file_end1)),form='binary')
open(12,file='d:/lunwen/7yuegrd/'//trim(adjustl(file_head))//trim(adjustl(yr(t)))//trim(adjustl(file_end2)),form='binary')
read(11)(((v1(i,j,z,t),i=1,nx),j=1,ny),z=1,nz)
read(12)(((v7(i,j,z,t),i=1,nx),j=1,ny),z=1,nz)
close(11)
close(12)
end do

!this is the compution setion , to calculate the average feild of u, v of Jan and Jul
do i=1,nx;do j=1,ny;do z=1,nz

ave_v1(i,j,z)=sum(v1(i,j,z,:))/nt;ave_v7(i,j,z)=sum(v7(i,j,z,:))/nt

end do;end do;end do
!ok,to write the results to the hard disk
open(22,file='d:/lunwen/v1.grd',form='binary')
open(23,file='d:/lunwen/v7.grd',form='binary')

write(22)(((ave_v1(i,j,z),i=1,nx),j=1,ny),z=1,nz);write(23)(((ave_v7(i,j,z),i=1,nx),j=1,ny),z=1,nz)

close(22)
close(23)


stop
end program

这是程序,运行结果显示提示为:forrt1:severe(24): end-of-file during read,unit 11,file d:\lunwen\1yuegrad\V2001-01.grd





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

新浪微博达人勋

发表于 2014-5-10 22:58:38 | 显示全部楼层
在读11,12的时候文件的数据少于你编译的数了 你再看看你原文件
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-10 23:06:06 | 显示全部楼层
没明白,什么叫文件的数据少于编译的数啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-10 23:51:20 | 显示全部楼层
1021582751 发表于 2014-5-10 23:06
没明白,什么叫文件的数据少于编译的数啊

假如你文件里只有一个数 但是你的程序是要从文件里读两个数出来 系统就会提醒你END OF FILE DURING READ
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-11 09:05:21 | 显示全部楼层
Mid_Farmer 发表于 2014-5-10 23:51
假如你文件里只有一个数 但是你的程序是要从文件里读两个数出来 系统就会提醒你END OF FILE DURING READ

看来他还是不明白,你可以告诉他这个地方怎么改。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-12 14:32:35 | 显示全部楼层
那就是数据有问题啊?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-14 13:43:35 | 显示全部楼层
Mid_Farmer 发表于 2014-5-10 23:51
假如你文件里只有一个数 但是你的程序是要从文件里读两个数出来 系统就会提醒你END OF FILE DURING READ

找到错误了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-5-14 23:00:02 | 显示全部楼层

是什么原因呢 给大家一个经验性总结呗...
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-5-17 16:22:10 | 显示全部楼层
Mid_Farmer 发表于 2014-5-14 23:00
是什么原因呢 给大家一个经验性总结呗...

程序本身就是没有错误,是数据出错了,数据本身是nc格式的,我用cdo转成grd格式了,估计转得不对,后来直接用nc 资料求得平均
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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