2016-10-27 3 views
0

Ich habe ein Fortran-Programm mit einer der Dateien mit der Zeile use HDF5 beginnen. Das Programm wurde zuvor kompiliert und auf einem bestimmten Cluster ausgeführt. Jetzt versuche ich das Programm in einem anderen Cluster zu kompilieren, der bereits hdf5 an einem bestimmten Ort installiert hat.Fehler beim Öffnen des kompilierten Moduls von HDF5

Ich nehme an, dass das Problem ist, dass der Compiler den Speicherort des Installationsverzeichnisses hdf5 nicht verstehen konnte. Ich habe versucht, hdf5 Position durch den Export mit der LD_LIBRARY_PATH auch anzugeben. Trotzdem funktioniert es nicht. Kann mir jemand helfen herauszufinden, was ich falsch mache? Die Compiler-Flags enthalten auch -lhdf5_fortran und -lhdf5.

UPDATE: Die Fehlerliste bei der Kompilierung ist lang. Aber sieht der Anfang davon wie folgt aus:

lbe_io_hdf5.F90(7): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [HDF5] 
    use HDF5 
------^ 
lbe_io_hdf5.F90(82): error #6683: A kind type parameter must be a compile-time constant. [HID_T] 
    integer(hid_t) :: file_id  ! File identifier 
+0

Sie müssen uns sagen, was Sie in erster Linie tun. Sonst haben wir wirklich keine Ahnung was du falsch machst ... –

+0

** Niemals ** Satz verwenden * "es geht nicht" * in Fragen. Was geschieht? Fehler? Falsche Ergebnisse? Druckt es etwas? Sei genau. –

+0

Ich habe das Kompilierprotokoll hinzugefügt. –

Antwort

0

HDF5 kommt mit einem Compiler-Wrapper h5fc für Fortran. Für eine einzelne Programmdatei:

h5fc -o my_program my_program.f90 

für getrennte Erfassung und Verknüpfung:

h5fc -c file1.f90 
h5fc -c my_program.f90 
h5fc -o my_program file1.o my_program.o 

Wenn Sie den Compiler direkt, überprüfen Sie die Flaggen von

h5fc -show 

gegeben nennen wollen Wenn es Kein h5fc Befehl, es bedeutet, dass Sie keine Fortran-fähige HDF5-Installation haben.

Verwandte Themen