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


module lscale_cond

     Contact: 
     Reviewers:

     Tags/Status

OVERVIEW


    Computes large-scale condensation and precipitation.

    Temperature and specific humidity adjustments are computed in model layers
    where the relative humidity exceeds a threshold relative humidity.


   The features include:

    1) option for the re-evaporation of falling precipitation
    2) energetically consistent adjustment with precipitation type

    Reference: Manabe, S., (1969). Mon. Wea. Rev. 97, 739-798.


OTHER MODULES USED


    sat_vapor_pres_mod
         utilities_mod
         constants_mod


PUBLIC INTERFACE


use lscale_cond_mod [, only: lscale_cond_init, lscale_cond ]

   lscale_cond_init:  Must be called before lscale_cond to initialize
                      the module, namelist, and constants.

   lscale_cond:  Computes the large-scale condensation adjustments for
                 temperature and specific humidity, and returns the
                 mass of rain and snow that reach the ground (in an
                 energetically consistent way).


PUBLIC ROUTINES


call lscale_cond_init ( )

   There are no arguments.

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

call lscale_cond ( tin, qin, pfull, phalf, coldt,
                   rain, snow, tdel, qdel, mask, conv )

  Input

     tin      temperature (deg k) at full model levels
                 [real, dimension(:,:,nlev)]

     qin      specific humidity of water vapor at full model levels
                 [real, dimension(:,:,nlev)]

     pfull    pressure (pascals) at full model levels
                 [real, dimension(:,:,nlev)]

     phalf    pressure (pascals) at half (interface) model levels
                 [real, dimension(:,:,nlev+1)]

     coldt    should precipitation be snow at this point?
                 [logical, dimension(:,:)]

  Input (optional)

     mask     optional mask (0 or 1.)
                 [real, dimension(:,:,nlev)]

     conv     logical flag; if true then no large-scale adjustment
              is performed at that grid-point's level
                 [real, dimension(:,:,nlev)]

  Output

     rain     liquid precipitation (kg/m2)
                 [real, dimension(:,:)]

     snow     frozen precipitation (kg/m2)
                 [real, dimension(:,:)]

     tdel     temperature tendency at full model levels
                 [real, dimension(:,:,nlev)]

     qdel     specific humidity tendency (of water vapor) at
                full model levels
                 [real, dimension(:,:,nlev)]


NAMELIST


&lscale_cond_nml

   hc         relative humidity at which large scale condensation
              occurs, where 0 <= hc <= 1
                 [real, default: hc=1.]
 
   do_evap    flag for the re-evaporation of moisture in
              sub-saturated layers below, if do_evap=.true. then
              re-evaporation is performed
                 [logical, default: do_evap=.false.]


CHANGE HISTORY

Revision history

Prior changes

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

Prior changes

  * logical input argument added that specifies whether frozen
    precipitation should be computed for the column
    (note: the adjustment is now done energetically consistent
     for the type of precip)

  * output arguments for column integrated rain and snow replace
    the argument for total precip


ERROR MESSAGES


Fatal Error in lscale_cond

    lscale_cond_init has not been called
        The initialization for this module must be called before
        calling routine lscale_cond.


REFERENCES


     Manabe, S., (1969). Mon. Wea. Rev. 97, 739-798.


KNOWN BUGS


     None.


NOTES


     None.


FUTURE PLANS


     Routine lscale_cond_init could be called automatically by the
     main routine lscale_cond. This would remove the current fatal error
     that would occur.