any 函数和all函数可能能帮助你。
Program Main
Implicit None
Real :: a(10) = 0.0
Integer i
call Random_Seed()
Do i = 1 , 10
Do
call Random_Number( a(i) )
a(i) = a(i) * 20 !// 获得 0 到 20 间的数
If ( i == 1 ) Exit !// 如果是第一个数,就直接跳出
If ( all( (abs(a(1:i-1)-a(i))>1.0 ) ) ) Exit !// 如果 a(i:i-1) 的所有数,都与 a(i) 差1.0以上,就跳出
End Do
End Do
write( * , * ) a(:)
End Program Main