Source: http://monoceros.physics.muni.cz/~jancely/NM/Texty/Fortran/fortran90.pdf