我正在编写一个用于解决我的研究的一些数字代码的UI,并且我在重定向代码输出时遇到了一些问题。
代码是用fortran编写的,我相信,不幸的是,我对fortran的经验相当少。我正在运行linux mint 15,我无法获得像./codepath>这样的语句。文件工作。这些命令适用于shell脚本,因此我确信问题出在Fortran上。
通常代码只是打印到终端窗口,所以我想知道是否由于某种原因PRINT *,不写入标准输出?我可以做另一个重定向,所以我不必重写fortran代码吗?如果没有,我该如何更改这些打印语句以便它将转到标准输出?
编辑:作为参考,我正在谈论的程序的位如下所示:
IF (MOD(n,dn) .EQ. 0) THEN
IF ((DDnew .EQ. 0) .AND. (DDold .EQ. 0)) THEN
DDerr = 1
ELSE
DDerr=ABS(DDnew-DDold)
RRerr=ABS(MAXVAL(ff(:,:,4))-RRold)
ERRsum=DDerr+RRerr
print *, "ERROR =", ERRsum
CALL output(xx,yy,ff,cw,ycw)
END IF
END IF
最终目标是将这些打印重定向到UI程序中的文本字段,但我希望能够在不编辑fortran代码的情况下做到这一点,因此需要正确使用它。 :P
答案 0 :(得分:2)
它可能会打印到标准错误,该错误由终端拾取但不会被标准重定向拾取。你能试试这个:
./ codepath> output.txt 2>& 1
如果这不起作用,你可以发布一些Fortran代码吗?
调用
CALL flush(6)
CALL flush(0)
在您的印刷声明也可能有所帮助之后。