\hypertarget{namespacewt__wave__module}{}\section{wt\+\_\+wave\+\_\+module Module Reference}
\label{namespacewt__wave__module}\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \hyperlink{namespacewt__wave__module_a62608a02ed961e75b78c362175b465c3}{wt\+\_\+initial} (i, j, k, n, m, l, r\+\_\+in, r\+\_\+out, np, wa\+\_\+init)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_a7128b228c727dccd0f5b4b3f89628e67}{xyz\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a3306e656a7d69f406aa227a50c0095ae}{wt\+\_\+xyz} (xyz)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_aa5208f59c5d2ef0874f2965845b57e53}{xyz\+\_\+wz} (wz)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:km), public \hyperlink{namespacewt__wave__module_a673b22ca4be4ecfdd76dc6ee25932dfe}{wz\+\_\+xyz} (xyz)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:km), public \hyperlink{namespacewt__wave__module_a37b86ab9187af36b32d1ac116a452aca}{wz\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_ab46e7a28da6a0fd4bf314dff2f5317b2}{wt\+\_\+wz} (wz)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_aad7f8c508f003fe77b70097ea812faba}{wt\+\_\+drad\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_aacd00b2674fb6cdc5095ed098045993f}{wt\+\_\+divrad\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_afd6a7e78d2e9b1f1bf6a26e663ca5deb}{wt\+\_\+rotrad\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a1c79129690179f4fd4b3e8490e4d021a}{wt\+\_\+lapla\+\_\+wt} (wt)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_a044171037b40f5b59d01af260da6307d}{xyz\+\_\+gradlon\+\_\+wt} (wt)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_a18279b524c4c89b1d54432516cdf1d25}{xyz\+\_\+gradlat\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a6a40bc508aac23ba0706ec7059171ad7}{wt\+\_\+divlon\+\_\+xyz} (xyz)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_ae433b8f4a1fb9e49b10f9defc9f3ec91}{wt\+\_\+divlat\+\_\+xyz} (xyz)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a266e48a49c52cd37915771cabeaab03e}{wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz} (xyz\+\_\+\+Vlon, xyz\+\_\+\+Vlat, xyz\+\_\+\+Vrad)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_a5e1cedb4539c91a536c9823db7e8837b}{xyz\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz} (xyz\+\_\+\+Vlon, xyz\+\_\+\+Vlat, xyz\+\_\+\+Vrad)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_a2dab130f43d6c79ba6e6393a2e0a9ee4}{xyz\+\_\+rotlon\+\_\+wt\+\_\+wt} (wt\+\_\+\+Vrad, wt\+\_\+\+Vlat)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_a5c96168e6c584f33c4b20cfecaa565b5}{xyz\+\_\+rotlat\+\_\+wt\+\_\+wt} (wt\+\_\+\+Vlon, wt\+\_\+\+Vrad)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a5758e620f644a3f99da6de0621fc3526}{wt\+\_\+rotrad\+\_\+xyz\+\_\+xyz} (xyz\+\_\+\+Vlat, xyz\+\_\+\+Vlon)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_ad44dc931942e3f334ca851c8c5472aeb}{wt\+\_\+kxrgrad\+\_\+wt} (wt)
\item 
real(8) function, dimension(0\+:im-\/1, 1\+:jm, 0\+:km), public \hyperlink{namespacewt__wave__module_aadd2472aa8c352b97082cfad2d20b782}{xyz\+\_\+kgrad\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a7bee241dc4f6dbdfd73b8a61eede7cef}{wt\+\_\+l2\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a404189664f2922677499eb03b743e63e}{wt\+\_\+l2inv\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_ad6950d9eb138663a5d5d1bf5de023bec}{wt\+\_\+qoperator\+\_\+wt} (wt)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_aacd6a38d061422e2e89ef483a519e931}{wt\+\_\+radrot\+\_\+xyz\+\_\+xyz} (xyz\+\_\+\+V\+L\+ON, xyz\+\_\+\+V\+L\+AT)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a19fe3a175f0609721773d819882bdf65}{wt\+\_\+radrotrot\+\_\+xyz\+\_\+xyz\+\_\+xyz} (xyz\+\_\+\+V\+L\+ON, xyz\+\_\+\+V\+L\+AT, xyz\+\_\+\+V\+R\+AD)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_aa4a8be37077de2744d0df99c774e5549}{wt\+\_\+potential2vector} (xyz\+\_\+\+V\+L\+ON, xyz\+\_\+\+V\+L\+AT, xyz\+\_\+\+V\+R\+AD, wt\+\_\+\+T\+O\+R\+P\+OT, wt\+\_\+\+P\+O\+L\+P\+OT)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_a50b38cdb5b69a601cac2543a0adb3122}{wt\+\_\+potential2rotation} (xyz\+\_\+\+Rot\+V\+L\+ON, xyz\+\_\+\+Rot\+V\+L\+AT, xyz\+\_\+\+Rot\+V\+R\+AD, wt\+\_\+\+T\+O\+R\+P\+OT, wt\+\_\+\+P\+O\+L\+P\+OT)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_a68127d368193aaf95aba084dcd2d69a3}{wt\+\_\+boundariestau} (wt, values, cond)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_ab9bd8b5d24150111da6c13e8ab5fae30}{wt\+\_\+boundariesgrid} (wt, values, cond)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_a2394993a54033d9203c67e4df9b362a9}{wt\+\_\+torboundariestau} (wt\+\_\+\+T\+O\+R\+P\+OT, values, cond, new)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_af99a587dccfea1dae61d79ccaa3e66fd}{wt\+\_\+torboundariesgrid} (wt\+\_\+\+T\+O\+R\+P\+OT, values, cond, new)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:km), public \hyperlink{namespacewt__wave__module_a1e8158e87c08227d0f866051348590a6}{wz\+\_\+laplapol2pol\+\_\+wz} (wz, cond, new)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a435dad27b58466338f0ec43c9e9cae53}{wt\+\_\+laplapol2poltau\+\_\+wt} (wt, cond, new)
\item 
real(8) function, dimension(2 $\ast$(nm-\/mm+1), 0\+:lm), public \hyperlink{namespacewt__wave__module_a1bf94f377d9d3f369737e9b0e3d05ef1}{wt\+\_\+laplapol2polgrid\+\_\+wt} (wt, cond, new)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_a39b70dd5e6d6f9fbfe4b2ba42d620aec}{wt\+\_\+tormagboundariestau} (wt\+\_\+\+T\+OR, new)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_ae8ae9b9f0be76335fcf3a4a6f9630a96}{wt\+\_\+tormagboundariesgrid} (wt\+\_\+\+T\+OR, new)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_ad5382173b4a98c24cce18ba0e2bd4220}{wt\+\_\+polmagboundariestau} (wt\+\_\+\+P\+OL, new)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_ae2038d085d39677470b26e09ec4c4128}{wt\+\_\+polmagboundariesgrid} (wt\+\_\+\+P\+OL, new)
\item 
real(8) function, public \hyperlink{namespacewt__wave__module_ad2e7ec24a3bcb8132b3dfa6b316566af}{interpolate\+\_\+wt} (wt\+\_\+data, alon, alat, arad)
\item 
subroutine, public \hyperlink{namespacewt__wave__module_a9f80f873e49d7ee1cafe32d0f2c585e2}{wt\+\_\+finalize}
\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
real(8), dimension(\+:,\+:,\+:), allocatable, save, public \hyperlink{namespacewt__wave__module_a31f4e8fb69fe358762200cdd6ee7f17b}{xyz\+\_\+lat}
\item 
real(8), dimension(\+:,\+:,\+:), allocatable, save, public \hyperlink{namespacewt__wave__module_a253bd72d47b9ce4a5d27884c97828c90}{xyz\+\_\+rad}
\item 
real(8), dimension(\+:,\+:), allocatable, save, public \hyperlink{namespacewt__wave__module_a7abf4ebde326c7481b1fd0ac686d6bd7}{wz\+\_\+rad}
\item 
real(8), public \hyperlink{namespacewt__wave__module_a4daa01b62b245f34fc10f1224edaf4bc}{wt\+\_\+vmiss} = -\/999.\+0
\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacewt__wave__module_ad2e7ec24a3bcb8132b3dfa6b316566af}\label{namespacewt__wave__module_ad2e7ec24a3bcb8132b3dfa6b316566af}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!interpolate\+\_\+wt@{interpolate\+\_\+wt}}
\index{interpolate\+\_\+wt@{interpolate\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{interpolate\+\_\+wt()}{interpolate\_wt()}}
{\footnotesize\ttfamily real(8) function, public wt\+\_\+wave\+\_\+module\+::interpolate\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+data,  }\item[{real(8), intent(in)}]{alon,  }\item[{real(8), intent(in)}]{alat,  }\item[{real(8), intent(in)}]{arad }\end{DoxyParamCaption})}



Definition at line 2159 of file wt\+\_\+wave\+\_\+module.\+f90.



References at\+\_\+module\+::a\+\_\+interpolate\+\_\+at().


\begin{DoxyCode}
2159     \textcolor{comment}{!}
2160     \textcolor{comment}{! 緯度 alon, 経度 alat 動径 arad における関数値を}
2161     \textcolor{comment}{! その球面調和変換係数 wa\_data から補間計算する}
2162     \textcolor{comment}{!}
2163     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(IN)} :: wt\_data(2*(nm-mm+1),0:lm)\textcolor{comment}{! スペクトルデータ}
2164     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(IN)} :: alon                     \textcolor{comment}{! 補間する位置(経度)}
2165     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(IN)} :: alat                     \textcolor{comment}{! 補間する位置(緯度)}
2166     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{intent(IN)} :: arad                     \textcolor{comment}{! 補間する位置(動径)}
2167     \textcolor{keywordtype}{real(8)} :: interpolate\_wt                       \textcolor{comment}{! 補間した値}
2168 
2169     interpolate\_wt = &
2170          interpolate\_w(a\_interpolate\_at(wt\_data,arad),alon,alat)
2171 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_ad2e7ec24a3bcb8132b3dfa6b316566af_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_ab9bd8b5d24150111da6c13e8ab5fae30}\label{namespacewt__wave__module_ab9bd8b5d24150111da6c13e8ab5fae30}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+boundariesgrid@{wt\+\_\+boundariesgrid}}
\index{wt\+\_\+boundariesgrid@{wt\+\_\+boundariesgrid}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+boundariesgrid()}{wt\_boundariesgrid()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+boundariesgrid (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond }\end{DoxyParamCaption})}



Definition at line 1067 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
1067     \textcolor{comment}{!}
1068     \textcolor{comment}{! スペクトルデータにディリクレ・ノイマン境界条件を適用する}
1069     \textcolor{comment}{! 実空間での境界条件適用}
1070     \textcolor{comment}{!}
1071     \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
1072     \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには }
1073     \textcolor{comment}{! wt\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
1074     \textcolor{comment}{! 等しくしておく必要がある.}
1075     \textcolor{comment}{!}
1076     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}      :: wt
1077     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
1078 
1079     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
1080     \textcolor{comment}{!(in) 境界での 値/勾配 分布を水平スペクトル変換したものを与える. }
1081     \textcolor{comment}{!    省略時は値/勾配 0 となる. }
1082 
1083     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}             :: cond
1084     \textcolor{comment}{!(in) 境界条件. 省略時は 'DD'}
1085     \textcolor{comment}{!        DD : 両端ディリクレ条件}
1086     \textcolor{comment}{!        DN : 上端ディリクレ, 下端ノイマン条件}
1087     \textcolor{comment}{!        ND : 上端ノイマン, 下端ディリクレ条件}
1088     \textcolor{comment}{!        NN : 両端ノイマン条件}
1089 
1090     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
1091        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1092           \textcolor{keyword}{call }at\_boundariesgrid\_dd(wt,values)
1093        \textcolor{keywordflow}{else}
1094           \textcolor{keyword}{call }at\_boundariesgrid\_dd(wt)
1095 \textcolor{keywordflow}{       endif}
1096        \textcolor{keywordflow}{return}
1097 \textcolor{keywordflow}{    endif}
1098 
1099     \textcolor{keywordflow}{select case}(cond)
1100     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'})
1101        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1102           \textcolor{keyword}{call }at\_boundariesgrid\_nn(wt,values)
1103        \textcolor{keywordflow}{else}
1104           \textcolor{keyword}{call }at\_boundariesgrid\_nn(wt)
1105 \textcolor{keywordflow}{       endif}
1106     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'})
1107        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1108           \textcolor{keyword}{call }at\_boundariesgrid\_dn(wt,values)
1109        \textcolor{keywordflow}{else}
1110           \textcolor{keyword}{call }at\_boundariesgrid\_dn(wt)
1111 \textcolor{keywordflow}{       endif}
1112     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'})
1113        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1114           \textcolor{keyword}{call }at\_boundariesgrid\_nd(wt,values)
1115        \textcolor{keywordflow}{else}
1116           \textcolor{keyword}{call }at\_boundariesgrid\_nd(wt)
1117 \textcolor{keywordflow}{       endif}
1118     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'})
1119        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1120           \textcolor{keyword}{call }at\_boundariesgrid\_dd(wt,values)
1121        \textcolor{keywordflow}{else}
1122           \textcolor{keyword}{call }at\_boundariesgrid\_dd(wt)
1123 \textcolor{keywordflow}{       endif}
1124 \textcolor{keywordflow}{    case default}
1125        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wt\_BoundariesGrid'},\textcolor{stringliteral}{'B.C. not supported'})
1126 \textcolor{keywordflow}{    end select}
1127 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a68127d368193aaf95aba084dcd2d69a3}\label{namespacewt__wave__module_a68127d368193aaf95aba084dcd2d69a3}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+boundariestau@{wt\+\_\+boundariestau}}
\index{wt\+\_\+boundariestau@{wt\+\_\+boundariestau}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+boundariestau()}{wt\_boundariestau()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+boundariestau (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond }\end{DoxyParamCaption})}



Definition at line 1005 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
1005     \textcolor{comment}{!}
1006     \textcolor{comment}{! スペクトルデータにディリクレ・ノイマン境界条件を適用する}
1007     \textcolor{comment}{! Chebyshev 空間での境界条件適用(タウ法)}
1008     \textcolor{comment}{!}
1009     \textcolor{comment}{! チェビシェフ空間において境界条件を満たすべく高次の係数を}
1010     \textcolor{comment}{! 定める方法をとっている(タウ法).}
1011     \textcolor{comment}{!}
1012     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}      :: wt
1013     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
1014 
1015     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
1016     \textcolor{comment}{!(in) 境界での 値/勾配 分布を水平スペクトル変換したものを与える. }
1017     \textcolor{comment}{!     省略時は値/勾配 0 となる. }
1018 
1019     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}             :: cond
1020     \textcolor{comment}{!(in) 境界条件. 省略時は 'DD'}
1021     \textcolor{comment}{!        DD : 両端ディリクレ条件}
1022     \textcolor{comment}{!        DN : 上端ディリクレ, 下端ノイマン条件}
1023     \textcolor{comment}{!        ND : 上端ノイマン, 下端ディリクレ条件}
1024     \textcolor{comment}{!        NN : 両端ノイマン条件}
1025 
1026     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
1027        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1028           \textcolor{keyword}{call }at\_boundariestau\_dd(wt,values)
1029        \textcolor{keywordflow}{else}
1030           \textcolor{keyword}{call }at\_boundariestau\_dd(wt)
1031 \textcolor{keywordflow}{       endif}
1032        \textcolor{keywordflow}{return}
1033 \textcolor{keywordflow}{    endif}
1034 
1035     \textcolor{keywordflow}{select case}(cond)
1036     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'NN'})
1037        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1038           \textcolor{keyword}{call }at\_boundariestau\_nn(wt,values)
1039        \textcolor{keywordflow}{else}
1040           \textcolor{keyword}{call }at\_boundariestau\_nn(wt)
1041 \textcolor{keywordflow}{       endif}
1042     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DN'})
1043        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1044           \textcolor{keyword}{call }at\_boundariestau\_dn(wt,values)
1045        \textcolor{keywordflow}{else}
1046           \textcolor{keyword}{call }at\_boundariestau\_dn(wt)
1047 \textcolor{keywordflow}{       endif}
1048     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'ND'})
1049        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1050           \textcolor{keyword}{call }at\_boundariestau\_nd(wt,values)
1051        \textcolor{keywordflow}{else}
1052           \textcolor{keyword}{call }at\_boundariestau\_nd(wt)
1053 \textcolor{keywordflow}{       endif}
1054     \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'DD'})
1055        \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(values)) \textcolor{keywordflow}{then}
1056           \textcolor{keyword}{call }at\_boundariestau\_dd(wt,values)
1057        \textcolor{keywordflow}{else}
1058           \textcolor{keyword}{call }at\_boundariestau\_dd(wt)
1059 \textcolor{keywordflow}{       endif}
1060 \textcolor{keywordflow}{    case default}
1061        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wt\_BoundariesTau'},\textcolor{stringliteral}{'B.C. not supported'})
1062 \textcolor{keywordflow}{    end select}
1063 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a266e48a49c52cd37915771cabeaab03e}\label{namespacewt__wave__module_a266e48a49c52cd37915771cabeaab03e}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz@{wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz}}
\index{wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz@{wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz()}{wt\_div\_xyz\_xyz\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vlon,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vlat,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vrad }\end{DoxyParamCaption})}



