source: http://striky.ece.jhu.edu/~sasha/SOFTWARE/FORTRAN/007-3696-005/sgi_html/ch07.html
