Ignore:
Timestamp:
Apr 8, 2014 3:21:23 PM (10 years ago)
Author:
heinze
Message:

REAL constants provided with KIND-attribute

File:
1 edited

Legend:

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

    r1321 r1353  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! REAL constants provided with KIND-attribute
    2323!
    2424! Former revisions:
     
    148148
    149149
    150        zp         = 0.5 * ( (a+c1) * dy + (b+c2) * dx )
    151        wall_flux  = 0.0
     150       zp         = 0.5_wp * ( (a+c1) * dy + (b+c2) * dx )
     151       wall_flux  = 0.0_wp
    152152       wall_index = NINT( a+ 2*b + 3*c1 + 4*c2 )
    153153
     
    155155          DO  j = nys, nyn
    156156
    157              IF ( wall(j,i) /= 0.0 )  THEN
     157             IF ( wall(j,i) /= 0.0_wp )  THEN
    158158!
    159159!--             All subsequent variables are computed for the respective
     
    165165                   rifs  = rif_wall(k,j,i,wall_index)
    166166
    167                    u_i   = a * u(k,j,i) + c1 * 0.25 *                          &
     167                   u_i   = a * u(k,j,i) + c1 * 0.25_wp *                       &
    168168                           ( u(k+1,j,i+1) + u(k+1,j,i) + u(k,j,i+1) + u(k,j,i) )
    169169
    170                    v_i   = b * v(k,j,i) + c2 * 0.25 *                          &
     170                   v_i   = b * v(k,j,i) + c2 * 0.25_wp *                       &
    171171                           ( v(k+1,j+1,i) + v(k+1,j,i) + v(k,j+1,i) + v(k,j,i) )
    172172
    173                    ws    = ( c1 + c2 ) * w(k,j,i) + 0.25 * (                   &
     173                   ws    = ( c1 + c2 ) * w(k,j,i) + 0.25_wp * (                &
    174174                     a * ( w(k-1,j,i-1) + w(k-1,j,i) + w(k,j,i-1) + w(k,j,i) ) &
    175175                   + b * ( w(k-1,j-1,i) + w(k-1,j,i) + w(k,j-1,i) + w(k,j,i) ) &
    176                                                            )
    177                    pt_i  = 0.5 * ( pt(k,j,i) + a *  pt(k,j,i-1) +              &
     176                                                              )
     177                   pt_i  = 0.5_wp * ( pt(k,j,i) + a *  pt(k,j,i-1) +           &
    178178                                   b * pt(k,j-1,i) + ( c1 + c2 ) * pt(k+1,j,i) )
    179179
     
    187187!
    188188!--                (3) Compute wall friction velocity us_wall
    189                    IF ( rifs >= 0.0 )  THEN
     189                   IF ( rifs >= 0.0_wp )  THEN
    190190
    191191!
    192192!--                   Stable stratification (and neutral)
    193193                      us_wall = kappa * vel_total / ( LOG( zp / z0(j,i) ) +    &
    194                                             5.0 * rifs * ( zp - z0(j,i) ) / zp &
     194                                         5.0_wp * rifs * ( zp - z0(j,i) ) / zp &
    195195                                                    )
    196196                   ELSE
     
    198198!
    199199!--                   Unstable stratification
    200                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    201                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     200                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     201                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    202202
    203203                      us_wall = kappa * vel_total / (                          &
    204204                           LOG( zp / z0(j,i) ) -                               &
    205                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    206                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    207                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     205                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     206                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     207                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    208208                                                    )
    209209                   ENDIF
     
    212212!--                (4) Compute zp/L (corresponds to neutral Richardson flux
    213213!--                    number rifs)
    214                    rifs = -1.0 * zp * kappa * g * wspts / ( pt_i *             &
    215                                                         ( us_wall**3 + 1E-30 ) )
     214                   rifs = -1.0_wp * zp * kappa * g * wspts /                   &
     215                          ( pt_i * ( us_wall**3 + 1E-30 ) )
    216216
    217217!
     
    227227!
    228228!--                (5) Compute wall_flux (u'v', v'u', w'v', or w'u')
    229                    IF ( rifs >= 0.0 )  THEN
     229                   IF ( rifs >= 0.0_wp )  THEN
    230230
    231231!
     
    234234                              ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / &
    235235                              (  LOG( zp / z0(j,i) ) +                         &
    236                                  5.0 * rifs * ( zp - z0(j,i) ) / zp            &
     236                                 5.0_wp * rifs * ( zp - z0(j,i) ) / zp         &
    237237                              )
    238238                   ELSE
     
    240240!
    241241!--                   Unstable stratification
    242                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    243                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     242                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     243                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    244244
    245245                      wall_flux(k,j,i) = kappa *                               &
    246246                           ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / (  &
    247247                           LOG( zp / z0(j,i) ) -                               &
    248                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    249                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    250                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     248                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     249                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     250                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    251251                                                                            )
    252252                   ENDIF
     
    333333
    334334
    335        zp         = 0.5 * ( (a+c1) * dy + (b+c2) * dx )
    336        wall_flux  = 0.0
     335       zp         = 0.5_wp * ( (a+c1) * dy + (b+c2) * dx )
     336       wall_flux  = 0.0_wp
    337337       wall_index = NINT( a+ 2*b + 3*c1 + 4*c2 )
    338338
     
    346346          DO  j = j_south, j_north
    347347
    348              IF ( wall(j,i) /= 0.0 )  THEN
     348             IF ( wall(j,i) /= 0.0_wp )  THEN
    349349!
    350350!--             All subsequent variables are computed for the respective
     
    357357                   rifs  = rif_wall(k,j,i,wall_index)
    358358
    359                    u_i   = a * u(k,j,i) + c1 * 0.25 *                          &
     359                   u_i   = a * u(k,j,i) + c1 * 0.25_wp *                       &
    360360                           ( u(k+1,j,i+1) + u(k+1,j,i) + u(k,j,i+1) + u(k,j,i) )
    361361
    362                    v_i   = b * v(k,j,i) + c2 * 0.25 *                          &
     362                   v_i   = b * v(k,j,i) + c2 * 0.25_wp *                       &
    363363                           ( v(k+1,j+1,i) + v(k+1,j,i) + v(k,j+1,i) + v(k,j,i) )
    364364
    365                    ws    = ( c1 + c2 ) * w(k,j,i) + 0.25 * (                   &
     365                   ws    = ( c1 + c2 ) * w(k,j,i) + 0.25_wp * (                &
    366366                     a * ( w(k-1,j,i-1) + w(k-1,j,i) + w(k,j,i-1) + w(k,j,i) ) &
    367367                   + b * ( w(k-1,j-1,i) + w(k-1,j,i) + w(k,j-1,i) + w(k,j,i) ) &
    368                                                            )
    369                    pt_i  = 0.5 * ( pt(k,j,i) + a *  pt(k,j,i-1) +              &
     368                                                              )
     369                   pt_i  = 0.5_wp * ( pt(k,j,i) + a *  pt(k,j,i-1) +           &
    370370                                   b * pt(k,j-1,i) + ( c1 + c2 ) * pt(k+1,j,i) )
    371371
     
    379379!
    380380!--                (3) Compute wall friction velocity us_wall
    381                    IF ( rifs >= 0.0 )  THEN
     381                   IF ( rifs >= 0.0_wp )  THEN
    382382
    383383!
    384384!--                   Stable stratification (and neutral)
    385385                      us_wall = kappa * vel_total / ( LOG( zp / z0(j,i) ) +    &
    386                                             5.0 * rifs * ( zp - z0(j,i) ) / zp &
     386                                         5.0_wp * rifs * ( zp - z0(j,i) ) / zp &
    387387                                                    )
    388388                   ELSE
     
    390390!
    391391!--                   Unstable stratification
    392                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    393                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     392                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     393                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    394394
    395395                      us_wall = kappa * vel_total / (                          &
    396396                           LOG( zp / z0(j,i) ) -                               &
    397                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    398                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    399                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     397                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     398                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     399                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    400400                                                    )
    401401                   ENDIF
     
    404404!--                (4) Compute zp/L (corresponds to neutral Richardson flux
    405405!--                    number rifs)
    406                    rifs = -1.0 * zp * kappa * g * wspts / ( pt_i *             &
    407                                                         ( us_wall**3 + 1E-30 ) )
     406                   rifs = -1.0_wp * zp * kappa * g * wspts /                   &
     407                          ( pt_i * ( us_wall**3 + 1E-30 ) )
    408408
    409409!
     
    419419!
    420420!--                (5) Compute wall_flux (u'v', v'u', w'v', or w'u')
    421                    IF ( rifs >= 0.0 )  THEN
     421                   IF ( rifs >= 0.0_wp )  THEN
    422422
    423423!
     
    426426                              ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / &
    427427                              (  LOG( zp / z0(j,i) ) +                         &
    428                                  5.0 * rifs * ( zp - z0(j,i) ) / zp            &
     428                                 5.0_wp * rifs * ( zp - z0(j,i) ) / zp         &
    429429                              )
    430430                   ELSE
     
    432432!
    433433!--                   Unstable stratification
    434                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    435                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     434                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     435                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    436436
    437437                      wall_flux(k,j,i) = kappa *                               &
    438438                           ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / (  &
    439439                           LOG( zp / z0(j,i) ) -                               &
    440                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    441                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    442                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     440                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     441                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     442                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    443443                                                                            )
    444444                   ENDIF
     
    511511
    512512
    513        zp         = 0.5 * ( (a+c1) * dy + (b+c2) * dx )
    514        wall_flux  = 0.0
     513       zp         = 0.5_wp * ( (a+c1) * dy + (b+c2) * dx )
     514       wall_flux  = 0.0_wp
    515515       wall_index = NINT( a+ 2*b + 3*c1 + 4*c2 )
    516516
     
    524524          rifs  = rif_wall(k,j,i,wall_index)
    525525
    526           u_i   = a * u(k,j,i) + c1 * 0.25 *                                   &
     526          u_i   = a * u(k,j,i) + c1 * 0.25_wp *                                &
    527527                  ( u(k+1,j,i+1) + u(k+1,j,i) + u(k,j,i+1) + u(k,j,i) )
    528528
    529           v_i   = b * v(k,j,i) + c2 * 0.25 *                                   &
     529          v_i   = b * v(k,j,i) + c2 * 0.25_wp *                                &
    530530                  ( v(k+1,j+1,i) + v(k+1,j,i) + v(k,j+1,i) + v(k,j,i) )
    531531
    532           ws    = ( c1 + c2 ) * w(k,j,i) + 0.25 * (                            &
     532          ws    = ( c1 + c2 ) * w(k,j,i) + 0.25_wp * (                         &
    533533                     a * ( w(k-1,j,i-1) + w(k-1,j,i) + w(k,j,i-1) + w(k,j,i) ) &
    534534                   + b * ( w(k-1,j-1,i) + w(k-1,j,i) + w(k,j-1,i) + w(k,j,i) ) &
    535                                                   )
    536           pt_i  = 0.5 * ( pt(k,j,i) + a *  pt(k,j,i-1) + b * pt(k,j-1,i)       &
     535                                                     )
     536          pt_i  = 0.5_wp * ( pt(k,j,i) + a *  pt(k,j,i-1) + b * pt(k,j-1,i)    &
    537537                          + ( c1 + c2 ) * pt(k+1,j,i) )
    538538
     
    546546!
    547547!--       (3) Compute wall friction velocity us_wall
    548           IF ( rifs >= 0.0 )  THEN
     548          IF ( rifs >= 0.0_wp )  THEN
    549549
    550550!
    551551!--          Stable stratification (and neutral)
    552552             us_wall = kappa * vel_total / ( LOG( zp / z0(j,i) ) +             &
    553                                             5.0 * rifs * ( zp - z0(j,i) ) / zp &
     553                                         5.0_wp * rifs * ( zp - z0(j,i) ) / zp &
    554554                                           )
    555555          ELSE
     
    557557!
    558558!--          Unstable stratification
    559              h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    560              h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     559             h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     560             h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    561561
    562562             us_wall = kappa * vel_total / (                                   &
    563563                  LOG( zp / z0(j,i) ) -                                        &
    564                   LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (                   &
    565                        ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +               &
    566                        2.0 * ( ATAN( h1 ) - ATAN( h2 ) )                       &
     564                  LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (             &
     565                       ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +         &
     566                       2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )                    &
    567567                                           )
    568568          ENDIF
     
    571571!--       (4) Compute zp/L (corresponds to neutral Richardson flux number
    572572!--           rifs)
    573           rifs = -1.0 * zp * kappa * g * wspts / ( pt_i * (us_wall**3 + 1E-30) )
     573          rifs = -1.0_wp * zp * kappa * g * wspts /                            &
     574                  ( pt_i * (us_wall**3 + 1E-30) )
    574575
    575576!
     
    584585!
    585586!--       (5) Compute wall_flux (u'v', v'u', w'v', or w'u')
    586           IF ( rifs >= 0.0 )  THEN
     587          IF ( rifs >= 0.0_wp )  THEN
    587588
    588589!
     
    591592                            ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) /   &
    592593                            (  LOG( zp / z0(j,i) ) +                           &
    593                                5.0 * rifs * ( zp - z0(j,i) ) / zp              &
     594                               5.0_wp * rifs * ( zp - z0(j,i) ) / zp           &
    594595                            )
    595596          ELSE
     
    597598!
    598599!--          Unstable stratification
    599              h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    600              h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     600             h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     601             h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    601602
    602603             wall_flux(k) = kappa *                                            &
    603604                  ( a*u(k,j,i) + b*v(k,j,i) + (c1+c2)*w(k,j,i) ) / (           &
    604605                  LOG( zp / z0(j,i) ) -                                        &
    605                   LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (                   &
    606                        ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +               &
    607                        2.0 * ( ATAN( h1 ) - ATAN( h2 ) )                       &
     606                  LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (             &
     607                       ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +         &
     608                       2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )                    &
    608609                                                                   )
    609610          ENDIF
     
    680681
    681682
    682        zp         = 0.5 * ( (a+c1) * dy + (b+c2) * dx )
    683        wall_flux  = 0.0
     683       zp         = 0.5_wp * ( (a+c1) * dy + (b+c2) * dx )
     684       wall_flux  = 0.0_wp
    684685       wall_index = NINT( a+ 2*b + 3*c1 + 4*c2 )
    685686
     
    687688          DO  j = nys, nyn
    688689
    689              IF ( wall(j,i) /= 0.0 )  THEN
     690             IF ( wall(j,i) /= 0.0_wp )  THEN
    690691!
    691692!--             All subsequent variables are computed for scalar locations.
     
    698699                      kk = k-1
    699700                   ENDIF
    700                    rifs  = 0.5 * ( rif_wall(k,j,i,wall_index) +                &
    701                           a * rif_wall(k,j,i+1,1) +  b * rif_wall(k,j+1,i,2) + &
    702                           c1 * rif_wall(kk,j,i,3) + c2 * rif_wall(kk,j,i,4)    &
    703                                  )
    704 
    705                    u_i   = 0.5 * ( u(k,j,i) + u(k,j,i+1) )
    706                    v_i   = 0.5 * ( v(k,j,i) + v(k,j+1,i) )
    707                    ws    = 0.5 * ( w(k,j,i) + w(k-1,j,i) )
     701                   rifs  = 0.5_wp * (      rif_wall(k,j,i,wall_index) +        &
     702                                      a  * rif_wall(k,j,i+1,1)        +        &
     703                                      b  * rif_wall(k,j+1,i,2)        +        &
     704                                      c1 * rif_wall(kk,j,i,3)         +        &
     705                                      c2 * rif_wall(kk,j,i,4)                  &
     706                                    )
     707
     708                   u_i   = 0.5_wp * ( u(k,j,i) + u(k,j,i+1) )
     709                   v_i   = 0.5_wp * ( v(k,j,i) + v(k,j+1,i) )
     710                   ws    = 0.5_wp * ( w(k,j,i) + w(k-1,j,i) )
    708711!
    709712!--                (2) Compute wall-parallel absolute velocity vel_total and
    710713!--                interpolate appropriate velocity component vel_zp.
    711714                   vel_total = SQRT( ws**2 + (a+c1) * u_i**2 + (b+c2) * v_i**2 )
    712                    vel_zp = 0.5 * ( a * u_i + b * v_i + (c1+c2) * ws )
     715                   vel_zp    = 0.5_wp * ( a * u_i + b * v_i + (c1+c2) * ws )
    713716!
    714717!--                (3) Compute wall friction velocity us_wall
    715                    IF ( rifs >= 0.0 )  THEN
     718                   IF ( rifs >= 0.0_wp )  THEN
    716719
    717720!
    718721!--                   Stable stratification (and neutral)
    719722                      us_wall = kappa * vel_total / ( LOG( zp / z0(j,i) ) +    &
    720                                             5.0 * rifs * ( zp - z0(j,i) ) / zp &
     723                                         5.0_wp * rifs * ( zp - z0(j,i) ) / zp &
    721724                                                    )
    722725                   ELSE
     
    724727!
    725728!--                   Unstable stratification
    726                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    727                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     729                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     730                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    728731
    729732                      us_wall = kappa * vel_total / (                          &
    730733                           LOG( zp / z0(j,i) ) -                               &
    731                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    732                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    733                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     734                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     735                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     736                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    734737                                                    )
    735738                   ENDIF
     
    741744!--                (5) Compute wall_flux (u'v', v'u', w'v', or w'u')
    742745
    743                    IF ( rifs >= 0.0 )  THEN
     746                   IF ( rifs >= 0.0_wp )  THEN
    744747
    745748!
    746749!--                   Stable stratification (and neutral)
    747                       wall_flux(k,j,i) = kappa *  vel_zp /                     &
    748                           ( LOG( zp/z0(j,i) ) + 5.0*rifs * ( zp-z0(j,i) ) / zp )
     750                      wall_flux(k,j,i) = kappa * vel_zp / ( LOG( zp/z0(j,i) ) +&
     751                                         5.0_wp * rifs * ( zp-z0(j,i) ) / zp )
    749752                   ELSE
    750753
    751754!
    752755!--                   Unstable stratification
    753                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    754                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     756                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     757                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    755758
    756759                      wall_flux(k,j,i) = kappa * vel_zp / (                    &
    757760                           LOG( zp / z0(j,i) ) -                               &
    758                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    759                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    760                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     761                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     762                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     763                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    761764                                                          )
    762765                   ENDIF
     
    836839
    837840
    838        zp         = 0.5 * ( (a+c1) * dy + (b+c2) * dx )
    839        wall_flux  = 0.0
     841       zp         = 0.5_wp * ( (a+c1) * dy + (b+c2) * dx )
     842       wall_flux  = 0.0_wp
    840843       wall_index = NINT( a+ 2*b + 3*c1 + 4*c2 )
    841844
     
    851854!--             All subsequent variables are computed for scalar locations
    852855                IF ( k >= nzb_diff_s_inner(j,i)-1  .AND.                       &
    853                      k <= nzb_diff_s_outer(j,i)-2  .AND.  wall(j,i) /= 0.0 )  THEN
     856                     k <= nzb_diff_s_outer(j,i)-2  .AND.                       &
     857                     wall(j,i) /= 0.0_wp )         THEN
    854858!
    855859!--                (1) Compute rifs, u_i, v_i, and ws
     
    859863                      kk = k-1
    860864                   ENDIF
    861                    rifs  = 0.5 * ( rif_wall(k,j,i,wall_index) +                &
    862                           a * rif_wall(k,j,i+1,1) +  b * rif_wall(k,j+1,i,2) + &
    863                           c1 * rif_wall(kk,j,i,3) + c2 * rif_wall(kk,j,i,4)    &
    864                                  )
    865 
    866                    u_i   = 0.5 * ( u(k,j,i) + u(k,j,i+1) )
    867                    v_i   = 0.5 * ( v(k,j,i) + v(k,j+1,i) )
    868                    ws    = 0.5 * ( w(k,j,i) + w(k-1,j,i) )
     865                   rifs  = 0.5_wp * (      rif_wall(k,j,i,wall_index) +        &
     866                                      a  * rif_wall(k,j,i+1,1)        +        &
     867                                      b  * rif_wall(k,j+1,i,2)        +        &
     868                                      c1 * rif_wall(kk,j,i,3)         +        &
     869                                      c2 * rif_wall(kk,j,i,4)                  &
     870                                    )
     871
     872                   u_i   = 0.5_wp * ( u(k,j,i) + u(k,j,i+1) )
     873                   v_i   = 0.5_wp * ( v(k,j,i) + v(k,j+1,i) )
     874                   ws    = 0.5_wp * ( w(k,j,i) + w(k-1,j,i) )
    869875!
    870876!--                (2) Compute wall-parallel absolute velocity vel_total and
    871877!--                interpolate appropriate velocity component vel_zp.
    872878                   vel_total = SQRT( ws**2 + (a+c1) * u_i**2 + (b+c2) * v_i**2 )
    873                    vel_zp = 0.5 * ( a * u_i + b * v_i + (c1+c2) * ws )
     879                   vel_zp    = 0.5_wp * ( a * u_i + b * v_i + (c1+c2) * ws )
    874880!
    875881!--                (3) Compute wall friction velocity us_wall
    876                    IF ( rifs >= 0.0 )  THEN
     882                   IF ( rifs >= 0.0_wp )  THEN
    877883
    878884!
    879885!--                   Stable stratification (and neutral)
    880886                      us_wall = kappa * vel_total / ( LOG( zp / z0(j,i) ) +    &
    881                                             5.0 * rifs * ( zp - z0(j,i) ) / zp &
     887                                         5.0_wp * rifs * ( zp - z0(j,i) ) / zp &
    882888                                                    )
    883889                   ELSE
     
    885891!
    886892!--                   Unstable stratification
    887                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    888                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     893                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     894                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    889895
    890896                      us_wall = kappa * vel_total / (                          &
    891897                           LOG( zp / z0(j,i) ) -                               &
    892                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    893                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    894                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     898                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     899                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     900                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    895901                                                    )
    896902                   ENDIF
     
    902908!--                (5) Compute wall_flux (u'v', v'u', w'v', or w'u')
    903909
    904                    IF ( rifs >= 0.0 )  THEN
     910                   IF ( rifs >= 0.0_wp )  THEN
    905911
    906912!
    907913!--                   Stable stratification (and neutral)
    908                       wall_flux(k,j,i) = kappa *  vel_zp /                     &
    909                           ( LOG( zp/z0(j,i) ) + 5.0*rifs * ( zp-z0(j,i) ) / zp )
     914                      wall_flux(k,j,i) = kappa *  vel_zp / (                   &
     915                                         LOG( zp/z0(j,i) ) +                   &
     916                                         5.0_wp * rifs * ( zp-z0(j,i) ) / zp   &
     917                                                           )
    910918                   ELSE
    911919
    912920!
    913921!--                   Unstable stratification
    914                       h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    915                       h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     922                      h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     923                      h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    916924
    917925                      wall_flux(k,j,i) = kappa * vel_zp / (                    &
    918926                           LOG( zp / z0(j,i) ) -                               &
    919                            LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (          &
    920                                 ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +      &
    921                                 2.0 * ( ATAN( h1 ) - ATAN( h2 ) )              &
     927                           LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (    &
     928                                ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +&
     929                                2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )           &
    922930                                                          )
    923931                   ENDIF
     
    981989
    982990
    983        zp         = 0.5 * ( (a+c1) * dy + (b+c2) * dx )
    984        wall_flux  = 0.0
     991       zp         = 0.5_wp * ( (a+c1) * dy + (b+c2) * dx )
     992       wall_flux  = 0.0_wp
    985993       wall_index = NINT( a+ 2*b + 3*c1 + 4*c2 )
    986994
     
    9961004             kk = k-1
    9971005          ENDIF
    998           rifs  = 0.5 * ( rif_wall(k,j,i,wall_index) +                         &
    999                           a * rif_wall(k,j,i+1,1) +  b * rif_wall(k,j+1,i,2) + &
    1000                           c1 * rif_wall(kk,j,i,3) + c2 * rif_wall(kk,j,i,4)    &
    1001                         )
    1002 
    1003           u_i   = 0.5 * ( u(k,j,i) + u(k,j,i+1) )
    1004           v_i   = 0.5 * ( v(k,j,i) + v(k,j+1,i) )
    1005           ws    = 0.5 * ( w(k,j,i) + w(k-1,j,i) )
     1006          rifs  = 0.5_wp * (      rif_wall(k,j,i,wall_index) +                 &
     1007                             a  * rif_wall(k,j,i+1,1)        +                 &
     1008                             b  * rif_wall(k,j+1,i,2)        +                 &
     1009                             c1 * rif_wall(kk,j,i,3)         +                 &
     1010                             c2 * rif_wall(kk,j,i,4)                           &
     1011                           )
     1012
     1013          u_i   = 0.5_wp * ( u(k,j,i) + u(k,j,i+1) )
     1014          v_i   = 0.5_wp * ( v(k,j,i) + v(k,j+1,i) )
     1015          ws    = 0.5_wp * ( w(k,j,i) + w(k-1,j,i) )
    10061016!
    10071017!--       (2) Compute wall-parallel absolute velocity vel_total and
    10081018!--       interpolate appropriate velocity component vel_zp.
    10091019          vel_total = SQRT( ws**2 + (a+c1) * u_i**2 + (b+c2) * v_i**2 )
    1010           vel_zp = 0.5 * ( a * u_i + b * v_i + (c1+c2) * ws )
     1020          vel_zp    = 0.5_wp * ( a * u_i + b * v_i + (c1+c2) * ws )
    10111021!
    10121022!--       (3) Compute wall friction velocity us_wall
    1013           IF ( rifs >= 0.0 )  THEN
     1023          IF ( rifs >= 0.0_wp )  THEN
    10141024
    10151025!
    10161026!--          Stable stratification (and neutral)
    10171027             us_wall = kappa * vel_total / ( LOG( zp / z0(j,i) ) +             &
    1018                                             5.0 * rifs * ( zp - z0(j,i) ) / zp &
     1028                                         5.0_wp * rifs * ( zp - z0(j,i) ) / zp &
    10191029                                           )
    10201030          ELSE
     
    10221032!
    10231033!--          Unstable stratification
    1024              h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    1025              h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     1034             h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     1035             h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    10261036
    10271037             us_wall = kappa * vel_total / (                                   &
    10281038                  LOG( zp / z0(j,i) ) -                                        &
    1029                   LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (                   &
    1030                        ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +               &
    1031                        2.0 * ( ATAN( h1 ) - ATAN( h2 ) )                       &
     1039                  LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (             &
     1040                       ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +         &
     1041                       2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )                    &
    10321042                                           )
    10331043          ENDIF
     
    10411051!--       subroutine wall_fluxes because fluxes in subroutine
    10421052!--       wall_fluxes_e are defined at scalar locations).
    1043           vel_zp = 0.5 * (       a * ( u(k,j,i) + u(k,j,i+1) ) +               &
    1044                                  b * ( v(k,j,i) + v(k,j+1,i) ) +               &
    1045                            (c1+c2) * ( w(k,j,i) + w(k-1,j,i) )                 &
    1046                          )
    1047 
    1048           IF ( rifs >= 0.0 )  THEN
     1053          vel_zp = 0.5_wp * (       a * ( u(k,j,i) + u(k,j,i+1) ) +            &
     1054                                    b * ( v(k,j,i) + v(k,j+1,i) ) +            &
     1055                              (c1+c2) * ( w(k,j,i) + w(k-1,j,i) )              &
     1056                            )
     1057
     1058          IF ( rifs >= 0.0_wp )  THEN
    10491059
    10501060!
    10511061!--          Stable stratification (and neutral)
    10521062             wall_flux(k) = kappa *  vel_zp /                                  &
    1053                           ( LOG( zp/z0(j,i) ) + 5.0*rifs * ( zp-z0(j,i) ) / zp )
     1063                     ( LOG( zp/z0(j,i) ) + 5.0_wp * rifs * ( zp-z0(j,i) ) / zp )
    10541064          ELSE
    10551065
    10561066!
    10571067!--          Unstable stratification
    1058              h1 = SQRT( SQRT( 1.0 - 16.0 * rifs ) )
    1059              h2 = SQRT( SQRT( 1.0 - 16.0 * rifs * z0(j,i) / zp ) )
     1068             h1 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs ) )
     1069             h2 = SQRT( SQRT( 1.0_wp - 16.0_wp * rifs * z0(j,i) / zp ) )
    10601070
    10611071             wall_flux(k) = kappa * vel_zp / (                                 &
    10621072                  LOG( zp / z0(j,i) ) -                                        &
    1063                   LOG( ( 1.0 + h1 )**2 * ( 1.0 + h1**2 ) / (                   &
    1064                        ( 1.0 + h2 )**2 * ( 1.0 + h2**2 )   ) ) +               &
    1065                        2.0 * ( ATAN( h1 ) - ATAN( h2 ) )                       &
    1066                                                  )
     1073                  LOG( ( 1.0_wp + h1 )**2 * ( 1.0_wp + h1**2 ) / (             &
     1074                       ( 1.0_wp + h2 )**2 * ( 1.0_wp + h2**2 )   ) ) +         &
     1075                       2.0_wp * ( ATAN( h1 ) - ATAN( h2 ) )                    &
     1076                                             )
    10671077          ENDIF
    10681078          wall_flux(k) = - wall_flux(k) * us_wall
Note: See TracChangeset for help on using the changeset viewer.