Changeset 76 for palm/trunk/SOURCE
- Timestamp:
- Mar 29, 2007 12:58:32 AM (18 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r75 r76 35 35 General revision of non-cyclic horizontal boundary conditions: radiation boundary conditions are now used instead of Neumann conditions at the outflow (calculation needs velocity values for t-dt, which are stored on new arrays u_m_l, u_m_r, etc.), calculation of mean outflow is not needed any more, volume flow control is added for the outflow boundary (currently only for the north boundary!!), additional gridpoints along x and y (uxrp, vynp) are not needed any more, routine "boundary_conds" now operates on timelevel t+dt and is not split in two parts (main, uvw_outflow) any more, Neumann boundary conditions at inflow/outflow in case of non-cyclic boundary conditions for all 2d-arrays that are handled by exchange_horiz_2d 36 36 37 The FFT-method for solving the Poisson-equation is now working with Neumann boundary conditions both at the bottom and the top. This requires adjustments of the tridiagonal coefficients and subtracting the horizontally averaged mean from the vertical velocity field. 38 37 39 +age_m in particle_type 38 40 … … 58 60 The uitility routine interpret_config reads PALM environment variables from NAMELIST instead using the system call GETENV. 59 61 60 advec_u_pw, advec_u_up, advec_v_pw, advec_v_up, asselin_filter, check_parameters, coriolis, data_output_dvrp, data_output_ptseries, data_output_ts, data_output_2d, data_output_3d, diffusion_u, diffusion_v, exchange_horiz, exchange_horiz_2d, flow_statistics, header, init_grid, init_particles, init_pegrid, init_rankine, init_pt_anomaly, init_1d_model, init_3d_model, modules, palm, package_parin, parin, pois mg, prandtl_fluxes, pres, production_e, prognostic_equations, read_var_list, read_3d_binary, sor, swap_timelevel, time_integration, write_var_list, write_3d_binary62 advec_u_pw, advec_u_up, advec_v_pw, advec_v_up, asselin_filter, check_parameters, coriolis, data_output_dvrp, data_output_ptseries, data_output_ts, data_output_2d, data_output_3d, diffusion_u, diffusion_v, exchange_horiz, exchange_horiz_2d, flow_statistics, header, init_grid, init_particles, init_pegrid, init_rankine, init_pt_anomaly, init_1d_model, init_3d_model, modules, palm, package_parin, parin, poisfft, poismg, prandtl_fluxes, pres, production_e, prognostic_equations, read_var_list, read_3d_binary, sor, swap_timelevel, time_integration, write_var_list, write_3d_binary 61 63 62 64 -
palm/trunk/SOURCE/header.f90
r75 r76 283 283 WRITE ( io, 254 ) nx, ny, nzt+1, MIN( nnx, nx+1 ), MIN( nny, ny+1 ), & 284 284 MIN( nnz+2, nzt+2 ) 285 IF ( nxa == nx .AND. nya == ny .AND. nza == nz ) THEN 286 WRITE ( io, 255 ) 287 ELSE 288 WRITE ( io, 256 ) nnx-(nxa-nx), nny-(nya-ny), nzt+2 285 IF ( numprocs > 1 ) THEN 286 IF ( nxa == nx .AND. nya == ny .AND. nza == nz ) THEN 287 WRITE ( io, 255 ) 288 ELSE 289 WRITE ( io, 256 ) nnx-(nxa-nx), nny-(nya-ny), nzt+2 290 ENDIF 289 291 ENDIF 290 292 IF ( sloping_surface ) WRITE ( io, 260 ) alpha_surface -
palm/trunk/SOURCE/poisfft.f90
r4 r76 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Tridiagonal coefficients adjusted for Neumann boundary conditions both at 7 ! the bottom and the top. 7 8 ! 8 9 ! Former revisions: … … 393 394 !------------------------------------------------------------------------------! 394 395 396 USE control_parameters 397 395 398 IMPLICIT NONE 396 399 … … 443 446 ENDDO 444 447 ENDDO 448 449 ! 450 !-- Indices i=0, j=0 correspond to horizontally averaged pressure. 451 !-- The respective values of ar should be zero at all k-levels if 452 !-- acceleration of horizontally averaged vertical velocity is zero. 453 IF ( ibc_p_b == 1 .AND. ibc_p_t == 1 ) THEN 454 IF ( j == 0 .AND. nxl_z == 0 ) THEN 455 #if defined( __parallel ) 456 DO k = 1, nz 457 ar(nxl_z,j,k) = 0.0 458 ENDDO 459 #else 460 DO k = 1, nz 461 ar(k,j,nxl_z) = 0.0 462 ENDDO 463 #endif 464 ENDIF 465 ENDIF 445 466 446 467 END SUBROUTINE substi … … 1466 1487 IMPLICIT NONE 1467 1488 1468 INTEGER :: i, j,k1489 INTEGER :: i, k 1469 1490 1470 1491 REAL, DIMENSION(0:nx,nz) :: ar … … 1495 1516 ENDDO 1496 1517 1518 ! 1519 !-- Indices i=0, j=0 correspond to horizontally averaged pressure. 1520 !-- The respective values of ar should be zero at all k-levels if 1521 !-- acceleration of horizontally averaged vertical velocity is zero. 1522 IF ( ibc_p_b == 1 .AND. ibc_p_t == 1 ) THEN 1523 IF ( j == 0 ) THEN 1524 DO k = 1, nz 1525 ar(0,k) = 0.0 1526 ENDDO 1527 ENDIF 1528 ENDIF 1529 1497 1530 END SUBROUTINE substi_1dd 1498 1531 -
palm/trunk/SOURCE/pres.f90
r75 r76 5 5 ! ----------------- 6 6 ! Volume flow control for non-cyclic boundary conditions added (currently only 7 ! for the north boundary!!), 2nd+3rd argument removed from exchange horiz 7 ! for the north boundary!!), 2nd+3rd argument removed from exchange horiz, 8 ! mean vertical velocity is removed in case of Neumann boundary conditions 9 ! both at the bottom and the top 8 10 ! 9 11 ! Former revisions: … … 45 47 46 48 REAL, DIMENSION(1:2) :: volume_flow_l, volume_flow_offset 49 REAL, DIMENSION(1:nzt) :: w_l, w_l_l 47 50 48 51 … … 96 99 ENDIF 97 100 101 ! 102 !-- Remove mean vertical velocity 103 IF ( ibc_p_b == 1 .AND. ibc_p_t == 1 ) THEN 104 IF ( simulated_time > 0.0 ) THEN ! otherwise nzb_w_inner is not yet known 105 w_l = 0.0; w_l_l = 0.0 106 DO i = nxl, nxr 107 DO j = nys, nyn 108 DO k = nzb_w_inner(j,i)+1, nzt 109 w_l_l(k) = w_l_l(k) + w(k,j,i) 110 ENDDO 111 ENDDO 112 ENDDO 113 #if defined( __parallel ) 114 CALL MPI_ALLREDUCE( w_l_l(1), w_l(1), nzt, MPI_REAL, MPI_SUM, comm2d, & 115 ierr ) 116 #else 117 w_l = w_l_l 118 #endif 119 DO k = 1, nzt 120 w_l(k) = w_l(k) / ngp_2dh_outer(k,0) 121 ENDDO 122 DO i = nxl, nxr 123 DO j = nys, nyn 124 DO k = nzb_w_inner(j,i)+1, nzt 125 w(k,j,i) = w(k,j,i) - w_l(k) 126 ENDDO 127 ENDDO 128 ENDDO 129 ENDIF 130 ENDIF 98 131 99 132 !
Note: See TracChangeset
for help on using the changeset viewer.