2011-09-26 4 views
6

다음과 같은 문제가 있습니다. 일부 제어 엔지니어링 시스템을 시뮬레이션하고 싶습니다. 그것은 매우 복잡하기 때문에 fortran77 코드로만 내보낼 수있는 (복잡한) 방정식을 도출하기 위해 컴퓨터를 사용했습니다. 내 개발의 PC에 이것은 아무 문제 (리눅스 머신)입니다.번역기 f2c를 사용하여 단일 fortran 객체를 컴파일하는 방법은 무엇입니까?

아니요 하드웨어로하고 싶습니다. 여기 Windows OS를 사용해야합니다. 불행히도 matlab은 Windows에서 gfortran을 지원하지 않습니다. 따라서 해당 상자에서 fortran 파일을 컴파일 할 수 없습니다.

제 아이디어는 이제 C 컴파일러가 matlab에서 승리 할 때 사용할 수있는 C로 변환되었습니다. 다른 (더 나은) 옵션?

다음과 같은 방식으로 여러 가지 서브 프로그램이 있습니다.

 SUBROUTINE sys_rhs (x, v, dx, param) 
     REAL*8 x(6) 
C  code is coming here 
     RETURN 
     END SUBROUTINE 

는 좋은 방법이며 C로 작성된 인터페이스 기능에 기능 sys_rhs__를 사용하여 작동합니까? 문제는 Windows 컴퓨터에 대한 대규모 액세스 권한이 없기 때문에 테스트 할 수 없다는 것입니다. 그래서 시도해도 효과가 있습니다. 많은 것을 실험 할 필요가 없습니다.

또한 창문에는 어떤 라이브러리가 필요합니까? 어디서 구할 수 있니?

감사 기독교

+1

C로 변환하는 것은 최악의 옵션처럼 보입니다. MATLAB 버전에 따라 * fortran 컴파일러를 지원합니다. 지난 10 ~ 15 년 동안 포트란 컴파일러가 f77 코드를 컴파일 할 것이므로 다른 컴파일러 (MATLAB과 함께 작동하는 컴파일러)를 찾아서 사용하십시오. 또는 당신이 리눅스 matlab 라이센스를 가지고 있다면, intel 's on linux를 사용하십시오. 또한,이 사람은 아마도 gfortran/g95 + matlab을 멋지게 재생할 수 있었기 때문에 가능했습니다. – Rook

+0

필자가 작성한대로 : 리눅스에서는 전혀 문제가 없습니다. gfortran을 사용하여 컴파일하고 시뮬레이션 할 수 있습니다.그러나 하드웨어는 승리 머신에 연결되어 있습니다 ... http://www.mathworks.de/support/compilers/R2010a/win32.html에서 propietary intel fortran 컴파일러 만 언급됩니다 (R2010a는 관리자에 의해 설치됨). –

+0

@ChristianWol : 귀하의 질문에서 명확하지 않습니다. Fortran MEX- 파일을 만드는 것에 대해 이야기하고 있습니까? – Amro

답변

0

대답은 간단합니다. 포트란 코드에 구문 오류가 있습니다. gfortran은 엄격한 구문 검사를 수행하지 않으므로 포트란 코드를 올바르게 해석합니다. 오타를 제거한 후 나는 f2c로 트랜스 코딩을했다.

감사합니다.

-1

모든이에게 더 나은 솔루션이

는 C/C++의 기능을 구현하고 DLL 파일을 생성하기 위해 리눅스 머신 또는 윈도우 머신을 사용합니다.

matlab에서 DLL을로드하고 그 안에있는 함수를 호출 할 수 있습니다.

여기에 matlab로 dll을 호출하는 방법을 보여주는 간단한 튜토리얼이 있습니다.

http://www.mathworks.com/matlabcentral/fileexchange/15065-example-of-loading-c-dll-and-performance-comparison

+0

이 함수는 알고있는 것처럼 maxima (컴퓨터 대수학 시스템)의 fortran으로 만 내보낼 수 있기 때문에 fortran에서 구현됩니다. 리눅스에서 DLL을 생성하는 방법? MinGW? –

+0

http://www.ibm.com/developerworks/linux/library/l-dll/index.html –

0

인텔은 멀리 테스트를 위해 무료로 제공하는 데 사용 꽤 좋은 포트란 컴파일러 (http://software.intel.com/en-us/articles/fortran-compilers/) ... ;-)

PS 아니, 필자는이 회사에 연결되지 판매 어떠한 방식으로!

+0

미안하지만, 독점 소프트웨어는 개인적으로는 아니지만 대학의 연구소에서 사용하기 때문에 절대로 불가능합니다. 그들은 그것을 처리해야 할 것처럼 행복하지 않습니다. –

+1

Mathlab이 DLL의 코드를 처리 할 수 ​​있다면 (필자는 Mathlab이 아닌 포팅 - 포트 - 투 - 윈도우 문제 때문에 여기에 있습니다.) - 나는 이미 DLL 생성의 방향을 살펴볼 것을 제안합니다. 이것은 MingGW 또는 Windows에서 실행되는 Cygwin에서 g77을 사용하여 작동해야합니다. – alk

0

g77을 사용하여 Fortran 프로그램을 컴파일 할 수있는 GNU GCC 컴파일러 모음 (MinGW 또는 Cygwin 사용)을 사용하여 MEX- 파일을 컴파일 할 수있는 gnumex 프로젝트를 확인하고자 할 수 있습니다.

관련 문제