Changeset 1781 for palm/trunk
- Timestamp:
- Mar 3, 2016 3:12:23 PM (9 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/palm.f90
r1780 r1781 19 19 ! Current revisions: 20 20 ! ----------------- 21 ! 21 ! pmc initialization moved from time_integration to here 22 22 ! 23 23 ! Former revisions: … … 120 120 121 121 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, & 125 126 user_interface_current_revision, & 126 127 user_interface_required_revision, version, wall_heatflux, & … … 135 136 136 137 USE indices, & 137 ONLY: n gp_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, & 138 139 nzb_diff_u, nzb_diff_v, nzb_s_inner, nzb_s_outer, nzb_u_inner, & 139 140 nzb_u_outer, nzb_v_inner, nzb_v_outer, nzb_w_inner, & … … 155 156 156 157 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 158 160 159 161 USE statistics, & … … 326 328 IF ( nested_run ) THEN 327 329 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 329 353 330 354 ! -
palm/trunk/SOURCE/pmc_interface.f90
r1780 r1781 20 20 ! Current revisions: 21 21 ! ------------------ 22 ! 22 ! _p arrays are set zero within buildings too, t.._m arrays and respective 23 ! settings within buildings completely removed 23 24 ! 24 25 ! Former revisions: … … 53 54 54 55 #if defined( __nopointer ) 55 !-- TO_DO: is it really required to use arrays te_m, tu_m, etc. and to set them56 !-- to zero withi buildings?57 56 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, z057 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 60 59 #else 61 60 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 64 64 #endif 65 65 … … 2337 2337 DO i = nxlg, nxrg 2338 2338 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 2347 2343 ENDDO 2348 2344 ENDDO … … 3621 3617 DO i = nxlg, nxrg 3622 3618 DO j = nysg, nyng 3623 u(nzb:nzb_u_inner(j,i),j,i) 3624 v(nzb:nzb_v_inner(j,i),j,i) 3625 w(nzb:nzb_w_inner(j,i),j,i) 3626 e(nzb:nzb_ w_inner(j,i),j,i) = 0.0_wp3627 tu_m(nzb:nzb_u_inner(j,i),j,i)= 0.0_wp3628 tv_m(nzb:nzb_v_inner(j,i),j,i)= 0.0_wp3629 tw_m(nzb:nzb_w_inner(j,i),j,i)= 0.0_wp3630 te_m(nzb:nzb_w_inner(j,i),j,i)= 0.0_wp3619 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 3631 3627 ENDDO 3632 3628 ENDDO -
palm/trunk/SOURCE/time_integration.f90
r1765 r1781 19 19 ! Current revisions: 20 20 ! ------------------ 21 ! 21 ! some pmc calls removed at the beginning (before timeloop), 22 ! pmc initialization moved to the main program 22 23 ! 23 24 ! Former revisions: … … 245 246 ONLY: client_to_server, nested_run, nesting_mode, & 246 247 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, & 249 249 pmci_server_synchronize, pmci_update_new, server_to_client 250 250 … … 309 309 time_coupling = time_since_reference_point 310 310 ENDIF 311 ENDIF312 313 IF ( nested_run ) THEN314 !315 !-- TO_DO: try to give more meaningful comments here316 !-- Domain nesting: From server to client commmunication317 !-- ( direction=SERVER_TO_CLIENT )318 !-- Nest initial conditions319 !320 !-- Send initial condition data from server to client321 CALL pmci_server_initialize322 !323 !-- Receive and interpolate initial data on client324 CALL pmci_client_initialize325 !326 !-- TO_DO, maybe removed327 !-- Obs. Nesting may be unnecessary at this point.328 !329 !-- Nest boundary conditions330 CALL pmci_server_datatrans( server_to_client )331 CALL pmci_client_datatrans( server_to_client )332 333 IF ( nesting_mode == 'two-way' ) THEN334 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 anterpolation338 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 = 0344 CALL pres345 ENDIF346 !347 !-- Correct the w top-BC in nest domains to ensure mass conservation.348 !-- Copy the interpolated/anterpolated boundary values to the _p349 !-- arrays, too, to make sure the interpolated/anterpolated boundary350 !-- 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 ) THEN353 CALL pmci_ensure_nest_mass_conservation354 CALL pmci_update_new355 ENDIF356 357 311 ENDIF 358 312
Note: See TracChangeset
for help on using the changeset viewer.