\hypertarget{namespacew__module__spectrum}{}\doxysection{w\+\_\+module\+\_\+spectrum Module Reference}
\label{namespacew__module__spectrum}\index{w\_module\_spectrum@{w\_module\_spectrum}}


\doxysubsection{Detailed Description}
\mbox{\hyperlink{namespacew__module}{w\+\_\+module}} の下部モジュール\+: スペクトル解析 

\begin{DoxyAuthor}{Author}
Shin-\/ichi Takehiro, Youhei S\+A\+S\+A\+KI 
\end{DoxyAuthor}
\begin{DoxyCopyright}{Copyright}
Copyright (C) S\+P\+M\+O\+D\+EL Development Group, 2019. License is M\+I\+T/\+X11. see \mbox{\hyperlink{COPYRIGHT}{C\+O\+P\+Y\+R\+I\+G\+HT}} in detail 
\end{DoxyCopyright}
\begin{DoxyNote}{Note}
スペクトル計算の方法については doc/w\+\_\+module.\+tex を参照のこと. 
\end{DoxyNote}
\begin{DoxyWarning}{Warning}
本モジュールを直接呼ぶ事は想定されていないことに注意されたい． ユーザは \mbox{\hyperlink{namespacew__module}{w\+\_\+module}} を呼ぶこと． 
\end{DoxyWarning}
\doxysubsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
real(dp) function, dimension(0\+:nm,-\/nm\+:nm), public \mbox{\hyperlink{namespacew__module__spectrum_a549029558183c587d43bdb0a3592df12}{nm\+\_\+energyfromstreamfunc\+\_\+w}} (w\+\_\+\+Strfunc)
\begin{DoxyCompactList}\small\item\em 流線関数のスペクトルデータからエネルギーの球面調和函数成分 (スペクトル)を計算する(1 層用). \end{DoxyCompactList}\item 
real(dp) function, dimension(0\+:nm), public \mbox{\hyperlink{namespacew__module__spectrum_a7619d87ba2a8eb0ba4c9cb1bfe51ace8}{n\+\_\+energyfromstreamfunc\+\_\+w}} (w\+\_\+\+Strfunc)
\begin{DoxyCompactList}\small\item\em 流線関数のスペクトルデータから各全波数のエネルギー成分(スペクトル)を 計算する(1 層用). \end{DoxyCompactList}\item 
real(dp) function, dimension(0\+:nm,-\/nm\+:nm), public \mbox{\hyperlink{namespacew__module__spectrum_abaac50d008bc5f3a7e31ac39a8955929}{nm\+\_\+enstrophyfromstreamfunc\+\_\+w}} (w\+\_\+\+Strfunc)
\begin{DoxyCompactList}\small\item\em 流線関数のスペクトルデータからエンストロフィーの球面調和函数成分 (スペクトル)を計算する(1 層用). \end{DoxyCompactList}\item 
real(dp) function, dimension(0\+:nm), public \mbox{\hyperlink{namespacew__module__spectrum_a2e2a246f41310d2bd1ae0db84d73b499}{n\+\_\+enstrophyfromstreamfunc\+\_\+w}} (w\+\_\+\+Strfunc)
\begin{DoxyCompactList}\small\item\em 流線関数のスペクトルデータから各全波数のエネルギー成分(スペクトル)を 計算する(1 層用) \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
real(dp), public \mbox{\hyperlink{namespacew__module__spectrum_a29b88d42fa75011df629c02dcd7422d4}{w\+\_\+spectrum\+\_\+vmiss}} = -\/999.\+000
\begin{DoxyCompactList}\small\item\em 欠損値. 初期値は -\/999.\+000 \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacew__module__spectrum_a7619d87ba2a8eb0ba4c9cb1bfe51ace8}\label{namespacew__module__spectrum_a7619d87ba2a8eb0ba4c9cb1bfe51ace8}} 
\index{w\_module\_spectrum@{w\_module\_spectrum}!n\_energyfromstreamfunc\_w@{n\_energyfromstreamfunc\_w}}
\index{n\_energyfromstreamfunc\_w@{n\_energyfromstreamfunc\_w}!w\_module\_spectrum@{w\_module\_spectrum}}
\doxysubsubsection{\texorpdfstring{n\_energyfromstreamfunc\_w()}{n\_energyfromstreamfunc\_w()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm), public w\+\_\+module\+\_\+spectrum\+::n\+\_\+energyfromstreamfunc\+\_\+w (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(in)}]{w\+\_\+\+Strfunc }\end{DoxyParamCaption})}



