aboutsummaryrefslogtreecommitdiff
path: root/src/XFOIL.INC
blob: 84b23c6ac9c0444dfd795ebf37695dcc905331a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
C
C====  XFOIL code global INCLUDE file  =====
C
C------ Primary dimensioning limit parameters
C IQX   number of surface panel nodes + 6
C IWX   number of wake panel nodes
C IPX   number of Qspec(s) distributions
C ISX   number of airfoil sides
C
C------ Derived dimensioning limit parameters
C IBX   number of buffer airfoil nodes
C IMX   number of complex mapping coefficients  Cn
C IZX   number of panel nodes (airfoil + wake)
C IVX   number of nodes along BL on one side of airfoil and wake
C NAX   number of points in stored polar
C NPX   number of polars and reference polars
C NFX   number of points in one reference polar
C NTX   number of points in thickness/camber arrays
C
C---- include polar variable indexing parameters
      INCLUDE 'PINDEX.INC'
C
      PARAMETER (IQX=360, IPX=5, ISX=2)
      PARAMETER (IWX=IQX/8+2)
      PARAMETER (IBX=4*IQX)
      PARAMETER (IZX=IQX+IWX)
      PARAMETER (IVX=IQX/2 + IWX + 50)
      PARAMETER (NAX=800,NPX=12,NFX=128)
      PARAMETER (NTX=2*IBX)
      CHARACTER*32 LABREF
      CHARACTER*64 FNAME, PFNAME, PFNAMX, ONAME, PREFIX, OCNAME
      CHARACTER*48 NAME, NAMEPOL, CODEPOL, NAMEREF
      CHARACTER*80 ISPARS
      LOGICAL OK,LIMAGE,
     &        LGAMU,LQINU,SHARP,LVISC,LALFA,LWAKE,LPACC,
     &        LBLINI,LIPAN,LQAIJ,LADIJ,LWDIJ,LCPXX,LQVDES,LQREFL,
     &        LQSPEC,LVCONV,LCPREF,LCLOCK,LPFILE,LPFILX,LPPSHO,
     &        LBFLAP,LFLAP,LEIW,LSCINI,LFOREF,LNORM,LGSAME,LDCPLOT,
     &        LPLCAM, LQSYM ,LGSYM , LQGRID, LGGRID, LGTICK, 
     &        LQSLOP,LGSLOP, LCSLOP, LQSPPL, LGEOPL, LGPARM,
     &        LCPGRD,LBLGRD, LBLSYM, LCMINP, LHMOMP, LFREQP
      LOGICAL LPLOT,LSYM,LIQSET,LCLIP,LVLAB,LCURS,LLAND
      LOGICAL LPGRID, LPCDW, LPLIST, LPLEGN, LAECEN, LPCDH, LPCMDOT
      LOGICAL TFORCE
      REAL NX, NY, MASS, MINF1, MINF, MINF_CL, MVISC, MACHP1
      INTEGER RETYP, MATYP, AIJPIV
      CHARACTER*1 VMXBL
C
C---- dimension temporary work and storage arrays (EQUIVALENCED below)
      REAL W1(6*IQX),W2(6*IQX),W3(6*IQX),W4(6*IQX),
     &     W5(6*IQX),W6(6*IQX),W7(6*IQX),W8(6*IQX)
      REAL BIJ(IQX,IZX), CIJ(IWX,IQX)
