C에서 포트란 서브루틴 호출 관련 질문입니다....
글쓴이: gun802000 / 작성시간: 토, 2007/10/06 - 7:31오후
플그램 작성중에 문제가 하나 생겼는데여...
main은 C++이구여 포트란 서브루틴을 여러개 불러서 사용하고 있습니다.
근데 main에서 변수 하나를 이중 동적 배열로 선언했는데여....
그 부분에서 계속 엑세스 에러가 나네여...
double** AKTS;
AKTS = new double* [_NDOF];
for(sub_i = 0; sub_i
{
AKTS[sub_i] = new double [_NDOF];
}
메인부분 변수구여...
이때 서브루틴을 불러와서 사용되는 부분은...
DO 10 J=1,NV
CALL VCZR(AKTS(1,J),NV)
10 CONTINUE
이렇게 작성되 있구여...
여기서 다시 VCZR이라는 서브루틴을 호출하는데여....
SUBROUTINE VCZR(A,N)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION A(N)
C
DO 10 I = 1,N
A(I) = 0.0D0
10 CONTINUE
C
RETURN
END
이렇게 되 있거든여...
근데 여기서 자꾸 엑세스 에러가 납니다...
뭐가 문제인지 모르겠는데여...
아시는 분 답변 좀 부탁드립니다...
Forums:
포트란이든 C 든
포트란이든 C 든 다차원 배열은 내부적으로 1차원 배열처럼 할당됩니다.
예를 들면, double a[2][2] 는 내부적으로 double a[4] 처럼 할당된 것과 같습니다. 포트란 역시 마찬가지구요.
그래서 당연히 오류가 납니다.
또한 행,열 순서가 C 와 포트란이 반대라는 점도 유의하시기 바랍니다.
포트란-C 인터페이스 관련 자료를 찾으실 수 있을 겁니다.
Orion Project : http://orionids.org
댓글 달기