%表題   MATH2 数学処理上位パッケージ
%
%履歴
%\Drireki{
%         original 石岡圭一
%        }
%
\Dchapterhead
\label{shtlib}

\section{概要}

これは, スペクトル(球面調和関数)変換を行なうサブルーチンパッケージであり,
球面調和関数展開の係数からグリッドデータ、およびその逆の変換を行なう.
このパッケージは, データ解析を念頭において設計されており,
等間隔グリッドデータを扱えるという特長がある.
また, スペクトルで与えられたデータの解析を念頭におき, 逆変換系のルーチ
ンを充実させている.
このパッケージの内部ではFFTLIBのサブルーチンを用いている.
\vspace{1em}

切断波数$M$(三角切断)のスペクトル逆変換は, 以下のように表せる:
\begin{equation}
G(\lambda,\varphi)=\sum^M_{n=0}\sum^n_{m=-n}
S^m_nP^m_n(\sin\varphi)e^{im\lambda}.
\end{equation}
または, ルジャンドル逆変換:
\begin{equation}
W^m(\varphi)\equiv\sum^M_{n=|m|}S^m_nP^m_n(\sin\varphi)
\end{equation}
を導入すると、
\begin{equation}
G(\lambda,\varphi)=\sum^M_{m=-M}W^m(\varphi)e^{im\lambda}
\end{equation}
と, ルジャンドル逆変換とフーリエ逆変換の積として表される.
ここに, $\lambda$: 経度, $\varphi$: 緯度である.
\vspace{1em}

また, $P^m_n(\mu)$は2に正規化されたルジャンドル陪関数で, 以下のように
定義される:
\begin{equation}
P^m_n(\mu)\equiv\sqrt{(2n+1)\frac{(n-m)!}{(n+m)!}}\frac1{2^nn!}(1-\mu^2)^{m/2}
\frac{d^{n+m}}{d\mu^{n+m}}(\mu^2-1)^n,
\end{equation}
\begin{equation}
\int^1_{-1}\{P^m_n(\mu)\}^2d\mu=2.
\end{equation}
\vspace{1em}

また, スペクトル逆変換は以下のように表せる:
\begin{equation}
S^m_n=\frac1{4\pi}\int^{2\pi}_0\int^{\pi/2}_{-\pi/2}
G(\lambda,\varphi)P^m_n(\sin\varphi)e^{-im\lambda}\cos\varphi d\varphi
d\lambda .
\end{equation}
逆変換の場合と同様に, フーリエ正変換を,
\begin{equation}
W^m(\varphi)\equiv\frac1{2\pi}\int^{2\pi}_0
G(\lambda,\varphi)e^{-im\lambda}d\lambda
\end{equation}
と導入すると,
\begin{equation}
S^m_n=\frac12\int^{\pi/2}_{-\pi/2}W^m(\varphi)P^m_n(\sin\varphi)\cos\varphi
d\varphi
\end{equation}
と, フーリエ正変換とルジャンドル正変換の積として表される.
\vspace{1em}

$G(\lambda,\varphi)$が実数であるとすると, $S^m_n$および
$W^m(\varphi)$は以下の関係を満たしている必要がある:
\begin{equation}
W^{-m}(\varphi)=\{W^m(\varphi)\}^{*}
\end{equation}
\begin{equation}
S^{-m}_n=\{S^m_n\}^{*}
\end{equation}
ここに, $\{ \}^{*}$は複素共役を表す.
従って, $W^m(\sin\varphi)$および$S^m_n$は$m\ge 0$の範囲だけを求めれば
良い. さらに, 上の制約から, $W^0(\sin\varphi)$および$S^0_n$は実数である.
\vspace{1em}

本ライブラリは,
スペクトルデータ($S^m_n$)
$\to$ 等間隔緯度円上のウエーブデータ($W^m(\varphi_j)$)
$\to$ 等間隔格子点上のグリッドデータ($G(\lambda_i,\varphi_j)$)
の逆変換を(1$\sim$ 3)式に基づいて行うルーチン群,
等間隔格子点上のグリッドデータ($G(\lambda_i,\varphi_j)$)
$\to$ 等間隔緯度円上のウエーブデータ($W^m(\varphi_j)$)
$\to$ スペクトルデータ($S^m_n$)
の正変換を(6$\sim$8)式に基づいて行うルーチン群および
そして, その他の補助ルーチン群よりなっている.
\vspace{1em}

