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

Adapted for the use of cloud_droplets

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.