neutralvelocity_matchiontemp

Module

Description

$Id$

This module takes care of everything related to velocity

** 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 :: lneutralvelocity = .true.

MVAR CONTRIBUTION 3 MAUX CONTRIBUTION 0

PENCILS PROVIDED divun; un2; unij(3,3); uun(3); snij(3,3); ungun(3) PENCILS PROVIDED del2un(3); del6un(3); graddivun(3)


Quick access

Variables:

ampl_unx, ampl_uny, ampl_unz, ampluun, borderuun, cions_rhon, cneut_rho, colldrag, csn0, csn20, diffus_nun, electron_pressure, enum_borderuun, enum_iviscn, idiag_divunm, idiag_dtcn, idiag_dtnun, idiag_dtun, idiag_epskn, idiag_fricions, idiag_fricneut, idiag_neutralangmom, idiag_pndivunm, idiag_rnunxunymz, idiag_un2m, idiag_un2mphi, idiag_un2mr, idiag_un2mz, idiag_unm2, idiag_unmax, idiag_unmx, idiag_unmy, idiag_unmz, idiag_unp2m, idiag_unpmphi, idiag_unpmr, idiag_unr2m, idiag_unrmphi, idiag_unrmr, idiag_unrms, idiag_unrunpmr, idiag_unx2m, idiag_unx2mx, idiag_unx2my, idiag_unx2mz, idiag_unxm, idiag_unxmax, idiag_unxmx, idiag_unxmxy, idiag_unxmy, idiag_unxmz, idiag_unxpt, idiag_unxunym, idiag_unxunymx, idiag_unxunymy, idiag_unxunymz, idiag_unxunzm, idiag_unxunzmx, idiag_unxunzmy, idiag_unxunzmz, idiag_uny2m, idiag_uny2mx, idiag_uny2my, idiag_uny2mz, idiag_unym, idiag_unymax, idiag_unymx, idiag_unymxy, idiag_unymy, idiag_unymz, idiag_unypt, idiag_unyunzm, idiag_unyunzmx, idiag_unyunzmy, idiag_unyunzmz, idiag_unz2m, idiag_unz2mx, idiag_unz2my, idiag_unz2mz, idiag_unzm, idiag_unzmax, idiag_unzmphi, idiag_unzmr, idiag_unzmx, idiag_unzmxy, idiag_unzmy, idiag_unzmz, idiag_unzpt, idiag_unzrmaxs, idiag_unzrms, idiag_unzz2m, inituun, iviscn, kx_uun, ky_uun, kz_uun, ladvection_velocity, lcentrifugal_force, lelectron_pressure, lfreeze_unext, lfreeze_unint, lpressuregradient, lupw_uun, lviscneutral, nun, nun_hyper3, uun_const, uun_left, uun_right, widthuun

Routines:

calc_diagnostics_neutralvel(), calc_pencils_neutralvelocity(), calc_viscous_force_neutral(), duun_dt(), init_uun(), initialize_neutralvelocity(), pencil_criteria_neutralvelocity(), pencil_interdep_neutralvelocity(), read_neutralvelocity_init_pars(), read_neutralvelocity_run_pars(), register_neutralvelocity(), rprint_neutralvelocity(), set_border_neutralvelocity(), write_neutralvelocity_init_pars(), write_neutralvelocity_run_pars()

Needed modules

