24小时热门版块排行榜    

CyRhmU.jpeg
查看: 741  |  回复: 4
当前主题已经存档。

215215

银虫 (小有名气)

[交流] 【求助】大家帮忙看下错在哪!一直提示一个错误【已完成】已有2人参与

PROGRAM PENDULUM
!
! Main Program for a driven pendulum under damping solved with
! the fourth-order Runge-Kutta algorithm.  
! Parameters: Q, B,and W (omega_0).  
!
     PARAMETER (N=1000,L=100,M=1)
     DIMENSION  Y(2,N)
         COMMON/CONST/Q,B,W
!
  PI = 4.0*ATAN(1.0)
  H  = 3.0*PI/L
  Q  = 0.5
  B  = 0.9
  W  = 2.0/3.0
  Y(1,1) = 0.0
  Y(2,1) = 2.0
!
! Using the Runge-Kutta algorithm to integrate the
! equation
!
  DO 100 I = 1, N-1
    T  = H*I
    Y1 = Y(1,I)
    Y2 = Y(2,I)
    DK11 = H*G1(Y1,Y2,T)
    DK21 = H*G2(Y1,Y2,T)
    DK12 = H*G1((Y1+DK11/2.0),(Y2+DK21/2.0),(T+H/2.0))
    DK22 = H*G2((Y1+DK11/2.0),(Y2+DK21/2.0),(T+H/2.0))
    DK13 = H*G1((Y1+DK12/2.0),(Y2+DK22/2.0),(T+H/2.0))
    DK23 = H*G2((Y1+DK12/2.0),(Y2+DK22/2.0),(T+H/2.0))
    DK14 = H*G1((Y1+DK13),(Y2+DK23),(T+H))
    DK24 = H*G2((Y1+DK13),(Y2+DK23),(T+H))
    Y(1,I+1) = Y(1,I)+(DK11+2.0*(DK12+DK13)+DK14)/6.0
    Y(2,I+1) = Y(2,I)+(DK21+2.0*(DK22+DK23)+DK24)/6.0
!
! Bring theta back to the region [-pi,pi]
!
    IF(ABS(Y(1,I+1)).GT.PI) THEN
       Y(1,I+1) = Y(1,I+1)-2.0*PI*ABS(Y(1,I+1))/
        *       Y(1,I+1)
        END IF
   100 CONTINUE
