ORB5  v4.9.4
equil.F90 File Reference
#include "precomp.h"
+ Include dependency graph for equil.F90:

Data Types

interface  equil_mod::sc2xy
 
interface  equil_mod::get_gradients
 

Modules

module  equil_mod
 

Functions/Subroutines

subroutine equil_mod::norm1
 
subroutine, public equil_mod::equil_backfields (s, chi, pot, es, echi)
 
subroutine, public equil_mod::equil_backfields1d (psi, pot, epsi)
 
real function, dimension(size(quant_list, 1)) equil_mod::equil_quants (s, chi, quant_list)
 
pure real function, public equil_mod::equil_absb (s, chi)
 Returns the norm of the equilibrium magnetic field. More...
 
subroutine equil_mod::equil_comps (s, chi, comp_no, out)
 
subroutine, public equil_mod::bderivs (s, chi, dBds, dBdchi, absb)
 
real function, public equil_mod::equil_dmaxb (st)
 
real function, public equil_mod::equil_maxb (st)
 
real function, public equil_mod::equil_addpbst (s, chi)
 
real function, public equil_mod::equil_tprime (s, chi)
 
pure real function, public equil_mod::equil_tob (s, chi)
 Returns R*B_tor/B. More...
 
real function, public equil_mod::equil_s (px, py)
 
subroutine, public equil_mod::sc2xy (s, theta, x, y)
 
subroutine equil_mod::sc2xyn (s, theta, x, y, n)
 
subroutine, public equil_mod::sc2xy_sincos (s, cost, sint, x, y)
 
subroutine, public equil_mod::sc2xy_chease (s, theta, x, y)
 
subroutine, public equil_mod::xy2sc (x, y, s, chi_out)
 
real function, dimension(2), public equil_mod::get_comp (s, chi)
 
real function, dimension(2), public equil_mod::get_gradpsi (px, py)
 
real function, dimension(2), public equil_mod::get_gradb (px, py)
 
pure subroutine equil_mod::get_gradients1 (s, chi, grads, gradchi, gradphi)
 
pure subroutine equil_mod::get_gradientsn (s, chi, n, grads, gradchi, gradphi)
 
real function, dimension(2), public equil_mod::get_grhphi (px, py)
 
real function, public equil_mod::equil_brotb (s, chi)
 
real function, public equil_mod::jacob (s, chi)
 
real function, public equil_mod::jacobderivative (s, chi)
 
real function, public equil_mod::jacob_tsp (s, chi)
 
subroutine equil_mod::init_profiles
 Define equilibrium profiles (density, temperature and parallel momentum) More...
 
real function equil_mod::profile_i (st, kappa_x, width, peak, grad)
 
subroutine equil_mod::normalize_profiles
 
subroutine equil_mod::set_profiles_mks
 
subroutine equil_mod::get_nbars (isp, cnorm, cnorm2)
 Calculate average density value \bar{n} for normalization. More...
 
subroutine equil_mod::calculate_other_normalizations
 
subroutine equil_mod::calculate_ubulk
 Calculate the ubulk and ubulk_prime look up tables. More...
 
subroutine equil_mod::adjust_svol_min_max
 Readjust svol_min and svol_max to grid points. More...
 
subroutine equil_mod::impose_quasineutrality
 
subroutine equil_mod::impose_quasineutrality_mks
 
real function equil_mod::sech (x)
 
subroutine, public equil_mod::profiles_sh (isp, psi, nishval)
 
subroutine, public equil_mod::profiles (isp, psi, tval, tgrad, nval, ngrad, vpval, vpgrad)
 Get equilibrium profiles and gradients. More...
 
subroutine equil_mod::read_equil_ah
 
subroutine equil_mod::s2rad_mhd (ps, prad, pdrds)
 Compute s->rho_vol by linear interpolation with CHEASE grids. More...
 
subroutine equil_mod::s2rad_adhoc (ps, prad, pdrds)
 Compute s->rho_vol analytically according to q-profile. More...
 
