作者zmack0905 (降太)
看板Fortran
标题[问题] 有关.error LNK2001
时间Mon Oct 1 18:14:33 2012
这是一个IVPAG的范例,我照着打.
PROGRAM HOMEWORK
IMPLICIT NONE
INTEGER N, NPARAM
PARAMETER (N=3, NPARAM=50)
C
C 宣告区域变数
C
INTEGER IDO, IEND, NOUT
REAL A(1,1), PARAM(NPARAM), T, TEND, TOL, Y(N)
C
C 宣告使用的副程式
C
EXTERNAL IVPAG, SSET, UMACH
C
C 宣告函数
C
EXTERNAL FCN, FCNJ
C
C 初始设定
C
CALL SSET (NPARAM, 0.0, PARAM, 1)
IDO = 1
T = 0.0
Y(1) = 0.0
Y(2) = 1.0
Y(3) = 1.0
TOL = 1.0E-6
C
C 写入栏位名称
C
CALL UMACH (2, NOUT)
WRITE (NOUT,99998)
C
C 对常微分方程积分
C
IEND=0
10 CONTINUE
IEND = IEND + 1
TEND = IEND
C
CALL IVPAG (IDO, N, FCN, FCNJ, A, T, TEND, TOL, PARAM, Y)
IF (IEND .LE. 10) THEN
WRITE (NOUT,99999) T, Y
C
C 回圈结束条件
C
IF (IEND .EQ. 10) IDO = 3
C
GO TO 10
C
END IF
C
C 制作输出表格
C
99998 FORMAT (11X, 'T', 11X, 'Y(1)', 11X, 'Y(2)', 11X, 'Y(3)')
99999 FORMAT (4F15.5)
END
C
SUBROUTINE FCN (N, X, Y, YPRIME)
C
C 宣告参数
C
INTEGER N
REAL X, Y(N), YPRIME(N)
C
YPRIME(1) = Y(2)*Y(3)
YPRIME(2) = -Y(1)*Y(3)
YPRIME(3) = -0.51*Y(1)*Y(2)
RETURN
END
C
SUBROUTINE FCNJ (N, X, Y, DYPDY)
C 宣告参数
INTEGER N
REAL X, Y(N), DYPDY(N,*)
C
RETURN
END
在compile都没事.开始build的时候
--------------------Configuration: Text1 - Win32 Debug--------------------
Linking...
Text1.obj : error LNK2001: unresolved external symbol _SSET@16
Text1.obj : error LNK2001: unresolved external symbol _UMACH@8
Text1.obj : error LNK2001: unresolved external symbol _IVPAG@40
Debug/Text1.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.
Text1.exe - 4 error(s), 0 warning(s)
上网路找大部分的答案是打错了
不过我照原文的打.所以其实也不知道该去动哪里..
可以帮我看看吗=口=
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.29.185
1F:→ gilocustom:错误讯息是说找不到SSET, UMACH还有IVPAG这三个副程式, 10/01 18:29
2F:→ gilocustom:如果编译器有支援的话就补上相对应的编译选项,否则 10/01 18:30
3F:→ gilocustom:就自己准备好,一起编译。 10/01 18:30
4F:→ zmack0905:我後来在前面加上Use imsl.并删掉external sset等项目 10/01 18:43
5F:→ zmack0905:结果又可以了= =.可以问一下是怎麽回事吗? 10/01 18:44
6F:→ kkarthur:F90和F77的格式差别.. 10/01 19:02
7F:→ kkarthur:use module是f90才有的功能 10/01 19:22
8F:→ gilocustom:因为这三个副程式就含括在imsl这个module中, 10/01 20:17
9F:→ gilocustom:故use imsl即完成相关的宣告。 10/01 20:18
10F:→ zmack0905:那可以问一下.如果想用CALL的写法该怎办..? 10/02 15:37
11F:→ gilocustom:什麽是"CALL的写法"? 10/02 17:25
12F:→ zmack0905:?讲错,如果不打USE 直接用EXTRANAL+CALL 可以吗? 10/08 19:24
13F:→ gilocustom:那请问你这些副程式要打哪儿来?你可以自备吗? 10/08 20:50
14F:→ zmack0905:喔喔.所以说只要不使用USE,就无法使用IVPAG嘛?(我有IMSL 10/09 22:46
15F:→ gilocustom:如果你说的IVPAG是IMSL的IVPAG的话,对。 10/14 12:26
16F:→ zmack0905:谢谢=ˇ= 10/14 21:16