Fortran compilation error - undefined reference

Ich versuche zu kompilieren fortran-Programm, das verwendet eine Reihe von Modulen. Ich erhalten eine Fehlermeldung wenn ich es kompilieren, und es macht mich verrückt. Der Fehler ist entstanden durch den Zusatz von einem Unterprogramm erfolgt, wenn ich versuche zu kompilieren Sie das Programm:

Hauptprogramm enthält diese beiden Zeilen:

--

call read_step(nStepOne,molOne)
call read_step(nStep,mol)

--

Dieser ruft eine der Subroutinen in einer Datei "fileio.f90":

--

subroutine read_step(n,tape)

implicit none

integer, intent(in) :: tape
integer, intent(out) :: n

character(len=6) :: dum

rewind(tape)
read (tape,*)
read (tape,*) dum, n
rewind(tape)
return
!
end subroutine read_step

--

Wenn ich versuche zu kompilieren, wird die folgende Fehlermeldung auftaucht:

ifort -o SpIdMD.x *.o -static-intel -openmp 
SpIdMD.o: In function `MAIN__':
SpIdMD.f90:(.text+0x3b2): undefined reference to `read_step_'
SpIdMD.f90:(.text+0x3c5): undefined reference to `read_step_'
make: *** [SpIdMD.x] Error 1

Andere Aufrufe von Unterprogrammen, die in das gleiche Modul hat keine Fehler, und ich sehe keinen Unterschied zwischen den aufrufen der "alten Subroutinen" und die, die ich gerade erstellt.

Ein Beispiel für eine dieser "alten Subroutinen", die keine Beschwerde, ist:

Im Hauptprogramm:

call get_dim(n_atom,nSnap,mol)

In der fileio.f90:

subroutine get_dim(n,n_snap,tape)

implicit none

integer,intent(in) :: tape
integer,intent(out) :: n, n_snap
integer :: m

rewind(tape)
read (tape,*,err=1,end=2) n
rewind(tape)

m = 0
do while (.true.)
   read (tape,*,err=1,end=3)
   m = m +1
end do
3   n_snap = m/(n + 2)
if (m.ne.(n_snap*(n + 2))) stop  'unexpected end of input file'

rewind(tape)

return
!
1   stop 'error in input file'
2   stop 'unexpected end of input file'
end subroutine get_dim

Ich habe absolut keine Ahnung, warum dieses Verhalten. Ich wäre dankbar, wenn jemand mir helfen könnte dieses Problem lösen Alptraum. Danke!

  • Haben Sie make clean und dann versucht make wieder ?
  • Yep, aber ist für nichts eine Lösung. Ich sorgte dafür, dass die fileio.o (mit dem Modul) aktualisiert wird.
InformationsquelleAutor user2296052 | 2013-04-18
Schreibe einen Kommentar