Changeset 4532 for palm/trunk/SOURCE


Ignore:
Timestamp:
May 14, 2020 1:41:35 PM (4 years ago)
Author:
schwenkel
Message:

Calculate mean droplet radius assuming gamma distibution for condensation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/bulk_cloud_model_mod.f90

    r4521 r4532  
    2525! -----------------
    2626! $Id$
     27! Calculate mean droplet radius assuming gamma distibution for condensation
     28!
     29! 4521 2020-05-06 11:39:49Z schwenkel
    2730! Rename variable
    2831!
     
    43174320                   CALL supersaturation_ice ( i, j, k )
    43184321                   nucle = 0.0_wp
    4319                    !IF ( zu(k) >= 1500.0_wp ) CYCLE
    43204322                   IF ( sat_ice >= 0.05_wp  .OR.  ql(k,j,i) >= 0.001E-3_wp  ) THEN
    43214323!
    43224324!--                   Calculate ice nucleation
    43234325                      nucle = MAX( ( in_init - ni(k,j,i) ) / dt_micro, 0.0_wp )
    4324                       !qi(k,j,i) = qi(k,j,i) + nucle * dt_micro * ximin
    43254326                      ni(k,j,i) = MIN( (ni(k,j,i) + nucle * dt_micro * flag), in_init)
    43264327                   ENDIF
     
    43864387             CALL supersaturation_ice ( i, j, k )
    43874388             nucle = 0.0_wp
    4388              !IF ( zu(k) >= 1500.0_wp ) CYCLE
    43894389             IF ( sat_ice >= 0.05_wp  .OR.  ql(k,j,i) >= 0.001E-3_wp ) THEN
    43904390!
    43914391!--             Calculate ice nucleation
    43924392                nucle = MAX( ( in_init - ni(k,j,i) ) / dt_micro, 0.0_wp )
    4393                 !qi(k,j,i) = qi(k,j,i) + nucle * dt_micro * ximin
    43944393                ni(k,j,i) = MIN( (ni(k,j,i) + nucle * dt_micro * flag), in_init)
    43954394             ENDIF
     
    44314430       INTEGER(iwp) ::  k                 !< loop index
    44324431
     4432       REAL(wp)     ::  alpha_rc = 1.0_wp !< Tuning parameter see (Seifert and Stevens, 2010)
    44334433       REAL(wp)     ::  cond              !< condensation rate
    44344434       REAL(wp)     ::  cond_max          !< maximum condensation rate
    4435        REAL(wp)     ::  dc                !< weight avageraed diameter
    44364435       REAL(wp)     ::  evap              !< evaporation rate
    44374436       REAL(wp)     ::  flag              !< flag to indicate first grid level above surface
    44384437       REAL(wp)     ::  g_fac             !< factor 1 / Fk + Fd
    4439        REAL(wp)     ::  nc_0              !< integral diameter
     4438       REAL(wp)     ::  nu = 1.0_wp       !< Shape parameter of gernerlized gama distribution
     4439       REAL(wp)     ::  rc                !< mean cloud droplets radius assuming gamma distribution
    44404440       REAL(wp)     ::  temp              !< actual temperature
    4441        REAL(wp)     ::  xc                !< mean mass droplets
    44424441
    44434442       CALL cpu_log( log_point_s(66), 'condensation', 'start' )
     
    44674466!
    44684467!--             Mean weight of cloud drops
    4469                 IF ( nc(k,j,i) <= 0.0_wp) CYCLE
    4470                 xc = MAX( (hyrho(k) * qc(k,j,i) / nc(k,j,i)), xcmin)
    4471 !
    4472 !--             Weight averaged diameter of cloud drops:
    4473                 dc   = ( xc * dpirho_l )**( 1.0_wp / 3.0_wp )
    4474 !
    4475 !--             Integral diameter of cloud drops
    4476                 nc_0 = nc(k,j,i) * dc
     4468                IF ( nc(k,j,i) <= 0.0_wp ) CYCLE
     4469!
     4470!--             Calculating mean radius of cloud droplets assuming gamma distribution with shape
     4471!--             parameter nu=1 (Seifert and Beheng, 2006). Tuning factor alpha_rc (intorduced
     4472!--             in Seifert and Stevens, 2010 ) is switched off. Minimum radius is set to 1µm
     4473!--             following (Seifert and Beheng, 2006, Kogan and Khairoutdinov, 2000,
     4474!--             Seifert and Stevens, 2010)
     4475                rc = MAX( alpha_rc  * gamma(nu + 1.33_wp) / gamma(nu + 1.0_wp) *                   &
     4476                        ( 3.0_wp * qc(k,j,i) /                                                     &
     4477                                   ( 4.0_wp * pi * rho_l  * ( nu + 2.0_wp ) * nc(k,j,i) )          &
     4478                        )**0.33_wp, 1.0E-6_wp )
    44774479!
    44784480!--             Condensation needs only to be calculated in supersaturated regions
    44794481                IF ( sat > 0.0_wp )  THEN
    44804482!
    4481 !--                Condensation rate of cloud water content
    4482 !--                after KK scheme.
    4483 !--                (see: Khairoutdinov + Kogan, 2000, Mon. Wea. Rev.,128)
    4484                    cond      = 2.0_wp * pi * nc_0 * g_fac * sat / hyrho(k)
     4483!--                Condensation rate of cloud water content after KK scheme.
     4484!--                (see: Khairoutdinov + Kogan, 2000, Mon. Wea. Rev.,128, Morrison and Grabowski,
     4485!--                2007, and Seifert and Stevens, 2010)
     4486                   cond      = 4.0_wp * pi * nc(k,j,i) * g_fac * sat * rc / hyrho(k)
    44854487                   IF ( microphysics_seifert ) THEN
    44864488                      cond_max  = q(k,j,i) - q_s - qc(k,j,i) - qr(k,j,i)
     
    44924494                   qc(k,j,i) = qc(k,j,i) + cond * dt_micro * flag
    44934495                ELSEIF ( sat < 0.0_wp ) THEN
    4494                    evap      = 2.0_wp * pi * nc_0 * g_fac * sat / hyrho(k)
     4496                   evap      = 4.0_wp * pi * nc(k,j,i) * g_fac * sat * rc / hyrho(k)
    44954497                   evap      = MAX( evap, -qc(k,j,i) / dt_micro )
    44964498
     
    45224524       INTEGER(iwp) ::  k                 !< loop index
    45234525
     4526       REAL(wp)     ::  alpha_rc = 1.0_wp !< Tuning parameter see (Seifert and Stevens, 2010)
    45244527       REAL(wp)     ::  cond              !< condensation rate
    45254528       REAL(wp)     ::  cond_max          !< maximum condensation rate
    4526        REAL(wp)     ::  dc                !< weight avageraed diameter
    45274529       REAL(wp)     ::  evap              !< evaporation rate
    45284530       REAL(wp)     ::  flag              !< flag to indicate first grid level above surface
    45294531       REAL(wp)     ::  g_fac             !< factor 1 / Fk + Fd
    4530        REAL(wp)     ::  nc_0              !< integral diameter
     4532       REAL(wp)     ::  nu = 1.0_wp       !< Shape parameter of gernerlized gama distribution
     4533       REAL(wp)     ::  rc                !< mean cloud droplets radius assuming gamma distribution
    45314534       REAL(wp)     ::  temp              !< actual temperature
    4532        REAL(wp)     ::  xc                !< mean mass droplets
    45334535
    45344536       DO  k = nzb+1, nzt
     
    45554557!--       Mean weight of cloud drops
    45564558          IF ( nc(k,j,i) <= 0.0_wp) CYCLE
    4557           xc = MAX( (hyrho(k) * qc(k,j,i) / nc(k,j,i)), xcmin)
    4558 !
    4559 !--       Weight averaged diameter of cloud drops:
    4560           dc   = ( xc * dpirho_l )**( 1.0_wp / 3.0_wp )
    4561 !
    4562 !--       Integral diameter of cloud drops
    4563           nc_0 = nc(k,j,i) * dc
     4559!
     4560!--       Calculating mean radius of cloud droplets assuming gamma distribution with shape
     4561!--       parameter nu=1 (Seifert and Beheng, 2006). Tuning factor alpha_rc (intorduced
     4562!--       in Seifert and Stevens, 2010 ) is switched off. Minimum radius is set to 1µm following
     4563!--       (Seifert and Beheng, 2006, Kogan and Khairoutdinov, 2000, Seifert and Stevens, 2010)
     4564          rc = MAX( alpha_rc  * gamma(nu + 1.33_wp) / gamma(nu + 1.0_wp) *                         &
     4565               ( 3.0_wp * qc(k,j,i) / ( 4.0_wp * pi * rho_l  * ( nu + 2.0_wp ) * nc(k,j,i) )       &
     4566               )**0.33_wp, 1.0E-6_wp )
    45644567!
    45654568!--       Condensation needs only to be calculated in supersaturated regions
    45664569          IF ( sat > 0.0_wp )  THEN
    45674570!
    4568 !--          Condensation rate of cloud water content
    4569 !--          after KK scheme.
    4570 !--          (see: Khairoutdinov + Kogan, 2000, Mon. Wea. Rev.,128)
    4571              cond      = 2.0_wp * pi * nc_0 * g_fac * sat / hyrho(k)
     4571!--          Condensation rate of cloud water content after KK scheme.
     4572!--          (see: Khairoutdinov + Kogan, 2000, Mon. Wea. Rev.,128, Morrison and Grabowski, 2007
     4573!--          and Seifert and Stevens, 2010)
     4574             cond      = 4.0_wp * pi * nc(k,j,i) * g_fac * sat * rc / hyrho(k)
    45724575             IF ( microphysics_seifert ) THEN
    45734576                cond_max  = q(k,j,i) - q_s - qc(k,j,i) - qr(k,j,i)
     
    45794582             qc(k,j,i) = qc(k,j,i) + cond * dt_micro * flag
    45804583          ELSEIF ( sat < 0.0_wp ) THEN
    4581              evap      = 2.0_wp * pi * nc_0 * g_fac * sat / hyrho(k)
     4584             evap      = 4.0_wp * pi * nc(k,j,i) * g_fac * sat * rc / hyrho(k)
    45824585             evap      = MAX( evap, -qc(k,j,i) / dt_micro )
    45834586
Note: See TracChangeset for help on using the changeset viewer.