!
    WRITE (6,999 (Y(1,I),Y(2,I),I=1,N,M)
    STOP
  999 FORMAT (2F16.8)
     END
!
  FUNCTION G1 (Y1,Y2,T)
  COMMON /CONST/Q,B,W
       G1=Y2
  RETURN
  END
!
FUNCTION G2 (Y1,Y2,T)
COMMON /CONST/Q,B,W
  G2 = -Q*Y2-SIN(Y1)+B*COS(W*T)
RETURN
END





--------------------Configuration: 单摆 - Win32 Debug--------------------
Compiling Fortran...
E:\Program Files\Microsoft Visual Studio\MyProjects\aaa\单摆.f90
f90: Severe: No such file or directory
... file is 'E:\Program Files\Microsoft Visual Studio\MyProjects\aaa\μ¥°ú.f90'
Error executing df.exe.

单摆.exe - 1 error(s), 0 warning(s)

[ Last edited by wangen994 on 2010-4-12 at 15:47 ]
回复此楼
nevergiveup!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
jjdg(金币+1):感谢参与 2010-04-12 01:07
wangen994(金币+2):感谢参与讨论 2010-04-12 08:24
wangen994(金币+2):活动期间额外奖励 2010-04-12 08:24
PROGRAM PENDULUM
!
! Main Program for a driven pendulum under damping solved with
! the fourth-order Runge-Kutta algorithm.  
! Parameters: Q, B,and W (omega_0).  
!
     PARAMETER (N=1000,L=100,M=1)
     DIMENSION  Y(2,N)
         COMMON/CONST/Q,B,W
!
  PI = 4.0*ATAN(1.0)
  H  = 3.0*PI/L
  Q  = 0.5
  B  = 0.9
  W  = 2.0/3.0
  Y(1,1) = 0.0
  Y(2,1) = 2.0
!
! Using the Runge-Kutta algorithm to integrate the
! equation
!
  DO 100 I = 1, N-1
    T  = H*I
    Y1 = Y(1,I)
    Y2 = Y(2,I)
    DK11 = H*G1(Y1,Y2,T)
    DK21 = H*G2(Y1,Y2,T)
    DK12 = H*G1((Y1+DK11/2.0),(Y2+DK21/2.0),(T+H/2.0))
    DK22 = H*G2((Y1+DK11/2.0),(Y2+DK21/2.0),(T+H/2.0))
    DK13 = H*G1((Y1+DK12/2.0),(Y2+DK22/2.0),(T+H/2.0))
    DK23 = H*G2((Y1+DK12/2.0),(Y2+DK22/2.0),(T+H/2.0))
    DK14 = H*G1((Y1+DK13),(Y2+DK23),(T+H))
    DK24 = H*G2((Y1+DK13),(Y2+DK23),(T+H))
    Y(1,I+1) = Y(1,I)+(DK11+2.0*(DK12+DK13)+DK14)/6.0
    Y(2,I+1) = Y(2,I)+(DK21+2.0*(DK22+DK23)+DK24)/6.0
!
! Bring theta back to the region [-pi,pi]
!
    IF(ABS(Y(1,I+1)).GT.PI) THEN
       Y(1,I+1) = Y(1,I+1)-2.0*PI*ABS(Y(1,I+1))/Y(1,I+1)
        END IF
   100 CONTINUE
!
    WRITE(6,999)(Y(1,I),Y(2,I),I=1,N,M)
    STOP
  999 FORMAT (2F16.8)
     END
!
  FUNCTION G1 (Y1,Y2,T)
  COMMON /CONST/Q,B,W
       G1=Y2
  RETURN
  END
!
FUNCTION G2 (Y1,Y2,T)
COMMON /CONST/Q,B,W
  G2 = -Q*Y2-SIN(Y1)+B*COS(W*T)
RETURN
END
2楼2010-04-11 23:18:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★ ★
jjdg(金币+2):辛苦了 2010-04-11 23:25
wangen994(金币+1):活动期间额外奖励 2010-04-12 08:24
就改了

    IF(ABS(Y(1,I+1)).GT.PI) THEN
       Y(1,I+1) = Y(1,I+1)-2.0*PI*ABS(Y(1,I+1))/Y(1,I+1)
        END IF
   100 CONTINUE
!
    WRITE(6,999)(Y(1,I),Y(2,I),I=1,N,M)


还有就是不要用中文文件名。
3楼2010-04-11 23:19:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

215215

银虫 (小有名气)


jjdg(金币+1):欢迎新虫 2010-04-12 14:15
引用回帖:
Originally posted by tjyl at 2010-04-11 23:19:25:
就改了

    IF(ABS(Y(1,I+1)).GT.PI) THEN
       Y(1,I+1) = Y(1,I+1)-2.0*PI*ABS(Y(1,I+1))/Y(1,I+1)
        END IF
   100 CONTINUE
!
    WRITE(6,999)(Y(1,I),Y(2,I),I=1,N,M)


还有就是不要用 ...

谢谢哈!
nevergiveup!
4楼2010-04-12 13:05:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

215215

银虫 (小有名气)

如果把b=0.9改为b属于区间【1,1.5】继续运行的话该怎么修改此程序??谢谢赐教!!

引用回帖:
Originally posted by tjyl at 2010-04-11 23:18:42:
PROGRAM PENDULUM
!
! Main Program for a driven pendulum under damping solved with
! the fourth-order Runge-Kutta algorithm.  
! Parameters: Q, B,and W (omega_0).  
!
     PARAMETER (N=1000,L= ...

如果把b=0.9修改为b属于区间【1,1.5】 继续运行此程序的话,该怎么修改此程序??多谢赐教。
nevergiveup!
5楼2010-04-21 12:06:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 215215 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见