幫助使用g95編譯器,我有一個錯誤:需要用二進制搜索算法錯誤
Error: Operands of comparison operator '.EQ.' at (1) are LOGICAL(4)/LOGICAL(4)
我不知道這意味着什麼。我包括子程序。你有什麼想法如何解決這個問題?
非常感謝您的時間。
SUBROUTINE search(iarray, ItemSought, Found, Location)
CHARACTER(20), DIMENSION(50),INTENT(IN)::itemarray
CHARACTER(20)::ItemSought
LOGICAL, INTENT(OUT)::Found
INTEGER, INTENT(OUT)::Location
INTEGER:: First, Last, Middle
WRITE(*,'(1x,A)',ADVANCE="NO"),"What are you searching for? "
READ*, ItemSought
First=1
Last=SIZE(Iarray)
FOUND = .FALSE.
DO
IF ((First > Last) .OR. Found) RETURN
Middle = (First+Last)/2
IF (ItemSought < Iarray(Middle)) THEN
Last=Middle-1
ELSE IF (ItemSought > Iarray(Middle)) THEN
First=Middle+1
ELSE
Found = .TRUE.
Location = Middle
END IF
END DO
IF (Found == .TRUE.) THEN
PRINT*, Itemsought
END SUBROUTINE
這對我來說看起來是正確的。 – 2011-04-18 16:05:02
這工作,非常感謝! – EuropaDust 2011-04-18 16:07:29