\hypertarget{namespacew__module__base}{}\section{w\+\_\+module\+\_\+base Module Reference}
\label{namespacew__module__base}\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}


\hyperlink{namespacew__module}{w\+\_\+module} の下部モジュール\+: 基本変換  


\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \hyperlink{namespacew__module__base_a62d59c610b698210a4546275708034ed}{w\+\_\+base\+\_\+initial} (n\+\_\+in, i\+\_\+in, j\+\_\+in, np\+\_\+in)
\begin{DoxyCompactList}\small\item\em スペクトル変換の格子点数, 波数および O\+P\+E\+N\+MP 使用時の 最大スレッド数を設定する. \end{DoxyCompactList}\item 
real(dp) function, dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1, 1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), public \hyperlink{namespacew__module__base_a8c988f23cc273731d93e9d3e249b64e5}{xy\+\_\+w} (w\+\_\+data, ipow, iflag)
\begin{DoxyCompactList}\small\item\em スペクトルデータから格子データへ変換する(1 層用). \end{DoxyCompactList}\item 
real(dp) function, dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1) $\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), public \hyperlink{namespacew__module__base_ac2c97a298ba072c23d3a148018998ac5}{w\+\_\+xy} (xy\+\_\+data, ipow, iflag)
\begin{DoxyCompactList}\small\item\em 格子データからスペクトルデータへ(正)変換する(1 層用). \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacew__module__base_a496a5089e89bf920c12c56f29089d51b}{w\+\_\+streampotential2vector} (w\+\_\+\+Psi, w\+\_\+\+Chi, xy\+\_\+U, xy\+\_\+V)
\begin{DoxyCompactList}\small\item\em 流線・ポテンシャル(スペクトルデータ)から速度場(格子データ)に (逆)変換する(1 層用) \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacew__module__base_af7cb0ea7552281e416b5045af7ab3837}{w\+\_\+vector2vordiv} (xy\+\_\+U, xy\+\_\+V, w\+\_\+\+Vor, w\+\_\+\+Div)
\begin{DoxyCompactList}\small\item\em 速度場(格子データ)から渦度・発散(スペクトルデータ)に (正)変換する(1 層用) \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacew__module__base_a972eb288433b29554df9c889f8ef54e6}{w\+\_\+vectorcoslat2vordiv} (xy\+\_\+\+U\+Cos\+Lat, xy\+\_\+\+V\+Cos\+Lat, w\+\_\+\+Vor, w\+\_\+\+Div)
\begin{DoxyCompactList}\small\item\em 速度場(格子データ)から渦度・発散(スペクトルデータ)に (正)変換する(1 層用) \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacew__module__base_ae3ecd1eb76adbc1e2690660b030fd7de}{w\+\_\+base\+\_\+finalize}
\begin{DoxyCompactList}\small\item\em 終了処理(割り付け配列の解放)をおこなう \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
real(dp), dimension(\+:), allocatable, public \hyperlink{namespacew__module__base_ae875323468dc412db617d265fcf88b2a}{x\+\_\+lon}
\begin{DoxyCompactList}\small\item\em 緯度座標 \end{DoxyCompactList}\item 
real(dp), dimension(\+:), allocatable, public \hyperlink{namespacew__module__base_a58d8184c4227f4fa64acabca0ac5c977}{x\+\_\+lon\+\_\+weight}
\begin{DoxyCompactList}\small\item\em 緯度座標重み \end{DoxyCompactList}\item 
real(dp), dimension(\+:), allocatable, public \hyperlink{namespacew__module__base_a4c34a1556ac18599ef73000b6b583579}{y\+\_\+lat}
\begin{DoxyCompactList}\small\item\em 経度座標 \end{DoxyCompactList}\item 
real(dp), dimension(\+:), allocatable, public \hyperlink{namespacew__module__base_a52e4db808630002b9e3e75b55f5efcb2}{y\+\_\+lat\+\_\+weight}
\begin{DoxyCompactList}\small\item\em 経度座標重み \end{DoxyCompactList}\item 
real(dp), dimension(\+:,\+:), allocatable, public \hyperlink{namespacew__module__base_a916da409070cdd92318081f7e13c1861}{xy\+\_\+lon}
\begin{DoxyCompactList}\small\item\em 緯度座標(2次元配列) \end{DoxyCompactList}\item 
real(dp), dimension(\+:,\+:), allocatable, public \hyperlink{namespacew__module__base_a263eec8100074f932519e03dcdc7fe70}{xy\+\_\+lat}
\begin{DoxyCompactList}\small\item\em 経度座標(2次元配列) \end{DoxyCompactList}\item 
integer(8), save, public \hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im} =64
\begin{DoxyCompactList}\small\item\em 格子点の設定(東西) \end{DoxyCompactList}\item 
integer(8), save, public \hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm} =32
\begin{DoxyCompactList}\small\item\em 格子点の設定(南北) \end{DoxyCompactList}\item 
integer(8), save, public \hyperlink{namespacew__module__base_acf736a465b5b61d1052551a2f4a01887}{mm}
\begin{DoxyCompactList}\small\item\em m の切断波数 \end{DoxyCompactList}\item 
integer(8), save, public \hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}
\begin{DoxyCompactList}\small\item\em n の切断波数 \end{DoxyCompactList}\item 
integer(8), save, public \hyperlink{namespacew__module__base_a638a700c782dbddc42ad712e56732039}{nm}
\begin{DoxyCompactList}\small\item\em n の最大値 \end{DoxyCompactList}\item 
integer(8), dimension(\+:), allocatable, save, public \hyperlink{namespacew__module__base_a400ef58b518e0ddf5e4f885208ae0024}{it}
\begin{DoxyCompactList}\small\item\em 変換用配列 \end{DoxyCompactList}\item 
integer(8), dimension(\+:), allocatable, save, public \hyperlink{namespacew__module__base_a7c9706ef51676d40eac61bb222053461}{jc}
\begin{DoxyCompactList}\small\item\em 変換用配列 \end{DoxyCompactList}\item 
real(dp), dimension(\+:), allocatable, save, public \hyperlink{namespacew__module__base_af74bd8b86875db7085f703fa75e696fd}{t}
\begin{DoxyCompactList}\small\item\em 変換用配列 \end{DoxyCompactList}\item 
real(dp), dimension(\+:), allocatable, save, public \hyperlink{namespacew__module__base_a626a9654aebdfa598bdcffce400789cf}{r}
\begin{DoxyCompactList}\small\item\em 変換用配列 \end{DoxyCompactList}\item 
real(dp), dimension(\+:,\+:), pointer, save, public \hyperlink{namespacew__module__base_aa1ced0b2e40cdb42fe30aefa3b143488}{p}
\begin{DoxyCompactList}\small\item\em 変換用配列 \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{namespacew__module}{w\+\_\+module} の下部モジュール\+: 基本変換 

