%mct API Specification
% J.W. Larson / MCS, Argonne National Laboratory
% R.L. Jacob
% First Version Begun 8/28/00
%
%
\documentclass{article}
\usepackage{epsfig}
\usepackage{graphicx}
%\usepackage{fancyheadings}

% Keep these dimensions

\textheight     9in \topmargin      0pt \headsep        22pt
\headheight     0pt

\textwidth      6in \oddsidemargin  0in \evensidemargin 0in

\marginparpush  0pt \pagestyle{plain}

\setlength{\hoffset}{0.25in}

% Headings
% --------
\pagestyle{plain}  % AFTER redefining \textheight etc.

%  \lhead[]{{\em NGC Design Document}}   % left part of header
%  \chead[]{}                  % center part of header
%  \rhead[]{\em {\today}}  % right part of header

 % \cfoot{\roman{page}}
  %\lfoot[]{}      % left part of footer
 % \rfoot[]{}      % right part of footer
 % \headrulewidth 0pt      % if you don't want a rule under the header
 % \footrulewidth 0pt      % if you don't want a rule above the footer

%......................................................................
%.............begin document.............

\begin{document}

\begin{sloppypar}
{\huge\bf
%%%
%%% Enter your title below (after deleting mine)
%%%
The Model Coupling Toolkit API Reference Manual: MCT v. 2.11
\\ }                     %%% IMPORTANT: Keep this \\ before the }
\end{sloppypar}

%%%
%%% Author names and affiliations go below, follow example
%%%
\vspace{.3in}
\noindent R.~L.~Jacob\\
J.~W.~Larson\\
E.~Ong\\
R.~Loy\\
\vspace{.2in} {\em Mathematics and Computer Science Division,
Argonne National Laboratory\\}

\vfill

%%%
%%% These lines are standard - keep them!
%%% Edit the ``has not been published'' as appropriated.
{\em This paper has not been published and should  be regarded as
an Internal Report from MCS. Permission to quote from this
Technical Note should be  obtained from the MCS Division of
Argonne National Laboratory.}

\vspace{0.4in}


\thispagestyle{empty}
\newpage

%.......................... END FIRST PAGE ......................

\pagenumbering{roman}

%......................... REVISION HISTORY ..........................

\newpage
\setcounter{page}{2}     %%%% Revision History starts at page ii

\addcontentsline{toc}{part}{Revision History}

\vspace*{\fill}

\centerline{\huge\bf Revision History}

\bigskip
\noindent{This Technical Note was produced for the Scientific
Discovery through Advanced Computing (SciDAC) project.}

\begin{center}
\begin{tabular}{|l|l|l|l|}\hline
{\bf Version} & {\bf Version} & {\bf Pages Affected/}   & {\bf Aproval}\\
{\bf Number}  & {\bf Date}    & {\bf Extent of Changes} & {\bf Authority}\\
\hline
\hline
Version 1$\beta$ & December 13, 2000      & First draft (before review) &
\\\hline
Version 1$\beta2$ & February 16, 2001      & Add more routines &
\\\hline
Version 1$\beta3$ & June 6, 2001      & Convert to pure API's doc &
\\\hline
Version 1$\beta4$ & Apr 24, 2002      & Update with latest source &
\\\hline
Version 1.0 & Nov 14, 2002      & 1.0 Version &
\\\hline
Version 2.0.0 & Apr 23, 2004      & 2.0.0 Version &
\\\hline
Version 2.0.1 & May 18, 2004      & 2.0.1 Version &
\\\hline
Version 2.1.0 & Feb 11, 2005      & 2.1.0 Version &
\\\hline
Version 2.2.0 & Dec 01, 2005      & 2.2.0 Version &
\\\hline
Version 2.2.1 & Apr 22, 2006      & 2.2.1 Version &
\\\hline
Version 2.2.2 & Sep 08, 2006      & 2.2.2 Version &
\\\hline
Version 2.2.3 & Oct 16, 2006      & 2.2.3 Version &
\\\hline
Version 2.3.0 & Jan 10, 2007      & 2.3.0 Version &
\\\hline
Version 2.4.0 & Aug 17, 2007      & 2.4.0 Version &
\\\hline
Version 2.4.1 & Nov 21, 2007      & 2.4.1 Version &
\\\hline
Version 2.5.0 & Jan 28, 2008      & 2.5.0 Version &
\\\hline
Version 2.5.1 & May 20, 2008      & 2.5.1 Version &
\\\hline
Version 2.6.0 & Mar 05, 2009      & 2.6.0 Version &
\\\hline
Version 2.7.0 & Jan 05, 2010      & 2.7.0 Version &
\\\hline
Version 2.7.1 & Feb 28, 2010      & 2.7.1 Version &
\\\hline
Version 2.7.2 & Nov 30, 2010      & 2.7.2 Version &
\\\hline
Version 2.7.3 & Jan 25, 2011      & 2.7.3 Version &
\\\hline
Version 2.7.4 & Mar 07, 2012      & 2.7.4 Version &
\\\hline
Version 2.8.0 & Apr 30, 2012      & 2.8.0 Version &
\\\hline
Version 2.8.1 & Jul 05, 2012      & 2.8.1 Version &
\\\hline
Version 2.8.2 & Sep 12, 2012      & 2.8.2 Version &
\\\hline
Version 2.8.3 & Dec 17, 2012      & 2.8.3 Version &
\\\hline
Version 2.9.0 & Jun 19, 2015      & 2.9.0 Version &
\\\hline
Version 2.10.0 & Apr 19, 2018      & 2.10.0 Version &
\\\hline
Version 2.11.0 & Feb 11, 2021      & 2.11.0 Version &
\\\hline
\end{tabular}
\end{center}

