\hypertarget{namespacegeneric__tracer}{}\doxysection{generic\+\_\+tracer Module Reference}
\label{namespacegeneric__tracer}\index{generic\_tracer@{generic\_tracer}}


\doxysubsection{Detailed Description}
A non-\/functioning template of the G\+F\+DL ocean B\+GC. \doxysubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespacegeneric__tracer_a29c7268567c339801281c3375a37e4a5}\label{namespacegeneric__tracer_a29c7268567c339801281c3375a37e4a5}} 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_a29c7268567c339801281c3375a37e4a5}{generic\+\_\+tracer\+\_\+register}}
\begin{DoxyCompactList}\small\item\em Unknown. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_ae9ad6672ffd07f3f26ae73a163ea1230}{generic\+\_\+tracer\+\_\+init}} (isc, iec, jsc, jec, isd, ied, jsd, jed, nk, ntau, axes, grid\+\_\+tmask, grid\+\_\+kmt, init\+\_\+time)
\begin{DoxyCompactList}\small\item\em Initialize generic tracers. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacegeneric__tracer_abdec9507af8b8a75921d73d054257679}\label{namespacegeneric__tracer_abdec9507af8b8a75921d73d054257679}} 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_abdec9507af8b8a75921d73d054257679}{generic\+\_\+tracer\+\_\+register\+\_\+diag}}
\begin{DoxyCompactList}\small\item\em Unknown. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_aa41848bdcd848b7d7208a7705b0723f5}{generic\+\_\+tracer\+\_\+coupler\+\_\+get}} (I\+O\+B\+\_\+struc)
\begin{DoxyCompactList}\small\item\em Get coupler values. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_ab3cfaa56cbb3c2bb392bebf5ce3c9ec0}{generic\+\_\+tracer\+\_\+coupler\+\_\+accumulate}} (I\+O\+B\+\_\+struc, weight, model\+\_\+time)
\begin{DoxyCompactList}\small\item\em Unknown. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_a752abe55f4e7fb90134896556b711c10}{generic\+\_\+tracer\+\_\+source}} (Temp, Salt, rho\+\_\+dzt, dzt, hblt\+\_\+depth, ilb, jlb, tau, dtts, grid\+\_\+dat, model\+\_\+time, nbands, max\+\_\+wavelength\+\_\+band, sw\+\_\+pen\+\_\+band, opacity\+\_\+band, internal\+\_\+heat, frunoff, grid\+\_\+ht, current\+\_\+wave\+\_\+stress, sosga)
\begin{DoxyCompactList}\small\item\em Calls the corresponding generic\+\_\+\+X\+\_\+update\+\_\+from\+\_\+source routine for each package X. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_a74679acd2d7b2b006900f0d6e5584bb7}{generic\+\_\+tracer\+\_\+update\+\_\+from\+\_\+bottom}} (dt, tau, model\+\_\+time)
\begin{DoxyCompactList}\small\item\em Update the tracers from bottom fluxes. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_aa0cf9cc151b857c3313957e32cb85f72}{generic\+\_\+tracer\+\_\+vertdiff\+\_\+g}} (h\+\_\+old, ea, eb, dt, kg\+\_\+m2\+\_\+to\+\_\+H, m\+\_\+to\+\_\+H, tau)
\begin{DoxyCompactList}\small\item\em Vertically diffuse all generic tracers for G\+O\+LD ocean. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_a76c375331a5787575737c6b91f8024e9}{generic\+\_\+tracer\+\_\+coupler\+\_\+set}} (I\+O\+B\+\_\+struc, ST, SS, rho, ilb, jlb, tau, dzt, sosga, model\+\_\+time)
\begin{DoxyCompactList}\small\item\em Set the coupler values for each generic tracer. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{namespacegeneric__tracer_a81bba8a3ea0c6581484c70665e95cdd4}\label{namespacegeneric__tracer_a81bba8a3ea0c6581484c70665e95cdd4}} 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_a81bba8a3ea0c6581484c70665e95cdd4}{generic\+\_\+tracer\+\_\+end}}
\begin{DoxyCompactList}\small\item\em End this module by calling the corresponding generic\+\_\+\+X\+\_\+end for each package X. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_ab92cb555f11c63921d3b05861c23fa36}{generic\+\_\+tracer\+\_\+get\+\_\+list}} (list)
\begin{DoxyCompactList}\small\item\em Get a pointer to the head of the generic tracers list. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacegeneric__tracer_aeb6ba5588738dccffb961f3628d6e3d6}{generic\+\_\+tracer\+\_\+get\+\_\+diag\+\_\+list}} (list)
\begin{DoxyCompactList}\small\item\em Unknown. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{namespacegeneric__tracer_a49bbe3ee394c519c8cc857a067274370}\label{namespacegeneric__tracer_a49bbe3ee394c519c8cc857a067274370}} 
logical, public \mbox{\hyperlink{namespacegeneric__tracer_a49bbe3ee394c519c8cc857a067274370}{do\+\_\+generic\+\_\+tracer}} = .true.
\begin{DoxyCompactList}\small\item\em Turn on generic tracers (note dangerous use of module data) \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacegeneric__tracer_ab3cfaa56cbb3c2bb392bebf5ce3c9ec0}\label{namespacegeneric__tracer_ab3cfaa56cbb3c2bb392bebf5ce3c9ec0}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_coupler\_accumulate@{generic\_tracer\_coupler\_accumulate}}
\index{generic\_tracer\_coupler\_accumulate@{generic\_tracer\_coupler\_accumulate}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_coupler\_accumulate()}{generic\_tracer\_coupler\_accumulate()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+coupler\+\_\+accumulate (\begin{DoxyParamCaption}\item[{type(coupler\+\_\+2d\+\_\+bc\+\_\+type), intent(in)}]{I\+O\+B\+\_\+struc,  }\item[{real, intent(in)}]{weight,  }\item[{type(time\+\_\+type), intent(in), optional}]{model\+\_\+time }\end{DoxyParamCaption})}



