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/advec_s_bc.f90

    r1347 r1353  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! REAL constants provided with KIND-attribute
    2323!
    2424! Former revisions:
     
    170170!-- Array sk_p requires 2 extra elements for each dimension
    171171    ALLOCATE( sk_p(nzb-2:nzt+3,nys-3:nyn+3,nxl-3:nxr+3) )
    172     sk_p = 0.0
     172    sk_p = 0.0_wp
    173173
    174174!
    175175!-- Assign reciprocal values in order to avoid divisions later
    176     f2    = 0.5
    177     f4    = 0.25
    178     f8    = 0.125
    179     f12   = 0.8333333333333333E-01
    180     f24   = 0.4166666666666666E-01
    181     f48   = 0.2083333333333333E-01
    182     f1920 = 0.5208333333333333E-03
     176    f2    = 0.5_wp
     177    f4    = 0.25_wp
     178    f8    = 0.125_wp
     179    f12   = 0.8333333333333333E-01_wp
     180    f24   = 0.4166666666666666E-01_wp
     181    f48   = 0.2083333333333333E-01_wp
     182    f1920 = 0.5208333333333333E-03_wp
    183183
    184184!
     
    236236!
    237237!-- Initialise control density
    238     d = 0.0
     238    d = 0.0_wp
    239239
    240240!
    241241!-- Determine maxima of the first and second derivative in x-direction
    242     fmax_l = 0.0
     242    fmax_l = 0.0_wp
    243243    DO  i = nxl, nxr
    244244       DO  j = nys, nyn
    245245          DO  k = nzb+1, nzt
    246              numera = ABS( sk_p(k,j,i+1) - 2.0 * sk_p(k,j,i) + sk_p(k,j,i-1) )
     246             numera = ABS( sk_p(k,j,i+1) - 2.0_wp * sk_p(k,j,i) + sk_p(k,j,i-1) )
    247247             denomi  = ABS( sk_p(k,j,i+1) - sk_p(k,j,i-1) )
    248248             fmax_l(1) = MAX( fmax_l(1) , numera )
     
    258258#endif
    259259
    260     fmax = 0.04 * fmax
     260    fmax = 0.04_wp * fmax
    261261
    262262!
     
    271271              sw(nzb+1:nzt,nxl-1:nxr+1)                                        &
    272272            )
    273     imme = 0.0; impe = 0.0; ipme = 0.0; ippe = 0.0
     273    imme = 0.0_wp; impe = 0.0_wp; ipme = 0.0_wp; ippe = 0.0_wp
    274274
    275275!
     
    287287       DO  i = nxl-1, nxr+1
    288288          DO  k = nzb+1, nzt
    289              a12(k,i) = 0.5 * ( sk_p(k,j,i+1) - sk_p(k,j,i-1) )
    290              a22(k,i) = 0.5 * ( sk_p(k,j,i+1) - 2.0 * sk_p(k,j,i)              &
    291                                               + sk_p(k,j,i-1) )
    292              a0(k,i) = ( 9.0 * sk_p(k,j,i+2) - 116.0 * sk_p(k,j,i+1)           &
    293                          + 2134.0 * sk_p(k,j,i) - 116.0 * sk_p(k,j,i-1)        &
    294                          + 9.0 * sk_p(k,j,i-2) ) * f1920
    295              a1(k,i) = ( -5.0 * sk_p(k,j,i+2) + 34.0 * sk_p(k,j,i+1)           &
    296                          - 34.0 * sk_p(k,j,i-1) + 5.0 * sk_p(k,j,i-2)          &
     289             a12(k,i) = 0.5_wp * ( sk_p(k,j,i+1) - sk_p(k,j,i-1) )
     290             a22(k,i) = 0.5_wp * ( sk_p(k,j,i+1) - 2.0_wp * sk_p(k,j,i)        &
     291                                                 + sk_p(k,j,i-1) )
     292             a0(k,i) = ( 9.0_wp * sk_p(k,j,i+2)    - 116.0_wp * sk_p(k,j,i+1)  &
     293                         + 2134.0_wp * sk_p(k,j,i) - 116.0_wp * sk_p(k,j,i-1)  &
     294                         + 9.0_wp * sk_p(k,j,i-2) ) * f1920
     295             a1(k,i) = ( -5.0_wp * sk_p(k,j,i+2)   + 34.0_wp * sk_p(k,j,i+1)   &
     296                         - 34.0_wp * sk_p(k,j,i-1) + 5.0_wp * sk_p(k,j,i-2)    &
    297297                       ) * f48
    298              a2(k,i) = ( -3.0 * sk_p(k,j,i+2) + 36.0 * sk_p(k,j,i+1)           &
    299                          - 66.0 * sk_p(k,j,i) + 36.0 * sk_p(k,j,i-1)           &
    300                          - 3.0 * sk_p(k,j,i-2) ) * f48
     298             a2(k,i) = ( -3.0_wp * sk_p(k,j,i+2) + 36.0_wp * sk_p(k,j,i+1)     &
     299                         - 66.0_wp * sk_p(k,j,i) + 36.0_wp * sk_p(k,j,i-1)     &
     300                         - 3.0_wp * sk_p(k,j,i-2) ) * f48
    301301          ENDDO
    302302       ENDDO
     
    309309             cip  =  MAX( 0.0_wp, ( u(k,j,i+1) - u_gtrans ) * dt_3d * ddx )
    310310             cim  = -MIN( 0.0_wp, ( u(k,j,i+1) - u_gtrans ) * dt_3d * ddx )
    311              cipf = 1.0 - 2.0 * cip
    312              cimf = 1.0 - 2.0 * cim
    313              ip   =   a0(k,i)   * f2  * ( 1.0 - cipf )                         &
    314                     + a1(k,i)   * f8  * ( 1.0 - cipf*cipf )                    &
    315                     + a2(k,i)   * f24 * ( 1.0 - cipf*cipf*cipf )
    316              im   =   a0(k,i+1) * f2  * ( 1.0 - cimf )                         &
    317                     - a1(k,i+1) * f8  * ( 1.0 - cimf*cimf )                    &
    318                     + a2(k,i+1) * f24 * ( 1.0 - cimf*cimf*cimf )
     311             cipf = 1.0_wp - 2.0_wp * cip
     312             cimf = 1.0_wp - 2.0_wp * cim
     313             ip   =   a0(k,i)   * f2  * ( 1.0_wp - cipf )                      &
     314                    + a1(k,i)   * f8  * ( 1.0_wp - cipf*cipf )                 &
     315                    + a2(k,i)   * f24 * ( 1.0_wp - cipf*cipf*cipf )
     316             im   =   a0(k,i+1) * f2  * ( 1.0_wp - cimf )                      &
     317                    - a1(k,i+1) * f8  * ( 1.0_wp - cimf*cimf )                 &
     318                    + a2(k,i+1) * f24 * ( 1.0_wp - cimf*cimf*cimf )
    319319             ip   = MAX( ip, 0.0_wp )
    320320             im   = MAX( im, 0.0_wp )
    321              ippb(k,i) = ip * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15) )
    322              impb(k,i) = im * MIN( 1.0_wp, sk_p(k,j,i+1) / (ip+im+1E-15) )
     321             ippb(k,i) = ip * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15_wp) )
     322             impb(k,i) = im * MIN( 1.0_wp, sk_p(k,j,i+1) / (ip+im+1E-15_wp) )
    323323
    324324             cip  =  MAX( 0.0_wp, ( u(k,j,i) - u_gtrans ) * dt_3d * ddx )
    325325             cim  = -MIN( 0.0_wp, ( u(k,j,i) - u_gtrans ) * dt_3d * ddx )
    326              cipf = 1.0 - 2.0 * cip
    327              cimf = 1.0 - 2.0 * cim
    328              ip   =   a0(k,i-1) * f2  * ( 1.0 - cipf )                         &
    329                     + a1(k,i-1) * f8  * ( 1.0 - cipf*cipf )                    &
    330                     + a2(k,i-1) * f24 * ( 1.0 - cipf*cipf*cipf )
    331              im   =   a0(k,i)   * f2  * ( 1.0 - cimf )                         &
    332                     - a1(k,i)   * f8  * ( 1.0 - cimf*cimf )                    &
    333                     + a2(k,i)   * f24 * ( 1.0 - cimf*cimf*cimf )
     326             cipf = 1.0_wp - 2.0_wp * cip
     327             cimf = 1.0_wp - 2.0_wp * cim
     328             ip   =   a0(k,i-1) * f2  * ( 1.0_wp - cipf )                      &
     329                    + a1(k,i-1) * f8  * ( 1.0_wp - cipf*cipf )                 &
     330                    + a2(k,i-1) * f24 * ( 1.0_wp - cipf*cipf*cipf )
     331             im   =   a0(k,i)   * f2  * ( 1.0_wp - cimf )                      &
     332                    - a1(k,i)   * f8  * ( 1.0_wp - cimf*cimf )                 &
     333                    + a2(k,i)   * f24 * ( 1.0_wp - cimf*cimf*cimf )
    334334             ip   = MAX( ip, 0.0_wp )
    335335             im   = MAX( im, 0.0_wp )
    336              ipmb(k,i) = ip * MIN( 1.0_wp, sk_p(k,j,i-1) / (ip+im+1E-15) )
    337              immb(k,i) = im * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15) )
     336             ipmb(k,i) = ip * MIN( 1.0_wp, sk_p(k,j,i-1) / (ip+im+1E-15_wp) )
     337             immb(k,i) = im * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15_wp) )
    338338          ENDDO
    339339       ENDDO
     
    343343       DO  i = nxl-2, nxr+2
    344344          DO  k = nzb+1, nzt
    345              m1z = ABS( sk_p(k,j,i+1) - 2.0 * sk_p(k,j,i) + sk_p(k,j,i-1) )
     345             m1z = ABS( sk_p(k,j,i+1) - 2.0_wp * sk_p(k,j,i) + sk_p(k,j,i-1) )
    346346             m1n = ABS( sk_p(k,j,i+1) - sk_p(k,j,i-1) )
    347              IF ( m1n /= 0.0  .AND.  m1n >= m1z )  THEN
     347             IF ( m1n /= 0.0_wp  .AND.  m1n >= m1z )  THEN
    348348                m1(k,i) = m1z / m1n
    349                 IF ( m1(k,i) /= 2.0  .AND.  m1n < fmax(2) )  m1(k,i) = 0.0
     349                IF ( m1(k,i) /= 2.0_wp  .AND.  m1n < fmax(2) )  m1(k,i) = 0.0_wp
    350350             ELSEIF ( m1n < m1z )  THEN
    351                 m1(k,i) = -1.0
     351                m1(k,i) = -1.0_wp
    352352             ELSE
    353                 m1(k,i) = 0.0
     353                m1(k,i) = 0.0_wp
    354354             ENDIF
    355355          ENDDO
     
    358358!
    359359!--    Compute switch sw
    360        sw = 0.0
     360       sw = 0.0_wp
    361361       DO  i = nxl-1, nxr+1
    362362          DO  k = nzb+1, nzt
    363              m2 = 2.0 * ABS( a1(k,i) - a12(k,i) ) /                            &
     363             m2 = 2.0_wp * ABS( a1(k,i) - a12(k,i) ) /                         &
    364364                  MAX( ABS( a1(k,i) + a12(k,i) ), 1E-35_wp )
    365              IF ( ABS( a1(k,i) + a12(k,i) ) < fmax(2) )  m2 = 0.0
    366 
    367              m3 = 2.0 * ABS( a2(k,i) - a22(k,i) ) /                            &
     365             IF ( ABS( a1(k,i) + a12(k,i) ) < fmax(2) )  m2 = 0.0_wp
     366
     367             m3 = 2.0_wp * ABS( a2(k,i) - a22(k,i) ) /                         &
    368368                  MAX( ABS( a2(k,i) + a22(k,i) ), 1E-35_wp )
    369              IF ( ABS( a2(k,i) + a22(k,i) ) < fmax(1) )  m3 = 0.0
    370 
    371              t1 = 0.35
    372              t2 = 0.35
    373              IF ( m1(k,i) == -1.0 )  t2 = 0.12
     369             IF ( ABS( a2(k,i) + a22(k,i) ) < fmax(1) )  m3 = 0.0_wp
     370
     371             t1 = 0.35_wp
     372             t2 = 0.35_wp
     373             IF ( m1(k,i) == -1.0_wp )  t2 = 0.12_wp
    374374
    375375!--          *VOCL STMT,IF(10)
    376              IF ( m1(k,i-1) == 1.0 .OR. m1(k,i) == 1.0 .OR. m1(k,i+1) == 1.0   &
    377                   .OR.  m2 > t2  .OR.  m3 > t2  .OR.                           &
    378                   ( m1(k,i) > t1  .AND.  m1(k,i-1) /= -1.0  .AND.              &
    379                     m1(k,i) /= -1.0  .AND.  m1(k,i+1) /= -1.0 )                &
    380                 )  sw(k,i) = 1.0
     376             IF ( m1(k,i-1) == 1.0_wp .OR. m1(k,i) == 1.0_wp                   &
     377                  .OR. m1(k,i+1) == 1.0_wp .OR.  m2 > t2  .OR.  m3 > t2  .OR.  &
     378                  ( m1(k,i) > t1  .AND.  m1(k,i-1) /= -1.0_wp  .AND.           &
     379                    m1(k,i) /= -1.0_wp  .AND.  m1(k,i+1) /= -1.0_wp )          &
     380                )  sw(k,i) = 1.0_wp
    381381          ENDDO
    382382       ENDDO
     
    389389
    390390!--          *VOCL STMT,IF(10)
    391              IF ( sw(k,i) == 1.0 )  THEN
     391             IF ( sw(k,i) == 1.0_wp )  THEN
    392392                snenn = sk_p(k,j,i+1) - sk_p(k,j,i-1)
    393                 IF ( ABS( snenn ) < 1E-9 )  snenn = 1E-9
     393                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    394394                sterm = ( sk_p(k,j,i) - sk_p(k,j,i-1) ) / snenn
    395395                sterm = MIN( sterm, 0.9999_wp )
     
    402402                ippe(k,i) = sk_p(k,j,i-1) * cip + snenn * (                    &
    403403                            aex(ix) * cip + bex(ix) / dex(ix) * (              &
    404                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cip ) ) &
     404                            eex(ix) -                                          &
     405                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cip ) )  &
    405406                                                                )              &
    406407                                                          )
    407                 IF ( sterm == 0.0001 )  ippe(k,i) = sk_p(k,j,i) * cip
    408                 IF ( sterm == 0.9999 )  ippe(k,i) = sk_p(k,j,i) * cip
     408                IF ( sterm == 0.0001_wp )  ippe(k,i) = sk_p(k,j,i) * cip
     409                IF ( sterm == 0.9999_wp )  ippe(k,i) = sk_p(k,j,i) * cip
    409410
    410411                snenn = sk_p(k,j,i-1) - sk_p(k,j,i+1)
    411                 IF ( ABS( snenn ) < 1E-9 )  snenn = 1E-9
     412                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    412413                sterm = ( sk_p(k,j,i) - sk_p(k,j,i+1) ) / snenn
    413414                sterm = MIN( sterm, 0.9999_wp )
     
    420421                imme(k,i) = sk_p(k,j,i+1) * cim + snenn * (                    &
    421422                            aex(ix) * cim + bex(ix) / dex(ix) * (              &
    422                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cim ) ) &
     423                            eex(ix) -                                          &
     424                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cim ) )  &
    423425                                                                )              &
    424426                                                          )
    425                 IF ( sterm == 0.0001 )  imme(k,i) = sk_p(k,j,i) * cim
    426                 IF ( sterm == 0.9999 )  imme(k,i) = sk_p(k,j,i) * cim
     427                IF ( sterm == 0.0001_wp )  imme(k,i) = sk_p(k,j,i) * cim
     428                IF ( sterm == 0.9999_wp )  imme(k,i) = sk_p(k,j,i) * cim
    427429             ENDIF
    428430
    429431!--          *VOCL STMT,IF(10)
    430              IF ( sw(k,i+1) == 1.0 )  THEN
     432             IF ( sw(k,i+1) == 1.0_wp )  THEN
    431433                snenn = sk_p(k,j,i) - sk_p(k,j,i+2)
    432                 IF ( ABS( snenn ) .LT. 1E-9 )  snenn = 1E-9
     434                IF ( ABS( snenn ) .LT. 1E-9_wp )  snenn = 1E-9_wp
    433435                sterm = ( sk_p(k,j,i+1) - sk_p(k,j,i+2) ) / snenn
    434436                sterm = MIN( sterm, 0.9999_wp )
     
    441443                impe(k,i) = sk_p(k,j,i+2) * cim + snenn * (                    &
    442444                            aex(ix) * cim + bex(ix) / dex(ix) * (              &
    443                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cim ) ) &
     445                            eex(ix) -                                          &
     446                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cim ) )  &
    444447                                                                )              &
    445448                                                          )
     
    449452
    450453!--          *VOCL STMT,IF(10)
    451              IF ( sw(k,i-1) == 1.0 )  THEN
     454             IF ( sw(k,i-1) == 1.0_wp )  THEN
    452455                snenn = sk_p(k,j,i) - sk_p(k,j,i-2)
    453                 IF ( ABS( snenn ) < 1E-9 )  snenn = 1E-9
     456                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    454457                sterm = ( sk_p(k,j,i-1) - sk_p(k,j,i-2) ) / snenn
    455458                sterm = MIN( sterm, 0.9999_wp )
     
    462465                ipme(k,i) = sk_p(k,j,i-2) * cip + snenn * (                    &
    463466                            aex(ix) * cip + bex(ix) / dex(ix) * (              &
    464                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0_wp - 2.0 * cip ) ) &
     467                            eex(ix) -                                          &
     468                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cip ) )  &
    465469                                                                )              &
    466470                                                          )
     
    538542!
    539543!-- Determine the maxima of the first and second derivative in y-direction
    540     fmax_l = 0.0
     544    fmax_l = 0.0_wp
    541545    DO  i = nxl, nxr
    542546       DO  j = nys, nyn
    543547          DO  k = nzb+1, nzt
    544              numera = ABS( sk_p(k,j+1,i) - 2.0 * sk_p(k,j,i) + sk_p(k,j-1,i) )
     548             numera = ABS( sk_p(k,j+1,i) - 2.0_wp * sk_p(k,j,i) + sk_p(k,j-1,i) )
    545549             denomi  = ABS( sk_p(k,j+1,i) - sk_p(k,j-1,i) )
    546550             fmax_l(1) = MAX( fmax_l(1) , numera )
     
    556560#endif
    557561
    558     fmax = 0.04 * fmax
     562    fmax = 0.04_wp * fmax
    559563
    560564!
     
    569573              sw(nzb+1:nzt,nys-1:nyn+1)                                        &
    570574            )
    571     imme = 0.0; impe = 0.0; ipme = 0.0; ippe = 0.0
     575    imme = 0.0_wp; impe = 0.0_wp; ipme = 0.0_wp; ippe = 0.0_wp
    572576
    573577!
     
    579583       DO  j = nys-1, nyn+1
    580584          DO  k = nzb+1, nzt
    581              a12(k,j) = 0.5 * ( sk_p(k,j+1,i) - sk_p(k,j-1,i) )
    582              a22(k,j) = 0.5 * ( sk_p(k,j+1,i) - 2.0 * sk_p(k,j,i)              &
    583                                               + sk_p(k,j-1,i) )
    584              a0(k,j) = ( 9.0 * sk_p(k,j+2,i) - 116.0 * sk_p(k,j+1,i)           &
    585                          + 2134.0 * sk_p(k,j,i) - 116.0 * sk_p(k,j-1,i)        &
    586                          + 9.0 * sk_p(k,j-2,i) ) * f1920
    587              a1(k,j) = ( -5.0 * sk_p(k,j+2,i) + 34.0 * sk_p(k,j+1,i)           &
    588                          - 34.0 * sk_p(k,j-1,i) + 5.0 * sk_p(k,j-2,i)          &
     585             a12(k,j) = 0.5_wp * ( sk_p(k,j+1,i) - sk_p(k,j-1,i) )
     586             a22(k,j) = 0.5_wp * ( sk_p(k,j+1,i) - 2.0_wp * sk_p(k,j,i)        &
     587                                                 + sk_p(k,j-1,i) )
     588             a0(k,j) = ( 9.0_wp * sk_p(k,j+2,i)    - 116.0_wp * sk_p(k,j+1,i)  &
     589                         + 2134.0_wp * sk_p(k,j,i) - 116.0_wp * sk_p(k,j-1,i)  &
     590                         + 9.0_wp * sk_p(k,j-2,i) ) * f1920
     591             a1(k,j) = ( -5.0_wp   * sk_p(k,j+2,i) + 34.0_wp * sk_p(k,j+1,i)   &
     592                         - 34.0_wp * sk_p(k,j-1,i) + 5.0_wp  * sk_p(k,j-2,i)   &
    589593                       ) * f48
    590              a2(k,j) = ( -3.0 * sk_p(k,j+2,i) + 36.0 * sk_p(k,j+1,i)           &
    591                          - 66.0 * sk_p(k,j,i) + 36.0 * sk_p(k,j-1,i)           &
    592                          - 3.0 * sk_p(k,j-2,i) ) * f48
     594             a2(k,j) = ( -3.0_wp * sk_p(k,j+2,i) + 36.0_wp * sk_p(k,j+1,i)     &
     595                         - 66.0_wp * sk_p(k,j,i) + 36.0_wp * sk_p(k,j-1,i)     &
     596                         - 3.0_wp * sk_p(k,j-2,i) ) * f48
    593597          ENDDO
    594598       ENDDO
     
    601605             cip  =  MAX( 0.0_wp, ( v(k,j+1,i) - v_gtrans ) * dt_3d * ddy )
    602606             cim  = -MIN( 0.0_wp, ( v(k,j+1,i) - v_gtrans ) * dt_3d * ddy )
    603              cipf = 1.0 - 2.0 * cip
    604              cimf = 1.0 - 2.0 * cim
    605              ip   =   a0(k,j)   * f2  * ( 1.0 - cipf )                         &
    606                     + a1(k,j)   * f8  * ( 1.0 - cipf*cipf )                    &
    607                     + a2(k,j)   * f24 * ( 1.0 - cipf*cipf*cipf )
    608              im   =   a0(k,j+1) * f2  * ( 1.0 - cimf )                         &
    609                     - a1(k,j+1) * f8  * ( 1.0 - cimf*cimf )                    &
    610                     + a2(k,j+1) * f24 * ( 1.0 - cimf*cimf*cimf )
     607             cipf = 1.0_wp - 2.0_wp * cip
     608             cimf = 1.0_wp - 2.0_wp * cim
     609             ip   =   a0(k,j)   * f2  * ( 1.0_wp - cipf )                      &
     610                    + a1(k,j)   * f8  * ( 1.0_wp - cipf*cipf )                 &
     611                    + a2(k,j)   * f24 * ( 1.0_wp - cipf*cipf*cipf )
     612             im   =   a0(k,j+1) * f2  * ( 1.0_wp - cimf )                      &
     613                    - a1(k,j+1) * f8  * ( 1.0_wp - cimf*cimf )                 &
     614                    + a2(k,j+1) * f24 * ( 1.0_wp - cimf*cimf*cimf )
    611615             ip   = MAX( ip, 0.0_wp )
    612616             im   = MAX( im, 0.0_wp )
    613              ippb(k,j) = ip * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15) )
    614              impb(k,j) = im * MIN( 1.0_wp, sk_p(k,j+1,i) / (ip+im+1E-15) )
     617             ippb(k,j) = ip * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15_wp) )
     618             impb(k,j) = im * MIN( 1.0_wp, sk_p(k,j+1,i) / (ip+im+1E-15_wp) )
    615619
    616620             cip  =  MAX( 0.0_wp, ( v(k,j,i) - v_gtrans ) * dt_3d * ddy )
    617621             cim  = -MIN( 0.0_wp, ( v(k,j,i) - v_gtrans ) * dt_3d * ddy )
    618              cipf = 1.0 - 2.0 * cip
    619              cimf = 1.0 - 2.0 * cim
    620              ip   =   a0(k,j-1) * f2  * ( 1.0 - cipf )                         &
    621                     + a1(k,j-1) * f8  * ( 1.0 - cipf*cipf )                    &
    622                     + a2(k,j-1) * f24 * ( 1.0 - cipf*cipf*cipf )
    623              im   =   a0(k,j)   * f2  * ( 1.0 - cimf )                         &
    624                     - a1(k,j)   * f8  * ( 1.0 - cimf*cimf )                    &
    625                     + a2(k,j)   * f24 * ( 1.0 - cimf*cimf*cimf )
     622             cipf = 1.0_wp - 2.0_wp * cip
     623             cimf = 1.0_wp - 2.0_wp * cim
     624             ip   =   a0(k,j-1) * f2  * ( 1.0_wp - cipf )                      &
     625                    + a1(k,j-1) * f8  * ( 1.0_wp - cipf*cipf )                 &
     626                    + a2(k,j-1) * f24 * ( 1.0_wp - cipf*cipf*cipf )
     627             im   =   a0(k,j)   * f2  * ( 1.0_wp - cimf )                      &
     628                    - a1(k,j)   * f8  * ( 1.0_wp - cimf*cimf )                 &
     629                    + a2(k,j)   * f24 * ( 1.0_wp - cimf*cimf*cimf )
    626630             ip   = MAX( ip, 0.0_wp )
    627631             im   = MAX( im, 0.0_wp )
    628              ipmb(k,j) = ip * MIN( 1.0_wp, sk_p(k,j-1,i) / (ip+im+1E-15) )
    629              immb(k,j) = im * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15) )
     632             ipmb(k,j) = ip * MIN( 1.0_wp, sk_p(k,j-1,i) / (ip+im+1E-15_wp) )
     633             immb(k,j) = im * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15_wp) )
    630634          ENDDO
    631635       ENDDO
     
    635639       DO  j = nys-2, nyn+2
    636640          DO  k = nzb+1, nzt
    637              m1z = ABS( sk_p(k,j+1,i) - 2.0 * sk_p(k,j,i) + sk_p(k,j-1,i) )
     641             m1z = ABS( sk_p(k,j+1,i) - 2.0_wp * sk_p(k,j,i) + sk_p(k,j-1,i) )
    638642             m1n = ABS( sk_p(k,j+1,i) - sk_p(k,j-1,i) )
    639              IF ( m1n /= 0.0  .AND.  m1n >= m1z )  THEN
     643             IF ( m1n /= 0.0_wp  .AND.  m1n >= m1z )  THEN
    640644                m1(k,j) = m1z / m1n
    641                 IF ( m1(k,j) /= 2.0  .AND.  m1n < fmax(2) )  m1(k,j) = 0.0
     645                IF ( m1(k,j) /= 2.0_wp  .AND.  m1n < fmax(2) )  m1(k,j) = 0.0_wp
    642646             ELSEIF ( m1n < m1z )  THEN
    643                 m1(k,j) = -1.0
     647                m1(k,j) = -1.0_wp
    644648             ELSE
    645                 m1(k,j) = 0.0
     649                m1(k,j) = 0.0_wp
    646650             ENDIF
    647651          ENDDO
     
    650654!
    651655!--    Compute switch sw
    652        sw = 0.0
     656       sw = 0.0_wp
    653657       DO  j = nys-1, nyn+1
    654658          DO  k = nzb+1, nzt
    655              m2 = 2.0 * ABS( a1(k,j) - a12(k,j) ) /                            &
     659             m2 = 2.0_wp * ABS( a1(k,j) - a12(k,j) ) /                            &
    656660                  MAX( ABS( a1(k,j) + a12(k,j) ), 1E-35_wp )
    657              IF ( ABS( a1(k,j) + a12(k,j) ) < fmax(2) )  m2 = 0.0
    658 
    659              m3 = 2.0 * ABS( a2(k,j) - a22(k,j) ) /                            &
     661             IF ( ABS( a1(k,j) + a12(k,j) ) < fmax(2) )  m2 = 0.0_wp
     662
     663             m3 = 2.0_wp * ABS( a2(k,j) - a22(k,j) ) /                            &
    660664                  MAX( ABS( a2(k,j) + a22(k,j) ), 1E-35_wp )
    661              IF ( ABS( a2(k,j) + a22(k,j) ) < fmax(1) )  m3 = 0.0
    662 
    663              t1 = 0.35
    664              t2 = 0.35
    665              IF ( m1(k,j) == -1.0 )  t2 = 0.12
     665             IF ( ABS( a2(k,j) + a22(k,j) ) < fmax(1) )  m3 = 0.0_wp
     666
     667             t1 = 0.35_wp
     668             t2 = 0.35_wp
     669             IF ( m1(k,j) == -1.0_wp )  t2 = 0.12_wp
    666670
    667671!--          *VOCL STMT,IF(10)
    668              IF ( m1(k,j-1) == 1.0 .OR. m1(k,j) == 1.0 .OR. m1(k,j+1) == 1.0   &
    669                   .OR.  m2 > t2  .OR.  m3 > t2  .OR.                           &
    670                   ( m1(k,j) > t1  .AND.  m1(k,j-1) /= -1.0  .AND.              &
    671                     m1(k,j) /= -1.0  .AND.  m1(k,j+1) /= -1.0 )                &
    672                 )  sw(k,j) = 1.0
     672             IF ( m1(k,j-1) == 1.0_wp .OR. m1(k,j) == 1.0_wp                   &
     673                  .OR. m1(k,j+1) == 1.0_wp .OR.  m2 > t2  .OR.  m3 > t2  .OR.  &
     674                  ( m1(k,j) > t1  .AND.  m1(k,j-1) /= -1.0_wp  .AND.           &
     675                    m1(k,j) /= -1.0_wp  .AND.  m1(k,j+1) /= -1.0_wp )          &
     676                )  sw(k,j) = 1.0_wp
    673677          ENDDO
    674678       ENDDO
     
    681685
    682686!--          *VOCL STMT,IF(10)
    683              IF ( sw(k,j) == 1.0 )  THEN
     687             IF ( sw(k,j) == 1.0_wp )  THEN
    684688                snenn = sk_p(k,j+1,i) - sk_p(k,j-1,i)
    685                 IF ( ABS( snenn ) < 1E-9 )  snenn = 1E-9
     689                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    686690                sterm = ( sk_p(k,j,i) - sk_p(k,j-1,i) ) / snenn
    687691                sterm = MIN( sterm, 0.9999_wp )
     
    694698                ippe(k,j) = sk_p(k,j-1,i) * cip + snenn * (                    &
    695699                            aex(ix) * cip + bex(ix) / dex(ix) * (              &
    696                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cip ) ) &
     700                            eex(ix) -                                          &
     701                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cip ) )  &
    697702                                                                )              &
    698703                                                          )
     
    701706
    702707                snenn = sk_p(k,j-1,i) - sk_p(k,j+1,i)
    703                 IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9
     708                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    704709                sterm = ( sk_p(k,j,i) - sk_p(k,j+1,i) ) / snenn
    705710                sterm = MIN( sterm, 0.9999_wp )
     
    712717                imme(k,j) = sk_p(k,j+1,i) * cim + snenn * (                    &
    713718                            aex(ix) * cim + bex(ix) / dex(ix) * (              &
    714                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cim ) ) &
     719                            eex(ix) -                                          &
     720                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cim ) )  &
    715721                                                                )              &
    716722                                                          )
     
    720726
    721727!--          *VOCL STMT,IF(10)
    722              IF ( sw(k,j+1) == 1.0 )  THEN
     728             IF ( sw(k,j+1) == 1.0_wp )  THEN
    723729                snenn = sk_p(k,j,i) - sk_p(k,j+2,i)
    724                 IF ( ABS( snenn ) .LT. 1E-9 )  snenn = 1E-9
     730                IF ( ABS( snenn ) .LT. 1E-9_wp )  snenn = 1E-9_wp
    725731                sterm = ( sk_p(k,j+1,i) - sk_p(k,j+2,i) ) / snenn
    726732                sterm = MIN( sterm, 0.9999_wp )
     
    733739                impe(k,j) = sk_p(k,j+2,i) * cim + snenn * (                    &
    734740                            aex(ix) * cim + bex(ix) / dex(ix) * (              &
    735                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cim ) ) &
     741                            eex(ix) -                                          &
     742                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cim ) )  &
    736743                                                                )              &
    737744                                                          )
     
    741748
    742749!--          *VOCL STMT,IF(10)
    743              IF ( sw(k,j-1) == 1.0 )  THEN
     750             IF ( sw(k,j-1) == 1.0_wp )  THEN
    744751                snenn = sk_p(k,j,i) - sk_p(k,j-2,i)
    745                 IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9
     752                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    746753                sterm = ( sk_p(k,j-1,i) - sk_p(k,j-2,i) ) / snenn
    747754                sterm = MIN( sterm, 0.9999_wp )
     
    754761                ipme(k,j) = sk_p(k,j-2,i) * cip + snenn * (                    &
    755762                            aex(ix) * cip + bex(ix) / dex(ix) * (              &
    756                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cip ) ) &
     763                            eex(ix) -                                          &
     764                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cip ) )  &
    757765                                                                )              &
    758766                                                          )
     
    769777       DO  j = nys, nyn
    770778          DO  k = nzb+1, nzt
    771              fplus  = ( 1.0 - sw(k,j)   ) * ippb(k,j) + sw(k,j)   * ippe(k,j) &
    772                     - ( 1.0 - sw(k,j+1) ) * impb(k,j) - sw(k,j+1) * impe(k,j)
    773              fminus = ( 1.0 - sw(k,j-1) ) * ipmb(k,j) + sw(k,j-1) * ipme(k,j) &
    774                     - ( 1.0 - sw(k,j)   ) * immb(k,j) - sw(k,j)   * imme(k,j)
     779             fplus  = ( 1.0_wp - sw(k,j)   ) * ippb(k,j) + sw(k,j)   * ippe(k,j) &
     780                    - ( 1.0_wp - sw(k,j+1) ) * impb(k,j) - sw(k,j+1) * impe(k,j)
     781             fminus = ( 1.0_wp - sw(k,j-1) ) * ipmb(k,j) + sw(k,j-1) * ipme(k,j) &
     782                    - ( 1.0_wp - sw(k,j)   ) * immb(k,j) - sw(k,j)   * imme(k,j)
    775783             tendcy = fplus - fminus
    776784!
     
    781789!--          Density correction because of possible remaining divergences
    782790             d_new = d(k,j,i) - ( v(k,j+1,i) - v(k,j,i) ) * dt_3d * ddy
    783              sk_p(k,j,i) = ( ( 1.0 + d(k,j,i) ) * sk_p(k,j,i) - tendcy ) /    &
    784                            ( 1.0 + d_new )
     791             sk_p(k,j,i) = ( ( 1.0_wp + d(k,j,i) ) * sk_p(k,j,i) - tendcy ) /  &
     792                           ( 1.0_wp + d_new )
    785793             d(k,j,i)  = d_new
    786794          ENDDO
     
    800808!-- Initialise for the computation of heat fluxes (see below; required in
    801809!-- UP flow_statistics)
    802     IF ( sk_char == 'pt' )  sums_wsts_bc_l = 0.0
     810    IF ( sk_char == 'pt' )  sums_wsts_bc_l = 0.0_wp
    803811
    804812!
     
    939947!
    940948!-- Determine the maxima of the first and second derivative in z-direction
    941     fmax_l = 0.0
     949    fmax_l = 0.0_wp
    942950    DO  i = nxl, nxr
    943951       DO  j = nys, nyn
    944952          DO  k = nzb, nzt+1
    945              numera = ABS( sk_p(k+1,j,i) - 2.0 * sk_p(k,j,i) + sk_p(k-1,j,i) )
     953             numera = ABS( sk_p(k+1,j,i) - 2.0_wp * sk_p(k,j,i) + sk_p(k-1,j,i) )
    946954             denomi  = ABS( sk_p(k+1,j,i+1) - sk_p(k-1,j,i) )
    947955             fmax_l(1) = MAX( fmax_l(1) , numera )
     
    957965#endif
    958966
    959     fmax = 0.04 * fmax
     967    fmax = 0.04_wp * fmax
    960968
    961969!
     
    970978              sw(nzb:nzt+1,nys:nyn)                                            &
    971979            )
    972     imme = 0.0; impe = 0.0; ipme = 0.0; ippe = 0.0
     980    imme = 0.0_wp; impe = 0.0_wp; ipme = 0.0_wp; ippe = 0.0_wp
    973981
    974982!
     
    980988       DO  j = nys, nyn
    981989          DO  k = nzb, nzt+1
    982              a12(k,j) = 0.5 * ( sk_p(k+1,j,i) - sk_p(k-1,j,i) )
    983              a22(k,j) = 0.5 * ( sk_p(k+1,j,i) - 2.0 * sk_p(k,j,i)              &
    984                                               + sk_p(k-1,j,i) )
    985              a0(k,j) = ( 9.0 * sk_p(k+2,j,i) - 116.0 * sk_p(k+1,j,i)           &
    986                          + 2134.0 * sk_p(k,j,i) - 116.0 * sk_p(k-1,j,i)        &
    987                          + 9.0 * sk_p(k-2,j,i) ) * f1920
    988              a1(k,j) = ( -5.0 * sk_p(k+2,j,i) + 34.0 * sk_p(k+1,j,i)           &
    989                          - 34.0 * sk_p(k-1,j,i) + 5.0 * sk_p(k-2,j,i)          &
     990             a12(k,j) = 0.5_wp * ( sk_p(k+1,j,i) - sk_p(k-1,j,i) )
     991             a22(k,j) = 0.5_wp * ( sk_p(k+1,j,i) - 2.0_wp * sk_p(k,j,i)        &
     992                                                 + sk_p(k-1,j,i) )
     993             a0(k,j) = ( 9.0_wp * sk_p(k+2,j,i)    - 116.0_wp * sk_p(k+1,j,i)  &
     994                         + 2134.0_wp * sk_p(k,j,i) - 116.0_wp * sk_p(k-1,j,i)  &
     995                         + 9.0_wp * sk_p(k-2,j,i) ) * f1920
     996             a1(k,j) = ( -5.0_wp   * sk_p(k+2,j,i) + 34.0_wp * sk_p(k+1,j,i)   &
     997                         - 34.0_wp * sk_p(k-1,j,i) + 5.0_wp  * sk_p(k-2,j,i)   &
    990998                       ) * f48
    991              a2(k,j) = ( -3.0 * sk_p(k+2,j,i) + 36.0 * sk_p(k+1,j,i)           &
    992                          - 66.0 * sk_p(k,j,i) + 36.0 * sk_p(k-1,j,i)           &
    993                          - 3.0 * sk_p(k-2,j,i) ) * f48
     999             a2(k,j) = ( -3.0_wp * sk_p(k+2,j,i) + 36.0_wp * sk_p(k+1,j,i)     &
     1000                         - 66.0_wp * sk_p(k,j,i) + 36.0_wp * sk_p(k-1,j,i)     &
     1001                         - 3.0_wp * sk_p(k-2,j,i) ) * f48
    9941002          ENDDO
    9951003       ENDDO
     
    10021010             cip  =  MAX( 0.0_wp, w(k,j,i) * dt_3d * ddzw(k) )
    10031011             cim  = -MIN( 0.0_wp, w(k,j,i) * dt_3d * ddzw(k) )
    1004              cipf = 1.0 - 2.0 * cip
    1005              cimf = 1.0 - 2.0 * cim
    1006              ip   =   a0(k,j)   * f2  * ( 1.0 - cipf )                         &
    1007                     + a1(k,j)   * f8  * ( 1.0 - cipf*cipf )                    &
    1008                     + a2(k,j)   * f24 * ( 1.0 - cipf*cipf*cipf )
    1009              im   =   a0(k+1,j) * f2  * ( 1.0 - cimf )                         &
    1010                     - a1(k+1,j) * f8  * ( 1.0 - cimf*cimf )                    &
    1011                     + a2(k+1,j) * f24 * ( 1.0 - cimf*cimf*cimf )
     1012             cipf = 1.0_wp - 2.0_wp * cip
     1013             cimf = 1.0_wp - 2.0_wp * cim
     1014             ip   =   a0(k,j)   * f2  * ( 1.0_wp - cipf )                      &
     1015                    + a1(k,j)   * f8  * ( 1.0_wp - cipf*cipf )                 &
     1016                    + a2(k,j)   * f24 * ( 1.0_wp - cipf*cipf*cipf )
     1017             im   =   a0(k+1,j) * f2  * ( 1.0_wp - cimf )                      &
     1018                    - a1(k+1,j) * f8  * ( 1.0_wp - cimf*cimf )                 &
     1019                    + a2(k+1,j) * f24 * ( 1.0_wp - cimf*cimf*cimf )
    10121020             ip   = MAX( ip, 0.0_wp )
    10131021             im   = MAX( im, 0.0_wp )
    1014              ippb(k,j) = ip * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15) )
    1015              impb(k,j) = im * MIN( 1.0_wp, sk_p(k+1,j,i) / (ip+im+1E-15) )
     1022             ippb(k,j) = ip * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15_wp) )
     1023             impb(k,j) = im * MIN( 1.0_wp, sk_p(k+1,j,i) / (ip+im+1E-15_wp) )
    10161024
    10171025             cip  =  MAX( 0.0_wp, w(k-1,j,i) * dt_3d * ddzw(k) )
    10181026             cim  = -MIN( 0.0_wp, w(k-1,j,i) * dt_3d * ddzw(k) )
    1019              cipf = 1.0 - 2.0 * cip
    1020              cimf = 1.0 - 2.0 * cim
    1021              ip   =   a0(k-1,j) * f2  * ( 1.0 - cipf )                         &
    1022                     + a1(k-1,j) * f8  * ( 1.0 - cipf*cipf )                    &
    1023                     + a2(k-1,j) * f24 * ( 1.0 - cipf*cipf*cipf )
    1024              im   =   a0(k,j)   * f2  * ( 1.0 - cimf )                         &
    1025                     - a1(k,j)   * f8  * ( 1.0 - cimf*cimf )                    &
    1026                     + a2(k,j)   * f24 * ( 1.0 - cimf*cimf*cimf )
     1027             cipf = 1.0_wp - 2.0_wp * cip
     1028             cimf = 1.0_wp - 2.0_wp * cim
     1029             ip   =   a0(k-1,j) * f2  * ( 1.0_wp - cipf )                      &
     1030                    + a1(k-1,j) * f8  * ( 1.0_wp - cipf*cipf )                 &
     1031                    + a2(k-1,j) * f24 * ( 1.0_wp - cipf*cipf*cipf )
     1032             im   =   a0(k,j)   * f2  * ( 1.0_wp - cimf )                      &
     1033                    - a1(k,j)   * f8  * ( 1.0_wp - cimf*cimf )                 &
     1034                    + a2(k,j)   * f24 * ( 1.0_wp - cimf*cimf*cimf )
    10271035             ip   = MAX( ip, 0.0_wp )
    10281036             im   = MAX( im, 0.0_wp )
    1029              ipmb(k,j) = ip * MIN( 1.0_wp, sk_p(k-1,j,i) / (ip+im+1E-15) )
    1030              immb(k,j) = im * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15) )
     1037             ipmb(k,j) = ip * MIN( 1.0_wp, sk_p(k-1,j,i) / (ip+im+1E-15_wp) )
     1038             immb(k,j) = im * MIN( 1.0_wp, sk_p(k,j,i)   / (ip+im+1E-15_wp) )
    10311039          ENDDO
    10321040       ENDDO
     
    10361044       DO  j = nys, nyn
    10371045          DO  k = nzb-1, nzt+2
    1038              m1z = ABS( sk_p(k+1,j,i) - 2.0 * sk_p(k,j,i) + sk_p(k-1,j,i) )
     1046             m1z = ABS( sk_p(k+1,j,i) - 2.0_wp * sk_p(k,j,i) + sk_p(k-1,j,i) )
    10391047             m1n = ABS( sk_p(k+1,j,i) - sk_p(k-1,j,i) )
    1040              IF ( m1n /= 0.0  .AND.  m1n >= m1z )  THEN
     1048             IF ( m1n /= 0.0_wp  .AND.  m1n >= m1z )  THEN
    10411049                m1(k,j) = m1z / m1n
    1042                 IF ( m1(k,j) /= 2.0  .AND.  m1n < fmax(2) )  m1(k,j) = 0.0
     1050                IF ( m1(k,j) /= 2.0_wp  .AND.  m1n < fmax(2) )  m1(k,j) = 0.0_wp
    10431051             ELSEIF ( m1n < m1z )  THEN
    1044                 m1(k,j) = -1.0
     1052                m1(k,j) = -1.0_wp
    10451053             ELSE
    1046                 m1(k,j) = 0.0
     1054                m1(k,j) = 0.0_wp
    10471055             ENDIF
    10481056          ENDDO
     
    10511059!
    10521060!--    Compute switch sw
    1053        sw = 0.0
     1061       sw = 0.0_wp
    10541062       DO  j = nys, nyn
    10551063          DO  k = nzb, nzt+1
    1056              m2 = 2.0 * ABS( a1(k,j) - a12(k,j) ) /                            &
     1064             m2 = 2.0_wp * ABS( a1(k,j) - a12(k,j) ) /                         &
    10571065                  MAX( ABS( a1(k,j) + a12(k,j) ), 1E-35_wp )
    1058              IF ( ABS( a1(k,j) + a12(k,j) ) < fmax(2) )  m2 = 0.0
    1059 
    1060              m3 = 2.0 * ABS( a2(k,j) - a22(k,j) ) /                            &
     1066             IF ( ABS( a1(k,j) + a12(k,j) ) < fmax(2) )  m2 = 0.0_wp
     1067
     1068             m3 = 2.0_wp * ABS( a2(k,j) - a22(k,j) ) /                         &
    10611069                  MAX( ABS( a2(k,j) + a22(k,j) ), 1E-35_wp )
    1062              IF ( ABS( a2(k,j) + a22(k,j) ) < fmax(1) )  m3 = 0.0
    1063 
    1064              t1 = 0.35
    1065              t2 = 0.35
    1066              IF ( m1(k,j) == -1.0 )  t2 = 0.12
     1070             IF ( ABS( a2(k,j) + a22(k,j) ) < fmax(1) )  m3 = 0.0_wp
     1071
     1072             t1 = 0.35_wp
     1073             t2 = 0.35_wp
     1074             IF ( m1(k,j) == -1.0_wp )  t2 = 0.12_wp
    10671075
    10681076!--          *VOCL STMT,IF(10)
    1069              IF ( m1(k-1,j) == 1.0 .OR. m1(k,j) == 1.0 .OR. m1(k+1,j) == 1.0   &
    1070                   .OR.  m2 > t2  .OR.  m3 > t2  .OR.                           &
    1071                   ( m1(k,j) > t1  .AND.  m1(k-1,j) /= -1.0  .AND.              &
    1072                     m1(k,j) /= -1.0  .AND.  m1(k+1,j) /= -1.0 )                &
    1073                 )  sw(k,j) = 1.0
     1077             IF ( m1(k-1,j) == 1.0_wp .OR. m1(k,j) == 1.0_wp                   &
     1078                  .OR. m1(k+1,j) == 1.0_wp .OR.  m2 > t2  .OR.  m3 > t2  .OR.  &
     1079                  ( m1(k,j) > t1  .AND.  m1(k-1,j) /= -1.0_wp  .AND.           &
     1080                    m1(k,j) /= -1.0_wp  .AND.  m1(k+1,j) /= -1.0_wp )          &
     1081                )  sw(k,j) = 1.0_wp
    10741082          ENDDO
    10751083       ENDDO
     
    10821090
    10831091!--          *VOCL STMT,IF(10)
    1084              IF ( sw(k,j) == 1.0 )  THEN
     1092             IF ( sw(k,j) == 1.0_wp )  THEN
    10851093                snenn = sk_p(k+1,j,i) - sk_p(k-1,j,i)
    1086                 IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9
     1094                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    10871095                sterm = ( sk_p(k,j,i) - sk_p(k-1,j,i) ) / snenn
    10881096                sterm = MIN( sterm, 0.9999_wp )
     
    10951103                ippe(k,j) = sk_p(k-1,j,i) * cip + snenn * (                    &
    10961104                            aex(ix) * cip + bex(ix) / dex(ix) * (              &
    1097                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cip ) ) &
     1105                            eex(ix) -                                          &
     1106                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cip ) )  &
    10981107                                                                )              &
    10991108                                                          )
    1100                 IF ( sterm == 0.0001 )  ippe(k,j) = sk_p(k,j,i) * cip
    1101                 IF ( sterm == 0.9999 )  ippe(k,j) = sk_p(k,j,i) * cip
     1109                IF ( sterm == 0.0001_wp )  ippe(k,j) = sk_p(k,j,i) * cip
     1110                IF ( sterm == 0.9999_wp )  ippe(k,j) = sk_p(k,j,i) * cip
    11021111
    11031112                snenn = sk_p(k-1,j,i) - sk_p(k+1,j,i)
    1104                 IF ( ABS( snenn ) < 1E-9 )  snenn = 1E-9
     1113                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    11051114                sterm = ( sk_p(k,j,i) - sk_p(k+1,j,i) ) / snenn
    11061115                sterm = MIN( sterm, 0.9999_wp )
     
    11131122                imme(k,j) = sk_p(k+1,j,i) * cim + snenn * (                    &
    11141123                            aex(ix) * cim + bex(ix) / dex(ix) * (              &
    1115                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cim ) ) &
     1124                            eex(ix) -                                          &
     1125                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cim ) ) &
    11161126                                                                )              &
    11171127                                                          )
     
    11211131
    11221132!--          *VOCL STMT,IF(10)
    1123              IF ( sw(k+1,j) == 1.0 )  THEN
     1133             IF ( sw(k+1,j) == 1.0_wp )  THEN
    11241134                snenn = sk_p(k,j,i) - sk_p(k+2,j,i)
    1125                 IF ( ABS( snenn ) .LT. 1E-9 )  snenn = 1E-9
     1135                IF ( ABS( snenn ) .LT. 1E-9_wp )  snenn = 1E-9_wp
    11261136                sterm = ( sk_p(k+1,j,i) - sk_p(k+2,j,i) ) / snenn
    11271137                sterm = MIN( sterm, 0.9999_wp )
     
    11341144                impe(k,j) = sk_p(k+2,j,i) * cim + snenn * (                    &
    11351145                            aex(ix) * cim + bex(ix) / dex(ix) * (              &
    1136                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cim ) ) &
     1146                            eex(ix) -                                          &
     1147                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cim ) )  &
    11371148                                                                )              &
    11381149                                                          )
     
    11421153
    11431154!--          *VOCL STMT,IF(10)
    1144              IF ( sw(k-1,j) == 1.0 )  THEN
     1155             IF ( sw(k-1,j) == 1.0_wp )  THEN
    11451156                snenn = sk_p(k,j,i) - sk_p(k-2,j,i)
    1146                 IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9
     1157                IF ( ABS( snenn ) < 1E-9_wp )  snenn = 1E-9_wp
    11471158                sterm = ( sk_p(k-1,j,i) - sk_p(k-2,j,i) ) / snenn
    11481159                sterm = MIN( sterm, 0.9999_wp )
     
    11551166                ipme(k,j) = sk_p(k-2,j,i) * cip + snenn * (                    &
    11561167                            aex(ix) * cip + bex(ix) / dex(ix) * (              &
    1157                             eex(ix) - EXP( dex(ix)*0.5 * ( 1.0 - 2.0 * cip ) ) &
     1168                            eex(ix) -                                          &
     1169                            EXP( dex(ix)*0.5_wp * ( 1.0_wp - 2.0_wp * cip ) )  &
    11581170                                                                )              &
    11591171                                                          )
     
    11701182       DO  j = nys, nyn
    11711183          DO  k = nzb+1, nzt
    1172              fplus  = ( 1.0 - sw(k,j)   ) * ippb(k,j) + sw(k,j)   * ippe(k,j) &
    1173                     - ( 1.0 - sw(k+1,j) ) * impb(k,j) - sw(k+1,j) * impe(k,j)
    1174              fminus = ( 1.0 - sw(k-1,j) ) * ipmb(k,j) + sw(k-1,j) * ipme(k,j) &
    1175                     - ( 1.0 - sw(k,j)   ) * immb(k,j) - sw(k,j)   * imme(k,j)
     1184             fplus  = ( 1.0_wp - sw(k,j)   ) * ippb(k,j) + sw(k,j)   * ippe(k,j) &
     1185                    - ( 1.0_wp - sw(k+1,j) ) * impb(k,j) - sw(k+1,j) * impe(k,j)
     1186             fminus = ( 1.0_wp - sw(k-1,j) ) * ipmb(k,j) + sw(k-1,j) * ipme(k,j) &
     1187                    - ( 1.0_wp - sw(k,j)   ) * immb(k,j) - sw(k,j)   * imme(k,j)
    11761188             tendcy = fplus - fminus
    11771189!
     
    11821194!--          Density correction because of possible remaining divergences
    11831195             d_new = d(k,j,i) - ( w(k,j,i) - w(k-1,j,i) ) * dt_3d * ddzw(k)
    1184              sk_p(k,j,i) = ( ( 1.0 + d(k,j,i) ) * sk_p(k,j,i) - tendcy ) /    &
    1185                            ( 1.0 + d_new )
     1196             sk_p(k,j,i) = ( ( 1.0_wp + d(k,j,i) ) * sk_p(k,j,i) - tendcy ) /  &
     1197                           ( 1.0_wp + d_new )
    11861198!
    11871199!--          Store heat flux for subsequent statistics output.
Note: See TracChangeset for help on using the changeset viewer.