\begin{DoxyCopyright}{Copyright}
Copyright (C) S\+P\+M\+O\+D\+EL Development Group, 2019. License is M\+I\+T/\+X11. see \hyperlink{COPYRIGHT}{C\+O\+P\+Y\+R\+I\+G\+HT} in detail 
\end{DoxyCopyright}
\begin{DoxyAuthor}{Author}
Shin-\/ichi Takehiro, Youhei S\+A\+S\+A\+KI 
\end{DoxyAuthor}
\begin{DoxyWarning}{Warning}
本モジュールを直接呼ぶ事は想定されていないことに注意されたい． ユーザは \hyperlink{namespacew__module}{w\+\_\+module} を呼ぶこと． 
\end{DoxyWarning}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacew__module__base_ae3ecd1eb76adbc1e2690660b030fd7de}\label{namespacew__module__base_ae3ecd1eb76adbc1e2690660b030fd7de}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!w\+\_\+base\+\_\+finalize@{w\+\_\+base\+\_\+finalize}}
\index{w\+\_\+base\+\_\+finalize@{w\+\_\+base\+\_\+finalize}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{w\+\_\+base\+\_\+finalize()}{w\_base\_finalize()}}
{\footnotesize\ttfamily subroutine, public w\+\_\+module\+\_\+base\+::w\+\_\+base\+\_\+finalize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



終了処理(割り付け配列の解放)をおこなう 



Definition at line 524 of file w\+\_\+module\+\_\+base.\+f90.



References it, jc, nn, r, t, x\+\_\+lon, x\+\_\+lon\+\_\+weight, xy\+\_\+lat, xy\+\_\+lon, y\+\_\+lat, and y\+\_\+lat\+\_\+weight.


\begin{DoxyCode}
524     \textcolor{keywordflow}{if} ( .not. w\_base\_initialize ) \textcolor{keywordflow}{then}
525       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'W'},\textcolor{stringliteral}{'w\_base\_Finalize'},&
526         \textcolor{stringliteral}{'w\_base\_module not initialized yet'})
527       \textcolor{keywordflow}{return}
528 \textcolor{keywordflow}{    endif}
529 
530     \textcolor{keyword}{deallocate}(it)
531     \textcolor{keyword}{deallocate}(t)
532     \textcolor{keyword}{deallocate}(r)
533     \textcolor{keyword}{deallocate}(jc)
534     \textcolor{keyword}{deallocate}(c)
535 
536     \textcolor{keyword}{call }mxfree(pp)
537     \textcolor{keyword}{call }mxfree(pg)
538     \textcolor{keyword}{call }mxfree(pg1)
539     \textcolor{keyword}{call }mxfree(pg2)
540     \textcolor{keyword}{call }mxfree(pw)
541     \textcolor{keyword}{call }mxfree(pww)
542 
543     \textcolor{keyword}{deallocate}(x\_lon)
544     \textcolor{keyword}{deallocate}(x\_lon\_weight)
545     \textcolor{keyword}{deallocate}(xy\_lon)
546     \textcolor{keyword}{deallocate}(y\_lat)
547     \textcolor{keyword}{deallocate}(y\_lat\_weight)
548     \textcolor{keyword}{deallocate}(xy\_lat)
549     w\_base\_initialize = .false.
550 
551     \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'w\_base\_Finalize'},&
552       \textcolor{stringliteral}{'w\_base\_module (2019/10/04) is finalized'})
553 
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a62d59c610b698210a4546275708034ed}\label{namespacew__module__base_a62d59c610b698210a4546275708034ed}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!w\+\_\+base\+\_\+initial@{w\+\_\+base\+\_\+initial}}
\index{w\+\_\+base\+\_\+initial@{w\+\_\+base\+\_\+initial}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{w\+\_\+base\+\_\+initial()}{w\_base\_initial()}}
{\footnotesize\ttfamily subroutine, public w\+\_\+module\+\_\+base\+::w\+\_\+base\+\_\+initial (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{n\+\_\+in,  }\item[{integer, intent(in)}]{i\+\_\+in,  }\item[{integer, intent(in)}]{j\+\_\+in,  }\item[{integer, intent(in), optional}]{np\+\_\+in }\end{DoxyParamCaption})}



スペクトル変換の格子点数, 波数および O\+P\+E\+N\+MP 使用時の 最大スレッド数を設定する. 

\begin{DoxyWarning}{Warning}
実際の使用には上位サブルーチン \hyperlink{namespacew__module_a34cf65ed64bfeec316d31e8764e8ffc0}{w\+\_\+\+Initial} を用いること.
\end{DoxyWarning}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em i\+\_\+in} & 格子点数(東西)\\
\hline
\mbox{\tt in}  & {\em j\+\_\+in} & 格子点数(南北)\\
\hline
\mbox{\tt in}  & {\em n\+\_\+in} & 切断全波数\\
\hline
\mbox{\tt in}  & {\em np\+\_\+in} & O\+P\+E\+N\+MP での最大スレッド数 \\
\hline
\end{DoxyParams}


Definition at line 134 of file w\+\_\+module\+\_\+base.\+f90.



References im, it, jc, jm, mm, nm, nn, p, r, t, x\+\_\+lon, x\+\_\+lon\+\_\+weight, xy\+\_\+lat, xy\+\_\+lon, y\+\_\+lat, and y\+\_\+lat\+\_\+weight.


