\hypertarget{dc__units_8f90}{}\section{dc\+\_\+utils/dc\+\_\+units.f90 File Reference}
\label{dc__units_8f90}\index{dc\+\_\+utils/dc\+\_\+units.\+f90@{dc\+\_\+utils/dc\+\_\+units.\+f90}}
\subsection*{Data Types}
\begin{DoxyCompactItemize}
\item 
type \hyperlink{structdc__units_1_1units}{dc\+\_\+units\+::units}
\item 
interface \hyperlink{interfacedc__units_1_1clear}{dc\+\_\+units\+::clear}
\item 
interface \hyperlink{interfacedc__units_1_1deallocate}{dc\+\_\+units\+::deallocate}
\item 
interface \hyperlink{interfacedc__units_1_1assignment_07_0A_08}{dc\+\_\+units\+::assignment(=)}
\item 
interface \hyperlink{interfacedc__units_1_1operator_07_5_08}{dc\+\_\+units\+::operator($\ast$)}
\item 
interface \hyperlink{interfacedc__units_1_1operator_07_2_08}{dc\+\_\+units\+::operator(/)}
\item 
interface \hyperlink{interfacedc__units_1_1operator_07_09_08}{dc\+\_\+units\+::operator(+)}
\end{DoxyCompactItemize}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
module \hyperlink{namespacedc__units}{dc\+\_\+units}
\end{DoxyCompactItemize}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, private \hyperlink{namespacedc__units_ae5db2bd77e4bc46ffa8487a564fa24ed}{dc\+\_\+units\+::units\+\_\+simplify} (u, name, power)
\item 
type(units) function \hyperlink{namespacedc__units_a2ba52d97e51b399225adeb1f4dfd5088}{dc\+\_\+units\+::dcunitsmul} (u1, u2)
\item 
type(units) function \hyperlink{namespacedc__units_abc18fe119ce0df6d95d43101f84f5508}{dc\+\_\+units\+::dcunitsdiv} (u1, u2)
\item 
type(units) function \hyperlink{namespacedc__units_a43ab6b04459fa03b678c7c8f2c1bf7a8}{dc\+\_\+units\+::dcunitsadd} (u1, u2)
\item 
logical function, public \hyperlink{namespacedc__units_ac0da92106f72e724931c4918550b3dbe}{dc\+\_\+units\+::add\+\_\+okay} (u1, u2)
\item 
subroutine \hyperlink{namespacedc__units_afc1d352b961ae221a87fc7117df796f0}{dc\+\_\+units\+::dcunitsclear} (u)
\item 
subroutine \hyperlink{namespacedc__units_a346e6d85849f26d32a0c4745726c82e8}{dc\+\_\+units\+::dcunitsdeallocate} (u)
\item 
subroutine \hyperlink{namespacedc__units_a5f7f58b7f28e41dfc94c90bad13d6d14}{dc\+\_\+units\+::dcunitstostring} (string, u)
\item 
subroutine \hyperlink{namespacedc__units_a8af45c04838d19612f7d61172d8be264}{dc\+\_\+units\+::dcunitsbuild} (u, cunits)
\item 
subroutine \hyperlink{dc__units_8f90_a5e30ae125a89f9bc82bd203e8e86b290}{cancel\+\_\+exp}
\item 
subroutine \hyperlink{dc__units_8f90_ac6d365a346621db800ca0c8ceea67975}{error}
\item 
subroutine \hyperlink{dc__units_8f90_ab443ffcbfae670820da561bb6908a694}{power\+\_\+next}
\item 
subroutine \hyperlink{dc__units_8f90_ad7599bef030a7217a030b775bb4be90f}{factor\+\_\+next}
\item 
subroutine \hyperlink{dc__units_8f90_a87171df5468ab8a45f9c97700b7cea22}{units\+\_\+finalize}
\item 
subroutine \hyperlink{dc__units_8f90_a7b76779ed3ff42b372defa16b66c134b}{ustack\+\_\+clear}
\item 
subroutine \hyperlink{dc__units_8f90_a05c0d4f177c3db21fc3435905dc439b8}{ustack\+\_\+grow}
\item 
subroutine \hyperlink{dc__units_8f90_a3537cd4cf0e4fbd95cdb1d9aa39dedee}{pstack\+\_\+clear}
\item 
subroutine \hyperlink{dc__units_8f90_a1446d88feff0e9e5f1e27640ebf2c32e}{pstack\+\_\+push}
\item 
subroutine \hyperlink{dc__units_8f90_afb556464c081101d47378560db7783c6}{pstack\+\_\+pop}
\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{dc__units_8f90_a5e30ae125a89f9bc82bd203e8e86b290}\label{dc__units_8f90_a5e30ae125a89f9bc82bd203e8e86b290}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!cancel\+\_\+exp@{cancel\+\_\+exp}}
\index{cancel\+\_\+exp@{cancel\+\_\+exp}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{cancel\+\_\+exp()}{cancel\_exp()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::cancel\+\_\+exp (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Definition at line 411 of file dc\+\_\+units.\+f90.



Referenced by dc\+\_\+units\+::dcunitsbuild().


\begin{DoxyCode}
411       print *, \textcolor{keyword}{operator}\textcolor{stringliteral}{"DCUnitsBuild: syntax error, (**) ignored"}
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=293pt]{dc__units_8f90_a5e30ae125a89f9bc82bd203e8e86b290_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_ac6d365a346621db800ca0c8ceea67975}\label{dc__units_8f90_ac6d365a346621db800ca0c8ceea67975}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!error@{error}}
\index{error@{error}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{error()}{error()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::error (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 415 of file dc\+\_\+units.\+f90.



Referenced by dc\+\_\+units\+::dcunitsbuild().


\begin{DoxyCode}
415       print *, \textcolor{stringliteral}{"DCUnitsBuild: unexpected token <"}, &
416         & trim(cvalue), \textcolor{stringliteral}{"> ignored"}
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=263pt]{dc__units_8f90_ac6d365a346621db800ca0c8ceea67975_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_ad7599bef030a7217a030b775bb4be90f}\label{dc__units_8f90_ad7599bef030a7217a030b775bb4be90f}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!factor\+\_\+next@{factor\+\_\+next}}
\index{factor\+\_\+next@{factor\+\_\+next}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{factor\+\_\+next()}{factor\_next()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::factor\+\_\+next (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 426 of file dc\+\_\+units.\+f90.



References power\+\_\+next().



Referenced by dc\+\_\+units\+::dcunitsbuild(), and units\+\_\+finalize().


\begin{DoxyCode}
426       \textcolor{comment}{! factor\_exp の終了処理}
427       \textcolor{keywordtype}{real(DP)}:: factor
428       i = pstack(pi)%factor\_exp
429       factor = product(ustack(i:ui)%factor) * pstack(pi)%factor
430       \textcolor{keywordflow}{if} (pstack(pi)%factor\_inv) \textcolor{keywordflow}{then}
431         ustack(i:ui)%power = -ustack(i:ui)%power
432         factor = 1.0\_dp / factor
433 \textcolor{keywordflow}{      endif}
434       ustack(i)%factor = factor
435       ustack(i+1:ui)%factor = 1.0\_dp
436       \textcolor{keyword}{call }\hyperlink{dc__units_8f90_ab443ffcbfae670820da561bb6908a694}{power\_next}
437       pstack(pi)%factor = 1.0\_dp
438       pstack(pi)%factor\_exp = ui
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_ad7599bef030a7217a030b775bb4be90f_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_ad7599bef030a7217a030b775bb4be90f_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_ab443ffcbfae670820da561bb6908a694}\label{dc__units_8f90_ab443ffcbfae670820da561bb6908a694}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!power\+\_\+next@{power\+\_\+next}}
\index{power\+\_\+next@{power\+\_\+next}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{power\+\_\+next()}{power\_next()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::power\+\_\+next (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 420 of file dc\+\_\+units.\+f90.



References ustack\+\_\+grow().



Referenced by dc\+\_\+units\+::dcunitsbuild(), factor\+\_\+next(), and pstack\+\_\+pop().


\begin{DoxyCode}
420       \textcolor{comment}{! power\_exp の終了処理}
421       \textcolor{keyword}{call }\hyperlink{dc__units_8f90_a05c0d4f177c3db21fc3435905dc439b8}{ustack\_grow}
422       pstack(pi)%power\_exp = ui
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=255pt]{dc__units_8f90_ab443ffcbfae670820da561bb6908a694_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_ab443ffcbfae670820da561bb6908a694_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_a3537cd4cf0e4fbd95cdb1d9aa39dedee}\label{dc__units_8f90_a3537cd4cf0e4fbd95cdb1d9aa39dedee}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!pstack\+\_\+clear@{pstack\+\_\+clear}}
\index{pstack\+\_\+clear@{pstack\+\_\+clear}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{pstack\+\_\+clear()}{pstack\_clear()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::pstack\+\_\+clear (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 459 of file dc\+\_\+units.\+f90.



References pstack\+\_\+push().



Referenced by dc\+\_\+units\+::dcunitsbuild().


\begin{DoxyCode}
459       pi = 0
460       \textcolor{keyword}{call }\hyperlink{dc__units_8f90_a1446d88feff0e9e5f1e27640ebf2c32e}{pstack\_push}
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_a3537cd4cf0e4fbd95cdb1d9aa39dedee_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=299pt]{dc__units_8f90_a3537cd4cf0e4fbd95cdb1d9aa39dedee_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_afb556464c081101d47378560db7783c6}\label{dc__units_8f90_afb556464c081101d47378560db7783c6}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!pstack\+\_\+pop@{pstack\+\_\+pop}}
\index{pstack\+\_\+pop@{pstack\+\_\+pop}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{pstack\+\_\+pop()}{pstack\_pop()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::pstack\+\_\+pop (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 475 of file dc\+\_\+units.\+f90.



References power\+\_\+next().



Referenced by dc\+\_\+units\+::dcunitsbuild().


\begin{DoxyCode}
475       \textcolor{comment}{! factor\_exp の終了処理}
476       \textcolor{keyword}{call }\hyperlink{dc__units_8f90_ab443ffcbfae670820da561bb6908a694}{power\_next}
477       pi = pi - 1
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_afb556464c081101d47378560db7783c6_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=294pt]{dc__units_8f90_afb556464c081101d47378560db7783c6_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_a1446d88feff0e9e5f1e27640ebf2c32e}\label{dc__units_8f90_a1446d88feff0e9e5f1e27640ebf2c32e}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!pstack\+\_\+push@{pstack\+\_\+push}}
\index{pstack\+\_\+push@{pstack\+\_\+push}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{pstack\+\_\+push()}{pstack\_push()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::pstack\+\_\+push (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 464 of file dc\+\_\+units.\+f90.



References ustack\+\_\+grow().



Referenced by dc\+\_\+units\+::dcunitsbuild(), and pstack\+\_\+clear().


\begin{DoxyCode}
464       \textcolor{keywordflow}{if} (pi >= \textcolor{keyword}{size}(pstack)) stop \textcolor{stringliteral}{'DCUnitsBuild: too many parens'}
465       pi = pi + 1
466       \textcolor{keyword}{call }\hyperlink{dc__units_8f90_a05c0d4f177c3db21fc3435905dc439b8}{ustack\_grow}
467       pstack(pi)%factor\_exp = ui
468       pstack(pi)%factor = 1.0\_dp
469       pstack(pi)%factor\_inv = .false.
470       pstack(pi)%power\_exp = ui
471       pstack(pi)%paren\_exp = ui
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=260pt]{dc__units_8f90_a1446d88feff0e9e5f1e27640ebf2c32e_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_a1446d88feff0e9e5f1e27640ebf2c32e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_a87171df5468ab8a45f9c97700b7cea22}\label{dc__units_8f90_a87171df5468ab8a45f9c97700b7cea22}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!units\+\_\+finalize@{units\+\_\+finalize}}
\index{units\+\_\+finalize@{units\+\_\+finalize}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{units\+\_\+finalize()}{units\_finalize()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::units\+\_\+finalize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 442 of file dc\+\_\+units.\+f90.



References factor\+\_\+next().



Referenced by dc\+\_\+units\+::dcunitsbuild().


\begin{DoxyCode}
442       \textcolor{keyword}{call }\hyperlink{dc__units_8f90_ad7599bef030a7217a030b775bb4be90f}{factor\_next}
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_a87171df5468ab8a45f9c97700b7cea22_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=301pt]{dc__units_8f90_a87171df5468ab8a45f9c97700b7cea22_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_a7b76779ed3ff42b372defa16b66c134b}\label{dc__units_8f90_a7b76779ed3ff42b372defa16b66c134b}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!ustack\+\_\+clear@{ustack\+\_\+clear}}
\index{ustack\+\_\+clear@{ustack\+\_\+clear}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{ustack\+\_\+clear()}{ustack\_clear()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::ustack\+\_\+clear (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 446 of file dc\+\_\+units.\+f90.



References ustack\+\_\+grow().



Referenced by dc\+\_\+units\+::dcunitsbuild().


\begin{DoxyCode}
446       ui = 0
447       \textcolor{keyword}{call }\hyperlink{dc__units_8f90_a05c0d4f177c3db21fc3435905dc439b8}{ustack\_grow}
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=260pt]{dc__units_8f90_a7b76779ed3ff42b372defa16b66c134b_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=299pt]{dc__units_8f90_a7b76779ed3ff42b372defa16b66c134b_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{dc__units_8f90_a05c0d4f177c3db21fc3435905dc439b8}\label{dc__units_8f90_a05c0d4f177c3db21fc3435905dc439b8}} 
\index{dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}!ustack\+\_\+grow@{ustack\+\_\+grow}}
\index{ustack\+\_\+grow@{ustack\+\_\+grow}!dc\+\_\+units.\+f90@{dc\+\_\+units.\+f90}}
\subsubsection{\texorpdfstring{ustack\+\_\+grow()}{ustack\_grow()}}
{\footnotesize\ttfamily subroutine dcunitsbuild\+::ustack\+\_\+grow (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Definition at line 451 of file dc\+\_\+units.\+f90.



Referenced by dc\+\_\+units\+::dcunitsbuild(), power\+\_\+next(), pstack\+\_\+push(), and ustack\+\_\+clear().


\begin{DoxyCode}
451       \textcolor{keywordflow}{if} (ui >= \textcolor{keyword}{size}(ustack)) stop \textcolor{stringliteral}{'DCUnitsBuild: too many elements'}
452       ui = ui + 1
453       ustack(ui)%name = \textcolor{stringliteral}{""}
454       ustack(ui)%factor = 1.0\_dp
455       ustack(ui)%power = 1.0\_dp
\end{DoxyCode}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dc__units_8f90_a05c0d4f177c3db21fc3435905dc439b8_icgraph}
\end{center}
\end{figure}