Definition at line 651 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+divlat\+\_\+xyz(), wt\+\_\+divlon\+\_\+xyz(), wt\+\_\+divrad\+\_\+wt(), and wt\+\_\+xyz().


\begin{DoxyCode}
651     \textcolor{comment}{!}
652     \textcolor{comment}{! べクトル成分である 3 つの格子データに発散を作用させた}
653     \textcolor{comment}{! スペクトルデータを返す.}
654     \textcolor{comment}{!}
655     \textcolor{comment}{! 第 1, 2 ,3 引数(u,v,w)がそれぞれベクトルの経度成分, 緯度成分, }
656     \textcolor{comment}{! 動径成分を表し, 発散は }
657     \textcolor{comment}{!}
658     \textcolor{comment}{!      1/rcosφ・∂u/∂λ + 1/rcosφ・∂(v cosφ)/∂φ }
659     \textcolor{comment}{!    + 1/r^2 ∂/∂r (r^2 w)}
660     \textcolor{comment}{!}
661     \textcolor{comment}{! と計算される.}
662     \textcolor{comment}{!}
663     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlon
664     \textcolor{comment}{!(in) ベクトル場の経度成分}
665     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlat
666     \textcolor{comment}{!(in) ベクトル場の緯度成分}
667 
668     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vrad
669     \textcolor{comment}{!(in) ベクトル場の動径成分}
670 
671     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}     :: wt\_div\_xyz\_xyz\_xyz
672     \textcolor{comment}{!(out) ベクトル場の発散}
673 
674     wt\_div\_xyz\_xyz\_xyz =   wt\_divlon\_xyz(xyz\_vlon) &
675          + wt\_divlat\_xyz(xyz\_vlat) &
676          + wt\_divrad\_wt(wt\_xyz(xyz\_vrad))
677 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a266e48a49c52cd37915771cabeaab03e_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_ae433b8f4a1fb9e49b10f9defc9f3ec91}\label{namespacewt__wave__module_ae433b8f4a1fb9e49b10f9defc9f3ec91}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+divlat\+\_\+xyz@{wt\+\_\+divlat\+\_\+xyz}}
\index{wt\+\_\+divlat\+\_\+xyz@{wt\+\_\+divlat\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+divlat\+\_\+xyz()}{wt\_divlat\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+divlat\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz }\end{DoxyParamCaption})}



Definition at line 637 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+wz(), and xyz\+\_\+rad.


\begin{DoxyCode}
637     \textcolor{comment}{!}
638     \textcolor{comment}{! 格子データに発散型緯度微分 1/rcosφ・∂(f cosφ)/∂φ を}
639     \textcolor{comment}{! 作用させたスペクトルデータを返す.}
640     \textcolor{comment}{!}
641     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)}   :: xyz
642     \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
643     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}       :: wt\_divlat\_xyz
644     \textcolor{comment}{!(out) 発散型緯度微分を作用された 2 次元スペクトルデータ}
645 
646     wt\_divlat\_xyz = wt\_wz(wa\_divlat\_xya(xyz/xyz\_rad))
647 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_ae433b8f4a1fb9e49b10f9defc9f3ec91_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a6a40bc508aac23ba0706ec7059171ad7}\label{namespacewt__wave__module_a6a40bc508aac23ba0706ec7059171ad7}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+divlon\+\_\+xyz@{wt\+\_\+divlon\+\_\+xyz}}
\index{wt\+\_\+divlon\+\_\+xyz@{wt\+\_\+divlon\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+divlon\+\_\+xyz()}{wt\_divlon\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+divlon\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz }\end{DoxyParamCaption})}



Definition at line 623 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+wz(), and xyz\+\_\+rad.


\begin{DoxyCode}
623     \textcolor{comment}{! }
624     \textcolor{comment}{! 格子点データに発散型経度微分 1/rcosφ・∂/∂λ を作用させた}
625     \textcolor{comment}{! スペクトルデータを返す.}
626     \textcolor{comment}{!}
627     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)}   :: xyz
628     \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
629     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}       :: wt\_divlon\_xyz
630     \textcolor{comment}{!(out) 発散型経度微分を作用された 2 次元スペクトルデータ}
631 
632     wt\_divlon\_xyz = wt\_wz(wa\_divlon\_xya(xyz/xyz\_rad))
633 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a6a40bc508aac23ba0706ec7059171ad7_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_aacd00b2674fb6cdc5095ed098045993f}\label{namespacewt__wave__module_aacd00b2674fb6cdc5095ed098045993f}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+divrad\+\_\+wt@{wt\+\_\+divrad\+\_\+wt}}
\index{wt\+\_\+divrad\+\_\+wt@{wt\+\_\+divrad\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+divrad\+\_\+wt()}{wt\_divrad\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+divrad\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 528 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+drad\+\_\+wt(), wt\+\_\+wz(), wz\+\_\+rad, and wz\+\_\+wt().


\begin{DoxyCode}
528     \textcolor{comment}{! }
529     \textcolor{comment}{! 入力スペクトルデータに発散型動径微分}
530     \textcolor{comment}{!}
531     \textcolor{comment}{!       1/r^2 ∂/∂r (r^2 .)= ∂/∂r + 2/r}
532     \textcolor{comment}{!}
533     \textcolor{comment}{! を作用する.}
534     \textcolor{comment}{!}
535     \textcolor{comment}{! スペクトルデータの発散型動径微分とは, 対応する格子点データに}
536     \textcolor{comment}{! 発散型動径微分を作用させたデータのスペクトル変換のことである. }
537     \textcolor{comment}{!}
538     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
539     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
540 
541     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_divrad\_wt
542     \textcolor{comment}{!(out) 発散型動径微分を作用された 2 次元スペクトルデータ}
543 
544     wt\_divrad\_wt = wt\_drad\_wt(wt) + wt\_wz(2/wz\_rad*wz\_wt(wt))
545 
546 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_aacd00b2674fb6cdc5095ed098045993f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_aad7f8c508f003fe77b70097ea812faba}\label{namespacewt__wave__module_aad7f8c508f003fe77b70097ea812faba}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+drad\+\_\+wt@{wt\+\_\+drad\+\_\+wt}}
\index{wt\+\_\+drad\+\_\+wt@{wt\+\_\+drad\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+drad\+\_\+wt()}{wt\_drad\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+drad\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 511 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
511     \textcolor{comment}{!}
512     \textcolor{comment}{! 入力スペクトルデータに動径微分 ∂/∂r を作用する.}
513     \textcolor{comment}{!}
514     \textcolor{comment}{! スペクトルデータの動径微分とは, 対応する格子点データに動径微分を}
515     \textcolor{comment}{! 作用させたデータのスペクトル変換のことである.}
516     \textcolor{comment}{!}
517     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
518     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
519 
520     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_drad\_wt
521     \textcolor{comment}{!(in) 動径微分された2 次元球面調和函数チェビシェフスペクトルデータ}
522 
523     wt\_drad\_wt = at\_dr\_at(wt)
524 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a9f80f873e49d7ee1cafe32d0f2c585e2}\label{namespacewt__wave__module_a9f80f873e49d7ee1cafe32d0f2c585e2}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+finalize@{wt\+\_\+finalize}}
\index{wt\+\_\+finalize@{wt\+\_\+finalize}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+finalize()}{wt\_finalize()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+finalize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Definition at line 2176 of file wt\+\_\+wave\+\_\+module.\+f90.



References at\+\_\+module\+::at\+\_\+finalize(), wa\+\_\+wave\+\_\+module\+::wa\+\_\+finalize(), wz\+\_\+rad, xyz\+\_\+lat, and xyz\+\_\+rad.


\begin{DoxyCode}
2176     \textcolor{comment}{!}
2177     \textcolor{comment}{! モジュールの終了処理(割り付け配列の解放)をおこなう. }
2178     \textcolor{comment}{!}
2179     \textcolor{keywordflow}{if} ( .not. wt\_initialize ) \textcolor{keywordflow}{then}
2180        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'wt\_Finalize'},&
2181             \textcolor{stringliteral}{'wt\_wave\_module not initialized yet'})
2182        \textcolor{keywordflow}{return}
2183 \textcolor{keywordflow}{    endif}
2184 
2185     \textcolor{keyword}{call }wa\_finalize
2186     \textcolor{keyword}{call }at\_finalize
2187 
2188     \textcolor{keyword}{deallocate}(xyz\_lat)            \textcolor{comment}{! 格子点座標格納配列}
2189     \textcolor{keyword}{deallocate}(xyz\_rad)
2190     \textcolor{keyword}{deallocate}(wz\_rad)
2191 
2192     wt\_initialize = .false.
2193 
2194     wt\_torboundariestau\_first = .true.
2195     wt\_torboundariesgrid\_first = .true.
2196     wz\_laplapol2pol\_wz\_first = .true.
2197     wt\_laplapol2poltau\_wt\_first = .true.
2198     wt\_laplapol2polgrid\_wt\_first = .true.
2199     wt\_tormagboundariestau\_first = .true.
2200     wt\_tormagboundariesgrid\_first = .true.
2201     wt\_polmagboundariestau\_first = .true.
2202     wt\_polmagboundariesgrid\_first = .true.
2203 
2204     \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_Finalize'},\textcolor{stringliteral}{'wt\_wave\_module (2020/11/24) is finalized'})
2205 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a9f80f873e49d7ee1cafe32d0f2c585e2_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a62608a02ed961e75b78c362175b465c3}\label{namespacewt__wave__module_a62608a02ed961e75b78c362175b465c3}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+initial@{wt\+\_\+initial}}
\index{wt\+\_\+initial@{wt\+\_\+initial}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+initial()}{wt\_initial()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+initial (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{i,  }\item[{integer, intent(in)}]{j,  }\item[{integer, intent(in)}]{k,  }\item[{integer, intent(in)}]{n,  }\item[{integer, intent(in)}]{m,  }\item[{integer, intent(in)}]{l,  }\item[{real(8), intent(in)}]{r\+\_\+in,  }\item[{real(8), intent(in)}]{r\+\_\+out,  }\item[{integer, intent(in), optional}]{np,  }\item[{logical, intent(in), optional}]{wa\+\_\+init }\end{DoxyParamCaption})}



Definition at line 360 of file wt\+\_\+wave\+\_\+module.\+f90.



References at\+\_\+module\+::at\+\_\+initial(), wa\+\_\+wave\+\_\+module\+::wa\+\_\+initial(), wz\+\_\+rad, xyz\+\_\+lat, and xyz\+\_\+rad.


