PUBLIC INTERFACE ~ PUBLIC DATA ~ PUBLIC ROUTINES ~ NAMELIST ~ DIAGNOSTIC FIELDS ~ ERROR MESSAGES ~ REFERENCES ~ NOTES

Module strat_cloud_mod

Contact:  Stephen Klein
Reviewers: 
Change History: WebCVS Log


OVERVIEW

Code to compute time tendencies of stratiform clouds and diagnoses rain and snow flux with prognostic scheme.

The prognostic scheme returns the time tendencies of liquid, ice, and saturated volume fraction that are suspended in stratiform clouds. The scheme diagnoses the fluxes of rain and snow in saturated and unsaturated areas.

The prognostic cloud scheme is responsible for determing cloud volume fractions, condensed water tendencies, and the stratiform precipitation rate. It includes processes for evaporation, condensation, deposition, and sublimation of cloud water, conversion of cloud water to precipitation, evaporation of falling precipitation, the bergeron-findeisan process, freezing of cloud liquid, accretion of cloud water by precipitation, and melting of falling precipitation.

This scheme is based on the experience the author had at the ECMWF in 1997. The saturated volume fraction formalism and type of solution follow directly from the scheme of Tiedtke (1993): Monthly Weather Review, Volume 121, pages 3040-3061. The form of most of the microphysics follows Rotstayn , 1997: Quart. J. Roy. Met. Soc. vol 123, pages 1227-1282. The partial precipitation area formulism follows Jakob and Klein, 2000: Quart. J. Roy. Met. Soc. vol 126, pages 2525-2544.

The statistical cloud scheme treatment, which is used as a replacement for the Tiedtke cloud fraction scheme, is based on a number of publications: Tompkins, A., 2002: J. Atmos. Sci., 59, 1917-1942, Klein et al., 2005: J. Geophys. Res., 110, D15S06, doi:10.1029/2004JD005017.


OTHER MODULES USED

 sat_vapor_pres_mod
fms_mod
fms_io_mod
constants_mod
cloud_rad_mod
diag_manager_mod
time_manager_mod
cloud_generator_mod
beta_dist_mod
rad_utilities_mod
aer_ccn_act_mod

PUBLIC INTERFACE

strat_cloud_init:
diag_field_init:
strat_cloud:
strat_cloud_end:
strat_cloud_sum:
strat_cloud_avg:
do_strat_cloud:


PUBLIC DATA

None.


