Changeset 1359 for palm/trunk/SOURCE/data_output_mask.f90
- Timestamp:
- Apr 11, 2014 5:15:14 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/data_output_mask.f90
r1354 r1359 20 20 ! Current revisions: 21 21 ! ----------------- 22 ! 22 ! New particle structure integrated. 23 23 ! 24 24 ! Former revisions: … … 96 96 97 97 USE particle_attributes, & 98 ONLY: particles, prt_count, prt_start_index 98 ONLY: grid_particles, number_of_particles, particles, & 99 particle_advection_start, prt_count 99 100 100 101 USE pegrid … … 117 118 118 119 REAL(wp) :: mean_r !: 120 REAL(wp) :: s_r2 !: 119 121 REAL(wp) :: s_r3 !: 120 REAL(wp) :: s_r4 !:121 122 122 123 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: local_pf !: … … 215 216 ENDIF 216 217 217 CASE ( 'pr' ) ! mean particle radius 218 IF ( av == 0 ) THEN 219 DO i = nxl, nxr 220 DO j = nys, nyn 221 DO k = nzb, nzt+1 222 psi = prt_start_index(k,j,i) 223 s_r3 = 0.0_wp 224 s_r4 = 0.0_wp 225 DO n = psi, psi+prt_count(k,j,i)-1 226 s_r3 = s_r3 + particles(n)%radius**3 * & 227 particles(n)%weight_factor 228 s_r4 = s_r4 + particles(n)%radius**4 * & 229 particles(n)%weight_factor 218 CASE ( 'pr' ) ! mean particle radius (effective radius) 219 IF ( av == 0 ) THEN 220 IF ( simulated_time >= particle_advection_start ) THEN 221 DO i = nxl, nxr 222 DO j = nys, nyn 223 DO k = nzb, nz_do3d 224 number_of_particles = prt_count(k,j,i) 225 IF (number_of_particles <= 0) CYCLE 226 particles => grid_particles(k,j,i)%particles(1:number_of_particles) 227 s_r2 = 0.0_wp 228 s_r3 = 0.0_wp 229 DO n = 1, number_of_particles 230 IF ( particles(n)%particle_mask ) THEN 231 s_r2 = s_r2 + grid_particles(k,j,i)%particles(n)%radius**2 * & 232 grid_particles(k,j,i)%particles(n)%weight_factor 233 s_r3 = s_r3 + grid_particles(k,j,i)%particles(n)%radius**3 * & 234 grid_particles(k,j,i)%particles(n)%weight_factor 235 ENDIF 236 ENDDO 237 IF ( s_r2 > 0.0_wp ) THEN 238 mean_r = s_r3 / s_r2 239 ELSE 240 mean_r = 0.0_wp 241 ENDIF 242 tend(k,j,i) = mean_r 230 243 ENDDO 231 IF ( s_r3 /= 0.0_wp ) THEN 232 mean_r = s_r4 / s_r3 233 ELSE 234 mean_r = 0.0_wp 235 ENDIF 236 tend(k,j,i) = mean_r 237 ENDDO 238 ENDDO 239 ENDDO 240 CALL exchange_horiz( tend, nbgp ) 244 ENDDO 245 ENDDO 246 CALL exchange_horiz( tend, nbgp ) 247 ELSE 248 tend = 0.0_wp 249 ENDIF 241 250 DO i = 1, mask_size_l(mid,1) 242 251 DO j = 1, mask_size_l(mid,2) … … 304 313 CASE ( 'ql_vp' ) 305 314 IF ( av == 0 ) THEN 306 DO i = nxl, nxr 307 DO j = nys, nyn 308 DO k = nzb, nz_do3d 309 psi = prt_start_index(k,j,i) 310 DO n = psi, psi+prt_count(k,j,i)-1 311 tend(k,j,i) = tend(k,j,i) + & 315 IF ( simulated_time >= particle_advection_start ) THEN 316 DO i = nxl, nxr 317 DO j = nys, nyn 318 DO k = nzb, nz_do3d 319 number_of_particles = prt_count(k,j,i) 320 IF (number_of_particles <= 0) CYCLE 321 particles => grid_particles(k,j,i)%particles(1:number_of_particles) 322 DO n = 1, number_of_particles 323 IF ( particles(n)%particle_mask ) THEN 324 tend(k,j,i) = tend(k,j,i) + & 312 325 particles(n)%weight_factor / & 313 326 prt_count(k,j,i) 327 ENDIF 328 ENDDO 314 329 ENDDO 315 330 ENDDO 316 331 ENDDO 317 ENDDO 318 CALL exchange_horiz( tend, nbgp ) 332 CALL exchange_horiz( tend, nbgp ) 333 ELSE 334 tend = 0.0_wp 335 ENDIF 319 336 DO i = 1, mask_size_l(mid,1) 320 337 DO j = 1, mask_size_l(mid,2)
Note: See TracChangeset
for help on using the changeset viewer.