Ignore:
Timestamp:
Jul 12, 2016 4:34:24 PM (8 years ago)
Author:
suehring
Message:

Separate balance equations for humidity and passive_scalar

File:
1 edited

Legend:

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

    r1874 r1960  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! New CASE statement to treat scalars and humidity separately
    2222!
    2323! Former revisions:
     
    120120
    121121       USE control_parameters,                                                    &
    122            ONLY:  dt_3d, bc_pt_t_val, bc_q_t_val, ibc_pt_b, ibc_pt_t, ibc_q_t,    &
    123                   message_string, pt_slope_offset, sloping_surface, u_gtrans,     &
    124                   v_gtrans
     122           ONLY:  dt_3d, bc_pt_t_val, bc_q_t_val, bc_s_t_val, ibc_pt_b, ibc_pt_t, &
     123                  ibc_q_t, ibc_s_t, message_string, pt_slope_offset,              &
     124                  sloping_surface, u_gtrans, v_gtrans
    125125
    126126       USE cpulog,                                                                &
     
    969969          ENDIF
    970970
     971       ELSEIF ( sk_char == 's' )  THEN
     972!
     973!--       Specific scalar boundary condition at the bottom boundary.
     974!--       Dirichlet (fixed surface humidity) or Neumann (i.e. zero gradient)
     975          DO  i = nxl, nxr
     976             DO  j = nys, nyn
     977                sk_p(nzb,j,i)   = sk_p(nzb+1,j,i)
     978                sk_p(nzb-1,j,i) = sk_p(nzb,j,i)
     979                sk_p(nzb-2,j,i) = sk_p(nzb,j,i)
     980             ENDDO
     981          ENDDO
     982
     983!
     984!--       Specific scalar boundary condition at the top boundary
     985          IF ( ibc_s_t == 0 )  THEN
     986!
     987!--          Dirichlet
     988             DO  i = nxl, nxr
     989                DO  j = nys, nyn
     990                   sk_p(nzt+2,j,i)   = sk_p(nzt+1,j,i)
     991                   sk_p(nzt+3,j,i)   = sk_p(nzt+1,j,i)
     992                ENDDO
     993             ENDDO
     994
     995          ELSE
     996!
     997!--          Neumann: dzu(nzt+2:3) are not defined, dzu(nzt+1) is used instead
     998             DO  i = nxl, nxr
     999                DO  j = nys, nyn
     1000                   sk_p(nzt+2,j,i)   = sk_p(nzt+1,j,i) + bc_s_t_val * dzu(nzt+1)
     1001                   sk_p(nzt+3,j,i)   = sk_p(nzt+2,j,i) + bc_s_t_val * dzu(nzt+1)
     1002                ENDDO
     1003             ENDDO
     1004
     1005          ENDIF
     1006
    9711007       ELSEIF ( sk_char == 'qr' )  THEN
    9721008
Note: See TracChangeset for help on using the changeset viewer.