\begin{DoxyCode}
360     \textcolor{comment}{!}
361     \textcolor{comment}{! スペクトル変換の格子点数, 波数, 動径座標の範囲を設定する.}
362     \textcolor{comment}{!}
363     \textcolor{comment}{! 他の関数を呼ぶ前に, 最初にこのサブルーチンを呼んで初期設定を}
364     \textcolor{comment}{! しなければならない. }
365     \textcolor{comment}{!}
366     \textcolor{comment}{! np に 1 より大きな値を指定すれば ISPACK の球面調和函数変換 }
367     \textcolor{comment}{! OPENMP 並列計算ルーチンが用いられる. 並列計算を実行するには, }
368     \textcolor{comment}{! 実行時に環境変数 OMP\_NUM\_THREADS を np 以下の数字に設定する等の}
369     \textcolor{comment}{! システムに応じた準備が必要となる. }
370     \textcolor{comment}{!}
371     \textcolor{comment}{! np に 1 より大きな値を指定しなければ並列計算ルーチンは呼ばれない.}
372     \textcolor{comment}{!}
373     \textcolor{comment}{!}
374     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: i              \textcolor{comment}{! 格子点数(経度λ)}
375     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: j              \textcolor{comment}{! 格子点数(緯度φ)}
376     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: k              \textcolor{comment}{! 格子点数(動径 r)}
377     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: n              \textcolor{comment}{! 切断波数(水平全波数)}
378     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: m              \textcolor{comment}{! 東西波数}
379     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: l              \textcolor{comment}{! 切断波数(動径波数)}
380 
381     \textcolor{keywordtype}{real(8)},\textcolor{keywordtype}{intent(in)} :: r\_in           \textcolor{comment}{! 球殻内半径}
382     \textcolor{keywordtype}{real(8)},\textcolor{keywordtype}{intent(in)} :: r\_out          \textcolor{comment}{! 球殻外半径}
383 
384     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: np   \textcolor{comment}{! OPENMP での最大スレッド数}
385     \textcolor{keywordtype}{logical},\textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: wa\_init   \textcolor{comment}{! wa\_initial スイッチ}
386 
387     \textcolor{keywordtype}{logical}    :: wa\_initialize=.true.   \textcolor{comment}{! wa\_initial スイッチ}
388 
389     im = i  ; jm = j ; km = k
390     nm = n  ; mm = m ; lm = l
391     ri = r\_in ; ro = r\_out
392 
393     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(wa\_init) ) \textcolor{keywordflow}{then}
394        wa\_initialize = wa\_init
395     \textcolor{keywordflow}{else}
396        wa\_initialize = .true.
397 \textcolor{keywordflow}{    endif}
398 
399     \textcolor{keywordflow}{if} ( wa\_initialize ) \textcolor{keywordflow}{then}
400        \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(np) ) \textcolor{keywordflow}{then}
401           \textcolor{keyword}{call }messagenotify &
402                (\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_Initial'},\textcolor{stringliteral}{'np is dummy . No need to set np in wt\_wave\_module'})
403        \textcolor{keywordflow}{else}
404           \textcolor{keyword}{call }wa\_initial(nm,mm,im,jm,km+1)
405 \textcolor{keywordflow}{       endif}
406 \textcolor{keywordflow}{    endif}
407 
408     \textcolor{keyword}{call }at\_initial(km,lm,r\_in,r\_out)
409 
410     \textcolor{keyword}{allocate}(xyz\_lat(0:im-1,1:jm,0:km))
411     \textcolor{keyword}{allocate}(xyz\_rad(0:im-1,1:jm,0:km))
412 
413     \textcolor{keyword}{allocate}(wz\_rad(2*(nm-mm+1),0:km))
414 
415     xyz\_lat = spread(xy\_lat,3,km+1)
416     xyz\_rad = spread(spread(z\_rad,1,jm),1,im)
417 
418     wz\_rad = spread(z\_rad,1,2*(nm-mm+1))
419 
420     z\_rad\_weight = z\_rad\_weight * z\_rad**2       \textcolor{comment}{! r^2 dr の積分重み}
421 
422     wt\_initialize = .true.
423 
424     \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_initial'}, &
425          \textcolor{stringliteral}{'wt\_wave\_module (2020/11/24) is initialized'})
426 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a62608a02ed961e75b78c362175b465c3_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_ad44dc931942e3f334ca851c8c5472aeb}\label{namespacewt__wave__module_ad44dc931942e3f334ca851c8c5472aeb}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+kxrgrad\+\_\+wt@{wt\+\_\+kxrgrad\+\_\+wt}}
\index{wt\+\_\+kxrgrad\+\_\+wt@{wt\+\_\+kxrgrad\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+kxrgrad\+\_\+wt()}{wt\_kxrgrad\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+kxrgrad\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 786 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
786     \textcolor{comment}{!}
787     \textcolor{comment}{! 入力スペクトルデータに経度微分 k×r・▽ = ∂/∂λを作用する.}
788     \textcolor{comment}{!}
789     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
790     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
791 
792     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_kxrgrad\_wt
793     \textcolor{comment}{!(out) 経度微分を作用された 2 次元スペクトルデータ}
794 
795     wt\_kxrgrad\_wt =  wa\_dlon\_wa(wt)
796 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a7bee241dc4f6dbdfd73b8a61eede7cef}\label{namespacewt__wave__module_a7bee241dc4f6dbdfd73b8a61eede7cef}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+l2\+\_\+wt@{wt\+\_\+l2\+\_\+wt}}
\index{wt\+\_\+l2\+\_\+wt@{wt\+\_\+l2\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+l2\+\_\+wt()}{wt\_l2\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+l2\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 820 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
820     \textcolor{comment}{!}
821     \textcolor{comment}{! 入力スペクトルデータに L^2 演算子(=-水平ラプラシアン)を作用する.}
822     \textcolor{comment}{!}
823     \textcolor{comment}{! L^2 演算子は単位球面上の水平ラプラシアンの逆符号にあたる. }
824     \textcolor{comment}{!  入力スペクトルデ ータに対応する格子点データに演算子 }
825     \textcolor{comment}{!}
826     \textcolor{comment}{!     L^2 = -1/cos^2φ・∂^2/∂λ^2 - 1/cosφ・∂/∂φ(cosφ∂/∂φ)}
827     \textcolor{comment}{!}
828     \textcolor{comment}{! を作用させたデータのスペクトル変換が返される.}
829     \textcolor{comment}{!}
830     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
831     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
832 
833     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_l2\_wt
834     \textcolor{comment}{!(out) L^2 演算子を作用された 2 次元スペクトルデータ}
835 
836     wt\_l2\_wt = -wa\_lapla\_wa(wt)
837 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a404189664f2922677499eb03b743e63e}\label{namespacewt__wave__module_a404189664f2922677499eb03b743e63e}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+l2inv\+\_\+wt@{wt\+\_\+l2inv\+\_\+wt}}
\index{wt\+\_\+l2inv\+\_\+wt@{wt\+\_\+l2inv\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+l2inv\+\_\+wt()}{wt\_l2inv\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+l2inv\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 841 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
841     \textcolor{comment}{!}
842     \textcolor{comment}{! 入力スペクトルデータに L^2 演算子の逆演算(-逆水平ラプラシアン)を}
843     \textcolor{comment}{! 作用する.}
844     \textcolor{comment}{!}
845     \textcolor{comment}{! スペクトルデータに L^2 演算子を作用させる関数 wt\_L2\_wt の逆計算を}
846     \textcolor{comment}{! 行う関数である.}
847     \textcolor{comment}{!}
848     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
849     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
850 
851     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_l2inv\_wt
852     \textcolor{comment}{!(out) L^2 演算子の逆演算を作用された 2 次元スペクトルデータ}
853 
854     wt\_l2inv\_wt = -wa\_laplainv\_wa(wt)
855 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a1c79129690179f4fd4b3e8490e4d021a}\label{namespacewt__wave__module_a1c79129690179f4fd4b3e8490e4d021a}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+lapla\+\_\+wt@{wt\+\_\+lapla\+\_\+wt}}
\index{wt\+\_\+lapla\+\_\+wt@{wt\+\_\+lapla\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+lapla\+\_\+wt()}{wt\_lapla\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+lapla\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 571 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+divrad\+\_\+wt(), wt\+\_\+drad\+\_\+wt(), wt\+\_\+wz(), wz\+\_\+rad, and wz\+\_\+wt().


\begin{DoxyCode}
571     \textcolor{comment}{! 入力スペクトルデータにラプラシアン}
572     \textcolor{comment}{!}
573     \textcolor{comment}{!     ▽^2 =   1/r^2 cos^2φ・∂^2/∂λ^2 }
574     \textcolor{comment}{!            + 1/r^2 cosφ・∂/∂φ(cosφ∂/∂φ) }
575     \textcolor{comment}{!            + 1/r^2 ∂/∂r (r^2 ∂/∂r) }
576     \textcolor{comment}{!}
577     \textcolor{comment}{! を作用する.}
578     \textcolor{comment}{!}
579     \textcolor{comment}{! スペクトルデータのラプラシアンとは, 対応する格子点データに}
580     \textcolor{comment}{! ラプラシアンを作用させたデータのスペクトル変換のことである. }
581     \textcolor{comment}{!}
582     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
583     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
584 
585     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_lapla\_wt
586     \textcolor{comment}{!(out) ラプラシアンを作用された 2 次元スペクトルデータ}
587 
588     wt\_lapla\_wt = wt\_divrad\_wt(wt\_drad\_wt(wt)) &
589          + wt\_wz(wz\_wt(wa\_lapla\_wa(wt))/wz\_rad**2)
590 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a1c79129690179f4fd4b3e8490e4d021a_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a1bf94f377d9d3f369737e9b0e3d05ef1}\label{namespacewt__wave__module_a1bf94f377d9d3f369737e9b0e3d05ef1}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+laplapol2polgrid\+\_\+wt@{wt\+\_\+laplapol2polgrid\+\_\+wt}}
\index{wt\+\_\+laplapol2polgrid\+\_\+wt@{wt\+\_\+laplapol2polgrid\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+laplapol2polgrid\+\_\+wt()}{wt\_laplapol2polgrid\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+laplapol2polgrid\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1671 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+lapla\+\_\+wt(), and wz\+\_\+wt().


\begin{DoxyCode}
1671     \textcolor{comment}{!}
1672     \textcolor{comment}{! 速度ポロイダルポテンシャルΦを▽^2Φから計算する.}
1673     \textcolor{comment}{! チェビシェフ格子点空間で境界条件を適用している. }
1674     \textcolor{comment}{!}
1675     \textcolor{comment}{! この関数を用いるためには wt\_Initial にて設定する}
1676     \textcolor{comment}{! チェビシェフ切断波数(lm)と鉛直格子点数(km)を等しく}
1677     \textcolor{comment}{! しておく必要がある. }
1678     \textcolor{comment}{!}
1679     \textcolor{comment}{! 速度ポロイダルポテンシャルΦを f = ▽^2Φから定める式は}
1680     \textcolor{comment}{!}
1681     \textcolor{comment}{!    ▽^2Φ = f}
1682     \textcolor{comment}{!      Φ = const. at boundaries.}
1683     \textcolor{comment}{!      ∂Φ/∂r = 0 at boundaries          (粘着条件) }
1684     \textcolor{comment}{!      or ∂^2Φ/∂r^2 = 0 at boundaries   (応力なし条件)}
1685     \textcolor{comment}{!}
1686     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1687     \textcolor{comment}{!}
1688     \textcolor{comment}{! 最終的にチェビシェフ係数の解が欲しい場合には, wz\_LaplaPol2Pol\_wz に}
1689     \textcolor{comment}{! 比べてチェビシェフ -- 格子点変換が 1 回分少なくて済む.}
1690     \textcolor{comment}{!}
1691     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(in)}  :: wt
1692     \textcolor{comment}{!(in) 入力▽^2φ分布}
1693 
1694     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_laplapol2polgrid\_wt
1695     \textcolor{comment}{!(out) 出力ポロイダルポテンシャル分布}
1696 
1697     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
1698     \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
1699     \textcolor{comment}{!     RR    : 両端粘着条件}
1700     \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
1701     \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
1702     \textcolor{comment}{!     FF    : 両端応力なし条件}
1703 
1704     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1705     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1706     \textcolor{comment}{!     default は false.}
1707 
1708     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
1709     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
1710 
1711     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}  :: wz\_work
1712     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}  :: wt\_work
1713     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:lm,0:lm)}           :: tt\_i
1714     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:lm,0:km)}           :: tz\_work
1715     \textcolor{keywordtype}{logical}                                 :: rigid1, rigid2   \textcolor{comment}{! 境界条件}
1716 
1717     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
1718     \textcolor{keywordtype}{integer} :: l,n
1719     \textcolor{keywordtype}{save}    :: alu, kp
1720 
1721     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
1722        rigid1=.true. ; rigid2=.true.
1723     \textcolor{keywordflow}{else}
1724        \textcolor{keywordflow}{select case} (cond)
1725        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
1726           rigid1 = .true.  ; rigid2 = .true.
1727        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
1728           rigid1 = .true.  ; rigid2 = .false.
1729        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
1730           rigid1 = .false. ; rigid2 = .true.
1731        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
1732           rigid1 = .false. ; rigid2 = .false.
1733 \textcolor{keywordflow}{       case default}
1734           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wt\_LaplaPol2PolGrid\_wt'},\textcolor{stringliteral}{'B.C. not supported'})
1735 \textcolor{keywordflow}{       end select}
1736 \textcolor{keywordflow}{    endif}
1737 
1738     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
1739        new\_matrix=.false.
1740     \textcolor{keywordflow}{else} 
1741        new\_matrix=new
1742 \textcolor{keywordflow}{    endif}
1743 
1744     \textcolor{keywordflow}{if} ( wt\_laplapol2polgrid\_wt\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
1745        wt\_laplapol2polgrid\_wt\_first = .false.
1746 
1747        \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
1748           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wt\_LaplaPol2PolGrid\_wt'}, &
1749                \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
1750 \textcolor{keywordflow}{       endif}
1751 
1752        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
1753        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
1754        \textcolor{keyword}{allocate}(alu(2*(nm-mm+1),0:km,0:lm),kp(2*(nm-mm+1),0:lm))
1755 
1756        \textcolor{keywordflow}{do} l=0,lm
1757           wt\_work = 0.0d0 ; wt\_work(:,l) = 1.0d0
1758 
1759           \textcolor{comment}{! 各水平波数に関して独立の式}
1760           alu(:,:,l) = wz\_wt(wt\_lapla\_wt(wt\_work))
1761 \textcolor{keywordflow}{       enddo}
1762 
1763        \textcolor{comment}{! 運動学的条件. 流線は境界で一定}
1764        tt\_i = 0.0d0
1765        \textcolor{keywordflow}{do} l=0,lm
1766           tt\_i(l,l)=1.0d0
1767 \textcolor{keywordflow}{       enddo}
1768 
1769        \textcolor{comment}{! 非電気伝導体}
1770        tz\_work = az\_at(tt\_i)
1771 
1772        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
1773           alu(n,0,:)  = tz\_work(:,0)
1774           alu(n,km,:) = tz\_work(:,km)
1775 \textcolor{keywordflow}{       enddo}
1776 
1777        \textcolor{comment}{! 力学的条件粘着条件 }
1778        \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
1779           tz\_work=az\_at(at\_dr\_at(tt\_i))
1780        \textcolor{keywordflow}{else}
1781           tz\_work=az\_at(at\_dr\_at(at\_dr\_at(tt\_i)))
1782 \textcolor{keywordflow}{       endif}
1783        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
1784           alu(n,1,:) = tz\_work(:,0)
1785 \textcolor{keywordflow}{       enddo}
1786 
1787        \textcolor{comment}{! 力学的条件粘着条件 }
1788        \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
1789           tz\_work=az\_at(at\_dr\_at(tt\_i))
1790        \textcolor{keywordflow}{else}
1791           tz\_work=az\_at(at\_dr\_at(at\_dr\_at(tt\_i)))
1792 \textcolor{keywordflow}{       endif}
1793        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
1794           alu(n,km-1,:) = tz\_work(:,km)
1795 \textcolor{keywordflow}{       enddo}
1796 
1797        \textcolor{keyword}{call }ludecomp(alu,kp)
1798 
1799        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_LaplaPol2PolGrid\_wt'},&
1800             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
1801 \textcolor{keywordflow}{    endif}
1802 
1803     wz\_work         = wz\_wt(wt)
1804     wz\_work(:,1)    = 0.0d0               \textcolor{comment}{! 力学的条件}
1805     wz\_work(:,km-1) = 0.0d0               \textcolor{comment}{! 力学的条件}
1806     wz\_work(:,0)    = 0.0d0               \textcolor{comment}{! 運動学的条件}
1807     wz\_work(:,km)   = 0.0d0               \textcolor{comment}{! 運動学的条件 }
1808 
1809     wt\_laplapol2polgrid\_wt = lusolve(alu,kp,wz\_work)
1810 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a1bf94f377d9d3f369737e9b0e3d05ef1_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a435dad27b58466338f0ec43c9e9cae53}\label{namespacewt__wave__module_a435dad27b58466338f0ec43c9e9cae53}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+laplapol2poltau\+\_\+wt@{wt\+\_\+laplapol2poltau\+\_\+wt}}
\index{wt\+\_\+laplapol2poltau\+\_\+wt@{wt\+\_\+laplapol2poltau\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+laplapol2poltau\+\_\+wt()}{wt\_laplapol2poltau\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+laplapol2poltau\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1549 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+drad\+\_\+wt(), wt\+\_\+lapla\+\_\+wt(), and wz\+\_\+wt().


\begin{DoxyCode}
1549     \textcolor{comment}{!}
1550     \textcolor{comment}{! 速度ポロイダルポテンシャルΦを▽^2Φから計算する.}
1551     \textcolor{comment}{! チェビシェフタウ法で境界条件を適用している. }
1552     \textcolor{comment}{!}
1553     \textcolor{comment}{! 速度ポロイダルポテンシャルΦを f = ▽^2Φから定める式は}
1554     \textcolor{comment}{!}
1555     \textcolor{comment}{!    ▽^2Φ = f}
1556     \textcolor{comment}{!      Φ = const. at boundaries.}
1557     \textcolor{comment}{!      ∂Φ/∂r = 0 at boundaries          (粘着条件) }
1558     \textcolor{comment}{!      or ∂^2Φ/∂r^2 = 0 at boundaries   (応力なし条件)}
1559     \textcolor{comment}{!}
1560     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1561     \textcolor{comment}{!}
1562     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(in)}  :: wt
1563     \textcolor{comment}{!(in) 入力▽^2φ分布}
1564 
1565     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_laplapol2poltau\_wt
1566     \textcolor{comment}{!(out) 出力ポロイダルポテンシャル分布}
1567 
1568     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
1569     \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
1570     \textcolor{comment}{!     RR    : 両端粘着条件}
1571     \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
1572     \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
1573     \textcolor{comment}{!     FF    : 両端応力なし条件}
1574 
1575     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1576     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1577     \textcolor{comment}{!     default は false.}
1578 
1579     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
1580     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
1581 
1582     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}  :: wz\_work
1583     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}  :: wt\_work
1584     \textcolor{keywordtype}{logical}                                 :: rigid1, rigid2   \textcolor{comment}{! 境界条件}
1585 
1586     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
1587     \textcolor{keywordtype}{integer} :: l
1588     \textcolor{keywordtype}{save}    :: alu, kp
1589 
1590     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
1591        rigid1=.true. ; rigid2=.true.
1592     \textcolor{keywordflow}{else}
1593        \textcolor{keywordflow}{select case} (cond)
1594        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
1595           rigid1 = .true.  ; rigid2 = .true.
1596        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
1597           rigid1 = .true.  ; rigid2 = .false.
1598        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
1599           rigid1 = .false. ; rigid2 = .true.
1600        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
1601           rigid1 = .false. ; rigid2 = .false.
1602 \textcolor{keywordflow}{       case default}
1603           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wt\_LaplaPol2PolTau\_wt'},\textcolor{stringliteral}{'B.C. not supported'})
1604 \textcolor{keywordflow}{       end select}
1605 \textcolor{keywordflow}{    endif}
1606 
1607     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
1608        new\_matrix=.false.
1609     \textcolor{keywordflow}{else} 
1610        new\_matrix=new
1611 \textcolor{keywordflow}{    endif}
1612 
1613     \textcolor{keywordflow}{if} ( wt\_laplapol2poltau\_wt\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
1614        wt\_laplapol2poltau\_wt\_first = .false.
1615 
1616        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
1617        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
1618        \textcolor{keyword}{allocate}(alu(2*(nm-mm+1),0:lm,0:lm),kp(2*(nm-mm+1),0:lm))
1619 
1620        alu = 0.0d0
1621        \textcolor{keywordflow}{do} l=0,lm-2
1622           wt\_work = 0.0d0 ; wt\_work(:,l) = 1.0d0
1623 
1624           \textcolor{comment}{! 各水平波数に関して独立の式}
1625           alu(:,:,l) = wt\_lapla\_wt(wt\_work)
1626 \textcolor{keywordflow}{       enddo}
1627 
1628        \textcolor{comment}{! 運動学的条件. 流線は境界で一定}
1629        \textcolor{keywordflow}{do} l=0,lm
1630           wt\_work=0.0d0
1631           wt\_work(:,l) = 1.0d0
1632           wz\_work = wz\_wt(wt\_work)
1633 
1634           alu(:,lm-1,l)  = wz\_work(:,0)
1635           alu(:,lm,l)    = wz\_work(:,km)
1636 
1637           \textcolor{comment}{! 力学的条件粘着条件 }
1638           \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
1639              wz\_work=wz\_wt(wt\_drad\_wt(wt\_work))
1640           \textcolor{keywordflow}{else}
1641              wz\_work=wz\_wt(wt\_drad\_wt(wt\_drad\_wt(wt\_work)))
1642 \textcolor{keywordflow}{          endif}
1643           alu(:,lm-2,l) = wz\_work(:,0)
1644 
1645           \textcolor{comment}{! 力学的条件粘着条件 }
1646           \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
1647              wz\_work=wz\_wt(wt\_drad\_wt(wt\_work))
1648           \textcolor{keywordflow}{else}
1649              wz\_work=wz\_wt(wt\_drad\_wt(wt\_drad\_wt(wt\_work)))
1650 \textcolor{keywordflow}{          endif}
1651           alu(:,lm-3,l) = wz\_work(:,km)
1652 \textcolor{keywordflow}{       end do}
1653 
1654        \textcolor{keyword}{call }ludecomp(alu,kp)
1655 
1656        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_LaplaPol2PolTau\_wt'},&
1657             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
1658 \textcolor{keywordflow}{    endif}
1659 
1660     wt\_work         = wt
1661     wt\_work(:,lm)   = 0.0d0               \textcolor{comment}{! 運動学的条件 }
1662     wt\_work(:,lm-1) = 0.0d0               \textcolor{comment}{! 運動学的条件}
1663     wt\_work(:,lm-2) = 0.0d0               \textcolor{comment}{! 力学的条件}
1664     wt\_work(:,lm-3) = 0.0d0               \textcolor{comment}{! 力学的条件}
1665 
1666     wt\_laplapol2poltau\_wt = lusolve(alu,kp,wt\_work)
1667 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a435dad27b58466338f0ec43c9e9cae53_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_ae2038d085d39677470b26e09ec4c4128}\label{namespacewt__wave__module_ae2038d085d39677470b26e09ec4c4128}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+polmagboundariesgrid@{wt\+\_\+polmagboundariesgrid}}
\index{wt\+\_\+polmagboundariesgrid@{wt\+\_\+polmagboundariesgrid}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+polmagboundariesgrid()}{wt\_polmagboundariesgrid()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+polmagboundariesgrid (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt\+\_\+\+P\+OL,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 2061 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+drad\+\_\+wt(), and wz\+\_\+wt().


\begin{DoxyCode}
2061     \textcolor{comment}{!}
2062     \textcolor{comment}{! 磁場ポロイダルポテンシャルに対して境界条件を適用する.}
2063     \textcolor{comment}{! 鉛直実空間での境界条件適用. }
2064     \textcolor{comment}{!}
2065     \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
2066     \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには }
2067     \textcolor{comment}{! wt\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
2068     \textcolor{comment}{! 等しくしておく必要がある. }
2069     \textcolor{comment}{!}
2070     \textcolor{comment}{! 現在のところ境界物質が非電気伝導体の場合のみ対応している. }
2071     \textcolor{comment}{! その場合, 磁場ポロイダルポテンシャルの各水平スペクトル成分 h に}
2072     \textcolor{comment}{! たいして境界条件が与えられ,}
2073     \textcolor{comment}{!}
2074     \textcolor{comment}{!  * 外側境界 : dh/dr + (n+1)h/r = 0}
2075     \textcolor{comment}{!  * 内側境界 : dh/dr - nh/r = 0}
2076     \textcolor{comment}{!}
2077     \textcolor{comment}{! である. ここで n は h の水平全波数である. }
2078     \textcolor{comment}{!}
2079     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
2080     \textcolor{comment}{!}
2081     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}   :: wt\_pol
2082     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
2083 
2084     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
2085     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
2086     \textcolor{comment}{!     default は false.}
2087 
2088     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
2089     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
2090 
2091     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wt\_i
2092     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wz\_psi
2093     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wz\_dpsidr
2094     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}      :: w\_n
2095 
2096     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}  :: wz\_pol
2097 
2098     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
2099     \textcolor{keywordtype}{integer}  :: l, n, nn(2)
2100     \textcolor{keywordtype}{save}     :: alu, kp
2101 
2102     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
2103        new\_matrix=.false.
2104     \textcolor{keywordflow}{else} 
2105        new\_matrix=new
2106 \textcolor{keywordflow}{    endif}
2107 
2108     \textcolor{keywordflow}{if} ( wt\_polmagboundariesgrid\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
2109        wt\_polmagboundariesgrid\_first = .false.
2110 
2111        \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
2112           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'PolMagBoundariesGrid'}, &
2113                \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
2114 \textcolor{keywordflow}{       endif}
2115 
2116        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) )  \textcolor{keyword}{deallocate}(alu)
2117        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) )   \textcolor{keyword}{deallocate}(kp)
2118        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wt\_i) ) \textcolor{keyword}{deallocate}(wt\_i)
2119        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wz\_psi) ) \textcolor{keyword}{deallocate}(wz\_psi)
2120        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wz\_dpsidr) ) \textcolor{keyword}{deallocate}(wz\_dpsidr)
2121        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(w\_n) ) \textcolor{keyword}{deallocate}(w\_n)
2122 
2123        \textcolor{keyword}{allocate}(alu(2*(nm-mm+1),0:lm,0:lm),kp(2*(nm-mm+1),0:lm))
2124        \textcolor{keyword}{allocate}(wt\_i(2*(nm-mm+1),0:lm),w\_n(2*(nm-mm+1)))
2125        \textcolor{keyword}{allocate}(wz\_psi(2*(nm-mm+1),0:km),wz\_dpsidr(2*(nm-mm+1),0:km))
2126 
2127        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
2128           nn=nm\_l(n)
2129           w\_n(n) = nn(1)
2130 \textcolor{keywordflow}{       enddo}
2131 
2132        \textcolor{keywordflow}{do} l=0,lm
2133           wt\_i = 0.0d0 ; wt\_i(:,l) = 1.0d0
2134           wz\_psi = wz\_wt(wt\_i)
2135           alu(:,:,l) = wz\_psi
2136 
2137           wz\_dpsidr = wz\_wt(wt\_drad\_wt(wt\_i))
2138           alu(:,0,l)  = wz\_dpsidr(:,0) + (w\_n+1) * wz\_psi(:,0)/z\_rad(0)
2139           alu(:,km,l) = wz\_dpsidr(:,km) - w\_n * wz\_psi(:,km)/z\_rad(km)
2140 \textcolor{keywordflow}{       enddo}
2141 
2142        \textcolor{keyword}{call }ludecomp(alu,kp)
2143 
2144        \textcolor{keyword}{deallocate}(wt\_i,wz\_psi,wz\_dpsidr,w\_n)
2145 
2146        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'PolmagBoundariesGrid'},&
2147             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
2148 \textcolor{keywordflow}{    endif}
2149 
2150     wz\_pol       = wz\_wt(wt\_pol)
2151     wz\_pol(:,0)  = 0.0d0
2152     wz\_pol(:,km) = 0.0d0
2153     wt\_pol = lusolve(alu,kp,wz\_pol)
2154 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_ae2038d085d39677470b26e09ec4c4128_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_ad5382173b4a98c24cce18ba0e2bd4220}\label{namespacewt__wave__module_ad5382173b4a98c24cce18ba0e2bd4220}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+polmagboundariestau@{wt\+\_\+polmagboundariestau}}
\index{wt\+\_\+polmagboundariestau@{wt\+\_\+polmagboundariestau}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+polmagboundariestau()}{wt\_polmagboundariestau()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+polmagboundariestau (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt\+\_\+\+P\+OL,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1976 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+drad\+\_\+wt(), and wz\+\_\+wt().


\begin{DoxyCode}
1976     \textcolor{comment}{!}
1977     \textcolor{comment}{! 磁場ポロイダルポテンシャルに対して境界条件を適用する.}
1978     \textcolor{comment}{! Chebyshev 空間での境界条件適用}
1979     \textcolor{comment}{!}
1980     \textcolor{comment}{! チェビシェフ空間において境界条件を満たすべく高次の係数を定める方法を}
1981     \textcolor{comment}{! とっている(タウ法). 現在のところ境界物質が非電気伝導体の場合のみ}
1982     \textcolor{comment}{! 対応している. その場合, 磁場ポロイダルポテンシャルの各水平スペクトル}
1983     \textcolor{comment}{! 成分 h にたいして境界条件が与えられ,}
1984     \textcolor{comment}{!}
1985     \textcolor{comment}{!  * 外側境界 : dh/dr + (n+1)h/r = 0}
1986     \textcolor{comment}{!  * 内側境界 : dh/dr - nh/r = 0}
1987     \textcolor{comment}{!}
1988     \textcolor{comment}{! である. ここで n は h の水平全波数である. }
1989     \textcolor{comment}{!}
1990     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1991     \textcolor{comment}{!}
1992     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}   :: wt\_pol
1993     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
1994 
1995     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1996     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1997     \textcolor{comment}{!     default は false.}
1998 
1999     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
2000     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
2001 
2002     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wt\_i
2003     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wz\_psi
2004     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wz\_dpsidr
2005     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}      :: w\_n
2006 
2007     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
2008     \textcolor{keywordtype}{integer}  :: l, n, nn(2)
2009     \textcolor{keywordtype}{save}     :: alu, kp
2010 
2011     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
2012        new\_matrix=.false.
2013     \textcolor{keywordflow}{else} 
2014        new\_matrix=new
2015 \textcolor{keywordflow}{    endif}
2016 
2017     \textcolor{keywordflow}{if} ( wt\_polmagboundariestau\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
2018        wt\_polmagboundariestau\_first = .false.
2019 
2020        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
2021        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
2022        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wt\_i) ) \textcolor{keyword}{deallocate}(wt\_i)
2023        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wz\_psi) ) \textcolor{keyword}{deallocate}(wz\_psi)
2024        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wz\_dpsidr) ) \textcolor{keyword}{deallocate}(wz\_dpsidr)
2025        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(w\_n) ) \textcolor{keyword}{deallocate}(w\_n)
2026 
2027        \textcolor{keyword}{allocate}(alu(2*(nm-mm+1),0:lm,0:lm),kp(2*(nm-mm+1),0:lm))
2028        \textcolor{keyword}{allocate}(wt\_i(2*(nm-mm+1),0:lm),w\_n(2*(nm-mm+1)))
2029        \textcolor{keyword}{allocate}(wz\_psi(2*(nm-mm+1),0:km),wz\_dpsidr(2*(nm-mm+1),0:km))
2030 
2031        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
2032           nn=nm\_l(n)
2033           w\_n(n) = nn(1)
2034 \textcolor{keywordflow}{       enddo}
2035 
2036        \textcolor{keywordflow}{do} l=0,lm
2037           wt\_i = 0.0d0 ; wt\_i(:,l) = 1.0d0
2038           alu(:,:,l) = wt\_i
2039 
2040           wz\_psi = wz\_wt(wt\_i)
2041           wz\_dpsidr = wz\_wt(wt\_drad\_wt(wt\_i))
2042           alu(:,lm-1,l) = wz\_dpsidr(:,0) + (w\_n+1) * wz\_psi(:,0)/z\_rad(0)
2043           alu(:,lm,l)   = wz\_dpsidr(:,km) - w\_n * wz\_psi(:,km)/z\_rad(km)
2044 \textcolor{keywordflow}{       enddo}
2045 
2046        \textcolor{keyword}{call }ludecomp(alu,kp)
2047 
2048        \textcolor{keyword}{deallocate}(wt\_i,wz\_psi,wz\_dpsidr,w\_n)
2049 
2050        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'PolmagBoundariesTau'},&
2051             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
2052 \textcolor{keywordflow}{    endif}
2053 
2054     wt\_pol(:,lm-1) = 0.0d0
2055     wt\_pol(:,lm)   = 0.0d0
2056     wt\_pol = lusolve(alu,kp,wt\_pol)
2057 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_ad5382173b4a98c24cce18ba0e2bd4220_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a50b38cdb5b69a601cac2543a0adb3122}\label{namespacewt__wave__module_a50b38cdb5b69a601cac2543a0adb3122}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+potential2rotation@{wt\+\_\+potential2rotation}}
\index{wt\+\_\+potential2rotation@{wt\+\_\+potential2rotation}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+potential2rotation()}{wt\_potential2rotation()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+potential2rotation (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(out)}]{xyz\+\_\+\+Rot\+V\+L\+ON,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(out)}]{xyz\+\_\+\+Rot\+V\+L\+AT,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(out)}]{xyz\+\_\+\+Rot\+V\+R\+AD,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+P\+O\+L\+P\+OT }\end{DoxyParamCaption})}



