Changeset 51 for palm/trunk
- Timestamp:
- Mar 7, 2007 8:38:00 AM (18 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r48 r51 1 1 New: 2 2 --- 3 4 Wall functions for vertical walls now include diabatic conditions. New subroutine wall_fluxes. New 4D-array rif_wall. 3 5 4 6 new d3par-parameter netcdf_64bit_3d to switch on 64bit offset only for 3D files … … 10 12 samples added to the user interface which show how to add user-define time series quantities. 11 13 12 check_open, check_parameters, header, init_3d_model, modules, netcdf, parin, user_interface 14 Makefile, check_open, check_parameters, header, init_3d_model, modules, netcdf, parin, user_interface 15 16 New: wall_fluxes 13 17 14 18 … … 20 24 21 25 d3par-parameter data_output_ts removed. Timeseries output for "profil" removed. Timeseries are now switched on by dt_dots. Timeseries data is collected in flow_statistics. 26 27 Initial velocities at nzb+1 are regarded for volume flow control in case they have been set zero before (to avoid small timesteps); see new internal parameters u/v_nzb_p1_for_vfc. 22 28 23 29 check_parameters, data_output_ts, flow_statistics, init_3d_model, modules, parin, time_integration -
palm/trunk/SOURCE/Makefile
r48 r51 6 6 # default suffixes removed from the suffix list to avoid calling of m2c in 7 7 # case of .mod files 8 # +wall_fluxes 8 9 # 9 10 # Former revisions: 10 11 # ----------------- 11 # $Id 12 # $Id$ 12 13 # RCS Log replace by Id keyword, revision history cleaned up 13 14 # … … 55 56 swap_timelevel.f90 temperton_fft.f90 time_integration.f90 \ 56 57 time_to_string.f90 timestep.f90 timestep_scheme_steering.f90 \ 57 transpose.f90 user_interface.f90 w rite_3d_binary.f90 \58 transpose.f90 user_interface.f90 wall_fluxes.f90 write_3d_binary.f90 \ 58 59 write_compressed.f90 write_var_list.f90 59 60 … … 84 85 temperton_fft.o time_integration.o time_to_string.o timestep.o \ 85 86 timestep_scheme_steering.o transpose.o user_interface.o \ 86 w rite_3d_binary.o write_compressed.o write_var_list.o87 wall_fluxes.o write_3d_binary.o write_compressed.o write_var_list.o 87 88 88 89 CC = cc … … 216 217 transpose.o: modules.o 217 218 user_interface.o: modules.o user_interface.f90 219 wall_fluxes.o: modules.o 218 220 write_3d_binary.o: modules.o random_function.o 219 221 write_compressed.o: modules.o -
palm/trunk/SOURCE/check_parameters.f90
r48 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! "by_user" allowed as initializing action, -data_output_ts 6 ! "by_user" allowed as initializing action, -data_output_ts, 7 ! leapfrog with non-flat topography not allowed any more 7 8 ! 8 9 ! Former revisions: … … 88 89 IF ( momentum_advec /= 'pw-scheme' ) THEN 89 90 WRITE( action, '(A,A)' ) 'momentum_advec = ', momentum_advec 91 ENDIF 92 IF ( timestep_scheme(1:8) == 'leapfrog' ) THEN 93 WRITE( action, '(A,A)' ) 'timestep_scheme = ', timestep_scheme 90 94 ENDIF 91 95 IF ( psolver == 'multigrid' .OR. psolver == 'sor' ) THEN -
palm/trunk/SOURCE/diffusion_u.f90
r39 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! wall functions now include diabatic conditions, call of routine wall_fluxes 7 7 ! 8 8 ! Former revisions: … … 30 30 ! ------------ 31 31 ! Diffusion term of the u-component 32 ! To do: additional damping (needed for non-cyclic bc) causes bad vectorization 33 ! and slows down the speed on NEC about 5-10% 32 34 !------------------------------------------------------------------------------! 33 35 … … 55 57 56 58 INTEGER :: i, j, k 57 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp , usvs59 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp 58 60 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_y(nys-1:nyn+1) 59 61 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 60 62 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 63 REAL, DIMENSION(nzb:nzt+1) :: usvs 61 64 REAL, DIMENSION(:,:), POINTER :: usws 62 65 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w … … 100 103 !-- Wall functions at the north and south walls, respectively 101 104 IF ( wall_u(j,i) /= 0.0 ) THEN 105 106 ! 107 !-- Calculate the horizontal momentum flux u'v' 108 CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i), & 109 usvs, 1.0, 0.0, 0.0, 0.0 ) 110 102 111 DO k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i) 103 usvs = kappa * u(k,j,i) / LOG( 0.5 * dy / z0(j,i) )104 usvs = -usvs * ABS( usvs )105 112 kmyp_x = 0.25 * & 106 113 ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) … … 132 139 + kmym_x * ( v(k,j,i) - v(k,j,i-1) ) * ddx & 133 140 ) & 134 + wall_u(j,i) * usvs 141 + wall_u(j,i) * usvs(k) & 135 142 ) * ddy 136 143 ENDDO … … 204 211 205 212 INTEGER :: i, j, k 206 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp , usvs213 REAL :: kmym_x, kmym_y, kmyp_x, kmyp_y, kmzm, kmzp 207 214 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_y(nys-1:nyn+1) 208 215 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 209 216 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 217 REAL, DIMENSION(nzb:nzt+1) :: usvs 210 218 REAL, DIMENSION(:,:), POINTER :: usws 211 219 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w … … 246 254 !-- Wall functions at the north and south walls, respectively 247 255 IF ( wall_u(j,i) .NE. 0.0 ) THEN 256 257 ! 258 !-- Calculate the horizontal momentum flux u'v' 259 CALL wall_fluxes( i, j, nzb_u_inner(j,i)+1, nzb_u_outer(j,i), & 260 usvs, 1.0, 0.0, 0.0, 0.0 ) 261 248 262 DO k = nzb_u_inner(j,i)+1, nzb_u_outer(j,i) 249 usvs = kappa * u(k,j,i) / LOG( 0.5 * dy / z0(j,i) )250 usvs = -usvs * ABS( usvs )251 263 kmyp_x = 0.25 * ( km(k,j,i)+km(k,j+1,i)+km(k,j,i-1)+km(k,j+1,i-1) ) 252 264 kmym_x = 0.25 * ( km(k,j,i)+km(k,j-1,i)+km(k,j,i-1)+km(k,j-1,i-1) ) … … 276 288 + kmym_x * ( v(k,j,i) - v(k,j,i-1) ) * ddx & 277 289 ) & 278 + wall_u(j,i) * usvs 290 + wall_u(j,i) * usvs(k) & 279 291 ) * ddy 280 292 ENDDO -
palm/trunk/SOURCE/diffusion_v.f90
r39 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! wall functions now include diabatic conditions, call of routine wall_fluxes 7 7 ! 8 8 ! Former revisions: … … 55 55 56 56 INTEGER :: i, j, k 57 REAL :: kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp , vsus57 REAL :: kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp 58 58 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1) 59 59 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 60 60 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 61 REAL, DIMENSION(nzb:nzt+1) :: vsus 61 62 REAL, DIMENSION(:,:), POINTER :: vsws 62 63 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w … … 100 101 !-- Wall functions at the left and right walls, respectively 101 102 IF ( wall_v(j,i) /= 0.0 ) THEN 103 104 ! 105 !-- Calculate the horizontal momentum flux v'u' 106 CALL wall_fluxes( i, j, nzb_v_inner(j,i)+1, nzb_v_outer(j,i), & 107 vsus, 0.0, 1.0, 0.0, 0.0 ) 108 102 109 DO k = nzb_v_inner(j,i)+1, nzb_v_outer(j,i) 103 vsus = kappa * v(k,j,i) / LOG( 0.5 * dx / z0(j,i))104 vsus = -vsus * ABS( vsus )105 110 kmxp_x = 0.25 * & 106 111 ( km(k,j,i)+km(k,j,i+1)+km(k,j-1,i)+km(k,j-1,i+1) ) … … 132 137 + kmxm_y * ( u(k,j,i) - u(k,j-1,i) ) * ddy & 133 138 ) & 134 + wall_v(j,i) * vsus 139 + wall_v(j,i) * vsus(k) & 135 140 ) * ddx 136 141 ENDDO … … 204 209 205 210 INTEGER :: i, j, k 206 REAL :: kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp , vsus211 REAL :: kmxm_x, kmxm_y, kmxp_x, kmxp_y, kmzm, kmzp 207 212 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1) 208 213 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 209 214 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 215 REAL, DIMENSION(nzb:nzt+1) :: vsus 210 216 REAL, DIMENSION(:,:), POINTER :: vsws 211 217 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w … … 245 251 !-- Wall functions at the left and right walls, respectively 246 252 IF ( wall_v(j,i) /= 0.0 ) THEN 253 254 ! 255 !-- Calculate the horizontal momentum flux v'u' 256 CALL wall_fluxes( i, j, nzb_v_inner(j,i)+1, nzb_v_outer(j,i), & 257 vsus, 0.0, 1.0, 0.0, 0.0 ) 258 247 259 DO k = nzb_v_inner(j,i)+1, nzb_v_outer(j,i) 248 vsus = kappa * v(k,j,i) / LOG( 0.5 * dx / z0(j,i))249 vsus = -vsus * ABS( vsus )250 260 kmxp_x = 0.25 * & 251 261 ( km(k,j,i)+km(k,j,i+1)+km(k,j-1,i)+km(k,j-1,i+1) ) … … 277 287 + kmxm_y * ( u(k,j,i) - u(k,j-1,i) ) * ddy & 278 288 ) & 279 + wall_v(j,i) * vsus 289 + wall_v(j,i) * vsus(k) & 280 290 ) * ddx 281 291 ENDDO -
palm/trunk/SOURCE/diffusion_w.f90
r39 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! wall functions now include diabatic conditions, call of routine wall_fluxes 7 7 ! 8 8 ! Former revisions: … … 54 54 INTEGER :: i, j, k 55 55 REAL :: kmxm_x, kmxm_z, kmxp_x, kmxp_z, kmym_y, kmym_z, kmyp_y, & 56 kmyp_z , wsus, wsvs56 kmyp_z 57 57 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1), & 58 58 km_damp_y(nys-1:nyn+1) 59 59 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 60 60 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 61 REAL, DIMENSION(nzb:nzt+1) :: wsus, wsvs 61 62 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w 62 63 … … 113 114 !-- Wall functions at all vertical walls, where necessary 114 115 IF ( wall_w_x(j,i) /= 0.0 .OR. wall_w_y(j,i) /= 0.0 ) THEN 116 117 ! 118 !-- Calculate the horizontal momentum fluxes w'u' and/or w'v' 119 IF ( wall_w_x(j,i) /= 0.0 ) THEN 120 CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1, & 121 nzb_w_outer(j,i), wsus, 0.0, 0.0, 0.0, & 122 1.0 ) 123 ELSE 124 wsus = 0.0 125 ENDIF 126 127 IF ( wall_w_y(j,i) /= 0.0 ) THEN 128 CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1, & 129 nzb_w_outer(j,i), wsvs, 0.0, 0.0, 1.0, & 130 0.0 ) 131 ELSE 132 wsvs = 0.0 133 ENDIF 134 115 135 DO k = nzb_w_inner(j,i)+1, nzb_w_outer(j,i) 116 IF ( wall_w_x(j,i) /= 0.0 ) THEN117 wsus = kappa * w(k,j,i) / LOG( 0.5 * dx / z0(j,i))118 wsus = -wsus * ABS( wsus )119 ELSE120 wsus = 0.0121 ENDIF122 IF ( wall_w_y(j,i) /= 0.0 ) THEN123 wsvs = kappa * w(k,j,i) / LOG( 0.5 * dy / z0(j,i))124 wsvs = -wsvs * ABS( wsvs )125 ELSE126 wsvs = 0.0127 ENDIF128 136 ! 129 137 !-- Interpolate eddy diffusivities on staggered gridpoints … … 163 171 + kmxm_z * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) & 164 172 ) & 165 + wall_w_x(j,i) * wsus 173 + wall_w_x(j,i) * wsus(k) & 166 174 ) * ddx & 167 175 + ( fwyp(j,i) * ( & … … 173 181 + kmym_z * ( v(k+1,j,i) - v(k,j,i) ) * ddzu(k+1) & 174 182 ) & 175 + wall_w_y(j,i) * wsvs 183 + wall_w_y(j,i) * wsvs(k) & 176 184 ) * ddy & 177 185 + 2.0 * ( & … … 202 210 INTEGER :: i, j, k 203 211 REAL :: kmxm_x, kmxm_z, kmxp_x, kmxp_z, kmym_y, kmym_z, kmyp_y, & 204 kmyp_z , wsus, wsvs212 kmyp_z 205 213 REAL :: ddzu(1:nzt+1), ddzw(1:nzt+1), km_damp_x(nxl-1:nxr+1), & 206 214 km_damp_y(nys-1:nyn+1) 207 215 REAL :: z0(nys-1:nyn+1,nxl-1:nxr+1) 208 216 REAL :: tend(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) 217 REAL, DIMENSION(nzb:nzt+1) :: wsus, wsvs 209 218 REAL, DIMENSION(:,:,:), POINTER :: km, u, v, w 210 219 … … 255 264 !-- Wall functions at all vertical walls, where necessary 256 265 IF ( wall_w_x(j,i) /= 0.0 .OR. wall_w_y(j,i) /= 0.0 ) THEN 266 267 ! 268 !-- Calculate the horizontal momentum fluxes w'u' and/or w'v' 269 IF ( wall_w_x(j,i) /= 0.0 ) THEN 270 CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1, nzb_w_outer(j,i), & 271 wsus, 0.0, 0.0, 0.0, 1.0 ) 272 ELSE 273 wsus = 0.0 274 ENDIF 275 276 IF ( wall_w_y(j,i) /= 0.0 ) THEN 277 CALL wall_fluxes( i, j, nzb_w_inner(j,i)+1, nzb_w_outer(j,i), & 278 wsvs, 0.0, 0.0, 1.0, 0.0 ) 279 ELSE 280 wsvs = 0.0 281 ENDIF 282 257 283 DO k = nzb_w_inner(j,i)+1, nzb_w_outer(j,i) 258 IF ( wall_w_x(j,i) /= 0.0 ) THEN259 wsus = kappa * w(k,j,i) / LOG( 0.5 * dx / z0(j,i))260 wsus = -wsus * ABS( wsus )261 ELSE262 wsus = 0.0263 ENDIF264 IF ( wall_w_y(j,i) /= 0.0 ) THEN265 wsvs = kappa * w(k,j,i) / LOG( 0.5 * dy / z0(j,i))266 wsvs = -wsvs * ABS( wsvs )267 ELSE268 wsvs = 0.0269 ENDIF270 284 ! 271 285 !-- Interpolate eddy diffusivities on staggered gridpoints … … 301 315 + kmxm_z * ( u(k+1,j,i) - u(k,j,i) ) * ddzu(k+1) & 302 316 ) & 303 + wall_w_x(j,i) * wsus 317 + wall_w_x(j,i) * wsus(k) & 304 318 ) * ddx & 305 319 + ( fwyp(j,i) * ( & … … 311 325 + kmym_z * ( v(k+1,j,i) - v(k,j,i) ) * ddzu(k+1) & 312 326 ) & 313 + wall_w_y(j,i) * wsvs 327 + wall_w_y(j,i) * wsvs(k) & 314 328 ) * ddy & 315 329 + 2.0 * ( & -
palm/trunk/SOURCE/flow_statistics.f90
r48 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Collection of time series quantities moved from routine flow_statistics to 7 ! here, routine user_statistics is called for each statistic region 7 8 ! 8 9 ! Former revisions: -
palm/trunk/SOURCE/init_3d_model.f90
r48 r51 8 8 ! ----------------- 9 9 ! New initializing action "by_user" calls user_init_3d_model, 10 ! ts_value is allocated 10 ! ts_value is allocated, +module netcdf_control, 11 ! initial velocities at nzb+1 are regarded for volume 12 ! flow control in case they have been set zero before (to avoid small timesteps) 11 13 ! 12 14 ! Former revisions: … … 44 46 USE interfaces 45 47 USE model_1d 48 USE netcdf_control 46 49 USE particle_attributes 47 50 USE pegrid … … 183 186 184 187 ! 188 !-- 4D-array for storing the Rif-values at vertical walls 189 IF ( topography /= 'flat' ) THEN 190 ALLOCATE( rif_wall(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1,1:4) ) 191 rif_wall = 0.0 192 ENDIF 193 194 ! 195 !-- Velocities at nzb+1 needed for volume flow control 196 IF ( conserve_volume_flow ) THEN 197 ALLOCATE( u_nzb_p1_for_vfc(nys:nyn), v_nzb_p1_for_vfc(nxl:nxr) ) 198 u_nzb_p1_for_vfc = 0.0 199 v_nzb_p1_for_vfc = 0.0 200 ENDIF 201 202 ! 185 203 !-- Initial assignment of the pointers 186 204 IF ( timestep_scheme(1:5) /= 'runge' ) THEN … … 382 400 ENDDO 383 401 ! 384 !-- Set initial horizontal velocities at the lowest grid levels to zero385 !-- in order to avoid too small time steps caused by the diffusion402 !-- Set initial horizontal velocities at the lowest computational grid levels 403 !-- to zero in order to avoid too small time steps caused by the diffusion 386 404 !-- limit in the initial phase of a run (at k=1, dz/2 occurs in the 387 !-- limiting formula!) 405 !-- limiting formula!). The original values are stored to be later used for 406 !-- volume flow control. 388 407 DO i = nxl-1, nxr+1 389 408 DO j = nys-1, nyn+1 … … 392 411 ENDDO 393 412 ENDDO 413 IF ( conserve_volume_flow ) THEN 414 IF ( nxr == nx ) THEN 415 DO j = nys, nyn 416 k = nzb_u_inner(j,nx) + 1 417 u_nzb_p1_for_vfc(j) = u_init(k) * dzu(k) 418 ENDDO 419 ENDIF 420 IF ( nyn == ny ) THEN 421 DO i = nxl, nxr 422 k = nzb_v_inner(ny,i) + 1 423 v_nzb_p1_for_vfc(i) = v_init(k) * dzu(k) 424 ENDDO 425 ENDIF 426 ENDIF 394 427 395 428 IF ( moisture .OR. passive_scalar ) THEN … … 568 601 volume_flow_area_l(1) = volume_flow_area_l(1) + dzu(k) 569 602 ENDDO 603 ! 604 !-- Correction if velocity at nzb+1 has been set zero further above 605 volume_flow_initial_l(1) = volume_flow_initial_l(1) + & 606 u_nzb_p1_for_vfc(j) 570 607 ENDDO 571 608 ENDIF … … 578 615 volume_flow_area_l(2) = volume_flow_area_l(2) + dzu(k) 579 616 ENDDO 617 ! 618 !-- Correction if velocity at nzb+1 has been set zero further above 619 volume_flow_initial_l(2) = volume_flow_initial_l(2) + & 620 v_nzb_p1_for_vfc(i) 580 621 ENDDO 581 622 ENDIF … … 704 745 ! 705 746 !-- If required, initialize dvrp-software 706 ! WRITE ( 9, * ) '*** myid=', myid, ' vor init_dvrp'707 ! CALL FLUSH_( 9 )708 747 IF ( dt_dvrp /= 9999999.9 ) CALL init_dvrp 709 ! WRITE ( 9, * ) '*** myid=', myid, ' nach init_dvrp'710 ! CALL FLUSH_( 9 )711 748 712 749 ! … … 719 756 ! 720 757 !-- If required, initialize particles 721 ! WRITE ( 9, * ) '*** myid=', myid, ' vor init_particles'722 ! CALL FLUSH_( 9 )723 758 CALL init_particles 724 ! WRITE ( 9, * ) '*** myid=', myid, ' nach init_particles'725 ! CALL FLUSH_( 9 )726 759 727 760 ! … … 825 858 826 859 ! 827 !-- User-defined initializing actions 860 !-- User-defined initializing actions. Check afterwards, if maximum number 861 !-- of allowed timeseries is not exceeded 828 862 CALL user_init 863 864 IF ( dots_num > dots_max ) THEN 865 IF ( myid == 0 ) THEN 866 PRINT*, '+++ user_init: number of time series quantities exceeds', & 867 ' its maximum of dots_max = ', dots_max 868 PRINT*, ' Please increase dots_max in modules.f90.' 869 ENDIF 870 CALL local_stop 871 ENDIF 829 872 830 873 ! -
palm/trunk/SOURCE/modules.f90
r48 r51 5 5 ! Actual revisions: 6 6 ! ----------------- 7 ! +array rif_wall 7 8 ! +netcdf_64bit_3d, zu_s_inner, zw_w_inner, id_var_zusi_*, id_var_zwwi_*, 8 ! ts_value 9 ! ts_value, u_nzb_p1_for_vfc, v_nzb_p1_for_vfc 9 10 ! -data_output_ts, dots_n 10 11 ! arrays dots_label and dots_unit now dimensioned with dots_max … … 77 78 REAL, DIMENSION(:), ALLOCATABLE :: & 78 79 ddzu, dd2zu, dzu, ddzw, dzw, km_damp_x, km_damp_y, l_grid, pt_init, & 79 q_init, rdf, ug, u _init, uvmean_outflow, uvmean_outflow_l, vg,&80 v_init, zu, zw80 q_init, rdf, ug, uvmean_outflow, uvmean_outflow_l, u_init, & 81 u_nzb_p1_for_vfc, vg, v_init, v_nzb_p1_for_vfc, zu, zw 81 82 82 83 REAL, DIMENSION(:,:), ALLOCATABLE :: & … … 106 107 ql_c, te_m, tpt_m, tq_m, tu_m, tv_m, tw_m, u, u_m, u_p, v, v_m, v_p, & 107 108 vpt, vpt_m, w, w_m, w_p 109 110 REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: rif_wall 108 111 109 112 -
palm/trunk/SOURCE/read_3d_binary.f90
r39 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! +rif_wall 7 7 ! 8 8 ! Former revisions: … … 267 267 CASE ( 'rif_m' ) 268 268 READ ( 13 ) rif_m 269 CASE ( 'rif_wall' ) 270 READ ( 13 ) rif_wall 269 271 CASE ( 's_av' ) 270 272 ALLOCATE( s_av(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) ) -
palm/trunk/SOURCE/write_3d_binary.f90
r39 r51 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! +rif_wall 7 7 ! 8 8 ! Former revisions: … … 137 137 IF ( timestep_scheme(1:5) /= 'runge' ) THEN 138 138 WRITE ( 14 ) 'rif_m '; WRITE ( 14 ) rif_m 139 ENDIF 140 IF ( topography /= 'flat' ) THEN 141 WRITE ( 14 ) 'rif_wall '; WRITE ( 14 ) rif_wall 139 142 ENDIF 140 143 IF ( ALLOCATED( s_av ) ) THEN
Note: See TracChangeset
for help on using the changeset viewer.