Ignore:
Timestamp:
Mar 25, 2014 7:45:13 PM (10 years ago)
Author:
kanani
Message:

REAL constants defined as wp-kind

File:
1 edited

Legend:

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

    r1321 r1340  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! REAL constants defined as wp-kind
    2323!
    2424! Former revisions:
     
    120120
    121121                tend(k,j,i) = tend(k,j,i)                                      &
    122                                           + 0.5 * (                            &
     122                                          + 0.5_wp * (                         &
    123123                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
    124124                      - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
    125                                                   ) * ddx2                     &
    126                                           + 0.5 * (                            &
     125                                                     ) * ddx2                  &
     126                                          + 0.5_wp * (                         &
    127127                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
    128128                      - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    129                                                   ) * ddy2
     129                                                     ) * ddy2
    130130             ENDDO
    131131
    132132!
    133133!--          Apply prescribed horizontal wall heatflux where necessary
    134              IF ( ( wall_w_x(j,i) .NE. 0.0 ) .OR. ( wall_w_y(j,i) .NE. 0.0 ) ) &
     134             IF ( ( wall_w_x(j,i) .NE. 0.0_wp ) .OR. ( wall_w_y(j,i) .NE. 0.0_wp ) ) &
    135135             THEN
    136136                DO  k = nzb_s_inner(j,i)+1, nzb_s_outer(j,i)
    137137
    138138                   tend(k,j,i) = tend(k,j,i)                                   &
    139                                                 + ( fwxp(j,i) * 0.5 *          &
    140                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
    141                         + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                 &
    142                                                    -fwxm(j,i) * 0.5 *          &
     139                                                + ( fwxp(j,i) * 0.5_wp *       &
     140                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     141                        + ( 1.0_wp - fwxp(j,i) ) * wall_s_flux(1)              &
     142                                                   -fwxm(j,i) * 0.5_wp *       &
    143143                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
    144                         + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                 &
     144                        + ( 1.0_wp - fwxm(j,i) ) * wall_s_flux(2)              &
    145145                                                  ) * ddx2                     &
    146                                                 + ( fwyp(j,i) * 0.5 *          &
    147                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
    148                         + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                 &
    149                                                    -fwym(j,i) * 0.5 *          &
     146                                                + ( fwyp(j,i) * 0.5_wp *       &
     147                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     148                        + ( 1.0_wp - fwyp(j,i) ) * wall_s_flux(3)              &
     149                                                   -fwym(j,i) * 0.5_wp *       &
    150150                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    151                         + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                 &
     151                        + ( 1.0_wp - fwym(j,i) ) * wall_s_flux(4)              &
    152152                                                  ) * ddy2
    153153                ENDDO
     
    161161
    162162                tend(k,j,i) = tend(k,j,i)                                      &
    163                                        + 0.5 * (                               &
     163                                       + 0.5_wp * (                            &
    164164            ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1)  &
    165165          - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)    &
    166                                                ) * ddzw(k)
     166                                                  ) * ddzw(k)
    167167             ENDDO
    168168
     
    175175
    176176                tend(k,j,i) = tend(k,j,i)                                      &
    177                                        + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )     &
    178                                                * ( s(k+1,j,i)-s(k,j,i) )       &
    179                                                * ddzu(k+1)                     &
     177                                       + ( 0.5_wp * ( kh(k,j,i)+kh(k+1,j,i) )  &
     178                                                  * ( s(k+1,j,i)-s(k,j,i) )    &
     179                                                  * ddzu(k+1)                  &
    180180                                           + s_flux_b(j,i)                     &
    181181                                         ) * ddzw(k)
     
    192192                tend(k,j,i) = tend(k,j,i)                                      &
    193193                                       + ( - s_flux_t(j,i)                     &
    194                                            - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) )   &
    195                                                  * ( s(k,j,i)-s(k-1,j,i) )     &
    196                                                  * ddzu(k)                     &
     194                                           - 0.5_wp * ( kh(k-1,j,i)+kh(k,j,i) )&
     195                                                    * ( s(k,j,i)-s(k-1,j,i) )  &
     196                                                    * ddzu(k)                  &
    197197                                         ) * ddzw(k)
    198198
     
    251251
    252252                   tend(k,j,i) = tend(k,j,i)                                   &
    253                                           + 0.5 * (                            &
     253                                          + 0.5_wp * (                         &
    254254                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
    255255                      - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
    256                                                   ) * ddx2                     &
    257                                           + 0.5 * (                            &
     256                                                     ) * ddx2                  &
     257                                          + 0.5_wp * (                         &
    258258                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
    259259                      - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    260                                                   ) * ddy2
     260                                                     ) * ddy2
    261261                ENDIF
    262262             ENDDO
     
    266266             DO  k = 1, nzt
    267267                IF ( k > nzb_s_inner(j,i)  .AND.  k <= nzb_s_outer(j,i)  .AND. &
    268                      ( wall_w_x(j,i) /= 0.0  .OR.  wall_w_y(j,i) /= 0.0 ) )    &
     268                     ( wall_w_x(j,i) /= 0.0_wp  .OR.  wall_w_y(j,i) /= 0.0_wp ) )    &
    269269                THEN
    270270                   tend(k,j,i) = tend(k,j,i)                                   &
    271                                                 + ( fwxp(j,i) * 0.5 *          &
    272                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
    273                         + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                 &
    274                                                    -fwxm(j,i) * 0.5 *          &
     271                                                + ( fwxp(j,i) * 0.5_wp *       &
     272                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     273                        + ( 1.0_wp - fwxp(j,i) ) * wall_s_flux(1)              &
     274                                                   -fwxm(j,i) * 0.5_wp *       &
    275275                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
    276                         + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                 &
     276                        + ( 1.0_wp - fwxm(j,i) ) * wall_s_flux(2)              &
    277277                                                  ) * ddx2                     &
    278                                                 + ( fwyp(j,i) * 0.5 *          &
    279                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
    280                         + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                 &
    281                                                    -fwym(j,i) * 0.5 *          &
     278                                                + ( fwyp(j,i) * 0.5_wp *       &
     279                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     280                        + ( 1.0_wp - fwyp(j,i) ) * wall_s_flux(3)              &
     281                                                   -fwym(j,i) * 0.5_wp *       &
    282282                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    283                         + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                 &
     283                        + ( 1.0_wp - fwym(j,i) ) * wall_s_flux(4)              &
    284284                                                  ) * ddy2
    285285                ENDIF
     
    293293                IF ( k >= nzb_diff_s_inner(j,i) )  THEN
    294294                   tend(k,j,i) = tend(k,j,i)                                   &
    295                                        + 0.5 * (                               &
     295                                       + 0.5_wp * (                            &
    296296            ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1)  &
    297297          - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)    &
    298                                                ) * ddzw(k)
     298                                                  ) * ddzw(k)
    299299                ENDIF
    300300             ENDDO
     
    306306                IF ( use_surface_fluxes  .AND.  k == nzb_s_inner(j,i)+1 )  THEN
    307307                   tend(k,j,i) = tend(k,j,i)                                   &
    308                                           + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )  &
    309                                                   * ( s(k+1,j,i)-s(k,j,i) )    &
    310                                                   * ddzu(k+1)                  &
     308                                          + ( 0.5_wp * ( kh(k,j,i)+kh(k+1,j,i) )&
     309                                                     * ( s(k+1,j,i)-s(k,j,i) ) &
     310                                                     * ddzu(k+1)               &
    311311                                              + s_flux_b(j,i)                  &
    312312                                            ) * ddzw(k)
     
    319319                   tend(k,j,i) = tend(k,j,i)                                   &
    320320                                          + ( - s_flux_t(j,i)                  &
    321                                               - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) )&
    322                                                     * ( s(k,j,i)-s(k-1,j,i) )  &
    323                                                     * ddzu(k)                  &
     321                                              - 0.5_wp * ( kh(k-1,j,i)+kh(k,j,i) )&
     322                                                       * ( s(k,j,i)-s(k-1,j,i) )  &
     323                                                       * ddzu(k)                  &
    324324                                            ) * ddzw(k)
    325325                ENDIF
     
    372372
    373373          tend(k,j,i) = tend(k,j,i)                                            &
    374                                           + 0.5 * (                            &
     374                                          + 0.5_wp * (                         &
    375375                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
    376376                      - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
    377                                                   ) * ddx2                     &
    378                                           + 0.5 * (                            &
     377                                                     ) * ddx2                  &
     378                                          + 0.5_wp * (                         &
    379379                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
    380380                      - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    381                                                   ) * ddy2
     381                                                     ) * ddy2
    382382       ENDDO
    383383
    384384!
    385385!--    Apply prescribed horizontal wall heatflux where necessary
    386        IF ( ( wall_w_x(j,i) .NE. 0.0 ) .OR. ( wall_w_y(j,i) .NE. 0.0 ) )       &
     386       IF ( ( wall_w_x(j,i) .NE. 0.0_wp ) .OR. ( wall_w_y(j,i) .NE. 0.0_wp ) )       &
    387387       THEN
    388388          DO  k = nzb_s_inner(j,i)+1, nzb_s_outer(j,i)
    389389
    390390             tend(k,j,i) = tend(k,j,i)                                         &
    391                                                 + ( fwxp(j,i) * 0.5 *          &
    392                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
    393                         + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                 &
    394                                                    -fwxm(j,i) * 0.5 *          &
     391                                                + ( fwxp(j,i) * 0.5_wp *       &
     392                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     393                        + ( 1.0_wp - fwxp(j,i) ) * wall_s_flux(1)              &
     394                                                   -fwxm(j,i) * 0.5_wp *       &
    395395                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
    396                         + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                 &
     396                        + ( 1.0_wp - fwxm(j,i) ) * wall_s_flux(2)              &
    397397                                                  ) * ddx2                     &
    398                                                 + ( fwyp(j,i) * 0.5 *          &
    399                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
    400                         + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                 &
    401                                                    -fwym(j,i) * 0.5 *          &
     398                                                + ( fwyp(j,i) * 0.5_wp *       &
     399                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     400                        + ( 1.0_wp - fwyp(j,i) ) * wall_s_flux(3)              &
     401                                                   -fwym(j,i) * 0.5_wp *       &
    402402                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    403                         + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                 &
     403                        + ( 1.0_wp - fwym(j,i) ) * wall_s_flux(4)              &
    404404                                                  ) * ddy2
    405405          ENDDO
     
    413413
    414414          tend(k,j,i) = tend(k,j,i)                                            &
    415                                        + 0.5 * (                               &
     415                                       + 0.5_wp * (                            &
    416416            ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1)  &
    417417          - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)    &
    418                                                ) * ddzw(k)
     418                                                  ) * ddzw(k)
    419419       ENDDO
    420420
     
    425425          k = nzb_s_inner(j,i)+1
    426426
    427           tend(k,j,i) = tend(k,j,i) + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )        &
    428                                             * ( s(k+1,j,i)-s(k,j,i) )          &
    429                                             * ddzu(k+1)                        &
     427          tend(k,j,i) = tend(k,j,i) + ( 0.5_wp * ( kh(k,j,i)+kh(k+1,j,i) )     &
     428                                               * ( s(k+1,j,i)-s(k,j,i) )       &
     429                                               * ddzu(k+1)                     &
    430430                                        + s_flux_b(j,i)                        &
    431431                                      ) * ddzw(k)
     
    440440
    441441          tend(k,j,i) = tend(k,j,i) + ( - s_flux_t(j,i)                        &
    442                                       - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) )        &
    443                                             * ( s(k,j,i)-s(k-1,j,i) )          &
    444                                             * ddzu(k)                          &
     442                                      - 0.5_wp * ( kh(k-1,j,i)+kh(k,j,i) )     &
     443                                               * ( s(k,j,i)-s(k-1,j,i) )       &
     444                                               * ddzu(k)                       &
    445445                                      ) * ddzw(k)
    446446
Note: See TracChangeset for help on using the changeset viewer.