ORB5  4.00
Loading...
Searching...
No Matches
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(kind=r8) function, dimension(size(quant_list, 1)) equil_mod::equil_quants (s, chi, quant_list)
pure real(kind=r8) function, public equil_mod::equil_absb (s, chi)
 Returns the norm of the equilibrium magnetic field.
subroutine equil_mod::equil_comps (s, chi, comp_no, out)
subroutine, public equil_mod::bderivs (s, chi, dbds, dbdchi, absb)
real(kind=r8) function, public equil_mod::equil_dmaxb (st)
real(kind=r8) function, public equil_mod::equil_maxb (st)
real(kind=r8) function, public equil_mod::equil_addpbst (s, chi)
real(kind=r8) function, public equil_mod::equil_tprime (s, chi)
pure real(kind=r8) function, public equil_mod::equil_tob (s, chi)
 Returns R*B_tor/B.
real(kind=r8) 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(kind=r8) function, dimension(2), public equil_mod::get_comp (s, chi)
real(kind=r8) function, dimension(2), public equil_mod::get_gradpsi (px, py)
real(kind=r8) 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(kind=r8) function, dimension(2), public equil_mod::get_grhphi (px, py)
real(kind=r8) function, public equil_mod::equil_brotb (s, chi)
real(kind=r8) function, public equil_mod::jacob (s, chi)
real(kind=r8) function, public equil_mod::jacobderivative (s, chi)
real(kind=r8) function, public equil_mod::jacob_tsp (s, chi)
subroutine equil_mod::init_profiles
 Define equilibrium profiles (density, temperature and parallel momentum).
real(kind=r8) 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.
subroutine equil_mod::calculate_other_normalizations
subroutine equil_mod::calculate_ubulk
 Calculate the ubulk and ubulk_prime look up tables.
subroutine equil_mod::adjust_svol_min_max
 Readjust svol_min and svol_max to grid points.
subroutine equil_mod::impose_quasineutrality
subroutine equil_mod::impose_quasineutrality_mks
real(kind=r8) 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.
subroutine equil_mod::read_equil_ah
subroutine equil_mod::s2rad_mhd (ps, prad, pdrds)
 Compute s->rho_vol by linear interpolation with CHEASE grids.
subroutine equil_mod::s2rad_adhoc (ps, prad, pdrds)
 Compute s->rho_vol analytically according to q-profile.
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\).
real(kind=r8) function, public equil_mod::get_psi_of_r (zrho)
real(kind=r8) function, public equil_mod::func_sigma (ss)
real(kind=r8) function, public equil_mod::func_sigmab (ss)
real(kind=r8) function, public equil_mod::func_sigmatprimeob (ss)
real(kind=r8) function, public equil_mod::func_b_pszs (ss)
real(kind=r8) function, public equil_mod::func_tprimeob_pszs (ss)
real(kind=r8) function, public equil_mod::fitbound_v (zr)
real(kind=r8) function, public equil_mod::equil_hchi (s, chi)
subroutine, public equil_mod::equil_h (px, py, h)
real(kind=r8) function equil_mod::get_rho (s, theta)
subroutine, public equil_mod::qchi (radvar, qout, strsel)
 Get q profile by linear interpolation.
real(kind=r8) function, public equil_mod::s_of_q (zq)
subroutine, public equil_mod::get_qmin (sqmin, qmin)
real(kind=r8) 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.
subroutine equil_mod::calculate_vol_coord
subroutine equil_mod::build_zpsi_grd
 Build psi grid for the binning.
subroutine equil_mod::build_bin_vol
 Compute volume and surface of a radial bin.
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(kind=r8) function, public equil_mod::gtgp_xy (px, py)
real(kind=r8) function, public equil_mod::func_torpsi (ss)
 Get toroidal flux.
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.
real(kind=r8) function, public equil_mod::func_alphab_fsa (ss)
subroutine, public equil_mod::create_equil
subroutine, public equil_mod::equil_aux
real(kind=r8) 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.
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(kind=r8) 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.
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.
real(kind=r8) function, public equil_mod::calc_ftrap (s, theta, itrap)
 Local fraction of trapped particles.
