Changeset 2178 for palm/trunk/SOURCE


Ignore:
Timestamp:
Mar 17, 2017 11:07:39 AM (7 years ago)
Author:
hellstea
Message:

Nesting bugfixes

Location:
palm/trunk/SOURCE
Files:
4 edited

Legend:

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

    r2170 r2178  
    36033603          dist_nxl    = MAX( inflow_disturbance_begin, nxl )
    36043604          dist_nxr(1) = MIN( inflow_disturbance_end, nxr )
     3605       ELSEIF ( bc_lr == 'nested' )  THEN
     3606          dist_nxl = MAX( inflow_disturbance_begin, nxl )
    36053607       ENDIF
    36063608       IF ( bc_ns == 'dirichlet/radiation' )  THEN
     
    36103612          dist_nys    = MAX( inflow_disturbance_begin, nys )
    36113613          dist_nyn(1) = MIN( inflow_disturbance_end, nyn )
     3614       ELSEIF ( bc_ns == 'nested' )  THEN
     3615          dist_nys = MAX( inflow_disturbance_begin, nys )
    36123616       ENDIF
    36133617    ELSE
  • palm/trunk/SOURCE/init_pegrid.f90

    r2177 r2178  
    261261       numproc_sqr = SQRT( REAL( numprocs, KIND=wp ) )
    262262       pdims(1)    = MAX( numproc_sqr , 1 )
    263        DO  WHILE ( MOD( numprocs , pdims(1) ) /= 0 )
     263       pdims(2) = numprocs / pdims(1)
     264       DO  WHILE ( MOD( numprocs , pdims(1) ) /= 0  .OR.                        &
     265              MOD( nx+1, pdims(1) ) /= 0  .OR.                                  &
     266              MOD( ny+1, pdims(2) ) /= 0 )
    264267          pdims(1) = pdims(1) - 1
     268          pdims(2) = numprocs / pdims(1)
    265269       ENDDO
    266        pdims(2) = numprocs / pdims(1)
    267270
    268271    ELSEIF ( npex /= -1  .AND.  npey /= -1 )  THEN
  • palm/trunk/SOURCE/palm.f90

    r2177 r2178  
    161161
    162162    USE control_parameters,                                                    &
    163         ONLY:  constant_diffusion, coupling_char, coupling_mode,               &
     163        ONLY:  cloud_physics, constant_diffusion, coupling_char, coupling_mode,&
    164164               do2d_at_begin, do3d_at_begin, humidity, initializing_actions,   &
    165165               io_blocks, io_group,                                            &
    166                large_scale_forcing, message_string, nest_domain, neutral,      &
     166               large_scale_forcing, message_string, microphysics_seifert,      &
     167               nest_domain, neutral,                                           &
    167168               nudging, passive_scalar, simulated_time, simulated_time_chr,    &
    168169               urban_surface,                                                  &
     
    203204    USE pmc_interface,                                                         &
    204205        ONLY:  cpl_id, nested_run, pmci_child_initialize, pmci_init,           &
    205                pmci_modelconfiguration, pmci_parent_initialize
     206               pmci_modelconfiguration, pmci_parent_initialize,                &
     207               pmci_ensure_nest_mass_conservation
    206208
    207209    USE radiation_model_mod,                                                   &
     
    352354!--       Send initial condition data from parent to children
    353355          CALL pmci_parent_initialize
    354        END IF
    355356!
    356357!--    Exchange_horiz is needed after the nest initialization
    357        IF ( nest_domain )  THEN
    358           CALL exchange_horiz( u, nbgp )
    359           CALL exchange_horiz( v, nbgp )
    360           CALL exchange_horiz( w, nbgp )
    361           IF ( .NOT. neutral )  THEN
    362              CALL exchange_horiz( pt, nbgp )
     358          IF ( nest_domain )  THEN
     359             CALL exchange_horiz( u, nbgp )
     360             CALL exchange_horiz( v, nbgp )
     361             CALL exchange_horiz( w, nbgp )
     362             IF ( .NOT. neutral )  THEN
     363                CALL exchange_horiz( pt, nbgp )
     364             ENDIF
     365             IF ( .NOT. constant_diffusion )  CALL exchange_horiz( e, nbgp )
     366             IF ( humidity )  THEN
     367                CALL exchange_horiz( q, nbgp )
     368                IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
     369!                   CALL exchange_horiz( qc, nbgp )
     370                   CALL exchange_horiz( qr, nbgp )
     371!                   CALL exchange_horiz( nc, nbgp )
     372                   CALL exchange_horiz( nr, nbgp )
     373                ENDIF
     374             ENDIF
     375             IF ( passive_scalar )  CALL exchange_horiz( s, nbgp )
     376
     377             CALL pmci_ensure_nest_mass_conservation
     378             CALL pres
    363379          ENDIF
    364           IF ( .NOT. constant_diffusion )  CALL exchange_horiz( e, nbgp )
    365           IF ( humidity       )  CALL exchange_horiz( q, nbgp )
    366           IF ( passive_scalar )  CALL exchange_horiz( s, nbgp )
    367380       ENDIF
    368381
  • palm/trunk/SOURCE/time_integration.f90

    r2175 r2178  
    676676                   CALL disturb_field( nzb_u_inner, tend, u )
    677677                   CALL disturb_field( nzb_v_inner, tend, v )
    678                 ELSEIF ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )  THEN
     678                ELSEIF ( ( .NOT. bc_lr_cyc  .OR.  .NOT. bc_ns_cyc )            &
     679                     .AND. .NOT. nest_domain )  THEN
    679680!
    680681!--                Runs with a non-cyclic lateral wall need perturbations
Note: See TracChangeset for help on using the changeset viewer.