\begin{DoxyCode}
134 
135     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: i\_in
137     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: j\_in
139     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)} :: n\_in
141     \textcolor{keywordtype}{integer},\textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional} :: np\_in
142     \textcolor{keywordtype}{integer} :: i, j
143     im = i\_in
144     jm = j\_in
145     nn = n\_in
146     mm = nn
147     nm = nn+1
148 
149     \textcolor{keywordflow}{if} ( \textcolor{keyword}{present}(np\_in) )\textcolor{keywordflow}{then}
150       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'w\_base\_Initial'}, &
151                  \textcolor{stringliteral}{'Optional argnument np is dummy.'})
152 \textcolor{keywordflow}{    endif}
153 
154     \textcolor{keyword}{allocate}(t(im*3/2))
155     \textcolor{keyword}{allocate}(it(im/2))
156     \textcolor{keyword}{allocate}(r(((mm+1)*(2*nm-mm-1)+1)/4*3+(2*nm-mm)*(mm+1)/2+mm+1))
157     \textcolor{keyword}{allocate}(jc(mm*(2*nm-mm-1)/16+mm))
158     \textcolor{keyword}{call }mxallc(pp,jm/2*(2*mm+5))
159     \textcolor{keyword}{call }c\_f\_pointer(pp,p,[jm/2,2*mm+5])
160 
161     \textcolor{keyword}{call }mxallc(pg,jm*im)
162     \textcolor{keyword}{call }mxallc(pw,jm*im)
163     \textcolor{keyword}{call }mxallc(pg1,jm*im)
164     \textcolor{keyword}{call }mxallc(pg2,jm*im)
165     \textcolor{keyword}{call }mxallc(pww,jm*im*2)
166     \textcolor{keyword}{call }c\_f\_pointer(pg, g, [jm*im])
167     \textcolor{keyword}{call }c\_f\_pointer(pw, w, [jm*im])
168     \textcolor{keyword}{call }c\_f\_pointer(pg1, g1, [jm*im])
169     \textcolor{keyword}{call }c\_f\_pointer(pg2, g2, [jm*im])
170     \textcolor{keyword}{call }c\_f\_pointer(pww, ww, [jm*im]*2)
171 
172     \textcolor{keyword}{allocate}(c((mm+1)*(mm+1)))
173     \textcolor{keyword}{allocate}(x\_lon(0:im-1))
174     \textcolor{keyword}{allocate}(x\_lon\_weight(0:im-1))
175     \textcolor{keyword}{allocate}(xy\_lon(0:im-1,1:jm))
176     \textcolor{keyword}{allocate}(y\_lat(1:jm))
177     \textcolor{keyword}{allocate}(y\_lat\_weight(1:jm))
178     \textcolor{keyword}{allocate}(xy\_lat(0:im-1,1:jm))
179 
180     \textcolor{keyword}{call }sxini1(mm,nm,im,it,t,r)
181     \textcolor{keyword}{call }sxini2(mm,nm,jm,ig,p,r,jc)
182     \textcolor{keyword}{call }sxinic(mm,nn,c)
183 
184     \textcolor{keywordflow}{do} i=0,int(im)-1
185       x\_lon(i)        = 2*pi/im*i
186       x\_lon\_weight(i) = 2*pi/im
187 \textcolor{keywordflow}{    enddo}
188 
189     \textcolor{keywordflow}{do} j=1,int(jm)/2
190       y\_lat(jm/2+j)          =   asin(p(j,1))
191       y\_lat(jm/2-j+1)        = - asin(p(j,1))
192       y\_lat\_weight(jm/2+j)   =   2*p(j,2)
193       y\_lat\_weight(jm/2-j+1) =   2*p(j,2)
194 \textcolor{keywordflow}{    enddo}
195 
196     \textcolor{keywordflow}{do} j=1,int(jm)
197       xy\_lon(:,j) = x\_lon
198 \textcolor{keywordflow}{    enddo}
199 
200     \textcolor{keywordflow}{do} i=0,int(im)-1
201       xy\_lat(i,:) = y\_lat
202 \textcolor{keywordflow}{    enddo}
203 
204     w\_base\_initialize = .true.
205 
206     \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'M'},\textcolor{stringliteral}{'w\_base\_initial'},&
207       \textcolor{stringliteral}{'w\_base\_module (2019/10/04) is initialized'})
208 
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a496a5089e89bf920c12c56f29089d51b}\label{namespacew__module__base_a496a5089e89bf920c12c56f29089d51b}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!w\+\_\+streampotential2vector@{w\+\_\+streampotential2vector}}
\index{w\+\_\+streampotential2vector@{w\+\_\+streampotential2vector}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{w\+\_\+streampotential2vector()}{w\_streampotential2vector()}}
{\footnotesize\ttfamily subroutine, public w\+\_\+module\+\_\+base\+::w\+\_\+streampotential2vector (\begin{DoxyParamCaption}\item[{real(dp), dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), intent(in)}]{w\+\_\+\+Psi,  }\item[{real(dp), dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), intent(in)}]{w\+\_\+\+Chi,  }\item[{real(dp), dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), intent(out)}]{xy\+\_\+U,  }\item[{real(dp), dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), intent(out)}]{xy\+\_\+V }\end{DoxyParamCaption})}



流線・ポテンシャル(スペクトルデータ)から速度場(格子データ)に (逆)変換する(1 層用) 

スペクトル変換を用いず微分を計算するために, 変換回数が 2 回ですむ. \begin{align*} u \cosφ & = ∂χ/∂λ - \cosφ∂ψ/∂φ, \\ v \cosφ & = \cosφ∂χ/∂φ + ∂ψ/∂λ \end{align*}


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em w\+\_\+psi} & 流線関数\\
\hline
\mbox{\tt in}  & {\em w\+\_\+chi} & 速度ポテンシャル\\
\hline
\mbox{\tt out}  & {\em xy\+\_\+u} & 速度経度成分\\
\hline
\mbox{\tt out}  & {\em xy\+\_\+v} & 速度緯度成分 \\
\hline
\end{DoxyParams}


Definition at line 354 of file w\+\_\+module\+\_\+base.\+f90.



References im, it, jc, jm, mm, nm, nn, p, r, and t.


