Ignore:
Timestamp:
Mar 20, 2014 8:40:49 AM (11 years ago)
Author:
raasch
Message:

ONLY-attribute added to USE-statements,
kind-parameters added to all INTEGER and REAL declaration statements,
kinds are defined in new module kinds,
old module precision_kind is removed,
revision history before 2012 removed,
comment fields (!:) to be used for variable explanations added to all variable declaration statements

File:
1 edited

Legend:

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

    r1310 r1320  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! ONLY-attribute added to USE-statements,
     23! kind-parameters added to all INTEGER and REAL declaration statements,
     24! kinds are defined in new module kinds,
     25! old module precision_kind is removed,
     26! revision history before 2012 removed,
     27! comment fields (!:) to be used for variable explanations added to
     28! all variable declaration statements
    2329!
    2430! Former revisions:
     
    4753! 1001 2012-09-13 14:08:46Z raasch
    4854! some arrays comunicated by module instead of parameter list
    49 !
    50 ! 667 2010-12-23 12:06:00Z suehring/gryschka
    51 ! nxl-1, nxr+1, nys-1, nyn+1 replaced by nxlg, nxrg, nysg, nyng
    52 !
    53 ! 183 2008-08-04 15:39:12Z letzel
    54 ! bugfix: calculation of fluxes at vertical surfaces
    55 !
    56 ! 129 2007-10-30 12:12:24Z letzel
    57 ! replace wall_heatflux by wall_s_flux that is now included in the parameter
    58 ! list, bugfix for assignment of fluxes at walls
    59 !
    60 ! 20 2007-02-26 00:12:32Z raasch
    61 ! Bugfix: ddzw dimensioned 1:nzt"+1"
    62 ! Calculation extended for gridpoint nzt, fluxes can be given at top,
    63 ! +s_flux_t in parameter list, s_flux renamed s_flux_b
    64 !
    65 ! RCS Log replace by Id keyword, revision history cleaned up
    66 !
    67 ! Revision 1.8  2006/02/23 10:34:17  raasch
    68 ! nzb_2d replaced by nzb_s_outer in horizontal diffusion and by nzb_s_inner
    69 ! or nzb_diff_s_inner, respectively, in vertical diffusion, prescribed surface
    70 ! fluxes at vertically oriented topography
    7155!
    7256! Revision 1.1  2000/04/13 14:54:02  schroeter
     
    9983    SUBROUTINE diffusion_s( s, s_flux_b, s_flux_t, wall_s_flux )
    10084
    101        USE arrays_3d
    102        USE control_parameters
    103        USE grid_variables
    104        USE indices
     85       USE arrays_3d,                                                          &
     86           ONLY:  ddzu, ddzw, kh, tend
     87       
     88       USE control_parameters,                                                 &
     89           ONLY: use_surface_fluxes, use_top_fluxes
     90       
     91       USE grid_variables,                                                     &
     92           ONLY:  ddx2, ddy2, fwxm, fwxp, fwym, fwyp, wall_w_x, wall_w_y
     93       
     94       USE indices,                                                            &
     95           ONLY:  nxl, nxlg, nxr, nxrg, nyn, nyng, nys, nysg,                  &
     96                  nzb_diff_s_inner, nzb_s_inner, nzb_s_outer, nzt, nzt_diff
     97       
     98       USE kinds
    10599
    106100       IMPLICIT NONE
    107101
    108        INTEGER ::  i, j, k
    109        REAL    ::  wall_s_flux(0:4)
    110        REAL, DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_b, s_flux_t
     102       INTEGER(iwp) ::  i                 !:
     103       INTEGER(iwp) ::  j                 !:
     104       INTEGER(iwp) ::  k                 !:
     105       REAL(wp)     ::  wall_s_flux(0:4)  !:
     106       REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_b, s_flux_t !:
    111107#if defined( __nopointer )
    112        REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  s
     108       REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  s  !:
    113109#else
    114        REAL, DIMENSION(:,:,:), POINTER ::  s
     110       REAL(wp), DIMENSION(:,:,:), POINTER ::  s  !:
    115111#endif
    116112
     
    121117             DO  k = nzb_s_outer(j,i)+1, nzt
    122118
    123                 tend(k,j,i) = tend(k,j,i)                                     &
    124                                           + 0.5 * (                           &
    125                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    126                       - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    127                                                   ) * ddx2                    &
    128                                           + 0.5 * (                           &
    129                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    130                       - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
     119                tend(k,j,i) = tend(k,j,i)                                      &
     120                                          + 0.5 * (                            &
     121                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     122                      - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
     123                                                  ) * ddx2                     &
     124                                          + 0.5 * (                            &
     125                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     126                      - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    131127                                                  ) * ddy2
    132128             ENDDO
     
    138134                DO  k = nzb_s_inner(j,i)+1, nzb_s_outer(j,i)
    139135
    140                    tend(k,j,i) = tend(k,j,i)                                  &
    141                                                 + ( fwxp(j,i) * 0.5 *         &
    142                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    143                         + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                &
    144                                                    -fwxm(j,i) * 0.5 *         &
    145                         ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    146                         + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                &
    147                                                   ) * ddx2                    &
    148                                                 + ( fwyp(j,i) * 0.5 *         &
    149                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    150                         + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                &
    151                                                    -fwym(j,i) * 0.5 *         &
    152                         ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
    153                         + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                &
     136                   tend(k,j,i) = tend(k,j,i)                                   &
     137                                                + ( fwxp(j,i) * 0.5 *          &
     138                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     139                        + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                 &
     140                                                   -fwxm(j,i) * 0.5 *          &
     141                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
     142                        + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                 &
     143                                                  ) * ddx2                     &
     144                                                + ( fwyp(j,i) * 0.5 *          &
     145                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     146                        + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                 &
     147                                                   -fwym(j,i) * 0.5 *          &
     148                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
     149                        + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                 &
    154150                                                  ) * ddy2
    155151                ENDDO
     
    162158             DO  k = nzb_diff_s_inner(j,i), nzt_diff
    163159
    164                 tend(k,j,i) = tend(k,j,i)                                     &
    165                                        + 0.5 * (                              &
    166             ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) &
    167           - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)   &
     160                tend(k,j,i) = tend(k,j,i)                                      &
     161                                       + 0.5 * (                               &
     162            ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1)  &
     163          - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)    &
    168164                                               ) * ddzw(k)
    169165             ENDDO
     
    176172                k = nzb_s_inner(j,i)+1
    177173
    178                 tend(k,j,i) = tend(k,j,i)                                     &
    179                                        + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )    &
    180                                                * ( s(k+1,j,i)-s(k,j,i) )      &
    181                                                * ddzu(k+1)                    &
    182                                            + s_flux_b(j,i)                    &
     174                tend(k,j,i) = tend(k,j,i)                                      &
     175                                       + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )     &
     176                                               * ( s(k+1,j,i)-s(k,j,i) )       &
     177                                               * ddzu(k+1)                     &
     178                                           + s_flux_b(j,i)                     &
    183179                                         ) * ddzw(k)
    184180
     
    192188                k = nzt
    193189
    194                 tend(k,j,i) = tend(k,j,i)                                     &
    195                                        + ( - s_flux_t(j,i)                    &
    196                                            - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) )  &
    197                                                  * ( s(k,j,i)-s(k-1,j,i) )    &
    198                                                  * ddzu(k)                    &
     190                tend(k,j,i) = tend(k,j,i)                                      &
     191                                       + ( - s_flux_t(j,i)                     &
     192                                           - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) )   &
     193                                                 * ( s(k,j,i)-s(k-1,j,i) )     &
     194                                                 * ddzu(k)                     &
    199195                                         ) * ddzw(k)
    200196
     
    212208    SUBROUTINE diffusion_s_acc( s, s_flux_b, s_flux_t, wall_s_flux )
    213209
    214        USE arrays_3d
    215        USE control_parameters
    216        USE grid_variables
    217        USE indices
     210       USE arrays_3d,                                                          &
     211           ONLY:  ddzu, ddzw, kh, tend
     212           
     213       USE control_parameters,                                                 &
     214           ONLY: use_surface_fluxes, use_top_fluxes
     215       
     216       USE grid_variables,                                                     &
     217           ONLY:  ddx2, ddy2, fwxm, fwxp, fwym, fwyp, wall_w_x, wall_w_y
     218       
     219       USE indices, &
     220           ONLY: i_left, i_right, j_north, j_south, nxlg, nxrg, nyng, nysg,    &
     221                 nzb_diff_s_inner, nzb_s_inner, nzb_s_outer, nzt, nzt_diff
     222           
     223       USE kinds
    218224
    219225       IMPLICIT NONE
    220226
    221        INTEGER ::  i, j, k
    222        REAL    ::  wall_s_flux(0:4)
    223        REAL, DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_b, s_flux_t
     227       INTEGER(iwp) ::  i                 !:
     228       INTEGER(iwp) ::  j                 !:
     229       INTEGER(iwp) ::  k                 !:
     230       REAL(wp)     ::  wall_s_flux(0:4)  !:
     231       REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_b !:
     232       REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_t !:
    224233#if defined( __nopointer )
    225        REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  s
     234       REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  s  !:
    226235#else
    227        REAL, DIMENSION(:,:,:), POINTER ::  s
     236       REAL(wp), DIMENSION(:,:,:), POINTER ::  s  !:
    228237#endif
    229238
     
    239248                IF ( k > nzb_s_outer(j,i) )  THEN
    240249
    241                    tend(k,j,i) = tend(k,j,i)                                  &
    242                                           + 0.5 * (                           &
    243                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    244                       - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    245                                                   ) * ddx2                    &
    246                                           + 0.5 * (                           &
    247                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    248                       - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
     250                   tend(k,j,i) = tend(k,j,i)                                   &
     251                                          + 0.5 * (                            &
     252                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     253                      - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
     254                                                  ) * ddx2                     &
     255                                          + 0.5 * (                            &
     256                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     257                      - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    249258                                                  ) * ddy2
    250259                ENDIF
     
    257266                     ( wall_w_x(j,i) /= 0.0  .OR.  wall_w_y(j,i) /= 0.0 ) )    &
    258267                THEN
    259                    tend(k,j,i) = tend(k,j,i)                                  &
    260                                                 + ( fwxp(j,i) * 0.5 *         &
    261                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    262                         + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                &
    263                                                    -fwxm(j,i) * 0.5 *         &
    264                         ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    265                         + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                &
    266                                                   ) * ddx2                    &
    267                                                 + ( fwyp(j,i) * 0.5 *         &
    268                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    269                         + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                &
    270                                                    -fwym(j,i) * 0.5 *         &
    271                         ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
    272                         + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                &
     268                   tend(k,j,i) = tend(k,j,i)                                   &
     269                                                + ( fwxp(j,i) * 0.5 *          &
     270                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     271                        + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                 &
     272                                                   -fwxm(j,i) * 0.5 *          &
     273                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
     274                        + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                 &
     275                                                  ) * ddx2                     &
     276                                                + ( fwyp(j,i) * 0.5 *          &
     277                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     278                        + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                 &
     279                                                   -fwym(j,i) * 0.5 *          &
     280                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
     281                        + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                 &
    273282                                                  ) * ddy2
    274283                ENDIF
     
    281290             DO  k = 1, nzt_diff
    282291                IF ( k >= nzb_diff_s_inner(j,i) )  THEN
    283                    tend(k,j,i) = tend(k,j,i)                                  &
    284                                        + 0.5 * (                              &
    285             ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) &
    286           - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)   &
     292                   tend(k,j,i) = tend(k,j,i)                                   &
     293                                       + 0.5 * (                               &
     294            ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1)  &
     295          - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)    &
    287296                                               ) * ddzw(k)
    288297                ENDIF
     
    294303             DO  k = 1, nzt
    295304                IF ( use_surface_fluxes  .AND.  k == nzb_s_inner(j,i)+1 )  THEN
    296                    tend(k,j,i) = tend(k,j,i)                                  &
    297                                           + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) ) &
    298                                                   * ( s(k+1,j,i)-s(k,j,i) )   &
    299                                                   * ddzu(k+1)                 &
    300                                               + s_flux_b(j,i)                 &
     305                   tend(k,j,i) = tend(k,j,i)                                   &
     306                                          + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )  &
     307                                                  * ( s(k+1,j,i)-s(k,j,i) )    &
     308                                                  * ddzu(k+1)                  &
     309                                              + s_flux_b(j,i)                  &
    301310                                            ) * ddzw(k)
    302311                ENDIF
     
    327336    SUBROUTINE diffusion_s_ij( i, j, s, s_flux_b, s_flux_t, wall_s_flux )
    328337
    329        USE arrays_3d
    330        USE control_parameters
    331        USE grid_variables
    332        USE indices
     338       USE arrays_3d,                                                          &
     339           ONLY:  ddzu, ddzw, kh, tend
     340           
     341       USE control_parameters,                                                 &
     342           ONLY: use_surface_fluxes, use_top_fluxes
     343       
     344       USE grid_variables,                                                     &
     345           ONLY:  ddx2, ddy2, fwxm, fwxp, fwym, fwyp, wall_w_x, wall_w_y
     346       
     347       USE indices,                                                            &
     348           ONLY:  nxlg, nxrg, nyng, nysg, nzb_diff_s_inner, nzb_s_inner,       &
     349                  nzb_s_outer, nzt, nzt_diff
     350       
     351       USE kinds
    333352
    334353       IMPLICIT NONE
    335354
    336        INTEGER ::  i, j, k
    337        REAL    ::  wall_s_flux(0:4)
    338        REAL, DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_b, s_flux_t
     355       INTEGER(iwp) ::  i                 !:
     356       INTEGER(iwp) ::  j                 !:
     357       INTEGER(iwp) ::  k                 !:
     358       REAL(wp)     ::  wall_s_flux(0:4)  !:
     359       REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_b  !:
     360       REAL(wp), DIMENSION(nysg:nyng,nxlg:nxrg) ::  s_flux_t  !:
    339361#if defined( __nopointer )
    340        REAL, DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  s
     362       REAL(wp), DIMENSION(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ::  s !:
    341363#else
    342        REAL, DIMENSION(:,:,:), POINTER ::  s
     364       REAL(wp), DIMENSION(:,:,:), POINTER ::  s  !:
    343365#endif
    344366
     
    347369       DO  k = nzb_s_outer(j,i)+1, nzt
    348370
    349           tend(k,j,i) = tend(k,j,i)                                           &
    350                                           + 0.5 * (                           &
    351                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    352                       - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    353                                                   ) * ddx2                    &
    354                                           + 0.5 * (                           &
    355                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    356                       - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
     371          tend(k,j,i) = tend(k,j,i)                                            &
     372                                          + 0.5 * (                            &
     373                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     374                      - ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
     375                                                  ) * ddx2                     &
     376                                          + 0.5 * (                            &
     377                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     378                      - ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
    357379                                                  ) * ddy2
    358380       ENDDO
     
    360382!
    361383!--    Apply prescribed horizontal wall heatflux where necessary
    362        IF ( ( wall_w_x(j,i) .NE. 0.0 ) .OR. ( wall_w_y(j,i) .NE. 0.0 ) ) &
     384       IF ( ( wall_w_x(j,i) .NE. 0.0 ) .OR. ( wall_w_y(j,i) .NE. 0.0 ) )       &
    363385       THEN
    364386          DO  k = nzb_s_inner(j,i)+1, nzb_s_outer(j,i)
    365387
    366              tend(k,j,i) = tend(k,j,i)                                        &
    367                                                 + ( fwxp(j,i) * 0.5 *         &
    368                         ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) ) &
    369                         + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                &
    370                                                    -fwxm(j,i) * 0.5 *         &
    371                         ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) ) &
    372                         + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                &
    373                                                   ) * ddx2                    &
    374                                                 + ( fwyp(j,i) * 0.5 *         &
    375                         ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) ) &
    376                         + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                &
    377                                                    -fwym(j,i) * 0.5 *         &
    378                         ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) ) &
    379                         + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                &
     388             tend(k,j,i) = tend(k,j,i)                                         &
     389                                                + ( fwxp(j,i) * 0.5 *          &
     390                        ( kh(k,j,i) + kh(k,j,i+1) ) * ( s(k,j,i+1)-s(k,j,i) )  &
     391                        + ( 1.0 - fwxp(j,i) ) * wall_s_flux(1)                 &
     392                                                   -fwxm(j,i) * 0.5 *          &
     393                        ( kh(k,j,i) + kh(k,j,i-1) ) * ( s(k,j,i)-s(k,j,i-1) )  &
     394                        + ( 1.0 - fwxm(j,i) ) * wall_s_flux(2)                 &
     395                                                  ) * ddx2                     &
     396                                                + ( fwyp(j,i) * 0.5 *          &
     397                        ( kh(k,j,i) + kh(k,j+1,i) ) * ( s(k,j+1,i)-s(k,j,i) )  &
     398                        + ( 1.0 - fwyp(j,i) ) * wall_s_flux(3)                 &
     399                                                   -fwym(j,i) * 0.5 *          &
     400                        ( kh(k,j,i) + kh(k,j-1,i) ) * ( s(k,j,i)-s(k,j-1,i) )  &
     401                        + ( 1.0 - fwym(j,i) ) * wall_s_flux(4)                 &
    380402                                                  ) * ddy2
    381403          ENDDO
     
    388410       DO  k = nzb_diff_s_inner(j,i), nzt_diff
    389411
    390           tend(k,j,i) = tend(k,j,i)                                           &
    391                                        + 0.5 * (                              &
    392             ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1) &
    393           - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)   &
     412          tend(k,j,i) = tend(k,j,i)                                            &
     413                                       + 0.5 * (                               &
     414            ( kh(k,j,i) + kh(k+1,j,i) ) * ( s(k+1,j,i)-s(k,j,i) ) * ddzu(k+1)  &
     415          - ( kh(k,j,i) + kh(k-1,j,i) ) * ( s(k,j,i)-s(k-1,j,i) ) * ddzu(k)    &
    394416                                               ) * ddzw(k)
    395417       ENDDO
     
    401423          k = nzb_s_inner(j,i)+1
    402424
    403           tend(k,j,i) = tend(k,j,i) + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )  &
    404                                             * ( s(k+1,j,i)-s(k,j,i) )    &
    405                                             * ddzu(k+1)                  &
    406                                         + s_flux_b(j,i)                  &
     425          tend(k,j,i) = tend(k,j,i) + ( 0.5 * ( kh(k,j,i)+kh(k+1,j,i) )        &
     426                                            * ( s(k+1,j,i)-s(k,j,i) )          &
     427                                            * ddzu(k+1)                        &
     428                                        + s_flux_b(j,i)                        &
    407429                                      ) * ddzw(k)
    408430
     
    415437          k = nzt
    416438
    417           tend(k,j,i) = tend(k,j,i) + ( - s_flux_t(j,i)                  &
    418                                       - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) )  &
    419                                             * ( s(k,j,i)-s(k-1,j,i) )    &
    420                                             * ddzu(k)                    &
     439          tend(k,j,i) = tend(k,j,i) + ( - s_flux_t(j,i)                        &
     440                                      - 0.5 * ( kh(k-1,j,i)+kh(k,j,i) )        &
     441                                            * ( s(k,j,i)-s(k-1,j,i) )          &
     442                                            * ddzu(k)                          &
    421443                                      ) * ddzw(k)
    422444
Note: See TracChangeset for help on using the changeset viewer.