Definition at line 968 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+lapla\+\_\+wt(), and wt\+\_\+potential2vector().


\begin{DoxyCode}
968     \textcolor{comment}{!}
969     \textcolor{comment}{! トロイダルポロイダルポテンシャルΨ,Φで表される非発散ベクトル場}
970     \textcolor{comment}{!}
971     \textcolor{comment}{!     v = ▽x(Ψr) + ▽x▽x(Φr) }
972     \textcolor{comment}{!}
973     \textcolor{comment}{! に対して, その回転}
974     \textcolor{comment}{!}
975     \textcolor{comment}{!     ▽xv = ▽x▽x(Ψr) + ▽x▽x▽x(Φr) = ▽x▽x(Ψr) - ▽x((▽^2Φ)r)}
976     \textcolor{comment}{!}
977     \textcolor{comment}{! を計算する. }
978 
979     \textcolor{comment}{! ベクトル場の回転}
980     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(OUT)} :: xyz\_rotvlon
981     \textcolor{comment}{!(out) 回転の経度成分}
982 
983     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(OUT)} :: xyz\_rotvlat
984     \textcolor{comment}{!(out) 回転の緯度成分}
985 
986     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(OUT)} :: xyz\_rotvrad
987     \textcolor{comment}{!(out) 回転の動径成分}
988 
989     \textcolor{comment}{! 入力ベクトル場を表すポテンシャル}
990     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_torpot
991     \textcolor{comment}{!(in) トロイダルポテンシャル}
992 
993     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_polpot
994     \textcolor{comment}{!(in) ポロイダルポテンシャル}
995 
996     \textcolor{keyword}{call }wt\_potential2vector( &
997          xyz\_rotvlon,xyz\_rotvlat,xyz\_rotvrad, &
998          -wt\_lapla\_wt(wt\_polpot), wt\_torpot)
999 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a50b38cdb5b69a601cac2543a0adb3122_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_aa4a8be37077de2744d0df99c774e5549}\label{namespacewt__wave__module_aa4a8be37077de2744d0df99c774e5549}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+potential2vector@{wt\+\_\+potential2vector}}
\index{wt\+\_\+potential2vector@{wt\+\_\+potential2vector}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+potential2vector()}{wt\_potential2vector()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+potential2vector (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km)}]{xyz\+\_\+\+V\+L\+ON,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km)}]{xyz\+\_\+\+V\+L\+AT,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km)}]{xyz\+\_\+\+V\+R\+AD,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+P\+O\+L\+P\+OT }\end{DoxyParamCaption})}



