particles_surfspec

Module

Description

$Id: particles_surfspec.f90 21950 2014-07-08 08:53:00Z jonas.kruger $

MOUDLE_DOC: This module takes care the gas phase species in the MODULE_DOC: immediate vicinity of reactive particles.

** AUTOMATIC CPARAM.INC GENERATION ************************

Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module

CPARAM logical, parameter :: lparticles_surfspec=.true.


Quick access

Variables:

allocate_surface_pencils, calc_mass_trans_coeff, calc_mass_trans_reactants, create_jmap, dmass_frac_dt, find_index, idiag_dtpchem, idiag_surf, init_surf, init_surf_mol_frac, ispecenth, jar, jch, jch2, jch3, jch4, jco, jco2, jh, jh2, jh2o, jhco, jn2, jo, jo2, joh, lboundary_explicit, ldiffenth, ldiffs, ldiffuse_backenth, ldiffuse_backspec, linfinite_diffusion, lpchem_cdtc, lpchem_mass_enth, lpfilter, lspecies_transfer, lwrite, mass_trans_coeff_reactants, mass_trans_coeff_species, ndiffsteps, nu_power, rdiffconsts, register_dep_psurfchem, register_dep_psurfspec, register_indep_psurfchem, register_indep_psurfspec, solid_species, true_density_carbon, write_outputfile, x_infty_reactants, ysurf

Routines:

calc_diagnostics_particles_surf(), calc_psurf_pencils(), cleanup_surf_pencils(), dpsurf_dt(), dpsurf_dt_pencil(), init_particles_surf(), initialize_particles_surf(), particles_surfspec_clean_up(), read_particles_surf_init_pars(), read_particles_surf_run_pars(), register_particles_surfspec(), rprint_particles_surf(), write_particles_surf_init_pars(), write_particles_surf_run_pars()

Needed modules

Variables

  • particles_surfspec/allocate_surface_pencils [private]
  • particles_surfspec/calc_mass_trans_coeff [private]
  • particles_surfspec/calc_mass_trans_reactants [private]
  • particles_surfspec/create_jmap [private]
  • particles_surfspec/dmass_frac_dt (*,*,*) [real,private/allocatable]
  • particles_surfspec/find_index [private]
  • particles_surfspec/idiag_dtpchem [integer,private/optional/default=0]

    DIAG_DOC: $dt_{particle,chemistry}$

  • particles_surfspec/idiag_surf (*) [integer,private/allocatable]
  • particles_surfspec/init_surf (ninit) [character,private/optional/default='nothing']
  • particles_surfspec/init_surf_mol_frac (10) [real,private]

    INIT_DOC: Initial surface fraction

  • particles_surfspec/ispecaux (nchemspec) [integer,private/optional/default=0]
  • particles_surfspec/ispecenth [integer,private]
  • particles_surfspec/jar [integer,private]
  • particles_surfspec/jch [integer,private]
  • particles_surfspec/jch2 [integer,private]
  • particles_surfspec/jch3 [integer,private]
  • particles_surfspec/jch4 [integer,private]
  • particles_surfspec/jco [integer,private]
  • particles_surfspec/jco2 [integer,private]
  • particles_surfspec/jh [integer,private]
  • particles_surfspec/jh2 [integer,private]
  • particles_surfspec/jh2o [integer,private]
  • particles_surfspec/jhco [integer,private]
  • particles_surfspec/jn2 [integer,private]
  • particles_surfspec/jo [integer,private]
  • particles_surfspec/jo2 [integer,private]
  • particles_surfspec/joh [integer,private]
  • particles_surfspec/lboundary_explicit [logical,private/optional/default=.true.]

    RUN_DOC: explicit evolution of particle surface species

  • particles_surfspec/ldiffenth [logical,private/optional/default=.false.]
  • particles_surfspec/ldiffs [logical,private/optional/default=.false.]
  • particles_surfspec/ldiffuse_backenth [logical,private/optional/default=.false.]
  • particles_surfspec/ldiffuse_backspec [logical,private/optional/default=.false.]
  • particles_surfspec/linfinite_diffusion [logical,private/optional/default=.true.]

    RUN_DOC: infinitely fast diffusion between particle and gas

  • particles_surfspec/lpchem_cdtc [logical,private/optional/default=.false.]
  • particles_surfspec/lpchem_mass_enth [logical,private/optional/default=.true.]
  • particles_surfspec/lpfilter [logical,private/optional/default=.true.]
  • particles_surfspec/lspecies_transfer [logical,private/optional/default=.true.]

    RUN_DOC: species transfer between particle and gas

  • particles_surfspec/lwrite [logical,private/optional/default=.true.]
  • particles_surfspec/mass_trans_coeff_reactants (*,*) [real,private/allocatable]
  • particles_surfspec/mass_trans_coeff_species (*,*) [real,private/allocatable]
  • particles_surfspec/ndiffsteps [integer,private/optional/default=3]

    RUN_DOC: Number of mass transfer diffusion steps

  • particles_surfspec/nu_power (*,*) [real,private/allocatable]
  • particles_surfspec/rdiffconsts [real,private/optional/default=0.1178]
  • particles_surfspec/register_dep_psurfspec [private]
  • particles_surfspec/register_indep_psurfspec [private]
  • particles_surfspec/solid_species (*) [character,private/allocatable]
  • particles_surfspec/true_density_carbon [real,private/pointer]
  • particles_surfspec/weight_array (*,*,*) [real,private/allocatable]
  • particles_surfspec/write_outputfile [private]
  • particles_surfspec/x_infty_reactants (*,*) [real,private/allocatable]
  • particles_surfspec/ysurf [integer,private]

