主题:[讨论]调用IMSL时出现internal error,用不带“_int”的库时出现
环境 Win7 x86 SP1,Intel Fortran XE2011,IMSL 7.0 x86
运行如下测试代码时没有问题
program main
INCLUDE 'link_fnl_shared.h'
!USE IMSL_INT
USE EIG_INT
USE RAND_INT
implicit none
real B(32,32)
real :: a(3,3)=(/ 1,0,0,&
0,2,0,&
0,0,3 /)
real eigenvalue(3),eigenvector(3,3)
integer i
B=rand(B)
eigenvalue=eig(A, v=eigenvector)
do i=1,2
write(*,"('eigenvalue=',f5.2)")eigenvalue(i)
write(*,"('eigenvector=[',3(f5.2' ')']')")eigenvector(:,i)
enddo
end program main
!------------------------------------------------------
为了测试.i.运算符但是运行如下代码的时候出现问题(代码来自cgl_lgs大大的一个帖子)
program exammm
include 'link_fnl_shared.h'
use imsl_libraries
implicit none
real:: v=2.3
integer i,j
real h00(6,6)
real h0(6,6),h(6,6)
h00=0.0
do i=1,6
if(mod(i,2)==0) then
h00(i,i-1)=v
else
h00(i,i+1)=v
end if
end do
h0=.i.h00
h=h0.x.h00
write(*,'(6f5.2)') h !检验结果是否为单位矩阵
end program
!----------------------------------
提示如下
1>------ 已启动生成: 项目: fnltest, 配置: Debug Win32 ------
1>Compiling with Intel(R) Visual Fortran Compiler XE 12.1.3.300 [IA-32]...
1>Source2.f90
1>D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90(115): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
1> h00=0.0
1>^
1>[ Aborting due to internal error. ]
1>compilation aborted for D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90 (code 1)
1>
1>Build log written to "file://D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Debug\BuildLog.htm"
1>fnltest - 1 error(s), 0 warning(s)
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
运行IMSL的范例.xt.
program xt
use linear_operators
implicit none
integer, parameter :: n=32
real(kind(1d0)) :: one=1d0, zero=0d0
real(kind(1d0)) A(n,n), P(n,n), Q(n,n), &
S_D(n), U_D(n,n), V_D(n,n)
! Generate a random matrix.
A = rand(A)
! Compute the singular value decomposition.
S_D = SVD(A, U=U_D, V=V_D)
! Compute the (left) orthogonal factor.
P = U_D .xt. V_D
! Compute the (right) self-adjoint factor.
Q = V_D .x. diag(S_D) .xt. V_D
! Check the results.
if (norm( EYE(n) - (P .xt. P)) &
<= sqrt(epsilon(one))) then
if (norm(A - (P .x. Q))/norm(A) &
<= sqrt(epsilon(one))) then
write (*,*) 'Example 2 for LIN_SOL_SVD (operators) is correct.'
end if
end if
end
同样会出错
1>Compiling with Intel(R) Visual Fortran Compiler XE 12.1.3.300 [IA-32]...
1>Source2.f90
1>D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90(114): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
1> A = rand(A)
1>^
1>[ Aborting due to internal error. ]
1>compilation aborted for D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90 (code 1)
1>
1>Build log written to "file://D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Debug\BuildLog.htm"
1>fnltest - 1 error(s), 0 warning(s)
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
改成use rand_int之后
其他地方,例如.xt.处还是会出现internal error
请大大们指教
运行如下测试代码时没有问题
program main
INCLUDE 'link_fnl_shared.h'
!USE IMSL_INT
USE EIG_INT
USE RAND_INT
implicit none
real B(32,32)
real :: a(3,3)=(/ 1,0,0,&
0,2,0,&
0,0,3 /)
real eigenvalue(3),eigenvector(3,3)
integer i
B=rand(B)
eigenvalue=eig(A, v=eigenvector)
do i=1,2
write(*,"('eigenvalue=',f5.2)")eigenvalue(i)
write(*,"('eigenvector=[',3(f5.2' ')']')")eigenvector(:,i)
enddo
end program main
!------------------------------------------------------
为了测试.i.运算符但是运行如下代码的时候出现问题(代码来自cgl_lgs大大的一个帖子)
program exammm
include 'link_fnl_shared.h'
use imsl_libraries
implicit none
real:: v=2.3
integer i,j
real h00(6,6)
real h0(6,6),h(6,6)
h00=0.0
do i=1,6
if(mod(i,2)==0) then
h00(i,i-1)=v
else
h00(i,i+1)=v
end if
end do
h0=.i.h00
h=h0.x.h00
write(*,'(6f5.2)') h !检验结果是否为单位矩阵
end program
!----------------------------------
提示如下
1>------ 已启动生成: 项目: fnltest, 配置: Debug Win32 ------
1>Compiling with Intel(R) Visual Fortran Compiler XE 12.1.3.300 [IA-32]...
1>Source2.f90
1>D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90(115): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
1> h00=0.0
1>^
1>[ Aborting due to internal error. ]
1>compilation aborted for D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90 (code 1)
1>
1>Build log written to "file://D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Debug\BuildLog.htm"
1>fnltest - 1 error(s), 0 warning(s)
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
运行IMSL的范例.xt.
program xt
use linear_operators
implicit none
integer, parameter :: n=32
real(kind(1d0)) :: one=1d0, zero=0d0
real(kind(1d0)) A(n,n), P(n,n), Q(n,n), &
S_D(n), U_D(n,n), V_D(n,n)
! Generate a random matrix.
A = rand(A)
! Compute the singular value decomposition.
S_D = SVD(A, U=U_D, V=V_D)
! Compute the (left) orthogonal factor.
P = U_D .xt. V_D
! Compute the (right) self-adjoint factor.
Q = V_D .x. diag(S_D) .xt. V_D
! Check the results.
if (norm( EYE(n) - (P .xt. P)) &
<= sqrt(epsilon(one))) then
if (norm(A - (P .x. Q))/norm(A) &
<= sqrt(epsilon(one))) then
write (*,*) 'Example 2 for LIN_SOL_SVD (operators) is correct.'
end if
end if
end
同样会出错
1>Compiling with Intel(R) Visual Fortran Compiler XE 12.1.3.300 [IA-32]...
1>Source2.f90
1>D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90(114): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.
1> A = rand(A)
1>^
1>[ Aborting due to internal error. ]
1>compilation aborted for D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Source2.f90 (code 1)
1>
1>Build log written to "file://D:\Users\liulinsl\Documents\Visual Studio 2010\Projects\fnltest\fnltest\Debug\BuildLog.htm"
1>fnltest - 1 error(s), 0 warning(s)
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
改成use rand_int之后
其他地方,例如.xt.处还是会出现internal error
请大大们指教