2010-03-17 2 views
3

저는 파이썬으로 일부 smps 파일을 읽으려고하고 포트란 구현을 발견했습니다. 그래서 나는 f2py에 샷을 줄 것이라고 생각했습니다. 문제는 포트란에 대한 경험이 없다는 것입니다.f2py를 사용하여 포트란 프로그램에서 파이썬 모듈을 만드는 방법은 무엇입니까?

나는 성공적으로 내 리눅스 박스에 gfortran와 f2py을 설치하고 Thew 보낸 f2py 페이지의 예를 실행,하지만 몇 가지 문제 컴파일하고 큰 프로그램을 실행을 가지고있다. 파일 판독기 래퍼가있는 파일과 모든 논리가있는 파일이 두 개 있습니다. 그들은 서로를 호출하는 것,하지만 난 f2py 컴파일 및 링크 나하려고 할 때, 나는 그들이 어떻게 든 서로를 찾을 수 없다는 오류를 얻을 :

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 

가 나는 또한 FILE_WRAPPER.F로 이름을 변경하려하지만이 한 도움이 안돼. f2py와

은 내가 무료로 형식을 적용받을 주석을 포함했다 발견, 새로운 파일로이 저장하려고 :

f2py -c -m smpsread smpsread.f90 

I 출력 및 경고를 많이 얻을 수 있지만,

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

fortran 90 spms reader can be found here : 오류이 하나가 될 것으로 보인다.

어떤 도움이나 제안에 감사드립니다.

답변

0

나는 전부 포트란 비즈니스를 건너 뛰는 건의 할 것입니다.

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

MPS 기록 레이아웃이 여기에 설명하고, 파이썬에서 떨어져 선택하는 비교적 간단한 보인다.

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

어쨌든 모든 데이터에 대한 적절한 파이썬 클래스 (또는 namedtuples)를 정의해야합니다.

나는 포트란 돕는 생각하지 않습니다.

+0

좋은 지적. MPS 형식이 그렇게 나쁘지는 않습니다. 이미 더 많거나 적은 것을 얻었습니다. 문제는 확률 론적 확장으로 시작됩니다. 여기에는 많은 다른 MPS 사양의 가능성이 있습니다. 포트란에서 데이터 구조를 즉시 읽을 수있는 인상을주었습니다.하지만 그것은 내 부분에 대한 오해 일 수 있습니다. – Lars

+0

@Lars Hellemo : Fortran은 매우 다릅니다 (저는 Fortran 프로그래머였습니다). 자동화 된 번역은 Python 구조만큼 영리하지 못합니다. 고작 툴은 Fortran 코드에서 명명 된 튜플 목록을 만들 수 있습니다. –

+0

이 제목의 제목을 바꿀 수 있습니까? 이 스레드는 특정 문제에 대한 정보 만 포함하고 f2py와는 아무런 관련이 없기 때문에 오해의 소지가 있습니다. –

관련 문제