| 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