Changeset 927


Ignore:
Timestamp:
Jun 6, 2012 7:15:04 PM (10 years ago)
Author:
raasch
Message:

masking method can be switched on for mg-solver using inipar parameter masking_method

Location:
palm/trunk/SOURCE
Files:
6 edited

Legend:

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

    r869 r927  
    44! Current revisions:
    55! -----------------
    6 !
     6! output of masking_method for mg-solver
    77!
    88! Former revisions:
     
    270270                             nzt_mg(1)
    271271       ENDIF
     272       IF ( masking_method )  WRITE ( io, 144 )
    272273    ENDIF
    273274    IF ( call_psolver_at_all_substeps  .AND. timestep_scheme(1:5) == 'runge' ) &
     
    17011702143 FORMAT ('     Euler/upstream scheme is used for the SGS turbulent ', &
    17021703                  'kinetic energy')
     1704144 FORMAT ('     masking method is used')
    17031705150 FORMAT (' --> Volume flow at the right and north boundary will be ', &
    17041706                  'conserved'/ &
  • palm/trunk/SOURCE/init_grid.f90

    r865 r927  
    44! Current revisions:
    55! -----------------
    6 !
     6! Wall flags are not set for multigrid method in case of masking method
    77!
    88! Former revisions:
     
    1111!
    1212! 864 2012-03-27 15:10:33Z gryschka
    13 ! In case of ocean and dirichlet bc for u and v at the ground
    14 ! dzu_mg and ddzu_pres where not defined correctly for k=1.
     13! In case of ocean and Dirichlet bottom bc for u and v dzu_mg and ddzu_pres
     14! were not correctly defined for k=1.
    1515!
    1616! 861 2012-03-26 14:18:34Z suehring
     
    992992          flags = 0
    993993
    994           DO  i = nxl_l-1, nxr_l+1
    995              DO  j = nys_l-1, nyn_l+1
    996                 DO  k = nzb, nzt_l+1
     994!
     995!--       In case of masking method, flags are not set and multigrid method
     996!--       works like FFT-solver
     997          IF ( .NOT. masking_method )  THEN
     998
     999             DO  i = nxl_l-1, nxr_l+1
     1000                DO  j = nys_l-1, nyn_l+1
     1001                   DO  k = nzb, nzt_l+1
    9971002                         
    9981003!
    999 !--                Inside/outside building (inside building does not need
    1000 !--                further tests for walls)
    1001                    IF ( k*inc <= nzb_local(j*inc,i*inc) )  THEN
    1002 
    1003                       flags(k,j,i) = IBSET( flags(k,j,i), 6 )
    1004 
    1005                    ELSE
    1006 !
    1007 !--                   Bottom wall
    1008                       IF ( (k-1)*inc <= nzb_local(j*inc,i*inc) )  THEN
    1009                          flags(k,j,i) = IBSET( flags(k,j,i), 0 )
     1004!--                   Inside/outside building (inside building does not need
     1005!--                   further tests for walls)
     1006                      IF ( k*inc <= nzb_local(j*inc,i*inc) )  THEN
     1007
     1008                         flags(k,j,i) = IBSET( flags(k,j,i), 6 )
     1009
     1010                      ELSE
     1011!
     1012!--                      Bottom wall
     1013                         IF ( (k-1)*inc <= nzb_local(j*inc,i*inc) )  THEN
     1014                            flags(k,j,i) = IBSET( flags(k,j,i), 0 )
     1015                         ENDIF
     1016!
     1017!--                      South wall
     1018                         IF ( k*inc <= nzb_local((j-1)*inc,i*inc) )  THEN
     1019                            flags(k,j,i) = IBSET( flags(k,j,i), 2 )
     1020                         ENDIF
     1021!
     1022!--                      North wall
     1023                         IF ( k*inc <= nzb_local((j+1)*inc,i*inc) )  THEN
     1024                            flags(k,j,i) = IBSET( flags(k,j,i), 3 )
     1025                         ENDIF
     1026!
     1027!--                      Left wall
     1028                         IF ( k*inc <= nzb_local(j*inc,(i-1)*inc) )  THEN
     1029                            flags(k,j,i) = IBSET( flags(k,j,i), 4 )
     1030                         ENDIF
     1031!
     1032!--                      Right wall
     1033                         IF ( k*inc <= nzb_local(j*inc,(i+1)*inc) )  THEN
     1034                            flags(k,j,i) = IBSET( flags(k,j,i), 5 )
     1035                         ENDIF
     1036
    10101037                      ENDIF
    1011 !
    1012 !--                   South wall
    1013                       IF ( k*inc <= nzb_local((j-1)*inc,i*inc) )  THEN
    1014                          flags(k,j,i) = IBSET( flags(k,j,i), 2 )
    1015                       ENDIF
    1016 !
    1017 !--                   North wall
    1018                       IF ( k*inc <= nzb_local((j+1)*inc,i*inc) )  THEN
    1019                          flags(k,j,i) = IBSET( flags(k,j,i), 3 )
    1020                       ENDIF
    1021 !
    1022 !--                   Left wall
    1023                       IF ( k*inc <= nzb_local(j*inc,(i-1)*inc) )  THEN
    1024                          flags(k,j,i) = IBSET( flags(k,j,i), 4 )
    1025                       ENDIF
    1026 !
    1027 !--                   Right wall
    1028                       IF ( k*inc <= nzb_local(j*inc,(i+1)*inc) )  THEN
    1029                          flags(k,j,i) = IBSET( flags(k,j,i), 5 )
    1030                       ENDIF
    1031 
    1032                    ENDIF
    10331038                           
     1039                   ENDDO
    10341040                ENDDO
    10351041             ENDDO
    1036           ENDDO
     1042
     1043          ENDIF
    10371044
    10381045!
  • palm/trunk/SOURCE/modules.f90

    r881 r927  
    44! Current revisions:
    55! -----------------
    6 !
     6! +masking_method
    77!
    88! Former revisions:
     
    587587                inflow_r = .FALSE., inflow_s = .FALSE., &
    588588                iso2d_output = .FALSE., large_scale_subsidence = .FALSE., &
    589                 mg_switch_to_pe0 = .FALSE., &
     589                masking_method = .FALSE., mg_switch_to_pe0 = .FALSE., &
    590590                netcdf_output = .FALSE., ocean = .FALSE., &
    591591                outflow_l = .FALSE., outflow_n = .FALSE., outflow_r = .FALSE., &
  • palm/trunk/SOURCE/parin.f90

    r826 r927  
    44! Current revisions:
    55! -----------------
    6 !
     6! +masking_method in inipar
    77!
    88! Former revisions:
     
    161161             lad_vertical_gradient, lad_vertical_gradient_level, &
    162162             leaf_surface_concentration, long_filter_factor, &
    163              loop_optimization, mg_cycles, mg_switch_to_pe0_level, &
     163             loop_optimization, masking_method, mg_cycles, &
     164             mg_switch_to_pe0_level, &
    164165             mixing_length_1d, momentum_advec, netcdf_precision, ngsrb, nsor, &
    165166             nsor_ini, nx, ny, nz, ocean, omega, omega_sor, &
  • palm/trunk/SOURCE/read_var_list.f90

    r850 r927  
    44! Current revisions:
    55! ------------------
    6 !
     6! +masking_method
    77!
    88! Former revisions:
     
    401401          CASE ( 'loop_optimization' )
    402402             READ ( 13 )  loop_optimization
     403          CASE ( 'masking_method' )
     404             READ ( 13 )  masking_method
    403405          CASE ( 'mean_inflow_profiles' )
    404406             IF ( .NOT. ALLOCATED( mean_inflow_profiles ) )  THEN
  • palm/trunk/SOURCE/write_var_list.f90

    r850 r927  
    44! Current revisions:
    55! -----------------
    6 !
     6! +masking_method
    77!
    88! Former revisions:
     
    316316    WRITE ( 14 )  'loop_optimization             '
    317317    WRITE ( 14 )  loop_optimization
     318    WRITE ( 14 )  'masking_method                '
     319    WRITE ( 14 )  masking_method
    318320    IF ( ALLOCATED( mean_inflow_profiles ) )  THEN
    319321       WRITE ( 14 )  'mean_inflow_profiles          '
Note: See TracChangeset for help on using the changeset viewer.