24小时热门版块排行榜    

查看: 471  |  回复: 0
【悬赏金币】回答本帖问题,作者夏沫有约将赠送您 20 个金币
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

夏沫有约

新虫 (著名写手)

[求助] 程序运行出错求助

program main
           dimension in(2),x(2)
           data ntrap /20/
           integer i
       real*8 in,c,d
           in(1)=-sqrt(2.0)/2.0
           in(2)=sqrt(2.0)/2.0
           c=0.0
           d=-1.0
        do i=1,ntrap,1
           call external f()
                   c=x(1)
                   d=x(2)
           in(1)=in(1)-2.0*c/1.0*vdotn(in(1),x(1),1) !新方向的x坐标表达式
           in(2)=in(2)-2.0*d/1.0*vdotn(in(1),x(1),1) !新方向的y坐标表达式
                   write(*,*) 'x(1)=',x(1),'x(2)=',x(2)
                   write(*,*) 'in(1)=',in(1),'in(2)=',in(2)
            end do
          stop
          end
           
          subroutine external f()
          dimension x(2),y(2)
          data x/2*0.0/
          b=2.0
          n=2
          m=10
          eps=1.0e-5
          call dnmtc(x,n,b,m,eps,y)
          write(*,*)
          do 10 i=1,n
10          write(*,100) i,x(i)
          write(*,*)
100          format(5x,'x(',i2,1x,')=',e13.6)
          end subroutine
         
          function f(x,n)
          dimension x(n),in(n)
          f1=x(1)*x(1)+x(2)*x(2)-1.0
          f2=in(2)*x(1)-in(2)*c-in(1)*x(2)+in(1)*d
          f=sqrt(f1*f1+f2*f2)
          end

          subroutine dnmtc(x,n,b,m,eps,y)
          dimension x(n),y(n)
          double precision r
          real nrnd1
          a=b
          k=1
          r=1.0d0
          z=f(x,n)
10          if (a.ge.eps) then
            l=l+1
            do 20 i=1,n
20            y(i)=-a+2.0*a*nrnd1(r)+x(i)
            z1=f(y,n)
           k=k+1
            if (z1.ge.z) then
              if (k.gt.m) then
                k=1
                a=a/2.0
              end if
              goto 10
            else
              k=1
              do 30 i=1,n
30              x(i)=y(i)
              z=z1
              if (z.ge.eps) goto 10
            end if
          end if
          return
          end subroutine

          real function nrnd1(r)
          double precision s,u,v,r
          s=65536.0
          u=2053.0
          v=13849.0
          m=r/s
          r=r-m*s
          r=u*r+v
          m=r/s
          r=r-m*s
          nrnd1=r/s
          return
          end
我写了一个代码,主要是由一个初始点和初始方向确定的直线和一个圆相交,得到的下一个点继续作为初始点,又有一个新的方向作为新方向,继续和圆相交,一直循环。循环的次数为ntrap.我运行不知道为什么没有执行循环,输出in(1),in(2)也没有执行。
x(1)为x,x(2)为y,c为x初坐标,d为y初坐标,in(1)为直线斜率的x坐标,in(2)为直线斜率的y坐标。直线方程为:(x(1)-c)/in(1)=(x(2)-c)/in(2)
新人,还不太懂,代码可能写的有问题,没有报错,但结果不对,还请大神们指点!感谢感谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 夏沫有约 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 年年想打听,年年打听不到。。 +20 hdzw9071 2024-06-03 28/1400 2024-06-08 09:52 by 潇湘之迷
[基金申请] 化学B02口青基 代表作都是什么水平的?向大佬求助 +18 arthas_007 2024-06-01 26/1300 2024-06-08 09:35 by li19891108
[基金申请] 河北省基金 +6 星辰32 2024-06-04 9/450 2024-06-08 09:17 by 晓晓爱翠翠
[基金申请] 今年香江初审出结果了吗 +3 悲催科研狗 2024-06-06 9/450 2024-06-07 23:52 by wuhanrui
[论文投稿] 工作后评职称需要发表论文,想自己写,求帮助 50+3 上官逸夜 2024-06-04 9/450 2024-06-07 22:57 by xy66xy
[基金申请] 2024杰青和万人领军什么时候会评 +10 墨香琴韵 2024-06-02 10/500 2024-06-07 22:41 by 一上官婉儿
[硕博家园] 博士找工作真难 +9 sdsk47 2024-06-05 14/700 2024-06-07 20:52 by kinhboo
[基金申请] 前些天开会有个人见到人就搞关系,一查此人全是MDPI/Hindawi论文,鄙视! +38 zju2000 2024-06-02 48/2400 2024-06-07 15:56 by SudaQian
[论文投稿] 一般很空的审稿意见大家一般是怎么回复的 +4 mage9162 2024-06-05 5/250 2024-06-07 06:20 by mage9162
[论文投稿] 论文大修语言问题 +6 ayyjy 2024-06-05 7/350 2024-06-06 16:19 by p-cloud
[论文投稿] 被预警的期刊还能再投嘛? 30+7 779931956 2024-06-04 9/450 2024-06-06 16:08 by 学员XxVJy5
[论文投稿] 博士学的是健康教育,需要自己找课题,哪位大神帮忙指导一下,选什么健康教育课题呢? 30+3 lepeau 2024-06-05 5/250 2024-06-06 11:38 by nono2009
[论文投稿] 投稿的时候编辑发来邮件说作者机构信息没填写怎么办 5+4 飞飞0421 2024-06-02 11/550 2024-06-06 10:56 by 学员XxVJy5
[论文投稿] 二审10天就Required Reviews Completed +6 2021035005 2024-06-03 12/600 2024-06-06 08:58 by 2021035005
[论文投稿] 美国对华为的制裁会影响英文论文发表吗 +6 楚辞mio 2024-06-04 6/300 2024-06-06 06:35 by 贪吃fish
[硕博家园] 材料博士毕业 +8 112233ssg 2024-06-02 9/450 2024-06-06 04:58 by kangshisan
[论文投稿] 不要投这个杂志Journal of materials science +5 蛋蛋198956 2024-06-04 5/250 2024-06-05 18:18 by nandi2212
[论文投稿] 给编辑发邮件 +3 happy hs 2024-06-03 4/200 2024-06-05 13:51 by p-cloud
[有机交流] 求指点这一步反应如何实现 50+4 35ghjs 2024-06-04 12/600 2024-06-05 10:51 by 35ghjs
[基金申请] E口人才项目发通知了么? +3 linan2011 2024-06-04 3/150 2024-06-04 22:34 by hncxu
信息提示
请填处理意见