\vspace*{\fill}


%..........................  ABSTRACT ..................................
\newpage
\setcounter{page}{3}     %%%% abstract starts at page iii
\addcontentsline{toc}{part}{Preface}

\vspace*{\fill}

This document describes the Application Program Interfaces (APIs)
for the Model Coupling Toolkit (MCT).

For functions that take a Fortran90 {\tt real} argument, either a scalar or
a vector, MCT provides both double and single precision versions.  Only
the single precision version are described here denoted by SP.  The double precision versions
are otherwise identical.

\vspace*{\fill}
\newpage

\tableofcontents
\newpage

% Switch page numbering to arabic numerals

\pagenumbering{arabic}

\part{Basic API's and associated communication routines}
%
\section{MCTWorld}
\input{texsrc/m_MCTWorld}
\vspace*{\fill}
\newpage
%
%
\section{The Attribute Vector}
\input{texsrc/m_AttrVect}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_AttrVectComms}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_AttrVectReduce}
\vspace*{\fill}
\newpage
%
%
\section{Global Segment Map}
\input{texsrc/m_GlobalSegMap}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_GlobalSegMapComms}
\vspace*{\fill}
\newpage
%
%
\section{The Router}
\input{texsrc/m_Router}
\vspace*{\fill}
\newpage
%
%
\section{The General Grid}
\input{texsrc/m_GeneralGrid}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_GeneralGridComms}
\vspace*{\fill}
\newpage
%
%
\section{The Navigator}
\input{texsrc/m_Navigator}
\vspace*{\fill}
\newpage
%
%
\section{The Global Map}
\input{texsrc/m_GlobalMap}
\vspace*{\fill}
\newpage
%
%
\part{High Level API's}
%
\section{Sending and Receiving Attribute Vectors}
\input{texsrc/m_Transfer}
\vspace*{\fill}
\newpage
%
\section{Rearranging Attribute Vectors}
\input{texsrc/m_Rearranger}
\vspace*{\fill}
\newpage
%
\section{Sprase Matrix Support}
\input{texsrc/m_SparseMatrix}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_SparseMatrixComms}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_SparseMatrixDecomp}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_SparseMatrixToMaps}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_SparseMatrixPlus}
\vspace*{\fill}
\newpage
%
%
\section{Matrix Vector Multiplication}
\input{texsrc/m_MatAttrVectMul}
\vspace*{\fill}
\newpage
%
\section{Spatial Integration and Averaging}
\input{texsrc/m_SpatialIntegral}
\vspace*{\fill}
\newpage
\input{texsrc/m_SpatialIntegralV}
\vspace*{\fill}
\newpage
%
\section{Merging of Flux and State Data from Multiple Sources}
\input{texsrc/m_Merge}
\vspace*{\fill}
\newpage
%
\section{Time Averaging}
\input{texsrc/m_Accumulator}
\vspace*{\fill}
\newpage
%
\input{texsrc/m_AccumulatorComms}
\vspace*{\fill}
\newpage
%
\section{Global To Local Index Translation}
\input{texsrc/m_GlobalToLocal}
\vspace*{\fill}
\newpage
%
\section{Convert From Global Map To Global Segment Map}
\input{texsrc/m_ConvertMaps}
\vspace*{\fill}
\newpage

\part{Documentation of MPEU Datatypes Used to Define MCT Datatypes}
%
\section{The String Datatype}
\input{texsrc/m_String}
\vspace*{\fill}
\newpage
%
\section{The List Datatype}
\input{texsrc/m_List}
\vspace*{\fill}
\newpage

%\addcontentsline{toc}{part}{References}

%\bibliographystyle{apalike}   % for BibTeX - uses [Name, year] method??

%\bibliography{coupler}
\end{document}