Definition at line 936 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+l2\+\_\+wt(), wt\+\_\+rotrad\+\_\+wt(), wz\+\_\+wt(), xyz\+\_\+gradlat\+\_\+wt(), xyz\+\_\+gradlon\+\_\+wt(), xyz\+\_\+rad, and xyz\+\_\+wt().


\begin{DoxyCode}
936     \textcolor{comment}{!}
937     \textcolor{comment}{! トロイダルポロイダルポテンシャルΨ,Φで表される非発散ベクトル場}
938     \textcolor{comment}{!}
939     \textcolor{comment}{!     v = ▽x(Ψr) + ▽x▽x(Φr) }
940     \textcolor{comment}{!}
941     \textcolor{comment}{! の各成分を計算する}
942     \textcolor{comment}{!}
943     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}     :: xyz\_vlon
944     \textcolor{comment}{!(out) ベクトル場の経度成分}
945 
946     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}     :: xyz\_vlat
947     \textcolor{comment}{!(out) ベクトル場の緯度成分}
948 
949     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}     :: xyz\_vrad
950     \textcolor{comment}{!(out) ベクトル場の動径成分}
951 
952     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_torpot
953     \textcolor{comment}{!(in) トロイダルポテンシャル}
954 
955     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_polpot
956     \textcolor{comment}{!(in) ポロイダルポテンシャル}
957 
958     xyz\_vlon =   xyz\_rad * xyz\_gradlat\_wt(wt\_torpot) &
959          + xya\_gradlon\_wa(wz\_wt(wt\_rotrad\_wt(wt\_polpot)))
960     xyz\_vlat = - xyz\_rad * xyz\_gradlon\_wt(wt\_torpot) &
961          + xya\_gradlat\_wa(wz\_wt(wt\_rotrad\_wt(wt\_polpot)))
962     xyz\_vrad = xyz\_wt(wt\_l2\_wt(wt\_polpot))/xyz\_rad
963 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_aa4a8be37077de2744d0df99c774e5549_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_ad6950d9eb138663a5d5d1bf5de023bec}\label{namespacewt__wave__module_ad6950d9eb138663a5d5d1bf5de023bec}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+qoperator\+\_\+wt@{wt\+\_\+qoperator\+\_\+wt}}
\index{wt\+\_\+qoperator\+\_\+wt@{wt\+\_\+qoperator\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+qoperator\+\_\+wt()}{wt\_qoperator\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+qoperator\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 859 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+l2\+\_\+wt(), wt\+\_\+xyz(), and xyz\+\_\+kgrad\+\_\+wt().


\begin{DoxyCode}
859     \textcolor{comment}{!}
860     \textcolor{comment}{! 入力スペクトルデータに対応する格子点データに演算子 }
861     \textcolor{comment}{!}
862     \textcolor{comment}{!    Q=(k・▽-1/2(L2 k・▽+ k・▽L2)) }
863     \textcolor{comment}{!}
864     \textcolor{comment}{! を作用させたデータのスペクトル変換が返される.}
865     \textcolor{comment}{!}
866     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
867     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
868 
869     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_qoperator\_wt
870     \textcolor{comment}{!(out) Q 演算子を作用された 2 次元スペクトルデータ}
871 
872     wt\_qoperator\_wt = &
873          wt\_xyz(xyz\_kgrad\_wt(wt) - xyz\_kgrad\_wt(wt\_l2\_wt(wt))/2) &
874          - wt\_l2\_wt(wt\_xyz(xyz\_kgrad\_wt(wt)))/2
875 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_ad6950d9eb138663a5d5d1bf5de023bec_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_aacd6a38d061422e2e89ef483a519e931}\label{namespacewt__wave__module_aacd6a38d061422e2e89ef483a519e931}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+radrot\+\_\+xyz\+\_\+xyz@{wt\+\_\+radrot\+\_\+xyz\+\_\+xyz}}
\index{wt\+\_\+radrot\+\_\+xyz\+\_\+xyz@{wt\+\_\+radrot\+\_\+xyz\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+radrot\+\_\+xyz\+\_\+xyz()}{wt\_radrot\_xyz\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+radrot\+\_\+xyz\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+V\+L\+ON,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+V\+L\+AT }\end{DoxyParamCaption})}



Definition at line 879 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+wz().


\begin{DoxyCode}
879     \textcolor{comment}{!}
880     \textcolor{comment}{! ベクトルの渦度と動径ベクトルの内積 r・(▽×v) を計算する.}
881     \textcolor{comment}{!}
882     \textcolor{comment}{! 第 1, 2 引数(v[λ], v[φ])がそれぞれベクトルの経度成分, 緯度成分を表す.}
883     \textcolor{comment}{!}
884     \textcolor{comment}{!    r・(▽×v) = 1/cosφ・∂v[φ]/∂λ - 1/cosφ・∂(v[λ] cosφ)/∂φ}
885     \textcolor{comment}{!}
886     \textcolor{comment}{! のスペクトル データが返される.}
887     \textcolor{comment}{!}
888     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlon
889     \textcolor{comment}{!(in) ベクトルの経度成分}
890 
891     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlat
892     \textcolor{comment}{!(in) ベクトルの緯度成分}
893 
894     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}     :: wt\_radrot\_xyz\_xyz
895     \textcolor{comment}{!(out) ベクトルの渦度と動径ベクトルの内積}
896 
897     wt\_radrot\_xyz\_xyz = wt\_wz(wa\_divlon\_xya(xyz\_vlat) &
898          - wa\_divlat\_xya(xyz\_vlon))
899 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_aacd6a38d061422e2e89ef483a519e931_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a19fe3a175f0609721773d819882bdf65}\label{namespacewt__wave__module_a19fe3a175f0609721773d819882bdf65}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+radrotrot\+\_\+xyz\+\_\+xyz\+\_\+xyz@{wt\+\_\+radrotrot\+\_\+xyz\+\_\+xyz\+\_\+xyz}}
\index{wt\+\_\+radrotrot\+\_\+xyz\+\_\+xyz\+\_\+xyz@{wt\+\_\+radrotrot\+\_\+xyz\+\_\+xyz\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+radrotrot\+\_\+xyz\+\_\+xyz\+\_\+xyz()}{wt\_radrotrot\_xyz\_xyz\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+radrotrot\+\_\+xyz\+\_\+xyz\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+V\+L\+ON,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+V\+L\+AT,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+V\+R\+AD }\end{DoxyParamCaption})}



Definition at line 903 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+l2\+\_\+wt(), wt\+\_\+rotrad\+\_\+wt(), wt\+\_\+wz(), wt\+\_\+xyz(), and xyz\+\_\+rad.


\begin{DoxyCode}
903     \textcolor{comment}{! }
904     \textcolor{comment}{! ベクトル v に対して r・(▽×▽×v) を計算する.}
905     \textcolor{comment}{!}
906     \textcolor{comment}{! 第 1, 2, 3 引数(v[λ], v[φ], v[r])がそれぞれベクトルの経度成分, }
907     \textcolor{comment}{! 緯度成分, 動径成分を表す. }
908     \textcolor{comment}{!}
909     \textcolor{comment}{!    r・(▽×▽×v)  = 1/r ∂/∂r (r・( 1/cosφ・∂v[λ]/∂λ }
910     \textcolor{comment}{!                                  + 1/cosφ・∂(v[φ] cosφ)/∂φ ) ) }
911     \textcolor{comment}{!                     + L^2 v[r]/r }
912     \textcolor{comment}{!}
913     \textcolor{comment}{! のスペクトルデータが返される.}
914     \textcolor{comment}{!}
915     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlon
916     \textcolor{comment}{!(in) ベクトルの経度成分}
917 
918     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlat
919     \textcolor{comment}{!(in) ベクトルの緯度成分}
920 
921     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vrad
922     \textcolor{comment}{!(in) ベクトルの動径成分}
923 
924     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}     :: wt\_radrotrot\_xyz\_xyz\_xyz
925     \textcolor{comment}{!(out) ベクトル v の r・(▽×▽×v) }
926 
927     wt\_radrotrot\_xyz\_xyz\_xyz = &
928          wt\_rotrad\_wt(wt\_wz( &
929          (wa\_divlon\_xya(xyz\_vlon)+ wa\_divlat\_xya(xyz\_vlat)))) &
930          + wt\_l2\_wt(wt\_xyz(xyz\_vrad/xyz\_rad))
931 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a19fe3a175f0609721773d819882bdf65_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_afd6a7e78d2e9b1f1bf6a26e663ca5deb}\label{namespacewt__wave__module_afd6a7e78d2e9b1f1bf6a26e663ca5deb}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+rotrad\+\_\+wt@{wt\+\_\+rotrad\+\_\+wt}}
\index{wt\+\_\+rotrad\+\_\+wt@{wt\+\_\+rotrad\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+rotrad\+\_\+wt()}{wt\_rotrad\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+rotrad\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 550 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+drad\+\_\+wt(), wt\+\_\+wz(), wz\+\_\+rad, and wz\+\_\+wt().


\begin{DoxyCode}
550     \textcolor{comment}{!}
551     \textcolor{comment}{! 入力スペクトルデータに回転型動径微分}
552     \textcolor{comment}{!}
553     \textcolor{comment}{!      1/r ∂(r.)/∂r = ∂(.)/∂r + (.)/r}
554     \textcolor{comment}{!}
555     \textcolor{comment}{! を作用する.}
556     \textcolor{comment}{!}
557     \textcolor{comment}{! スペクトルデータの回転型動径微分とは, 対応する格子点データに}
558     \textcolor{comment}{! 回転型動径微分を作用させたデータのスペクトル変換のことである. }
559     \textcolor{comment}{!}
560     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
561     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
562 
563     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_rotrad\_wt
564     \textcolor{comment}{!(out) 回転型動径微分を作用された 2 次元スペクトルデータ}
565 
566     wt\_rotrad\_wt = wt\_drad\_wt(wt) + wt\_wz(1/wz\_rad*wz\_wt(wt))
567 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_afd6a7e78d2e9b1f1bf6a26e663ca5deb_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a5758e620f644a3f99da6de0621fc3526}\label{namespacewt__wave__module_a5758e620f644a3f99da6de0621fc3526}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+rotrad\+\_\+xyz\+\_\+xyz@{wt\+\_\+rotrad\+\_\+xyz\+\_\+xyz}}
\index{wt\+\_\+rotrad\+\_\+xyz\+\_\+xyz@{wt\+\_\+rotrad\+\_\+xyz\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+rotrad\+\_\+xyz\+\_\+xyz()}{wt\_rotrad\_xyz\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+rotrad\+\_\+xyz\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vlat,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vlon }\end{DoxyParamCaption})}



Definition at line 761 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+divlat\+\_\+xyz(), and wt\+\_\+divlon\+\_\+xyz().


