Source: http://www.math.u-bordeaux1.fr/~lmieusse/PAGE_WEB/ENSEIGNEMENT/correction_tp_f90.pdf