我正在开发一个Fortran 2008项目,在该项目中,我使用read
语句从输入文件中读取了一些参数(包括标量和数组)。我想强制执行这些参数在读入后不被修改。我怎样才能实现这一点?
答案 0 :(得分:3)
模块变量可以赋予PROTECTED属性,这可以防止代码使用相关模块通过变量名修改模块变量。
但是,这并不妨碍对定义模块或其后代子模块中的变量进行修改,或者通过除使用相关名称以外的方式修改变量(例如通过与同一事物相关联的指针),或者阻止非 - 通过修改变量来协调Fortran代码(例如,通过使用相关名称作为具有修改相应虚拟对象的隐式接口的过程的实际参数)。
答案 1 :(得分:1)
在fortran 90中,您可以定义一个将这些变量作为私有成员的模块。让模块仅定义从文件中读取变量的函数,以及返回其值的getter函数。并且模块中没有其他功能。
我没有使用fortran 2003 for fortran 2008提供的OO功能,但情况类似。