Fortran 90没有写入标准输出?

时间:2013-07-29 18:55:15

标签: linux redirect fortran90 redirectstandardoutput

我正在编写一个用于解决我的研究的一些数字代码的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

1 个答案:

答案 0 :(得分:2)

它可能会打印到标准错误,该错误由终端拾取但不会被标准重定向拾取。你能试试这个:

./ codepath> output.txt 2>& 1

如果这不起作用,你可以发布一些Fortran代码吗?

调用

CALL flush(6)
CALL flush(0)

在您的印刷声明也可能有所帮助之后。