【发布时间】:2013-01-16 17:52:47
【问题描述】:
提前感谢您的帮助.. 我想在 FORTRAN 主程序的输出文件中打印数据,这些数据在模块中定义,我已经在主程序中声明使用该模块。但我在主程序和模块中都无法获得写入语句。
MODULE model
IMPLICIT NONE
SUBROUTINE model_initialize
IMPLICIT NONE
INTEGER a,dim REAL(float) :: E,nu
REAL(float) :: lambda,mu
E=5000 lambda = E*nu/(1.d0+nu)/(1.d0-2.d0*nu)
mu = E/2.d0/(1.d0+nu)
RETURN
END SUBROUTINE model_initialize
Write (6,)'Lambda',lambda
Write (6,)'mu',mu
END MODULE model
SUBROUTINE XXXX
USE model
IMPLICIT NONE
CALL model_initialize
Write (6,)'Lambda',lambda
Write (6,)'mu',mu
END SUBROUTINE XXX
当我将写语句放在模块或主子程序中时,我在输出中看不到它们。
非常感谢您的帮助 姆谢赫
【问题讨论】:
-
您正在打开输出文件吗?你是在你的模块子程序还是主程序中打开它?
-
感谢您的提问,我想在我的主子例程 XXX 中打印模块中的参数值,但没有出现,还尝试通过将 write 语句放入模块它自己,但也是不可能的
-
我仍然不确定我是否理解问题所在。为什么不能从主例程中写入值? mgilson 下面答案中的示例代码对您不起作用吗?
-
也许混乱在别处......你所说的“主子程序”到底是什么意思?子程序不会自动执行,只有(主)
program是。因此,Mgilson 的例子应该奏效。此外,您不能在模块中使用write语句,除非它包含在子例程或函数中;模块本身也不执行任何操作。 -
谢谢马特和西格玛,如果问题不是很清楚,我很抱歉。问题是,我想从主程序中使用的模块写入数据,当我将写入语句放入模块或主程序中时,我看不到写入语句的结果,我执行以下操作:
标签: fortran