C
      COMMON/CR01/ VERSION
      COMMON/CC01/ FNAME,
     &             NAME,ISPARS,ONAME,PREFIX,OCNAME,
     &             PFNAME(NPX),PFNAMX(NPX),
     &             NAMEPOL(NPX), CODEPOL(NPX),
     &             NAMEREF(NPX)
      COMMON/QMAT/ Q(IQX,IQX),DQ(IQX),
     &             DZDG(IQX),DZDN(IQX),DZDM(IZX),
     &             DQDG(IQX),DQDM(IZX),QTAN1,QTAN2,
     &             Z_QINF,Z_ALFA,Z_QDOF0,Z_QDOF1,Z_QDOF2,Z_QDOF3
      COMMON/CR03/ AIJ(IQX,IQX),DIJ(IZX,IZX)
      COMMON/CR04/ QINV(IZX),QVIS(IZX),CPI(IZX),CPV(IZX),
     &             QINVU(IZX,2), QINV_A(IZX)
      COMMON/CR05/ X(IZX),Y(IZX),XP(IZX),YP(IZX),S(IZX),
     &             SLE,XLE,YLE,XTE,YTE,CHORD,YIMAGE,
     &             WGAP(IWX),WAKLEN
      COMMON/CR06/ GAM(IQX),GAMU(IQX,2),GAM_A(IQX),SIG(IZX),
     &             NX(IZX),NY(IZX),APANEL(IZX),
     &             SST,SST_GO,SST_GP,
     &             GAMTE,GAMTE_A,
     &             SIGTE,SIGTE_A,
     &             DSTE,ANTE,ASTE
      COMMON/CR07/ SSPLE,
     &             SSPEC(IBX),XSPOC(IBX),YSPOC(IBX),
     &             QGAMM(IBX),
     &             QSPEC(IBX,IPX),QSPECP(IBX,IPX),
     &             ALGAM,CLGAM,CMGAM,
     &             ALQSP(IPX),CLQSP(IPX),CMQSP(IPX),
     &             QF0(IQX),QF1(IQX),QF2(IQX),QF3(IQX),
     &             QDOF0,QDOF1,QDOF2,QDOF3,CLSPEC,FFILT
      COMMON/CI01/ IQ1,IQ2,NSP,NQSP,KQTARG,IACQSP,NC1,NNAME,NPREFIX
      COMMON/CR09/ ADEG,ALFA,AWAKE,MVISC,AVISC,
     &             XCMREF,YCMREF,
     &             CL,CM,CD,CDP,CDF,CL_ALF,CL_MSQ,
     &             PSIO,CIRC,COSA,SINA,QINF,
     &             GAMMA,GAMM1,
     &             MINF1,MINF,MINF_CL,TKLAM,TKL_MSQ,CPSTAR,QSTAR,
     &             CPMN,CPMNI,CPMNV,XCPMNI,XCPMNV
      COMMON/CI03/ NCPREF, NAPOL(NPX), NPOL, IPACT, NLREF, 
     &             ILINP(NPX),ICOLP(NPX),
     &             ISYMR(NPX),ICOLR(NPX),
     &             IMATYP(NPX),IRETYP(NPX), NXYPOL(NPX),
     &             NPOLREF, NDREF(4,NPX),
     &             IPOL(IPTOT), NIPOL, NIPOL0,
     &             JPOL(JPTOT), NJPOL
      COMMON/CR10/ XPREF(IQX),CPREF(IQX), VERSPOL(NPX),
     &             CPOL(NAX,IPTOT,NPX),
     &             CPOLSD(NAX,ISX,JPTOT,NPX),
     &             CPOLXY(IQX,2,NPX),
     &             MACHP1(NPX),
     &             REYNP1(NPX),
     &             ACRITP(NPX),
     &             PTRATP(NPX),
     &             ETAPP(NPX),
     &             XSTRIPP(ISX,NPX),
     &             CPOLREF(NFX,2,4,NPX)
      COMMON/CC02/ LABREF
