可能是一個愚蠢的問題,但有沒有辦法爲變量的離散值運行循環?在最新版本中呢?離散值的Fortran循環
喜歡的東西
for i in 1 5 9 11 31 77
在UNIX Shell腳本中使用?
謝謝。
可能是一個愚蠢的問題,但有沒有辦法爲變量的離散值運行循環?在最新版本中呢?離散值的Fortran循環
喜歡的東西
for i in 1 5 9 11 31 77
在UNIX Shell腳本中使用?
謝謝。
integer, dimension (5) :: indx = [5, 9, 11, 31, 71]
do i=1, size(indx)
j=indx(i)
....
end do
我不知道這會有所幫助,但你可以使用陣列來的indeces
program Console1
implicit none
! Variables
INTEGER :: X(4) = (/ 1, 3, 5, 7 /)
REAL :: Y(10) = 0.0
! Body of Console1
print *, X
! 1 3 5 7
Y(X) = 10.0/X
print *, Y
! 10.0 0.0 3.33 0.0 2.00 0.0 1.428 0.0 ...
end program Console1
你也可以使用一個隱含的DO循環來做到這一點,但你必須定義數組的值如上:
integer, dimension (5) :: indx = [5, 9, 11, 31, 71]
integer, dimension (5) :: rslt
integer, external :: func
rslt = (/ func(indx(j)), j=1,5 /)
有人正試圖在[tag:fotran]中編寫[tag:pascal]程序。 – ja72
我同意,應該可以說'DO I =(/ 1,3,5,7 /)',但你不能。也許它可以在[隱式做]中完成(http://stackoverflow.com/questions/4070528/implicit-do-loop-array-initialization)。我會調查。 – ja72
@ ja72:你斷言某人正試圖在Fortran中編寫一個Pascal程序很奇怪,Pascal沒有比Fortran提供的更多的支持「循環」任意數字列表。此外,OP表明她從Unix shell腳本中汲取靈感。 –