本帖最后由 BNUPHYKLIANG 于 2018-12-5 16:39 编辑  
 
感谢! 
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode do i = 1, N_Param
       curr => cfg%record(i)
       curr%id         = i
       curr%pname      = PARAM_NAME(i)
       curr%ptype      = PARAM_TYPE(i)
       curr%isArray    = PARAM_ARRAY(i)
       curr%defaultval = PARAM_DVAL(i)
       if (curr%ptype .eq. TYPE_REAL) then
          read(curr%defaultval,*) curr%rval
       else if (curr%ptype .eq. TYPE_INTEGER) then
          read(curr%defaultval,*) curr%ival
       else if (curr%ptype .eq. TYPE_COMPLEX) then
          read(curr%defaultval,*) curr%cval     
       end if 
这就是出错处的那个程序,提示倒数第二行read(curr%defaultval,*) curr%cval 出错,错误就是 Fortran runtime error: Bad repeat count in item 1 of list input 。 
按理说,它提前判断了数据类型,不应该再出错。 
curr定义如下:  
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode  type(Param),pointer    :: curr
    integer :: i 
 
curr=>cfg%record(i)  
  对于报错的 read(curr%defaultval,*) curr%cval  
  因为curr%defaultval = PARAM_DVAL(i)  
中我在想是不是i的值太大导致 PARAM_DVAL(i) 中的数据已经没有了(但是它判断数据是个复数啊), PARAM_DVAL如下: 
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode character(len=*), parameter :: PARAM_DVAL(N_Param) =  &
       &(/"-1      ", "HSF.in  ", "HSF.out ", "12      ", "0.0     ", &
       &  "0       ",  &
       &  "0.001   ", "0.0     ", "8       ", "0.125   ", "0.001   ", &
       &  "quest   ", "geom.def", "8       ", "0.0     ", "8       ", &
       &  "16      ", "10      ", "50      ", "4       ", "12      ", &
       &  "12      ", "5000    ", "30      ", "0       ", "1000    ", &
       &  "12      ", "4       ", "4       ", "2       ", "0.0001  ", &
       &  "0       ", "1.0     ", "10      "/) 
 
 
 
 |