【发布时间】:2014-11-06 20:16:56
【问题描述】:
好吧,我现在遇到了这个问题。我有一组(大量)参数,我想将它们组织成一个向量。
当然,我可以这样做:
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) ]... -
好主意,但它们是一些生理参数,甚至无法通过循环计算。
-
顺便说一句:您可以定义依赖于其他常量的常量!
-
你可以在续行后面写评论...
1.5412356 , & ! This constant is very important. -
@AlexanderVogt - 是的,但这并不取决于它本身。 Alfonso:您可以先定义“基本”参数,然后定义完整数组,两者都作为参数。
标签: variables vector fortran definition