Fortran 中的向量化数组比较

anu*_*ban 1 arrays fortran vectorization

我想使用单行语句在 Fortran 中执行以下伪代码的do-end do位:

integer, parameter :: N = 1000
integer, dimension(1:N) :: ArrayA, ArrayB
logical, dimension(1:N) :: ArrayL
...
...
do i = 1, N
    if( ArrayA(i) <= ArrayB(i) ) then
        ArrayL(i) = .true.
    else
        ArrayL(i) = .false.
    end if
end do
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果是这样,我该怎么做?

小智 5

integer, parameter :: N = 1000
integer, dimension(1:N) :: ArrayA, ArrayB
logical, dimension(1:N) :: ArrayL
...
...
ArrayL = (ArrayA <= ArrayB)
Run Code Online (Sandbox Code Playgroud)