2014-04-03 2 views
1

바보 같은 질문 일 수도 있지만 변수의 개별 값에 대해 루프를 실행하는 방법이 있습니까? 어떤 최신 버전은 어떨까요?불연속 값에 대한 포트란 루프

유닉스 쉘 스크립트에서 사용

for i in 1 5 9 11 31 77 

같은 뭔가?

감사합니다.

+0

누군가 [태그 : fotran]에 [tag : pascal] 프로그램을 작성하려고합니다. – ja72

+0

나는 'DO I = (/ 1,3,5,7 /)'라고 말할 수 있어야한다고 동의하지만 그렇게 할 수는 없다. 어쩌면 [암시 적 do] (http://stackoverflow.com/questions/4070528/implicit-do-loop-array-initialization)에서 처리 할 수 ​​있습니다. 나는 조사 할 것이다. – ja72

+0

@ ja72 : 누군가가 포트란에서 파스칼 프로그램을 작성하려고한다는 주장이 이상하다. 파스칼은 포트란이하는 것보다 임의의 수의리스트를 '루핑'하지 않는다. 또한 OP는 유닉스 쉘 스크립팅에서 영감을 얻은 것으로 나타났습니다. –

답변

5
integer, dimension (5) :: indx = [5, 9, 11, 31, 71] 

do i=1, size(indx) 
    j=indx(i) 
    .... 
end do 
0

이 도움이 있는지 확실하지 않습니다,하지만 당신은 굴절률들

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 
0

또한 묵시적는 이러한 목표를 달성하기 위해 루프를 할 수 있습니다,하지만 당신은 배열을 정의해야합니다 위해 배열을 사용할 수 있습니다 위의 값 중 :

integer, dimension (5) :: indx = [5, 9, 11, 31, 71] 
integer, dimension (5) :: rslt 
integer, external  :: func 
rslt = (/ func(indx(j)), j=1,5 /)