3 INTEGER,
PARAMETER :: magpri67=29,magpri322=31,magprirdp=8
4 INTEGER,
PARAMETER :: magpri=magpri67+magpri322+magprirdp
5 INTEGER,
PARAMETER :: nfcoil=18,nsilop=41,nrogow=1,ntime=1
6 INTEGER,
PARAMETER :: npca=70,nparm=1,ncoef=41
7 INTEGER,
PARAMETER :: necoil=122,mpress=10,nvesel=24
8 INTEGER,
PARAMETER :: nffcur=5,nppcur=5,npcurn=nffcur+nppcur
9 . ,mfnpcr=nfcoil+npcurn,npcur2=npcurn*2
10 . ,nrsmat=nsilop+magpri+nrogow+nffcur+1+npcurn+mpress+nfcoil
11 INTEGER,
PARAMETER :: npoint=300
12 INTEGER,
PARAMETER :: nw=65,nh=65,nwnh=nw*nh
13 INTEGER,
PARAMETER :: nh2=2*nh,nwrk=2*(nw+1*nh)
14 INTEGER,
PARAMETER :: nesum=6
15 INTEGER,
PARAMETER :: ncurrt=nvesel+nesum+nfcoil
17 INTEGER,
PARAMETER :: mbdry=nsilop+magpri+nrogow
19 INTEGER,
PARAMETER :: nbwork=nsilop
20 INTEGER,
PARAMETER :: kxiter=100
21 INTEGER,
PARAMETER :: nlimit=120,nlimbd=6
22 INTEGER,
PARAMETER :: msbdry=mbdry+nsilop+nfcoil+1,
24 INTEGER,
PARAMETER :: nrsma2=2*nrsmat
26 INTEGER,
PARAMETER :: nwf=nw
27 INTEGER,
PARAMETER :: nxtram=10,nxtrap=npoint
28 INTEGER,
PARAMETER :: nxtlim=9,nco2v=3,nco2r=2
29 INTEGER,
PARAMETER :: nslit=4,nangle=16
31 INTEGER,
PARAMETER :: mxmagpri=100,mxnfcoil=50,mxnsilop=100,
37 common/inaver/iavem,iaved,iavev
38 real*8 :: rotam(npca,npca),coef(ncoef,nparm),pmean(nparm),
39 . psigma(nparm),qmean(npca),qsigma(npca),lcoef,nlcoef,
40 . eigen(npca),cfwtsi(mxnsilop),cfwtmp2(mxmagpri),mslref
41 real*8 :: rotamd(npca,npca),coefd(ncoef,nparm),pmeand(nparm),
42 . psigmad(nparm),qmeand(npca),qsigmad(npca)
43 integer :: lcoefd,nlcoefd
44 . eigend(npca),cfwtsid(mxnsilop),cfwtmp2d(mxmagpri)
46 real*8 :: ivesel,volecs(mxnesum),volecc(mxnesum)
47 . ,rsisvs(nvesel),efreq,sumvs0,volfcs(mxnfcoil)
48 . ,volfcc(mxnfcoil),rsisec(mxnesum),powvs,pvscur,pscurn,ppscur
49 real*8 :: s1(ntime),s2(ntime),s3(ntime),bpolav(ntime)
50 real*8 :: bpol(npoint),plengt(npoint),bpolz(npoint),siar,siaz
51 real*8 :: eout(ntime),rout(ntime),zout(ntime),doutu(ntime)
52 . ,doutl(ntime),aout(ntime),vout(ntime),betat(ntime),otop(ntime)
53 . ,betap(ntime),ali(ntime),oleft(ntime),oright(ntime),qsta(ntime)
54 . ,rcurrt(ntime),zcurrt(ntime),qout(ntime),olefs(ntime)
55 . ,orighs(ntime),otops(ntime),sibdry(ntime),areao(ntime)
56 . ,wplasm(ntime),elongm(ntime),qqmagx(ntime),terror(ntime)
57 . ,rmagx(ntime),zmagx(ntime),obott(ntime),obots(ntime)
58 . ,alpha(ntime),rttt(ntime),dbpli(ntime),delbp(ntime)
59 . ,rseps(2,ntime),zseps(2,ntime),sepexp(ntime),shearb(ntime)
60 . ,xtch(ntime),ytch(ntime),qpsib(ntime),vertn(ntime),aaq1(ntime)
61 . ,aaq2(ntime),aaq3(ntime),btaxp(ntime),btaxv(ntime)
62 . ,simagx(ntime),jerror(ntime),seplim(ntime)
63 . ,wbpol(ntime),taumhd(ntime),betapd(ntime),betatd(ntime)
64 . ,alid(ntime),wplasmd(ntime),taudia(ntime),wbpold(ntime)
65 . ,qmerci(ntime),slantu(ntime),slantl(ntime),zeff(ntime)
66 . ,zeffr(ntime),tave(ntime),civs(ntime),civst(ntime),
67 . cipmp2(ntime),frvst(ntime),fzvst(ntime),vsurfa(ntime),
68 . wpdot(ntime),wbdot(ntime),rvsin(ntime),zvsin(ntime),
69 . rvsout(ntime),zvsout(ntime),cjor95(ntime),pp95(ntime),
70 . ssep(ntime),yyy2(ntime),xnnc(ntime),cprof(ntime),qqmin(ntime)
71 . ,chigamt(ntime),cjor0(ntime),fexpan(ntime),ssi01(ntime),
72 . fexpvs(ntime),sepnose(ntime),ssi95(ntime),rqqmin(ntime)
73 . ,cjor99(ntime),cj1ave(ntime)
74 . ,rmidin(ntime),rmidout(ntime),psurfa(ntime)
75 real*8 :: zuperts(ntime),zlowerts,rmajts
76 real*8 :: xout(npoint),yout(npoint),dpsi,rymin,rymax,
77 . zxmin,zxmax,xmin,xmax,ymin,ymax,rmaxis,zmaxis,nfound,emaxis
78 real*8 :: psi(nwnh),psibry,simag,sidif,xpsi(nwnh),eouter
79 real*8 :: csilop(mxnsilop,ntime),crogow(nrogow,ntime),
80 . cmpr2(mxmagpri,ntime),cpasma(ntime),xndnt(ntime)
81 . ,cbetap,cli,cqqxis,cbetat,ci0
82 . ,ccbrsp(mxnfcoil,ntime)
83 real*8 :: pi,tmu,twopi,ibunmn,tmu2,errcut
84 integer :: kinput,jwake
87 real*8 :: rfila(npcurn),zfila(npcurn)
89 integer :: nin,nout,ntty,nrsppc,nrspfc,nttyo,neqdsk,nffile,nsave
90 real*8 :: brsp(nrsmat),tsaisq(ntime),cond
91 integer :: ishot,itime,nparam,nfnpcr
93 real*8 :: bcentr(ntime),rcentr
94 real*8 :: serror,fwtsi(mxnsilop),fwtmp2(mxmagpri),
95 . fitwgt(nrogow),fwtcur,elomin,fwtbp,fwtdlc,fwtfc(mxnfcoil),
96 . rwtsi(mxnsilop),rwtmp2(mxmagpri)
97 real*8 :: silopt(ntime,mxnsilop),expmpi(ntime,mxmagpri),
98 . prexpt(ntime,nrogow),pasmat(ntime),xtime(ntime),
99 . ierpsi(mxnsilop),ierpr(nrogow),iermpi(mxmagpri),ierpla
100 . ,psibit(mxnsilop),prbit(nrogow),bitmpi(mxmagpri),bitip
101 . ,fccurt(ntime,mxnfcoil),vloopt(ntime),psiref(ntime)
102 . ,denvt(ntime,nco2v),denrt(ntime,nco2r),eccurt(ntime,mxnesum)
103 . ,bitfc(mxnfcoil),ierfc(mxnfcoil),diamag(ntime)
104 . ,sigdia(ntime),ierdia(3),pbinj(ntime)
106 real*8 :: saisil(mxnsilop),saimpi(mxmagpri),saipr(nrogow)
107 real*8 :: dfluxc(ntime),sigdlc,rspdlc(nffcur),cdflux(ntime)
108 real*8 :: mxiter,idone,error,errorm,nitera,nxiter,ixnn,errmin
109 real*8 :: rco2r(nco2r,ntime),rco2v(nco2v,ntime),chordv(nco2v)
110 . ,chordr(nco2r),zcentr,dco2r(ntime,nco2r)
111 . ,dco2v(ntime,nco2v)
113 integer :: nvernum,lflag
114 real*8 :: kflag(30),ktimeo
115 real*8 :: darea,drgrid,dzgrid,qmaxis,cratio,dfsqe
116 real*8 :: rxray(nslit),zxray(nslit),xangle(nangle,nslit)
117 integer :: icondn,itek,kdata,itrace,ierchk,iconvr,ixray
118 . ,ichisq,modep,ibound,ibatch,idite,ilaser,islant
119 . ,chimin,cutip,lookfw,iplotvs,iplotmp,iplotsi
120 . ,mplotmp(3),mplotsi(3),ifitvs,idiamag,ipca,iheader,keqdsk
121 . ,negcur,itest_nc,kbound,kplot10
122 real*8 :: nqaxis,isumip,sumip,fbetap,fli,fbetat
123 real*8 :: rsi(mxnsilop),zsi(mxnsilop),wsi(mxnsilop)
125 real*8 :: as(mxnsilop),as2(mxnsilop)
127 real*8 :: rf(mxnfcoil),zf(mxnfcoil),wf(mxnfcoil),hf(mxnfcoil),
128 . af(mxnfcoil),af2(mxnfcoil),rsisfc(mxnfcoil)
129 real*8 :: xmp2(mxmagpri),ymp2(mxmagpri),
130 . amp2(mxmagpri),smp2(mxmagpri),nsmp2,patmp2(mxmagpri)
131 real*8 :: scrape,nextra,ixstrt,iextra,iprobe,ifcoil,iecoil
133 real*8 :: limitr,xlim(nlimit),ylim(nlimit),iplim,limfag
134 . ,limitr_180,xlim_180(nlimit),ylim_180(nlimit)
135 real*8 :: xlmin,xlmax,ylmin,ylmax,limid,limup,limbot
136 real*8 :: ipsi(ntime),irogw(ntime),imag2(ntime),iplasm(ntime)
138 real*8 :: iopen,ifread,errbry,xncoil,itcoil,ifcurr
139 real*8 :: nbbbs,rbbbs(mbdry),zbbbs(mbdry)
140 real*8 :: cfcoil,fcsum(mxnfcoil),fczero(mxnfcoil),ifref
142 real*8 :: xlimbd(nlimbd),ylimbd(nlimbd)
143 integer :: nsilop0,magpri0,nfcoil0,nesum0,turnfc(nfcoil),turnbc
144 dimension pcurrt(npcurn)
145 equivalence(pcurrt(1),brsp(mxnfcoil+1))
146 dimension :: mfvers(2)
147 character mfvers*5,terminal*100
148 dimension :: vsname(nvesel),mpnam2(mxmagpri),lpname(mxnsilop)
149 character*10 vsname,mpnam2,lpname
150 character*15 ifname(ntime)
152 character*3 limloc(ntime)
154 character cshot*6,mfitpop*12
155 integer erflag(ntime,30)
156 data nhist/37/,nslref/1/
157 data mfvers(1)/
'07/19'/,mfvers(2)/
'/99 '/
158 data turnfc/5*58,2*55,58,55,5*58,2*55,58,55/,turnbc/144/