SPOT: A DSL for Extending Fortran Programs with Metaprogramming. (17th December 2014)