linux - Fortran 90 不写入标准输出?

标签 linux redirect fortran90 redirectstandardoutput

我正在编写一个 UI 来为我的研究处理一些数字代码,但我在重定向代码输出时遇到了一些问题。

我相信代码是用 Fortran 90 编写的,不幸的是,我对 Fortran 的经验相当少。我正在运行 linux mint 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

最佳答案

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

./codepath > output.txt 2>&1

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

打电话

CALL flush(6)
CALL flush(0)

在您的打印语句之后也可能有所帮助。

关于linux - Fortran 90 不写入标准输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931976/

相关文章:

asp.net - IIS 301 重定向 - 将原始 URL 通知最终站点的任何方式

fortran - 打印值而不换行

fortran - 用 Fortran 重载函数

运行 start-stop-daemon 的能力

linux - 谁能给我解释一下这个 makefile 示例吗?

c - 为什么一个程序的行为取决于它的 child 完成的顺序?

python - 在 python 线程中执行 os.system() 时会发生什么?

apache - 使用通配符证书进行 HTTPS 重定向

javascript - AngularJS 引用错误 : $window is not defined

fortran - 将 FFTW 计划传递给 Fortran 子例程