Unknown. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em iob\+\_\+struc} & Ice Ocean Boundary flux structure \\
\hline
\mbox{\texttt{ in}}  & {\em weight} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em model\+\_\+time} & Time \\
\hline
\end{DoxyParams}


Definition at line 62 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{63     \textcolor{keywordtype}{type}(coupler\_2d\_bc\_type), \textcolor{keywordtype}{intent(in)} :: IOB\_struc\textcolor{comment}{ !< Ice Ocean Boundary flux structure}}
\DoxyCodeLine{64 \textcolor{keywordtype}{    real},                     \textcolor{keywordtype}{intent(in)} :: weight\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{65     \textcolor{keywordtype}{type}(time\_type), \textcolor{keywordtype}{optional},\textcolor{keywordtype}{intent(in)} :: model\_time\textcolor{comment}{ !< Time}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_aa41848bdcd848b7d7208a7705b0723f5}\label{namespacegeneric__tracer_aa41848bdcd848b7d7208a7705b0723f5}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_coupler\_get@{generic\_tracer\_coupler\_get}}
\index{generic\_tracer\_coupler\_get@{generic\_tracer\_coupler\_get}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_coupler\_get()}{generic\_tracer\_coupler\_get()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+coupler\+\_\+get (\begin{DoxyParamCaption}\item[{type(coupler\+\_\+2d\+\_\+bc\+\_\+type), intent(in)}]{I\+O\+B\+\_\+struc }\end{DoxyParamCaption})}



Get coupler values. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em iob\+\_\+struc} & Ice Ocean Boundary flux structure \\
\hline
\end{DoxyParams}