\begin{DoxyCode}
761     \textcolor{comment}{!}
762     \textcolor{comment}{! ベクトルの緯度成分, 経度成分である第 1, 2 引数 Vlat, Vlon に対して}
763     \textcolor{comment}{! ベクトル場の回転の動径成分 }
764     \textcolor{comment}{!}
765     \textcolor{comment}{!    1/rcosφ・∂Vlat/∂λ - 1/rcosφ・∂(Vlon cosφ)/∂φ}
766     \textcolor{comment}{!}
767     \textcolor{comment}{! を計算する.}
768     \textcolor{comment}{!}
769     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlat
770     \textcolor{comment}{!(in) ベクトル場の緯度成分}
771 
772     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlon
773     \textcolor{comment}{!(in) ベクトル場の経度成分}
774 
775     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}     :: wt\_rotrad\_xyz\_xyz
776     \textcolor{comment}{!(out) ベクトル場の回転の動径成分}
777 
778     wt\_rotrad\_xyz\_xyz =   wt\_divlon\_xyz(xyz\_vlat) &
779          - wt\_divlat\_xyz(xyz\_vlon)
780 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a5758e620f644a3f99da6de0621fc3526_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_af99a587dccfea1dae61d79ccaa3e66fd}\label{namespacewt__wave__module_af99a587dccfea1dae61d79ccaa3e66fd}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+torboundariesgrid@{wt\+\_\+torboundariesgrid}}
\index{wt\+\_\+torboundariesgrid@{wt\+\_\+torboundariesgrid}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+torboundariesgrid()}{wt\_torboundariesgrid()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+torboundariesgrid (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1266 of file wt\+\_\+wave\+\_\+module.\+f90.



References wz\+\_\+wt().


\begin{DoxyCode}
1266     \textcolor{comment}{!}
1267     \textcolor{comment}{! 速度トロイダルポテンシャルに対して境界条件を適用する.}
1268     \textcolor{comment}{! 実空間での境界条件適用}
1269     \textcolor{comment}{!}
1270     \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
1271     \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには }
1272     \textcolor{comment}{! wt\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
1273     \textcolor{comment}{! 等しくしておく必要がある. }
1274     \textcolor{comment}{!}
1275     \textcolor{comment}{! 速度トロイダルポテンシャルΨに対して与えられる境界条件は}
1276     \textcolor{comment}{!}
1277     \textcolor{comment}{!   * 粘着条件 : Ψ = Ψb(lon,lat). Ψb は境界球面での速度分布. }
1278     \textcolor{comment}{!                                   default は 0 (静止状態).}
1279     \textcolor{comment}{!}
1280     \textcolor{comment}{!   * 応力なし条件 : ∂(Ψ/r)/∂r = 0.}
1281     \textcolor{comment}{!}
1282     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1283     \textcolor{comment}{!}
1284     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}      :: wt\_torpot
1285     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
1286 
1287     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
1288     \textcolor{comment}{!(in) 両端境界でのトロイダルポテンシャル}
1289     \textcolor{comment}{!     粘着条件の時のみ有効}
1290 
1291     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
1292     \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
1293     \textcolor{comment}{!     RR    : 両端粘着条件}
1294     \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
1295     \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
1296     \textcolor{comment}{!     FF    : 両端応力なし条件}
1297 
1298     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1299     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1300     \textcolor{comment}{!     default は false.}
1301 
1302     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}  :: wz\_torpot
1303     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
1304     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}    :: kp
1305     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:lm)}              :: t\_data
1306     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:km)}              :: z\_data
1307     \textcolor{keywordtype}{logical}                               :: rigid1, rigid2   \textcolor{comment}{! 境界条件}
1308 
1309     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
1310     \textcolor{keywordtype}{integer} :: l
1311     \textcolor{keywordtype}{save}    :: alu, kp
1312 
1313     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
1314        rigid1=.true. ; rigid2=.true.
1315     \textcolor{keywordflow}{else}
1316        \textcolor{keywordflow}{select case} (cond)
1317        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
1318           rigid1 = .true.  ; rigid2 = .true.
1319        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
1320           rigid1 = .true.  ; rigid2 = .false.
1321        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
1322           rigid1 = .false. ; rigid2 = .true.
1323        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
1324           rigid1 = .false. ; rigid2 = .false.
1325 \textcolor{keywordflow}{       case default}
1326           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},\textcolor{stringliteral}{'B.C. not supported'})
1327 \textcolor{keywordflow}{       end select}
1328 \textcolor{keywordflow}{    endif}
1329 
1330     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
1331        new\_matrix=.false.
1332     \textcolor{keywordflow}{else} 
1333        new\_matrix=new
1334 \textcolor{keywordflow}{    endif}
1335 
1336     \textcolor{keywordflow}{if} ( wt\_torboundariesgrid\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
1337        wt\_torboundariesgrid\_first = .false.
1338 
1339        \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
1340           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'TorBoundariesGrid'}, &
1341                \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
1342 \textcolor{keywordflow}{       endif}
1343 
1344        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
1345        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
1346        \textcolor{keyword}{allocate}(alu(0:km,0:lm),kp(0:lm))
1347 
1348        \textcolor{keywordflow}{do} l=0,lm
1349           t\_data = 0.0d0 ; t\_data(l)=1.0d0
1350           alu(:,l) = z\_t(t\_data)
1351 
1352           \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
1353              z\_data = z\_t(t\_data)
1354           \textcolor{keywordflow}{else}
1355              z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
1356 \textcolor{keywordflow}{          endif}
1357           alu(0,l) = z\_data(0)        \textcolor{comment}{! 境界 k=0 での条件式代入}
1358 
1359           \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
1360              z\_data = z\_t(t\_data)
1361           \textcolor{keywordflow}{else}
1362              z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
1363 \textcolor{keywordflow}{          endif}
1364           alu(km,l)   = z\_data(km)    \textcolor{comment}{! 境界 k=km での条件式代入}
1365 \textcolor{keywordflow}{       end do}
1366 
1367        \textcolor{keyword}{call }ludecomp(alu,kp)
1368 
1369        \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then} 
1370           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},&
1371                \textcolor{stringliteral}{'Toroidal potential at k=0 was given by the optional variable.'})
1372        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid1 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
1373           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},&
1374                \textcolor{stringliteral}{'Toroidal potential at k=0 was set to zero.'})
1375        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid1) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1376           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},&
1377                \textcolor{stringliteral}{'Boundary value at k=0 cannot be set under stress-free condition.'})
1378 \textcolor{keywordflow}{       endif}
1379 
1380        \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then} 
1381           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},&
1382                \textcolor{stringliteral}{'Toroidal potential at k=km was given by the optional variable.'})
1383        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid2 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
1384           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},&
1385                \textcolor{stringliteral}{'Toroidal potential at k=km was set to zero.'})
1386        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid2) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1387           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},&
1388                \textcolor{stringliteral}{'Boundary value at k=km cannot be set under stress-free condition.'})
1389 \textcolor{keywordflow}{       endif}
1390 
1391        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesGrid'},&
1392             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
1393 \textcolor{keywordflow}{    endif}
1394 
1395     wz\_torpot       = wz\_wt(wt\_torpot)
1396 
1397     \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1398        wz\_torpot(:,0)  = values(:,1)
1399     \textcolor{keywordflow}{else}
1400        wz\_torpot(:,0)  = 0.0d0
1401 \textcolor{keywordflow}{    endif}
1402 
1403     \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1404        wz\_torpot(:,km) = values(:,2)
1405     \textcolor{keywordflow}{else}
1406        wz\_torpot(:,km) = 0.0d0
1407 \textcolor{keywordflow}{    endif}
1408 
1409     wt\_torpot = lusolve(alu,kp,wz\_torpot)
1410 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_af99a587dccfea1dae61d79ccaa3e66fd_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a2394993a54033d9203c67e4df9b362a9}\label{namespacewt__wave__module_a2394993a54033d9203c67e4df9b362a9}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+torboundariestau@{wt\+\_\+torboundariestau}}
\index{wt\+\_\+torboundariestau@{wt\+\_\+torboundariestau}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+torboundariestau()}{wt\_torboundariestau()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+torboundariestau (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt\+\_\+\+T\+O\+R\+P\+OT,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),2), intent(in), optional}]{values,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1131 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
1131     \textcolor{comment}{!}
1132     \textcolor{comment}{! 速度トロイダルポテンシャルに対して境界条件を適用する. }
1133     \textcolor{comment}{! Chebyshev 空間での境界条件適用. }
1134     \textcolor{comment}{!}
1135     \textcolor{comment}{! 速度トロイダルポテンシャルΨに対して与えられる境界条件は}
1136     \textcolor{comment}{!}
1137     \textcolor{comment}{!   * 粘着条件 : Ψ = Ψb(lon,lat). Ψb は境界球面での速度分布. }
1138     \textcolor{comment}{!                                   default は 0(静止状態).}
1139     \textcolor{comment}{!}
1140     \textcolor{comment}{!   * 応力なし条件 : ∂(Ψ/r)/∂r = 0.}
1141     \textcolor{comment}{!}
1142     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1143     \textcolor{comment}{!}
1144     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}      :: wt\_torpot
1145     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
1146 
1147     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: values
1148     \textcolor{comment}{!(in) 両端境界でのトロイダルポテンシャル}
1149     \textcolor{comment}{!     粘着条件の時のみ有効}
1150 
1151     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
1152     \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
1153     \textcolor{comment}{!     RR    : 両端粘着条件}
1154     \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
1155     \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
1156     \textcolor{comment}{!     FF    : 両端応力なし条件}
1157 
1158     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1159     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1160     \textcolor{comment}{!     default は false.}
1161 
1162     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
1163     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:)}, \textcolor{keywordtype}{allocatable}    :: kp
1164     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:lm)}              :: t\_data
1165     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:km)}              :: z\_data
1166     \textcolor{keywordtype}{logical}                               :: rigid1, rigid2   \textcolor{comment}{! 境界条件}
1167 
1168     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
1169     \textcolor{keywordtype}{integer} :: l
1170     \textcolor{keywordtype}{save}    :: alu, kp
1171 
1172     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
1173        rigid1=.true. ; rigid2=.true.
1174     \textcolor{keywordflow}{else}
1175        \textcolor{keywordflow}{select case} (cond)
1176        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
1177           rigid1 = .true.  ; rigid2 = .true.
1178        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
1179           rigid1 = .true.  ; rigid2 = .false.
1180        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
1181           rigid1 = .false. ; rigid2 = .true.
1182        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
1183           rigid1 = .false. ; rigid2 = .false.
1184 \textcolor{keywordflow}{       case default}
1185           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},\textcolor{stringliteral}{'B.C. not supported'})
1186 \textcolor{keywordflow}{       end select}
1187 \textcolor{keywordflow}{    endif}
1188 
1189     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
1190        new\_matrix=.false.
1191     \textcolor{keywordflow}{else} 
1192        new\_matrix=new
1193 \textcolor{keywordflow}{    endif}
1194 
1195     \textcolor{keywordflow}{if} ( wt\_torboundariestau\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
1196        wt\_torboundariestau\_first = .false.
1197 
1198        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
1199        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
1200        \textcolor{keyword}{allocate}(alu(0:lm,0:lm),kp(0:lm))
1201 
1202        \textcolor{keywordflow}{do} l=0,lm
1203           t\_data = 0.0d0 ; t\_data(l) = 1.0d0
1204           alu(:,l) = t\_data
1205 
1206           \textcolor{comment}{! 力学的条件粘着条件 }
1207           \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
1208              z\_data = z\_t(t\_data)
1209           \textcolor{keywordflow}{else}
1210              z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
1211 \textcolor{keywordflow}{          endif}
1212           alu(lm-1,l) = z\_data(0)       \textcolor{comment}{! 境界 k=0 での条件式代入}
1213 
1214           \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
1215              z\_data = z\_t(t\_data)
1216           \textcolor{keywordflow}{else}
1217              z\_data = z\_t(t\_dr\_t(t\_z(z\_t(t\_data)/z\_rad)))
1218 \textcolor{keywordflow}{          endif}
1219           alu(lm,l)   = z\_data(km)      \textcolor{comment}{! 境界 k=km での条件式代入}
1220 \textcolor{keywordflow}{       enddo}
1221 
1222        \textcolor{keyword}{call }ludecomp(alu,kp)
1223 
1224        \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then} 
1225           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},&
1226                \textcolor{stringliteral}{'Toroidal potential at k=0 was given by the optional variable.'})
1227        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid1 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
1228           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},&
1229                \textcolor{stringliteral}{'Toroidal potential at k=0 was set to zero.'})
1230        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid1) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1231           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},&
1232                \textcolor{stringliteral}{'Boundary value k=0 cannot be set under stress-free condition.'})
1233 \textcolor{keywordflow}{       endif}
1234 
1235        \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then} 
1236           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},&
1237                \textcolor{stringliteral}{'Toroidal potential at k=0 was given by the optional variable.'})
1238        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( rigid2 .AND. (.NOT.\textcolor{keyword}{present}(values)) ) \textcolor{keywordflow}{then}
1239           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},&
1240                \textcolor{stringliteral}{'Toroidal potential at k=0 was set to zero.'})
1241        \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( (.NOT. rigid2) .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1242           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},&
1243                \textcolor{stringliteral}{'Boundary value k=0 cannot be set under stress-free condition.'})
1244 \textcolor{keywordflow}{       endif}
1245 
1246        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wt\_TorBoundariesTau'},&
1247             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
1248 \textcolor{keywordflow}{    endif}
1249 
1250     \textcolor{keywordflow}{if} ( rigid1 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1251        wt\_torpot(:,lm-1) = values(:,1)
1252     \textcolor{keywordflow}{else}
1253        wt\_torpot(:,lm-1) = 0.0d0
1254 \textcolor{keywordflow}{    endif}
1255     \textcolor{keywordflow}{if} ( rigid2 .AND. \textcolor{keyword}{present}(values) ) \textcolor{keywordflow}{then}
1256        wt\_torpot(:,lm)   = values(:,2)
1257     \textcolor{keywordflow}{else}
1258        wt\_torpot(:,lm) = 0.0d0
1259 \textcolor{keywordflow}{    endif}
1260 
1261     wt\_torpot = lusolve(alu,kp,wt\_torpot)
1262 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_ae8ae9b9f0be76335fcf3a4a6f9630a96}\label{namespacewt__wave__module_ae8ae9b9f0be76335fcf3a4a6f9630a96}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+tormagboundariesgrid@{wt\+\_\+tormagboundariesgrid}}
\index{wt\+\_\+tormagboundariesgrid@{wt\+\_\+tormagboundariesgrid}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+tormagboundariesgrid()}{wt\_tormagboundariesgrid()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+tormagboundariesgrid (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt\+\_\+\+T\+OR,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1890 of file wt\+\_\+wave\+\_\+module.\+f90.



References wz\+\_\+wt().


\begin{DoxyCode}
1890     \textcolor{comment}{!}
1891     \textcolor{comment}{! 磁場トロイダルポテンシャルに対して境界条件を適用する.}
1892     \textcolor{comment}{! 鉛直実空間での境界条件適用.}
1893     \textcolor{comment}{!}
1894     \textcolor{comment}{! 鉛直実格子点空間において内部領域の値と境界条件を満たすように}
1895     \textcolor{comment}{! 条件を課している(選点法). このルーチンを用いるためには }
1896     \textcolor{comment}{! wt\_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を}
1897     \textcolor{comment}{! 等しくしておく必要がある. }
1898     \textcolor{comment}{!}
1899     \textcolor{comment}{! 現在のところ境界物質が非電気伝導体の場合のみ対応している. }
1900     \textcolor{comment}{! その場合, 磁場トロイダルポテンシャルの境界条件は}
1901     \textcolor{comment}{!}
1902     \textcolor{comment}{! 外側}
1903     \textcolor{comment}{!    wt\_psi = 0   at the outer boundary}
1904     \textcolor{comment}{! 内側}
1905     \textcolor{comment}{!    wt\_psi = 0       at the inner boundary}
1906     \textcolor{comment}{! }
1907     \textcolor{comment}{! であるので wt\_Boundaries で対応可能だが, 将来のため別途作成しておく}
1908     \textcolor{comment}{!}
1909     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1910     \textcolor{comment}{!}
1911     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}   :: wt\_tor
1912     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
1913 
1914     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1915     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1916     \textcolor{comment}{!     default は false.}
1917 
1918     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
1919     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
1920 
1921     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wt\_i
1922     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wz\_psi
1923     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}  :: wz\_tor
1924 
1925     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
1926     \textcolor{keywordtype}{integer}  :: l, n
1927     \textcolor{keywordtype}{save}     :: alu, kp
1928 
1929     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
1930        new\_matrix=.false.
1931     \textcolor{keywordflow}{else} 
1932        new\_matrix=new
1933 \textcolor{keywordflow}{    endif}
1934 
1935     \textcolor{keywordflow}{if} ( wt\_tormagboundariesgrid\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
1936        wt\_tormagboundariesgrid\_first = .false.
1937 
1938        \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
1939           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'TorMagBoundariesGrid'}, &
1940                \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
1941 \textcolor{keywordflow}{       endif}
1942 
1943        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
1944        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
1945        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wt\_i) ) \textcolor{keyword}{deallocate}(wt\_i)
1946        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wz\_psi) ) \textcolor{keyword}{deallocate}(wz\_psi)
1947        \textcolor{keyword}{allocate}(alu(2*(nm-mm+1),0:km,0:lm),kp(2*(nm-mm+1),0:lm))
1948        \textcolor{keyword}{allocate}(wt\_i(2*(nm-mm+1),0:lm),wz\_psi(2*(nm-mm+1),0:km))
1949 
1950        \textcolor{keywordflow}{do} l=0,lm
1951           wt\_i = 0.0d0 ; wt\_i(:,l)=1.0d0
1952           wz\_psi = wz\_wt(wt\_i)
1953           alu(:,:,l) = wz\_psi
1954 
1955           \textcolor{comment}{! 非電気伝導体}
1956           alu(:,0,l)  = wz\_psi(:,0)
1957           alu(:,km,l) = wz\_psi(:,km)
1958 \textcolor{keywordflow}{       enddo}
1959 
1960        \textcolor{keyword}{call }ludecomp(alu,kp)
1961 
1962        \textcolor{keyword}{deallocate}(wt\_i,wz\_psi)
1963 
1964        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'TormagBoundariesGrid'},&
1965             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
1966 \textcolor{keywordflow}{    endif}
1967 
1968     wz\_tor       = wz\_wt(wt\_tor)
1969     wz\_tor(:,0)  = 0.0d0
1970     wz\_tor(:,km) = 0.0d0
1971     wt\_tor = lusolve(alu,kp,wz\_tor)
1972 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_ae8ae9b9f0be76335fcf3a4a6f9630a96_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a39b70dd5e6d6f9fbfe4b2ba42d620aec}\label{namespacewt__wave__module_a39b70dd5e6d6f9fbfe4b2ba42d620aec}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+tormagboundariestau@{wt\+\_\+tormagboundariestau}}
\index{wt\+\_\+tormagboundariestau@{wt\+\_\+tormagboundariestau}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+tormagboundariestau()}{wt\_tormagboundariestau()}}
{\footnotesize\ttfamily subroutine, public wt\+\_\+wave\+\_\+module\+::wt\+\_\+tormagboundariestau (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(inout)}]{wt\+\_\+\+T\+OR,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1814 of file wt\+\_\+wave\+\_\+module.\+f90.



References wz\+\_\+wt().


\begin{DoxyCode}
1814 
1815     \textcolor{comment}{! 磁場トロイダルポテンシャルに対して境界条件を適用する.}
1816     \textcolor{comment}{! Chebyshev 空間での境界条件適用}
1817     \textcolor{comment}{!}
1818     \textcolor{comment}{! チェビシェフ空間において境界条件を満たすべく高次の係数を定める方法を}
1819     \textcolor{comment}{! とっている(タウ法). 現在のところ境界物質が非電気伝導体の場合のみ}
1820     \textcolor{comment}{! 対応している. その場合, 磁場トロイダルポテンシャルの境界条件は}
1821     \textcolor{comment}{!}
1822     \textcolor{comment}{! 外側}
1823     \textcolor{comment}{!    wt\_psi = 0   at the outer boundary}
1824     \textcolor{comment}{! 内側}
1825     \textcolor{comment}{!    wt\_psi = 0       at the inner boundary}
1826     \textcolor{comment}{! }
1827     \textcolor{comment}{! であるから wt\_Boundaries で対応可能だが, 将来のため別途作成しておく.}
1828     \textcolor{comment}{!}
1829     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1830     \textcolor{comment}{!}
1831     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)},\textcolor{keywordtype}{intent(inout)}   :: wt\_tor
1832     \textcolor{comment}{!(inout) 境界条件を適用するデータ. 修正された値を返す. }
1833 
1834     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1835     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1836     \textcolor{comment}{!     default は false.}
1837 
1838     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
1839     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
1840 
1841     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wt\_i
1842     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: wz\_psi
1843 
1844     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
1845     \textcolor{keywordtype}{integer}  :: l, n
1846     \textcolor{keywordtype}{save}     :: alu, kp
1847 
1848     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
1849        new\_matrix=.false.
1850     \textcolor{keywordflow}{else} 
1851        new\_matrix=new
1852 \textcolor{keywordflow}{    endif}
1853 
1854     \textcolor{keywordflow}{if} ( wt\_tormagboundariestau\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
1855        wt\_tormagboundariestau\_first = .false.
1856 
1857        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
1858        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
1859        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wt\_i) ) \textcolor{keyword}{deallocate}(wt\_i)
1860        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(wz\_psi) ) \textcolor{keyword}{deallocate}(wz\_psi)
1861        \textcolor{keyword}{allocate}(alu(2*(nm-mm+1),0:lm,0:lm),kp(2*(nm-mm+1),0:lm))
1862        \textcolor{keyword}{allocate}(wt\_i(2*(nm-mm+1),0:lm),wz\_psi(2*(nm-mm+1),0:km))
1863 
1864        \textcolor{keywordflow}{do} l=0,lm
1865           wt\_i = 0.0d0 ; wt\_i(:,l)=1.0d0
1866           alu(:,:,l) = wt\_i
1867 
1868           \textcolor{comment}{! 非電気伝導体}
1869           wz\_psi = wz\_wt(wt\_i)
1870 
1871           alu(:,lm-1,l) = wz\_psi(:,0)
1872           alu(:,lm,l)   = wz\_psi(:,km)
1873 \textcolor{keywordflow}{       enddo}
1874 
1875        \textcolor{keyword}{call }ludecomp(alu,kp)
1876 
1877        \textcolor{keyword}{deallocate}(wt\_i,wz\_psi)
1878 
1879        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'TormagBoundariesTau'},&
1880             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
1881 \textcolor{keywordflow}{    endif}
1882 
1883     wt\_tor(:,lm-1) = 0.0d0
1884     wt\_tor(:,lm)   = 0.0d0
1885     wt\_tor = lusolve(alu,kp,wt\_tor)
1886 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a39b70dd5e6d6f9fbfe4b2ba42d620aec_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_ab46e7a28da6a0fd4bf314dff2f5317b2}\label{namespacewt__wave__module_ab46e7a28da6a0fd4bf314dff2f5317b2}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+wz@{wt\+\_\+wz}}
\index{wt\+\_\+wz@{wt\+\_\+wz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+wz()}{wt\_wz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+wz (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:km), intent(in)}]{wz }\end{DoxyParamCaption})}