subroutine, public equil_mod::s2rad (ps, prad, pdrds)
 Convert \(s=\sqrt(\psi/\psi_{edge})\) in \(\rho/a_{mid}\) and gives \(d(\rho/a_{mid})/ds\). More...
 
real function, public equil_mod::get_psi_of_r (zrho)
 
real function, public equil_mod::func_sigma (ss)
 
real function, public equil_mod::func_sigmab (ss)
 
real function, public equil_mod::func_sigmatprimeob (ss)
 
real function, public equil_mod::func_b_pszs (ss)
 
real function, public equil_mod::func_tprimeob_pszs (ss)
 
real function, public equil_mod::fitbound_v (zr)
 
real function, public equil_mod::equil_hchi (s, chi)
 
subroutine, public equil_mod::equil_h (px, py, h)
 
real function equil_mod::get_rho (s, theta)
 
subroutine, public equil_mod::qchi (radvar, qout, strsel)
 Get q profile by linear interpolation. More...
 
real function, public equil_mod::s_of_q (zq)
 
subroutine, public equil_mod::get_qmin (sqmin, qmin)
 
real function, public equil_mod::get_vth_psi (zpsit, isp)
 
subroutine equil_mod::int_jacob
 
subroutine equil_mod::allocate_flux_bins
 Allocate arrays for bin volumes, surfaces, etc. More...
 
subroutine equil_mod::calculate_vol_coord
 
subroutine equil_mod::build_zpsi_grd
 Build psi grid for the binning. More...
 
subroutine equil_mod::build_bin_vol
 Compute volume and surface of a radial bin. More...
 
subroutine equil_mod::bin_vol_loop (i, zirqpts, zqp, zqw, zdtheta, ztheta_grd)
 
subroutine equil_mod::build_zpsi_grd_island
 
subroutine equil_mod::init_jacobian_island
 
real function, public equil_mod::gtgp_xy (px, py)
 
real function, public equil_mod::func_torpsi (ss)
 Get toroidal flux. More...
 
subroutine, public equil_mod::init_dens_profile (worktype, isp, zf_av, z_den)
 
subroutine equil_mod::dump_equil
 Write equilibrium quantities in the hdf5 file format. More...
 
real function, public equil_mod::func_alphab_fsa (ss)
 
subroutine, public equil_mod::create_equil
 
subroutine, public equil_mod::equil_aux
 
real function, public equil_mod::get_chi (s, theta)
 
subroutine equil_mod::make_equil_sc_coeff
 
subroutine equil_mod::make_equil_strong
 Computes quantities needed during time evolution on a (s,chi) grid. More...
 
subroutine equil_mod::coeff_axis
 
subroutine, public equil_mod::get_fdfds (s, F, dFds)
 
subroutine, public equil_mod::get_rz (s, chi, r, z)
 
real function, public equil_mod::get_theta (s, chi)
 
subroutine, public equil_mod::equil_coef_sc (s, chi, zr, zpsidr, zpsidz, zB, zhchi, zhphi, zgrB, addpchi, addpphi, brotb, divh, grads, gradchi)
 
pure subroutine, public equil_mod::equil_move_sc (s, chi, zr, ztprime, zB, zgrB, zdivh, zh, addpBst, addp, exh, ztsubB, addvpa)
 Compute quantities in curvilinear coordinates needed during time evolution by bilinear interpolation. More...
 
subroutine, public equil_mod::get_larm_coeff (s, chi, larmsc, larmchic, larmchis)
 
subroutine, public equil_mod::get_larm_coeffn (s, chi, larmsc, larmchic, larmchis)
 Compute coefficients for particle position by bilinear interpolation. More...
 
real function, public equil_mod::calc_ftrap (s, theta, itrap)
 Local fraction of trapped particles. More...
 
subroutine equil_mod::create_psi
 
subroutine equil_mod::qbar (zrad, zq, zdqdrad)
 Get pseudo-safety factor and its derivative. More...
 
