回 帖 发 新 帖 刷新版面

主题:程序收敛问题

!D great

   do m = 0,f
      dga(m) = -0.1
   end do

   j = 0
   k = 0
   do while (k.lt.f .or. j.lt.3)
      do m = 0,f
         sigmar1(m) = 0.0
         sigmar2(m) = 0.0
         pir1(m) = 0.0
         pir2(m) = 0.0
      end do

      do m = 0,f
         do n = 0,f
            sigmar1(m)=sigmar1(m)-K_2(m-n+f/2)*dga(n)*domega
            sigmar2(m)=sigmar2(m)+K_1(m-n+f/2)*dga(n)*domega
         end do
         gg(m)=2.0*sigmar2(m)/((omega(m)-e_dbar-sigmar1(m))**2+sigmar2(m)**2)
      end do

      do m = 0,f
         do n = 0,f
            pir1(m)=pir1(m)-2.0*H_2(n-m+f/2)*gg(n)*domega
            pir2(m)=pir2(m)+2.0*H_1(n-m+f/2)*gg(n)*domega
         end do
         dgb(m)=2.0*pir2(m)/((omega(m)-pir1(m))**2+pir2(m)**2)
      end do

      k=0
      do m = 0,f
         if (abs(dga(m)-dgb(m)).lt.delta_1) then
            k=k+1
         else
         end if
         dga(m)=dgb(m)
      end do

      if (j.eq.10)then
         k=f
      end if

      j=j+1

      write(*,*)j,dgb(f/2),k
!      write(6,*)j,dgb(f/2),k
   end do !do while

这段程序中输出的语句出现什么情况,才是收敛的情况?
求高手指点

回复列表 (共1个回复)

沙发

外层有一个对f的循环,忘记写了

我来回复

您尚未登录,请登录后再回复。点此登录或注册