- 积分
- 15
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2016-6-16
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
各位大神,能不能请教个问题fortran读取数据时,如果遇到某一行只有时间和日期,没有数据怎么办? 也就是说这行空白,实际读取的时候,我把最后面这列设成了字符型的,按我的理解,无数据的时候应该是空格啊,然后我判断是否为空格,然后把数据写回实型的就行了。但实际读出来的时候空格竟然自动赋值,赋的是前面的日期,请问您们遇到过这样的问题吗?该怎么解决呢?
附程序
SUBROUTINE vis_month()
implicit none
integer i,j,ii,jj,iz,isn
parameter(iz=200000,isn=12)
****************** 定义分段,分季节和全年定义为5维变量,全年-春夏秋冬 排列 ************
real vis_mean,vis_mm,vis_all_mean
dimension vis_mean(isn),vis_mm(isn)
integer ivis
real vis_sum,vis
dimension vis_sum(isn)
character visal*8
************************* 定义年月日和时次 为字符型的数据 *******************************
character path*60,a*11,yy*4,mm*2,dd*2,wd*4,hour*2
***********************************************定义时次长度**********************************
character mon*2
dimension mon(isn)
data mon /'01','02','03','04','05','06','07',
& '08','09','10','11','12'/
path='D:\qhz\qhz\vis\'
open(20,file='vis_month.txt')
open(21,file='vis_error.txt')
open(10,file=trim(path)//'vis2007.txt')
do i=1,isn
vis_mean(i)=0
vis_sum(i)=0
enddo
do jj=1,iz,1
read(10,*,end=31)a,hour,visal
yy=a(1:4)
mm=a(6:7)
dd=a(9:10)
! print*,yy,mm,dd,' ',hour,' ',visal
!
! vis=float(ivis)
! print*,a,hour,ivis
************************************* 日变化 *********************************
if(trim(visal).ne.' ')then
read(visal,'(i7)')ivis
print*,a,hour,ivis
vis=float(ivis)
do j=1,isn
if(mm.eq.mon(j))then
if(vis.ge.0.0.and.vis.le.10000)then
vis_mm(j)=vis_mm(j)+vis
vis_sum(j)=vis_sum(j)+1
else
print*,a,hour,vis
endif
else
endif
enddo
else
write(21,*)a,hour,visal
endif
enddo
31 continue
附原始数据和出错
|
-
-
|