Ignore:
Timestamp:
Jun 8, 2017 4:58:28 PM (4 years ago)
Author:
schwenkel
Message:

unused variables removed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/mod_particle_attributes.f90

    r2263 r2265  
    2525! -----------------
    2626! $Id$
     27! Unused variables removed.
     28!
     29! 2263 2017-06-08 14:59:01Z schwenkel
    2730! Implemented splitting and merging algorithm
    2831!
     
    9497
    9598    INTEGER(iwp) ::  deleted_particles = 0                        !< number of deleted particles per time step
    96     INTEGER(iwp) ::  dissipation_classes = 10                     !< number of dissipation classes
     99    INTEGER(iwp) ::  dissipation_classes = 10                     !< namelist parameter (see documentation)
    97100    INTEGER(iwp) ::  ibc_par_b                                    !< particle bottom boundary condition dummy
    98101    INTEGER(iwp) ::  ibc_par_lr                                   !< particle left/right boundary condition dummy
     
    102105    INTEGER(iwp) ::  isf                                          !< dummy for splitting function
    103106    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)
    106108    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         
     109    INTEGER(iwp) ::  min_nr_particle = 50                         !< namelist parameter (see documentation)         
    108110    INTEGER(iwp) ::  mpi_particle_type                            !< parameter for particle PE particle exchange
    109111    INTEGER(iwp) ::  new_particles = 0                            !< number of new particles
    110112    INTEGER(iwp) ::  n_max = 100                                  !< number of radii bin for splitting functions     
    111113    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           
     114    INTEGER(iwp) ::  number_of_particle_groups = 1                !< namelist parameter (see documentation)           
    113115    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           
     116    INTEGER(iwp) ::  number_particles_per_gridbox = -1            !< namelist parameter (see documentation)         
    115117    INTEGER(iwp) ::  offset_ocean_nzt = 0                         !< in case of oceans runs, the vertical index calculations need an offset         
    116118    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)
    120121    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
     122    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)
    124125    INTEGER(iwp) ::  sum_merge_drp = 0                            !< sum of merged super droplets
    125126    INTEGER(iwp) ::  sum_new_particles = 0                        !< sum of created particles (in splitting algorithm)
     
    140141    LOGICAL ::  all_or_nothing = .FALSE.                  !< flag for collision algorithm
    141142    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                  
     143    LOGICAL ::  curvature_solution_effects = .FALSE.      !< namelist parameter (see documentation)                     
     144    LOGICAL ::  deallocate_memory = .TRUE.                !< namelist parameter (see documentation)                 
    144145    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
     146    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)
    148149    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)
    154154    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
     155    LOGICAL ::  use_sgs_for_particles = .FALSE.           !< namelist parameter (see documentation)
    156156    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)
    158158               
    159159    LOGICAL, DIMENSION(max_number_of_particle_groups) ::                       &
    160160                vertical_particle_advection = .TRUE.              !< Switch on/off vertical particle transport
    161161
    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)
    205204
    206205    REAL(wp), DIMENSION(:), ALLOCATABLE     ::  log_z_z0   !< Precalculate LOG(z/z0)
     
    209208    TYPE particle_type
    210209        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?)
    217235    END TYPE particle_type
    218236
    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
    221239
    222240    TYPE particle_groups_type
    223241        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
    225246    END TYPE particle_groups_type
    226247
     
    229250
    230251    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 cell
     252        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
    236257    END TYPE grid_particle_def
    237258
    238259    TYPE(grid_particle_def), DIMENSION(:,:,:), ALLOCATABLE, TARGET ::  grid_particles
    239260
    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     !<
    244265    END TYPE block_offset_def
    245266
Note: See TracChangeset for help on using the changeset viewer.