\begin{DoxyCode}
354 
355     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: w\_psi((nn+1)*(nn+1))
357     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: w\_chi((nn+1)*(nn+1))
359     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(out)}   :: xy\_u(0:im-1,1:jm)
361     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(out)}   :: xy\_v(0:im-1,1:jm)
362 
363     \textcolor{keywordtype}{real(DP)}             :: w\_xdata((mm+1)*(mm+1))
364     \textcolor{keywordtype}{real(DP)}             :: w\_ydata(nn+2+mm*(2*nn-mm+3))
365 \textcolor{comment}{!!$    real(DP)             :: w\_Ydata((mm+2)*(mm+2))}
366     \textcolor{keywordtype}{real(DP)}             :: w\_rdata1((2*nm+1-mm)*mm+nm+1)
367     \textcolor{keywordtype}{real(DP)}             :: w\_rdata2((2*nm+1-mm)*mm+nm+1)
368 \textcolor{comment}{!!$    real(DP)             :: w\_Rdata1((mm+2)*(mm+2))}
369 \textcolor{comment}{!!$    real(DP)             :: w\_Rdata2((mm+2)*(mm+2))}
370 
371     \textcolor{keywordflow}{if} ( .not. w\_base\_initialize ) \textcolor{keywordflow}{then}
372       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_StreamPotential2Vector'},&
373         \textcolor{stringliteral}{'w\_base\_module not initialize yet.'})
374 \textcolor{keywordflow}{    endif}
375     \textcolor{comment}{!}
376     \textcolor{comment}{! $ u \(\backslash\)cosφ = ∂χ/∂λ - \(\backslash\)cosφ∂ψ/∂φ $}
377     \textcolor{comment}{!}
378     \textcolor{keyword}{call }sxcs2x(mm,nn,w\_chi,w\_xdata)
379     \textcolor{keyword}{call }sxcs2y(mm,nn,w\_psi,w\_ydata,c)
380     \textcolor{keyword}{call }sxcrpk(mm,nn,nm,w\_xdata,w\_rdata1)
381     w\_rdata1 = w\_rdata1 - w\_ydata
382     \textcolor{comment}{!}
383     \textcolor{comment}{! $ v \(\backslash\)cosφ = \(\backslash\)cosφ∂χ/∂φ + ∂ψ/∂λ $}
384     \textcolor{comment}{!}
385     \textcolor{keyword}{call }sxcs2y(mm,nn,w\_chi,w\_ydata,c)
386     \textcolor{keyword}{call }sxcs2x(mm,nn,w\_psi,w\_xdata)
387     \textcolor{keyword}{call }sxcrpk(mm,nn,nm,w\_xdata,w\_rdata2)
388     w\_rdata2= w\_rdata2 + w\_ydata
389     \textcolor{comment}{!}
390     \textcolor{comment}{! u,v}
391     \textcolor{comment}{!}
392     \textcolor{keyword}{call }sxts2v(mm,nm,nm,im,jm,w\_rdata1,w\_rdata2,g1,g2,it,t,p,r,jc,ww,1\_8)
393     xy\_u = reshape(g1,(/im,jm/))
394     xy\_v = reshape(g2,(/im,jm/))
395     \textcolor{comment}{!! call sxts2v(mm,nm,nm,im,jm,w\_Rdata1,w\_Rdata2,xy\_U,xy\_V,it,t,p,r,jc,ww,1\_8)}
396 
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_af7cb0ea7552281e416b5045af7ab3837}\label{namespacew__module__base_af7cb0ea7552281e416b5045af7ab3837}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!w\+\_\+vector2vordiv@{w\+\_\+vector2vordiv}}
\index{w\+\_\+vector2vordiv@{w\+\_\+vector2vordiv}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{w\+\_\+vector2vordiv()}{w\_vector2vordiv()}}
{\footnotesize\ttfamily subroutine, public w\+\_\+module\+\_\+base\+::w\+\_\+vector2vordiv (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), intent(in)}]{xy\+\_\+U,  }\item[{real(dp), dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), intent(in)}]{xy\+\_\+V,  }\item[{real(dp), dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), intent(out)}]{w\+\_\+\+Vor,  }\item[{real(dp), dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), intent(out)}]{w\+\_\+\+Div }\end{DoxyParamCaption})}



速度場(格子データ)から渦度・発散(スペクトルデータ)に (正)変換する(1 層用) 

スペクトル変換を用いず微分を計算するために, 変換回数が 2 回ですむ. \begin{align} ζ = 1/\cosφ∂v/∂λ - 1/\cosφ ∂(u \cosφ)/∂φ, \\ D = 1/\cosφ∂u/∂λ + 1/\cosφ ∂(v \cosφ)/∂φ \end{align}


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em xy\+\_\+u} & 速度経度成分\\
\hline
\mbox{\tt in}  & {\em xy\+\_\+v} & 速度緯度成分\\
\hline
\mbox{\tt out}  & {\em w\+\_\+vor} & 流線関数\\
\hline
\mbox{\tt out}  & {\em w\+\_\+div} & 速度ポテンシャル \\
\hline
\end{DoxyParams}


Definition at line 410 of file w\+\_\+module\+\_\+base.\+f90.



References im, it, jc, jm, mm, nm, nn, p, r, and t.


\begin{DoxyCode}
410 
411     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: xy\_u(0:im-1,1:jm)
413     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: xy\_v(0:im-1,1:jm)
415     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(out)}   :: w\_vor((nn+1)*(nn+1))
417     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(out)}   :: w\_div((nn+1)*(nn+1))
418 
419     \textcolor{keywordtype}{real(DP)}             :: w\_xdata((mm+1)*(mm+1))
420     \textcolor{keywordtype}{real(DP)}             :: w\_ydata1((mm+2)*(mm+2))
421     \textcolor{keywordtype}{real(DP)}             :: w\_ydata2((mm+2)*(mm+2))
422     \textcolor{keywordtype}{real(DP)}             :: w\_data1((mm+1)*(mm+1))
423     \textcolor{keywordtype}{real(DP)}             :: w\_data2((mm+1)*(mm+1))
424 
425     \textcolor{keywordflow}{if} ( .not. w\_base\_initialize ) \textcolor{keywordflow}{then}
426       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_Vector2VorDiv'},&
427         \textcolor{stringliteral}{'w\_base\_module not initialize yet.'})
428 \textcolor{keywordflow}{    endif}
429 
430     \textcolor{comment}{!}
431     \textcolor{comment}{! $ 1/\(\backslash\)cosφ∂u/∂λ, 1/\(\backslash\)cosφ ∂(u \(\backslash\)cosφ)/∂φ$}
432     \textcolor{comment}{!}
433     g1 = reshape(xy\_u,(/im*jm/))
434     g2 = reshape(xy\_v,(/im*jm/))
435     \textcolor{keyword}{call }sxtv2s(mm,nm,nn+1,im,jm,w\_ydata1,w\_ydata2,g1,g2,it,t,p,r,jc,ww,1\_8)
436 \textcolor{comment}{!!    call sxtv2s(mm,nm,nn+1,im,jm,w\_Ydata1,w\_Ydata2,xy\_U,xy\_V,it,t,p,r,jc,ww,1\_8)}
437 
438     \textcolor{keyword}{call }sxcrpk(mm,nm,nn,w\_ydata1,w\_xdata)
439     \textcolor{keyword}{call }sxcs2x(mm,nn,w\_xdata,w\_div)
440     \textcolor{keyword}{call }sxcy2s(mm,nn,w\_ydata2,w\_data2,c)
441     \textcolor{comment}{!}
442     \textcolor{comment}{! $ 1/\(\backslash\)cosφ∂v/∂λ, 1/\(\backslash\)cosφ ∂(v \(\backslash\)cosφ)/∂φ $}
443     \textcolor{comment}{!}
444     \textcolor{keyword}{call }sxcrpk(mm,nm,nn,w\_ydata2,w\_xdata)
445     \textcolor{keyword}{call }sxcs2x(mm,nn,w\_xdata,w\_vor)
446     \textcolor{keyword}{call }sxcy2s(mm,nn,w\_ydata1,w\_data1,c)
447     \textcolor{comment}{!}
448     \textcolor{comment}{! Vorticity:}
449     \textcolor{comment}{! $ ζ = 1/\(\backslash\)cosφ∂v/∂λ - 1/\(\backslash\)cosφ ∂(u cosφ)/∂φ $}
450     \textcolor{comment}{!}
451     w\_vor = w\_vor - w\_data1
452     \textcolor{comment}{!}
453     \textcolor{comment}{! Divergence:}
454     \textcolor{comment}{! $  D = 1/\(\backslash\)cosφ∂u/∂λ + 1/\(\backslash\)cosφ ∂(v \(\backslash\)cosφ)/∂φ $}
455     \textcolor{comment}{!}
456     w\_div = w\_div + w\_data2
457 
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a972eb288433b29554df9c889f8ef54e6}\label{namespacew__module__base_a972eb288433b29554df9c889f8ef54e6}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!w\+\_\+vectorcoslat2vordiv@{w\+\_\+vectorcoslat2vordiv}}
\index{w\+\_\+vectorcoslat2vordiv@{w\+\_\+vectorcoslat2vordiv}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{w\+\_\+vectorcoslat2vordiv()}{w\_vectorcoslat2vordiv()}}
{\footnotesize\ttfamily subroutine, public w\+\_\+module\+\_\+base\+::w\+\_\+vectorcoslat2vordiv (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), intent(in)}]{xy\+\_\+\+U\+Cos\+Lat,  }\item[{real(dp), dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), intent(in)}]{xy\+\_\+\+V\+Cos\+Lat,  }\item[{real(dp), dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), intent(out)}]{w\+\_\+\+Vor,  }\item[{real(dp), dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), intent(out)}]{w\+\_\+\+Div }\end{DoxyParamCaption})}



