PUBLIC INTERFACE / ROUTINES / NAMELIST / CHANGES / ERRORS / REFERENCES / NOTES

## Module shallow_conv_mod

         Contact:   Joe Sirutis, Tony Gordon
         Reviewers:

         Tags/Status

#### OVERVIEW

         Shallow Convection Module

         A parameterization of the turbulent vertical transports of
         heat and moisture by shallow non-precipitating cumuli.

         Given temperature and moisture profiles at the model's pressure
         levels, this module returns mixing coefficients for temperature
         and moisture which can be added to the mixing coefficients
         produced by the Mellor/Yamada level 2.5 scheme.

         This parameterization is based on that of Tiedke ( see references),
         with local modifications by Tony Gordon.

#### OTHER MODULES USED

         sat_vapor_pres_mod
              utilities_mod
              constants_mod

#### PUBLIC INTERFACE

    use shallow_conv_mod [,only: shallow_conv_init, shallow_conv, mylcl]

    shallow_conv_init  - Called once to initialize shallow_conv. Also reads namelist.
                         Must be called before shallow_conv.

    shallow_conv       - Does shallow convection parameterization

    mylcl              - Computes lifted condensation level

    Notes:
     * A namelist interface ( &shallow_conv_nml ) controls runtime options.

#### PUBLIC ROUTINES

     call shallow_conv_init( kx )

    input

        kx           Number of levels in vertical                     [integer]

    ---------------------------------------------------------------------

      call shallow_conv( Temp, qmix0, pfull, phalf, akhsc, kbot )

    input

        Temp      Temperature [deg k] at full model levels,
                  [real, dimension(:,:,nlev)]

        qmix0     Specific humidity of water vapor [kg/kg] at full model levels,
                  [real, dimension(:,:,nlev)]

        pfull     Pressure at full levels in pascals
                  [real, dimension(:,:,nlev)]

        phalf     Pressure at half levels in pascals
                  [real, dimension(:,:,nlev+1)]

    output

        akhsc     Mixing coefficient for heat and moisture
                  due to shallow convection [m^2/sec]
                  [real, dimension(:,:,nlev)]

    input (optional) - for use with the step-mountain (eta) vertical coordinate

        kbot      Index of the lowest model level
                  [integer, dimension(:,:)]

    ---------------------------------------------------------------------

      call mylcl ( tlparc, qlparc, plparc, phalf, plcl, kbase )

    input

        tlparc    Initial parcel temperature [deg K]
                  [real, dimension(:,:)]

        qlparc    Initial parcel mixing ratio [kg/kg]
                  [real, dimension(:,:)]

        plparc    Initial parcel pressure [pascals]
                  [real, dimension(:,:)]

        phalf     Pressure at half levels in pascals
                  [real, dimension(:,:,nlev+1)]

    output

        plcl      Pressure at LCL [pascals]
                  [real, dimension(:,:)]

        kbase     Index of LCL in column
                  [integer, dimension(:,:)]

#### NAMELIST

    &shallow_conv_nml

       lipps      If true, use Frank Lipps' formulation for buoyancy,
                  else buoyancy computed from equivalent potential temperature.
                  [logical, default: lipps = .false. ]

       ldetran    If true, do enhanced detrainment through inversion.
                  [logical, default: ldetran = .true. ]

       theqvcr    Critical lapse rate for buoyancy test in deg K /100m.
                  ( Only if lipps = f )
                  [real, default: theqvcr = 0.0 ]

       pshalow    Shallow convection done below p = pshalow.
                  [real, default: pshalow = 750.0E2 pascals ]

       akhsc0     Base value for mixing coefficient.
                  [real, default: akhsc0 = 5.0 m^2/sec ]

       kctop      No clouds expected for K < kctop
                  [integer, default: kctop = 3 ]

       crthum     Critical value for humidity.
                  [real, default: crthum = 0.85 ]

       hc         Condensation criterion.
                  [real, default: crthum = 1.0 ]

#### CHANGE HISTORY

    Revision history

    prior changes (10/4/99)

         MPP version created. Minor changes for open_file, error_mesg,
         and Fortran write statements. Answers should reproduce the
         previous version.

#### ERROR MESSAGES

    Fatal errors in mylcl:

        ITERATION LOOP FOR LCL FAILED
           Iteration loop for temperature at LCL failed.
           Check input data.

#### REFERENCES

         Tiedke, M., 1988: Parameterization of cumulus convection in large
               scale models. Physically-based modeling and simulation of
               climate and climate change. Ed. M. Schlesinger, D. Reidel,
               Hingham, Mass. 375-431.

#### KNOWN BUGS

         There are no known bugs.

#### NOTES

       When the fatal error "ITERATION LOOP FOR LCL FAILED" occurs the
       program does not terminate by calling the standard error handler
       (instead STOP is called).

#### FUTURE PLANS

         1) A check to see if shallow_conv_init has been called will be added.
            Currently there is none.

         2) Interface will be changed so that constants are set via
            use constants_mod, rather than via argument list in
            shallow_conv_init.