SUBROUTINE INITAL IMPLICIT DOUBLE PRECISION (A-H,O-Z) COMMON/T/ T, NSTOP, NORUN + /Y/ Y(1) + /F/ YT(1) C... C... INITIAL CONDITION Y(1)=1.0D0 RETURN END SUBROUTINE DERV IMPLICIT DOUBLE PRECISION (A-H,O-Z) COMMON/T/ T, NSTOP, NORUN + /Y/ Y(1) + /F/ YT(1) C... C... ODE YT(1)=-Y(1) RETURN END SUBROUTINE PRINT(NI,NO) IMPLICIT DOUBLE PRECISION (A-H,O-Z) COMMON/T/ T, NSTOP, NORUN + /Y/ Y(1) + /F/ YT(1) C... C... COMMON AREA TO ACCESS THE ESTIMATED ERRORS FROM SUBROUTINE FS_RKF45 COMMON/RK7/ E(250) C... C... MONITOR THE CALCULATION WRITE(*,*)NORUN,T C... C... PRINT HEADING FOR SOLUTION IF(T.LT.0.001D0)WRITE(NO,2) 2 FORMAT(//,6X,'T',8X,'Y(1)',6X,'YEXACT',5X,'E (EST)',3X'E (EXACT)', + 5X,'RATIO') C... C... PRINT NUMERICAL AND EXACT SOLUTIONS, ESTIMATED AND EXACT ERRORS, C... RATIO OF ERROR C... C... EXACT SOLUTION YE=DEXP(-T) C... C... EXACT ERROR EE=Y(1)-YE C... C... RATIO OF ERRORS IF(T.LT.0.001D0)THEN E(1)=0.0D0 RATIO=1.0D0 ELSE RATIO=E(1)/EE END IF C... C... PRINT RESULTS WRITE(NO,1)T,Y(1),YE,E(1),EE,RATIO 1 FORMAT(F7.3,2F12.5,2D12.3,F10.3) RETURN END