本帖最后由 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 "/)
|