C MORTGAGE CALCULATION PROGRAM MORTG DOUBLE PRECISION II,QA,QT,SUM,Z1,Z2,AA,AB,AC,AD,AE DOUBLE PRECISION A,A1,I,M,B,P,X1,X2,X3,J,P1 INTEGER T,N,N1,Y,T1,KK BYTE ANS(9) 1010 KK=5 WRITE(5,1) 1 FORMAT( /,' AMOUNT OF PRINCIPAL BORROWED:',2X,$) READ(5,*)A1 WRITE (5,3) 3 FORMAT (/,' RATE OF INTEREST:',2X,$) READ(5,*)I WRITE (5,5) 5 FORMAT(/,' AMORTIZATION PERIOD:',2X,$) ACCEPT 6,N 6 FORMAT (I2) WRITE (5,18) 18 FORMAT(/,' DO YOU HAVE A CONVENTIONAL MORTGAGE ?',/, 1 ' (I.E. MONTHLY PAYMENTS WITHOUT ANY OPTIONS)'/, 1 ' FOR YES TYPE: 1 MONTHLY'/, 1 ' FOR NO TYPE: 0') ACCEPT 971,M2,ANS 971 FORMAT(I1,9A1) IF (M2.EQ.1)GOTO 1050 WRITE(5,10) 10 FORMAT(/,' CAN YOU MAKE YOUR PAYMENTS MONTHLY,BIWEEKLY OR WEEKLY' 1 ,//,' FOR MONTHLY PAYMENT TYPE: 1 MONTHLY',/, 1 ' FOR BIWEEKLY (EVERY ALTERNATE WEEK) PAYMENT TYPE: 2 BIWEEKLY' 1 ,/,' FOR WEEKLY (EVERY WEEK) PAYMENT TYPE: 3 WEEKLY',/) ACCEPT 11,I1,ANS 11 FORMAT(I1,9A1) IF (I1.EQ.1) GOTO 1050 IF (I1.EQ.2) GOTO 2000 IF (I1.EQ.3) GOTO 3000 1050 LL=12 MM=6 NN=11 GOTO 4000 2000 LL=26 MM=13 NN=25 GOTO 4000 3000 LL=52 MM=26 NN=51 4000 WRITE (5,12) 12 FORMAT(/,' GIVE THE TERM OF YOUR MORTGAGE',/, 1 ' ( E.G. 1-5 YRS.) -----',10X,$) ACCEPT 13,I2 13 FORMAT(I1,$) IF(M2.EQ.1) GOTO 222 IF (I2.EQ.1)GOTO 222 WRITE(5,785) 785 FORMAT(/,' CAN YOU MAKE LUMP-SUM PAYMENTS (PREPAYMENTS) AT',/, 1 ' THE END OF EACH YEAR YES=1,NO=0') ACCEPT 13,M3 IF (M3.EQ.0) GOTO 222 IF (I2.EQ.2)GOTO 14 IF (I2.EQ.3)GOTO 15 IF (I2.EQ.4)GOTO 16 IF (I2.EQ.5)GOTO 17 14 WRITE(5,20) 20 FORMAT(/,' GIVE AMOUNT OF ADDITIONAL LUMP-SUM PAYMENT YOU 1 WILL MAKE',//,' AT THE END OF YEAR 1:',2X,$) READ (5,*)AA GOTO 222 15 WRITE(5,20) READ(5,*)AA WRITE(5,1000) 1000 FORMAT(' AT THE END OF YEAR 2:',2X,$) READ(5,*)AB GOTO 222 16 WRITE(5,20) READ(5,*)AA WRITE(5,1000) READ(5,*)AB WRITE(5,1001) 1001 FORMAT(' AT THE END OF YEAR 3:',2X,$) READ(5,*)AC GOTO 222 17 WRITE(5,20) READ(5,*)AA WRITE(5,1000) READ(5,*)AB WRITE (5,1001) READ(5,*)AC WRITE(5,1002) 1002 FORMAT(' AT THE END OF YEAR 4:',2X,$) READ(5,*)AD 222 SUM=0 A=A1 DO 888 N4=1,N IF(N4.GT.I2)GOTO 777 IF(M2.EQ.1.AND.N4.GT.1) GOTO 777 IF(M3.EQ.0.AND.N4.GT.1) GOTO 777 IF(N4.GT.1)GOTO 198 M=FLOAT(N*LL) II=(((1+I/200)**(1/FLOAT(MM)))-1) QA=(1/II)*(1-(1+I/200)**(-M/FLOAT(MM))) P=A/QA 198 WRITE(5,7)A,ANS,P 7 FORMAT(//,2X,' PRINCIPAL',F9.2, 1 8X,9A1,' PAYMENT ',F9.2,//) C 1 13X,'FOR AMORT. PERIOD',2X,I2,1X,'YRS.', //) IF (M2.EQ.1.OR.M3.EQ.0) GOTO 777 WRITE(5,400)ANS,N4 400 FORMAT(' IF YOU HAVE A DIFFERENT',9A1,' PAYMENT 1 FOR YR.',I2,/,' THEN GIVE 1 THE NEW AMOUNT',/,' OR ELSE TYPE IN THE ABOVE AMOUNT') READ(5,*)P1 Z1=MM*(ALOG10(P1)-ALOG10(P1-(II*A)))/(ALOG10(1+(I/200))) Z2=Z1/FLOAT(LL) IF(N4.GT.1)GOTO1212 901 WRITE(KK,444)ANS,P,N,ANS,P1,Z2 444 FORMAT(/,9A1,' PAYMENT:',3X,F9.2,6X,' AMORTIZATION PERIOD', 1 2X,I2,1X,'YRS.'//,' NEW',9A1,' PAYMENT', 1 F9.2,6X,' NEW AMORT. PERIOD',3X,F4.1,1X,'YRS.',///) GOTO 776 1212 WRITE(KK,1213)ANS,P1,Z2 1213 FORMAT(' NEW',9A1,' PAYMENT', 1 F9.2,6X,' NEW AMORT. PERIOD',3X,F4.1,1X,'YRS.',///) 776 P=P1 777 WRITE(KK,100)ANS 100 FORMAT(9A1,5X,'INTEREST',9X,'PRINCIPAL',10X,'BALANCE', 1 12X,'TOTAL') WRITE (KK,102) 102 FORMAT(' PERIOD',8X,'PAID',14X,'PAID',12X,'REMAINING',10X, 1 'INTEREST',/) QT=(1/II)*(1-(1+I/200)**(-1/FLOAT(MM))) B=(A-(P*QT))/(1-(II*QT)) T=1 X1=II*A X2=P-X1 SUM=SUM+X1 WRITE (KK,9)T,X1,X2,B,SUM 9 FORMAT(2X,I3,9X,F6.2,9X,F9.2,9X,F10.2,8X,F10.2) 201 FORMAT(/,2X,'END OF YEAR:',I2,2X,'BALANCE OF PRINCIPAL', 1 F10.2,2X,'TOTAL INTEREST',1X,F10.2,//) DO 101 T=1,NN Y=0 QT=(1/II)*(1-(1+I/200)**(-T/FLOAT(MM))) T1=T+1 Y=T1/LL J=T1/FLOAT(LL) B=(A-(P*QT))/(1-(II*QT)) X1=II*B SUM=SUM+X1 X2=P-X1 X3=B-X2 IF(X3.LT.P1.OR.X3.LT.1)GOTO 8888 WRITE (KK,9)T1,X1,X2,X3,SUM IF(Y.NE.J)GOTO 101 WRITE (KK,201)N4,X3,SUM 101 CONTINUE REWIND 6 IF(M2.EQ.1.OR.M3.EQ.0)GOTO 88 IF (N4.EQ.1)GOTO 80 IF(N4.EQ.2)GOTO 82 IF (N4.EQ.3)GOTO 83 IF (N4.EQ.4)GOTO 84 IF (N4.EQ.5.OR.N4.GT.5)GOTO 88 80 A=X3-AA IF(X3.LT.AA)GOTO 8889 WRITE (KK,81)AA,A GOTO 888 81 FORMAT(/,' LUMP-SUM PAYMENT',1X,F9.2,4X, 1 ' NEW BALANCE OF PRINCIPAL',1X,F9.2,/) 82 A=X3-AB IF(X3.LT.AB)GOTO 8889 WRITE (KK,81)AB,A GOTO 888 83 A=X3-AC IF(X3.LT.AC)GOTO 8889 WRITE (KK,81)AC,A GOTO 888 84 A=X3-AD IF(X3.LT.AD)GOTO 8889 WRITE (KK,81)AD,A 88 A=X3 888 CONTINUE 8888 WRITE (KK,9)T1,X1,X2,X3,SUM 8889 REWIND 6 IF(KK.EQ.6) GOTO 105 WRITE(5,300) 300 FORMAT(//,' DO YOU WANT A PRINT-OUT ? YES=1,NO=0') ACCEPT 301,K 301 FORMAT(I1) IF (K.EQ.0)GOTO 105 WRITE(6,26) A1,I 26 FORMAT('1',7X,' PRINCIPAL BORROWED',1X,F9.2,6X,'INTEREST RATE', 1 F9.2) IF(I1.GT.1.AND.M3.EQ.1)GOTO 475 WRITE (6,976)ANS,P,N 976 FORMAT(/,8X,9A1,' PAYMENT',1X,F9.2,8X,' AMORTIZATION PERIOD', 1 2X,I2,2X,'YRS.'//) 475 KK=6 GOTO 222 105 WRITE(5,1111) 1111 FORMAT(' DO YOU WANT ANOTHER CALCULATION ? YES=1 NO=0') ACCEPT 6,IBB IF (IBB.EQ.1)GOTO 1010 CALL EXIT END