forcing

Module

Description

$Id$

This module contains routines both for delta-correlated and continuous forcing. The fcont pencil is only provided for continuous forcing.

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

MVAR CONTRIBUTION 0 MAUX CONTRIBUTION 0

PENCILS PROVIDED fcont(3,n_forcing_cont_max); curlfcont(3,n_forcing_cont_max)


Quick access

Variables:

alpha_shift, ampl1_ff, ampl_bb, ampl_double_ff, b0_mode, bconst, beta_gp, bslope, calc_counter_centrifugal, calc_fluxring_cylindrical, calc_force_ampl, calc_gp_tc13, calc_tg_random, channel_force, ck_equator_gap, ck_gap_step, cklist, cosxt, cosyt, coszt, crosshel, cs0eff, dforce, dtforce_ampl, dtforce_duration, ell_shift, embedx, embedy, embedz, enum_iforcing_cont, eps_fcont, equator, eta_gp, expmk2x2, expmk2y2, fconst_coefs_hel, fcont_ampl, fcont_from_file, force, force1_scl, force2, force2_scl, force_direction, force_double, force_strength, forcing_2drandom_xy, forcing_2drandom_xy_simple, forcing_abc, forcing_blobhs_random, forcing_blobs, forcing_chandra_kendall, forcing_cktest, forcing_coefs_hel, forcing_coefs_hel2, forcing_cont_after_boundary, forcing_diffrot, forcing_fountain, forcing_gaussianpot, forcing_gp, forcing_gp92, forcing_hel, forcing_hel_both, forcing_hel_kprof, forcing_hel_noshear, forcing_hel_smooth, forcing_hillrain, forcing_hshear, forcing_irro, forcing_mhd_mode, forcing_nocos, forcing_roberts, forcing_spherical_radial, forcing_tg, forcing_tidal, forcing_twist, forcing_white_noise, fountain, fpre, fxyz_coefs_hel, get_2dmodes, height_ff, hel_vec, helsign, i2fff, i2ffx, i2ffy, i2ffz, icklist, idiag_bfm, idiag_ffm, idiag_fxbym, idiag_fxbzm, idiag_ofm, idiag_rufint, idiag_rufm, idiag_ruxfxm, idiag_ruxfym, idiag_ruyfxm, idiag_ruyfym, idiag_ruzfzm, idiag_ufm, ifcont_aux, iff, iff_aux, ifff, iffx, iffy, iffz, iforce, iforce2, iforce_profile, iforce_tprofile, iforcing_cont, iforcing_zsym, ifx, ify, ifz, input_persist_forcing, input_persist_forcing_id, input_persistent_forcing, itestfield_forcing_offset, itestflow_forcing_offset, iylm_list, iylm_rot, jtest_aa0, jtest_uu0, k1xyz, k2d, kav2, kf_fcont, kf_fcont_x, kf_fcont_y, kf_fcont_z, kfountain, kkx2, kky2, kkz2, kmax_gp, kmin_gp, kx_2df, kx_ff, ky_2df, ky_ff, kz_ff, kzlarge, l2dxz, l2dyz, laniso_forcing_old, lavoid_xymean, lavoid_ymean, lavoid_zmean, lconservative_hydro, lconservative_ptr, lcrosshel_forcing, ldiscrete_phases, lembed, lfastck, lfastsr, lfcont_as_comaux, lff_as_aux, lforce_always_all_compomemts, lforce_cuty, lforce_peri, lforce_ramp_down, lforcing2_curl, lforcing2_same, lforcing_coefs_hel_double, lforcing_osc, lforcing_osc2, lforcing_osc_double, lgentle, lhelical_test, lhydro_forcing, lisotropize_sr, lmagnetic_forcing, lmhd_forcing, lmomentum_ff, lneutral_forcing, location2, lrandom_time, lsamesign, lshearing_adjust_old, ltestfield_forcing, ltestflow_forcing, lwork_ff, lwrite_gausspot_to_file, lwrite_gausspot_to_file_always, lwrite_psi, lxxcorr_forcing, lxycorr_forcing, max_force, n_axisrot_angles, n_equator_ff, n_forcing_cont, n_hel_sin_pow, ncol, nexp_ff, nk2, nk_gp, nlist_ck, nlocation, old_forcing_evector, omega_double_ff, omega_fcont, omega_ff, omega_tidal, omegay_fcont, omegaz_fcont, phi1_ff, phi2_ff, phi_tidal, profx_ampl, profx_ampl1, profx_hel, profy_ampl, profy_hel, profz_ampl, profz_hel, profz_k, psif, qdouble_profile, r0_tidal, r_ff, r_ff_hel, radius_ff, random2d_kmax, random2d_kmin, random2d_kmodes, random2d_nmodes, rcyl_ff, rel_zcomp, rylm_list, rylm_rot, sinxt, sinyt, sinzt, slope_ff, sr_alpha_shift, sr_ell_shift, tauforce_ramp_down, tcor_gp, tforce_ramp_down, tforce_start, tforce_start2, tforce_stop, tforce_stop2, tgentle, theta_tg, torus, wff2_ampl, wff_ampl, width_bb, width_fcont, width_ff, work_ff, x1_fcont, x2_fcont, xff2_ampl, xff_ampl, xi_gp, xmaxf, xminf, yff2_ampl, yff_ampl, ymaxf, yminf, z_bb, z_center, z_center_fcont, zff2_ampl, zff_ampl, zff_height, zff_hel, zpsi_list

