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

Last updated on .


Module Cloud_zonal

     Version: v1.0
     Date:    August 4, 1999
     Contact: Bruce Wyman

OVERVIEW


     Returns zonal (London) cloud amount and location (level) on
     the model grid for high, middle, and low clouds.


     This module interpolates in space and time the zonal mean, seasonally
     varying cloud amounts for the given model grid (lat/pres) and time.


OTHER MODULES USED


    time_manager_mod
     time_interp_mod
       utilities_mod


PUBLIC INTERFACE


  use cloud_zonal_mod [, only: cloud_zonal_init, cloud_zonal, getcld ]

  cloud_zonal_init - Initialization routine that is called once.
                     The default behavior is for seasonally varying
                     clouds. To specify clouds that do not vary in
                     time this routine must be called with a particular
                     season. There is no option for annual mean clouds.

  cloud_zonal - Returns the zonal cloud amounts, location (model level),
                and cloud properties on the model grid at the specified time.

  getcld      - Returns only the zonal cloud amounts and location (model level)
                on the model grid at the specified time.


PUBLIC ROUTINES


call cloud_zonal_init (season)

  Input

     season    Season for returned data.  [integer]
                  The following are valid values:
                       1 = winter
                       2 = spring
                       3 = summer
                       4 = fall
                       5 = seasonal varying

Note: This routine does not need to called. If this routine was not called
      previously, then routine getcld (and cloud_zonal) will call it with
      seasonal varying clouds (season=5).

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

subroutine cloud_zonal (time, lat, phalf,  &
                        nclds, ktopsw, kbtmsw, ktoplw, kbtmlw,  &
                        cldamt, cuvrf, cirrf, cirab, emcld)

  Input

      time      The current time. Used only when seasonal varying clouds
                (season=5) have been initialized.  [time_type]

      lat       The (mean) latitude in radians of all grid boxes.
                   [real, dimension(:,:)]

      phalf     Pressure in pascals at half model levels. Should be normalized
                so that the pressure at level nlev+1 is 101325 pascals, this
                will insure that all grid boxes have three cloud levels.
                   [real, dimension(:,:,nlev+1)]

  Output

     nclds       The number of clouds in a vertical column at each grid box.
                 This routine will return nclds=3 at all grid points.
                   [integer, dimension(:,:)]

     ktopsw,     The top and bottom index (at layer interfaces) for high,
       kbtmsw    middle, and low clouds for shortwave calculations.
                   [integer, dimension(:,:,3)]

     ktopsw,     The top and bottom index (at model levels) for high,
       kbtmlw    middle, and low clouds for longwave calculations.
                   [integer, dimension(:,:,3)]

     cldamt      The fractional cloud amount for high, middle, and low clouds.
                   [real, dimension(:,:,3)]

     cuvrf       The fractional amount of ultraviolet radiation reflected for
                 high, middle, and low clouds.  [real, dimension(:,:,3)]

     cirrf       The fractional amount of infrared radiation reflected for
                 high, middle, and low clouds.  [real, dimension(:,:,3)]

     cirab       The fractional amount of infrared radiation absorbed for high,
                 middle, and low clouds.  [real, dimension(:,:,3)]

     emcld       The emissivity for high, middle, and low clouds.
                 This routine will return emcld=1 for all clouds.
                   [real, dimension(:,:,3)]

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

subroutine getcld (time, lat, phalf, ktopsw, kbtmsw, cldamt)

  Input

      time      The current time. Used only when seasonal varying clouds
                (season=5) have been initialized.  [time_type]

      lat       The (mean) latitude in radians of all grid boxes.
                   [real, dimension(:,:)]

      phalf     Pressure in pascals at half model levels. Should be normalized
                so that the pressure at level nlev+1 is 101325 pascals, this
                will insure that all grid boxes have three cloud levels.
                   [real, dimension(:,:,nlev+1)]

  Output

     ktopsw,     The top and bottom index (at layer interfaces) for high,
       kbtmsw    middle, and low clouds for shortwave calculations.
                   [integer, dimension(:,:,3)]

     ktopsw,     The top and bottom index (at model levels) for high,
       kbtmlw    middle, and low clouds for longwave calculations.
                   [integer, dimension(:,:,3)]

     cldamt      The fractional cloud amount for high, middle, and low clouds.
                   [real, dimension(:,:,3)]


DATA SETS


   The data used for this module is contained internally in the code.
   The amount and pressure altitude data for zonal clouds is for every
   5 degrees latitude and all four seasons (DJF, etc....) for high,
   middle, and low clouds.

   Because the original (London) data was not accessible, the data
   contained in this module was derived from an 18 level version of
   the GFDL Experimental Prediction Group spectral model.

   Cloud reflectivity and absorptivity is defined internally as
   global mean values for high, middle, and low clouds.

   The following table summaries these values:

               |  uv ref    ir ref    ir abs
        -------+-------------------------------
          high |  .210   |  .210   |  .005
          mid  |  .450   |  .450   |  .020
          low  |  .590   |  .590   |  .035


CHANGE HISTORY


     No recent changes.


ERROR MESSAGES


Fatal Errors in cloud_zonal_init

    initialization routine can not be called twice
         You have attemped to call cloud_zonal_init more than once.

    invalid value of season
         The value of season must be between 1 and 5.
         See the documentation for cloud_zonal_init.


REFERENCES


     London, J., 1957: A study of the atmospheric heat balance.
        Final Report, AFCRC Contract AF19 (122)-165, 99 pp.,
        N.Y. Univ.


KNOWN BUGS


     There are no known bugs.


NOTES


   1) The time interpolation is done linearly bewteen seasons.
   2) High clouds are interpolated using the top (interface) pressure
      in a model layer.  All high clouds are one model layer thick.
   3) Middle clouds are interpolated using the average (top+bottom
      interface) pressure. All middle clouds are one model layer thick.
   4) Low clouds are interpolated using top and bottom (interface)
      pressures separately. Low clouds can be more than one model layer thick.


FUTURE PLANS


     None.