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.