MAPL_SatVaporMod Module

MODULE: MAPL_SatVaporMod

Author: GMAO SI-Team

The module MAPL_SatVaporMod provides a function that returns the saturation specific humidity , mixing ratio, , or vapor pressure , over either liquid water or ice. The function can also return the derivatives , , or through an optional argument. The module does not depend on ESMF and its only dependence on the rest of MAPL is for the definition of gas constants. If the preprocessor macro 1 is not defined, these are assigned standard values and the build becomes independent of the rest of MAPL.

File Used

The main computations are done in the following include files:

      eqsat.H esatlqu.H esatice.H qsatlqu.H qsatice.H. 

@note Bug The tables and some control parameters are globals. This can result in unsafe race conditions when called from multiple threads. Most of these, however, will be benign.


Uses

  • module~~mapl_satvapormod~~UsesGraph module~mapl_satvapormod MAPL_SatVaporMod iso_fortran_env iso_fortran_env module~mapl_satvapormod->iso_fortran_env module~mapl_constants MAPL_Constants module~mapl_satvapormod->module~mapl_constants module~mapl_constants->iso_fortran_env module~mapl_internalconstantsmod MAPL_InternalConstantsMod module~mapl_constants->module~mapl_internalconstantsmod module~mapl_mathconstantsmod MAPL_MathConstantsMod module~mapl_constants->module~mapl_mathconstantsmod module~mapl_physicalconstantsmod MAPL_PhysicalConstantsMod module~mapl_constants->module~mapl_physicalconstantsmod module~mapl_internalconstantsmod->iso_fortran_env module~mapl_mathconstantsmod->iso_fortran_env module~mapl_physicalconstantsmod->iso_fortran_env module~mapl_physicalconstantsmod->module~mapl_mathconstantsmod

Used by

  • module~~mapl_satvapormod~~UsedByGraph module~mapl_satvapormod MAPL_SatVaporMod module~maplbase_mod MAPLBase_Mod module~maplbase_mod->module~mapl_satvapormod module~mapl MAPL module~mapl->module~maplbase_mod module~mapl_nuopcwrappermod MAPL_NUOPCWrapperMod module~mapl_nuopcwrappermod->module~maplbase_mod module~rutmod RUTMod module~rutmod->module~maplbase_mod module~test_cfio_bundle Test_CFIO_Bundle module~test_cfio_bundle->module~maplbase_mod program~tstqsat tstqsat program~tstqsat->module~maplbase_mod program~ut_extdata ut_ExtData program~ut_extdata->module~maplbase_mod program~ut_extdata->module~rutmod program~utcfio~2 utCFIO program~utcfio~2->module~maplbase_mod module~extdata_drivergridcompmod ExtData_DriverGridCompMod module~extdata_drivergridcompmod->module~mapl module~extdatadrivermod ExtDataDriverMod module~extdatadrivermod->module~mapl module~extdatadrivermod->module~extdata_drivergridcompmod module~extdatautroot_gridcompmod ExtDataUtRoot_GridCompMod module~extdatadrivermod->module~extdatautroot_gridcompmod module~extdatautroot_gridcompmod->module~mapl module~varspecdescriptionmod VarspecDescriptionMod module~extdatautroot_gridcompmod->module~varspecdescriptionmod module~mapl_mod MAPL_Mod module~mapl_mod->module~mapl module~regrid_util_support_mod regrid_util_support_mod module~regrid_util_support_mod->module~mapl module~varspecdescriptionmod->module~mapl program~capdriver_main CapDriver_Main program~capdriver_main->module~mapl program~capdriver_main->module~extdatautroot_gridcompmod program~comp_testing_driver comp_testing_driver program~comp_testing_driver->module~mapl program~extdata_driver ExtData_Driver program~extdata_driver->module~mapl program~extdata_driver->module~extdata_drivergridcompmod program~extdata_driver->module~extdatadrivermod program~extdata_driver->module~extdatautroot_gridcompmod program~main~2 main program~main~2->module~mapl program~main~8 main program~main~8->module~mapl program~time_ave time_ave program~time_ave->module~mapl module~varspecdescriptionvectormod VarspecDescriptionVectorMod module~varspecdescriptionvectormod->module~varspecdescriptionmod program~regrid_util Regrid_Util program~regrid_util->module~regrid_util_support_mod

Interfaces

public interface MAPL_EQsat

  • private recursive function QSAT0(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL32), intent(in) :: TL
    real(kind=REAL32), intent(in), optional :: PL
    real(kind=REAL32), intent(out), optional :: DQ
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL32)

  • private function QSAT1(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL32), intent(in) :: TL(:)
    real(kind=REAL32), intent(in), optional :: PL(:)
    real(kind=REAL32), intent(out), optional :: DQ(:)
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL32), (SIZE(TL,1))

  • private function QSAT2(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL32), intent(in) :: TL(:,:)
    real(kind=REAL32), intent(in), optional :: PL(:,:)
    real(kind=REAL32), intent(out), optional :: DQ(:,:)
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL32), (SIZE(TL,1),SIZE(TL,2))

  • private function QSAT3(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL32), intent(in) :: TL(:,:,:)
    real(kind=REAL32), intent(in), optional :: PL(:,:,:)
    real(kind=REAL32), intent(out), optional :: DQ(:,:,:)
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL32), (SIZE(TL,1),SIZE(TL,2),SIZE(TL,3))

  • private recursive function QSATD0(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL64), intent(in) :: TL
    real(kind=REAL64), intent(in), optional :: PL
    real(kind=REAL64), intent(out), optional :: DQ
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL64)

  • private function QSATD1(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL64), intent(in) :: TL(:)
    real(kind=REAL64), intent(in), optional :: PL(:)
    real(kind=REAL64), intent(out), optional :: DQ(:)
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL64), (SIZE(TL,1))

  • private function QSATD2(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL64), intent(in) :: TL(:,:)
    real(kind=REAL64), intent(in), optional :: PL(:,:)
    real(kind=REAL64), intent(out), optional :: DQ(:,:)
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL64), (SIZE(TL,1),SIZE(TL,2))

  • private function QSATD3(TL, PL, DQ, OverIce) result(QS)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=REAL64), intent(in) :: TL(:,:,:)
    real(kind=REAL64), intent(in), optional :: PL(:,:,:)
    real(kind=REAL64), intent(out), optional :: DQ(:,:,:)
    logical, intent(in), optional :: OverIce

    Return Value real(kind=REAL64), (SIZE(TL,1),SIZE(TL,2),SIZE(TL,3))


Subroutines

public subroutine MAPL_EQsatSET(UseTable, Formulation, Subdivisions, MixingRatio)

The subroutine MAPL_EQsatSET set behavior of MAPL_EQsat. MAPL_EQsatSet can be used to set three parameters that control the behavior of the working routine, MAPL_EQsat.

Read more…

Arguments

Type IntentOptional Attributes Name
logical, intent(in), optional :: UseTable
integer, intent(in), optional :: Formulation
integer, intent(in), optional :: Subdivisions
logical, intent(in), optional :: MixingRatio