program DOEXAMPLE2
implicit none
INTEGER :: I, InitialVal, Limit, Prod
InitialVal=3
Limit=5
Prod=1
DO I=InitialVal, Limit
Prod=Prod*I
Limit=Limit+1
InitialVal=InitialVal+1
END DO
PRINT *, "InitialVal=", InitialVal, ", Limit=", Limit, ", I=", I, &
", Prod=", Prod
end program DOEXAMPLE2