Definition at line 497 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
497     \textcolor{comment}{!}
498     \textcolor{comment}{! 水平スペクトル・動径格子点データからスペクトルデータへ(正)変換する.}
499     \textcolor{comment}{!}
500     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}, \textcolor{keywordtype}{intent(in)} :: wz
501     \textcolor{comment}{!(in) 2 次元球面調和函数スペクトル・動径格子点データ}
502     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}             :: wt\_wz
503     \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ}
504 
505     wt\_wz = at\_az(wz)
506 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a3306e656a7d69f406aa227a50c0095ae}\label{namespacewt__wave__module_a3306e656a7d69f406aa227a50c0095ae}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+xyz@{wt\+\_\+xyz}}
\index{wt\+\_\+xyz@{wt\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+xyz()}{wt\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:lm), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz }\end{DoxyParamCaption})}



Definition at line 445 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+wz().


\begin{DoxyCode}
445     \textcolor{comment}{!}
446     \textcolor{comment}{! 3 次元格子点データからスペクトルデータへ(正)変換する.}
447     \textcolor{comment}{!}
448     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz
449     \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
450     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}           :: wt\_xyz
451     \textcolor{comment}{!(out) 2 次元球面調和函数チェビシェフスペクトルデータ}
452 
453     wt\_xyz = wt\_wz(wa\_xya(xyz))
454 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a3306e656a7d69f406aa227a50c0095ae_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a1e8158e87c08227d0f866051348590a6}\label{namespacewt__wave__module_a1e8158e87c08227d0f866051348590a6}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wz\+\_\+laplapol2pol\+\_\+wz@{wz\+\_\+laplapol2pol\+\_\+wz}}
\index{wz\+\_\+laplapol2pol\+\_\+wz@{wz\+\_\+laplapol2pol\+\_\+wz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wz\+\_\+laplapol2pol\+\_\+wz()}{wz\_laplapol2pol\_wz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:km), public wt\+\_\+wave\+\_\+module\+::wz\+\_\+laplapol2pol\+\_\+wz (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:km), intent(in)}]{wz,  }\item[{character(len=2), intent(in), optional}]{cond,  }\item[{logical, intent(in), optional}]{new }\end{DoxyParamCaption})}



Definition at line 1414 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+lapla\+\_\+wt(), wt\+\_\+wz(), and wz\+\_\+wt().


\begin{DoxyCode}
1414     \textcolor{comment}{!}
1415     \textcolor{comment}{! 速度ポロイダルポテンシャルΦを▽^2Φから計算する.}
1416     \textcolor{comment}{!}
1417     \textcolor{comment}{! チェビシェフ格子点空間で境界条件を適用している. }
1418     \textcolor{comment}{! この関数を用いるためには wt\_Initial にて設定する}
1419     \textcolor{comment}{! チェビシェフ切断波数(lm)と鉛直格子点数(km)を等しく}
1420     \textcolor{comment}{! しておく必要がある. }
1421     \textcolor{comment}{!}
1422     \textcolor{comment}{! 速度ポロイダルポテンシャルΦを f = ▽^2Φから定める式は}
1423     \textcolor{comment}{!}
1424     \textcolor{comment}{!   ▽^2Φ = f}
1425     \textcolor{comment}{!     Φ = const. at boundaries.}
1426     \textcolor{comment}{!     ∂Φ/∂r = 0 at boundaries           (粘着条件) }
1427     \textcolor{comment}{!     or ∂^2Φ/∂r^2 = 0 at boundaries    (応力なし条件)}
1428     \textcolor{comment}{!}
1429     \textcolor{comment}{! 最初に呼ばれるときはオプショナル引数 new に関係なく行列が設定される.}
1430     \textcolor{comment}{!}
1431     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)},\textcolor{keywordtype}{intent(in)}  :: wz
1432     \textcolor{comment}{!(in) 入力▽^2φ分布}
1433 
1434     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}             :: wz\_laplapol2pol\_wz
1435     \textcolor{comment}{!(out) 出力ポロイダルポテンシャル分布}
1436 
1437     \textcolor{keywordtype}{character(len=2)}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: cond
1438     \textcolor{comment}{!(in) 境界条件スイッチ. 省略時は 'RR'}
1439     \textcolor{comment}{!     RR    : 両端粘着条件}
1440     \textcolor{comment}{!     RF    : 上端粘着, 下端応力なし条件}
1441     \textcolor{comment}{!     FR    : 上端応力なし, 下端粘着条件}
1442     \textcolor{comment}{!     FF    : 両端応力なし条件}
1443 
1444     \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(IN)}, \textcolor{keywordtype}{optional} :: new
1445     \textcolor{comment}{!(in) true だと境界条件計算用行列を強制的に新たに作る.}
1446     \textcolor{comment}{!     default は false.}
1447 
1448     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable}  :: alu
1449     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}    :: kp
1450 
1451     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}  :: wz\_work
1452     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:km,0:km)}           :: gg
1453     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:km,0:km)}           :: gg\_work
1454     \textcolor{keywordtype}{logical}                                 :: rigid1, rigid2   \textcolor{comment}{! 境界条件}
1455 
1456     \textcolor{keywordtype}{logical} :: new\_matrix = .false.
1457     \textcolor{keywordtype}{integer} :: k,n
1458     \textcolor{keywordtype}{save}    :: alu, kp
1459 
1460     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(cond)) \textcolor{keywordflow}{then}
1461        rigid1=.true. ; rigid2=.true.
1462     \textcolor{keywordflow}{else}
1463        \textcolor{keywordflow}{select case} (cond)
1464        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RR'})
1465           rigid1 = .true.  ; rigid2 = .true.
1466        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'RF'})
1467           rigid1 = .true.  ; rigid2 = .false.
1468        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FR'})
1469           rigid1 = .false. ; rigid2 = .true.
1470        \textcolor{keywordflow}{case} (\textcolor{stringliteral}{'FF'})
1471           rigid1 = .false. ; rigid2 = .false.
1472 \textcolor{keywordflow}{       case default}
1473           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wz\_LaplaPol2Pol\_wz'},\textcolor{stringliteral}{'B.C. not supported'})
1474 \textcolor{keywordflow}{       end select}
1475 \textcolor{keywordflow}{    endif}
1476 
1477     \textcolor{keywordflow}{if} (.not. \textcolor{keyword}{present}(new)) \textcolor{keywordflow}{then}
1478        new\_matrix=.false.
1479     \textcolor{keywordflow}{else} 
1480        new\_matrix=new
1481 \textcolor{keywordflow}{    endif}
1482 
1483     \textcolor{keywordflow}{if} ( wz\_laplapol2pol\_wz\_first .OR. new\_matrix ) \textcolor{keywordflow}{then}
1484        wz\_laplapol2pol\_wz\_first = .false.
1485 
1486        \textcolor{keywordflow}{if} ( lm /= km ) \textcolor{keywordflow}{then}
1487           \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'wz\_LaplaPol2Pol\_wz'}, &
1488                \textcolor{stringliteral}{'Chebyshev truncation and number of grid points should be same.'})
1489 \textcolor{keywordflow}{       endif}
1490 
1491        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(alu) ) \textcolor{keyword}{deallocate}(alu)
1492        \textcolor{keywordflow}{if} ( \textcolor{keyword}{allocated}(kp) ) \textcolor{keyword}{deallocate}(kp)
1493        \textcolor{keyword}{allocate}(alu(2*(nm-mm+1),0:km,0:km),kp(2*(nm-mm+1),0:km))
1494 
1495        \textcolor{keywordflow}{do} k=0,km
1496           wz\_work = 0.0d0 ; wz\_work(:,k) = 1.0d0
1497 
1498           \textcolor{comment}{! 各水平波数に関して独立の式}
1499           alu(:,:,k) = wz\_wt(wt\_lapla\_wt(wt\_wz(wz\_work)))
1500 \textcolor{keywordflow}{       enddo}
1501 
1502        \textcolor{comment}{! 運動学的条件. 流線は境界で一定}
1503        gg = 0.0d0
1504        \textcolor{keywordflow}{do} k=0,km
1505           gg(k,k)=1.0d0
1506 \textcolor{keywordflow}{       enddo}
1507        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
1508           alu(n,0,:)   = gg(:,0)
1509           alu(n,km,:)  = gg(:,km)
1510 \textcolor{keywordflow}{       enddo}
1511 
1512        \textcolor{comment}{! 力学的条件粘着条件 }
1513        \textcolor{keywordflow}{if} ( rigid1 ) \textcolor{keywordflow}{then}
1514           gg\_work=az\_at(at\_dr\_at(at\_az(gg)))
1515        \textcolor{keywordflow}{else}
1516           gg\_work=az\_at(at\_dr\_at(at\_dr\_at(at\_az(gg))))
1517 \textcolor{keywordflow}{       endif}
1518        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
1519           alu(n,1,:) = gg\_work(:,0)
1520 \textcolor{keywordflow}{       enddo}
1521 
1522        \textcolor{comment}{! 力学的条件粘着条件 }
1523        \textcolor{keywordflow}{if} ( rigid2 ) \textcolor{keywordflow}{then}
1524           gg\_work=az\_at(at\_dr\_at(at\_az(gg)))
1525        \textcolor{keywordflow}{else}
1526           gg\_work=az\_at(at\_dr\_at(at\_dr\_at(at\_az(gg))))
1527 \textcolor{keywordflow}{       endif}
1528        \textcolor{keywordflow}{do} n=1,2*(nm-mm+1)
1529           alu(n,km-1,:) = gg\_work(:,km)
1530 \textcolor{keywordflow}{       enddo}
1531 
1532        \textcolor{keyword}{call }ludecomp(alu,kp)
1533 
1534        \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'wz\_LaplaPol2Pol\_wz'},&
1535             \textcolor{stringliteral}{'Matrix to apply  b.c. newly produced.'})
1536 \textcolor{keywordflow}{    endif}
1537 
1538     wz\_work         = wz
1539     wz\_work(:,1)    = 0.0d0               \textcolor{comment}{! 力学的条件}
1540     wz\_work(:,km-1) = 0.0d0               \textcolor{comment}{! 力学的条件}
1541     wz\_work(:,0)    = 0.0d0               \textcolor{comment}{! 運動学的条件}
1542     wz\_work(:,km)   = 0.0d0               \textcolor{comment}{! 運動学的条件 }
1543 
1544     wz\_laplapol2pol\_wz = lusolve(alu,kp,wz\_work)
1545 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a1e8158e87c08227d0f866051348590a6_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a37b86ab9187af36b32d1ac116a452aca}\label{namespacewt__wave__module_a37b86ab9187af36b32d1ac116a452aca}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wz\+\_\+wt@{wz\+\_\+wt}}
\index{wz\+\_\+wt@{wz\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wz\+\_\+wt()}{wz\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:km), public wt\+\_\+wave\+\_\+module\+::wz\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 484 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
484     \textcolor{comment}{!}
485     \textcolor{comment}{! スペクトルデータから水平スペクトル・動径格子点データへ(正)変換する.}
486     \textcolor{comment}{!}
487     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
488     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
489     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}             :: wz\_wt
490     \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ}
491 
492     wz\_wt = az\_at(wt)
493 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a673b22ca4be4ecfdd76dc6ee25932dfe}\label{namespacewt__wave__module_a673b22ca4be4ecfdd76dc6ee25932dfe}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wz\+\_\+xyz@{wz\+\_\+xyz}}
\index{wz\+\_\+xyz@{wz\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wz\+\_\+xyz()}{wz\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(2$\ast$(nm-\/mm+1),0\+:km), public wt\+\_\+wave\+\_\+module\+::wz\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz }\end{DoxyParamCaption})}



Definition at line 471 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
471     \textcolor{comment}{!}
472     \textcolor{comment}{! 3 次元格子データから水平スペクトル・動径格子点データへ(正)変換する.}
473     \textcolor{comment}{!}
474     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)}   :: xyz
475     \textcolor{comment}{!(in) 3 次元経度緯度動径格子点データ}
476     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}             :: wz\_xyz
477     \textcolor{comment}{!(out) 2 次元球面調和函数スペクトル・動径格子点データ}
478 
479     wz\_xyz = wa\_xya(xyz)
480 
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a5e1cedb4539c91a536c9823db7e8837b}\label{namespacewt__wave__module_a5e1cedb4539c91a536c9823db7e8837b}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz@{xyz\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz}}
\index{xyz\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz@{xyz\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz()}{xyz\_div\_xyz\_xyz\_xyz()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz (\begin{DoxyParamCaption}\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vlon,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vlat,  }\item[{real(8), dimension(0\+:im-\/1,1\+:jm,0\+:km), intent(in)}]{xyz\+\_\+\+Vrad }\end{DoxyParamCaption})}



