Source: http://faolex.fao.org/docs/pdf/alg4598.pdf