1
嗯,我现在有这个问题。我有一个(很大)的参数集,我想在矢量中组织。在fortran中定义长参数矢量的整洁方法
当然,我可以这样做:
real, dimension(64) :: CONST
CONST(1) = 2.4
CONST(2) = 1.4
...
CONST(n) = CONST(1)*CONST(14)**CONST(7)
...
CONST(64) = ABS(CONST(18))
(请注意,一些常量都与其他常量)。
但是在这种情况下,我不会在变量中具有parameter
属性,我希望拥有该属性。
我能想到的另一个选择是使用属性parameter
,在这种情况下,我必须在变量的定义过程中将值赋予向量。喜欢的东西:
real, parameter, dimension(64) :: CONST =[2.4 , 1.4 , &
... , &
1.5412356 , &
... , &
342.5]
但是,随着一些巨大的同行:
- 的代码变得难于理解为线的大量的变量的定义中的结果。
- 我无法将常量定义为其他常量的函数。
所以,
- 有一个整洁的方式(如在第一代码)来定义与用Fortran属性
parameter
长向量? - (我想这不是)有一种方法来改变变量的属性,一旦我定义了它的值?
谢谢你的时间。
如果你有一些常量可以通过循环计算出来,你可以考虑像CONST = [(i,i = 1,64)]这样的隐式循环...... – 2014-09-12 15:39:36
好主意,但它们是一些生理参数,甚至不能靠某些循环来计算。 – 2014-09-12 15:40:49
顺便说一句:你*可以*定义依赖于其他常量的常量! – 2014-09-12 15:44:47