microsoft visual studio 2010 プログラミングについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
おはよ

microsoft visual studio 2010 プログラミングについて

#1

投稿記事 by おはよ » 9年前

module subprogs
implicit none
contains
subroutine set_ab(a, b, x, n)
real(8), allocatable, intent(out) :: a(:,:), b(:), x(:)
integer n

n = 3
allocate(a(n,n), b(n), x(n))
a(1,:) = (/ 2, 4, 6 /)
a(2,:) = (/ 3, 8, 7 /)
a(3,:) = (/ 5, 7, 21 /)
b(:) = (/ 6, 15, 24 /)
end subroutine set_ab

subroutine gaussian_elimination(a0, x, b, n)
integer, intent(in) :: n
real(8), intent(in) :: a0(n,n), b(n)
real(8), intent(out) :: x(n)
integer i, k
real(8) ar, a(n,n)

a(:,:) = a0(:,:)
x(:) = b(:)

do k = 1, n
if(a(k, k) == 0.0d0) stop 'pivot = 0'
ar = 1.0d0 / a(k,k)
a(k,k) = 1.0d0
a(k,k+1:n) = ar * a(k,k+1:n)
x(k) = ar * x(k)
do i = k+1, n
x(i) = x(i) - a(i,k) * x(k)
a(i,k+1:n) = a(i,k+1:n) - a(i,k) * a(k,k+1:n)
enddo
enddo

do k = n - 1, 1 , -1
do i = k+1, n
x(k) = x(k) - a(k,i) * x(i)
enddo

enddo

end subroutine gaussian_elimination
end module subprogs

program main
use subprogs
implicit none
real(8),allocatable :: a(:,:), b(:), x(:), r(:)
integer n

call set_ab(a, b, x, n)
call gaussian_eleimination(a, x, b, n)
write(*,*) 'solution x(:) = ', x(:)

allocate(r(n))
r(:) =b(:) - matmul(a,x)
write(*,*) 'GE Error= ', dot_product(r,r)
!for debug
write(*,*) 'a(:,:) = ', a(:,:)
write(*,*) 'b(:) = ', b(:)

deallocate(a, b, x, r)
end program main


エラー 1 error LNK2019: 未解決の外部シンボル _GAUSSIAN_ELEIMINATION が関数 _MAIN__ で参照されました。 Source1.obj

エラー 2 fatal error LNK1120: 外部参照 1 が未解決です。 Debug\Console23.exe

が表示されます。プログラミングは全くと言っていいほど初心者で、エラーの理由をいろいろ調べてみても解りませんでした。
自分ではおそらくgaussian_eliminationの定義が間違っているのではと思っているのですが、その先に進めません。
間違っている点に気づきましたら、ご指摘のほど、よろしくお願いします。
ちなみにソフトはmicrosoft visual studio 2010 で連立一次方程式の直接解法を行列で解く操作をやってるみたいです。

アバター
Tatu
記事: 445
登録日時: 13年前
住所: 北海道

Re: microsoft visual studio 2010 プログラミングについて

#2

投稿記事 by Tatu » 9年前

定義では
subroutine gaussian_elimination(a0, x, b, n)
なのに呼び出す時は
call gaussian_eleimination(a, x, b, n)
となっているからではないでしょうか?

閉鎖

“C言語何でも質問掲示板” へ戻る