| Class | wt_galerkin_module |
| In: |
src/wt_galerkin_module.f90
|
| Function : | |||
| AvrLatRad_yz : | real(8)
| ||
| yz : | real(8), dimension(jm,0:km), intent(in)
|
緯度動径(子午面)積分
2 次元(YZ)格子点データの緯度動径(子午面)平均
2 次元データ f(φ,r) に対して
∫f(φ,r) r^2cosφ dφdr /(2(r[o]^3-r[i]^3)/3)
を計算する.
Original external subprogram is wt_module#AvrLatRad_yz
| Function : | |||
| AvrLonLatRad_xyz : | real(8)
| ||
| xyz : | real(8), dimension(im,jm,0:km), intent(in)
|
緯度経度動径(全球)積分
3 次元格子点データの緯度経度動径(全球)積分
3 次元データ f(λ,φ,r) に対して
∫f(λ,φ,r) r^2cosφ dλdφdr /(4π(r[o]^3-r[i]^3)/3)
を計算する.
Original external subprogram is wt_module#AvrLonLatRad_xyz
| Function : | |||
| AvrLonRad_xz : | real(8)
| ||
| xz : | real(8), dimension(im,0:km), intent(in)
|
経度動径(緯度円)積分
2 次元(XZ)格子点データの経度動径平均
2 次元データ f(λ,r) に対して
∫f(λ,r) r^2dλdr /(2π(r[o]^3-r[i]^3)/3)
を計算する.
Original external subprogram is wt_module#AvrLonRad_xz
| Function : | |||
| AvrRad_z : | real(8)
| ||
| z : | real(8), dimension(im,0:km), intent(in)
|
1 次元(Z)格子点データの動径方向域平均.
1 次元データ f(r) に対して ∫f(r) r^2dr /((r[o]^3-r[i]^3)/3) を 計算する.
Original external subprogram is wt_module#AvrRad_z
| Function : | |||
| IntLatRad_yz : | real(8)
| ||
| yz : | real(8), dimension(jm,0:km), intent(in)
|
2 次元(YZ)格子点データの緯度動径積分(子午面)および平均
2 次元データ f(φ,r) に対して ∫f(φ,r) r^2cosφ dφdr を計算する.
Original external subprogram is wt_module#IntLatRad_yz
| Function : | |||
| IntLonLatRad_xyz : | real(8)
| ||
| xyz : | real(8), dimension(im,jm,0:km), intent(in)
|
緯度経度動径(全球)積分
3 次元格子点データの緯度経度動径(全球)積分
3 次元データ f(λ,φ,r) に対して
∫f(λ,φ,r) r^2cosφ dλdφdr
を計算する.
Original external subprogram is wt_module#IntLonLatRad_xyz
| Function : | |||
| IntLonRad_xz : | real(8)
| ||
| xz : | real(8), dimension(im,0:km), intent(in)
|
経度動径(緯度円)積分
2 次元(XZ)格子点データの経度動径積分
2 次元データ f(λ,r) に対して∫f(λ,r) r^2dλdr を計算する.
Original external subprogram is wt_module#IntLonRad_xz
| Function : | |||
| IntRad_z : | real(8)
| ||
| z : | real(8), dimension(0:km), intent(in)
|
動径積分
1 次元(Z)格子点データの動径方向域積分.
1 次元データ f(r) に対して ∫f(r) r^2dr を計算する.
Original external subprogram is wt_module#IntRad_z
| Function : | |
| b_Dx_b(ks:km) : | real(8) |
| b_data(ks:km) : | real(8), intent(IN) |
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
X 微分計算(1 次元)
Original external subprogram is at_ab_galerkin_ND#b_Dx_b
| Function : | |||
| b_g(ks:km) : | real(8)
| ||
| g_data(0:im) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
格子点データ -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_ab_galerkin_ND#b_g
| Function : | |||
| b_t(ks:km) : | real(8)
| ||
| t_data(0:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
チェビシェフ係数 -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_ab_galerkin_ND#b_t
| Function : | |
| d_Dx_d(ks:km) : | real(8) |
| d_data(ks:km) : | real(8), intent(IN) |
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
X 微分計算(1 次元データ)
Original external subprogram is at_ad_galerkin_DD#d_Dx_d
| Function : | |||
| d_g(ks:km) : | real(8)
| ||
| g_data(0:im) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
格子点データ -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_ad_galerkin_DD#d_g
| Function : | |||
| d_t(ks:km) : | real(8)
| ||
| t_data(0:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
チェビシェフ係数 -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_ad_galerkin_DD#d_t
| Function : | |
| f_Dx_f(ks:km) : | real(8) |
| f_data(ks:km) : | real(8), intent(IN) |
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
X 微分計算(1 次元)
Original external subprogram is at_af_galerkin_MM#f_Dx_f
| Function : | |||
| f_g(ks:km) : | real(8)
| ||
| g_data(0:im) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
格子点データ -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_af_galerkin_MM#f_g
| Function : | |||
| f_t(ks:km) : | real(8)
| ||
| t_data(0:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
チェビシェフ係数 -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_af_galerkin_MM#f_t
| Function : | |||
| g_b(0:im) : | real(8)
| ||
| b_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
ガラーキン係数 -> 格子点データ変換(1次元データ)
Original external subprogram is at_ab_galerkin_ND#g_b
| Function : | |||
| g_d(0:im) : | real(8)
| ||
| d_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
ガラーキン係数 -> 格子点データ変換(1次元データ)
Original external subprogram is at_ad_galerkin_DD#g_d
| Function : | |||
| g_f(0:im) : | real(8)
| ||
| f_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
ガラーキン係数 -> 格子点データ変換(1次元データ)
Original external subprogram is at_af_galerkin_MM#g_f
| Function : | |||
| g_p(0:im) : | real(8)
| ||
| p_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
ガラーキン係数 -> 格子点データ変換(1次元データ)
Original external subprogram is at_ap_galerkin_DN#g_p
| Function : | |||
| g_q(0:im) : | real(8)
| ||
| q_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
ガラーキン係数 -> 格子点データ変換(1次元データ)
Original external subprogram is at_aq_galerkin_RRSS#g_q
| Function : | |||
| g_v(0:im) : | real(8)
| ||
| v_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ノイマン境界条件
ガラーキン係数 -> 格子点データ変換(1次元データ)
Original external subprogram is at_av_galerkin_NN#g_v
| Function : | |||
| nmz_PoloidalEnergySpectrum_wt : | real(8), dimension(0:nm,-nm:nm,0:km)
| ||
| wt_POLPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
ポロイダルポテンシャルから, ポロイダルエネルギーの 球面調和函数全波数 n, 帯状波数 m の各成分を計算する.
* 全波数 n, 帯状波数 m のポロイダルポテンシャルのスペクトル成分
φ(n,m,r)から全波数 n, 帯状波数 m 成分のポロイダルエネルギー
スペクトルは
(1/2)n(n+1)4πr^2{[d(rφ(n,m,r))/dr]^2 + n(n+1)φ(n,m,r)^2}
と計算される.
* 全てのエネルギースペクトル成分の和を動径積分したもの(r^2の重み無し)
が球殻内での全エネルギーに等しい.
* データの存在しない全波数 n, 帯状波数 m の配列には欠損値が格納される.
欠損値の値はモジュール変数 wt_VMiss によって設定できる
(初期値は -999.0)
Original external subprogram is wt_module#nmz_PoloidalEnergySpectrum_wt
| Function : | |||
| nmz_ToroidalEnergySpectrum_wt : | real(8), dimension(0:nm,-nm:nm,0:km)
| ||
| wt_TORPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
トロイダルポテンシャルから, トロイダルエネルギーの 球面調和函数全波数 n, 帯状波数 m の各成分を計算する
* 全波数 n, 帯状波数 m のトロイダルポテンシャルのスペクトル成分 ψ(n,m,r)から全波数 n, 帯状波数 m 成分のトロイダルエネルギー スペクトルは (1/2)n(n+1)4πr^2ψ(n,m,r)^2 と計算される. * 全てのエネルギースペクトル成分の和を動径積分したもの(r^2の重み無し) が球殻内での全エネルギーに等しい. * データの存在しない全波数 n, 帯状波数 m の配列には欠損値が格納される. wt_VMiss によって設定できる (初期値は -999.0)
Original external subprogram is wt_module#nmz_ToroidalEnergySpectrum_wt
| Function : | |||
| nz_PoloidalEnergySpectrum_wt : | real(8), dimension(0:nm,0:km)
| ||
| wt_POLPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
ポロイダルポテンシャルから, ポロイダルエネルギーの 球面調和函数全波数の各成分を計算する
* 全波数 n, 帯状波数 m のポロイダルポテンシャルのスペクトル成分
φ(n,m,r)から全波数 n 成分のポロイダルエネルギースペクトルは
Σ[m=-n]^n ((1/2)n(n+1)4πr^2{[d(rφ(n,m,r))/dr]^2
+ n(n+1)φ(n,m,r)^2}
と計算される.
* 全ての全波数に対してのエネルギースペクトル成分の和を動径積分したもの
(r^2の重み無し)が球殻内での全エネルギーに等しい.
Original external subprogram is wt_module#nz_PoloidalEnergySpectrum_wt
| Function : | |||
| nz_ToroidalEnergySpectrum_wt : | real(8), dimension(0:nm,0:km)
| ||
| wt_TORPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
トロイダルポテンシャルから, トロイダルエネルギーの 球面調和函数全波数の各成分を計算する.
* 全波数 n, 帯状波数 m のトロイダルポテンシャルのスペクトル成分 ψ(n,m,r)から全波数 n 成分のトロイダルエネルギースペクトルは Σ[m=-n]^n(1/2)n(n+1)4πr^2ψ(n,m,r)^2 と計算される.
が球殻内での全エネルギーに等しい.
Original external subprogram is wt_module#nz_ToroidalEnergySpectrum_wt
| Function : | |
| p_Dx_p(ks:km) : | real(8) |
| p_data(ks:km) : | real(8), intent(IN) |
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
X 微分計算(1 次元)
Original external subprogram is at_ap_galerkin_DN#p_Dx_p
| Function : | |||
| p_g(ks:km) : | real(8)
| ||
| g_data(0:im) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
格子点データ -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_ap_galerkin_DN#p_g
| Function : | |||
| p_t(ks:km) : | real(8)
| ||
| t_data(0:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
チェビシェフ係数 -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_ap_galerkin_DN#p_t
| Function : | |
| q_Dx_q(ks:km) : | real(8) |
| q_data(ks:km) : | real(8), intent(IN) |
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
X 微分計算(1 次元)
Original external subprogram is at_aq_galerkin_RRSS#q_Dx_q
| Function : | |||
| q_g(ks:km) : | real(8)
| ||
| g_data(0:im) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
格子点データ -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_aq_galerkin_RRSS#q_g
| Function : | |||
| q_t(ks:km) : | real(8)
| ||
| t_data(0:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
チェビシェフ係数 -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_aq_galerkin_RRSS#q_t
| Function : | |||
| t_b(0:km) : | real(8)
| ||
| b_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
ガラーキン係数 -> チェビシェフ係数変換(1次元データ)
Original external subprogram is at_ab_galerkin_ND#t_b
| Function : | |||
| t_d(0:km) : | real(8)
| ||
| d_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
ガラーキン係数 -> チェビシェフ係数変換(1次元データ)
Original external subprogram is at_ad_galerkin_DD#t_d
| Function : | |||
| t_f(0:km) : | real(8)
| ||
| f_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
ガラーキン係数 -> チェビシェフ係数変換(1次元データ)
Original external subprogram is at_af_galerkin_MM#t_f
| Function : | |||
| t_p(0:km) : | real(8)
| ||
| p_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
ガラーキン係数 -> チェビシェフ係数変換(1次元データ)
Original external subprogram is at_ap_galerkin_DN#t_p
| Function : | |||
| t_q(0:km) : | real(8)
| ||
| q_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
ガラーキン係数 -> チェビシェフ係数変換(1次元データ)
Original external subprogram is at_aq_galerkin_RRSS#t_q
| Function : | |||
| t_v(0:km) : | real(8)
| ||
| v_data(ks:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ノイマン境界条件
ガラーキン係数 -> チェビシェフ係数変換(1次元データ)
Original external subprogram is at_av_galerkin_NN#t_v
| Function : | |
| v_Dx_v(ks:km) : | real(8) |
| v_data(ks:km) : | real(8), intent(IN) |
チェビシェフ−ガラーキン法 両端ノイマン境界条件
X 微分計算(1 次元)
Original external subprogram is at_av_galerkin_NN#v_Dx_v
| Function : | |||
| v_g(ks:km) : | real(8)
| ||
| g_data(0:im) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ノイマン境界条件
格子点データ -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_av_galerkin_NN#v_g
| Function : | |||
| v_t(ks:km) : | real(8)
| ||
| t_data(0:km) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ノイマン境界条件
チェビシェフ係数 -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_av_galerkin_NN#v_t
| Function : | |||
| ab_Dx_ab(size(ab_data,1),ks:km) : | real(8)
| ||
| ab_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
X 微分計算(2 次元)
Original external subprogram is at_ab_galerkin_ND#ab_Dx_ab
| Function : | |||
| ab_ag(size(ag_data,1),ks:km) : | real(8)
| ||
| ag_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
格子点データ -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ab_galerkin_ND#ab_ag
| Function : | |||
| ab_at(size(at_data,1),ks:km) : | real(8)
| ||
| at_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
チェビシェフ係数 -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ab_galerkin_ND#ab_at
| Function : | |||
| ad_Dx_ad(size(ad_data,1),ks:km) : | real(8)
| ||
| ad_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
X 微分計算(2 次元データ)
Original external subprogram is at_ad_galerkin_DD#ad_Dx_ad
| Function : | |||
| ad_ag(size(ag_data,1),ks:km) : | real(8)
| ||
| ag_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
格子点データ -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ad_galerkin_DD#ad_ag
| Function : | |||
| ad_at(size(at_data,1),ks:km) : | real(8)
| ||
| at_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
チェビシェフ係数 -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ad_galerkin_DD#ad_at
| Function : | |||
| af_Dx_af(size(af_data,1),ks:km) : | real(8)
| ||
| af_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
X 微分計算(2 次元)
Original external subprogram is at_af_galerkin_MM#af_Dx_af
| Function : | |||
| af_ag(size(ag_data,1),ks:km) : | real(8)
| ||
| ag_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
格子点データ -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_af_galerkin_MM#af_ag
| Function : | |||
| af_at(size(at_data,1),ks:km) : | real(8)
| ||
| at_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
チェビシェフ係数 -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_af_galerkin_MM#af_at
| Function : | |||
| ag_ab(size(ab_data,1),0:im) : | real(8)
| ||
| ab_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ノイマン片端ディリクレ境界条件
ガラーキン係数 -> 格子点データ変換(2次元データ)
Original external subprogram is at_ab_galerkin_ND#ag_ab
| Function : | |||
| ag_ad(size(ad_data,1),0:im) : | real(8)
| ||
| ad_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ディリクレ境界条件
ガラーキン係数 -> 格子点データ変換(2次元データ)
Original external subprogram is at_ad_galerkin_DD#ag_ad
| Function : | |||
| ag_af(size(af_data,1),0:im) : | real(8)
| ||
| af_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
ガラーキン係数 -> 格子点データ変換(2次元データ)
Original external subprogram is at_af_galerkin_MM#ag_af
| Function : | |||
| ag_ah(size(ah_data,1),0:im) : | real(8)
| ||
| ah_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
ガラーキン係数 -> 格子点データ変換(2次元データ)
Original external subprogram is at_ah_galerkin_MMex#ag_ah
| Function : | |||
| ag_ap(size(ap_data,1),0:im) : | real(8)
| ||
| ap_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
ガラーキン係数 -> 格子点データ変換(2次元データ)
Original external subprogram is at_ap_galerkin_DN#ag_ap
| Function : | |||
| ag_aq(size(aq_data,1),0:im) : | real(8)
| ||
| aq_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
ガラーキン係数 -> 格子点データ変換(2次元データ)
Original external subprogram is at_aq_galerkin_RRSS#ag_aq
| Function : | |||
| ag_av(size(av_data,1),0:im) : | real(8)
| ||
| av_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 両端ノイマン境界条件
ガラーキン係数 -> 格子点データ変換(2次元データ)
Original external subprogram is at_av_galerkin_NN#ag_av
| Function : | |||
| ah_Dx_ah(size(ah_data,1),ks:km) : | real(8)
| ||
| ah_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
X 微分計算(2 次元)
Original external subprogram is at_ah_galerkin_MMex#ah_Dx_ah
| Function : | |||
| ah_ag(size(ag_data,1),ks:km) : | real(8)
| ||
| ag_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
格子点データ -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ah_galerkin_MMex#ah_ag
| Function : | |||
| ah_at(size(at_data,1),ks:km) : | real(8)
| ||
| at_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 ディリクレ・ノイマン混合境界条件
チェビシェフ係数 -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ah_galerkin_MMex#ah_at
| Function : | |||
| ap_Dx_ap(size(ap_data,1),ks:km) : | real(8)
| ||
| ap_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
X 微分計算(2 次元)
Original external subprogram is at_ap_galerkin_DN#ap_Dx_ap
| Function : | |||
| ap_ag(size(ag_data,1),ks:km) : | real(8)
| ||
| ag_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
格子点データ -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ap_galerkin_DN#ap_ag
| Function : | |||
| ap_at(size(at_data,1),ks:km) : | real(8)
| ||
| at_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 片端ディリクレ片端ノイマン境界条件
チェビシェフ係数 -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_ap_galerkin_DN#ap_at
| Function : | |||
| aq_Dx_aq(size(aq_data,1),ks:km) : | real(8)
| ||
| aq_data(:,ks:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
X 微分計算(2 次元)
Original external subprogram is at_aq_galerkin_RRSS#aq_Dx_aq
| Function : | |||
| wq_LaplaPol2Pol_wt((nm+1)*(nm+1),4:lm) : | real(8)
| ||
| wt_LaplaPolvel((nm+1)*(nm+1),0:lm) : | real(8), intent(IN)
|
3 次元球殻領域 球面調和函数展開 + チェビシェフ−ガラーキン法 ポロイダル速度場ポテンシャル φを ▽^2φ から求める
function wq_LaplaPol2Pol_wt(wt_LaplaPolvel)
!
! 3 次元球殻領域
! 球面調和函数展開 + チェビシェフ−ガラーキン法
!
! ポロイダル速度場ポテンシャル φを ▽^2φ から求める
!
real(8), intent(IN) :: wt_LaplaPolvel((nm+1)*(nm+1),0:lm)
!(in) ポロイダル速度場ポテンシャルのラプラシアン ▽^2φ
real(8) :: wq_LaplaPol2Pol_wt((nm+1)*(nm+1),4:lm)
!(out) ポロイダル速度場ポテンシャル φ
real(8), allocatable :: LaplaMT(:,:,:)
real(8), allocatable :: LaplaInvMT(:,:,:)
integer, allocatable :: kpvot(:,:)
integer, parameter :: ls=4
real(8) :: wq_work((nm+1)*(nm+1),ls:lm)
real(8) :: wt_work((nm+1)*(nm+1),0:lm)
integer :: k, m, n, l, p
logical :: first = .true.
save LaplaInvMT, kpvot, first
if ( .not. Set_RRSS ) call MessageNotify('E','wq_LaplaPol2Pol_wt', 'at_aq_galerkin_RRSS_module not initialized.')
if ( first ) then
first = .false.
allocate(LaplaMT((nm+1)*(nm+1),0:lm,0:lm))
allocate(LaplaInvMT((nm+1)*(nm+1),ls:lm,ls:lm))
allocate(kpvot((nm+1)*(nm+1),ls:lm))
LaplaMT=0.0D0
do l=0,lm
wt_work = 0.0D0
wt_work(:,l) = 1.0D0
wt_work = wt_Lapla_wt(wt_work)
LaplaMT(:,:,l) = wt_work
enddo
LaplaInvMT=0.0
do n=ls,lm
do m=ls,lm
do l=0,lm
do p=0,lm
LaplaInvMT(:,n,m)=LaplaInvMT(:,n,m) +TQ(l,n)*LaplaMT(:,l,p)*alpha(p)*TQ(p,m)
enddo
enddo
enddo
enddo
call LUDecomp(LaplaInvMT,kpvot)
deallocate(LaplaMT)
endif
wq_work=0.0
do m=ls,lm
do k=0,lm
wq_work(:,m)=wq_work(:,m) + alpha(k) * beta(k) * wt_LaplaPolvel(:,k)* TQ(k,m)
enddo
enddo
wq_LaplaPol2Pol_wt = LUSolve(LaplaInvMT,kpvot,wq_work)
end function wq_LaplaPol2Pol_wt
| Function : | |||
| aq_ag(size(ag_data,1),ks:km) : | real(8)
| ||
| ag_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
格子点データ -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_aq_galerkin_RRSS#aq_ag
| Function : | |||
| aq_at(size(at_data,1),ks:km) : | real(8)
| ||
| at_data(:,0:) : | real(8), intent(IN)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
チェビシェフ係数 -> ガラーキン係数変換(2次元データ)
Original external subprogram is at_aq_galerkin_RRSS#aq_at
| Subroutine : | |||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
| ||
| values : | real(8), dimension((nm+1)*(nm+1),2), intent(in), optional
| ||
| cond : | character(len=2), intent(in), optional
|
スペクトルデータにディリクレ・ノイマン境界条件を適用する Chebyshev 空間での境界条件適用(タウ法)
チェビシェフ空間において境界条件を満たすべく高次の係数を 定める方法をとっている(タウ法).
Original external subprogram is wt_module#wt_Boundaries
| Subroutine : | |||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
| ||
| values : | real(8), dimension((nm+1)*(nm+1),2), intent(in), optional
| ||
| cond : | character(len=2), intent(in), optional
|
スペクトルデータにディリクレ・ノイマン境界条件を適用する 実空間での境界条件適用
鉛直実格子点空間において内部領域の値と境界条件を満たすように 条件を課している(選点法). このルーチンを用いるためには wt_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を 等しくしておく必要がある.
Original external subprogram is wt_module#wt_BoundariesGrid
| Subroutine : | |||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
| ||
| values : | real(8), dimension((nm+1)*(nm+1),2), intent(in), optional
| ||
| cond : | character(len=2), intent(in), optional
|
スペクトルデータにディリクレ・ノイマン境界条件を適用する Chebyshev 空間での境界条件適用(タウ法)
チェビシェフ空間において境界条件を満たすべく高次の係数を 定める方法をとっている(タウ法).
Original external subprogram is wt_module#wt_BoundariesTau
| Function : | |||
| wt_DRad_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータに動径微分 ∂/∂r を作用する.
スペクトルデータの動径微分とは, 対応する格子点データに動径微分を 作用させたデータのスペクトル変換のことである.
Original external subprogram is wt_module#wt_DRad_wt
| Function : | |||
| wt_DivLat_xyz : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| xyz : | real(8), dimension(im,jm,0:km), intent(in)
|
格子データに発散型緯度微分 1/rcosφ・∂(f cosφ)/∂φ を 作用させたスペクトルデータを返す.
Original external subprogram is wt_module#wt_DivLat_xyz
| Function : | |||
| wt_DivLon_xyz : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| xyz : | real(8), dimension(im,jm,0:km), intent(in)
|
格子点データに発散型経度微分 1/rcosφ・∂/∂λ を作用させた スペクトルデータを返す.
Original external subprogram is wt_module#wt_DivLon_xyz
| Function : | |||
| wt_DivRad_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータに発散型動径微分
1/r^2 ∂/∂r (r^2 .)= ∂/∂r + 2/r
を作用する.
スペクトルデータの発散型動径微分とは, 対応する格子点データに 発散型動径微分を作用させたデータのスペクトル変換のことである.
Original external subprogram is wt_module#wt_DivRad_wt
| Function : | |||
| wt_Div_xyz_xyz_xyz : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| xyz_Vlon : | real(8), dimension(im,jm,0:km), intent(in)
| ||
| xyz_Vlat : | real(8), dimension(im,jm,0:km), intent(in)
| ||
| xyz_Vrad : | real(8), dimension(im,jm,0:km), intent(in)
|
べクトル成分である 3 つの格子データに発散を作用させた スペクトルデータを返す.
第 1, 2 ,3 引数(u,v,w)がそれぞれベクトルの経度成分, 緯度成分, 動径成分を表し, 発散は
1/rcosφ・∂u/∂λ + 1/rcosφ・∂(v cosφ)/∂φ
+ 1/r^2 ∂/∂r (r^2 w)
と計算される.
Original external subprogram is wt_module#wt_Div_xyz_xyz_xyz
| Function : | |||
| wt_KxRGrad_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータに経度微分 k×r・▽ = ∂/∂λを作用する.
Original external subprogram is wt_module#wt_KxRGrad_wt
| Function : | |||
| wt_L2Inv_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータに L^2 演算子の逆演算(-逆水平ラプラシアン)を 作用する.
スペクトルデータに L^2 演算子を作用させる関数 wt_L2_wt の逆計算を 行う関数である.
Original external subprogram is wt_module#wt_L2Inv_wt
| Function : | |||
| wt_L2_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータに L^2 演算子(=-水平ラプラシアン)を作用する.
L^2 演算子は単位球面上の水平ラプラシアンの逆符号にあたる.
入力スペクトルデ ータに対応する格子点データに演算子
L^2 = -1/cos^2φ・∂^2/∂λ^2 - 1/cosφ・∂/∂φ(cosφ∂/∂φ)
を作用させたデータのスペクトル変換が返される.
Original external subprogram is wt_module#wt_L2_wt
| Function : | |||
| wt_LaplaPol2PolGrid_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(in)
| ||
| cond : | character(len=2), intent(in), optional
|
速度ポロイダルポテンシャルΦを▽^2Φから計算する. チェビシェフ格子点空間で境界条件を適用している.
この関数を用いるためには wt_Initial にて設定する チェビシェフ切断波数(lm)と鉛直格子点数(km)を等しく しておく必要がある.
速度ポロイダルポテンシャルΦを f = ▽^2Φから定める式は
▽^2Φ = f
Φ = const. at boundaries.
∂Φ/∂r = 0 at boundaries (粘着条件)
or ∂^2Φ/∂r^2 = 0 at boundaries (応力なし条件)
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
最終的にチェビシェフ係数の解が欲しい場合には, wz_LaplaPol2Pol_wz に 比べてチェビシェフ — 格子点変換が 1 回分少なくて済む.
Original external subprogram is wt_module#wt_LaplaPol2PolGrid_wt
| Function : | |||
| wt_Lapla_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータにラプラシアン
▽^2 = 1/r^2 cos^2φ・∂^2/∂λ^2
+ 1/r^2 cosφ・∂/∂φ(cosφ∂/∂φ)
+ 1/r^2 ∂/∂r (r^2 ∂/∂r)
を作用する.
スペクトルデータのラプラシアンとは, 対応する格子点データに ラプラシアンを作用させたデータのスペクトル変換のことである.
Original external subprogram is wt_module#wt_Lapla_wt
| Subroutine : | |||
| wt_POL : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
|
磁場ポロイダルポテンシャルに対して境界条件を適用する. Chebyshev 空間での境界条件適用
チェビシェフ空間において境界条件を満たすべく高次の係数を定める方法を とっている(タウ法). 現在のところ境界物質が非電気伝導体の場合のみ 対応している. その場合, 磁場ポロイダルポテンシャルの各水平スペクトル 成分 h にたいして境界条件が与えられ,
* 外側境界 : dh/dr + (n+1)h/r = 0 * 内側境界 : dh/dr - nh/r = 0
である. ここで n は h の水平全波数である.
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
Original external subprogram is wt_module#wt_PolMagBoundaries
| Subroutine : | |||
| wt_POL : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
|
磁場ポロイダルポテンシャルに対して境界条件を適用する. 鉛直実空間での境界条件適用.
鉛直実格子点空間において内部領域の値と境界条件を満たすように 条件を課している(選点法). このルーチンを用いるためには wt_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を 等しくしておく必要がある.
現在のところ境界物質が非電気伝導体の場合のみ対応している. その場合, 磁場ポロイダルポテンシャルの各水平スペクトル成分 h に たいして境界条件が与えられ,
* 外側境界 : dh/dr + (n+1)h/r = 0 * 内側境界 : dh/dr - nh/r = 0
である. ここで n は h の水平全波数である.
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
Original external subprogram is wt_module#wt_PolmagBoundariesGrid
| Subroutine : | |||
| wt_POL : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
|
磁場ポロイダルポテンシャルに対して境界条件を適用する. Chebyshev 空間での境界条件適用
チェビシェフ空間において境界条件を満たすべく高次の係数を定める方法を とっている(タウ法). 現在のところ境界物質が非電気伝導体の場合のみ 対応している. その場合, 磁場ポロイダルポテンシャルの各水平スペクトル 成分 h にたいして境界条件が与えられ,
* 外側境界 : dh/dr + (n+1)h/r = 0 * 内側境界 : dh/dr - nh/r = 0
である. ここで n は h の水平全波数である.
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
Original external subprogram is wt_module#wt_PolmagBoundariesTau
| Subroutine : | |||
| xyz_RotVLON : | real(8), dimension(im,jm,0:km), intent(OUT)
| ||
| xyz_RotVLAT : | real(8), dimension(im,jm,0:km), intent(OUT)
| ||
| xyz_RotVRAD : | real(8), dimension(im,jm,0:km), intent(OUT)
| ||
| wt_TORPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
| ||
| wt_POLPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
トロイダルポロイダルポテンシャルΨ,Φで表される非発散ベクトル場
v = ▽x(Ψr) + ▽x▽x(Φr)
に対して, その回転
▽xv = ▽x▽x(Ψr) + ▽x▽x▽x(Φr) = ▽x▽x(Ψr) - ▽x((▽^2Φ)r)
を計算する.
Original external subprogram is wt_module#wt_Potential2Rotation
| Subroutine : | |||
| xyz_VLON : | real(8), dimension(im,jm,0:km)
| ||
| xyz_VLAT : | real(8), dimension(im,jm,0:km)
| ||
| xyz_VRAD : | real(8), dimension(im,jm,0:km)
| ||
| wt_TORPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
| ||
| wt_POLPOT : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
トロイダルポロイダルポテンシャルΨ,Φで表される非発散ベクトル場
v = ▽x(Ψr) + ▽x▽x(Φr)
の各成分を計算する
Original external subprogram is wt_module#wt_Potential2Vector
| Function : | |||
| wt_QOperator_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータに対応する格子点データに演算子
Q=(k・▽-1/2(L2 k・▽+ k・▽L2))
を作用させたデータのスペクトル変換が返される.
Original external subprogram is wt_module#wt_QOperator_wt
| Function : | |||
| wt_RadRotRot_xyz_xyz_xyz : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| xyz_VLON : | real(8), dimension(im,jm,0:km), intent(in)
| ||
| xyz_VLAT : | real(8), dimension(im,jm,0:km), intent(in)
| ||
| xyz_VRAD : | real(8), dimension(im,jm,0:km), intent(in)
|
ベクトル v に対して r・(▽×▽×v) を計算する.
第 1, 2, 3 引数(v[λ], v[φ], v[r])がそれぞれベクトルの経度成分, 緯度成分, 動径成分を表す.
r・(▽×▽×v) = 1/r ∂/∂r (r・( 1/cosφ・∂v[λ]/∂λ
+ 1/cosφ・∂(v[φ] cosφ)/∂φ ) )
+ L^2 v[r]/r
のスペクトルデータが返される.
Original external subprogram is wt_module#wt_RadRotRot_xyz_xyz_xyz
| Function : | |||
| wt_RadRot_xyz_xyz : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| xyz_VLON : | real(8), dimension(im,jm,0:km), intent(in)
| ||
| xyz_VLAT : | real(8), dimension(im,jm,0:km), intent(in)
|
r・(▽×v)
ベクトルの渦度と動径ベクトルの内積 r・(▽×v) を計算する.
第 1, 2 引数(v[λ], v[φ])がそれぞれベクトルの経度成分, 緯度成分を表す.
r・(▽×v) = 1/cosφ・∂v[φ]/∂λ - 1/cosφ・∂(v[λ] cosφ)/∂φ
のスペクトル データが返される.
Original external subprogram is wt_module#wt_RadRot_xyz_xyz
| Function : | |||
| wt_RotRad_wt : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| wt : | real(8), dimension((nm+1)*(nm+1),0:lm), intent(in)
|
入力スペクトルデータに回転型動径微分
1/r ∂(r.)/∂r = ∂(.)/∂r + (.)/r
を作用する.
スペクトルデータの回転型動径微分とは, 対応する格子点データに 回転型動径微分を作用させたデータのスペクトル変換のことである.
Original external subprogram is wt_module#wt_RotRad_wt
| Function : | |||
| wt_RotRad_xyz_xyz : | real(8), dimension((nm+1)*(nm+1),0:lm)
| ||
| xyz_Vlat : | real(8), dimension(im,jm,0:km), intent(in)
| ||
| xyz_Vlon : | real(8), dimension(im,jm,0:km), intent(in)
|
ベクトルの緯度成分, 経度成分である第 1, 2 引数 Vlat, Vlon に対して ベクトル場の回転の動径成分
1/rcosφ・∂Vlat/∂λ - 1/rcosφ・∂(Vlon cosφ)/∂φ
を計算する.
Original external subprogram is wt_module#wt_RotRad_xyz_xyz
| Subroutine : | |||
| wt_TORPOT : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
| ||
| values : | real(8), dimension((nm+1)*(nm+1),2), intent(in), optional
| ||
| cond : | character(len=2), intent(in), optional
|
速度トロイダルポテンシャルに対して境界条件を適用する. Chebyshev 空間での境界条件適用.
速度トロイダルポテンシャルΨに対して与えられる境界条件は
* 粘着条件 : Ψ = Ψb(lon,lat). Ψb は境界球面での速度分布.
default は 0(静止状態).
* 応力なし条件 : ∂(Ψ/r)/∂r = 0.
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
Original external subprogram is wt_module#wt_TorBoundaries
| Subroutine : | |||
| wt_TORPOT : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
| ||
| values : | real(8), dimension((nm+1)*(nm+1),2), intent(in), optional
| ||
| cond : | character(len=2), intent(in), optional
|
速度トロイダルポテンシャルに対して境界条件を適用する. 実空間での境界条件適用
鉛直実格子点空間において内部領域の値と境界条件を満たすように 条件を課している(選点法). このルーチンを用いるためには wt_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を 等しくしておく必要がある.
速度トロイダルポテンシャルΨに対して与えられる境界条件は
* 粘着条件 : Ψ = Ψb(lon,lat). Ψb は境界球面での速度分布.
default は 0 (静止状態).
* 応力なし条件 : ∂(Ψ/r)/∂r = 0.
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
Original external subprogram is wt_module#wt_TorBoundariesGrid
| Subroutine : | |||
| wt_TORPOT : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
| ||
| values : | real(8), dimension((nm+1)*(nm+1),2), intent(in), optional
| ||
| cond : | character(len=2), intent(in), optional
|
速度トロイダルポテンシャルに対して境界条件を適用する. Chebyshev 空間での境界条件適用.
速度トロイダルポテンシャルΨに対して与えられる境界条件は
* 粘着条件 : Ψ = Ψb(lon,lat). Ψb は境界球面での速度分布.
default は 0(静止状態).
* 応力なし条件 : ∂(Ψ/r)/∂r = 0.
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
Original external subprogram is wt_module#wt_TorBoundariesTau
| Subroutine : | |||
| wt_TOR : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
|
Original external subprogram is wt_module#wt_TorMagBoundaries
| Subroutine : | |||
| wt_TOR : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
|
磁場トロイダルポテンシャルに対して境界条件を適用する. 鉛直実空間での境界条件適用.
鉛直実格子点空間において内部領域の値と境界条件を満たすように 条件を課している(選点法). このルーチンを用いるためには wt_Initial にて設定するチェビシェフ切断波数(lm)と鉛直格子点数(km)を 等しくしておく必要がある.
現在のところ境界物質が非電気伝導体の場合のみ対応している. その場合, 磁場トロイダルポテンシャルの境界条件は
外側
wt_psi = 0 at the outer boundary
内側
wt_psi = 0 at the inner boundary
であるので wt_Boundaries で対応可能だが, 将来のため別途作成しておく
最初に呼ばれるときの境界条件で以後計算される(要仕様変更).
Original external subprogram is wt_module#wt_TormagBoundariesGrid
| Subroutine : | |||
| wt_TOR : | real(8), dimension((nm+1)*(nm+1),0:lm),intent(inout)
|
Original external subprogram is wt_module#wt_TormagBoundariesTau
| Subroutine : | |||
| xyz_VGRADV_LON : | real(8), dimension(im,jm,0:km),intent(out)
| ||
| xyz_VGRADV_LAT : | real(8), dimension(im,jm,0:km),intent(out)
| ||
| xyz_VGRADV_RAD : | real(8), dimension(im,jm,0:km),intent(out)
| ||
| xyz_VLON : | real(8), dimension(im,jm,0:km),intent(in)
| ||
| xyz_VLAT : | real(8), dimension(im,jm,0:km),intent(in)
| ||
| xyz_VRAD : | real(8), dimension(im,jm,0:km),intent(in)
|
ベクトル場の v・▽v を計算する.
ベクトル場 v=(v[λ],v[φ],v[r]) に対するv・▽vの各成分は 次のように計算される.
(v・▽v)[λ] = ▽・(v[λ]v