Ignore:
Timestamp:
May 21, 2013 11:58:22 AM (8 years ago)
Author:
fricke
Message:

Bugfix: In case of non-cyclic lateral boundary conditions, Neumann boundary conditions for the velocity components at the outflow are in fact radiation boundary conditions using the maximum phase velocity that ensures numerical stability (CFL-condition).
Logical operator use_cmax is now used instead of bc_lr_dirneu/_neudir.

File:
1 edited

Legend:

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

    r1140 r1159  
    2020! Current revisions:
    2121! -----------------
     22! dirichlet/neumann and neumann/dirichlet removed
    2223!
    2324!
     
    10511052!-- horizontal boundary conditions.
    10521053    IF ( pleft == MPI_PROC_NULL )  THEN
    1053        IF ( bc_lr == 'dirichlet/radiation' .OR. bc_lr == 'dirichlet/neumann' )  THEN
     1054       IF ( bc_lr == 'dirichlet/radiation' )  THEN
    10541055          inflow_l  = .TRUE.
    1055        ELSEIF ( bc_lr == 'radiation/dirichlet' .OR. bc_lr == 'neumann/dirichlet' )  THEN
     1056       ELSEIF ( bc_lr == 'radiation/dirichlet' )  THEN
    10561057          outflow_l = .TRUE.
    10571058       ENDIF
     
    10591060
    10601061    IF ( pright == MPI_PROC_NULL )  THEN
    1061        IF ( bc_lr == 'dirichlet/radiation' .OR. bc_lr == 'dirichlet/neumann' )  THEN
     1062       IF ( bc_lr == 'dirichlet/radiation' )  THEN
    10621063          outflow_r = .TRUE.
    1063        ELSEIF ( bc_lr == 'radiation/dirichlet' .OR. bc_lr == 'neumann/dirichlet' )  THEN
     1064       ELSEIF ( bc_lr == 'radiation/dirichlet' )  THEN
    10641065          inflow_r  = .TRUE.
    10651066       ENDIF
     
    10671068
    10681069    IF ( psouth == MPI_PROC_NULL )  THEN
    1069        IF ( bc_ns == 'dirichlet/radiation' .OR. bc_ns == 'dirichlet/neumann' )  THEN
     1070       IF ( bc_ns == 'dirichlet/radiation' )  THEN
    10701071          outflow_s = .TRUE.
    1071        ELSEIF ( bc_ns == 'radiation/dirichlet' .OR. bc_ns == 'neumann/dirichlet' )  THEN
     1072       ELSEIF ( bc_ns == 'radiation/dirichlet' )  THEN
    10721073          inflow_s  = .TRUE.
    10731074       ENDIF
     
    10751076
    10761077    IF ( pnorth == MPI_PROC_NULL )  THEN
    1077        IF ( bc_ns == 'dirichlet/radiation' .OR. bc_ns == 'dirichlet/neumann' )  THEN
     1078       IF ( bc_ns == 'dirichlet/radiation' )  THEN
    10781079          inflow_n  = .TRUE.
    1079        ELSEIF ( bc_ns == 'radiation/dirichlet' .OR. bc_ns == 'neumann/dirichlet' )  THEN
     1080       ELSEIF ( bc_ns == 'radiation/dirichlet' )  THEN
    10801081          outflow_n = .TRUE.
    10811082       ENDIF
     
    11071108
    11081109#elif ! defined ( __parallel )
    1109     IF ( bc_lr == 'dirichlet/radiation' .OR. bc_lr == 'dirichlet/neumann' )  THEN
     1110    IF ( bc_lr == 'dirichlet/radiation' )  THEN
    11101111       inflow_l  = .TRUE.
    11111112       outflow_r = .TRUE.
    1112     ELSEIF ( bc_lr == 'radiation/dirichlet' .OR. bc_lr == 'neumann/dirichlet' )  THEN
     1113    ELSEIF ( bc_lr == 'radiation/dirichlet' )  THEN
    11131114       outflow_l = .TRUE.
    11141115       inflow_r  = .TRUE.
    11151116    ENDIF
    11161117
    1117     IF ( bc_ns == 'dirichlet/radiation' .OR. bc_ns == 'dirichlet/neumann' )  THEN
     1118    IF ( bc_ns == 'dirichlet/radiation' )  THEN
    11181119       inflow_n  = .TRUE.
    11191120       outflow_s = .TRUE.
    1120     ELSEIF ( bc_ns == 'radiation/dirichlet' .OR. bc_ns == 'neumann/dirichlet' )  THEN
     1121    ELSEIF ( bc_ns == 'radiation/dirichlet' )  THEN
    11211122       outflow_n = .TRUE.
    11221123       inflow_s  = .TRUE.
Note: See TracChangeset for help on using the changeset viewer.