Changeset 2939


Ignore:
Timestamp:
Mar 29, 2018 6:20:00 PM (7 years ago)
Author:
suehring
Message:

Set lateral boundary conditions for divergence in multigrid solver

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

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

    r2718 r2939  
    2525! -----------------
    2626! $Id$
     27! Set lateral boundary conditions for divergence
     28!
     29! 2937 2018-03-27 14:58:33Z suehring
    2730! Corrected "Former revisions" section
    2831!
     
    149152
    150153       USE control_parameters,                                                 &
    151            ONLY:  gathered_size, grid_level, grid_level_count,                 &
     154           ONLY:  bc_lr_cyc, bc_ns_cyc, gathered_size, grid_level,             &
     155                  grid_level_count, ibc_p_t,                                   &
    152156                  maximum_grid_level, message_string, mgcycles, mg_cycles,     &
    153157                  mg_switch_to_pe0_level, residual_limit, subdomain_size
     
    195199       grid_level = maximum_grid_level
    196200       CALL exchange_horiz( d, 1)
     201!
     202!--    Set bottom and top boundary conditions
    197203       d(nzb,:,:) = d(nzb+1,:,:)
    198 
     204       IF ( ibc_p_t == 1 )  d(nzt+1,:,: ) = d(nzt,:,:)
     205!
     206!--    Set lateral boundary conditions in non-cyclic case
     207       IF ( .NOT. bc_lr_cyc )  THEN
     208          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. force_bound_l )  &
     209             d(:,:,nxl-1) = d(:,:,nxl)
     210          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. force_bound_r )  &
     211             d(:,:,nxr+1) = d(:,:,nxr)
     212       ENDIF
     213       IF ( .NOT. bc_ns_cyc )  THEN
     214          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. force_bound_n )  &
     215             d(:,nyn+1,:) = d(:,nyn,:)
     216          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. force_bound_s )  &
     217             d(:,nys-1,:) = d(:,nys,:)
     218       ENDIF
    199219!
    200220!--    Initiation of the multigrid scheme. Does n cycles until the
  • palm/trunk/SOURCE/poismg_noopt_mod.f90

    r2718 r2939  
    2525! -----------------
    2626! $Id$
     27! Set lateral boundary conditions for divergence
     28!
     29! 2793 2018-02-07 10:54:33Z suehring
    2730! Corrected "Former revisions" section
    2831!
     
    195198
    196199       USE control_parameters,                                                 &
    197            ONLY:  gathered_size, grid_level_count,                             &
     200           ONLY:  bc_lr_cyc, bc_ns_cyc, gathered_size, grid_level_count,       &
     201                  ibc_p_t, maximum_grid_level, message_string, mgcycles,       &
     202                  mg_cycles, mg_switch_to_pe0_level, residual_limit,           &
     203                  subdomain_size
     204
     205       USE control_parameters,                                                 &
     206           ONLY:  bc_lr_cyc, bc_ns_cyc, gathered_size, grid_level,             &
     207                  grid_level_count, ibc_p_t,                                   &
    198208                  maximum_grid_level, message_string, mgcycles, mg_cycles,     &
    199209                  mg_switch_to_pe0_level, residual_limit, subdomain_size
     
    244254       grid_level = maximum_grid_level
    245255       CALL exchange_horiz( d, 1)
     256!
     257!--    Set bottom and top boundary conditions
    246258       d(nzb,:,:) = d(nzb+1,:,:)
     259       IF ( ibc_p_t == 1 )  d(nzt+1,:,: ) = d(nzt,:,:)
     260!
     261!--    Set lateral boundary conditions in non-cyclic case
     262       IF ( .NOT. bc_lr_cyc )  THEN
     263          IF ( inflow_l .OR. outflow_l .OR. nest_bound_l .OR. force_bound_l )  &
     264             d(:,:,nxl-1) = d(:,:,nxl)
     265          IF ( inflow_r .OR. outflow_r .OR. nest_bound_r .OR. force_bound_r )  &
     266             d(:,:,nxr+1) = d(:,:,nxr)
     267       ENDIF
     268       IF ( .NOT. bc_ns_cyc )  THEN
     269          IF ( inflow_n .OR. outflow_n .OR. nest_bound_n .OR. force_bound_n )  &
     270             d(:,nyn+1,:) = d(:,nyn,:)
     271          IF ( inflow_s .OR. outflow_s .OR. nest_bound_s .OR. force_bound_s )  &
     272             d(:,nys-1,:) = d(:,nys,:)
     273       ENDIF
    247274
    248275!
Note: See TracChangeset for help on using the changeset viewer.