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

Separate balance equations for humidity and passive_scalar

File:
1 edited

Legend:

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

    r1933 r1960  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! Treat humidity and passive scalar separately
    2222!
    2323! Former revisions:
     
    135135    USE arrays_3d,                                                             &
    136136        ONLY:  c_u, c_u_m, c_u_m_l, c_v, c_v_m, c_v_m_l, c_w, c_w_m, c_w_m_l,  &
    137                dzu, e_p, nr_p, pt, pt_p, q, q_p, qr_p, sa, sa_p,               &
     137               dzu, e_p, nr_p, pt, pt_p, q, q_p, qr_p, s, s_p, sa, sa_p,       &
    138138               u, ug, u_init, u_m_l, u_m_n, u_m_r, u_m_s, u_p,                 &
    139139               v, vg, v_init, v_m_l, v_m_n, v_m_r, v_m_s, v_p,                 &
    140                w, w_p, w_m_l, w_m_n, w_m_r, w_m_s,&
    141                pt_init
     140               w, w_p, w_m_l, w_m_n, w_m_r, w_m_s, pt_init
    142141
    143142    USE control_parameters,                                                    &
    144         ONLY:  bc_pt_t_val, bc_q_t_val, constant_diffusion,                    &
     143        ONLY:  bc_pt_t_val, bc_q_t_val, bc_s_t_val, constant_diffusion,        &
    145144               cloud_physics, dt_3d, humidity,                                 &
    146                ibc_pt_b, ibc_pt_t, ibc_q_b, ibc_q_t, ibc_sa_t, ibc_uv_b,       &
    147                ibc_uv_t, inflow_l, inflow_n, inflow_r, inflow_s,               &
    148                intermediate_timestep_count, large_scale_forcing,               &
     145               ibc_pt_b, ibc_pt_t, ibc_q_b, ibc_q_t, ibc_s_b, ibc_s_t,         &
     146               ibc_sa_t, ibc_uv_b, ibc_uv_t, inflow_l, inflow_n, inflow_r,     &
     147               inflow_s, intermediate_timestep_count, large_scale_forcing,     &
    149148               microphysics_seifert, nest_domain, nest_bound_l, nest_bound_s,  &
    150149               nudging, ocean, outflow_l, outflow_n, outflow_r, outflow_s,     &
     
    302301
    303302!
    304 !-- Boundary conditions for total water content or scalar,
     303!-- Boundary conditions for total water content,
    305304!-- bottom and top boundary (see also temperature)
    306     IF ( humidity  .OR.  passive_scalar )  THEN
     305    IF ( humidity )  THEN
    307306!
    308307!--    Surface conditions for constant_humidity_flux
     
    344343       ENDIF
    345344    ENDIF
     345!
     346!-- Boundary conditions for scalar,
     347!-- bottom and top boundary (see also temperature)
     348    IF ( passive_scalar )  THEN
     349!
     350!--    Surface conditions for constant_humidity_flux
     351       IF ( ibc_s_b == 0 ) THEN
     352          DO  i = nxlg, nxrg
     353             DO  j = nysg, nyng
     354                s_p(nzb_s_inner(j,i),j,i) = s(nzb_s_inner(j,i),j,i)
     355             ENDDO
     356          ENDDO
     357       ELSE
     358          DO  i = nxlg, nxrg
     359             DO  j = nysg, nyng
     360                s_p(nzb_s_inner(j,i),j,i) = s_p(nzb_s_inner(j,i)+1,j,i)
     361             ENDDO
     362          ENDDO
     363       ENDIF
     364!
     365!--    Top boundary
     366       IF ( ibc_s_t == 0 ) THEN
     367          s_p(nzt+1,:,:) = s(nzt+1,:,:)
     368       ELSEIF ( ibc_s_t == 1 ) THEN
     369          s_p(nzt+1,:,:) = s_p(nzt,:,:)   + bc_s_t_val * dzu(nzt+1)
     370       ENDIF
     371
     372    ENDIF   
    346373!
    347374!-- In case of inflow or nest boundary at the south boundary the boundary for v
     
    381408       pt_p(:,nys-1,:)     = pt_p(:,nys,:)
    382409       IF ( .NOT. constant_diffusion     )  e_p(:,nys-1,:) = e_p(:,nys,:)
    383        IF ( humidity  .OR.  passive_scalar )  THEN
     410       IF ( humidity )  THEN
    384411          q_p(:,nys-1,:) = q_p(:,nys,:)
    385412          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
     
    388415          ENDIF
    389416       ENDIF
     417       IF ( passive_scalar )  s_p(:,nys-1,:) = s_p(:,nys,:)
    390418    ELSEIF ( outflow_n )  THEN
    391419       pt_p(:,nyn+1,:)     = pt_p(:,nyn,:)
    392420       IF ( .NOT. constant_diffusion     )  e_p(:,nyn+1,:) = e_p(:,nyn,:)
    393        IF ( humidity  .OR.  passive_scalar )  THEN
     421       IF ( humidity )  THEN
    394422          q_p(:,nyn+1,:) = q_p(:,nyn,:)
    395423          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
     
    398426          ENDIF
    399427       ENDIF
     428       IF ( passive_scalar )  s_p(:,nyn+1,:) = s_p(:,nyn,:)
    400429    ELSEIF ( outflow_l )  THEN
    401430       pt_p(:,:,nxl-1)     = pt_p(:,:,nxl)
    402431       IF ( .NOT. constant_diffusion     )  e_p(:,:,nxl-1) = e_p(:,:,nxl)
    403        IF ( humidity  .OR.  passive_scalar )  THEN
     432       IF ( humidity )  THEN
    404433          q_p(:,:,nxl-1) = q_p(:,:,nxl)
    405434          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
     
    408437          ENDIF
    409438       ENDIF
     439       IF ( passive_scalar )  s_p(:,:,nxl-1) = s_p(:,:,nxl)
    410440    ELSEIF ( outflow_r )  THEN
    411441       pt_p(:,:,nxr+1)     = pt_p(:,:,nxr)
    412442       IF ( .NOT. constant_diffusion     )  e_p(:,:,nxr+1) = e_p(:,:,nxr)
    413        IF ( humidity .OR. passive_scalar )  THEN
     443       IF ( humidity )  THEN
    414444          q_p(:,:,nxr+1) = q_p(:,:,nxr)
    415445          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
     
    418448          ENDIF
    419449       ENDIF
     450       IF ( passive_scalar )  s_p(:,:,nxr+1) = s_p(:,:,nxr)
    420451    ENDIF
    421452
Note: See TracChangeset for help on using the changeset viewer.