sub

Module

Description

$Id$

This module contains useful subroutines.

Rules:

  • Please do not put very specific subroutines here. If a subroutine is only needed by a single module, put it directly in that module.

  • Please DO NOT use large arrays or global arrays [e.g. of size (mx,my,mz) or (nxgrid,nygrid,nzgrid)]

Quick access

Variables:

binomial_coeffs, calc_diffusive_flux, characteristic_speed, check_for_nans_globally, cross, cross_0, cubic_der_step, cubic_der_step_mn, cubic_der_step_pt, cubic_step, cubic_step_mn, cubic_step_pt, d2f_dxj, del2, del2_main, del2_other, der_4th_stag, diff_flux, dot, dot2, dot2_0, dot2_3d, dot_0, dot_add, dot_mn_add, dot_mn_sub, dot_sub, finalize_aver, finalize_aver_1d, finalize_aver_2d, finalize_aver_3d, finalize_aver_4d, find_index_by_bisection, gaussian_kernel, get_random_vec, grad, grad_main, grad_other, h_dot_grad, h_dot_grad_scl, insert_carray, insert_carray_mult, insert_rarray, max_for_dt, max_for_dt_1_1_1_nx, max_for_dt_1_nx, max_for_dt_nx_nx, meanyz, meanyz_s, meanyz_v, minmod_alt, mult_mat_vv, mult_mat_vv_mn, multm2, multm2_sym, multmm_sc, multmm_sc_mn, multmv, multmv_mn_transp, multmv_transp, multsv, multsv_add, multsv_add_mn, multsv_mn_inplace, multvs, multvs_mn, multvv_mat, multvv_mat_mn, multvv_smat, multvv_smat_add, multvv_smat_add_mn, multvv_smat_mn, pencil_add1, pencil_add2, pencil_divide1, pencil_divide2, pencil_multiply1, pencil_multiply2, pencil_subtract1, pencil_subtract2, pi_function, poly, poly_0, poly_1, poly_3, power_law, power_law_mn, power_law_pt, quintic_der_step, quintic_der_step_mn, quintic_der_step_pt, quintic_step, quintic_step_mn, quintic_step_pt, sine_step, sine_step_mn, sine_step_pt, slope_lim_lin_interpol, slope_limiter, smth_kernel, step, step_scalar, u_dot_grad, u_dot_grad_alt, u_dot_grad_scl, u_dot_grad_scl_alt, u_dot_grad_vec, u_dot_grad_vec_alt, u_grad_kurganov_tadmore, ylm_core

Routines:

bij_tilde(), blob(), blobs(), bspline_basis(), bspline_interpolation(), bspline_precondition(), calc_all_diff_fluxes(), calc_del6_for_upwind(), calc_scl_factor(), calc_sij2(), calc_slope_diff_flux(), coeff_ydep(), control_file_exists(), cross_mixed(), cross_mn(), curl(), curl_horizontal(), curl_mn(), curl_other(), curli(), d2fi_dxj(), del2fi_dxjk(), del2fj(), del2m3x3_sym(), del2v(), del2v_etc(), del2vi_etc(), del4(), del4graddiv(), del4v(), del6(), del6_other(), del6_strict(), del6fj(), del6fjv(), del6v(), der6_step(), der_step(), der_stepdown(), despike(), det3x3mat(), div(), div_mn(), div_mn_2tensor(), div_other(), div_tensor(), dot2_mn(), dot2_mx(), dot2fj(), dot_mn(), dot_mn_sm(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_vm(), dot_mn_vm_trans(), doupwind(), dyadic2(), dyadic2_other(), erfunc(), eulag_filter(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), fourier_single_mode(), g2ij(), gamma_function(), get_dxyzs(), get_nseed(), get_radial_distance(), get_smooth_kernel(), get_where(), gij(), gij_etc(), gij_psi(), gij_psi_etc(), gij_v_times_s(), gijl_symmetric(), global_mean(), grad5(), gradf_upw1st(), h_dot_grad_vec(), hypergeometric2f1(), identify_bcs(), interp1(), inv2_3x3mat(), inverse_parse_bc(), invmat_db(), kronecker_delta(), len_fmtd_expr(), levi_civita(), linarray2matrix(), location_in_proc(), lower_triangular_index(), lubksb(), ludcmp(), matrix2linarray(), max_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), multsm_mn(), multsv_mn(), multsv_mn_add(), noform(), nou_dot_grad_scl(), one_minus_exp(), parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), periodic_fold_back(), position(), rdim(), read_line_from_file(), read_snaptime(), register_report_aux(), remove_mean(), remove_mean_value(), remove_prof(), scalartripleproduct(), set_dt(), set_next_dt(), shift_dt(), smooth(), smooth_kernel(), smooth_mn(), smoothing_kernel(), stagger_to_base_interp_1st(), stagger_to_base_interp_3rd(), step_vector(), stepdown(), sum_mn(), symmetrise3x3_ut2lt(), tensor_diffusion_coef(), trace_mn(), traceless_strain(), u_dot_grad_mat(), unit_vector(), update_snaptime(), vec_dot_3tensor(), vecout(), vecout_finalize(), vecout_initialize(), vortex(), write_dx_general(), write_xprof(), write_yprof(), write_zprof(), xlocation(), ylm(), ylm_other(), ylocation(), zlocation()

Needed modules

