- 积分
- 124
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-12-25
- 最后登录
- 1970-1-1

|

楼主 |
发表于 2017-3-6 12:58:53
|
显示全部楼层
这是程序
parameter(nt=64)
integer::n,num,n1,n2,n3,n4
real,allocatable::lon(:),lat(:),rd(:) !动态数组分别用来储存站点的降水
real:: temp(9)
character*8,allocatable::sta(:) !动态数组,储存站号,站号必须是8个字符,5个的话会stnmap出不出来
character*12 filename(nt) !用于储存64个时次的文件名
open(1,file='F:\surface\plot\filename.txt')
do i=1,nt
read(1,*) filename(i)
print*,'Filename:',filename(i)
enddo
close(1)
open(2,file='F:\surface\plot\rain.grd',form='binary') !储存64个时次的降水
do k=1,nt
open(3,file=filename(k))
read(3,*)
read(3,*) n1,n2,n2,n4,n !将该时次的站点数赋值于n
allocate(lat(n)) !分配动态数组
allocate(lon(n))
allocate(rd(n))
allocate(sta(n))
close(3)
open(4,file=filename(k)) !获知n后,重新读取数据。
read(4,*)
read(4,*)
do i=1,n !只读降水,别的要素暂略
read(4,*) sta(i),lon(i),lat(i),(temp(j),j=1,9),rd(i)
tim=0.0;nlev=1;nflag=1
write(2) sta(i),lat(i),lon(i),tim,nlev,nflag,rd(i) !一个时次的降水场输入完毕
enddo
nlev=0
write(2) sta(n),lat(n),lon(n),tim,nlev,nflag
!一个时次的降水场输入完毕,告诉Grads 该时次的数据结束。这是一个特殊标记。
deallocate(lat)
deallocate(lon)
deallocate(rd)
deallocate(sta)
!释放动态数组
close(4)
end do
close(2)
end
Compiling Fortran...
D:\Projects\Text2.f90
D:\Projects\Text2.f90(42): warning FOR4270: unused symbol N3
D:\Projects\Text2.f90(42): warning FOR4270: unused symbol NUM
Linking...
Text2.exe - 0 error(s), 2 warning(s)
|
|