Research Article

SPOT: A DSL for Extending Fortran Programs with Metaprogramming

Algorithm 14

The checkpointing specifications expressed in SPOT.
(1)Transformer CheckpointingCalculatePI {
(2)Within (Function  CalculatePI){
(3)Statement stmt  =  getStatement(pi = pi + f(x));
(4)StartCheckpointing(After, stmt){
(5)CKPSaveReal (pi);
(7)CKPFrequencey (5);
(8)CKPType(Sequential);
(9)}
(10)  StartInitializating (Before, “do i=1, n){
(11)CKPReadReal (pi);
(13)  }
(14)}
(15)}