Definition at line 57 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{58     \textcolor{keywordtype}{type}(coupler\_2d\_bc\_type), \textcolor{keywordtype}{intent(in)} :: IOB\_struc\textcolor{comment}{ !< Ice Ocean Boundary flux structure}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_a76c375331a5787575737c6b91f8024e9}\label{namespacegeneric__tracer_a76c375331a5787575737c6b91f8024e9}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_coupler\_set@{generic\_tracer\_coupler\_set}}
\index{generic\_tracer\_coupler\_set@{generic\_tracer\_coupler\_set}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_coupler\_set()}{generic\_tracer\_coupler\_set()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+coupler\+\_\+set (\begin{DoxyParamCaption}\item[{type(coupler\+\_\+2d\+\_\+bc\+\_\+type), intent(inout)}]{I\+O\+B\+\_\+struc,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in)}]{ST,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in)}]{SS,  }\item[{real, dimension(ilb\+:,jlb\+:,\+:,\+:), intent(in)}]{rho,  }\item[{integer, intent(in)}]{ilb,  }\item[{integer, intent(in)}]{jlb,  }\item[{integer, intent(in)}]{tau,  }\item[{real, dimension(ilb\+:,jlb\+:,\+:), intent(in), optional}]{dzt,  }\item[{real, intent(in), optional}]{sosga,  }\item[{type(time\+\_\+type), intent(in), optional}]{model\+\_\+time }\end{DoxyParamCaption})}



Set the coupler values for each generic tracer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em iob\+\_\+struc} & Ice Ocean Boundary flux structure \\
\hline
\mbox{\texttt{ in}}  & {\em ilb} & Lower bounds of x extent of input arrays on data domain \\
\hline
\mbox{\texttt{ in}}  & {\em jlb} & Lower bounds of y extent of input arrays on data domain \\
\hline
\mbox{\texttt{ in}}  & {\em tau} & Time step index of field \\
\hline
\mbox{\texttt{ in}}  & {\em st} & Sea surface temperature \mbox{[}deg C\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em ss} & Sea surface salinity \mbox{[}psu\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em rho} & Ocean density \mbox{[}kg m-\/3\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em dzt} & Layer thickness \mbox{[}m\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em sosga} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em model\+\_\+time} & Time \\
\hline
\end{DoxyParams}


Definition at line 113 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{114     \textcolor{keywordtype}{type}(coupler\_2d\_bc\_type), \textcolor{keywordtype}{intent(inout)} :: IOB\_struc\textcolor{comment}{ !< Ice Ocean Boundary flux structure}}
\DoxyCodeLine{115     \textcolor{keywordtype}{integer},                     \textcolor{keywordtype}{intent(in)} :: ilb\textcolor{comment}{ !< Lower bounds of x extent of input arrays on data domain}}
\DoxyCodeLine{116     \textcolor{keywordtype}{integer},                     \textcolor{keywordtype}{intent(in)} :: jlb\textcolor{comment}{ !< Lower bounds of y extent of input arrays on data domain}}
\DoxyCodeLine{117     \textcolor{keywordtype}{integer},                     \textcolor{keywordtype}{intent(in)} :: tau\textcolor{comment}{ !< Time step index of \%field}}
\DoxyCodeLine{118 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},  \textcolor{keywordtype}{intent(in)} :: ST\textcolor{comment}{ !< Sea surface temperature [deg C]}}
\DoxyCodeLine{119 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},  \textcolor{keywordtype}{intent(in)} :: SS\textcolor{comment}{ !< Sea surface salinity [psu]}}
\DoxyCodeLine{120 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:,:,:)}, \textcolor{keywordtype}{intent(in)} :: rho\textcolor{comment}{ !< Ocean density [kg m-\/3]}}
\DoxyCodeLine{121 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:,:)}, \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: dzt\textcolor{comment}{ !< Layer thickness [m]}}
\DoxyCodeLine{122 \textcolor{keywordtype}{    real},           \textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: sosga\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{123     \textcolor{keywordtype}{type}(time\_type),\textcolor{keywordtype}{optional}, \textcolor{keywordtype}{intent(in)} :: model\_time\textcolor{comment}{ !< Time}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_aeb6ba5588738dccffb961f3628d6e3d6}\label{namespacegeneric__tracer_aeb6ba5588738dccffb961f3628d6e3d6}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_get\_diag\_list@{generic\_tracer\_get\_diag\_list}}
\index{generic\_tracer\_get\_diag\_list@{generic\_tracer\_get\_diag\_list}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_get\_diag\_list()}{generic\_tracer\_get\_diag\_list()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+get\+\_\+diag\+\_\+list (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structg__tracer__utils_1_1g__diag__type}{g\+\_\+diag\+\_\+type}}), pointer}]{list }\end{DoxyParamCaption})}



