C R.C. PROGRAM OSCIATION *-- 複素数を用いた単振動の記述 --- *-- 複素数の単振動方程式は, 単なるオイラー積分では発散するので, 要注意 --- PARAMETER( NMAX=2000 ) COMPLEX J REAL Y(NMAX), T(NMAX) COMPLEX U(NMAX) REAL W C 配列を宣言するとき、配列の長さは変数で指定できない。ここでの変数は NMAX. C そのため、配列の長さを変数で指定したい場合は、PARAMETER宣言を行う. *-- 出力ファイルをダンプ (保存) するための命令 --- * CALL SWpSET( 'LDUMP', .TRUE. ) * CALL SWpSET( 'LWAIT', .FALSE. ) * CALL SWpSET( 'LWAIT1', .FALSE. ) J=(0.0,1.0) W=1.0 *-- 時間および空間分解 --- DT=0.01 *-- 初期条件 --- U(1)=(1.0,0.0) Y(1)=REAL(U(1)) T(1)=0.0 *-- 支配方程式 --- DO 10 I=1,NMAX-1 T(I+1)=T(I)+DT U(I+1)=((1.0+0.5*DT*J*W)/(1.0-0.5*DT*J*W))*U(I) Y(I+1)=REAL(U(I+1)) 10 CONTINUE *-- グラフの出力装置の指定 (IWS=4 は GTK 指定) ---- WRITE(*,*) ' WORKSTATION ID (I) ? ;' CALL SGPWSN * IWS=4 READ (*,*) IWS *-- 出力装置の呼び出し CALL GROPN( IWS ) CALL GRFRM CALL USSTTL( 'TIME', '', 'DEPARTMENT', '' ) CALL USGRPH( NMAX, T, Y ) CALL GRSWND( 0.2, 0.8, 0.2, 0.8 ) CALL GRCLS STOP END