嵌套 IF 中的错误:在 (1) 处的表达式中需要右括号

Error in nested IF: Expected a right parenthesis in expression at (1)

我有一个嵌套的 IF 构造如下:

if(tt-t(ind)<=t(ind+1)-tt) then
        t(ind)=tt
        y(:,ind)=yy
    else
        if((y:,ind) == 0) then
            y(:,ind)=y(:,ind-1)
        ! If a certain sample point is skipped
        ! then assign previous sample value to it
        endif
    ind=ind+1
    t(ind)=tt
    y(:,ind)=yy
endif

我收到一条错误消息

                if((y:,ind) == 0) then
                     1
Expected a right parenthesis in expression at (1)

当我删除那个内部 IF 时,编译就没问题了。我不明白 IF 语句有什么问题。我也试过 if((y:,ind) .EQ. 0) 但这也没有任何区别。

行长为 52(包括空格),完全在限制范围内。这里有什么问题?

嗯,索引切片应该是 y(:,ind)。此外,如果语句需要逻辑标量,那么您可以使用 allany,具体取决于您要实现的目标:

if( all( y(:,ind) == 0 ) ) then

if( any( y(:,ind) == 0 ) ) then