PUBLIC ROUTINES

  1. strat_cloud_init

    call strat_cloud_init (axes,Time,idim,jdim,kdim)
    DESCRIPTION
    Initializes strat_cloud. Reads namelist, calls cloud_rad_init, reads restart (if present), initializes netcdf output.


    INPUT
    axes    Axes integer vector used for netcdf initialization.
       [integer]
    Time    Time type variable used for netcdf.
       [time_type]
    idim    Size of first array (usually longitude) dimension.
       [integer]
    jdim    Size of second array (usually latitude) dimension.
       [integer]
    kdim    Size of vertical array (usually height) dimension.
       [integer]

  2. diag_field_init

    call diag_field_init (axes,Time)
    DESCRIPTION
    Initializes netcdf diagnostics.


    INPUT
    axes    Integer array containing axes integers.
       [integer]
    Time    Time
       [time_type]

  3. strat_cloud

    call strat_cloud (Time,is,ie,js,je,dtcloud,pfull,phalf,radturbten2, T,qv,ql,qi,qa,omega,Mc,diff_t,LAND, ST,SQ,SL,SI,SA,surfrain, surfsnow,qrat,ahuco,MASK, qn, SN, Aerosol)
    DESCRIPTION


    INPUT
    Time    Time
       [time_type]
    is    Indice of starting point in the longitude direction of the slab being passed to strat_cloud
       [integer]
    ie    Indice of ending point in the longitude direction of the slab being passed
       [integer]
    js    Indice of starting point in the latitude direction of the slab being passed
       [integer]
    je    Indice of ending point in the latitude direction of the slab being passed
       [integer]
    dtcloud    Physics time step (sec)
       [real]
    pfull    Pressure on model full levels (Pa)
       [real]
    phalf    Pressure on model half levels (Pa)
       [real]
    radturbten2    Sum of the tendencies of temperature from turbulence and radiation schemes (K/s)
       [real]
    T    Temperature (K)
       [real]
    qv    Water vapor specific humidity (kg vapor/kg air)
       [real]
    ql    Grid-box mean liquid water specific humidity (kg liquid/kg air)
       [real]
    qi    Grid-box mean ice water specific humidity (kg ice/kg air)
       [real]
    qa    Cloud fraction (3d array and a prognostic variable) (fraction)
       [real]
    qn    Cloud droplet number (3d array and a prognostic variable) (#/kg air)
       [real]
    omega    Vertical pressure velocity (Pa/sec)
       [real]
    Mc    Cumulus mass flux (defined positive as upward) (kg air/m2/sec)
       [real]
    diff_t    Vertical diffusion coefficient for temperature and tracer from vertical diffusion scheme (m2/sec)
       [real]
    LAND    Fraction of surface that contains land (fraction)
       [real]
    qrat    Ratio of large-scale specific humidity to specific humidity in environment outside convective system (from donner_deep)

    Will be equal to 1 for all normal AM2 operations (i.e. donner_deep is not activated)

    Note that index 1 is nearest ground


       [real]
    ahuco    The fraction of the grid box containing either cumulus cells or the mesoscale circulation (from donner_deep).

    Will be equal to 0 for all normal AM2 operations (i.e. donner_deep is not activated)

    Note that index 1 is nearest ground


       [real]
    MASK    Optional input real array indicating the point is above the surface if equal to 1.0 and indicating the point is below the surface if equal to 0.

    Used only in eta vertical coordinate model.
       [real]

    OUTPUT
    ST    Change in temperature due to strat_cloud (K)
       [real]
    SQ    Change in water vapor due to strat_cloud (kg vapor/kg air)
       [real]
    SL    Change in cloud liquid due to strat_cloud (kg liquid/kg air)
       [real]
    SI    Change in cloud ice due to strat_cloud (kg ice/kg air)
       [real]
    SA    Change in cloud fraction due to strat_cloud (fraction)
       [real]
    SN    Change in cloud droplet number due to strat_cloud (fraction)
       [real]
    surfrain    Surface rain fall over time step dtcloud (kg liquid/m2)
       [real]
    surfsnow    Surface snow fall over time step dtcloud (kg ice/m2)
       [real]
    rain3d    3D rain fall over time step dtcloud (kg liquid/m2)
       [real]
    snow3d    3D snow fall over time step dtcloud (kg ice/m2)
       [real]

  4. strat_cloud_end

    call strat_cloud_end 
    
    DESCRIPTION
    This writes out a restart (if needed).


  5. strat_cloud_sum

    call strat_cloud_sum (is, js, ql, qi, cf)
    DESCRIPTION
    This increments cloud variables for passing to radiation. It is expected that this will become obsolete soon.


    INPUT
    is    Starting integer for longitude window.
       [integer]
    js    Starting integer for latitude window.
       [integer]
    ql    Cloud liquid water specific humidity (kg/kg)
       [real]
    qi    Cloud ice water specific humidity (kg/kg)
       [real]
    cf    Cloud fraction (fraction, 0-1)
       [real]

  6. strat_cloud_avg

    call strat_cloud_avg (is, js, ql, qi, cf, ierr)
    DESCRIPTION
    Averaging routine for cloud variables to be passed to radiation. Expected to be removed shortly.


    INPUT
    is    Starting integer for longitude window.
       [integer]
    js    Starting integer for latitude window.
       [integer]

    OUTPUT
    ql    Cloud liquid water specific humidity (kg/kg)
       [real]
    qi    Cloud ice water specific humidity (kg/kg)
       [real]
    cf    Cloud fraction (0-1)
       [real]
    ierr    Error integer.
       [integer]

  7. do_strat_cloud

    result = do_strat_cloud ( ) result (answer)
    DESCRIPTION
    Logical function to indicate whether or not strat_cloud is running.



NAMELIST

&strat_cloud_nml

do_netcdf_restart
netcdf/native restart format
[logical, dimension, units: fraction, default: ]
U00
Threshold relative humidity for cloud formation by large-scale condensation. (default = 0.80)
[real, dimension, units: , default: ]
u00_profile
Should low-level u00 ECMWF profile be applied? (default = .false.)
[logical, dimension, units: , default: ]
rthresh
Liquid cloud drop radius threshold for autoconversion. (default = 10.)
[real, dimension, units: microns, default: ]
use_kk_auto
Should the Khairoutdinov and Kogan (2000) autoconversion be used? ( default = .false.)
[logical, dimension, units: , default: ]
N_land
Fixed number of cloud drops per unit volume in liquid clouds on land. ( default = 250.E+06)
[real, dimension, units: 1/(m*m*m), default: ]
N_ocean
Fixed number of cloud drops per unit volume in liquid clouds over ocean. ( default = 100.E+06)
[real, dimension, units: 1/(m*m*m), default: ]
U_evap
Critical relative humidity above which rain does not evaporate. (default = 1.0)
[real, dimension, units: fraction, default: ]
eros_scale
Normal erosion rate constant cloud destruction (default = 1.E-06)
[real, dimension, units: 1/sec, default: ]
eros_choice
Should enhanced erosion in turbulent conditions be done? (default = .false.)
[real, dimension, units: , default: ]
eros_scale_c
Erosion rate constant for convective conditions. (default = 8.E-05)
[real, dimension, units: 1/sec, default: ]
eros_scale_t
Erosion rate constant for cloud destruction for turbulent conditions. (default = 5.E-05)
[real, dimension, units: 1/sec, default: ]
mc_thresh
Convective mass-flux threshold for enhanced erosion to turn on. (default = 0.001)
[real, dimension, units: kg/m2/sec, default: ]
diff_thresh
Diffusion coefficient threshold for enhanced erosion to turn on. (default = 1.0)
[real, dimension, units: m2/s, default: ]
super_choice
Should should excess vapor in supersaturated conditions be put into cloud water (true) or precipitation fluxes (false)? (default = .false.)
[logical, dimension, units: , default: ]
tracer_advec
Are cloud liquid,ice and fraction advected by the grid resolved motion? (default = .false.)
[logical, dimension, units: , default: ]
qmin
Minimum permissible value of cloud liquid, cloud ice, saturated volume fraction, or rain and snow areas. NOTE: qmin should be chosen such that the range of {qmin, max(qa,ql,qi)} is resolved by the precision of the numbers used. (default = 1.E-10)
[real, dimension, units: kg condensate/kg air, default: ]
Dmin
Minimum permissible dissipation in analytic integration of qa, ql, qi equations. This constant only affects the method by which the prognostic equations are integrated. NOTE: Dmin will be MACHINE DEPENDENT and occur when a. 1. -exp(-Dmin) = 0. instead of Dmin in the limit of very small Dmin AND b. 1. - exp(-D) < D for all D > Dmin (default = 1.E-08)
[real, dimension, units: Dimensionless, default: ]
num_strat_pts
Number of grid points where instantaneous output will be saved to file strat.data num_strat_pts <= max_strat_pts (default = 0)
[integer, dimension, units: , default: ]
strat_pts
num_strat_pts" pairs of grid indices, e.g., the global indices for i,j. (default = 0)
[integer, dimension, units: , default: ]
efact
(default = 0.0)
[real, dimension, units: , default: ]
do_old_snowmelt
Should the old version of snow melting, which has a bug,be run? (default = .false.)
[logical, dimension, units: , default: ]
do_liq_num
Should the prognostic droplet number code be run? (default = .false.)
[logical, dimension, units: , default: ]
do_pdf_clouds
Should the statistical cloud scheme be run? (default = .false.)
[logical, dimension, units: , default: ]
qthalfwidth
Half-width to the qt PDF - used only if do_pdf_clouds is true and diagnostic variance(default = 0.1)
[real, dimension, units: none, default: ]
nsublevels
Number of sublevels to vertical sub-grid cloud structure - used only if do_pdf_cloud is true (default = 1)
[integer, dimension, units: none, default: ]
kmap
PPM partial remap integer - used only if do_pdf_cloud is true and if vertical subgrid structure is used(default = 1)
[integer, dimension, units: none, default: ]
kord
PPM method number - used only if do_pdf_cloud is true and if vertical subgrid structure is used (default = 7)
[integer, dimension, units: none, default: ]
betaP
p-parameter to the beta distribution - used only if do_pdf_clouds is true (default = 5)
[integer, dimension, units: none, default: ]


DATA SETS

strat_cloud.res
native format of the restart file
strat_cloud.res.nc
netcdf format of the restart file


ERROR MESSAGES

None.


REFERENCES

  1. The saturation volume fraction formalism comes from:

    Tiedtke, M., 1993: Representation of clouds in large-scale models. Mon. Wea. Rev., 121, 3040-3061.

  2. The form of most of the microphysics follows:

    Rotstayn, L., 1997: A physically based scheme for the treatment of stratiform clouds and precipitation in large-scale models. I: Description and evaluation of microphysical processes. Quart. J. Roy. Met. Soc. 123, 1227-1282.


COMPILER SPECIFICS



PRECOMPILER OPTIONS



LOADER OPTIONS

        

TEST PROGRAM



KNOWN BUGS



NOTES

1. qmin should be chosen such that the range of {qmin, max(qa,ql,qi)} is resolved by the precision of the numbers used. (default = 1.E-10)

2. Dmin will be MACHINE DEPENDENT and occur when

a. 1. -exp(-Dmin) = 0. instead of Dmin in the limit of very small Dmin

b. 1. - exp(-D) < D for all D > Dmin


FUTURE PLANS



top