Class DExnerDt
In: ../src/utils/dexnerdt.f90

モデルの放射過程を計算するためのパッケージ型モジュール 具体的には以下の項を計算するための関数を格納する.

 * 一様冷却

Methods

Included Modules

dc_types dc_iounit dc_message gridSet basicset constants composition

Public Instance methods

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)

[Source]

  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)

[Source]

  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)

[Source]

  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)

[Source]

  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