! 3.7.f90 ! $Id: 3.7.f90 1.1 2017/01/07 12:48:47 s Exp $ ! ! a : annual worth ! cf : cash flow ! cfdf : cf x df ! df : discount factor ! n : number of periods ! pv : present value ! r : interest rate implicit none integer :: k, n integer, dimension(0:10) :: i, i_a, i_b double precision, dimension(0:10) :: a, cf, cfa,cfb, cfadf,cfbdf, cfdf, df double precision :: a_a, a_b, pp, pv, pv_a_a, pv_a_b, r character(100) :: dash, fmt1, fmt2 ! Car A ! input dash='----------' i(0:6) = (/(k, k = 0, 6)/) r = 0.1d0 n = 4 cf(0:n) = (/20.0d3, 1.0d3, 1.0d3, 1.0d3, 0.0d0/) ! calculate df(0:n) = 1.0d0 / (1.0d0 + r) ** i(0:n) cfdf(0:n) = cf(0:n) * df(0:n) pv = sum(cf(0:n) * df(0:n)) a_a = r * (1 + r) ** n * (pv) / ((1 + r) ** n -1) cfa(0:n) = (/0.0d0, a_a, a_a, a_a, a_a/) cfadf(0:n) = cfa(0:n) * df(0:n) pv_a_a = sum(cfadf(0:n)) ! output print *, 'Car A' print '(a10,5i10)', 'n', n print '(a10,5f10.3)', 'r', r print '(a10,5i10)', 'k', i(0:n) print '(60a10)', dash,dash,dash,dash,dash,dash print '(a10,5f10.3)', 'cf', cf(0:n) print '(a10,5f10.3)', 'df', df(0:n) print '(a10,5f10.3)', 'cfdf', cfdf(0:n) print '(60a10)', dash,dash,dash,dash,dash,dash print '(a10,5f10.3)', 'pv', pv print *, print '(a20,5f10.3)', 'annual worth', a_a print *, print *, 'verification of accounts' print '(60a10)', dash,dash,dash,dash,dash,dash print '(a10,5f10.3)', 'cf', cfa(0:n) print '(a10,5f10.3)', 'df', df(0:n) print '(a10,5f10.3)', 'cfdf', cfadf(0:n) print '(60a10)', dash,dash,dash,dash,dash,dash print '(a10,5f10.3)', 'pv', pv_a_a ! Car B ! input n = 6 cf(0:n) = (/30.0d3, 2.0d3, 2.0d3, 2.0d3, 2.0d3, 2.0d3, 0.0d0/) ! calculate df(0:n) = 1.0d0 / (1.0d0 + r) ** i(0:n) cfdf(0:n) = cf(0:n) * df(0:n) pv = sum(cf(0:n) * df(0:n)) a_b = r * (1 + r) ** n * (pv) / ((1 + r) ** n -1) cfb(0:n) = (/0.0d0, a_b, a_b, a_b, a_b, a_b, a_b/) cfbdf(0:n) = cfb(0:n) * df(0:n) pv_a_b = sum(cfbdf(0:n)) ! output print *, print *, 'Car B' print '(a5,7i10)', 'n', n print '(a5,7f10.3)', 'r', r print '(a5,7i10)', 'k', i(0:n) print '(7a10,a5)', dash,dash,dash,dash,dash,dash,dash,'-----' print '(a5,7f10.3)', 'cf', cf(0:n) print '(a5,7f10.3)', 'df', df(0:n) print '(a5,7f10.3)', 'cfdf', cfdf(0:n) print '(7a10,a5)', dash,dash,dash,dash,dash,dash,dash,'-----' print '(a5,7f10.3)', 'pv', pv print *, print '(a20,7f10.3)', 'annual worth', a_b print *, print *, 'verification of accounts' print '(7a10,a5)', dash,dash,dash,dash,dash,dash,dash,'-----' print '(a5,7f10.3)', 'cf', cfb(0:n) print '(a5,7f10.3)', 'df', df(0:n) print '(a5,7f10.3)', 'cfdf', cfbdf(0:n) print '(7a10,a5)', dash,dash,dash,dash,dash,dash,dash,'-----' print '(a5,7f10.3)', 'pv', pv_a_b stop end