% $Id$
%
% Earth System Modeling Framework
% Copyright (c) 2002-2024, University Corporation for Atmospheric Research,
% Massachusetts Institute of Technology, Geophysical Fluid Dynamics
% Laboratory, University of Michigan, National Centers for Environmental
% Prediction, Los Alamos National Laboratory, Argonne National Laboratory,
% NASA Goddard Space Flight Center.
% Licensed under the University of Illinois-NCSA License.

#ifdef STANDALONE
\documentclass[]{article}

\usepackage{epsf}
\usepackage{html}
\usepackage{times}
\usepackage[T1]{fontenc}

\textwidth 6.5in
\textheight 8.5in
\addtolength{\oddsidemargin}{-.75in}
\newcommand{\mytitle}{\Large {\bf Attribute Fortran Reference}}
\newcommand{\myauthors}{\large {\it Ryan O'Kuinghttons}}
% set a standard paragraph style
\setlength{\parskip}{0pt}
\setlength{\parindent}{0pt}
\setlength{\baselineskip}{11pt}
% these are temporary patches until something more
% permanent is done to the protex script.
\newlength{\oldparskip}
\newlength{\oldparindent}
\newlength{\oldbaselineskip}
#endif

#ifdef STANDALONE
\begin{document}
#endif

\bodytext{BGCOLOR=white LINK=#083194 VLINK=#21004A}

#ifdef STANDALONE
% Title page
\input{../../../doc/title_alldoc}

\newpage
\tableofcontents

\newpage
\setlength{\parskip}{1.5ex}

#endif

\section{Appendix D:  Attribute Class Legacy API}
\label{appendix_attribute_legacy_api}

Documentation for the legacy \texttt{ESMF\_Attribute} Class. It is recommended that users migrate to the \texttt{ESMF\_Info} class (see section \ref{esmf_info_class}).\newline

Notice that a few aspects of the legacy Attribute API have been modified compared to its original implementation. These changes were necessary as a consequence of the changed backend to {\tt ESMF\_Info}:
\begin{itemize}
\item The {\tt ESMF\_AttributeSet()} method now supports setting attributes that were not previously added via {\tt ESMF\_AttributeAdd()}. In other words, the {\tt ESMF\_AttributeAdd()} method has become optional.
\item There are overloads of the {\tt ESMF\_AttributeSet()} and {\tt ESMF\_AttributeGet()} with optional {\tt convention} and {\tt purpose} arguments. Both arguments must either be present or absent. Any other combination is handled as an error condition. For the case that both {\tt convention} and {\tt purpose} arguments are absent, and no Attribute Package is specified, the default JSON key prefix is "/ESMF/General".
\end{itemize}

\subsection{Constants}
#ifdef STANDALONE
\input{Attribute_options}
#elif defined(CONSTITUENT)
\input{../Superstructure/AttributeAPI/doc/Attribute_options}
#endif

\subsection{Class API}
#ifdef STANDALONE
\input{ESMF_Attribute_fapi}
#elif defined(CONSTITUENT)
\input{../Superstructure/AttributeAPI/doc/ESMF_Attribute_fapi}
#endif

#ifdef STANDALONE
\end{document}
#endif
