[问题] 有关.error LNK2001

楼主: zmack0905 (降太)   2012-10-01 18:14:33
这是一个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的时候
作者: gilocustom   0000-00-00 00:00:00
错误讯息是说找不到SSET, UMACH还有IVPAG这三个副程式,如果编译器有支援的话就补上相对应的编译选项,否则就自己准备好,一起编译。
楼主: zmack0905 (降太)   0000-00-00 00:00:00
我后来在前面加上Use imsl.并删掉external sset等项目结果又可以了= =.可以问一下是怎么回事吗?
作者: kkarthur (aa)   0000-00-00 00:00:00
F90和F77的格式差别..use module是f90才有的功能
作者: gilocustom   0000-00-00 00:00:00
因为这三个副程式就含括在imsl这个module中,故use imsl即完成相关的宣告。
楼主: zmack0905 (降太)   0000-00-00 00:00:00
那可以问一下.如果想用CALL的写法该怎办..?
作者: gilocustom   0000-00-00 00:00:00
什么是"CALL的写法"?
楼主: zmack0905 (降太)   0000-00-00 00:00:00
?讲错,如果不打USE 直接用EXTRANAL+CALL 可以吗?
作者: gilocustom   0000-00-00 00:00:00
那请问你这些副程式要打哪儿来?你可以自备吗?
楼主: zmack0905 (降太)   0000-00-00 00:00:00
喔喔.所以说只要不使用USE,就无法使用IVPAG嘛?(我有IMSL
作者: gilocustom   0000-00-00 00:00:00
如果你说的IVPAG是IMSL的IVPAG的话,对。
楼主: zmack0905 (降太)   0000-00-00 00:00:00
谢谢=ˇ=

Links booklink

Contact Us: admin [ a t ] ucptt.com