Variables

  • sub/binomial_coeffs [private]
  • sub/calc_diffusive_flux [private]
  • sub/characteristic_speed [private]
  • sub/check_for_nans_globally [public]
  • sub/cross [public]
  • sub/cross_0 [private]
  • sub/cubic_der_step [public]
  • sub/cubic_der_step_mn [private]
  • sub/cubic_der_step_pt [private]
  • sub/cubic_step [public]
  • sub/cubic_step_mn [private]
  • sub/cubic_step_pt [private]
  • sub/d2f_dxj [private]
  • sub/del2 [public]

    Overload the `del2’ function

  • sub/del2_main [private]
  • sub/del2_other [private]
  • sub/der_4th_stag [private]
  • sub/diff_flux [private]
  • sub/dot [public]
  • sub/dot2 [public]
  • sub/dot2_0 [private]
  • sub/dot2_3d [private]
  • sub/dot_0 [private]
  • sub/dot_add [public]
  • sub/dot_mn_add [private]
  • sub/dot_mn_sub [private]
  • sub/dot_sub [public]
  • sub/finalize_aver [public]
  • sub/finalize_aver_1d [private]
  • sub/finalize_aver_2d [private]
  • sub/finalize_aver_3d [private]
  • sub/finalize_aver_4d [private]
  • sub/find_index_by_bisection [public]
  • sub/gaussian_kernel [private]
  • sub/get_random_vec [public]
  • sub/grad [public]

    Overload the `grad’ function

  • sub/grad_main [private]

    grad of an ‘mvar’ variable

  • sub/grad_other [private]

    grad of another field (mx,my,mz)

  • sub/h_dot_grad [public]
  • sub/h_dot_grad_scl [private]
  • sub/insert [public]

    Overload the ‘insert’ function

  • sub/insert_carray [private]
  • sub/insert_carray_mult [private]
  • sub/insert_rarray [private]
  • sub/max_for_dt [public]
  • sub/max_for_dt_1_1_1_nx [private]
  • sub/max_for_dt_1_nx [private]
  • sub/max_for_dt_nx_nx [private]
  • sub/meanyz [public]
  • sub/meanyz_s [private]
  • sub/meanyz_v [private]
  • sub/minmod_alt [private]
  • sub/mult_mat_vv [public]
  • sub/mult_mat_vv_mn [private]
  • sub/multm2 [public]
  • sub/multm2_sym [public]
  • sub/multmm_sc [public]
  • sub/multmm_sc_mn [private]
  • sub/multmv [public]
  • sub/multmv_mn_transp [private]
  • sub/multmv_transp [public]
  • sub/multsv [public]
  • sub/multsv_add [public]
  • sub/multsv_add_mn [private]
  • sub/multsv_mn_inplace [private]
  • sub/multvs [public]
  • sub/multvs_mn [private]
  • sub/multvv_mat [public]
  • sub/multvv_mat_mn [private]
  • sub/multvv_smat [public]
  • sub/multvv_smat_add [public]
  • sub/multvv_smat_add_mn [private]
  • sub/multvv_smat_mn [private]
  • sub/pencil_add1 [private]
  • sub/pencil_add2 [private]
  • sub/pencil_divide1 [private]
  • sub/pencil_divide2 [private]
  • sub/pencil_multiply1 [private]
  • sub/pencil_multiply2 [private]
  • sub/pencil_subtract1 [private]
  • sub/pencil_subtract2 [private]
  • sub/pi_function [private]
  • sub/poly [public]

    Overload the `poly’ function

  • sub/poly_0 [private]
  • sub/poly_1 [private]
  • sub/poly_3 [private]
  • sub/power_law [public]
  • sub/power_law_mn [private]
  • sub/power_law_pt [private]
  • sub/quintic_der_step [public]
  • sub/quintic_der_step_mn [private]
  • sub/quintic_der_step_pt [private]
  • sub/quintic_step [public]
  • sub/quintic_step_mn [private]
  • sub/quintic_step_pt [private]
  • sub/sine_step [public]
  • sub/sine_step_mn [private]
  • sub/sine_step_pt [private]
  • sub/slope_lim_lin_interpol [private]
  • sub/slope_limiter [private]
  • sub/smth_kernel (7,7,7) [real,private/parameter/optional/default=reshape((/6.03438e-15,9.07894e-11,1.24384e-08,5.46411e-08,1.24384e-08,9.07894e-11,5.03438e-15,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,5.46411e-08,2.69243e-05,0.000425400,0.000909623,0.000425400,2.69243e-05,5.46411e-08,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,5.03438e-15,9.07894e-11,1.24384e-08,5.46411e-08,1.24384e-08,9.07894e-11,5.03438e-15,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,2.21580e-07,7.31878e-05,0.000909623,0.00179548,0.000909623,7.31878e-05,2.21580e-07,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,2.69243e-05,0.00179548,0.00854438,0.0122469,0.00854438,0.00179548,2.69243e-05,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,2.21580e-07,7.31878e-05,0.000909623,0.00179548,0.000909623,7.31878e-05,2.21580e-07,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,0.000183649,0.00550289,0.0162043,0.0197919,0.0162043,0.00550289,0.000183649,0.000425400,0.00854438,0.0197919,0.0223153,0.0197919,0.00854438,0.000425400,0.000183649,0.00550289,0.0162043,0.0197919,0.0162043,0.00550289,0.000183649,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,5.46411e-08,2.69243e-05,0.000425400,0.000909623,0.000425400,2.69243e-05,5.46411e-08,2.69243e-05,0.00179548,0.00854438,0.0122469,0.00854438,0.00179548,2.69243e-05,0.000425400,0.00854438,0.0197919,0.0223153,0.0197919,0.00854438,0.000425400,0.000909623,0.0122469,0.0223153,0.0232260,0.0223153,0.0122469,0.000909623,0.000425400,0.00854438,0.0197919,0.0223153,0.0197919,0.00854438,0.000425400,2.69243e-05,0.00179548,0.00854438,0.0122469,0.00854438,0.00179548,2.69243e-05,5.46411e-08,2.69243e-05,0.000425400,0.000909623,0.000425400,2.69243e-05,5.46411e-08,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,0.000183649,0.00550289,0.0162043,0.0197919,0.0162043,0.00550289,0.000183649,0.000425400,0.00854438,0.0197919,0.0223153,0.0197919,0.00854438,0.000425400,0.000183649,0.00550289,0.0162043,0.0197919,0.0162043,0.00550289,0.000183649,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,2.21580e-07,7.31878e-05,0.000909623,0.00179548,0.000909623,7.31878e-05,2.21580e-07,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,2.69243e-05,0.00179548,0.00854438,0.0122469,0.00854438,0.00179548,2.69243e-05,9.14337e-06,0.000909623,0.00550289,0.00854438,0.00550289,0.000909623,9.14337e-06,2.21580e-07,7.31878e-05,0.000909623,0.00179548,0.000909623,7.31878e-05,2.21580e-07,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,5.03438e-15,9.07894e-11,1.24384e-08,5.46411e-08,1.24384e-08,9.07894e-11,5.03438e-15,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,5.46411e-08,2.69243e-05,0.000425400,0.000909623,0.000425400,2.69243e-05,5.46411e-08,1.24384e-08,9.14337e-06,0.000183649,0.000425400,0.000183649,9.14337e-06,1.24384e-08,9.07894e-11,2.21580e-07,9.14337e-06,2.69243e-05,9.14337e-06,2.21580e-07,9.07894e-11,5.03438e-15,9.07894e-11,1.24384e-08,5.46411e-08,1.24384e-08,9.07894e-11,5.03438e-15/),(/7,7,7/))]
  • sub/step [public]
  • sub/step_scalar [private]
  • sub/u_dot_grad [public]
  • sub/u_dot_grad_alt [public]
  • sub/u_dot_grad_scl [private]
  • sub/u_dot_grad_scl_alt [private]
  • sub/u_dot_grad_vec [private]
  • sub/u_dot_grad_vec_alt [private]
  • sub/u_grad_kurganov_tadmore [private]
  • sub/ylm_core [private]

Subroutines and functions

subroutine  sub/max_mn(a, res)

successively calculate maximum of a, which is supplied at each call. Start from scratch if lfirstpoint=.true.

1-apr-01/axel+wolf: coded

Parameters:
  • a (nx) [real,in]

  • res [real,inout]

Called from:

update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer(), dpoly_dt(), calc_diagnostics_polymer()

Call to:

fatal_error(), det3x3mat(), dyadic2_other(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/sum_mn(a, res)

Successively calculate the sum over all points of a, which is supplied at each call. Start from zero if lfirstpoint=.true.

1-apr-01/axel+wolf: coded

Parameters:
  • a (nx) [real]

  • res [real]

Called from:

register_density(), initialize_density(), init_lnrho(), pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics()

Call to:

fatal_error(), det3x3mat(), dyadic2_other(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot_mn(a, b, c[, ladd])

Dot product, c=a.b, on pencil arrays.

3-apr-01/axel+gitta: coded

24-jun-08/MR: ladd added for incremental work

Parameters:
  • a (,) [real,in]

  • b (,) [real,in]

  • c (*) [real,inout]

  • ladd [logical,in,]

Use :

general (loptest())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), read_magnetic_init_pars(), write_magnetic_init_pars(), read_magnetic_run_pars(), write_magnetic_run_pars(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), set_border_magnetic(), eta_shell(), calc_bthresh(), calc_tau_aa_exterior(), helflux(), curflux_ds(), curflux(), register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar(), calc_diagnostics_pscalar(), dlncc_dt(), read_pscalar_init_pars(), write_pscalar_init_pars(), read_pscalar_run_pars(), write_pscalar_run_pars(), rprint_pscalar(), get_slices_pscalar(), pscalar_before_boundary(), calc_mpscalar(), register_radiation(), radtransfer(), initialize_radiation(), init_rad(), pencil_criteria_radiation(), pencil_interdep_radiation(), calc_pencils_radiation(), read_radiation_init_pars(), write_radiation_init_pars(), read_radiation_run_pars(), write_radiation_run_pars(), rprint_radiation(), get_slices_radiation(), calc_ode_diagnostics_special(), prep_rhs_special(), register_testscalar(), initialize_testscalar(), init_cctest(), pencil_criteria_testscalar(), pencil_interdep_testscalar(), read_testscalar_init_pars(), write_testscalar_init_pars(), read_testscalar_run_pars(), write_testscalar_run_pars(), dcctest_dt(), get_slices_testscalar(), testscalar_after_boundary(), calc_pencils_magnetic(), sine_avoid_boundary(), radiative_cooling(), radiative_pressure(), de_dt(), flux_limiter(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef()

Call to:

det3x3mat(), dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/vec_dot_3tensor(a, b, c)
Dot product of a vector with 3 tensor,

c_ij = a_k b_ijk

28-aug-08/dhruba : coded

Parameters:
  • a (nx,3) [real,in]

  • b (nx,3,3,3) [real,in]

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

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat()

Call to:

det3x3mat(), dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/matrix2linarray(mm, aa)

converts a 3X3 matrix to an array of length 9

18-sep-15/dhruba: coded

Parameters:
  • mm (3,3) [real,in]

  • aa (9) [real,out]

Called from:

register_particles_caustics(), initialize_particles_caustics(), init_particles_caustics(), dcaustics_dt(), dcaustics_dt_pencil(), register_particles_grad(), initialize_particles_grad(), pencil_criteria_par_grad(), set_particle_grad(), dsigmap_dt_pencil(), register_particles_lyapunov(), initialize_particles_lyapunov(), init_particles_lyapunov(), dlyapunov_dt(), dlyapunov_dt_pencil()

Call to:

det3x3mat(), dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/linarray2matrix(aa, mm)

converts a 3X3 matrix to an array of length 9

18-sep-15/dhruba: coded

Parameters:
  • aa (9) [real,in]

  • mm (3,3) [real,out]

Called from:

register_particles_caustics(), initialize_particles_caustics(), init_particles_caustics(), dcaustics_dt(), dcaustics_dt_pencil(), register_particles_grad(), initialize_particles_grad(), pencil_criteria_par_grad(), set_particle_grad(), dsigmap_dt_pencil(), register_particles_lyapunov(), initialize_particles_lyapunov(), init_particles_lyapunov(), dlyapunov_dt(), dlyapunov_dt_pencil(), register_particles_tetrad(), initialize_particles_tetrad(), init_particles_tetrad(), dtetrad_dt(), dtetrad_dt_pencil()

Call to:

det3x3mat(), dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/inv2_3x3mat(a, qq)

calcualates the second invariant of a 3X3 matrix directly

Parameters:
  • a (3,3) [real,in]

  • qq [real,out]

Called from:

register_particles_caustics(), initialize_particles_caustics(), init_particles_caustics(), dcaustics_dt()

Call to:

det3x3mat(), dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/scalartripleproduct(a, b, c, product)
Parameters:
  • a (3) [real,in]

  • b (3) [real,in]

  • c (3) [real,in]

  • product [real]

Called from:

register_particles_tetrad(), initialize_particles_tetrad(), init_particles_tetrad(), dtetrad_dt()

Call to:

det3x3mat(), dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/det3x3mat(a, det)

calculates determinant of a 3X3 matrix directly

Parameters:
  • a (3,3) [real,in]

  • det [real,out]

Called from:

register_particles_caustics(), initialize_particles_caustics(), init_particles_caustics(), dcaustics_dt(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct()

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot_mn_sv(a, b, c)

Dot product, c=a.b, between non-pencilized vector and pencil array.

10-oct-06/axel: coded

Parameters:
  • a (3) [real,in]

  • b (nx,3) [real,in]

  • c (nx) [real,out]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), time_integrals_magnetic(), df_diagnos_magnetic(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), calc_pencils_magnetic()

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot_mn_sv_pencil(a, b, c)

Dot product, c=a.b, between pencilized vector and pencil scalar.

02-sep-2025/alberto: coded

Parameters:
  • a (nx,3) [real,in]

  • b (nx) [real,in]

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

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot_mn_sm(a, b, c)

Dot product, c=a.b, between non-pencilized vector and pencil matrix.

10-oct-06/axel: coded

Parameters:
  • a (3) [real,in]

  • b (nx,3,3) [real,in]

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

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), time_integrals_magnetic(), df_diagnos_magnetic(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), calc_pencils_magnetic()

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot_mn_vm(a, b, c)

Dot product, c=a.b, between pencil vector and pencil matrix.

10-oct-06/axel: coded

Parameters:
  • a (nx,3) [real,in]

  • b (nx,3,3) [real,in]

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

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer()

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot_mn_vm_trans(a, b, c)

Dot product, c=a.b, between pencil vector and pencil matrix. I think the name of dot_mn_vm is not right and should have been transposed.

10-oct-06/axel: coded

Parameters:
  • a (nx,3) [real,in]

  • b (nx,3,3) [real,in]

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

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot2_mn(a, b[, fast_sqrt[, precise_sqrt]])

!$omp declare target

Dot product with itself, to calculate max and rms values of a vector. FAST_SQRT is only correct for ~1e-18 < |a| < 1e18 (for single precision); PRECISE_SQRT works for full range.

29-sep-97/axel: coded

1-apr-01/axel: adapted for cache-efficient sub-array formulation

25-jun-05/bing: added optional args for calculating |a|

Parameters:
  • a (nx,3) [real,in]

  • b (nx) [real,out]

  • fast_sqrt [logical,in,]

  • precise_sqrt [logical,in,]

Use :

general (loptest())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), time_step(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar(), dlncc_dt(), read_radiation_init_pars(), write_radiation_init_pars(), read_radiation_run_pars(), write_radiation_run_pars(), rprint_radiation(), get_slices_radiation(), special_calc_hydro(), special_calc_density(), special_calc_dustdensity(), special_calc_energy(), special_calc_magnetic(), special_calc_pscalar(), special_calc_particles(), special_calc_chemistry(), special_before_boundary(), calc_ode_diagnostics_special(), prep_rhs_special(), calc_pencils_magnetic(), flux_limiter(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), initialize_timestep()

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot2_mx(a, b)

Dot product with itself.

21-aug-22/axel: adapted from dot2_mn

Parameters:
  • a (mx,3) [real,in]

  • b (mx) [real,out]

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dot2fj(a, vec, b)

Dot product with itself, multiplied by anisotropic factor.

20-dec-12/wlad: adapted from dot2_mn

Parameters:
  • a (nx,3) [real,in]

  • vec (3) [real,in]

  • b (nx) [real,out]

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/dyadic2(a, b)

Dyadic product of a penciled vector with itself.

24-jan-09/axel: coded

Parameters:
  • a (nx,3) [real,in]

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

Call to:

dyadic2_other(), fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/dyadic2_other(a)

Dyadic product of a vector with itself for non-pencil data.

26-may-19/MR: aped from dyadic2

Parameters:

a (3) [real,in]

Return:

b (3,3) [real]

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other()

subroutine  sub/trace_mn(a, b)

Trace of a matrix.

3-apr-01/axel+gitta: coded

Parameters:
  • a (nx,3,3) [real,in]

  • b (nx) [real,out]

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/mult_matrix(a, b, c)

Matrix multiplication of two pencil variables.

Parameters:
  • a (nx,3,3) [real]

  • b (nx,3,3) [real]

  • c (nx,3,3) [real]

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer(), dpoly_dt(), calc_diagnostics_polymer()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/multm2_mn(a, b)

Matrix squared, gives scalar.

11-nov-02/axel: adapted from multmm_sc_mn

Parameters:
  • a (nx,3,3) [real]

  • b (nx) [real]

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/multm2_sym_mn(a, b)

Symmetric matrix squared, gives scalar.

24-aug-2011/Bourdin.KIS: adapted from multm2_mn

Parameters:
  • a (nx,3,3) [real,in]

  • b (nx) [real,out]

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), calc_slope_diff_flux(), periodic_fold_back(), calc_all_diff_fluxes(), calc_sij2()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/multmv_mn(a, b, c[, ladd])

Matrix multiplied with vector, gives vector.

C_i = A_{i,j} B_j

3-apr-01/axel+gitta: coded

24-jun-08/MR: ladd added for incremental work

Parameters:
  • a (nx,3,3) [real,in]

  • b (nx,3) [real,in]

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

  • ladd [logical,in,]

Use :

general (loptest())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/invmat_db(d, b, mat)

Invert Mij = (delij*(D+B^2) - Bi*Bj

Parameters:
  • d (nx) [real]

  • b (nx,3) [real]

  • mat (nx,3,3) [real]

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/multsv_mn(a, b, c)

Vector multiplied with scalar, gives vector.

22-nov-01/nils erland: coded 10-oct-03/axel: a is now the scalar (now consistent with old routines) 24-jun-08/MR: ladd added for incremental work 28-feb-10/bing: removed ladd keyword, use multsv_mn_add instead

Parameters:
  • a (nx) [real,in]

  • b (nx,3) [real,in]

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

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), update_char_vel_magnetic(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), calc_pencils_magnetic(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/multsv_mn_add(a, b, c)

Vector multiplied with scalar, gives vector. Unfortunately, this has almost the same name as the next one: multsv_add_mn

22-nov-01/nils erland: coded 10-oct-03/axel: a is now the scalar (now consistent with old routines) 24-jun-08/MR: ladd added for incremental work

Parameters:
  • a (nx) [real,in]

  • b (nx,3) [real,in]

  • c (nx,3) [real,inout]

Called from:

register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/multsm_mn(a, b, c)

Matrix multiplied with scalar, gives matrix.

25-jun-22/axel: adapted from multsv_mn

Parameters:
  • a (nx) [real,in]

  • b (nx,3,3) [real,in]

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

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/cross_mn(a, b, c)

Cross product, c = a x b, for pencil variables. Previously called crossp.

Parameters:
  • a (nx,3) [real,in]

  • b (nx,3) [real,in]

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

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), time_integrals_magnetic(), df_diagnos_magnetic(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), read_testperturb_init_pars(), write_testperturb_init_pars(), register_testfield(), initialize_testfield(), init_aatest(), pencil_criteria_testfield(), pencil_interdep_testfield(), read_testfield_init_pars(), write_testfield_init_pars(), read_testfield_run_pars(), write_testfield_run_pars(), daatest_dt(), get_slices_testfield(), testfield_before_boundary(), testfield_after_boundary(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), power_phi(), powerhel_phi(), power_vec(), polar_spectrum(), power1d_plane(), power_cor(), power_cor_scl(), quadratic_invariants(), power_fft3d_vec(), power_transfer_mag(), calc_pencils_magnetic(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part(), calc_diffusive_part_prof_0d(), calc_diffusive_part_prof_1d(), calc_inverse_matrix(), calc_coefficients(), diagnos_interdep(), rhs_daatest()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/cross_mixed(a, b, c)

Cross product, c = a x b, of a pencil and a non-pencil variable.

17-apr-2015/MR: coded

Parameters:
  • a (nx,3) [real,in]

  • b (3) [real,in]

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

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/gij(f, k, g, nder[, ignoredx])

Calculate gradient of a vector, return matrix.

3-apr-01/axel+gitta: coded

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

  • nder [integer]

  • ignoredx [logical]

Use :

deriv (der(), der2(), der3(), der4(), der5(), der6()), general (loptest())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), calculate_vars_magnetic(), update_char_vel_magnetic(), set_border_neutralvelocity(), calc_viscous_force_neutral(), register_shock(), initialize_shock(), read_shock_run_pars(), write_shock_run_pars(), rprint_shock(), get_slices_shock(), pencil_criteria_shock(), pencil_interdep_shock(), calc_pencils_shock(), calc_shock_profile_simple(), calc_shock_profile(), time_step(), register_testfield(), initialize_testfield(), init_aatest(), pencil_criteria_testfield(), pencil_interdep_testfield(), read_testfield_init_pars(), write_testfield_init_pars(), read_testfield_run_pars(), write_testfield_run_pars(), daatest_dt(), get_slices_testfield(), testfield_before_boundary(), testfield_after_boundary(), register_particles_grad(), initialize_particles_grad(), pencil_criteria_par_grad(), set_particle_grad(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), power_phi(), powerhel_phi(), power_vec(), polar_spectrum(), power1d_plane(), power_cor(), power_cor_scl(), quadratic_invariants(), power_fft3d_vec(), power_transfer_mag(), calc_diagnostics_shock(), shock_before_boundary(), special_calc_hydro(), special_calc_density(), special_calc_dustdensity(), special_calc_energy(), special_calc_magnetic(), special_calc_pscalar(), special_calc_particles(), special_calc_chemistry(), special_before_boundary(), register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), get_slices_testflow(), testflow_before_boundary(), calc_ltestflow_nonlin_terms(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), viscosity_after_boundary(), calc_pencils_magnetic(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), calc_slope_diff_flux(), periodic_fold_back(), calc_all_diff_fluxes(), calc_sij2(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part(), initialize_timestep()

Call to:

fatal_error(), der3(), der4(), der5(), der6(), gij(), symmetrise3x3_ut2lt(), div(), not_implemented(), del4(), del6_strict(), del6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/gij_v_times_s(f, k_v, k_s, g)

Calculate gradient of a vector times scalar, return matrix.

28-aug-26/TP: coded

Parameters:
  • f (,,*,*) [real,contiguous] :: /Hp_ini**2

  • k_v [integer]

  • k_s [integer]

  • g (nx,3,3) [real]

Called from:

register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), viscosity_after_boundary()

Call to:

gij(), symmetrise3x3_ut2lt(), der5(), fatal_error(), div(), not_implemented(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/gijl_symmetric(f, k, gijl)

Calculate gradient of a (symmetric) second rank matrix, return 3rd rank matrix

18-aug-08/dhruba: coded

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Use :

deriv (der())

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer()

Call to:

symmetrise3x3_ut2lt(), der5(), fatal_error(), div(), not_implemented(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/grad5(f, k, g)

Calculate 5th order gradient of a scalar, get vector.

03-jun-07/anders: adapted

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Use :

deriv (der5())

Called from:

register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar()

Call to:

der5(), fatal_error(), div(), not_implemented(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/div(f, k, g[, ldiff_fluxes[, inds]])

Calculate divergence of vector, get scalar.

13-dec-01/nils: coded 16-jul-02/nils: adapted from pencil_mpi 31-aug-07/wlad: adapted for cylindrical and spherical coords 28-sep-15/Joern+MR: adapted to use for slope-limited diffusive

flux given on a staggered grid. Here the vector field v is stored in

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

    /Hp_ini**2

    the components in the degenerate directions are missing, and the existing components are always stored in ascending order, e.g., [v_x,v_z] or [v_y,v_z].

    16-nov-16/MR: modifications for non-Cartesian coordinates.

  • k [integer,in] :: Over the range of fields

  • g (nx) [real,out]

  • ldiff_fluxes [logical,in,]

  • inds (3) [integer]

Use :

deriv (der()), general (loptest())

Called from:

register_density(), initialize_density(), init_lnrho(), density_before_boundary(), pencil_criteria_density(), pencil_interdep_density(), density_after_boundary(), dlnrho_dt(), impose_density_floor(), read_density_init_pars(), write_density_init_pars(), read_density_run_pars(), write_density_run_pars(), rprint_density(), get_slices_density(), get_slices_pressure(), get_init_average_density(), calc_pencils_density(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), register_shock(), initialize_shock(), read_shock_run_pars(), write_shock_run_pars(), rprint_shock(), get_slices_shock(), pencil_criteria_shock(), pencil_interdep_shock(), calc_pencils_shock(), calc_shock_profile(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), register_radiation(), radtransfer(), initialize_radiation(), init_rad(), pencil_criteria_radiation(), pencil_interdep_radiation(), calc_pencils_radiation(), calc_diagnostics_shock(), register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), anelastic_after_mn(), radiative_cooling(), radiative_pressure(), de_dt(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor()

Call to:

fatal_error(), div(), not_implemented(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/div_tensor(f, divergence, itensor)

Calculates the divergence of a symmetric tensor Assumes the tensor is symmetric and that indices are in the following increasing order: :p integer itensor [in]: xx,yy,zz,xy,xz,yz

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

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

Called from:

initialize_training(), register_training(), read_training_run_pars(), write_training_run_pars(), training_after_boundary(), dtraining_dt(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity()

Call to:

div(), not_implemented(), fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/div_other(f, g)
Parameters:
  • f (mx,my,mz,3) [real] :: /Hp_ini**2

  • g (nx) [real]

Use :

deriv (der())

Called from:

initialize_testfield_general(), calc_uxb(), calc_diffusive_part()

Call to:

not_implemented(), fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/div_mn(aij, b, a)

Calculate divergence from derivative matrix.

18-sep-04/axel: coded 21-feb-07/axel: corrected spherical coordinates 14-mar-07/wlad: added cylindrical coordinates

Parameters:
  • aij (nx,3,3) [real,in] :: MR: correct?

  • b (nx) [real,out]

  • a (nx,3) [real,in]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), update_char_vel_magnetic(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), get_slices_testflow(), testflow_before_boundary(), calc_ltestflow_nonlin_terms(), calc_pencils_magnetic(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), calc_slope_diff_flux(), periodic_fold_back(), calc_all_diff_fluxes(), calc_sij2(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part()

Call to:

not_implemented(), fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/div_mn_2tensor(aijk, bi)

Calculate divergence from derivative matrix.

07-aug-10/dhruba: coded

Parameters:
  • aijk (nx,3,3,3) [real,in]

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

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer()

Call to:

not_implemented(), fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/curl_mn(aij, b[, a[, lcovariant_derivative]])

Calculate curl from derivative matrix.

21-jul-03/axel: coded 21-feb-07/axel: corrected spherical coordinates 14-mar-07/wlad: added cylindrical coordinates 16-jun-16/fred: added option to use covariant derivative bij

Parameters:
  • aij (nx,3,3) [real,in] :: MR: correct?

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

  • a (,) [real,in,]

  • lcovariant_derivative [logical,in,]

Use :

general (loptest())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), calculate_vars_magnetic(), update_char_vel_magnetic(), register_shock(), initialize_shock(), read_shock_run_pars(), write_shock_run_pars(), rprint_shock(), get_slices_shock(), pencil_criteria_shock(), pencil_interdep_shock(), calc_pencils_shock(), calc_shock_profile_simple(), calc_shock_profile(), time_step(), register_testfield(), initialize_testfield(), init_aatest(), pencil_criteria_testfield(), pencil_interdep_testfield(), read_testfield_init_pars(), write_testfield_init_pars(), read_testfield_run_pars(), write_testfield_run_pars(), daatest_dt(), get_slices_testfield(), testfield_before_boundary(), testfield_after_boundary(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), power_phi(), powerhel_phi(), power_vec(), polar_spectrum(), power1d_plane(), power_cor(), power_cor_scl(), quadratic_invariants(), power_fft3d_vec(), power_transfer_mag(), calc_diagnostics_shock(), shock_before_boundary(), special_calc_hydro(), special_calc_density(), special_calc_dustdensity(), special_calc_energy(), special_calc_magnetic(), special_calc_pscalar(), special_calc_particles(), special_calc_chemistry(), special_before_boundary(), calc_pencils_magnetic(), initialize_testfield_general(), calc_uxb(), initialize_timestep()

Call to:

fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/curl_horizontal(f, k, g)

Calculate curl of a vector, whose z component is given.

8-oct-09/axel: adapted from

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Use :

deriv (der())

Call to:

fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/curl(f, k, g[, ignoredx])

Calculate curl of a vector, get vector.

12-sep-97/axel: coded 10-sep-01/axel: adapted for cache efficiency 11-sep-04/axel: began adding spherical coordinates 21-feb-07/axel: corrected spherical coordinates 14-mar-07/wlad: added cylindrical coordinates 20-sep-13/ccyang: added optional argument ignoredx

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

  • ignoredx [logical,in,]

Use :

deriv (der())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), read_magnetic_init_pars(), write_magnetic_init_pars(), read_magnetic_run_pars(), write_magnetic_run_pars(), get_slices_magnetic(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), calc_mfield(), curflux_ds(), read_testperturb_init_pars(), write_testperturb_init_pars(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), calc_ode_diagnostics_special(), prep_rhs_special(), tracers_prepare(), trace_streamlines(), wtracers(), structure(), calc_pencils_magnetic(), sine_avoid_boundary(), alfven_rphi(), alfven_zconst(), alfven_rz(), correct_lorentz_force(), remove_mean_emf(), remove_mean_emf_cylindrical(), remove_mean_emf_spherical(), get_grid_pos(), interpolate_vv(), get_vector(), trace_single(), send_vec(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part(), calc_diffusive_part_prof_0d(), calc_diffusive_part_prof_1d(), calc_inverse_matrix(), calc_coefficients(), diagnos_interdep(), rhs_daatest(), pc_extract

Call to:

fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/curl_other(f, g)

Calculate curl of a non-mvar vector, get vector.

23-june-09/wlad: adapted from curl

Parameters:
  • f (mx,my,mz,3) [real,in] :: /Hp_ini**2

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

Use :

deriv (der())

Call to:

fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/curli(f, k, g, i)

Calculate curl of a vector, get vector.

22-oct-02/axel+tarek: adapted from curl

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

  • g (nx) [real,out]

  • i [integer,in] :: fill the weights with gaussian distribution.

Use :

deriv (der())

Called from:

initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), power_phi(), powerhel_phi(), power_vec(), polar_spectrum(), power1d_plane(), power_cor(), power_cor_scl(), quadratic_invariants(), power_fft3d_vec()

Call to:

fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del2v(f, k, del2f[, fij[, pff]])

Calculate del2 of a vector, get vector.

28-oct-97/axel: coded 15-mar-07/wlad: added cylindrical coordinates

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

  • fij (nx,3,3) [real]

  • pff (nx,3) [real]

Use :

deriv (der())

Called from:

calc_viscosity(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part()

Call to:

fatal_error(), symmetrise3x3_ut2lt(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del2m3x3_sym(f, k, del2f)

Calculate del2 of a 3x3 symmetric matrix, get matrix 23-feb-11/dhruba: coded in a new manner

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer()

Call to:

symmetrise3x3_ut2lt(), fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del2fj(f, vec, k, del2f)

Calculate del2 of a scalar, get scalar, adding anisotropic factor.

20-dec-12/wlad: adapted from del2_main

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • vec (3) [real]

  • k [integer,in] :: Over the range of fields

  • del2f (nx) [real,out]

Use :

deriv (der(), der2())

Call to:

fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del2fi_dxjk(f, k, del2fkdxij)

Calculate partial^2f/partial x_jpartial x_k of a vector, get a 9 dimensional object

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Use :

deriv (der2(), derij())

Call to:

fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/d2fi_dxj(f, k, d2fidxj)

Calculate d^2f_i/dx^2_j of a vector, get a six dimensional object

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Use :

deriv (derij())

Call to:

fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/symmetrise3x3_ut2lt(matrix_ut3x3)

sets the lower triangular values of a matrix to its upper triangular values. Does not touch the diagonal. Applies to 3x3 matrices (pencil) only.

23-dhruba-11/dhruba: coded

Parameters:

matrix_ut3x3 (nx,3,3) [real]

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat()

Call to:

fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del2v_etc(f, k[, del2[, graddiv[, curlcurl[, gradcurl]]]])

Calculates a number of second derivative expressions of a vector outputs a number of different vector fields.

Parameters:
  • gradcurl (nx,3,3) [real,out,] ::

    is not the vector gradient. Surprisingly, calling derij only if graddiv or curlcurl are present does not speed up the code on Mephisto @ 32x32x64.

    12-sep-01/axel: coded 15-mar-07/wlad: added cylindrical coordinates

  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

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

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

Use :

deriv (der(), der2(), derij())

Called from:

initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), power_phi(), powerhel_phi(), power_vec(), polar_spectrum(), power1d_plane(), power_cor(), power_cor_scl(), quadratic_invariants(), power_fft3d_vec(), power_transfer_mag(), register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), calc_viscosity()

Call to:

fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del2vi_etc(f, k, ii[, del2[, graddiv[, curlcurl]]])

Calculates a number of second derivative expressions of a vector. Outputs a number of different vector fields. Surprisingly, calling derij only if graddiv or curlcurl are present does not speed up the code on Mephisto @ 32x32x64. Just do the ith component

7-feb-04/axel: adapted from del2v_etc

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

  • ii [integer,in]

  • del2 (nx) [real,out,]

  • graddiv (nx) [real,out,]

  • curlcurl (nx) [real,out,]

Use :

deriv (der2(), derij())

Called from:

initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), power_phi(), powerhel_phi(), power_vec(), polar_spectrum(), power1d_plane(), power_cor(), power_cor_scl(), quadratic_invariants(), power_fft3d_vec()

Call to:

fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del4v(f, k, del4f)

Calculate del4 of a vector, get vector.

09-dec-03/nils: adapted from del6v

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), update_char_vel_magnetic(), calc_pencils_magnetic()

Call to:

fatal_error(), del4(), del6_strict(), del6(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del6v(f, k, del6f[, lstrict])

Calculate del6 of a vector, get vector.

28-oct-97/axel: coded 24-apr-03/nils: adapted from del2v

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

  • lstrict [logical]

Use :

general (loptest())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), update_char_vel_magnetic(), calc_pencils_magnetic(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part()

Call to:

del6_strict(), del6(), fatal_error(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/bij_tilde(f, bb, bijtilde[, bij_cov_corr])

Calculates partial B_[r,theta,phi]/ partial r, (partial B_[r,theta,phi]/partial theta)/r, and optionally the correction, needed for covariant derivatives, in bij_cov_corr.

20-nov-16/MR: coded

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • bb (nx,3) [real,in]

  • bijtilde (nx,3,*) [real,out]

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

Use :

deriv (der2(), derij(), der())

Call to:

fatal_error(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/gij_etc(f, iref[, aa[, aij[, bij[, del2[, graddiv[, lcovariant_derivative]]]]]])

Calculate B_i,j = eps_ikl A_l,jk and A_l,kk.

21-jul-03/axel: coded 26-jul-05/tobi: do not calculate both d^2 A/(dx dy) and d^2 A/(dy dx) 23-feb-07/axel: added spherical coordinates

7-mar-07/wlad: added cylindrical coordinates

29-aug-13/MR: made bij optional; added error messages for missing optional parameters 15-jun-16/fred: bij optional covariant derivative terms; spherical/cylindrical

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • iref [integer,in]

  • aa (nx,3) [real,in,]

  • aij (nx,3,3) [real,in,] :: MR: correct?

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

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

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

  • lcovariant_derivative [logical,in,]

Use :

deriv (der2(), derij()), general (loptest())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), calculate_vars_magnetic(), update_char_vel_magnetic(), time_step(), register_testfield(), initialize_testfield(), init_aatest(), pencil_criteria_testfield(), pencil_interdep_testfield(), read_testfield_init_pars(), write_testfield_init_pars(), read_testfield_run_pars(), write_testfield_run_pars(), daatest_dt(), get_slices_testfield(), testfield_before_boundary(), testfield_after_boundary(), initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra(), powergws(), powerscl(), power_1d(), pdf(), pdf_2d(), pdf1d_ang(), power_phi(), powerhel_phi(), power_vec(), polar_spectrum(), power1d_plane(), power_cor(), power_cor_scl(), quadratic_invariants(), power_fft3d_vec(), power_transfer_mag(), calc_pencils_magnetic(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part(), initialize_timestep()

Call to:

fatal_error(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/g2ij(f, k, g)

Calculates the Hessian, i.e. all second derivatives of a scalar.

11-jul-02/axel: coded

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

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

Use :

deriv (der2(), derij())

Called from:

register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar()

Call to:

fatal_error(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del4(f, k, del4f[, ignoredx])

Calculate del4 (defined here as d^4/dx^4 + d^4/dy^4 + d^4/dz^4, rather than del2^3) of a scalar for hyperdiffusion.

8-jul-02/wolf: coded 9-dec-03/nils: adapted from del6

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

  • del4f (nx) [real,out]

  • ignoredx [logical,in,]

Use :

deriv (der4())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v()

Call to:

fatal_error(), der4(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del6(f, k, del6f[, ignoredx[, lexp]])

Calculate del6 (defined here as d^6/dx^6 + d^6/dy^6 + d^6/dz^6, rather than del2^3) of a scalar for hyperdiffusion. Using INGOREDX calculates something similar to del6, but ignoring the steps dx, dy, dz. Useful for Nyquist filtering, where you just want to remove the Nyquist frequency fully, while retaining the amplitude in small wave numbers.

8-jul-02/wolf: coded 22-jul-11/bing: added ignoredx

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

  • del6f (nx) [real,out]

  • ignoredx [logical,in,]

  • lexp [logical]

Use :

deriv (der6())

Called from:

register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v()

Call to:

der6(), der4i2j(), der2i2j2k(), fatal_error(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del6_strict(f, k, del6)

Calculates del6rho=del2(del2(del2(rho))), with del2=div(grad). The routine is strictly accurate for Cartesian coordinates, and retains all the leading dx1**6 terms in cylindrical. The subroutine is small enough and memory-cheap enough that it could be in dlnrhodt. Yet, writing it as a subroutine allows not only for encapsulation but also better documentation.

d6a d6a d6a / d4d2a d4d2a d4d2a d4d2a d4d2a d4d2a d2d2d2a

Parameters:
  • del6 (nx) [real,out] ::

    3 | —— + —— + —— + —— + —— + —— | + 6 ———

    dx6 dy6 dz6 dx4dy2 dx4dz2 dx2dy4 dx2dz4 d4ydz2 dz4dy2 / dx2dy2dz2

    02-apr-17/wlad: coded

  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

Use :

deriv (der6(), der4i2j(), der2i2j2k())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v()

Call to:

der6(), der4i2j(), der2i2j2k(), fatal_error(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del4graddiv(f, ikk, del4graddivu)

Calculate del4(grad(div())), which enters in the formulation of strict hyperviscosity. This is strictly accurate for Cartesian, and retains all the leading (dx1**6) terms for polar coordinates. For the x-component of del4(grad(div())), the result of sympy is

[del4(grad(div(u)))]_x = f(ux) + g(uy) + g(uz)

where f(ux) = der6x(ux)
  • 2*(der4x2y(ux)+der4x2z(ux)+der4y2x(ux)+der4z2x(ux))

  • 4*der2x2y2z(ux)

g(uy) = der5x1y(uy) + der1x5y(uy) + 3*der3x3y(uy)
  • 2*der3x1y2z(uy) + 3*der1x3y2z(uy) + der1x1y4z(uy)

and similary

h(uz) = der5x1z(uz) + der1x5z(uz) + 3*der3x3z(uz)
  • 2*der3x2y1z(uz) + 3*der1x2y3z(uz) + der1x4y1z(uz)

Per symmetry, the formulation for the y and z components are identical under the permutation [xyz].

09-apr-17/wlad: coded

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • ikk [integer,in]

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

Use :

deriv (der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k())

Call to:

fatal_error(), der6(), der4i2j(), der2i2j2k(), der5i1j(), der3i3j(), der3i2j1k(), der4i1j1k(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del6_other(f, del6f)

Calculate del6 (defined here as d^6/dx^6 + d^6/dy^6 + d^6/dz^6, rather than del2^3) of a scalar for hyperdiffusion.

13-jun-05/anders: adapted from del6

Parameters:
  • f (mx,my,mz) [real,in] :: /Hp_ini**2

  • del6f (nx) [real,out]

Use :

deriv (der6())

Call to:

fatal_error(), der6(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del6fj(f, vec, k, del6f)

Calculates fj*del6 (defined here as (vecx*d^6/dx^6 + vecy*d^6/dy^6 + vecz*d^6/dz^6)f ) needed for hyperdissipation of a scalar (diffrho) with non-cubic cells where the coefficient depends on resolution. Returns scalar.

30-oct-06/wlad: adapted from del6

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • vec (3) [real]

  • k [integer,in] :: Over the range of fields

  • del6f (nx) [real,out]

Use :

deriv (der6())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv()

Call to:

der6(), fatal_error(), del6fj(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/del6fjv(f, vec, k, del6f)

Calculates fj*del6 (defined here as fx*d^6/dx^6 + fy*d^6/dy^6 + fz*d^6/dz^6) needed for hyperdissipation of vectors (visc, res) with non-cubic cells where the coefficient depends on resolution. Returns vector.

30-oct-06/wlad: adapted from del6v

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • vec (3) [real]

  • k [integer,in] :: Over the range of fields

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

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), calc_pencils_magnetic()

Call to:

del6fj(), fatal_error(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/u_dot_grad_mat(f, k, gradm, uu, ugradm[, upwind])

Computes u.grad(M) where M is a second rank matrix.

07-aug-10/dhruba: coded 24-nov-11/dhruba: added upwinding 26-mar-12/MR: doupwind introduced

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in] :: Over the range of fields

  • gradm (nx,3,3,3) [real,in]

  • uu (nx,3) [real]

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

  • upwind [logical]

Called from:

register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer()

Call to:

fatal_error(), vec_dot_3tensor(), doupwind(), symmetrise3x3_ut2lt(), not_implemented(), dot_mn(), der2_minmod(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/nou_dot_grad_scl(gradf, uu, ugradf, del6u[, upwind[, ladd]])

Do advection-type term u.grad f_k. Assumes gradf to be known, but takes f and k as arguments to be able to calculate upwind correction

28-Aug-2007/dintrans: attempt of upwinding in cylindrical coordinates 29-Aug-2007/dhruba: attempt of upwinding in spherical coordinates. 28-Sep-2009/MR: ladd added for incremental work

Parameters:
  • gradf (nx,3) [real,in]

  • uu (nx,3) [real,in]

  • ugradf (nx) [real,out]

  • del6u (nx,3) [real]

  • upwind [logical,in,]

  • ladd [logical,in,]

Use :

general (loptest())

Call to:

dot_mn(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/h_dot_grad_vec(hh, gradf, ff, hgradf)

h.gradf for vectors h and f.

23-mar-08/axel: adapted from u_dot_grad_vec

Parameters:
  • hh (nx,3) [real,in]

  • gradf (nx,3,3) [real,in]

  • ff (nx,3) [real,in]

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

Use :

general (loptest())

Called from:

initialize_power_spectrum(), read_power_spectrum_run_pars(), write_power_spectrum_run_pars(), power(), crossspec(), power_2d(), power_xy(), powerhel(), powerlor(), poweromu(), poweremf(), powertra()

Call to:

dot_mn(), der_upwind1st(), warning(), read_snaptime(), shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/gradf_upw1st(f, uu, k, gradf)

Do advection-type term u.grad f_k for upwind 1st order der scheme.

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • uu (nx,3) [real,in]

  • k [integer] :: Over the range of fields

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

Use :

deriv (der_upwind1st())

Call to:

der_upwind1st(), warning(), read_snaptime(), shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/rdim(file, mx_in, my_in, mz_in, mvar_in, maux_in, mglobal_in, prec_in, nghost_in, ipx_in, ipy_in, ipz_in)

Read dimension from file.

15-sep-09/nils: adapted from rdim

Parameters:
  • file [character]

  • mx_in [integer]

  • my_in [integer]

  • mz_in [integer]

  • mvar_in [integer]

  • maux_in [integer]

  • mglobal_in [integer]

  • prec_in [character]

  • nghost_in [integer]

  • ipx_in [integer]

  • ipy_in [integer]

  • ipz_in [integer]

Call to:

warning(), read_snaptime(), shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/read_snaptime(file, tout, nout, dtout, t_temp)

Read in output time for next snapshot (or similar) from control file.

30-sep-97/axel: coded 24-aug-99/axel: allow for logarithmic spacing

9-sep-01/axel: adapted for MPI

10-sep-15/MR : tout set to t if file is missing and dtout>0

Parameters:
  • file [character,in]

  • tout [real,out]

  • nout [integer,out]

  • dtout [real,in]

  • t_temp [real,in]

Use :

mpicomm (mpibcast_real(), mpi_comm_pencil())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), initialize_diagnostics(), initialize_diagnostic_arrays(), prints(), report_undefined_diagnostics(), gen_form_legend(), write_sound(), get_average_density(), diagnostic(), initialize_time_integrals(), xyaverages_z(), xzaverages_y(), yzaverages_x(), phizaverages_r(), yaverages_xz(), zaverages_xy(), phiaverages_rz(), write_1daverages(), write_1daverages_prepare(), write_2daverages_prepare(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), set_border_magnetic(), eta_shell(), calc_bthresh(), register_particles_nbody(), initialize_particles_nbody(), pencil_criteria_par_nbody(), pencil_interdep_par_nbody(), calc_pencils_par_nbody(), init_particles_nbody(), dvvp_dt_nbody_pencil(), dxxp_dt_nbody(), dvvp_dt_nbody(), loop_through_nbodies(), loop_through_nbodies_inertial(), loop_through_nbodies_fixstar(), get_evr(), point_par_name(), read_particles_nbody_init_pars(), write_particles_nbody_init_pars(), read_particles_nbody_run_pars(), write_particles_nbody_run_pars(), reset_center_of_mass(), integrate_selfgravity(), bcast_nbodyarray(), particles_nbody_special(), get_totalmass(), get_gravity_field_nbody(), calc_torque(), get_ramped_mass(), calc_nbodygravity_particles(), get_total_gravity(), add_indirect_term(), advance_particles_in_cartesian(), update_position(), update_velocity(), particles_nbody_read_snapshot(), particles_nbody_write_snapshot(), in_solid_cell(), register_testfield(), initialize_testfield(), init_aatest(), pencil_criteria_testfield(), pencil_interdep_testfield(), read_testfield_init_pars(), write_testfield_init_pars(), read_testfield_run_pars(), write_testfield_run_pars(), daatest_dt(), get_slices_testfield(), testfield_before_boundary(), testfield_after_boundary(), rescaling_testfield(), 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(), wvid_prepare(), wsnap_ogrid(), tracers_prepare(), register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), register_testscalar(), initialize_testscalar(), init_cctest(), pencil_criteria_testscalar(), pencil_interdep_testscalar(), read_testscalar_init_pars(), write_testscalar_init_pars(), read_testscalar_run_pars(), write_testscalar_run_pars(), dcctest_dt(), get_slices_testscalar(), testscalar_after_boundary(), rescaling_testscalar(), initialize_timeavg(), update_timeavgs(), wsnap_timeavgs(), calc_pencils_magnetic(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), initialize_testfield_general()

Call to:

warning(), read_snaptime(), shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/update_snaptime(file, tout, nout, dtout, t, lout[, ch[, nowrite]])

Check whether we need to write snapshot; if so, update the snapshot

Parameters:
  • file [character,in] ::

    e.g. tsnap.dat). Done by all processors.

    30-sep-97/axel: coded 24-aug-99/axel: allow for logarithmic spacing 27-jul-15/MR : try to fix a strange behavior with gfortran:

    when crashing, a big number of unmotivated snapshots is output -> test of NaN in t

    30-may-20/axel: new version of log-spaced output by x10^(1/3) for dtout<0

  • tout [real,inout]

  • nout [integer,inout]

  • dtout [real,in]

  • t [real,in]

  • lout [logical,inout]

  • ch [character,out,]

  • nowrite [logical,in,]

Use :

general (itoa(), notanumber())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), initialize_diagnostics(), initialize_diagnostic_arrays(), prints(), report_undefined_diagnostics(), gen_form_legend(), write_sound(), get_average_density(), diagnostic(), initialize_time_integrals(), xyaverages_z(), xzaverages_y(), yzaverages_x(), phizaverages_r(), yaverages_xz(), zaverages_xy(), phiaverages_rz(), write_1daverages(), write_1daverages_prepare(), write_2daverages_prepare(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), set_border_magnetic(), eta_shell(), calc_bthresh(), register_particles_nbody(), initialize_particles_nbody(), pencil_criteria_par_nbody(), pencil_interdep_par_nbody(), calc_pencils_par_nbody(), init_particles_nbody(), dvvp_dt_nbody_pencil(), dxxp_dt_nbody(), dvvp_dt_nbody(), loop_through_nbodies(), loop_through_nbodies_inertial(), loop_through_nbodies_fixstar(), get_evr(), point_par_name(), read_particles_nbody_init_pars(), write_particles_nbody_init_pars(), read_particles_nbody_run_pars(), write_particles_nbody_run_pars(), reset_center_of_mass(), integrate_selfgravity(), bcast_nbodyarray(), particles_nbody_special(), get_totalmass(), get_gravity_field_nbody(), calc_torque(), get_ramped_mass(), calc_nbodygravity_particles(), get_total_gravity(), add_indirect_term(), advance_particles_in_cartesian(), update_position(), update_velocity(), particles_nbody_read_snapshot(), particles_nbody_write_snapshot(), in_solid_cell(), register_testfield(), initialize_testfield(), init_aatest(), pencil_criteria_testfield(), pencil_interdep_testfield(), read_testfield_init_pars(), write_testfield_init_pars(), read_testfield_run_pars(), write_testfield_run_pars(), daatest_dt(), get_slices_testfield(), testfield_before_boundary(), testfield_after_boundary(), rescaling_testfield(), 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(), wvid_prepare(), wsnap_ogrid(), tracers_prepare(), register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), register_testscalar(), initialize_testscalar(), init_cctest(), pencil_criteria_testscalar(), pencil_interdep_testscalar(), read_testscalar_init_pars(), write_testscalar_init_pars(), read_testscalar_run_pars(), write_testscalar_run_pars(), dcctest_dt(), get_slices_testscalar(), testscalar_after_boundary(), rescaling_testscalar(), initialize_timeavg(), update_timeavgs(), wsnap_timeavgs(), calc_pencils_magnetic(), initialize_testfield_general()

Call to:

read_snaptime(), shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/shift_dt(dt_)

Hack to make the code output the VARn files at EXACTLY the times defined by dsnap, instead of slightly after it.

03-aug-11/wlad: coded

Parameters:

dt [real,inout]

Use :

general (safe_character_assign())

Called from:

time_step(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), initialize_timestep()

Call to:

read_snaptime(), shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/set_next_dt(val)
Parameters:

val [real]

Call to:

shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/set_dt(dt1_)
Parameters:

dt1 [real]

Use :

mpicomm (mpiallreduce_max(), mpi_comm_pencil())

Called from:

pde()

Call to:

shift_dt(), fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/vecout(lun, file, vv, thresh, nvec)

Write vectors to disc if their length exceeds thresh.

22-jul-03/axel: coded

Parameters:
  • lun [integer]

  • file [character]

  • vv (nx,3) [real]

  • thresh [real]

  • nvec [integer]

Use :

general (keep_compiler_quiet())

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), calc_pencils_magnetic()

Call to:

fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/vecout_initialize(lun, file, nvec)

Close file, and write number of vectors to a separate file.

Parameters:
  • lun [integer]

  • file [character]

  • nvec [integer]

Call to:

fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/vecout_finalize(lun, file, nvec)

Close file, and write number of vectors to a separate file.

Parameters:
  • lun [integer]

  • file [character]

  • nvec [integer]

Call to:

fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/despike(f, j, retval, factor)

Remove large spikes from

14-aug-06/tony: coded

Parameters:
  • f (,,*,*) [real,contiguous] :: /Hp_ini**2

  • j [integer] :: Excludes from the filtering only first and last point, which are ghostzones anyway

  • retval (nx) [real]

  • factor [real]

Call to:

fatal_error(), get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/smooth_kernel(f, j, smth[, smth_kernel_])

Smooth scalar field FF using predefined constant gaussian like kernel.

20-jul-06/tony: coded

Parameters:
  • f (,,*,*) [real,contiguous] :: /Hp_ini**2

  • j [integer] :: Excludes from the filtering only first and last point, which are ghostzones anyway

  • smth (nx) [real]

  • smth_kernel_ (7,7,7) [real]

Call to:

get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), fatal_error(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/smooth(f, ivar[, ivar2_[, lgauss[, smooth_width_]]])

Smoothes the f-variable ivar with a polynomial kernel. It assumes that the boundary conditions for ivar have been applied, and the ghost cells are not treated upon return.

23-jan-14/ccyang: coded. 05-jun-20/joenr: add gaussian kernels

Parameters:
  • f (mx,my,mz,*) [real,inout] :: /Hp_ini**2

  • ivar [integer,in]

  • ivar2 [integer,in,]

  • lgauss [logical,in,]

  • smooth_width [integer,in,]

Use :

general (ioptest())

Called from:

initialize_training(), register_training(), read_training_run_pars(), write_training_run_pars(), training_after_boundary(), start

Call to:

get_smooth_kernel(), noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), fatal_error(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/smooth_mn(f, ivar, kernel, smth)

The same routine as smooth put to be used inside the mn loop

Parameters:
  • kernel (1 + 2 * nghost,1 + 2 * nghost,1 + 2 * nghost) [real,in] ::

    need to be calculated previously by calling get_smooth_kernel in …

    05-jun-20/joern: coded, adapted from smooth

  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • ivar [integer,in]

  • smth (nx) [real,out]

Call to:

noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), fatal_error(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/get_smooth_kernel(kernel[, lgauss])

Gets the smooth kernel used by subroutine smooth.

15-feb-14/ccyang: coded 05-jun-20/joenr: add gaussian kernels

Parameters:
  • kernel (1 + 2 * nghost,1 + 2 * nghost,1 + 2 * nghost) [real,out]

  • lgauss [logical,in,]

Use :

general (loptest())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth()

Call to:

noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), fatal_error(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/eulag_filter(f, ivar1, ivar2)

3D filter for the data comming from EULAG. It needs filter to smoothout radial ripples Variables:

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

  • ivar1 [integer,in] ::

    Over the range of fields

    bc = boundary conditions. 0 = boundary value is zero, 1 = boundary value of df/dr is zero

    02-may-23/GM: Coded

  • ivar2 [integer,in]

Call to:

noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), fatal_error(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/identify_bcs(varname_input, idx)

Print boundary conditions for scalar field.

19-jul-02/wolf: coded 29-may-04/axel: allowed variable name to be 8 chars long

Parameters:
  • varname_input [character]

  • idx [integer]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), register_density(), initialize_density(), init_lnrho(), density_before_boundary(), pencil_criteria_density(), pencil_interdep_density(), density_after_boundary(), dlnrho_dt(), impose_density_floor(), read_density_init_pars(), write_density_init_pars(), read_density_run_pars(), write_density_run_pars(), rprint_density(), get_slices_density(), get_slices_pressure(), get_init_average_density(), calc_pencils_density(), register_energy(), initialize_energy(), init_energy(), pencil_criteria_energy(), pencil_interdep_energy(), calc_pencils_energy(), denergy_dt(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), register_testfield(), initialize_testfield(), init_aatest(), pencil_criteria_testfield(), pencil_interdep_testfield(), read_testfield_init_pars(), write_testfield_init_pars(), read_testfield_run_pars(), write_testfield_run_pars(), daatest_dt(), register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer(), dpoly_dt(), calc_diagnostics_polymer(), register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar(), dlncc_dt(), register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), register_testscalar(), initialize_testscalar(), init_cctest(), pencil_criteria_testscalar(), pencil_interdep_testscalar(), read_testscalar_init_pars(), write_testscalar_init_pars(), read_testscalar_run_pars(), write_testscalar_run_pars(), dcctest_dt(), anelastic_after_mn(), calc_pencils_magnetic(), pencil_criteria_entropy(), pencil_interdep_entropy(), calc_pencils_entropy(), initialize_testfield_general(), calc_uxb(), calc_diffusive_part(), calc_diffusive_part_prof_0d(), calc_diffusive_part_prof_1d(), calc_inverse_matrix(), calc_coefficients(), diagnos_interdep(), rhs_daatest()

Call to:

noform(), len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other(), ylm(), fatal_error(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/noform(cname[, lcomplex[, addlengths[, addtexts]]])

Given a string cname of the form `name(format)’, returns the name without format, fills empty space of correct length (depending on format) with dashes. If additional data (like extrema positions) are associated with the diagnostic requested by cname: addlength: length of all strings for additional data. addtext: array with header names for additional data.