Subroutines and functions

subroutine  particles_surfspec/register_particles_surfspec()

This is a wrapper routine for particle dependent and particle independent variables JONAS: Back to standalone via mpar_loc=1?

Use :

farraymanager (farray_register_auxiliary())

Called from:

particles_register_modules()

Call to:

fatal_error(), create_ad_sol_lists(), get_reactants(), sort_compounds(), append_npvar(), get_ac(), create_stoc(), create_dependency(), create_dngas(), precalc_weights(), not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/initialize_particles_surf(f)

Perform any post-parameter-read initialization i.e. calculate derived parameters.

29-sep-14/jonas coded

Parameters:

f (mx,my,mz,mfarray) [real]

Use :

sharedvariables (get_shared_variable())

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules()

Call to:

precalc_weights(), fatal_error(), not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/read_particles_surf_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

fatal_error(), not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/write_particles_surf_init_pars(unit)
Parameters:

unit [integer,in]

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), particles_calc_pencil_diags(), particles_pde_blocks(), read_all_particles_init_pars(), write_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

fatal_error(), not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/read_particles_surf_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

fatal_error(), not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/write_particles_surf_run_pars(unit)
Parameters:

unit [integer,in]

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), particles_calc_pencil_diags(), particles_pde_blocks(), read_all_particles_init_pars(), write_all_particles_init_pars(), read_all_particles_run_pars(), write_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

fatal_error(), not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/init_particles_surf(f, fp, ineargrid)
Parameters:
Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init()

Call to:

fatal_error(), not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/dpsurf_dt(f, df, fp, dfp, ineargrid)

evolution of particle surface fractions (all particles on one node)

1-oct-14/Jonas: coded

Parameters:
  • f (mx,my,mz,mfarray) [real]

  • df (mx,my,mz,mvar) [real]

  • fp (mpar_loc,mparray) [real,in]

  • dfp (mpar_loc,mpvar) [real]

  • ineargrid (mpar_loc,3) [integer]

Use :

boundcond, mpicomm

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

not_implemented(), boundconds_x(), initiate_isendrcv_bdry(), finalize_isendrcv_bdry(), boundconds_y(), boundconds_z(), diffuse_interaction(), sum_par_name(), get_surface_chemistry(), find_interpolation_indeces(), fatal_error(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/dpsurf_dt_pencil(f, df, fp, dfp, p, ineargrid)

Evolution of particle surface fraction. (all particles on one pencil)

23-sep-14/Nils: coded

Parameters:
  • f (mx,my,mz,mfarray) [real,inout]

  • df (mx,my,mz,mvar) [real,inout]

  • fp (mpar_loc,mparray) [real,inout]

  • dfp (mpar_loc,mpvar) [real,inout]

  • p [pencil_case]

  • ineargrid (mpar_loc,3) [integer,in]

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

get_surface_chemistry(), not_implemented(), find_interpolation_indeces(), fatal_error(), calc_diagnostics_particles_surf(), find_species(), find_species_index()

subroutine  particles_surfspec/calc_diagnostics_particles_surf(p)
Parameters:

p [pencil_case]

Use :

diagnostics

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), particles_calc_pencil_diags(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles(), register_particles_surfspec(), init_particles_surf(), read_particles_surf_init_pars(), write_particles_surf_init_pars(), read_particles_surf_run_pars(), write_particles_surf_run_pars(), initialize_particles_surf(), dpsurf_dt(), dpsurf_dt_pencil()

Call to:

find_species(), find_species_index(), fatal_error(), get_surface_chemistry()

subroutine  particles_surfspec/rprint_particles_surf(lreset[, lwrite])

Read and register print parameters relevant for particles near field gas composition

06-oct-14/jonas: adapted

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics

Called from:

particles_register_modules(), particles_rprint_list()

Call to:

find_species(), find_species_index(), fatal_error(), get_surface_chemistry()

subroutine  particles_surfspec/cleanup_surf_pencils()
Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

get_surface_chemistry()

subroutine  particles_surfspec/calc_psurf_pencils(f, fp, p, ineargrid)
Parameters:
  • f (mx,my,mz,mfarray) [real,in]

  • fp (mpar_loc,mparray) [real,in]

  • p [pencil_case]

  • ineargrid (mpar_loc,3) [integer,in]

Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), read_all_particles_init_pars(), read_all_particles_run_pars(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles()

Call to:

get_surface_chemistry()

subroutine  particles_surfspec/particles_surfspec_clean_up()
Called from:

particles_register_modules(), particles_rprint_list(), particles_initialize_modules(), particles_init(), particles_finalize(), particles_read_snapshot(), particles_write_snapshot(), particles_write_dsnapshot(), particles_write_pdim(), particles_write_block(), particles_write_rmv(), particles_timestep_first(), particles_timestep_second(), split_update_particles(), particles_load_balance(), particles_boundconds(), particles_pencil_criteria(), particles_pencil_interdep(), particles_calc_pencils(), particles_calc_selfpotential(), particles_before_boundary(), particles_special_bfre_bdary(), particles_special_after_dtsub(), particles_pde(), particles_pde_pencil(), particles_calc_pencil_diags(), particles_pde_blocks(), read_all_particles_init_pars(), write_all_particles_init_pars(), read_all_particles_run_pars(), write_all_particles_run_pars(), particles_powersnap(), get_slices_particles(), write_dim_particles(), write_snapshot_particles(), read_snapshot_particles(), particles_stochastic()