Purtroppo lo usano gli studenti di matematioca del primo anno alla federico II!
Cmq nn mi da errori di compilazione solo che "ricerca_binaria" e' sempre uguale a 0! anche se io inserisco un numero da cercare presente nel vettore!

! Esempio di programma chiamante per la function ricerca_binaria
PROGRAM prova_ricerca
! Dichiarazione delle variabili
REAL,DIMENSION(100)::v
INTEGER::n
INTEGER::i
REAL::x
REAL::ricerca_binaria1
WRITE(*,*) "Questo programma ricerca un elemento x in un array composto"
WRITE(*,*) "da numeri reali distinti con il metodo della ricerca binaria"
DO
WRITE(*,*)"Inserisci la dimensione dell'array"
READ(*,*) n
WRITE (*,*) n
WRITE(*,*)"Inserisci gli elementi tra cui cercare l'elemento x"
READ(*,*) (v(i),i=1,n)
WRITE(*,*) (v(i),i=1,n)
WRITE(*,*) "Inserisci l'elemento x da cercare"
READ(*,*) x
WRITE(*,*) x
CALL bubble_sort(v,n)
WRITE(*,*)"Il vettore ordinato e'",(v(i),i=1,n)
! chiamata alla function ricerca_binaria
ricerca_binaria1=ricerca_binaria(n,v,x)
WRITE(*,*) ricerca_binaria1
IF (ricerca_binaria1==1) THEN
WRITE(*,*) "L'elemento x e' presente nell'elenco di numeri inserito"
ELSE
WRITE(*,*) "L'elemento x non e' presente nell'elenco di numeri inserito"
END IF
DO
WRITE(*,*)"Digita 1 per ripetere, 0 per terminare"
READ(*,*) s
IF(s==0.OR.s==1)EXIT
END DO
IF(s==0)EXIT
END DO
WRITE(*,*)"Il numero digitato e' 0, quindi il programma e' terminato"
STOP
END PROGRAM


Questo è il programma chiamante!!