Fortran Coder

查看: 4668|回复: 4
打印 上一主题 下一主题

[子程序] bisec子程序ielem()传递时是以一个数组还是以一个数传递

[复制链接]

5

帖子

2

主题

0

精华

入门

F 币
40 元
贡献
18 点
跳转到指定楼层
楼主
发表于 2021-11-11 17:52:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
n=30
do i=1,n
ielem(i)=i
enddo
loct(inp)=1
call bisec(x,ielem(loct(inp)),numt(inp),ysep,nsepy, 2)

      subroutine bisec(x,ielem,n,xsep,nsep,ic)

      implicit real*8(a-h,o-z)

      dimension x(2,*),ielem(*)

      nsep = 1
      if(n.le.0) return

      do ifr=1,n
         if(x(ic,ielem(ifr)).le.xsep) then
            if(ifr.ne.nsep) then
               istore      = ielem(nsep)
               ielem(nsep) = ielem(ifr)
               ielem(ifr)  = istore
            endif
            nsep = nsep + 1
         endif
        enddo

      return
      end

c-------------------------------------------------------------------------------

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

213

帖子

2

主题

0

精华

宗师

F 币
2126 元
贡献
875 点

规矩勋章

沙发
发表于 2021-11-11 20:57:59 | 只看该作者
inp 和 loct(inp) 都是单变量, 相应的ielem(loct(inp))和 numt (inp) 也是单变量。而子程序 bisec 却定议的是数组,运行时会出错。

796

帖子

2

主题

0

精华

大宗师

F 币
3787 元
贡献
2266 点
板凳
发表于 2021-11-11 21:20:37 | 只看该作者
fortran是地址传递
http://fcode.cn/guide-103-1.html

5

帖子

2

主题

0

精华

入门

F 币
40 元
贡献
18 点
地板
 楼主| 发表于 2021-11-12 09:23:12 | 只看该作者
风平老涡 发表于 2021-11-11 20:57
inp 和 loct(inp) 都是单变量, 相应的ielem(loct(inp))和 numt (inp) 也是单变量。而子程序 bisec 却 ...

谢谢大佬

5

帖子

2

主题

0

精华

入门

F 币
40 元
贡献
18 点
5#
 楼主| 发表于 2021-11-12 09:23:48 | 只看该作者
li913 发表于 2021-11-11 21:20
fortran是地址传递
http://fcode.cn/guide-103-1.html

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

本版积分规则

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

GMT+8, 2024-4-20 04:21

Powered by Tencent X3.4

© 2013-2024 Tencent

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