流線関数のスペクトルデータから各全波数のエネルギー成分(スペクトル)を 計算する(1 層用). 


\begin{DoxyItemize}
\item 全波数 n の流線関数のスペクトル成分 $ψ(n,m)$から エネルギースペクトルは \[\sum_{m=-nm}^{nm}(1/2)n(n+1)|ψ(n,m)|^2\] と計算される.
\item 全てのエネルギースペクトル成分の和に $4π$ をかけたものが 球面上での全エネルギーに等しい. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em w\+\_\+strfunc} & 流線関数(スペクトルデータ) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
エネルギースペクトル (水平全波数 n 空間) 
\end{DoxyReturn}

\end{DoxyItemize}

Definition at line 96 of file w\+\_\+module\+\_\+spectrum.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{96 }
\DoxyCodeLine{97 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(in)}      :: w\_Strfunc(:)}
\DoxyCodeLine{99 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{dimension(0:nm)} :: n\_EnergyFromStreamfunc\_w}
\DoxyCodeLine{100 }
\DoxyCodeLine{101     \textcolor{keywordtype}{integer(8)} :: n}
\DoxyCodeLine{102     \textcolor{keywordtype}{integer(8)} :: m}
\DoxyCodeLine{103 }
\DoxyCodeLine{104     n\_energyfromstreamfunc\_w = 0.0d0}
\DoxyCodeLine{105     \textcolor{keywordflow}{do} n=0,nm}
\DoxyCodeLine{106       n\_energyfromstreamfunc\_w(n) = \&}
\DoxyCodeLine{107         0.5d0 * n*(n+1\_8) * w\_strfunc(l\_nm(n,0\_8))**2\_8}
\DoxyCodeLine{108       \textcolor{keywordflow}{do} m=1,n}
\DoxyCodeLine{109         n\_energyfromstreamfunc\_w(n) =    \&}
\DoxyCodeLine{110           \& n\_energyfromstreamfunc\_w(n)  \&}
\DoxyCodeLine{111 \textcolor{comment}{!!           \& + 2 * 0.5 * n*(n+1) \&}}
\DoxyCodeLine{112           \& + n*(n+1)  \&}
\DoxyCodeLine{113           \& * (w\_strfunc(l\_nm(n,m))**2\_8 + w\_strfunc(l\_nm(n,-\/m))**2\_8)}
\DoxyCodeLine{114 \textcolor{keywordflow}{         end do}}
\DoxyCodeLine{115 \textcolor{keywordflow}{      end do}}

\end{DoxyCode}


References w\+\_\+module\+\_\+base\+::nm.

\mbox{\Hypertarget{namespacew__module__spectrum_a2e2a246f41310d2bd1ae0db84d73b499}\label{namespacew__module__spectrum_a2e2a246f41310d2bd1ae0db84d73b499}} 
\index{w\_module\_spectrum@{w\_module\_spectrum}!n\_enstrophyfromstreamfunc\_w@{n\_enstrophyfromstreamfunc\_w}}
\index{n\_enstrophyfromstreamfunc\_w@{n\_enstrophyfromstreamfunc\_w}!w\_module\_spectrum@{w\_module\_spectrum}}
\doxysubsubsection{\texorpdfstring{n\_enstrophyfromstreamfunc\_w()}{n\_enstrophyfromstreamfunc\_w()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm), public w\+\_\+module\+\_\+spectrum\+::n\+\_\+enstrophyfromstreamfunc\+\_\+w (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(in)}]{w\+\_\+\+Strfunc }\end{DoxyParamCaption})}



流線関数のスペクトルデータから各全波数のエネルギー成分(スペクトル)を 計算する(1 層用) 


