【发布时间】:2014-01-06 02:33:59
【问题描述】:
我似乎总是遇到这个问题,所以我想知道比我目前所做的更好的解决方案。 我想使用在计算中使用迭代参数的循环构建一个数组。问题是数组索引中的整数工作正常,但在计算中使用时会导致错误。也许这个问题的一个例子会很有用。
DO ii = 1,N
ir = real(ii,kind=dp) ! Cast this to real
DO ji=1,N
jr = real(ji,kind=dp) ! Cast this to real.
IF (abs(sqrt((ir-1)**2 + (jr-1)**2)) < Lim) THEN
A(ii,ji) = 1;
ELSEIF (abs(sqrt((ir-1)**2 + (jr-N)**2)) < Lim) THEN
A(ii,ji) = 1;
ELSEIF (abs(sqrt((ir-N)**2 + (jr-1)**2)) < Lim) THEN
A(ii,ji) = 1;
ELSEIF (abs(sqrt((ir-N)**2 + (jr-N)**2)) < Lim) THEN
A(ii,ji) = 1;
END IF
END DO
END DO
有没有办法做到这一点,而无需每次通过循环都转换为真实?我感觉这是一个瓶颈。
【问题讨论】: