Ignore:
Timestamp:
Jun 20, 2017 9:51:42 AM (4 years ago)
Author:
schwenkel
Message:

implementation of new bulk microphysics scheme

File:
1 edited

Legend:

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

    r2281 r2292  
    2525! -----------------
    2626! $Id$
     27! Implementation of new microphysic scheme: cloud_scheme = 'morrison'
     28! includes two more prognostic equations for cloud drop concentration (nc) 
     29! and cloud water content (qc).
     30!
     31! 2281 2017-06-13 11:34:50Z suehring
    2732! Clean-up unnecessary index access to surface type
    2833!
     
    178183
    179184    USE arrays_3d,                                                             &
    180         ONLY:  e, kh, nr, pt, q, ql, qr, s, u, v, vpt, w, zu, zw, drho_air_zw, &
    181                rho_air_zw
     185        ONLY:  e, kh, nc, nr, pt, q, ql, qc, qr, s, u, v, vpt, w, zu, zw,      &
     186               drho_air_zw, rho_air_zw
    182187
    183188    USE cloud_parameters,                                                      &
     
    195200               intermediate_timestep_count, intermediate_timestep_count_max,   &
    196201               land_surface, large_scale_forcing, lsf_surf,                    &
    197                message_string, microphysics_seifert, most_method, neutral,     &
    198                passive_scalar, pt_surface, q_surface, run_coupled,             &
    199                surface_pressure, simulated_time, terminate_run,                &
     202               message_string, microphysics_morrison, microphysics_seifert,    &
     203               most_method, neutral, passive_scalar, pt_surface, q_surface,    &
     204               run_coupled, surface_pressure, simulated_time, terminate_run,   &
    200205               urban_surface, zeta_max, zeta_min
    201206
     
    15261531
    15271532!
    1528 !-- Calculate the other MOST scaling parameters theta*, q*, (qr*, nr*)
     1533!-- Calculate the other MOST scaling parameters theta*, q*, (qc*, qr*, nc*, nr*)
    15291534    SUBROUTINE calc_scaling_parameters
    15301535
     
    17491754       ENDIF
    17501755
     1756!
     1757!--    If required compute qc* and nc*
     1758       IF ( cloud_physics  .AND.  microphysics_morrison  .AND.                 &
     1759            .NOT. surf_vertical )  THEN
     1760          !$OMP PARALLEL DO PRIVATE( i, j, k, z_mo )
     1761          DO  m = 1, surf%ns   
     1762
     1763             i    = surf%i(m)           
     1764             j    = surf%j(m)
     1765             k    = surf%k(m)
     1766
     1767             z_mo = surf%z_mo(m)
     1768
     1769             surf%qcs(m) = kappa * ( qc(k,j,i) - qc(k-1,j,i) )                 &
     1770                                 / ( LOG( z_mo / surf%z0q(m) )                 &
     1771                                 - psi_h( z_mo / surf%ol(m) )                  &
     1772                                 + psi_h( surf%z0q(m) / surf%ol(m) ) )
     1773
     1774             surf%ncs(m) = kappa * ( nc(k,j,i) - nc(k-1,j,i) )                 &
     1775                                 / ( LOG( z_mo / surf%z0q(m) )                 &
     1776                                 - psi_h( z_mo / surf%ol(m) )                  &
     1777                                 + psi_h( surf%z0q(m) / surf%ol(m) ) )
     1778          ENDDO
     1779
     1780       ENDIF
    17511781
    17521782!
     
    17811811
    17821812!
    1783 !-- Calculate surface fluxes usws, vsws, shf, qsws, (qrsws, nrsws)
     1813!-- Calculate surface fluxes usws, vsws, shf, qsws, (qcsws, qrsws, ncsws, nrsws)
    17841814    SUBROUTINE calc_surface_fluxes
    17851815
     
    19271957
    19281958             ENDDO
    1929           ENDIF       
     1959          ENDIF   
     1960!
     1961!--       Compute (turbulent) fluxes of cloud water content and cloud drop conc.
     1962          IF ( cloud_physics  .AND.  microphysics_morrison  .AND.              &
     1963               .NOT. downward)  THEN
     1964             !$OMP PARALLEL DO PRIVATE( i, j )
     1965             DO  m = 1, surf%ns   
     1966
     1967                i    = surf%i(m)           
     1968                j    = surf%j(m)
     1969
     1970                surf%qcsws(m) = -surf%qcs(m) * surf%us(m)
     1971                surf%ncsws(m) = -surf%ncs(m) * surf%us(m)
     1972             ENDDO
     1973          ENDIF   
    19301974!
    19311975!--       Compute (turbulent) fluxes of rain water content and rain drop conc.
    1932           IF ( cloud_physics  .AND.  microphysics_seifert  .AND.              &
     1976          IF ( cloud_physics  .AND.  microphysics_seifert  .AND.               &
    19331977               .NOT. downward)  THEN
    19341978             !$OMP PARALLEL DO PRIVATE( i, j )
Note: See TracChangeset for help on using the changeset viewer.