subroutine equil_mod::read_equil_cpo
 
subroutine inv2mat (um)
 
subroutine gderiv_psi (fun, dfun)
 
subroutine gderiv_psi1 (fun, dfun)
 
subroutine gderiv_chi (fun, dfun)
 
subroutine getx (x1, y1, y, x)
 
subroutine reint_1d (x1, x2, y1, y2)
 
subroutine, public equil_mod::read_equil_hdf5
 
subroutine equil_mod::make_equil_sc_coeff_chease
 
subroutine equil_mod::set_back_pot
 Set the background potential: various options depending on input flags. More...
 
subroutine, public equil_mod::make_toroidal_flow_potential (potential, write_exb_diagnostics, time)
 Load a toroidal angular frequency profile given as an arbitrary set of points, and calculate the background potential to give this rotation. Toroidal rotation profile specified in prof_file (/data/omega), with npsi_profile points (in /data/NPSI). Omega should be in units of radians/cyclotron frequency. Designed for general coordinate system and doesn't make large-aspect ratio assumptions. Uses the following input parameters: nsel_pot_profile=NSEL_POT_PROF_FILE, flow_scale, prof_file. More...
 
subroutine rk4 (y, x, yout)
 Integrate radial electric field to get potential using rk4. More...
 
real function grad_pot (s)
 interpolated derivative of potential More...
 
subroutine equil_mod::load_omega ()
 
real function, public equil_mod::equil_pp (s)
 
real function, public equil_mod::equil_ubulk (s_val, isp)
 
real function, public equil_mod::equil_ubulk_prime (s_val, isp)
 
subroutine equil_mod::load_profiles (isp)
 
subroutine equil_mod::get_nref
 
subroutine, public equil_mod::compute_bin_vol (stmin, zds, stbin, chitmin, zdchi, chitbin, zdphi)
 
pure integer function equil_mod::find_chease_s_index (imap, s)
 Given a value of s, and an initial guess, find the index of the closest value in S_CHEASE. More...
 
pure integer function equil_mod::find_index (dumarray, imap, s)
 Given a value, and an initial guess, find the index of the closest value in a CHEASE array. More...
 
pure integer function equil_mod::find_chease_chi_index (imap, cchi)
 Given a value of chi, and an initial guess, find the index of the closest value in CHI_CHEASE. More...
 
subroutine, public equil_mod::equil_move_strong (s, chi, due2dsigma, due2dchi, dBdsigma, dBdchi)
 
subroutine, public equil_mod::equil_pot (sigmat, chi, es_back)
 
subroutine, public equil_mod::back_vel_mod (sigmat, chi, vexb2)
 
subroutine equil_mod::back_vel_diff (sigmat, chi, due2dsigma, due2dchi)
 
subroutine, public equil_mod::equil_perp_vec (s, chi, hy, hz, grsigma2, grchi2, grsigmagrchi, J_s, r)
 
subroutine, public equil_mod::curl_ue (sigmat, chi, X, Y, Z)
 
subroutine, public equil_mod::back_vel_tor (sigmat, chi, ue_phi)
 
subroutine, public equil_mod::equil_strong_vdr (sigmat, chi, duphidpsi, duphidchi)
 
subroutine equil_mod::dump_equil_strong
 
subroutine equil_mod::set_n_corr
 
subroutine equil_mod::set_corr_axis
 
pure subroutine, public equil_mod::getdn_corr (psit, dncorr)
 
real function, public equil_mod::getdens_corr (psit)
 
subroutine equil_mod::read_equil_ntprofiles
 
subroutine, public equil_mod::acc_update_device_equil_variables
 

Variables

integer, parameter equil_mod::nequ_qtt =28
 
integer, parameter equil_mod::nequ_qtt_sc =51
 
integer, parameter equil_mod::nequ_qtt_sc_chease =18
 
integer, parameter equil_mod::nequ_isl =5
 
integer, parameter equil_mod::nequ_1d =4
 
