Class physics_qvapsat_nha92
In: physics/physics_qvapsat_nha92.f90

Methods

Included Modules

type_mod dc_trace constants_mod

Public Instance methods

Function :
result :real(DBKIND)
Temp :real(DBKIND),intent(in)
Press :real(DBKIND),intent(in)

飽和蒸気圧の温度微分の計算

  • Nakajima et al. (1992) の式を用いて算する.
  • AGCM5 では, 引数として, 温度と飽和比湿を与えていたが, 温度と圧力に変更した.

TODO

  • 引数として, 配列でも変数でも取れるようにしておくと便利だろう. interface とか使うと良いの???

[Source]

  real(DBKIND) function DQvapSatDTemp(Temp, Press) result(result)
    !
    !== 飽和蒸気圧の温度微分の計算
    ! * Nakajima et al. (1992) の式を用いて算する.
    ! * AGCM5 では, 引数として,  温度と飽和比湿を与えていたが, 温度と圧力に変更した.
    !==TODO
    ! * 引数として, 配列でも変数でも取れるようにしておくと便利だろう.
    !   interface とか使うと良いの???
    !
    use type_mod,  only: REKIND, DBKIND, INTKIND, TOKEN, STRING
    use dc_trace,  only: SetDebug, BeginSub, EndSub, DbgMessage, DataDump
    use constants_mod, only: EL    , EpsV  , RVap     ! 水蒸気気体定数


    implicit none

    real(DBKIND),intent(in) :: Temp
    real(DBKIND),intent(in) :: Press
    character(STRING), parameter:: subname = "QvapSat"
  continue

    ! 開始処理
    call BeginSub( subname )

    result = 5250.87d0/(Temp * Temp) * Epsv * 1.4d+11* EXP( - 5250.87d0/Temp ) / Press

    ! 終了処理
    call EndSub( subname )

  end function DQvapSatDTemp
Function :
result :real(DBKIND)
Temp :real(DBKIND),intent(in)
Press :real(DBKIND),intent(in)

飽和蒸気圧の計算

Nakajima et al. (1992) の式を用いて飽和蒸気圧を計算する.

TODO

  • 引数として, 配列でも変数でも取れるようにしておくと便利だろう. interface とか使うと良いの???

[Source]

  real(DBKIND) function QvapSat(Temp, Press) result(result)
    !
    !== 飽和蒸気圧の計算
    ! Nakajima et al. (1992) の式を用いて飽和蒸気圧を計算する.
    !
    !==TODO
    ! * 引数として, 配列でも変数でも取れるようにしておくと便利だろう.
    !   interface とか使うと良いの???
    !
    use type_mod,  only: REKIND, DBKIND, INTKIND, TOKEN, STRING
    use dc_trace,  only: SetDebug, BeginSub, EndSub, DbgMessage, DataDump
    use constants_mod, only: EL    , EpsV  , RVap     ! 水蒸気気体定数


    implicit none

    real(DBKIND),intent(in) :: Temp
    real(DBKIND),intent(in) :: Press
    character(STRING), parameter:: subname = "QvapSat"
  continue

    ! 開始処理
    call BeginSub( subname )

    result = Epsv * 1.4d+11* EXP( - 5250.87d0/Temp ) / Press

    ! 終了処理
    call EndSub( subname )

  end function QvapSat

[Validate]