Research Article

SPOT: A DSL for Extending Fortran Programs with Metaprogramming

Algorithm 3

An example of a simple SPOT program.
(1)   Transformer printResult2File{
(2)  Within (Function fun){
(3)   StatementAssignment  % s=getStatementAssignment (varName);
(4)   AddCallStatement (After, $ s.Statement , SAVE, varName, varName);
(5)      }
(6)   }
(7)   IncludeCode{
(8)      subroutine SAVE(varName, value)
(9)      !code in the subroutine
(10)    end
(11) }