Variables

  • neutralvelocity/ampl_unx [real,optional/default=0.0]
  • neutralvelocity/ampl_uny [real,optional/default=0.0]
  • neutralvelocity/ampl_unz [real,optional/default=0.0]
  • neutralvelocity/ampluun (ninit) [real,optional/default=0.0]
  • neutralvelocity/borderuun [character,optional/default='nothing']
  • neutralvelocity/colldrag [real,optional/default=0]
  • neutralvelocity/csn0 [real,optional/default=0.0]
  • neutralvelocity/csn20 [real]
  • neutralvelocity/electron_pressure [real,optional/default=1]
  • neutralvelocity/idiag_divunm [integer,optional/default=0]
  • neutralvelocity/idiag_dtcn [integer,optional/default=0]
  • neutralvelocity/idiag_dtnun [integer,optional/default=0]
  • neutralvelocity/idiag_dtun [integer,optional/default=0]
  • neutralvelocity/idiag_neutralangmom [integer,optional/default=0]
  • neutralvelocity/idiag_rnunxunymz [integer,optional/default=0]
  • neutralvelocity/idiag_un2m [integer,optional/default=0]
  • neutralvelocity/idiag_un2mphi [integer,optional/default=0]
  • neutralvelocity/idiag_un2mr [integer,optional/default=0]
  • neutralvelocity/idiag_un2mz [integer,optional/default=0]
  • neutralvelocity/idiag_unm2 [integer,optional/default=0]
  • neutralvelocity/idiag_unmax [integer,optional/default=0]
  • neutralvelocity/idiag_unmx [integer,optional/default=0]
  • neutralvelocity/idiag_unmy [integer,optional/default=0]
  • neutralvelocity/idiag_unmz [integer,optional/default=0]
  • neutralvelocity/idiag_unp2m [integer,optional/default=0]
  • neutralvelocity/idiag_unpmphi [integer,optional/default=0]
  • neutralvelocity/idiag_unpmr [integer,optional/default=0]
  • neutralvelocity/idiag_unr2m [integer,optional/default=0]
  • neutralvelocity/idiag_unrmphi [integer,optional/default=0]
  • neutralvelocity/idiag_unrmr [integer,optional/default=0]
  • neutralvelocity/idiag_unrms [integer,optional/default=0]
  • neutralvelocity/idiag_unrunpmr [integer,optional/default=0]
  • neutralvelocity/idiag_unx2m [integer,optional/default=0]
  • neutralvelocity/idiag_unx2mx [integer,optional/default=0]
  • neutralvelocity/idiag_unx2my [integer,optional/default=0]
  • neutralvelocity/idiag_unx2mz [integer,optional/default=0]
  • neutralvelocity/idiag_unxm [integer,optional/default=0]
  • neutralvelocity/idiag_unxmax [integer,optional/default=0]
  • neutralvelocity/idiag_unxmx [integer,optional/default=0]
  • neutralvelocity/idiag_unxmxy [integer,optional/default=0]
  • neutralvelocity/idiag_unxmy [integer,optional/default=0]
  • neutralvelocity/idiag_unxmz [integer,optional/default=0]
  • neutralvelocity/idiag_unxpt [integer,optional/default=0]
  • neutralvelocity/idiag_unxunym [integer,optional/default=0]
  • neutralvelocity/idiag_unxunymx [integer,optional/default=0]
  • neutralvelocity/idiag_unxunymy [integer,optional/default=0]
  • neutralvelocity/idiag_unxunymz [integer,optional/default=0]
  • neutralvelocity/idiag_unxunzm [integer,optional/default=0]
  • neutralvelocity/idiag_unxunzmx [integer,optional/default=0]
  • neutralvelocity/idiag_unxunzmy [integer,optional/default=0]
  • neutralvelocity/idiag_unxunzmz [integer,optional/default=0]
  • neutralvelocity/idiag_uny2m [integer,optional/default=0]
  • neutralvelocity/idiag_uny2mx [integer,optional/default=0]
  • neutralvelocity/idiag_uny2my [integer,optional/default=0]
  • neutralvelocity/idiag_uny2mz [integer,optional/default=0]
  • neutralvelocity/idiag_unym [integer,optional/default=0]
  • neutralvelocity/idiag_unymax [integer,optional/default=0]
  • neutralvelocity/idiag_unymx [integer,optional/default=0]
  • neutralvelocity/idiag_unymxy [integer,optional/default=0]
  • neutralvelocity/idiag_unymy [integer,optional/default=0]
  • neutralvelocity/idiag_unymz [integer,optional/default=0]
  • neutralvelocity/idiag_unypt [integer,optional/default=0]
  • neutralvelocity/idiag_unyunzm [integer,optional/default=0]
  • neutralvelocity/idiag_unyunzmx [integer,optional/default=0]
  • neutralvelocity/idiag_unyunzmy [integer,optional/default=0]
  • neutralvelocity/idiag_unyunzmz [integer,optional/default=0]
  • neutralvelocity/idiag_unz2m [integer,optional/default=0]
  • neutralvelocity/idiag_unz2mx [integer,optional/default=0]
  • neutralvelocity/idiag_unz2my [integer,optional/default=0]
  • neutralvelocity/idiag_unz2mz [integer,optional/default=0]
  • neutralvelocity/idiag_unzm [integer,optional/default=0]
  • neutralvelocity/idiag_unzmax [integer,optional/default=0]
  • neutralvelocity/idiag_unzmphi [integer,optional/default=0]
  • neutralvelocity/idiag_unzmr [integer,optional/default=0]
  • neutralvelocity/idiag_unzmx [integer,optional/default=0]
  • neutralvelocity/idiag_unzmxy [integer,optional/default=0]
  • neutralvelocity/idiag_unzmy [integer,optional/default=0]
  • neutralvelocity/idiag_unzmz [integer,optional/default=0]
  • neutralvelocity/idiag_unzpt [integer,optional/default=0]
  • neutralvelocity/idiag_unzrmaxs [integer,optional/default=0]
  • neutralvelocity/idiag_unzrms [integer,optional/default=0]
  • neutralvelocity/idiag_unzz2m [integer,optional/default=0]
  • neutralvelocity/inituun (ninit) [character,optional/default='nothing']
  • neutralvelocity/iviscn (ninit) [character,optional/default='']
  • neutralvelocity/kx_uun [real,optional/default=1.0]
  • neutralvelocity/ky_uun [real,optional/default=1.0]
  • neutralvelocity/kz_uun [real,optional/default=1.0]
  • neutralvelocity/ladvection_velocity [logical,optional/default=.true.]
  • neutralvelocity/lcentrifugal_force [logical,optional/default=.false.]
  • neutralvelocity/lcoriolis_force [logical,optional/default=.true.]
  • neutralvelocity/lelectron_pressure [logical,optional/default=.false.]
  • neutralvelocity/lfreeze_unext [logical,optional/default=.false.]
  • neutralvelocity/lfreeze_unint [logical,optional/default=.false.]
  • neutralvelocity/lpressuregradient [logical,optional/default=.true.]
  • neutralvelocity/lupw_uun [logical,optional/default=.false.]
  • neutralvelocity/lviscneutral [logical,optional/default=.true.]
  • neutralvelocity/nun [real,optional/default=0.0]
  • neutralvelocity/nun_hyper3 [real,optional/default=0.0]
  • neutralvelocity/rnoise_ext [real,optional/default=impossible]
  • neutralvelocity/rnoise_int [real,optional/default=impossible]
  • neutralvelocity/uun_const (3) [real,optional/default=(/0.,0.,0./)]

