forcing_cont_sample
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)
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
cdata: $Id$general(keep_compiler_quiet()): $Id$messages: $Id$
Variables
- forcing/ampl_bb [real,private/optional/default=0.05]
- forcing/ampl_ff [real,private/optional/default=1.0]
- forcing/calc_force_ampl [private]
- 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/crosshel [real,private/optional/default=0.0]
- forcing/dforce [real,private/optional/default=0.0]
- forcing/dtforce [real,private/optional/default=0.0]
- forcing/dtforce_duration [real,private/optional/default=-1.0]
- forcing/eps_fcont [real,private/optional/default=0.0]
- forcing/equator [real,private/optional/default=0.0]
- forcing/eta_bb [real,private/optional/default=0.0001]
- forcing/force [real,private/optional/default=0.0]
- forcing/force2 [real,private/optional/default=0.0]
- forcing/force_direction (3) [real,private/optional/default=(/0.,0.,0./)]
- forcing/force_strength [real,private/optional/default=0.0]
- forcing/forcing_2drandom_xy [private]
- forcing/forcing_abc [private]
- forcing/forcing_blobs [private]
- forcing/forcing_chandra_kendall [private]
- forcing/forcing_cktest [private]
- forcing/forcing_coefs_hel [private]
- forcing/forcing_cont_after_boundary [private]
- forcing/forcing_continuous [private]
- forcing/forcing_diffrot [private]
- forcing/forcing_fountain [private]
- forcing/forcing_gaussianpot [private]
- forcing/forcing_gp [private]
- forcing/forcing_hel [private]
- forcing/forcing_hel_both [private]
- forcing/forcing_hel_kprof [private]
- forcing/forcing_hel_noshear [private]
- forcing/forcing_hel_smooth [private]
- forcing/forcing_hshear [private]
- forcing/forcing_irro [private]
- forcing/forcing_nocos [private]
- forcing/forcing_roberts [private]
- forcing/forcing_tg [private]
- forcing/forcing_twist [private]
- forcing/fountain [real,private/optional/default=1.0]
- forcing/fpre [real,private/optional/default=1.0]
- forcing/get_2dmodes [private]
- forcing/height_ff [real,private/optional/default=0.0]
- forcing/hel_vec [private]
- forcing/helsign [integer,private/optional/default=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_ffm [integer,private/optional/default=0]
- forcing/idiag_fxbxm [integer,private/optional/default=0]
- forcing/idiag_fxbym [integer,private/optional/default=0]
- forcing/idiag_fxbzm [integer,private/optional/default=0]
- forcing/idiag_ofm [integer,private/optional/default=0]
- forcing/idiag_rufm [integer,private/optional/default=0]
- forcing/idiag_ufm [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/iforcing_cont [character,private/optional/default='abc']
- forcing/input_persist_forcing [private]
- forcing/input_persist_forcing_id [private]
- forcing/input_persistent_forcing [public]
- forcing/itestfield_forcing_offset [integer,private/optional/default=0]
- forcing/itestflow_forcing_offset [integer,private/optional/default=0]
- forcing/iylm_list (*,*,*) [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/k2d [integer,private]
- forcing/kf_fcont [real,private/optional/default=0.0]
- forcing/kfountain [integer,private/optional/default=5]
- forcing/l2dxz [logical,private]
- forcing/l2dyz [logical,private]
- forcing/lcrosshel_forcing [logical,private/optional/default=.false.]
- forcing/lembed [logical,private/optional/default=.false.]
- forcing/lfastck [logical,private/optional/default=.false.]
- forcing/lforce_cuty [logical,private/optional/default=.false.]
- forcing/lforce_peri [logical,private/optional/default=.false.]
- forcing/lgentle [logical,private/optional/default=.false.]
- forcing/lhelical_test [logical,private/optional/default=.false.]
- forcing/lhydro_forcing [logical,public/optional/default=.true.]
- forcing/lmagnetic_forcing [logical,private/optional/default=.false.]
- forcing/lmomentum_ff [logical,private/optional/default=.false.]
- forcing/location (3) [real,private]
- forcing/location_fixed (3) [real,private/optional/default=(/0.,0.,0./)]
- forcing/lrandom_location [logical,private/optional/default=.true.]
- 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_psi [logical,private/optional/default=.false.]
- forcing/max_force [real,private/optional/default=impossible]
- forcing/n_forcing_cont [integer,public/optional/default=n_forcing_cont_max]
- forcing/nexp_ff [real,private/optional/default=1.0]
- forcing/nlist_ck [integer,private/optional/default=25]
- forcing/old_forcing_evector [logical,private/optional/default=.false.]
- forcing/omega_fcont [real,private/optional/default=0.0]
- forcing/omega_ff [real,private/optional/default=1.0]
- forcing/psif (*,*,*) [real,private/allocatable]
- forcing/r_ff [real,private/optional/default=0.0]
- forcing/radius_ff [real,private/optional/default=0.0]
- forcing/random2d_kmax [integer,private]
- forcing/random2d_kmin [integer,private]
- forcing/random2d_kmodes (*,*) [integer,private/allocatable]
- forcing/random2d_nmodes [integer,private]
- forcing/rcyl_ff [real,private/optional/default=0.0]
- forcing/relhel [real,private/optional/default=1.0]
- forcing/rylm_list (*,*,*) [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/slope_ff [real,private/optional/default=0.0]
- 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 [real,private/optional/default=0.0]
- forcing/tsforce [real,private/optional/default=-10.0]
- forcing/wff_ampl [real,private/optional/default=0.0]
- forcing/width_bb [real,private/optional/default=0.1]
- forcing/width_fcont [real,private/optional/default=1.0]
- forcing/width_ff [real,private/optional/default=0.5]
- forcing/work_ff [real,private/optional/default=0.0]
- forcing/x1_fcont [real,private/optional/default=0.0]
- forcing/x2_fcont [real,private/optional/default=0.0]
- forcing/xff_ampl [real,private/optional/default=0.0]
- forcing/z_bb [real,private/optional/default=0.1]
- forcing/zff_ampl [real,private/optional/default=0.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
- subroutine forcing/initialize_forcing()
read seed field parameters nothing needs to be done when called from start.f90
- 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:
- Call to:
timing(),mpifinalize(),inevitably_fatal_error(),fatal_error(),curl(),warning(),stop_it(),gij_psi(),curl_mn(),gij_psi_etc(),multsv_mn(),dot_mn(),read_snaptime(),update_snaptime(),blob(),forcing_cont(),output_persistent_forcing()
- subroutine forcing/forcing_after_boundary(f)
precalculate parameters that are new at each timestep, but the same for all pencils
- Parameters:
- Call to:
mpifinalize(),inevitably_fatal_error(),fatal_error(),curl(),warning(),stop_it(),gij_psi(),curl_mn(),gij_psi_etc(),multsv_mn(),dot_mn(),read_snaptime(),update_snaptime(),blob(),forcing_cont(),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(),stop_it(),dot_mn(),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(),stop_it(),dot_mn(),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:
- Call to:
forcing_cont(),stop_it(),dot_mn(),output_persistent_forcing()
- subroutine forcing/calc_diagnostics_forcing(p)
dummy routine
- Parameters:
p [pencil_case]
- Call to:
- subroutine forcing/forcing_cont(force)
9-apr-10/MR: added RobertsFlow_exact forcing, compensates nunabla^2 u and u.grad u for Roberts geometry 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 continious is time forcing to be added to velocity.
- Parameters:
force (nx,3) [real,out]
- Use :
sub(quintic_step(),quintic_der_step()),mpicomm(stop_it()),gravity(gravz()),sharedvariables(get_shared_variable()),viscosity(getnu())- Call to:
- subroutine forcing/read_forcing_run_pars(iomsg)
- Parameters:
iomsg [character,out]
- Use :
- Call to:
- subroutine forcing/write_forcing_run_pars(unit)
- Parameters:
unit [integer,in]
- Call to:
- function forcing/output_persistent_forcing()
Writes out the time of the next SNI 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 :
- 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 :
- subroutine forcing/forcing_pars_hel(force_fact, kkx, kky, kkz, nk, kav, coef1, coef2, coef3, kk, phase, fact, fda)
- Parameters:
- Use :
- subroutine forcing/forcing_clean_up()
deallocate the variables needed for forcing
12-aug-09/dhruba: coded
- subroutine forcing/pushpars2c(p_par)
- Parameters:
p_par (0) [integer]