PROGRAM PARDIS
C Dato un array monodimensionale di interi costruire, a partire dai
C valori contenuti in questo, un nuovo array in cui ci sono prima
C tutti i valori pari del primo array e poi tutti quelli dispari.
INTEGER MAX
PARAMETER (MAX=10)
INTEGER DIM
INTEGER VETTORE(DIM), I
CALL DIMENSIONE (DIM)
CALL VERIFICA (DIM)
CALL LEGGIVETTORE(DIM, VETTORE)
CALL SCRIVIVETTORE (DIM, VETTORE)
CALL ORDINAMENTO (VETTORE, DIM)
PRINT*, "IL VETTORE ORDINATO Š:"
PRINT*, (VETTORE(DIM), I=1, DIM)
STOP
END
SUBROUTINE DIMENSIONE (A)
PARAMETER(MAX=10)
INTEGER A
PRINT*, "SCRIVI LE DIMENSIONI DEL VETTORE"
READ*, A
RETURN
END
SUBROUTINE VERIFICA (B)
INTEGER MAX
PARAMETER(MAX=10)
INTEGER B
IF (B .LT. MAX) THEN
PRINT*, "DIMENSIONE NON VALIDA"
ENDIF
RETURN
END
SUBROUTINE LEGGIVETTORE (B, VETTORE)
INTEGER B, VETTORE(B), I
DO 10, I=1, B
READ*, VETTORE(I)
10 CONTINUE
RETURN
END
SUBROUTINE SCRIVIVETTORE (N, VETTORE)
INTEGER I, VETTORE(I), N
PRINT*, "IL VETTORE STAMPATO Š:"
DO 10, I=1, N
PRINT*, VETTORE (I)
10 CONTINUE
RETURN
END
SUBROUTINE ORDINAMENTO (VETTORE, N)
INTEGER PRIMO, SECONDO, N, I, INDEX, TEMP, VETTORE(N)
DO 10, I=1, N-1
PRIMO=VETTORE(I)
INDEX=I
DO 20, J=I+1, N
SECONDO=VETTORE(J)
IF(MOD(SECONDO, 2) .EQ. 0) THEN
PRIMO=SECONDO
INDEX=J
ENDIF
20 CONTINUE
IF (INDEX .NE. I) THEN
TEMP = VETTORE(I)
VETTORE(I) = VETTORE(INDEX)
VETTORE(INDEX) = TEMP
ENDIF
10 CONTINUE
RETURN
END
Ho provato a compilarlo (non so se vi siano errori logici, ma per il momento non mi interessa), ma mi trova errori di link. Qualcuno mi può aiutare a capire dove sono (me li segnale nelle righe del programma principale)?