Subroutines and functions

subroutine  neutralvelocity/register_neutralvelocity()

Initialise variables which should know that we solve the neutralvelocity equations: iuun, etc; increase nvar accordingly.

28-feb-07/wlad: adapted

Use :

farraymanager (farray_register_pde())

Call to:

fatal_error(), svn_id(), stop_it(), request_border_driving(), sinwave(), initial_condition_uun(), dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), border_driving(), der6()

subroutine  neutralvelocity/initialize_neutralvelocity()

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

28-feb-07/wlad: adapted

Use :

borderprofiles (request_border_driving()), mpicomm (stop_it())

Call to:

stop_it(), request_border_driving(), sinwave(), initial_condition_uun(), dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6()

subroutine  neutralvelocity/read_neutralvelocity_init_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

sinwave(), stop_it(), initial_condition_uun(), dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6()

subroutine  neutralvelocity/write_neutralvelocity_init_pars(unit)
Parameters:

unit [integer,in]

Call to:

sinwave(), stop_it(), initial_condition_uun(), dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6()

subroutine  neutralvelocity/read_neutralvelocity_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

sinwave(), stop_it(), initial_condition_uun(), dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6()

subroutine  neutralvelocity/write_neutralvelocity_run_pars(unit)
Parameters:

unit [integer,in]

Call to:

sinwave(), stop_it(), initial_condition_uun(), dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6()

subroutine  neutralvelocity/init_uun(f)

initialise uun and lnrhon; called from start.f90

28-feb-07/wlad: adapted

Parameters:

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

Use :

gravity (z1()), initcond, initialcondition (initial_condition_uun()), mpicomm (stop_it())

Call to:

sinwave(), stop_it(), initial_condition_uun(), dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6()

subroutine  neutralvelocity/pencil_criteria_neutralvelocity()

All pencils that the Neutralvelocity module depends on are specified here.

28-feb-07/wlad: adapted

Call to:

dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6(), stop_it()

subroutine  neutralvelocity/pencil_interdep_neutralvelocity(lpencil_in)
Interdependency among pencils from the Neutralvelocity module

is specified here.

28-feb-07/wlad: adapted

Parameters:

lpencil_in (npencils) [logical]

Call to:

dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6(), stop_it()

subroutine  neutralvelocity/calc_pencils_neutralvelocity(f, p)

Calculate Neutralvelocity pencils. Most basic pencils should come first, as others may depend on them.

28-feb-07/wlad: adapted

Parameters:
Use :

sub

Call to:

dot2_mn(), gij(), div_mn(), del6v(), del2v_etc(), del2v(), identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), der6(), stop_it()

subroutine  neutralvelocity/duun_dt(f, df, p)

velocity evolution calculate dun/dt = - un.gradun - 2Omega x un + Fpres + grav + Fvisc

28-feb-07/wlad: adapted

Parameters:
Use :

diagnostics, mpicomm (stop_it()), sub (identify_bcs())

Call to:

identify_bcs(), calc_viscous_force_neutral(), set_border_neutralvelocity(), max_mn_name(), save_name(), xysum_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), phizsum_mn_name_r(), phisum_mn_name_rz(), fatal_error(), border_driving(), gij(), der6(), stop_it()

subroutine  neutralvelocity/set_border_neutralvelocity(f, df, p)

Calculates the driving term for the border profile of the uu variable.

28-jul-06/wlad: coded

Parameters:
Use :

borderprofiles (border_driving())

Call to:

fatal_error(), border_driving(), gij(), der6(), stop_it(), max_mn_name()

subroutine  neutralvelocity/calc_viscous_force_neutral(f, df, p)

calculate viscous force term for right hand side of momentum equation

28-feb-07/wlad: coded

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

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

  • p [pencil_case,in] :: (=mun/rhon)

Use :

deriv (der6()), diagnostics, mpicomm (stop_it()), sub (multmv())

Call to:

gij(), der6(), stop_it(), max_mn_name()

subroutine  neutralvelocity/rprint_neutralvelocity(lreset[, lwrite])

reads and registers print parameters relevant for neutralvelocity part

28-feb-07/wlad: adapted

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics (parse_name()), farraymanager (farray_index_append())