| 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