【发布时间】:2014-11-19 00:59:08
【问题描述】:
我有一些 FORTRAN 代码创建一个从几个不同项目调用的 .dll。在某些情况下,我想将输出写入 .txt 文件,而在其他情况下,输出从 .dll 传回,具体取决于调用它的项目。我正在寻找的是一种在任何一种情况下都可以处理 WRITE 语句的方法。也就是说,我正在寻找类似
SUBROUTINE MYPROGRAM(PROJECTFLAG,MYSTRING)
IF (PROJECTFLAG.EQ.1) THEN
OPEN(1,FILE='RESULTS.TXT')
ELSEIF (PROJECTFLAG.EQ.2) THEN
OPEN(1,MYSTRING) !THIS SYNTAX DOES NOT WORK
ENDIF
...
WRITE (1,*) OUTPUTDATA
END SUBROUTINE
正如我所指出的,我上面的语法不起作用。 是否可以像这样为WRITEing 提供OPEN 变量,或者您只能使用OPEN 文件?
我知道我可以将我的 if 块向下移动,并执行类似的操作
IF (PROJECTFLAG.EQ.1) THEN
WRITE(1,*) OUTPUTDATA
ELSEIF (PROJECTFLAG.EQ.2) THEN
WRITE(MYSTRING,*) OUTPUTDATA
ENDIF
但实际项目中的代码显然要复杂得多,我的目标是使用相同的WRITE 语句,无论我想将数据写入到哪里。
【问题讨论】:
标签: fortran