C
      COMMON/CR11/ PI,HOPI,QOPI,DTOR
      COMMON/CR12/ CVPAR,CTERAT,CTRRAT,XSREF1,XSREF2,XPREF1,XPREF2
      COMMON/CI04/ N,NB,NW,NPAN,IST,KIMAGE,KDELIM,
     &             ITMAX,NSEQEX,RETYP,MATYP,AIJPIV(IQX),
     &             IDEV,IDEVRP,IPSLU,NCOLOR,
     &             ICOLS(ISX),NOVER, NCM,NTK
      COMMON/CR13/ SIZE,SCRNFR,PLOTAR, PFAC,UFAC,QFAC,VFAC,
     &             XWIND,YWIND,
     &             XPAGE,YPAGE,XMARG,YMARG,
     &             CH, CHG, CHQ,
     &             XOFAIR,YOFAIR,FACAIR, XOFA,YOFA,FACA,UPRWT,
     &             CPMIN,CPMAX,CPDEL,
     &             UEMIN,UEMAX,UEDEL,
     &             CPOLPLF(3,4),
     &             XCDWID,XALWID,XOCWID
      COMMON/CL01/ OK,LIMAGE,SHARP,
     &             LGAMU,LQINU,LVISC,LALFA,LWAKE,LPACC,
     &             LBLINI,LIPAN,LQAIJ,LADIJ,LWDIJ,LCPXX,LQVDES,LQREFL,
     &             LQSPEC,LVCONV,LCPREF,LCLOCK,LPFILE,LPFILX,LPPSHO,
     &             LBFLAP,LFLAP,LEIW,LSCINI,LFOREF,LNORM,LGSAME,LDCPLOT,
     &             LPLCAM,LQSYM ,LGSYM, 
     &             LQGRID,LGGRID,LGTICK,
     &             LQSLOP,LGSLOP,LCSLOP,LQSPPL,LGEOPL,LGPARM,
     &             LCPGRD,LBLGRD,LBLSYM,
     &             LPLOT,LSYM,LIQSET,LCLIP,LVLAB,LCURS,LLAND,
     &             LPGRID,LPCDW,LPLIST,LPLEGN,LAECEN,LPCDH,LPCMDOT,
     &             LCMINP, LHMOMP, LFREQP
      COMMON/CR14/ XB(IBX),YB(IBX),
     &             XBP(IBX),YBP(IBX),SB(IBX),SNEW(5*IBX),
     &             XBF,YBF,XOF,YOF,HMOM,HFX,HFY,
     &             XBMIN,XBMAX,YBMIN,YBMAX,
     &             SBLE,CHORDB,AREAB,RADBLE,ANGBTE,
     &             EI11BA,EI22BA,APX1BA,APX2BA,
     &             EI11BT,EI22BT,APX1BT,APX2BT,
     &             THICKB,CAMBRB,
     &     XCM(2*IBX),YCM(2*IBX),SCM(2*IBX),XCMP(2*IBX),YCMP(2*IBX),
     &     XTK(2*IBX),YTK(2*IBX),STK(2*IBX),XTKP(2*IBX),YTKP(2*IBX)
C
      COMMON/CR15/ XSSI(IVX,ISX),UEDG(IVX,ISX),UINV(IVX,ISX),
     &             MASS(IVX,ISX),THET(IVX,ISX),DSTR(IVX,ISX),
     &             CTAU(IVX,ISX),DELT(IVX,ISX),TSTR(IVX,ISX),
     &             USLP(IVX,ISX),GUXQ(IVX,ISX),GUXD(IVX,ISX),
     &             TAU(IVX,ISX),DIS(IVX,ISX),CTQ(IVX,ISX),
     &             VTI(IVX,ISX),
     &             REINF1,REINF,REINF_CL,ACRIT,
     &             XSTRIP(ISX),XOCTR(ISX),YOCTR(ISX),XSSITR(ISX),
     &             UINV_A(IVX,ISX)
      COMMON/CI05/ IBLTE(ISX),NBL(ISX),IPAN(IVX,ISX),ISYS(IVX,ISX),NSYS,
     &             ITRAN(ISX), IDAMP
      COMMON/CL02/ TFORCE(ISX)
      COMMON/CR17/ RMSBL,RMXBL,RLX,VACCEL
      COMMON/CI06/ IMXBL,ISMXBL
      COMMON/CC03/ VMXBL
      COMMON/CR18/ XSF,YSF,XOFF,YOFF,
     &             XGMIN,XGMAX,YGMIN,YGMAX,DXYG,
     &             XCMIN,XCMAX,YCMIN,YCMAX,DXYC,DYOFFC,
     &             XPMIN,XPMAX,YPMIN,YPMAX,DXYP,DYOFFP,
     &             YSFP,GTICK
      COMMON/CR19/
     &     XCADD(NTX), YCADD(NTX), YCADDP(NTX),
     &     XPADD(NTX), YPADD(NTX), YPADDP(NTX),
     &     XCAM(NTX),
     &     YCAM(NTX), YCAMP(NTX),
     &     PCAM(NTX), PCAMP(NTX)
      COMMON/CI19/ NCAM
C
      COMMON/VMAT/ VA(3,2,IZX),VB(3,2,IZX),VDEL(3,2,IZX),
     &             VM(3,IZX,IZX),VZ(3,2)