Routines:

addforce(), calc_diagnostics_forcing(), calc_pencils_forcing(), forcing_after_boundary(), forcing_clean_up(), forcing_cont(), forcing_pars_hel(), initialize_forcing(), input_persistent_forcing(), output_persistent_forcing(), pencil_criteria_forcing(), pencil_interdep_forcing(), read_forcing_run_pars(), register_forcing(), rprint_forcing(), write_forcing_run_pars()

Needed modules

Variables

  • forcing/abc_a (n_forcing_cont_max) [real,private/optional/default=1.]
  • forcing/abc_b (n_forcing_cont_max) [real,private/optional/default=1.]
  • forcing/abc_c (n_forcing_cont_max) [real,private/optional/default=1.]
  • forcing/alpha_shift [real,private/optional/default=5.0]
  • forcing/ampl1_ff (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/ampl_bb (n_forcing_cont_max) [real,private/optional/default=5.0e-2]
  • forcing/ampl_diffrot [real,private/optional/default=1.0]
  • forcing/ampl_double_ff [real,private/optional/default=0.0]
  • forcing/ampl_ff (n_forcing_cont_max) [real,private/optional/default=1.]
  • forcing/b0_mode [real,private/optional/default=0.0]
  • forcing/bconst [real,private/optional/default=1.0]
  • forcing/beta_gp [real,private/optional/default=1.3333]
  • forcing/bslope [real,private/optional/default=0.0]
  • forcing/calc_counter_centrifugal [private]
  • forcing/calc_fluxring_cylindrical [private]
  • forcing/calc_force_ampl [private]
  • forcing/calc_gp_tc13 [private]
  • forcing/calc_tg_random [private]
  • forcing/channel_force [integer,private/optional/default=1]
  • forcing/ck_equator_gap [real,private/optional/default=0.0]
  • forcing/ck_gap_step [real,private/optional/default=0.0]
  • forcing/cklist (*,*) [real,private/allocatable]
  • forcing/cosx (mx,n_forcing_cont_max) [real,private]
  • forcing/cosxt (mx,n_forcing_cont_max) [real,private]
  • forcing/cosy (my,n_forcing_cont_max) [real,private]
  • forcing/cosyt (my,n_forcing_cont_max) [real,private]
  • forcing/cosz (mz,n_forcing_cont_max) [real,private]
  • forcing/coszt (mz,n_forcing_cont_max) [real,private]
  • forcing/crosshel [real,private/optional/default=0.0]
  • forcing/cs0 [real,private]
  • forcing/cs0eff [real,private/optional/default=impossible]
  • forcing/dtforce [real,private/optional/default=0.0]
  • forcing/dtforce_ampl [real,private/optional/default=0.5]
  • forcing/dtforce_duration [real,private/optional/default=-1.0]
  • forcing/ell_shift [integer,private/optional/default=0]
  • forcing/embedx (mx,n_forcing_cont_max) [real,private]
  • forcing/embedy (my,n_forcing_cont_max) [real,private]
  • forcing/embedz (mz,n_forcing_cont_max) [real,private]
  • forcing/enum_iforcing_cont (n_forcing_cont_max) [integer,private/optional/default=0]
  • forcing/eps_fcont (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/equator [real,private/optional/default=0.0]
  • forcing/eta_bb (n_forcing_cont_max) [real,private/optional/default=1.0e-4]
  • forcing/eta_gp (100,n_forcing_cont_max) [real,private]
  • forcing/expmk2x2 (mx,n_forcing_cont_max) [real,private]
  • forcing/expmk2y2 (my,n_forcing_cont_max) [real,private]
  • forcing/fconst_coefs_hel [private]
  • forcing/fcont_ampl (n_forcing_cont_max) [real,private/optional/default=1.]
  • forcing/fcont_from_file (*,*,*,*) [real,private/allocatable]
  • forcing/force [real,private/optional/default=0.0]
  • forcing/force1_scl [real,private/optional/default=1.0]
  • forcing/force2 [real,private/optional/default=0.0]
  • forcing/force2_scl [real,private/optional/default=1.0]
  • forcing/force_direction (3) [real,private/optional/default=(/0.,0.,0./)]
  • forcing/force_double [real,private/optional/default=0.0]
  • forcing/force_strength [real,private/optional/default=0.0]
  • forcing/forcing_2drandom_xy [private]
  • forcing/forcing_2drandom_xy_simple [private]
  • forcing/forcing_abc [private]
  • forcing/forcing_blobhs_random [private]
  • forcing/forcing_blobs [private]
  • forcing/forcing_chandra_kendall [private]
  • forcing/forcing_coefs_hel [private]
  • forcing/forcing_coefs_hel2 [private]
  • forcing/forcing_cont_after_boundary [private]
  • forcing/forcing_diffrot [private]
  • forcing/forcing_fountain [private]
  • forcing/forcing_gaussianpot [private]
  • forcing/forcing_gp [private]
  • forcing/forcing_gp92 [private]
  • forcing/forcing_hel [private]
  • forcing/forcing_hel_both [private]
  • forcing/forcing_hel_kprof [private]
  • forcing/forcing_hel_smooth [private]
  • forcing/forcing_hillrain [private]
  • forcing/forcing_hshear [private]
  • forcing/forcing_irro [private]
  • forcing/forcing_mhd_mode [private]
  • forcing/forcing_nocos [private]
  • forcing/forcing_spherical_radial [private]
  • forcing/forcing_tg [private]
  • forcing/forcing_tidal [private]
  • forcing/forcing_twist [private]
  • forcing/forcing_white_noise [private]
  • forcing/fountain [real,private/optional/default=1.0]
  • forcing/fpre [real,private/optional/default=1.0]
  • forcing/fxyz_coefs_hel [private]
  • forcing/get_2dmodes [private]
  • forcing/height_ff [real,private/optional/default=0.0]
  • forcing/hel_vec [private]
  • forcing/helsign [integer,private/optional/default=0.0]
  • forcing/i2fff [integer,private]
  • forcing/i2ffx [integer,private]
  • forcing/i2ffy [integer,private]
  • forcing/i2ffz [integer,private]
  • forcing/icklist [integer,private]
  • forcing/id_block_persistent [integer,private/parameter/optional/default=2000]
  • forcing/id_record_dt_gw [integer,private/parameter/optional/default=350]
  • forcing/id_record_eps_rkf [integer,private/parameter/optional/default=331]
  • forcing/id_record_forcing_location [integer,private/parameter/optional/default=270]
  • forcing/id_record_forcing_torus [integer,private/parameter/optional/default=272]
  • forcing/id_record_forcing_tsforce [integer,private/parameter/optional/default=271]
  • forcing/id_record_hydro_ampl [integer,private/parameter/optional/default=286]
  • forcing/id_record_hydro_avec_gb [integer,private/parameter/optional/default=289]
  • forcing/id_record_hydro_location [integer,private/parameter/optional/default=285]
  • forcing/id_record_hydro_phase1 [integer,private/parameter/optional/default=281]
  • forcing/id_record_hydro_phase2 [integer,private/parameter/optional/default=282]
  • forcing/id_record_hydro_qvec_gb [integer,private/parameter/optional/default=288]
  • forcing/id_record_hydro_tphase [integer,private/parameter/optional/default=280]
  • forcing/id_record_hydro_tsforce [integer,private/parameter/optional/default=284]
  • forcing/id_record_hydro_wavenumber [integer,private/parameter/optional/default=287]
  • forcing/id_record_ism_bold_mass [integer,private/parameter/optional/default=252]
  • forcing/id_record_ism_pos_next_old [integer,private/parameter/optional/default=251]
  • forcing/id_record_ism_snrs [integer,private/parameter/optional/default=259]
  • forcing/id_record_ism_snrs_old [integer,private/parameter/optional/default=1002]
  • forcing/id_record_ism_t_cluster [integer,private/parameter/optional/default=261]
  • forcing/id_record_ism_t_next_old [integer,private/parameter/optional/default=250]
  • forcing/id_record_ism_t_next_sni [integer,private/parameter/optional/default=253]
  • forcing/id_record_ism_t_next_snii [integer,private/parameter/optional/default=254]
  • forcing/id_record_ism_toggle_old [integer,private/parameter/optional/default=1001]
  • forcing/id_record_ism_toggle_sni [integer,private/parameter/optional/default=257]
  • forcing/id_record_ism_toggle_snii [integer,private/parameter/optional/default=258]
  • forcing/id_record_ism_x_cluster [integer,private/parameter/optional/default=255]
  • forcing/id_record_ism_y_cluster [integer,private/parameter/optional/default=256]
  • forcing/id_record_ism_z_cluster [integer,private/parameter/optional/default=260]
  • forcing/id_record_iteration_number [integer,private/parameter/optional/default=100]
  • forcing/id_record_magnetic_ampl [integer,private/parameter/optional/default=312]
  • forcing/id_record_magnetic_phase [integer,private/parameter/optional/default=311]
  • forcing/id_record_random_seeds [integer,private/parameter/optional/default=1]
  • forcing/id_record_random_seeds2 [integer,private/parameter/optional/default=2]
  • forcing/id_record_shear_delta_y [integer,private/parameter/optional/default=320]
  • forcing/id_record_special_lnkmin0 [integer,private/parameter/optional/default=340]
  • forcing/id_record_time_step [integer,private/parameter/optional/default=330]
  • forcing/idiag_bfm [integer,private/optional/default=0]
  • forcing/idiag_ffm [integer,private/optional/default=0]
  • forcing/idiag_jfm [integer,private/optional/default=0]
  • forcing/idiag_ofm [integer,private/optional/default=0]
  • forcing/idiag_qfm [integer,private/optional/default=0]
  • forcing/idiag_rufint [integer,private/optional/default=0]
  • forcing/idiag_rufm [integer,private/optional/default=0]
  • forcing/idiag_ruxfxm [integer,private/optional/default=0]
  • forcing/idiag_ruxfym [integer,private/optional/default=0]
  • forcing/idiag_ruyfxm [integer,private/optional/default=0]
  • forcing/idiag_ruyfym [integer,private/optional/default=0]
  • forcing/idiag_ruzfzm [integer,private/optional/default=0]
  • forcing/idiag_ufm [integer,private/optional/default=0]
  • forcing/ifcont_aux (n_forcing_cont_max) [integer,private/optional/default=0]
  • forcing/iff [integer,private/optional/default=0]
  • forcing/iff_aux [integer,private/optional/default=0]
  • forcing/ifff [integer,private]
  • forcing/iffx [integer,private]
  • forcing/iffy [integer,private]
  • forcing/iffz [integer,private]
  • forcing/iforce [character,private/optional/default='zero']
  • forcing/iforce2 [character,private/optional/default='zero']
  • forcing/iforce_profile [character,private/optional/default='nothing']
  • forcing/iforce_tprofile [character,private/optional/default='nothing']
  • forcing/iforcing_cont (n_forcing_cont_max) [character,private/optional/default='nothing']
  • forcing/iforcing_zsym [integer,private/optional/default=0]
  • forcing/ifx [integer,private]
  • forcing/ify [integer,private]
  • forcing/ifz [integer,private]
  • forcing/input_persist_forcing [private]
  • forcing/input_persist_forcing_id [private]
  • forcing/input_persistent_forcing [public]
  • forcing/iylm_list (*,*,*) [real,private/allocatable]
  • forcing/iylm_rot (*,*,*,*) [real,private/allocatable]
  • forcing/jtest_aa0 [integer,private/optional/default=5]
  • forcing/jtest_uu0 [integer,private/optional/default=1]
  • forcing/k1_ff [real,private/optional/default=1.0]
  • forcing/k1xyz (3) [real,private/optional/default=0.]
  • forcing/k2d [integer,private]
  • forcing/kav [real,private]
  • forcing/kav2 [real,private]
  • forcing/kf_fcont (n_forcing_cont_max) [real,private/optional/default=impossible]
  • forcing/kf_fcont_x (n_forcing_cont_max) [real,private/optional/default=impossible]
  • forcing/kf_fcont_y (n_forcing_cont_max) [real,private/optional/default=impossible]
  • forcing/kf_fcont_z (n_forcing_cont_max) [real,private/optional/default=impossible]
  • forcing/kfountain [integer,private/optional/default=5]
  • forcing/kkx (*) [real,private/allocatable]
  • forcing/kkx2 (*) [real,private/allocatable]
  • forcing/kky (*) [real,private/allocatable]
  • forcing/kky2 (*) [real,private/allocatable]
  • forcing/kkz (*) [real,private/allocatable]
  • forcing/kkz2 (*) [real,private/allocatable]
  • forcing/kmax_gp [real,private/optional/default=2.0]
  • forcing/kmin_gp [real,private/optional/default=1.0]
  • forcing/ks_a (*,*) [real,private/allocatable]
  • forcing/ks_b (*,*) [real,private/allocatable]
  • forcing/ks_k (*,*) [real,private/allocatable]
  • forcing/ks_modes [integer,private/optional/default=25]
  • forcing/ks_omega (*) [real,private/allocatable]
  • forcing/kx_2df [real,private/optional/default=0.0]
  • forcing/kx_ff [real,private/optional/default=1.0]
  • forcing/ky_2df [real,private/optional/default=0.0]
  • forcing/ky_ff [real,private/optional/default=1.0]
  • forcing/kz_ff [real,private/optional/default=1.0]
  • forcing/kzlarge [integer,private/optional/default=1]
  • forcing/l2dxz [logical,private]
  • forcing/l2dyz [logical,private]
  • forcing/laniso_forcing_old [logical,private/optional/default=.true.]
  • forcing/lavoid_xymean [logical,private/optional/default=.false.]
  • forcing/lavoid_ymean [logical,private/optional/default=.false.]
  • forcing/lavoid_zmean [logical,private/optional/default=.false.]
  • forcing/lconservative_hydro [logical,private/optional/default=.false.]
  • forcing/lconservative_ptr [logical,private/pointer]
  • forcing/lcrosshel_forcing [logical,private/optional/default=.false.]
  • forcing/ldiscrete_phases [logical,private/optional/default=.false.]
  • forcing/lembed [logical,private/optional/default=.false.]
  • forcing/lfastck [logical,private/optional/default=.false.]
  • forcing/lfastsr [logical,private/optional/default=.false.]
  • forcing/lfcont_as_comaux [logical,private/optional/default=.false.]
  • forcing/lff_as_aux [logical,private/optional/default=.false.]
  • forcing/lforce_always_all_compomemts [logical,private/optional/default=.false.]
  • forcing/lforce_cuty [logical,private/optional/default=.false.]
  • forcing/lforce_peri [logical,private/optional/default=.false.]
  • forcing/lforce_ramp_down [logical,private/optional/default=.false.]
  • forcing/lforcing2_curl [logical,private/optional/default=.false.]
  • forcing/lforcing2_same [logical,private/optional/default=.false.]
  • forcing/lforcing_coefs_hel_double [logical,private/optional/default=.false.]
  • forcing/lforcing_osc [logical,private/optional/default=.false.]
  • forcing/lforcing_osc2 [logical,private/optional/default=.false.]
  • forcing/lforcing_osc_double [logical,private/optional/default=.false.]
  • forcing/lgentle (n_forcing_cont_max) [logical,private/optional/default=.false.]
  • forcing/lhelical_test [logical,private/optional/default=.false.]
  • forcing/lhydro_forcing [logical,public/optional/default=.true.]
  • forcing/lisotropize_sr [logical,private/optional/default=.false.]
  • forcing/lmagnetic_forcing [logical,private/optional/default=.false.]
  • forcing/lmhd_forcing [logical,private]
  • forcing/lmomentum_ff [logical,private/optional/default=.false.]
  • forcing/lneutral_forcing [logical,private/optional/default=.false.]
  • forcing/location (3) [real,private]
  • forcing/location2 (3) [real,private]
  • forcing/location_fixed (3,2) [real,private/optional/default=0.]
  • forcing/lrandom_location [logical,private/optional/default=.true.]
  • forcing/lrandom_time [logical,private/optional/default=.false.]
  • forcing/lsamesign [logical,private/optional/default=.true.]
  • forcing/lscale_kvector_fac [logical,private/optional/default=.false.]
  • forcing/lscale_kvector_tobox [logical,private/optional/default=.false.]
  • forcing/lshearing_adjust_old [logical,private/optional/default=.false.]
  • forcing/ltestfield_forcing [logical,private/optional/default=.false.]
  • forcing/ltestflow_forcing [logical,public/optional/default=.false.]
  • forcing/lwork_ff [logical,private/optional/default=.false.]
  • forcing/lwrite_gausspot_to_file [logical,private/optional/default=.false.]
  • forcing/lwrite_gausspot_to_file_always [logical,private/optional/default=.false.]
  • forcing/lwrite_psi [logical,private/optional/default=.false.]
  • forcing/lxxcorr_forcing [logical,private/optional/default=.false.]
  • forcing/lxycorr_forcing [logical,private/optional/default=.false.]
  • forcing/max_force [real,private/optional/default=impossible]
  • forcing/n_axisrot_angles [integer,private/optional/default=10]
  • forcing/n_equator_ff [real,private/optional/default=1.0]
  • forcing/n_forcing_cont [integer,public/optional/default=n_forcing_cont_max]
  • forcing/n_hel_sin_pow [real,private/optional/default=0.0]
  • forcing/ncol [integer,private/optional/default=7]
  • forcing/nexp_ff [real,private/optional/default=1.0]
  • forcing/nk [integer,private]
  • forcing/nk2 [integer,private]
  • forcing/nk_gp [integer,private/optional/default=2]
  • forcing/nlist_ck [integer,private/optional/default=25]
  • forcing/nlocation [integer,private/optional/default=1]
  • forcing/old_forcing_evector [logical,private/optional/default=.false.]
  • forcing/omega_double_ff [real,private/optional/default=0.0]
  • forcing/omega_exponent [real,private/optional/default=1.0]
  • forcing/omega_fcont (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/omega_ff [real,private/optional/default=0.0]
  • forcing/omega_tidal [real,private/optional/default=1.0]
  • forcing/omega_vortex [real,private/optional/default=0.0]
  • forcing/omegay_fcont (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/omegaz_fcont (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/phi1_ff (my,n_forcing_cont_max) [real,private]
  • forcing/phi2_ff (mx,n_forcing_cont_max) [real,private]
  • forcing/phi_tidal [real,private/optional/default=1.0]
  • forcing/profx_ampl (nx) [real,private/optional/default=1.]
  • forcing/profx_ampl1 (nx) [real,private/optional/default=0.]
  • forcing/profx_hel (nx) [real,private/optional/default=1.]
  • forcing/profy_ampl (my) [real,private/optional/default=1.]
  • forcing/profy_hel (my) [real,private/optional/default=1.]
  • forcing/profz_ampl (mz) [real,private/optional/default=1.]
  • forcing/profz_hel (mz) [real,private/optional/default=1.]
  • forcing/profz_k (mz) [real,private]
  • forcing/psif (*,*,*) [real,private/allocatable]
  • forcing/qdouble_profile (mz) [real,private/optional/default=1.]
  • forcing/r0_tidal [real,private/optional/default=1.0]
  • forcing/r_ff [real,private/optional/default=0.0]
  • forcing/r_ff_hel [real,private/optional/default=0.0]
  • forcing/radius_ff [real,private/optional/default=0.0]
  • forcing/random2d_kmax [integer,private/optional/default=0]
  • forcing/random2d_kmin [integer,private/optional/default=0]
  • forcing/random2d_kmodes (*,*) [integer,private/allocatable]
  • forcing/random2d_nmodes [integer,private]
  • forcing/random_isotropic_ks_setup_test [private]
  • forcing/rcyl_ff [real,private/optional/default=0.0]
  • forcing/reference_state (*,*) [real,private/pointer]
  • forcing/rel_zcomp [real,private/optional/default=1.0]
  • forcing/relhel [real,private/optional/default=1.0]
  • forcing/rylm_list (*,*,*) [real,private/allocatable]
  • forcing/rylm_rot (*,*,*,*) [real,private/allocatable]
  • forcing/scale_kvectorx [real,private/optional/default=1.0]
  • forcing/scale_kvectory [real,private/optional/default=1.0]
  • forcing/scale_kvectorz [real,private/optional/default=1.0]
  • forcing/sinx (mx,n_forcing_cont_max) [real,private]
  • forcing/sinxt (mx,n_forcing_cont_max) [real,private]
  • forcing/siny (my,n_forcing_cont_max) [real,private]
  • forcing/sinyt (my,n_forcing_cont_max) [real,private]
  • forcing/sinz (mz,n_forcing_cont_max) [real,private]
  • forcing/sinzt (mz,n_forcing_cont_max) [real,private]
  • forcing/slope_ff [real,private/optional/default=0.0]
  • forcing/sr_alpha_shift [logical,private/optional/default=.false.]
  • forcing/sr_ell_shift [logical,private/optional/default=.false.]
  • forcing/tauforce_ramp_down [real,private/optional/default=1.0]
  • forcing/tcor_gp [real,private/optional/default=1.0]
  • forcing/tforce_ramp_down [real,private/optional/default=1.1]
  • forcing/tforce_start [real,private/optional/default=0.0]
  • forcing/tforce_start2 [real,private/optional/default=0.0]
  • forcing/tforce_stop [real,private/optional/default=impossible]
  • forcing/tforce_stop2 [real,private/optional/default=impossible]
  • forcing/tgentle (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/theta_tg (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/torus [torus_rect,private/save]
  • forcing/tsforce [real,private/optional/default=-10.0]
  • forcing/wff2_ampl [real,private/optional/default=0.0]
  • forcing/wff_ampl [real,private/optional/default=0.0]
  • forcing/width_bb (n_forcing_cont_max) [real,private/optional/default=0.1]
  • forcing/width_fcont (n_forcing_cont_max) [real,private/optional/default=1.]
  • forcing/width_ff [real,private/optional/default=0.5]
  • forcing/work_ff [real,private/optional/default=0.0]
  • forcing/x1_fcont (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/x2_fcont (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/xff2_ampl [real,private/optional/default=0.0]
  • forcing/xff_ampl [real,private/optional/default=0.0]
  • forcing/xi_gp (100,n_forcing_cont_max) [real,private]
  • forcing/xmaxf [real,private/optional/default=0.0]
  • forcing/xminf [real,private/optional/default=0.0]
  • forcing/yff2_ampl [real,private/optional/default=0.0]
  • forcing/yff_ampl [real,private/optional/default=0.0]
  • forcing/ymaxf [real,private/optional/default=0.0]
  • forcing/yminf [real,private/optional/default=0.0]
  • forcing/z_bb (n_forcing_cont_max) [real,private/optional/default=0.1]
  • forcing/z_center [real,private/optional/default=0.0]
  • forcing/z_center_fcont (n_forcing_cont_max) [real,private/optional/default=0.]
  • forcing/zff2_ampl [real,private/optional/default=0.0]
  • forcing/zff_ampl [real,private/optional/default=0.0]
  • forcing/zff_height [real,private/optional/default=1.0]
  • forcing/zff_hel [real,private/optional/default=0.0]
  • forcing/zpsi_list (*,*,*) [real,private/allocatable]

Subroutines and functions

subroutine  forcing/register_forcing()

add forcing in timestep 11-may-2002/wolf: coded

Use :

farraymanager (farray_register_auxiliary())

Call to:

svn_id(), fatal_error(), erfunc(), inevitably_fatal_error(), warning(), register_report_aux(), file_open_hdf5(), file_close_hdf5(), timing(), del2v_etc(), dot_mn(), multsv_mn(), curl(), gij_psi(), curl_mn(), gij_psi_etc(), read_snaptime(), update_snaptime(), blob(), save_name(), not_implemented(), forcing_cont(), gij(), getnu(), vortex(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/initialize_forcing()

read seed field parameters nothing done from start.f90

25-sep-2014/MR: determine n_forcing_cont according to the actual selection 23-jan-2015/MR: reference state now fetched here and stored in module variable 15-feb-2015/MR: returning before entering continuous forcing section when

no such forcing is requested

18-dec-2015/MR: minimal wavevectors k1xyz moved here from grid 14-Jun-2016/MR+NS: added forcing sinx*exp(-z^2) 11-May-2017/NS: added forcing Aycont_z 08-Aug-2019/MR: moved reading of k.dat, k_double.dat from individual subroutines

-> nk, kav, kk[xyz] and nk2, kav2, kk2[xyz], respectively, now module variables.

16-Aug-2023/MR+ABa: Added a non-helical spherical forcing acting only in the

radial direction that consists of Bessel functions in the radial and randomized spherical Harmonics around the x-axis in the horizontal direction.

Use :

general (bessj(), itoa()), sharedvariables (get_shared_variable()), sub (step(), erfunc(), stepdown(), register_report_aux()), equationofstate (cs20()), hdf5_io (file_close_hdf5(), file_open_hdf5(), input_hdf5())

Call to:

fatal_error(), erfunc(), inevitably_fatal_error(), warning(), register_report_aux(), file_open_hdf5(), file_close_hdf5(), timing(), del2v_etc(), dot_mn(), multsv_mn(), curl(), gij_psi(), curl_mn(), gij_psi_etc(), read_snaptime(), update_snaptime(), blob(), save_name(), not_implemented(), forcing_cont(), gij(), getnu(), vortex(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/addforce(f)

Add forcing at the end of each time step. Since forcing is constant during one time step, this can be added as an Euler 1st order step

Parameters:

f (,,*,*) [real,contiguous]

Call to:

timing(), warning(), del2v_etc(), dot_mn(), fatal_error(), multsv_mn(), curl(), gij_psi(), curl_mn(), gij_psi_etc(), read_snaptime(), update_snaptime(), blob(), save_name(), not_implemented(), forcing_cont(), gij(), getnu(), vortex(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/forcing_pars_hel(coef1, coef2, coef3, fda, kk, phase, fact)

Calculates position-independent and 1D coefficients for helical forcing. But this routine doesn’t seem to be called from anywhere anymore.

4-oct-17/MR: outsourced from forcing_hel.
Spotted bug: for old_forcing_evector=T, kk and ee remain undefined
  • needs to be fixed

Parameters:
  • coef1 (3) [real,out]

  • coef2 (3) [real,out]

  • coef3 (3) [real,out]

  • fda (3) [real,out]

  • kk (3) [real,out]

  • phase [real,out]

  • fact [real,out]

Use :

sub

Call to:

fatal_error(), multsv_mn(), dot_mn(), curl(), del2v_etc(), gij_psi(), curl_mn(), gij_psi_etc(), read_snaptime(), update_snaptime(), blob(), save_name(), not_implemented(), forcing_cont(), gij(), getnu(), vortex(), warning(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/forcing_after_boundary(f)
Parameters:

f (,,*,*) [real,out,contiguous]

Call to:

forcing_cont(), multsv_mn(), gij(), curl_mn(), fatal_error(), getnu(), vortex(), warning(), dot_mn(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/pencil_criteria_forcing()

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

24-mar-08/axel: adapted from density.f90

Call to:

forcing_cont(), multsv_mn(), gij(), curl_mn(), fatal_error(), getnu(), vortex(), warning(), dot_mn(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/pencil_interdep_forcing(lpencil_in)

Interdependency among pencils from the Forcing module is specified here.

24-mar-08/axel: adapted from density.f90

Parameters:

lpencil_in (npencils) [logical]

Call to:

forcing_cont(), multsv_mn(), gij(), curl_mn(), fatal_error(), getnu(), vortex(), warning(), dot_mn(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/calc_pencils_forcing(f, p)

Calculate forcing pencils.

24-mar-08/axel: adapted from density.f90

6-feb-09/axel: added epsilon factor in ABC flow (eps_fcont=1. -> nocos)

Parameters:
  • f (,,*,*) [real,inout,contiguous]

  • p [pencil_case,inout]

Use :

sub (multsv_mn(), gij(), curl_mn())

Call to:

forcing_cont(), multsv_mn(), gij(), curl_mn(), fatal_error(), getnu(), vortex(), warning(), dot_mn(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/forcing_cont(i, force[, rho1])
9-apr-10/MR: added RobertsFlow_exact forcing, compensates nunabla^2 u

and u.grad u for Roberts geometry

4-nov-11/MR: now also compensates Coriolis force 16-jun-23/Kishore G: Added ability to read forcing function from a file.

Note: It is not enough to set lforcing_cont = T in input parameters of forcing one must also set lforcing_cont_uu = T in hydro for the continuous-in-time forcing to be added to velocity. Alternatively, one can set lforcing_cont_bb = T in magnetic.

Parameters:
  • i [integer,in]

  • force (nx,3) [real,out]

  • rho1 (nx) [real,in,]

Use :

gravity (gravz()), sub (quintic_step(), quintic_der_step(), step(), vortex()), viscosity (getnu())

Call to:

fatal_error(), getnu(), vortex(), warning(), dot_mn(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/calc_diagnostics_forcing(p)

Calculate diagnostics for continuous forcing.

17-sep-06/axel: coded

Parameters:

p [pencil_case,in]

Use :

diagnostics, sub

Call to:

dot_mn(), integrate_mn_name(), output_persistent_forcing()

subroutine  forcing/read_forcing_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

output_persistent_forcing()

subroutine  forcing/write_forcing_run_pars(unit)
Parameters:

unit [integer,in]

Call to:

output_persistent_forcing()

function  forcing/output_persistent_forcing()

This is used, for example, for forcing functions with temporal memory, such as in the paper by Mee & Brandenburg (2006, MNRAS)

21-dec-05/tony: coded 13-Dec-2011/Bourdin.KIS: reworked

Return:

output_persistent_forcing [logical]

Use :

io (write_persist())

subroutine  forcing/rprint_forcing(lreset[, lwrite])

reads and registers print parameters relevant for hydro part

26-jan-04/axel: coded

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics

subroutine  forcing/forcing_clean_up()

deallocate the variables needed for forcing

12-aug-09/dhruba: coded

subroutine  forcing/pushpars2c(p_par)
Parameters:

p_par (100) [integer]

Use :

syscalls (copy_addr()), general (string_to_enum())