MFIX  2016-1
des_allocate_mod.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Module name: DES_ALLOCATE C
4 ! C
5 ! Purpose: subroutines to allocate all DEM arrays C
6 ! C
7 ! Author: Rahul Garg Date: 1-Dec-2013 C
8 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
9 
11 
13 
14 CONTAINS
15 
16 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
17 ! C
18 ! Subroutine: DES_ALLOCATE_ARRAYS C
19 ! Purpose: Original allocate arrays subroutines for DES C
20 ! C
21 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
22  SUBROUTINE des_allocate_arrays
23 
24 !-----------------------------------------------
25 ! Modules
26 !-----------------------------------------------
27  USE compar
28  USE constant
29  USE cutcell
30  USE derived_types, only: boxhandle, pic
31  USE des_bc
32  USE des_rxns
33  USE des_thermo
34  USE discretelement
35  USE functions
36 
37  USE des_thermo_cond, only: des_qw_cond
38 
39  USE funits
40  USE geometry
41  USE indices
42  USE mfix_pic
43  USE param
44  USE param1
45  USE physprop
46  USE pic_bc, only: pic_bcmo, pic_bcmi
47 
48  USE run, only: energy_eq
49  USE run, only: any_species_eq
50 
56  USE particle_filter, only: filter_size
57  USE particle_filter, only: filter_cell
59 
60 ! Use the error manager for posting error messages.
61 !---------------------------------------------------------------------//
62  USE error_manager
63 
64  IMPLICIT NONE
65 !-----------------------------------------------
66 ! Local variables
67 !-----------------------------------------------
68 ! indices
69  INTEGER :: IJK
70 !-----------------------------------------------
71 
72  CALL init_err_msg("DES_ALLOCATE_ARRAYS")
73 
74 ! For parallel processing the array size required should be either
75 ! specified by the user or could be determined from total particles
76 ! with some factor.
77  max_pip = merge(0, particles/numpes, particles==undefined_i)
78  max_pip = max(max_pip,4)
79 
80  WRITE(err_msg,1000) trim(ival(max_pip))
81  CALL flush_err_msg(header = .false., footer = .false.)
82 
83  1000 FORMAT('Initial DES Particle array size: ',a)
84 
85 ! DES Allocatable arrays
86 !-----------------------------------------------
87 ! Dynamic particle info including another index for parallel
88 ! processing for ghost
89  ALLOCATE( particle_state(max_pip) )
90  ALLOCATE (iglobal_id(max_pip))
91 
92 ! R.Garg: Allocate necessary arrays for PIC mass inlet/outlet BCs
93  IF(pic_bcmi /= 0 .OR. pic_bcmo /=0) CALL allocate_pic_mio
94 
95 ! Particle attributes
96 ! Radius, density, mass, moment of inertia
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) )
102 
103 ! Old and new particle positions, velocities (translational and
104 ! rotational)
105  Allocate( des_pos_new(max_pip,dimn) )
106  Allocate( des_vel_new(max_pip,dimn) )
107  Allocate( omega_new(max_pip,dimn) )
108 
109  IF(particle_orientation) Allocate( orientation(dimn,max_pip) )
110 
111  IF (do_old) THEN
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))
117  ENDIF
118 
119 ! Allocating user defined array
120  IF(des_usr_var_size > 0) &
121  Allocate( des_usr_var(des_usr_var_size,max_pip) )
122 
123 ! Particle positions at the last call neighbor search algorithm call
124  Allocate( ppos(max_pip,dimn) )
125 
126 ! Total, normal and tangetial forces
127  Allocate( fc(max_pip,dimn) )
128 
129 ! Torque
130  Allocate( tow(max_pip,dimn) )
131 
132 
133 ! allocate variable for des grid binning
134  allocate(dg_pijk(max_pip)); dg_pijk=0
135  allocate(dg_pijkprv(max_pip)); dg_pijkprv=0
136 
137 ! allocate variables related to ghost particles
138  allocate(ighost_updated(max_pip))
139 
140 
141 
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) )
145 
146 ! Temporary variables to store wall position, velocity and normal vector
147  Allocate( wall_normal(nwalls,dimn) )
148 
149  Allocate( neighbor_index(max_pip) )
150  Allocate( neighbor_index_old(max_pip) )
151  Allocate( neighbors(max_pip) )
152  neighbors(:) = 0
153 
154  Allocate( neighbors_old(max_pip) )
155  Allocate( pft_neighbor(3,max_pip) )
156  Allocate( pft_neighbor_old(3,max_pip) )
157 #ifdef do_sap
158  Allocate( boxhandle(max_pip) )
159 #endif
160 
161 ! Variable that stores the particle in cell information (ID) on the
162 ! computational fluid grid defined by imax, jmax and kmax in mfix.dat
163  ALLOCATE(pic(dimension_3))
164  DO ijk=1,dimension_3
165  NULLIFY(pic(ijk)%p)
166  ENDDO
167 
168 ! Particles in a computational fluid cell (for volume fraction)
169  Allocate( pinc(dimension_3) )
170 
171 ! For each particle track its i,j,k location on computational fluid grid
172 ! defined by imax, jmax and kmax in mfix.dat and phase no.
173  Allocate( pijk(max_pip,5) )
174 
175  ALLOCATE(drag_am(dimension_3))
176  ALLOCATE(drag_bm(dimension_3, dimn))
177  ALLOCATE(f_gp(max_pip ))
178  f_gp(1:max_pip) = zero
179 
180 ! Explicit drag force acting on a particle.
181  Allocate(drag_fc(max_pip,dimn) )
182 
183 ! force due to gas-pressure gradient
184  ALLOCATE(p_force(dimn, dimension_3))
185 
186 ! Volume of nodes
187  ALLOCATE(des_vol_node(dimension_3))
188 
189  ALLOCATE(f_gds(dimension_3))
190  ALLOCATE(vxf_gds(dimension_3))
191 
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))
195  ALLOCATE(filter_weight(filter_size, max_pip))
196  CASE(des_interp_garg)
197  ALLOCATE(des_rops_node(dimension_3, dimension_m))
198  ALLOCATE(des_vel_node(dimension_3, dimn, dimension_m))
199  END SELECT
200 
201 ! Variables for hybrid model
202  IF (des_continuum_hybrid) THEN
203  ALLOCATE(sdrag_am(dimension_3,dimension_m))
204  ALLOCATE(sdrag_bm(dimension_3, dimn,dimension_m))
205 
206  ALLOCATE(f_sds(dimension_3,dimension_m))
207  ALLOCATE(vxf_sds(dimension_3,dimension_m))
208  ENDIF
209 
210 ! MP-PIC related
211  IF(mppic) THEN
212  Allocate(ps_force_pic(3, dimension_3))
213  ALLOCATE(des_stat_wt(max_pip))
214  ALLOCATE(des_vel_max(dimn))
215  ALLOCATE(ps_grad(3,max_pip))
216  ALLOCATE(avgsolvel_p(3, max_pip))
217  ALLOCATE(epg_p(max_pip))
218 
219  Allocate(pic_u_s(dimension_3, dimension_m) )
220  Allocate(pic_v_s(dimension_3, dimension_m) )
221  Allocate(pic_w_s(dimension_3, dimension_m) )
222  Allocate(pic_p_s(dimension_3, dimension_m) )
223  pic_u_s = zero
224  pic_v_s = zero
225  pic_w_s = zero
226  pic_p_s = zero
227  ENDIF
228 
229 ! Averaged velocity obtained by averaging over all the particles
230  ALLOCATE(des_vel_avg(dimn) )
231 
232 ! Global Granular Energy
233  ALLOCATE(global_gran_energy(dimn) )
234  ALLOCATE(global_gran_temp(dimn) )
235 
236 ! variable for bed height of solids phase M
237  ALLOCATE(bed_height(dimension_m))
238 
239 ! ---------------------------------------------------------------->>>
240 ! BEGIN COHESION
241  IF(use_cohesion) THEN
242 ! Matrix location of particle (should be allocated in case user wishes
243 ! to invoke routines in /cohesion subdirectory
244  Allocate( postcohesive(max_pip) )
245  ENDIF
246 ! END COHESION
247 ! ----------------------------------------------------------------<<<
248 
249 ! ---------------------------------------------------------------->>>
250 ! BEGIN Thermodynamic Allocation
251  IF(energy_eq)THEN
252 ! Particle temperature
253  Allocate( des_t_s( max_pip ) )
254 ! Specific heat
255  Allocate( des_c_ps( max_pip ) )
256 ! Species mass fractions comprising a particle. This array may not be
257 ! needed for all thermo problems.
258  Allocate( des_x_s( max_pip, dimension_n_s))
259 ! Total rate of heat transfer to individual particles.
260  Allocate( q_source( max_pip ) )
261 ! Average solids temperature in fluid cell
262  Allocate(avgdes_t_s(dimension_3) )
263 ! Gas/Solids convective heat transfer coupling
264  IF(calc_conv_des) THEN
265 ! Fluid phase energy equation source terms
266  Allocate(conv_sc(dimension_3) )
267  Allocate(conv_sp(dimension_3) )
268 ! Particle convection source term (explicit coupled)
269  Allocate(conv_qs(max_pip))
270 ! Gas-particle heat transfer coefficient TIMES surface area
271  Allocate(gammaxsa(max_pip))
272  ENDIF
273 
274 ! Allocate the history variables for Adams-Bashforth integration
275  IF (intg_adams_bashforth) &
276  Allocate( q_source0( max_pip ) )
277 ! Allocate the array for storing particle-wall heat transfer per unit area
278  IF (any(calc_cond_des)) &
279  Allocate( des_qw_cond( dimension_3, dimension_m))
280  ENDIF
281 ! End Thermodynamic Allocation
282 ! ----------------------------------------------------------------<<<
283 
284 
285 ! ---------------------------------------------------------------->>>
286 ! BEGIN Species Allocation
287  IF(any_species_eq)THEN
288 ! Rate of solids phase production/consumption for each species
289  Allocate( des_r_s( max_pip, dimension_n_s) )
290 
291 
292  Allocate( des_r_gp( dimension_3, dimension_n_g ) )
293  Allocate( des_r_gc( dimension_3, dimension_n_g ) )
294  Allocate( des_sum_r_g( dimension_3 ) )
296  Allocate( des_hor_g( dimension_3 ) )
297 
298 
299 ! Allocate the history variables for Adams-Bashforth integration
300  IF (intg_adams_bashforth) THEN
301 ! Rate of change of particle mass
302  Allocate( dmdt_old( max_pip ) )
303 ! Rate of change of particle mass percent species
304  Allocate( dxdt_old( max_pip, dimension_n_s) )
305  ENDIF
306 
307 ! Energy generation from reaction (cal/sec)
308  Allocate( rxns_qs( max_pip ) )
309  ENDIF
310 ! End Species Allocation
311 ! ----------------------------------------------------------------<<<
312 
313  CALL finl_err_msg
314 
315  RETURN
316  END SUBROUTINE des_allocate_arrays
317 
318 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
319 ! !
320 ! Subroutine: ALLOCATE_DEM_MIO !
321 ! !
322 ! Purpose: !
323 ! !
324 ! Author: J.Musser Date: 17-Aug-09 !
325 ! !
326 ! Comments: !
327 ! !
328 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
329 
330  SUBROUTINE allocate_dem_mi
332 !-----------------------------------------------
333 ! Modules
334 !-----------------------------------------------
335  USE param1, only: undefined
336  USE des_bc, only: dem_bcmi
337  USE des_bc, only: pi_factor, pi_count
338  use des_bc, only: numfrac_limit
340  use des_bc, only: dem_mi
342  IMPLICIT NONE
343 !-----------------------------------------------
344 
345 ! Particle injection factor
346  Allocate( pi_factor(dem_bcmi) )
347 ! Particle injection count (injection number)
348  Allocate( pi_count(dem_bcmi) )
349 ! Particle injection time scale
350  Allocate( dem_mi_time(dem_bcmi) )
351 ! Array used for polydisperse inlets: stores the particle number
352 ! distribution of an inlet scaled with numfrac_limit
353  Allocate( dem_bc_poly_layout( dem_bcmi, numfrac_limit ) )
354 ! Data structure for storing BC data.
355  Allocate( dem_mi(dem_bcmi) )
356 
357 ! Initializiation
358 ! Integer arrays
359  pi_factor(:) = -1
360  pi_count(:) = -1
361  dem_bc_poly_layout(:,:) = -1
362 ! Double precision arrays
363  dem_mi_time(:) = undefined
364 
365  allocate( dem_bcmi_ijkstart(dem_bcmi) )
366  allocate( dem_bcmi_ijkend(dem_bcmi) )
367 
368  dem_bcmi_ijkstart = -1
369  dem_bcmi_ijkend = -1
370 
371 ! Boundary classification
372 ! Allocate( PARTICLE_PLCMNT (DES_BCMI) )
373 ! Character precision arrays
374 ! PARTICLE_PLCMNT(:) = UNDEFINED_C
375 
376  RETURN
377  END SUBROUTINE allocate_dem_mi
378 
379 
380 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
381 ! !
382 ! Subroutine: ALLOCATE_PIC_MIO !
383 ! !
384 ! Purpose: !
385 ! !
386 ! Author: R. Garg Date: 11-Jun-14 !
387 ! !
388 ! !
389 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
390  SUBROUTINE allocate_pic_mio
392 ! Modules
393 !-----------------------------------------------
394  USE pic_bc, only: pic_bcmi, pic_bcmo
397  USE pic_bc, only: pic_bcmi_normdir
398  USE pic_bc, only: pic_bcmi_offset
399  USE pic_bc, only: pic_bcmi_incl_cutcell
400  IMPLICIT NONE
401 !-----------------------------------------------
402 
403 ! Allocate/Initialize for inlets
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))
409  ALLOCATE( pic_bcmi_incl_cutcell(pic_bcmi) )
410  pic_bcmi_ijkstart = -1
411  pic_bcmi_ijkend = -1
412  ENDIF ! end if PIC_BCMI /= 0
413 
414 
415  IF(pic_bcmo > 0)THEN
416  allocate( pic_bcmo_ijkstart(pic_bcmo) )
417  allocate( pic_bcmo_ijkend(pic_bcmo) )
418  pic_bcmo_ijkstart = -1
419  pic_bcmo_ijkend = -1
420  ENDIF
421 
422  RETURN
423  END SUBROUTINE allocate_pic_mio
424 
425 
426 
427 !``````````````````````````````````````````````````````````````````````!
428 ! Subroutine: ADD_PAIR !
429 ! !
430 ! Purpose: Adds a neighbor pair to the pairs array. !
431 ! !
432 !``````````````````````````````````````````````````````````````````````!
433  DOUBLE PRECISION FUNCTION add_pair(ii,jj)
434  USE discretelement
435  IMPLICIT NONE
436  INTEGER, INTENT(IN) :: ii,jj
437 
438  CALL neighbor_grow(neighbor_index(ii))
439 
440  neighbors(neighbor_index(ii)) = jj
441  neighbor_index(ii) = neighbor_index(ii) + 1
442  add_pair = neighbor_index(ii)
443 
444  RETURN
445  END FUNCTION add_pair
446 
447 !``````````````````````````````````````````````````````````````````````!
448 ! Subroutine: NEIGHBOR_GROW !
449 ! !
450 ! Purpose: Grow neighbors arrays to new_neigh_max. Note that neighbor !
451 ! max should be increased before calling this routine. Also, no !
452 ! assumption to the previous array size is made as needed for restarts.!
453 !``````````````````````````````````````````````````````````````````````!
454  SUBROUTINE neighbor_grow(new_neigh_max)
455  USE discretelement
456  USE geometry
457  IMPLICIT NONE
458 
459  integer, intent(in) :: new_neigh_max
460 
461  INTEGER :: lSIZE1
462  INTEGER, DIMENSION(:), ALLOCATABLE :: neigh_tmp
463  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: pf_tmp
464  INTEGER new_size
465 
466  lsize1 = size(neighbors,1)
467 
468  IF ( new_neigh_max .le. lsize1 ) RETURN
469 
470  new_size = lsize1
471 
472  DO WHILE(new_size < new_neigh_max)
473  new_size = 2*new_size
474  ENDDO
475 
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)
480 
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)
485 
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)
490 
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)
495 
496 
497  END SUBROUTINE neighbor_grow
498 
499 !``````````````````````````````````````````````````````````````````````!
500 ! Subroutine: PARTICLE_GROW !
501 ! !
502 ! Purpose: Grow particle arrays to new_max_pip. Note that pair !
503 ! max should be increased before calling this routine. Also, no !
504 ! assumption to the previous array size is made as needed for restarts.!
505 !``````````````````````````````````````````````````````````````````````!
506  SUBROUTINE particle_grow(new_max_pip)
508  USE des_rxns
509  USE des_thermo
510  USE derived_types, only: boxhandle
511  USE discretelement
512  USE mfix_pic
514  USE particle_filter
515  USE resize
516  USE run
517 
518  IMPLICIT NONE
519 
520  integer, intent(in) :: new_max_pip
521  integer :: old_size, new_size
522 
523  IF (new_max_pip .le. size(des_radius)) RETURN
524  max_pip = max(max_pip, new_max_pip)
525 
526  old_size = size(des_radius)
527 
528  new_size = old_size
529 
530  DO WHILE (new_size < new_max_pip)
531  new_size = 2*new_size
532  ENDDO
533 
534 #ifdef do_sap
535  call boxhandle_grow(boxhandle,new_size)
536 #endif
537  call real_grow(des_radius,new_size)
538  call real_grow(ro_sol,new_size)
539  call real_grow(pvol,new_size)
540  call real_grow(pmass,new_size)
541  call real_grow(omoi,new_size)
542  call real_grow2_reverse(des_pos_new,new_size)
543  call real_grow2_reverse(des_vel_new,new_size)
544  call real_grow2_reverse(omega_new,new_size)
545  call real_grow2_reverse(ppos,new_size)
546  call byte_grow(particle_state,new_size)
547  call integer_grow(iglobal_id,new_size)
548  call integer_grow2_reverse(pijk,new_size)
549  call integer_grow(dg_pijk,new_size)
550  call integer_grow(dg_pijkprv,new_size)
551  call logical_grow(ighost_updated,new_size)
552  call real_grow2_reverse(fc,new_size)
553  call real_grow2_reverse(tow,new_size)
554  call real_grow(f_gp,new_size)
555  call integer_grow2(wall_collision_facet_id,new_size)
556  call real_grow3(wall_collision_pft,new_size)
557  call real_grow2_reverse(drag_fc,new_size)
558 
559  call integer_grow(neighbor_index,new_size)
560  call integer_grow(neighbor_index_old,new_size)
561 
562  IF(particle_orientation) call real_grow2(orientation,new_size)
563 
564  IF(filter_size > 0) THEN
565  call integer_grow2(filter_cell,new_size)
566  call real_grow2(filter_weight,new_size)
567  ENDIF
568 
569  IF(mppic) THEN
570  call real_grow(des_stat_wt,new_size)
571  call real_grow2(ps_grad,new_size)
572  call real_grow2(avgsolvel_p,new_size)
573  call real_grow(epg_p,new_size)
574  ENDIF
575 
576  IF(use_cohesion) THEN
577  call real_grow(postcohesive,new_size)
578  ENDIF
579 
580  IF (do_old) THEN
581  call real_grow2_reverse(des_pos_old,new_size)
582  call real_grow2_reverse(des_vel_old,new_size)
583  call real_grow2_reverse(des_acc_old,new_size)
584  call real_grow2_reverse(omega_old,new_size)
585  call real_grow2_reverse(rot_acc_old,new_size)
586  ENDIF
587 
588  IF(energy_eq)THEN
589  call real_grow(des_t_s,new_size)
590  call real_grow(des_c_ps,new_size)
591  call real_grow2_reverse(des_x_s,new_size)
592  call real_grow(q_source,new_size)
593  IF(calc_conv_des) THEN
594  call real_grow(conv_qs, new_size)
595  call real_grow(gammaxsa, new_size)
596  ENDIF
597  IF(intg_adams_bashforth) &
598  call real_grow(q_source0,new_size)
599  ENDIF
600 
601  IF(any_species_eq)THEN
602  call real_grow2_reverse( des_r_s, new_size )
603 
604  IF (intg_adams_bashforth) THEN
605  call real_grow( dmdt_old, new_size )
606  call real_grow2_reverse( dxdt_old, new_size )
607  ENDIF
608 
609  call real_grow( rxns_qs, new_size )
610  ENDIF
611 
612  IF(des_usr_var_size > 0) &
613  call real_grow2(des_usr_var,new_size)
614 
615  CALL des_init_particle_arrays(old_size+1,new_size)
616 
617  RETURN
618 
619  END SUBROUTINE particle_grow
620 
621  END MODULE des_allocate
double precision, dimension(:), allocatable gammaxsa
integer pic_bcmi
Definition: pic_bc_mod.f:18
subroutine, public integer_grow2_reverse(integer_array, new_size)
Definition: resize.f:48
integer, parameter des_interp_gauss
double precision, dimension(:,:), allocatable des_r_s
Definition: des_rxns_mod.f:24
double precision, dimension(:), allocatable conv_sc
integer, dimension(:,:), allocatable filter_cell
double precision, dimension(:,:), allocatable avgsolvel_p
Definition: mfix_pic_mod.f:28
subroutine finl_err_msg
double precision, dimension(:,:), allocatable ps_grad
Definition: mfix_pic_mod.f:74
subroutine, public des_allocate_arrays
integer dimension_lm
Definition: param1_mod.f:13
integer, parameter des_interp_garg
double precision, dimension(:), allocatable des_t_s
integer dimension_3
Definition: param_mod.f:11
integer dimension_n_g
Definition: param_mod.f:20
logical, dimension(dim_m) calc_cond_des
subroutine allocate_pic_mio
integer, dimension(:), allocatable pic_bcmi_ijkstart
Definition: pic_bc_mod.f:34
double precision, dimension(:), allocatable des_hor_g
Definition: des_rxns_mod.f:46
logical calc_conv_des
subroutine, public boxhandle_grow(boxhandles, new_size)
Definition: multisap.f:463
double precision, dimension(:), allocatable des_sum_r_g
Definition: des_rxns_mod.f:42
double precision, dimension(:,:), allocatable pic_p_s
Definition: mfix_pic_mod.f:81
subroutine, public real_grow(real_array, new_size)
Definition: resize.f:111
logical, dimension(:), allocatable pic_bcmi_incl_cutcell
Definition: pic_bc_mod.f:57
subroutine, public real_grow2(real_array, new_size)
Definition: resize.f:126
double precision, parameter undefined
Definition: param1_mod.f:18
subroutine, public allocate_dem_mi
double precision, dimension(:), allocatable q_source0
subroutine, public byte_grow(byte_array, new_size)
Definition: resize.f:18
double precision, dimension(:,:), allocatable pic_v_s
Definition: mfix_pic_mod.f:85
integer, dimension(:), allocatable pic_bcmo_ijkstart
Definition: pic_bc_mod.f:28
double precision, dimension(:), allocatable avgdes_t_s
subroutine, public integer_grow2(integer_array, new_size)
Definition: resize.f:64
subroutine neighbor_grow(new_neigh_max)
subroutine des_init_particle_arrays(LB, UB)
integer numpes
Definition: compar_mod.f:24
double precision, dimension(:), allocatable dem_mi_time
Definition: des_bc_mod.f:36
integer, parameter des_interp_lhat
subroutine init_err_msg(CALLER)
double precision, dimension(:,:), allocatable filter_weight
subroutine, public integer_grow(integer_array, new_size)
Definition: resize.f:33
integer, dimension(:,:), allocatable pic_bcmi_normdir
Definition: pic_bc_mod.f:40
double precision, dimension(:,:), allocatable des_r_gc
Definition: des_rxns_mod.f:40
integer, parameter des_interp_dpvm
integer dem_bcmi
Definition: des_bc_mod.f:18
double precision, dimension(:,:), allocatable des_x_s
Definition: des_rxns_mod.f:21
integer, parameter numfrac_limit
Definition: des_bc_mod.f:58
logical any_species_eq
Definition: run_mod.f:118
Definition: resize.f:1
double precision, dimension(:,:), allocatable dxdt_old
Definition: des_rxns_mod.f:33
Definition: run_mod.f:13
double precision, dimension(:), allocatable conv_sp
double precision, dimension(:,:), allocatable pic_w_s
Definition: mfix_pic_mod.f:87
Definition: param_mod.f:2
subroutine, public real_grow2_reverse(real_array, new_size)
Definition: resize.f:142
subroutine, public real_grow3(real_array, new_size)
Definition: resize.f:158
double precision, dimension(:,:), allocatable des_r_phase
Definition: des_rxns_mod.f:44
integer des_interp_scheme_enum
integer, dimension(:), allocatable dem_bcmi_ijkstart
Definition: des_bc_mod.f:98
double precision, dimension(:), allocatable conv_qs
integer, dimension(:), allocatable pi_factor
Definition: des_bc_mod.f:48
integer, dimension(:), allocatable dem_bcmi_ijkend
Definition: des_bc_mod.f:99
logical energy_eq
Definition: run_mod.f:100
integer, parameter undefined_i
Definition: param1_mod.f:19
double precision, dimension(:), allocatable epg_p
Definition: mfix_pic_mod.f:31
integer, dimension(:), allocatable pic_bcmi_ijkend
Definition: pic_bc_mod.f:35
character(len=line_length), dimension(line_count) err_msg
integer, dimension(:), allocatable pi_count
Definition: des_bc_mod.f:53
type(dem_mi_), dimension(:), allocatable, target dem_mi
Definition: des_bc_mod.f:90
integer pic_bcmo
Definition: pic_bc_mod.f:19
double precision, dimension(:,:), allocatable pic_u_s
Definition: mfix_pic_mod.f:83
logical mppic
Definition: mfix_pic_mod.f:14
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
Definition: des_rxns_mod.f:38
integer dimension_n_s
Definition: param_mod.f:21
integer, dimension(:,:), allocatable dem_bc_poly_layout
Definition: des_bc_mod.f:32
type(boxhandlelist_t), dimension(:), allocatable boxhandle
integer, dimension(:,:), allocatable pic_bcmi_offset
Definition: pic_bc_mod.f:47
integer dimension_m
Definition: param_mod.f:18
double precision, dimension(:), allocatable des_stat_wt
Definition: mfix_pic_mod.f:54
double precision, dimension(:,:), allocatable ps_force_pic
Definition: mfix_pic_mod.f:25
double precision, parameter zero
Definition: param1_mod.f:27
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)
integer, dimension(:), allocatable pic_bcmo_ijkend
Definition: pic_bc_mod.f:29
double precision, dimension(:), allocatable des_c_ps
subroutine, public logical_grow(logical_array, new_size)
Definition: resize.f:80
double precision, dimension(:), allocatable dmdt_old
Definition: des_rxns_mod.f:31
double precision function, public add_pair(ii, jj)