subroutine equil_mod::create_psi
subroutine equil_mod::qbar (zrad, zq, zdqdrad)
 Get pseudo-safety factor and its derivative.
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.
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.
subroutine rk4 (y, x, yout)
 Integrate radial electric field to get potential using rk4.
real(kind=r8) function grad_pot (s)
 interpolated derivative of potential
subroutine equil_mod::load_omega ()
real(kind=r8) function, public equil_mod::equil_pp (s)
real(kind=r8) function, public equil_mod::equil_ubulk (s_val, chi_val, isp)
real(kind=r8) function, public equil_mod::equil_ubulk_prime (s_val, chi_val, isp)
real(kind=r8) function, public equil_mod::equil_ubulk_dchi (s_val, chi_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.
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.
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.
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(kind=r8) 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(kind=r8), parameter equil_mod::extent =0.1_r8
real(kind=r8), parameter equil_mod::equ_grid_offset = 1.5_r8
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(kind=r8), save equil_mod::drho
real(kind=r8), save equil_mod::drho_inv
real(kind=r8), save equil_mod::drho_q
real(kind=r8), save equil_mod::drho_q_inv
real(kind=r8), save equil_mod::gea_midn
real(kind=r8), save, public equil_mod::xmag
real(kind=r8), save, public equil_mod::ymag
real(kind=r8), save, public equil_mod::rhfs
real(kind=r8), save, public equil_mod::c_psi0corr
real(kind=r8), save, public equil_mod::psi0
real(kind=r8), save equil_mod::e_mid =1.0_r8
real(kind=r8), save equil_mod::ds
real(kind=r8), save, public equil_mod::ds_inv
real(kind=r8), save equil_mod::dth
real(kind=r8), save equil_mod::dth_inv
real(kind=r8), dimension(:), allocatable, save, public equil_mod::volps
real(kind=r8), dimension(:), allocatable, save, public equil_mod::voltor
real(kind=r8), dimension(:), allocatable, save, public equil_mod::voltor_inv
real(kind=r8), dimension(:), allocatable, save, public equil_mod::volanu
real(kind=r8), dimension(:), allocatable, save, public equil_mod::voldiag
real(kind=r8), dimension(:), allocatable, save, public equil_mod::pvol_norm
real(kind=r8), dimension(:), allocatable, save, public equil_mod::ekinps
real(kind=r8), dimension(:), allocatable, save, public equil_mod::volps_tr
real(kind=r8), dimension(:), allocatable, save, public equil_mod::pvol_norm_tr
real(kind=r8), dimension(:), allocatable, save, public equil_mod::ekinps_tr
real(kind=r8), save equil_mod::rmajor
real(kind=r8), save equil_mod::zmajor
real(kind=r8), save equil_mod::edge_rmin
real(kind=r8), save equil_mod::edge_rmax
real(kind=r8), save equil_mod::edge_zmin
real(kind=r8), save equil_mod::edge_zmax
real(kind=r8), save, public equil_mod::b_norm
real(kind=r8), save, public equil_mod::d_norm
real(kind=r8), save equil_mod::t_norm
real(kind=r8), save, public equil_mod::ger_min
real(kind=r8), save, public equil_mod::ger_max
real(kind=r8), save, public equil_mod::gez_min
real(kind=r8), save equil_mod::gez_max
real(kind=r8), save, public equil_mod::gedr
real(kind=r8), save, public equil_mod::gedz
real(kind=r8), save, public equil_mod::gedr_inv
real(kind=r8), save, public equil_mod::gedz_inv
real(kind=r8), save equil_mod::geds
real(kind=r8), save equil_mod::gedc
real(kind=r8), save equil_mod::geds_inv
real(kind=r8), save equil_mod::gedc_inv
real(kind=r8), save, public equil_mod::fpsin
real(kind=r8), save, public equil_mod::a_midn
real(kind=r8), save equil_mod::r0_midn
real(kind=r8), save, public equil_mod::bmin_c
real(kind=r8), save, public equil_mod::bmax_c
real(kind=r8), save, public equil_mod::fonbmax_c
real(kind=r8), save, public equil_mod::fonbmin_c
real(kind=r8), dimension(:,:,:), allocatable, save, public equil_mod::a_equ
real(kind=r8), dimension(:,:,:), allocatable, save equil_mod::c_equ
real(kind=r8), dimension(:,:,:), allocatable, save equil_mod::d_equ
real(kind=r8), dimension(:,:,:), allocatable, save equil_mod::e_equ
real(kind=r8), dimension(:,:), allocatable, target, save equil_mod::a_1dprof
real(kind=r8), dimension(:), allocatable, save equil_mod::psi_of_r
real(kind=r8), dimension(:), allocatable, save equil_mod::qs
real(kind=r8), dimension(:), allocatable, save equil_mod::dqsdr
real(kind=r8), dimension(:), allocatable, save, public equil_mod::thgrid_eq
real(kind=r8), dimension(:), allocatable, save, public equil_mod::sgrid_eq
real(kind=r8), dimension(:,:), allocatable, save equil_mod::rhotab
real(kind=r8), dimension(:,:), allocatable, save equil_mod::lambdatab
real(kind=r8), dimension(:,:), allocatable, save, public equil_mod::sigmas
real(kind=r8), dimension(:), allocatable, save equil_mod::alphab_fsa
real(kind=r8), dimension(:), allocatable, save, public equil_mod::alphain
real(kind=r8), dimension(:), allocatable, save, public equil_mod::alphain0
real(kind=r8), save, public equil_mod::chibmin
real(kind=r8), save, public equil_mod::chibmax
real(kind=r8), save, public equil_mod::chibmin0
real(kind=r8), save, public equil_mod::chibmax0
real(kind=r8), save equil_mod::q_fact1
real(kind=r8), save equil_mod::q_fact2
real(kind=r8), save equil_mod::corr_axis
real(kind=r8), dimension(:,:), allocatable, save equil_mod::chigtab
real(kind=r8), save equil_mod::dpsi_0
real(kind=r8), save equil_mod::dpsi_0inv
real(kind=r8), dimension(:), allocatable, save equil_mod::psi_grd
real(kind=r8), dimension(:), allocatable, save equil_mod::rho_tor_norm
real(kind=r8), dimension(:), allocatable, save equil_mod::drho_tor_norm
real(kind=r8), dimension(:,:), allocatable, save equil_mod::t_pic
real(kind=r8), dimension(:,:), allocatable, save equil_mod::gradt_pic
real(kind=r8), dimension(:,:), allocatable, save equil_mod::t_pic_mks
real(kind=r8), dimension(:,:), allocatable, save equil_mod::n_pic
real(kind=r8), dimension(:,:), allocatable, save equil_mod::gradn_pic
real(kind=r8), dimension(:,:), allocatable, save equil_mod::n_pic_mks
real(kind=r8), dimension(:), allocatable, save equil_mod::ni_shield
real(kind=r8), dimension(:), allocatable, save equil_mod::lx_pic
real(kind=r8), dimension(:), allocatable, save equil_mod::zeff_pic
real(kind=r8), dimension(:), allocatable, save equil_mod::zefftmp_pic
real(kind=r8), dimension(:), allocatable, save equil_mod::betae_pic
real(kind=r8), dimension(:,:), allocatable, save equil_mod::beta_pic
real(kind=r8), dimension(:,:), allocatable, save equil_mod::vp_pic
real(kind=r8), dimension(:,:), allocatable, save equil_mod::gradvp_pic
real(kind=r8), dimension(:), allocatable, save equil_mod::gradgradne
real(kind=r8), dimension(:), allocatable, save equil_mod::n_corr
real(kind=r8), dimension(:), allocatable, save, public equil_mod::bin_vol
real(kind=r8), dimension(:,:), allocatable, save, public equil_mod::bin_vol_2d
real(kind=r8), dimension(:,:), allocatable, save, public equil_mod::bin_vol_3d_inv
real(kind=r8), dimension(:,:), allocatable, save, public equil_mod::bin_vol_3d
real(kind=r8), dimension(:), allocatable, save equil_mod::bin_helical_ti
real(kind=r8), dimension(:), allocatable, save equil_mod::bin_helical_ni
real(kind=r8), dimension(:), allocatable, save equil_mod::psi_av
real(kind=r8), dimension(:,:), allocatable, save equil_mod::psi_av_hel
real(kind=r8), dimension(:,:), allocatable, save equil_mod::bin_vol_hel
real(kind=r8), dimension(:), allocatable, save, public equil_mod::bin_surf
real(kind=r8), dimension(:), allocatable, save, public equil_mod::nbar
real(kind=r8), dimension(:), allocatable, save equil_mod::tbar
real(kind=r8), dimension(:), allocatable, save equil_mod::nbar_anu
real(kind=r8), dimension(:), allocatable, save equil_mod::torpsitab
real(kind=r8), dimension(:), allocatable, save, public equil_mod::zpsi_grd
real(kind=r8), dimension(:), allocatable, save, public equil_mod::psihe_grd
real(kind=r8), save, public equil_mod::psires
real(kind=r8), save, public equil_mod::psihes
real(kind=r8), 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(kind=r8), dimension(:), allocatable, save equil_mod::p_psi
real(kind=r8), dimension(:), allocatable, save equil_mod::dpdpsi
real(kind=r8), dimension(:), allocatable, save equil_mod::f_psi
real(kind=r8), dimension(:), allocatable, save equil_mod::fdfdpsi
real(kind=r8), dimension(:), allocatable, save equil_mod::q_psi
real(kind=r8), dimension(:), allocatable, save equil_mod::dqdpsi
real(kind=r8), dimension(:), allocatable, save equil_mod::psi_chease
real(kind=r8), dimension(:), allocatable, save equil_mod::chi_chease
real(kind=r8), dimension(:), allocatable, save equil_mod::s_chease
real(kind=r8), dimension(:), allocatable, save equil_mod::rgeom
real(kind=r8), dimension(:), allocatable, save equil_mod::ageom
real(kind=r8), dimension(:), allocatable, save equil_mod::kappae
real(kind=r8), dimension(:), allocatable, save equil_mod::bmax_s
real(kind=r8), dimension(:), allocatable, save equil_mod::volume
real(kind=r8), dimension(:), allocatable, save equil_mod::psinorm_chease
real(kind=r8), dimension(:), allocatable, save equil_mod::rhovnorm_chease
real(kind=r8), dimension(:), allocatable, save equil_mod::drhovnormds_chease
real(kind=r8), dimension(:), allocatable, save equil_mod::mhdti
real(kind=r8), dimension(:), allocatable, save equil_mod::mhdte
real(kind=r8), dimension(:), allocatable, save equil_mod::mhdn
real(kind=r8), dimension(:,:,:), allocatable, save equil_mod::ubulk_s
real(kind=r8), dimension(:,:,:), allocatable, save equil_mod::ubulk_prime_s
real(kind=r8), dimension(:), allocatable, save equil_mod::pot_back
real(kind=r8), dimension(:), allocatable, save equil_mod::int1
real(kind=r8), 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

◆ grad_pot()

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

interpolated derivative of potential

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

◆ rk4()

subroutine make_toroidal_flow_potential::rk4 ( real(kind=r8), intent(in) y,
real(kind=r8), intent(in) x,
real(kind=r8), 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: