举例说明
operator(.OR.)
实际上是元素:
program orme
implicit none
logical u(4), v(4), w(4)
integer i
u = [.TRUE., .FALSE., .TRUE., .FALSE.]
v = [.TRUE., .TRUE., .FALSE., .FALSE.]
w = u .OR. v
write(*,'(*(g0))') 'w =',(merge(' [',', ',i==1), &
trim(merge('.TRUE. ','.FALSE.',w(i))),i=1,size(w)),']'
end program orme
ifort输出:
w = [.TRUE., .TRUE., .TRUE., .FALSE.]
编辑
:我明白你困惑的原因:
gfortran
记录内部扩展
OR(I,J)
这只适用于标量。
ifort
还有文档
或(I,J)
但它在编译器中是基本的。在这两种情况下,当它工作时,结果都是按位逻辑的
OR
其输入。替换为
IOR(I,J)
在任何编译器上获取标准元素版本。还有逻辑阵列缩减功能
ANY
和整数数组缩减函数
IANY
有时会派上用场。