Class | DExnerDt |
In: |
../src/utils/dexnerdt.f90
|
モデルの放射過程を計算するためのパッケージ型モジュール 具体的には以下の項を計算するための関数を格納する.
* 一様冷却
Function : | |
xy_DExnerDt_xy_xyf(imin:imax,jmin:jmax) : | real(DP) |
xy_DPTempDt(imin:imax,jmin:jmax) : | real(DP), intent(in) |
xyf_DQMixDt(imin:imax,jmin:jmax,ncmax) : | real(DP), intent(in) |
kz : | integer, intent(in) |
function xy_DExnerDt_xy_xyf( xy_DPTempDt, xyf_DQMixDt, kz ) !暗黙の型宣言禁止 implicit none !入力変数 real(DP), intent(in) :: xy_DPTempDt(imin:imax,jmin:jmax) real(DP), intent(in) :: xyf_DQMixDt(imin:imax,jmin:jmax,ncmax) integer, intent(in) :: kz real(DP) :: xy_DExnerDt_xy_xyf(imin:imax,jmin:jmax) real(DP) :: xyf_DQMixDtPerMolWt(imin:imax,jmin:jmax,ncmax) integer :: s do s = 1, ncmax xyf_DQMixDtPerMolWt(:,:,s) = xyf_DQMixDt(:,:,s) / MolWtWet(s) end do xy_DExnerDt_xy_xyf = (xyz_VelSoundBZ(:,:,kz) ** 2.0d0) / (CpDry * xyz_VPTempBZ(:,:,kz)) * ( xy_DPTempDt / xyz_PTempBZ(:,:,kz) + sum(xyf_DQMixDtPerMolWt(:,:,1:GasNum),3) / ( 1.0d0 / MolWtDry + xyz_QMixBZPerMolWt(:,:,kz) ) - sum(xyf_DQMixDt,3) / ( 1.0d0 + xyz_QMixBZ(:,:,kz) ) ) end function xy_DExnerDt_xy_xyf
Function : | |
xyz_DExnerDt_xyz(imin:imax,jmin:jmax,kmin:kmax) : | real(DP) |
xyz_DPTempDt(imin:imax,jmin:jmax,kmin:kmax) : | real(DP), intent(in) |
function xyz_DExnerDt_xyz( xyz_DPTempDt ) !暗黙の型宣言禁止 implicit none !入力変数 real(DP), intent(in) :: xyz_DPTempDt(imin:imax,jmin:jmax,kmin:kmax) real(DP) :: xyz_DExnerDt_xyz(imin:imax,jmin:jmax,kmin:kmax) xyz_DExnerDt_xyz = (xyz_VelSoundBZ ** 2.0d0) / (CpDry * xyz_VPTempBZ) * ( xyz_DPTempDt / xyz_PTempBZ ) end function xyz_DExnerDt_xyz
Function : | |
xyz_DExnerDt_xyz_xyzf(imin:imax,jmin:jmax,kmin:kmax) : | real(DP) |
xyz_DPTempDt(imin:imax,jmin:jmax,kmin:kmax) : | real(DP), intent(in) |
xyzf_DQMixDt(imin:imax,jmin:jmax,kmin:kmax,ncmax) : | real(DP), intent(in) |
function xyz_DExnerDt_xyz_xyzf( xyz_DPTempDt, xyzf_DQMixDt ) !暗黙の型宣言禁止 implicit none !入力変数 real(DP), intent(in) :: xyz_DPTempDt(imin:imax,jmin:jmax,kmin:kmax) real(DP), intent(in) :: xyzf_DQMixDt(imin:imax,jmin:jmax,kmin:kmax,ncmax) real(DP) :: xyz_DExnerDt_xyz_xyzf(imin:imax,jmin:jmax,kmin:kmax) real(DP) :: xyzf_DQMixDtPerMolWt(imin:imax,jmin:jmax,kmin:kmax,ncmax) integer :: s do s = 1, ncmax xyzf_DQMixDtPerMolWt(:,:,:,s) = xyzf_DQMixDt(:,:,:,s) / MolWtWet(s) end do xyz_DExnerDt_xyz_xyzf = (xyz_VelSoundBZ ** 2.0d0) / (CpDry * xyz_VPTempBZ) * ( xyz_DPTempDt / xyz_PTempBZ + sum(xyzf_DQMixDtPerMolWt(:,:,:,1:GasNum),4) / ( 1.0d0 / MolWtDry + xyz_QMixBZPerMolWt ) - sum(xyzf_DQMixDt,4) / ( 1.0d0 + xyz_QMixBZ ) ) end function xyz_DExnerDt_xyz_xyzf
Function : | |
xyz_DExnerDt_xyzf(imin:imax,jmin:jmax,kmin:kmax) : | real(DP) |
xyzf_DQMixDt(imin:imax,jmin:jmax,kmin:kmax,ncmax) : | real(DP), intent(in) |
function xyz_DExnerDt_xyzf( xyzf_DQMixDt ) !暗黙の型宣言禁止 implicit none !入力変数 real(DP), intent(in) :: xyzf_DQMixDt(imin:imax,jmin:jmax,kmin:kmax,ncmax) real(DP) :: xyz_DExnerDt_xyzf(imin:imax,jmin:jmax,kmin:kmax) real(DP) :: xyzf_DQMixDtPerMolWt(imin:imax,jmin:jmax,kmin:kmax,ncmax) integer :: s do s = 1, ncmax xyzf_DQMixDtPerMolWt(:,:,:,s) = xyzf_DQMixDt(:,:,:,s) / MolWtWet(s) end do xyz_DExnerDt_xyzf = (xyz_VelSoundBZ ** 2.0d0) / (CpDry * xyz_VPTempBZ) * ( + sum(xyzf_DQMixDtPerMolWt(:,:,:,1:GasNum),4) / ( 1.0d0 / MolWtDry + xyz_QMixBZPerMolWt ) - sum(xyzf_DQMixDt,4) / ( 1.0d0 + xyz_QMixBZ ) ) end function xyz_DExnerDt_xyzf