Watcom fortran compiler download:  http://downloads.openwatcom.org/ftp/

Compact Fortran 77 tutorial:  http://www.stanford.edu/class/me200c/tutorial_77/

Subroutines used in sample programs:
  1. Cnset.for: implemements Crank-Nicholson finite difference algorithm for solving valuation pde in single state variable and time  (cnset.for)
  2. Adiset.for: implements alternating direction implicit finite difference algorithm for solving valuation pde in two state variable and time (adiset.for)
  3. BivNorm.for: computes univariate and bivariate normal cumulative distribution functions (BivNorm.for)
  4. NcdfInv.for: computes inverse of normal distribution function (NCDFInv.for)
  5. Intrp1.for: cubic interpolation within a one dimensional uniform vector of values (INTRP1.FOR)
  6. Intrp2.for: bicubic interpolation within a two dimensional uniform grid of values (INTRP2.FOR)
Sample programs (in Fortran77):
samp1.forsamp1.exe : values European put option using Crank-Nicholson algorithm

bscall.forbscall.exe   : values European and American puts & calls under Black-Scholes assumption
samp2.forsamp2.exe :  determine par coupon rates  on bonds using JJ model and ADI algorithm (two factor)

samp3.for , samp3.exe :  Monte Carlo valuation on fixed grid of European put option (one factor trinomial tree)

samp4.for , samp4.exe :  Monte Carlo valuation of NASDAQ 100 linked bond issued by World Bank (lognormals generated)