real, parameter equil_mod::extent =0.1
 
real, parameter equil_mod::equ_grid_offset = 1.5
 
integer, parameter equil_mod::equ_grid_lw = 2
 
integer, parameter equil_mod::equ_grid_hi = 1
 
integer, save equil_mod::nrho
 
integer, save equil_mod::nrho_q
 
integer, save equil_mod::n1dprof_pt
 
integer, save, public equil_mod::ngmax
 
integer, save equil_mod::ngmaxtheta
 
integer, dimension(:), allocatable, save, public equil_mod::jchiin
 
integer, dimension(:), allocatable, save, public equil_mod::jchiin0
 
integer, save, public equil_mod::ichimin
 
integer, save, public equil_mod::ichimax
 
integer, save, public equil_mod::ichimin0
 
integer, save, public equil_mod::ichimax0
 
real, save equil_mod::drho
 
real, save equil_mod::drho_inv
 
real, save equil_mod::drho_q
 
real, save equil_mod::drho_q_inv
 
real, save equil_mod::gea_midn
 
real, save, public equil_mod::xmag
 
real, save, public equil_mod::ymag
 
real, save, public equil_mod::rhfs
 
real, save, public equil_mod::c_psi0corr
 
real, save, public equil_mod::psi0
 
real, save equil_mod::e_mid =1.0
 
real, save equil_mod::ds
 
real, save, public equil_mod::ds_inv
 
real, save equil_mod::dth
 
real, save equil_mod::dth_inv
 
real, dimension(:), allocatable, save, public equil_mod::volps
 
real, dimension(:), allocatable, save, public equil_mod::voltor
 
real, dimension(:), allocatable, save, public equil_mod::voltor_inv
 
real, dimension(:), allocatable, save, public equil_mod::volanu
 
real, dimension(:), allocatable, save, public equil_mod::voldiag
 
real, dimension(:), allocatable, save, public equil_mod::pvol_norm
 
real, dimension(:), allocatable, save, public equil_mod::ekinps
 
real, dimension(:), allocatable, save, public equil_mod::volps_tr
 
real, dimension(:), allocatable, save, public equil_mod::pvol_norm_tr
 
real, dimension(:), allocatable, save, public equil_mod::ekinps_tr
 
real, save equil_mod::rmajor
 
real, save equil_mod::zmajor
 
real, save equil_mod::edge_rmin
 
real, save equil_mod::edge_rmax
 
real, save equil_mod::edge_zmin
 
real, save equil_mod::edge_zmax
 
real, save, public equil_mod::b_norm
 
real, save, public equil_mod::d_norm
 
real, save equil_mod::t_norm
 
real, save, public equil_mod::ger_min
 
real, save, public equil_mod::ger_max
 
real, save, public equil_mod::gez_min
 
real, save equil_mod::gez_max
 
real, save, public equil_mod::gedr
 
real, save, public equil_mod::gedz
 
real, save, public equil_mod::gedr_inv
 
real, save, public equil_mod::gedz_inv
 
real, save equil_mod::geds
 
real, save equil_mod::gedc
 
real, save equil_mod::geds_inv
 
real, save equil_mod::gedc_inv
 
real, save, public equil_mod::fpsin
 
real, save, public equil_mod::a_midn
 
real, save equil_mod::r0_midn
 
real, save, public equil_mod::bmin_c
 
real, save, public equil_mod::bmax_c
 
real, save, public equil_mod::fonbmax_c
 
real, save, public equil_mod::fonbmin_c
 
real, dimension(:,:,:), allocatable, save, public equil_mod::a_equ
 
real, dimension(:,:,:), allocatable, save equil_mod::c_equ
 
real, dimension(:,:,:), allocatable, save equil_mod::d_equ
 
real, dimension(:,:,:), allocatable, save equil_mod::e_equ
 
real, dimension(:,:), allocatable, target, save equil_mod::a_1dprof
 
real, dimension(:), allocatable, save equil_mod::psi_of_r
 
