Ignore:
Timestamp:
Jul 1, 2020 4:16:43 PM (4 years ago)
Author:
gronemeier
Message:

renamed Richardson flux number into gradient Richardson number (model_1d_mod.f90, turbulence_closure_mod.f90, header.f90, surface_mod.f90) and zeta (header.f90);
do not add whitespaces at current-revision section (document_changes)

File:
1 edited

Legend:

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

    r4449 r4586  
    2020! Current revisions:
    2121! -----------------
    22 ! 
    23 ! 
     22!
     23!
    2424! Former revisions:
    2525! -----------------
    2626! $Id$
     27! renamed Richardson flux number into gradient Richardson number
     28!
     29! 4449 2020-03-09 14:43:16Z suehring
    2730! Set intermediate_timestep_count back to zero after 1D-model integration.
    2831! This is required e.g. for initial calls of calc_mean_profile.
     
    120123    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d_init !< initial mixing length (1d-model)
    121124    REAL(wp), DIMENSION(:), ALLOCATABLE ::  l1d_diss !< mixing length for dissipation (1d-model)
    122     REAL(wp), DIMENSION(:), ALLOCATABLE ::  rif1d    !< Richardson flux number (1d-model)
     125    REAL(wp), DIMENSION(:), ALLOCATABLE ::  ri1d    !< gradient Richardson number (1d-model)
    123126    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_diss  !< tendency of diss (1d-model)
    124127    REAL(wp), DIMENSION(:), ALLOCATABLE ::  te_dissm !< weighted tendency of diss for previous sub-timestep (1d-model)
     
    174177!-- Public variables
    175178    PUBLIC  damp_level_1d, damp_level_ind_1d, diss1d, dt_pr_1d,                &
    176             dt_run_control_1d, e1d, end_time_1d, kh1d, km1d, l1d, rif1d, u1d,  &
     179            dt_run_control_1d, e1d, end_time_1d, kh1d, km1d, l1d, ri1d, u1d,   &
    177180            us1d, usws1d, v1d, vsws1d
    178181
     
    196199              e1d(nzb:nzt+1), e1d_p(nzb:nzt+1), kh1d(nzb:nzt+1),               &
    197200              km1d(nzb:nzt+1), l1d(nzb:nzt+1), l1d_init(nzb:nzt+1),            &
    198               l1d_diss(nzb:nzt+1), rif1d(nzb:nzt+1), te_diss(nzb:nzt+1),       &
     201              l1d_diss(nzb:nzt+1), ri1d(nzb:nzt+1), te_diss(nzb:nzt+1),        &
    199202              te_dissm(nzb:nzt+1), te_e(nzb:nzt+1),                            &
    200203              te_em(nzb:nzt+1), te_u(nzb:nzt+1), te_um(nzb:nzt+1),             &
     
    211214       e1d = 0.0_wp; e1d_p = 0.0_wp
    212215       kh1d = 0.0_wp; km1d = 0.0_wp
    213        rif1d = 0.0_wp
     216       ri1d = 0.0_wp
    214217!
    215218!--    Compute the mixing length
     
    414417!
    415418!--                dissipation rate
    416                    IF ( rif1d(k) >= 0.0_wp )  THEN
     419                   IF ( ri1d(k) >= 0.0_wp )  THEN
    417420                      alpha_buoyancy = 1.0_wp - l1d(k) / lambda
    418421                   ELSE
     
    604607             IF ( constant_flux_layer )  THEN
    605608!
    606 !--             Compute theta* using Rif numbers of the previous time step
    607                 IF ( rif1d(nzb+1) >= 0.0_wp )  THEN
     609!--             Compute theta* using Ri numbers of the previous time step
     610                IF ( ri1d(nzb+1) >= 0.0_wp )  THEN
    608611!
    609612!--                Stable stratification
    610613                   ts1d = kappa * ( pt_init(nzb+1) - pt_init(nzb) ) /          &
    611                           ( LOG( zu(nzb+1) / z0h1d ) + 5.0_wp * rif1d(nzb+1) * &
     614                          ( LOG( zu(nzb+1) / z0h1d ) + 5.0_wp * ri1d(nzb+1) * &
    612615                                          ( zu(nzb+1) - z0h1d ) / zu(nzb+1)    &
    613616                          )
     
    615618!
    616619!--                Unstable stratification
    617                    a = SQRT( 1.0_wp - 16.0_wp * rif1d(nzb+1) )
    618                    b = SQRT( 1.0_wp - 16.0_wp * rif1d(nzb+1) /                 &
     620                   a = SQRT( 1.0_wp - 16.0_wp * ri1d(nzb+1) )
     621                   b = SQRT( 1.0_wp - 16.0_wp * ri1d(nzb+1) /                  &
    619622                       zu(nzb+1) * z0h1d )
    620623
     
    630633             !>   2018-04-23, gronemeier
    631634!
    632 !--          Compute the Richardson-flux numbers,
     635!--          Compute the gradient Richardson numbers,
    633636!--          first at the top of the constant-flux layer using u* of the
    634637!--          previous time step (+1E-30, if u* = 0), then in the remaining area.
    635 !--          There the rif-numbers of the previous time step are used.
     638!--          There, the Ri numbers of the previous time step are used.
    636639
    637640             IF ( constant_flux_layer )  THEN
     
    643646                   flux = ts1d + 0.61_wp * pt_init(k) * qs1d
    644647                ENDIF
    645                 rif1d(nzb+1) = zu(nzb+1) * kappa * g * flux / &
     648                ri1d(nzb+1) = zu(nzb+1) * kappa * g * flux /                  &
    646649                               ( pt_0 * ( us1d**2 + 1E-30_wp ) )
    647650             ENDIF
     
    659662                          ) * dd2zu(k)
    660663                ENDIF
    661                 IF ( rif1d(k) >= 0.0_wp )  THEN
    662                    rif1d(k) = g / pt_0 * flux /                                &
     664                IF ( ri1d(k) >= 0.0_wp )  THEN
     665                   ri1d(k) = g / pt_0 * flux /                                 &
    663666                              (  ( ( u1d(k+1) - u1d(k-1) ) * dd2zu(k) )**2     &
    664667                               + ( ( v1d(k+1) - v1d(k-1) ) * dd2zu(k) )**2     &
     
    666669                              )
    667670                ELSE
    668                    rif1d(k) = g / pt_0 * flux /                                &
     671                   ri1d(k) = g / pt_0 * flux /                                 &
    669672                              (  ( ( u1d(k+1) - u1d(k-1) ) * dd2zu(k) )**2     &
    670673                               + ( ( v1d(k+1) - v1d(k-1) ) * dd2zu(k) )**2     &
    671674                               + 1E-30_wp                                      &
    672                               ) * ( 1.0_wp - 16.0_wp * rif1d(k) )**0.25_wp
     675                              ) * ( 1.0_wp - 16.0_wp * ri1d(k) )**0.25_wp
    673676                ENDIF
    674677             ENDDO
    675678!
    676 !--          Richardson-numbers must remain restricted to a realistic value
     679!--          Richardson numbers must remain restricted to a realistic value
    677680!--          range. It is exceeded excessively for very small velocities
    678681!--          (u,v --> 0).
    679              WHERE ( rif1d < -5.0_wp )  rif1d = -5.0_wp
    680              WHERE ( rif1d > 1.0_wp )  rif1d = 1.0_wp
     682             WHERE ( ri1d < -5.0_wp )  ri1d = -5.0_wp
     683             WHERE ( ri1d > 1.0_wp )  ri1d = 1.0_wp
    681684
    682685!
     
    685688                uv_total = SQRT( u1d(nzb+1)**2 + v1d(nzb+1)**2 )
    686689
    687                 IF ( rif1d(nzb+1) >= 0.0_wp )  THEN
     690                IF ( ri1d(nzb+1) >= 0.0_wp )  THEN
    688691!
    689692!--                Stable stratification
    690693                   us1d = kappa * uv_total / (                                 &
    691                              LOG( zu(nzb+1) / z01d ) + 5.0_wp * rif1d(nzb+1) * &
     694                             LOG( zu(nzb+1) / z01d ) + 5.0_wp * ri1d(nzb+1) * &
    692695                                              ( zu(nzb+1) - z01d ) / zu(nzb+1) &
    693696                                             )
     
    695698!
    696699!--                Unstable stratification
    697                    a = 1.0_wp / SQRT( SQRT( 1.0_wp - 16.0_wp * rif1d(nzb+1) ) )
    698                    b = 1.0_wp / SQRT( SQRT( 1.0_wp - 16.0_wp * rif1d(nzb+1) /  &
     700                   a = 1.0_wp / SQRT( SQRT( 1.0_wp - 16.0_wp * ri1d(nzb+1) ) )
     701                   b = 1.0_wp / SQRT( SQRT( 1.0_wp - 16.0_wp * ri1d(nzb+1) /   &
    699702                                                     zu(nzb+1) * z01d ) )
    700703                   us1d = kappa * uv_total / (                                 &
     
    728731!
    729732!--                Compute q*
    730                    IF ( rif1d(nzb+1) >= 0.0_wp )  THEN
     733                   IF ( ri1d(nzb+1) >= 0.0_wp )  THEN
    731734!
    732735!--                   Stable stratification
    733736                      qs1d = kappa * ( q_init(nzb+1) - q_init(nzb) ) /         &
    734                           ( LOG( zu(nzb+1) / z0h1d ) + 5.0_wp * rif1d(nzb+1) * &
     737                          ( LOG( zu(nzb+1) / z0h1d ) + 5.0_wp * ri1d(nzb+1) * &
    735738                                          ( zu(nzb+1) - z0h1d ) / zu(nzb+1)    &
    736739                          )
     
    738741!
    739742!--                   Unstable stratification
    740                       a = SQRT( 1.0_wp - 16.0_wp * rif1d(nzb+1) )
    741                       b = SQRT( 1.0_wp - 16.0_wp * rif1d(nzb+1) /              &
     743                      a = SQRT( 1.0_wp - 16.0_wp * ri1d(nzb+1) )
     744                      b = SQRT( 1.0_wp - 16.0_wp * ri1d(nzb+1) /               &
    742745                                         zu(nzb+1) * z0h1d )
    743746                      qs1d = kappa * ( q_init(nzb+1) - q_init(nzb) ) /         &
     
    759762                IF ( mixing_length_1d == 'blackadar' )  THEN
    760763                   DO  k = nzb+1, nzt
    761                       IF ( rif1d(k) >= 0.0_wp )  THEN
    762                          l1d(k) = l1d_init(k) / ( 1.0_wp + 5.0_wp * rif1d(k) )
     764                      IF ( ri1d(k) >= 0.0_wp )  THEN
     765                         l1d(k) = l1d_init(k) / ( 1.0_wp + 5.0_wp * ri1d(k) )
    763766                         l1d_diss(k) = l1d(k)
    764767                      ELSE
    765768                         l1d(k) = l1d_init(k)
    766769                         l1d_diss(k) = l1d_init(k) *                           &
    767                                        SQRT( 1.0_wp - 16.0_wp * rif1d(k) )
     770                                       SQRT( 1.0_wp - 16.0_wp * ri1d(k) )
    768771                      ENDIF
    769772                   ENDDO
     
    793796!--          Prandtl-Kolmogorov, respectively
    794797             IF ( constant_flux_layer )  THEN
    795                 IF ( rif1d(nzb+1) >= 0.0_wp )  THEN
     798                IF ( ri1d(nzb+1) >= 0.0_wp )  THEN
    796799                   km1d(nzb+1) = us1d * kappa * zu(nzb+1) /                    &
    797                                  ( 1.0_wp + 5.0_wp * rif1d(nzb+1) )
     800                                 ( 1.0_wp + 5.0_wp * ri1d(nzb+1) )
    798801                ELSE
    799802                   km1d(nzb+1) = us1d * kappa * zu(nzb+1) *                    &
    800                                  ( 1.0_wp - 16.0_wp * rif1d(nzb+1) )**0.25_wp
     803                                 ( 1.0_wp - 16.0_wp * ri1d(nzb+1) )**0.25_wp
    801804                ENDIF
    802805             ENDIF
     
    823826!--          kh = phim / phih * km
    824827             DO  k = nzb+1, nzt
    825                 IF ( rif1d(k) >= 0.0_wp )  THEN
     828                IF ( ri1d(k) >= 0.0_wp )  THEN
    826829                   kh1d(k) = km1d(k)
    827830                ELSE
    828                    kh1d(k) = km1d(k) * ( 1.0_wp - 16.0_wp * rif1d(k) )**0.25_wp
     831                   kh1d(k) = km1d(k) * ( 1.0_wp - 16.0_wp * ri1d(k) )**0.25_wp
    829832                ENDIF
    830833             ENDDO
     
    10261029       WRITE ( 17, 101 )
    10271030       DO  k = nzt+1, nzb, -1
    1028           WRITE ( 17, 103)  k, zu(k), u1d(k), v1d(k), pt_init(k), e1d(k), &
    1029                             rif1d(k), km1d(k), kh1d(k), l1d(k), diss1d(k)
     1031          WRITE ( 17, 103)  k, zu(k), u1d(k), v1d(k), pt_init(k), e1d(k),      &
     1032                            ri1d(k), km1d(k), kh1d(k), l1d(k), diss1d(k)
    10301033       ENDDO
    10311034       WRITE ( 17, 101 )
     
    10451048101 FORMAT ('#',111('-'))
    10461049102 FORMAT ('#  k     zu      u          v          pt         e          ',   &
    1047             'rif        Km         Kh         l          diss   ')
     1050            'Ri         Km         Kh         l          diss   ')
    10481051103 FORMAT (1X,I4,1X,F7.1,9(1X,E10.3))
    10491052
Note: See TracChangeset for help on using the changeset viewer.