而Fortran数组中的所有元素都不是零

而Fortran数组中的所有元素都不是零,fortran,do-while,Fortran,Do While,我尝试使用一个循环,该循环将一直运行,直到两个数组的所有元素都为0: 我在想: DO WHILE(ALL(QueueST/=0) .AND. ALL(QueuePT/=0)) !here things to do END DO 对吗?有更好的办法吗? 那么: DO IF(ALL(QueueST/=0) .AND. ALL(QueuePT/=0))THEN EXIT END IF !here things to do END DO 有什么不同吗 它们是不正确的。在“边

我尝试使用一个循环,该循环将一直运行,直到两个数组的所有元素都为0:

我在想:

DO WHILE(ALL(QueueST/=0) .AND. ALL(QueuePT/=0))
!here things to do 
END DO
对吗?有更好的办法吗? 那么:

DO    
IF(ALL(QueueST/=0) .AND. ALL(QueuePT/=0))THEN
  EXIT
END IF 
    !here things to do 
END DO

有什么不同吗

它们是不正确的。在“边做边用”中

 DO WHILE(ALL(QueueST/=0) .OR. ALL(QueuePT/=0))
第二种形式

IF(ALL(QueueST==0) .AND. ALL(QueuePT==0)) EXIT

在这两个版本中,这两个条件应该是相对的。

而且我认为在
while
循环中也应该将
ALL
更改为
ANY
do-while(.not.(ALL(QueueST==0)和.ALL(QueuePT==0))
可能是可读性最好的