Fortran Coder

查看: 3256|回复: 2
打印 上一主题 下一主题

[子程序] 用雅可比法编了一个求特征向量的程序。显示外部符号wu'fa...

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
6 点
跳转到指定楼层
楼主
发表于 2021-12-1 19:28:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
错误                error LNK2019: 无法解析的外部符号 SUBROUTINEMAXMATRIX,函数 MAIN__ 中引用了该符号                Source1.obj               
错误                error LNK2019: 无法解析的外部符号 SUBROUTINEE_K,函数 MAIN__ 中引用了该符号                Source1.obj               

有大佬帮我看看吗

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
6 点
沙发
 楼主| 发表于 2021-12-1 19:28:46 | 只看该作者
[Fortran] 纯文本查看 复制代码
      program main
            implicit none
            double precision matrix(3,3),T(3,3),c,s,kexi,toll,eak
            integer i,j,m,n
            parameter (toll=0.000001)
            Matrix(1,1)=1
            matrix(1,2)=2
            matrix(2,1)=2
            matrix(1,3)=3
            matrix(3,1)=3
            matrix(2,2)=4
            matrix(2,3)=5
            matrix(3,2)=5
            matrix(3,3)=6
            Do i=1,3
                  Do j=1,3
                        T(i,j)=matrix(i,j)
                  end do
            end do
C
            Do i=1,100
                  call subroutine E_k(eak,T)
                  if (eak.gt.toll) then
                  call subroutine maxmatrix(m,n)
                  kexi=0.5*atan(2*T(m,n)/T(m,m)-T(n,n))
                  c=cos(kexi)
                  s=sin(kexi)
                  T(m,m)=c
                  T(n,n)=c
                  T(m,n)=s
                  T(m,n)=-s
                  end if
            end do
            write(*,*) T
            pause
      end program main
C
C
      subroutine E_k(eak)
            implicit none
            double precision a1,a2,a3,eak,T(3,3)
            a1=T(2,1)**2
            a2=T(3,1)**2
            a3=T(3,2)**2
            eak=a1+a2+a3
      end subroutine
C
      subroutine maxmatrix(m,n,T)
            implicit none
            double precision a,b,c,maxT,T(3,3)
            integer m,n
            a=T(2,1)
            b=T(3,1)
            c=T(3,2)
            if (a.ge.b) then
                  if (a.ge.c)then
                        maxT=a
                        m=2
                        n=1
                  else
                        maxT=c
                        m=3
                        n=2
                  end if
            else
                  if (b.ge.c)then
                        maxT=b
                        m=3
                        n=1
                  else
                        maxT=c
                        m=3
                        n=2
                  end if
            end if
      end subroutine

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

板凳
发表于 2021-12-1 20:35:43 | 只看该作者
call subroutine E_k(eak,T)
改为
call E_k(eak,T)
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-26 14:01

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表