SHTLIB の初期化ルーチン. SHTLIB の他のサブルーチンを使用する前に必ず一度呼ばねばならない.
切断波数M, 東西分割数I, 南北分割数Jについては概要を参照.
SHTINT(MM,JM,IM,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) WORK (R) 出力.SHTLIBの他のルーチンで用いられる作業領域. 長さ(JM+1)*(4*JM+5*MM+14)+(MM+1)*(MM+1) +MM+2+6*IM+15の一次元配列.
スペクトルデータの格納位置を求める.
SHTLIBにおいて,スペクトルデータ(S^m_n)は概要に述べた制限をも とに,独立な(M+1)^2個の成分; S^0_0,S^0_1,...,S^0_M, ReS^1_1),ReS^1_2),...,ReS^1_M), ImS^1_1),ImS^1_2),...,ImS^1_M), ...,ReS^M_M),ImS^M_M) がこの順序で(長さ(MM+1)**2の配列に)格納されている. ここに,Re( )は実数部を,Im( )は虚数部を表す. このサブルーチンは切断波数M, S^m_nの全波数n, および帯状波数mか らReS^m_n)とImS^m_n)の配列中の格納位置を求めるものである.
SHTNML(MM,N,M,LR,LI)
MM (I) 入力.切断波数(M). N (I) 入力.全波数(n) M (I) 入力.帯状波数(m) LR (I) 出力.ReS^m_n) の格納位置. LI (I) 出力.ImS^m_n) の格納位置.
スペクトルデータに対してラプラシアンを演算する.
球面調和関数展開 G(λ,φ)=Σ^M_n=0Σ^n_m=-n A^m_nP^m_n(φ)e^imλ. に対して、水平Laplacian ∇^2≡ ∂^2^2φ∂λ^2 +∂φ∂φ(φ∂∂φ) を作用させると,球面調和関数の性質から, ∇^2 G(λ,φ) =Σ^M_n=0Σ^n_m=-n-n(n+1)A^m_nP^m_n(φ)e^imλ. となる.そこで, B^m_n≡ -n(n+1)A^m_n を導入すると, ∇^2 G(λ,φ) =Σ^M_n=0Σ^n_m=-nB^m_nP^m_n(φ)e^imλ. と表せる. また,逆に ∇^2 G(λ,φ) =Σ^M_n=0Σ^n_m=-nA^m_nP^m_n(φ)e^imλ. であるとき, B^m_n≡ -n(n+1)A^m_n を導入すると, G(λ,φ) =Σ^M_n=0Σ^n_m=-nB^m_nP^m_n(φ)e^imλ. と表せる.
本サブルーチンは, IND=1の場合はA^m_nからB^m_n≡ -n(n+1)A^m_nを, IND=-1の場合はA^m_nからB^m_n≡ -A^m_n/n(n+1)を 計算するものである。
SHTLAP(MM,IND,A,B)
MM (I) 入力.切断波数(M). IND (I) 入力.ラプラシアンの演算形式を指定する(上記定 義を参照). A (R) 入力.A^m_nが格納されている配列(長さおよび並び 方はSHTNMLを参照). B (R) 出力.B^m_nが格納る配列(長さおよび並び 方はSHTNMLを参照).
スペクトル逆変換の前半部分であるルジャンドル逆変換を行う.
ISW=0の場合,通常のルジャンドル逆変換; W^m(φ)≡Σ^M_n=|m|S^m_nP^m_n(φ) を行う.
ISW=1の場合,緯度微分のルジャンドル逆変換; W^m(φ)≡ddφΣ^M_n=|m|S^m_nP^m_n(φ) を行う.
ISW=-1の場合,経度微分のルジャンドル逆変換; W^m(φ)≡imφΣ^M_n=|m|S^m_nP^m_n(φ) を行う.
SHTS2W(MM,JM,ISW,S,W,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) ISW (I) 入力.変換の種類の指定(上記定義を参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照. W (R) 出力.ウエーブデータ. 長さ(2*JM+1)*(2*MM+1) の配列(並び方は以下の備考を参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の後半部分であるフーリエ逆変換を行う.
SHTS2Wによって作成されたウエーブデータに対して,フーリエ逆変換; G(λ,φ)=Σ^M_m=-MW^m(φ)e^imλ を行う.
SHTW2G(MM,JM,IM,W,G,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) W (R) 入力.ウエーブデータ. (長さおよび並び方はSHTS2Wを参照). G (R) 出力.グリッドデータ 長さ(2*IM+1)*(2*JM+1) の配列(並び方は以下の備考を参照). WORK (R) SHTINTで初期化された作業領域.
SHTS2W, SHTW2Gを連続して行うことにより, スペクトル逆変換を行う.
ISWおよび配列S, W, Gの意味は SHTS2WおよびSHTW2Gに同じである. 本サブルーチンは,SHTS2W, SHTW2Gを連続して 行うことにより,
ISW=0の場合,通常のスペクトル逆変換; G(λ,φ)=Σ^M_n=0Σ^n_m=-n S^m_nP^m_n(φ)e^imλ. を行う.
ISW=1の場合,緯度微分のスペクトル逆変換; G(λ,φ)=∂∂φΣ^M_n=0Σ^n_m=-n S^m_nP^m_n(φ)e^imλ. を行う.
ISW=-1の場合,経度微分のスペクトル逆変換; G(λ,φ)=∂∂λΣ^M_n=0Σ^n_m=-n S^m_nP^m_n(φ)e^imλ. を行う.
SHTS2G(MM,JM,IM,ISW,S,W,G,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) ISW (I) 入力.変換の種類の指定(上記定義を参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). W (R) 出力.ウエーブデータ. (長さおよび並び方はSHTS2Wを参照). G (R) 出力.グリッドデータ. (長さおよび並び方はSHTW2Gを参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル正変換の前半部分であるフーリエ正変換を行う.
グリッドデータに対して,フーリエ正変換; W^m(φ)≡2π∫^2π_0 G(λ,φ)e^-imλdλ を行う.
SHTG2W(MM,JM,IM,G,W,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) G (R) 入力.グリッドデータ (長さおよび並び方はSHTW2Gを参照). W (R) 出力.ウエーブデータ (長さおよび並び方はSHTS2Wを参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル正変換の後半部分であるルジャンドル正変換を行う.
ISW=0の場合,通常のルジャンドル正変換; S^m_n=∫^π/2_-π/2W^m(φ)P^m_n(φ)φ dφ を行う.
ISW=1の場合,緯度微分のルジャンドル正変換; S^m_n=∫^π/2_-π/2 dφ dφ {φ W^m(φ)P^m_n(φ)φ dφ を行う.
ISW=-1の場合,経度微分のルジャンドル正変換; S^m_n=∫^π/2_-π/2 imφW^m(φ)P^m_n(φ)φ dφ を行う.
SHTW2S(MM,JM,ISW,W,S,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) ISW (I) 入力.変換の種類の指定(上記定義を参照) W (R) 入力.ウエーブデータ (長さおよび並び方はSHTS2Wを参照). S (R) 出力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WORK (R) SHTINTで初期化された作業領域.
SHTG2W, SHTW2Sを連続して行うことにより, スペクトル正変換を行う.
ISWおよび配列S, W, Gの意味は SHTG2WおよびSHTW2Sに同じである. 本サブルーチンは,SHTG2W, SHTW2Sを連続して 行うことにより,
ISW=0の場合,通常のスペクトル正変換; S^m_n=4π∫^2π_0∫^π/2_-π/2 G(λ,φ)P^m_n(φ)e^-imλφ dφ dλ . を行う.
ISW=1の場合,緯度微分のスペクトル正変換; S^m_n=4π∫^2π_0∫^π/2_-π/2 ∂φ∂φ {φ G(λ,φ) P^m_n(φ)e^-imλφ dφ dλ . を行う.
ISW=-1の場合,経度微分のスペクトル正変換; S^m_n=4π∫^2π_0∫^π/2_-π/2 ∂φ∂λ{G(λ,φ) P^m_n(φ)e^-imλφ dφ dλ . を行う.
SHTG2S(MM,JM,IM,ISW,G,W,S,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) ISW (I) 入力.変換の種類の指定(上記定義を参照) G (R) 入力.グリッドデータ. (長さおよび並び方はSHTW2Gを参照). W (R) 出力.ウエーブデータ. (長さおよび並び方はSHTS2Wを参照). S (R) 出力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の前半部分であるルジャンドル逆変換を 指定された波数区間のみについて行う.
スペクトルデータS^m_nから,ウエーブデータW^m(φ) への変換をM1 |m|M2の波数範囲のみについて行う. 変換式はSHTS2Wを参照.
SHTSWA(MM,JM,ISW,M1,M2,S,W,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) ISW (I) 入力.変換の種類の指定(SHTS2Wを参照) M1 (I) 入力.変換する波数区間の最小値(上記定義を参照) M2 (I) 入力.変換する波数区間の最大値(上記定義を参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). W (R) 出力.ウエーブデータ (長さおよび並び方はSHTS2Wを参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の後半部分であるフーリエ逆変換を 指定された波数区間のみについて行う.
ウエーブデータW^m(φ)からグリッドデータG(λ,φ) への変換をM1 |m|M2の波数範囲のみについて行う. 変換式はSHTW2Gを参照.
SHTWGA(MM,JM,IM,M1,M2,W,G,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) M1 (I) 入力.変換する波数区間の最小値(上記定義を参照) M2 (I) 入力.変換する波数区間の最大値(上記定義を参照) W (R) 入力.ウエーブデータ. (長さおよび並び方はSHTS2Wを参照). G (R) 出力.グリッドデータ (長さおよび並び方はSHTW2Gを参照). WORK (R) SHTINTで初期化された作業領域.
SHTSWA, SHTWGAを連続して行うことにより, スペクトル逆変換を指定された波数区間のみについて行う.
SHTSWA, SHTWGAを参照.
SHTSGA(MM,JM,IM,ISW,M1,M2,S,W,G,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) ISW (I) 入力.変換の種類の指定(SHTS2Gを参照) M1 (I) 入力.変換する波数区間の最小値(SHTSWAを参照) M2 (I) 入力.変換する波数区間の最大値(SHTSWAを参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). W (R) 出力.ウエーブデータ. (長さおよび並び方はSHTS2Wを参照). G (R) 出力.グリッドデータ. (長さおよび並び方はSHTW2Gを参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の前半部分であるルジャンドル逆変換を 指定された一つの波数成分のみについて行う.
スペクトルデータS^m_nから,ウエーブデータW^m(φ) への変換を指定された一つの波数成分 m=M(>0)のみについて行う. 変換式はSHTS2Wを参照.
SHTSWM(MM,JM,M,ISW,S,WR,WI,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) M (I) 入力.変換する波数(上記定義を参照) ISW (I) 入力.変換の種類の指定(SHTS2Wを参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WR (R) 出力.W^m(φ)の実数部分. 長さ2*JM+1の配列(並び方は備考を参照). WI (R) 出力.W^m(φ)の虚数部分. 長さ2*JM+1の配列(並び方は備考を参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の後半部分であるフーリエ逆変換を 指定された一つの波数成分のみについて行う.
ウエーブデータW^m(φ)からグリッドデータG(λ,φ) への変換を指定された一つの波数成分m=M(>0)のみについて行う. 変換式はSHTW2Gを参照.
SHTWGM(MM,JM,IM,M,WR,WI,G,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) M (I) 入力.変換する波数(上記定義を参照) WR (R) 入力.W^m(φ)の実数部分. (長さおよび並び方はSHTSWMを参照). WI (R) 入力.W^m(φ)の虚数部分. (長さおよび並び方はSHTSWMを参照). G (R) 出力.グリッドデータ (長さおよび並び方はSHTW2Gを参照). WORK (R) SHTINTで初期化された作業領域.
SHTSWM, SHTWGMを連続して行うことにより, スペクトル逆変換を指定された一つの波数成分のみについて行う.
SHTSWM, SHTWGMを参照.
SHTSGM(MM,JM,IM,M,ISW,S,WR,WI,G,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) M (I) 入力.変換する波数(SHTSWMを参照) ISW (I) 入力.変換の種類の指定(SHTS2Gを参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WR (R) 出力.W^m(φ)の実数部分. (長さおよび並び方はSHTSWMを参照). WI (R) 出力.W^m(φ)の虚数部分. (長さおよび並び方はSHTSWMを参照). G (R) 出力.グリッドデータ (長さおよび並び方はSHTW2Gを参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の前半部分であるルジャンドル逆変換を 帯状成分のみについて行う.
スペクトルデータS^m_nから,ウエーブデータW^m(φ) への変換を帯状成分m=0のみについて行う. 変換式はSHTS2Wを参照.
SHTSWZ(MM,JM,ISW,S,WZ,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) ISW (I) 入力.変換の種類の指定(SHTS2Wを参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WZ (R) 出力.W^0(φ)が格納される. 長さ2*JM+1の配列(並び方は備考を参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の後半部分であるフーリエ逆変換を 帯状成分のみについて行う.
ウエーブデータW^m(φ)からグリッドデータG(λ,φ) への変換を帯状成分m=0のみについて行う. 変換式はSHTW2Gを参照.
SHTWGZ(JM,IM,WZ,G)
JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) WZ (R) 入力.ウエーブデータ(W^0(φ)) (長さおよび並び方はSHTSWZを参照). G (R) 出力.グリッドデータ (長さおよび並び方はSHTW2Gを参照).
SHTSWZ, SHTWGZを連続して行うことにより, スペクトル逆変換を帯状成分のみについて行う.
SHTSWZ, SHTWGZを参照.
SHTSGZ(MM,JM,IM,ISW,S,WZ,G,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) ISW (I) 入力.変換の種類の指定(SHTS2Gを参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WZ (R) 出力.ウエーブデータ(W^0(φ)) (長さおよび並び方はSHTSWZを参照). G (R) 出力.グリッドデータ (長さおよび並び方はSHTW2Gを参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の前半部分であるルジャンドル逆変換を 指定された一つの緯度円上で指定された波数区間のみについて行う.
スペクトルデータS^m_nから,ウエーブデータW^m(φ) 指定された一つの緯度円φ_j上で M1 |m|M2の波数範囲のみについて行う. 変換式はSHTS2Wを参照.
SHTSWJ(MM,JM,ISW,J,M1,M2,S,WJ,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) ISW (I) 入力.変換の種類の指定(SHTS2Wを参照). J (I) 入力.変換を行う緯度円の指定(備考を参照). M1 (I) 入力.変換する波数区間の最小値(上記定義を参照) M2 (I) 入力.変換する波数区間の最大値(上記定義を参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WJ (R) 出力.W^m(φ_j) が格納される. 長さ2*MM+1の配列(並び方は備考を参照). WORK (R) SHTINTで初期化された作業領域.
スペクトル逆変換の後半部分であるフーリエ逆変換を 一つの緯度円上のウエーブデータに対して 指定された波数区間のみについて行う.
一つの緯度円φ_j上において, ウエーブデータW^m(φ_j)から グリッドデータG(λ,φ_j) への変換を指定された M1 |m|M2の波数範囲のみについて行う. 変換式はSHTW2Gを参照.
SHTWGJ(MM,IM,M1,M2,WJ,GJ,WORK)
MM (I) 入力.切断波数(M). IM (I) 入力.東西分割数の1/2(I). M1 (I) 入力.変換する波数区間の最小値(上記定義を参照). M2 (I) 入力.変換する波数区間の最大値(上記定義を参照). WJ (R) 入力.W^m(φ_j) (長さおよび並び方はSHTSWJを参照). GJ (R) 出力.グリッドデータ. 長さ2*IM+1の配列(並び方は備考を参照). WORK (R) SHTINTで初期化された作業領域.
SHTSWJ, SHTWGJを連続して行うことにより, スペクトル逆変換を指定された一つの緯度円上で 指定された波数区間のみについて行う.
SHTSWJ, SHTWGJを参照.
SHTSGJ(MM,JM,IM,ISW,J,M1,M2,S,WJ,GJ,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) IM (I) 入力.東西分割数の1/2(I) ISW (I) 入力.変換の種類の指定(SHTS2Gを参照). J (I) 入力.変換を行う緯度円の指定(SHTSWJを参照). M1 (I) 入力.変換する波数区間の最小値(SHTSWJを参照) M2 (I) 入力.変換する波数区間の最大値(SHTSWJを参照) S (R) 入力.スペクトルデータ (長さおよび並び方はSHTNMLを参照). WJ (R) 出力.W^m(φ_j) (長さおよび並び方はSHTSWJを参照). GJ (R) 出力.グリッドデータ. (長さおよび並び方はSHTWGJを参照). WORK (R) SHTINTで初期化された作業領域.
ルジャンドル陪関数を計算する.
指定された帯状波数0 m Mのルジャンドル陪関数; P^m_n(φ) (n=m,m+1,...,M) を求める(ルジャンドル陪関数の定義は概要を参照).
SHTFUN(MM,JM,M,FUN,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) M (I) 入力.求めるルジャンドル陪関数の帯状波数(m). FUN (R) P^m_n(φ)が格納される長さ (2*JM+1)*(MM-M+1) の配列(並び方は備考を参照). WORK (R) SHTINTで初期化された作業領域.
ルジャンドル正変換を行う.
帯状波数m( 0)の実ウエーブデータW^m(φ)に対して,
ISW=0の場合,通常のルジャンドル正変換; S^m_n=∫^π/2_-π/2W^m(φ)P^m_n(φ)φ dφ を行う.
ISW=1の場合,緯度微分のルジャンドル正変換; S^m_n=∫^π/2_-π/2 ddφ {W^m(φ)P^m_n(φ)φ dφ を行う.
ISW=-1の場合,経度微分のルジャンドル正変換; S^m_n=∫^π/2_-π/2 -mφW^m(φ)P^m_n(φ)φ dφ を行う.
SHTLFW(MM,JM,M,ISW,WM,SM,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) ISW (I) 入力.変換の種類の指定(上記定義を参照) M (I) 入力.変換を行う帯状波数(m). WM (R) 入力.ウエーブデータ. (長さおよび並び方はSHTLBWを参照). SM (R) 出力.スペクトルデータ. (長さおよび並び方はSHTLBWを参照). WORK (R) SHTINTで初期化された作業領域.
ルジャンドル逆変換を行う.
帯状波数m( 0)の実スペクトルデータS^m_n (n=m,m+1,...,M)に対して,
ISW=0の場合,通常のルジャンドル逆変換; W^m(φ)≡Σ^M_n=|m|S^m_nP^m_n(φ) を行う.
ISW=1の場合,緯度微分のルジャンドル逆変換; W^m(φ)≡ddφΣ^M_n=|m|S^m_nP^m_n(φ) を行う.
ISW=-1の場合,経度微分のルジャンドル逆変換; W^m(φ)≡mφΣ^M_n=|m|S^m_nP^m_n(φ) を行う.
SHTLBW(MM,JM,M,ISW,SM,WM,WORK)
MM (I) 入力.切断波数(M). JM (I) 入力.南北分割数の1/2(J) ISW (I) 入力.変換の種類の指定(上記定義を参照) M (I) 入力.変換を行う帯状波数(m). SM (R) 入力.スペクトルデータ. 長さMM-M+1の配列(並び方は備考を参照). WM (R) 出力.ウエーブデータ. 長さ(2*JM+1) の配列(並び方は備考を参照). WORK (R) SHTINTで初期化された作業領域.
NUMAGUTI Atusi <a1n@gfdl.gov> Last Modified: Thu Aug 31 13:02:49 EDT 1995