Unknown. 


\begin{DoxyParams}{Parameters}
{\em list} & Pointer to head of the linked list \\
\hline
\end{DoxyParams}


Definition at line 136 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{137     \textcolor{keywordtype}{type}(g\_diag\_type),    \textcolor{keywordtype}{pointer}    :: list\textcolor{comment}{ !< Pointer to head of the linked list}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_ab92cb555f11c63921d3b05861c23fa36}\label{namespacegeneric__tracer_ab92cb555f11c63921d3b05861c23fa36}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_get\_list@{generic\_tracer\_get\_list}}
\index{generic\_tracer\_get\_list@{generic\_tracer\_get\_list}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_get\_list()}{generic\_tracer\_get\_list()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+get\+\_\+list (\begin{DoxyParamCaption}\item[{type(\mbox{\hyperlink{structg__tracer__utils_1_1g__tracer__type}{g\+\_\+tracer\+\_\+type}}), pointer}]{list }\end{DoxyParamCaption})}



Get a pointer to the head of the generic tracers list. 


\begin{DoxyParams}{Parameters}
{\em list} & Pointer to head of the linked list \\
\hline
\end{DoxyParams}


Definition at line 131 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{132     \textcolor{keywordtype}{type}(g\_tracer\_type),    \textcolor{keywordtype}{pointer}    :: list\textcolor{comment}{ !< Pointer to head of the linked list}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_ae9ad6672ffd07f3f26ae73a163ea1230}\label{namespacegeneric__tracer_ae9ad6672ffd07f3f26ae73a163ea1230}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_init@{generic\_tracer\_init}}
\index{generic\_tracer\_init@{generic\_tracer\_init}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_init()}{generic\_tracer\_init()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+init (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{isc,  }\item[{integer, intent(in)}]{iec,  }\item[{integer, intent(in)}]{jsc,  }\item[{integer, intent(in)}]{jec,  }\item[{integer, intent(in)}]{isd,  }\item[{integer, intent(in)}]{ied,  }\item[{integer, intent(in)}]{jsd,  }\item[{integer, intent(in)}]{jed,  }\item[{integer, intent(in)}]{nk,  }\item[{integer, intent(in)}]{ntau,  }\item[{integer, dimension(3), intent(in)}]{axes,  }\item[{real, dimension(\+:,\+:,\+:), intent(in), target}]{grid\+\_\+tmask,  }\item[{integer, dimension(\+:,\+:), intent(in)}]{grid\+\_\+kmt,  }\item[{type(time\+\_\+type), intent(in)}]{init\+\_\+time }\end{DoxyParamCaption})}



Initialize generic tracers. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em isc} & Computation start index in i direction \\
\hline
\mbox{\texttt{ in}}  & {\em iec} & Computation end index in i direction \\
\hline
\mbox{\texttt{ in}}  & {\em jsc} & Computation start index in j direction \\
\hline
\mbox{\texttt{ in}}  & {\em jec} & Computation end index in j direction \\
\hline
\mbox{\texttt{ in}}  & {\em isd} & Data start index in i direction \\
\hline
\mbox{\texttt{ in}}  & {\em ied} & Data end index in i direction \\
\hline
\mbox{\texttt{ in}}  & {\em jsd} & Data start index in j direction \\
\hline
\mbox{\texttt{ in}}  & {\em jed} & Data end index in j direction \\
\hline
\mbox{\texttt{ in}}  & {\em nk} & Number of levels in k direction \\
\hline
\mbox{\texttt{ in}}  & {\em ntau} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em axes} & Domain axes? \\
\hline
\mbox{\texttt{ in}}  & {\em init\+\_\+time} & Time \\
\hline
\mbox{\texttt{ in}}  & {\em grid\+\_\+tmask} & Mask \\
\hline
\mbox{\texttt{ in}}  & {\em grid\+\_\+kmt} & Number of wet cells in column \\
\hline
\end{DoxyParams}


Definition at line 35 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{36     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: isc\textcolor{comment}{ !< Computation start index in i direction}}
\DoxyCodeLine{37     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: iec\textcolor{comment}{ !< Computation end index in i direction}}
\DoxyCodeLine{38     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: jsc\textcolor{comment}{ !< Computation start index in j direction}}
\DoxyCodeLine{39     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: jec\textcolor{comment}{ !< Computation end index in j direction}}
\DoxyCodeLine{40     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: isd\textcolor{comment}{ !< Data start index in i direction}}
\DoxyCodeLine{41     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: ied\textcolor{comment}{ !< Data end index in i direction}}
\DoxyCodeLine{42     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: jsd\textcolor{comment}{ !< Data start index in j direction}}
\DoxyCodeLine{43     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: jed\textcolor{comment}{ !< Data end index in j direction}}
\DoxyCodeLine{44     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: nk\textcolor{comment}{  !< Number of levels in k direction}}
\DoxyCodeLine{45     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: ntau\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{46     \textcolor{keywordtype}{integer},                       \textcolor{keywordtype}{intent(in)} :: axes(3)\textcolor{comment}{ !< Domain axes?}}
\DoxyCodeLine{47     \textcolor{keywordtype}{type}(time\_type),               \textcolor{keywordtype}{intent(in)} :: init\_time\textcolor{comment}{ !< Time}}
\DoxyCodeLine{48 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(:,:,:)},\textcolor{keywordtype}{target}, \textcolor{keywordtype}{intent(in)} :: grid\_tmask\textcolor{comment}{ !< Mask}}
\DoxyCodeLine{49     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}      , \textcolor{keywordtype}{intent(in)} :: grid\_kmt\textcolor{comment}{ !< Number of wet cells in column}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_a752abe55f4e7fb90134896556b711c10}\label{namespacegeneric__tracer_a752abe55f4e7fb90134896556b711c10}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_source@{generic\_tracer\_source}}
\index{generic\_tracer\_source@{generic\_tracer\_source}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_source()}{generic\_tracer\_source()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+source (\begin{DoxyParamCaption}\item[{real, dimension(ilb\+:,jlb\+:,\+:), intent(in)}]{Temp,  }\item[{real, dimension(ilb\+:,jlb\+:,\+:), intent(in)}]{Salt,  }\item[{real, dimension(ilb\+:,jlb\+:,\+:), intent(in)}]{rho\+\_\+dzt,  }\item[{real, dimension(ilb\+:,jlb\+:,\+:), intent(in)}]{dzt,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in)}]{hblt\+\_\+depth,  }\item[{integer, intent(in)}]{ilb,  }\item[{integer, intent(in)}]{jlb,  }\item[{integer, intent(in)}]{tau,  }\item[{real, intent(in)}]{dtts,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in)}]{grid\+\_\+dat,  }\item[{type(time\+\_\+type), intent(in)}]{model\+\_\+time,  }\item[{integer, intent(in)}]{nbands,  }\item[{real, dimension(\+:), intent(in)}]{max\+\_\+wavelength\+\_\+band,  }\item[{real, dimension(\+:,ilb\+:,jlb\+:), intent(in)}]{sw\+\_\+pen\+\_\+band,  }\item[{real, dimension(\+:,ilb\+:,jlb\+:,\+:), intent(in)}]{opacity\+\_\+band,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in), optional}]{internal\+\_\+heat,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in), optional}]{frunoff,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in), optional}]{grid\+\_\+ht,  }\item[{real, dimension(ilb\+:,jlb\+:), intent(in), optional}]{current\+\_\+wave\+\_\+stress,  }\item[{real, intent(in), optional}]{sosga }\end{DoxyParamCaption})}