速度場(格子データ)から渦度・発散(スペクトルデータ)に (正)変換する(1 層用) 

スペクトル変換を用いず微分を計算するために, 変換回数が 2 回ですむ. \begin{align*} ζ = 1/\cosφ∂v/∂λ - 1/\cosφ ∂(u \cosφ)/∂φ,\\ D = 1/\cosφ∂u/∂λ + 1/\cosφ ∂(v \cosφ)/∂φ \end{align*}


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em xy\+\_\+ucoslat} & 速度経度成分 $\ast$ cos(lat)\\
\hline
\mbox{\tt in}  & {\em xy\+\_\+vcoslat} & 速度緯度成分 $\ast$ cos(lat)\\
\hline
\mbox{\tt out}  & {\em w\+\_\+vor} & 流線関数\\
\hline
\mbox{\tt out}  & {\em w\+\_\+div} & 速度ポテンシャル \\
\hline
\end{DoxyParams}


Definition at line 471 of file w\+\_\+module\+\_\+base.\+f90.



References im, it, jc, jm, mm, nm, nn, p, r, and t.


\begin{DoxyCode}
471 
472     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: xy\_ucoslat(0:im-1,1:jm)
474     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: xy\_vcoslat(0:im-1,1:jm)
476     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(out)}   :: w\_vor((nn+1)*(nn+1))
478     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(out)}   :: w\_div((nn+1)*(nn+1))
479 
480     \textcolor{keywordtype}{real(DP)}             :: w\_xdata((mm+1)*(mm+1))
481     \textcolor{keywordtype}{real(DP)}             :: w\_ydata1((mm+2)*(mm+2))
482     \textcolor{keywordtype}{real(DP)}             :: w\_ydata2((mm+2)*(mm+2))
483     \textcolor{keywordtype}{real(DP)}             :: w\_data1((mm+1)*(mm+1))
484     \textcolor{keywordtype}{real(DP)}             :: w\_data2((mm+1)*(mm+1))
485 
486     \textcolor{keywordflow}{if} ( .not. w\_base\_initialize ) \textcolor{keywordflow}{then}
487       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_VectorCosLat2VorDiv'},&
488         \textcolor{stringliteral}{'w\_base\_module not initialize yet.'})
489 \textcolor{keywordflow}{    endif}
490     \textcolor{comment}{!}
491     \textcolor{comment}{! $1/\(\backslash\)cosφ∂u/∂λ, 1/\(\backslash\)cosφ∂(u cosφ)/∂φ$}
492     \textcolor{comment}{!}
493     g1 = reshape(xy\_ucoslat,(/im*jm/))
494     g2 = reshape(xy\_vcoslat,(/im*jm/))
495     \textcolor{keyword}{call }sxtv2s(mm,nm,nn+1,im,jm,w\_ydata1,w\_ydata2,g1,g2,it,t,p,r,jc,ww,2\_8)
496 \textcolor{comment}{!    call sxtv2s(mm,nm,nn+1,im,jm,w\_Ydata1,w\_Ydata2,xy\_UCosLat,xy\_VCosLat,it,t,p,r,jc,ww,2\_8)}
497 
498     \textcolor{keyword}{call }sxcrpk(mm,nm,nn,w\_ydata1,w\_xdata)
499     \textcolor{keyword}{call }sxcs2x(mm,nn,w\_xdata,w\_div)
500     \textcolor{keyword}{call }sxcy2s(mm,nn,w\_ydata2,w\_data2,c)
501     \textcolor{comment}{!}
502     \textcolor{comment}{! $1/\(\backslash\)cosφ∂v/∂λ, 1/\(\backslash\)cosφ∂(v cosφ)/∂φ$}
503     \textcolor{comment}{!}
504     \textcolor{keyword}{call }sxcrpk(mm,nm,nn,w\_ydata2,w\_xdata)
505     \textcolor{keyword}{call }sxcs2x(mm,nn,w\_xdata,w\_vor)
506     \textcolor{keyword}{call }sxcy2s(mm,nn,w\_ydata1,w\_data1,c)
507     \textcolor{comment}{!}
508     \textcolor{comment}{! Vorticity:}
509     \textcolor{comment}{!   $ζ = 1/\(\backslash\)cosφ∂v/∂λ - 1/\(\backslash\)cosφ∂(u \(\backslash\)cosφ)/∂φ$}
510     \textcolor{comment}{!}
511     w\_vor = w\_vor - w\_data1
512     \textcolor{comment}{!}
513     \textcolor{comment}{! Divergence:}
514     \textcolor{comment}{!   $D = 1/\(\backslash\)cosφ∂u/∂λ + 1/\(\backslash\)cosφ∂(v \(\backslash\)cosφ)/∂φ$}
515     \textcolor{comment}{!}
516     w\_div = w\_div + w\_data2
517 
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_ac2c97a298ba072c23d3a148018998ac5}\label{namespacew__module__base_ac2c97a298ba072c23d3a148018998ac5}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!w\+\_\+xy@{w\+\_\+xy}}
\index{w\+\_\+xy@{w\+\_\+xy}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{w\+\_\+xy()}{w\_xy()}}
{\footnotesize\ttfamily real(dp) function, dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), public w\+\_\+module\+\_\+base\+::w\+\_\+xy (\begin{DoxyParamCaption}\item[{real(dp), dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), intent(in)}]{xy\+\_\+data,  }\item[{integer, intent(in), optional}]{ipow,  }\item[{integer, intent(in), optional}]{iflag }\end{DoxyParamCaption})}