\begin{DoxyItemize}
\item 全波数 n の流線関数のスペクトル成分 $ψ(n,m)$から エンストロフィースペクトルは \[\sum{m=-nm}^{nm} (1/2)n^2(n+1)^2|ψ(n,m)|^2\] と計算される.
\item 全てのエネルギースペクトル成分の和に $4π/R^2$ をかけたものが球面上での全エンストフィーに等しい. ここで $R$ は球面の半径である. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em w\+\_\+strfunc} & 流線関数(スペクトルデータ) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
エンストロフィースペクトル(水平全波数 n 空間) 
\end{DoxyReturn}

\end{DoxyItemize}

Definition at line 174 of file w\+\_\+module\+\_\+spectrum.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{174 }
\DoxyCodeLine{175 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{intent(in)}      :: w\_Strfunc(:)}
\DoxyCodeLine{177 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(0:nm)} :: n\_EnstrophyFromStreamfunc\_w}
\DoxyCodeLine{178 }
\DoxyCodeLine{179       \textcolor{keywordtype}{integer(8)} :: n}
\DoxyCodeLine{180       \textcolor{keywordtype}{integer(8)} :: m}
\DoxyCodeLine{181 }
\DoxyCodeLine{182       \textcolor{keywordflow}{do} n=0,nm}
\DoxyCodeLine{183         n\_enstrophyfromstreamfunc\_w(n)  \&}
\DoxyCodeLine{184           \&  = 0.5d0 * n**2\_8 * (n+1\_8)**2\_8 * w\_strfunc(l\_nm(n,0\_8))**2\_8}
\DoxyCodeLine{185         \textcolor{keywordflow}{do} m=1,n}
\DoxyCodeLine{186           n\_enstrophyfromstreamfunc\_w(n) \&}
\DoxyCodeLine{187             \& =   n\_enstrophyfromstreamfunc\_w(n) \&}
\DoxyCodeLine{188 \textcolor{comment}{!!             \&   + 2 * 0.5D0 * n**2\_8 * (n+1)**2\_8 \&}}
\DoxyCodeLine{189             \&   + n**2\_8 * (n+1)**2\_8 \&}
\DoxyCodeLine{190             \&      * (w\_strfunc(l\_nm(n,m))**2\_8 + w\_strfunc(l\_nm(n,-\/m))**2\_8)}
\DoxyCodeLine{191 \textcolor{keywordflow}{         end do}}
\DoxyCodeLine{192 \textcolor{keywordflow}{      end do}}

\end{DoxyCode}


References w\+\_\+module\+\_\+base\+::nm.

\mbox{\Hypertarget{namespacew__module__spectrum_a549029558183c587d43bdb0a3592df12}\label{namespacew__module__spectrum_a549029558183c587d43bdb0a3592df12}} 
\index{w\_module\_spectrum@{w\_module\_spectrum}!nm\_energyfromstreamfunc\_w@{nm\_energyfromstreamfunc\_w}}
\index{nm\_energyfromstreamfunc\_w@{nm\_energyfromstreamfunc\_w}!w\_module\_spectrum@{w\_module\_spectrum}}
\doxysubsubsection{\texorpdfstring{nm\_energyfromstreamfunc\_w()}{nm\_energyfromstreamfunc\_w()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm,-\/nm\+:nm), public w\+\_\+module\+\_\+spectrum\+::nm\+\_\+energyfromstreamfunc\+\_\+w (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(in)}]{w\+\_\+\+Strfunc }\end{DoxyParamCaption})}



流線関数のスペクトルデータからエネルギーの球面調和函数成分 (スペクトル)を計算する(1 層用). 


\begin{DoxyItemize}
\item 全波数 n, 帯状波数 m の流線関数のスペクトル成分 $ψ(n,m)$ からエネルギースペクトルは $(1/2)n(n+1)|ψ(n,m)|^2$ と計算される.
\item 全てのエネルギースペクトル成分の和に $4π$をかけたものが 球面上での全エネルギーに等しい.
\item スペクトルの (n,m) 成分は全波数 n, 東西波数 m の実部成分, (n,-\/m) 成分は全波数 n, 東西波数 m の虚部成分が格納されている.
\item データの存在しない全波数 n, 帯状波数 m の配列には欠損値が格納 される. 欠損値の値はモジュール変数 \mbox{\hyperlink{namespacew__module__spectrum_a29b88d42fa75011df629c02dcd7422d4}{w\+\_\+spectrum\+\_\+\+V\+Miss}} によって 設定できる(初期値は -\/999.\+0) 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em w\+\_\+strfunc} & 流線関数(スペクトルデータ) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
エネルギースペクトル(水平全波数 n, 帯状波数 m 空間) 
\end{DoxyReturn}

