module constraint_variables !! author: J. Morris (UKAEA) !! !! This module contains global variables relating to the constraint !! equations (f-values, limits, etc.). !! !!### References !! !! - #ifndef dp use, intrinsic :: iso_fortran_env, only: dp=>real64 #endif implicit none public real(dp) :: auxmin !! minimum auxiliary power (MW) (`constraint equation 40`) real(dp) :: betpmx !! maximum poloidal beta (`constraint equation 48`) real(dp) :: bigqmin !! minimum fusion gain Q (`constraint equation 28`) real(dp) :: bmxlim !! maximum peak toroidal field (T) (`constraint equation 25`) real(dp) :: fauxmn !! f-value for minimum auxiliary power (`constraint equation 40`, `iteration variable 64`) real(dp) :: fbeta !! f-value for epsilon beta-poloidal (`constraint equation 6`, `iteration variable 8`) real(dp) :: fbetap !! f-value for poloidal beta (`constraint equation 48`, `iteration variable 79`) real(dp) :: fbetatry !! f-value for beta limit (`constraint equation 24`, `iteration variable 36`) real(dp) :: fbetatry_lower !! f-value for (lower) beta limit (`constraint equation 84`, `iteration variable 173`) real(dp) :: fcpttf !! f-value for TF coil current per turn upper limit !! (`constraint equation 77`, `iteration variable 146`) real(dp) :: fcwr !! f-value for conducting wall radius / rminor limit !! (`constraint equation 23`, `iteration variable 104`) real(dp) :: fdene !! f-value for density limit (`constraint equation 5`, `iteration variable 9`) !! (invalid if `ipedestal=3`) real(dp) :: fdivcol !! f-value for divertor collisionality (`constraint equation 22`, `iteration variable 34`) real(dp) :: fdtmp !! f-value for first wall coolant temperature rise !! (`constraint equation 38`, `iteration variable 62`) real(dp) :: fecrh_ignition !! f-value for ecrh ignition constraint !! (`constraint equation 91`, `iteration variable 168`) real(dp) :: fflutf !! f-value for neutron fluence on TF coil (`constraint equation 53`, `iteration variable 92`) real(dp) :: ffuspow !! f-value for maximum fusion power (`constraint equation 9`, `iteration variable 26`) real(dp) :: fgamcd !! f-value for current drive gamma (`constraint equation 37`, `iteration variable 40`) real(dp) :: fhldiv !! f-value for divertor heat load (`constraint equation 18`, `iteration variable 27`) real(dp) :: fiooic !! f-value for TF coil operating current / critical current ratio !! (`constraint equation 33`, `iteration variable 50`) real(dp) :: fipir !! f-value for Ip/Irod upper limit !! constraint equation icc = 46 !! iteration variable ixc = 72 real(dp) :: fjohc !! f-value for central solenoid current at end-of-flattop !! (`constraint equation 26`, `iteration variable 38`) real(dp) :: fjohc0 !! f-value for central solenoid current at beginning of pulse !! (`constraint equation 27`, `iteration variable 39`) real(dp) :: fjprot !! f-value for TF coil winding pack current density !! (`constraint equation 35`, `iteration variable 53`) real(dp) :: flhthresh !! f-value for L-H power threshold (`constraint equation 15`, `iteration variable 103`) real(dp) :: fmva !! f-value for maximum MVA (`constraint equation 19`, `iteration variable 30`) real(dp) :: fnbshinef !! f-value for maximum neutral beam shine-through fraction !! (`constraint equation 59`, `iteration variable 105`) real(dp) :: fncycle !! f-value for minimum CS coil stress load cycles !! (`constraint equation 90`, `iteration variable 167`) real(dp) :: fnesep !! f-value for Eich critical separatrix density !! (`constraint equation 76`, `iteration variable 144`) real(dp) :: foh_stress !! f-value for Tresca yield criterion in Central Solenoid !! (`constraint equation 72`, `iteration variable 123`) real(dp) :: fpeakb !! f-value for maximum toroidal field (`constraint equation 25`, `iteration variable 35`) real(dp) :: fpinj !! f-value for injection power (`constraint equation 30`, `iteration variable 46`) real(dp) :: fpnetel !! f-value for net electric power (`constraint equation 16`, `iteration variable 25`) real(dp) :: fportsz !! f-value for neutral beam tangency radius limit !! (`constraint equation 20`, `iteration variable 33`) real(dp) :: fpsepbqar !! f-value for maximum Psep*Bt/qAR limit (`constraint equation 68`, `iteration variable 117`) real(dp) :: fpsepr !! f-value for maximum Psep/R limit (`constraint equation 56`, `iteration variable 97`) real(dp) :: fptemp !! f-value for peak centrepost temperature (`constraint equation 44`, `iteration variable 68`) real(dp) :: fptfnuc !! f-value for maximum TF coil nuclear heating (`constraint equation 54`, `iteration variable 95`) real(dp) :: fq !! f-value for edge safety factor (`constraint equation 45`, `iteration variable 71`) real(dp) :: fqval !! f-value for Q (`constraint equation 28`, `iteration variable 45`) real(dp) :: fradpwr !! f-value for core radiation power limit (`constraint equation 17`, `iteration variable 28`) real(dp) :: fradwall !! f-value for upper limit on radiation wall load (`constr. equ. 67`, `iteration variable 116`) real(dp) :: freinke !! f-value for Reinke detachment criterion (`constr. equ. 78`, `iteration variable 147`) real(dp) :: frminor !! f-value for minor radius limit (`constraint equation 21`, `iteration variable 32`) real(dp) :: fstrcase !! f-value for maximum TF coil case Tresca yield criterion !! (`constraint equation 31`, `iteration variable 48`) real(dp) :: fstrcond !! f-value for maxiumum TF coil conduit Tresca yield criterion !! (`constraint equation 32`, `iteration variable 49`) real(dp) :: fstr_wp !! f-value for maxiumum TF coil strain absolute value !! (`constraint equation 88`, `iteration variable 165`) real(dp) :: fmaxvvstress !! f-value for maximum permitted stress of the VV !! (`constraint equation 65`, `iteration variable 113`) real(dp) :: ftbr !! f-value for minimum tritium breeding ratio (`constraint equation 52`, `iteration variable 89`) real(dp) :: ft_burn !! f-value for minimum burn time (`constraint equation 13`, `iteration variable 21`) real(dp) :: ftcycl !! f-value for cycle time (`constraint equation 42`, `iteration variable 67`) real(dp) :: ftmargoh !! f-value for central solenoid temperature margin !! (`constraint equation 60`, `iteration variable 106`) real(dp) :: ftmargtf !! f-value for TF coil temperature margin (`constraint equation 36`, `iteration variable 54`) real(dp) :: ft_current_ramp_up !! f-value for plasma current ramp-up time (`constraint equation 41`, `iteration variable 66`) real(dp) :: ftpeak !! f-value for first wall peak temperature (`constraint equation 39`, `iteration variable 63`) real(dp) :: fvdump !! f-value for dump voltage (`constraint equation 34`, `iteration variable 51`) real(dp) :: fvs !! f-value for flux-swing (V-s) requirement (STEADY STATE) !! (`constraint equation 12`, `iteration variable 15`) real(dp) :: fvvhe !! f-value for vacuum vessel He concentration limit (`iblanket = 2`) !! (`constraint equation 55`, `iteration variable 96`) real(dp) :: fwalld !! f-value for maximum wall load (`constraint equation 8`, `iteration variable 14`) real(dp) :: fzeffmax !! f-value for maximum zeff (`constraint equation 64`, `iteration variable 112`) real(dp) :: gammax !! maximum current drive gamma (`constraint equation 37`) real(dp) :: maxradwallload !! Maximum permitted radiation wall load (MW/m^2) (`constraint equation 67`) real(dp) :: mvalim !! maximum MVA limit (`constraint equation 19`) real(dp) :: nbshinefmax !! maximum neutral beam shine-through fraction (`constraint equation 59`) real(dp) :: nflutfmax !! max fast neutron fluence on TF coil (n/m2) (`blktmodel>0`) (`constraint equation 53`) !! Also used for demontable magnets (itart = 1) and superconducting coils (i_tf_sup = 1) !! To set the CP lifetime (`constraint equation 85`) real(dp) :: pdivtlim !! Minimum pdivt [MW] (`constraint equation 80`) real(dp) :: peakfactrad !! peaking factor for radiation wall load (`constraint equation 67`) real(dp) :: peakradwallload !! Peak radiation wall load (MW/m^2) (`constraint equation 67`) real(dp) :: pnetelin !! required net electric power (MW) (`constraint equation 16`) real(dp) :: powfmax !! maximum fusion power (MW) (`constraint equation 9`) real(dp) :: psepbqarmax !! maximum ratio of Psep*Bt/qAR (MWT/m) (`constraint equation 68`) real(dp) :: pseprmax !! maximum ratio of power crossing the separatrix to plasma major radius (Psep/R) (MW/m) !! (`constraint equation 56`) real(dp) :: ptfnucmax !! maximum nuclear heating in TF coil (MW/m3) (`constraint equation 54`) real(dp) :: tbrmin !! minimum tritium breeding ratio (`constraint equation 52`) real(dp) :: t_burn_min !! minimum burn time (s) (KE - no longer itv., see issue #706) real(dp) :: tcycmn !! minimum cycle time (s) (`constraint equation 42`) real(dp) :: t_current_ramp_up_min !! minimum plasma current ramp-up time (s) (`constraint equation 41`) real(dp) :: vvhealw !! allowed maximum helium concentration in vacuum vessel at end of plant life (appm) !! (`iblanket =2`) (`constraint equation 55`) real(dp) :: walalw !! allowable neutron wall-load (MW/m2) (`constraint equation 8`) real(dp) :: taulimit !! Lower limit on taup/taueff the ratio of alpha particle to energy confinement !! times (`constraint equation 62`) real(dp) :: ftaulimit !! f-value for lower limit on taup/taueff the ratio of alpha particle to energy !! confinement times (`constraint equation 62`, `iteration variable 110`) real(dp) :: fniterpump !! f-value for constraint that number of pumps < tfno !! (`constraint equation 63`, `iteration variable 111`) real(dp) :: zeffmax !! maximum value for Zeff (`constraint equation 64`) real(dp) :: fpoloidalpower !! f-value for constraint on rate of change of energy in poloidal field !! (`constraint equation 66`, `iteration variable 115`) real(dp) :: fpsep !! f-value to ensure separatrix power is less than value from Kallenbach divertor !! (Not required as constraint 69 is an equality) real(dp) :: fcqt !! TF coil quench temparature remains below tmax_croco !! (`constraint equation 74`, `iteration variable 141`) contains subroutine init_constraint_variables !! Initialise module variables implicit none auxmin = 0.1D0 betpmx = 0.19D0 bigqmin = 10.0D0 bmxlim = 12.0D0 fauxmn = 1.0D0 fbeta = 1.0D0 fbetap = 1.0D0 fbetatry = 1.0D0 fbetatry_lower = 1.0D0 fcpttf = 1.0D0 fcwr = 1.0D0 fdene = 1.0D0 fdivcol = 1.0D0 fdtmp = 1.0D0 fflutf = 1.0D0 ffuspow = 1.0D0 fgamcd = 1.0D0 fhldiv = 1.0D0 fiooic = 0.5D0 fipir = 1.0D0 fjohc = 1.0D0 fjohc0 = 1.0D0 fjprot = 1.0D0 flhthresh = 1.0D0 fmva = 1.0D0 fnbshinef = 1.0D0 fncycle = 1.0D0 fnesep = 1.0D0 foh_stress = 1.0D0 fpeakb = 1.0D0 fpinj = 1.0D0 fpnetel = 1.0D0 fportsz = 1.0D0 fpsepbqar = 1.0D0 fpsepr = 1.0D0 fptemp = 1.0D0 fptfnuc = 1.0D0 fq = 1.0D0 fqval = 1.0D0 fradpwr = 0.99D0 fradwall = 1.0D0 freinke = 1.0D0 frminor = 1.0D0 fstrcase = 1.0D0 fstrcond = 1.0D0 fstr_wp = 1.0D0 fmaxvvstress = 1.0D0 ftbr = 1.0D0 ft_burn = 1.0D0 ftcycl = 1.0D0 ftmargoh = 1.0D0 ftmargtf = 1.0D0 ft_current_ramp_up = 1.0D0 ftpeak = 1.0D0 fvdump = 1.0D0 fvs = 1.0D0 fvvhe = 1.0D0 fwalld = 1.0D0 fzeffmax = 1.0D0 gammax = 2.0D0 maxradwallload = 1.0D0 mvalim = 40.0D0 nbshinefmax = 1.0D-3 nflutfmax = 1.0D23 pdivtlim = 150.0D0 peakfactrad = 3.33D0 peakradwallload = 0.0D0 pnetelin = 1.0D3 powfmax = 1.5D3 psepbqarmax = 9.5D0 pseprmax = 25.0D0 ptfnucmax = 1.0D-3 tbrmin = 1.1D0 t_burn_min = 1.0D0 tcycmn = 0.0D0 t_current_ramp_up_min = 1.0D0 vvhealw = 1.0D0 walalw = 1.0D0 taulimit = 5.0D0 ftaulimit = 1.0D0 fniterpump = 1.0D0 zeffmax = 3.6D0 fpoloidalpower = 1.0D0 fpsep = 1.0D0 fcqt = 1.0D0 fecrh_ignition = 1.0D0 end subroutine init_constraint_variables end module constraint_variables