2013-08-14 6 views
0

FORTRAN을 사용하여 부분 분화 방정식을 푸십시오. 주요 프로그램과 서브 루틴은 .f 파일에 저장됩니다. 그리고 리눅스 운영체제의 소스 코드에서 명령을 컴파일하기위한 .sh 파일이 있습니다. 이 파일이 첨부되었습니다. 그러나 나는 이것을 실행하지 못했습니다. 1 주일 동안 고투하고 난 후에, 나는 이것에 약간의 도움을 정말로 필요로한다. 제발 어떤 도움을 주시면 감사하겠습니다! 쉘 스크립트는 단순히 포트란 파일을 컴파일하려고하지만 대신 gfortran의 내부 툴체인을 사용,이 둘을 연결 수동 부품을 컴파일처럼.sh 파일을 사용하여 소스 코드에서 명령 컴파일

#!/bin/bash 
# 
mkdir temp 
cd temp 
rm * 
~/binc/$ARCH/f77split ../fishpack.f 
# 
for FILE in `ls -1 *.f`; 
do 
    gfortran -c -g $FILE >& compiler.txt 
    if [ $? -ne 0 ]; then 
    echo "Errors compiling " $FILE 
    exit 
    fi 
    rm compiler.txt 
done 
rm *.f 
# 
ar qc libfishpack.a *.o 
rm *.o 
# 
mv libfishpack.a ~/libf77/$ARCH 
cd .. 
rmdir temp 
# 
echo "Library installed as ~/libf77/$ARCH/libfishpack.a." 
+0

어떻게 실행 했습니까? 오류가 무엇입니까? – choroba

+0

커맨드 라인에서'echo $ ARCH'를 실행할 때 어떤 응답이 나옵니까? –

+0

verbose ouput'bash -x compile.sh'에 대해'-x' 옵션을 사용하여 스크립트를 실행하면 문제가 더 명확해질 수 있습니다. –

답변

0

이 보인다. 나는 프로그램이 ar에 대한 호출이 나쁘다는 느낌이 든다. (나는 그것이 ar -qc instead of ar qc 일 것임을 짐작한다.).

gfortran fishpack.f 

: 모든 소스는 다른 사람이 당신 (fishpack.f에게) 준 하나의 포트란 파일에있는 경우

어쨌든, 당신은 gfortran 단일 호출로 전체를 컴파일 할 수있을 것 파일 이름은 a.out 인 실행 파일을 (기본값으로) 생성해야합니다. Fortran 코드가 단일 파일로 묶일 수 있도록 구조화되어 있지 않으면 몇 가지 사항을 분리해야합니다 (최소한 f90 이상으로 업데이트하는 것이 좋지만).

행운을 빈다.

관련 문제