回 帖 发 新 帖 刷新版面

主题:解决了,谢谢,我太大意了,求助,这个小程序怎么错的,郁闷死我了

parameter(max_sta=99999)
        character*8 netname(max_sta),staname(max_sta)
        real lat(max_sta),lon(max_sta)
        open(10,file='./infor_sta1',status='old')
        N_sta=0
        do i=1,99999
           read(10,380,end=99)netname(i),staname(i),lat(i),lon(i)
           N_sta=N_sta+1
        enddo
99      continue
        close(10)
        do i=1,(N_sta-1)
           do j=(i+1),N_sta
               call local_space(netname(i),n1,n2)
               write(*,*)'wwwwwwwww'
               write(*,*)n1,n2
               call local_space(netname(j),n1,n2)
               write(*,*)netname(i),netname(j)
               write(*,*)n1,n2
            enddo
         enddo
380     format(A8,A8,F10.4,F10.4)
        end


        subroutine local_space(str,n1,n2)
        character*256 str
        logical log_sec
        log_sec=.false.
        n1=0
        n2=len(str)
        do i=1,len(str)
           if ((str(i:i).eq.' ').and.(n1.eq.0)) then
           elseif ((str(i:i).ne.' ').and.(n1.eq.0)) then
              n1=i
              log_sec=.true.
           elseif ((str(i:i).eq.' ').and.(log_sec)) then
              n2=i-1
              log_sec=.false.
           endif
        enddo
        end


子程序的目的是为了求第一个非空格的字符位置和这个字符后的第一个空格前一个字符的位置,运行输出前面的都是对的(输出7和8),但是当j=N_sta时,输出结果就不对了(变成了7和256),一直找不到原因,还望高手帮助。多谢多谢

其中读取的文件内容为:      
      FJ    DSXP     110.123  25.234
      FJ    DSXP     110.123  25.234
      FJ    DSXP     110.123  25.234

回复列表 (共4个回复)

沙发

Character length argument mismatch.   [NETNAME]

板凳

还是不太懂,要是改的话该怎么改呢?

3 楼


字符型数组的长度或者数组开小了

4 楼

深圳华信群英科技有限公司,目前主要从事软件外包开发、高级软件人才定向输送等业务,面对日益严峻的大学生就业难和IT企业招聘难,自2006以来,与知名通信软件公司正式签订定向输送人才的合作协议,针对想进入软件行业的人员提供企业实训,实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段,共计900学时。
企业订单委培,内训前签订就业安置协议,100%保证就业。实训结束之后,在华信群英科技及其战略合作伙伴从事通信软件研发工作。欢迎有意向者加QQ:649846168咨询。

我来回复

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