C .TITLE MORT3 C C 20 JUN 77 (PDH) BEGIN WITH FORM FEED FOR RSX C 21 JAN 74 (PDH) SPACE AFTER EACH YEAR, NO MATTER HOW MANY PAYMENTS C 15 JAN 73 - TIDY UP INITIAL HEADING C 8 DEC 72 - CONVERT TO WATRAN C 16 OCT 72 - PAUL HENDERSON (UPDATED FROM AN EARLIER VERSION) C C PROGRAM TO PRODUCE AN AMORTIZATION TABLE FROM INFORMATION C ENTERED FROM THE KEYBOARD AT RUN TIME. OUTPUT IS ON .DAT +6. C REAL NUMBER,NP,JBYP,NYEARS 101 WRITE(4,10) WRITE(4,11) READ(4,15) DEBT WRITE(4,12) READ(4,15) ANNINT WRITE(4,13) READ(4,15) NYEARS WRITE(4,14) READ(4,15) PPERYR KPAYS=PPERYR NP=NYEARS*PPERYR JBYP=ANNINT/PPERYR/100. RATE=JBYP PAY=DEBT*JBYP/(1.-(1./(1.+JBYP))**NP) 104 WRITE (4,3) PAY WRITE (4,20) READ (4,15) ANS IF (ANS) 106,103,105 105 PAY=ANS GO TO 104 106 PAY = 0. 103 WRITE (6,22) WRITE (6,3) PAY,PPERYR,ANNINT WRITE(6,4) I=0 TOTINT=0. DEBTI=DEBT WRITE(6,5)I,DEBT 1 PAYINT=RATE*DEBT TOTINT=TOTINT+PAYINT PPRINC=PAY-PAYINT DEBTJ=DEBT DEBT=DEBT-PPRINC I=I+1 IF (DEBT) 2,2,102 102 WRITE(6,6)I,PAYINT,PPRINC,DEBT IF (MOD(I,KPAYS).EQ.0) WRITE (6,21) IF (MOD(I,48).NE.0) GO TO 1 WRITE (6,22) WRITE (6,4) GO TO 1 2 REPAY=TOTINT+DEBTI PPRINC=DEBTJ DEBT=0. WRITE(6,6)I,PAYINT,PPRINC,DEBT WRITE(6,8)TOTINT WRITE(6,9)REPAY WRITE (6,22) WRITE(4,8)TOTINT WRITE(4,9)REPAY GO TO 101 3 FORMAT (' $',F7.2,' PER PERIOD,',I4,' PERIODS PER YEAR @', *F6.2,'% PER ANNUM'/) 4 FORMAT(7H PERIOD,9H INTEREST,11H PRINCIPAL,9H DEBT/) 5 FORMAT(I5,20XF12.2) 6 FORMAT(I5,F9.2,F11.2,F12.2) 8 FORMAT(/17H TOTAL INTEREST $,F8.2) 9 FORMAT(/17H AMOUNT REPAID $,F8.2) 10 FORMAT(//29H AMORTIZATION TABLE//) 11 FORMAT(28H WHAT IS THE AMOUNT BORROWED) 12 FORMAT(39H WHAT IS THE RATE OF INTEREST PER ANNUM) 13 FORMAT(33H HOW MANY YEARS WILL THE DEBT RUN) 14 FORMAT(27H HOW MANY PAYMENTS PER YEAR) 15 FORMAT(F10.2) 20 FORMAT (25H CHANGE PERIODIC PAYMENT:) 21 FORMAT (1H ) 22 FORMAT (1H1) END FUNCTION MOD (I,K) MOD=I-(I/K)*K RETURN END