变量的类型与其定义有关,计算过程不会改变。 (实数是特殊的复数) |
嗯,主要是源程序作者这样设计的,我想的是有可能经过迭代以后那个值是复数,只是输入的初始值是实数 |
同一个问题,往往有多种解答。 楼主把它归结于“编译器差异”,倒不是不可以。 不过,我认为问题出在 PARAM_TYPE(i) 的值。 不应该是 TYPE_COMPLEX |
好的谢谢,最后我发现问题出在编译器上,gfortran的编译规则应该更严格,而源程序用的时ifort今天我安装了ifort就解决了,代码中的原始数据是字符串,只不过作者在此处用的是复数,所以用了read。问题在于他直接read(字符串,*)复数 这个在ifort里可以,在gfortran里不行(可能因为gfortran认为复数应该有两个部分) |
你要看 PARAM_TYPE 的值。 你的代码里我没有看到自动判断参数类型的代码,可能是写死的。(而不是动态判断的) |
本帖最后由 BNUPHYKLIANG 于 2018-12-5 16:39 编辑 Jackdaw 发表于 2018-12-4 16:11 感谢! [Fortran] 纯文本查看 复制代码 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] 纯文本查看 复制代码 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 "/) curr=>cfg%record(i) 对于报错的 read(curr%defaultval,*) curr%cval 因为curr%defaultval = PARAM_DVAL(i) 中我在想是不是i的值太大导致 PARAM_DVAL(i) 中的数据已经没有了(但是它判断数据是个复数啊), PARAM_DVAL如下: [Fortran] 纯文本查看 复制代码 do i = 1, N_Param print *, i 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 |
好的谢谢,我晚上看看 |
本帖最后由 Jackdaw 于 2018-12-4 16:13 编辑 文件内容和变量类型不对应,检查输入文件吧 |
Screenshot_2018-12-04_16-10-20.png (146.33 KB, 下载次数: 502)
捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )
GMT+8, 2024-12-24 03:17