FORTRAN - errore persistente
ciao a tutti!
ho scritto un codice in fortran90 che fa ricorso a una function esterna, che dichiaro subito dopo le variabili e aggiungo a fine programma:
ma ogni volta che lo compilo mi da il seguente errore
modising.f90:14.9:
interface
1
Error: Unexpected INTERFACE statement at (1)
e altri errori sempre correlati al non riconoscimento della function.
come è possibile? penso che la sintassi sia corretta perchè l ho utilizzata anche in altri programma perfettamente funzionanti.
grazie mille a chiunque potrà aiutarmi
ho scritto un codice in fortran90 che fa ricorso a una function esterna, che dichiaro subito dopo le variabili e aggiungo a fine programma:
program modello_ising implicit none integer :: L, i , j ,n , m real, dimension(0:63,0:63):: s1, s2, e1, e2, mi real, dimension(0:500000):: mconf real :: T, deltae, ef, ei, r, p , k, xmax, idum , ii, jj , Tc ! L=64 k=1.38054*10**(-23) xmax=500000 idum=-9379883 Tc=2.269 ! interface function ran1(idum) end function ran1 end interface ! {corpo del programma} end program ! function ran1 (idum) implicit none integer idum,ia,im,iq,ir,ntab,ndiv real ran1,am,eps,rnmx parameter (ia=16807,im=2147483647,am=1./im,iq=127773,ir=2836, & ntab=32,ndiv=1+(im-1)/ntab, eps=1.2e-7,rnmx=1.-eps) integer j,k,iv(ntab),iy save iv,iy data iv/ntab*0/, iy /0/ if (idum.le.0.or.iy.le.0) then idum=max(-idum,1) do j=ntab+8,1,-1 k=idum/iq idum=ia*(idum-k*iq)-ir*k if (idum.lt.0) idum=idum+im if (j.le.ntab) iv(j)=idum enddo iy=iv(1) endif k=idum/iq idum=ia*(idum-k*iq)-ir*k if (idum.lt.0) idum=idum+im j=1+iy/ndiv iy=iv(j) iv(j)=idum ran1=min(am*iy,rnmx) return end function ran1
ma ogni volta che lo compilo mi da il seguente errore
modising.f90:14.9:
interface
1
Error: Unexpected INTERFACE statement at (1)
e altri errori sempre correlati al non riconoscimento della function.
come è possibile? penso che la sintassi sia corretta perchè l ho utilizzata anche in altri programma perfettamente funzionanti.
grazie mille a chiunque potrà aiutarmi
Risposte
Ti posso dare un mio consiglio,così al primo occhio.
Al posto di interface, prova a usare CONTAINS
ciao
Al posto di interface, prova a usare CONTAINS
ciao