Ignore:
Timestamp:
Jun 13, 2016 7:12:51 AM (5 years ago)
Author:
hellstea
Message:

last commit documented

File:
1 edited

Legend:

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

    r1923 r1933  
    2525! $Id$
    2626!
     27! 1923 2016-05-31 16:37:07Z boeske
     28! Initial version of purely vertical nesting introduced.
     29!
    2730! 1922 2016-05-31 16:36:08Z boeske
    2831! Bugfix: array transposition checks restricted to cases if a fourier
     
    153156               maximum_parallel_io_streams, message_string,                    &
    154157               mg_switch_to_pe0_level, momentum_advec, nest_bound_l,           &
    155                nest_bound_n, nest_bound_r, nest_bound_s, neutral, psolver,    &
    156                outflow_l, outflow_n, outflow_r, outflow_s, recycling_width,    &
    157                scalar_advec, subdomain_size
     158               nest_bound_n, nest_bound_r, nest_bound_s, nest_domain, neutral, &
     159               psolver, outflow_l, outflow_n, outflow_r, outflow_s,            &
     160               recycling_width, scalar_advec, subdomain_size
    158161
    159162    USE grid_variables,                                                        &
     
    170173     
    171174    USE pegrid
    172 
     175   
     176    USE pmc_interface,                                                         &   
     177        ONLY:  nesting_mode
     178   
    173179    USE spectra_mod,                                                           &
    174180        ONLY:  calculate_spectra, dt_dosp
     
    10921098#if defined( __parallel )
    10931099!
    1094 !-- Setting of flags for inflow/outflow/nesting conditions in case of non-cyclic
    1095 !-- horizontal boundary conditions.
    1096     IF ( pleft == MPI_PROC_NULL )  THEN
    1097        IF ( bc_lr == 'dirichlet/radiation' )  THEN
    1098           inflow_l  = .TRUE.
    1099        ELSEIF ( bc_lr == 'radiation/dirichlet' )  THEN
    1100           outflow_l = .TRUE.
    1101        ELSEIF ( bc_lr == 'nested' )  THEN
     1100!-- Setting of flags for inflow/outflow/nesting conditions.
     1101    IF ( nesting_mode == 'vertical' .AND. nest_domain )  THEN
     1102       IF ( nxl == 0 )  THEN
    11021103          nest_bound_l = .TRUE.
    11031104       ENDIF
    1104     ENDIF
    1105 
    1106     IF ( pright == MPI_PROC_NULL )  THEN
    1107        IF ( bc_lr == 'dirichlet/radiation' )  THEN
    1108           outflow_r = .TRUE.
    1109        ELSEIF ( bc_lr == 'radiation/dirichlet' )  THEN
    1110           inflow_r  = .TRUE.
    1111        ELSEIF ( bc_lr == 'nested' )  THEN
     1105    ELSE
     1106       IF ( pleft == MPI_PROC_NULL )  THEN
     1107          IF ( bc_lr == 'dirichlet/radiation' )  THEN
     1108             inflow_l  = .TRUE.
     1109          ELSEIF ( bc_lr == 'radiation/dirichlet' )  THEN
     1110             outflow_l = .TRUE.
     1111          ELSEIF ( bc_lr == 'nested' )  THEN
     1112             nest_bound_l = .TRUE.
     1113          ENDIF
     1114       ENDIF
     1115    ENDIF
     1116 
     1117    IF ( nesting_mode == 'vertical' .AND. nest_domain )  THEN
     1118       IF ( nxr == nx )  THEN
    11121119          nest_bound_r = .TRUE.
    11131120       ENDIF
    1114     ENDIF
    1115 
    1116     IF ( psouth == MPI_PROC_NULL )  THEN
    1117        IF ( bc_ns == 'dirichlet/radiation' )  THEN
    1118           outflow_s = .TRUE.
    1119        ELSEIF ( bc_ns == 'radiation/dirichlet' )  THEN
    1120           inflow_s  = .TRUE.
    1121        ELSEIF ( bc_ns == 'nested' )  THEN
     1121    ELSE
     1122       IF ( pright == MPI_PROC_NULL )  THEN
     1123          IF ( bc_lr == 'dirichlet/radiation' )  THEN
     1124             outflow_r = .TRUE.
     1125          ELSEIF ( bc_lr == 'radiation/dirichlet' )  THEN
     1126             inflow_r  = .TRUE.
     1127          ELSEIF ( bc_lr == 'nested' )  THEN
     1128             nest_bound_r = .TRUE.
     1129          ENDIF
     1130       ENDIF
     1131    ENDIF
     1132
     1133    IF ( nesting_mode == 'vertical' .AND. nest_domain )  THEN
     1134       IF ( nys == 0 )  THEN
    11221135          nest_bound_s = .TRUE.
    11231136       ENDIF
    1124     ENDIF
    1125 
    1126     IF ( pnorth == MPI_PROC_NULL )  THEN
    1127        IF ( bc_ns == 'dirichlet/radiation' )  THEN
    1128           inflow_n  = .TRUE.
    1129        ELSEIF ( bc_ns == 'radiation/dirichlet' )  THEN
    1130           outflow_n = .TRUE.
    1131        ELSEIF ( bc_ns == 'nested' )  THEN
     1137    ELSE
     1138       IF ( psouth == MPI_PROC_NULL )  THEN
     1139          IF ( bc_ns == 'dirichlet/radiation' )  THEN
     1140             outflow_s = .TRUE.
     1141          ELSEIF ( bc_ns == 'radiation/dirichlet' )  THEN
     1142             inflow_s  = .TRUE.
     1143          ELSEIF ( bc_ns == 'nested' )  THEN
     1144             nest_bound_s = .TRUE.
     1145          ENDIF
     1146       ENDIF
     1147    ENDIF
     1148
     1149    IF ( nesting_mode == 'vertical' .AND. nest_domain )  THEN
     1150       IF ( nyn == ny )  THEN
    11321151          nest_bound_n = .TRUE.
    11331152       ENDIF
    1134     ENDIF
    1135 
     1153    ELSE
     1154       IF ( pnorth == MPI_PROC_NULL )  THEN
     1155          IF ( bc_ns == 'dirichlet/radiation' )  THEN
     1156             inflow_n  = .TRUE.
     1157          ELSEIF ( bc_ns == 'radiation/dirichlet' )  THEN
     1158             outflow_n = .TRUE.
     1159          ELSEIF ( bc_ns == 'nested' )  THEN
     1160             nest_bound_n = .TRUE.
     1161          ENDIF
     1162       ENDIF
     1163    ENDIF
     1164       
    11361165!
    11371166!-- Broadcast the id of the inflow PE
Note: See TracChangeset for help on using the changeset viewer.