- 积分
- 8822
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-9-19
- 最后登录
- 1970-1-1
![未绑定新浪微博用户 新浪微博达人勋](source/plugin/sina_login/img/gray.png)
|
发表于 2015-12-21 15:25:02
|
显示全部楼层
首先感谢楼主分享 我自己试着写了一个 没有成功,stnmap时出现下面的错误 希望给指点下问题在哪里。
fortran程序:
program sta2grd
implicit none
character*8 :: stid(:)
character*50 :: tmpstr,tmpstr1
character*10 :: time(:)
real :: lon(:),lat(:),tim
integer :: nlev,flag,i,j,cnt,num_time,num_sta=178
allocatable,real :: t(:,:),u(:,:),v(:,:),sp(:,:),rain(:,:),rh(:,:)
open(101,'./time.txt',status='old') %time
i = 0
do while ( .true. )
read(102,*,iostat=stat) tmpstr
if( stat /= 0 ) exit
i = i + 1
end do
num_time=i
allocate(time(num_time))
rewind(101)
do i=1,num_time
read(101,*) time(:)
print *,time(:)
enddo
close(101)
allocate(t(num_time,num_sta),u(num_time,num_sta),v(num_time,num_sta),sp(num_time,num_sta),rain(num_time,num_sta),rh(num_time,num_sta))
open(102,file='sta.grd',status='replace',form='binary')
do i=1,num_time
call get_funit(funit(cnt))
open(funit(cnt),file=trim(time(i))//'.txt',status='old')
do j=1,num_sta
read(funit(cnt),*) stid(j),lat(j),lon(j),t(i,j),u(i,j),v(i,j),sp(i,j),rain(i,j),rh(i,j)
write(102) stid(j),lat(j),lon(j),t(i,j),u(i,j),v(i,j),sp(i,j),rain(i,j),rh(i,j)
enddo
close(funit(cnt))
cnt=cnt+1
enddo
close(102)
subroutine get_funit(funit)
implicit none
integer :: funit
logical :: is_used
do funit = 10,100000000
inquire( unit = funit, opened = is_used )
if( .not. is_used ) exit
end do
return
end subroutine
|
|