格子データからスペクトルデータへ(正)変換する(1 層用). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em xy\+\_\+data} & 格子点データ\\
\hline
\mbox{\tt in}  & {\em ipow} & 変換時に同時に作用させる $1/\cosφ$ の次数. 省略時は 0.\\
\hline
\mbox{\tt in}  & {\em iflag} & 変換の種類. 省略時は 0
\begin{DoxyItemize}
\item 0 \+: 通常の正変換(default)
\item -\/1 \+: 経度微分を作用させた正変換
\item 1 \+: 緯度微分 $\cosφ \cdot ∂/∂φ$ を作用させた正変換
\item 2 \+: $\sinφ$を作用させた正変換
\end{DoxyItemize}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
スペクトルデータ 
\end{DoxyReturn}


Definition at line 283 of file w\+\_\+module\+\_\+base.\+f90.



References im, it, jc, jm, mm, nm, nn, p, r, t, and xy\+\_\+lat.


\begin{DoxyCode}
283 
284     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: xy\_data(0:im-1,1:jm)
286     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: ipow
293     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: iflag
295     \textcolor{keywordtype}{real(DP)}               :: w\_xy((nn+1)*(nn+1))
296 
297     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{parameter}  :: ipow\_default  = 0
298     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{parameter}  :: iflag\_default = 0
299     \textcolor{keywordtype}{integer(8)} ipval, ifval
300     \textcolor{keywordtype}{real(DP)}             :: w\_xdata((mm+1)*(mm+1))
301     \textcolor{keywordtype}{real(DP)}             :: w\_ydata((mm+2)*(mm+2))
302 
303     \textcolor{keywordflow}{if} ( .not. w\_base\_initialize ) \textcolor{keywordflow}{then}
304       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_xy'},&
305         \textcolor{stringliteral}{'w\_base\_module not initialize yet.'})
306 \textcolor{keywordflow}{    endif}
307 
308     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(ipow)) \textcolor{keywordflow}{then}
309       ipval = ipow
310     \textcolor{keywordflow}{else}
311       ipval = ipow\_default
312 \textcolor{keywordflow}{    endif}
313 
314     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(iflag)) \textcolor{keywordflow}{then}
315       ifval = iflag
316     \textcolor{keywordflow}{else}
317       ifval = iflag\_default
318 \textcolor{keywordflow}{    endif}
319 
320     \textcolor{keywordflow}{if} ( ifval == 0 ) \textcolor{keywordflow}{then}
321       g = reshape(xy\_data,(/im*jm/))
322       \textcolor{keyword}{call }sxtg2s(mm,nm,nn,im,jm,w\_xy,g,it,t,p,r,jc,w,ipval)
323 \textcolor{comment}{!!       call sxtg2s(mm,nm,nn,im,jm,w\_xy,xy\_data,it,t,p,r,jc,w,ipval)}
324     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( ifval == -1 ) \textcolor{keywordflow}{then}
325       g = reshape(xy\_data,(/im*jm/))
326       \textcolor{keyword}{call }sxtg2s(mm,nm,nn,im,jm,w\_xdata,g,it,t,p,r,jc,w,ipval)
327 \textcolor{comment}{!!       call sxtg2s(mm,nm,nn,im,jm,w\_Xdata,xy\_data,it,t,p,r,jc,w,ipval)}
328       \textcolor{keyword}{call }sxcs2x(mm,nn,w\_xdata,w\_xy)
329     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( ifval == 1 ) \textcolor{keywordflow}{then}
330       g = reshape(xy\_data,(/im*jm/))
331       \textcolor{keyword}{call }sxtg2s(mm,nm,nn+1,im,jm,w\_ydata,g,it,t,p,r,jc,w,ipval)
332 \textcolor{comment}{!!       call sxtg2s(mm,nm,nn+1,im,jm,w\_Ydata,xy\_data,it,t,p,r,jc,w,ipval)}
333       \textcolor{keyword}{call }sxcy2s(mm,nn,w\_ydata,w\_xy,c)
334     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( ifval == 2 ) \textcolor{keywordflow}{then}
335       g = reshape(xy\_data*sin(xy\_lat),(/im*jm/))
336       \textcolor{keyword}{call }sxtg2s(mm,nm,nn,im,jm,w\_xy,g,it,t,p,r,jc,w,ipval)
337     \textcolor{keywordflow}{else}
338       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'w\_xy'},\textcolor{stringliteral}{'invalid value of iflag'})
339 \textcolor{keywordflow}{    endif}
340 
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a8c988f23cc273731d93e9d3e249b64e5}\label{namespacew__module__base_a8c988f23cc273731d93e9d3e249b64e5}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!xy\+\_\+w@{xy\+\_\+w}}
\index{xy\+\_\+w@{xy\+\_\+w}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{xy\+\_\+w()}{xy\_w()}}
{\footnotesize\ttfamily real(dp) function, dimension(0\+:\hyperlink{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}{im}-\/1,1\+:\hyperlink{namespacew__module__base_af43b1636567492abc94863c4a262622a}{jm}), public w\+\_\+module\+\_\+base\+::xy\+\_\+w (\begin{DoxyParamCaption}\item[{real(dp), dimension((\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)$\ast$(\hyperlink{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}{nn}+1)), intent(in)}]{w\+\_\+data,  }\item[{integer, intent(in), optional}]{ipow,  }\item[{integer, intent(in), optional}]{iflag }\end{DoxyParamCaption})}



スペクトルデータから格子データへ変換する(1 層用). 

