为了我的研究,我正在编写一个UI来遍历一些数字代码,而且我在重定向代码的输出时遇到了一些问题。
我相信这段代码是用fortran 90编写的,不幸的是,我对fortran的经验非常少。我正在运行linux 15,并且无法让像./codepath > file这样的语句工作。这些命令适用于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
发布于 2013-07-29 20:04:59
这可能是打印到标准错误,这是由终端获取,但不会被一个标准重定向。你能试试这个吗?
./codepath > output.txt 2>&1
如果不起作用,你能发布一些Fortran代码吗?
呼叫
CALL flush(6)
CALL flush(0)打印后的语句可能也有帮助。
https://stackoverflow.com/questions/17931976
复制相似问题