Changeset 3233 for palm/trunk


Ignore:
Timestamp:
Sep 7, 2018 1:21:24 PM (6 years ago)
Author:
schwenkel
Message:

Adapted for the use of cloud_droplets

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

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

    r3222 r3233  
    2525! -----------------
    2626! $Id$
     27! Adapted for the use of cloud_droplets
     28!
     29! 3222 2018-08-30 13:35:35Z suehring
    2730! - Introduction of surface array for type and its names
    2831! - Bugfix in intialization of pavement surfaces
     
    24872490!
    24882491!--    If no cloud physics is used, rho_surface has not been calculated before
    2489        IF (  .NOT.  cloud_physics )  THEN
     2492       IF (  .NOT.  cloud_physics  .AND.  .NOT.  cloud_droplets )  THEN
    24902493          CALL calc_mean_profile( pt, 4 )
    24912494          rho_surface = surface_pressure * 100.0_wp / ( r_d * hom(topo_min_level+1,1,4,0) * exn )
  • palm/trunk/SOURCE/radiation_model_mod.f90

    r3230 r3233  
    2828! -----------------
    2929! $Id$
     30! Adapted for the use of cloud_droplets
     31!
     32! 3230 2018-09-05 09:29:05Z schwenkel
    3033! Bugfix in radiation_constant_surf: changed (10.0 - emissivity_urb) to
    3134! (1.0 - emissivity_urb)
     
    14341437       ENDIF
    14351438
     1439       IF ( cloud_droplets  .AND.   radiation_scheme == 'rrtmg'  .AND.         &
     1440            average_radiation ) THEN
     1441          message_string = 'average_radiation = .T. with radiation_scheme'//   &
     1442                           '= "rrtmg" in combination cloud_droplets = .T.'//   &
     1443                           'is not implementd'
     1444          CALL message( 'check_parameters', 'PA0560', 1, 2, 0, 6, 0 )
     1445       ENDIF
     1446
    14361447!
    14371448!--    Incialize svf normalization reporting histogram
     
    23262337       IF ( average_radiation ) THEN   
    23272338          pt1   = 0.0_wp
    2328           IF ( cloud_physics )  ql1   = 0.0_wp
     2339          IF ( cloud_physics  .OR.  cloud_droplets )  ql1   = 0.0_wp
    23292340
    23302341          pt1_l = SUM( pt(nzut,nys:nyn,nxl:nxr) )
    2331           IF ( cloud_physics )  ql1_l = SUM( ql(nzut,nys:nyn,nxl:nxr) )
     2342          IF ( cloud_physics  .OR.  cloud_droplets  )  ql1_l = SUM( ql(nzut,nys:nyn,nxl:nxr) )
    23322343
    23332344#if defined( __parallel )     
    23342345          IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
    23352346          CALL MPI_ALLREDUCE( pt1_l, pt1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
    2336           IF ( cloud_physics )                                                 &
     2347          IF ( cloud_physics  .OR.  cloud_droplets )                            &
    23372348             CALL MPI_ALLREDUCE( ql1_l, ql1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
    23382349#else
    23392350          pt1 = pt1_l
    2340           IF ( cloud_physics )  ql1 = ql1_l
     2351          IF ( cloud_physics  .OR.  cloud_droplets )  ql1 = ql1_l
    23412352#endif
    23422353 
    23432354          exn1 = ( hyp(nzut) / 100000.0_wp )**0.286_wp
    2344           IF ( cloud_physics )  pt1 = pt1 + l_d_cp / exn1 * ql1
     2355          IF ( cloud_physics  .OR.  cloud_droplets  )  pt1 = pt1 + l_d_cp / exn1 * ql1
    23452356!
    23462357!--       Finally, divide by number of grid points
     
    24472458
    24482459
    2449                    IF ( cloud_physics )  THEN
     2460                   IF ( cloud_physics  .OR.  cloud_droplets  )  THEN
    24502461                      pt1 = pt(k,j,i) + l_d_cp / exn1 * ql(k,j,i)
    24512462                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
     
    25062517       IF ( average_radiation ) THEN   
    25072518          pt1   = 0.0_wp
    2508           IF ( cloud_physics )  ql1   = 0.0_wp
     2519          IF ( cloud_physics  .OR.  cloud_droplets )  ql1   = 0.0_wp
    25092520
    25102521          pt1_l = SUM( pt(nzut,nys:nyn,nxl:nxr) )
    2511           IF ( cloud_physics )  ql1_l = SUM( ql(nzut,nys:nyn,nxl:nxr) )
     2522          IF ( cloud_physics  .OR.  cloud_droplets )  ql1_l = SUM( ql(nzut,nys:nyn,nxl:nxr) )
    25122523
    25132524#if defined( __parallel )     
    25142525          IF ( collective_wait )  CALL MPI_BARRIER( comm2d, ierr )
    25152526          CALL MPI_ALLREDUCE( pt1_l, pt1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
    2516           IF ( cloud_physics )                                                 &
     2527          IF ( cloud_physics  .OR.  cloud_droplets )                             &
    25172528             CALL MPI_ALLREDUCE( ql1_l, ql1, 1, MPI_REAL, MPI_SUM, comm2d, ierr )
    25182529#else
    25192530          pt1 = pt1_l
    2520           IF ( cloud_physics )  ql1 = ql1_l
     2531          IF ( cloud_physics  .OR.  cloud_droplets )  ql1 = ql1_l
    25212532#endif
    2522           IF ( cloud_physics )  pt1 = pt1 + l_d_cp / exn1 * ql1
     2533          IF ( cloud_physics  .OR.  cloud_droplets )  pt1 = pt1 + l_d_cp / exn1 * ql1
    25232534!
    25242535!--       Finally, divide by number of grid points
     
    26032614                   exn1 = (hyp(k) / 100000.0_wp )**0.286_wp
    26042615
    2605                    IF ( cloud_physics )  THEN
     2616                   IF ( cloud_physics  .OR.  cloud_droplets )  THEN
    26062617                      pt1 = pt(k,j,i) + l_d_cp / exn1 * ql(k,j,i)
    26072618                      surf%rad_lw_in(m)  = 0.8_wp * sigma_sb * (pt1 * exn1)**4
     
    29732984          IF ( cloud_physics )  THEN
    29742985             DO k = nzb+1, nzt+1
    2975                 rrtm_cliqwp(0,k) =  ql_av(k) * 1000._wp *                  &
     2986                rrtm_cliqwp(0,k) =  ql_av(k) * 1000._wp *                   &
    29762987                                    (rrtm_plev(0,k) - rrtm_plev(0,k+1))     &
    29772988                                    * 100._wp / g
     
    29832994!
    29842995!--                Calculate cloud droplet effective radius
    2985                    IF ( cloud_physics )  THEN
    2986                       rrtm_reliq(0,k) = 1.0E6_wp * ( 3._wp * ql_av(k)      &
    2987                                         * rho_surface                       &
    2988                                         / ( 4._wp * pi * nc_const * rho_l )&
    2989                                         )**.33333333333333_wp              &
    2990                                         * EXP( LOG( sigma_gc )**2 )
    2991 
    2992                    ENDIF
    2993 
     2996                   rrtm_reliq(0,k) = 1.0E6_wp * ( 3.0_wp * ql_av(k)         &
     2997                                     * rho_surface                          &
     2998                                     / ( 4.0_wp * pi * nc_const * rho_l )   &
     2999                                     )**0.33333333333333_wp                 &
     3000                                     * EXP( LOG( sigma_gc )**2 )
    29943001!
    29953002!--                Limit effective radius
     
    31573164                                       )**0.286_wp + l_d_cp * ql(k,j,i)
    31583165                      rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * (q(k,j,i) - ql(k,j,i))
     3166                   ENDDO
     3167                ELSEIF ( cloud_droplets )  THEN
     3168                   DO k = nzb+1, nzt+1
     3169                      rrtm_tlay(0,k) = pt(k,j,i) * ( (hyp(k) ) / 100000.0_wp   &
     3170                                       )**0.286_wp + l_d_cp * ql(k,j,i)
     3171                      rrtm_h2ovmr(0,k) = mol_mass_air_d_wv * q(k,j,i)
    31593172                   ENDDO
    31603173                ELSE
Note: See TracChangeset for help on using the changeset viewer.