78 max_pip = max(max_pip,4)
83 1000
FORMAT(
'Initial DES Particle array size: ',a)
89 ALLOCATE( particle_state(max_pip) )
90 ALLOCATE (iglobal_id(max_pip))
97 Allocate( des_radius(max_pip) )
98 Allocate( ro_sol(max_pip) )
99 Allocate( pvol(max_pip) )
100 Allocate( pmass(max_pip) )
101 Allocate( omoi(max_pip) )
105 Allocate( des_pos_new(max_pip,dimn) )
106 Allocate( des_vel_new(max_pip,dimn) )
107 Allocate( omega_new(max_pip,dimn) )
109 IF(particle_orientation)
Allocate( orientation(dimn,max_pip) )
112 Allocate( des_pos_old(max_pip,dimn) )
113 Allocate( des_vel_old(max_pip,dimn) )
114 Allocate( des_acc_old(max_pip,dimn) )
115 Allocate( omega_old(max_pip,dimn) )
116 Allocate( rot_acc_old(max_pip,dimn))
120 IF(des_usr_var_size > 0) &
121 Allocate( des_usr_var(des_usr_var_size,max_pip) )
124 Allocate( ppos(max_pip,dimn) )
127 Allocate( fc(max_pip,dimn) )
130 Allocate( tow(max_pip,dimn) )
134 allocate(dg_pijk(max_pip)); dg_pijk=0
135 allocate(dg_pijkprv(max_pip)); dg_pijkprv=0
138 allocate(ighost_updated(max_pip))
142 Allocate( wall_collision_facet_id(collision_array_max, max_pip) )
143 wall_collision_facet_id(:,:) = -1
144 Allocate( wall_collision_pft(dimn, collision_array_max, max_pip) )
147 Allocate( wall_normal(nwalls,dimn) )
149 Allocate( neighbor_index(max_pip) )
150 Allocate( neighbor_index_old(max_pip) )
151 Allocate( neighbors(max_pip) )
154 Allocate( neighbors_old(max_pip) )
155 Allocate( pft_neighbor(3,max_pip) )
156 Allocate( pft_neighbor_old(3,max_pip) )
173 Allocate( pijk(max_pip,5) )
177 ALLOCATE(f_gp(max_pip ))
178 f_gp(1:max_pip) =
zero 181 Allocate(drag_fc(max_pip,dimn) )
192 SELECT CASE(des_interp_scheme_enum)
193 CASE(des_interp_dpvm, des_interp_gauss, des_interp_lhat)
194 ALLOCATE(filter_cell(filter_size, max_pip))
196 CASE(des_interp_garg)
202 IF (des_continuum_hybrid)
THEN 214 ALLOCATE(des_vel_max(dimn))
217 ALLOCATE(
epg_p(max_pip))
230 ALLOCATE(des_vel_avg(dimn) )
233 ALLOCATE(global_gran_energy(dimn) )
234 ALLOCATE(global_gran_temp(dimn) )
241 IF(use_cohesion)
THEN 244 Allocate( postcohesive(max_pip) )
275 IF (intg_adams_bashforth) &
300 IF (intg_adams_bashforth)
THEN 346 Allocate( pi_factor(dem_bcmi) )
348 Allocate( pi_count(dem_bcmi) )
350 Allocate( dem_mi_time(dem_bcmi) )
353 Allocate( dem_bc_poly_layout( dem_bcmi, numfrac_limit ) )
355 Allocate( dem_mi(dem_bcmi) )
361 dem_bc_poly_layout(:,:) = -1
404 IF(pic_bcmi /= 0)
THEN 405 allocate( pic_bcmi_ijkstart(pic_bcmi) )
406 allocate( pic_bcmi_ijkend(pic_bcmi) )
407 allocate( pic_bcmi_normdir(pic_bcmi,3) )
408 ALLOCATE( pic_bcmi_offset(pic_bcmi,3))
410 pic_bcmi_ijkstart = -1
416 allocate( pic_bcmo_ijkstart(pic_bcmo) )
417 allocate( pic_bcmo_ijkend(pic_bcmo) )
418 pic_bcmo_ijkstart = -1
433 DOUBLE PRECISION FUNCTION add_pair(ii,jj)
436 INTEGER,
INTENT(IN) :: ii,jj
440 neighbors(neighbor_index(ii)) = jj
441 neighbor_index(ii) = neighbor_index(ii) + 1
459 integer,
intent(in) :: new_neigh_max
462 INTEGER,
DIMENSION(:),
ALLOCATABLE :: neigh_tmp
463 DOUBLE PRECISION,
DIMENSION(:,:),
ALLOCATABLE :: pf_tmp
466 lsize1 =
size(neighbors,1)
468 IF ( new_neigh_max .le. lsize1 )
RETURN 472 DO WHILE(new_size < new_neigh_max)
473 new_size = 2*new_size
476 allocate(neigh_tmp(new_size))
477 neigh_tmp(1:lsize1) = neighbors(1:lsize1)
478 neigh_tmp(lsize1+1:) = 0
479 call move_alloc(neigh_tmp,neighbors)
481 allocate(neigh_tmp(new_size))
482 neigh_tmp(1:lsize1) = neighbors_old(1:lsize1)
483 neigh_tmp(lsize1+1:) = 0
484 call move_alloc(neigh_tmp,neighbors_old)
486 allocate(pf_tmp(3,new_size))
487 pf_tmp(:,1:lsize1) = pft_neighbor(:,1:lsize1)
488 pf_tmp(:,lsize1+1:) = 0
489 call move_alloc(pf_tmp,pft_neighbor)
491 allocate(pf_tmp(3,new_size))
492 pf_tmp(:,1:lsize1) = pft_neighbor_old(:,1:lsize1)
493 pf_tmp(:,lsize1+1:) = 0
494 call move_alloc(pf_tmp,pft_neighbor_old)
520 integer,
intent(in) :: new_max_pip
521 integer :: old_size, new_size
523 IF (new_max_pip .le.
size(des_radius))
RETURN 524 max_pip = max(max_pip, new_max_pip)
526 old_size =
size(des_radius)
530 DO WHILE (new_size < new_max_pip)
531 new_size = 2*new_size
562 IF(particle_orientation)
call real_grow2(orientation,new_size)
576 IF(use_cohesion)
THEN 597 IF(intg_adams_bashforth) &
604 IF (intg_adams_bashforth)
THEN 612 IF(des_usr_var_size > 0) &
double precision, dimension(:), allocatable gammaxsa
subroutine, public integer_grow2_reverse(integer_array, new_size)
integer, parameter des_interp_gauss
double precision, dimension(:,:), allocatable des_r_s
double precision, dimension(:), allocatable conv_sc
integer, dimension(:,:), allocatable filter_cell
double precision, dimension(:,:), allocatable avgsolvel_p
double precision, dimension(:,:), allocatable ps_grad
subroutine, public des_allocate_arrays
integer, parameter des_interp_garg
double precision, dimension(:), allocatable des_t_s
logical, dimension(dim_m) calc_cond_des
subroutine allocate_pic_mio
integer, dimension(:), allocatable pic_bcmi_ijkstart
double precision, dimension(:), allocatable des_hor_g
subroutine, public boxhandle_grow(boxhandles, new_size)
double precision, dimension(:), allocatable des_sum_r_g
double precision, dimension(:,:), allocatable pic_p_s
subroutine, public real_grow(real_array, new_size)
logical, dimension(:), allocatable pic_bcmi_incl_cutcell
subroutine, public real_grow2(real_array, new_size)
double precision, parameter undefined
subroutine, public allocate_dem_mi
double precision, dimension(:), allocatable q_source0
subroutine, public byte_grow(byte_array, new_size)
double precision, dimension(:,:), allocatable pic_v_s
integer, dimension(:), allocatable pic_bcmo_ijkstart
double precision, dimension(:), allocatable avgdes_t_s
subroutine, public integer_grow2(integer_array, new_size)
subroutine neighbor_grow(new_neigh_max)
subroutine des_init_particle_arrays(LB, UB)
double precision, dimension(:), allocatable dem_mi_time
integer, parameter des_interp_lhat
subroutine init_err_msg(CALLER)
double precision, dimension(:,:), allocatable filter_weight
subroutine, public integer_grow(integer_array, new_size)
integer, dimension(:,:), allocatable pic_bcmi_normdir
double precision, dimension(:,:), allocatable des_r_gc
integer, parameter des_interp_dpvm
double precision, dimension(:,:), allocatable des_x_s
integer, parameter numfrac_limit
double precision, dimension(:,:), allocatable dxdt_old
double precision, dimension(:), allocatable conv_sp
double precision, dimension(:,:), allocatable pic_w_s
subroutine, public real_grow2_reverse(real_array, new_size)
subroutine, public real_grow3(real_array, new_size)
double precision, dimension(:,:), allocatable des_r_phase
integer des_interp_scheme_enum
integer, dimension(:), allocatable dem_bcmi_ijkstart
double precision, dimension(:), allocatable conv_qs
integer, dimension(:), allocatable pi_factor
integer, dimension(:), allocatable dem_bcmi_ijkend
integer, parameter undefined_i
double precision, dimension(:), allocatable epg_p
integer, dimension(:), allocatable pic_bcmi_ijkend
character(len=line_length), dimension(line_count) err_msg
integer, dimension(:), allocatable pi_count
type(dem_mi_), dimension(:), allocatable, target dem_mi
double precision, dimension(:,:), allocatable pic_u_s
subroutine, public particle_grow(new_max_pip)
double precision, dimension(:), allocatable q_source
double precision, dimension(:,:), allocatable des_qw_cond
double precision, dimension(:), allocatable rxns_qs
type(iap1), dimension(:), allocatable pic
double precision, dimension(:,:), allocatable des_r_gp
integer, dimension(:,:), allocatable dem_bc_poly_layout
type(boxhandlelist_t), dimension(:), allocatable boxhandle
integer, dimension(:,:), allocatable pic_bcmi_offset
double precision, dimension(:), allocatable des_stat_wt
double precision, dimension(:,:), allocatable ps_force_pic
double precision, parameter zero
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)
integer, dimension(:), allocatable pic_bcmo_ijkend
double precision, dimension(:), allocatable des_c_ps
subroutine, public logical_grow(logical_array, new_size)
double precision, dimension(:), allocatable dmdt_old
double precision function, public add_pair(ii, jj)