Definition at line 681 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+div\+\_\+xyz\+\_\+xyz\+\_\+xyz(), xyz\+\_\+lat, xyz\+\_\+rad, and xyz\+\_\+wt().


\begin{DoxyCode}
681     \textcolor{comment}{!}
682     \textcolor{comment}{! ベクトル成分である 3 つの格子データに発散を作用させる.}
683     \textcolor{comment}{!}
684     \textcolor{comment}{! 第 1, 2 ,3 引数(u,v,w)がそれぞれベクトルの経度成分, 緯度成分, }
685     \textcolor{comment}{! 動径成分を表す.}
686     \textcolor{comment}{!}
687     \textcolor{comment}{! 極の特異性を回避するためにベクトル場に cosφ/r の重みをかけて}
688     \textcolor{comment}{! 計算している. }
689     \textcolor{comment}{!}
690     \textcolor{comment}{!      div V = (r/cosφ)・div (Vcosφ/r) + V\_φtanφ/r + V\_r/r}
691     \textcolor{comment}{! }
692     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlon
693     \textcolor{comment}{!(in) ベクトル場の経度成分}
694 
695     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vlat
696     \textcolor{comment}{!(in) ベクトル場の緯度成分}
697 
698     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}, \textcolor{keywordtype}{intent(in)} :: xyz\_vrad
699     \textcolor{comment}{!(in) ベクトル場の動径成分}
700 
701     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}             :: xyz\_div\_xyz\_xyz\_xyz
702     \textcolor{comment}{!(out) ベクトル場の発散}
703 
704     xyz\_div\_xyz\_xyz\_xyz &
705          = xyz\_rad/cos(xyz\_lat) &
706          * xyz\_wt(wt\_div\_xyz\_xyz\_xyz(xyz\_vlon*cos(xyz\_lat)/xyz\_rad,  &
707          xyz\_vlat*cos(xyz\_lat)/xyz\_rad,  &
708          xyz\_vrad*cos(xyz\_lat)/xyz\_rad ))&
709          + xyz\_vlat*tan(xyz\_lat)/xyz\_rad &
710          + xyz\_vrad/xyz\_rad
711 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a5e1cedb4539c91a536c9823db7e8837b_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a18279b524c4c89b1d54432516cdf1d25}\label{namespacewt__wave__module_a18279b524c4c89b1d54432516cdf1d25}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+gradlat\+\_\+wt@{xyz\+\_\+gradlat\+\_\+wt}}
\index{xyz\+\_\+gradlat\+\_\+wt@{xyz\+\_\+gradlat\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+gradlat\+\_\+wt()}{xyz\_gradlat\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+gradlat\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 609 of file wt\+\_\+wave\+\_\+module.\+f90.



References wz\+\_\+wt(), and xyz\+\_\+rad.


\begin{DoxyCode}
609     \textcolor{comment}{!}
610     \textcolor{comment}{! スペクトルデータに勾配型経度微分 1/r ∂/∂φ を作用させる.}
611     \textcolor{comment}{!}
612     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
613     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
614 
615     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}    :: xyz\_gradlat\_wt
616     \textcolor{comment}{!(out) 勾配型緯度微分を作用された 2 次元スペクトルデータ}
617 
618     xyz\_gradlat\_wt = xya\_gradlat\_wa(wz\_wt(wt))/xyz\_rad
619 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a18279b524c4c89b1d54432516cdf1d25_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a044171037b40f5b59d01af260da6307d}\label{namespacewt__wave__module_a044171037b40f5b59d01af260da6307d}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+gradlon\+\_\+wt@{xyz\+\_\+gradlon\+\_\+wt}}
\index{xyz\+\_\+gradlon\+\_\+wt@{xyz\+\_\+gradlon\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+gradlon\+\_\+wt()}{xyz\_gradlon\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+gradlon\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 594 of file wt\+\_\+wave\+\_\+module.\+f90.



References wz\+\_\+wt(), and xyz\+\_\+rad.


\begin{DoxyCode}
594     \textcolor{comment}{!}
595     \textcolor{comment}{! スペクトルデータに勾配型経度微分 1/rcosφ・∂/∂λ}
596     \textcolor{comment}{! を作用させる.}
597     \textcolor{comment}{!}
598     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
599     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
600 
601     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}   :: xyz\_gradlon\_wt
602     \textcolor{comment}{!(out) 勾配型経度微分を作用された 2 次元スペクトルデータ}
603 
604     xyz\_gradlon\_wt = xya\_gradlon\_wa(wz\_wt(wt))/xyz\_rad
605 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a044171037b40f5b59d01af260da6307d_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_aadd2472aa8c352b97082cfad2d20b782}\label{namespacewt__wave__module_aadd2472aa8c352b97082cfad2d20b782}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+kgrad\+\_\+wt@{xyz\+\_\+kgrad\+\_\+wt}}
\index{xyz\+\_\+kgrad\+\_\+wt@{xyz\+\_\+kgrad\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+kgrad\+\_\+wt()}{xyz\_kgrad\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+kgrad\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 800 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+drad\+\_\+wt(), xyz\+\_\+gradlat\+\_\+wt(), xyz\+\_\+lat, and xyz\+\_\+wt().


\begin{DoxyCode}
800     \textcolor{comment}{!}
801     \textcolor{comment}{! 入力スペクトルデータに対応する格子データに軸方向微分 }
802     \textcolor{comment}{!}
803     \textcolor{comment}{!    k・▽ = cosφ/r ∂/∂φ + sinφ∂/∂r }
804     \textcolor{comment}{!}
805     \textcolor{comment}{! を作用させた格子データが返される. }
806     \textcolor{comment}{! ここでベクトル k は球の中心から北極向きの単位ベクトルである.}
807     \textcolor{comment}{!}
808     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
809     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
810 
811     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}                     :: xyz\_kgrad\_wt
812     \textcolor{comment}{!(out) 軸方向微分を作用された 2 次元スペクトルデータ}
813 
814     xyz\_kgrad\_wt =  cos(xyz\_lat)*xyz\_gradlat\_wt(wt) &
815          + sin(xyz\_lat)*xyz\_wt(wt\_drad\_wt(wt))
816 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_aadd2472aa8c352b97082cfad2d20b782_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a5c96168e6c584f33c4b20cfecaa565b5}\label{namespacewt__wave__module_a5c96168e6c584f33c4b20cfecaa565b5}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+rotlat\+\_\+wt\+\_\+wt@{xyz\+\_\+rotlat\+\_\+wt\+\_\+wt}}
\index{xyz\+\_\+rotlat\+\_\+wt\+\_\+wt@{xyz\+\_\+rotlat\+\_\+wt\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+rotlat\+\_\+wt\+\_\+wt()}{xyz\_rotlat\_wt\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+rotlat\+\_\+wt\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+Vlon,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+Vrad }\end{DoxyParamCaption})}



Definition at line 738 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+rotrad\+\_\+wt(), xyz\+\_\+gradlon\+\_\+wt(), and xyz\+\_\+wt().


\begin{DoxyCode}
738     \textcolor{comment}{!}
739     \textcolor{comment}{! ベクトル場の経度成分, 動径成分である第 1, 2 引数 Vlon, Vrad から}
740     \textcolor{comment}{! 回転の緯度成分 }
741     \textcolor{comment}{!}
742     \textcolor{comment}{!    1/r ∂(r Vlon)/∂r - 1/rcosφ・∂Vrad/∂λ}
743     \textcolor{comment}{!}
744     \textcolor{comment}{! を計算する.}
745     \textcolor{comment}{!}
746     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_vlon
747     \textcolor{comment}{!(in) ベクトル場の経度成分}
748 
749     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_vrad
750     \textcolor{comment}{!(in) ベクトル場の動径成分}
751 
752     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}                     :: xyz\_rotlat\_wt\_wt
753     \textcolor{comment}{!(out) ベクトル場の回転の緯度成分}
754 
755     xyz\_rotlat\_wt\_wt =   xyz\_wt(wt\_rotrad\_wt(wt\_vlon)) &
756          - xyz\_gradlon\_wt(wt\_vrad) 
757 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a5c96168e6c584f33c4b20cfecaa565b5_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a2dab130f43d6c79ba6e6393a2e0a9ee4}\label{namespacewt__wave__module_a2dab130f43d6c79ba6e6393a2e0a9ee4}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+rotlon\+\_\+wt\+\_\+wt@{xyz\+\_\+rotlon\+\_\+wt\+\_\+wt}}
\index{xyz\+\_\+rotlon\+\_\+wt\+\_\+wt@{xyz\+\_\+rotlon\+\_\+wt\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+rotlon\+\_\+wt\+\_\+wt()}{xyz\_rotlon\_wt\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+rotlon\+\_\+wt\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+Vrad,  }\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt\+\_\+\+Vlat }\end{DoxyParamCaption})}



Definition at line 715 of file wt\+\_\+wave\+\_\+module.\+f90.



References wt\+\_\+rotrad\+\_\+wt(), xyz\+\_\+gradlat\+\_\+wt(), and xyz\+\_\+wt().


\begin{DoxyCode}
715     \textcolor{comment}{!}
716     \textcolor{comment}{! ベクトル場の動径成分, 緯度成分である第 1, 2 引数 Vrad, Vlat から}
717     \textcolor{comment}{! 回転の経度成分 }
718     \textcolor{comment}{!}
719     \textcolor{comment}{!    1/r ∂Vrad/∂φ-1/r ∂(r Vlat)/∂r を計算する.}
720     \textcolor{comment}{!}
721     \textcolor{comment}{! を計算する}
722     \textcolor{comment}{!}
723     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_vrad
724     \textcolor{comment}{!(in) ベクトル場の動径成分}
725 
726     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt\_vlat
727     \textcolor{comment}{!(in) ベクトル場の緯度成分}
728 
729     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}                     :: xyz\_rotlon\_wt\_wt
730     \textcolor{comment}{!(out) ベクトル場の回転の経度成分}
731 
732     xyz\_rotlon\_wt\_wt =   xyz\_gradlat\_wt(wt\_vrad) &
733          - xyz\_wt(wt\_rotrad\_wt(wt\_vlat))
734 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a2dab130f43d6c79ba6e6393a2e0a9ee4_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_a7128b228c727dccd0f5b4b3f89628e67}\label{namespacewt__wave__module_a7128b228c727dccd0f5b4b3f89628e67}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+wt@{xyz\+\_\+wt}}
\index{xyz\+\_\+wt@{xyz\+\_\+wt}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+wt()}{xyz\_wt()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+wt (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:lm), intent(in)}]{wt }\end{DoxyParamCaption})}



Definition at line 432 of file wt\+\_\+wave\+\_\+module.\+f90.



References wz\+\_\+wt().


\begin{DoxyCode}
432     \textcolor{comment}{!}
433     \textcolor{comment}{! スペクトルデータから 3 次元格子点データへ(逆)変換する.}
434     \textcolor{comment}{!}
435     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:lm)}, \textcolor{keywordtype}{intent(in)} :: wt
436     \textcolor{comment}{!(in) 2 次元球面調和函数チェビシェフスペクトルデータ}
437     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}               :: xyz\_wt
438     \textcolor{comment}{!(out) 3 次元経度緯度動径格子点データ}
439 
440     xyz\_wt = xya\_wa(wz\_wt(wt))
441 
\end{DoxyCode}
Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{namespacewt__wave__module_a7128b228c727dccd0f5b4b3f89628e67_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{namespacewt__wave__module_aa5208f59c5d2ef0874f2965845b57e53}\label{namespacewt__wave__module_aa5208f59c5d2ef0874f2965845b57e53}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+wz@{xyz\+\_\+wz}}
\index{xyz\+\_\+wz@{xyz\+\_\+wz}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+wz()}{xyz\_wz()}}
{\footnotesize\ttfamily real(8) function, dimension(0\+:im-\/1,1\+:jm,0\+:km), public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+wz (\begin{DoxyParamCaption}\item[{real(8), dimension(2$\ast$(nm-\/mm+1),0\+:km), intent(in)}]{wz }\end{DoxyParamCaption})}



Definition at line 458 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
458     \textcolor{comment}{!}
459     \textcolor{comment}{! 水平スペクトル・動径格子点データから 3 次元格子点データへ(逆)変換する.}
460     \textcolor{comment}{!}
461     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(2*(nm-mm+1),0:km)}, \textcolor{keywordtype}{intent(in)} :: wz
462     \textcolor{comment}{!(in) 2 次元球面調和函数スペクトル・動径格子点データ}
463     \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(0:im-1,1:jm,0:km)}               :: xyz\_wz
464     \textcolor{comment}{!(out) 3 次元経度緯度動径格子点データ}
465 
466     xyz\_wz = xya\_wa(wz)
467 
\end{DoxyCode}


\subsection{Variable Documentation}
\mbox{\Hypertarget{namespacewt__wave__module_a4daa01b62b245f34fc10f1224edaf4bc}\label{namespacewt__wave__module_a4daa01b62b245f34fc10f1224edaf4bc}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wt\+\_\+vmiss@{wt\+\_\+vmiss}}
\index{wt\+\_\+vmiss@{wt\+\_\+vmiss}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wt\+\_\+vmiss}{wt\_vmiss}}
{\footnotesize\ttfamily real(8), public wt\+\_\+wave\+\_\+module\+::wt\+\_\+vmiss = -\/999.\+0}



Definition at line 312 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
312   \textcolor{keywordtype}{real(8)} :: wt\_vmiss = -999.0        \textcolor{comment}{! 欠損値}
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a7abf4ebde326c7481b1fd0ac686d6bd7}\label{namespacewt__wave__module_a7abf4ebde326c7481b1fd0ac686d6bd7}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!wz\+\_\+rad@{wz\+\_\+rad}}
\index{wz\+\_\+rad@{wz\+\_\+rad}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{wz\+\_\+rad}{wz\_rad}}
{\footnotesize\ttfamily real(8), dimension(\+:,\+:), allocatable, save, public wt\+\_\+wave\+\_\+module\+::wz\+\_\+rad}



Definition at line 310 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
310   \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:)}, \textcolor{keywordtype}{allocatable}   :: wz\_rad           \textcolor{comment}{! 座標}
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a31f4e8fb69fe358762200cdd6ee7f17b}\label{namespacewt__wave__module_a31f4e8fb69fe358762200cdd6ee7f17b}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+lat@{xyz\+\_\+lat}}
\index{xyz\+\_\+lat@{xyz\+\_\+lat}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+lat}{xyz\_lat}}
{\footnotesize\ttfamily real(8), dimension(\+:,\+:,\+:), allocatable, save, public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+lat}



Definition at line 309 of file wt\+\_\+wave\+\_\+module.\+f90.


\begin{DoxyCode}
309   \textcolor{keywordtype}{real(8)}, \textcolor{keywordtype}{dimension(:,:,:)}, \textcolor{keywordtype}{allocatable} :: xyz\_lat, xyz\_rad \textcolor{comment}{! 座標}
\end{DoxyCode}
\mbox{\Hypertarget{namespacewt__wave__module_a253bd72d47b9ce4a5d27884c97828c90}\label{namespacewt__wave__module_a253bd72d47b9ce4a5d27884c97828c90}} 
\index{wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}!xyz\+\_\+rad@{xyz\+\_\+rad}}
\index{xyz\+\_\+rad@{xyz\+\_\+rad}!wt\+\_\+wave\+\_\+module@{wt\+\_\+wave\+\_\+module}}
\subsubsection{\texorpdfstring{xyz\+\_\+rad}{xyz\_rad}}
{\footnotesize\ttfamily real(8), dimension(\+:,\+:,\+:), allocatable, save, public wt\+\_\+wave\+\_\+module\+::xyz\+\_\+rad}



Definition at line 309 of file wt\+\_\+wave\+\_\+module.\+f90.