C
C
C---- save storage space
      EQUIVALENCE (Q(1,1 ),W1(1)), (Q(1,7 ),W2(1)),
     &            (Q(1,13),W3(1)), (Q(1,19),W4(1)),
     &            (Q(1,25),W5(1)), (Q(1,31),W6(1)),
     &            (Q(1,37),W7(1)), (Q(1,43),W8(1))
      EQUIVALENCE (VM(1,1,1),BIJ(1,1)), (VM(1,1,IZX/2),CIJ(1,1))
C
C
C   VERSION     version number of this XFOIL implementation
C
C   FNAME       airfoil data filename
C   PFNAME(.)   polar append filename
C   PFNAMX(.)   polar append x/c dump filename
C   ONAME       default overlay airfoil filename
C   PREFIX      default filename prefix
C   OCNAME      default Cp(x) overlay filename
C   NAME        airfoil name
C
C   ISPARS      ISES domain parameters  (not used in XFOIL)
C
C   Q(..)       generic coefficient matrix
C   DQ(.)       generic matrix righthand side
C
C   DZDG(.)     dPsi/dGam
C   DZDN(.)     dPsi/dn
C   DZDM(.)     dPsi/dSig
C
C   DQDG(.)     dQtan/dGam
C   DQDM(.)     dQtan/dSig
C   QTAN1       Qtan at alpha =  0 deg.
C   QTAN2       Qtan at alpha = 90 deg.
C
C   Z_QINF      dPsi/dQinf
C   Z_ALFA      dPsi/dalfa
C   Z_QDOF0     dPsi/dQdof0
C   Z_QDOF1     dPsi/dQdof1
C   Z_QDOF2     dPsi/dQdof2
C   Z_QDOF3     dPsi/dQdof3
C
C   AIJ(..)     dPsi/dGam  influence coefficient matrix (factored if LQAIJ=t)
C   BIJ(..)     dGam/dSig  influence coefficient matrix
C   CIJ(..)     dQtan/dGam influence coefficient matrix
C   DIJ(..)     dQtan/dSig influence coefficient matrix
C   QINV(.)     tangential velocity due to surface vorticity
C   QVIS(.)     tangential velocity due to surface vorticity & mass sources
C   QINVU(..)   QINV for alpha = 0, 90 deg.
C   QINV_A(.)   dQINV/dalpha
C
C   X(.),Y(.)   airfoil (1<i<N) and wake (N+1<i<N+NW) coordinate arrays
C   XP(.),YP(.) dX/dS, dY/dS arrays for spline evaluation
C   S(.)        arc length along airfoil (spline parameter)
C   SLE         value of S at leading edge
C   XLE,YLE     leading  edge coordinates
C   XTE,YTE     trailing edge coordinates
C   WGAP(.)     thickness of "dead air" region inside wake just behind TE
C   WAKLEN      wake length to chord ratio
C
C   GAM(.)      surface vortex panel strength array
C   GAMU(.2)    surface vortex panel strength arrays for alpha = 0, 90 deg.
C   GAM_A(.)    dGAM/dALFA
C   SIG(.)      surface and wake mass defect array
C
C   NX(.),NY(.) normal unit vector components at airfoil and wake coordinates
C   APANEL(.)   surface and wake panel angle array (+ counterclockwise)
C
C   SST         S value at stagnation point
C   SST_GO      dSST/dGAM(IST)
C   SST_GP      dSST/dGAM(IST+1)
C
C   GAMTE       vortex panel strength across finite-thickness TE
C   SIGTE       source panel strength across finite-thickness TE
C   GAMTE_A     dGAMTE/dALFA
C   SIGTE_A     dSIGTE/dALFA
C   DSTE        TE panel length
C   ANTE,ASTE   projected TE thickness perp.,para. to TE bisector
C   SHARP       .TRUE.  if  DSTE.EQ.0.0 ,  .FALSE. otherwise
C
C   SSPEC(.)    normalized arc length around airfoil (QSPEC coordinate)
C   XSPOC(.)    x/c at SSPEC points
C   YSPOC(.)    y/c at SSPEC points
C   QSPEC(..)   specified surface velocity for inverse calculations
C   QSPECP(..)  dQSPEC/dSSPEC
C   QGAMM(.)    surface velocity for current airfoil geometry
C   SSPLE       SSPEC value at airfoil nose
C
C   IQ1,IQ2     target segment endpoint indices on Qspec(s) plot
C   NSP         number of points in QSPEC array
C   NQSP        number Qspec arrays
C   IACQSP      1:  ALQSP is prescribed for Qspec arrays
C               2:  CLQSP is prescribed for Qspec arrays
C   NC1         number of circle plane points, must be 2**n - 1
C
C   NNAME       number of characters in airfoil name
C   NPREFIX     number of characters in default filename prefix
C
C   ALQSP(.)    alpha,CL,CM corresponding to QSPEC distributions
C   CLQSP(.)    
C   CMQSP(.)    
C   ALGAM       alpha,CL,CM corresponding to QGAMM distribution
C   CLGAM
C   CMGAM
C
C   QF0(.)      shape function for QSPEC modification
C   QF1(.)        "
C   QF2(.)        "
C   QF3(.)        "
C   QDOF0       shape function weighting coefficient (inverse DOF)
C   QDOF1         "
C   QDOF2         "
C   QDOF3         "
C   CLSPEC      specified CL
C   FFILT       circle-plane mapping filter parameter
C
C   ADEG,ALFA   angle of attack in degrees, radians
C   AWAKE       angle of attack corresponding to wake geometry (radians)
C   AVISC       angle of attack corresponding to BL solution   (radians)
C   MVISC       Mach number corresponding to BL solution
C   CL,CM       current CL and CM calculated from GAM(.) distribution
C   CD          current CD from BL solution
C   CDF         current friction CD from BL solution
C   CL_ALF      dCL/dALFA
C   CL_MSQ      dCL/d(MINF^2)
C
C   PSIO        streamfunction inside airfoil
C   CIRC        circulation
C   COSA,SINA   cos(ALFA), sin(ALFA)
C   QINF        freestream speed    (defined as 1)
C   GAMMA,GAMM1 Gas constant Cp/Cv, Cp/Cv - 1
C   MINF1       freestream Mach number at CL=1
C   MINF        freestream Mach number at current CL
C   MINF_CL     dMINF/dCL
C   TKLAM       Karman-Tsien parameter Minf^2 / [1 + sqrt(1-Minf^2)]^2
C   TKL_MSQ     d(TKLAM)/d(MINF^2)
C   CPSTAR      sonic pressure coefficient
C   QSTAR       sonic speed
C
C   NCPREF      number of reference Cp vs x/c points
C   XPREF(.)    x/c array corresponding to reference Cp data array
C   CPREF(.)    reference Cp data array
C   LABREF      reference Cp data descriptor string
C
C   NLREF       number of characters in LABREF string
C   NAPOL(.)    number of points in each stored polar
C   NPOL        number of stored polars
C   IPACT       index of "active" polar being accumulated (0 if none are)
C   ILINP(.)    line style for each polar
C   ICOLP(.)    color for each polar
C   ISYMR(.)    symbol type for each reference polar
C   ICOLR(.)    color for each reference polar
C
C   NDREF(..)   number of points in each stored reference polar
C   NPOLREF     number of stored reference polars
C
C   VERSPOL(.)  version number of generating-code for each polar
C   CPOL(...)   CL,CD,and other parameters for each polar
C   CPOLXY(.1.) x,y coordinates of airfoil geometry which generated each polar
C   CPOLXY(.2.)
C   NXYPOL(.)   number of x,y points in CPOLXY array
C
C   PXTR(..)    transition locations for each polar
C   NAMEPOL(.)  airfoil names for each polar
C   CODEPOL(.)  generating-code names for each polar
C
C   NAMEREF(.)  name label of reference polar
C
C   PI          3.1415926...
C   HOPI,QOPI   1/(2 Pi) ,  1/(4 Pi)
C   DTOR        Pi / 180    (degrees to radians conversion factor)
C
C   CVPAR       curvature attraction parameter for airfoil paneling
C               0 = uniform panel node spacing around airfoil
C              ~1 = panel nodes strongly bunched in areas of large curvature
C   CTERAT      TE panel density / LE panel density ratio
C   CTRRAT      local refinement panel density / LE panel density ratio
C   XSREF1-2    suction  side local refinement x/c limits
C   XPREF1-2    pressure side local refinement x/c limits
C
C   N           number of points on airfoil
C   NB          number of points in buffer airfoil array
C   NW          number of points in wake
C   NPAN        default/specified number of points on airfoil
C
C   KDELIM      type of delimiter for coordinate file output
C                0 = spaces
C                1 = commas
C                2 = tabs
C
C   IST         stagnation point lies between S(IST), S(IST+1)
C   ITMAX       max number of Newton iterations
C   NSEQEX      max number of unconverged sequence points for early exit
C
C   RETYP       index giving type of Re variation with CL ...
C            ... 1  Re constant 
C            ... 2  Re ~ 1/sqrt(CL)    (fixed lift)
C            ... 3  Re ~ 1/CL          (fixed lift and dynamic pressure)
C
C   MATYP       index giving type of Ma variation with CL ...
C            ... 1  Ma constant 
C            ... 2  Ma ~ 1/sqrt(CL)    (fixed lift)
C
C   AIJPIV(.)   pivot index array for LU factoring routine
C
C   IDEV        "device" number for normal screen plotting
C   IDEVRP      "device" number for replotting (typically for hardcopy)
C   IPSLU       PostScript file specifier
C   NCOLOR      Number of defined colors in colormap
C   ICOLS(1)    color indices of top side
C   ICOLS(2)    color indices of bottom side
C
C   NOVER       number of airfoils overlaid on GDES geometry plot
C
C   SCRNFR      screen fraction taken up by initial plot window
C   SIZE        plot width (inches)
C   PLOTAR      plot aspect ratio
C   XWIND,YWIND window size in inches
C   XPAGE,YPAGE plot-page size in inches (for hardcopy)
C   XMARG,YMARG margin dimensions in inches
C   PFAC        scaling factor for  Cp
C   UFAC        scaling factor for  Ue
C   QFAC        scaling factor for  q  (surface speed)
C   VFAC        scaling factor for  Cp vectors
C   CH          character width / plot size  ratio
C   CHG         character width / plot size  ratio for geometry plot
C   CHQ         character width / plot size  ratio for Qspec(s) plot
C
C   XOFAIR      x offset for airfoil in  Cp vs x plots
C   YOFAIR      y offset for airfoil in  Cp vs x plots
C   FACAIR      scale factor for airfoil in  Cp vs x plots
C   XOFA        x offset for airfoil in  Cp vs x plots in airfoil units
C   YOFA        y offset for airfoil in  Cp vs x plots in airfoil units
C   FACA        scale factor for airfoil in  Cp vs x plots  in airfoil units
C   UPRWT       u/Qinf scale factor for profile plotting
C   CPMAX       max Cp  in  Cp vs x plots
C   CPMIN       min Cp  in  Cp vs x plots
C   CPDEL       delta Cp  in  Cp vs x plots
C   UEMAX       max Ue  in  Ue vs x plots
C   UEMIN       min Ue  in  Ue vs x plots
C   UEDEL       delta Ue  in  Ue vs x plots
C
C   CPOLPLF(1,ICD)  min CD in CD-CL polar plot
C   CPOLPLF(2,ICD)  max CD in CD-CL polar plot
C   CPOLPLF(3,ICD)  delta CD in CD-CL polar plot
C
C   XCDWID      width of CD   -CL polar plot
C   XALWID      width of alpha-CL polar plot
C   XOCWID      width of Xtr/c-CL polar plot
C
C   OK          user question response
C   LIMAGE      .TRUE. if image airfoil is present
C   LGAMU       .TRUE. if GAMU  arrays exist for current airfoil geometry
C   LQINU       .TRUE. if QINVU arrays exist for current airfoil geometry
C   LVISC       .TRUE. if viscous option is invoked
C   LALFA       .TRUE. if alpha is specifed, .FALSE. if CL is specified
C   LWAKE       .TRUE. if wake geometry has been calculated
C   LPACC       .TRUE. if each point calculated is to be saved
C   LBLINI      .TRUE. if BL has been initialized
C   LIPAN       .TRUE. if BL->panel pointers IPAN have been calculated
C   LQAIJ       .TRUE. if dPsi/dGam matrix has been computed and factored
C   LADIJ       .TRUE. if dQ/dSig matrix for the airfoil has been computed
C   LWDIJ       .TRUE. if dQ/dSig matrix for the wake has been computed
C   LQVDES      .TRUE. if viscous Ue is to be plotted in QDES routines
C   LQSPEC      .TRUE. if Qspec has been initialized
C   LQREFL      .TRUE. if reflected Qspec is to be plotted in QDES routines
C   LVCONV      .TRUE. if converged BL solution exists
C   LCPREF      .TRUE. if reference data is to be plotted on Cp vs x/c plots
C   LCLOCK      .TRUE. if source airfoil coordinates are clockwise
C   LPFILE      .TRUE. if polar file is ready to be appended to
C   LPFILX      .TRUE. if polar dump file is ready to be appended to
C   LPPSHO      .TRUE. if CL-CD polar is plotted during point sequence
C   LBFLAP      .TRUE. if buffer  airfoil flap parameters are defined
C   LFLAP       .TRUE. if current airfoil flap parameters are defined
C   LEIW        .TRUE. if unit circle complex number array is initialized
C   LSCINI      .TRUE. if old-airfoil circle-plane arc length s(w) exists
C   LFOREF      .TRUE. if CL,CD... data is to be plotted on Cp vs x/c plots
C   LNORM       .TRUE. if input buffer airfoil is to be normalized
C   LGSAME      .TRUE. if current and buffer airfoils are identical
C   LDCPLOT     .TRUE. if delta(Cp) plot is to be plotted in CAMB menu
C
C   LPLCAM      .TRUE. if thickness and camber are to be plotted
C   LQSYM       .TRUE. if symmetric Qspec will be enforced
C   LGSYM       .TRUE. if symmetric geometry will be enforced
C   LQGRID      .TRUE. if grid is to overlaid on Qspec(s) plot
C   LGGRID      .TRUE. if grid is to overlaid on buffer airfoil geometry plot
C   LGTICK      .TRUE. if node tick marks are to be plotted on buffer airfoil
C   LQSLOP      .TRUE. if modified Qspec(s) segment is to match slopes
C   LGSLOP      .TRUE. if modified geometry segment is to match slopes
C   LCSLOP      .TRUE. if modified camber line segment is to match slopes
C   LQSPPL      .TRUE. if current Qspec(s) in in plot
C   LGEOPL      .TRUE. if current geometry in in plot
C   LCPGRD      .TRUE. if grid is to be plotted on Cp plots
C   LBLGRD      .TRUE. if grid is to be plotted on BL variable plots
C   LBLSYM      .TRUE. if symbols are to be plotted on BL variable plots
C   LCMINP      .TRUE. if min Cp is to be written to polar file for cavitation
C   LHMOMP      .TRUE. if hinge moment is to be written to polar file
C   LFREQP      .TRUE. if individual TS-wave frequencies are to be plotted
C
C   LPGRID      .TRUE. if polar grid overlay is enabled
C   LPCDW       .TRUE. if polar CDwave is plotted
C   LPLIST      .TRUE. if polar listing lines (at top of plot) are enabled
C   LPLEGN      .TRUE. if polar legend is enabled
C   
C   LPLOT       .TRUE. if plot page is open
C   LSYM        .TRUE. if symbols are to be plotted in QDES routines
C   LIQSET      .TRUE. if inverse target segment is marked off in QDES
C   LCLIP       .TRUE. if line-plot clipping is to be performed
C   LVLAB       .TRUE. if label is to be plotted on viscous-variable plots
C   LCURS       .TRUE. if cursor input is to be used for blowups, etc.
C   LLAND       .TRUE. if Landscape orientation for PostScript is used
C
C
C   XB(.),YB(.) buffer airfoil coordinate arrays
C   XBP(.)      dXB/dSB
C   YBP(.)      dYB/dSB
C   SB(.)       spline parameter for buffer airfoil
C   SNEW(.)     new panel endpoint arc length array
C
C   XBF,YBF     buffer  airfoil flap hinge coordinates
C   XOF,YOF     current airfoil flap hinge coordinates
C   HMOM        moment of flap about hinge point
C   HFX         x-force of flap on hinge point
C   HFY         y-force of flap on hinge point
C
C~~~~~~~~~~~~~~ properties of current buffer airfoil
C
C   XBMIN,XBMAX  limits of XB array
C   YBMIN,YBMAX  limits of YB array
C   SBLE         LE tangency-point SB location
C   CHORDB       chord
C   AREAB        area
C   RADBLE       LE radius
C   ANGBTE       TE angle  (rad)
C   
C   EI11BA       bending inertia about axis 1    x^2 dx dy
C   EI22BA       bending inertia about axis 2    y^2 dx dy
C   APX1BA       principal axis 1 angle 
C   APX2BA       principal axis 2 angle 
C
C   EI11BT       bending inertia about axis 1    x^2 t ds
C   EI22BT       bending inertia about axis 2    y^2 t ds
C   APX1BT       principal axis 1 angle 
C   APX2BT       principal axis 2 angle 
C
C   THICKB       max thickness
C   CAMBRB       max camber
C
C~~~~~~~~~~~~~~
C
C   XSSI(..)    BL arc length coordinate array on each surface
C   UEDG(..)    BL edge velocity array
C   UINV(..)    BL edge velocity array without mass defect influence
C   MASS(..)    BL mass defect array  ( = UEDG*DSTR )
C   THET(..)    BL momentum thickness array
C   DSTR(..)    BL displacement thickness array
C   TSTR(..)    BL kin. energy  thickness array
C   CTAU(..)    sqrt(max shear coefficient) array
C               (in laminar regions, log of amplification ratio)
C
C   TAU(..)     wall shear stress array                 (for plotting only)
C   DIS(..)     dissipation array                       (for plotting only)
C   CTQ(..)     sqrt(equilibrium max shear coefficient) array (  "  )
C   VTI(..)     +/-1 conversion factor between panel and BL variables
C   UINV_A(..)  dUINV/dalfa array
C 
C   REINF1      Reynolds number  Vinf c / ve  for CL=1
C   REINF       Reynolds number for current CL
C   REINF_CL    dREINF/dCL
C
C   ACRIT       log (critical amplification ratio)
C   XSTRIP(.)   transition trip  x/c locations (if XTRIP > 0),
C               transition trip -s/s_side locations (if XTRIP < 0),
C   XOCTR(.)    actual transition x/c locations
C   YOCTR(.)    actual transition y/c locations
C   XSSITR(.)   actual transition xi locations
C
C   IBLTE(.)    BL array index at trailing edge
C   NBL(.)      max BL array index
C   IPAN(..)    panel index corresponding to BL location
C   ISYS(..)    BL Newton system line number corresponding to BL location
C   NSYS        total number of lines in BL Newton system
C   ITRAN(.)    BL array index of transition interval
C   TFORCE(.)   .TRUE. if transition is forced due to transition strip
C
C   IDAMP    = 0   use original enelope e^n f(H,Rtheta) for all profiles
C            = 1   use modified enelope e^n f(H,Rtheta) for separating profile
C
C   VA,VB(...)  diagonal and off-diagonal blocks in BL Newton system
C   VZ(..)      way-off-diagonal block at TE station line
C   VM(...)     mass-influence coefficient vectors in BL Newton system
C   VDEL(..)    residual and solution vectors in BL Newton system
C
C   RMSBL       rms change from BL Newton system solution
C   RMXBL       max change from BL Newton system solution
C   IMXBL       location of max change
C   ISMXBL      index of BL side containing max change
C   VMXBL       character identifying variable with max change
C   RLX         underrelaxation factor for Newton update
C   VACCEL      parameter for accelerating BL Newton system solution
C               (any off-diagonal element < VACCEL is not eliminated,
C                which speeds up each iteration, but MAY increase
C                iteration count)
C                Can be set to zero for unadulterated Newton method
C
C   XOFF,YOFF   x and y offsets for windowing in QDES,GDES routines
C   XSF ,YSF    x and y scaling factors for windowing in QDES,GDES routines
C
C   XGMIN       airfoil grid plot limits
C   XGMAX
C   YGMIN
C   YGMAX
C   DXYG        airfoil grid-plot annotation increment
C   GTICK       airfoil-plot tick marks size (as fraction of arc length)