Changeset 2263 for palm


Ignore:
Timestamp:
Jun 8, 2017 2:59:01 PM (7 years ago)
Author:
schwenkel
Message:

Implemented splitting and merging algorithm

Location:
palm/trunk/SOURCE
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/Makefile

    r2259 r2263  
    2525# -----------------
    2626# $Id$
     27# Implemented splitting and merging algorithm
     28#
     29# 2259 2017-06-08 09:09:11Z gronemeier
    2730# Implemented synthetic turbulence generator
    2831#
     
    354357        lpm_data_output_particles.f90 lpm_droplet_collision.f90 \
    355358        lpm_droplet_condensation.f90 lpm_exchange_horiz.f90 \
    356         lpm_init.f90 lpm_init_sgs_tke.f90 \
     359        lpm_init.f90 lpm_init_sgs_tke.f90 lpm_merging.f90 \
    357360        lpm_pack_arrays.f90 lpm_read_restart_file.f90 \
    358         lpm_set_attributes.f90 \
     361        lpm_set_attributes.f90 lpm_splitting.f90 \
    359362        lpm_write_exchange_statistics.f90 lpm_write_restart_file.f90 \
    360363        ls_forcing_mod.f90 message.f90 microphysics_mod.f90 modules.f90 mod_kinds.f90 \
     
    509512local_tremain.o: modules.o cpulog_mod.o mod_kinds.o
    510513local_tremain_ini.o: modules.o cpulog_mod.o mod_kinds.o
    511 lpm.o: modules.o cpulog_mod.o lpm_exchange_horiz.o lpm_init.o lpm_pack_arrays.o \
    512         mod_kinds.o mod_particle_attributes.o
     514lpm.o: modules.o cpulog_mod.o lpm_exchange_horiz.o lpm_init.o lpm_merging.o lpm_pack_arrays.o \
     515        lpm_splitting.o mod_kinds.o mod_particle_attributes.o
    513516lpm_advec.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o surface_mod.o
    514517lpm_boundary_conds.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o
     
    530533        surface_mod.o
    531534lpm_init_sgs_tke.o: modules.o mod_kinds.o mod_particle_attributes.o surface_mod.o
     535lpm_merging.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o
    532536lpm_pack_arrays.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o
    533537lpm_read_restart_file.o: modules.o mod_kinds.o mod_particle_attributes.o \
    534538        lpm_pack_arrays.o
    535539lpm_set_attributes.o: modules.o cpulog_mod.o mod_kinds.o mod_particle_attributes.o
     540lpm_splitting.o: modules.o cpulog_mod.o mod_kinds.o \
     541        mod_particle_attributes.o lpm_exchange_horiz.o
    536542lpm_write_exchange_statistics.o: modules.o mod_kinds.o mod_particle_attributes.o
    537543lpm_write_restart_file.o: modules.o mod_kinds.o mod_particle_attributes.o
  • palm/trunk/SOURCE/lpm.f90

    r2233 r2263  
    2525! -----------------
    2626! $Id$
     27! Implemented splitting and merging algorithm
     28!
     29! 2233 2017-05-30 18:08:54Z suehring
    2730!
    2831! 2232 2017-05-30 17:47:52Z suehring
     
    142145        ONLY:  collision_kernel, deleted_particles, deallocate_memory,         &
    143146               dt_write_particle_data, dt_prel, end_time_prel,                 &
    144                grid_particles, number_of_particles, number_of_particle_groups, &
    145                particles, particle_groups, prt_count, step_dealloc,            &
    146                time_prel, time_write_particle_data, trlp_count_sum,            &
    147                trlp_count_recv_sum, trnp_count_sum,                            &
    148                trnp_count_recv_sum, trrp_count_sum, trrp_count_recv_sum,       &
    149                trsp_count_sum, trsp_count_recv_sum,                            &
     147               grid_particles, merging,  number_of_particles,                  &
     148               number_of_particle_groups, particles, particle_groups,          &
     149               prt_count, splitting, step_dealloc, time_prel,                  &
     150               time_write_particle_data, trlp_count_sum, trlp_count_recv_sum,  &
     151               trnp_count_sum, trnp_count_recv_sum, trrp_count_sum,            &
     152               trrp_count_recv_sum, trsp_count_sum, trsp_count_recv_sum,       &
    150153               use_sgs_for_particles, write_particle_statistics
    151 
     154                             
    152155    USE pegrid
    153156
     
    369372       IF ( dt_3d_reached )  time_prel = time_prel + dt_3d
    370373!
     374!--    Apply splitting and merging algorithm
     375       IF ( cloud_droplets )  THEN
     376          IF ( splitting ) THEN
     377             CALL lpm_splitting
     378          ENDIF
     379          IF ( merging ) THEN
     380             CALL lpm_merging
     381          ENDIF
     382       ENDIF
     383!
    371384!--    Move Particles local to PE to a different grid cell
    372385       CALL lpm_move_particle
  • palm/trunk/SOURCE/lpm_init.f90

    r2233 r2263  
    2525! -----------------
    2626! $Id$
     27! Implemented splitting and merging algorithm
     28!
     29! 2233 2017-05-30 18:08:54Z suehring
    2730!
    2831! 2232 2017-05-30 17:47:52Z suehring
     
    175178                block_offset, block_offset_def, collision_kernel,              &
    176179                curvature_solution_effects,                                    &
    177                 density_ratio, grid_particles,                                 &
     180                density_ratio, grid_particles, isf,i_splitting_mode,           &
    178181                initial_weighting_factor, ibc_par_b, ibc_par_lr, ibc_par_ns,   &
    179182                ibc_par_t, iran_part, log_z_z0,                                &
     
    190193                radius, random_start_position, read_particles_from_restartfile,&
    191194                seed_follows_topography, sgs_wf_part, sort_count,              &
    192                 total_number_of_particles,                                     &
     195                splitting_function, splitting_mode, total_number_of_particles,  &
    193196                use_sgs_for_particles,                                         &
    194197                write_particle_statistics, uniform_particles, zero_particle,   &
     
    473476         
    474477    END SELECT
     478    SELECT CASE ( splitting_mode )
     479   
     480       CASE ( 'const' )
     481          i_splitting_mode = 1
     482
     483       CASE ( 'cl_av' )
     484          i_splitting_mode = 2
     485
     486       CASE ( 'gb_av' )
     487          i_splitting_mode = 3
     488         
     489       CASE DEFAULT
     490          WRITE( message_string, * )  'unknown splitting condition ',   &
     491                                       'splitting_mode = "', TRIM( splitting_mode ), '"'
     492          CALL message( 'lpm_init', 'PA0146', 1, 2, 0, 6, 0 )
     493         
     494    END SELECT
     495    SELECT CASE ( splitting_function )
     496   
     497       CASE ( 'gamma' )
     498          isf = 1
     499
     500       CASE ( 'log' )
     501          isf = 2
     502
     503       CASE ( 'exp' )
     504          isf = 3
     505         
     506       CASE DEFAULT
     507          WRITE( message_string, * )  'unknown splitting function ',   &
     508                                       'splitting_function = "', TRIM( splitting_function ), '"'
     509          CALL message( 'lpm_init', 'PA0147', 1, 2, 0, 6, 0 )
     510         
     511    END SELECT
     512   
    475513
    476514!
  • palm/trunk/SOURCE/mod_particle_attributes.f90

    r2183 r2263  
    2525! -----------------
    2626! $Id$
     27! Implemented splitting and merging algorithm
     28!
     29! 2183 2017-03-17 14:29:15Z schwenkel
    2730!
    2831! 2182 2017-03-17 14:27:40Z schwenkel
     
    8689    CHARACTER(LEN=15) ::  collision_algorithm = 'all_or_nothing'  !< collision algorithm
    8790    CHARACTER(LEN=15) ::  collision_kernel = 'none'               !< collision kernel
    88 
    89     INTEGER(iwp) ::  deleted_particles = 0,                                    &
    90                      dissipation_classes = 10, ibc_par_lr,                     &
    91                      ibc_par_ns, ibc_par_b, ibc_par_t, iran_part = -1234567,   &
    92                      maximum_number_of_particles = 0,                          &
    93                      min_nr_particle = 50,                                     &
    94                      mpi_particle_type,                                        &
    95                      number_of_particles = 0,                                  &
    96                      number_of_particle_groups = 1,                            &
    97                      number_of_sublayers = 20,                                 &
    98                      number_particles_per_gridbox = -1,                        &
    99                      offset_ocean_nzt = 0,                                     &
    100                      offset_ocean_nzt_m1 = 0, particles_per_point = 1,         &
    101                      particle_file_count = 0, radius_classes = 20,             &
    102                      sort_count = 0, step_dealloc = 100,                       &
    103                      total_number_of_particles,                                &
    104                      trlp_count_sum, trlp_count_recv_sum, trrp_count_sum,      &
    105                      trrp_count_recv_sum, trsp_count_sum, trsp_count_recv_sum, &
    106                      trnp_count_sum, trnp_count_recv_sum
    107 
    108     INTEGER(iwp), PARAMETER ::  max_number_of_particle_groups = 10
    109 
    110     INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  prt_count
    111 
    112     LOGICAL ::  all_or_nothing = .FALSE., average_impact = .FALSE.,            &
    113                 curvature_solution_effects = .FALSE.,                          &
    114                 deallocate_memory = .TRUE.,                                    &
    115                 hall_kernel = .FALSE., particle_advection = .FALSE.,           &
    116                 random_start_position = .FALSE.,                               &
    117                 read_particles_from_restartfile = .TRUE.,                      &
    118                 seed_follows_topography = .FALSE.,                             &
    119                 uniform_particles = .TRUE., use_kernel_tables = .FALSE.,       &
    120                 use_sgs_for_particles = .FALSE., wang_kernel = .FALSE.,        &
    121                 write_particle_statistics = .FALSE.
    122 
     91    CHARACTER(LEN=5) ::  splitting_function = 'gamma'             !< function for calculation critical weighting factor
     92    CHARACTER(LEN=5) ::  splitting_mode = 'const'                 !< splitting mode
     93
     94
     95    INTEGER(iwp) ::  deleted_particles = 0                        !< number of deleted particles per time step
     96    INTEGER(iwp) ::  dissipation_classes = 10                     !< number of dissipation classes
     97    INTEGER(iwp) ::  ibc_par_b                                    !< particle bottom boundary condition dummy
     98    INTEGER(iwp) ::  ibc_par_lr                                   !< particle left/right boundary condition dummy
     99    INTEGER(iwp) ::  ibc_par_ns                                   !< particle north/south boundary condition dummy
     100    INTEGER(iwp) ::  ibc_par_t                                    !< particle top boundary condition dummy
     101    INTEGER(iwp) ::  iran_part = -1234567                         !< number for random generator
     102    INTEGER(iwp) ::  isf                                          !< dummy for splitting function
     103    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)
     106    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 cell         
     108    INTEGER(iwp) ::  mpi_particle_type                            !< parameter for particle PE particle exchange
     109    INTEGER(iwp) ::  new_particles = 0                            !< number of new particles
     110    INTEGER(iwp) ::  n_max = 100                                  !< number of radii bin for splitting functions     
     111    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                !< number of particle groups to be used           
     113    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            !< number of particles which are created in every grid box           
     115    INTEGER(iwp) ::  offset_ocean_nzt = 0                         !< in case of oceans runs, the vertical index calculations need an offset         
     116    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
     120    INTEGER(iwp) ::  sort_count = 0                               !< counter for sorting particles
     121    INTEGER(iwp) ::  splitting_factor = 2                         !< splitting factor
     122    INTEGER(iwp) ::  splitting_factor_max = 5                     !< maximum splittig factor
     123    INTEGER(iwp) ::  step_dealloc = 100                           !< number of timesteps after which particle memory is deallocated
     124    INTEGER(iwp) ::  sum_merge_drp = 0                            !< sum of merged super droplets
     125    INTEGER(iwp) ::  sum_new_particles = 0                        !< sum of created particles (in splitting algorithm)
     126    INTEGER(iwp) ::  total_number_of_particles                    !< total number of particles in the whole model domain           
     127    INTEGER(iwp) ::  trlp_count_sum                               !< parameter for particle exchange of PEs
     128    INTEGER(iwp) ::  trlp_count_recv_sum                          !< parameter for particle exchange of PEs
     129    INTEGER(iwp) ::  trrp_count_sum                               !< parameter for particle exchange of PEs
     130    INTEGER(iwp) ::  trrp_count_recv_sum                          !< parameter for particle exchange of PEs
     131    INTEGER(iwp) ::  trsp_count_sum                               !< parameter for particle exchange of PEs
     132    INTEGER(iwp) ::  trsp_count_recv_sum                          !< parameter for particle exchange of PEs
     133    INTEGER(iwp) ::  trnp_count_sum                               !< parameter for particle exchange of PEs
     134    INTEGER(iwp) ::  trnp_count_recv_sum                          !< parameter for particle exchange of PEs
     135
     136    INTEGER(iwp), PARAMETER ::  max_number_of_particle_groups = 10 !< maximum allowed number of particle groups
     137
     138    INTEGER(iwp), DIMENSION(:,:,:), ALLOCATABLE ::  prt_count  !< 3d array of number of particles of every grid box
     139
     140    LOGICAL ::  all_or_nothing = .FALSE.                  !< flag for collision algorithm
     141    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 droplets                     
     143    LOGICAL ::  deallocate_memory = .TRUE.                !< parameter to enable deallocation of unused memory                   
     144    LOGICAL ::  hall_kernel = .FALSE.                     !< flag for collision kernel
     145    LOGICAL ::  init_aerosol_probabilistic = .FALSE.      !< parameter to steer the initialization of the aerosol spectrum
     146    LOGICAL ::  merging = .FALSE.                         !< parameter to enable merging of super droplets
     147    LOGICAL ::  monodisperse_aerosols = .FALSE.           !< parameter to steer the initialization of the aerosol spectrum
     148    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?
     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 particles
     156    LOGICAL ::  wang_kernel = .FALSE.                     !< flag for collision kernel
     157    LOGICAL ::  write_particle_statistics = .FALSE.       !< switch on/off output of particle information (statistical information)
     158               
    123159    LOGICAL, DIMENSION(max_number_of_particle_groups) ::                       &
    124                 vertical_particle_advection = .TRUE.
    125 
    126     REAL(wp) ::  alloc_factor = 20.0_wp, c_0 = 3.0_wp,                         &
    127                  dt_min_part = 0.0002_wp, dt_prel = 9999999.9_wp,              &
    128                  dt_write_particle_data = 9999999.9_wp,                        &
    129                  end_time_prel = 9999999.9_wp,                                 &
    130                  initial_weighting_factor = 1.0_wp,                            &
    131                  number_concentration     = -1.0_wp,                           &
    132                  particle_advection_start = 0.0_wp,                            &
    133                  sgs_wf_part, time_prel = 0.0_wp, time_sort_particles = 0.0_wp,&
    134                  time_write_particle_data = 0.0_wp, z0_av_global
    135 
    136     REAL(wp), DIMENSION(max_number_of_particle_groups) ::                      &
    137                  density_ratio = 9999999.9_wp, pdx = 9999999.9_wp,             &
    138                  pdy = 9999999.9_wp, pdz = 9999999.9_wp, psb = 9999999.9_wp,   &
    139                  psl = 9999999.9_wp, psn = 9999999.9_wp, psr = 9999999.9_wp,   &
    140                  pss = 9999999.9_wp, pst = 9999999.9_wp, radius = 9999999.9_wp
    141 
    142     REAL(wp), DIMENSION(:), ALLOCATABLE     ::  log_z_z0
    143 
     160                vertical_particle_advection = .TRUE.              !< Switch on/off vertical particle transport
     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).
     205
     206    REAL(wp), DIMENSION(:), ALLOCATABLE     ::  log_z_z0   !< Precalculate LOG(z/z0)
     207
     208   
    144209    TYPE particle_type
    145210        SEQUENCE
     
    181246    TYPE(block_offset_def), DIMENSION(0:7)         ::  block_offset
    182247
    183 !
    184 !-- Lagrangian cloud model constants (especially for steering aerosols)
    185     REAL(wp) ::  molecular_weight_of_solute = 0.05844_wp    !< mol. m. NaCl (kg mol-1)
    186     REAL(wp) ::  molecular_weight_of_water = 0.01801528_wp  !< mol. m. H2O (kg mol-1)
    187     REAL(wp) ::  rho_s = 2165.0_wp                          !< density of NaCl (kg m-3)
    188     REAL(wp) ::  vanthoff = 2.0_wp                          !< van't Hoff factor for NaCl
    189 
    190     REAL(wp) ::  n1 = 100.0_wp, s1 = 2.0_wp, rm1 = 0.05E-6_wp, &
    191                  n2 =   0.0_wp, s2 = 2.0_wp, rm2 = 0.05E-6_wp, &
    192                  n3 =   0.0_wp, s3 = 2.0_wp, rm3 = 0.05E-6_wp
    193 
    194     LOGICAL  ::  monodisperse_aerosols      = .FALSE.       !< initialize monodisperse aerosols
    195     LOGICAL  ::  init_aerosol_probabilistic = .FALSE.       !< how to initialize aerosol spectra
    196 
    197248    SAVE
    198249
  • palm/trunk/SOURCE/package_parin.f90

    r2183 r2263  
    2525! -----------------
    2626! $Id$
     27! Implemented splitting and merging algorithm
     28!
     29! 2183 2017-03-17 14:29:15Z schwenkel
    2730!
    2831! 2182 2017-03-17 14:27:40Z schwenkel
     
    167170               dissipation_classes, dt_min_part, dt_prel,                      &
    168171               dt_write_particle_data, end_time_prel, initial_weighting_factor,&
    169                init_aerosol_probabilistic, min_nr_particle,                    &
    170                monodisperse_aerosols, n1, n2, n3, number_concentration,        &
    171                number_of_particle_groups, number_particles_per_gridbox,        &
    172                particles_per_point, particle_advection,                        &
    173                particle_advection_start,                                       &
    174                pdx, pdy, pdz, psb, psl, psn, psr, pss, pst, radius,            &
    175                radius_classes, random_start_position,                          &
     172               init_aerosol_probabilistic, max_number_particles_per_gridbox,   &
     173               merging, min_nr_particle, monodisperse_aerosols, n1, n2, n3,    &
     174               number_concentration, number_of_particle_groups,                &
     175               number_particles_per_gridbox, particles_per_point,              &
     176               particle_advection, particle_advection_start, pdx, pdy, pdz,    &
     177               psb, psl, psn, psr, pss, pst, radius, radius_classes,           &
     178               radius_merge, radius_split, random_start_position,              &
    176179               read_particles_from_restartfile, rm1, rm2, rm3,                 &
    177                seed_follows_topography, step_dealloc, s1, s2, s3,              &
    178                use_sgs_for_particles, vertical_particle_advection,             &
    179                write_particle_statistics
     180               seed_follows_topography, splitting, splitting_factor,           &
     181               splitting_factor_max, splitting_function, splitting_mode,       &
     182               step_dealloc, s1, s2, s3, use_sgs_for_particles,                &
     183               vertical_particle_advection, weight_factor_merge,               &
     184               weight_factor_split, write_particle_statistics               
    180185
    181186    IMPLICIT NONE
     
    210215                                  end_time_prel, initial_weighting_factor,     &
    211216                                  init_aerosol_probabilistic,                  &
     217                                  max_number_particles_per_gridbox, merging,   &
    212218                                  min_nr_particle, monodisperse_aerosols,      &
    213219                                  n1, n2, n3, number_concentration,            &
     
    218224                                  particle_maximum_age, pdx, pdy, pdz, psb,    &
    219225                                  psl, psn, psr, pss, pst, radius,             &
    220                                   radius_classes, random_start_position,       &
     226                                  radius_classes, radius_merge, radius_split,  &   
     227                                  random_start_position,                       &
    221228                                  read_particles_from_restartfile,             &
    222229                                  rm1, rm2, rm3,                               &
    223                                   seed_follows_topography, step_dealloc,       &
    224                                   s1, s2, s3, use_sgs_for_particles,           &
     230                                  seed_follows_topography,                     &
     231                                  splitting, splitting_factor,                 &
     232                                  splitting_factor_max, splitting_function,    &
     233                                  splitting_mode, step_dealloc, s1, s2, s3,    &
     234                                  use_sgs_for_particles,                       &
    225235                                  vertical_particle_advection,                 &
     236                                  weight_factor_merge, weight_factor_split,    &
    226237                                  write_particle_statistics
    227238
Note: See TracChangeset for help on using the changeset viewer.