포트란 오류 질문입니다
다음과 같은 두 개의 오류가 납니다. 컴파일은 되는데 빌드가 안되네요
무슨 이유인지 좀 알려주시면 감사하겠습니다.
error LNK2001: unresolved external symbol _MAIN__
fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
다음은 제가 실행하고자 하는 소스입니다.
double precision function bessj0(x)
implicit none
c
c J_0(x)
c
double precision x,ax,x1,x2,pi,theta,fct
double precision a0,a1,a2,a3,a4,a5,a6
double precision b0,b1,b2,b3,b4,b5,b6
double precision c0,c1,c2,c3,c4,c5,c6
c
data a0,a1,a2,a3,a4,a5,a6/1.00000000d0,
+ -2.24999970d0, 1.26562080d0,-0.31638660d0,
+ 0.04444790d0,-0.00394440d0, 0.00021000d0/
data b0,b1,b2,b3,b4,b5,b6/0.79788456d0,
+ -0.00000077d0,-0.00552740d0,-0.00009512d0,
+ 0.00137237d0,-0.00072805d0, 0.00014476d0/
data c0,c1,c2,c3,c4,c5,c6/-0.78539816d0,
+ -0.04166397d0,-0.00003954d0, 0.00262573d0,
+ -0.00054125d0,-0.00029333d0, 0.00013558d0/
c
ax=dabs(x)
if(ax.le.3.d0)then
x2=(ax/3.d0)**2
bessj0=a0+x2*(a1+x2*(a2+x2*(a3+x2*(a4+x2*(a5+x2*a6)))))
else
pi=4.d0*datan(1.d0)
x1=3.d0/ax
fct=b0+x1*(b1+x1*(b2+x1*(b3+x1*(b4+x1*(b5+x1*b6)))))
theta=ax+c0+x1*(c1+x1*(c2+x1*(c3+x1*(c4+x1*(c5+x1*c6)))))
theta=dmod(theta,2.d0*pi)
bessj0=fct*dcos(theta)/dsqrt(ax)
endif
c
return
end
메인이 빠졌군요. 컴파일만 하시려면, 저 파일 이름이
메인이 빠졌군요.
컴파일만 하시려면, 저 파일 이름이 bessj0.f라고 가정하면,
fort77 -c bessj0.f
하는 식으로 -c 붙여 주시면 될것 같고
아니면 밑에
형식으로 메인을 넣어 주시면 될것 같네요.
댓글 달기