Class | et_galerkin_module |
In: |
libsrc/et_galerkin_module/et_galerkin_module.f90
|
Authors: | Shin-ichi Takehiro, Youhei SASAKI |
Version: | $Id: et_galerkin_module.f90 610 2013-08-24 12:46:42Z takepiro $ |
Copyright&License: | See COPYRIGHT |
spml/et_galerkin_module モジュールは 2 次元チャネル領域での流体運動 をスペクトル法により数値計算するための Fortran90 関数を提供する. 周期的な境界条件を扱うための X 方向へのフーリエ変換, 境界壁を扱うための Y 方向のチェビシェフ変換(チェビシェフーガラーキン法) のスペクトル計算のためのさまざまな関数を提供する
内部で et_module, および境界条件を解くためにチェビシェフーガラーキン法の モジュール群(at_ab_galerkin_ND, at_ad_galerkin_DD, at_af_galerkin_MM, at_ah_galerkin_MMex, at_ap_galerkin_DN, at_aq_galerkin_RRFF, at_av_galerkin_NN) を用いている.
et_ : | 2次元スペクトルデータ |
yx_ : | 2 次元格子点データ |
x_ : | X 方向 1 次元格子点データ |
y_ : | Y 方向 1 次元格子点データ |
ed_ : | 2次元ガラーキンデータ(y=ymin,ymax で値が 0) |
ev_ : | 2次元ガラーキンデータ(y=ymin,ymax で 1 階微分値が 0) |
eb_ : | 2次元ガラーキンデータ(y=ymin で値が 0, ymax で 1 階微分値が 0) |
ep_ : | 2次元ガラーキンデータ(y=ymin で1 階微分値が 0, ymax で 値が 0) |
ef_ : | 2次元ガラーキンデータ(y=ymin,ymax で混合境界条件が 0) |
eh_ : | 2次元ガラーキンデータ(y=ymin,ymax で水平波数毎の混合境界条件が 0) |
eq_ : | 2次元流線関数ガラーキンデータ(y=ymin,ymax で自由すべり/粘着条件) |
_et : | 2次元スペクトルデータ |
_yx : | 2 次元格子点データ |
_x : | X 方向 1 次元格子点データ |
_y : | Y 方向 1 次元格子点データ |
_ed : | 2次元ガラーキンデータ(y=ymin,ymax で値が 0) |
_ev : | 2次元ガラーキンデータ(y=ymin,ymax で 1 階微分値が 0) |
_eb : | 2次元ガラーキンデータ(y=ymin で値が 0, ymax で 1 階微分値が 0) |
_ep : | 2次元ガラーキンデータ(y=ymin で1 階微分値が 0, ymax で 値が 0) |
_ef : | 2次元ガラーキンデータ(y=ymin,ymax で混合境界条件が 0) |
_eh : | 2次元ガラーキンデータ(y=ymin,ymax で水平波数毎の混合境界条件が 0) |
_eq : | 2次元流線関数ガラーキンデータ(y=ymin,ymax で自由すべり/粘着条件) |
et_galerlin_Initial : | スペクトル/ガラーキン変換の格子点数, 波数, 領域の大きさ, 使用するガラーキン変数の設定 |
x_X, y_Y : | 格子点座標(X,Y座標)を格納した 1 次元配列 |
x_X_Weight, y_Y_Weight : | 重み座標を格納した 1 次元配列 |
yx_X, yx_Y : | 格子点データの XY 座標(X,Y)(格子点データ型 2 次元配列) |
yx_et : | スペクトルデータから格子データへの変換 |
et_yx : | 格子データからスペクトルデータへの変換 |
ax_ae, x_e : | X 方向のスペクトルデータから格子データへの変換 |
ay_at, y_t : | Y 方向のスペクトルデータから格子データへの変換 |
ae_ax, e_x : | X 方向の格子点データからスペクトルデータへの変換 |
at_ay, t_y : | Y 方向の格子点データからスペクトルデータへの変換 |
ed_yx : | ガラーキンデータ->格子点変換 |
yx_ed : | 格子点->ガラーキンデータ変換 |
ed_et, d_t : | チェビシェフ->ガラーキン変換 |
et_ed, t_d : | ガラーキン->チェビシェフ変換 |
ed_ey, d_y : | 格子点->ガラーキンデータ変換 |
ey_ed, y_d : | ガラーキン->格子点データ変換 |
ev_yx : | ガラーキンデータ->格子点変換 |
yx_ev : | 格子点->ガラーキンデータ変換 |
ev_et, v_t : | チェビシェフ->ガラーキン変換 |
et_ev, t_v : | ガラーキン->チェビシェフ変換 |
ev_ey, v_y : | 格子点->ガラーキンデータ変換 |
ey_ev, y_v : | ガラーキン->格子点データ変換 |
eb_yx : | ガラーキンデータ->格子点変換 |
yx_eb : | 格子点->ガラーキンデータ変換 |
eb_et, b_t : | チェビシェフ->ガラーキン変換 |
et_eb, t_b : | ガラーキン->チェビシェフ変換 |
eb_ey, b_y : | 格子点->ガラーキンデータ変換 |
ey_eb, y_b : | ガラーキン->格子点データ変換 |
ep_yx : | ガラーキンデータ->格子点変換 |
yx_ep : | 格子点->ガラーキンデータ変換 |
ep_et, p_t : | チェビシェフ->ガラーキン変換 |
et_ep, t_p : | ガラーキン->チェビシェフ変換 |
ep_ey, p_y : | 格子点->ガラーキンデータ変換 |
ey_ep, y_p : | ガラーキン->格子点データ変換 |
ef_yx : | ガラーキンデータ->格子点変換 |
yx_ef : | 格子点->ガラーキンデータ変換 |
ef_et, f_t : | チェビシェフ->ガラーキン変換 |
et_ef, t_f : | ガラーキン->チェビシェフ変換 |
ef_ey, f_y : | 格子点->ガラーキンデータ変換 |
ey_ef, y_f : | ガラーキン->格子点データ変換 |
eh_yx : | ガラーキンデータ->格子点変換 |
yx_eh : | 格子点->ガラーキンデータ変換 |
eh_et : | チェビシェフ->ガラーキン変換 |
et_eh : | ガラーキン->チェビシェフ変換 |
eh_ey : | 格子点->ガラーキンデータ変換 |
ey_eh : | ガラーキン->格子点データ変換 |
eq_yx : | ガラーキンデータ->格子点変換 |
yx_eq : | 格子点->ガラーキンデータ変換 |
eq_et, q_t : | チェビシェフ->ガラーキン変換 |
et_eq, t_q : | ガラーキン->チェビシェフ変換 |
eq_ey, q_y : | 格子点->ガラーキンデータ変換 |
ey_eq, y_q : | ガラーキン->格子点データ変換 |
et_Lapla_et : | スペクトルデータにラプラシアンを作用させる |
et_LaplaInv_et : | スペクトルデータに逆ラプラシアンを作用させる |
et_Dx_et, ae_Dx_ae, e_Dx_e : | スペクトルデータに X 微分を作用させる |
et_Dy_et, at_Dy_at, t_Dy_t : | スペクトルデータに Y 微分を作用させる |
et_Jacobian_et_et : | 2 つのスペクトルデータからヤコビアンを計算する |
ed_Dx_ed : | X 微分 |
ed_Dy_ed, d_Dy_d : | Y 微分 |
ev_Dx_ev : | X 微分 |
ev_Dy_ev, v_Dy_v : | Y 微分 |
eb_Dx_eb : | X 微分 |
eb_Dy_eb, b_Dy_b : | Y 微分 |
ep_Dx_ep : | X 微分 |
ep_Dy_ep, p_Dy_p : | Y 微分 |
ef_Dx_ef : | X 微分 |
ef_Dy_ef, f_Dy_f : | Y 微分 |
eh_Dx_eh : | X 微分 |
eh_Dy_eh : | Y 微分 |
eq_Dx_eq : | X 微分 |
eq_Dy_eq, q_Dy_q : | Y 微分 |
eq_Vor2Strm_eq : | 渦度から流線を計算する |
IntYX_yx, AvrYX_yx : | 2 次元格子点データの全領域積分および平均 |
y_IntX_yx, y_AvrX_yx : | 2 次元格子点データの X 方向積分および平均 |
IntX_x, AvrX_x : | 1 次元(X)格子点データの X 方向積分および平均 |
x_IntY_yx, x_AvrY_yx : | 2 次元格子点データの Y 方向積分および平均 |
IntY_y, AvrY_y : | 1 次元(Y)格子点データの Y 方向積分および平均 |
Y 微分計算を連続して行う場合にはガラーキンデータ用関数を用いるのでなく チェビシェフスペクトル用関数を用いること
× : ed_Dy_ed(ed_Dy_ed(ed) ○ : ed_et(et_Dy_et(et_Dy_et(et_ed(ed))))
Function : | |||
AvrX_x : | real(8)
| ||
x : | real(8), dimension(0:im-1)
|
1 次元(X)格子点データの X 方向平均
実際には格子点データ各点毎に x_X_Weight をかけた総和を計算し, x_X_Weight の総和で割ることで平均している.
Original external subprogram is et_module#AvrX_x
Function : | |||
AvrYX_yx : | real(8)
| ||
yx : | real(8), dimension(0:jm,0:im-1)
|
2 次元格子点データの全領域平均
実際には格子点データ各点毎に x_X_Weight, y_Y_Weight をかけた 総和を計算し, x_X_Weight*y_Y_Weight の総和で割ることで平均している.
Original external subprogram is et_module#AvrYX_yx
Function : | |||
AvrY_y : | real(8)
| ||
y : | real(8), dimension(0:jm)
|
1 次元(Y)格子点データの Y 方向平均
実際には格子点データ各点毎に y_Y_Weight をかけた総和を計算し, y_Y_Weight の総和で割ることで平均している.
Original external subprogram is et_module#AvrY_y
Function : | |||
IntX_x : | real(8)
| ||
x : | real(8), dimension(0:im-1)
|
X 方向積分
1 次元(X)格子点データの X 方向積分
実際には格子点データ各点毎に x_X_Weight をかけた総和を計算している.
Original external subprogram is et_module#IntX_x
Function : | |||
IntYX_yx : | real(8)
| ||
yx : | real(8), dimension(0:jm,0:im-1)
|
全領域積分
2 次元格子点データの全領域積分および平均.
実際には格子点データ各点毎に x_X_Weight, y_Y_Weight をかけた 総和を計算している.
Original external subprogram is et_module#IntYX_yx
Function : | |||
IntY_y : | real(8)
| ||
y : | real(8), dimension(0:jm)
|
Y 方向積分
1 次元(Y)格子点データの Y 方向積分
実際には格子点データ各点毎に y_Y_Weight をかけた総和を計算している.
Original external subprogram is et_module#IntY_y
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_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 : | |||
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 : | |
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_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 : | |||
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 : | |
eb_Dx_eb : | real(8), dimension(-km:km,2:lm) |
eb : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
function eb_Dx_eb(eb) ! ! 入力スペクトルデータに X 微分(∂x)を作用する. ! ! スペクトルデータの X 微分とは, 対応する格子点データに X 微分を ! 作用させたデータのスペクトル変換のことである. ! ! 実際にはスペクトルデータに X 方向波数 k をかけて ! sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている. ! real(8), dimension(-km:km,2:lm) :: eb_Dx_eb real(8), dimension(-km:km,2:lm), intent(in) :: eb integer k do k=-km,km eb_Dx_eb(k,:) = (-2*pi*k/xl)*eb(-k,:) enddo end function eb_Dx_eb
Function : | |
eb_Dy_eb : | real(8), dimension(-km:km,2:lm) |
eb : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
function eb_Dy_eb(eb) ! ! 入力スペクトルデータに Y 微分(∂y)を作用する. ! ! スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を ! 作用させたデータのスペクトル変換のことである. ! real(8), dimension(-km:km,2:lm) :: eb_Dy_eb real(8), dimension(-km:km,2:lm), intent(in) :: eb eb_Dy_eb = eb_et(et_Dy_et(et_eb(eb))) end function eb_Dy_eb
Function : | |||
eb_et : | real(8), dimension(-km:km,2:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
チェビシェフデータからガラーキンデータへ変換する.
function eb_et(et) ! ! チェビシェフデータからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: eb_et !(out) スペクトルデータ real(8), dimension(-km:km,0:lm), intent(in) :: et !(in) 格子点データ eb_et = ab_at(et) end function eb_et
Function : | |||
eb_ey : | real(8), dimension(-km:km,2:lm)
| ||
ey : | real(8), dimension(-km:km,0:jm), intent(in)
|
格子データからガラーキンデータへ変換する.
function eb_ey(ey) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: eb_ey !(out) スペクトルデータ real(8), dimension(-km:km,0:jm), intent(in) :: ey !(in) 格子点データ eb_ey = ab_ag(ey) end function eb_ey
Function : | |||
eb_yx : | real(8), dimension(-km:km,2:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからガラーキンデータへ変換する.
function eb_yx(yx) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: eb_yx !(out) スペクトルデータ real(8), dimension(0:jm,0:im-1), intent(in) :: yx !(in) 格子点データ eb_yx = eb_et(et_yx(yx)) end function eb_yx
Function : | |
ed_Dx_ed : | real(8), dimension(-km:km,2:lm) |
ed : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
function ed_Dx_ed(ed) ! ! 入力スペクトルデータに X 微分(∂x)を作用する. ! ! スペクトルデータの X 微分とは, 対応する格子点データに X 微分を ! 作用させたデータのスペクトル変換のことである. ! ! 実際にはスペクトルデータに X 方向波数 k をかけて ! sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている. ! real(8), dimension(-km:km,2:lm) :: ed_Dx_ed real(8), dimension(-km:km,2:lm), intent(in) :: ed integer k do k=-km,km ed_Dx_ed(k,:) = (-2*pi*k/xl)*ed(-k,:) enddo end function ed_Dx_ed
Function : | |
ed_Dy_ed : | real(8), dimension(-km:km,2:lm) |
ed : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
function ed_Dy_ed(ed) ! ! 入力スペクトルデータに Y 微分(∂y)を作用する. ! ! スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を ! 作用させたデータのスペクトル変換のことである. ! real(8), dimension(-km:km,2:lm) :: ed_Dy_ed real(8), dimension(-km:km,2:lm), intent(in) :: ed ed_Dy_ed = ed_et(et_Dy_et(et_ed(ed))) end function ed_Dy_ed
Function : | |||
ed_et : | real(8), dimension(-km:km,2:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
チェビシェフデータからガラーキンデータへ変換する.
function ed_et(et) ! ! チェビシェフデータからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ed_et !(out) スペクトルデータ real(8), dimension(-km:km,0:lm), intent(in) :: et !(in) 格子点データ ed_et = ad_at(et) end function ed_et
Function : | |||
ed_ey : | real(8), dimension(-km:km,2:lm)
| ||
ey : | real(8), dimension(-km:km,0:jm), intent(in)
|
格子データからガラーキンデータへ変換する.
function ed_ey(ey) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ed_ey !(out) スペクトルデータ real(8), dimension(-km:km,0:jm), intent(in) :: ey !(in) 格子点データ ed_ey = ad_ag(ey) end function ed_ey
Function : | |||
ed_yx : | real(8), dimension(-km:km,2:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからガラーキンデータへ変換する.
function ed_yx(yx) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ed_yx !(out) スペクトルデータ real(8), dimension(0:jm,0:im-1), intent(in) :: yx !(in) 格子点データ ed_yx = ed_et(et_yx(yx)) end function ed_yx
Function : | |
ef_Dx_ef : | real(8), dimension(-km:km,2:lm) |
ef : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
function ef_Dx_ef(ef) ! ! 入力スペクトルデータに X 微分(∂x)を作用する. ! ! スペクトルデータの X 微分とは, 対応する格子点データに X 微分を ! 作用させたデータのスペクトル変換のことである. ! ! 実際にはスペクトルデータに X 方向波数 k をかけて ! sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている. ! real(8), dimension(-km:km,2:lm) :: ef_Dx_ef real(8), dimension(-km:km,2:lm), intent(in) :: ef integer k do k=-km,km ef_Dx_ef(k,:) = (-2*pi*k/xl)*ef(-k,:) enddo end function ef_Dx_ef
Function : | |
ef_Dy_ef : | real(8), dimension(-km:km,2:lm) |
ef : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
function ef_Dy_ef(ef) ! ! 入力スペクトルデータに Y 微分(∂y)を作用する. ! ! スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を ! 作用させたデータのスペクトル変換のことである. ! real(8), dimension(-km:km,2:lm) :: ef_Dy_ef real(8), dimension(-km:km,2:lm), intent(in) :: ef ef_Dy_ef = ef_et(et_Dy_et(et_ef(ef))) end function ef_Dy_ef
Function : | |||
ef_et : | real(8), dimension(-km:km,2:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
チェビシェフデータからガラーキンデータへ変換する.
function ef_et(et) ! ! チェビシェフデータからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ef_et !(out) スペクトルデータ real(8), dimension(-km:km,0:lm), intent(in) :: et !(in) 格子点データ ef_et = af_at(et) end function ef_et
Function : | |||
ef_ey : | real(8), dimension(-km:km,2:lm)
| ||
ey : | real(8), dimension(-km:km,0:jm), intent(in)
|
格子データからガラーキンデータへ変換する.
function ef_ey(ey) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ef_ey !(out) スペクトルデータ real(8), dimension(-km:km,0:jm), intent(in) :: ey !(in) 格子点データ ef_ey = af_ag(ey) end function ef_ey
Function : | |||
ef_yx : | real(8), dimension(-km:km,2:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからガラーキンデータへ変換する.
function ef_yx(yx) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ef_yx !(out) スペクトルデータ real(8), dimension(0:jm,0:im-1), intent(in) :: yx !(in) 格子点データ ef_yx = ef_et(et_yx(yx)) end function ef_yx
Function : | |
eh_Dx_eh : | real(8), dimension(-km:km,2:lm) |
eh : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
function eh_Dx_eh(eh) ! ! 入力スペクトルデータに X 微分(∂x)を作用する. ! ! スペクトルデータの X 微分とは, 対応する格子点データに X 微分を ! 作用させたデータのスペクトル変換のことである. ! ! 実際にはスペクトルデータに X 方向波数 k をかけて ! sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている. ! real(8), dimension(-km:km,2:lm) :: eh_Dx_eh real(8), dimension(-km:km,2:lm), intent(in) :: eh integer k do k=-km,km eh_Dx_eh(k,:) = (-2*pi*k/xl)*eh(-k,:) enddo end function eh_Dx_eh
Function : | |
eh_Dy_eh : | real(8), dimension(-km:km,2:lm) |
eh : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
function eh_Dy_eh(eh) ! ! 入力スペクトルデータに Y 微分(∂y)を作用する. ! ! スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を ! 作用させたデータのスペクトル変換のことである. ! real(8), dimension(-km:km,2:lm) :: eh_Dy_eh real(8), dimension(-km:km,2:lm), intent(in) :: eh eh_Dy_eh = eh_et(et_Dy_et(et_eh(eh))) end function eh_Dy_eh
Function : | |||
eh_et : | real(8), dimension(-km:km,2:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
チェビシェフデータからガラーキンデータへ変換する.
function eh_et(et) ! ! チェビシェフデータからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: eh_et !(out) スペクトルデータ real(8), dimension(-km:km,0:lm), intent(in) :: et !(in) 格子点データ eh_et = ah_at(et) end function eh_et
Function : | |||
eh_ey : | real(8), dimension(-km:km,2:lm)
| ||
ey : | real(8), dimension(-km:km,0:jm), intent(in)
|
格子データからガラーキンデータへ変換する.
function eh_ey(ey) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: eh_ey !(out) スペクトルデータ real(8), dimension(-km:km,0:jm), intent(in) :: ey !(in) 格子点データ eh_ey = ah_ag(ey) end function eh_ey
Function : | |||
eh_yx : | real(8), dimension(-km:km,2:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからガラーキンデータへ変換する.
function eh_yx(yx) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: eh_yx !(out) スペクトルデータ real(8), dimension(0:jm,0:im-1), intent(in) :: yx !(in) 格子点データ eh_yx = eh_et(et_yx(yx)) end function eh_yx
Function : | |
ep_Dx_ep : | real(8), dimension(-km:km,2:lm) |
ep : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
function ep_Dx_ep(ep) ! ! 入力スペクトルデータに X 微分(∂x)を作用する. ! ! スペクトルデータの X 微分とは, 対応する格子点データに X 微分を ! 作用させたデータのスペクトル変換のことである. ! ! 実際にはスペクトルデータに X 方向波数 k をかけて ! sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている. ! real(8), dimension(-km:km,2:lm) :: ep_Dx_ep real(8), dimension(-km:km,2:lm), intent(in) :: ep integer k do k=-km,km ep_Dx_ep(k,:) = (-2*pi*k/xl)*ep(-k,:) enddo end function ep_Dx_ep
Function : | |
ep_Dy_ep : | real(8), dimension(-km:km,2:lm) |
ep : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
function ep_Dy_ep(ep) ! ! 入力スペクトルデータに Y 微分(∂y)を作用する. ! ! スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を ! 作用させたデータのスペクトル変換のことである. ! real(8), dimension(-km:km,2:lm) :: ep_Dy_ep real(8), dimension(-km:km,2:lm), intent(in) :: ep ep_Dy_ep = ep_et(et_Dy_et(et_ep(ep))) end function ep_Dy_ep
Function : | |||
ep_et : | real(8), dimension(-km:km,2:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
チェビシェフデータからガラーキンデータへ変換する.
function ep_et(et) ! ! チェビシェフデータからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ep_et !(out) スペクトルデータ real(8), dimension(-km:km,0:lm), intent(in) :: et !(in) 格子点データ ep_et = ap_at(et) end function ep_et
Function : | |||
ep_ey : | real(8), dimension(-km:km,2:lm)
| ||
ey : | real(8), dimension(-km:km,0:jm), intent(in)
|
格子データからガラーキンデータへ変換する.
function ep_ey(ey) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ep_ey !(out) スペクトルデータ real(8), dimension(-km:km,0:jm), intent(in) :: ey !(in) 格子点データ ep_ey = ap_ag(ey) end function ep_ey
Function : | |||
ep_yx : | real(8), dimension(-km:km,2:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからガラーキンデータへ変換する.
function ep_yx(yx) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ep_yx !(out) スペクトルデータ real(8), dimension(0:jm,0:im-1), intent(in) :: yx !(in) 格子点データ ep_yx = ep_et(et_yx(yx)) end function ep_yx
Function : | |
eq_Dx_eq : | real(8), dimension(-km:km,4:lm) |
eq : | real(8), dimension(-km:km,4:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
function eq_Dx_eq(eq) ! ! 入力スペクトルデータに X 微分(∂x)を作用する. ! ! スペクトルデータの X 微分とは, 対応する格子点データに X 微分を ! 作用させたデータのスペクトル変換のことである. ! ! 実際にはスペクトルデータに X 方向波数 k をかけて ! sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている. ! real(8), dimension(-km:km,4:lm) :: eq_Dx_eq real(8), dimension(-km:km,4:lm), intent(in) :: eq integer k do k=-km,km eq_Dx_eq(k,:) = (-2*pi*k/xl)*eq(-k,:) enddo end function eq_Dx_eq
Function : | |
eq_Dy_eq : | real(8), dimension(-km:km,4:lm) |
eq : | real(8), dimension(-km:km,4:lm), intent(in) |
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
function eq_Dy_eq(eq) ! ! 入力スペクトルデータに Y 微分(∂y)を作用する. ! ! スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を ! 作用させたデータのスペクトル変換のことである. ! real(8), dimension(-km:km,4:lm) :: eq_Dy_eq real(8), dimension(-km:km,4:lm), intent(in) :: eq eq_Dy_eq = eq_et(et_Dy_et(et_eq(eq))) end function eq_Dy_eq
Function : | |||
eq_Vor2Strm_et(-km:km,4:lm) : | real(8)
| ||
et_Zeta(-km:km,0:lm) : | real(8), intent(IN)
|
2 次元水路領域 Fourier 展開 + チェビシェフ−ガラーキン法用モジュール 渦度から流線を計算する.
function eq_Vor2Strm_et(et_Zeta) ! ! 2 次元水路領域 ! Fourier 展開 + チェビシェフ−ガラーキン法用モジュール ! ! 渦度から流線を計算する. ! real(8), intent(IN) :: et_Zeta(-km:km,0:lm) !(in) 渦度 ζ=▽^2ψ real(8) :: eq_Vor2Strm_et(-km:km,4:lm) !(out) 流線 ψ real(8), allocatable :: LaplaMT(:,:,:) real(8), allocatable :: LaplaInvMT(:,:,:) integer, allocatable :: kpvot(:,:) integer, parameter :: ls=4 real(8) :: eq_work(-km:km,ls:lm) real(8) :: et_work(-km:km,0:lm) integer :: k, m, n, l, p logical :: first = .true. save LaplaInvMT, kpvot, first if ( .not. Set_RRFF ) call MessageNotify('E','eq_Vor2Strm_et', 'at_aq_galerkin_RRFF_module not initialized.') if ( first ) then first = .false. allocate(LaplaMT(-km:km,0:lm,0:lm)) allocate(LaplaInvMT(-km:km,ls:lm,ls:lm),kpvot(-km:km,ls:lm)) LaplaMT=0.0D0 do l=0,lm et_work = 0.0D0 et_work(:,l) = 1.0D0 et_work = et_Lapla_et(et_work) LaplaMT(:,:,l) = et_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 eq_work=0.0 do m=ls,lm do k=0,lm eq_work(:,m)=eq_work(:,m) + alpha(k) * beta(k) * et_Zeta(:,k)* TQ(k,m) enddo enddo eq_Vor2Strm_et = LUSolve(LaplaInvMT,kpvot,eq_work) end function eq_Vor2Strm_et
Function : | |||
eq_et : | real(8), dimension(-km:km,4:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
チェビシェフデータからガラーキンデータへ変換する.
function eq_et(et) ! ! チェビシェフデータからガラーキンデータへ変換する. ! real(8), dimension(-km:km,4:lm) :: eq_et !(out) スペクトルデータ real(8), dimension(-km:km,0:lm), intent(in) :: et !(in) 格子点データ eq_et = aq_at(et) end function eq_et
Function : | |||
eq_ey : | real(8), dimension(-km:km,4:lm)
| ||
ey : | real(8), dimension(-km:km,0:jm), intent(in)
|
格子データからガラーキンデータへ変換する.
function eq_ey(ey) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,4:lm) :: eq_ey !(out) スペクトルデータ real(8), dimension(-km:km,0:jm), intent(in) :: ey !(in) 格子点データ eq_ey = aq_ag(ey) end function eq_ey
Function : | |||
eq_yx : | real(8), dimension(-km:km,4:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからガラーキンデータへ変換する.
function eq_yx(yx) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,4:lm) :: eq_yx !(out) スペクトルデータ real(8), dimension(0:jm,0:im-1), intent(in) :: yx !(in) 格子点データ eq_yx = eq_et(et_yx(yx)) end function eq_yx
Function : | |
et_Dx_et : | real(8), dimension(-km:km,0:lm) |
et : | real(8), dimension(-km:km,0:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
Original external subprogram is et_module#et_Dx_et
Function : | |||
et_Dy_et : | real(8), dimension(-km:km,0:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
Original external subprogram is et_module#et_Dy_et
Function : | |||
et_Jacobian_et_et : | real(8), dimension(-km:km,0:lm)
| ||
et_a : | real(8), dimension(-km:km,0:lm), intent(in)
| ||
et_b : | real(8), dimension(-km:km,0:lm), intent(in)
|
2 つのスペクトルデータからヤコビアン J(A,B)=(∂xA)(∂yB)-(∂yA)(∂xB) を計算する. 2 つのスペクトルデータのヤコビアンとは, 対応する 2 つの 格子点データのヤコビアンのスペクトル変換のことである.
Original external subprogram is et_module#et_Jacobian_et_et
Function : | |||
et_LaplaInv_et : | real(8), dimension(-km:km,0:lm)
| ||
et : | real(8), dimension(-km:km,0:lm),intent(in)
| ||
values : | real(8), dimension(-km:km,2), intent(in), optional
|
境界で一様な値を与える条件(ディリクレ条件)下で, 入力スペクトルデータに逆ラプラシアン(∂xx+∂yy)**(-1)を作用する.
Chebyshev-tau 法による計算
スペクトルデータの逆ラプラシアンとは, 対応する格子点データに 逆ラプラシアンを作用させたデータのスペクトル変換のことである.
Original external subprogram is et_module#et_LaplaInv_et
Function : | |||
et_Lapla_et : | real(8), dimension(-km:km,0:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
入力スペクトルデータにラプラシアン(∂xx+∂yy)を作用する.
スペクトルデータのラプラシアンとは, 対応する格子点データに ラプラシアンを作用させたデータのスペクトル変換のことである.
Original external subprogram is et_module#et_Lapla_et
Function : | |||
et_eb : | real(8), dimension(-km:km,0:lm)
| ||
eb : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータからチェビシェフデータへ変換する.
function et_eb(eb) ! ! ガラーキンデータからチェビシェフデータへ変換する. ! real(8), dimension(-km:km,0:lm) :: et_eb !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: eb !(in) スペクトルデータ et_eb = at_ab(eb) end function et_eb
Function : | |||
et_ed : | real(8), dimension(-km:km,0:lm)
| ||
ed : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータからチェビシェフデータへ変換する.
function et_ed(ed) ! ! ガラーキンデータからチェビシェフデータへ変換する. ! real(8), dimension(-km:km,0:lm) :: et_ed !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ed !(in) スペクトルデータ et_ed = at_ad(ed) end function et_ed
Function : | |||
et_ef : | real(8), dimension(-km:km,0:lm)
| ||
ef : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータからチェビシェフデータへ変換する.
function et_ef(ef) ! ! ガラーキンデータからチェビシェフデータへ変換する. ! real(8), dimension(-km:km,0:lm) :: et_ef !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ef !(in) スペクトルデータ et_ef = at_af(ef) end function et_ef
Function : | |||
et_eh : | real(8), dimension(-km:km,0:lm)
| ||
eh : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータからチェビシェフデータへ変換する.
function et_eh(eh) ! ! ガラーキンデータからチェビシェフデータへ変換する. ! real(8), dimension(-km:km,0:lm) :: et_eh !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: eh !(in) スペクトルデータ et_eh = at_ah(eh) end function et_eh
Function : | |||
et_ep : | real(8), dimension(-km:km,0:lm)
| ||
ep : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータからチェビシェフデータへ変換する.
function et_ep(ep) ! ! ガラーキンデータからチェビシェフデータへ変換する. ! real(8), dimension(-km:km,0:lm) :: et_ep !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ep !(in) スペクトルデータ et_ep = at_ap(ep) end function et_ep
Function : | |||
et_eq : | real(8), dimension(-km:km,0:lm)
| ||
eq : | real(8), dimension(-km:km,4:lm), intent(in)
|
ガラーキンデータからチェビシェフデータへ変換する.
function et_eq(eq) ! ! ガラーキンデータからチェビシェフデータへ変換する. ! real(8), dimension(-km:km,0:lm) :: et_eq !(out) 格子点データ real(8), dimension(-km:km,4:lm), intent(in) :: eq !(in) スペクトルデータ et_eq = at_aq(eq) end function et_eq
Function : | |||
et_ev : | real(8), dimension(-km:km,0:lm)
| ||
ev : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータからチェビシェフデータへ変換する.
function et_ev(ev) ! ! ガラーキンデータからチェビシェフデータへ変換する. ! real(8), dimension(-km:km,0:lm) :: et_ev !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ev !(in) スペクトルデータ et_ev = at_av(ev) end function et_ev
Subroutine : | |||
i : | integer,intent(in)
| ||
j : | integer,intent(in)
| ||
k : | integer,intent(in)
| ||
l : | integer,intent(in)
| ||
xmin : | real(8),intent(in)
| ||
xmax : | real(8),intent(in)
| ||
ymin : | real(8),intent(in)
| ||
ymax : | real(8),intent(in)
| ||
DD : | logical,intent(in),optional
| ||
NN : | logical,intent(in),optional
| ||
DN : | logical,intent(in),optional
| ||
ND : | logical,intent(in),optional
| ||
velBC : | character(LEN=2),intent(in),optional
| ||
MM_cfdy0_ymin : | real(8),intent(in),optional
| ||
MM_cfdy1_ymin : | real(8),intent(In),optional
| ||
MM_cfdy0_ymax : | real(8),intent(in),optional
| ||
MM_cfdy1_ymax : | real(8),intent(in),optional
| ||
MMex_cfdy0_ymin(-k:k) : | real(8),intent(in),optional
| ||
MMex_cfdy1_ymin(-k:k) : | real(8),intent(in),optional
| ||
MMex_cfdy0_ymax(-k:k) : | real(8),intent(in),optional
| ||
MMex_cfdy1_ymax(-k:k) : | real(8),intent(in),optional
|
2 次元水路領域 Fourier 展開 + チェビシェフ−ガラーキン法用モジュール 初期化サブルーチン
subroutine et_galerkin_Initial(i,j,k,l,xmin,xmax,ymin,ymax, DD,NN,DN,ND,velBC, MM_cfdy0_ymin, MM_cfdy1_ymin, MM_cfdy0_ymax, MM_cfdy1_ymax, MMex_cfdy0_ymin, MMex_cfdy1_ymin, MMex_cfdy0_ymax, MMex_cfdy1_ymax) ! ! 2 次元水路領域 ! Fourier 展開 + チェビシェフ−ガラーキン法用モジュール ! ! 初期化サブルーチン ! integer,intent(in) :: i, j ! 格子点の設定(X,Y) integer,intent(in) :: k, l ! 切断波数の設定(X,Y) real(8),intent(in) :: xmin, xmax ! X 座標範囲 real(8),intent(in) :: ymin, ymax ! Y 座標範囲 logical,intent(in),optional :: DD ! モジュール読み込みスイッチ logical,intent(in),optional :: NN ! モジュール読み込みスイッチ logical,intent(in),optional :: DN ! モジュール読み込みスイッチ logical,intent(in),optional :: ND ! モジュール読み込みスイッチ ! at_af_galerkin_MM_module 境界条件係数 real(8),intent(in),optional :: MM_cfdy0_ymin ! (0階微分@x=ymin) real(8),intent(In),optional :: MM_cfdy1_ymin ! (1階微分@x=ymin) real(8),intent(in),optional :: MM_cfdy0_ymax ! (0階微分@x=ymax) real(8),intent(in),optional :: MM_cfdy1_ymax ! (1階微分@x=ymax) ! at_ah_galerkin_MMex_module 境界条件係数 real(8),intent(in),optional :: MMex_cfdy0_ymin(-k:k) ! (0階微分@x=ymin) real(8),intent(in),optional :: MMex_cfdy1_ymin(-k:k) ! (1階微分@x=ymin) real(8),intent(in),optional :: MMex_cfdy0_ymax(-k:k) ! (0階微分@x=ymax) real(8),intent(in),optional :: MMex_cfdy1_ymax(-k:k) ! (1階微分@x=ymax) ! at_aq_galerkin_RRFF_module 速度場境界条件 character(LEN=2),intent(in),optional :: velBC ! 境界条件(RR/SS/RS/SR) !--------------- 引数処理 ----------------- im=i jm = j km=k lm=l xl = xmax-xmin if ( present(DD) ) Set_DD = DD if ( present(NN) ) Set_NN = NN if ( present(DN) ) Set_DN = DN if ( present(ND) ) Set_ND = ND if ( present(MM_cfdy0_ymin) .AND.present(MM_cfdy1_ymin) .AND. present(MM_cfdy0_ymax) .AND.present(MM_cfdy1_ymax) ) Set_MM=.true. if ( present(MMex_cfdy0_ymin) .AND.present(MMex_cfdy1_ymin) .AND. present(MMex_cfdy0_ymax) .AND.present(MMex_cfdy1_ymax) ) Set_MMex=.true. if ( present(velBC) ) Set_RRFF = .true. !--------------- モジュール初期化 ----------------- call et_Initial(im,jm,km,lm,xmin,xmax,ymin,ymax) if ( Set_DD ) call at_ad_galerkin_DD_Initial(jm,lm) if ( Set_NN ) call at_av_galerkin_NN_Initial(jm,lm) if ( Set_DN ) call at_ap_galerkin_DN_Initial(jm,lm) if ( Set_ND ) call at_ab_galerkin_ND_Initial(jm,lm) if ( Set_MM ) call at_af_galerkin_MM_Initial (jm,lm, MM_cfdy0_ymax, MM_cfdy1_ymax, MM_cfdy0_ymin, MM_cfdy1_ymin ) if ( Set_MMex ) call at_ah_galerkin_MMex_Initial (jm,lm,2*km+1, MMex_cfdy0_ymax, MMex_cfdy1_ymax, MMex_cfdy0_ymin, MMex_cfdy1_ymin ) if ( Set_RRFF ) call at_aq_galerkin_RRFF_Initial(jm,lm,velBC) call MessageNotify('M','et_galerkin_initial','et_galerkin_module (2013/08/24) is initialized') end subroutine et_galerkin_initial
Function : | |||
et_yx : | real(8), dimension(-km:km,0:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからスペクトルデータへ変換する.
Original external subprogram is et_module#et_yx
Function : | |
ev_Dx_ev : | real(8), dimension(-km:km,2:lm) |
ev : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに X 微分(∂x)を作用する.
スペクトルデータの X 微分とは, 対応する格子点データに X 微分を 作用させたデータのスペクトル変換のことである.
実際にはスペクトルデータに X 方向波数 k をかけて sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている.
function ev_Dx_ev(ev) ! ! 入力スペクトルデータに X 微分(∂x)を作用する. ! ! スペクトルデータの X 微分とは, 対応する格子点データに X 微分を ! 作用させたデータのスペクトル変換のことである. ! ! 実際にはスペクトルデータに X 方向波数 k をかけて ! sin(kx) <-> cos(kx) 成分に入れ換える計算を行っている. ! real(8), dimension(-km:km,2:lm) :: ev_Dx_ev real(8), dimension(-km:km,2:lm), intent(in) :: ev integer k do k=-km,km ev_Dx_ev(k,:) = (-2*pi*k/xl)*ev(-k,:) enddo end function ev_Dx_ev
Function : | |
ev_Dy_ev : | real(8), dimension(-km:km,2:lm) |
ev : | real(8), dimension(-km:km,2:lm), intent(in) |
入力スペクトルデータに Y 微分(∂y)を作用する.
スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を 作用させたデータのスペクトル変換のことである.
function ev_Dy_ev(ev) ! ! 入力スペクトルデータに Y 微分(∂y)を作用する. ! ! スペクトルデータの Y 微分とは, 対応する格子点データに Y 微分を ! 作用させたデータのスペクトル変換のことである. ! real(8), dimension(-km:km,2:lm) :: ev_Dy_ev real(8), dimension(-km:km,2:lm), intent(in) :: ev ev_Dy_ev = ev_et(et_Dy_et(et_ev(ev))) end function ev_Dy_ev
Function : | |||
ev_et : | real(8), dimension(-km:km,2:lm)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
チェビシェフデータからガラーキンデータへ変換する.
function ev_et(et) ! ! チェビシェフデータからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ev_et !(out) スペクトルデータ real(8), dimension(-km:km,0:lm), intent(in) :: et !(in) 格子点データ ev_et = av_at(et) end function ev_et
Function : | |||
ev_ey : | real(8), dimension(-km:km,2:lm)
| ||
ey : | real(8), dimension(-km:km,0:jm), intent(in)
|
格子データからガラーキンデータへ変換する.
function ev_ey(ey) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ev_ey !(out) スペクトルデータ real(8), dimension(-km:km,0:jm), intent(in) :: ey !(in) 格子点データ ev_ey = av_ag(ey) end function ev_ey
Function : | |||
ev_yx : | real(8), dimension(-km:km,2:lm)
| ||
yx : | real(8), dimension(0:jm,0:im-1), intent(in)
|
格子データからガラーキンデータへ変換する.
function ev_yx(yx) ! ! 格子データからガラーキンデータへ変換する. ! real(8), dimension(-km:km,2:lm) :: ev_yx !(out) スペクトルデータ real(8), dimension(0:jm,0:im-1), intent(in) :: yx !(in) 格子点データ ev_yx = ev_et(et_yx(yx)) end function ev_yx
Function : | |||
ey_eb : | real(8), dimension(-km:km,0:jm)
| ||
eb : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function ey_eb(eb) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(-km:km,0:jm) :: ey_eb !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: eb !(in) スペクトルデータ ey_eb = ag_ab(eb) end function ey_eb
Function : | |||
ey_ed : | real(8), dimension(-km:km,0:jm)
| ||
ed : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function ey_ed(ed) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(-km:km,0:jm) :: ey_ed !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ed !(in) スペクトルデータ ey_ed = ag_ad(ed) end function ey_ed
Function : | |||
ey_ef : | real(8), dimension(-km:km,0:jm)
| ||
ef : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function ey_ef(ef) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(-km:km,0:jm) :: ey_ef !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ef !(in) スペクトルデータ ey_ef = ag_af(ef) end function ey_ef
Function : | |||
ey_eh : | real(8), dimension(-km:km,0:jm)
| ||
eh : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function ey_eh(eh) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(-km:km,0:jm) :: ey_eh !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: eh !(in) スペクトルデータ ey_eh = ag_ah(eh) end function ey_eh
Function : | |||
ey_ep : | real(8), dimension(-km:km,0:jm)
| ||
ep : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function ey_ep(ep) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(-km:km,0:jm) :: ey_ep !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ep !(in) スペクトルデータ ey_ep = ag_ap(ep) end function ey_ep
Function : | |||
ey_eq : | real(8), dimension(-km:km,0:jm)
| ||
eq : | real(8), dimension(-km:km,4:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function ey_eq(eq) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(-km:km,0:jm) :: ey_eq !(out) 格子点データ real(8), dimension(-km:km,4:lm), intent(in) :: eq !(in) スペクトルデータ ey_eq = ag_aq(eq) end function ey_eq
Function : | |||
ey_ev : | real(8), dimension(-km:km,0:jm)
| ||
ev : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function ey_ev(ev) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(-km:km,0:jm) :: ey_ev !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ev !(in) スペクトルデータ ey_ev = ag_av(ev) end function ey_ev
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_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 : | |||
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 : | |
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_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 : | |||
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 : | |
q_Dx_q(ks:km) : | real(8) |
q_data(ks:km) : | real(8), intent(in) |
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
X 微分計算(1 次元)
Original external subprogram is at_aq_galerkin_RRFF#q_Dx_q
Function : | |||
q_t(ks:km) : | real(8)
| ||
t_data(0:km) : | real(8), intent(in)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
チェビシェフ係数 -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_aq_galerkin_RRFF#q_t
Function : | |||
q_g(ks:km) : | real(8)
| ||
g_data(0:im) : | real(8), intent(in)
|
チェビシェフ−ガラーキン法 非圧縮流体の流線関数・流れポテンシャル用
格子点データ -> ガラーキン係数変換(1次元データ)
Original external subprogram is at_aq_galerkin_RRFF#q_g
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_RRFF#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_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 : | |||
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 : | |||
x_AvrY_yx : | real(8), dimension(0:im-1)
| ||
yx : | real(8), dimension(0:jm,0:im-1)
|
2 次元格子点データの Y 方向平均
実際には格子点データ各点毎に y_Y_Weight をかけた総和を計算し, y_Y_Weight の総和で割ることで平均している.
Original external subprogram is et_module#x_AvrY_yx
Function : | |||
x_IntY_yx : | real(8), dimension(0:im-1)
| ||
yx : | real(8), dimension(0:jm,0:im-1)
|
Y 方向積分
2 次元格子点データの Y 方向積分
実際には格子点データ各点毎に y_Y_Weight をかけた総和を計算している.
Original external subprogram is et_module#x_IntY_yx
Function : | |||
y_AvrX_yx : | real(8), dimension(0:jm)
| ||
yx : | real(8), dimension(0:jm,0:im-1)
|
2 次元格子点データの X 方向平均
実際には格子点データ各点毎に x_X_Weight をかけた総和を計算し, x_X_Weight の総和で割ることで平均している.
Original external subprogram is et_module#y_AvrX_yx
Function : | |||
y_IntX_yx : | real(8), dimension(0:jm)
| ||
yx : | real(8), dimension(0:jm,0:im-1)
|
X 方向積分
2 次元格子点データの X 方向積分
実際には格子点データ各点毎に x_X_Weight をかけた総和を計算している.
Original external subprogram is et_module#y_IntX_yx
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_RRFF#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
Variable : | |
yx_X : | real(8), dimension(:,:), allocatable |
Original external subprogram is et_module#yx_X
Variable : | |
yx_Y : | real(8), dimension(:,:), allocatable |
Original external subprogram is et_module#yx_Y
Function : | |||
yx_eb : | real(8), dimension(0:jm,0:im-1)
| ||
eb : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function yx_eb(eb) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(0:jm,0:im-1) :: yx_eb !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: eb !(in) スペクトルデータ yx_eb = yx_et(et_eb(eb)) end function yx_eb
Function : | |||
yx_ed : | real(8), dimension(0:jm,0:im-1)
| ||
ed : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function yx_ed(ed) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(0:jm,0:im-1) :: yx_ed !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ed !(in) スペクトルデータ yx_ed = yx_et(et_ed(ed)) end function yx_ed
Function : | |||
yx_ef : | real(8), dimension(0:jm,0:im-1)
| ||
ef : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function yx_ef(ef) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(0:jm,0:im-1) :: yx_ef !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ef !(in) スペクトルデータ yx_ef = yx_et(et_ef(ef)) end function yx_ef
Function : | |||
yx_eh : | real(8), dimension(0:jm,0:im-1)
| ||
eh : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function yx_eh(eh) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(0:jm,0:im-1) :: yx_eh !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: eh !(in) スペクトルデータ yx_eh = yx_et(et_eh(eh)) end function yx_eh
Function : | |||
yx_ep : | real(8), dimension(0:jm,0:im-1)
| ||
ep : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function yx_ep(ep) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(0:jm,0:im-1) :: yx_ep !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ep !(in) スペクトルデータ yx_ep = yx_et(et_ep(ep)) end function yx_ep
Function : | |||
yx_eq : | real(8), dimension(0:jm,0:im-1)
| ||
eq : | real(8), dimension(-km:km,4:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function yx_eq(eq) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(0:jm,0:im-1) :: yx_eq !(out) 格子点データ real(8), dimension(-km:km,4:lm), intent(in) :: eq !(in) スペクトルデータ yx_eq = yx_et(et_eq(eq)) end function yx_eq
Function : | |||
yx_et : | real(8), dimension(0:jm,0:im-1)
| ||
et : | real(8), dimension(-km:km,0:lm), intent(in)
|
スペクトルデータから格子データへ変換する.
Original external subprogram is et_module#yx_et
Function : | |||
yx_ev : | real(8), dimension(0:jm,0:im-1)
| ||
ev : | real(8), dimension(-km:km,2:lm), intent(in)
|
ガラーキンデータから格子データへ変換する.
function yx_ev(ev) ! ! ガラーキンデータから格子データへ変換する. ! real(8), dimension(0:jm,0:im-1) :: yx_ev !(out) 格子点データ real(8), dimension(-km:km,2:lm), intent(in) :: ev !(in) スペクトルデータ yx_ev = yx_et(et_ev(ev)) end function yx_ev