gpt4 book ai didi

error-handling - Fortran 90错误: input requires too much data

转载 作者:行者123 更新时间:2023-12-03 07:54:47 25 4
gpt4 key购买 nike

我有以下代码:

if (complex) then
read(unitvector) (CoefC(jl),jl=1,NV)
endif

用户指示数据是否为复数的集合。现在,如果用户指示它是,但实际上不是,我得到错误67(输入需要太多数据)。我该如何捕获它,以便我可以写出用户可能出错了。我以为它看起来像:
read(unitvector, ioStat=iocplx) (CoefC(jl),jl=1,NV) 

但是我应该把“if”放在哪里检查错误?

最佳答案

这取决于程序的整体逻辑,我们无法从如此小的代码段中告诉您最佳的方法。您可以尝试类似(未经测试)的方法:

if (complex) then
read(unitvector, ioStat=iocplx) (CoefC(jl),jl=1,NV)
if (iocplx/=0) stop "Error reading the complex data."
end if

要么
if (complex) then
read(unitvector, ioStat=iocplx) (CoefC(jl),jl=1,NV)
if (iocplx/=0) then
write(*,*) "Error reading the complex data, triung real."
complex = .false.
backspace(unitvector)
read(unitvector, ioStat=ioreal) (CoefR(jl),jl=1,NV)
if (ioreal/=0) then
stop "Error reading real data."
end if
end if
end if

但是您确实没有指定所需的内容,停止程序并编写有意义的消息吗?以其他方式读取数据?一切皆有可能,我们没有 Crystal 球。

关于error-handling - Fortran 90错误: input requires too much data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22790894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com