Calls the corresponding generic\+\_\+\+X\+\_\+update\+\_\+from\+\_\+source routine for each package X. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em temp} & Potential temperature \mbox{[}deg C\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em salt} & Salinity \mbox{[}psu\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em rho\+\_\+dzt} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em dzt} & Ocean layer thickness \mbox{[}m\mbox{]} \\
\hline
\mbox{\texttt{ in}}  & {\em hblt\+\_\+depth} & Boundary layer depth \\
\hline
\mbox{\texttt{ in}}  & {\em ilb} & Lower bounds of x extent of input arrays on data domain \\
\hline
\mbox{\texttt{ in}}  & {\em jlb} & Lower bounds of y extent of input arrays on data domain \\
\hline
\mbox{\texttt{ in}}  & {\em tau} & Time step index of field \\
\hline
\mbox{\texttt{ in}}  & {\em dtts} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em grid\+\_\+dat} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em model\+\_\+time} & Time \\
\hline
\mbox{\texttt{ in}}  & {\em nbands} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em max\+\_\+wavelength\+\_\+band} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em sw\+\_\+pen\+\_\+band} & Shortwave penetration \\
\hline
\mbox{\texttt{ in}}  & {\em opacity\+\_\+band} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em internal\+\_\+heat} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em frunoff} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em grid\+\_\+ht} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em current\+\_\+wave\+\_\+stress} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em sosga} & Global average sea surface salinity \\
\hline
\end{DoxyParams}


Definition at line 69 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{72 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:,:)},   \textcolor{keywordtype}{intent(in)} :: Temp\textcolor{comment}{ !< Potential temperature [deg C]}}
\DoxyCodeLine{73 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:,:)},   \textcolor{keywordtype}{intent(in)} :: Salt\textcolor{comment}{ !< Salinity [psu]}}
\DoxyCodeLine{74 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:,:)},   \textcolor{keywordtype}{intent(in)} :: rho\_dzt\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{75 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:,:)},   \textcolor{keywordtype}{intent(in)} :: dzt\textcolor{comment}{ !< Ocean layer thickness [m]}}
\DoxyCodeLine{76 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},     \textcolor{keywordtype}{intent(in)} :: hblt\_depth\textcolor{comment}{ !< Boundary layer depth}}
\DoxyCodeLine{77     \textcolor{keywordtype}{integer},                        \textcolor{keywordtype}{intent(in)} :: ilb\textcolor{comment}{ !< Lower bounds of x extent of input arrays on data domain}}
\DoxyCodeLine{78     \textcolor{keywordtype}{integer},                        \textcolor{keywordtype}{intent(in)} :: jlb\textcolor{comment}{ !< Lower bounds of y extent of input arrays on data domain}}
\DoxyCodeLine{79     \textcolor{keywordtype}{integer},                        \textcolor{keywordtype}{intent(in)} :: tau\textcolor{comment}{ !< Time step index of \%field}}
\DoxyCodeLine{80 \textcolor{keywordtype}{    real},                           \textcolor{keywordtype}{intent(in)} :: dtts\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{81 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},     \textcolor{keywordtype}{intent(in)} :: grid\_dat\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{82     \textcolor{keywordtype}{type}(time\_type),                \textcolor{keywordtype}{intent(in)} :: model\_time\textcolor{comment}{ !< Time}}
\DoxyCodeLine{83     \textcolor{keywordtype}{integer},                        \textcolor{keywordtype}{intent(in)} :: nbands\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{84 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(:)},             \textcolor{keywordtype}{intent(in)} :: max\_wavelength\_band\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{85 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(:,ilb:,jlb:)},   \textcolor{keywordtype}{intent(in)} :: sw\_pen\_band\textcolor{comment}{ !< Shortwave penetration}}
\DoxyCodeLine{86 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(:,ilb:,jlb:,:)}, \textcolor{keywordtype}{intent(in)} :: opacity\_band\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{87 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},\textcolor{keywordtype}{optional},  \textcolor{keywordtype}{intent(in)} :: internal\_heat\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{88 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},\textcolor{keywordtype}{optional},  \textcolor{keywordtype}{intent(in)} :: frunoff\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{89 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},\textcolor{keywordtype}{optional},  \textcolor{keywordtype}{intent(in)} :: grid\_ht\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{90 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(ilb:,jlb:)},\textcolor{keywordtype}{optional} , \textcolor{keywordtype}{intent(in)} :: current\_wave\_stress\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{91 \textcolor{keywordtype}{    real},                      \textcolor{keywordtype}{optional} , \textcolor{keywordtype}{intent(in)} :: sosga\textcolor{comment}{ !< Global average sea surface salinity}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_a74679acd2d7b2b006900f0d6e5584bb7}\label{namespacegeneric__tracer_a74679acd2d7b2b006900f0d6e5584bb7}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_update\_from\_bottom@{generic\_tracer\_update\_from\_bottom}}
\index{generic\_tracer\_update\_from\_bottom@{generic\_tracer\_update\_from\_bottom}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_update\_from\_bottom()}{generic\_tracer\_update\_from\_bottom()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+update\+\_\+from\+\_\+bottom (\begin{DoxyParamCaption}\item[{real, intent(in)}]{dt,  }\item[{integer, intent(in)}]{tau,  }\item[{type(time\+\_\+type), intent(in)}]{model\+\_\+time }\end{DoxyParamCaption})}



