Ignore:
Timestamp:
Apr 7, 2016 7:49:42 AM (5 years ago)
Author:
hoffmann
Message:

changes in LPM and bulk cloud microphysics

File:
1 edited

Legend:

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

    r1818 r1822  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! Output of bulk microphysics simplified.
    2222!
    2323! Former revisions:
     
    193193    USE control_parameters,                                                    &
    194194        ONLY:   average_count_pr, cloud_droplets, cloud_physics, do_sum,       &
    195                 dt_3d, g, humidity, icloud_scheme, kappa, large_scale_forcing, &
     195                dt_3d, g, humidity, kappa, large_scale_forcing,                &
    196196                large_scale_subsidence, max_pr_user, message_string, neutral,  &
    197                 ocean, passive_scalar, precipitation, simulated_time,          &
     197                microphysics_seifert, ocean, passive_scalar, simulated_time,   &
    198198                use_subsidence_tendencies, use_surface_fluxes, use_top_fluxes, &
    199199                ws_scheme_mom, ws_scheme_sca
     
    898898                      sums_l(k,46,tn) = sums_l(k,46,tn) + pts * w(k,j,i) *     &
    899899                                                          rmask(j,i,sr)
     900                      sums_l(k,54,tn) = sums_l(k,54,tn) + ql(k,j,i) * rmask(j,i,sr)
     901
    900902                      IF ( .NOT. cloud_droplets )  THEN
    901903                         pts = 0.5_wp *                                        &
     
    906908                         sums_l(k,52,tn) = sums_l(k,52,tn) + pts * w(k,j,i) *  &
    907909                                                             rmask(j,i,sr)
    908                          IF ( icloud_scheme == 0  )  THEN
    909                             sums_l(k,54,tn) = sums_l(k,54,tn) + ql(k,j,i) *    &
     910                         sums_l(k,75,tn) = sums_l(k,75,tn) + qc(k,j,i) *       &
     911                                                             rmask(j,i,sr)
     912                         sums_l(k,76,tn) = sums_l(k,76,tn) + prr(k,j,i) *      &
     913                                                             rmask(j,i,sr)
     914                         IF ( microphysics_seifert )  THEN
     915                            sums_l(k,73,tn) = sums_l(k,73,tn) + nr(k,j,i) *    &
    910916                                                                rmask(j,i,sr)
    911                             sums_l(k,75,tn) = sums_l(k,75,tn) + qc(k,j,i) *    &
    912                                                                 rmask(j,i,sr)
    913                             IF ( precipitation )  THEN
    914                                sums_l(k,73,tn) = sums_l(k,73,tn) + nr(k,j,i) * &
    915                                                                    rmask(j,i,sr)
    916                                sums_l(k,74,tn) = sums_l(k,74,tn) + qr(k,j,i) * &
    917                                                                    rmask(j,i,sr)
    918                                sums_l(k,76,tn) = sums_l(k,76,tn) + prr(k,j,i) *&
    919                                                                    rmask(j,i,sr)
    920                             ENDIF
    921                          ELSE
    922                             sums_l(k,54,tn) = sums_l(k,54,tn) + ql(k,j,i) *    &
     917                            sums_l(k,74,tn) = sums_l(k,74,tn) + qr(k,j,i) *    &
    923918                                                                rmask(j,i,sr)
    924919                         ENDIF
    925                       ELSE
    926                          sums_l(k,54,tn) = sums_l(k,54,tn) + ql(k,j,i) *       &
    927                                                              rmask(j,i,sr)
    928920                      ENDIF
     921
    929922                   ELSE
    930923                      IF( .NOT. ws_scheme_sca .OR. sr /= 0 )  THEN
     
    16621655    USE control_parameters,                                                    &
    16631656        ONLY :  average_count_pr, cloud_droplets, cloud_physics, do_sum,       &
    1664                 dt_3d, g, humidity, icloud_scheme, kappa, large_scale_forcing, &
    1665                 large_scale_subsidence, max_pr_user, message_string, neutral,  &
    1666                 ocean, passive_scalar, precipitation, simulated_time,          &
    1667                 use_subsidence_tendencies, use_surface_fluxes, use_top_fluxes, &
    1668                 ws_scheme_mom, ws_scheme_sca
     1657                dt_3d, g, humidity, kappa, large_scale_forcing,                &
     1658                large_scale_subsidence, max_pr_user, message_string,           &
     1659                microphysics_seifert, neutral, ocean, passive_scalar,          &
     1660                simulated_time, use_subsidence_tendencies, use_surface_fluxes, &
     1661                use_top_fluxes, ws_scheme_mom, ws_scheme_sca
    16691662       
    16701663    USE cpulog,                                                                &
     
    27742767                !$acc end parallel loop
    27752768
    2776                 IF ( icloud_scheme == 0 )  THEN
     2769                IF ( microphysics_seifert )  THEN
    27772770
    27782771                   !$acc parallel loop gang present( qc, ql, rflags_invers, rmask, sums_l ) create( s1, s2 )
     
    27912784                   !$acc end parallel loop
    27922785
    2793                    IF ( precipitation )  THEN
    2794 
    2795                       !$acc parallel loop gang present( nr, qr, prr, rflags_invers, rmask, sums_l ) create( s1, s2, s3 )
    2796                       DO  k = nzb, nzt_diff
    2797                          s1 = 0
    2798                          s2 = 0
    2799                          s3 = 0
    2800                          !$acc loop vector collapse( 2 ) reduction( +: s1, s2, s3 )
    2801                          DO  i = nxl, nxr
    2802                             DO  j = nys, nyn
    2803                                s1 = s1 + nr(k,j,i)  * rmask(j,i,sr) * rflags_invers(j,i,k+1)
    2804                                s2 = s2 + qr(k,j,i)  * rmask(j,i,sr) * rflags_invers(j,i,k+1)
    2805                                s3 = s3 + prr(k,j,i) * rmask(j,i,sr) * rflags_invers(j,i,k+1)
    2806                             ENDDO
     2786                   !$acc parallel loop gang present( nr, qr, prr, rflags_invers, rmask, sums_l ) create( s1, s2, s3 )
     2787                   DO  k = nzb, nzt_diff
     2788                      s1 = 0
     2789                      s2 = 0
     2790                      s3 = 0
     2791                      !$acc loop vector collapse( 2 ) reduction( +: s1, s2, s3 )
     2792                      DO  i = nxl, nxr
     2793                         DO  j = nys, nyn
     2794                            s1 = s1 + nr(k,j,i)  * rmask(j,i,sr) * rflags_invers(j,i,k+1)
     2795                            s2 = s2 + qr(k,j,i)  * rmask(j,i,sr) * rflags_invers(j,i,k+1)
     2796                            s3 = s3 + prr(k,j,i) * rmask(j,i,sr) * rflags_invers(j,i,k+1)
    28072797                         ENDDO
    2808                          sums_l(k,73,tn) = s1
    2809                          sums_l(k,74,tn) = s2
    2810                          sums_l(k,76,tn) = s3
    28112798                      ENDDO
    2812                       !$acc end parallel loop
    2813 
    2814                    ENDIF
     2799                      sums_l(k,73,tn) = s1
     2800                      sums_l(k,74,tn) = s2
     2801                      sums_l(k,76,tn) = s3
     2802                   ENDDO
     2803                   !$acc end parallel loop
    28152804
    28162805                ELSE
Note: See TracChangeset for help on using the changeset viewer.