real, dimension(:), allocatable, save equil_mod::qs
 
real, dimension(:), allocatable, save equil_mod::dqsdr
 
real, dimension(:), allocatable, save, public equil_mod::thgrid_eq
 
real, dimension(:), allocatable, save, public equil_mod::sgrid_eq
 
real, dimension(:,:), allocatable, save equil_mod::rhotab
 
real, dimension(:,:), allocatable, save equil_mod::lambdatab
 
real, dimension(:,:), allocatable, save, public equil_mod::sigmas
 
real, dimension(:), allocatable, save equil_mod::alphab_fsa
 
real, dimension(:), allocatable, save, public equil_mod::alphain
 
real, dimension(:), allocatable, save, public equil_mod::alphain0
 
real, save, public equil_mod::chibmin
 
real, save, public equil_mod::chibmax
 
real, save, public equil_mod::chibmin0
 
real, save, public equil_mod::chibmax0
 
real, save equil_mod::q_fact1
 
real, save equil_mod::q_fact2
 
real, save equil_mod::corr_axis
 
real, dimension(:,:), allocatable, save equil_mod::chigtab
 
real, save equil_mod::dpsi_0
 
real, save equil_mod::dpsi_0inv
 
real, dimension(:), allocatable, save equil_mod::psi_grd
 
real, dimension(:), allocatable, save equil_mod::rho_tor_norm
 
real, dimension(:), allocatable, save equil_mod::drho_tor_norm
 
real, dimension(:,:), allocatable, save equil_mod::t_pic
 
real, dimension(:,:), allocatable, save equil_mod::gradt_pic
 
real, dimension(:,:), allocatable, save equil_mod::t_pic_mks
 
real, dimension(:,:), allocatable, save equil_mod::n_pic
 
real, dimension(:,:), allocatable, save equil_mod::gradn_pic
 
real, dimension(:,:), allocatable, save equil_mod::n_pic_mks
 
real, dimension(:), allocatable, save equil_mod::ni_shield
 
real, dimension(:), allocatable, save equil_mod::lx_pic
 
real, dimension(:), allocatable, save equil_mod::zeff_pic
 
real, dimension(:), allocatable, save equil_mod::zefftmp_pic
 
real, dimension(:), allocatable, save equil_mod::beta_pic
 
real, dimension(:,:), allocatable, save equil_mod::vp_pic
 
real, dimension(:,:), allocatable, save equil_mod::gradvp_pic
 
real, dimension(:), allocatable, save equil_mod::gradgradne
 
real, dimension(:), allocatable, save equil_mod::n_corr
 
real, dimension(:), allocatable, save, public equil_mod::bin_vol
 
real, dimension(:,:), allocatable, save, public equil_mod::bin_vol_2d
 
real, dimension(:,:), allocatable, save, public equil_mod::bin_vol_3d_inv
 
real, dimension(:,:), allocatable, save, public equil_mod::bin_vol_3d
 
real, dimension(:), allocatable, save equil_mod::bin_helical_ti
 
real, dimension(:), allocatable, save equil_mod::bin_helical_ni
 
real, dimension(:), allocatable, save equil_mod::psi_av
 
real, dimension(:,:), allocatable, save equil_mod::psi_av_hel
 
real, dimension(:,:), allocatable, save equil_mod::bin_vol_hel
 
real, dimension(:), allocatable, save, public equil_mod::bin_surf
 
real, dimension(:), allocatable, save, public equil_mod::nbar
 
real, dimension(:), allocatable, save equil_mod::tbar
 
real, dimension(:), allocatable, save equil_mod::nbar_anu
 
real, dimension(:), allocatable, save equil_mod::torpsitab
 
real, dimension(:), allocatable, save, public equil_mod::zpsi_grd
 
real, dimension(:), allocatable, save, public equil_mod::psihe_grd
 
real, save, public equil_mod::psires
 
real, save, public equil_mod::psihes
 