ここに, 格子点の経度$\lambda_i$, 緯度$\varphi_j$は分割数$I,J$によって
以下のように定められるものとする:
\begin{equation}
\lambda_i=\frac{\pi i}{I},\quad i=-I,-I+1,\cdots,0,\cdots,I-1,I ,
\end{equation}
\begin{equation}
\varphi_j=\frac{\pi j}{2J},\quad j=-J,-J+1,\cdots,0,\cdots,J-1,J .
\end{equation}

\section{サブルーチンのリスト}

\vspace{1em}
\begin{tabular}{ll}
{\tt SHTINT(MM,JM,IM,WORK)} & 初期化ルーチン \\
{\tt SHTNML(MM,N,M,LR,LI)} & スペクトルデータの格納位置の計算\\
{\tt SHTLAP(MM,IND,A,B)} & スペクトルデータへのラプラシアンの演算\\
{\tt SHTS2W(MM,JM,ISW,S,W,WORK)} & スペクトルデータからウエーブデータへの変換\\
{\tt SHTW2G(MM,JM,IM,W,G,WORK)} & ウエーブデータからグリッドデータへの変換\\
{\tt SHTS2G(MM,JM,IM,ISW,S,W,G,WORK)} & スペクトルデータから
                                        グリッドデータへの変換\\
{\tt SHTG2W(MM,JM,IM,G,W,WORK)} & グリッドデータからウエーブデータへの変換\\
{\tt SHTW2S(MM,JM,ISW,W,S,WORK)} & ウエーブデータからスペクトルデータへの変換\\
{\tt SHTG2S(MM,JM,IM,ISW,G,W,S,WORK)} & グリッドデータからスペクトル
                                        データへの変換\\
{\tt SHTSWA(MM,JM,ISW,M1,M2,S,W,WORK)} & {\tt SHTS2W}の下位ルーチン
                                         (波数区間指定)\\
{\tt SHTWGA(MM,JM,IM,M1,M2,W,G,WORK)} & {\tt SHTW2G}の下位ルーチン
                                        (波数区間指定)\\
{\tt SHTSGA(MM,JM,IM,ISW,M1,M2,S,W,G,WORK)} & {\tt SHTS2G}の下位ルーチ
                                              ン(波数区間指定)\\
{\tt SHTSWM(MM,JM,M,ISW,S,WR,WI,WORK)} & {\tt SHTS2W}の下位ルーチン
                                         (ある波数成分のみ)\\
{\tt SHTWGM(MM,JM,IM,M,WR,WI,G,WORK)} & {\tt SHTW2G}の下位ルーチン
                                        (ある波数成分のみ)\\
{\tt SHTSGM(MM,JM,IM,M,ISW,S,WR,WI,G,WORK)} & {\tt SHTS2G}の下位ルーチ
                                              ン(ある波数成分のみ)\\
{\tt SHTSWZ(MM,JM,ISW,S,WZ,WORK)} & {\tt SHTS2W}の下位ルーチン(帯状成分のみ)\\
{\tt SHTWGZ(JM,IM,WZ,G)} & {\tt SHTW2G}の下位ルーチン(帯状成分のみ)\\
{\tt SHTSGZ(MM,JM,IM,ISW,S,WZ,G,WORK)} & {\tt SHTS2G}の下位ルーチン
                                         (帯状成分のみ)\\
{\tt SHTSWJ(MM,JM,ISW,J,M1,M2,S,WJ,WORK)} & {\tt SHTS2W}の下位ルーチン
                                            (緯度指定)\\
{\tt SHTWGJ(MM,IM,M1,M2,WJ,GJ,WORK)} & {\tt SHTW2G}の下位ルーチン(緯度指定)\\
{\tt SHTSGJ(MM,JM,IM,ISW,J,M1,M2,S,WJ,GJ,WORK)} & {\tt SHTS2G}の下位
                                                  ルーチン(緯度指定)\\
{\tt SHTFUN(MM,JM,M,FUN,WORK)} & ルジャンドル陪関数の計算\\
{\tt SHTLFW(MM,JM,M,ISW,WM,SM,WORK)} & ルジャンドル正変換\\
{\tt SHTLBW(MM,JM,M,ISW,SM,WM,WORK)} & ルジャンドル逆変換
\end{tabular}

