Fortran Coder

查看: 2550|回复: 7
打印 上一主题 下一主题

[求助] 矩阵运算编译问题求助

[复制链接]

50

帖子

24

主题

0

精华

大师

F 币
1149 元
贡献
475 点
跳转到指定楼层
楼主
发表于 2022-9-26 13:36:46 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
尊敬的FORTRAN老师,您好!
    有编译运行较大型矩阵操作合集程序一则, 过程中有疑问,无法进行下去,求助解决,盼复!谢谢!
  9970 |         lambda(i) = 2.0D+00* * ( i - 1 )
      |                              1
Error: Invalid character in name at (1)
上述的错误在哪里? 如何更正?
main.f90:14167:40:

14236 |             a(i,j) = - dot
      |            1
Error: The function result on the lhs of the assignment at (1) must have the pointer attribute.
main.f90:4680:36:

上述是哪里出错?!什么意思?如何更正?

33901 |       data a_save /0.002025462963002D+06, &
      |          1
Error: DATA statement at (1) has more values than variables

main.f90:33927:41:

34014 |       data a_save /0.075953934362606D+00,  0.139678536121698D+00, &
      |          1
Error: DATA statement at (1) has more values than variables
main.f90:34087:43:

上述两句(独立)的意思是不是给出的数据值太多,个数大于多于定义指定的·个数?!

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

50

帖子

24

主题

0

精华

大师

F 币
1149 元
贡献
475 点
沙发
 楼主| 发表于 2022-9-26 13:49:37 | 显示全部楼层

矩阵操作运算较大型合集编译问题继续一

FORTRAN老师您好,
    另有疑问求助,以便编译继续进行下去:
main.f90:14225:12:14225 |             a(i,j) = 0.0D+00      |            1Error: Unclassifiable statement at (1)
什么意思?! 如何纠正?! 盼复! 谢谢!

50

帖子

24

主题

0

精华

大师

F 币
1149 元
贡献
475 点
板凳
 楼主| 发表于 2022-9-27 11:07:29 | 显示全部楼层
收到! 谢谢!
回复

使用道具 举报

50

帖子

24

主题

0

精华

大师

F 币
1149 元
贡献
475 点
地板
 楼主| 发表于 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


50

帖子

24

主题

0

精华

大师

F 币
1149 元
贡献
475 点
5#
 楼主| 发表于 2022-9-29 08:25:10 | 显示全部楼层
收到,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-5 16:11

Powered by Tencent X3.4

© 2013-2024 Tencent

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