Ignore:
Timestamp:
Dec 18, 2019 11:55:56 AM (4 years ago)
Author:
motisi
Message:

Introduction of wall_flags_total_0, which currently sets bits based on static topography information used in wall_flags_static_0

File:
1 edited

Legend:

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

    r4329 r4346  
    2525! -----------------
    2626! $Id$
     27! Introduction of wall_flags_total_0, which currently sets bits based on static
     28! topography information used in wall_flags_static_0
     29!
     30! 4329 2019-12-10 15:46:36Z motisi
    2731! Renamed wall_flags_0 to wall_flags_static_0
    2832!
     
    144148               nbgp, nxl, nxlg, nxr, nxrg, nys, nysg, nyn, nyng, nzb, nzt,     &
    145149               topo_top_ind,                                                   &
    146                wall_flags_static_0
     150               wall_flags_total_0
    147151
    148152    USE kinds
     
    152156
    153157    USE statistics,                                                            &
    154         ONLY:  weight_pres, weight_substep, sums_wsncs_ws_l, sums_wsnrs_ws_l, sums_wsqcs_ws_l, sums_wsqrs_ws_l
     158        ONLY:  weight_pres, weight_substep, sums_wsncs_ws_l, sums_wsnrs_ws_l,  &
     159               sums_wsqcs_ws_l, sums_wsqrs_ws_l
    155160
    156161    USE surface_mod,                                                           &
     
    13991404                                             )                                 &
    14001405                                    * MERGE( 1.0_wp, 0.0_wp,                   &
    1401                                              BTEST( wall_flags_static_0(k,j,i), 0 )   &
     1406                                       BTEST( wall_flags_total_0(k,j,i), 0 )   &
    14021407                                          )
    14031408                   IF ( qc_p(k,j,i) < 0.0_wp )  qc_p(k,j,i) = 0.0_wp
     
    14891494                                             )                                 &
    14901495                                   * MERGE( 1.0_wp, 0.0_wp,                    &
    1491                                              BTEST( wall_flags_static_0(k,j,i), 0 )   &
     1496                                       BTEST( wall_flags_total_0(k,j,i), 0 )   &
    14921497                                          )
    14931498                   IF ( nc_p(k,j,i) < 0.0_wp )  nc_p(k,j,i) = 0.0_wp
     
    15861591                                             )                                 &
    15871592                                    * MERGE( 1.0_wp, 0.0_wp,                   &
    1588                                              BTEST( wall_flags_static_0(k,j,i), 0 )   &
     1593                                       BTEST( wall_flags_total_0(k,j,i), 0 )   &
    15891594                                          )
    15901595                   IF ( qr_p(k,j,i) < 0.0_wp )  qr_p(k,j,i) = 0.0_wp
     
    16761681                                             )                                 &
    16771682                                   * MERGE( 1.0_wp, 0.0_wp,                    &
    1678                                              BTEST( wall_flags_static_0(k,j,i), 0 )   &
     1683                                       BTEST( wall_flags_total_0(k,j,i), 0 )   &
    16791684                                          )
    16801685                   IF ( nr_p(k,j,i) < 0.0_wp )  nr_p(k,j,i) = 0.0_wp
     
    17731778                                       )                                 &
    17741779                                 * MERGE( 1.0_wp, 0.0_wp,                &
    1775                                           BTEST( wall_flags_static_0(k,j,i), 0 )&
     1780                                    BTEST( wall_flags_total_0(k,j,i), 0 )&
    17761781                                        )
    17771782             IF ( qc_p(k,j,i) < 0.0_wp )  qc_p(k,j,i) = 0.0_wp
     
    18321837                                       )                                 &
    18331838                                 * MERGE( 1.0_wp, 0.0_wp,                &
    1834                                           BTEST( wall_flags_static_0(k,j,i), 0 )&
     1839                                    BTEST( wall_flags_total_0(k,j,i), 0 )&
    18351840                                        )
    18361841             IF ( nc_p(k,j,i) < 0.0_wp )  nc_p(k,j,i) = 0.0_wp
     
    18971902                                       )                                 &
    18981903                                 * MERGE( 1.0_wp, 0.0_wp,                &
    1899                                           BTEST( wall_flags_static_0(k,j,i), 0 )&
     1904                                    BTEST( wall_flags_total_0(k,j,i), 0 )&
    19001905                                        )
    19011906             IF ( qr_p(k,j,i) < 0.0_wp )  qr_p(k,j,i) = 0.0_wp
     
    19561961                                       )                                 &
    19571962                                 * MERGE( 1.0_wp, 0.0_wp,                &
    1958                                           BTEST( wall_flags_static_0(k,j,i), 0 )&
     1963                                    BTEST( wall_flags_total_0(k,j,i), 0 )&
    19591964                                        )
    19601965             IF ( nr_p(k,j,i) < 0.0_wp )  nr_p(k,j,i) = 0.0_wp
     
    25022507             DO  k = nzb_do, nzt_do
    25032508                local_pf(i,j,k) = MERGE( &
    2504                                      to_be_resorted(k,j,i),                    &
    2505                                      REAL( fill_value, KIND = wp ),            &
    2506                                      BTEST( wall_flags_static_0(k,j,i), flag_nr )    &
     2509                                     to_be_resorted(k,j,i),                      &
     2510                                     REAL( fill_value, KIND = wp ),              &
     2511                                     BTEST( wall_flags_total_0(k,j,i), flag_nr ) &
    25072512                                  )
    25082513             ENDDO
     
    26432648          DO  j = nys, nyn
    26442649             DO  k = nzb_do, nzt_do
    2645                 local_pf(i,j,k) = MERGE(                                       &
    2646                                      to_be_resorted(k,j,i),                    &
    2647                                      REAL( fill_value, KIND = wp ),            &
    2648                                      BTEST( wall_flags_static_0(k,j,i), flag_nr )    &
     2650                local_pf(i,j,k) = MERGE(                                         &
     2651                                     to_be_resorted(k,j,i),                      &
     2652                                     REAL( fill_value, KIND = wp ),              &
     2653                                     BTEST( wall_flags_total_0(k,j,i), flag_nr ) &
    26492654                                  )
    26502655             ENDDO
     
    30463051!
    30473052!--             Predetermine flag to mask topography
    3048                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3053                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    30493054
    30503055                IF ( qr(k,j,i) <= eps_sb )  THEN
     
    31003105!
    31013106!--       Predetermine flag to mask topography
    3102           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3107          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    31033108
    31043109          IF ( qr(k,j,i) <= eps_sb )  THEN
     
    31683173!
    31693174!--             Predetermine flag to mask topography
    3170                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3175                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    31713176
    31723177!
     
    32693274!
    32703275!--       Predetermine flag to mask topography
    3271           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3276          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    32723277!
    32733278!--       Call calculation of supersaturation
     
    33693374!
    33703375!--             Predetermine flag to mask topography
    3371                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3376                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    33723377!
    33733378!--             Call calculation of supersaturation
     
    34563461!
    34573462!--       Predetermine flag to mask topography
    3458           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3463          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    34593464!
    34603465!--       Call calculation of supersaturation
     
    35453550!
    35463551!--             Predetermine flag to mask topography
    3547                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3552                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    35483553
    35493554                IF ( microphysics_morrison ) THEN
     
    36713676!
    36723677!--       Predetermine flag to mask topography
    3673           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3678          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    36743679          IF ( microphysics_morrison ) THEN
    36753680             nc_auto = nc(k,j,i)
     
    37823787!
    37833788!--             Predetermine flag to mask topography
    3784                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3789                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    37853790
    37863791                IF ( qc(k,j,i) > ql_crit )  THEN
     
    38293834!
    38303835!--       Predetermine flag to mask topography
    3831           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3836          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    38323837
    38333838          IF ( qc(k,j,i) > ql_crit )  THEN
     
    38803885!
    38813886!--             Predetermine flag to mask topography
    3882                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3887                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    38833888
    38843889                IF ( microphysics_morrison ) THEN
     
    39613966!
    39623967!--       Predetermine flag to mask topography
    3963           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     3968          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    39643969          IF ( microphysics_morrison ) THEN
    39653970             nc_accr = nc(k,j,i)
     
    40414046!
    40424047!--             Predetermine flag to mask topography
    4043                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4048                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    40444049
    40454050                IF ( qr(k,j,i) > eps_sb )  THEN
     
    40964101!
    40974102!--       Predetermine flag to mask topography
    4098           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4103          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    40994104
    41004105          IF ( qr(k,j,i) > eps_sb )  THEN
     
    41584163!
    41594164!--             Predetermine flag to mask topography
    4160                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4165                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    41614166
    41624167                IF ( qr(k,j,i) > eps_sb )  THEN
     
    42804285!
    42814286!--       Predetermine flag to mask topography
    4282           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4287          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    42834288
    42844289          IF ( qr(k,j,i) > eps_sb )  THEN
     
    43944399!
    43954400!--             Predetermine flag to mask topography
    4396                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4401                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    43974402
    43984403                IF ( microphysics_morrison ) THEN
     
    44884493!
    44894494!--       Predetermine flag to mask topography
    4490           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4495          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    44914496          IF ( microphysics_morrison ) THEN
    44924497             nc_sedi = nc(k,j,i)
     
    45944599!
    45954600!--             Predetermine flag to mask topography
    4596                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4601                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    45974602
    45984603                IF ( qr(k,j,i) > eps_sb )  THEN
     
    46594664!
    46604665!--             Predetermine flag to mask topography
    4661                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4666                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    46624667
    46634668                c_nr(k) = 0.25_wp * ( w_nr(k-1) +                              &
     
    46754680!
    46764681!--                Predetermine flag to mask topography
    4677                    flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4682                   flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    46784683
    46794684                   d_mean = 0.5_wp * ( qr(k+1,j,i) - qr(k-1,j,i) )
     
    47094714!
    47104715!--             Predetermine flag to mask topography
    4711                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4716                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    47124717!
    47134718!--             Sum up all rain drop number densities which contribute to the flux
     
    48364841!
    48374842!--       Predetermine flag to mask topography
    4838           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4843          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    48394844
    48404845          IF ( qr(k,j,i) > eps_sb )  THEN
     
    48964901!
    48974902!--       Predetermine flag to mask topography
    4898           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4903          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    48994904
    49004905          c_nr(k) = 0.25_wp * ( w_nr(k-1) + 2.0_wp * w_nr(k) + w_nr(k+1) ) *   &
     
    49104915!
    49114916!--          Predetermine flag to mask topography
    4912              flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4917             flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    49134918
    49144919             d_mean = 0.5_wp * ( qr(k+1,j,i) - qr(k-1,j,i) )
     
    49434948!
    49444949!--       Predetermine flag to mask topography
    4945           flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     4950          flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    49464951!
    49474952!--       Sum up all rain drop number densities which contribute to the flux
     
    51535158!
    51545159!--             Predetermine flag to mask topography
    5155                 flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_static_0(k,j,i), 0 ) )
     5160                flag = MERGE( 1.0_wp, 0.0_wp, BTEST( wall_flags_total_0(k,j,i), 0 ) )
    51565161
    51575162!
Note: See TracChangeset for help on using the changeset viewer.