Class basicset
In: ../src/setup/basicset.f90

デフォルトの基本場を設定するための変数参照型モジュール ただし, hogeBZ となる配列は, 外部から値を入力することで 初期化を行う.

Methods

Included Modules

dc_types dc_iounit dc_message gridset axesset composition

Public Instance methods

Subroutine :
xyz_Press(imin:imax,jmin:jmax,kmin:kmax) :real(DP), intent(in)
xyz_Exner(imin:imax,jmin:jmax,kmin:kmax) :real(DP), intent(in)
xyz_Temp(imin:imax,jmin:jmax,kmin:kmax) :real(DP), intent(in)
xyz_PTemp(imin:imax,jmin:jmax,kmin:kmax) :real(DP), intent(in)
xyz_Dens(imin:imax,jmin:jmax,kmin:kmax) :real(DP), intent(in)
xyz_VelSound(imin:imax,jmin:jmax,kmin:kmax) :real(DP), intent(in)
xyzf_QMix(imin:imax,jmin:jmax,kmin:kmax,ncmax) :real(DP), intent(in), optional
xyz_EffMolWt(imin:imax,jmin:jmax,kmin:kmax) :real(DP), intent(in), optional

基本場の値を外部から取得する. dry の場合は混合比や乾燥成分と凝結成分の存在比を陽に使わないので, これらの変数は optional にしている.

[Source]

  subroutine basicset_init( xyz_Press, xyz_Exner, xyz_Temp, xyz_PTemp, xyz_Dens, xyz_VelSound, xyzf_QMix, xyz_EffMolWt )
    !
    ! 基本場の値を外部から取得する. 
    ! dry の場合は混合比や乾燥成分と凝結成分の存在比を陽に使わないので,
    ! これらの変数は optional にしている. 
    !
    
    !入力変数
    real(DP), intent(in) :: xyz_Press(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in) :: xyz_Exner(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in) :: xyz_Temp(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in) :: xyz_PTemp(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in) :: xyz_Dens(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in) :: xyz_VelSound(imin:imax,jmin:jmax,kmin:kmax)
    real(DP), intent(in), optional :: xyzf_QMix(imin:imax,jmin:jmax,kmin:kmax,ncmax)
    real(DP), intent(in), optional :: xyz_EffMolWt(imin:imax,jmin:jmax,kmin:kmax)
    real(DP)             :: xyzf_QMixBZPerMolWt(imin:imax,jmin:jmax,kmin:kmax,GasNum)
    integer              :: s

    ! 配列の初期化
    call basicset_array_init
    
    !値の入力
    xyz_PressBZ    = xyz_Press
    xyz_ExnerBZ    = xyz_Exner
    xyz_TempBZ     = xyz_Temp
    xyz_PTempBZ  = xyz_PTemp
    xyz_DensBZ     = xyz_Dens
    xyz_VelSoundBZ = xyz_VelSound
    if (present(xyz_EffMolWt)) xyz_EffMolWtBZ = xyz_EffMolWt

    if (present(xyzf_QMix)) then 
      xyzf_QMixBZ = xyzf_QMix

      do s = 1, GasNum
        xyzf_QMixBZPerMolWt(:,:,:,s) = xyzf_QMixBZ(:,:,:,IdxG(s)) / MolWtWet(IdxG(s))
      end do

      xyz_QMixBZPerMolWt = sum(xyzf_QMixBZPerMolWt, 4) 
      xyr_QMixBZPerMolWt = xyr_avr_xyz( sum(xyzf_QMixBZPerMolWt, 4) )
      xyz_QMixBZ         = sum(xyzf_QMixBZ, 4) 
      xyr_QMixBZ         = xyr_avr_xyz( sum(xyzf_QMixBZ, 4) )     
    end if

    xyz_VPTempBZ = xyz_PTempBZ / xyz_EffMolWtBZ

  end subroutine basicset_init
xyr_QMixBZ
Variable :
xyr_QMixBZ(:,:,:) :real(DP), allocatable, save, public
: 基本場の混合比の総和
xyr_QMixBZPerMolWt
Variable :
xyr_QMixBZPerMolWt(:,:,:) :real(DP), allocatable, save, public
: 基本場の混合比 / 分子量 の総和
xyz_DensBZ
Variable :
xyz_DensBZ(:,:,:) :real(DP), allocatable, save, public
: 密度
xyz_EffMolWtBZ
Variable :
xyz_EffMolWtBZ(:,:,:) :real(DP), allocatable, save, public
: 分子量効果
xyz_ExnerBZ
Variable :
xyz_ExnerBZ(:,:,:) :real(DP), allocatable, save, public
: 無次元圧力
xyz_PTempBZ
Variable :
xyz_PTempBZ(:,:,:) :real(DP), allocatable, save, public
: 温位
xyz_PressBZ
Variable :
xyz_PressBZ(:,:,:) :real(DP), allocatable, save, public
: 無次元圧力
xyz_QMixBZ
Variable :
xyz_QMixBZ(:,:,:) :real(DP), allocatable, save, public
: 基本場の混合比の総和
xyz_QMixBZPerMolWt
Variable :
xyz_QMixBZPerMolWt(:,:,:) :real(DP), allocatable, save, public
: 基本場の混合比 / 分子量 の総和
xyz_TempBZ
Variable :
xyz_TempBZ(:,:,:) :real(DP), allocatable, save, public
: 温度
xyz_VPTempBZ
Variable :
xyz_VPTempBZ(:,:,:) :real(DP), allocatable, save, public
: 仮温位
xyz_VelSoundBZ
Variable :
xyz_VelSoundBZ(:,:,:) :real(DP), allocatable, save, public
: 音速
xyzf_QMixBZ
Variable :
xyzf_QMixBZ(:,:,:,:) :real(DP), allocatable, save, public
: 凝縮成分混合比