Class | wa_deriv_module |
In: |
src/wa_deriv_module.f90
|
wa_DLon_wa((nm+1)*(nm+1),size(wa_data,2)) : | real(8) |
wa_data(:,:) : | real(8), intent(in) |
————— 微分計算 ——————
function wa_DLon_wa(wa_data) ! スペクトルに作用する経度微分 ∂/∂λ real(8), intent(in) :: wa_data(:,:) real(8) :: wa_DLon_wa((nm+1)*(nm+1),size(wa_data,2)) integer :: l,k do k=1,size(wa_data,2) do l=1,(nm+1)*(nm+1) wa_DLon_wa(irm(l,1),k) = irm(l,2)*wa_data(l,k) enddo enddo end function wa_DLon_wa
wa_DivLambda_xya((nm+1)*(nm+1),size(xya_data,3)) : | real(8) |
xya_data(:,:,:) : | real(8), intent(in) |
————— 微分計算 (λ,μ座標系用) ——————
function wa_DivLambda_xya(xya_data) ! 格子に作用する発散型経度微分 ! 1/(1-μ^2)・∂/∂λ real(8), intent(in) :: xya_data(:,:,:) real(8) :: wa_DivLambda_xya((nm+1)*(nm+1),size(xya_data,3)) wa_DivLambda_xya = wa_xya(xya_data,ipow=2,iflag=-1) end function wa_DivLambda_xya
wa_DivLon_xya((nm+1)*(nm+1),size(xya_data,3)) : | real(8) |
xya_data(:,:,:) : | real(8), intent(in) |
————— 微分計算 ——————
function wa_DivLon_xya(xya_data) ! 格子に作用する発散型経度微分 ! 1/cosφ・∂/∂λ real(8), intent(in) :: xya_data(:,:,:) real(8) :: wa_DivLon_xya((nm+1)*(nm+1),size(xya_data,3)) wa_DivLon_xya = wa_xya(xya_data,ipow=1,iflag=-1) end function wa_DivLon_xya
wa_Div_xya_xya((nm+1)*(nm+1),size(xya_u,3)) : | real(8) | ||
xya_u(:,:,:) : | real(8), intent(in)
| ||
xya_v(:,:,:) : | real(8), intent(in)
|
————— 微分計算 ——————
function wa_Div_xya_xya(xya_u,xya_v) ! 格子に作用する発散 real(8), intent(in) :: xya_u(:,:,:) ! ベクトル経度成分 real(8), intent(in) :: xya_v(:,:,:) ! ベクトル緯度成分 real(8) :: wa_Div_xya_xya((nm+1)*(nm+1),size(xya_u,3)) wa_Div_xya_xya = wa_DivLon_xya(xya_u) + wa_DivLat_xya(xya_v) end function wa_Div_xya_xya
wa_Jacobian_wa_wa((nm+1)*(nm+1),size(wa_a,2)) : | real(8) |
wa_a(:,:) : | real(8), intent(in) |
wa_b(:,:) : | real(8), intent(in) |
————— 微分計算 ——————
function wa_Jacobian_wa_wa(wa_a,wa_b) ! スペクトルに作用するヤコビアン ! J(f,g) = ∂f/∂λ・∂g/∂μ - ∂g/∂λ・∂f/∂μ ! = ∂f/∂λ・1/cosφ・∂g/∂φ ! - ∂g/∂λ・1/cosφ・∂f/∂φ real(8), intent(in) :: wa_a(:,:) real(8), intent(in) :: wa_b(:,:) real(8) :: wa_Jacobian_wa_wa((nm+1)*(nm+1),size(wa_a,2)) integer :: k do k=1,size(wa_a,2) wa_Jacobian_wa_wa(:,k) = w_Jacobian_w_w(wa_a(:,k),wa_b(:,k)) end do end function wa_Jacobian_wa_wa
wa_data(:,:) : | real(8), intent(in) |
————— 微分計算 ——————
function wa_Lapla_wa(wa_data) ! スペクトルに作用する Laplacian real(8), intent(in) :: wa_data(:,:) real(8) :: wa_lapla_wa((nm+1)*(nm+1),size(wa_data,2)) integer :: l,k do k=1,size(wa_data,2) do l=1,(nm+1)*(nm+1) wa_Lapla_wa(l,k) = rn(l,1)*wa_data(l,k) enddo enddo end function wa_Lapla_wa
k_in : | integer,intent(in)
|
————— 初期化 ——————
subroutine wa_deriv_Initial(k_in) integer,intent(in) :: k_in ! 最大データ数(層数)を記憶 call wa_base_Initial(k_in) end subroutine wa_deriv_Initial
xya_GradLambda_wa(im,jm,size(wa_data,2)) : | real(8) | ||
wa_data(:,:) : | real(8), intent(in)
|
————— 微分計算 (λ,μ座標系用) ——————
function xya_GradLambda_wa(wa_data) ! スペクトルに作用する勾配型経度微分 ! ∂/∂λ real(8), intent(in) :: wa_data(:,:) real(8) :: xya_GradLambda_wa(im,jm,size(wa_data,2)) xya_GradLambda_wa = xya_wa(wa_data,ipow=0,iflag=-1) end function xya_GradLambda_wa
xya_GradLon_wa(im,jm,size(wa_data,2)) : | real(8) | ||
wa_data(:,:) : | real(8), intent(in)
|
————— 微分計算 ——————
function xya_GradLon_wa(wa_data) ! スペクトルに作用する勾配型経度微分 ! 1/cosφ・∂/∂λ real(8), intent(in) :: wa_data(:,:) real(8) :: xya_GradLon_wa(im,jm,size(wa_data,2)) xya_GradLon_wa = xya_wa(wa_data,ipow=1,iflag=-1) end function xya_GradLon_wa