Research Article

SPOT: A DSL for Extending Fortran Programs with Metaprogramming

Table 2

SPOT functions for using openMP directives and APIs.

SPOT constructsOpenMP directive & APIType

OmpUseDirective(<startStmt>, <endStmt>, <clauses>)
OmpUseDirective(<targetStmt>, <clauses>)
PARALLEL, PARALLEL DO, DO, ORDERED, SECTIONS, WORKSHARE, SINGLE, TASK, MASTER, CRITICALPair directives

OmpUseDirectiveBefore(<targetStmt>, <clauses>)
OmpUseDirectiveAfter(<targetStmt>, <clauses>)
ATOMIC, BARRIER, SCHEDULE, TASKWAIT, FLUSH, THREADPRIVATESingle directives

OmpGetEnvironmentVariable(<var>)
OmpSetEnvironmentVariable(<var>)
OmpUnsetEnvironmentVariable(<var>)
OmpDestroyEnvironmentVariable(<var>)
OmpTestEnvironmentVariable(<var>)
OmpInitEnvironmentVariable(<var>)
OmpInFinal(<var>)
OMP_SET_NUM_THREADS
OMP_GET_NUM_THREADS
OMP_GET_THREAD_NUM
OMP_SET_DYNAMIC
OMP_GET_DYNAMIC
Runtime library calls