|
6#
楼主 |
发表于 2022-9-27 11:59:01
|
只看该作者
矩阵操作运算合集编译问题续二
按老师提示, 请教如下: 盼复,谢谢!
问题1: 附近程序行I
********************************************
main.f90:14225:12:
14225 | a(i,j) = 0.0D+00
| 1
Error: Unclassifiable statement at (1)
main.f90:17595:35:
subroutine eulerian_inverse ( n, a )
do j = 1, n
do i = 1, n
if ( i .lt. j ) then
14225 a(i,j) = 0.0D+00
else if ( i .eq. j ) then
a(i,j) = 1.0D+00
else if ( j .lt. i ) then
dot = 0.0D+00
do k = j, i - 1
dot = dot + b(i,k) * a(k,j)
end do
a(i,j) = - dot
end if
end do
end do
return
end
***********************************************
问题2: 附件程序行II
***********************************************
main.f90:14237:12:
14237 | a(i,j) = - dot
| 1
Error: The function result on the lhs of the assignment at (1) must have the pointer attribute.
subroutine eulerian_determinant ( n, determ )
implicit none
double precision determ
integer n
determ = 1.0D+00
return
end
subroutine eulerian_inverse ( n, a )
do j = 1, n
do i = 1, n
if ( i .lt. j ) then
a(i,j) = 0.0D+00
else if ( i .eq. j ) then
a(i,j) = 1.0D+00
else if ( j .lt. i ) then
dot = 0.0D+00
do k = j, i - 1
dot = dot + b(i,k) * a(k,j)
end do
14237 a(i,j) = - dot
end if
end do
end do
return
end
subroutine exchange ( m, n, a )
implicit none
integer m
integer n
double precision a(m,n)
integer i
integer j
do j = 1, n
do i = 1, m
if ( i + j .eq. n + 1 ) then
a(i,j) = 1.0D+00
else
a(i,j) = 0.0D+00
end if
end do
end do
return
end
|
|