\end{DoxyItemize}

Definition at line 59 of file w\+\_\+module\+\_\+spectrum.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{59 }
\DoxyCodeLine{60 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{intent(in)}   :: w\_Strfunc(:)}
\DoxyCodeLine{62 \textcolor{keywordtype}{    real}(DP), \textcolor{keywordtype}{dimension(0:nm,-\/nm:nm)} :: nm\_EnergyFromStreamfunc\_w}
\DoxyCodeLine{63 }
\DoxyCodeLine{64     \textcolor{keywordtype}{integer(8)} :: n}
\DoxyCodeLine{65     \textcolor{keywordtype}{integer(8)} :: m}
\DoxyCodeLine{66 }
\DoxyCodeLine{67     nm\_energyfromstreamfunc\_w = w\_spectrum\_vmiss}
\DoxyCodeLine{68 }
\DoxyCodeLine{69     \textcolor{keywordflow}{do} n=0,nm}
\DoxyCodeLine{70       nm\_energyfromstreamfunc\_w(n,0) \&}
\DoxyCodeLine{71         \& = 0.5d0 * n*(n+1\_8) * w\_strfunc(l\_nm(n,0\_8))**2\_8}
\DoxyCodeLine{72       \textcolor{keywordflow}{do} m=1,n}
\DoxyCodeLine{73         nm\_energyfromstreamfunc\_w(n,m)     \&}
\DoxyCodeLine{74           = 0.5d0 * n*(n+1\_8)              \&}
\DoxyCodeLine{75           * (   w\_strfunc(l\_nm(n,m))**2\_8  \&}
\DoxyCodeLine{76           \&   + w\_strfunc(l\_nm(n,-\/m))**2\_8 )}
\DoxyCodeLine{77         nm\_energyfromstreamfunc\_w(n,-\/m)    \&}
\DoxyCodeLine{78           = nm\_energyfromstreamfunc\_w(n,m)}
\DoxyCodeLine{79 \textcolor{keywordflow}{      end do}}
\DoxyCodeLine{80 \textcolor{keywordflow}{    end do}}

\end{DoxyCode}


References w\+\_\+module\+\_\+base\+::nm, and w\+\_\+spectrum\+\_\+vmiss.

\mbox{\Hypertarget{namespacew__module__spectrum_abaac50d008bc5f3a7e31ac39a8955929}\label{namespacew__module__spectrum_abaac50d008bc5f3a7e31ac39a8955929}} 
\index{w\_module\_spectrum@{w\_module\_spectrum}!nm\_enstrophyfromstreamfunc\_w@{nm\_enstrophyfromstreamfunc\_w}}
\index{nm\_enstrophyfromstreamfunc\_w@{nm\_enstrophyfromstreamfunc\_w}!w\_module\_spectrum@{w\_module\_spectrum}}
\doxysubsubsection{\texorpdfstring{nm\_enstrophyfromstreamfunc\_w()}{nm\_enstrophyfromstreamfunc\_w()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:nm,-\/nm\+:nm), public w\+\_\+module\+\_\+spectrum\+::nm\+\_\+enstrophyfromstreamfunc\+\_\+w (\begin{DoxyParamCaption}\item[{real(dp), dimension(\+:), intent(in)}]{w\+\_\+\+Strfunc }\end{DoxyParamCaption})}



流線関数のスペクトルデータからエンストロフィーの球面調和函数成分 (スペクトル)を計算する(1 層用). 


