
\section{Schedule} 


\parskip = 0pt


\noindent This section lists all the variables which are assigned storage by thorn CactusUtils/NaNChecker.  Storage can either last for the duration of the run ({\bf Always} means that if this thorn is activated storage will be assigned, {\bf Conditional} means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.


\subsection*{Storage}

\hspace{5mm}

 \begin{tabular*}{160mm}{ll} 

{\bf Always:}& {\bf Conditional:} \\ 
 NaNmask NaNsFound &  TestGF\\ 
~ & ~\\ 
\end{tabular*} 


\subsection*{Scheduled Functions}
\vspace{5mm}

\noindent {\bf CCTK\_BASEGRID} 

\hspace{5mm} nanchecker\_resetcounter 

\hspace{5mm}{\it reset the nanchecker::nansfound counter } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Options:  & global \\ 
~ & Type:  & function \\ 
~ & Writes:  & nanchecker::nansfound(everywhere) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_PRESTEP} 

\hspace{5mm} nanchecker\_resetcounter 

\hspace{5mm}{\it reset the nanchecker::nansfound counter } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Options:  & global \\ 
~ & Type:  & function \\ 
~ & Writes:  & nanchecker::nansfound(everywhere) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf NaNChecker\_NaNCheck} 

\hspace{5mm} nanchecker\_nancheck\_prepare 

\hspace{5mm}{\it prepare data structures to check for nans } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Options:  & level \\ 
~ & Type:  & function \\ 
~ & Writes:  & nanchecker::nanmask(everywhere) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_POSTSTEP} 

\hspace{5mm} nanchecker\_nancheck 

\hspace{5mm}{\it check for nans and count them in nanchecker::nansfound } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf NaNChecker\_NaNCheck} 

\hspace{5mm} nanchecker\_nancheck\_check 

\hspace{5mm}{\it check for nans } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & nanchecker\_nancheck\_prepare \\ 
~ & Language:  & c \\ 
~ & Options:  & local \\ 
~ & Type:  & function \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf NaNChecker\_NaNCheck} 

\hspace{5mm} nanchecker\_nancheck\_finish 

\hspace{5mm}{\it count nans in nanchecker::nansfound } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & nanchecker\_nancheck\_check \\ 
~ & Language:  & c \\ 
~ & Options:  & level \\ 
~ & Type:  & function \\ 
~ & Writes:  & nanchecker::nansfound(everywhere) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_POSTSTEP} 

\hspace{5mm} nanchecker\_takeaction 

\hspace{5mm}{\it output nanchecker::nanmask and take action according to nanchecker::action\_if\_found } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & zzz\_nanchecker\_nancheck \\ 
~ & Language:  & c \\ 
~ & Options:  & global \\ 
~& ~ &loop-level\\ 
~ & Reads:  & nanchecker::nansfound(everywhere) \\ 
~ & Type:  & function \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_POST\_RECOVER\_VARIABLES} 

\hspace{5mm} nanchecker\_nancheck 

\hspace{5mm}{\it check for nans and count them in nanchecker::nansfound } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_POST\_RECOVER\_VARIABLES} 

\hspace{5mm} nanchecker\_takeaction 

\hspace{5mm}{\it output nanchecker::nanmask and take action according to nanchecker::action\_if\_found } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & zzz\_nanchecker\_nancheck \\ 
~ & Language:  & c \\ 
~ & Options:  & global \\ 
~& ~ &loop-level\\ 
~ & Reads:  & nanchecker::nansfound(everywhere) \\ 
~ & Type:  & function \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_INITIAL}   (conditional) 

\hspace{5mm} nanchecker\_setuptest 

\hspace{5mm}{\it set test grid function to nan } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Type:  & function \\ 
\end{tabular*} 


\subsection*{Aliased Functions}

\hspace{5mm}

 \begin{tabular*}{160mm}{ll} 

{\bf Alias Name:} ~~~~~~~ & {\bf Function Name:} \\ 
NaNChecker\_NaNCheck & zzz\_NaNChecker\_NaNCheck \\ 
\end{tabular*} 



\vspace{5mm}\parskip = 10pt 