\begin{DoxyReturn}{Returns}
格子点データ
\end{DoxyReturn}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em w\+\_\+data} & スペクトルデータ\\
\hline
\mbox{\tt in}  & {\em ipow} & 作用させる $1/\cosφ$ の次数. 省略時は 0.\\
\hline
\mbox{\tt in}  & {\em iflag} & 変換の種類. 省略時は 0
\begin{DoxyItemize}
\item 0 \+: 通常の逆変換(default)
\item -\/1 \+: 経度微分を作用させた逆変換
\item 1 \+: 緯度微分 $\cosφ \cdot ∂/∂ φ$ を作用させた逆変換
\item 2 \+: $\sinφ$を作用させた逆変換 
\end{DoxyItemize}\\
\hline
\end{DoxyParams}


Definition at line 215 of file w\+\_\+module\+\_\+base.\+f90.



References im, it, jc, jm, mm, nm, nn, p, r, t, and xy\+\_\+lat.


\begin{DoxyCode}
215 
216     \textcolor{keywordtype}{real(DP)}               :: xy\_w(0:im-1,1:jm)
218     \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{intent(in)}   :: w\_data((nn+1)*(nn+1))
220     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: ipow
227     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)}, \textcolor{keywordtype}{optional}  :: iflag
228     \textcolor{comment}{!}
229     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{parameter}  :: ipow\_default  = 0
230     \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{parameter}  :: iflag\_default = 0
231 
232     \textcolor{keywordtype}{real(DP)}             :: w\_xdata((mm+1)*(mm+1))
233     \textcolor{keywordtype}{real(DP)}             :: w\_ydata((mm+2)*(mm+2))
234 
235     \textcolor{keywordtype}{integer(8)} ipval, ifval
236 
237     \textcolor{keywordflow}{if} ( .not. w\_base\_initialize ) \textcolor{keywordflow}{then}
238       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'xy\_w'},&
239         \textcolor{stringliteral}{'w\_base\_module not initialize yet.'})
240 \textcolor{keywordflow}{    endif}
241 
242     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(ipow)) \textcolor{keywordflow}{then}
243       ipval = ipow
244     \textcolor{keywordflow}{else}
245       ipval = ipow\_default
246 \textcolor{keywordflow}{    endif}
247 
248     \textcolor{keywordflow}{if} (\textcolor{keyword}{present}(iflag)) \textcolor{keywordflow}{then}
249       ifval = iflag
250     \textcolor{keywordflow}{else}
251       ifval = iflag\_default
252 \textcolor{keywordflow}{    endif}
253 
254     \textcolor{keywordflow}{if} ( ifval == 0 ) \textcolor{keywordflow}{then}
255       \textcolor{keyword}{call }sxts2g(mm,nm,nn,im,jm,w\_data,g,it,t,p,r,jc,w,ipval)
256       xy\_w = reshape(g,(/im,jm/))
257 \textcolor{comment}{!!       call sxts2g(mm,nm,nn,im,jm,w\_data,xy\_w,it,t,p,r,jc,w,ipval)}
258     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( ifval == -1 ) \textcolor{keywordflow}{then}
259       \textcolor{keyword}{call }sxcs2x(mm,nn,w\_data,w\_xdata)
260       \textcolor{keyword}{call }sxts2g(mm,nm,nn,im,jm,w\_xdata,g,it,t,p,r,jc,w,ipval)
261       xy\_w = reshape(g,(/im,jm/))
262 \textcolor{comment}{!!       call sxts2g(mm,nm,nn,im,jm,w\_Xdata,xy\_w,it,t,p,r,jc,w,ipval)}
263     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( ifval == 1 ) \textcolor{keywordflow}{then}
264       \textcolor{keyword}{call }sxcs2y(mm,nn,w\_data,w\_ydata,c)
265       \textcolor{keyword}{call }sxts2g(mm,nm,nn+1\_8,im,jm,w\_ydata,g,it,t,p,r,jc,w,ipval)
266       xy\_w = reshape(g,(/im,jm/))
267 \textcolor{comment}{!!       call sxts2g(mm,nm,nn+1\_8,im,jm,w\_Ydata,xy\_w,it,t,p,r,jc,w,ipval)}
268     \textcolor{keywordflow}{else} \textcolor{keywordflow}{if}( ifval == 2 ) \textcolor{keywordflow}{then}
269       \textcolor{keyword}{call }sxts2g(mm,nm,nn,im,jm,w\_data,g,it,t,p,r,jc,w,ipval)
270       xy\_w = reshape(g,(/im,jm/)) * sin(xy\_lat)
271 \textcolor{comment}{!!       call sxts2g(mm,nm,nn,im,jm,w\_data,xy\_w,it,t,p,r,jc,w,ipval)}
272 \textcolor{comment}{!!       xy\_w = xy\_w * sin(xy\_Lat)}
273     \textcolor{keywordflow}{else}
274       \textcolor{keyword}{call }messagenotify(\textcolor{stringliteral}{'E'},\textcolor{stringliteral}{'xy\_w'},\textcolor{stringliteral}{'invalid value of iflag'})
275 \textcolor{keywordflow}{    endif}
276 
\end{DoxyCode}


\subsection{Variable Documentation}
\mbox{\Hypertarget{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}\label{namespacew__module__base_add7b500d69e02969a841ca8dd98bd902}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!im@{im}}
\index{im@{im}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{im}{im}}
{\footnotesize\ttfamily integer(8), save, public w\+\_\+module\+\_\+base\+::im =64}



格子点の設定(東西) 



Definition at line 66 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
66   \textcolor{keywordtype}{integer(8)}               :: im=64
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a400ef58b518e0ddf5e4f885208ae0024}\label{namespacew__module__base_a400ef58b518e0ddf5e4f885208ae0024}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!it@{it}}
\index{it@{it}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{it}{it}}
{\footnotesize\ttfamily integer(8), dimension(\+:), allocatable, save, public w\+\_\+module\+\_\+base\+::it}



変換用配列 



Definition at line 76 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
76   \textcolor{keywordtype}{integer(8)}, \textcolor{keywordtype}{allocatable}  :: it(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a7c9706ef51676d40eac61bb222053461}\label{namespacew__module__base_a7c9706ef51676d40eac61bb222053461}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!jc@{jc}}
\index{jc@{jc}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{jc}{jc}}
{\footnotesize\ttfamily integer(8), dimension(\+:), allocatable, save, public w\+\_\+module\+\_\+base\+::jc}



変換用配列 



