Modern Fortran Explained (Numerical Mathematics and Scientific Computation)