Changeset 60 for palm/trunk/SOURCE/advec_particles.f90
- Timestamp:
- Mar 11, 2007 11:50:04 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/advec_particles.f90
r59 r60 7 7 ! particle_boundary_conds, 8 8 ! vertical walls are regarded in the SGS model, 9 ! + user_advec_particles 9 ! + user_advec_particles, particles-package is now part of the defaut code 10 10 ! TEST: PRINT statements on unit 9 (commented out) 11 11 ! … … 50 50 ! Particle advection 51 51 !------------------------------------------------------------------------------! 52 #if defined( __particles )53 52 54 53 USE arrays_3d … … 68 67 IMPLICIT NONE 69 68 70 INTEGER :: deleted_particles, deleted_tails, i, ie, ii, inc, is, j, jj, & 71 js, k, kk, kw, m, n, nc, nn, psi, tlength, trlp_count, & 72 trlp_count_sum, trlp_count_recv, trlp_count_recv_sum, & 73 trlpt_count, trlpt_count_recv, trnp_count, trnp_count_sum, & 74 trnp_count_recv, trnp_count_recv_sum, trnpt_count, & 75 trnpt_count_recv, trrp_count, trrp_count_sum, trrp_count_recv, & 69 INTEGER :: agp, deleted_particles, deleted_tails, i, ie, ii, inc, is, j, & 70 jj, js, k, kk, kw, m, n, nc, nn, num_gp, psi, tlength, & 71 trlp_count, trlp_count_sum, trlp_count_recv, & 72 trlp_count_recv_sum, trlpt_count, trlpt_count_recv, & 73 trnp_count, trnp_count_sum, trnp_count_recv, & 74 trnp_count_recv_sum, trnpt_count, trnpt_count_recv, & 75 trrp_count, trrp_count_sum, trrp_count_recv, & 76 76 trrp_count_recv_sum, trrpt_count, trrpt_count_recv, & 77 77 trsp_count, trsp_count_sum, trsp_count_recv, & 78 78 trsp_count_recv_sum, trspt_count, trspt_count_recv, nd 79 79 80 INTEGER :: gp_outside_of_building(1:8) 81 80 82 LOGICAL :: dt_3d_reached, dt_3d_reached_l, prt_position 81 83 82 REAL :: aa, arg, bb, cc, dd, delta_r, dens_ratio, de_dx_int, & 83 de_dx_int_l, de_dx_int_u, de_dy_int, de_dy_int_l, de_dy_int_u, & 84 de_dz_int, de_dz_int_l, de_dz_int_u, diss_int, diss_int_l, & 85 diss_int_u, distance, dt_gap, dt_particle, d_radius, e_a, & 86 e_int, e_int_l, e_int_u, e_mean_int, e_s, exp_arg, exp_term, & 87 fs_int, gg, lagr_timescale, mean_r, new_r, p_int, pt_int, & 88 pt_int_l, pt_int_u, q_int, q_int_l, q_int_u, ql_int, ql_int_l, & 89 ql_int_u, random_gauss, sl_r3, sl_r4, s_r3, s_r4, t_int, & 90 u_int, u_int_l, u_int_u, vv_int, v_int, v_int_l, v_int_u, & 91 w_int, w_int_l, w_int_u, x, y 84 REAL :: aa, arg, bb, cc, dd, delta_r, dens_ratio, de_dt, de_dt_min, & 85 de_dx_int, de_dx_int_l, de_dx_int_u, de_dy_int, de_dy_int_l, & 86 de_dy_int_u, de_dz_int, de_dz_int_l, de_dz_int_u, diss_int, & 87 diss_int_l, diss_int_u, distance, dt_gap, dt_particle, & 88 dt_particle_m, d_radius, d_sum, e_a, e_int, e_int_l, e_int_u, & 89 e_mean_int, e_s, exp_arg, exp_term, fs_int, gg, & 90 lagr_timescale, mean_r, new_r, p_int, pt_int, pt_int_l, & 91 pt_int_u, q_int, q_int_l, q_int_u, ql_int, ql_int_l, ql_int_u, & 92 random_gauss, sl_r3, sl_r4, s_r3, s_r4, t_int, u_int, u_int_l, & 93 u_int_u, vv_int, v_int, v_int_l, v_int_u, w_int, w_int_l, & 94 w_int_u, x, y 95 96 REAL, DIMENSION(1:30) :: de_dxi, de_dyi, de_dzi, dissi, d_gp_pl, ei 97 98 REAL :: location(1:30,1:3) 92 99 93 100 REAL, DIMENSION(nzb:nzt+1,nys-1:nyn+1,nxl-1:nxr+1) :: de_dx, de_dy, de_dz … … 1687 1694 !-- previous timestep the increase must not exceed 200% 1688 1695 1689 dt_particle_ old= particles(n)%age - particles(n)%age_m1690 IF ( dt_particle > 2.0 * dt_particle_ old) THEN1691 dt_particle = 2.0 * dt_particle_ old1696 dt_particle_m = particles(n)%age - particles(n)%age_m 1697 IF ( dt_particle > 2.0 * dt_particle_m ) THEN 1698 dt_particle = 2.0 * dt_particle_m 1692 1699 ENDIF 1693 1700 … … 1703 1710 de_dt_min = - e_int / dt_particle 1704 1711 1705 de_dt = ( e_int - particles(n)%e_m ) / dt_particle_ old1712 de_dt = ( e_int - particles(n)%e_m ) / dt_particle_m 1706 1713 1707 1714 IF ( de_dt < de_dt_min ) THEN … … 3436 3443 8000 FORMAT (I6,1X,F7.2,4X,I6,5X,4(I3,1X,I4,'/',I4,2X),6X,I6) 3437 3444 3438 #endif3439 3445 END SUBROUTINE advec_particles 3440 3446 … … 3447 3453 ! Extend particle memory 3448 3454 !------------------------------------------------------------------------------! 3449 #if defined( __particles )3450 3455 3451 3456 USE particle_attributes … … 3486 3491 DEALLOCATE( tmp_particles, tmp_particle_mask ) 3487 3492 3488 #endif3489 3493 END SUBROUTINE allocate_prt_memory 3490 3494 … … 3497 3501 ! Extend tail memory 3498 3502 !------------------------------------------------------------------------------! 3499 #if defined( __particles )3500 3503 3501 3504 USE particle_attributes … … 3540 3543 tail_mask(number_of_tails+1:maximum_number_of_tails) = .TRUE. 3541 3544 3542 #endif3543 3545 END SUBROUTINE allocate_tail_memory 3544 3546 … … 3669 3671 ! Write particle data on restart file 3670 3672 !------------------------------------------------------------------------------! 3671 #if defined( __particles )3672 3673 3673 3674 USE control_parameters … … 3726 3727 CLOSE ( 90 ) 3727 3728 3728 #endif3729 3729 END SUBROUTINE write_particles 3730 3730 … … 3736 3736 ! Interpolate collision efficiency from table 3737 3737 !------------------------------------------------------------------------------! 3738 #if defined( __particles )3739 3738 3740 3739 IMPLICIT NONE … … 3814 3813 ENDIF 3815 3814 3816 #endif3817 3815 END SUBROUTINE collision_efficiency 3818 3816 … … 3826 3824 ! Sort particles in the sequence the grid boxes are stored in memory 3827 3825 !------------------------------------------------------------------------------! 3828 #if defined( __particles )3829 3826 3830 3827 USE arrays_3d … … 3911 3908 CALL cpu_log( log_point_s(47), 'sort_particles', 'stop' ) 3912 3909 3913 #endif3914 3910 END SUBROUTINE sort_particles
Note: See TracChangeset
for help on using the changeset viewer.