Fortran Coder

标题: This name has not been declared as an array or a function [打印本页]

作者: 汤晨瑾    时间: 2017-3-22 12:47
标题: This name has not been declared as an array or a function
帮我看一下,非常感谢!!!
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode

real:: n=7
real,dimension(1:n)::h_scatter
real,dimension(1:n)::hp_scatter=(/0,0,0,0,0,0,0/)
real,dimension(1:n)::tp_scatter=(/0,0,0,0,0,0,0/)
real,dimension(1:n)::beox_style=(/0,0,0,0,0,1,0/)
......
do j=1,n
        if (h_style(j)==1) then                          
            h_scatter(j)=0
        else if(beox_style(j)==1) then      
              hp_water(j-1)=h_water(j-1)+dh_pu
              tp_water(j-1)=ph(pout_pu,hp_water(j-1))      (t=ph(p,h)通过压力和焓查温度语句应该如何写)
              t_scatter(j)=tp_water(j-1)
              h_scatter(j)=ptwater(p_heater(j),t_scatter(j))
           else
              h_scatter(j)=hs_heater(j)
           end
    end do
    print*,(h_scatter(j),j=1,n)

error #6410: This name has not been declared as an array or a function.   [H_SCATTER]
error #6410: This name has not been declared as an array or a function.   [HP_WATER]
error #6410: This name has not been declared as an array or a function.   [TP_WATER]
是否是因为当取1时j-1=0,未定义才出错

作者: vvt    时间: 2017-3-22 12:57
1.编译错误先看第一个,后面的一律无视。

2.
real:: n=7
real,dimension(1:n)::h_scatter
这种写法是不允许的,变量不能作为数组大小。(如果要做只能用动态数组)

3.hp_water和 TP_WATER 没有定义为数组,不能作为数组使用。
作者: 汤晨瑾    时间: 2017-3-22 13:40
vvt 发表于 2017-3-22 12:57
1.编译错误先看第一个,后面的一律无视。

2.

integer,parameter::n=7
real,dimension(1:n)::h_scatter
real,dimension(1:n)::hp_water=(/0,0,0,0,0,0,0/)
real,dimension(1:n)::tp_water=(/0,0,0,0,0,0,0/)

我看到书上有这样声明的。
作者: 汤晨瑾    时间: 2017-3-22 13:43
汤晨瑾 发表于 2017-3-22 13:40
integer,parameter::n=7
real,dimension(1:n)::h_scatter
real,dimension(1:n)::hp_water=(/0,0,0,0,0,0, ...

fortran 90 编程基础 林晓彤主编
integer,parameter::M=3,N=4
integer,dimension::(1:M,1:N)::tem
作者: vvt    时间: 2017-3-22 18:00
integer,parameter::n=7
这是常量
real:: n=7
这是变量
(他们的区别是,有没有 parameter)

作者: 汤晨瑾    时间: 2017-3-23 09:30
vvt 发表于 2017-3-22 18:00
integer,parameter::n=7
这是常量
real:: n=7

好的。这个我改过来了。谢谢您!但是显示的错误还是没有声明数组。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2