![]() |
SPEC 3.20
Stepped Pressure Equilibrium Code
|
Defines input namelists and global variables, and opens some output files. More...
Data Types | |
| type | typedefns::subgrid |
| used for quantities which have different resolutions in different volumes, e.g. the vector potential More... | |
| type | typedefns::matrixlu |
| type | typedefns::derivative |
| \({\rm d}\mathbf{B}/{\rm d}\mathbf{X}\) (?) More... | |
Modules | |
| module | constants |
| some constants used throughout the code | |
| module | numerical |
| platform-dependant numerical resolution | |
| module | fileunits |
| central definition of file units to avoid conflicts | |
| module | cputiming |
| timing variables | |
| module | typedefns |
| type definitions for custom datatypes | |
| module | allglobal |
| global variable storage used as "workspace" throughout the code | |
| module | fftw_interface |
| Interface to FFTW library. | |
Functions/Subroutines | |
| subroutine | fileunits::mute (action) |
| subroutine | allglobal::build_vector_potential (lvol, iocons, aderiv) |
| subroutine | allglobal::set_mpi_comm (comm) |
| pure character(len=1000) function | allglobal::get_hidden (ext) |
| subroutine | allglobal::read_inputlists_from_file () |
| subroutine | allglobal::write_spec_namelist () |
| subroutine | allglobal::check_inputs () |
| subroutine | allglobal::broadcast_inputs |
| subroutine | allglobal::wrtend |
Write the restart file ext.sp.end. | |
| subroutine | allglobal::ismyvolume (vvol) |
| Check if volume vvol is associated to the corresponding MPI node. More... | |
| subroutine | allglobal::whichcpuid (vvol, cpu_id) |
| Returns which MPI node is associated to a given volume. | |
Variables | |
| real, parameter | constants::zero = 0.0 |
| 0 | |
| real, parameter | constants::one = 1.0 |
| 1 | |
| real, parameter | constants::two = 2.0 |
| 2 | |
| real, parameter | constants::three = 3.0 |
| 3 | |
| real, parameter | constants::four = 4.0 |
| 4 | |
| real, parameter | constants::five = 5.0 |
| 5 | |
| real, parameter | constants::six = 6.0 |
| 6 | |
| real, parameter | constants::seven = 7.0 |
| 7 | |
| real, parameter | constants::eight = 8.0 |
| 8 | |
| real, parameter | constants::nine = 9.0 |
| 9 | |
| real, parameter | constants::ten = 10.0 |
| 10 | |
| real, parameter | constants::eleven = 11.0 |
| 11 | |
| real, parameter | constants::twelve = 12.0 |
| 12 | |
| real, parameter | constants::hundred = 100.0 |
| 100 | |
| real, parameter | constants::thousand = 1000.0 |
| 1000 | |
| real, parameter | constants::half = one / two |
| 1/2 | |
| real, parameter | constants::third = one / three |
| 1/3 | |
| real, parameter | constants::quart = one / four |
| 1/4 | |
| real, parameter | constants::fifth = one / five |
| 1/5 | |
| real, parameter | constants::sixth = one / six |
| 1/6 | |
| real, parameter | constants::pi2 = 6.28318530717958623 |
| \(2\pi\) | |
| real, parameter | constants::pi = pi2 / two |
| \(\pi\) | |
| real, parameter | constants::mu0 = 2.0E-07 * pi2 |
| \(4\pi\cdot10^{-7}\) | |
| real, parameter | constants::goldenmean = 1.618033988749895 |
| golden mean = \(( 1 + \sqrt 5 ) / 2\) ; | |
| real, parameter | constants::version = 3.23 |
| version of SPEC | |
| real, parameter | numerical::machprec = 1.11e-16 |
| machine precision: 0.5*epsilon(one) for 64 bit double precision | |
| real, parameter | numerical::vsmall = 100*machprec |
| very small number | |
| real, parameter | numerical::small = 10000*machprec |
| small number | |
| real, parameter | numerical::sqrtmachprec = sqrt(machprec) |
| square root of machine precision | |
| real, parameter | numerical::logtolerance = 1.0e-32 |
| this is used to avoid taking log10(zero); see e.g. dforce; | |
| integer | fileunits::iunit = 10 |
| input; used in global/readin:ext.sp, global/wrtend:ext.sp.end | |
| integer | fileunits::ounit = 6 |
| screen output; | |
| integer | fileunits::gunit = 13 |
| wall geometry; used in wa00aa | |
| integer | fileunits::aunit = 11 |
| vector potential; used in ra00aa:.ext.AtAzmn; | |
| integer | fileunits::dunit = 12 |
| derivative matrix; used in newton:.ext.GF; | |
| integer | fileunits::hunit = 14 |
| eigenvalues of Hessian; under re-construction; | |
| integer | fileunits::munit = 14 |
| matrix elements of Hessian; | |
| integer | fileunits::lunit = 20 |
| local unit; used in lunit+myid: pp00aa:.ext.poincare,.ext.transform; | |
| integer | fileunits::vunit = 15 |
| for examination of adaptive quadrature; used in casing:.ext.vcint; | |
| real | cputiming::tmanual = 0.0 |
| real | cputiming::manualt = 0.0 |
| real | cputiming::trzaxis = 0.0 |
| real | cputiming::rzaxist = 0.0 |
| real | cputiming::tpackxi = 0.0 |
| real | cputiming::packxit = 0.0 |
| real | cputiming::tvolume = 0.0 |
| real | cputiming::volumet = 0.0 |
| real | cputiming::tcoords = 0.0 |
| real | cputiming::coordst = 0.0 |
| real | cputiming::tbasefn = 0.0 |
| real | cputiming::basefnt = 0.0 |
| real | cputiming::tmemory = 0.0 |
| real | cputiming::memoryt = 0.0 |
| real | cputiming::tmetrix = 0.0 |
| real | cputiming::metrixt = 0.0 |
| real | cputiming::tma00aa = 0.0 |
| real | cputiming::ma00aat = 0.0 |
| real | cputiming::tmatrix = 0.0 |
| real | cputiming::matrixt = 0.0 |
| real | cputiming::tspsmat = 0.0 |
| real | cputiming::spsmatt = 0.0 |
| real | cputiming::tspsint = 0.0 |
| real | cputiming::spsintt = 0.0 |
| real | cputiming::tmp00ac = 0.0 |
| real | cputiming::mp00act = 0.0 |
| real | cputiming::tma02aa = 0.0 |
| real | cputiming::ma02aat = 0.0 |
| real | cputiming::tpackab = 0.0 |
| real | cputiming::packabt = 0.0 |
| real | cputiming::ttr00ab = 0.0 |
| real | cputiming::tr00abt = 0.0 |
| real | cputiming::tcurent = 0.0 |
| real | cputiming::curentt = 0.0 |
| real | cputiming::tdf00ab = 0.0 |
| real | cputiming::df00abt = 0.0 |
| real | cputiming::tlforce = 0.0 |
| real | cputiming::lforcet = 0.0 |
| real | cputiming::tintghs = 0.0 |
| real | cputiming::intghst = 0.0 |
| real | cputiming::tmtrxhs = 0.0 |
| real | cputiming::mtrxhst = 0.0 |
| real | cputiming::tlbpol = 0.0 |
| real | cputiming::lbpolt = 0.0 |
| real | cputiming::tbrcast = 0.0 |
| real | cputiming::brcastt = 0.0 |
| real | cputiming::tdfp100 = 0.0 |
| real | cputiming::dfp100t = 0.0 |
| real | cputiming::tdfp200 = 0.0 |
| real | cputiming::dfp200t = 0.0 |
| real | cputiming::tdforce = 0.0 |
| real | cputiming::dforcet = 0.0 |
| real | cputiming::tnewton = 0.0 |
| real | cputiming::newtont = 0.0 |
| real | cputiming::tcasing = 0.0 |
| real | cputiming::casingt = 0.0 |
| real | cputiming::tbnorml = 0.0 |
| real | cputiming::bnormlt = 0.0 |
| real | cputiming::tjo00aa = 0.0 |
| real | cputiming::jo00aat = 0.0 |
| real | cputiming::tpp00aa = 0.0 |
| real | cputiming::pp00aat = 0.0 |
| real | cputiming::tpp00ab = 0.0 |
| real | cputiming::pp00abt = 0.0 |
| real | cputiming::tbfield = 0.0 |
| real | cputiming::bfieldt = 0.0 |
| real | cputiming::tstzxyz = 0.0 |
| real | cputiming::stzxyzt = 0.0 |
| real | cputiming::thesian = 0.0 |
| real | cputiming::hesiant = 0.0 |
| real | cputiming::tra00aa = 0.0 |
| real | cputiming::ra00aat = 0.0 |
| real | cputiming::tnumrec = 0.0 |
| real | cputiming::numrect = 0.0 |
| real | cputiming::tdcuhre = 0.0 |
| real | cputiming::dcuhret = 0.0 |
| real | cputiming::tminpack = 0.0 |
| real | cputiming::minpackt = 0.0 |
| real | cputiming::tiqpack = 0.0 |
| real | cputiming::iqpackt = 0.0 |
| real | cputiming::trksuite = 0.0 |
| real | cputiming::rksuitet = 0.0 |
| real | cputiming::ti1mach = 0.0 |
| real | cputiming::i1macht = 0.0 |
| real | cputiming::td1mach = 0.0 |
| real | cputiming::d1macht = 0.0 |
| real | cputiming::tilut = 0.0 |
| real | cputiming::ilutt = 0.0 |
| real | cputiming::titers = 0.0 |
| real | cputiming::iterst = 0.0 |
| real | cputiming::tsphdf5 = 0.0 |
| real | cputiming::sphdf5t = 0.0 |
| real | cputiming::tpreset = 0.0 |
| real | cputiming::presett = 0.0 |
| real | cputiming::tglobal = 0.0 |
| real | cputiming::globalt = 0.0 |
| real | cputiming::txspech = 0.0 |
| real | cputiming::xspecht = 0.0 |
| real | cputiming::tinputlist = 0.0 |
| real | cputiming::inputlistt = 0.0 |
| real | cputiming::treadin = 0.0 |
| real | cputiming::twrtend = 0.0 |
| integer | allglobal::myid |
| MPI rank of current CPU. | |
| integer | allglobal::ncpu |
| number of MPI tasks | |
| integer | allglobal::ismyvolumevalue |
| flag to indicate if a CPU is operating on its assigned volume | |
| real | allglobal::cpus |
| initial time | |
| integer | allglobal::mpi_comm_spec |
| SPEC MPI communicator. | |
| logical | allglobal::skip_write = .false. |
| real | allglobal::pi2nfp |
| pi2/nfp ; assigned in readin; | |
| real | allglobal::pi2pi2nfp |
| pi2*pi2/nfp | |
| real | allglobal::pi2pi2nfphalf |
| 2*pi*pi/nfp | |
| real | allglobal::pi2pi2nfpquart |
| pi*pi/nfp | |
| character(len=1000) | allglobal::ext |
| real | allglobal::forceerr |
| total force-imbalance | |
| real | allglobal::energy |
| MHD energy. | |
| real | allglobal::bnserr |
| (in freeboundary) error in self-consistency of field on plasma boundary (Picard iteration) | |
| real | allglobal::betatotal = 0.0 |
| Beta, averaged over entire domain. | |
| real, dimension(:), allocatable | allglobal::ipdt |
| real, dimension(:,:), allocatable | allglobal::ipdtdpf |
| Toroidal pressure-driven current. | |
| integer | allglobal::mvol |
| total number of volumes (including the vacuum region in the case of free-boundary calculations) | |
| real | allglobal::total_pflux |
| logical | allglobal::yesstellsym |
| internal shorthand copies of Istellsym, which is an integer input; | |
| logical | allglobal::notstellsym |
| internal shorthand copies of Istellsym, which is an integer input; | |
| logical | allglobal::yesmatrixfree |
| logical | allglobal::notmatrixfree |
| to use matrix-free method or not | |
| real, dimension(:,:), allocatable | allglobal::cheby |
| local workspace for evaluation of Chebychev polynomials | |
| real, dimension(:,:,:), allocatable | allglobal::zernike |
| local workspace for evaluation of Zernike polynomials | |
| real, dimension(:,:,:), allocatable | allglobal::tt |
| derivatives of Chebyshev polynomials at the inner and outer interfaces; | |
| real, dimension(:,:,:,:), allocatable | allglobal::rtt |
| derivatives of Zernike polynomials at the inner and outer interfaces; | |
| real, dimension(:,:), allocatable | allglobal::rtm |
| \(r^m\) term of Zernike polynomials at the origin | |
| real, dimension(:), allocatable | allglobal::zernikedof |
| Zernike degree of freedom for each \(m\). | |
| integer | allglobal::mne |
| enhanced resolution for metric elements | |
| integer, dimension(:), allocatable | allglobal::ime |
| enhanced poloidal mode numbers for metric elements | |
| integer, dimension(:), allocatable | allglobal::ine |
| enhanced toroidal mode numbers for metric elements | |
| integer | allglobal::mns |
| enhanced resolution for straight field line transformation | |
| integer, dimension(:), allocatable | allglobal::ims |
| enhanced poloidal mode numbers for straight field line transformation | |
| integer, dimension(:), allocatable | allglobal::ins |
| enhanced toroidal mode numbers for straight field line transformation | |
| integer | allglobal::lmpol |
| what is this? | |
| integer | allglobal::lntor |
| what is this? | |
| integer | allglobal::smpol |
| what is this? | |
| integer | allglobal::sntor |
| what is this? | |
| real | allglobal::xoffset = 1.0 |
| used to normalize NAG routines (which ones exacly where?) | |
| logical, dimension(:), allocatable | allglobal::imagneticok |
| used to indicate if Beltrami fields have been correctly constructed; | |
| logical | allglobal::iconstraintok |
| Used to break iteration loops of slaves in the global constraint minimization. | |
| real, dimension(:,:), allocatable | allglobal::beltramierror |
| to store the integral of |curlB-mu*B| computed by jo00aa; | |
| integer | allglobal::mn |
| total number of Fourier harmonics for coordinates/fields; calculated from Mpol, Ntor in readin() | |
| integer, dimension(:), allocatable | allglobal::im |
| poloidal mode numbers for Fourier representation | |
| integer, dimension(:), allocatable | allglobal::in |
| toroidal mode numbers for Fourier representation | |
| real, dimension(:), allocatable | allglobal::halfmm |
| I saw this already somewhere... | |
| real, dimension(:), allocatable | allglobal::regumm |
| I saw this already somewhere... | |
| real | allglobal::rscale |
| no idea | |
| real, dimension(:,:), allocatable | allglobal::psifactor |
| no idea | |
| real, dimension(:,:), allocatable | allglobal::inifactor |
| no idea | |
| real, dimension(:), allocatable | allglobal::bbweight |
| weight on force-imbalance harmonics; used in dforce() | |
| real, dimension(:), allocatable | allglobal::mmpp |
| spectral condensation factors | |
| real, dimension(:,:), allocatable | allglobal::irbc |
| cosine R harmonics of interface surface geometry; stellarator symmetric | |
| real, dimension(:,:), allocatable | allglobal::izbs |
| sine Z harmonics of interface surface geometry; stellarator symmetric | |
| real, dimension(:,:), allocatable | allglobal::irbs |
| sine R harmonics of interface surface geometry; non-stellarator symmetric | |
| real, dimension(:,:), allocatable | allglobal::izbc |
| cosine Z harmonics of interface surface geometry; non-stellarator symmetric | |
| real, dimension(:,:), allocatable | allglobal::drbc |
| cosine R harmonics of interface surface geometry; stellarator symmetric; linear deformation | |
| real, dimension(:,:), allocatable | allglobal::dzbs |
| sine Z harmonics of interface surface geometry; stellarator symmetric; linear deformation | |
| real, dimension(:,:), allocatable | allglobal::drbs |
| sine R harmonics of interface surface geometry; non-stellarator symmetric; linear deformation | |
| real, dimension(:,:), allocatable | allglobal::dzbc |
| cosine Z harmonics of interface surface geometry; non-stellarator symmetric; linear deformation | |
| real, dimension(:,:), allocatable | allglobal::irij |
| interface surface geometry; real space | |
| real, dimension(:,:), allocatable | allglobal::izij |
| interface surface geometry; real space | |
| real, dimension(:,:), allocatable | allglobal::drij |
| interface surface geometry; real space | |
| real, dimension(:,:), allocatable | allglobal::dzij |
| interface surface geometry; real space | |
| real, dimension(:,:), allocatable | allglobal::trij |
| interface surface geometry; real space | |
| real, dimension(:,:), allocatable | allglobal::tzij |
| interface surface geometry; real space | |
| real, dimension(:), allocatable | allglobal::ivns |
| sine harmonics of vacuum normal magnetic field on interfaces; stellarator symmetric | |
| real, dimension(:), allocatable | allglobal::ibns |
| sine harmonics of plasma normal magnetic field on interfaces; stellarator symmetric | |
| real, dimension(:), allocatable | allglobal::ivnc |
| cosine harmonics of vacuum normal magnetic field on interfaces; non-stellarator symmetric | |
| real, dimension(:), allocatable | allglobal::ibnc |
| cosine harmonics of plasma normal magnetic field on interfaces; non-stellarator symmetric | |
| real, dimension(:), allocatable | allglobal::lrbc |
| local workspace | |
| real, dimension(:), allocatable | allglobal::lzbs |
| local workspace | |
| real, dimension(:), allocatable | allglobal::lrbs |
| local workspace | |
| real, dimension(:), allocatable | allglobal::lzbc |
| local workspace | |
| integer | allglobal::num_modes |
| integer, dimension(:), allocatable | allglobal::mmrzrz |
| integer, dimension(:), allocatable | allglobal::nnrzrz |
| real, dimension(:,:,:), allocatable | allglobal::allrzrz |
| integer | allglobal::nt |
| discrete resolution along \(\theta\) of grid in real space | |
| integer | allglobal::nz |
| discrete resolution along \(\zeta\) of grid in real space | |
| integer | allglobal::ntz |
| discrete resolution; Ntz=Nt*Nz shorthand | |
| integer | allglobal::hnt |
| discrete resolution; Ntz=Nt*Nz shorthand | |
| integer | allglobal::hnz |
| discrete resolution; Ntz=Nt*Nz shorthand | |
| real | allglobal::sontz |
| one / sqrt (one*Ntz); shorthand | |
| real, dimension(:,:,:), allocatable | allglobal::rij |
| real-space grid; R | |
| real, dimension(:,:,:), allocatable | allglobal::zij |
| real-space grid; Z | |
| real, dimension(:,:,:), allocatable | allglobal::xij |
| what is this? | |
| real, dimension(:,:,:), allocatable | allglobal::yij |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::sg |
| real-space grid; jacobian and its derivatives | |
| real, dimension(:,:,:,:), allocatable | allglobal::guvij |
| real-space grid; metric elements | |
| real, dimension(:,:,:), allocatable | allglobal::gvuij |
| real-space grid; metric elements (?); 10 Dec 15; | |
| real, dimension(:,:,:,:), allocatable | allglobal::guvijsave |
| what is this? | |
| integer, dimension(:,:), allocatable | allglobal::ki |
| identification of Fourier modes | |
| integer, dimension(:,:,:), allocatable | allglobal::kijs |
| identification of Fourier modes | |
| integer, dimension(:,:,:), allocatable | allglobal::kija |
| identification of Fourier modes | |
| integer, dimension(:), allocatable | allglobal::iotakkii |
| identification of Fourier modes | |
| integer, dimension(:,:), allocatable | allglobal::iotaksub |
| identification of Fourier modes | |
| integer, dimension(:,:), allocatable | allglobal::iotakadd |
| identification of Fourier modes | |
| integer, dimension(:,:), allocatable | allglobal::iotaksgn |
| identification of Fourier modes | |
| real, dimension(:), allocatable | allglobal::efmn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::ofmn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::cfmn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::sfmn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::evmn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::odmn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::comn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::simn |
| Fourier harmonics; dummy workspace. | |
| real, dimension(:), allocatable | allglobal::ijreal |
| what is this ? | |
| real, dimension(:), allocatable | allglobal::ijimag |
| what is this ? | |
| real, dimension(:), allocatable | allglobal::jireal |
| what is this ? | |
| real, dimension(:), allocatable | allglobal::jiimag |
| what is this ? | |
| real, dimension(:), allocatable | allglobal::jkreal |
| what is this ? | |
| real, dimension(:), allocatable | allglobal::jkimag |
| what is this ? | |
| real, dimension(:), allocatable | allglobal::kjreal |
| what is this ? | |
| real, dimension(:), allocatable | allglobal::kjimag |
| what is this ? | |
| real, dimension(:,:,:), allocatable | allglobal::bsupumn |
| tangential field on interfaces; \(\theta\)-component; required for virtual casing construction of field; 11 Oct 12 | |
| real, dimension(:,:,:), allocatable | allglobal::bsupvmn |
| tangential field on interfaces; \(\zeta\) -component; required for virtual casing construction of field; 11 Oct 12 | |
| real, dimension(:,:), allocatable | allglobal::goomne |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::goomno |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gssmne |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gssmno |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gstmne |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gstmno |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gszmne |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gszmno |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gttmne |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gttmno |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gtzmne |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gtzmno |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gzzmne |
| described in preset() | |
| real, dimension(:,:), allocatable | allglobal::gzzmno |
| described in preset() | |
| real, dimension(:,:,:,:), allocatable | allglobal::dtoocc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::dtoocs |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::dtoosc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::dtooss |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ttsscc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ttsscs |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ttsssc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ttssss |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdstcc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdstcs |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdstsc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdstss |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdszcc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdszcs |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdszsc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::tdszss |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddttcc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddttcs |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddttsc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddttss |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddtzcc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddtzcs |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddtzsc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddtzss |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddzzcc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddzzcs |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddzzsc |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:,:,:), allocatable | allglobal::ddzzss |
| volume-integrated Chebychev-metrics; see matrix() | |
| real, dimension(:,:), allocatable | allglobal::tsc |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::tss |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::dtc |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::dts |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::dzc |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::dzs |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::ttc |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::tzc |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::tts |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::tzs |
| what is this? | |
| real, dimension(:), allocatable | allglobal::dtflux |
| \(\delta \psi_{toroidal}\) in each annulus | |
| real, dimension(:), allocatable | allglobal::dpflux |
| \(\delta \psi_{poloidal}\) in each annulus | |
| real, dimension(:), allocatable | allglobal::sweight |
| minimum poloidal length constraint weight | |
| integer, dimension(:), allocatable | allglobal::nadof |
| degrees of freedom in Beltrami fields in each annulus | |
| integer, dimension(:), allocatable | allglobal::nfielddof |
| degrees of freedom in Beltrami fields in each annulus, field only, no Lagrange multipliers | |
| type(subgrid), dimension(:,:,:), allocatable | allglobal::ate |
| magnetic vector potential cosine Fourier harmonics; stellarator-symmetric | |
| type(subgrid), dimension(:,:,:), allocatable | allglobal::aze |
| magnetic vector potential cosine Fourier harmonics; stellarator-symmetric | |
| type(subgrid), dimension(:,:,:), allocatable | allglobal::ato |
| magnetic vector potential sine Fourier harmonics; non-stellarator-symmetric | |
| type(subgrid), dimension(:,:,:), allocatable | allglobal::azo |
| magnetic vector potential sine Fourier harmonics; non-stellarator-symmetric | |
| integer, dimension(:,:), allocatable | allglobal::lma |
| Lagrange multipliers (?) | |
| integer, dimension(:,:), allocatable | allglobal::lmb |
| Lagrange multipliers (?) | |
| integer, dimension(:,:), allocatable | allglobal::lmc |
| Lagrange multipliers (?) | |
| integer, dimension(:,:), allocatable | allglobal::lmd |
| Lagrange multipliers (?) | |
| integer, dimension(:,:), allocatable | allglobal::lme |
| Lagrange multipliers (?) | |
| integer, dimension(:,:), allocatable | allglobal::lmf |
| Lagrange multipliers (?) | |
| integer, dimension(:,:), allocatable | allglobal::lmg |
| Lagrange multipliers (?) | |
| integer, dimension(:,:), allocatable | allglobal::lmh |
| Lagrange multipliers (?) | |
| real, dimension(:,:), allocatable | allglobal::lmavalue |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::lmbvalue |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::lmcvalue |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::lmdvalue |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::lmevalue |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::lmfvalue |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::lmgvalue |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::lmhvalue |
| what is this? | |
| integer, dimension(:,:), allocatable | allglobal::fso |
| what is this? | |
| integer, dimension(:,:), allocatable | allglobal::fse |
| what is this? | |
| logical | allglobal::lcoordinatesingularity |
set by LREGION macro; true if inside the innermost volume | |
| logical | allglobal::lplasmaregion |
set by LREGION macro; true if inside the plasma region | |
| logical | allglobal::lvacuumregion |
set by LREGION macro; true if inside the vacuum region | |
| logical | allglobal::lsavedguvij |
| flag used in matrix free | |
| logical | allglobal::localconstraint |
| what is this? | |
| real, dimension(:,:), allocatable | allglobal::dma |
| energy and helicity matrices; quadratic forms | |
| real, dimension(:,:), allocatable | allglobal::dmb |
| energy and helicity matrices; quadratic forms | |
| real, dimension(:,:), allocatable | allglobal::dmd |
| energy and helicity matrices; quadratic forms | |
| real, dimension(:), allocatable | allglobal::dmas |
| sparse version of dMA, data | |
| real, dimension(:), allocatable | allglobal::dmds |
| sparse version of dMD, data | |
| integer, dimension(:), allocatable | allglobal::idmas |
| sparse version of dMA and dMD, indices | |
| integer, dimension(:), allocatable | allglobal::jdmas |
| sparse version of dMA and dMD, indices | |
| integer, dimension(:), allocatable | allglobal::ndmasmax |
| number of elements for sparse matrices | |
| integer, dimension(:), allocatable | allglobal::ndmas |
| number of elements for sparse matrices | |
| real, dimension(:), allocatable | allglobal::dmg |
| what is this? | |
| real, dimension(:), allocatable | allglobal::adotx |
| the matrix-vector product | |
| real, dimension(:), allocatable | allglobal::ddotx |
| the matrix-vector product | |
| real, dimension(:,:), allocatable | allglobal::solution |
| this is allocated in dforce; used in mp00ac and ma02aa; and is passed to packab | |
| real, dimension(:,:,:), allocatable | allglobal::gmreslastsolution |
| used to store the last solution for restarting GMRES | |
| real, dimension(:), allocatable | allglobal::mbpsi |
| matrix vector products | |
| logical | allglobal::liluprecond |
| whether to use ILU preconditioner for GMRES | |
| real, dimension(:,:), allocatable | allglobal::beltramiinverse |
| Beltrami inverse matrix. | |
| real, dimension(:,:,:), allocatable | allglobal::diotadxup |
| measured rotational transform on inner/outer interfaces for each volume; d(transform)/dx; (see dforce) | |
| real, dimension(:,:,:), allocatable | allglobal::ditgpdxtp |
| measured toroidal and poloidal current on inner/outer interfaces for each volume; d(Itor,Gpol)/dx; (see dforce) | |
| real, dimension(:,:,:,:), allocatable | allglobal::glambda |
| save initial guesses for iterative calculation of rotational-transform | |
| integer | allglobal::lmns |
| number of independent degrees of freedom in angle transformation; | |
| real, dimension(:,:,:), allocatable | allglobal::dlambdaout |
| real, dimension(:,:,:), allocatable | allglobal::bemn |
| force vector; stellarator-symmetric (?) | |
| real, dimension(:,:), allocatable | allglobal::iomn |
| force vector; stellarator-symmetric (?) | |
| real, dimension(:,:,:), allocatable | allglobal::somn |
| force vector; non-stellarator-symmetric (?) | |
| real, dimension(:,:,:), allocatable | allglobal::pomn |
| force vector; non-stellarator-symmetric (?) | |
| real, dimension(:,:,:), allocatable | allglobal::bomn |
| force vector; stellarator-symmetric (?) | |
| real, dimension(:,:), allocatable | allglobal::iemn |
| force vector; stellarator-symmetric (?) | |
| real, dimension(:,:,:), allocatable | allglobal::semn |
| force vector; non-stellarator-symmetric (?) | |
| real, dimension(:,:,:), allocatable | allglobal::pemn |
| force vector; non-stellarator-symmetric (?) | |
| real, dimension(:), allocatable | allglobal::bbe |
| force vector (?); stellarator-symmetric (?) | |
| real, dimension(:), allocatable | allglobal::iio |
| force vector (?); stellarator-symmetric (?) | |
| real, dimension(:), allocatable | allglobal::bbo |
| force vector (?); non-stellarator-symmetric (?) | |
| real, dimension(:), allocatable | allglobal::iie |
| force vector (?); non-stellarator-symmetric (?) | |
| real, dimension(:,:,:), allocatable | allglobal::btemn |
| covariant \(\theta\) cosine component of the tangential field on interfaces; stellarator-symmetric | |
| real, dimension(:,:,:), allocatable | allglobal::bzemn |
| covariant \(\zeta\) cosine component of the tangential field on interfaces; stellarator-symmetric | |
| real, dimension(:,:,:), allocatable | allglobal::btomn |
| covariant \(\theta\) sine component of the tangential field on interfaces; non-stellarator-symmetric | |
| real, dimension(:,:,:), allocatable | allglobal::bzomn |
| covariant \(\zeta\) sine component of the tangential field on interfaces; non-stellarator-symmetric | |
| real, dimension(:,:), allocatable | allglobal::bloweremn |
| covariant field for Hessian computation | |
| real, dimension(:,:), allocatable | allglobal::bloweromn |
| covariant field for Hessian computation | |
| integer | allglobal::lgdof |
| geometrical degrees of freedom associated with each interface | |
| integer | allglobal::ngdof |
| total geometrical degrees of freedom | |
| real, dimension(:,:,:), allocatable | allglobal::dbbdrz |
| derivative of magnetic field w.r.t. geometry (?) | |
| real, dimension(:,:), allocatable | allglobal::diidrz |
| derivative of spectral constraints w.r.t. geometry (?) | |
| real, dimension(:,:,:,:,:), allocatable | allglobal::dffdrz |
| derivatives of B^2 at the interfaces wrt geometry | |
| real, dimension(:,:,:,:), allocatable | allglobal::dbbdmp |
| derivatives of B^2 at the interfaces wrt mu and dpflux | |
| real, dimension(:,:,:,:,:), allocatable | allglobal::hdffdrz |
| derivatives of B^2 at the interfaces wrt geometry 2D Hessian; | |
| real, dimension(:,:,:,:,:), allocatable | allglobal::denergydrr |
| derivatives of energy at the interfaces wrt geometry 3D Hessian; | |
| real, dimension(:,:,:,:,:), allocatable | allglobal::denergydrz |
| derivatives of energy at the interfaces wrt geometry 3D Hessian; | |
| real, dimension(:,:,:,:,:), allocatable | allglobal::denergydzr |
| derivatives of energy at the interfaces wrt geometry 3D Hessian; | |
| real, dimension(:,:,:,:,:), allocatable | allglobal::denergydzz |
| derivatives of energy at the interfaces wrt geometry 3D Hessian; | |
| real, dimension(:,:,:,:,:), allocatable | allglobal::dmupfdx |
| derivatives of mu and dpflux wrt geometry at constant interface transform | |
| logical | allglobal::lhessianallocated |
| flag to indicate that force gradient matrix is allocated (?) | |
| real, dimension(:,:), allocatable | allglobal::hessian |
| force gradient matrix (?) | |
| real, dimension(:,:), allocatable | allglobal::dessian |
| derivative of force gradient matrix (?) | |
| logical | allglobal::lhessian2dallocated |
| flag to indicate that 2D Hessian matrix is allocated (?) | |
| real, dimension(:,:), allocatable | allglobal::hessian2d |
| Hessian 2D. | |
| real, dimension(:,:), allocatable | allglobal::dessian2d |
| derivative Hessian 2D | |
| logical | allglobal::lhessian3dallocated |
| flag to indicate that 2D Hessian matrix is allocated (?) | |
| real, dimension(:,:), allocatable | allglobal::hessian3d |
| Hessian 3D. | |
| real, dimension(:,:), allocatable | allglobal::dessian3d |
| derivative Hessian 3D | |
| real, dimension(:), allocatable | allglobal::force_final |
| Final force on the interfaces [inface*mode]. | |
| real, dimension(:,:), allocatable | allglobal::cosi |
| some precomputed cosines | |
| real, dimension(:,:), allocatable | allglobal::sini |
| some precomputed sines | |
| real, dimension(:), allocatable | allglobal::gteta |
| something related to \(\sqrt g\) and \(\theta\) ? | |
| real, dimension(:), allocatable | allglobal::gzeta |
| something related to \(\sqrt g\) and \(\zeta\) ? | |
| real, dimension(:), allocatable | allglobal::ajk |
| definition of coordinate axis | |
| real, dimension(:,:,:,:), allocatable | allglobal::dradr |
| derivatives of coordinate axis | |
| real, dimension(:,:,:,:), allocatable | allglobal::dradz |
| derivatives of coordinate axis | |
| real, dimension(:,:,:,:), allocatable | allglobal::dzadr |
| derivatives of coordinate axis | |
| real, dimension(:,:,:,:), allocatable | allglobal::dzadz |
| derivatives of coordinate axis | |
| real, dimension(:,:,:), allocatable | allglobal::drodr |
| derivatives of coordinate axis | |
| real, dimension(:,:,:), allocatable | allglobal::drodz |
| derivatives of coordinate axis | |
| real, dimension(:,:,:), allocatable | allglobal::dzodr |
| derivatives of coordinate axis | |
| real, dimension(:,:,:), allocatable | allglobal::dzodz |
| derivatives of coordinate axis | |
| integer, dimension(:,:), allocatable | allglobal::djkp |
| for calculating cylindrical volume | |
| integer, dimension(:,:), allocatable | allglobal::djkm |
| for calculating cylindrical volume | |
| real, dimension(:), allocatable | allglobal::lbbintegral |
| B.B integral. | |
| real, dimension(:), allocatable | allglobal::labintegral |
| A.B integral. | |
| real, dimension(:), allocatable | allglobal::vvolume |
| volume integral of \(\sqrt g\); computed in volume | |
| real | allglobal::dvolume |
| derivative of volume w.r.t. interface geometry | |
| integer | allglobal::ivol |
| labels volume; some subroutines (called by NAG) are fixed argument list but require the volume label | |
| real | allglobal::gbzeta |
| toroidal (contravariant) field; calculated in bfield; required to convert \(\dot \theta\) to \(B^\theta\), \(\dot s\) to \(B^s\) | |
| integer, dimension(:), allocatable | allglobal::iquad |
| internal copy of Nquad | |
| real, dimension(:,:), allocatable | allglobal::gaussianweight |
| weights for Gaussian quadrature | |
| real, dimension(:,:), allocatable | allglobal::gaussianabscissae |
| abscissae for Gaussian quadrature | |
| logical | allglobal::lblinear |
| controls selection of Beltrami field solver; depends on LBeltrami | |
| logical | allglobal::lbnewton |
| controls selection of Beltrami field solver; depends on LBeltrami | |
| logical | allglobal::lbsequad |
| controls selection of Beltrami field solver; depends on LBeltrami | |
| real, dimension(1:3) | allglobal::orzp |
| used in mg00aa() to determine \((s,\theta,\zeta)\) given \((R,Z,\varphi)\) | |
| type(derivative) | allglobal::dbdx |
| \({\rm d}\mathbf{B}/{\rm d}\mathbf{X}\) (?) | |
| integer | allglobal::globaljk |
| labels position | |
| real, dimension(:,:), allocatable | allglobal::dxyz |
| computational boundary; position | |
| real, dimension(:,:), allocatable | allglobal::nxyz |
| computational boundary; normal | |
| real, dimension(:,:), allocatable | allglobal::jxyz |
| plasma boundary; surface current | |
| real, dimension(:,:), allocatable | allglobal::pbxyz |
| plasma boundary; position | |
| integer | allglobal::prevcstride |
| previous virtual casing stride for casinggrid (only relevant when Lvcgrid=1) | |
| real | allglobal::virtualcasingfactor = -one / (four*pi) |
| this agrees with diagno | |
| integer | allglobal::iberror |
| for computing error in magnetic field | |
| integer | allglobal::nfreeboundaryiterations |
| number of free-boundary iterations already performed | |
| integer, parameter | allglobal::node = 2 |
| best to make this global for consistency between calling and called routines | |
| logical | allglobal::first_free_bound = .false. |
| flag to indicate that this is the first free-boundary iteration | |
| type(c_ptr) | fftw_interface::planf |
| FFTW-related (?) | |
| type(c_ptr) | fftw_interface::planb |
| FFTW-related (?) | |
| complex(c_double_complex), dimension(:,:,:), allocatable | fftw_interface::cplxin |
| FFTW-related (?) | |
| complex(c_double_complex), dimension(:,:,:), allocatable | fftw_interface::cplxout |
| FFTW-related (?) | |
Defines input namelists and global variables, and opens some output files.
Note that all variables in namelist need to be broadcasted in readin.
Input geometry
\begin{eqnarray} R_l(\theta,\zeta)&=&\sum_{j}R_{j,l}\cos(m_j\theta-n_j\zeta), \\ Z_l(\theta,\zeta)&=&\sum_{j}Z_{j,l}\sin(m_j\theta-n_j\zeta). \end{eqnarray}
ext.sp file and come directly after the namelists described above. The required format is as follows: \begin{eqnarray} \begin{array}{ccccccccc} m_1 & n_1 & R_{1,0} & Z_{1,0} & R_{1,1} & Z_{1,1} & ... & R_{1,N} & Z_{1,N} \\ m_2 & n_2 & R_{2,0} & Z_{2,0} & R_{2,1} & Z_{2,1} & ... & R_{2,N} & Z_{2,N} \\ ... \\ m_j & n_j & R_{j,0} & Z_{j,0} & R_{j,1} & Z_{j,1} & ... & R_{j,N} & Z_{j,N} \\ ... \end{array} \end{eqnarray}
| type typedefns::subgrid |
| type typedefns::matrixlu |
| type typedefns::derivative |
\({\rm d}\mathbf{B}/{\rm d}\mathbf{X}\) (?)
| Class Members | ||
|---|---|---|
| logical | l | what is this? |
| integer | vol | Used in coords(); required for global constraint force gradient evaluation. |
| integer | innout | what is this? |
| integer | ii | what is this? |
| integer | irz | what is this? |
| integer | issym | what is this? |