real, save, public equil_mod::width_is
 
integer, save, public equil_mod::znin
 
integer, save, public equil_mod::znisl
 
integer, save, public equil_mod::znout
 
integer equil_mod::hdf5_ioutgyro
 
real, dimension(:), allocatable, save equil_mod::p_psi
 
real, dimension(:), allocatable, save equil_mod::dpdpsi
 
real, dimension(:), allocatable, save equil_mod::f_psi
 
real, dimension(:), allocatable, save equil_mod::fdfdpsi
 
real, dimension(:), allocatable, save equil_mod::q_psi
 
real, dimension(:), allocatable, save equil_mod::dqdpsi
 
real, dimension(:), allocatable, save equil_mod::psi_chease
 
real, dimension(:), allocatable, save equil_mod::chi_chease
 
real, dimension(:), allocatable, save equil_mod::s_chease
 
real, dimension(:), allocatable, save equil_mod::rgeom
 
real, dimension(:), allocatable, save equil_mod::ageom
 
real, dimension(:), allocatable, save equil_mod::kappae
 
real, dimension(:), allocatable, save equil_mod::bmax_s
 
real, dimension(:), allocatable, save equil_mod::volume
 
real, dimension(:), allocatable, save equil_mod::psinorm_chease
 
real, dimension(:), allocatable, save equil_mod::rhovnorm_chease
 
real, dimension(:), allocatable, save equil_mod::drhovnormds_chease
 
real, dimension(:), allocatable, save equil_mod::mhdti
 
real, dimension(:), allocatable, save equil_mod::mhdte
 
real, dimension(:), allocatable, save equil_mod::mhdn
 
real, dimension(:,:), allocatable, save equil_mod::ubulk_s
 
real, dimension(:,:), allocatable, save equil_mod::ubulk_prime_s
 
real, dimension(:), allocatable, save equil_mod::pot_back
 
real, dimension(:), allocatable, save equil_mod::int1
 
real, public equil_mod::zdpsi_0
 
integer, dimension(:), allocatable, save equil_mod::profile_grid
 
integer, parameter equil_mod::psi_g =0
 
integer, parameter equil_mod::sigma_g =1
 
integer, parameter equil_mod::rho_g =2
 

Function/Subroutine Documentation

◆ gderiv_chi()

subroutine read_equil_cpo::gderiv_chi ( real, dimension(0:,:), intent(in)  fun,
real, dimension(0:,:), intent(out)  dfun 
)
private
+ Here is the caller graph for this function:

◆ gderiv_psi()

subroutine read_equil_cpo::gderiv_psi ( real, dimension(0:,:), intent(in)  fun,
real, dimension(0:,:), intent(out)  dfun 
)
private
+ Here is the caller graph for this function:

◆ gderiv_psi1()

subroutine read_equil_cpo::gderiv_psi1 ( real, dimension(0:), intent(in)  fun,
real, dimension(0:), intent(out)  dfun 
)
private
+ Here is the caller graph for this function:

◆ getx()

subroutine read_equil_cpo::getx ( real, dimension(:), intent(in)  x1,
real, dimension(:), intent(in)  y1,
real, intent(in)  y,
real, intent(out)  x 
)
private

◆ grad_pot()

real function make_toroidal_flow_potential::grad_pot ( real, intent(in)  s)
private

interpolated derivative of potential

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ inv2mat()

subroutine read_equil_cpo::inv2mat ( real, dimension(2,2)  um)
+ Here is the caller graph for this function:

◆ reint_1d()

subroutine read_equil_cpo::reint_1d ( real, dimension(:), intent(in)  x1,
real, dimension(:), intent(in)  x2,
real, dimension(:), intent(in)  y1,
real, dimension(:), intent(out)  y2 
)
private

◆ rk4()

subroutine make_toroidal_flow_potential::rk4 ( real, intent(in)  y,
real, intent(in)  x,
real, intent(out)  yout 
)

Integrate radial electric field to get potential using rk4.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: