- Timestamp:
- Jun 8, 2017 4:58:28 PM (7 years ago)
- Location:
- palm/trunk/SOURCE
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/lpm_init.f90
r2263 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2263 2017-06-08 14:59:01Z schwenkel 27 30 ! Implemented splitting and merging algorithm 28 31 ! … … 177 180 ONLY: alloc_factor, bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, & 178 181 block_offset, block_offset_def, collision_kernel, & 179 curvature_solution_effects, & 180 density_ratio, grid_particles, isf,i_splitting_mode, & 181 initial_weighting_factor, ibc_par_b, ibc_par_lr, ibc_par_ns, & 182 ibc_par_t, iran_part, log_z_z0, & 183 max_number_of_particle_groups, maximum_number_of_particles, & 184 min_nr_particle, mpi_particle_type, & 185 number_concentration, number_particles_per_gridbox, & 186 number_of_particles, & 182 curvature_solution_effects, density_ratio, grid_particles, & 183 isf,i_splitting_mode, initial_weighting_factor, ibc_par_b, & 184 ibc_par_lr, ibc_par_ns, ibc_par_t, iran_part, log_z_z0, & 185 max_number_of_particle_groups, min_nr_particle, & 186 mpi_particle_type, number_concentration, & 187 number_particles_per_gridbox, number_of_particles, & 187 188 number_of_particle_groups, number_of_sublayers, & 188 189 offset_ocean_nzt, offset_ocean_nzt_m1, & 189 190 particles, particle_advection_start, particle_groups, & 190 191 particle_groups_type, particles_per_point, & 191 particle_type, pdx, pdy, pdz, & 192 prt_count, psb, psl, psn, psr, pss, pst, & 193 radius, random_start_position, read_particles_from_restartfile,& 194 seed_follows_topography, sgs_wf_part, sort_count, & 195 splitting_function, splitting_mode, total_number_of_particles, & 196 use_sgs_for_particles, & 197 write_particle_statistics, uniform_particles, zero_particle, & 198 z0_av_global 192 particle_type, pdx, pdy, pdz, prt_count, psb, psl, psn, psr, & 193 pss, pst, radius, random_start_position, & 194 read_particles_from_restartfile, seed_follows_topography, & 195 sgs_wf_part, sort_count, splitting_function, splitting_mode, & 196 total_number_of_particles, use_sgs_for_particles, & 197 write_particle_statistics, zero_particle, z0_av_global 199 198 200 199 USE pegrid … … 532 531 grid_particles(nzb+1:nzt,nys:nyn,nxl:nxr) ) 533 532 534 maximum_number_of_particles = 0535 533 number_of_particles = 0 536 534 … … 592 590 CALL check_open( 80 ) 593 591 WRITE ( 80, 8000 ) current_timestep_number, simulated_time, & 594 number_of_particles, & 595 maximum_number_of_particles 592 number_of_particles 596 593 CALL close_file( 80 ) 597 594 ENDIF … … 956 953 957 954 ! 958 !-- Determine maximum number of particles (i.e., all possible particles that 959 !-- have been allocated) and the current number of particles 955 !-- Determine the current number of particles 960 956 DO ip = nxl, nxr 961 957 DO jp = nys, nyn 962 958 DO kp = nzb+1, nzt 963 maximum_number_of_particles = maximum_number_of_particles &964 + SIZE(grid_particles(kp,jp,ip)%particles)965 959 number_of_particles = number_of_particles & 966 960 + prt_count(kp,jp,ip) -
palm/trunk/SOURCE/lpm_read_restart_file.f90
r2101 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2101 2017-01-05 16:42:31Z suehring 27 30 ! 28 31 ! 2000 2016-08-20 18:09:15Z knoop … … 70 73 USE particle_attributes, & 71 74 ONLY: alloc_factor, bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, & 72 grid_particles, maximum_number_of_particles, & 73 min_nr_particle, number_of_particles, number_of_particle_groups,& 74 particle_groups, particle_type, prt_count, time_prel, & 75 time_write_particle_data, uniform_particles, zero_particle 75 grid_particles, min_nr_particle, number_of_particles, & 76 number_of_particle_groups, particle_groups, particle_type, & 77 prt_count, time_prel, time_write_particle_data, zero_particle 76 78 77 79 USE pegrid … … 127 129 READ ( 90 ) bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, & 128 130 number_of_particle_groups, particle_groups, time_prel, & 129 time_write_particle_data , uniform_particles131 time_write_particle_data 130 132 131 133 ALLOCATE( prt_count(nzb:nzt+1,nysg:nyng,nxlg:nxrg), & … … 134 136 READ ( 90 ) prt_count 135 137 136 maximum_number_of_particles = 0137 138 DO ip = nxl, nxr 138 139 DO jp = nys, nyn … … 163 164 ENDIF 164 165 165 maximum_number_of_particles = maximum_number_of_particles + alloc_size166 167 166 ENDDO 168 167 ENDDO -
palm/trunk/SOURCE/lpm_write_exchange_statistics.f90
r2101 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2101 2017-01-05 16:42:31Z suehring 27 30 ! 28 31 ! 2000 2016-08-20 18:09:15Z knoop … … 68 71 69 72 USE particle_attributes, & 70 ONLY: grid_particles, maximum_number_of_particles, & 71 number_of_particles, prt_count, & 73 ONLY: grid_particles, number_of_particles, prt_count, & 72 74 trlp_count_sum, trlp_count_recv_sum, trnp_count_sum, & 73 75 trnp_count_recv_sum, trrp_count_sum, trrp_count_recv_sum, & … … 83 85 84 86 ! 85 !-- Determine maximum number of particles (i.e., all possible particles that 86 !-- have been allocated) and the current number of particles 87 !-- Determine the current number of particles 87 88 number_of_particles = 0 88 maximum_number_of_particles = 089 89 DO ip = nxl, nxr 90 90 DO jp = nys, nyn … … 92 92 number_of_particles = number_of_particles & 93 93 + prt_count(kp,jp,ip) 94 maximum_number_of_particles = maximum_number_of_particles &95 + SIZE(grid_particles(kp,jp,ip)%particles)96 94 ENDDO 97 95 ENDDO … … 105 103 trrp_count_recv_sum, psouth, trsp_count_sum, & 106 104 trsp_count_recv_sum, pnorth, trnp_count_sum, & 107 trnp_count_recv_sum , maximum_number_of_particles105 trnp_count_recv_sum 108 106 CALL close_file( 80 ) 109 107 #else 110 108 WRITE ( 80, 8000 ) current_timestep_number+1, simulated_time+dt_3d, & 111 number_of_particles , maximum_number_of_particles109 number_of_particles 112 110 #endif 113 111 -
palm/trunk/SOURCE/lpm_write_restart_file.f90
r2101 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2101 2017-01-05 16:42:31Z suehring 27 30 ! 28 31 ! 2000 2016-08-20 18:09:15Z knoop … … 68 71 number_of_particles, number_of_particle_groups, & 69 72 particles, particle_groups, prt_count, time_prel, & 70 time_write_particle_data , uniform_particles73 time_write_particle_data 71 74 72 75 USE pegrid … … 112 115 WRITE ( 90 ) bc_par_b, bc_par_lr, bc_par_ns, bc_par_t, & 113 116 number_of_particle_groups, particle_groups, time_prel, & 114 time_write_particle_data , uniform_particles117 time_write_particle_data 115 118 116 119 WRITE ( 90 ) prt_count -
palm/trunk/SOURCE/mod_particle_attributes.f90
r2263 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2263 2017-06-08 14:59:01Z schwenkel 27 30 ! Implemented splitting and merging algorithm 28 31 ! … … 94 97 95 98 INTEGER(iwp) :: deleted_particles = 0 !< number of deleted particles per time step 96 INTEGER(iwp) :: dissipation_classes = 10 !< n umber of dissipation classes99 INTEGER(iwp) :: dissipation_classes = 10 !< namelist parameter (see documentation) 97 100 INTEGER(iwp) :: ibc_par_b !< particle bottom boundary condition dummy 98 101 INTEGER(iwp) :: ibc_par_lr !< particle left/right boundary condition dummy … … 102 105 INTEGER(iwp) :: isf !< dummy for splitting function 103 106 INTEGER(iwp) :: i_splitting_mode !< dummy for splitting mode 104 INTEGER(iwp) :: maximum_number_of_particles = 0 !< maximum number of particles on a PE (can be removed?) 105 INTEGER(iwp) :: max_number_particles_per_gridbox = 30 !< maximum number of particles per gridbox (used in splitting algorithm) 107 INTEGER(iwp) :: max_number_particles_per_gridbox = 30 !< namelist parameter (see documentation) 106 108 INTEGER(iwp) :: merge_drp = 0 !< number of merged droplets 107 INTEGER(iwp) :: min_nr_particle = 50 !< minimum number of particles for which memory is allocated at every grid cell109 INTEGER(iwp) :: min_nr_particle = 50 !< namelist parameter (see documentation) 108 110 INTEGER(iwp) :: mpi_particle_type !< parameter for particle PE particle exchange 109 111 INTEGER(iwp) :: new_particles = 0 !< number of new particles 110 112 INTEGER(iwp) :: n_max = 100 !< number of radii bin for splitting functions 111 113 INTEGER(iwp) :: number_of_particles = 0 !< number of particles for each grid box (3d array is saved on prt_count) 112 INTEGER(iwp) :: number_of_particle_groups = 1 !< n umber of particle groups to be used114 INTEGER(iwp) :: number_of_particle_groups = 1 !< namelist parameter (see documentation) 113 115 INTEGER(iwp) :: number_of_sublayers = 20 !< number of sublayers for particle velocities betwenn surface and first grid level 114 INTEGER(iwp) :: number_particles_per_gridbox = -1 !< n umber of particles which are created in every grid box116 INTEGER(iwp) :: number_particles_per_gridbox = -1 !< namelist parameter (see documentation) 115 117 INTEGER(iwp) :: offset_ocean_nzt = 0 !< in case of oceans runs, the vertical index calculations need an offset 116 118 INTEGER(iwp) :: offset_ocean_nzt_m1 = 0 !< in case of oceans runs, the vertical index calculations need an offset 117 INTEGER(iwp) :: particles_per_point = 1 !< number of particles to be started per point 118 INTEGER(iwp) :: particle_file_count = 0 !< can be removed ? 119 INTEGER(iwp) :: radius_classes = 20 !< number of radius classes to be used in the collision efficiency table 119 INTEGER(iwp) :: particles_per_point = 1 !< namelist parameter (see documentation) 120 INTEGER(iwp) :: radius_classes = 20 !< namelist parameter (see documentation) 120 121 INTEGER(iwp) :: sort_count = 0 !< counter for sorting particles 121 INTEGER(iwp) :: splitting_factor = 2 !< splitting factor122 INTEGER(iwp) :: splitting_factor_max = 5 !< maximum splittig factor123 INTEGER(iwp) :: step_dealloc = 100 !< n umber of timesteps after which particle memory is deallocated122 INTEGER(iwp) :: splitting_factor = 2 !< namelist parameter (see documentation) 123 INTEGER(iwp) :: splitting_factor_max = 5 !< namelist parameter (see documentation) 124 INTEGER(iwp) :: step_dealloc = 100 !< namelist parameter (see documentation) 124 125 INTEGER(iwp) :: sum_merge_drp = 0 !< sum of merged super droplets 125 126 INTEGER(iwp) :: sum_new_particles = 0 !< sum of created particles (in splitting algorithm) … … 140 141 LOGICAL :: all_or_nothing = .FALSE. !< flag for collision algorithm 141 142 LOGICAL :: average_impact = .FALSE. !< flag for collision algortihm 142 LOGICAL :: curvature_solution_effects = .FALSE. !< parameter to consider solution and curvature effects on the equilibrium vapor pressure of cloud droplets143 LOGICAL :: deallocate_memory = .TRUE. !< parameter to enable deallocation of unused memory143 LOGICAL :: curvature_solution_effects = .FALSE. !< namelist parameter (see documentation) 144 LOGICAL :: deallocate_memory = .TRUE. !< namelist parameter (see documentation) 144 145 LOGICAL :: hall_kernel = .FALSE. !< flag for collision kernel 145 LOGICAL :: init_aerosol_probabilistic = .FALSE. !< parameter to steer the initialization of the aerosol spectrum146 LOGICAL :: merging = .FALSE. !< parameter to enable merging of super droplets147 LOGICAL :: monodisperse_aerosols = .FALSE. !< parameter to steer the initialization of the aerosol spectrum146 LOGICAL :: init_aerosol_probabilistic = .FALSE. !< namelist parameter (see documentation) 147 LOGICAL :: merging = .FALSE. !< namelist parameter (see documentation) 148 LOGICAL :: monodisperse_aerosols = .FALSE. !< namelist parameter (see documentation) 148 149 LOGICAL :: particle_advection = .FALSE. !< parameter to steer the advection of particles 149 LOGICAL :: random_start_position = .FALSE. !< parameter to initialize particles on random positon (within one grid box) 150 LOGICAL :: read_particles_from_restartfile = .TRUE. !< read particle data from the previous run 151 LOGICAL :: seed_follows_topography = .FALSE. !< heights of initial particles are interpreted relative to the given topography 152 LOGICAL :: splitting = .FALSE. !< parameter to enable the splitting of super droplets 153 LOGICAL :: uniform_particles = .TRUE. !< can be removed? 150 LOGICAL :: random_start_position = .FALSE. !< namelist parameter (see documentation) 151 LOGICAL :: read_particles_from_restartfile = .TRUE. !< namelist parameter (see documentation) 152 LOGICAL :: seed_follows_topography = .FALSE. !< namelist parameter (see documentation) 153 LOGICAL :: splitting = .FALSE. !< namelist parameter (see documentation) 154 154 LOGICAL :: use_kernel_tables = .FALSE. !< parameter, which turns on the use of precalculated collision kernels 155 LOGICAL :: use_sgs_for_particles = .FALSE. !< parameter to use sgs velocities for particles155 LOGICAL :: use_sgs_for_particles = .FALSE. !< namelist parameter (see documentation) 156 156 LOGICAL :: wang_kernel = .FALSE. !< flag for collision kernel 157 LOGICAL :: write_particle_statistics = .FALSE. !< switch on/off output of particle information (statistical information)157 LOGICAL :: write_particle_statistics = .FALSE. !< namelist parameter (see documentation) 158 158 159 159 LOGICAL, DIMENSION(max_number_of_particle_groups) :: & 160 160 vertical_particle_advection = .TRUE. !< Switch on/off vertical particle transport 161 161 162 REAL(wp) :: alloc_factor = 20.0_wp !< memory allocated additionally to the memory needed for initial particles at a given grid cell 163 REAL(wp) :: c_0 = 3.0_wp !< parameter for lagrangian timescale 164 REAL(wp) :: dt_min_part = 0.0002_wp !< minimum particle time step when SGS velocities are used (s) 165 REAL(wp) :: dt_prel = 9999999.9_wp !< temporal interval at which particles are to be released from a particle source (in s) 166 REAL(wp) :: dt_write_particle_data = 9999999.9_wp !< temporal interval for output of particle data (in s) 167 REAL(wp) :: end_time_prel = 9999999.9_wp !< time of the last release of particles (in s). 168 REAL(wp) :: initial_weighting_factor = 1.0_wp !< weighting factor used for initialization 169 REAL(wp) :: molecular_weight_of_solute = 0.05844_wp !< mol. m. NaCl (kg mol-1) 170 REAL(wp) :: molecular_weight_of_water = 0.01801528_wp !< mol. m. H2O (kg mol-1) 171 REAL(wp) :: n1 = 100.0_wp !< number concentration of the first log-normal distribution (dry aerosol initialization) 172 REAL(wp) :: n2 = 0.0_wp !< see n1 173 REAL(wp) :: n3 = 0.0_wp !< see n1 174 REAL(wp) :: number_concentration = -1.0_wp !< initial particle number concentration (in units of 1/cm^-3) 175 REAL(wp) :: particle_advection_start = 0.0_wp !< time of the first release of particles (in s). 176 REAL(wp) :: radius_merge = 1.0E-7_wp !< particles with a smaller radius are merged if merging is set 177 REAL(wp) :: radius_split = 40.0E-6_wp !< particles with a bigger radius are splitted if splittig is set 178 REAL(wp) :: rho_s = 2165.0_wp !< density of NaCl (kg m-3) 179 REAL(wp) :: rm1 = 0.05E-6_wp !< mode radius of the first log-normal distribution (dry aerosol initialization) 180 REAL(wp) :: rm2 = 0.05E-6_wp !< see rm1 181 REAL(wp) :: rm3 = 0.05E-6_wp !< see rm2 182 REAL(wp) :: s1 = 2.0_wp !< geometric standard deviation of the first log-normal distribution (dry aerosol initialization) 183 REAL(wp) :: s2 = 2.0_wp !< see s1 184 REAL(wp) :: s3 = 2.0_wp !< see s1 185 REAL(wp) :: sgs_wf_part !< parameter for sgs 186 REAL(wp) :: time_prel = 0.0_wp !< time for particle release 187 REAL(wp) :: time_sort_particles = 0.0_wp !< can be removed? 188 REAL(wp) :: time_write_particle_data = 0.0_wp !< write particle data at current time on file 189 REAL(wp) :: vanthoff = 2.0_wp !< van't Hoff factor for NaCl 190 REAL(wp) :: weight_factor_merge = -1.0_wp !< critical weighting factor for merging 191 REAL(wp) :: weight_factor_split = -1.0_wp !< critical weighting factor for splitting 192 REAL(wp) :: z0_av_global !< horizontal mean value of z0 193 194 REAL(wp), DIMENSION(max_number_of_particle_groups) :: density_ratio = 9999999.9_wp !< ratio of the density of the fluid and the density of the particles 195 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pdx = 9999999.9_wp !< distance along x between particles within a particle source (in m) 196 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pdy = 9999999.9_wp !< distance along y between particles within a particle source (in m) 197 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pdz = 9999999.9_wp !< distance along z between particles within a particle source (in m) 198 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psb = 9999999.9_wp !< bottom edge of a particle source (in m) 199 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psl = 9999999.9_wp !< left edge of a particle source (in m) 200 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psn = 9999999.9_wp !< rear ("north") edge of a particle source (in m) 201 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psr = 9999999.9_wp !< right edge of a particle source (in m). 202 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pss = 9999999.9_wp !< front ("south") edge of a particle source (in m). 203 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pst = 9999999.9_wp !< top edge of a particle source (in m). 204 REAL(wp), DIMENSION(max_number_of_particle_groups) :: radius = 9999999.9_wp !< particle radius (in m). 162 REAL(wp) :: alloc_factor = 20.0_wp !< namelist parameter (see documentation) 163 REAL(wp) :: c_0 = 3.0_wp !< parameter for lagrangian timescale 164 REAL(wp) :: dt_min_part = 0.0002_wp !< minimum particle time step when SGS velocities are used (s) 165 REAL(wp) :: dt_prel = 9999999.9_wp !< namelist parameter (see documentation) 166 REAL(wp) :: dt_write_particle_data = 9999999.9_wp !< namelist parameter (see documentation) 167 REAL(wp) :: end_time_prel = 9999999.9_wp !< namelist parameter (see documentation) 168 REAL(wp) :: initial_weighting_factor = 1.0_wp !< namelist parameter (see documentation) 169 REAL(wp) :: molecular_weight_of_solute = 0.05844_wp !< mol. m. NaCl (kg mol-1) 170 REAL(wp) :: molecular_weight_of_water = 0.01801528_wp !< mol. m. H2O (kg mol-1) 171 REAL(wp) :: n1 = 100.0_wp !< namelist parameter (see documentation) 172 REAL(wp) :: n2 = 0.0_wp !< namelist parameter (see documentation) 173 REAL(wp) :: n3 = 0.0_wp !< namelist parameter (see documentation) 174 REAL(wp) :: number_concentration = -1.0_wp !< namelist parameter (see documentation) 175 REAL(wp) :: particle_advection_start = 0.0_wp !< namelist parameter (see documentation) 176 REAL(wp) :: radius_merge = 1.0E-7_wp !< namelist parameter (see documentation) 177 REAL(wp) :: radius_split = 40.0E-6_wp !< namelist parameter (see documentation) 178 REAL(wp) :: rho_s = 2165.0_wp !< density of NaCl (kg m-3) 179 REAL(wp) :: rm1 = 0.05E-6_wp !< namelist parameter (see documentation) 180 REAL(wp) :: rm2 = 0.05E-6_wp !< namelist parameter (see documentation) 181 REAL(wp) :: rm3 = 0.05E-6_wp !< namelist parameter (see documentation) 182 REAL(wp) :: s1 = 2.0_wp !< namelist parameter (see documentation) 183 REAL(wp) :: s2 = 2.0_wp !< namelist parameter (see documentation) 184 REAL(wp) :: s3 = 2.0_wp !< namelist parameter (see documentation) 185 REAL(wp) :: sgs_wf_part !< parameter for sgs 186 REAL(wp) :: time_prel = 0.0_wp !< time for particle release 187 REAL(wp) :: time_write_particle_data = 0.0_wp !< write particle data at current time on file 188 REAL(wp) :: vanthoff = 2.0_wp !< van't Hoff factor for NaCl 189 REAL(wp) :: weight_factor_merge = -1.0_wp !< namelist parameter (see documentation) 190 REAL(wp) :: weight_factor_split = -1.0_wp !< namelist parameter (see documentation) 191 REAL(wp) :: z0_av_global !< horizontal mean value of z0 192 193 REAL(wp), DIMENSION(max_number_of_particle_groups) :: density_ratio = 9999999.9_wp !< namelist parameter (see documentation) 194 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pdx = 9999999.9_wp !< namelist parameter (see documentation) 195 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pdy = 9999999.9_wp !< namelist parameter (see documentation) 196 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pdz = 9999999.9_wp !< namelist parameter (see documentation) 197 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psb = 9999999.9_wp !< namelist parameter (see documentation) 198 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psl = 9999999.9_wp !< namelist parameter (see documentation) 199 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psn = 9999999.9_wp !< namelist parameter (see documentation) 200 REAL(wp), DIMENSION(max_number_of_particle_groups) :: psr = 9999999.9_wp !< namelist parameter (see documentation) 201 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pss = 9999999.9_wp !< namelist parameter (see documentation) 202 REAL(wp), DIMENSION(max_number_of_particle_groups) :: pst = 9999999.9_wp !< namelist parameter (see documentation). 203 REAL(wp), DIMENSION(max_number_of_particle_groups) :: radius = 9999999.9_wp !< namelist parameter (see documentation) 205 204 206 205 REAL(wp), DIMENSION(:), ALLOCATABLE :: log_z_z0 !< Precalculate LOG(z/z0) … … 209 208 TYPE particle_type 210 209 SEQUENCE 211 REAL(wp) :: radius, age, age_m, dt_sum, user, e_m, & 212 origin_x, origin_y, origin_z, rvar1, rvar2, rvar3, & 213 speed_x, speed_y, speed_z, weight_factor, x, y, z 214 INTEGER(iwp) :: class, group, id1, id2 215 LOGICAL :: particle_mask 216 INTEGER(iwp) :: block_nr 210 REAL(wp) :: radius !< radius of particle 211 REAL(wp) :: age !< age of particle 212 REAL(wp) :: age_m !< 213 REAL(wp) :: dt_sum !< 214 REAL(wp) :: user !< varible for user 215 REAL(wp) :: e_m !< interpolated sgs tke 216 REAL(wp) :: origin_x !< origin x-position of particle (changed cyclic bc) 217 REAL(wp) :: origin_y !< origin y-position of particle (changed cyclic bc) 218 REAL(wp) :: origin_z !< origin z-position of particle (changed cyclic bc) 219 REAL(wp) :: rvar1 !< 220 REAL(wp) :: rvar2 !< 221 REAL(wp) :: rvar3 !< 222 REAL(wp) :: speed_x !< speed of particle in x 223 REAL(wp) :: speed_y !< speed of particle in y 224 REAL(wp) :: speed_z !< speed of particle in z 225 REAL(wp) :: weight_factor !< weighting factor 226 REAL(wp) :: x !< x-position 227 REAL(wp) :: y !< y-position 228 REAL(wp) :: z !< z-position 229 INTEGER(iwp) :: class !< radius class needed for collision 230 INTEGER(iwp) :: group !< number of particle group 231 INTEGER(iwp) :: id1 !< first part of particle id 232 INTEGER(iwp) :: id2 !< second part of particle id 233 LOGICAL :: particle_mask !< if this parameter is set to false the particle will be deleted 234 INTEGER(iwp) :: block_nr !< number for sorting (removable?) 217 235 END TYPE particle_type 218 236 219 TYPE(particle_type), DIMENSION(:), POINTER :: particles 220 TYPE(particle_type) :: zero_particle 237 TYPE(particle_type), DIMENSION(:), POINTER :: particles !< Particle array for this grid cell 238 TYPE(particle_type) :: zero_particle !< zero particle to avoid weird thinge 221 239 222 240 TYPE particle_groups_type 223 241 SEQUENCE 224 REAL(wp) :: density_ratio, radius, exp_arg, exp_term 242 REAL(wp) :: density_ratio !< density ratio of the fluid and the particles 243 REAL(wp) :: radius !< radius of particle 244 REAL(wp) :: exp_arg !< exponential term of particle inertia 245 REAL(wp) :: exp_term !< exponential term of particle inertia 225 246 END TYPE particle_groups_type 226 247 … … 229 250 230 251 TYPE grid_particle_def 231 INTEGER(iwp), DIMENSION(0:7) :: start_index 232 INTEGER(iwp), DIMENSION(0:7) :: end_index 233 INTEGER(iwp) :: id_counter 234 LOGICAL :: time_loop_done 235 TYPE(particle_type), POINTER, DIMENSION(:) :: particles !Particle array for this grid cell252 INTEGER(iwp), DIMENSION(0:7) :: start_index !< start particle index for current block 253 INTEGER(iwp), DIMENSION(0:7) :: end_index !< end particle index for current block 254 INTEGER(iwp) :: id_counter !< particle id counter (removeable?) 255 LOGICAL :: time_loop_done !< timestep loop for particle advection 256 TYPE(particle_type), POINTER, DIMENSION(:) :: particles !< Particle array for this grid cell 236 257 END TYPE grid_particle_def 237 258 238 259 TYPE(grid_particle_def), DIMENSION(:,:,:), ALLOCATABLE, TARGET :: grid_particles 239 260 240 TYPE block_offset_def 241 INTEGER(iwp) :: i_off 242 INTEGER(iwp) :: j_off 243 INTEGER(iwp) :: k_off 261 TYPE block_offset_def !< 262 INTEGER(iwp) :: i_off !< 263 INTEGER(iwp) :: j_off !< 264 INTEGER(iwp) :: k_off !< 244 265 END TYPE block_offset_def 245 266 -
palm/trunk/SOURCE/netcdf_interface_mod.f90
r2239 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2239 2017-06-01 12:04:51Z suehring 27 30 ! Bugfix xy-output of land-surface variables 28 31 ! … … 498 501 499 502 USE particle_attributes, & 500 ONLY: maximum_number_of_particles,number_of_particle_groups503 ONLY: number_of_particle_groups 501 504 502 505 USE plant_canopy_model_mod, & … … 4884 4887 312, 313, 000 ) 4885 4888 ! 4886 !-- Define particle coordinate (maximum particle number) 4887 IF ( netcdf_data_format < 3 ) THEN 4888 CALL netcdf_create_dim( id_set_prt, 'particle_number', & 4889 maximum_number_of_particles, & 4890 id_dim_prtnum, 314 ) 4891 ELSE 4892 ! 4893 !-- netCDF4 allows more than one unlimited dimension 4894 CALL netcdf_create_dim( id_set_prt, 'particle_number', & 4895 NF90_UNLIMITED, id_dim_prtnum, 314 ) 4896 ENDIF 4889 !-- netCDF4 allows more than one unlimited dimension 4890 CALL netcdf_create_dim( id_set_prt, 'particle_number', & 4891 NF90_UNLIMITED, id_dim_prtnum, 314 ) 4897 4892 4898 4893 CALL netcdf_create_var( id_set_prt, (/ id_dim_prtnum /), & -
palm/trunk/SOURCE/read_var_list.f90
r2259 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2259 2017-06-08 09:09:11Z gronemeier 27 30 ! Implemented synthetic turbulence generator 28 31 ! … … 223 226 224 227 USE particle_attributes, & 225 ONLY: curvature_solution_effects , time_sort_particles228 ONLY: curvature_solution_effects 226 229 227 230 USE pegrid … … 694 697 CASE ( 'time_since_reference_point' ) 695 698 READ ( 13 ) time_since_reference_point 696 CASE ( 'time_sort_particles' )697 READ ( 13 ) time_sort_particles698 699 CASE ( 'timestep_scheme' ) 699 700 READ ( 13 ) timestep_scheme -
palm/trunk/SOURCE/write_var_list.f90
r2259 r2265 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Unused variables removed. 28 ! 29 ! 2259 2017-06-08 09:09:11Z gronemeier 27 30 ! Implemented synthetic turbulence generator 28 31 ! … … 198 201 199 202 USE particle_attributes, & 200 ONLY: curvature_solution_effects , time_sort_particles203 ONLY: curvature_solution_effects 201 204 202 205 USE pegrid … … 606 609 WRITE ( 14 ) 'time_since_reference_point ' 607 610 WRITE ( 14 ) time_since_reference_point 608 WRITE ( 14 ) 'time_sort_particles '609 WRITE ( 14 ) time_sort_particles610 611 WRITE ( 14 ) 'timestep_scheme ' 611 612 WRITE ( 14 ) timestep_scheme
Note: See TracChangeset
for help on using the changeset viewer.