语法错误初始化具有save属性的数组

时间:2017-11-23 08:23:08

标签: arrays fortran

Fortran中是否有办法存储像这样的静态数组或类似的东西

Real*8,Save,Dimension( 1 : 3 ) :: z = ( / 1 , 0 , 0 /)
                                       1
Error: Syntax error in expression at (1)

问题是如果我这样定义数组,我得

Real*8,Save,Dimension( 1 : 3 ) :: z = ( / 1 , 0 , 0 /)
                                       1
Error: Syntax error in expression at (1)

我想将这个数组存储在子程序中 在程序执行期间多次调用, 但我不想一遍又一遍地初始化这个数组 每个子程序调用。我怎样才能声明这个数组?

1 个答案:

答案 0 :(得分:1)

问题已经解决了。问题是如果我定义数组,我得

Real*8,Save,dimension( 1 : 3 ) :: z = ( / 0d0 , 0d0 , 1d0 / )
                                       1
 Error: Syntax error in expression at (1)

所以括号和斜线之间有空格。 但是,如果我这样做(所以我只是删除空格(在“(/”和“/)”),如此

Real*8,Save,dimension( 1 : 3 ) :: z = (/ 0d0 , 0d0 , 1d0 /)

它工作正常。