Changeset 1781


Ignore:
Timestamp:
Mar 3, 2016 3:12:23 PM (6 years ago)
Author:
raasch
Message:

some pmc calls completely removed, some moved from time_integration to main program, t_..m arrays removed from pmc

Location:
palm/trunk/SOURCE
Files:
3 edited

Legend:

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

    r1780 r1781  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! pmc initialization moved from time_integration to here
    2222!
    2323! Former revisions:
     
    120120
    121121    USE control_parameters,                                                    &
    122         ONLY:  coupling_char, coupling_mode, do2d_at_begin, do3d_at_begin,     &
    123                io_blocks, io_group, large_scale_forcing, message_string,       &
    124                nest_domain, nudging, simulated_time, simulated_time_chr,       &
     122        ONLY:  constant_diffusion, coupling_char, coupling_mode,               &
     123               do2d_at_begin, do3d_at_begin, humidity, io_blocks, io_group,    &
     124               large_scale_forcing, message_string, nest_domain, nudging,      &
     125               passive_scalar, simulated_time, simulated_time_chr,             &
    125126               user_interface_current_revision,                                &
    126127               user_interface_required_revision, version, wall_heatflux,       &
     
    135136
    136137    USE indices,                                                               &
    137         ONLY:  ngp_2dh, ngp_2dh_s_inner, nzb_diff_s_inner, nzb_diff_s_outer,   &
     138        ONLY:  nbgp, ngp_2dh, ngp_2dh_s_inner, nzb_diff_s_inner, nzb_diff_s_outer,   &
    138139               nzb_diff_u, nzb_diff_v, nzb_s_inner, nzb_s_outer, nzb_u_inner,  &
    139140               nzb_u_outer, nzb_v_inner, nzb_v_outer, nzb_w_inner,             &
     
    155156
    156157    USE pmc_interface,                                                         &
    157         ONLY:  cpl_id, nested_run, pmci_init, pmci_modelconfiguration
     158        ONLY:  cpl_id, nested_run, pmci_client_initialize, pmci_init,          &
     159               pmci_modelconfiguration, pmci_server_initialize
    158160
    159161    USE statistics,                                                            &
     
    326328    IF ( nested_run )  THEN
    327329       CALL pmci_modelconfiguration
    328     ENDIF
     330!
     331!--    Receive and interpolate initial data on client.
     332!--    Client initialization must be made first if the model is both client and
     333!--    server
     334       CALL pmci_client_initialize
     335!
     336!--    Send initial condition data from server to client
     337       CALL pmci_server_initialize
     338!
     339!--    Exchange_horiz is needed after the nest initialization
     340       IF ( nest_domain )  THEN
     341          CALL exchange_horiz( u, nbgp )
     342          CALL exchange_horiz( v, nbgp )
     343          CALL exchange_horiz( w, nbgp )
     344          CALL exchange_horiz( pt, nbgp )
     345          IF ( .NOT. constant_diffusion )  CALL exchange_horiz( e, nbgp )
     346          IF (humidity  .OR.  passive_scalar)  THEN
     347             CALL exchange_horiz( q, nbgp )
     348          ENDIF
     349       ENDIF
     350
     351    ENDIF
     352
    329353
    330354!
  • palm/trunk/SOURCE/pmc_interface.f90

    r1780 r1781  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! _p arrays are set zero within buildings too, t.._m arrays and respective
     23! settings within buildings completely removed
    2324!
    2425! Former revisions:
     
    5354
    5455#if defined( __nopointer )
    55 !-- TO_DO: is it really required to use arrays te_m, tu_m, etc. and to set them
    56 !--        to zero withi buildings?
    5756    USE arrays_3d,                                                             &
    58         ONLY:  dzu, dzw, e, e_p, pt, pt_p, q, q_p, te_m, tu_m, tv_m, tw_m, u, &
    59                u_p, v, v_p, w, w_p, zu, zw, z0
     57        ONLY:  dzu, dzw, e, e_p, pt, pt_p, q, q_p, u, u_p, v, v_p, w, w_p, zu, &
     58               zw, z0
    6059#else
    6160   USE arrays_3d,                                                              &
    62         ONLY:  dzu, dzw, e, e_p, e_1, e_2, pt, pt_p, pt_1, pt_2, q, q_p, q_1, q_2, te_m, tu_m, &
    63                tv_m, tw_m, u, u_p, u_1, u_2, v, v_p, v_1, v_2, w, w_p, w_1, w_2, zu, zw, z0
     61        ONLY:  dzu, dzw, e, e_p, e_1, e_2, pt, pt_p, pt_1, pt_2, q, q_p, q_1,  &
     62               q_2, u, u_p, u_1, u_2, v, v_p, v_1, v_2, w, w_p, w_1, w_2, zu,  &
     63               zw, z0
    6464#endif
    6565
     
    23372337             DO   i = nxlg, nxrg
    23382338                DO   j = nysg, nyng
    2339                    u(nzb:nzb_u_inner(j,i),j,i)     = 0.0_wp
    2340                    v(nzb:nzb_v_inner(j,i),j,i)     = 0.0_wp
    2341                    w(nzb:nzb_w_inner(j,i),j,i)     = 0.0_wp
    2342                    e(nzb:nzb_w_inner(j,i),j,i)     = 0.0_wp
    2343                    tu_m(nzb:nzb_u_inner(j,i),j,i)  = 0.0_wp
    2344                    tv_m(nzb:nzb_v_inner(j,i),j,i)  = 0.0_wp
    2345                    tw_m(nzb:nzb_w_inner(j,i),j,i)  = 0.0_wp
    2346                    te_m(nzb:nzb_w_inner(j,i),j,i)  = 0.0_wp
     2339                   u(nzb:nzb_u_inner(j,i),j,i) = 0.0_wp
     2340                   v(nzb:nzb_v_inner(j,i),j,i) = 0.0_wp
     2341                   w(nzb:nzb_w_inner(j,i),j,i) = 0.0_wp
     2342                   e(nzb:nzb_w_inner(j,i),j,i) = 0.0_wp
    23472343                ENDDO
    23482344             ENDDO
     
    36213617          DO   i = nxlg, nxrg
    36223618             DO   j = nysg, nyng
    3623                 u(nzb:nzb_u_inner(j,i),j,i)     = 0.0_wp
    3624                 v(nzb:nzb_v_inner(j,i),j,i)     = 0.0_wp
    3625                 w(nzb:nzb_w_inner(j,i),j,i)     = 0.0_wp
    3626                 e(nzb:nzb_w_inner(j,i),j,i)     = 0.0_wp             
    3627                 tu_m(nzb:nzb_u_inner(j,i),j,i) = 0.0_wp
    3628                 tv_m(nzb:nzb_v_inner(j,i),j,i) = 0.0_wp
    3629                 tw_m(nzb:nzb_w_inner(j,i),j,i) = 0.0_wp
    3630                 te_m(nzb:nzb_w_inner(j,i),j,i) = 0.0_wp
     3619                u(nzb:nzb_u_inner(j,i),j,i)   = 0.0_wp
     3620                v(nzb:nzb_v_inner(j,i),j,i)   = 0.0_wp
     3621                w(nzb:nzb_w_inner(j,i),j,i)   = 0.0_wp
     3622                e(nzb:nzb_s_inner(j,i),j,i)   = 0.0_wp
     3623                u_p(nzb:nzb_u_inner(j,i),j,i) = 0.0_wp
     3624                v_p(nzb:nzb_v_inner(j,i),j,i) = 0.0_wp
     3625                w_p(nzb:nzb_w_inner(j,i),j,i) = 0.0_wp
     3626                e_p(nzb:nzb_s_inner(j,i),j,i) = 0.0_wp
    36313627             ENDDO
    36323628          ENDDO
  • palm/trunk/SOURCE/time_integration.f90

    r1765 r1781  
    1919! Current revisions:
    2020! ------------------
    21 !
     21! some pmc calls removed at the beginning (before timeloop),
     22! pmc initialization moved to the main program
    2223!
    2324! Former revisions:
     
    245246        ONLY:  client_to_server, nested_run, nesting_mode,                     &
    246247               pmci_ensure_nest_mass_conservation, pmci_client_datatrans,      &
    247                pmci_client_initialize, pmci_client_synchronize,                &
    248                pmci_server_datatrans, pmci_server_initialize,                  &
     248               pmci_client_synchronize, pmci_server_datatrans,                 &
    249249               pmci_server_synchronize, pmci_update_new, server_to_client
    250250
     
    309309          time_coupling = time_since_reference_point
    310310       ENDIF
    311     ENDIF
    312 
    313     IF ( nested_run )  THEN
    314 !
    315 !--    TO_DO: try to give more meaningful comments here
    316 !--    Domain nesting: From server to client commmunication
    317 !--    ( direction=SERVER_TO_CLIENT )
    318 !--    Nest initial conditions
    319 !
    320 !--    Send initial condition data from server to client
    321        CALL pmci_server_initialize
    322 !
    323 !--    Receive and interpolate initial data on client
    324        CALL pmci_client_initialize
    325 !
    326 !--    TO_DO, maybe removed
    327 !--    Obs. Nesting may be unnecessary at this point.
    328 !
    329 !--    Nest boundary conditions
    330        CALL pmci_server_datatrans( server_to_client )
    331        CALL pmci_client_datatrans( server_to_client )
    332 
    333        IF ( nesting_mode == 'two-way' )  THEN
    334           CALL pmci_server_datatrans( client_to_server )
    335           CALL pmci_client_datatrans( client_to_server )
    336 !
    337 !--       Exchange_horiz is needed for all server-domains after the anterpolation
    338           CALL exchange_horiz( u, nbgp )
    339           CALL exchange_horiz( v, nbgp )
    340           CALL exchange_horiz( w, nbgp )
    341           CALL exchange_horiz( pt, nbgp )
    342           IF ( .NOT. constant_diffusion )  CALL exchange_horiz( e, nbgp )
    343           intermediate_timestep_count = 0
    344           CALL pres
    345        ENDIF
    346 !
    347 !--    Correct the w top-BC in nest domains to ensure mass conservation.
    348 !--    Copy the interpolated/anterpolated boundary values to the _p
    349 !--    arrays, too, to make sure the interpolated/anterpolated boundary
    350 !--    values are carried over from one RK inner step to another.
    351 !--    These actions must not be done for the root domain.
    352        IF ( nest_domain )  THEN
    353           CALL pmci_ensure_nest_mass_conservation
    354           CALL pmci_update_new
    355        ENDIF
    356 
    357311    ENDIF
    358312
Note: See TracChangeset for help on using the changeset viewer.