Ignore:
Timestamp:
Jun 1, 2007 3:25:22 PM (14 years ago)
Author:
raasch
Message:

preliminary uncomplete changes for ocean version

File:
1 edited

Legend:

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

    r77 r94  
    44! Actual revisions:
    55! -----------------
    6 !
     6! Adjustment of mixing length calculation for the ocean version. zw added to
     7! argument list.
     8! This is also a bugfix, because the height above the topography is now
     9! used instead of the height above level k=0.
    710!
    811! Former revisions:
     
    4851!------------------------------------------------------------------------------!
    4952    SUBROUTINE diffusion_e( ddzu, dd2zu, ddzw, diss, e, km, l_grid, theta, &
    50                             rif, tend, zu )
     53                            rif, tend, zu, zw )
    5154
    5255       USE control_parameters
     
    6063       REAL            ::  dpt_dz, l_stable, phi_m
    6164       REAL            ::  ddzu(1:nzt+1), dd2zu(1:nzt), ddzw(1:nzt+1), &
    62                            l_grid(1:nzt), zu(0:nzt+1)
     65                           l_grid(1:nzt), zu(0:nzt+1), zw(0:nzt+1)
    6366       REAL, DIMENSION(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) :: diss, tend
    6467       REAL, DIMENSION(:,:), POINTER   ::  rif
     
    98101!--                Adjustment of the mixing length
    99102                   IF ( wall_adjustment )  THEN
    100                       l(k,j)  = MIN( wall_adjustment_factor * zu(k), l_grid(k),&
    101                                      l_stable )
    102                       ll(k,j) = MIN( wall_adjustment_factor * zu(k), l_grid(k) )
     103                      l(k,j)  = MIN( wall_adjustment_factor *          &
     104                                     ( zu(k) - zw(nzb_s_inner(j,i)) ), &
     105                                     l_grid(k), l_stable )
     106                      ll(k,j) = MIN( wall_adjustment_factor *          &
     107                                     ( zu(k) - zw(nzb_s_inner(j,i)) ), &
     108                                     l_grid(k) )
    103109                   ELSE
    104110                      l(k,j)  = MIN( l_grid(k), l_stable )
     
    106112                   ENDIF
    107113                   IF ( adjust_mixing_length  .AND.  prandtl_layer )  THEN
    108                       l(k,j)  = MIN( l(k,j),  kappa * zu(k) / phi_m )
    109                       ll(k,j) = MIN( ll(k,j), kappa * zu(k) / phi_m )
     114                      l(k,j)  = MIN( l(k,j),  kappa *                          &
     115                                              ( zu(k) - zw(nzb_s_inner(j,i)) ) &
     116                                              / phi_m )
     117                      ll(k,j) = MIN( ll(k,j), kappa *                          &
     118                                              ( zu(k) - zw(nzb_s_inner(j,i)) ) &
     119                                              / phi_m )
    110120                   ENDIF
    111121
     
    180190!--                Adjustment of the mixing length
    181191                   IF ( wall_adjustment )  THEN
    182                       l(k,j)  = MIN( wall_adjustment_factor * zu(k), l_grid(k),&
    183                                      l_stable )
    184                       ll(k,j) = MIN( wall_adjustment_factor * zu(k), l_grid(k) )
     192                      l(k,j)  = MIN( wall_adjustment_factor *          &
     193                                     ( zu(k) - zw(nzb_s_inner(j,i)) ), &
     194                                     l_grid(k), l_stable )
     195                      ll(k,j) = MIN( wall_adjustment_factor *          &
     196                                     ( zu(k) - zw(nzb_s_inner(j,i)) ), &
     197                                     l_grid(k) )
    185198                   ELSE
    186199                      l(k,j)  = MIN( l_grid(k), l_stable )
     
    188201                   ENDIF
    189202                   IF ( adjust_mixing_length  .AND.  prandtl_layer )  THEN
    190                       l(k,j)  = MIN( l(k,j),  kappa * zu(k) / phi_m )
    191                       ll(k,j) = MIN( ll(k,j), kappa * zu(k) / phi_m )
     203                      l(k,j)  = MIN( l(k,j),  kappa *                          &
     204                                              ( zu(k) - zw(nzb_s_inner(j,i)) ) &
     205                                              / phi_m )
     206                      ll(k,j) = MIN( ll(k,j), kappa *                          &
     207                                              ( zu(k) - zw(nzb_s_inner(j,i)) ) &
     208                                              / phi_m )
    192209                   ENDIF
    193210
     
    253270!------------------------------------------------------------------------------!
    254271    SUBROUTINE diffusion_e_ij( i, j, ddzu, dd2zu, ddzw, diss, e, km, l_grid, &
    255                                theta, rif, tend, zu )
     272                               theta, rif, tend, zu, zw )
    256273
    257274       USE control_parameters
     
    265282       REAL            ::  dpt_dz, l_stable, phi_m
    266283       REAL            ::  ddzu(1:nzt+1), dd2zu(1:nzt), ddzw(1:nzt+1), &
    267                            l_grid(1:nzt), zu(0:nzt+1)
     284                           l_grid(1:nzt), zu(0:nzt+1), zw(0:nzt+1)
    268285       REAL, DIMENSION(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) ::  diss, tend
    269286       REAL, DIMENSION(:,:), POINTER   ::  rif
     
    301318!--       Adjustment of the mixing length
    302319          IF ( wall_adjustment )  THEN
    303              l(k)  = MIN( wall_adjustment_factor * zu(k), l_grid(k), l_stable )
    304              ll(k) = MIN( wall_adjustment_factor * zu(k), l_grid(k) )
     320             l(k)  = MIN( wall_adjustment_factor *                     &
     321                          ( zu(k) - zw(nzb_s_inner(j,i)) ), l_grid(k), &
     322                          l_stable )
     323             ll(k) = MIN( wall_adjustment_factor *                     &
     324                          ( zu(k) - zw(nzb_s_inner(j,i)) ), l_grid(k) )
    305325          ELSE
    306326             l(k)  = MIN( l_grid(k), l_stable )
     
    308328          ENDIF
    309329          IF ( adjust_mixing_length  .AND.  prandtl_layer )  THEN
    310              l(k)  = MIN( l(k),  kappa * zu(k) / phi_m )
    311              ll(k) = MIN( ll(k), kappa * zu(k) / phi_m )
     330             l(k)  = MIN( l(k),  kappa * &
     331                                 ( zu(k) - zw(nzb_s_inner(j,i)) ) / phi_m )
     332             ll(k) = MIN( ll(k), kappa * &
     333                                 ( zu(k) - zw(nzb_s_inner(j,i)) ) / phi_m )
    312334          ENDIF
    313335
Note: See TracChangeset for help on using the changeset viewer.