For output as legend.dat and first line of time_series.dat.

22-jun-02/axel: coded 20-aug-13/MR: optional parameter lcomplex added 26-aug-13/MR: unnecessary p descriptors removed from cform

Parameters:
  • cname [character,in]

  • lcomplex [logical]

  • addlengths (*) [integer]

  • addtexts (*) [character]

Return:

noform [character]

Use :

cparam (max_col_width()), general (loptest(), ioptest())

Called from:

initialize_diagnostics(), initialize_diagnostic_arrays(), prints(), report_undefined_diagnostics(), gen_form_legend(), write_sound(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs()

Call to:

len_fmtd_expr(), error(), levi_civita(), kronecker_delta(), ylm_other()

function  sub/len_fmtd_expr(cform)

Find length=number of formatted expression from format cform, examples: f10.2, e10.3, g12.1 .

5-may-26/MR: carved out from noform

Parameters:

cform [character]

Return:

number [integer]

Called from:

initialize_diagnostic_arrays(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), noform()

Call to:

levi_civita(), kronecker_delta(), ylm_other()

function  sub/levi_civita(i, j, k)

Totally antisymmetric tensor.

20-jul-03/axel: coded

Parameters:
  • i [integer]

  • j [integer]

  • k [integer]

Return:

levi_civita [real]

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), noform(), len_fmtd_expr()

