C MORTGAGE AMORTIZATION TABLE GENERATOR C FORMAT STATEMENTS: C ------------------ 1000 FORMAT(///) 1001 FORMAT(' MORTGAGE AMORTIZATION TABLE',//) 1002 FORMAT(' AMOUNT OF LOAN = ',F10.2) 1003 FORMAT(' LOAN RATE (%) = ',F5.2) 1004 FORMAT(' LOAN TERM (YEARS) = ',F5.1) 1005 FORMAT(' MONTHLY PAYMENTS = ',F7.2,/) 1006 FORMAT(F8.2) 1007 FORMAT(/,' DATE INTEREST PRINCIPLE PRINCIPLE') 1008 FORMAT(' PAYMENT REMAINING',/) 1009 FORMAT(/) 1010 FORMAT(' ',I3,I3,' ',F8.2,' ',F8.2,' ',F8.2) 1011 FORMAT(/' LAST PAYMENT = ',F6.2) 1012 FORMAT(' STARTING MONTH (MM)= ') 1013 FORMAT(' STARTING YEAR (YY)= ') 1014 FORMAT(I4) 1015 FORMAT(F10.0) 1016 FORMAT(/,' INTEREST PAID THIS YEAR= ',F8.2) 1017 FORMAT(/,' TOTAL INTEREST PAID= ',F8.2) 1018 FORMAT(/,'LISTING DESIRED ? [Y OR N]: ') 1019 FORMAT(1A6) C PAGE 2 C GET BASIC MORTGAGE DATA: C ------------------------ 1 WRITE(1,1001) WRITE(1,1002) READ(1,1015)AMOUNT WRITE(1,1003) READ(1,1015)RATE WRITE(1,1004) READ(1,1015)TERM C CALCULATE MONTHLY PAYMENTS C -------------------------- 10 RRATE=RATE/(12.*100.) TTERM=TERM*12. DE1=EXP(ALOG(1.+RRATE)*TTERM) DE2=1./DE1 DE3=1.-DE2 DE4=AMOUNT*RRATE PAYM=(DE4/DE3)+.01 WRITE(1,1005)PAYM C LISTINGS DESIRED ? C ------------------ AY='Y ' AN='N ' 11 WRITE(1,1018) READ(1,1019)ANS 12 IF(ANS-AN)13,1,13 13 IF(ANS-AY)11,15,11 15 WRITE(1,1012) READ(1,1014)MO WRITE(1,1013) READ(1,1014)IYR C LIST HEADING ON LINEPRINTER C --------------------------- 20 WRITE(1,1000) WRITE(1,1001) WRITE(1,1002)AMOUNT WRITE(1,1003)RATE WRITE(1,1004)TERM WRITE(1,1005)PAYM WRITE(1,1007) WRITE(1,1008) C PAGE 3 C COMPUTE & LIST AMORTIZATION TABLE C --------------------------------- 30 MONTH=1 ITERM=TERM*12. ST=0. TT=0. PRINCIPLE=AMOUNT 31 IF(MO-13)33,32,33 32 MO=1 IYR=IYR+1 WRITE(1,1016)ST WRITE(1,1009) TT=TT+ST ST=0. WRITE(1,1009) 33 IF(MONTH-ITERM)34,36,34 34 PINT=PRINCIPLE*RATE/(100.*12.) PO=PAYM-PINT-.01 PRINCIPLE=PRINCIPLE-PO 35 WRITE(1,1010)MO,IYR,PINT,PO,PRINCIPLE ST=ST+PINT MO=MO+1 MONTH=MONTH+1 GO TO 31 C COMPUTE LAST PAYMENT C -------------------- 36 PINT=PRINCIPLE*RATE/(100.*12.) PO=PRINCIPLE PRINCIPLE=0. TLP=PO+PINT WRITE(1,1010)MO,IYR,PINT,PO,PRINCIPLE WRITE(1,1011)TLP ST=ST+PINT WRITE(1,1016)ST TT=TT+ST WRITE(1,1017)TT WRITE(1,1000) WRITE(1,1000) GO TO 1 END