回 帖 发 新 帖 刷新版面

主题:Fortran读取grd文件遇到问题

Fortran菜鸟……求助一下大家!!!刚开始入门,很纠结!
现在有一个grd文件,是用grads转的nc资料,nc资料是1900-2009逐月的2米气温。转的GRD数据是1900-2009年1320个月的逐月全球平均2米气温资料。想要做出1900-2009年逐年平均的资料,要怎么写这个程序呀!!!不太会写循环呀,大家帮帮忙吧……非常感谢!!!
这是写的gs:
'sdfopen f:\nc\1.nc'
'set gxout fwrite'
'set fwrite f:\1gc.grd'
'set x 1'
'set y 1'
'set z 1 1'
i=1
while(i<=1320)
    'set t 'i''
'define var=aave(t2m,x=1,x=721,y=1,y=361)'
'set x 1 721' 
'set y 1 361'
'd var'
i=i+1
endwhile
'disable fwrite'
;

之后写了Fortran程序,
program main
integer,parameter(i=1320,t=110)
integer ii,it
real var(i),year(t) 
open(1,file='f:\f\1gc.grd',status='old',form='binary')
do ii=1,i
do it=1,t
read(1) var(ii)
year(it)=(var(t*12-11)+var(t*12-10)+var(t*12-9)+var(t*12-8)+var(t*12-7)+var(t*12-6)+var(t*12-5)+var(t*12-4)+var(t*12-3)+var(t*12-2)+var(t*12-1)+var(t*12))/12
enddo
enddo
open(2,file='f:\1gc.txt',status='new')
write(*,*) year
close(1)
close(2)
end

有错误,要怎么写才对啊?有谁能帮帮我吗?


回复列表 (共1个回复)

沙发

program stjp
integer*4,parameter:: i=1320,t=110
integer*4 :: ii,it
real*4 var(i),year(t)
open(10,file='f:\f\1gc.grd',form='binary')
do it=1,t
do ii=1,i
read(10,*) var(ii)
year(it)=(var(it*12-11)+var(it*12-10)+var(it*12-9)+var(it*12-8)+var(it*12-7)+var(it*12-6)+var(it*12-5)+var(it*12-4)+var(it*12-3)+var(it*12-2)+var(it*12-1)+var(it*12))/12
enddo
enddo
open(20,file='f:\1gc.txt',status='new')
write(20,*) year
close(10)
close(20)
end
改成这样了……但是end of file encountered。实在改不出来了……

我来回复

您尚未登录,请登录后再回复。点此登录或注册