Call to:

kronecker_delta(), ylm_other()

function  sub/kronecker_delta(i, j)

delta_{ij} = 1 if i==j, 0 otherwise

28-oct-11/dhruba: coded

Parameters:
  • i [integer]

  • j [integer]

Return:

kronecker_delta [real]

Called from:

register_particles_lyapunov(), initialize_particles_lyapunov(), init_particles_lyapunov(), register_polymer(), initialize_polymer(), init_poly(), pencil_criteria_polymer(), pencil_interdep_polymer(), calc_pencils_polymer(), dpoly_dt(), calc_diagnostics_polymer(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), noform(), len_fmtd_expr(), levi_civita()

Call to:

ylm_other()

subroutine  sub/lower_triangular_index(ij, i1, j1)
Parameters:
  • ij [integer,out]

  • i1 [integer,in]

  • j1 [integer,in]

Call to:

ylm_other(), ylm(), fatal_error(), step_vector(), der_step(), der6_step(), stepdown(), der_stepdown(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/ylm_other(theta, phi, ell, emm[, der])

Spherical harmonic wrapper for general use with theta and phi arguments.

6-oct-20/MR: derived from ylm

Parameters:
  • theta [real]

  • phi [real]

  • ell [integer]

  • emm [integer]

  • der [real]

Return:

sph_har [real]

Called from:

register_pscalar(), initialize_pscalar(), init_lncc(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), noform(), len_fmtd_expr(), levi_civita(), kronecker_delta(), lower_triangular_index()

function  sub/ylm(ell, emm[, der])

Spherical harmonic wrapper for use in mn-loop.

6-oct-20/MR: derived from ylm

Parameters:
  • ell [integer]

  • emm [integer]

  • der [real]

Return:

sph_har [real]

Called from:

register_pscalar(), initialize_pscalar(), init_lncc(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index()

function  sub/step_vector(x, x0, width)

Smooth unit step function centred at x0; implemented as tanh profile

23-jan-02/wolf: coded

Parameters:
  • x (*) [real]

  • x0 [real]

  • width [real] :: fill the weights with gaussian distribution.

Return:

step_vector (size(x) [real]

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index()

Call to:

der_step(), der6_step(), stepdown(), der_stepdown(), fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/der_step(x, x0, width)
Parameters:
  • x [real,in]

  • x0 [real,in]

  • width [real,in]

Return:

der_step [real]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), read_magnetic_init_pars(), write_magnetic_init_pars(), read_magnetic_run_pars(), write_magnetic_run_pars(), get_slices_magnetic(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), calc_mfield(), energy_after_boundary(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), set_border_magnetic(), eta_shell(), calc_bthresh(), calc_tau_aa_exterior(), helflux(), curflux_ds(), curflux(), calc_bmx(), calc_bmy(), calc_bmzs2(), calc_bmza2(), calc_bmz(), calc_jmx(), calc_jmy(), calc_jmz(), calc_embmz(), calc_emxamz3(), calc_ambmz(), calc_ambmzh(), calc_jmbmz(), calc_bmxy_rms(), calc_bmz_beltrami_phase(), alfven_x(), alfven_y(), alfven_z(), alfven_xy(), alfven_xz(), alfvenz_rot(), alfvenz_bell(), alfvenz_rot_shear(), torus_test(), force_free_jet(), piecew_dipole_aa(), geo_benchmark_b(), eta_xy_dep(), eta_zdep(), eta_ydep(), eta_xdep(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), viscosity_after_boundary(), calc_pencils_magnetic(), sine_avoid_boundary(), alfven_rphi(), alfven_zconst(), alfven_rz(), pencil_criteria_entropy(), pencil_interdep_entropy(), calc_pencils_entropy(), rad_equil(), calc_heatcond_arctan(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep()

function  sub/der6_step(x, x0, width)

6th order derivative of smooth unit STEP() function given above (i.e. a bump profile). Adapt this if you change the STEP() profile, or you will run into inconsistenies.

08-dec-09/dhruba: aped from der_step

Parameters:
  • x (*) [real]

  • x0 [real]

  • width [real] :: fill the weights with gaussian distribution.

Return:

der6_step (size(x, 1) [real]

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector()

Call to:

stepdown(), der_stepdown(), der_step(), fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/stepdown(x, x0, width)

Smooth unit step function centred at x0; implemented as tanh profile

23-jan-02/wolf: coded

Parameters:
  • x (*) [real]

  • x0 [real]

  • width [real] :: fill the weights with gaussian distribution.

Return:

stepdown (size(x, 1) [real]

Called from:

register_viscosity(), initialize_viscosity(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step()

Call to:

der_stepdown(), der_step(), fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/der_stepdown(x, x0, width)

Derivative of smooth unit STEPDOWN() function given above (i.e. a bump profile). Adapt this if you change the STEP() profile, or you will run into inconsistenies.

27-mar-10/dhruba: aped from der_step

Parameters:
  • x (*) [real]

  • x0 [real]

  • width [real] :: fill the weights with gaussian distribution.

Return:

der_stepdown (size(x, 1) [real]

Called from:

register_viscosity(), initialize_viscosity(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown()

Call to:

der_step(), fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/coeff_ydep(ydep_profile, y, coeff, ampl, coeff_y[, gcoeff_y[, jump[, width[, y0[, y1[, two_step_factor]]]]]])

creates a z-dependent resistivity for protoplanetary disk studies

19-aug-2013/wlad: adapted from eta_zdep

Parameters:
  • ydep_profile [character,in]

  • y (*) [real,in]

  • coeff [real]

  • ampl [real]

  • coeff_y (size(y) [real,out]

  • gcoeff_y (size(y) [real,out,]

  • jump [real]

  • width [real] :: fill the weights with gaussian distribution.

  • y0 [real]

  • y1 [real]

  • two_step_factor [real]

Call to:

der_step(), fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/parse_bc(bc, bc12)

Parse boundary conditions, which may be in the form `a’ (applies to both `lower’ and `upper’ boundary) or `a:s’ (use `a’ for lower, `s’ for upper boundary.

24-jan-02/wolf: coded

Parameters:
  • bc (mcom) [character,in]

  • bc12 (mcom,2) [character,out]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars()

Call to:

fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/inverse_parse_bc(bc, bc12)

27-jun-12/joern+dhruba: coded

Parameters:
  • bc (mcom) [character,out]

  • bc12 (mcom,2) [character,in]

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars()

Call to:

fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/parse_bc_rad(bc, bc1, bc2)

Parse boundary conditions, which may be in the form `a’ (applies to both `lower’ and `upper’ boundary) or `a:s’ (use `a’ for lower, `s’ for upper boundary.

6-jul-03/axel: adapted from parse_bc

Parameters:
  • bc (3) [character,in]

  • bc1 (3) [character,out]

  • bc2 (3) [character,out]

Call to:

fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/parse_bc_radg(bc, bc1, bc2)

Parse boundary conditions, which may be in the form `a’ (applies to both `lower’ and `upper’ boundary) or `a:s’ (use `a’ for lower, `s’ for upper boundary.

6-jul-03/axel: adapted from parse_bc

Parameters:
  • bc [character,in]

  • bc1 [character,out]

  • bc2 [character,out]

Call to:

fatal_error(), control_file_exists(), read_line_from_file(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/parse_shell(strin, strout)

Parse string replacing all $XXXX sequences with appropriate values from the environment. Return the parsed result in strout.

Parameters:
  • strin [character,in]

  • strout [character,inout]

Use :

general (safe_character_assign())

Called from:

get_datadir(), get_snapdir()

Call to:

control_file_exists(), read_line_from_file(), fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/control_file_exists(fname[, delete])

Does the given control file exist in either ./ or ./runtime/ ? If DELETE is true, delete the file after checking for existence.

26-jul-09/wolf: coded

Parameters:
  • fname [character,in]

  • delete [logical,in,]

Return:

control_file_exists [logical]

Use :

file_io (parallel_file_exists()), general (loptest())

Called from:

init_solid_cells(), helper_loop(), reload(), gen_output(), timeloop(), check_tspec_crit_log_interval(), check_tsnap_crit_log_interval(), check_tvid_crit_log_interval(), setup_signal_files(), print_metrics(), run_start(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), start

Call to:

read_line_from_file(), fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/read_line_from_file(fname)

Read the first line from a file; return empty string if file is empty

4-oct-02/wolf: coded

Parameters:

fname [character]

Return:

read_line_from_file [character]

Use :

file_io (file_exists())

Called from:

get_datadir(), get_snapdir(), read_all_init_pars(), read_all_run_pars(), get_downpars(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists()

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/get_nseed(nseed)

Get length of state of random number generator. The current seed can be represented by nseed (4-byte) integers. Different compilers have different lengths:

NAG: 1, Compaq: 2, Intel: 47, SGI: 64, NEC: 256

Parameters:

nseed [integer,out]

Use :

general (random_seed_wrapper())

Called from:

helper_loop(), reload(), gen_output(), timeloop(), check_tspec_crit_log_interval(), check_tsnap_crit_log_interval(), check_tvid_crit_log_interval(), setup_signal_files(), print_metrics(), run_start(), start

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/get_where(mask, indices[, status])

Get the indices where mask is .true.

Note: The pointer argument indices will be reassociated with a newly

allocated array. It is the user’s responsibility to pass in a disassociated pointer and deallocate it after use.

10-feb-15/ccyang: coded.

Parameters:
  • mask (*) [logical,in]

  • indices (*) [integer,pointer]

  • status [integer,out,]

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/write_dx_general(file, x00, y00, z00)

Write .general file for data explorer (aka DX).

04-oct-02/wolf: coded 08-oct-02/tony: use safe_character_assign() to detect string overflows 12-sep-13/mcnallcp: make the endianness detection reflect the platform

Parameters:
  • file [character]

  • x00 [real]

  • y00 [real]

  • z00 [real]

Use :

general (safe_character_append(), date_time_string())

Called from:

start

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/write_zprof(fname, a)

Writes z-profile to a file.

10-jul-05/axel: coded

Parameters:
  • fname [character,in]

  • a (*) [real,in]

Use :

hdf5_io (output_profile())

Called from:

phi_siny_over_r2(), sinxsinz(), sinx_siny_sinz(), sinx_siny_cosz(), x3_siny_cosz(), x_siny_cosz(), x1_siny_cosz(), x32_siny_cosz(), x1_cosy_cosz(), lnx_cosy_cosz(), cosx_siny_cosz(), sinx_cosy_cosz(), sin2x_sin2y_cosz(), cosxz_cosz(), cosyz_sinz(), cosx_cosy_cosz(), cosx_cosz(), cosy_cosz(), cosy_sinz(), x3_cosy_cosz(), cosx_coscosy_cosz(), cos2x_cos2y_cos2z(), xpoint(), xpoint2(), innerbox(), couette(), couette_rings(), hat(), hat3d(), gaussian(), gaussian3d(), gaussianpos(), parabola(), wave(), linprof(), wave_uu(), acosy(), modes(), modev(), modeb(), jump(), bjump(), bjumpz(), beltrami_old(), abc_field(), beltrami(), beltramik_general(), beltrami_general(), bihelical(), bhyperz(), beltrami_complex(), bessel_x(), bessel_az_x(), straining(), rolls(), robertsflow(), rotated_robertsflow(), exponential(), vecpatternxy(), bipolar(), bipolar_restzero(), soundwave(), coswave(), sph_constb(), hatwave(), sinwave(), sinwave_phase(), coswave_phase(), hawley_etal99a(), stratification(), register_viscosity(), initialize_viscosity()

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/write_yprof(fname, a)

Writes y-profile to a file.

11-aug-20/joern: adapted from write_zprof

Parameters:
  • fname [character,in]

  • a (*) [real,in]

Use :

hdf5_io (output_profile())

Called from:

register_viscosity(), initialize_viscosity()

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/write_xprof(fname, a)

Writes x-profile to a file.

10-jul-05/axel: coded

Parameters:
  • fname [character,in]

  • a (*) [real,in]

Use :

hdf5_io (output_profile())

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/remove_prof(type)

Remove profile file.

10-jul-05/axel: coded 05-Nov-2018/PABourdin: generalized to any direction

Parameters:

type [character,in]

Use :

file_io (file_remove()), general (safe_character_assign())

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/blob(ampl, f, i, radius[, xblob[, yblob[, zblob[, radius_x[, lexp[, lperi[, lconst_aver]]]]]]])

Single blob.

27-jul-02/axel: coded

7-jul-20/axel: allowed for lexp=.true. to take exp of Gaussian

Parameters:
  • ampl [real]

  • f (,,*,*) [real,contiguous] :: /Hp_ini**2

  • i [integer] :: fill the weights with gaussian distribution.

  • radius [real]

  • xblob [real]

  • yblob [real]

  • zblob [real]

  • radius_x [real]

  • lexp [logical]

  • lperi [logical]

  • lconst_aver [logical]

Called from:

register_density(), initialize_density(), init_lnrho()

Call to:

fatal_error(), hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/blobs(ampl, f, i, radius, nblobs)

Initialize n blobs.

19-mar-23/axel: adapted from blob

Parameters:
  • ampl [real]

  • f (,,*,*) [real,contiguous] :: /Hp_ini**2

  • i [integer] :: fill the weights with gaussian distribution.

  • radius [real]

  • nblobs [integer]

Use :

general (random_number_wrapper())

Call to:

hypergeometric2f1(), gamma_function(), dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), fatal_error(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/hypergeometric2f1(a, b, c, z, tol)
Parameters:
  • a [real,in]

  • b [real,in]

  • c [real,in]

  • z [real,in]

  • tol [real,in]

Return:

hyp2f1 [real]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), read_magnetic_init_pars(), write_magnetic_init_pars(), read_magnetic_run_pars(), write_magnetic_run_pars(), get_slices_magnetic(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), calc_mfield(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), set_border_magnetic(), eta_shell(), calc_bthresh(), calc_tau_aa_exterior(), helflux(), curflux_ds(), curflux(), calc_bmx(), calc_bmy(), calc_bmzs2(), calc_bmza2(), calc_bmz(), calc_jmx(), calc_jmy(), calc_jmz(), calc_embmz(), calc_emxamz3(), calc_ambmz(), calc_ambmzh(), calc_jmbmz(), calc_bmxy_rms(), calc_bmz_beltrami_phase(), alfven_x(), alfven_y(), alfven_z(), alfven_xy(), alfven_xz(), alfvenz_rot(), alfvenz_bell(), alfvenz_rot_shear(), torus_test(), force_free_jet(), calc_pencils_magnetic(), sine_avoid_boundary(), alfven_rphi(), alfven_zconst(), alfven_rz(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs()

function  sub/gamma_function(x)

Calculates the Gamma-function as

Gamma(x) = Pi(x-1)

9-jun-04/tobi+wolf: coded

Parameters:

x [real,in]

Return:

gamma_function [real]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), read_magnetic_init_pars(), write_magnetic_init_pars(), read_magnetic_run_pars(), write_magnetic_run_pars(), get_slices_magnetic(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), calc_mfield(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), set_border_magnetic(), eta_shell(), calc_bthresh(), calc_tau_aa_exterior(), helflux(), curflux_ds(), curflux(), calc_bmx(), calc_bmy(), calc_bmzs2(), calc_bmza2(), calc_bmz(), calc_jmx(), calc_jmy(), calc_jmz(), calc_embmz(), calc_emxamz3(), calc_ambmz(), calc_ambmzh(), calc_jmbmz(), calc_bmxy_rms(), calc_bmz_beltrami_phase(), alfven_x(), alfven_y(), alfven_z(), alfven_xy(), alfven_xz(), alfvenz_rot(), alfvenz_bell(), alfvenz_rot_shear(), torus_test(), force_free_jet(), calc_pencils_magnetic(), sine_avoid_boundary(), alfven_rphi(), alfven_zconst(), alfven_rz(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs()

Call to:

dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), fatal_error(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/tensor_diffusion_coef(gecr, ecr_ij, bij, bb, vkperp, vkpara, rhs[, llog[, gvkperp[, gvkpara]]])

Calculates tensor diffusion with variable tensor (or constant tensor). Calculates parts common to both variable and constant tensor first.

Note: ecr=lnecr in the below comment

Write diffusion tensor as K_ij = Kpara*ni*nj + (Kperp-Kpara)*del_ij.

vKperp*del2ecr + d_i(vKperp)d_i(ecr) + (vKpara-vKperp) d_i(n_i*n_j*d_j ecr)
  • n_i*n_j*d_i(ecr)d_j(vKpara-vKperp)

= vKperp*del2ecr + gKperp.gecr + (vKpara-vKperp) (H.G + ni*nj*Gij)
  • ni*nj*Gi*(vKpara_j - vKperp_j),

where H_i = (nj bij - 2 ni nj nk bk,j)/|b| and vKperp, vKpara are variable diffusion coefficients.

Calculates (K.gecr).gecr = vKperp(gecr.gecr) + (vKpara-vKperp)*Gi(ni*nj*Gj)

Adds both parts into decr/dt.

10-oct-03/axel: adapted from pscalar 30-nov-03/snod: adapted from tensor_diff without variable diffusion 04-dec-03/snod: converted for evolution of lnecr (=ecr)

9-apr-04/axel: adapted for general purpose tensor diffusion

25-jun-05/bing:

Parameters:
  • gecr (nx,3) [real,in]

  • ecr_ij (nx,3,3) [real,in]

  • bij (nx,3,3) [real,in]

  • bb (nx,3) [real,in]

  • vkperp (nx) [real]

  • vkpara (nx) [real]

  • rhs (nx) [real,out]

  • llog [logical]

  • gvkperp (nx,3) [real]

  • gvkpara (nx,3) [real]

Called from:

energy_after_boundary()

Call to:

dot2_mn(), multsv_mn(), dot_mn(), multmv_mn(), one_minus_exp(), erfunc(), fatal_error(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/one_minus_exp(x)
Parameters:

x [real,in]

Return:

one_minus_exp [real]

Called from:

register_particles_drag(), initialize_particles_drag(), init_particles_drag(), read_particles_drag_init_pars(), write_particles_drag_init_pars(), read_particles_drag_run_pars(), write_particles_drag_run_pars(), integrate_drag(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef()

function  sub/erfunc(x)
Parameters:

x [real,in]

Return:

erfunc [real]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), daa_dt(), update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), phi_siny_over_r2(), sinxsinz(), sinx_siny_sinz(), sinx_siny_cosz(), x3_siny_cosz(), x_siny_cosz(), x1_siny_cosz(), x32_siny_cosz(), x1_cosy_cosz(), lnx_cosy_cosz(), cosx_siny_cosz(), sinx_cosy_cosz(), sin2x_sin2y_cosz(), cosxz_cosz(), cosyz_sinz(), cosx_cosy_cosz(), cosx_cosz(), cosy_cosz(), cosy_sinz(), x3_cosy_cosz(), cosx_coscosy_cosz(), cos2x_cos2y_cos2z(), xpoint(), xpoint2(), innerbox(), couette(), couette_rings(), hat(), hat3d(), gaussian(), gaussian3d(), gaussianpos(), parabola(), wave(), linprof(), wave_uu(), acosy(), modes(), modev(), modeb(), jump(), bjump(), bjumpz(), beltrami_old(), abc_field(), beltrami(), beltramik_general(), beltrami_general(), bihelical(), bhyperz(), beltrami_complex(), bessel_x(), bessel_az_x(), straining(), rolls(), robertsflow(), rotated_robertsflow(), exponential(), vecpatternxy(), bipolar(), bipolar_restzero(), soundwave(), coswave(), sph_constb(), hatwave(), sinwave(), sinwave_phase(), coswave_phase(), hawley_etal99a(), stratification(), stratification_x(), stratification_xz(), planet_hc(), planet(), vortex_2d(), baroclinic(), crazy(), strange(), htanh(), vtube(), vtube_peri(), htube(), htube_x(), htube_erf(), htube2(), htube2_x(), magsupport(), hfluxlayer(), hfluxlayer_y(), hfluxlayer_y_theta(), vfluxlayer(), arcade_x(), halfcos_x(), halfcos_z(), uniform_x(), uniform_y(), uniform_z(), uniform_phi(), gaussian_by_z(), finalize_special(), pencil_criteria_special(), pencil_interdep_special(), calc_pencils_special(), get_slices_special(), special_boundconds(), special_after_timestep(), calc_pencils_magnetic(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef()

subroutine  sub/get_radial_distance(rrmn, rcylmn[, e1_[, e2_[, e3_]]])

Calculate distance and its cylindrical projection for different coordinate systems.

e1, e2, and e3 are the positions in the respective coordinate systems

15-mar-07/wlad : coded

Parameters:
  • rrmn (*) [real,out]

  • rcylmn (*) [real,out]

  • e1 [real,in,]

  • e2 [real,in,]

  • e3 [real,in,]

Called from:

register_magnetic(), initialize_magnetic(), init_aa(), pencil_criteria_magnetic(), pencil_interdep_magnetic(), magnetic_after_boundary(), daa_dt(), read_magnetic_init_pars(), write_magnetic_init_pars(), read_magnetic_run_pars(), write_magnetic_run_pars(), get_slices_magnetic(), time_integrals_magnetic(), df_diagnos_magnetic(), rescaling_magnetic(), calc_mfield(), register_density(), initialize_density(), init_lnrho(), density_before_boundary(), pencil_criteria_density(), pencil_interdep_density(), density_after_boundary(), dlnrho_dt(), calc_pencils_density(), curflux_ds(), register_particles_nbody(), initialize_particles_nbody(), pencil_criteria_par_nbody(), pencil_interdep_par_nbody(), calc_pencils_par_nbody(), init_particles_nbody(), dvvp_dt_nbody_pencil(), dxxp_dt_nbody(), dvvp_dt_nbody(), loop_through_nbodies(), loop_through_nbodies_inertial(), loop_through_nbodies_fixstar(), get_evr(), point_par_name(), read_particles_nbody_init_pars(), write_particles_nbody_init_pars(), read_particles_nbody_run_pars(), write_particles_nbody_run_pars(), reset_center_of_mass(), integrate_selfgravity(), bcast_nbodyarray(), particles_nbody_special(), get_totalmass(), get_gravity_field_nbody(), calc_torque(), get_ramped_mass(), calc_nbodygravity_particles(), get_total_gravity(), phi_siny_over_r2(), sinxsinz(), sinx_siny_sinz(), sinx_siny_cosz(), x3_siny_cosz(), x_siny_cosz(), x1_siny_cosz(), x32_siny_cosz(), x1_cosy_cosz(), lnx_cosy_cosz(), cosx_siny_cosz(), sinx_cosy_cosz(), sin2x_sin2y_cosz(), cosxz_cosz(), cosyz_sinz(), cosx_cosy_cosz(), cosx_cosz(), cosy_cosz(), cosy_sinz(), x3_cosy_cosz(), cosx_coscosy_cosz(), cos2x_cos2y_cos2z(), xpoint(), xpoint2(), innerbox(), couette(), couette_rings(), hat(), hat3d(), gaussian(), gaussian3d(), gaussianpos(), parabola(), wave(), linprof(), wave_uu(), acosy(), modes(), modev(), modeb(), jump(), bjump(), bjumpz(), beltrami_old(), abc_field(), beltrami(), beltramik_general(), beltrami_general(), bihelical(), bhyperz(), beltrami_complex(), bessel_x(), bessel_az_x(), straining(), rolls(), robertsflow(), rotated_robertsflow(), exponential(), vecpatternxy(), bipolar(), bipolar_restzero(), soundwave(), coswave(), sph_constb(), hatwave(), sinwave(), sinwave_phase(), coswave_phase(), hawley_etal99a(), stratification(), stratification_x(), stratification_xz(), planet_hc(), planet(), vortex_2d(), baroclinic(), crazy(), strange(), htanh(), vtube(), vtube_peri(), htube(), htube_x(), htube_erf(), htube2(), htube2_x(), magsupport(), hfluxlayer(), hfluxlayer_y(), hfluxlayer_y_theta(), vfluxlayer(), arcade_x(), halfcos_x(), halfcos_z(), uniform_x(), uniform_y(), uniform_z(), uniform_phi(), gaussian_by_z(), phi_comp_over_r(), vfield(), vfield2(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), viscosity_after_boundary(), calc_viscous_heat(), calc_viscous_force(), calc_diagnostics_viscosity(), calc_visc_heat_ppd(), calc_pencils_magnetic(), sine_avoid_boundary(), alfven_rphi(), alfven_zconst(), alfven_rz(), correct_lorentz_force()

Call to:

fatal_error(), interp1(), lubksb(), bspline_basis(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/interp1(r, fr, nr, r0[, ldescending])

20-dec-07/dintrans: coded Note: if ldescending=T, then input arrays r and fr are in descending order and we first reverse them.

Parameters:
  • r (nr) [real]

  • fr (nr) [real]

  • nr [integer]

  • r0 [real]

  • ldescending [logical]

Return:

interp1 [real]

Called from:

energy_after_boundary(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance()

Call to:

lubksb(), bspline_basis(), fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/bspline_basis(k, x, b)

Computes the values of the non-zero B-spline basis functions B_{i,k}(j+x) for i = j-k+1, j-k+2, …, j. The knot sequence {t_i) is assumed to be infinite and be integers, i.e., t_i = i for all integer i.

28-jul-15/ccyang: coded.

Input Arguments

Parameters:
  • k [integer,in] :: Number of knot spans for each basis function, which has order (k-1).

  • x [real,in] :: A number in [0,1). Output Argument

  • b (k) [real,out] :: An array of k elements, where b(i) = B_{j-k+i,k}(j+x).

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition()

Call to:

lubksb(), bspline_basis(), fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/bspline_interpolation(n, k, f, a, indx, shift)

Uses the B-spline interpolation to periodically shift a regular array of data nodes.

31-jul-15/ccyang: coded.

Input/Output Argument

Parameters:
  • f (n) [real,inout] :: /Hp_ini**2 Input Arguments

  • n [integer,in,] :: position in mn-loop at which interpolation is performed

  • k [integer,in] :: Number of knot spans for each basis function, which has order (k-1).

  • a (n,n) [real,in] ::

    Preconditioned by bspline_precondition() and then LU

    decomposed by ludcmp().

    indx

    Index permutations returned by ludcmp().

    shift

    Shift in unit of array index.

  • indx (n) [integer,in]

  • shift [real,in]

Called from:

register_shear(), initialize_shear(), read_shear_init_pars(), write_shear_init_pars(), read_shear_run_pars(), write_shear_run_pars(), shear_before_boundary(), pencil_criteria_shear(), pencil_interdep_shear(), calc_pencils_shear(), shearing(), calc_diagnostics_shear(), advance_shear(), sheared_advection_fft(), boundcond_shear(), shear_variables()

Call to:

lubksb(), bspline_basis(), fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/bspline_precondition(n, k, a)

Sets up the linear system for the coefficients of the B-spline basis functions, assuming periodic boundary conditions. The linear system reads

A x = f,

where

[ B_{1,k}(0.5) B_{2,k}(0.5) B_{3,k}(0.5) … B_{n,k}(0.5) ]

A = [ B_{1,k}(1.5) B_{2,k}(1.5) B_{3,k}(1.5) … B_{n,k}(1.5) ],

[ … … … … … ] [ B_{1,k}(n-0.5) B_{2,k}{n-0.5) B_{3,k}(n-0.5) … B_{n,k}(n-0.5) ]

x = [ alpha_1, alpha_2, alpha_3, …, alpha_n ]^T,

is the coefficients,

f = [ f_1, f_2, f_3, …, f_n ],

is the node data. The B-spline interpolation is then given by

f(x) = sum_i B_{i,k)(x)

with

f(i-0.5) = f_i, i = 1, 2, …, n.

28-jul-15/ccyang: coded.

Input Arguments

Parameters:
  • n [integer,in] :: position in mn-loop at which interpolation is performed

  • k [integer,in] ::

    Number of knot spans for each B-spline basis function, which

    has order (k-1).

    Output Argument

  • a (n,n) [real,out] :: The square matrix for the linear system.

Called from:

register_shear(), initialize_shear()

Call to:

bspline_basis(), fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/ludcmp(a, indx)

25-jun-09/rplasson: coded (adapted from numerical recipe)

Computes the LU decomposition of the matrix a. The result is placed in the matrix a. The row permutations are returned in indx.

Parameters:
  • a (,) [real,inout]

  • indx (*) [integer,out]

Called from:

register_shear(), initialize_shear(), get_gas_density(), precalc_weights(), dragforce_equi_multispecies()

Call to:

fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/lubksb(a, indx, b)

25-jun-09/rplasson: coded (adapted from numerical recipe)

Solves the equation A.X=B . ‘a’ must contain the LU decomposition of matrix A obtained by ludcmp. ‘indx’ is the permutation vector obtained by ludcmp. ‘b’ contains B, and returns the solution vector X.

Parameters:
  • a (,) [real,in]

  • indx (*) [integer,in]

  • b (*) [real,inout]

Called from:

get_gas_density(), precalc_weights(), dragforce_equi_multispecies(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation()

Call to:

fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/gij_psi(psif, ee, g)

Calculate gradient of a scalar field multiplied by a constant vector), return matrix.

31-jul-07/dhruba: adapted from gij

Parameters:
  • psif (mx,my,mz) [real,in]

  • ee (3) [real]

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

Use :

deriv (der())

Call to:

fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/gij_psi_etc(psif, ee[, aa[, aij, bij[, del2[, graddiv]]]])

Calculate B_i,j = eps_ikl A_l,jk and A_l,kk .

1-aug-07/dhruba : adapted from gij_etc

Parameters:
  • psif (mx,my,mz) [real,in]

  • ee (3) [real,in]

  • aa (nx,3) [real,in,]

  • aij (nx,3,3) [real,in,]

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

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

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

Use :

deriv (der2(), derij())

Call to:

fatal_error(), location_in_proc(), xlocation(), ylocation(), zlocation(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/location_in_proc(pos, lpos, mpos, npos)

Finds out if a points defined by pos belongs to the subdomain of the processor. Note: pos contains only the relevant coordinates, that is, those of the active dimensions. If yes then also returns the nearest grid location of this point. (MR: “nearest” not exactly true)

-dec-10/dhruba: coded 28-dec-10/MR: changed into function 13-jan-11/MR: made dependent on dimensionality,

irrelevant position indices set to 1

17-jan-17/MR: made valid for all possible dimensionality cases;

set output for inactive dimensions to nghost+1

Parameters:
  • pos (dimensionality) [real,in]

  • lpos [integer,out]

  • mpos [integer,out]

  • npos [integer,out]

Return:

location_in_proc [logical]

Called from:

initialize_diagnostics(), initialize_diagnostic_arrays(), prints(), report_undefined_diagnostics(), gen_form_legend(), write_sound(), get_average_density(), diagnostic(), initialize_time_integrals(), xyaverages_z(), xzaverages_y(), yzaverages_x(), phizaverages_r(), yaverages_xz(), zaverages_xy(), phiaverages_rz(), write_1daverages(), write_1daverages_prepare(), write_2daverages_prepare(), write_2daverages(), trim_averages(), fparse_name(), set_type(), save_name(), save_name_sound(), save_name_halfz(), max_mn_name(), sum_mn_name_halfy(), sum_mn_name_halfz(), sum_weighted_name(), sum_lim_mn_name(), surf_mn_name(), integrate_mn(), integrate_mn_name(), xysum_mn_name_z(), xysum_mn_name_z_npar(), xymax_mn_name_z(), xzsum_mn_name_y(), yzsum_mn_name_x(), yzsum_mn_name_x_mpar(), xyintegrate_mn_name_z(), xzintegrate_mn_name_y(), yzintegrate_mn_name_x(), phizsum_mn_name_r(), ysum_mn_name_xz(), ysum_mn_name_xz_npar(), yintegrate_mn_name_xz(), zsum_mn_name_xy_arr2(), zsum_mn_name_xy_arr(), zsum_mn_name_xy_mpar_scal(), calc_phiavg_profile(), diagnostics_init_reduc_pointers(), diagnostics_diag_reductions(), phisum_mn_name_rz(), get_from_fname(), allocate_sound(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc()

Call to:

xlocation(), ylocation(), zlocation(), fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/xlocation(xpos, ixpos, lproc)

If xpos lies within this processor, then lproc=T and xpos=x(ixpos). Otherwise lproc=F and ixpos=1.

18-nov-06/axel: coded 14-oct-08/ccyang: use half-closed interval and include the top-most plane 03-dec-09/MR: moved here from module slices 16-dec-10/joern: adapted from zlocation 18-jan-11/axel+joern: choose between l and l+1 depending on sign of x

Parameters:
  • xpos [real]

  • ixpos [integer]

  • lproc [logical]

Called from:

wvid_prepare(), wvid(), setup_slices(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc()

Call to:

fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/ylocation(ypos, iypos, lproc)

If ypos lies within this processor, then lproc=T and ypos=y(iypos). Otherwise lproc=F and iypos=1.

18-nov-06/axel: coded 14-oct-08/ccyang: use half-closed interval and include the top-most plane 03-dec-09/MR: adapted from module slices 16-dec-10/joern: took it from zlocation 18-jan-11/axel+joern: choose between m and m+1 depending on sign of y

Parameters:
  • ypos [real]

  • iypos [integer]

  • lproc [logical]

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc()

Call to:

fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/zlocation(zpos, izpos, lproc)

If zpos lies within this processor, then lproc=T and zpos=z(izpos). Otherwise lproc=F and izpos=1.

18-nov-06/axel: coded 14-oct-08/ccyang: use half-closed interval and include the top-most plane 03-dec-09/MR: moved here from module slices 18-jan-11/axel+joern: choose between n and n+1 depending on sign of z

Parameters:
  • zpos [real]

  • izpos [integer]

  • lproc [logical]

Called from:

wvid_prepare(), wvid(), setup_slices(), register_testflow(), initialize_testflow(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc()

Call to:

fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/position(ind, ip, ngrid, ind_loc, flag)

Determines local position ind_loc with respect to processor ip corresponding to global position ind if grid has local extent ngrid. flag is set if ind_loc lies within the local range. On return, ind_loc is corrected for number of ghost zones, thus can be used to index the f array.

Parameters:
  • ind_loc [integer,inout] ::

    and flag are not altered if ind <= 0.

    21-apr-15/MR: coded 27-may-18/MR: added ind_loc=-1 when ind outside proc range

    6-may-19/MR: made +1 the “invalid” value to allow indexing with ind_loc

  • ind [integer,inout]

  • ip [integer,in]

  • ngrid [integer,in]

  • flag [logical,out]

Called from:

initialize_boundcond(), wvid_prepare(), wvid(), setup_slices()

Call to:

fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/fourier_single_mode(arr, idims, k, idir, amps[, l2nd])

No parallelization in x allowed here

08-dec-10/MR: coded

Parameters:
  • arr (idims(1,idims(2) [real,in]

  • idims (2) [integer,in,required]

  • k [real,in]

  • idir [integer,in]

  • amps (2,*) [real,out] :: result is in root of z-beams

  • l2nd [logical,in,]

Use :

mpicomm (mpireduce_sum())

Called from:

initialize_testfield_general(), calc_uxb(), calc_diffusive_part(), calc_diffusive_part_prof_0d(), calc_diffusive_part_prof_1d(), calc_inverse_matrix(), calc_coefficients()

Call to:

fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/register_report_aux(name, index[, ind_aux1[, ind_aux2[, ind_aux3[, communicated[, rhs[, read_from_gpu]]]]]])

Registers aux variable named ‘name’ if not already registered (i.e. if index==0). Variable is scalar if ind_aux1,ind_aux2,

Parameters:
  • ind_aux3 [integer,inout,] ::

    are missing, vector with number of components equal to number of present ind_aux* parameters. Index of variable and its components (if any) are returned in index,ind_aux1,ind_aux2,ind_aux3 If already registered: outputs indices in index.pro

    13-jan-11/MR: coded 29-may-14/ccyang: add optional argument communicated

  • name [character,in]

  • index [integer,inout]

  • ind_aux1 [integer,inout,]

  • ind_aux2 [integer,inout,]

  • communicated [logical,in,]

  • rhs [logical,in,]

  • read_from_gpu [logical,in,]

Use :

farraymanager (farray_register_auxiliary(), farray_index_append())

Called from:

register_shock(), initialize_shock()

Call to:

fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/unit_vector(bb, bb_hat)

Compute the unit vector for any given vector bb. Tries to avoid division by zero. Taken from http://nuclear.llnl.gov/CNP/apt/apt/aptvunb.html.

18-oct-11/bing: copied from bb_unitvec_shock in magnetic.f90

Parameters:
  • bb (nx,3) [real,in]

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

Call to:

fatal_error(), der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/calc_del6_for_upwind(f, k, hh, del6f_upwind[, mask])
Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer,in]

  • hh (nx,3) [real,in]

  • del6f_upwind (nx) [real,out]

  • mask [integer,in,]

Use :

deriv (der6(), deri_3d_inds())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind()

Call to:

der6(), deri_3d_inds(), calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/doupwind(f, k, uu, ugradf[, mask])

Calculates upwind correction, works incrementally on ugradf

26-mar-12/MR: outsourced from routines u_dot_grad_mat, u_dot_grad_scl, u_dot_grad_scl_alt

9-apr-12/MR: optional parameter plus added

12-apr-12/MR: optional parameter modified

8-apr-17/wlyra: encapsulated the calculation of del6

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • k [integer]

  • uu (nx,3) [real,in]

  • ugradf (nx) [real,inout]

  • mask [integer,in,]

Called from:

update_char_vel_magnetic(), set_ambipolar_diffusion(), diamagnetism(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), dyadic2_other(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat()

Call to:

calc_del6_for_upwind(), global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/global_mean(f, inda, mean[, indep[, lexp]])

Calculate global mean for a (several) field(s) selected by the index inda (the index range inda - indep) in f.

15-oct-12/MR: adapted from remove_mean 22-aug-13/MR: rewritten into subroutine because of internal compiler error of gfortran 25-aug-13/MR: removed allocatable attribute from mean to adhere to f95

Parameters:
  • f (mx,my,mz,*) [real,in] :: /Hp_ini**2

  • inda [integer,in]

  • mean (1 + - inda) [real,out]

  • indep [integer,in,]

  • lexp [logical,in,]

Use :

mpicomm (mpiallreduce_sum()), general (ioptest(), loptest())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean()

Call to:

global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/remove_mean(f_, inda[, indep[, lexp]])

Substract mean from a (several) field(s) selected by the index inda (the index range inda - indep) in f.

08-may-12/MR: adapted from remove_mean_flow

Parameters:
  • f_ (,,*,*) [real,inout,target]

  • inda [integer,in]

  • indep [integer,in,]

  • lexp [logical,in,]

Use :

mpicomm (mpiallreduce_sum()), general (ioptest()), iso_c_binding

Called from:

register_pscalar(), initialize_pscalar(), init_lncc(), pencil_criteria_pscalar(), pencil_interdep_pscalar(), calc_pencils_pscalar(), calc_diagnostics_pscalar(), dlncc_dt(), read_pscalar_init_pars(), write_pscalar_init_pars(), read_pscalar_run_pars(), write_pscalar_run_pars(), rprint_pscalar(), get_slices_pscalar(), pscalar_before_boundary()

Call to:

global_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/find_max_fvec(f, iv)

Find the maximum of the modulus of a vector field.

19-aug-2011/ccyang: coded 12-sep-2013/MR: outsourced from hydro

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • iv [integer,in]

Return:

find_max_fvec [real]

Use :

mpicomm (mpiallreduce_max(), mpi_comm_pencil())

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics(), debug_imn_arrays(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean()

Call to:

find_rms_fvec(), find_xyrms_fvec(), fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/find_rms_fvec(f, iv)

Find the root-mean-square of the modulus of a vector field.

25-aug-2015/ccyang: coded

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • iv [integer,in]

Return:

find_rms_fvec [real]

Use :

mpicomm (mpiallreduce_sum())

Called from:

pde(), write_diagnostics(), calc_all_module_diagnostic_auxiliaries(), perform_diagnostics(), finalize_diagnostics(), debug_imn_arrays(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean(), find_max_fvec()

Call to:

find_xyrms_fvec(), fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/find_xyrms_fvec(f, iv)

Find the rms magnitude of a vector field in each z.

29-jun-14/ccyang: coded

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • iv [integer,in]

Return:

rms (nz) [real]

Use :

mpicomm (mpiallreduce_sum())

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean(), find_max_fvec(), find_rms_fvec()

Call to:

fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/calc_slope_diff_flux(f, j, h_slope_limited, nlf, div_flux, div_type[, heat[, heat_type[, flux1[, flux2[, flux3]]]]])

Calculate diffusiv flux, divergence of diffusiv flux and the heating (optional) for variables in the f array. setting heat_sl enable heating calculation

13-03-2020/Joern: coded, based on similar routine in special/solar_corona.f90

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • j [integer,in]

  • h_slope_limited [real,in]

  • nlf [real,in]

  • div_flux (nx) [real,out]

  • div_type [character,in]

  • heat (nx) [real,out,]

  • heat_type [character,in,]

  • flux1 (nx) [real,out,]

  • flux2 (nx) [real,out,]

  • flux3 (nx) [real,out,]

Use :

general (keep_compiler_quiet())

Called from:

register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity()

Call to:

fatal_error(), gij(), div_mn(), traceless_strain(), multm2_sym_mn(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/periodic_fold_back(dd, boxsize)

Comment on me!

Parameters:
  • dd (3) [real,inout]

  • boxsize (3) [real,in]

Call to:

gij(), div_mn(), traceless_strain(), multm2_sym_mn(), fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/calc_all_diff_fluxes(f, k, islope_limiter, h_slope_limited)

Calculates all <=3 components of the diffusive flux according to dimensionality.

8-oct-15/MR: carved out from viscosity

Parameters:
  • f (,,*,*) [real,inout] :: /Hp_ini**2

  • k [integer,in]

  • islope_limiter [character,in]

  • h_slope_limited [real,in]

Use :

general (notanumber())

Call to:

gij(), div_mn(), traceless_strain(), multm2_sym_mn(), fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/calc_sij2(f, sij2[, lshear_rateofstrain])

Calculates square of traceless rate-of-strain tensor from f array.

16-dec-16/MR: Outsourced from hydro.

Parameters:
  • f (,,*,*) [real,in,contiguous] :: /Hp_ini**2

  • sij2 (nx) [real,out]

  • lshear_rateofstrain [logical,in,]

Called from:

register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), viscosity_after_boundary()

Call to:

gij(), div_mn(), traceless_strain(), multm2_sym_mn(), fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/traceless_strain(uij[, divu, sij[, uu[, lss]]])

Calculates traceless rate-of-strain tensor sij from derivative tensor uij and divergence divu within each pencil; curvilinear co-ordinates require optional velocity argument uu. In-place operation is possible, i.e. uij and sij may refer to the same array.

16-oct-09/MR: carved out from calc_pencils_hydro 10-apr-11/MR: optional parameter lss added, replaces use of global lshear_rateofstrain

Parameters:
  • uij (nx,3,3) [real,in]

  • divu (nx) [real,in,]

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

  • uu (nx,3) [real]

  • lss [logical,in,]

Use :

general (loptest())

Called from:

register_testflow(), initialize_testflow(), init_uutest(), pencil_criteria_testflow(), pencil_interdep_testflow(), read_testflow_init_pars(), write_testflow_init_pars(), read_testflow_run_pars(), write_testflow_run_pars(), duutest_dt(), get_slices_testflow(), testflow_before_boundary(), calc_ltestflow_nonlin_terms(), register_viscosity(), initialize_viscosity(), read_viscosity_run_pars(), write_viscosity_run_pars(), rprint_viscosity(), pencil_criteria_viscosity(), pencil_interdep_viscosity(), calc_pencils_viscosity(), viscosity_after_boundary(), max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), calc_slope_diff_flux(), periodic_fold_back(), calc_all_diff_fluxes(), calc_sij2()

Call to:

fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/remove_mean_value(f, ind1, ind2)

Substract mean x-flow from the x-velocity field. Useful to avoid unphysical winds in shearing box simulations. Note: this is possibly not useful when there is rotation, because then epicyclic motions don’t usually grow catastrophically.

22-may-07/axel: adapted from remove_mean_momenta 15-dec-10/MR : added parameters indux to make applicable to other … 13-may-18/axel: moved to general, renamed, added end index

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

  • ind1 [integer,in]

  • ind2 [integer,in]

Use :

mpicomm (mpiallreduce_sum())

Call to:

fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/stagger_to_base_interp_1st(f, m, n, fint)

Performs first-order interpolation from the staggered grid to the original one. The interpolation point is the center of the cuboid defined by the intervals (i1-1,i1), (j1-1,j1), (k1-1,k1) of the staggered grid.

10-jul-18/MR: coded

Parameters:
  • f (mx,my,mz) [real,in] :: /Hp_ini**2

  • m [integer,in]

  • n [integer,in] :: position in mn-loop at which interpolation is performed

  • fint (nx) [real,out] :: interpoland

Call to:

fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/stagger_to_base_interp_3rd(f, m, n, fint)

Performs third-order interpolation from the staggered grid to the original one. The interpolation point is the center of the cuboid defined by the intervals (i1-1,i1), (j1-1,j1), (k1-1,k1) of the staggered grid.

10-jul-18/MR: coded

Parameters:
  • f (mx,my,mz) [real,in] :: /Hp_ini**2

  • m [integer,in]

  • n [integer,in] :: position in mn-loop at which interpolation is performed

  • fint (nx) [real,out] :: interpoland

Call to:

fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/vortex(torus, omega, vel)

Creates a velocity vortex vel as a circular torus with rectangular cross-section from the geometry provided in torus and with the angular velocity Omega. The torus axis may precess and the torus position wobble.

6-May-20/MR: coded

Parameters:
Use :

geometrical_types, general (transform_cart_spher(), transform_spher_cart())

Call to:

fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/smoothing_kernel(kernel[, lgaussian[, weights_[, smth_wid]]])

24-aug-02/fred&matthias: coded

Parameters:
  • kernel (,,*) [real,out]

  • lgaussian [logical,in,]

  • weights_ (*) [real,in,]

  • smth_wid [integer,in,] :: width of the smoothing array

Use :

general (loptest())

Called from:

register_shock(), initialize_shock()

Call to:

fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

subroutine  sub/calc_scl_factor()

Calculate scale factor of the universe. Read file upon first entry. Incorporated most of the stuff from special/gravitational_waves_hTXk.f90 but omitted everything that had to do with “Om*” The results of this are used in are used in src/special/disp_current.f90. This routine is independent of the routine src/special/Lambda_CDM.f90, which integrates ascale, Hubble, and tphys that are used in other routines.

Use :

cdata (lread_scl_factor_file_new(), ip(), lroot(), t(), tmax(), scl_factor_target(), hp_target(), appa_target(), wweos_target()), messages (fatal_error()), gpu (update_on_gpu())

Called from:

helper_loop(), reload(), gen_output(), timeloop(), start

Call to:

fatal_error(), update_on_gpu(), get_dxyzs(), mpiabort()

function  sub/get_dxyzs()
Return:

res [real]

Called from:

max_mn(), sum_mn(), dot_mn(), vec_dot_3tensor(), matrix2linarray(), linarray2matrix(), inv2_3x3mat(), scalartripleproduct(), det3x3mat(), dot_mn_sv(), dot_mn_sv_pencil(), dot_mn_sm(), dot_mn_vm(), dot_mn_vm_trans(), dot2_mn(), dot2_mx(), dot2fj(), dyadic2(), trace_mn(), mult_matrix(), multm2_mn(), multm2_sym_mn(), multmv_mn(), invmat_db(), multsv_mn(), multsv_mn_add(), multsm_mn(), cross_mn(), cross_mixed(), gij(), gij_v_times_s(), gijl_symmetric(), grad5(), div(), div_tensor(), div_other(), div_mn(), div_mn_2tensor(), curl_mn(), curl_horizontal(), curl(), curl_other(), curli(), del2v(), del2m3x3_sym(), del2fj(), del2fi_dxjk(), d2fi_dxj(), symmetrise3x3_ut2lt(), del2v_etc(), del2vi_etc(), del4v(), del6v(), bij_tilde(), gij_etc(), g2ij(), del4(), del6(), del6_strict(), del4graddiv(), del6_other(), del6fj(), del6fjv(), u_dot_grad_mat(), nou_dot_grad_scl(), h_dot_grad_vec(), gradf_upw1st(), rdim(), read_snaptime(), update_snaptime(), shift_dt(), set_next_dt(), set_dt(), vecout(), vecout_initialize(), vecout_finalize(), despike(), smooth_kernel(), smooth(), smooth_mn(), get_smooth_kernel(), eulag_filter(), identify_bcs(), lower_triangular_index(), step_vector(), der6_step(), stepdown(), der_stepdown(), coeff_ydep(), parse_bc(), inverse_parse_bc(), parse_bc_rad(), parse_bc_radg(), parse_shell(), control_file_exists(), read_line_from_file(), get_nseed(), get_where(), write_dx_general(), write_zprof(), write_yprof(), write_xprof(), remove_prof(), blob(), blobs(), gamma_function(), tensor_diffusion_coef(), get_radial_distance(), interp1(), bspline_basis(), bspline_interpolation(), bspline_precondition(), ludcmp(), lubksb(), gij_psi(), gij_psi_etc(), location_in_proc(), xlocation(), ylocation(), zlocation(), position(), fourier_single_mode(), register_report_aux(), unit_vector(), calc_del6_for_upwind(), doupwind(), global_mean(), remove_mean(), find_max_fvec(), find_rms_fvec(), find_xyrms_fvec(), calc_slope_diff_flux(), periodic_fold_back(), calc_all_diff_fluxes(), calc_sij2(), traceless_strain(), remove_mean_value(), stagger_to_base_interp_1st(), stagger_to_base_interp_3rd(), vortex(), smoothing_kernel(), calc_scl_factor()

Call to:

mpiabort()