Ignore:
Timestamp:
Mar 7, 2007 8:38:00 AM (15 years ago)
Author:
raasch
Message:

preliminary version, several changes to be explained later

File:
1 edited

Legend:

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

    r39 r51  
    44! Actual revisions:
    55! -----------------
    6 !
     6! wall functions now include diabatic conditions, call of routine wall_fluxes
    77!
    88! Former revisions:
     
    5555
    5656       INTEGER ::  i, j, k
    57        REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp, vsus
     57       REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp
    5858       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1)
    5959       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    6060       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     61       REAL, DIMENSION(nzb:nzt+1)      ::  vsus
    6162       REAL, DIMENSION(:,:),   POINTER ::  vsws
    6263       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
     
    100101!--          Wall functions at the left and right walls, respectively
    101102             IF ( wall_v(j,i) /= 0.0 )  THEN
     103
     104!
     105!--             Calculate the horizontal momentum flux v'u'
     106                CALL wall_fluxes( i, j, nzb_v_inner(j,i)+1, nzb_v_outer(j,i), &
     107                                  vsus, 0.0, 1.0, 0.0, 0.0 )
     108
    102109                DO  k = nzb_v_inner(j,i)+1, nzb_v_outer(j,i)
    103                    vsus   = kappa * v(k,j,i) / LOG( 0.5 * dx / z0(j,i))
    104                    vsus   = -vsus * ABS( vsus )
    105110                   kmxp_x = 0.25 * &
    106111                            ( km(k,j,i)+km(k,j,i+1)+km(k,j-1,i)+km(k,j-1,i+1) )
     
    132137                                + kmxm_y * ( u(k,j,i) - u(k,j-1,i) ) * ddy     &
    133138                                                  )                            &
    134                                      + wall_v(j,i) * vsus                      &
     139                                     + wall_v(j,i) * vsus(k)                   &
    135140                                   ) * ddx
    136141                ENDDO
     
    204209
    205210       INTEGER ::  i, j, k
    206        REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp, vsus
     211       REAL    ::  kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp
    207212       REAL    ::  ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1)
    208213       REAL    ::  z0(nys-1:nyn+1,nxl-1:nxr+1)
    209214       REAL    ::  tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1)
     215       REAL, DIMENSION(nzb:nzt+1)      ::  vsus
    210216       REAL, DIMENSION(:,:),   POINTER ::  vsws
    211217       REAL, DIMENSION(:,:,:), POINTER ::  km, u, v, w
     
    245251!--    Wall functions at the left and right walls, respectively
    246252       IF ( wall_v(j,i) /= 0.0 )  THEN
     253
     254!
     255!--       Calculate the horizontal momentum flux v'u'
     256          CALL wall_fluxes( i, j, nzb_v_inner(j,i)+1, nzb_v_outer(j,i), &
     257                            vsus, 0.0, 1.0, 0.0, 0.0 )
     258
    247259          DO  k = nzb_v_inner(j,i)+1, nzb_v_outer(j,i)
    248              vsus   = kappa * v(k,j,i) / LOG( 0.5 * dx / z0(j,i))
    249              vsus   = -vsus * ABS( vsus )
    250260             kmxp_x = 0.25 * &
    251261                      ( km(k,j,i)+km(k,j,i+1)+km(k,j-1,i)+km(k,j-1,i+1) )
     
    277287                                + kmxm_y * ( u(k,j,i) - u(k,j-1,i) ) * ddy     &
    278288                                                  )                            &
    279                                      + wall_v(j,i) * vsus                      &
     289                                     + wall_v(j,i) * vsus(k)                   &
    280290                                   ) * ddx
    281291          ENDDO
Note: See TracChangeset for help on using the changeset viewer.