fortran90 algorithms