Update the tracers from bottom fluxes. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em dt} & Time step increment \\
\hline
\mbox{\texttt{ in}}  & {\em tau} & Time step index used for the concentration field \\
\hline
\mbox{\texttt{ in}}  & {\em model\+\_\+time} & Time \\
\hline
\end{DoxyParams}


Definition at line 95 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{96 \textcolor{keywordtype}{    real},            \textcolor{keywordtype}{intent(in)} :: dt\textcolor{comment}{ !< Time step increment}}
\DoxyCodeLine{97     \textcolor{keywordtype}{integer},         \textcolor{keywordtype}{intent(in)} :: tau\textcolor{comment}{ !< Time step index used for the concentration field}}
\DoxyCodeLine{98     \textcolor{keywordtype}{type}(time\_type), \textcolor{keywordtype}{intent(in)} :: model\_time\textcolor{comment}{ !< Time}}

\end{DoxyCode}
\mbox{\Hypertarget{namespacegeneric__tracer_aa0cf9cc151b857c3313957e32cb85f72}\label{namespacegeneric__tracer_aa0cf9cc151b857c3313957e32cb85f72}} 
\index{generic\_tracer@{generic\_tracer}!generic\_tracer\_vertdiff\_g@{generic\_tracer\_vertdiff\_g}}
\index{generic\_tracer\_vertdiff\_g@{generic\_tracer\_vertdiff\_g}!generic\_tracer@{generic\_tracer}}
\doxysubsubsection{\texorpdfstring{generic\_tracer\_vertdiff\_g()}{generic\_tracer\_vertdiff\_g()}}
{\footnotesize\ttfamily subroutine, public generic\+\_\+tracer\+::generic\+\_\+tracer\+\_\+vertdiff\+\_\+g (\begin{DoxyParamCaption}\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{h\+\_\+old,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{ea,  }\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{eb,  }\item[{real, intent(in)}]{dt,  }\item[{real, intent(in)}]{kg\+\_\+m2\+\_\+to\+\_\+H,  }\item[{real, intent(in)}]{m\+\_\+to\+\_\+H,  }\item[{integer, intent(in)}]{tau }\end{DoxyParamCaption})}



Vertically diffuse all generic tracers for G\+O\+LD ocean. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em h\+\_\+old} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em ea} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em eb} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em dt} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em kg\+\_\+m2\+\_\+to\+\_\+h} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em m\+\_\+to\+\_\+h} & Unknown \\
\hline
\mbox{\texttt{ in}}  & {\em tau} & Unknown \\
\hline
\end{DoxyParams}


Definition at line 102 of file generic\+\_\+tracer.\+F90.


\begin{DoxyCode}{0}
\DoxyCodeLine{103 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{intent(in)} :: h\_old\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{104 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{intent(in)} :: ea\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{105 \textcolor{keywordtype}{    real}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{intent(in)} :: eb\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{106 \textcolor{keywordtype}{    real},                   \textcolor{keywordtype}{intent(in)} :: dt\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{107 \textcolor{keywordtype}{    real},                   \textcolor{keywordtype}{intent(in)} :: kg\_m2\_to\_H\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{108 \textcolor{keywordtype}{    real},                   \textcolor{keywordtype}{intent(in)} :: m\_to\_H\textcolor{comment}{ !< Unknown}}
\DoxyCodeLine{109     \textcolor{keywordtype}{integer},                \textcolor{keywordtype}{intent(in)} :: tau\textcolor{comment}{ !< Unknown}}

\end{DoxyCode}
