Ignore:
Timestamp:
Feb 20, 2018 3:31:45 PM (3 years ago)
Author:
Giersch
Message:

Set boundary condtions for 3D topography in case of non-cyclic boundary conditions

File:
1 edited

Legend:

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

    r2796 r2823  
    2525! -----------------
    2626! $Id$
     27! Set boundary conditions for 3D topography in case of non-cyclic boundary
     28! conditions
     29!
     30! 2796 2018-02-08 12:25:39Z suehring
    2731! Bugfix in 3D building initialization
    2832!
     
    15891593
    15901594          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
     1595!
     1596!--       Set boundary conditions also for flags. Can be interpreted as Neumann
     1597!--       boundary conditions for topography.
     1598          IF ( .NOT. bc_ns_cyc )  THEN
     1599             IF ( nys == 0  )  THEN
     1600                DO  i = 1, nbgp     
     1601                   topo(:,nys-i,:)   = topo(:,nys,:)
     1602                ENDDO
     1603             ENDIF
     1604             IF ( nyn == ny )  THEN
     1605                DO  i = 1, nbgp 
     1606                   topo(:,nyn+i,:) = topo(:,nyn,:)
     1607                ENDDO
     1608             ENDIF
     1609          ENDIF
     1610          IF ( .NOT. bc_lr_cyc )  THEN
     1611             IF ( nxl == 0  )  THEN
     1612                DO  i = 1, nbgp   
     1613                   topo(:,:,nxl-i)   = topo(:,:,nxl)
     1614                ENDDO
     1615             ENDIF
     1616             IF ( nxr == nx )  THEN
     1617                DO  i = 1, nbgp   
     1618                   topo(:,:,nxr+i) = topo(:,:,nxr)     
     1619                ENDDO
     1620             ENDIF     
     1621          ENDIF
    15911622
    15921623       CASE ( 'single_street_canyon' )
     
    16731704
    16741705          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
     1706!
     1707!--       Set boundary conditions also for flags. Can be interpreted as Neumann
     1708!--       boundary conditions for topography.
     1709          IF ( .NOT. bc_ns_cyc )  THEN
     1710             IF ( nys == 0  )  THEN
     1711                DO  i = 1, nbgp     
     1712                   topo(:,nys-i,:)   = topo(:,nys,:)
     1713                ENDDO
     1714             ENDIF
     1715             IF ( nyn == ny )  THEN
     1716                DO  i = 1, nbgp 
     1717                   topo(:,nyn+i,:) = topo(:,nyn,:)
     1718                ENDDO
     1719             ENDIF
     1720          ENDIF
     1721          IF ( .NOT. bc_lr_cyc )  THEN
     1722             IF ( nxl == 0  )  THEN
     1723                DO  i = 1, nbgp   
     1724                   topo(:,:,nxl-i)   = topo(:,:,nxl)
     1725                ENDDO
     1726             ENDIF
     1727             IF ( nxr == nx )  THEN
     1728                DO  i = 1, nbgp   
     1729                   topo(:,:,nxr+i) = topo(:,:,nxr)     
     1730                ENDDO
     1731             ENDIF     
     1732          ENDIF
    16751733
    16761734       CASE ( 'tunnel' )
     
    18121870
    18131871          CALL exchange_horiz_int( topo, nys, nyn, nxl, nxr, nzt, nbgp )
     1872!
     1873!--       Set boundary conditions also for flags. Can be interpreted as Neumann
     1874!--       boundary conditions for topography.
     1875          IF ( .NOT. bc_ns_cyc )  THEN
     1876             IF ( nys == 0  )  THEN
     1877                DO  i = 1, nbgp     
     1878                   topo(:,nys-i,:)   = topo(:,nys,:)
     1879                ENDDO
     1880             ENDIF
     1881             IF ( nyn == ny )  THEN
     1882                DO  i = 1, nbgp 
     1883                   topo(:,nyn+i,:) = topo(:,nyn,:)
     1884                ENDDO
     1885             ENDIF
     1886          ENDIF
     1887          IF ( .NOT. bc_lr_cyc )  THEN
     1888             IF ( nxl == 0  )  THEN
     1889                DO  i = 1, nbgp   
     1890                   topo(:,:,nxl-i)   = topo(:,:,nxl)
     1891                ENDDO
     1892             ENDIF
     1893             IF ( nxr == nx )  THEN
     1894                DO  i = 1, nbgp   
     1895                   topo(:,:,nxr+i) = topo(:,:,nxr)     
     1896                ENDDO
     1897             ENDIF     
     1898          ENDIF
    18141899
    18151900       CASE ( 'read_from_file' )
Note: See TracChangeset for help on using the changeset viewer.