24小时热门版块排行榜    

查看: 565  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

依旧是则徐

铜虫 (小有名气)

[求助] 公共参量设定(子程序里的i,j 怎样设置才能使用上面主程序传入的i,j 值呢)已有1人参与

各位,我这样写的程序,但是子程序里的i,j 怎样设置才能使用上面主程序传入的i,j 值呢。
!求解Y''(T)=-(i+j*cos(2*T))*Y
program main
   use IMSL
   implicit none
   integer, parameter :: MXPARM = 50
   integer, parameter :: N = 2
   integer IDO, ISTEP, NOUT
   real PARAM(MXPARM), T, TEND, Y(N)
   real, parameter :: TOL = 1E-8
   external FCN
   real :: i,j

  do i=0,1,0.001
      do j=0,1.5,0.1
           write(*,"(I2,I2)" i,j

       PARAM = 0
        WRITE (*,"(' Time', 9X,'Y')"
        Y(1) = 0 ! Initial condition
        Y(2) = 2.0
        T = 0.0    ! Y(T)=4.0中的时间T值
        IDO = 1
          do ISTEP=0,100,10
            TEND = ISTEP
                call IVPRK (IDO, N, FCN, T, TEND, TOL, PARAM, Y)
            write (*,'(F5.1,F12.4)') T, Y
          end do

       call IVPRK (3, N, FCN, T, TEND, TOL, PARAM, Y)
          end do
   end do
     
  stop
   end program
! 计算微分方程式
! YPRIME=Y'=f(t,y)
subroutine FCN (N, T, Y, YPRIME)
   implicit none
   integer N
   real T, Y(N), YPRIME(N)
   real i,j
  !Y''(T)=-(i+j*cos(2*T))*Y
   YPRIME(2) =-(i+j*cos(2*T))*Y(1)
   return
end subroutine
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

Fortran 中可以把 subroutine 当一个参数传给另外一个 subroutine 吗?实在想不起来有这样的写法了,只记得 function 可以作为参数……
4楼2014-12-21 03:55:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

另外,i, j 这类的变量名,一般还是用来表示 integer 变量吧,否则如果不开 implicit none 的话,容易出错……
5楼2014-12-21 03:57:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 依旧是则徐 的主题更新
信息提示
请填处理意见