Ignore:
Timestamp:
Mar 5, 2015 4:43:04 PM (9 years ago)
Author:
suehring
Message:

Enable monotone advection for scalars in combination with fifth-order scheme using monotonic limiter.

File:
1 edited

Legend:

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

    r1556 r1557  
    2121! Current revisions:
    2222! -----------------
    23 !
     23! Adjustments for monotonic limiter
    2424!
    2525! Former revisions:
     
    143143        ONLY:   average_count_pr, cloud_droplets, cloud_physics, do_sum,       &
    144144                dt_3d, g, humidity, icloud_scheme, kappa, large_scale_forcing, &
    145                 large_scale_subsidence, max_pr_user, message_string, ocean,    &
     145                large_scale_subsidence, max_pr_user, message_string,           &
     146                monotonic_adjustment, ocean,                                   &
    146147                passive_scalar, precipitation, simulated_time,                 &
    147148                use_subsidence_tendencies, use_surface_fluxes, use_top_fluxes, &
     
    281282       ENDIF
    282283
    283        IF ( ws_scheme_sca .AND. sr == 0 )  THEN
     284       IF ( ws_scheme_sca .AND. .NOT. monotonic_adjustment                    &
     285           .AND. sr == 0 )  THEN
    284286
    285287          DO  i = 0, threads_per_task-1
     
    802804!--             but so far there is no other suitable place to calculate)
    803805                IF ( ocean )  THEN
    804                    IF( .NOT. ws_scheme_sca .OR. sr /= 0 )  THEN
     806                   IF( .NOT. ws_scheme_sca .OR. monotonic_adjustment .OR.      &
     807                             sr /= 0 )  THEN
    805808                      pts = 0.5_wp * ( sa(k,j,i)   - hom(k,1,23,sr) +          &
    806809                                       sa(k+1,j,i) - hom(k+1,1,23,sr) )
     
    853856                      ENDIF
    854857                   ELSE
    855                       IF( .NOT. ws_scheme_sca .OR. sr /= 0 )  THEN
     858                      IF( .NOT. ws_scheme_sca .OR. monotonic_adjustment .OR.   &
     859                                sr /= 0 )  THEN
    856860                         pts = 0.5_wp * ( vpt(k,j,i)   - hom(k,1,44,sr) +      &
    857861                                          vpt(k+1,j,i) - hom(k+1,1,44,sr) )
    858862                         sums_l(k,46,tn) = sums_l(k,46,tn) + pts * w(k,j,i) *  &
    859863                                                             rmask(j,i,sr)
    860                       ELSE IF ( ws_scheme_sca .AND. sr == 0 )  THEN
     864                      ELSE IF ( ws_scheme_sca .AND. .NOT. monotonic_adjustment &
     865                                .AND. sr == 0 )  THEN
    861866                         sums_l(k,46,tn) = ( 1.0_wp + 0.61_wp *                &
    862867                                             hom(k,1,41,sr) ) *                &
     
    870875!--             Passive scalar flux
    871876                IF ( passive_scalar .AND. ( .NOT. ws_scheme_sca                &
    872                      .OR. sr /= 0 ) )  THEN
     877                     .OR. monotonic_adjustment .OR. sr /= 0 ) )  THEN
    873878                   pts = 0.5_wp * ( q(k,j,i)   - hom(k,1,41,sr) +              &
    874879                                    q(k+1,j,i) - hom(k+1,1,41,sr) )
     
    914919
    915920       ENDIF
    916        IF ( .NOT. ws_scheme_sca .OR. sr /= 0 )  THEN
     921       IF ( .NOT. ws_scheme_sca .OR. monotonic_adjustment .OR. sr /= 0 )  THEN
    917922         !$OMP DO
    918923         DO  i = nxl, nxr
     
    15251530        ONLY :  average_count_pr, cloud_droplets, cloud_physics, do_sum,       &
    15261531                dt_3d, g, humidity, icloud_scheme, kappa, large_scale_forcing, &
    1527                 large_scale_subsidence, max_pr_user, message_string, ocean,    &
     1532                large_scale_subsidence, max_pr_user, message_string,           &
     1533                monotonic_adjustment, ocean,                                   &
    15281534                passive_scalar, precipitation, simulated_time,                 &
    15291535                use_subsidence_tendencies, use_surface_fluxes, use_top_fluxes, &
     
    16631669       ENDIF
    16641670
    1665        IF ( ws_scheme_sca .AND. sr == 0 )  THEN
     1671       IF ( ws_scheme_sca .AND. .NOT. monotonic_adjustment .AND. sr == 0 )  THEN
    16661672
    16671673          DO  i = 0, threads_per_task-1
     
    24862492       IF ( ocean )  THEN
    24872493
    2488           IF( .NOT. ws_scheme_sca .OR. sr /= 0 )  THEN
     2494          IF( .NOT. ws_scheme_sca .OR. monotonic_adjustment .OR. sr /= 0 )  THEN
    24892495
    24902496             !$acc parallel loop gang present( hom, rflags_invers, rmask, sa, sums_l, w ) create( s1 )
     
    26282634          ELSE
    26292635
    2630              IF( .NOT. ws_scheme_sca .OR.  sr /= 0 )  THEN
     2636             IF( .NOT. ws_scheme_sca .OR. monotonic_adjustment .OR.  sr /= 0 )  THEN
    26312637
    26322638                !$acc parallel loop gang present( hom, rflags_invers, rmask, sums_l, vpt, w ) create( s1 )
     
    26602666!
    26612667!--    Passive scalar flux
    2662        IF ( passive_scalar  .AND.  ( .NOT. ws_scheme_sca  .OR.  sr /= 0 ) )  THEN
     2668       IF ( passive_scalar  .AND.  ( .NOT. ws_scheme_sca .OR. monotonic_adjustment &
     2669                                     .OR.  sr /= 0 ) )  THEN
    26632670
    26642671          !$acc parallel loop gang present( hom, q, rflags_invers, rmask, sums_l, w ) create( s1 )
     
    27142721       ENDIF
    27152722
    2716        IF ( .NOT. ws_scheme_sca .OR.  sr /= 0 )  THEN
     2723       IF ( .NOT. ws_scheme_sca .OR. monotonic_adjustment .OR.  sr /= 0 )  THEN
    27172724
    27182725          !$OMP DO
Note: See TracChangeset for help on using the changeset viewer.