Pregunta

Estoy tratando de leer algunos archivos SMPS con Python, y encontré una aplicación Fortran, así que pensé que le daría f2py un tiro. El problema es que no tengo ninguna experiencia con FORTRAN.

He instalado con éxito gfortran y f2py en mi máquina Linux y corrió el ejemplo en la página f2py Thew, pero tengo algunos problemas para compilar y ejecutar el programa grande. Hay dos archivos, uno con un envoltorio lector de archivos y otra con toda la lógica. Parece que llamar a los demás, pero cuando compilación y enlace o intento f2py, tengo errores que de alguna manera no pueden encontrar uno al otro:

f95 -c FILEWR~1.F
f95 -c SMPSREAD.F90 
f95 -o smpsread SMPSREAD.o FILEWR~1.o 

FILEWR~1.o In function `file_wrapper_'
FILEWR~1.F(.text+0x3d) undefined reference to `chopen_'
usrlibgcci486-linux-gnu4.4.1libgfortranbegin.a(fmain.o) In function `main'
(.text+0x27) undefined reference to `MAIN__'
collect2 ld returned 1 exit status  

También probé cambiando el nombre a FILE_WRAPPER.F pero eso no ayuda.

Con f2py descubrí que tenía que incluir un comentario para conseguir que se acepte el formato libre, y se guarda como un archivo nuevo y trató de:

f2py -c -m smpsread smpsread.f90

tengo una gran cantidad de la producción y las advertencias, pero el error parece ser éste:

getctype: No C-type found in "{'typespec': 'type', 'attrspec': ['allocatable'],  'typename': 'node', 'dimension': [':']}", assuming void.

El FORTRAN lector 90 SPMS se puede encontrar aquí .

Cualquier ayuda o sugerencia apreció.

¿Fue útil?

Solución

Me consultad el negocio FORTRAN por completo.

http://myweb.dal.ca/gassmann/smps2.htm

El diseño de registro MPS se describe aquí, y parece relativamente fácil de desmenuzar en Python.

http://myweb.dal.ca/gassmann/smps2.htm#CoreMPSline

Vas a tener que definir las clases de Python apropiados (o namedtuples) para todos los datos de todos modos.

No creo que el Fortran está ayudando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top