WHERE 構造
在 Fortran90 以後可用的 where
構造代表一個蒙面的 do
構造。掩碼語句遵循 if
語句的相同規則,但適用於給定陣列的所有元素。使用 where
允許在陣列(或相同大小的多個陣列)上執行操作,其元素滿足特定規則。這可用於簡化對多個變數的同時操作。
句法:
[name]: where (mask)
block
[elsewhere (mask)
block]
[elsewhere
block]
end where [name]
這裡,
- name - 是塊的名稱(如果已命名)
- mask - 是應用於所有元素的邏輯表示式
- block - 要執行的一系列命令
例子:
! Example variables
real:: A(5),B(5),C(5)
A = 0.0
B = 1.0
C = [0.0, 4.0, 5.0, 10.0, 0.0]
! Simple where construct use
where (C/=0)
A=B/C
elsewhere
A=0.0
end
! Named where construct
Block: where (C/=0)
A=B/C
elsewhere
A=0.0
end where Block