Fortran Coder

查看: 18005|回复: 6
打印 上一主题 下一主题

[求助] 运行后出现runtime error

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2020-2-21 17:14:54 | 显示全部楼层
请给出输入文件,以便判断问题。

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2020-2-21 17:19:42 | 显示全部楼层
试试
allocate(c(15,row))
改为
allocate(c(column-1,row))
rewind(55)

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2020-2-22 13:27:53 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
Program main
  Integer,parameter :: length=1000
  integer i
  real d
  Character(LEN=length) A,B,Filename
  Integer(kind=4)::Column, Row, K,L
  real , allocatable :: c( : , : )
  Column=0;Row=0;K=0;L=1;filename="ztzl-1.txt"
  Open (55,file=Filename)
  Read(55,'(a1000)') A
  column=GetDataN(A)!//改成这个函数,具体实现在下面的代码
  CLOSE(55)
  Open (55,file=Filename)
  Do
    Read(55,*,iostat=k) B
    If( k /= 0 ) Exit
    Row = Row + 1
  End Do
  Write(*,"(A5,I6,5X,A7,I2)") "Row=",Row,"Column=",Column!读取行数
  allocate(c(column-1,row))
  rewind(55)
  Do i = 1,Row
    read(55,*) d,c(:,i)!//1改成 i
  End Do
  Close(55)!将数据转化为数组

contains

  Integer Function GetDataN( cStr )
    Character( Len = * ) , Intent( IN ) :: cStr
    Integer :: i
    Logical :: bIsSeparator , bIsQuote
    GetDataN = 0
    bIsSeparator = .TRUE.
    bIsQuote = .FALSE.
    Do i = 1 , Len_Trim( cStr )
      Select Case( cStr(i:i) )
      Case( '"' , "'" ) !// 如果遇到引号
        If ( .Not.bIsQuote ) GetDataN = GetDataN + 1  !//如果不在引号中,则增加一个数据
        bIsQuote = .Not.bIsQuote !// 引号结束或开始
        bIsSeparator = .FALSE.
      Case( " " , "," , char(9) ) !// 如果遇到分隔符
        If ( .Not.bIsQuote ) then  !// 分隔符如果不在引号中
          bIsSeparator = .TRUE.
        End If
      Case Default      
        If ( bIsSeparator ) then
          GetDataN = GetDataN + 1
        End If
        bIsSeparator = .FALSE.
      End Select
    End Do
  End Function GetDataN
  
End Program Main
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-3 22:33

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表