\begin{DoxyItemize}
\item 全波数 n, 帯状波数 m の流線関数のスペクトル成分 $ψ(n,m)$ からエンストロフィースペクトルは \[(1/2)n^2(n+1)^2|ψ(n,m)|^2\] と計算される.
\item 全てのエンストロフィースペクトル成分の和に $4π/R^2$ をかけたものが球面上での全エンストロフィーに等しい. ここで $R$ は球面の半径である.
\item データの存在しない全波数 n, 帯状波数 m の配列には 欠損値が格納される. 欠損値の値はモジュール変数 \mbox{\hyperlink{namespacew__module__spectrum_a29b88d42fa75011df629c02dcd7422d4}{w\+\_\+spectrum\+\_\+\+V\+Miss}} によって設定できる(初期値は -\/999.\+0) 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em w\+\_\+strfunc} & 流線関数(スペクトルデータ) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
エンストロフィースペクトル (水平全波数 n, 帯状波数 m 空間) 
\end{DoxyReturn}

\end{DoxyItemize}

Definition at line 137 of file w\+\_\+module\+\_\+spectrum.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{137 }
\DoxyCodeLine{138 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{intent(in)}   :: w\_Strfunc(:)}
\DoxyCodeLine{140 \textcolor{keywordtype}{      real}(DP), \textcolor{keywordtype}{dimension(0:nm,-\/nm:nm)} :: nm\_EnstrophyFromStreamfunc\_w}
\DoxyCodeLine{141 }
\DoxyCodeLine{142       \textcolor{keywordtype}{integer(8)} :: n}
\DoxyCodeLine{143       \textcolor{keywordtype}{integer(8)} :: m}
\DoxyCodeLine{144 }
\DoxyCodeLine{145       nm\_enstrophyfromstreamfunc\_w = w\_spectrum\_vmiss}
\DoxyCodeLine{146 }
\DoxyCodeLine{147       \textcolor{keywordflow}{do} n=0,nm}
\DoxyCodeLine{148         nm\_enstrophyfromstreamfunc\_w(n,0) \&}
\DoxyCodeLine{149         \&  = 0.5d0 * n**2\_8 * (n+1\_8)**2\_8 * w\_strfunc(l\_nm(n,0\_8))**2\_8}
\DoxyCodeLine{150         \textcolor{keywordflow}{do} m=1,n}
\DoxyCodeLine{151           nm\_enstrophyfromstreamfunc\_w(n,m)    \&}
\DoxyCodeLine{152             \&  = 0.5d0 * n**2\_8 * (n+1\_8)**2\_8 \&}
\DoxyCodeLine{153             \&    * ( w\_strfunc(l\_nm(n,m))**2\_8 +w\_strfunc(l\_nm(n,-\/m))**2\_8 )}
\DoxyCodeLine{154           nm\_enstrophyfromstreamfunc\_w(n,-\/m)   \&}
\DoxyCodeLine{155             \&  = nm\_enstrophyfromstreamfunc\_w(n,m)}
\DoxyCodeLine{156 \textcolor{keywordflow}{        enddo}}
\DoxyCodeLine{157 \textcolor{keywordflow}{      enddo}}

\end{DoxyCode}


References w\+\_\+module\+\_\+base\+::nm, and w\+\_\+spectrum\+\_\+vmiss.



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{namespacew__module__spectrum_a29b88d42fa75011df629c02dcd7422d4}\label{namespacew__module__spectrum_a29b88d42fa75011df629c02dcd7422d4}} 
\index{w\_module\_spectrum@{w\_module\_spectrum}!w\_spectrum\_vmiss@{w\_spectrum\_vmiss}}
\index{w\_spectrum\_vmiss@{w\_spectrum\_vmiss}!w\_module\_spectrum@{w\_module\_spectrum}}
\doxysubsubsection{\texorpdfstring{w\_spectrum\_vmiss}{w\_spectrum\_vmiss}}
{\footnotesize\ttfamily real(dp), public w\+\_\+module\+\_\+spectrum\+::w\+\_\+spectrum\+\_\+vmiss = -\/999.\+000}



欠損値. 初期値は -\/999.\+000 



Definition at line 35 of file w\+\_\+module\+\_\+spectrum.\+f90.


\begin{DoxyCode}{0}
\DoxyCodeLine{35 \textcolor{keywordtype}{  real}(DP) :: w\_spectrum\_VMiss = -\/999.000}

\end{DoxyCode}


Referenced by nm\+\_\+energyfromstreamfunc\+\_\+w(), and nm\+\_\+enstrophyfromstreamfunc\+\_\+w().