Definition at line 78 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
78   \textcolor{keywordtype}{integer(8)}, \textcolor{keywordtype}{allocatable}  :: jc(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_af43b1636567492abc94863c4a262622a}\label{namespacew__module__base_af43b1636567492abc94863c4a262622a}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!jm@{jm}}
\index{jm@{jm}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{jm}{jm}}
{\footnotesize\ttfamily integer(8), save, public w\+\_\+module\+\_\+base\+::jm =32}



格子点の設定(南北) 



Definition at line 68 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
68   \textcolor{keywordtype}{integer(8)}               :: jm=32
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_acf736a465b5b61d1052551a2f4a01887}\label{namespacew__module__base_acf736a465b5b61d1052551a2f4a01887}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!mm@{mm}}
\index{mm@{mm}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{mm}{mm}}
{\footnotesize\ttfamily integer(8), save, public w\+\_\+module\+\_\+base\+::mm}



m の切断波数 



Definition at line 70 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
70   \textcolor{keywordtype}{integer(8)}               :: mm
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a638a700c782dbddc42ad712e56732039}\label{namespacew__module__base_a638a700c782dbddc42ad712e56732039}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!nm@{nm}}
\index{nm@{nm}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{nm}{nm}}
{\footnotesize\ttfamily integer(8), save, public w\+\_\+module\+\_\+base\+::nm}



n の最大値 



Definition at line 74 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
74   \textcolor{keywordtype}{integer(8)}               :: nm
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}\label{namespacew__module__base_acd71544ff5919faa78e3845f845c03dc}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!nn@{nn}}
\index{nn@{nn}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{nn}{nn}}
{\footnotesize\ttfamily integer(8), save, public w\+\_\+module\+\_\+base\+::nn}



n の切断波数 



Definition at line 72 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
72   \textcolor{keywordtype}{integer(8)}               :: nn
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_aa1ced0b2e40cdb42fe30aefa3b143488}\label{namespacew__module__base_aa1ced0b2e40cdb42fe30aefa3b143488}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!p@{p}}
\index{p@{p}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{p}{p}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:), pointer, save, public w\+\_\+module\+\_\+base\+::p}



変換用配列 



Definition at line 84 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
84   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{pointer}        :: p(:,:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a626a9654aebdfa598bdcffce400789cf}\label{namespacew__module__base_a626a9654aebdfa598bdcffce400789cf}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!r@{r}}
\index{r@{r}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{r}{r}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, save, public w\+\_\+module\+\_\+base\+::r}



変換用配列 



Definition at line 82 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
82   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: r(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_af74bd8b86875db7085f703fa75e696fd}\label{namespacew__module__base_af74bd8b86875db7085f703fa75e696fd}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!t@{t}}
\index{t@{t}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{t}{t}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, save, public w\+\_\+module\+\_\+base\+::t}



変換用配列 



Definition at line 80 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
80   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: t(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_ae875323468dc412db617d265fcf88b2a}\label{namespacew__module__base_ae875323468dc412db617d265fcf88b2a}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!x\+\_\+lon@{x\+\_\+lon}}
\index{x\+\_\+lon@{x\+\_\+lon}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{x\+\_\+lon}{x\_lon}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, public w\+\_\+module\+\_\+base\+::x\+\_\+lon}



緯度座標 



Definition at line 54 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
54   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: x\_lon(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a58d8184c4227f4fa64acabca0ac5c977}\label{namespacew__module__base_a58d8184c4227f4fa64acabca0ac5c977}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!x\+\_\+lon\+\_\+weight@{x\+\_\+lon\+\_\+weight}}
\index{x\+\_\+lon\+\_\+weight@{x\+\_\+lon\+\_\+weight}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{x\+\_\+lon\+\_\+weight}{x\_lon\_weight}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, public w\+\_\+module\+\_\+base\+::x\+\_\+lon\+\_\+weight}



緯度座標重み 



Definition at line 56 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
56   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: x\_lon\_weight(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a263eec8100074f932519e03dcdc7fe70}\label{namespacew__module__base_a263eec8100074f932519e03dcdc7fe70}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!xy\+\_\+lat@{xy\+\_\+lat}}
\index{xy\+\_\+lat@{xy\+\_\+lat}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{xy\+\_\+lat}{xy\_lat}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:), allocatable, public w\+\_\+module\+\_\+base\+::xy\+\_\+lat}



経度座標(2次元配列) 



Definition at line 64 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
64   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: xy\_lat(:,:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a916da409070cdd92318081f7e13c1861}\label{namespacew__module__base_a916da409070cdd92318081f7e13c1861}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!xy\+\_\+lon@{xy\+\_\+lon}}
\index{xy\+\_\+lon@{xy\+\_\+lon}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{xy\+\_\+lon}{xy\_lon}}
{\footnotesize\ttfamily real(dp), dimension(\+:,\+:), allocatable, public w\+\_\+module\+\_\+base\+::xy\+\_\+lon}



緯度座標(2次元配列) 



Definition at line 62 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
62   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: xy\_lon(:,:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a4c34a1556ac18599ef73000b6b583579}\label{namespacew__module__base_a4c34a1556ac18599ef73000b6b583579}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!y\+\_\+lat@{y\+\_\+lat}}
\index{y\+\_\+lat@{y\+\_\+lat}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{y\+\_\+lat}{y\_lat}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, public w\+\_\+module\+\_\+base\+::y\+\_\+lat}



経度座標 



Definition at line 58 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
58   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: y\_lat(:)
\end{DoxyCode}
\mbox{\Hypertarget{namespacew__module__base_a52e4db808630002b9e3e75b55f5efcb2}\label{namespacew__module__base_a52e4db808630002b9e3e75b55f5efcb2}} 
\index{w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}!y\+\_\+lat\+\_\+weight@{y\+\_\+lat\+\_\+weight}}
\index{y\+\_\+lat\+\_\+weight@{y\+\_\+lat\+\_\+weight}!w\+\_\+module\+\_\+base@{w\+\_\+module\+\_\+base}}
\subsubsection{\texorpdfstring{y\+\_\+lat\+\_\+weight}{y\_lat\_weight}}
{\footnotesize\ttfamily real(dp), dimension(\+:), allocatable, public w\+\_\+module\+\_\+base\+::y\+\_\+lat\+\_\+weight}



経度座標重み 



Definition at line 60 of file w\+\_\+module\+\_\+base.\+f90.


\begin{DoxyCode}
60   \textcolor{keywordtype}{real(DP)}, \textcolor{keywordtype}{allocatable}    :: y\_lat\_weight(:)
\end{DoxyCode}
