LAPACKで連立一次方程式を解く
LAPACK : DGESVの例題のサンプルをf90っぽく書き換えました。
program main implicit none integer, parameter :: SP = kind(1.0) integer, parameter :: DP = selected_real_kind(2*precision(1.0_SP)) integer :: i integer, parameter :: n = 4, m = 4 real(DP), dimension(n,m) :: a real(DP), dimension(n) :: b integer, dimension(n) :: ipiv integer :: info a = reshape( (/1.80_DP, 5.25_DP, 1.58_DP,-1.11_DP, & 2.88_DP,-2.95_DP,-2.69_DP,-0.66_DP, & 2.05_DP,-0.95_DP,-2.90_DP,-0.59_DP, & -0.89_DP,-3.80_DP,-1.04_DP, 0.80_DP/), & (/4,4/) ) b = (/ 9.52_DP, 24.35_DP, 0.77_DP, -6.22_DP /) call dgesv(n, 1, a, n, ipiv, b, n, info) do i = 1, 4 write(*,*) i, b(i) ! answer enddo end program main