aboutsummaryrefslogtreecommitdiff
path: root/pkg/tbtables/cfitsio/fitsio.ps
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/tbtables/cfitsio/fitsio.ps')
-rw-r--r--pkg/tbtables/cfitsio/fitsio.ps9852
1 files changed, 9852 insertions, 0 deletions
diff --git a/pkg/tbtables/cfitsio/fitsio.ps b/pkg/tbtables/cfitsio/fitsio.ps
new file mode 100644
index 00000000..ec62e304
--- /dev/null
+++ b/pkg/tbtables/cfitsio/fitsio.ps
@@ -0,0 +1,9852 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
+%%Title: fitsio.dvi
+%%Pages: 132
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 612 792
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -N0 fitsio
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2004.12.03:1404
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+TeXDict begin 40258431 52099146 1000 600 600 (fitsio.dvi)
+@start
+%DVIPSBitmapFont: Fa cmmi10 10.95 1
+/Fa 1 63 df<126012F8B4FCEA7FC0EA1FF0EA07FCEA01FF38007FC0EB1FF0EB07FCEB01
+FF9038007FC0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1F
+F0EE07FCEE01FF9338007FC0EF1FF0EF07F8EF01FCA2EF07F8EF1FF0EF7FC0933801FF00
+EE07FCEE1FF0EE7FC04B48C7FCED07FCED1FF0ED7FC04A48C8FCEC07FCEC1FF0EC7FC049
+48C9FCEB07FCEB1FF0EB7FC04848CAFCEA07FCEA1FF0EA7FC048CBFC12FC1270363678B1
+47>62 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmbx12 12 58
+/Fb 58 122 df<ED0FFF4AB512C0020F14F0027F80903A01FFF803FC499038C000FE010F
+EB00034948497E49485B5C495A4C138001FF6E13005CA3705AEE01F893C8FCA74BB51280
+B9FCA5C69038E00003B3B0007FD9FFC1B6FCA538467EC53E>12 D<B612F8A91D097F9A25
+>45 D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07C00F0F788E1F
+>I<EE01C0EE03E01607A2160F17C0161F1780A2163F17005E167EA216FE5E15015EA215
+035EA215075E150F5EA2151F5E153F93C7FCA25D157E15FE5DA214015D14035DA214075D
+140F5DA2141F5D143F92C8FCA25C147EA214FE5C13015CA213035C13075CA2130F5C131F
+5CA2133F91C9FC5B137EA213FE5B12015BA212035BA212075B120F5BA2121F5B123F90CA
+FCA25A127E12FE5AA25A12782B647ACA38>I<EC03C01407141F147FEB03FF133FB6FCA4
+13C3EA0003B3B3ADB712FCA5264177C038>49 D<ECFFE0010F13FE013F6D7E90B612E000
+0315F82607FC0313FE3A0FE0007FFFD81F806D138048C7000F13C0488001C015E001F07F
+00FF6E13F07F17F881A46C5A6C5A6C5AC9FC17F05DA217E05D17C04B13804B1300A2ED1F
+FC4B5A5E4B5A4B5A4A90C7FC4A5A4A5AEC0FF04A5AEC3F804AC7127814FE495A494814F8
+D907E014F0495A495A49C8FC017C140149140348B7FC4816E05A5A5A5A5AB8FC17C0A42D
+417BC038>I<ECFFF0010713FF011F14C0017F14F049C66C7ED803F8EB3FFED807E06D7E
+81D80FF86D138013FE001F16C07FA66C5A6C4815806C485BC814005D5E4B5A4B5A4B5A4A
+5B020F1380902607FFFEC7FC15F815FF16C090C713F0ED3FFCED0FFEEEFF80816F13C017
+E0A26F13F0A217F8A3EA0FC0EA3FF0487EA2487EA217F0A25D17E06C5A494913C05BD83F
+80491380D81FF0491300D80FFEEBFFFE6CB612F800015D6C6C14C0011F49C7FC010113E0
+2D427BC038>I<163FA25E5E5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F
+87EC1F07143E147E147C14F8EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A48
+5A485A120F5B48C7FC123E5A12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038
+>I<0007150301E0143F01FFEB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0
+C9FCAAEC3FF001C1B5FC01C714C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D
+13804915C0497F6C4815E0C8FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D
+6C4815E05B007EC74813C0123E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6C
+B612F0C65D013F1480010F01FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13
+FC49B6FC01079038807F8090390FFC001FD93FF014C04948137F4948EBFFE048495A5A14
+00485A120FA248486D13C0EE7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000
+FF017F13E091B512F89039F9F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13
+E0A24915F0A317F85BA4127FA5123FA217F07F121FA2000F4A13E0A26C6C15C06D491380
+6C018014006C6D485A6C9038E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D
+427BC038>I<121E121F13FC90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA
+3F00007C157E5E00785D15014B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A1403
+5D14074A5AA2141F5D143FA2147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F
+447AC238>I<EC7FF00103B5FC010F14C0013F14F090397F801FFC3A01FC0003FE48486D
+7E497F4848EC7F80163F484815C0A2001F151FA27FA27F7F01FE143F6D158002C0137F02
+F014006C01FC5B6E485A6C9038FF83FCEDE7F86CECFFE06C5D6C92C7FC6D14C06D80010F
+14F882013F8090B7FC48013F14802607FC0F14C0260FF80314E04848C6FC496D13F0003F
+141F48481307496D13F8150000FF157F90C8123F161F160FA21607A36D15F0127F160F6D
+15E06C6C141F6DEC3FC06C6CEC7F80D80FFE903801FF003A07FFC00FFE6C90B55AC615F0
+013F14C0010F91C7FC010013F02D427BC038>I<EC7FF0903807FFFE011F6D7E017F14E0
+9039FFE03FF0489038800FF848496C7E48488048486D7E001F80003F1680A2484815C081
+17E0A212FF17F0A617F8A45D127FA3003F5CA26C7E5D6C6C5B12076C6C133E6CEBC07C6C
+EBFFF8013F5B010F01C013F00101130090C8FCA217E05DA2EA03C0D80FF015C0487E486C
+491380A217004B5A150F5E49495A6C48495A01C0EBFFE0260FF0035B6CB65A6C4AC7FC6C
+14F86C6C13E0D907FEC8FC2D427BC038>I<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7F
+FCEA3FF8EA1FF0EA07C0C7FCAEEA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA
+1FF0EA07C00F2C78AB1F>I<EE1F80A24C7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F
+169F031F80161F82033F80ED3E07037E80157C8203FC804B7E02018115F0820203814B13
+7F0207815D173F020F814B7F021F8292C77EA24A82023E80027E82027FB7FCA291B87EA2
+498302F0C8FCA20103834A157F0107834A153FA249488284011F8491C97E4984133E017E
+82B6020FB612F0A54C457CC455>65 D<B9FC18F018FE727E19E026003FFCC700077F0501
+7F716C7E727E727EA2721380A37213C0A74E1380A24E1300A24E5A4E5A4E5A4D5B05075B
+94B5128091B700FCC7FC18F018FF19E002FCC7000113F8716C7EF01FFE727E7213801AC0
+7213E0A27213F0A31AF8A71AF0A2601AE0604E13C0604E138095B5120005075BBA12F861
+19C04EC7FC18E045447CC350>I<DCFFF01470031F01FF14F04AB6EAE0010207EDF80302
+3FEDFE0791B539E001FF0F4949C7EA3F9F010701F0EC0FFF4901C0804990C87E49488149
+48814948167F4849163F4849161F5A4A160F485B19074890CAFC19035A5BA2007F1801A3
+4994C7FC12FFAE127F7F1AF0A2123FA27F6C18011AE06C7F19036C6D17C06E16077E6C6D
+EE0F806C6DEE1F006D6C5E6D6C167E6D6C6C5D6D6D4A5A6D01F0EC07F0010101FEEC1FE0
+6D903AFFF001FF80023F90B6C7FC020715FC020115F0DA001F1480030001F8C8FC44467A
+C451>I<B9FC18F018FE727E19E026003FFEC7001F13F805017F9438003FFF060F7F727F
+727F727F84737E737EA2737EA2737EA21B80A2851BC0A51BE0AD1BC0A51B8061A21B0061
+62193F624F5A19FF624E5B06075B4E5B063F90C7FC4DB45A050F13F8BA5A19C04EC8FC18
+F095C9FC4B447CC356>I<BA12F8A485D8001F90C71201EF003F180F180318011800A219
+7E193EA3191EA21778A285A405F890C7FCA316011603161F92B5FCA5ED001F1603160116
+00A2F101E01778A2F103C0A494C7FC1907A21A80A2190FA2191FA2193FF17F0061601807
+181F4DB5FCBBFC61A443447DC34A>I<BA1280A419C026003FFEC7121F1701EF007F183F
+181F180F180719E01803A31801A3EE01E0F000F0A419001603A31607160F167F91B6FCA5
+9138FE007F160F16071603A31601A693C9FCAFB712F0A53C447CC346>I<DCFFF0147003
+1F01FF14F04AB6EAE0010207EDF803023FEDFE0791B539E001FF0F4949C7EA3F9F010701
+F0EC0FFF4901C0804990C87E4948814948814948167F4849163F4849161F5A4A160F485B
+19074890CAFC19035A5BA2007F1801A34994C8FC12FFAD057FB612F0127F7FA3003FDC00
+01EBF000A27F7EA26C7FA26C7F807E6C7F6C7F6D7E6D6C5D6D6C7E6D6D5C6D01F05C0101
+01FE143F6D903AFFF001FF9F023F90B6120F0207EDFC030201EDF000DA001F02C0133003
+0001FCC9FC4C467AC458>I<B7D88003B612FEA526003FFEC9EBF800B3A791B9FCA54AC9
+FCB3AAB7D88003B612FEA54F447CC358>I<B712E0A5D8001F90C7FCB3B3B3A4B712E0A5
+23447DC32A>I<B76C0103B512F8A526003FFEC93807E0004F5A4F5A077EC7FC614E5A4E
+5A4E5AF01F804EC8FC187E604D5AEF07F0EF0FC04D5A4DC9FC177E4C5AEE03F04C5A4C5A
+4C7EEE7FF04C7E5D4B7F4B7F4B7FED3F3FDB7E1F7F03FC806E486C7F4B7E4B6C7F038080
+4B6C7F4A7F717E84717F83717F85717F83717F85717F187F727E86727F84727F86727F84
+B76C90B612FCA54E447CC358>75 D<B712F0A526003FFECAFCB3B1F00780A4180F1900A4
+60A360A2187EA218FE170117031707171F177FEE03FFB95AA539447CC343>I<B500FE06
+7FB512806E95B6FCA26F5EA2D8003F50C7FC013D6DEE03DFA2013C6DEE079FA26E6CEE0F
+1FA26E6C161EA26E6C163CA36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC03C0A36E6D
+EC0780A26F6CEC0F00A26F6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485AA26F6D485A
+A26F6D485AA3706C48C7FCA293383FF81EA2706C5AA2706C5AA3706C5AA2705BA2705BA2
+705BA2B6057FB6128071C7FCA2173E171C61447CC36A>I<B64BB512FE8181A281D8003F
+6D91C7EA780081013D7F81133C6E7E6E7F6E7F6E7F6E7F82806E7F6E7F6F7E6F7F83816F
+7F6F7F6F7F6F7F6F7F8382707F707F707F707F8482707F707F717E7113807113C019E083
+7113F07113F87113FC7113FE19FF847213F884848484A28484197F193F191FA2190F1907
+B61603190119001A78A24F447CC358>I<923807FFC092B512FE0207ECFFC0021F15F091
+267FFE0013FC902601FFF0EB1FFF01070180010313C04990C76C7FD91FFC6E6C7E49486F
+7E49486F7E01FF8348496F7E48496F1380A248496F13C0A24890C96C13E0A24819F04982
+003F19F8A3007F19FC49177FA400FF19FEAD007F19FC6D17FFA3003F19F8A26D5E6C19F0
+A26E5D6C19E0A26C6D4B13C06C19806E5D6C6D4B13006C6D4B5A6D6C4B5A6D6C4B5A6D6C
+4A5B6D01C001075B6D01F0011F5B010101FE90B5C7FC6D90B65A023F15F8020715C00200
+4AC8FC030713C047467AC454>I<B9FC18F018FE727E19E0D8001F90C7000F7F05017F71
+6C7E727E727E721380A21AC084A21AE0A91AC0A24E1380A21A00604E5A4E5A4D485A050F
+5B92B712C096C7FC18FC18C092CBFCB3A7B712E0A543447DC34D>I<B812F8EFFFC018F8
+18FE727ED8001F90C7003F13E005037F05007F727E727E727EA28684A286A762A24E90C7
+FCA24E5A61187F943801FFF005075B053F138092B7C8FC18F818E018F892C77FEF3FFF05
+0F7F717F717FA2717FA2717FA785A61B0F85A2187F73131F72141EB700E06DEB803E72EB
+E0FC72EBFFF8060114F0726C13E0CC0007138050457DC354>82 D<DAFFE0131C010701FE
+133C013F9038FF807C90B6EAE0FC4815F9489038801FFF3907FC00014848EB007F484814
+3F4848140F491407007F15035B1601160012FF177CA27FA26D153C7F7F6D92C7FC6C7EEB
+FFE014FE6CEBFFF015FF6C15E016FC6C816C6F7E6C826C826C6C81011F81010781130002
+0F80140003077FED007F82040F1380828212F082A282A27EA218007EA26C5D6C5E6D1403
+6D5D6D140701F84A5A01FFEC3FF002F8EBFFE0486CB65AD8FC1F92C7FCD8F80714FC48C6
+14F0480107138031467AC43E>I<003FBA12E0A59026FE000FEB8003D87FE09338003FF0
+49171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5C81700B3B3A2
+0107B8FCA545437CC24E>I<B76C010FB512F8A526003FFEC93803E000B3B3A9011F1707
+6280190F6D606F151F6D95C7FC6D6D5D197E6D6D5D6D6D1403DA7FFC4A5A6EB4EC3FF002
+0F9039F003FFE06E90B61280020193C8FC6E6C14FC030F14E09226007FFEC9FC4D457CC3
+56>I<B792B6FCA526003FFECAEAFC00806D606F15016D608119036D606F15076D606F15
+0F6D6081191F6D6D93C7FC61027F163E6F157E023F167C8119FC6E6D5C18016E5E701303
+6E5E8218076E6D5C180F6E5E70131F6E93C8FC705B037F143E82187E033F147C7013FC6F
+5C17816F5C17C117C36F5C17E76F5C17FF6F5CA36F91C9FCA2705AA2705AA3705AA2705A
+A2705AA250457EC355>I<B600FE017FB691B512FEA526007FFCC8D83FFEC9EA7C006E82
+013F701778807415F86D705F6F7014016D705FA26F7014036D64814E6D14076D646F7014
+0F6D041E94C7FCA26F023E6D5C6DDC3C7F151E81027F037C6D5CF0783F6F70147C023F4B
+6C1578A26F01016F13F86E4B6C5D16806E02036F485A4E7E04C0EEE0036E4A486C5DA2DC
+E00FEDF0076E4B6C5D16F06E4A6F48C8FC051E7F04F8705A6E4A027F131EA2DCFC7CEDFE
+3E037F0178023F133C04FE16FF033F01F85E4D8004FF17F86F496E5BA36F496E5BA26F60
+4D80A26F90C86C5BA36F486F90C9FCA26F48167EA30478163C6F457EC374>I<903801FF
+E0011F13FE017F6D7E48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F
+7F6C5A6C5AEA00F090C7FCA40203B5FC91B6FC1307013F13F19038FFFC01000313E0000F
+1380381FFE00485A5B127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1F
+FF80FC7F0007EBFFF86CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97
+D<EB7FC0B5FCA512037EB1ED0FF892B57E02C314E002CF14F89139DFC03FFC9139FF000F
+FE02FCEB03FF4A6D13804A15C04A6D13E05CEF7FF0A218F8173FA318FCAC18F8A2177F18
+F0A3EFFFE06E15C06E5B6E491380027C491300496C495A903AFC1FC07FFC496CB512F0D9
+F00314C049C691C7FCC8EA1FF036467DC43E>I<EC3FFC49B512C0010F14F0013F14FC90
+397FF003FE9039FFC001FF0003495A48494813805B120F485AA2485A6F1300007F6E5AED
+00784991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C1407000F16806D140F6C6DEB1F00
+6C6D133E6C01F05B3A007FFC03F86DB55A010F14C0010391C7FC9038003FF82A2F7CAD32
+>I<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC010FEBFF8F013F14CF9039FFF8
+07FF48EBC00148903880007F4890C7123F4848141F49140F121F485AA3127F5BA212FFAC
+127FA37F123FA26C6C141FA26C6C143F0007157F6C6C91B5FC6CD9C00314FC6C9038F01F
+EF6DB5128F011FEBFE0F010713F89026007FC0EBF80036467CC43E>I<EC3FF80103B57E
+010F14E0013F8090397FF83FF89039FFC007FC48496C7E48496C7E48486D1380485A001F
+ED7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FCA401F0C9FCA5127FA27FA2123F
+17F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F806C01F0EB3F0090397FFE01FE
+011FB55A010714F0010114C09026001FFEC7FC2C2F7DAD33>I<EDFF80020F13E0027F13
+F049B512F849EB8FFC90390FFE0FFE90381FFC1F14F8133FEB7FF0A2ED0FFCEBFFE0ED03
+F0ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0A527467DC522>I<DAFFE0137E
+010F9039FE03FF80013FEBFF8F90B812C048D9C07F133F489038001FF84848EB0FFC4848
+903907FE1F80001F9238FF0F00496D90C7FCA2003F82A8001F93C7FCA26D5B000F5D6C6C
+495A6C6C495A6C9038C07FF04890B55A1680D8078F49C8FC018013E0000F90CAFCA47F7F
+7F90B612C016FC6CEDFF8017E06C826C16FC7E000382000F82D81FF0C77ED83FC0140748
+48020113808248C9FC177FA46D15FF007F17006D5C6C6C4A5A6C6C4A5AD80FFEEC3FF83B
+07FFC001FFF0000190B612C06C6C92C7FC010F14F8D9007F90C8FC32427DAC38>I<EB7F
+C0B5FCA512037EB1ED07FE92383FFF8092B512E002C114F89139C7F03FFC9138CF801F91
+39DF000FFE14DE14FC4A6D7E5CA25CA35CB3A7B60083B512FEA537457CC43E>I<137C48
+B4FC4813804813C0A24813E0A56C13C0A26C13806C1300EA007C90C7FCAAEB7FC0EA7FFF
+A512037EB3AFB6FCA518467CC520>I<EB7FC0B5FCA512037EB293387FFFE0A593380FE0
+004C5A4CC7FC167E5EED03F8ED07E04B5A4B5A037FC8FC15FEECC1FCECC3FE14C7ECDFFF
+91B57E82A202F97F02E17F02C07FEC807F6F7E826F7E816F7F836F7F816F7F83707E163F
+B60003B512F8A535457DC43B>107 D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457C
+C420>I<90277F8007FEEC0FFCB590263FFFC090387FFF8092B5D8F001B512E002816E48
+80913D87F01FFC0FE03FF8913D8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D
+013C130F02BC5D02F86D496D7EA24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7C
+AC5E>I<90397F8007FEB590383FFF8092B512E0028114F8913987F03FFC91388F801F00
+0390399F000FFE6C139E14BC02F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>
+I<EC1FFC49B512C0010714F0011F14FC90397FF80FFF9026FFC0017F48496C7F4848C7EA
+3FE000078248486E7E49140F001F82A2003F82491407007F82A400FF1780AA007F1700A4
+6C6C4A5AA2001F5E6D141F000F5E6C6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90C7
+FC6DB55A010F14F8010114C09026001FFCC8FC312F7DAD38>I<90397FC00FF8B590B57E
+02C314E002CF14F89139DFC03FFC9139FF001FFE000301FCEB07FF6C496D13804A15C04A
+6D13E05C7013F0A2EF7FF8A4EF3FFCACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913
+806E4913006E495A9139DFC07FFC02CFB512F002C314C002C091C7FCED1FF092C9FCADB6
+7EA536407DAC3E>I<90387F807FB53881FFE0028313F0028F13F8ED8FFC91389F1FFE00
+0313BE6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0A5272D7D
+AC2E>114 D<90391FFC038090B51287000314FF120F381FF003383FC00049133F48C712
+1F127E00FE140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C14FC6C80
+0003806C15806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA27EA26C15
+C06C141FA26DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E007FEC7FC
+232F7CAD2C>I<EB01E0A51303A41307A2130FA2131FA2133F137F13FF1203000F90B512
+80B7FCA4C601E0C7FCB3A3ED01E0A9150302F013C0137F150790393FF80F8090391FFC1F
+006DB5FC6D13FC01015B9038003FE023407EBE2C>I<D97FC049B4FCB50103B5FCA50003
+EC000F6C81B3A85EA25EA25E7E6E491380017FD901F713FE9138F807E76DB512C7010F14
+07010313FE9026007FF0EBFC00372E7CAC3E>I<B6903803FFFCA5000101E09038003E00
+6C163C80017F5D8017F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7
+FC15C05E6DEBE01E163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA3
+6E5BA26E90C8FCA26E5AA26E5AA21578362C7EAB3B>I<B5D8FE1FB539801FFFF0A50001
+9027C0003FE0C7EA7C007114786E17F86C6F6C5C6E1601017F6E6C5CA26E011F1403013F
+6F5C6E013F1407011F6F5CA26E0179140F010F048090C7FC6E01F95C6D02F0EBC01E1580
+6D902681E07F5B18E003C3157C6D9139C03FF07815E76DDA801F5B18F803FF14F96E9039
+000FFDE018FF6E486D5BA36E486D5BA26E486D90C8FCA24B7F02075DA26E48147C4B143C
+4C2C7EAB51>I<B500FE90383FFFF0A5C601F0903803E0006D6C495A013F4A5A6D6C49C7
+FC6E5B6D6C137E6DEB807C6D6D5A6DEBC1F0EDE3E06DEBF7C06EB45A806E90C8FC5D6E7E
+6E7F6E7FA24A7F4A7F8291381F3FFCEC3E1F027C7F4A6C7E49486C7F01036D7F49487E02
+C08049486C7F49C76C7E013E6E7E017E141FB500E090B512FCA5362C7EAB3B>I<B69038
+03FFFCA5000101E09038003E006C163C80017F5D8017F8013F5D6E1301011F5D6E130301
+0F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E163E6D143CEDF07C027F1378EDF8F8
+023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA26E5AA26E5AA21578A215F85D14015D
+001F1303D83F805B387FC007D8FFE05B140F92C9FC5C143E495A387FC1F8EB07F06CB45A
+6C5B000790CAFCEA01FC36407EAB3B>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmsy10 10.95 4
+/Fc 4 107 df<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580A3B712
+C0AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA72D>15
+D<153FEC03FFEC0FE0EC3F80EC7E00495A5C495AA2495AB3AA130F5C131F495A91C7FC13
+FEEA03F8EA7FE048C8FCEA7FE0EA03F8EA00FE133F806D7E130F801307B3AA6D7EA26D7E
+80EB007EEC3F80EC0FE0EC03FFEC003F205B7AC32D>102 D<12FCEAFFC0EA07F0EA01FC
+EA007E6D7E131F6D7EA26D7EB3AA801303806D7E1300147FEC1FC0EC07FEEC00FFEC07FE
+EC1FC0EC7F0014FC1301495A5C13075CB3AA495AA2495A133F017EC7FC485AEA07F0EAFF
+C000FCC8FC205B7AC32D>I<126012F0B3B3B3B3B11260045B76C319>106
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd cmbx12 14.4 63
+/Fd 63 123 df<922601FFFC903801FFE0033F9026FF801F13F84AB6D8E07F13FE020F03
+F9B6FC023FD9C00FB500C0138091277FFC0003D9FE0113C0902601FFE049495A49494949
+4813E04990C714F049484A13E0495A19C0495A7413C0017F17804A6E6E1380719138007E
+007192C7FCAEBCFCA526007FF8C7000301C0C8FCB3B3A7007FB5D8F803B612F0A553547D
+D34E>11 D<EEFFFC031FEBFF804AB612E0020781021F9038C00FF8913A7FFE0003FCDAFF
+F0EB00FE4949EB03FF4901805B4990C7487F49485CA2495A4D7F013F6F5B5CA37190C7FC
+715AEF01F894C9FCA90403B512C0BAFCA526003FFCC7120783B3B3A6003FB5D8FC03B612
+C0A542547DD34B>I<151E153E157E15FCEC01F8EC07F0EC0FE0EC1FC01580143FEC7F00
+14FE1301495A5C1307495AA2495A133F5C137FA2495AA24890C7FCA25A5BA21207A2485A
+A3121F5BA3123FA25BA3127FA55B12FFB3A3127F7FA5123FA37FA2121FA37F120FA36C7E
+A21203A27F7EA26C7FA26D7EA2133F80131F6D7EA26D7E1303806D7E1300147FEC3F8014
+1F15C0EC0FE0EC07F0EC01F8EC00FC157E153E151E1F7973D934>40
+D<127012F8127C127E7EEA1FC06C7E6C7E12037F6C7E6C7E7F6D7E133F806D7EA26D7E80
+130780A26D7EA26D7EA215807FA215C0A2EC7FE0A315F0143FA315F8A2141FA315FCA514
+0F15FEB3A315FC141FA515F8A3143FA215F0A3147F15E0A3ECFFC0A21580A25B1500A249
+5AA2495AA25C130F5C495AA2495A5C137F49C7FC5B485A485A5B1207485A485A48C8FC12
+7E127C5A12701F7979D934>I<B712F0AB240B7F9F2D>45 D<EA07F0487E487E487E487E
+B51280A76C13006C5A6C5A6C5A6C5A1111769025>I<EF01E01703EF07F0A2170FA2EF1F
+E0A218C0173FA2EF7F80A218005FA24C5AA25F1603A24C5AA25F160FA24C5AA25F163FA2
+4C5AA294C7FC5EA24B5AA25E1503A24B5AA25E150FA24B5AA25E153FA24B5AA293C8FC5D
+A24A5AA25D1403A25D1407A24A5AA25D141FA24A5AA25D147FA24AC9FCA25C1301A2495A
+A25C1307A2495AA25C131FA2495AA25C137FA249CAFCA25B1201A2485AA25B1207A2485A
+A25B121FA2485AA25B127FA248CBFCA25AA2127CA2347879D943>I<913803FFC0023F13
+FC91B6FC010315C0010F018113F0903A1FFC003FF849486D7E49486D7E49486D7E48496D
+138048496D13C0A24817E04890C813F0A34817F8A24817FC49157FA3007F17FEA600FF17
+FFB3A5007F17FEA6003F17FCA26D15FFA26C17F8A36C17F0A26C6D4913E0A26C6D4913C0
+6C17806E5B6C6D4913006D6C495AD91FFCEB3FF8903A0FFF81FFF06D90B55A01011580D9
+003F01FCC7FC020313C0384F7BCD43>I<157815FC14031407141F14FF130F0007B5FCB6
+FCA2147F13F0EAF800C7FCB3B3B3A6007FB712FEA52F4E76CD43>I<EC3FFE0103B512E0
+010F14FC013F14FF90B712C048D9C07F7F2703FE000F13F8D807F801037FD80FE06D7F48
+486D7F48488001F01680486C6E13C07F486C6E13E07FA27013F0A56C5AA26C5AEA0FF0EA
+03C0C914E05EA218C05E1880A24C13005F4C5A4B5B5F4B5B5F4B5B4B90C7FC4B5A5E4B5A
+ED7FE04B5A4A5B4A48C8FC4A5A5D4A48EB01F04A5AEC3F804AC7FC02FEEC03E0495A495A
+495A495AD91F80140749C8FC013E150F017FB7FC90B812C05A5A5A5A5A5A5AB9FC1880A4
+344E79CD43>I<91380FFFC091B512FC0107ECFF80011F15E090263FF8077F9026FF8001
+13FC4848C76C7ED803F86E7E491680D807FC8048B416C080486D15E0A4805CA36C17C06C
+5B6C90C75AD801FC1680C9FC4C13005FA24C5A4B5B4B5B4B13C04B5BDBFFFEC7FC91B512
+F816E016FCEEFF80DA000713E0030113F89238007FFE707E7013807013C018E07013F0A2
+18F8A27013FCA218FEA2EA03E0EA0FF8487E487E487EB57EA318FCA25E18F891C7FC6C17
+F0495C6C4816E001F04A13C06C484A1380D80FF84A13006CB44A5A6CD9F0075BC690B612
+F06D5D011F1580010302FCC7FCD9001F1380374F7ACD43>I<177C17FEA2160116031607
+160FA2161F163F167FA216FF5D5DA25D5DED1FBFED3F3F153E157C15FCEC01F815F0EC03
+E01407EC0FC01580EC1F005C147E147C5C1301495A495A5C495A131F49C7FC133E5B13FC
+485A5B485A1207485A485A90C8FC123E127E5ABA12C0A5C96C48C7FCAF020FB712C0A53A
+4F7CCE43>I<D80380150ED807E0157E01FEEC03FED9FFF0137F91B65A5F5F5F5F5F94C7
+FC5E5E16F016C093C8FC15F801E190C9FC01E0CAFCABEC0FFF027F13F001E3B512FE01E7
+6E7E9026FFF8077FDAC0017F49C713F8496E7E49143F4981496E7E6C481680C9FC18C082
+18E0A418F0A3EA0FE0487E487E487E487EA418E0A35B6C484A13C05B491680003EC85A00
+3F17006C6C4A5A6D5D6C6C4A5AD807F8495BD803FE01075B2701FFC03F5B6C90B65A013F
+4AC7FC6D14F8010314C09026007FF8C8FC344F79CD43>I<ED0FFF92B512E0020780021F
+14FC91397FFE03FE903A01FFF0007F4901C0EB3F804990C7121F4948EC7FC0494814FF49
+484913E049485B01FF5C485BA2485B5AA2486F13C04A6D1380486F1300177E94C7FC5AA2
+91CAFC5AA21508913801FFF8020713FFB54814C04A14F04AC66C7E023C6D7E4A6D7E4A6D
+7E7013804A15C0A24A15E07013F05C18F8A491C714FCA37EA67EA46C17F880A27E18F06C
+5D18E06C6D15C07E6E4913806C6D15006D6C495A6D6CEB7FFC6DB448485A6D90B55A0103
+15C0010092C7FC023F13FC020713C0364F7ACD43>I<121F7F7FEBFF8091B81280A45A19
+00606060A2606060485F0180C86CC7FC007EC95A4C5A007C4B5A5F4C5A160F4C5A484B5A
+4C5A94C8FC16FEC812014B5A5E4B5A150F4B5AA24B5AA24B5A15FFA24A90C9FCA25C5D14
+07A2140FA25D141FA2143FA4147F5DA314FFA55BAC6D5BA2EC3FC06E5A395279D043>I<
+913807FFC0027F13FC0103B67E010F15E090261FFC0113F8903A3FE0003FFCD97F80EB0F
+FE49C76C7E48488048486E1380000717C04980120F18E0177FA2121F7FA27F7F6E14FF02
+E015C014F802FE4913806C7FDBC00313009238F007FE6C02F85B9238FE1FF86C9138FFBF
+F06CEDFFE017806C4BC7FC6D806D81010F15E06D81010115FC010781011F81491680EBFF
+E748018115C048D9007F14E04848011F14F048487F48481303030014F8484880161F4848
+020713FC1601824848157F173FA2171FA2170FA218F8A27F007F17F06D151FA26C6CED3F
+E0001F17C06D157F6C6CEDFF806C6C6C010313006C01E0EB0FFE6C01FCEBFFFC6C6CB612
+F06D5D010F1580010102FCC7FCD9000F13C0364F7ACD43>I<91380FFF8091B512F80103
+14FE010F6E7E4901037F90267FF8007F4948EB3FF048496D7E484980486F7E4849808248
+17805A91C714C05A7013E0A218F0B5FCA318F8A618FCA46C5DA37EA25E6C7F6C5DA26C5D
+6C7F6C6D137B6C6D13F390387FF803011FB512E36D14C30103028313F89039007FFE03EC
+00401500A218F05EA3D801F816E0487E486C16C0487E486D491380A218005E5F4C5A91C7
+FC6C484A5A494A5A49495B6C48495BD803FC010F5B9027FF807FFEC7FC6C90B55A6C6C14
+F06D14C0010F49C8FC010013F0364F7ACD43>I<EA07F0487E487E487E487EB51280A76C
+13006C5A6C5A6C5A6C5AC8FCB3EA07F0487E487E487E487EB51280A76C13006C5A6C5A6C
+5A6C5A113576B425>I<171F4D7E4D7EA24D7EA34C7FA24C7FA34C7FA34C7FA24C7FA34C
+8083047F80167E8304FE804C7E03018116F8830303814C7E03078116E083030F814C7E03
+1F81168083033F8293C77E4B82157E8403FE824B800201835D840203834B800207835D84
+4AB87EA24A83A3DA3F80C88092C97E4A84A2027E8202FE844A82010185A24A820103854A
+82010785A24A82010F855C011F717FEBFFFCB600F8020FB712E0A55B547BD366>65
+D<BA12C019FEF1FFC01AF01AFCD8000701F0C7000313FFDE007F7F737F070F7F737F8785
+87858785A287A84F5BA263616361634F5B4F5B077F90C7FC4E485A060713F892B812E097
+C8FC861AF003F0C7000313FE9539003FFF80070F13E0737F07017F87737F747E1C807413
+C0A27413E0A31CF0A386A362A31CE0A2621CC0A250138097B5FC1C004F5B19074F5B073F
+13F04EB55ABC128098C7FC1AF81AC007F8C8FC54527CD160>I<932601FFFCEC01C0047F
+D9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7
+383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F882494982494982494982
+4949824990CA7E494883A2484983485B1B7F485B481A3FA24849181FA3485B1B0FA25AA2
+98C7FC5CA2B5FCAE7EA280A2F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D
+606C6D187EA26D6C606D6D4C5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D
+6C6C6C4BC7FC6E01E0EC07FE020F01FEEC1FF80203903AFFE001FFF0020091B612C0033F
+93C8FC030715FCDB007F14E0040101FCC9FC525479D261>I<BA7E19FCF1FF801AF01AFC
+D8000701F0C7000F13FF060014C0071F7F070713F807017F737F747E747F747F86747F74
+7F8886888688A2757EA31D8087A21DC0A51DE0A387A963A31DC0A51D80A2631D00A3515A
+A2646264505B6264505B505B5090C7FCF2FFFE4F5B07075B071F5B96B512C0060F91C8FC
+BB5A1AF01AC007FCC9FC19805B527CD167>I<BC1280A5D8000701F8C7000114C0F0001F
+19071901851A7F1A3F1A1FA2F20FE0A21A07A31A03A318F81BF01A01A497C7FC1701A317
+031707170F177F92B6FCA59238F8007F170F170717031701A317001B3EA31B7CA395C8FC
+A21BFCA21BF8A21A01A31A031BF01A071A0FA21A1F1A3FF27FE0F101FF1907191F0603B5
+FCBCFCA21BC0A34F517CD058>I<BB12FEA5D8000701F8C700077FF0007F191F19078585
+8586861B80A21A1FA31A0FA41BC006F81307A497C7FCA31701A317031707170F177F92B6
+FCA59238F8007F170F170717031701A31700A795C9FCB3B812F8A54A517CD055>I<9326
+01FFFCEC01C0047FD9FFC013030307B600F81307033F03FE131F92B8EA803F0203DAE003
+EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A01800203B5FC494848C9FC4901F88249
+49824949824949824949824990CA7E494883A2484983485B1B7F485B481A3FA24849181F
+A3485B1B0FA25AA298C8FC5CA2B5FCAE6C057FB712E0A280A36C94C7003FEBC000A36C7F
+A36C7FA27E6C7FA26C7F6C7FA26D7E6D7F6D7F6D6D5E6D7F6D01FC93B5FC6D13FF6D6C6D
+5C6E01F0EC07FB020F01FEEC1FF10203903AFFF001FFE0020091B6EAC07F033FEE001F03
+0703FC1307DB007F02E01301040149CAFC5B5479D26A>I<B8D8C003B8FCA5D8000701F8
+C9001FEBE000B3AE92BAFCA503F8C9121FB3B1B8D8C003B8FCA560527CD169>I<B812C0
+A5D8000701F8C7FCB3B3B3B2B812C0A52A527CD132>I<B800C091B612F8A5D8000701F8
+C90003EBF8009738007F8051C7FC505AF203F8F20FF0505A505A505A50C8FCF101FCF107
+F84F5A4F5A4F5A4F5A07FEC9FCF003FC4E5A4E5A4E5A4E5A4E5ADD01FECAFC4D5A4D5A4D
+5A4D7E173F4D7E4C487E4C7F5E4C804C804C80EEFF7F9226F9FE3F7FDBFBFC809226FFF8
+1F7F4C7EDCC0077F0480804C7E4B6D804B6D804B8284727F727F8684727F727F87847280
+87737F85737F87737F85737F88857380747F888697B512FCB800C0013FECFFFEA55F527C
+D169>75 D<B812F8A5D8000701F8CAFCB3B3A91A7CA41AFC1AF8A51901A31903A219071A
+F0190FA2191F193F197F19FF180360183F4DB5FCBB12E0A546527CD151>I<B600FC073F
+B512FE6F61A26F96B6FCA2D80007F5C00070EF01EFA202EF6DEF03CFA202E76DEF078FA2
+02E36DEF0F0FA202E16D171EA302E06D173CA26F6C1778A26F6C17F0A26F6DED01E0A26F
+6DED03C0A36F6DED0780A26F6DED0F00A26F6D151EA26F6D5DA3706C5DA2706C5DA2706D
+495AA2706D495AA2706D495AA3706D49C7FCA2706D131EA2706D5BA2716C5BA3716C5BA2
+71EB81E0A271EBC3C0A271EBE780A27101FFC8FCA3715BA2715BA2725AA2725AA2D93FFC
+6F5AB74DB712FEA2725AA2725A77527CD180>I<B600FC93B7FC8181A282D800076E9239
+003FFC0070EE07E08282A28202EF7F02E77F02E380A202E18002E0806F7F6F7F6F7FA26F
+7F6F7F6F806F80A26F80707F707F707F707FA2707F7080708070808583717F717F717F71
+7FA27114807114C07114E07213F07213F8A27213FC7213FE7213FF721487A27214C77214
+E77313F77313FF85A285858585A28586868686A286868686A2D93FFC187FB7173F1B1F1B
+0F1B07755A60527CD169>I<93380FFFC00303B6FC031F15E092B712FC0203D9FC0013FF
+020F01C0010F13C0023F90C7000313F0DA7FFC02007F494848ED7FFE4901E0ED1FFF4949
+6F7F49496F7F4990C96C7F49854948707F4948707FA24849717E48864A83481B804A8348
+1BC0A2481BE04A83A2481BF0A348497113F8A5B51AFCAF6C1BF86E5FA46C1BF0A26E5F6C
+1BE0A36C6D4D13C0A26C6D4D1380A26C1B006C6D4D5A6E5E6C626D6C4C5B6D6D4B5B6D6D
+4B5B6D6D4B5B6D6D4B5B6D6D4B90C7FC6D6D4B5A6D01FF02035B023F01E0011F13F0020F
+01FC90B512C0020390B7C8FC020016FC031F15E0030392C9FCDB001F13E0565479D265>
+I<BAFC19F819FF1AE086D8000701F0C7001F13FC060113FF726C13807313C0070F13E01B
+F0857313F81BFCA27313FEA41BFFA81BFEA31BFC61A21BF84F13F04F13E0614F13C04F13
+004E485A061F5B92B812F01AC04FC7FC19E003F8CBFCB3AEB812C0A550527CD15C>I<B9
+12F0F0FF8019F819FF1AC0D8000701F0C714F0060F7F060113FE727F737F737F85737F87
+A2737FA387A863A2616363A24F5B4F5B4F90C8FC4F5A06035B060F13F095B512C092B8C9
+FC19F819E019F89226F0000313FE9439007FFF80727F727F727F727F727F8684A28684A7
+87A71D1C75133EA38575137E73157C7513FC731401B86C6D9038F803F807039038FE07F0
+7390B512E0736C14C0080F1400CEEA7FFC5F537CD164>82 D<91260FFF80130791B500F8
+5B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801E0EB0FFD4801800101B5FC48
+48C87E48488149150F001F824981123F4981007F82A28412FF84A27FA26D82A27F7F6D93
+C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C16FC6C16FF6C17C06C836C83
+6D826D82010F821303010082021F16801400030F15C0ED007F040714E01600173F050F13
+F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0A27F6D4B13806D17006D5D01
+FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0486C90B65AD8FC0393C7FC48
+C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<003FBC1280A59126C0003F9038
+C0007F49C71607D87FF8060113C001E08449197F49193F90C8171FA2007E1A0FA3007C1A
+07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A553517BD05E>I<B800C00103B612
+FCA5D8000701F8CAEBF000F31F80B3B3B11B3FA26D97C7FC81637F1B7E6D6D17FE505A6E
+7E505A6E6D15076E4D5A6E6D4B5A6E6D4B5A6E01F84B5A6E6DDA03FFC8FC6E6CB46CEB0F
+FE6F9039F001FFF8030F90B65A030316C0DB007F92C9FC040F14F8DC007F13805E537CD1
+67>I<B700FE031FB512FEA5D8001F01F0CA383FFE00F307F06D626F170F6D62811B1F6D
+6D601B3F6D97C7FC6F5F6D197E821BFE6E6D5E1A016E6D5E1A036E60701507A26E6D5E1A
+0F6E6D5E1A1F6E6070153FA26E6D93C8FC626E6E147E1AFE6F5E711301A26F6D5C19036F
+6D5C19076F5E71130FA26F6D5C191F6F6D5C193F6F93C9FC715BA26FEC807E19FE706D5A
+18C1705C18E3705C18F318F770EBFFE0A2705CA2705CA37091CAFCA2705BA2715AA3715A
+A2715AA2715A715A5F537DD166>I<B700FC017FB600FE91B612F0A5D8003F01C0C8001F
+01E0C9EBF8006F71EE0FC06D7161876F1C1F6D7196C7FC6F8373606D1E3E6F836D716087
+6F1CFC6D666F4B801F016D66704A806E525A88704A17076E059F5F70021F80080F160F6E
+6570023F806EDC3E074CC8FC8870027E5F6EDC7C03163E7002FC804F6C167E6E1C7C7001
+01814F6C16FC6E745B70010317016E4C6D5D060716C00580496D14036F63DDC00F16E04F
+6D14076F07F05BDDE01F170F6F92C76C5D1DF8DDF03E6E141F6F98C9FCDDF87E16FC067C
+6E5C6FF1FE3EDDFCFC177E6F4A6E147C1DFFDDFFF06E14FC6F62A24E816F62A270496F5B
+A24E817061A295C97E7061A270487090CAFCA37048705AA24D1601040360A27048705A84
+537DD18B>I<EC7FFF0107B512F0013F14FE90B77E48D9E00F7F2703FE000113F0486C6D
+7F6EEB3FFC48826E131F83707FA36C496D7FA26C90C7FC6C5AC9FCA6037FB5FC020FB6FC
+91B7FC01071487013FEBF0074913803901FFFC004813F0485B485B485B4890C7FC5A5BA2
+485AA45EA26D5C007F151D163D6C6C02797F6C6D01F113F86C9026C003E1EBFFE06C9026
+F81FC014F06C90B5487EC6ED001F011F01FC010713E0010101E090C8FC3C387CB641>97
+D<EB3FF0B5FCA51203C6FCB3A4923801FFE0030F13FE033FEBFFC092B612F002F301017F
+913AF7F8003FFEDAFFE0EB0FFF03806D7F92C76C7F4A6E7F4A824A6E7FA2727EA285A285
+84A31A80AC1A00A44E5AA36118FF616E4A5BA26E4A5B6E4A5B6F495BDACFC04990C7FCDA
+87F0EB7FFC913A03FE03FFF849C6B612E0496D148049011F01FCC8FC90C7000313C04154
+7BD24B>I<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1FFE0001
+FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300705A48
+92C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F806C6DEC
+3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F49C7FC
+020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F13FC91
+B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F484980
+485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C6D5C6C
+6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101ECFE0FD9
+003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715C04901
+817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0488191
+C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E06CEE01
+F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFEEB03FE
+903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I<ED3FFC02
+03B5FC020F14C0023F14E09139FFF81FF0499038C03FF849EB807F49903800FFFC495A49
+5AA2495AA2EE7FF8495AEE3FF0EE0FC093C7FCAEB712E0A526007FF8C8FCB3B3A7007FB5
+12FEA52E547CD329>I<DA3FFF14FF0103B5D8F00713C0010FDAFC1F13E0013FECFF7F90
+267FFC0F9038FF9FF09026FFE001EBF83F48496C13E0484990387FF01F4890C7D83FF813
+E0489338FC0FC0F0078048486E6CC7FCA2003F82A9001F5EA26C6C4A5AA26C5E6C6D495A
+6C6D495A6C6D485BDAFC0F5B4890B6C8FCD803EF14FC01C314F02607C03F90C9FC91CBFC
+A2120FA37FA213F813FE90B7FC6C16F817FF18C06C836C836C836D828448B9FC12074848
+C700031480D81FF8EC003F4848150748486F13C083485A83A56D5D007F18806D5D003F18
+006C6C4B5AD80FFEED1FFC6C6C6CEC7FF86C01E049485A6C01FE011F5B6C6CB71280010F
+03FCC7FC010115E0D9000F01FCC8FC3C4F7CB543>I<EB3FF0B5FCA51203C6FCB3A4EE1F
+FC93B512C0030314F0030F8092391FE07FFC92393F001FFE037C8003F07FDAF1E081ECF3
+C0DAF7807F8502FFC7FC5CA25CA45CB3ACB6D8F807B612C0A542537BD24B>I<137F497E
+000313E0487FA2487FA76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3
+A6B612E0A51B547BD325>I<EB3FF0B5FCA51203C6FCB3A54CB512F8A59339003FFE00EF
+1FF0EF3FC04D5A4DC7FCEE03FEEE07F84C5A4C5AEE7FC04CC8FC4B5A4B5AED0FF8ED1FE0
+4B7E4B7EECF1FF02F37F02F77F91B6FC83159F030F7F02FE80DAF8077F4A7E6F7F6F7F83
+707E82707F84707F707F82707F84707F177F717E4D13C0B6D8F003B6FCA540537CD247>
+107 D<EB3FF0B5FCA512017EB3B3B3B1B612F0A51C537BD225>I<D93FF0D91FFCEDFFE0
+B591B500C0010713FE030302F0011F6D7E030F6E017F8092271FE07FFCD9FF037F922A3F
+001FFE01F8007F0003027C9126FF03E080C602F06DD90780137FDAF1E0038FC77FDAF3C0
+159EDAF7806D01BC143F07FC8102FFC75C4A5EA24A5EA44A5EB3ACB6D8F807B6D8C03FB5
+12FEA567367BB570>I<D93FF0EB1FFCB591B512C0030314F0030F8092391FE07FFC9239
+3F001FFE0003027C80C602F07FDAF1E081ECF3C0DAF7807F8502FFC7FC5CA25CA45CB3AC
+B6D8F807B612C0A542367BB54B>I<913801FFE0021F13FE91B612C0010315F0010F9038
+807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F48496D7F4A147F48834890C8
+6C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3003F18006D5DA26C5FA2
+6C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE011F90C7FC903A0FFF80
+7FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I<903A3FF001FFE0B5010F
+13FE033FEBFFC092B612F002F301017F913AF7F8007FFE0003D9FFE0EB1FFFC602806D7F
+92C76C7F4A824A6E7F4A6E7FA2717FA285187F85A4721380AC1A0060A36118FFA2615F61
+6E4A5BA26E4A5B6E4A5B6F495B6F4990C7FC03F0EBFFFC9126FBFE075B02F8B612E06F14
+80031F01FCC8FC030313C092CBFCB1B612F8A5414D7BB54B>I<90397FE003FEB590380F
+FF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013FEC6ECC07FECE78014EF
+150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612FCA52F367CB537>114
+D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307D81FE0130148487F4980
+127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15F86C14FF16C06C15F06C
+816C816C81C681013F1580010F15C01300020714E0EC003F030713F015010078EC007F00
+F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC7F0001FEEB01FE9039FF
+C00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB635>I<143EA6147EA414
+FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FCA426003FFEC8FCB3A9EE
+07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEBFFF86D6C5B021F5B0203
+13802A4D7ECB34>I<D93FF8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35F
+A2017F5D173B177B6D6C14F3DC01E313F06D6CD907C3EBFFC0903A0FFFC03F836D90B512
+03010114FE6D6C13F8020701E091C7FC42377BB54B>I<B600F00107B5FCA5000101F8C8
+EA7FE06C6DED3F00A2017F163E6E157E013F167C6E15FC6D5E6F13016D5E8117036D5E6F
+13076D5E6F130F6D5E6F131F6D93C7FC815F6E6C133E177E023F147C6F13FC6E5C16816E
+5C16C3A26EEBE3E016E76E5C16FF6E5CA26E91C8FCA26F5AA36F5AA26F5AA26F5AA26F5A
+6F5A40367DB447>I<B6D8E07FB5D8C003B512C0A5000101F0C701F0C7381FF8006E027F
+ED07E06C715DA26E023F150F017F705DA26E181F013F4B6C92C7FC6E606D70143E94B5FC
+6F177E6D4A6E137C03C001F315FC6D715B160303E001E114016D020702E05B03F013C06D
+71485A160F03F8D9807F13076D05F85B93381F003F03FC160F027F4902FC5BDBFE3E011F
+131F023F04FE90C8FC167EDBFF7C010F5B6E01FCECFF3E4C6D137E6E5FA24C7F6E5F4C7F
+6E5FA24C7F6E5F4C147FA26E5F93C8123F6F5EA2033E6FC9FC5A367DB461>I<007FB500
+F090387FFFFEA5C66C48C7000F90C7FC6D6CEC07F86D6D5C6D6D495A6D4B5A6F495A6D6D
+91C8FC6D6D137E6D6D5B91387FFE014C5A6E6C485A6EEB8FE06EEBCFC06EEBFF806E91C9
+FCA26E5B6E5B6F7E6F7EA26F7F834B7F4B7F92B5FCDA01FD7F03F87F4A486C7E4A486C7E
+020F7FDA1FC0804A486C7F4A486C7F02FE6D7F4A6D7F495A49486D7F01076F7E49486E7E
+49486E7FEBFFF0B500FE49B612C0A542357EB447>I<B600F00107B5FCA5C601F8C8EA7F
+E06EED3F00A26D6C153E187E013F167C6E15FC6D5E6F13016D5E6F13036D5E8117076D6D
+5C170F6D6D5C171F6D93C7FC6F5B027F143E6F137E023F147C6F13FCA26E6D5A16816EEB
+C1F016C36E5C16E76E5C16FF6E5CA26E91C8FCA36F5AA26F5AA26F5AA26F5AA26F5AA35E
+150F5E151F93C9FC5DD81FC0133E486C137E486C137C486C13FC5D14015D14034A5A6C48
+485A49485A263FC07FCAFCEB81FE6CB45A6C13F000035BC690CBFC404D7DB447>I<001F
+B8FC1880A3912680007F130001FCC7B5FC01F0495B495D49495B495B4B5B48C75C5D4B5B
+5F003E4A90C7FC92B5FC4A5B5E4A5B5CC7485B5E4A5B5C4A5B93C8FC91B5FC495B5D4949
+EB0F805B495B5D495B49151F4949140092C7FC495A485E485B5C485E485B4A5C48495B48
+15074849495A91C712FFB8FCA37E31357CB43C>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe cmtt10 10.95 93
+/Fe 93 127 df<121C127FEAFF80B3EA7F00B2123EC7FCA8121C127FA2EAFF80A3EA7F00
+A2121C09396DB830>33 D<00101304007C131F00FEEB3F80A26C137FA248133FB2007E14
+00007C7F003C131E00101304191C75B830>I<903907C007C0A2496C487EA8011F131FA2
+02C05BA3007FB7FCA2B81280A36C16006C5D3A007F807F80A2020090C7FCA9495BA2003F
+90B512FE4881B81280A36C1600A22701FC01FCC7FCA300031303A201F85BA76C486C5AA2
+29387DB730>I<1438147C14FCA4EB03FF011F13E090B512FC4880000780481580261FFE
+FD13C09039F0FC3FE0D83FC0131FD87F80EB0FF001001307007E15F800FE14035A1507A3
+6CEC03F0A2007F91C7FC138013C0EA3FF0EA1FFE13FF6C13FF6C14E0000114F86C6C7F01
+1F7F01037F0100148002FD13C09138FC7FE0151FED0FF015070018EC03F8127E1501B4FC
+A35AA26CEC03F07E01801307ED0FE0D83FC0131F01F0EB7FC0D81FFEB512806CB612006C
+5C6C5CC614F0013F13C0D907FEC7FCEB00FCA5147C143825477BBE30>I<D803C0EB01E0
+D80FF01303486C497E487E150F487ED87E7E495AEAFE7F5E486C133FA25E157FA24BC7FC
+6C5A5D387E7E01EA7FFED83FFC5B1403EA1FF86C48485AEA03C0C75B140FA25D141FA24A
+5AA25D147FA292C8FC5CA2495AA25C1303A25C1307A290390FF001E0ED07F84A487E011F
+497EA24A487E133F163F90267F807F1380ED7E1F14005BA25B1201A24848EB7F3F033F13
+004914FF12076F5A5B6F5A6C486D5A0001EC01E029477DBE30>I<EB07E0EB1FF8497E13
+7F497E803801FC7F497E810003131F13F0A6143F92C8FC91387F0FFF9026F87E1F138000
+0113FEEBF9FC13FB4A6C1300D9FFF013C06C13E0151F02C05BEB7F809038FF003F4892C7
+FC485C48EB807E5A15FE391FDFC0FC383F8FE014E1397F07F1F8EB03F300FEEBFBF0EB01
+FF5D7FEDC006027F130F91393F801F8015C06C137F6CEBFFE049EBF83F018701FC130026
+3FFFFBB5FC6C01F15B14E06C9038C03FFC00039038001FF8D801FCEB07E0293A7DB830>
+I<EA07C0EA0FF0EA1FF8A213FCA213FE120F1207EA007EA513FE13FCA2120113F81203EA
+07F0120FEA1FE0127FEAFFC013801300127C12380F1D70B730>I<141E147F14FF5BEB03
+FEEB07FCEB0FF0EB1FE0EB3FC0EB7F80EBFF00485A5B12035B485A120F5BA2485AA2123F
+5BA2127F90C7FCA412FEAD127FA47F123FA27F121FA26C7EA27F12076C7E7F12017F6C7E
+EB7F80EB3FC0EB1FE0EB0FF0EB07FCEB03FEEB01FF7F147F141E184771BE30>I<127812
+FE7E7F6C7E6C7EEA0FF06C7E6C7E6C7E6C7EEB7F80133F14C0131FEB0FE014F01307A2EB
+03F8A214FC1301A214FE1300A4147FAD14FEA4130114FCA2130314F8A2EB07F0A2130F14
+E0EB1FC0133F1480137FEBFF00485A485A485A485AEA3FE0485A485A90C7FC5A12781847
+78BE30>I<14E0497E497EA60038EC0380007EEC0FC0D8FF83EB3FE001C3137F9038F3F9
+FF267FFBFB13C06CB61280000FECFE00000314F86C5C6C6C13C0011F90C7FC017F13C048
+B512F04880000F14FE003FECFF80267FFBFB13C026FFF3F913E09038C3F87F0183133FD8
+7E03EB0FC00038EC0380000091C7FCA66D5A6D5A23277AAE30>I<143EA2147FAF007FB7
+FCA2B81280A36C1600A2C76CC8FCAF143EA229297DAF30>I<EA03E0EA0FF0EA1FF813FC
+EA3FFEA213FFA27EA27E1203EA007FA2137E13FEEA01FC1203EA07F8EA3FF0127FEAFFE0
+EA7F801300123C1019708B30>I<007FB612F0A2B712F8A36C15F0A225077B9E30>I<120F
+EA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F000C0C6E8B30>I<16F01501ED03F8A2
+1507A2ED0FF0A2ED1FE0A2ED3FC0A2ED7F80A2EDFF00A24A5AA25D1403A24A5AA24A5AA2
+4A5AA24A5AA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA2495AA2495AA2495AA249
+C8FCA2485AA25B1203A2485AA2485AA2485AA2485AA2485AA248C9FCA25AA2127CA22547
+7BBE30>I<14FE903807FFC0497F013F13F8497F90B57E48EB83FF4848C6138049137F48
+48EB3FC04848EB1FE049130F001F15F0491307A24848EB03F8A290C712014815FCA400FE
+EC00FEAD6C14016C15FCA36D1303003F15F8A26D1307001F15F0A26D130F6C6CEB1FE0A2
+6C6CEB3FC06C6CEB7F806D13FF2601FF8313006CEBFFFE6D5B6D5B010F13E06D5BD900FE
+C7FC273A7CB830>I<EB03C0497EA2130FA2131FA2133F137F13FF1203123FB5FCA213EF
+138FEA7E0F1200B3B0003FB512F84814FCB612FEA26C14FC6C14F81F3977B830>I<EB07
+FC90383FFFC090B512F00003804814FE4880261FF80F1380263FE00113C09038C0007F48
+48EB3FE090C7121FED0FF04814075A6C15F81503A3127E1218C8FCA2150716F0150F16E0
+151F16C0153FED7F8015FF4A13005DEC07FC4A5A4A5A4A5A4A5A4A5A4990C7FC495A495A
+EB0FF0EB3FE0495A495A4890C8FC4848EB01F04848EB03F8485AEA1FE048B6FCB7FCA37E
+6C15F025397BB830>I<EB03FF013F13E090B512F84814FE4880481580260FFE0113C090
+38F0007F4848EB1FE0150F16F01507A26C5A6C5AC8FC150F16E0A2151FED3FC0157FEDFF
+8002071300903807FFFE495B5D8115FF6D1480D9000113C09138003FE0ED1FF0ED07F815
+0316FC150116FE1500A21218127EB4FCA2150116FC4814036C15F86C6C13076DEB1FF0D8
+3FF0133F3A1FFE01FFE06CB612C06C15806CECFE00C65C013F13F001031380273A7CB830
+>I<EC03FC4A7E140F141FA2143F147F157E14FEA2EB01FCEB03F8A2EB07F0A2EB0FE0EB
+1FC0A2EB3F80A2EB7F0013FEA2485A485AA2485AA2485A485AA2485AA248C7FC12FEB8FC
+1780A46C1600C8007EC7FCAA91387FFFFE91B6FCA46E5B29397DB830>I<000FB6128048
+15C05AA316800180C8FCAEEB83FF019F13C090B512F015FC8181D9FE0313809039F0007F
+C049133F0180EB1FE06CC7120F000E15F0C81207A216F81503A31218127EA2B4FC150716
+F048140F6C15E06C141F6DEB3FC06D137F3A3FE001FF80261FFC0F13006CB55A6C5C6C5C
+6C14E06C6C1380D90FFCC7FC25397BB730>I<EC0FF8EC7FFF49B51280010714E0131F49
+14F090387FF80F9039FFC007F84813803803FE005B485A4848EB03F0ED01E0484890C7FC
+5B123F5BA2127FEB000C903803FFE0010F13F8D8FF3F13FE48B6FCB7128016C09039FE00
+7FE001F8EB1FF001E0130F49EB07F849EB03FCA290C7120116FE1500A37EA46C7E15016D
+14FC121F6D1303000FEC07F86D130F6C6CEB1FF06DEB3FE03A03FF81FFC06C90B512806C
+15006D5B011F13F8010713E001011380273A7CB830>I<127CB712FC16FEA416FC48C7EA
+0FF816F0ED1FE0007CEC3FC0C8EA7F80EDFF00A24A5A4A5A5D14075D140F5D4A5AA24A5A
+A24AC7FCA25C5C13015CA213035CA213075CA4495AA6131F5CA96D5A6DC8FC273A7CB830
+>I<49B4FC011F13F0017F13FC90B57E0003ECFF804815C048010113E03A1FF8003FF049
+131FD83FC0EB07F8A24848EB03FC90C71201A56D1303003F15F86D13076C6CEB0FF06C6C
+EB1FE0D807FCEB7FC03A03FF83FF806C90B512006C6C13FC011F13F0497F90B512FE4880
+2607FE0013C0D80FF8EB3FE0D81FE0EB0FF04848EB07F8491303007F15FC90C712014815
+FE481400A66C14016C15FC6D1303003F15F86D1307D81FF0EB1FF06D133F3A0FFF01FFE0
+6C90B512C06C1580C6ECFE006D5B011F13F0010190C7FC273A7CB830>I<49B4FC010F13
+E0013F13F890B57E4880488048010113803A0FFC007FC0D81FF0EB3FE04848131F49EB0F
+F048481307A290C7EA03F85A4815FC1501A416FEA37E7E6D1303A26C6C13076C6C130F6D
+133FD80FFC13FF6CB6FC7E6C14FE6C14F9013FEBE1FC010F138190380060011400ED03F8
+A2150716F0150F000F15E0486C131F486CEB3FC0157FEDFF804A1300EC07FE391FF01FFC
+90B55A6C5C6C5C6C1480C649C7FCEB3FF0273A7CB830>I<120FEA3FC0EA7FE0A2EAFFF0
+A4EA7FE0A2EA3FC0EA0F00C7FCAF120FEA3FC0EA7FE0A2EAFFF0A4EA7FE0A2EA3FC0EA0F
+000C276EA630>I<EA03C0EA0FF0EA1FF8A2EA3FFCA4EA1FF8A2EA0FF0EA03C0C7FCAFEA
+03C0EA0FF0121F13F8123F13FCA3121FA2120F12031200120113F8120313F01207EA1FE0
+123FEA7FC0EAFF80EA7F00127E12380E3470A630>I<16F01503ED07F8151F157FEDFFF0
+14034A13C0021F138091383FFE00ECFFF8495B010713C0495BD93FFEC7FC495A3801FFF0
+485B000F13804890C8FCEA7FFC5BEAFFE05B7FEA7FF87FEA1FFF6C7F000313E06C7F3800
+7FFC6D7E90380FFF806D7F010113F06D7FEC3FFE91381FFF80020713C06E13F01400ED7F
+F8151F1507ED03F01500252F7BB230>I<007FB7FCA2B81280A36C16006C5DCBFCA7003F
+B612FE4881B81280A36C1600A229157DA530>I<1278127EB4FC13C07FEA7FF813FEEA1F
+FF6C13C000037F6C13F86C6C7EEB1FFF6D7F010313E06D7F9038007FFC6E7E91380FFF80
+6E13C0020113F080ED3FF8151F153FEDFFF05C020713C04A138091383FFE004A5A903801
+FFF0495B010F13804990C7FCEB7FFC48485A4813E0000F5B4890C8FCEA7FFE13F8EAFFE0
+5B90C9FC127E1278252F7BB230>I<EB1FFE90B512E0000314F8000F14FE488048158026
+7FF80313C09038C0007F48C7121F16E0150FA3127E151F0018EC7FC0C812FF020313804A
+13004A5AEC1FF84A5AEC7FC04A5A92C7FC495AA2495A5CA213075CA86D5A90C9FCA8EB01
+C0EB07F0A2497EA36D5AA2EB01C023397AB830>I<EC1FE0ECFFF8010313FE010F7F4914
+804914C090397FF03FE09038FF800F4890380007F0D803FC13033A07F801FBF89038F007
+FF380FE01F4A13FCEA1FC0495A003FEBFF0F903800FE07903901FC03FE007FEBF801EA7E
+03ECF000A2EAFE0700FC49137EAA00FE6D13FED87E0314FCA2ECF801D87F0114F8003FEB
+FC03903900FE07F0903880FF0F001F90387FFFE06D6C13C0EA0FE06E13803A07F007FE00
+9038F801F86C6CC7127C6CB414FE6CEB800390387FF01F6DB512FC6D14F86D14E0010314
+C00100EBFE00EC1FF0273A7CB830>I<147F4A7EA2497FA4497F14F7A401077F14E3A301
+0F7FA314C1A2011F7FA490383F80FEA590387F007FA4498049133F90B6FCA34881A39038
+FC001F00038149130FA4000781491307A2D87FFFEB7FFFB56CB51280A46C496C13002939
+7DB830>I<007FB512F0B612FE6F7E82826C813A03F8001FF815076F7E1501A26F7EA615
+015EA24B5A1507ED1FF0ED7FE090B65A5E4BC7FC6F7E16E0829039F8000FF8ED03FC6F7E
+1500167FA3EE3F80A6167F1700A25E4B5A1503ED1FFC007FB6FCB75A5E16C05E6C02FCC7
+FC29387EB730>I<91387F803C903903FFF03E49EBFC7E011F13FE49EBFFFE5B9038FFE0
+7F48EB801F3903FE000F484813075B48481303A2484813015B123F491300A2127F90C8FC
+167C16005A5AAC7E7EA2167C6D14FE123FA27F121F6D13016C6C14FCA26C6CEB03F86D13
+076C6CEB0FF03901FF801F6C9038E07FE06DB512C06D14806D1400010713FC6D13F09038
+007FC0273A7CB830>I<003FB512E04814FCB67E6F7E6C816C813A03F8007FF0ED1FF815
+0F6F7E6F7E15016F7EA2EE7F80A2163F17C0161FA4EE0FE0AC161F17C0A3163F1780A216
+7F17005E4B5A15034B5A150F4B5AED7FF0003FB65A485DB75A93C7FC6C14FC6C14E02B38
+7FB730>I<007FB7FCB81280A47ED803F8C7123FA8EE1F0093C7FCA4157C15FEA490B5FC
+A6EBF800A4157C92C8FCA5EE07C0EE0FE0A9007FB7FCB8FCA46C16C02B387EB730>I<00
+3FB712804816C0B8FCA27E7ED801FCC7121FA8EE0F8093C7FCA5153E157FA490B6FCA690
+38FC007FA4153E92C8FCAE383FFFF8487FB5FCA27E6C5B2A387EB730>I<02FF13F00103
+EBC0F8010F13F1013F13FD4913FF90B6FC4813C1EC007F4848133F4848131F49130F485A
+491307121F5B123F491303A2127F90C7FC6F5A92C8FC5A5AA892B5FC4A14805CA26C7F6C
+6D1400ED03F8A27F003F1407A27F121F6D130F120F7F6C6C131FA2D803FE133F6C6C137F
+ECC1FF6C90B5FC7F6D13FB010F13F30103EBC1F0010090C8FC293A7DB830>I<3B3FFF80
+0FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E0D803F8C7EAFE00B290B6FCA6
+01F8C7FCB3A23B3FFF800FFFE0486D4813F0B56C4813F8A26C496C13F06C496C13E02D38
+7FB730>I<007FB6FCB71280A46C1500260007F0C7FCB3B3A8007FB6FCB71280A46C1500
+213879B730>I<49B512F04914F85BA27F6D14F090C7EAFE00B3B3123C127EB4FCA24A5A
+1403EB8007397FF01FF86CB55A5D6C5C00075C000149C7FC38003FF025397AB730>I<D8
+3FFF90380FFF80486D4813C0B56C5AA26C497E6C496C1380D803F0903803F8004B5A4B5A
+151F4B5A5E4BC7FC15FE14014A5A5D4A5A4A5A141F5D4A5A4AC8FC5C13F18101F37F13F7
+90B57E14EFECC7F01483EC03F8140101FE7F496C7E5B157F497F82151F82150F826F7EA2
+6F7E1501821500D83FFF903803FFC0486D4813E0B56C5AA26C497E6C496C13C02B387FB7
+30>I<383FFFF8487FB57EA26C5B6C5BD801FCC9FCB3B0EE0F80EE1FC0A9003FB7FC5AB8
+FCA27E6C16802A387EB730>I<D83FF8ECFFE0486C4913F0486C4913F8A2007F16F06C6C
+4913E00007160001EF14BFEC800FA39039E7C01F3FA4ECE03F01E3133EA2ECF07EA201E1
+137CA2ECF8FCA201E013F8A214FDEC7DF0A3147FEC3FE0A3EC1FC0A2EC070091C7FCADD8
+3FFC903801FFE0486C4913F0B54913F8A26C486D13F06C486D13E02D387FB730>I<D83F
+FC90381FFF80486C4913C0B54913E0A26C6D6C13C06C6E13800003913801F800EBF7C0A3
+EBF3E0A314F013F1A214F8A213F014FCA2147C147EA2143E143FA2141FA21581A2140F15
+C1A2140715E1A2140315F1A21401A215F91400A3157DA3153FEA3FFF481380B5EAC01FA2
+6CEB800F6C496C5A2B387EB730>I<90383FFFE048B512FC000714FF4815804815C04815
+E0EBF80001E0133FD87F80EB0FF0A290C71207A44815F8481403B3A96C1407A26C15F0A3
+6D130FA26D131F6C6CEB3FE001F813FF90B6FC6C15C06C15806C1500000114FCD8003F13
+E0253A7BB830>I<007FB512F0B612FE6F7E16E0826C813903F8003FED0FFCED03FE1501
+6F7EA2821780163FA6167F17005EA24B5A1503ED0FFCED3FF890B6FC5E5E16804BC7FC15
+F001F8C9FCB0387FFFC0B57EA46C5B29387EB730>I<90383FFFE048B512FC000714FF48
+15804815C04815E0EBF80001E0133F4848EB1FF049130F90C71207A44815F8481403B3A8
+147E14FE6CEBFF076C15F0EC7F87A2EC3FC7018013CF9038C01FFFD83FE014E0EBF80F90
+B6FC6C15C06C15806C1500000114FCD8003F7FEB00016E7EA21680157F16C0153F16E015
+1F16F0150FED07E025467BB830>I<003FB57E4814F0B612FC15FF6C816C812603F8017F
+9138003FF0151F6F7E15071503821501A515035E1507150F4B5A153F4AB45A90B65A5E93
+C7FC5D8182D9F8007FED3FE0151F150F821507A817F8EEF1FCA53A3FFF8003FB4801C0EB
+FFF8B56C7E17F06C496C13E06C49EB7FC0C9EA1F002E397FB730>I<90390FF803C0D97F
+FF13E048B512C74814F74814FF5A381FF80F383FE001497E4848137F90C7123F5A48141F
+A2150FA37EED07C06C91C7FC7F7FEA3FF0EA1FFEEBFFF06C13FF6C14E0000114F86C8001
+1F13FF01031480D9003F13C014019138007FE0151FED0FF0A2ED07F8A2007C140312FEA5
+6C140716F07F6DEB0FE06D131F01F8EB3FC001FF13FF91B51280160000FD5CD8FC7F13F8
+D8F81F5BD878011380253A7BB830>I<003FB712C04816E0B8FCA43AFE003F800FA8007C
+ED07C0C791C7FCB3B1011FB5FC4980A46D91C7FC2B387EB730>I<3B7FFFC007FFFCB56C
+4813FEA46C496C13FCD803F8C7EA3F80B3B16D147F00011600A36C6C14FE6D13016D5CEC
+800390393FE00FF890391FF83FF06DB55A6D5C6D5C6D91C7FC9038007FFCEC1FF02F3980
+B730>I<D87FFE90380FFFC0B54913E06E5AA24A7E6C486D13C0D807F0903801FC00A26D
+130300035DA46C6C495AA46C6C495AA46D131F6D5CA3EC803F013F5CA46D6C48C7FCA490
+380FE0FEA401075B14F1A301035BA314FB01015BA314FFA26D5BA46E5A6E5A2B397EB730
+>I<D83FFC903801FFE0486C4913F000FF16F8A2007F16F06C486D13E0D81FC09038001F
+C0000F1680A76D143F00071600A7000390380F803E9039F01FC07EEC3FE0A3EC7FF0A214
+7D0001157CA29039F8FDF8FCA314F8A300005D01F913FCA2ECF07CA201FD137DA2017D5C
+ECE03DA3017F133FA2ECC01FA2013F5CA2EC800F6D486C5A2D397FB730>I<3A3FFF01FF
+F84801837F02C77FA202835B6C01015B3A01FC007F806D91C7FC00005C6D5BEB7F01EC81
+FCEB3F8314C3011F5B14E7010F5B14FF6D5BA26D5BA26D5BA26D90C8FCA4497FA2497FA2
+815B81EB0FE781EB1FC381EB3F8181EB7F0081497F49800001143F49800003141F498000
+07140FD87FFEEB7FFFB590B5128080A25C6C486D130029387DB730>I<D87FFF90381FFF
+C0B56C4813E0A46C496C13C0D803F8903803F8006D1307A26C6C495AA26C6C5C151F6D5C
+EC803F013F5CECC07F011F91C7FCA290380FE0FEA214F101075BA2903803FBF8A201015B
+14FF6D5BA26E5AA36E5AB1903803FFF8497F497FA26D5B6D5B2B387EB730>I<001FB612
+FC4815FE5AA490C7EA03FCED07F816F0150FED1FE016C0153FED7F80003E1500C85A4A5A
+5D14034A5A5D140F4A5A5D143F4A5A92C7FC5C495A5C1303495A5C130F495A5C133F495A
+91C8FC5B4848147C4914FE1203485A5B120F485A5B123F485A90B6FCB7FCA46C15FC2738
+7CB730>I<007FB5FCB61280A4150048C8FCB3B3B3A5B6FC1580A46C140019476DBE30>I<
+127CA212FEA27EA26C7EA26C7EA26C7EA26C7EA26C7EA26C7EA212017FA26C7EA26D7EA2
+6D7EA26D7EA26D7EA26D7EA26D7EA2130180A26D7EA26E7EA26E7EA26E7EA26E7EA26E7E
+A26E7EA2140181A26E7EA2ED7F80A2ED3FC0A2ED1FE0A2ED0FF0A2ED07F8A21503A2ED01
+F0150025477BBE30>I<007FB5FCB61280A47EC7123FB3B3B3A5007FB5FCB6FCA46C1400
+19477DBE30>I<1307EB1FC0EB7FF0497E000313FE000FEBFF80003F14E0D87FFD13F039
+FFF07FF8EBC01FEB800F38FE0003007CEB01F00010EB00401D0E77B730>I<007FB612F0
+A2B712F8A36C15F0A225077B7D30>I<EB7FF80003B5FC4814C04880488048809038E01F
+FC9038C003FE14016E7E6C487F6CC77FC8123FA491B5FC130F137F48B6FC12075A48EB80
+3F383FF800EA7FE0138048C7FC5AA4157F7E6C6C13FFEBC003263FF01FEBFF8090B712C0
+7E6C14EF000314876CD9FE01138026003FE0C8FC2A2A7BA830>97
+D<EA3FFC487E12FFA2127F123F1200AAEC03FE91381FFF80027F13E091B57E90B612FC82
+ECFE079138F001FF4A6C13804A137F4AEB3FC091C7121F17E049140FA217F01607A8160F
+A217E07F161F6EEB3FC0A26EEB7F806E13FFDAF00313009138FC0FFE91B55A5E495CD97E
+7F13C0D93C1F90C7FC90380003FC2C3980B730>I<ECFFE0010713FC011F7F017F7F90B6
+12804815C048EB807F3907FC003F485A485A49EB1F804848EB0F004990C7FC127F90C9FC
+A25A5AA87E7EA27F003FEC07C06DEB0FE06C7E6D131F6C6C14C0D807FE133F9039FFC0FF
+806C90B5FCC615006D5B011F13F801075B01011380232A7AA830>I<913801FFE04A7F5C
+A28080EC0007AAEB03FE90381FFF874913E790B6FC5A5A481303380FFC00D81FF0133F49
+131F485A150F4848130790C7FCA25AA25AA87E6C140FA27F003F141F6D133F6C7E6D137F
+390FF801FF2607FE07EBFFC06CB712E06C16F06C14F76D01C713E0011F010313C0D907FC
+C8FC2C397DB730>I<49B4FC010713E0011F13F8017F7F90B57E488048018113803A07FC
+007FC04848133FD81FE0EB1FE0150F484814F0491307127F90C7FCED03F85A5AB7FCA516
+F048C9FC7E7EA27F003FEC01F06DEB03F86C7E6C7E6D1307D807FEEB1FF03A03FFC07FE0
+6C90B5FC6C15C0013F14806DEBFE00010713F8010013C0252A7CA830>I<EDFF80020713
+E0021F13F05C4A13F891B5FC491387903803FE079138FC03F0903907F800C04A1300A800
+3FB612C04815E0B7FCA36C15C0260007F0C7FCB3A9003FB512FE4880B71280A26C15006C
+5C25397DB830>I<D903FC13FF90261FFF8713C04913DF90B712E05A5A2607FE07138F90
+3AF801FE07C048486C6CC7FCA2497F001F8149133FA56D137F000F92C7FC6D5BA26C6C48
+5AEBFE0790B55A5D485C15C001DF5BD9C3FCC8FC01C0C9FCA37F7F6CB512F015FF6C15C0
+4815F0488148813A3FE0001FFE0180130148C8127F007E8100FE168048151FA56C153F00
+7FED7F006D5C6C6C495A01F013076CB4EB7FFC6C90B55A6C5D000115C06C6C91C7FC011F
+13FC010113C02B3E7DA730>I<EA3FFC487E12FFA2127F123F1200AAEC01FE91380FFF80
+023F13E091B57E90B67EA29138FE07FCECF8039138E001FE14C0EC8000A291C7FCA25BB3
+A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F3880B730>I<
+14E0EB03F8A2497EA36D5AA2EB00E091C8FCA9381FFFF8487F5AA27E7EEA0001B3A9003F
+B612C04815E0B7FCA27E6C15C023397AB830>I<EC01C0EC07F0A2EC0FF8A3EC07F0A2EC
+01C091C7FCA990B512F04814F8A47EEB0003B3B3A5EC07F0A2123C007EEB0FE0B4131FEC
+3FC0147F90B512806C14005C6C5B000F13F0000313C01D4E7CB830>I<EA7FF8487EA412
+7F1200AB0203B512804A14C017E0A217C06E14809139001FE0004B5A4B5A4BC7FC4A5A4A
+5AEC0FF84A5A4A5A4A5A4A5A01FD7F90B57E8114F7ECE3F8ECC1FCEC81FEEC00FF497F49
+6D7E6F7E826F7E15076F7E6F7E3B7FFFF81FFFE0B56C4813F017F8A217F06C496C13E02D
+387FB730>I<387FFFF8B57EA47EEA0001B3B3A8007FB612F0B712F8A46C15F025387BB7
+30>I<02FC137E3B7FC3FF01FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F138726
+07FE07EB03F801FC13FE9039F803FC01A201F013F8A301E013F0B3A23C7FFE0FFF07FF80
+B548018F13C0A46C486C01071380322881A730>I<EC01FE3A3FFC0FFF80267FFE3F13E0
+00FF90B57E90B67E7E6C9038FE07FCC6EBF8039138E001FE14C0EC8000A291C7FCA25BB3
+A23B3FFFF81FFFF8486D4813FCB500FE14FEA26C01FC14FC6C496C13F82F2880A730>I<
+49B4FC010F13E0013F13F8497F90B57E0003ECFF8014013A07FC007FC04848EB3FE0D81F
+E0EB0FF0A24848EB07F8491303007F15FC90C71201A300FEEC00FEA86C14016C15FCA26D
+1303003F15F86D13076D130F6C6CEB1FF06C6CEB3FE06D137F3A07FF01FFC06C90B51280
+6C15006C6C13FC6D5B010F13E0010190C7FC272A7CA830>I<EC03FE3A3FFC1FFF80267F
+FE7F13E000FF90B57E90B612FC6C816CEBFE07C69038F001FF4A6C13804A137F4AEB3FC0
+91C7121F17E049140FA217F01607A8160FA217E07F161F6EEB3FC0A26EEB7F806E13FFDA
+F00313009138FC0FFE91B55A5E495C6E13C0021F90C7FCEC03FC91C9FCAD383FFFF8487F
+B57EA26C5B6C5B2C3C80A730>I<49B413F8010FEBC1FC013F13F14913FD48B6FC5A4813
+81390FFC007F49131F4848130F491307485A491303127F90C7FC15015A5AA77E7E15037F
+A26C6C1307150F6C6C131F6C6C133F01FC137F3907FF01FF6C90B5FC6C14FD6C14F9013F
+13F1010F13C1903803FE0190C7FCAD92B512F84A14FCA46E14F82E3C7DA730>I<ED07F8
+3A3FFF803FFF486DB51280B512C302CF14C06C13DF6C9038FFFC3FD8001F13E09238801F
+809238000F004A90C7FC5C5C5CA25CA45CAF003FB512FC4880B7FCA26C5C6C5C2A287EA7
+30>I<90381FFC1E48B5129F000714FF5A5A5A387FF007EB800100FEC7FC4880A46C143E
+007F91C7FC13E06CB4FC6C13FC6CEBFF806C14E0000114F86C6C7F01037F9038000FFF02
+001380007C147F00FEEC1FC0A2150F7EA27F151F6DEB3F806D137F9039FC03FF0090B6FC
+5D5D00FC14F0D8F83F13C026780FFEC7FC222A79A830>I<EB0780497E131FA9003FB612
+E04815F0B7FCA36C15E026001FC0C7FCB216F8ED01FCA5ECE003010FEB07F814F09138FC
+1FF06DB512E06D14C016806D14009038007FFCEC1FF026337EB130>I<D83FFCEB3FFC48
+6C497E00FF14FFA2007F147F003F143F00001400B3A41501A2150315076D130F903A7FC0
+7FFFF891B612FC6D15FE7F6D4913FC6D9038F87FF8010001C0C7FC2F2880A630>I<3B3F
+FFC07FFF80486DB512C0B515E0A26C16C06C496C13803B01F80003F000A26D130700005D
+A26D130F017E5CA2017F131F6D5CA2EC803F011F91C7FCA26E5A010F137EA2ECE0FE0107
+5BA214F101035BA3903801FBF0A314FF6D5BA36E5A6E5A2B277EA630>I<3B3FFFC01FFF
+E0486D4813F0B515F8A26C16F06C496C13E0D807E0C7EA3F00A26D5C0003157EA56D14FE
+00015DEC0F80EC1FC0EC3FE0A33A00FC7FF1F8A2147DA2ECFDF9017C5C14F8A3017E13FB
+A290393FF07FE0A3ECE03FA2011F5C90390F800F802D277FA630>I<3A3FFF81FFFC4801
+C37FB580A26C5D6C01815BC648C66CC7FC137FEC80FE90383F81FC90381FC3F8EB0FE3EC
+E7F06DB45A6D5B7F6D5B92C8FC147E147F5C497F81903803F7E0EB07E790380FE3F0ECC1
+F890381F81FC90383F80FE90387F007E017E137F01FE6D7E48486D7E267FFF80B5FCB500
+C1148014E3A214C16C0180140029277DA630>I<3B3FFFC07FFF80486DB512C0B515E0A2
+6C16C06C496C13803B01FC0003F000A2000014076D5C137E150F017F5C7F151FD91F805B
+A214C0010F49C7FCA214E00107137EA2EB03F0157C15FCEB01F85DA2EB00F9ECFDF0147D
+147FA26E5AA36E5AA35DA2143F92C8FCA25C147EA2000F13FE486C5AEA3FC1EBC3F81387
+EB8FF0EBFFE06C5B5C6C90C9FC6C5AEA01F02B3C7EA630>I<001FB612FC4815FE5AA316
+FC90C7EA0FF8ED1FF0ED3FE0ED7FC0EDFF80003E491300C7485A4A5A4A5A4A5A4A5A4A5A
+4A5A4990C7FC495A495A495A495A495A495A4948133E4890C7127F485A485A485A485A48
+5A48B7FCB8FCA46C15FE28277DA630>I<ED3FF0913803FFF8140F5C147F16F09138FFF0
+0092C7FC495A5CB3A21303495A133F383FFFF0B55A5C91C8FC14C080003F7F38003FF813
+076D7E1301B3A2806D7E15F091387FFFF016F8141F8014039138003FF025477BBE30>I<
+127CA212FEB3B3B3AD127CA207476CBE30>I<EA7FE0EAFFFE6D7E8014F07EC66C7E1307
+6D7E1301B3A2806D7E15E091387FFFE06E13F8801407141F5C4A13E09138FFE00092C7FC
+495A5CB3A21303495A137F387FFFF0B5FC14C05C49C8FCEA7FE025477BBE30>I<017C13
+3848B4137C48EB80FE4813C14813C348EBEFFC397FEFFFF0D8FF8713E0010713C0486C13
+80D87C0113003838007C1F0C78B730>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff cmbx12 20.74 17
+/Ff 17 117 df<EE3FFF0307B512F8033F14FF4AB712E0020716F8021F16FE4AD9F8077F
+91B5D8C00014C04991C7003F7F4901FC020F7F49496E7F49496E7F49496E7F49496E7F4B
+81498590B5C96C7FA24849707FA24886A248864A824886A34886A448864A82A4481B80A8
+B51AC0B3AA6C1B80A86C1B006E5EA46C62A36C62A36C6D4C5BA36C62A26C6D4C5BA26C6E
+4B5B6D616F92B5FC6D96C7FC6D6D4A5B6D6D4A5B6D6D4A5B6D6D4A5B6D01FF023F5B6D02
+C090B55A6ED9F8075C021F90B648C8FC020716F8020116E06E6C1580030702F8C9FCDB00
+3F90CAFC527379F061>48 D<EE01F0EE07F8160F163F167FED01FF150F153F4AB5FC143F
+010FB6FCB8FCA54A7E14C0EBF000C8FCB3B3B3B3AE007FBA12F0A8447171F061>I<9238
+0FFFE04AB67E020F15F0027F15FE49B87E4917E0010F17F8013F8349D9C01F14FF9027FF
+FC0001814801E06D6C80480180021F804890C86C8048486F8048486F8001FF6F804801C0
+6E8002F081486D18806E816E18C0B5821BE06E81A37214F0A56C5BA36C5B6C5B6C5B0003
+13C0C690C9FC90CA15E060A34E14C0A21B80601B0060626295B55A5F624D5C624D5C4D91
+C7FC614D5B4D13F04D5B6194B55A4C49C8FC4C5B4C5B4C13E04C5B604C90C9FCEE7FFC4C
+5A4B5B4B5B4B0180EC0FF04B90C8FC4B5A4B5A4B48ED1FE0EDFFE04A5B4A5B4A90C9FC4A
+48163F4A5ADA3FF017C05D4A48167F4A5A4990CA12FFD903FC160749BAFC5B4919805B5B
+90BBFC5A5A5A5A481A005A5ABCFCA462A44C7176F061>I<923801FFFE033FEBFFF84AB7
+FC020F16E0023F16F84A16FE49B97E49DA003F80010F01F0010714F04901800101804948
+C880D97FF86F7F02E081496C834801FC6F148014FF486E6E14C08181481AE081A96C5C1B
+C06C4A5C6C5C6D90C815806D5AD90FF85D90CA150062606295B55A4D5C624D5C4D5C4D91
+C7FC4D13FC4D5B4CB512E0047F1480037FB548C8FC92B612F818C018F8F0FF806F15F092
+C7003F13FC050713FF050114C071807213F8727F727F867214801BC07214E01BF0A27214
+F81BFCA37214FEA31BFFEBFF80000313E0487F001F13FC487FA2487FA2B67EA31BFEA360
+1BFCA292C8FC6C1AF84A5D4A18F06C494B14E05C6C01C04B14C06C90C915804E14006C6D
+4B5B6C01F092B55A6C01FC4A5C27007FFFC001075C6D01FE013F14C0010F90B85A6D4DC7
+FC010117F8D9003F16E0020F93C8FC020015F0030749C9FC507378F061>I<F10FF04F7E
+193FA2197F19FF60A260606060A2606095B5FCA25F5F5FA25F5F5F5F18BFEFFF3F5EEE03
+FE17FCEE07F8160FEE1FF0EE3FE017C0167FEEFF804B13005E4B5A15074B5A4B5A5E153F
+4B5A4B5A93C7FC4A5A14034A5A5D4A5A141F4A5A4A5A5D4AC8FC5B495A5C495A130F495A
+495A5C137F495A4890C9FC5B485A1207485A485A5B123F485A485A90BC12FCA8CB02F8C7
+FCB3A20307B912FCA856727BF161>I<0170187001FEEF01F86D6C160F02F8167FDAFF80
+EC07FF03FE49B5FC92B85A6262A26297C7FC61616119E061614EC8FC18F86018C095C9FC
+17F817C0020701F8CAFC91CDFCB0923801FFFC031FEBFFE092B612FC020315FF020F16C0
+4A16F0027FD9003F7FDAFFF0010F13FE038001037F4AC76C8002F86E804A6F7F4A6F7F4A
+834A6F7F91C980137E017C707F90CAFC1B80A21BC0A2841BE0A51BF0A313FE3803FF8000
+0F7F4813F0487F5A80B5FCA41BE0A44E14C05C7E4A18805C4A5D6C90C9150001E0606C6C
+5E6D606C6C4C5B7F000794B55A6C6C6C4A5C6C6D4A5C6E4A5C26007FF8021F49C7FC6DB4
+027F5B6DD9F007B55A6D90B712E0010317806D4CC8FC6D6C15F8021F15C002034AC9FCDA
+003F13804C7376F061>I<94381FFF800403B512F8043F14FE4BB77E030782031F16F003
+7F8292B5D8FC017F02039139C0001FFE4A49C7EA07FF021F01F8804A496E13804A01C014
+0F91B548023F13C04991C85A494992B5FC49494A14E0495B495E5D5B495BA290B55A5A5D
+487114C0A24891C91480731300735A48F00FF896C8FC485BA45AA44849903803FFE0041F
+13FE047FEBFFC04BB612F84B81030F15FFB590261FF8038092273FE0007F13E00480011F
+7F4BC76C7F03FE6E7F4B6E7FDAFDF86E7FDAFFF017804B6E14C01BE05D7313F05D1BF8A2
+92C914FC85A21BFE5CA31BFFA26C5BA87EA4807EA21BFE7EA37E1BFC6E5E6C1AF8A27E6F
+17F06C95B512E06D7F1BC06D6D4A14806D4C1400816D6D4A5B6D6D4A5B6D01FF4A13F001
+006E017F5B6ED9F007B55A6E90B7C7FC020F5E020316F86E16E0DA003F1580030702FCC8
+FCDB007F1380507378F061>I<EA03FCA2487E7F14C0ECFFF092BA12C0A45AA31C801C00
+63A2486263636363A26398C7FC48616249CAEA0FF801F0171F494D5A4F5A49604F5A007F
+4D90C8FC60494C5A4E5A614E5A4E5A48CA127F4E5A4D5B96C9FCCA485A4D5A170F4D5A60
+173F4D5A6017FF4C5BA25E4C90CAFCA24C5A161FA24C5AA2167FA24C5AA25DA24B5BA25D
+A25DA25F5DA25DA35DA392B5FCA25FA25CA45CA75CAD6E5CA26E91CBFCA26E5BED3FF8ED
+0FE0527775F461>I<93B57E031F14FC92B77E020316F0020F16FC023F16FF4A8349B5D8
+800314E04901F8C7003F7F4901C0020F7F4990C800037FD91FFC6F7F49486F6C7E137F4A
+7013804948827313C05A4A821BE05AA285487FA38080806E5E8003C017C08103F85D03FE
+17806F6C5C6C6F160004F05C04FC4A5A6C6F5D706C13FFDDE0015B6CDCF8035BDDFC0F13
+C06DDBFF1F5B6D93B5C7FC19FC6D17F06D5F6D17806D17E06D836D6C16FC6E16FF020F83
+6E17E06E83020F83023F8391B97E4984010701F0178049D9C07F16C0013FD9801F16E049
+EB00074948010116F048497F4849023F15F84849140F4A6E15FC48160148496E6C14FE4A
+151F488391C9120348050014FF193F49838500FF84854983A28586A3861BFEA27FA2007F
+1AFC7F1A7F1BF86C7FF2FFF06C7F6E4C13E06C6D4C13C06C6D5E6E4C13806C6D4C13006C
+6D6CED7FFE6C02E04A485A013F01FC020F13F06D9026FFC001B55A010791B712806D95C7
+FC010017FC021F16F002071680DA007F02FCC8FC030191C9FC507378F061>I<93B5FC03
+1F14F092B612FE02076F7E021F16E04A16F891B87E49DAF00713FF0107DA0001804901FC
+6D6C7F49496E7F49496E7F49496E7F90B5486E7F484A8048854891C86C7FA2487114805C
+481AC0A2487213E0A2484918F0A31BF8A2B5FCA27313FCA51BFEA71BFF61A27EA396B6FC
+7EA2806C5FA27E606C7F607E6C6E5C6CEF1FBF6D6DEC3F3F6D6D147F6D6D14FE6D6DEB01
+FC6D01FE130701019039FFC01FF86D91B500F014FE023F15C06E15800203ECFE00DA007F
+13F8030713C092C9FC4F13FCA41BF8A31BF0D91FF093B5FCEB7FFC496C18E0487F486E17
+C06048801B804E1400A26260624E5B4B5C626C91C8485B4A4B5B4A92B55A6C01F04A91C7
+FC02804A5B6C01E0020F5B6D6C023F13F002FE91B55A90273FFFE00F5C6D90B7C8FC0107
+16FC6D16F0010016C0023F92C9FC020714F09126007FFECAFC507378F061>I<96267FFF
+E01670063FB6ED01F80503B700F01403053F04FC14074CB96C130F040706E0131F043F72
+133F93BA00FC137F0303DC00076D13FF030F03C09039003FFF814B02FCC8000713C3037F
+02E0030113F792B600806F6CB5FC02034ACA121F4A02F8834A02E0834A4A1701027F4A83
+91B548CC7E494A85495C4C854988494A85494A85495C8A4991CDFC90B54886A2484A1B7F
+A2481E3F5D481E1F5D5A1F0FA2485CA3481E075DA2F703F0489BC7FCA45DA2B6FCB27EA2
+81A47EA2F703F06FF307F87EA36C80A21F0F7E6F1CF07E6F1B1F7E20E06C6E1B3F816DF5
+7FC06D80F7FF806D806D6E4F13006D6E616D525A826D6E4F5A6D6E4F5A6E6D6C4E5A021F
+6EF0FFE06E6E4D5B6E02F84D5B6E02FE050F90C7FC02006E6CEE3FFE6F02F0EEFFFC031F
+02FE03035B6FDAFFC0021F13E0030303FF0103B55A030093B7C8FC043F18FC040718F004
+0118C0DC003F94C9FC050316F8DD003F1580DE007F01F0CAFC757A75F78C>67
+D<92383FFFF80207B612E0027F15FC49B87E010717E0011F83499026F0007F13FC4948C7
+000F7F90B502036D7E486E6D806F6D80727F486E6E7F8486727FA28684A26C5C72806C5C
+6D90C8FC6D5AEB0FF8EB03E090CAFCA70507B6FC041FB7FC0303B8FC157F0203B9FC021F
+ECFE0391B612800103ECF800010F14C04991C7FC017F13FC90B512F04814C0485C4891C8
+FC485B5A485B5C5A5CA2B5FC5CA360A36E5DA26C5F6E5D187E6C6D846E4A48806C6D4A48
+14FC6C6ED90FF0ECFFFC6C02E090263FE07F14FE00019139FC03FFC06C91B6487E013F4B
+487E010F4B1307010303F01301D9003F0280D9003F13FC020101F8CBFC57507ACE5E>97
+D<93387FFF80030FB512FC037FECFF804AB712E0020716F8021F16FE027FD9F8077F49B5
+D8C000804991C7003F13E04901FC020F7F49496E7F49498049496E7F49496E7F90B55A48
+727E92C914804884485B1BC048841BE0485BA27313F05AA25C5AA21BF885A2B5FCA391BA
+FCA41BF002F8CCFCA67EA3807EA47E806CF103F0F207F86C7F1A0F6C6E17F06C191F6F17
+E06C6E163F6D6DEE7FC06D6D16FF6D6D4B13806D6D4B13006D6D6CEC0FFE6D02E0EC3FFC
+6D02F8ECFFF86D9126FFC00F5B023F91B65A020F178002034CC7FC020016F8031F15E003
+0392C8FCDB000F13E04D507BCE58>101 D<903801FFFCB6FCA8C67E131F7FB3AD95380F
+FFE095B512FE05036E7E050F15E0053F15F84D81932701FFF01F7F4CD900077FDC07FC6D
+80DC0FF06D80DC1FC07F4C48824CC8FC047E6F7F5EEDFDF85E03FF707F5EA25EA25EA293
+C9FCA45DB3B3A6B8D8E003B81280A8617879F76C>104 D<902601FFFCEC7FFEB6020FB5
+12F0057F14FE4CB712C0040716F0041F82047F16FE93B5C66C7F92B500F0010F14C0C66C
+0380010380011F4AC76C806D4A6E8004F06F7F4C6F7F4C6F7F4C8193C915804B7014C086
+1DE0A27414F0A27414F8A47513FCA57513FEAF5113FCA598B512F8A31DF0621DE0621DC0
+621D806F5E701800704B5B505B704B5B7092B55A04FC4A5C704A5C706C010F5C05E0013F
+49C7FC9227FE7FFC01B55A70B712F0040F16C0040393C8FC040015F8053F14C0050301F0
+C9FC94CCFCB3A6B812E0A85F6F7ACD6C>112 D<902601FFF8EB07FEB691383FFFC094B5
+12F00403804C14FE4C8093261FFC3F138093263FE07F13C0DC7F80B5FCC66C5D011FDAFE
+0114E06DEBF9FC16F815FB16F016E015FF16C07114C05E72138095381FFE0093C76C5AF0
+01E095C8FCA25DA65DB3B3A2B812F8A8434E7ACD4F>114 D<15FFA75CA55CA45CA25CA2
+5CA25CA25C91B5FCA25B5B5B131F5B90B9FC120FBAFCA6D8000791C9FCB3B3A3F01FE0AE
+183F7014C07F187F7014806D16FF826D4B13006E6D485AEEFE0F6E90B55A020F5D6E5D02
+0115C06E6C5C031F49C7FC030113F03B6E7CEC4B>116 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg cmsl10 10.95 38
+/Fg 38 91 df<007FB5FCA2B512FEA418067C961E>45 D<121EEA3F80EA7FC012FFA413
+80EA7F00123C0A0A788919>I<1703EF0780170FA2EF1F00A2173EA25FA25FA24C5AA24C
+5AA24C5AA24C5AA24CC7FCA2163E167E167C5EA24B5AA24B5AA24B5AA24B5AA24BC8FCA2
+153EA25DA25DA24A5AA24A5AA24A5AA24A5AA24AC9FCA2143EA25CA25CA2495AA2495AA2
+495AA2495A131F91CAFC133EA25BA25BA2485AA2485AA2485AA2485AA248CBFCA2123EA2
+5AA25AA21270315B7FC32D>I<EC07F8EC3FFF9138FC0FC0903903F003E0903907C001F0
+D90F8013F849C7FC013E14FC017E147C017C147E13FC485AA20003157F5B1207A2120F5B
+A2121F16FF5BA2123FA44848EB01FEA648C7EA03FCA5ED07F8A25A16F0A2150F16E0A3ED
+1FC0A21680007E143F1600157E123E003F5C4A5AD81F805B000FEB07E06C6C485A2603F0
+3FC7FC3800FFFCEB1FE0283F79BC2D>I<157015F014011407143F903803FFE0137FEBFF
+CFEBF80F1300141F15C0A5143F1580A5147F1500A55C5CA513015CA513035CA513075CA5
+130F5CA3131F497EB612F8A31D3D78BC2D>I<EC01FE91380FFFE0023F13F89138FC07FC
+903901E001FE903907C000FF49C7EA7F80011E15C0163F4915E05B0170141F13FF80A35A
+163FA26C90C7FC137E0118EC7FC090C8FCEEFF80A24B1300A24B5A5E4B5A4B5A4B5A5E4B
+5A4BC7FC15FEEC01F84A5A4A5A4A5A4AC8FC143E5C5CEB01E04948130E49485B49C7FC13
+1E495C13705B48485C484814F0000FB6FC5A485D5AB7FC5EA22B3D7CBC2D>I<EC07FC91
+383FFF809138F80FE0903903C007F09039078003FC90380F0001011C14FE013C14FF137F
+1480EBFFC0A31480A291380003FE137E90C7FCED07FC16F8150F16F0ED1FE016C0ED3F80
+ED7E005DEC07F0903803FF8015F090380001FC6E7EED7F80ED3FC0A2ED1FE016F0A316F8
+A4120EEA3F80486C133F16F012FFA216E0157F5B48C7EAFFC000F0158000704913001278
+6C495A003EEB07F86C495A390FE03FE00003B51280C649C7FCEB1FE0283F7ABC2D>I<16
+1C163C167CA216FCED01F815031507150FA2151DED3BF0157315E315C31401EC03839138
+0707E0140E141CA2143814709138E00FC0EB01C014801303EB0700130E49EB1F805B1330
+13705B485A4848EB3F0090C7FC5A120E5A5A48147E1260B8FCA3C73801FE00A25DA41403
+A25DA314074A7E0107B512F8A3283E7BBD2D>I<01061403D90780131F90390FF801FE91
+B512FC16F816F016E0168049EBFE0015F890381C7FC091C8FCA3133C1338A513781370A2
+EC1FE0ECFFF8903873E03E9038FF001F01FCEB0F804914C049EB07E04914F049130390C7
+FC16F8A61507A21206EA3F80487EA2150F00FF15F0A24914E090C7121F00FC15C000F014
+3F00701580ED7F0012786C14FE4A5A6C495A390F800FE03907E03FC06CB5C7FCC613FCEB
+1FE0283F7ABC2D>I<ED7F80913803FFE091380FC0F091383E003802FC131C495A494813
+FE903807E003EB0FC090381F8007133FD97F0013FC01FE1303ED01F0484890C7FC1203A2
+485AA2120F5BA2001FEB3F809038E0FFE0393FE3C0F89038E7007C01EE7F01FC133F4848
+EB1F80A24914C05B16E0A2485AA216F05BA2ED3FE0A290C7FCA4157F16C0A316804814FF
+007E1500007F5C14016C5C4A5A6C6C485A4A5A6C6C485A2607E07FC7FC3803FFFEC613F8
+EB3FC0273F78BC2D>I<EA0380120713E090B712805AA217005E485D5E001EC85A484A5A
+00385D150300784A5A00704AC7FC151E5D485CC8127015F04A5A4A5A4A5A4AC8FC140E14
+1E5C147C14785C1301495AA213075C130F495AA2133F91C9FC5BA25B5B1201A312035BA2
+1207A3485AA5121F5BA26C5AEA0780294074BD2D>I<EC03FC91381FFF8091387C07E090
+3901F001F0903903C000F84948137C49C7123E131E013E141F133C137C137813F8A3163F
+486C143E167E6D147C6C6C14FC6E13F89138C001F09138F003E090397FF807C09138FC0F
+0090383FFF3E6D13F86D13E06D7F01017F8101077F90391F1FFF80D93E0F13C0EBF80726
+01F00113E048486C13F04848137F4848131F001FEC0FF890C71207003E1403A2481401A3
+00FC15F05AA3ED03E0A26CEC07C0007C1580007E140F003EEC1F00003F143E6C6C5B6C6C
+485A3907F00FE00001B512806C6C48C7FCEB0FF0283F7ABC2D>I<EC07F8EC3FFE9138FC
+0F80903901F007C0903907E003E0D90FC013F090381F8001013F14F8EB7F004914FC4848
+1300A24848EB01FEA21207A3485AA41503121F5BA31507A2000F15FC150FA2151F120715
+3F000315F86C6C137F000014EF90387C01CF90393E078FF090380FFE1FEB03F890C713E0
+A2ED3FC0A3ED7F8016005D003F5C487E4A5A00FF495A5D4A5A49485A48495A007049C7FC
+0078137E383E03FC381FFFF06C13C0D801FEC8FC273F79BC2D>I<13F0EA01FC1203EA07
+FEA313FCA2EA03F8EA01E0C7FCB3121EEA3F80EA7FC012FFA41380EA7F00123C0F2778A6
+19>I<17E016011603831607A2160FA2161F83163FA2167F167716F7EEE7FCED01E316C3
+150316831507EE03FEED0F01150E151E151C153C03387FED7800157015F05D4A4880177F
+4A5AA24AC7FCA2020E81173F5C021FB6FC5CA20270C7EA3FE0171F5CA2495AA249488117
+0F49C8FCA2130EA24982013C1507A2137CD801FE4B7E2607FF80EC3FFEB500F00107B512
+FC19F85E3E417DC044>65 D<013FB7FC18E018FC903B007FE00007FE6E48903801FF8094
+38007FC05DF03FE0F01FF0A3027F16F892C8FCA54A16F04A153F19E0187F19C0F0FF8001
+014B13004A4A5A4D5AEF1FF04D5ADC03FFC7FC49B612F8EFFF8002F8C7EA3FE0EF0FF0EF
+07FC717E010715014A81711380A319C0130F5CA5011F4B13805C19005F601707013F4B5A
+4A4A5A4D5A4D5A017F913801FF8001FF020F90C7FCB812FC17F094C8FC3D3E7DBD40>I<
+DCFFC01338030F01F01378037F01FC13F0913A01FF803F01913A07FC000781DA1FE0EB03
+C3DA7FC0EB01E74AC812FF4948ED7FE0D907FC153F495A4948151F495A4948150F494816
+C018074890C9FC485AA2485A000F1880491603121FA248481607A295C7FC485AA412FF5B
+A75BA2181C183C1838A27F007F1778187018F0003F5F6D150160001F16036C6C4B5A95C7
+FC6C6C5D6C6C151E6C6C5D6C6C15F86D6C495A6D6CEB07C0D91FF0EB1F80D907FE01FEC8
+FC0101B512F86D6C13E0DA07FEC9FC3D4276BF42>I<013FB7FC18E018F8903B007FF000
+0FFE6E48EB01FF9438007FC04B6E7E180F85727E727E147F4B6E7EA2727EA302FF178092
+C9FCA54918C05CA41A8013034A5DA41A0013074A5DA261A24E5A130F4A5E180F61181F61
+011F4C5A5C4E5A4EC7FC4D5A4D5A013F4B5A4A4A5AEF3FE0EF7F80017F4A48C8FC01FFEC
+1FFCB812F0178004FCC9FC423E7DBD45>I<013FB812F8A39026007FF0C7127F6E48140F
+18034B14011800A31978147F4B1570A502FF147092C7FCA3190017F0495D4A1301A21607
+161F91B6FC495DA29138FC003F160F1607160301075D5CA219E0180119C0010FEC07004A
+90C712031980A218071900011F5E5C181EA2183E183C013F167C4A15FC4D5A1707017F15
+1F01FF4AB45AB9FCA2603D3E7DBD3E>I<013FB812E0A3903A007FF000016E48EB003F18
+0F4B14071803A31801147F4B15C0A514FF92C71270A395C7FC17F0495D5C160116031607
+161F49B65AA39138FC003F160F160701075D4A1303A5010F4AC8FC5C93C9FCA4131F5CA5
+133F5CA3137FEBFFF0B612F8A33B3E7DBD3B>I<4BB46C1370031F01F013F0037F9038FC
+01E0913A03FF807E03913A0FF8000F83DA1FE0EB07C7DA7F80EB01EF4AC812FFD903FE16
+C04948157F4948153F495A4948151F495A4948168091C9120F5A485AA2485A000F180049
+82121FA248485EA295C7FC485AA412FF5BA6043FB512E05BA29339001FFC00715AA2607F
+127FA2171F123F6D5EA2121F7F000F163F6C7E6C6C4B5A7F6C6C15FF6C6DEB01EFD93FC0
+EB07C7D91FF0EB1F87D907FE9038FE03800101B5EAF8016D6C01E0C8FCDA07FEC9FC3C42
+76BF47>I<013FB5D8F807B6FC04F015FEA29026007FF0C7380FFE006E486E5AA24B5DA4
+180F147F4B5DA4181F14FF92C85BA4183F5B4A5EA491B8FC5B6102FCC8127FA318FF1307
+4A93C7FCA45F130F4A5DA41703131F4A5DA41707133F4A5DA3017F150F496C4A7EB6D8E0
+1FB512FC6115C0483E7DBD44>I<011FB512FC5BA29039003FF8006E5AA25DA5143F5DA5
+147F5DA514FF92C7FCA55B5CA513035CA513075CA5130F5CA5131F5CA3133F497E007FB5
+12F0A2B6FC263E7EBD21>I<013FB500F8010FB5FC4C5BA29026007FF0C7000313E06E48
+6E130019FC4B15F04E5A4E5A4E5A061EC7FC027F5D4B5C4D5A4D5AEF07804DC8FC02FF14
+1E92C7127C5FEE01E04C5A4C5A49021FC9FC4A5B5E4C7E5D03077F01035B9139FC1F3FE0
+153C4B6C7E15F09139FFE00FF84913C092380007FC5C4A6D7E5C707E130F4A6D7F84177F
+717EA2011F6F7E5C717EA2717EA2013F6F7E5C84A2017F83496C4A13E0B600E0017F13FF
+A24B90B6FC483E7DBD47>75 D<013FB512FEA25E9026007FF8C8FCEC3FE0A25DA5147F5D
+A514FF92C9FCA55B5CA513035CA513075CA21838A21870130F5CA218E0A3011F15014A15
+C01703A21707EF0F80013F151F4A143F177FEFFF00017F140301FF143FB9FC5FA2353E7D
+BD39>I<90263FFFF093381FFFF85013F0629026007FF8EFF000023F4D5AA2023B933801
+DFC0A2DA39FCED039FA2F1073F14790271040E5BEC70FE191C19381A7F02F01670DAE07F
+94C7FC19E0A2F001C06201016D6C495A02C05FF00700A2180E6F6C14010103161C028003
+385BA218706F7EF0E00313070200DA01C05BA2923907F00380A294380700075B010E9026
+03F80E5C5FA25F190F011E6D6C5A011C605FA2EEFDC0DB00FF141F013C5D013860013C92
+C7FC017C5C01FE027E143F2607FF80017C4A7EB500FC037FB512E004785E4A1338553E7C
+BD53>I<90263FFFE0023FB5FC6F16FEA29026003FF8020313C0021F030013004A6C157C
+023B163C6F15381439810238167802787FDA707F157082153F82031F15F002F07FDAE00F
+5D8215078203031401010180DAC0015D82811780047F1303010315C04A013F5C17E0161F
+17F0040F1307010715F891C7000791C7FC17FC160317FE04015B4915FF010E6E130E188E
+177F18CEEF3FDE011E16FE011C6F5AA2170FA21707133C01386F5A133C017C150113FE26
+07FF801400B512FC18705C483E7DBD44>I<923803FF80031F13F09238FE01FE913903F0
+003FDA0FC0EB1FC0DA3F80EB07E0027EC76C7E49486E7E49488149486E7E4948157F495A
+013F17804948ED3FC049C9FCA24848EE1FE012035B000718F05B120FA2485A19F8123F5B
+A2127FA219F04848163FA5F07FE0A35BF0FFC0A219805F19007F4D5A127F4D5A60003F16
+0F6D5E001F4C5A4D5A6C6C4B5A95C7FC6C6C15FE00034B5A6C6C4A5A6C6C4A5A017FEC1F
+C06D6C495AD90FE001FEC8FC903903F807F80100B512C0DA0FFCC9FC3D4276BF47>I<01
+3FB612FEEFFFE018F8903B007FF0000FFC6E48EB01FF7113804BEC7FC0183F19E0F01FF0
+A2147F5D19F8A402FFED3FF092C8FCA219E0A2F07FC05B4AEDFF8019004D5A4D5AEF0FF8
+0103ED3FE04A903801FF8091B648C7FC17F002FCCAFCA213075CA5130F5CA5131F5CA513
+3F5CA3137F497EB612E0A25D3D3E7DBD3E>I<013FB612F017FF18E0903B007FF0003FF8
+6E48EB07FCEF01FE4B6D7EF07F8019C0183F19E0147F4B15F0A502FFED7FE092C8FCA219
+C0F0FF80A2494B13004A5D4D5AEF0FF04D5AEF7F800103DA07FEC7FC91B612F017809139
+FC0007E0EE03F8EE00FC0107814A147F717EA284A2130F5CA484011F157F5CA41902013F
+17075CA2F0F00F017F170E496C143FB600E0011F131C94380FF83C4B01071378CA3801FF
+E09438003F8040407DBD43>82 D<9238FF80070207EBE00F021FEBF81E91387F00FE02FC
+EB1F3ED903F0EB0FFE49481307494813034AEB01FC49C7FC491400133E137E177C491578
+A57F1770A26D1500808080EB7FFEECFFE06D13FEEDFFC06D14F06D14FC01038001008014
+3F02031480DA003F13C015031500EE7FE0163F161FA2160F121CA31607160F003C16C0A3
+1780003E151F1700007E5D007F153E6D5C16FC01E0495AD87DF0495AD8FCFCEB0FC03AF8
+7F803F8027F01FFFFEC7FCD8E00713F839C0007FC030427BBF33>I<0007B912F0A33C0F
+FE000FF8003F01F0160F01C04A13034848160190C7FC121EF000E048141F5E1238A21278
+1270153F5E5AA3C81600157F5EA515FF93C9FCA55C5DA514035DA514075DA5140F5DA314
+1FEC7FFC0003B7FCA33C3D76BC42>I<B600E090B512FC4B15F8A2000101C0C7000F1300
+6C49EC03FCEF01F091C9FC60A317015A495EA417031203495EA4170712074993C7FCA45F
+120F49150EA4171E121F49151CA4173C123F491538A31778177017F05F001F15015F1603
+6D4A5A000F93C8FC5E6C6C141E6C6C5C000115F86C6C495A017FEB07C090393FC03F8090
+260FFFFEC9FC010313F89038007FC03E4073BD44>I<B6020FB5FC19FEA2000301E00201
+13E06C01809138007F8091C9EA7E006C173C18386E15781870017F16F0604D5A804D5A13
+3F4DC7FCA26E140E171E011F151C173C17386E1478010F15705FA24C5A8001074A5AA24C
+C8FC5E6E130E0103141E161C163C16386E5B13015EA24B5A14FF6D495AA24BC9FC5D158E
+EC7F9E159C15B8A215F0143F5DA25DA26E5AA292CAFCA2140E404074BD44>I<B6017FB5
+D88007B512804A1A00A2000701C0010101E0C713F06C90C80180EC3FC06C48735A99C7FC
+057F150E1B1E6D191C6C1A3C1B3805FF15787214705E636EEB03BF017F4E5AEE073F505A
+040E7F051F4AC8FC161C6E170E013F143862167804706D5BEEF00F04E05D90381FE00104
+C015F003035E0480140106F85B9226070007130302F05F010F010E150797C9FC5D190E4B
+EB03FC616E5A01075F5D61DAF9C014FE05015BECFB8002FF6F5A7F92C75CA24A93CAFC83
+5C606D5A605C604A15781870594074BD5D>I<010FB500F090B512F85B5FD9003F902680
+003F1300DA0FFEC7EA1FF84BEC0FE00207168096C7FC6E6C141E181C6E6C143C606E6D5B
+4D5ADB7FC05B4D5A92383FE0074DC8FC92381FF01E171C6F6C5A5F923807FCF0EEFDE06F
+B45A5F6F90C9FCA26F7FA2707EA216FF4B7FED03DF9238079FF0ED0F1F92380E0FF8151C
+92383C07FC15784B6C7EEC01E04B6C7EEC038002076D7F4AC7FC021E6E7E5C02386E7E5C
+02F06E7E495A49486E7E130749486E7E497E017F4B7E2603FFF091383FFF80007F01FC49
+B512FEB55CA2453E7EBD44>I<B66C0103B51280A3000101F0C8EBF0006C49ED7FC06D48
+6FC7FC6E153E013F163C606D6C5D606D6C4A5A17036D6C4A5A95C8FC6E140E0103151E5F
+6D6C14385F6D6D13F04C5ADA7FC05B4C5AEDE007023F49C9FC161E91381FF01C5E91380F
+F8785E6E6C5AEDFDC015FF6E5B93CAFC6E5AA35DA21403A45DA21407A45DA2140FA4141F
+4A7E013FB512F0A3413E75BD44>I<010FB712FEA39239C00007FCD91FFCC7EA0FF814F0
+4AEC1FF00280EC3FE091C8EA7FC0013EEDFF80A2013C4A13004C5A494A5A4C5A13704C5A
+4C5A494A5A4C5AA290C74890C7FC4B5A4B5A4B5AA24B5A4B5A4B5A4B5AA24A90C8FC4A5A
+4A5A4A5AA24A5A4A5A4A48EB01C04A5AEF03804990C7FC495A495A494814071800495A49
+485C495A495A171E4890C8123E485A4848157E484815FE4C5A484814074848141F4848EB
+01FFB8FC5FA2373E7BBD38>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh cmbx10 10.95 49
+/Fh 49 122 df<EDFFF8020F13FF027F8049B612E001079038C01FF090390FFE0007D91F
+F8497ED93FE0131F4948497E13FF5C5A91C7FCA2705A705AEE03C093C8FCA6EE03FCB8FC
+A50001903880001F160FB3AB007FD9FE03B512F0A534407EBF3A>12
+D<B612E0A91B097F9823>45 D<161C163E167EA216FE16FC150116F8A2150316F0A21507
+16E0150F16C0A2151F1680153F1600A25D157E15FE5DA214015DA214035D14075DA2140F
+5D141F5DA2143F92C7FC5C147EA214FE5CA213015C13035CA213075C130F5CA2131F5C13
+3F91C8FCA25B137EA213FE5B12015BA212035B12075BA2120F5B121F5BA2123F90C9FCA2
+5A127E12FE5AA25A1278275B7AC334>47 D<ECFFE0010713FC011F13FF017F14C0D9FFE0
+7F489038803FF03A03FE000FF848486D7EA248486D7E001F81A348486D1380A3007F16C0
+A500FF16E0B3A2007F16C0A5003F16806D5BA2001F1600A2000F5D6D13076C6C495A6C6C
+495A6C6D485A6C9038E0FFE06DB55A011F91C7FC010713FC010013E02B3D7CBB34>I<14
+0F143F5C495A130F48B5FCB6FCA313F7EAFE071200B3B3A8007FB612F0A5243C78BB34>
+I<903803FF80013F13F890B512FE00036E7E4881260FF80F7F261FC0037F4848C67F486C
+6D7E6D6D7E487E6D6D7EA26F1380A46C5A6C5A6C5A0007C7FCC8FC4B1300A25E153F5E4B
+5AA24B5A5E4A5B4A5B4A48C7FC5D4A5AEC1FE04A5A4A5A9139FF000F80EB01FC495A4948
+EB1F00495AEB1F8049C7FC017E5C5B48B7FC485D5A5A5A5A5AB7FC5EA4293C7BBB34>I<
+903801FFE0010F13FE013F6D7E90B612E04801817F3A03FC007FF8D807F06D7E82D80FFC
+131F6D80121F7FA56C5A5E6C48133FD801F05CC8FC4B5A5E4B5A4A5B020F5B902607FFFE
+C7FC15F815FEEDFFC0D9000113F06E6C7E6F7E6F7E6F7E1780A26F13C0A217E0EA0FC048
+7E487E487E487EA317C0A25D491580127F49491300D83FC0495A6C6C495A3A0FFE01FFF8
+6CB65A6C5DC61580013F49C7FC010313E02B3D7CBB34>I<ED01F815031507A2150F151F
+153FA2157F15FF5C5CA25C5CEC1FBFEC3F3F143E147C14FCEB01F814F0EB03E01307EB0F
+C0EB1F801400133E137E5B485A5B485A1207485A5B48C7FC5A127E5AB812F8A5C8387FF8
+00AA49B612F8A52D3C7DBB34>I<00071538D80FE0EB01F801FE133F90B6FC5E5E5E5E93
+C7FC5D15F85D15C04AC8FC0180C9FCA9ECFFC0018713FC019F13FF90B67E020113E09039
+F8007FF0496D7E01C06D7E5B6CC77FC8120F82A31780A21207EA1FC0487E487E12FF7FA2
+1700A25B4B5A6C5A01805C6CC7123F6D495AD81FE0495A260FFC075B6CB65A6C92C7FCC6
+14FC013F13F0010790C8FC293D7BBB34>I<EC07FF023F13C049B512F001078049EB03FC
+90383FF80090397FE001FE9038FFC0034849487E48495AA2485A120FA2485A6F5A003F6E
+5A6F5A92C8FC485AA21402EC3FFE00FF496C7E01F9B512E001FB809138E03FF89039FF80
+0FFC4A6C7E825B6F13804915C0A317E05BA4127FA5123FA26D15C0121FA2000F4A13806D
+150012076C6C495A6C6D485A6C9038E07FF86DB55A6D5C6D1480010749C7FC010013F02B
+3D7CBB34>I<121F7F13F890B712F0A45A17E017C0178017005E5E5A007EC7EA01F84B5A
+007C4A5A4B5A4B5A93C7FC485C157E5DC7485A4A5AA24A5A140F5D141F143F5D147FA214
+FF92C8FC5BA25BA3495AA3130FA5131FAA6D5A6D5A6D5A2C3F7ABD34>I<ECFFF0010713
+FE011F6D7E017F14E09039FFC07FF03A01FE001FF848486D7E48486D7E1503485A828112
+1FA27F7F7F6D5B02C05B14F06C6D485A9138FE0FF89138FF9FF06CECFFE06C5D5E6C92C7
+FC6C816D14E0011F80498090B67E48812607FE3F7F48486C1480381FF807D9F00114C048
+486C7E007F8049010F13E0150348487F81167FA2163FA36D15C0127FEE7F807F6C6CECFF
+006C6C5B01FEEB07FE3A0FFFC03FFC6C90B55A000115E06C6C5C011F49C7FC010113F02B
+3D7CBB34>I<903801FFE0010F13FC013F13FF90B612C04801E07F489038003FF048486D
+7E000F6E7E485A6F7E123F48488081178012FFA217C0A517E0A4007F5CA4003F5C6C7E5D
+6C7E00075C3903FF80FB6C13FF6C6C13F36D13C3010F018313C090380008031400A24B13
+80EA03F0487E486C1500487E4B5AA25E151F4B5A495C6C48EBFFE049485B2607FC0F5B6C
+B6C7FC6C14FC6C14F06D13C0D90FFEC8FC2B3D7CBB34>I<16FCA24B7EA24B7EA34B7FA2
+4B7FA34B7FA24B7FA34B7F157C03FC7FEDF87FA2020180EDF03F0203804B7E02078115C0
+82020F814B7E021F811500824A81023E7F027E81027C7FA202FC814A147F49B77EA34982
+A2D907E0C7001F7F4A80010F835C83011F8391C87E4983133E83017E83017C81B500FC91
+B612FCA5463F7CBE4F>65 D<B812F8EFFF8018F018FC8426003FFCC7EA3FFF050F138071
+13C07113E08319F0A27113F8A719F05FA24D13E019C04D13804D1300EF3FFE933801FFF8
+91B712E0188018F818FE02FCC7380FFF80050313C07113E07113F019F8F07FFCA2F03FFE
+A219FFA38460A419FE187FA2F0FFFC4D13F85F4D13F0053F13E0BA12C0190018FC18F095
+C7FC403E7DBD4A>I<922607FFC0130E92B500FC131E020702FF133E023FEDC07E91B7EA
+E1FE01039138803FFB499039F80003FF4901C01300013F90C8127F4948151FD9FFF8150F
+48491507485B4A1503481701485B18004890CAFC197E5A5B193E127FA349170012FFAC12
+7F7F193EA2123FA27F6C187E197C6C7F19FC6C6D16F86C6D150119F06C6D15036C6DED07
+E0D97FFEED0FC06D6CED3F80010F01C0ECFF006D01F8EB03FE6D9039FF801FFC010091B5
+5A023F15E002071580020002FCC7FC030713C03F407ABE4C>I<B812F8EFFF8018F018FC
+18FF26003FFCC76C13C005077F05017F716C7E727E727E727E721380A27213C0A27213E0
+A21AF084A21AF8A41AFCA5197FA319FFA51AF8A41AF0A2601AE0A24E13C0A24E13804E13
+00604E5A4E5A4D485A050713E0057F5BBA5A4EC7FC18F818C005F8C8FC463E7DBD50>I<
+BAFCA4198026003FFEC7123F1707170183183FA2181FF00FC0A31807EE07C0A3F003E0A3
+160F95C7FC161F163F16FF91B6FCA54AC6FC163F161F040F147CA2160719F8A593C71201
+A219F01803A21807A2180FF01FE0183F18FF1703173FBAFCA219C0A33E3D7DBC45>I<B9
+12FEA48426003FFEC77E170F1703170084A284F01F80A3180FA2EE07C0A2F007C0A4040F
+90C7FCA2161F163F16FF91B6FCA54AC6FC163F161F160FA21607A693C9FCACB712E0A53A
+3D7DBC42>I<922607FFC0130E92B500FC131E020702FF133E023FEDC07E91B7EAE1FE01
+039138803FFB499039F80003FF4901C01300013F90C8127F4948151FD9FFF8150F484915
+07485B4A1503481701485B18004890CAFC197E5A5B193E127FA34994C7FC12FFAB0407B6
+12FC127F7FA3003F92C7383FFE00A27F7EA26C7FA26C7F6C7FA26C7F6C7FD97FFE157F6D
+6C7E010F01E014FF6D01F813036D9038FF801F010091B512F3023F15C00207ED803E0200
+9138FE000E030701E090C7FC46407ABE52>I<B71280A526003FFEC7FCB3B3B0B71280A5
+213E7DBD28>73 D<B6037FB512E0A2818181D8003F6D9139001F800081A281816E7E6E7F
+6E7F80826E7F6E7F6E7F6E7F157F826F7F6F7F6F7F6F7F81836F7F6F7F707E701380A270
+13C07013E07013F07013F87013FCA27013FEEF7FFF71139F7113DF8319FF8383838384A2
+8484848484A284B600C080197F193F191FA24B3E7DBD52>78 D<ED3FFF0203B512F0021F
+14FE027F6E7E902701FFF80713E00107D9C00013F84990C7EA3FFCD93FFCEC0FFF49486E
+7F49486E7F48496E7F4A80488448496F7EA24890C96C7E4884A249161F003F84A3484870
+1380A400FF19C0AD007F19806D5EA3003F1900A26D5E6C60A26C6D4B5AA26C6D4B5A6C6D
+4A5BA26C6D4A5B6C6D4A5B6D6C4A5B6DB4023F90C7FC6D01C0EBFFFE0107D9F80713F801
+0190B612E06D5E021F4AC8FC020314F0DA003F90C9FC42407ABE4F>I<B812F017FF18C0
+18F018FC26003FFCC77FEF1FFF7113807113C07113E0A27113F0A319F8A819F0A34D13E0
+19C05F4D1380053F1300EFFFFE91B712F860188005FCC7FC4ACAFCB3A4B77EA53D3E7DBD
+47>I<B87E17FCEFFF8018F08428003FFC000113FE9338003FFF050F7F717F717FA28583
+85A761A25F61614D5B4D90C8FCEF3FFE4CB45A91B712F018C04DC9FC717E9126FC000F7F
+040113F0707F717EA2717EA2717EA685A6F207C019C0A271140F07E01380B76DEBF01F71
+9038FC3F007190B5FC716C5B061F13F8CB000113E04A3F7DBD4E>82
+D<903A03FFC001C0011FEBF803017FEBFE0748B6128F4815DF48010013FFD80FF8130F48
+481303497F4848EB007F127F49143F161F12FF160FA27F1607A27F7F01FC91C7FCEBFF80
+6C13F8ECFFC06C14FCEDFF806C15E016F86C816C816C816C16806C6C15C07F010715E0EB
+007F020714F0EC003F1503030013F8167F163F127800F8151FA2160FA27EA217F07E161F
+6C16E06D143F01E015C001F8EC7F8001FEEB01FF9026FFE00713004890B55A486C14F8D8
+F81F5CD8F00314C027E0003FFEC7FC2D407ABE3A>I<003FB912FCA5903BFE003FFE003F
+D87FF0EE0FFE01C0160349160190C71500197E127EA2007C183EA400FC183F48181FA5C8
+1600B3AF010FB712F8A5403D7CBC49>I<B76C90B61280A526003FFEC9003EC7FCB3B3A4
+197E011F177C80A26D17FC616D6D14014E5A6D6D4A5A6D6D140F6D01F8EC3FC0DA7FFEEC
+FF8091273FFFC00F90C8FC020F90B512FC02035D020015E0031F1480030101F8C9FC493F
+7DBD50>I<903807FFC0013F13F848B6FC48812607FE037F260FF8007F6DEB3FF0486C80
+6F7EA36F7EA26C5A6C5AEA01E0C8FC153F91B5FC130F137F3901FFFE0F4813E0000F1380
+381FFE00485A5B485A12FF5BA4151F7F007F143F6D90387BFF806C6C01FB13FE391FFF07
+F36CEBFFE100031480C6EC003FD91FF890C7FC2F2B7DA933>97 D<13FFB5FCA512077EAF
+EDFFE0020713FC021FEBFF80027F80DAFF8113F09139FC003FF802F06D7E4A6D7E4A1307
+4A80701380A218C082A318E0AA18C0A25E1880A218005E6E5C6E495A6E495A02FCEB7FF0
+903AFCFF01FFE0496CB55AD9F01F91C7FCD9E00713FCC7000113C033407DBE3A>I<EC7F
+F00107B5FC011F14C0017F14E09039FFF01FF0489038800FF848EB001F4848EB3FFC120F
+485AA2485AA2007FEC1FF849EB0FF0ED03C000FF91C7FCAB127F7FA3003F153E7F001F15
+7E6C6C147C6C6C14FC91388001F86C9038C003F0C69038F81FE06DB512C0011F14800107
+EBFE009038007FF0272B7DA92E>I<EE07F8ED07FFA5ED003F161FAFEC7FF0903807FFFE
+011FEBFF9F017F14DF9039FFF01FFF48EBC00348EB00014848EB007F485A001F153F5B12
+3FA2127F5BA212FFAA127FA37F123FA26C6C147F120F6D14FF6C6C01037F6C6D48EBFFE0
+6CEBF03F6C6CB512BF6D143F010713FC010001E0EBE00033407DBE3A>I<ECFFF0010713
+FE011F6D7E017F809039FFE07FE0489038801FF048496C7E48486D7E48486D7E121F4913
+01003F81A2485A6F1380A212FFA290B7FCA401F0C9FCA5127FA27F123FEE0F806C7E161F
+6C6C15006C6C5C6C6D137E6C9038E001FC6C9038F80FF8013FB55A6D14C0010391C7FC90
+38007FF8292B7DA930>I<EC07FE91387FFF8049B512C0010714E090390FFE3FF0EB1FF0
+90393FE07FF8EB7FC013FF1480A2489038003FF0ED1FE0ED0FC092C7FCAAB612E0A50001
+0180C7FCB3AC007FEBFF80A525407DBF20>I<903A03FF8007F0013F9038F83FF8499038
+FCFFFC48B712FE48018313F93A07FC007FC34848EB3FE1001FEDF1FC4990381FF0F81700
+003F81A7001F5DA26D133F000F5D6C6C495A3A03FF83FF8091B5C7FC4814FC01BF5BD80F
+03138090CAFCA2487EA27F13F06CB6FC16F016FC6C15FF17806C16C06C16E01207001F16
+F0393FE000034848EB003F49EC1FF800FF150F90C81207A56C6CEC0FF06D141F003F16E0
+01F0147FD81FFC903801FFC02707FF800F13006C90B55AC615F8013F14E0010101FCC7FC
+2F3D7DA834>I<13FFB5FCA512077EAFED1FF8EDFFFE02036D7E4A80DA0FE07F91381F00
+7F023C805C4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A5333F7CBE3A>I<EA01F8487E48
+7E487E481380A66C13006C5A6C5A6C5AC8FCA913FFB5FCA512077EB3ABB512F8A515407C
+BF1D>I<13FFB5FCA512077EB3B3AFB512FCA5163F7CBE1D>108 D<01FFD91FF8ECFFC0B5
+90B5010713F80203DAC01F13FE4A6E487FDA0FE09026F07F077F91261F003FEBF8010007
+013EDAF9F0806C0178ECFBC04A6DB4486C7FA24A92C7FC4A5CA34A5CB3A4B5D8FE07B5D8
+F03FEBFF80A551297CA858>I<01FFEB1FF8B5EBFFFE02036D7E4A80DA0FE07F91381F00
+7F0007013C806C5B4A6D7E5CA25CA35CB3A4B5D8FE0FB512E0A533297CA83A>I<EC7FF0
+903803FFFE011FEBFFC0017F14F09039FFE03FF8489038800FFC3A03FE0003FE48486D7E
+000F168048486D13C0A2003F16E049147F007F16F0A400FF16F8AA007F16F0A46C6CECFF
+E0A2001F16C06C6C491380A26C6C4913003A03FF800FFE6C9038E03FFC6C6CB512F0011F
+14C0010791C7FC9038007FF02D2B7DA934>I<01FFEBFFE0B5000713FC021FEBFF80027F
+80DAFF8113F09139FC007FF8000701F06D7E6C496D7E4A130F4A6D7E1880A27013C0A382
+18E0AA4C13C0A318805E18005E6E5C6E495A6E495A02FCEBFFF0DAFF035B92B55A029F91
+C7FC028713FC028113C00280C9FCACB512FEA5333B7DA83A>I<3901FE01FE00FF903807
+FF804A13E04A13F0EC3F1F91387C3FF8000713F8000313F0EBFFE0A29138C01FF0ED0FE0
+91388007C092C7FCA391C8FCB3A2B6FCA525297DA82B>114 D<90383FFC1E48B512BE00
+0714FE5A381FF00F383F800148C7FC007E147EA200FE143EA27E7F6D90C7FC13F8EBFFE0
+6C13FF15C06C14F06C806C806C806C80C61580131F1300020713C014000078147F00F814
+3F151F7EA27E16806C143F6D140001E013FF9038F803FE90B55A15F0D8F87F13C026E00F
+FEC7FC222B7DA929>I<EB07C0A5130FA4131FA3133F137FA213FF5A1207001FEBFFFEB6
+FCA40001EBC000B3151FA96CEBE03EA2017F137EECF8FC90383FFFF86D13F0010713E001
+001380203B7EB929>I<D9FF80EB0FF8B5EB0FFFA50007EC007F6C153FB3A5167FA316FF
+6C5C4B7F6C903AC007DFFFE09138F01F9F6DB5121F6D13FE010F13F8010101E0EBE00033
+2A7CA83A>I<B500FC90383FFFC0A5000101C0903803E0006E1307A26C5E6E130F017F5D
+6E131F013F92C7FC6E5B011F143E6E137E010F147C6E13FCA26D5C15816D5C15C36D5C15
+E76D5C15FF6E5BA36E90C8FCA26E5AA26E5AA26E5AA26E5AA232287EA737>I<B5D8FC03
+B51280A5C69026E0007FC7FC6E13FE6D6C5B6D6C485A6D6C485A010F13076D6C485AED9F
+C06DEBFF806D91C8FC6D5B6E5AA2143F6E7E140F814A7F4A7F4A7F02FE7F903801FC7F49
+486C7E02F07F49486C7E49486C7E011F7F49486C7FD97F008001FE6D7FB5D8C007EBFFC0
+A532287EA737>120 D<B500FC90383FFFC0A5000101C0903803E0006E1307A26C5E6E13
+0F017F5D6E131F013F92C7FC6E5B011F143E6E137E010F147C6E13FCA26D5C15816D5C15
+C36D5C15E76D5C15FF6E5BA36E90C8FCA26E5AA26E5AA26E5AA26E5AA35D14075D000E13
+0FD83F805B387FC01FD8FFE090C9FC5C143E147E5CEBC1F8387FC3F0387E0FE06CB45A6C
+5B6C48CAFCEA03F8323B7EA737>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi cmr10 10.95 93
+/Fi 93 124 df<4AB4EB0FE0021F9038E03FFC913A7F00F8FC1ED901FC90383FF03FD907
+F090397FE07F80494801FF13FF4948485BD93F805C137F0200ED7F00EF003E01FE6D91C7
+FC82ADB97EA3C648C76CC8FCB3AE486C4A7E007FD9FC3FEBFF80A339407FBF35>11
+D<EC03FE91383FFF809138FE03E0903903F800F0D90FE013384948137C90393F8001FE90
+387F00035B5BA2485A6F5AED007093C7FCAA16FEB7FCA33901FC000315011500B3AC486C
+497EB5D8F87F13FCA32E407EBF33>I<EC03FF023F13EE9138FE01FEEB03F090380FE003
+EB1FC0EB3F80EB7F005B5B150148481300AEB7FCA3D801FCC7FCB3AE486C497EB5D8F87F
+13FCA32E407EBF33>I<DA03FE49B4FC91273FFF801F13C0913BFE03E07F01F0903C03F0
+00F1FC0078D90FE0D97FF0131C49484948133E4948484913FF494848495A5B491500A248
+485C03016E5A0300153896C7FCAA197FBBFCA3D801FCC738FE00018485B3AC486C496CEC
+FF80B5D8F87FD9FC3F13FEA347407EBF4C>I<121EEA7F80EAFFC0A9EA7F80ACEA3F00AC
+121EAB120CC7FCA8121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A4179C019>33
+D<001E130F397F803FC000FF137F01C013E0A201E013F0A3007F133F391E600F30000013
+00A401E01370491360A3000114E04913C00003130101001380481303000EEB070048130E
+0018130C0038131C003013181C1C7DBE2D>I<4B6C130C4B6C131EA20307143EA24C133C
+A2030F147CA293C71278A24B14F8A2031E5CA2033E1301A2033C5CA3037C1303A203785C
+A203F81307A24B5CA20201140F007FBAFCBB1280A26C1900C72707C0003EC8FC4B133CA3
+020F147CA292C71278A24A14F8A2021E5CA3023E1301007FBAFCBB1280A26C1900C727F8
+0007C0C8FC4A5CA20101140FA24A91C9FCA301035CA24A131EA20107143EA24A133CA201
+0F147CA291C71278A34914F8A2011E5CA2013E1301A2013C5CA201186D5A41517BBE4C>
+I<14E0A4EB07FC90383FFF8090B512E03901F8E3F03903E0E0FCD807C0133CD80F807FD8
+1F007F003E80003C1580007C140316C00078141F00F8143F157FA47EED3F806CEC0E0092
+C7FC127F138013C0EA3FF013FEEA1FFF6C13FC6C13FF6C14C06C806C6C13F8011F7F1303
+01007FECE7FF14E102E01380157F153FED1FC0A2003E140F127FD8FF801307A5130000FC
+158000F0140F1270007815005D6C141E153E6C5C6C5C3907C0E1F03903F8EFE0C6B51280
+D93FFEC7FCEB0FF8EB00E0A422497BC32D>I<013F1603D9FFC04B7E2601E0E0150F2607
+C070151F48486C4BC7FC023E157E48486C15FE48D90FC0EB03FC003ED90EF0EB0FF8DA0F
+3F13FD007E903A070FFFF1F0007C0200EB03E0160000FC6D6C495A170F604DC8FC5F173E
+5F17FC5F4C5A1603007CD907005B4C5A007E150F003E495C020E49C9FC003F5D6C49133E
+260F803C5B023813FC6C6C485B3A01E0E001F03800FFC090273F0003E0133F90C70007EC
+FFC09339C001E0E0923A0F8007C070031F49487E0400143C033E90381F001C037E497F03
+7C133E4B150F0201027E7F4B137C4A5A020702FCEB03805D4A5A141F92C7FC143E147E14
+7C5CA2495A0103037CEB07005C4948147E010F033E5B4A160E49C8123F496F5B013E9238
+0F803C49173801FC6F6C5A49923801E0E0496FB45A0160043FC7FC41497BC34C>I<EC0F
+80EC7FE0ECF870903803E0380107133CECC01CEB0F80011F131E150EA2EB3F00A55D1480
+A25D157815705D6D6C5A14C1ECC38002C7CAFC02EE91387FFFFCEB0FEC14FC4A020713C0
+6D48913801FE006E5DEF00F06D7E01074B5A496C5D011D1503D939FF4A5A017093C7FC49
+6D5B0001017F140E496C6C131E00036E131C2607801F143C000F6E5B001F6D6C1370263F
+000714F0486E485ADA03FE5B913801FF03486D495A0487C8FCED7FCFED3FFE6F4814386D
+5C150F007F6E6C14786D6D6C1470003F4A6C14F06D496C6C13E0001F91393E3FC0016C6C
+903AFC1FF003C03D07FC07F007FC1F800001B5D8C001B512006C6C90C7EA7FFCD90FF8EC
+0FF03E437CC047>I<121EEA7F8012FF13C0A213E0A3127FEA1E601200A413E013C0A312
+011380120313005A120E5A1218123812300B1C79BE19>I<1430147014E0EB01C0EB0380
+1307EB0F00131E133E133C5B13F85B12015B1203A2485AA2120F5BA2121F90C7FCA25AA3
+123E127EA6127C12FCB2127C127EA6123E123FA37EA27F120FA27F1207A26C7EA212017F
+12007F13787F133E131E7FEB07801303EB01C0EB00E014701430145A77C323>I<12C07E
+12707E7E121E7E6C7E7F12036C7E7F12007F1378137CA27FA2133F7FA21480130FA214C0
+A3130714E0A6130314F0B214E01307A614C0130FA31480A2131F1400A25B133EA25BA213
+7813F85B12015B485A12075B48C7FC121E121C5A5A5A5A145A7BC323>I<EB03C0A2805C
+A600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC03900FDBF
+00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3C3FC39FF
+03C0FF00FE147F00FC143F00F0140F00001400A6805CA220277AC32D>I<1506150FB3A9
+007FB912E0BA12F0A26C18E0C8000FC9FCB3A915063C3C7BB447>I<121EEA7F8012FF13
+C0A213E0A3127FEA1E601200A413E013C0A312011380120313005A120E5A121812381230
+0B1C798919>I<B512FEA617067F961E>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A
+798919>I<ED0180ED03C01507A21680150FA216005DA2151E153EA2153C157CA2157815
+F8A25D1401A25D1403A25D1407A25D140FA24AC7FCA2141E143EA2143C147CA2147814F8
+A25C1301A25C1303A25C1307A25C130FA291C8FC5BA2131E133EA25BA2137813F8A25B12
+01A25B1203A25B1207A25B120FA290C9FC5AA2121E123EA2123C127CA2127812F8A25A12
+60225B7BC32D>I<EB01FE90380FFFC090383F03F090387C00F849137C48487F48487F48
+48EB0F80A2000F15C04848EB07E0A3003F15F0A290C712034815F8A64815FCB3A26C15F8
+A56C6CEB07F0A3001F15E0A36C6CEB0FC0A26C6CEB1F80000315006C6C133E6C6C5B017C
+5B90383F03F090380FFFC0D901FEC7FC263F7DBC2D>I<EB01C013031307131F137FEA07
+FFB5FC139FEAF81F1200B3B3ACEB7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090
+B512E03903F01FF83907C007FC390F0001FE001E6D7E001C1580003CEC7FC05AED3FE012
+70B4FC6DEB1FF07FA56C5A6CC7FC120CC813E0153FA216C0157F168015FF16004A5A5D4A
+5A4A5A5D4A5A4A5A4AC7FC147E147C5C495A495A495A495A49C71270133E133C5B4914E0
+485A485A485A48C7120148B6FCA25A4815C0B7FCA3243D7CBC2D>I<EB07FC90383FFF80
+9038F80FE03901E003F839078001FCD80F007F000E6D7E001E1580D81F80137F486C14C0
+7FA27F5BA2121F6C5AC8138015FF1600A24A5AA24A5A5DEC07E04A5A023FC7FCEB1FFCEC
+FF809038000FE0EC07F86E7E6E7E6E7E1680ED7FC0A216E0153FA216F0A2120C123F487E
+487EA316E0A249137F6CC713C01278EDFF807E6C4913006C495A3907C007FC3903F80FF0
+C6B55A013F1380D907F8C7FC243F7CBC2D>I<150E151E153EA2157EA215FE1401A21403
+EC077E1406140E141CA214381470A214E0EB01C0A2EB0380EB0700A2130E5BA25B5BA25B
+5B1201485A90C7FC5A120E120C121C5AA25A5AB8FCA3C8EAFE00AC4A7E49B6FCA3283E7E
+BD2D>I<00061403D80780131F01F813FE90B5FC5D5D5D15C092C7FC14FCEB3FE090C9FC
+ACEB01FE90380FFF8090383E03E090387001F8496C7E49137E497F90C713800006141FC8
+13C0A216E0150FA316F0A3120C127F7F12FFA416E090C7121F12FC007015C012780038EC
+3F80123C6CEC7F00001F14FE6C6C485A6C6C485A3903F80FE0C6B55A013F90C7FCEB07F8
+243F7CBC2D>I<EC1FE0ECFFF8903803F03E90380FC00F90391F000780133E017EEB1FC0
+49133F4848137F12035B12074848EB3F80ED1F00001F91C7FC5BA2123FA3485AA214FE90
+3887FF8039FF8F07E090389C01F09038B800FC01B0137E13F0497F16804914C0A2ED1FE0
+A34914F0A5127FA6123F6D14E0A2121FED3FC0A26C6C1480A20007EC7F006C6C137E6C6C
+5B6C6C485A90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<1238123C123F90
+B612FCA316F85A16F016E00078C712010070EC03C0ED078016005D48141E151C153C5DC8
+127015F04A5A5D14034A5A92C7FC5C141EA25CA2147C147814F8A213015C1303A31307A3
+130F5CA2131FA6133FAA6D5A0107C8FC26407BBD2D>I<EB03FC90381FFF8090387C07E0
+9038F001F83901E0007C48487F48487F48C7FCED0F80121E16C0003E1407A4123FA26DEB
+0F807F6C6C131F6D140001FC133E6C6C5B9038FF80786C6D5A6CEBF3E06CEBFF806C91C7
+FC133F6D13C06D7F013F13F801787F48486C7E3903E01FFF48486C1380260F800313C048
+487E489038007FE0003E143F007E141F007CEC0FF01507481403A31501A46C15E0007C14
+03A2007E15C06C14076CEC0F806DEB1F006C6C133ED807F05B3901FC03F86CB512E0011F
+1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF90387E07C09038FC03F048486C7E4848
+6C7E4848137C000F147E4848137F81003F15805B007F15C0A2151F12FF16E0A516F0A512
+7F153FA36C7EA2001F147F120F6C6C13FF6D13DF000313013900F8039F90387E0F1FD91F
+FE13E0EB07F090C7FCA2ED3FC0A41680157FD80F801400487E486C13FEA24A5A5D49485A
+EB8007391E000FE0001F495A260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D>I<
+121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121EEA7F80A2EAFFC0A4EA7F80A2EA1E
+000A2779A619>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3121E127FEAFF80A2
+13C0A4127F121E1200A412011380A3120313005A1206120E120C121C5A1230A20A3979A6
+19>I<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCA8120C121EAB123FACEA7F80ACEA
+FFC0A9EA7F80EA1E000A4179AC19>I<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0
+BA12F0A26C18E03C167BA147>I<EB0780EB1FE0A2497EA46D5AA2EB078090C8FCA81303
+80A4130791C7FCA65BA3131EA2133E133C137CA25B1201485A485A120F485A485A127FA2
+48C7127C15FEEC01FFA480157F6C141EA26C6C133C1578390FC001E03907F00FC03901FF
+FE0038003FF020407BAC2B>I<EB1FF890B5FC3903E01FC0390F0007F0001EEB03F848EB
+01FC4814FE140000FE14FF7E7FA46CC7FC123EC7EA01FEA2EC03FCEC07F815F0EC0FC0EC
+1F80EC3F00143E5C147814F85C13015CA2495AA25CAB91C7FC90C8FCA8EB0780EB1FE0A2
+497EA46D5AA2EB078020407BBF2B>I<ED7FE0913807FFFE91391F801F809139780001E0
+D901E0EB0078D90780141E49C87E011E6F7E0138ED01C0496F7E49167000011778484882
+49D93F80131C28070001FFF07F48902607E07C130F000E90260FC01E7F001E90263F0007
+1480001C499038038003003C01FED901C013C0003849ECFE010101EC00FF267803F8027F
+13E000701700495AA200F018F000E01870495AA96D7E12F01270A26D7E007818E0263801
+FC5C01005C003C7F001C017F49EB01C0001E6DEB077F000E903B0FC01E3F8380000F903B
+07E07C1F87006C903A01FFF007FE3C0380003F8001F86D90CAFC6C7E120013707F011EEE
+03F06D160F6D6CED3FC0D901E0913801FE00D90078EC1FF0913A1F8003FF800207B500F8
+C7FC9126007FFEC8FC3C417BBF47>I<15074B7EA34B7EA34B7EA34B7EA34B7E15E7A291
+3801C7FC15C3A291380381FEA34AC67EA3020E6D7EA34A6D7EA34A6D7EA34A6D7EA34A6D
+7EA349486D7E91B6FCA249819138800001A249C87EA24982010E157FA2011E82011C153F
+A2013C820138151FA2017882170F13FC00034C7ED80FFF4B7EB500F0010FB512F8A33D41
+7DC044>I<B712FCEEFF8017F00001903980000FF86C6CC7EA03FE707E701380EF7FC0EF
+3FE0A2EF1FF0A218F8A3170F171FA318F0A2EF3FE0177F18C0EFFF804C1300EE03FCEE0F
+F8EE7FE091B6C7FC17E091C7EA07FCEE01FE933800FF80EF7FC0EF3FE0EF1FF018F8170F
+18FC1707A218FEA718FC170FA2EF1FF818F0173FEF7FE0EFFFC00403138048486C90380F
+FE00B85A17E094C7FC373E7DBD40>I<DB3FF01306912603FFFE130E020F9038FF801E91
+3A3FF007E03E9139FF8000F8D903FEC7EA7C7ED907F8EC1EFE4948140FD93FE014074948
+1403495A91C812014848150012034848167E5B000F173EA24848161EA2123F5B180E127F
+A349160012FFAC127F7F180EA2123FA27F001F171E181C6C7EA20007173C6D16386C6C16
+78000117706C6C16F06EEC01E06D6C15C06D6C1403D90FF0EC07806D6CEC1F00D903FE14
+3E902600FF8013F891393FF007F0020FB512C0020391C7FC9138003FF037427BBF42>I<
+B712FCEEFF8017E000019039C0001FF86C6C48EB03FEEE00FF717E717EEF0FE084717E71
+7E170184717EA21980187F19C0A3F03FE0A519F0AB19E0A5F07FC0A21980A218FF19004D
+5AA24D5A6017074D5A4D5AEF7FC04DC7FCEE03FE48486CEB1FF8B85A178004FCC8FC3C3E
+7DBD45>I<B912E0A300019038C000016C6C48EB001FEF0FF01703A217011700A31870A4
+18381638A41800A21678A216F81501150791B5FCA3EC8007150115001678A21638A2180E
+A3181C93C7FCA4183C1838A21878A318F8EF01F0A21707170F173F48486CEB03FFB912E0
+A3373E7DBD3E>I<B91280A300019038C000036C6C48EB007FEF1FC0170F1707A21703A3
+1701A4EF00E0A21638A31800A31678A216F81501150791B5FCA3EC8007150115001678A2
+1638A693C8FCAF3801FFE0B612F0A3333E7DBD3B>I<DB3FE0130C912603FFFE131C021F
+9038FF803C913A7FF00FC07C9139FF0001F0D903FC90380078FC4948143DD91FE0141F49
+48140F4948140701FF15034890C8FC491501485A000716005B000F177C5B001F173CA248
+5AA2181C127FA25B95C7FC12FFAB041FB512F0127FA26D9139000FFE00EF03FC123FA27F
+121FA26C7EA212077F12036C7E7F6C7F6D6C14076D7E6D6C140FD907F8141ED903FEEC3C
+7C902600FF80EBF83C913A7FF007F01C021FB5EAC00C020391C8FC9138003FF03C427BBF
+47>I<B6D8C01FB512F8A3000101E0C7383FFC0026007F80EC0FF0B3A691B7FCA30280C7
+120FB3A92601FFE0EC3FFCB6D8C01FB512F8A33D3E7DBD44>I<B612F0A3C6EBF000EB3F
+C0B3B3B2EBFFF0B612F0A31C3E7EBD21>I<011FB512FCA3D9000713006E5A1401B3B3A6
+123FEA7F80EAFFC0A44A5A1380D87F005B007C130700385C003C495A6C495A6C495A2603
+E07EC7FC3800FFF8EB3FC026407CBD2F>I<B600C090387FFFFCA3000101E0C7000F1380
+26007F80913807FE0018F818E0604D5A4DC7FC173E5F5F4C5A4C5A4C5A4C5A4CC8FC163E
+5E5E4B5A4B5AED07804B7E151F4B7E4B7E15FF913881EFF8913883C7FCEC878791388F03
+FE91389E01FF14BCDAF8007F4A6D7E5C4A6D7E4A6D7EA2707E707EA2707E707EA2707F71
+7E84173F717E717EA2717E848419802601FFE04A13C0B600C090B6FCA3403E7DBD47>I<
+B612F8A3000101E0C9FC38007F80B3B0EF0380A517071800A45FA35FA25F5F5F4C5A1607
+48486C133FB8FCA3313E7DBD39>I<B500C093B512C0A300016D4BEBE000D8007F1880D9
+77F0ED03BFA3D973F8ED073FA3D971FC150EA2D970FE151CA3027F1538A36E6C1470A36E
+6C14E0A26E6CEB01C0A36E6CEB0380A36E6CEB0700A26E6C130EA36E6C5BA3037F5BA26F
+6C5AA36F6C5AA392380FE1C0A3923807F380A26FB4C7FCA36F5AA213F8486C6D5AD807FF
+EFFFE0B500F80178017FEBFFC0A34A3E7CBD53>I<B56C91B512F88080D8007F03071300
+6EEC01FC6E6E5A1870EB77FCEB73FEA2EB71FF01707FA26E7E6E7EA26E7E6E7EA26E7E6E
+7EA26E7E6E7FA26F7E6F7EA26F7E6F7EA26F7E6F7EA26F7E6F1380A2EE7FC0EE3FE0A2EE
+1FF0EE0FF8A2EE07FCEE03FEA2EE01FF7013F0A2177F173FA2171F170FA2170701F81503
+487ED807FF1501B500F81400A218703D3E7DBD44>I<ED7FE0913807FFFE91391FC03F80
+91397E0007E04948EB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E01FE6F
+7E00018349150300038348486F7EA248486F7EA2001F188049167F003F18C0A3007F18E0
+49163FA300FF18F0AC007F18E06D167FA4003F18C0A26C6CEEFF80A36C6C4B1300A26C6C
+4B5A00035F6D150700015F6C6C4B5A6D5E6D6C4A5A6D6C4A5A6D6C4AC7FC6D6C14FED901
+FCEB03F8D9007FEB0FE091391FC03F80912607FFFEC8FC9138007FE03C427BBF47>I<B7
+12F8EEFF8017E000019039C0003FF86C6C48EB07FCEE01FE707EEF7F80EF3FC018E0A2EF
+1FF0A218F8A818F0A2EF3FE0A218C0EF7F80EFFF004C5AEE07FCEE3FF091B612C04CC7FC
+0280C9FCB3A73801FFE0B612C0A3353E7DBD3E>I<ED7FE0913807FFFE91391FC03F8091
+397F000FE0D901FCEB03F8D907F0EB00FE4948147F49486E7E49486E7E49C86C7E498248
+486F7E49150300038348486F7EA2000F834981001F1880A24848EE7FC0A3007F18E0A249
+163FA200FF18F0AC007F18E0A26D167FA3003F18C0A26C6CEEFF80A3000F18006D5D0007
+DA0F805B6C6C90393FE003FCED70706C6C496C485A6C6C48486C485A017FD9800E5BD93F
+819038061FC0D91FC19038073F80D90FE14AC7FCD907F1EB03FE902601FDC013F8903A00
+7EE007E091271FF03FC013180207B5FC9139007FE1E0DB0001143883711378A2706C13F0
+EFFF0318FFA27113E0A37113C0711380711300715AEF01F83D527BBF47>I<B712C016FC
+EEFF800001D9C00013E06C6C48EB1FF0EE07FCEE01FE707E84717EA2717EA284A760177F
+606017FF95C7FCEE01FCEE07F8EE1FE0EEFF8091B500FCC8FC16F091388001FCED003FEE
+1FC0707E707E83160383160183A383A484A4F0C004190EA28218E0057F131E2601FFE016
+1CB600C0EB3FF094381FF83805071370CA3801FFE09438003F803F407DBD43>I<D907FC
+131890391FFF8038017FEBE0783901FC03F83A03F0007CF8D807C0133F4848130F001F14
+0748C7FC003E1403007E1401A2007C140012FC1678A46C1538A27EA26C6C14007F7FEA3F
+F8EBFF806C13F86CEBFF806C14F06C14FC6C14FF6C15C0013F14E0010714F0EB007F0207
+13F89138007FFC150FED07FE15031501ED00FFA200E0157FA3163FA27EA3163E7E167E6C
+157C6C15FC6C15F86D13016DEB03F06DEB07E0D8F9FCEB0FC03AF07F803F8090391FFFFE
+00D8E00713F839C0007FC028427BBF33>I<003FB91280A3903AF0007FE001018090393F
+C0003F48C7ED1FC0007E1707127C00781703A300701701A548EF00E0A5C81600B3B14B7E
+4B7E0107B612FEA33B3D7DBC42>I<B600C090B512F8A3000101E0C70007130026007F80
+EC01FC715A1870B3B3A4013F16F06E5DA21701011F5E80010F15036E4A5A010793C7FC6D
+6C5C6D6C141E6D6C5C027F14F86E6C485A91390FF00FE00203B51280020049C8FCED1FF0
+3D407DBD44>I<B691380FFFFEA3000301E0020113E06C01809138007F806CEF3F00017F
+163E181C6E153C013F1638A26E1578011F1670A26D6C5DA26E140101075EA26E14030103
+5EA26D6C4AC7FCA2806D150EA26F131E027F141CA26F133C023F1438A26E6C5BA26F13F0
+020F5CA2EDF80102075CA26E6C485AA2EDFE07020191C8FCA26F5A6E130EA2ED7F9CA216
+DCED3FF8A36F5AA36F5AA26F5AA36F5A3F407EBD44>I<B500FE017FB5D88007B5FCA300
+0301C0010101E0C713F86C90C849EC3FE07148EC0F807E7215006E143F017F190E84A26D
+6C60A24D7E6D6C60A2EFE7F86D6C60A2933801C3FC6E18F001076104037F6E0281140101
+036104077F17006D6C4D5AA2040EEB7F806D6C4DC7FCA24CEB3FC0DA7F80160EA24CEB1F
+E003C0161E023F171C047814F0DBE070010F133C021F173804F014F84C1307DA0FF05EA2
+DBF1C0EB03FCDA07F95EA2DBFB80EB01FEDA03FF6F5AA293C8FCA26E5FA24B157F020094
+C8FCA24B81037C153EA20378151E0338151C58407EBD5D>I<007FB5D8C003B512E0A3C6
+49C7EBFC00D93FF8EC3FE06D48EC1F806D6C92C7FC171E6D6C141C6D6C143C5F6D6C1470
+6D6D13F04C5ADA7FC05B023F13036F485ADA1FF090C8FC020F5BEDF81E913807FC1C163C
+6E6C5A913801FF7016F06E5B6F5AA26F7E6F7EA28282153FED3BFEED71FF15F103E07F91
+3801C07F0203804B6C7EEC07004A6D7E020E6D7E5C023C6D7E02386D7E14784A6D7E4A6D
+7F130149486E7E4A6E7E130749C86C7E496F7E497ED9FFC04A7E00076DEC7FFFB500FC01
+03B512FEA33F3E7EBD44>I<B66C0103B51280A3000101F0C8EBF8006C6C48ED3FC0725A
+013F041EC7FC6D7E606D6C15386D6C1578606D6C5D6E14016D5E6D6D1303606E6C49C8FC
+6E6C5B170E6E6C131E171C6E6C5B6E6C137817706E6C13F06F5B6E13016EEB83C05FED7F
+C7DB3FE7C9FC16EFED1FFE5E150F6F5AB3A4ED1FFC020FB512FCA3413E7FBD44>I<003F
+B712F8A391C7EA1FF013F801E0EC3FE00180EC7FC090C8FC003EEDFF80A2003C4A130000
+7C4A5A12784B5A4B5AA200704A5AA24B5A4B5AA2C8485A4A90C7FCA24A5A4A5AA24A5AA2
+4A5A4A5AA24A5A4A5AA24990C8FCA2495A4948141CA2495A495AA2495A495A173C495AA2
+4890C8FC485A1778485A484815F8A24848140116034848140F4848143FED01FFB8FCA32E
+3E7BBD38>I<EAFFFCA4EAF000B3B3B3B3ABEAFFFCA40E5B77C319>I<486C13C000031301
+01001380481303000EEB070048130E0018130C0038131C003013180070133800601330A3
+00E01370481360A400CFEB678039FFC07FE001E013F0A3007F133FA2003F131F01C013E0
+390F0007801C1C73BE2D>I<EAFFFCA4EA003CB3B3B3B3ABEAFFFCA40E5B7FC319>I<EA01
+80120313005A120E5A12181238123012701260A312E05AA412CFEAFFC013E0A3127FA212
+3F13C0EA0F000B1C7ABE19>96 D<EB0FF8EBFFFE3903F01F8039078007E0000F6D7E9038
+E001F8D81FF07F6E7EA3157F6C5AEA0380C8FCA4EC1FFF0103B5FC90381FF87FEB7F8038
+01FC00EA07F8EA0FE0485A485AA248C7FCEE038012FEA315FFA3007F5BEC03BF3B3F8007
+1F8700261FC00E13CF3A07F03C0FFE3A01FFF807FC3A003FC001F0292A7DA82D>I<EA01
+FC12FFA3120712031201B1EC03FC91381FFF8091387C07E09039FDE001F09039FFC000FC
+4A137E91C77E49158049141F17C0EE0FE0A217F0A2160717F8AA17F0A2160FA217E0161F
+17C06D1580EE3F006D5C6E13FE9039F3C001F89039F1E003F09039E0780FC09026C03FFF
+C7FCC7EA07F82D407EBE33>I<49B4FC010F13E090383F00F8017C131E4848131F484813
+7F0007ECFF80485A5B121FA24848EB7F00151C007F91C7FCA290C9FC5AAB6C7EA3003FEC
+01C07F001F140316806C6C13076C6C14000003140E6C6C131E6C6C137890383F01F09038
+0FFFC0D901FEC7FC222A7DA828>I<ED01FC15FFA3150715031501B114FF010713E19038
+1F80F990387E003D49131FD803F81307485A49130348481301121F123F5B127FA290C7FC
+A25AAA7E7FA2123FA26C7E000F14037F000714076C6C497E6C6C497ED8007C017913F890
+383F01F190380FFFC1903A01FE01FC002D407DBE33>I<EB01FE90380FFFC090383F03F0
+9038FC01F848486C7E4848137E48487F000F158049131F001F15C04848130FA2127F16E0
+90C7FCA25AA290B6FCA290C9FCA67EA27F123F16E06C7E1501000F15C06C6C13036DEB07
+806C6C1400C66C131E017E5B90381F80F8903807FFE0010090C7FC232A7EA828>I<EC1F
+C0EC7FF8903801F83C903807E07E90380FC0FFEB1FC1EB3F811401137FEC00FE01FE137C
+1500AEB6FCA3C648C7FCB3AE487E007F13FFA320407EBF1C>I<167C903903F801FF903A
+1FFF078F8090397E0FDE1F9038F803F83803F001A23B07E000FC0600000F6EC7FC49137E
+001F147FA8000F147E6D13FE00075C6C6C485AA23901F803E03903FE0FC026071FFFC8FC
+EB03F80006CAFC120EA3120FA27F7F6CB512E015FE6C6E7E6C15E06C810003813A0FC000
+1FFC48C7EA01FE003E140048157E825A82A46C5D007C153E007E157E6C5D6C6C495A6C6C
+495AD803F0EB0FC0D800FE017FC7FC90383FFFFC010313C0293D7EA82D>I<EA01FC12FF
+A3120712031201B1EC01FE913807FFC091381E07E091387803F09138E001F8D9FDC07F14
+8001FF6D7E91C7FCA25BA25BB3A6486C497EB5D8F87F13FCA32E3F7DBE33>I<EA01E0EA
+07F8A2487EA46C5AA2EA01E0C8FCACEA01FC127FA3120712031201B3AC487EB512F0A314
+3E7DBD1A>I<1478EB01FEA2EB03FFA4EB01FEA2EB00781400AC147FEB7FFFA313017F14
+7FB3B3A5123E127F38FF807E14FEA214FCEB81F8EA7F01387C03F0381E07C0380FFF8038
+01FC00185185BD1C>I<EA01FC12FFA3120712031201B292B51280A392383FFC0016E016
+8093C7FC153C5D5D4A5AEC07C04A5A4AC8FC143E147F4A7E13FD9038FFDFC0EC9FE0140F
+496C7E01FC7F496C7E1401816E7E81826F7E151F826F7EA282486C14FEB539F07FFFE0A3
+2B3F7EBE30>I<EA01FC12FFA3120712031201B3B3B1487EB512F8A3153F7DBE1A>I<2701
+F801FE14FF00FF902707FFC00313E0913B1E07E00F03F0913B7803F03C01F80007903BE0
+01F87000FC2603F9C06D487F000101805C01FBD900FF147F91C75B13FF4992C7FCA2495C
+B3A6486C496CECFF80B5D8F87FD9FC3F13FEA347287DA74C>I<3901F801FE00FF903807
+FFC091381E07E091387803F000079038E001F82603F9C07F0001138001FB6D7E91C7FC13
+FF5BA25BB3A6486C497EB5D8F87F13FCA32E287DA733>I<14FF010713E090381F81F890
+387E007E01F8131F4848EB0F804848EB07C04848EB03E0000F15F04848EB01F8A2003F15
+FCA248C812FEA44815FFA96C15FEA36C6CEB01FCA3001F15F86C6CEB03F0A26C6CEB07E0
+6C6CEB0FC06C6CEB1F80D8007EEB7E0090383F81FC90380FFFF0010090C7FC282A7EA82D
+>I<3901FC03FC00FF90381FFF8091387C0FE09039FDE003F03A07FFC001FC6C496C7E6C
+90C7127F49EC3F805BEE1FC017E0A2EE0FF0A3EE07F8AAEE0FF0A4EE1FE0A2EE3FC06D15
+80EE7F007F6E13FE9138C001F89039FDE007F09039FC780FC0DA3FFFC7FCEC07F891C9FC
+AD487EB512F8A32D3A7EA733>I<02FF131C0107EBC03C90381F80F090397F00387C01FC
+131CD803F8130E4848EB0FFC150748481303121F485A1501485AA448C7FCAA6C7EA36C7E
+A2001F14036C7E15076C6C130F6C7E6C6C133DD8007E137990383F81F190380FFFC19038
+01FE0190C7FCAD4B7E92B512F8A32D3A7DA730>I<3901F807E000FFEB1FF8EC787CECE1
+FE3807F9C100031381EA01FB1401EC00FC01FF1330491300A35BB3A5487EB512FEA31F28
+7EA724>I<90383FC0603901FFF8E03807C03F381F000F003E1307003C1303127C007813
+0112F81400A27E7E7E6D1300EA7FF8EBFFC06C13F86C13FE6C7F6C1480000114C0D8003F
+13E0010313F0EB001FEC0FF800E01303A214017E1400A27E15F07E14016C14E06CEB03C0
+903880078039F3E01F0038E0FFFC38C01FE01D2A7DA824>I<131CA6133CA4137CA213FC
+A2120112031207001FB512C0B6FCA2D801FCC7FCB3A215E0A912009038FE01C0A2EB7F03
+013F138090381F8700EB07FEEB01F81B397EB723>I<D801FC14FE00FF147FA300071403
+0003140100011400B3A51501A31503120015076DEB06FF017E010E13806D4913FC90381F
+C078903807FFE00100903880FE002E297DA733>I<B539E00FFFE0A32707FE000313006C
+48EB00FC5E00015D7F00005DA26D13016D5CA26D6C485AA2ECC007011F91C7FCA290380F
+E00EA2ECF01E0107131CA26D6C5AA2ECFC7801011370A2ECFEF001005BA2EC7FC0A36E5A
+A26EC8FCA3140E2B287EA630>I<B53BC3FFFE03FFF8A3290FFE003FE00013C06C486D48
+EB3F806C4817006D010F141E00016F131C15076D163C00004A6C1338A2017F5E4B7E151D
+D93F805DED3DFC1538D91FC04A5AED78FE9238707E03D90FE0017F5BEDE03F02F0140701
+070387C7FC9138F1C01F02F9148F010315CE9138FB800F02FF14DE6D15FCED00076D5DA2
+4A1303027E5CA2027C1301023C5C023813003D287EA642>I<B539F01FFFE0A30003D9C0
+0F1300C690388007F8D97F0013E002805BD93FC05B011F49C7FC90380FE00EECF01E6D6C
+5A01035B6D6C5A6E5AEB00FF6E5A6E5A81141F814A7E81147BECF1FC903801E1FEECC0FF
+01037F49486C7ED90F007F011E6D7E013E130F496D7E01FC80486C80000F4A7EB539803F
+FFF8A32D277FA630>I<B539E00FFFE0A32707FE000313006C48EB01FC6F5A00015D7F00
+005DA2017F495AA2EC8003013F5CA26D6C48C7FCA26E5A010F130EA26D6C5AA2ECF83C01
+031338A26D6C5AA2ECFEF001005BA2EC7FC0A36E5AA36EC8FCA2140EA2141E141C143C14
+38A2147800181370127EB45BA2495AA248485AD87E07C9FCEA780EEA3C3CEA1FF8EA07E0
+2B3A7EA630>I<001FB61280A2EBE0000180140049485A001E495A121C4A5A003C495A14
+1F00385C4A5A147F5D4AC7FCC6485AA2495A495A130F5C495A90393FC00380A2EB7F80EB
+FF005A5B484813071207491400485A48485BA248485B4848137F00FF495A90B6FCA22127
+7EA628>I<B812F0A22C0280982D>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fj cmr12 14.4 16
+/Fj 16 122 df<120FEA3FC0EA7FE0EAFFF0A6EA7FE0EA3FC0EA0F000C0C768B21>46
+D<EC1FF891B5FC010314C090390FF81FF090391FC003F849486C7E017EC7127E49800001
+168049141F4848EC0FC0000716E0491407000F16F0A34848EC03F8A2003F16FCA44848EC
+01FEA700FF16FFB3A5007F16FEA56D1403A2003F16FCA4001F16F8A26D1407000F16F0A2
+6C6CEC0FE0A26C6CEC1FC0A26C6CEC3F806C6CEC7F00017F14FE6D6C485A6D6C485A9039
+0FF81FF00103B512C0010091C7FCEC1FF830517BCE3B>48 D<EC7FE0903803FFFE010F6D
+7E013F14E0D9FF0013F8D801F8EB1FFCD803E06D7E4848EB03FF48486D138090C813C000
+1E16E0001C157F003CED3FF012380078ED1FF81270A2B4ED0FFC13C07FA66C5A6C5A000E
+C8FCC9EA1FF8A317F0163FA2EE7FE017C016FF17804B1300A24B5A4B5A5E4B5A4B5A4B5A
+5E4BC7FC15FE4A5A4A5A4A5A4A5A5D4A5A4AC8FC147E5C4948141CEB03E0495A49481438
+91C8FC131E5B5B491578485A48481570484815F048B7FCA25A5A5AB812E0A42E4F7ACE3B
+>50 D<160F5EA25E5EA25E5DA25D5DA25D151E151C153C5D157015F04A5A5D14035D4A5A
+5C140E5C143C14385C14F05C495A13035C130749C7FC130E131E5B133813785B5B120148
+5A5B120748C8FC120E121E5A123812785AB912F0A4C8000190C7FCAF4B7F4B7F020FB612
+E0A434507DCF3B>52 D<000316C001C0140301F8141F903AFFC003FF8091B612005E5E5E
+16E016804BC7FC019F13F8018113800180C9FCB0EC0FF0ECFFFE01836D7E903987F01FE0
+90399F0007F801BE6D7E01F86D7E496D7E49EC7F805BEE3FC04915E0C9121F17F0A317F8
+160FA317FCA5120EEA3F80487E12FF7FA217F85B161F5B48C813F012700078ED3FE0A26C
+16C0167F6CEDFF80001F16006C6C495A6C6C13036C6CEB07F8D801F8EB1FF06CB4EB7FE0
+6DB51280011F49C7FC010713F8010013C02E517ACE3B>I<49B612FEA490C7003F138092
+380FFE001507B3B3B3A21206EA3FC0487E487EA44B5AA25B007F5D0180131F0078C75B6C
+143F003E4A5A6C5D6C6C495A2707E003FEC7FC3901FC07FC6CB512F0013F13C0D907FCC8
+FC2F547BD13C>74 D<B600FC030FB512E0A4C691CAEBFC00D97FFCEF3FF06D48EF1FC001
+1F616E71C7FC130F1A0E6E171E0107181CA26E173C6D1838816D60A26F16F06D6081027F
+4C5AA281023F4C5AA26F1507021F94C8FC81020F160EA26F151E0207161CA26F153C6E16
+38826E5EA27014F06E5E821801037F5D82033F4A5AA2701307031F92C9FC82030F140EA2
+70131E0307141CA270133C6F143817806F5CA2EFC0F06F5C17E017E1047F5B17F193383F
+F380A217FF7090CAFCA2705AA3705AA3705AA2705AA3705A53547ED158>86
+D<EC0FF891B5FC010314C090390FF80FF090391FC003FC90397F8001FE49C77E4848EC7F
+804848143F49EC1FC0485A000FED0FE05B001F16F01607485AA2007F16F8A25B160312FF
+90B7FCA30180C9FCA8127F7FA2123FA26D1538121F17786C6C1570000716F06D15E06C6C
+14016C6CEC03C06C6C15806D6C130F6D6CEB1F00D90FF0133C903907FE01F80101B512E0
+6D6C1380DA07FCC7FC2D367DB434>101 D<1378EA01FE487E487FA66C90C7FC6C5AEA00
+7890C8FCB0EB7F80B5FCA41203C6FC137FB3B3A43801FFE0B61280A419507CCF21>105
+D<EB7F80B5FCA41203C6FC137FB3B3B3B13801FFE0B612C0A41A537CD221>108
+D<01FFEB07FCB590383FFF8092B512E0913901F00FF8913903C007FC000349C66C7EC601
+0E13016D486D7E5C143002706E7E146014E05CA35CB3AD2601FFE0903801FFE0B600C0B6
+12C0A43A347CB341>110 D<EC0FFC91387FFF8049B512E0903907F807F890391FE001FE
+90393F80007F017EC7EA1F80496E7E48486E7E00038248486E7EA248486E7EA248486E7E
+A2003F82A24848ED7F80A400FF17C0AB007F1780A26D15FFA2003F1700A2001F5E6D1401
+000F5E6D140300075E6C6C4A5A6C6C4A5AA2D8007FEC3F806D6C49C7FC90391FE001FE90
+3907F807F86DB55AD9007F1380DA0FFCC8FC32367CB43B>I<01FFEB1F80B5EB7FF09138
+01FFF8913803E1FC91380783FE0003EB0F07C6131EEB7F1C1438143091387003FC913860
+00F0160014E05CA45CB3AA8048487EB612F0A427347DB32E>114
+D<D907FE13C090387FFF8148B512E33907F803FF390FC0007F4848133F48C7121F003E14
+0F007E1407127C00FC1403A315017EA27E7F6C6C90C7FC13F013FF6C13F86CEBFF806C14
+E06C14F86C14FEC680013F1480010714C0D9003F13E014039138007FF0151F00E0140FED
+07F8A26C1403A215017EA36C15F0A26C14036C15E015076DEB0FC06DEB1F80D8FDF0EB3F
+0039F8FC01FE39F07FFFF8D8E01F13E0D8C00390C7FC25367CB42E>I<D97F80EC7F80B5
+91B5FCA400031503C61500017F157FB3AC17FFA35EA3013F5C6EEB077FA2011F020E7F6D
+6C011C13F06E0178EBFFC0903903FC01F06DB512E06D6C1380912607FC00EB80003A357C
+B341>117 D<B60103B51280A4000301F09039007FF800C601C0EC3FE0017FED1F8095C7
+FC133F6E141E131F171C6E143C010F15388001075DA26E14F001035D8001014A5AA26E13
+036D5D1580027F49C8FCA26F5A023F130E15E0021F5BA2EDF03C020F133815F802075BA2
+EDFCF002035B15FE6E6C5AA36E5BA26FC9FCA3153EA2151CA2153C153815781570A215F0
+5D14015DA2003E495A127F486C48CAFCA2140E141E495A6C5B007C5B383F03E06CB45A00
+075BD801FCCBFC394B7EB23E>121 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fk cmbx12 17.28 21
+/Fk 21 118 df<F00FE04E7EA24E7EA34E7EA24E7EA34D7FA24D80A24D80A34D80A24D80
+A34D80A2DD7FBF7FA2181F05FF8017FE04016D7FA24D7E04038217F804076D80A24D7E04
+0F8217E0041F6D80A24D7F043F825F047F6E7FA294C77E4C825E03016F7FA24C80030384
+5E03076F80A24C80030F845E031F6F80A24C81033F845E037F707F93B9FCA292BA7EA24A
+85A203FCC912070203865D020771805D86020F864B82021F865D87023F864B83027F8692
+CBFC874A864A840101875C496C728090381FFFC0B700E092B812FEA66F647BE37A>65
+D<BD12E0A41CF0A2D8000102C0C71207F1003F1A0F1A031A001B7F1B3FF31FF81B0FA21B
+07A21B03A21B011CFCA31B00A419FCA21C7EA41C00A21801A31803A21807180F183FEF01
+FF93B6FCA6EEC001EF003F180F18071803A21801A31800A896C9FCB3A5B912F8A657617A
+E065>70 D<B912E0A6C702E0C7FCB3B3B3B3AEB912E0A633627CE13C>73
+D<BB7E1AFCF2FFC01BF81BFE757ED800010280C7001F80070114F0736C7F081F7F747F74
+7F7414807414C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B512F0A21DE0A25014C0
+1D8062501400505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8FC04C0
+CCFCB3B3A2B97EA65E627AE16E>80 D<DBFFFCEC01E0020FD9FFE01303027F02FC130749
+B7130F0107EEC01F011F16F049D9C007EBF83F4948C7383FFE7FD9FFF8020FB5FC4801E0
+14014849804849153F91C97E484882001F834982003F83845B007F187FA2193FA200FF18
+1FA27F190FA27FA26D17078080806C01F893C7FC80ECFF8015F86CECFFC016FC6CEDFFE0
+17FE6CEEFFE018F86C17FE6C717E6C846C846D17F86D836D836D8313036D18806D6C17C0
+020F17E01401DA000F16F01500040715F8EE007F1703050014FC183F84060713FE84A200
+7C8300FC83A2197FA3193F7EA31AFC7EA27F1AF86D177F7F1AF06D17FF6D18E06D5E01FF
+18C06E4B138002E04B130002F84B5A02FFED3FFC01CF01E0ECFFF8018301FF010F5B0101
+91B65A6D6C5E48011F93C7FC48010315FC48D9003F14E048020149C8FC476677E35A>83
+D<001FBEFCA64849C79126E0000F148002E0180091C8171F498601F81A0349864986A249
+1B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3
+021FBAFCA663617AE070>I<913803FFFE027FEBFFF00103B612FE010F6F7E4916E09027
+3FFE001F7FD97FE001077FD9FFF801017F486D6D7F717E486D6E7F85717FA2717FA36C49
+6E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207B7FC147F49B61207010F14C0013FEB
+FE004913F048B512C04891C7FC485B4813F85A5C485B5A5CA2B55AA45FA25F806C5E806C
+047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE114FF6C9027FFC07FC01580000191B5
+487E6C6C4B7E011F02FC130F010302F001011400D9001F90CBFC49437CC14E>97
+D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612FC038715FF
+038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F03F8824B6F7E4B6F1380
+4B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13F8A31BF0A24F13E0A24F
+13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B9126F83FE0013F13C09127
+F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C8000313E04F65
+7BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001FFF4901F801
+0113804901E0010713C04901804913E0017F90C7FC49484A13F0A2485B485B5A5C5A7113
+E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA280A27EA2806C18FCA26C
+6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC06D01E0EC7F806D6DECFF
+00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F1580020102FCC7FCDA00
+0F13C03E437BC148>I<92380FFFC04AB512FC020FECFF80023F15E091B712F80103D9FE
+037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F49486E7F48498048844A80
+4884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA67EA380A2
+7EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D4A5A6D01
+E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15F8020715
+E0020092C8FC030713F041437CC14A>101 D<EE3FFC0307B51280033F14C04AB612F002
+0715F84A9038F03FFC4AEB807F913A7FFE00FFFE4A5A4B4813FF4913F05B4913E0A24913
+C0A27013FE4949EB7FFCEF3FF8EF1FF0EF07C094C7FCB0B812C0A6D8001F01C0C8FCB3B3
+B0007FB612FCA638657CE431>I<F107F8DB7FFEEC3FFE020FB5D8F001B5FC027FDAFE03
+148049B7128F49DCDFFD13C0010FD9F00FEBFFC149D9800114014990C7EBFC0349486E6C
+7E4948EC3FFF48496E018113800780130048F0C03E97C7FC48496E7FA34884A96C60A36C
+6D4A5BA26C60A26C6D4A90C8FC6D6C4A5A6D6C4A5A6D6D485BDBF00F5B4990B612C060D9
+7C7F4AC9FCD9FC0F14F09126007FFECAFC92CCFC1201A47FA27F8014F091B77E18FE6CEF
+FFC019F06D17FC19FF6D846D846D846D84013F8490BAFC0003854801E0C712014890C900
+0F7F484816014848EE007F4848717E8512FF5B85A56D5F007F616D173F003F616D177F6C
+6C4D5A6C01C003035B6C6D4B5B6C01F8031F5BC601FF92B5C7FC6D01F8011F5B011F90B7
+12F8010717E0010094C8FC020F15F0DA003F01FCC9FC4A607CC151>I<EB0FE0EB3FF849
+7E48B5FCA24880A24880A76C5CA26C91C7FCA238007FFC6D5AEB0FE090C9FCAF903807FF
+80007FB5FCA6C6FC7F7FB3B3AEB712C0A622657BE42C>105 D<903807FF80B6FCA6C6FC
+7F7FB3B3B3B3ADB712E0A623647BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F0
+0207EBFF80040702FC023F14E0041F02FF91B612F84C6F488193267FE07F6D4801037F92
+2781FE001F9027E00FF0007FC6DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0
+DBF87EC7804C6D027C80039FC76E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5F
+A24B94C8FCA44B5EB3B2B7D8F007B7D8803FB612FCA67E417BC087>I<902607FF80EB1F
+FFB691B512F0040714FC041F14FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6D
+D987F07F6DD98FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007
+B71280A651417BC05A>I<923807FFE092B6FC020715E0021F15F8027F15FE494848C66C
+6C7E010701F0010F13E04901C001037F49496D7F4990C87F49486F7E49486F7E48496F13
+804819C04A814819E048496F13F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FE
+A46C6D4B13FCA36C19F8A26C6D4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B1300
+6D6C4B5A6D6D495B6D6D495B010701F0010F13E06D01FE017F5B010090B7C7FC023F15FC
+020715E0020092C8FC030713E048437CC151>I<D90FFFEB0FFCB690383FFF8093B512E0
+4B14F04B14F8923907FC7FFC92390FE0FFFEC6EC1F806DD93F0113FF6D133E157E157C15
+F8A215F07013FEA24BEB7FFCEF3FF8EF0FE04B90C7FCA55DB3B0B712F8A638417BC042>
+114 D<913A3FFF8007800107B5EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7
+121FD80FFC1407D81FF0801600485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13
+FF14E014FF6C14F8EDFFC06C15FC16FF6C16C06C16F06C826C826C826C82013F1680010F
+16C01303D9007F15E0020315F0EC001F1500041F13F81607007C150100FC81177F6C163F
+A2171F7EA26D16F0A27F173F6D16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE
+02FCEB7FFC01DFB65A010F5DD8FE0315C026F8007F49C7FC48010F13E035437BC140>I<
+EC07E0A6140FA5141FA3143FA2147FA214FF5BA25B5B5B5B137F48B5FC000F91B512FEB8
+FCA5D8001F01E0C8FCB3AFEF0FC0AC171F6D6D1480A2173F6D16006F5B6D6D137E6D6D5B
+6DEBFF836EEBFFF86E5C020F14C002035C9126003FFCC7FC325C7DDA3F>I<902607FFC0
+ED3FFEB60207B5FCA6C6EE00076D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D
+6D4948806D6DD907F0ECFF806D01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F01
+8002F0C7FC51427BC05A>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl cmbx12 24.88 40
+/Fl 40 122 df[<96380FFFFE060FB612E04DB712FC051F16FF94B912C0040784041F18
+F8047F9126FC001F7F4BB6008001017F030702F8C8EA3FFF4B02E0030F7F033F02804B7F
+4B49C9127F92B54893B57E4A02F05D4A4A4B804A4A5D4A4A84634A91C9FC4A5BA24A5B51
+80755C91B5FC5EA3755CA2755C755C755CE23FFEC8FCF40FF899CAFCAF083FB612FCBFFC
+A9C702FCC912038787B3B3B3B2003FB800F0013FB812F0A9>116
+144 123 271 129 12 D[<EB1FE0EBFFFC00037F486D7E488048804880A24880A281B6FC
+81A281A416807EA37EA27E7E6C14BF6C143FC613FCEB1FE090C7FC157F1600A55D5DA214
+015DA214035D1407A24A5AA24A5AA24A5A147F5D4AC7FC5B495A5C1307495A495A495AEB
+FFC0485B4890C8FC485A5B6C5A6C5A6C5A>33 70 111 270 65 39
+D<BA12F0B33C137DB74D>45 D[<1CFC517E517E1D8063A263A3511300A2515AA3515AA2
+515AA3505BA2505BA3505BA2505BA35090C7FCA2505AA3505AA2505AA34F5BA24F5BA34F
+5BA26361A24F90C8FCA34F5AA24F5AA34F5AA24E5BA34E5BA24E5BA34E5BA24E90C9FCA3
+4E5AA24E5AA34E5AA24D5BA34D5BA2615FA24D5BA34D90CAFCA24D5AA34D5AA24D5AA34C
+5BA24C5BA34C5BA24C5BA34C90CBFCA24C5AA34C5AA24C5AA34B5BA25F5DA24B5BA34B5B
+A24B90CCFCA34B5AA24B5AA34B5AA24A5BA34A5BA24A5BA34A5BA24A90CDFCA34A5AA24A
+5AA34A5AA25D5BA2495BA3495BA2495BA34990CEFCA2495AA3495AA2495AA3485BA2485B
+A3485BA2485BA34890CFFCA2485AA3485AA2485AA35BA25B127F6C5A6C5A>89
+207 115 282 116 47 D[<F31FE0F37FF8A2517EA2507FA3507FA25080A35080A25080A3
+5080A25080A397B67EA24F81A34F81A24F82A34F82A24F82A21AFBDF3FF981A2DF7FF181
+1AF06207FF6D80A24E01C081871A804E6E80A24E0100828761060F6E81A24E4883876106
+3F6E81A24E4883876106FF6F80A24D498388614D7080A24D90C8FC768160050F7081A260
+051F708160053F7081A260057F70816005FF7180A2604C7280604C7280A295CAFC4C7281
+5F040F7281A294BDFC4C88A24C88A34C88A293BE7E05E0CB7E5F4B7480A24B497280A294
+CCFC4B7481A24B487381A25E031F7481A24B487381A25E037F7481A24B487480A25E4A76
+80A24A497480A293CEFC4A7681A24A4875814A7E0107B512FCB96C043FBA12FCA9>158
+145 120 272 175 65 D[<BFFC1EFEF6FFE01FFCF7FF8020F020FC20FF8DC7000392CA00
+1F15E00B0181776C800C1F807814FF0C03818A78818E79808B8E8B8E8B8EA27980A47915
+80AB551500A4555CA26A676A676A555C9CB65AA2545D5492C7FC545C5414F80C3F5C545C
+53B612800B0F4AC8FC0B7F14F80A1FB612E095BBC9FC1FF81F801FF8F7FF8020F820FE95
+CBECFFC00C1F14F00C07807814FE0C006E7E7980798079807980798079808E79158023C0
+8B23E08C23F0A223F88CA223FCA38C23FEAB5614FCA55614F8A39DB612F0A25515E06723
+C055158067551500555C555C9CB6FC545D0C075D0C1F15C09BB75A0B0F93C7FCC212FC69
+21E021800EFCC8FC20F020800DF0C9FC0CFCCAFC>143 142 120
+269 165 I[<0803B500C0EE01F00703B600FEEE03F8077FDBFFE015070607B800FC150F
+063F05FF151F4DBA00E0143F050F07F8147F053F07FE14FF94BC5B04039326F8000FECC0
+03040F4BC86CEBF007043F03C0030F6D5A93B648C900036D5A4B03F09339007FFF3F0307
+03C0051F90B5FC4B92CB7E033F02FC18034B02F08492B648844A0380193F4A92CD7E4A4A
+864A4A864A02F0864A4A864A8991B65A494B874992CF7E4C885B494A885E498B494A88A2
+495C8D90B65A8D5A5E48217FA24892D1FC223FA25A5DA248211FA3485CFA0FF09FC7FCA2
+5AA45DA3B6FCB27EA381A47EA46C80FA07F0FA0FF87EA2817EA36C6F1D1F23F07E827E22
+3F6D6E1EE0A26D6E1D7F23C06D6E1DFF7F705213806D806D55130070646D6F646D6F515A
+6E6E1B1F6E6E515A6E6E515A6E6E1BFF6E6E505B6E6E505B6E6F4F5B6E03E04F90C7FC6F
+6EF13FFE6F02FC4F5A030F02FF4E485A6F03C005075B030103F0051F5B6F03FE057F1380
+043FDAFFE00303B5C8FC040F03FE033F13FC0403DBFFF80107B55A040093B812E0053F1A
+80050F4FC9FC050119F8DD003F18C0060795CAFCDE007F16F0070393CBFCDF000314C0>
+141 146 115 271 168 I[<BE12FEF5FFFCF6FFC01FFCF7FF8020E020FC20FF21C0C700
+030380C8000116F0E2000F810B0015FE0C1F800C0315C00C00810D3F8079800D0714FE79
+807981796C808C7A807A808F7A807A808C8F7A818DA17E8DA17E8DA17EA27B80A2A17E8D
+A17EA28DA17EA3A113808DA3A113C0A57B15E0A6A113F0B3A2A113E0A569A113C0A5A113
+80A269A2A11300A3575CA2A15AA269A15A69A15AA2575CA15A69A15A9EB6FC5692C7FC6B
+565C68565C565C565C565C9DB65A5592C8FC0D075C555C0D3F5C9CB65A0C0315C00C0F5D
+0C7F92C9FC0B07B612FC52B712F0C212C09ECAFC20FC20F020800DFCCBFC1FE00CFCCCFC
+53CDFC>156 142 120 269 178 I[<C212F8A48DA5C7000303C0C9123FF5007F1E0F0C01
+80787E1F1F8B8B1F018BA27A7E8C8CA28CA28CA28C8EA28CA38CA38EA2E21FF0157FA67B
+7EA40A3F93C8FCA41C7FA21CFFA26363631B1F1B7F0807B5FC95B8FCA99538C00007F200
+7F1B1F1B07878787A21C7FA21C3FA3FA7FC01C1FA2FAFF80A6571300A299CAFCA369A26A
+A22107A3210F6AA2211FA2213FA2575AA221FFA26868565BA26868207F9DB5FC555C1F07
+1F1F1F7F0C03B6FC1E3F0B1FB7FCC35AA66AA3>138 141 120 268
+153 I[<C21280A421C0A5C7000303C0C81201F40007F5007F0C1F14E01E071E01787E8B
+8B8B8B7913F0A28B8BA2207FA3203F21F8201FA4200FA321FC2007A4F47FC0A3F803FEA4
+9DC7FCA31CFFA463A263A26363631B7F50B5FC1A1F95B8FCA99538C0001F1A01747E1B1F
+878787A287A287A41C7FAA99CBFCB3AFBC12F8A9>127 141 120
+268 146 I[<0803B500C0EE01F00703B600FE4C7E077FDBFFE015070607B800FC150F06
+3F05FF151F4DBA00E0143F050F07F8147F053F07FE14FF94BC5B04039326F8000FECC003
+040F4BC86CEBF007043F03C0030F6D5A93B648C900036D5A4B03F09339007FFF3F030703
+C0051F90B5FC4B92CB7E033F02FC18034B02F08492B648844A0380193F4A92CD7E4A4A86
+4A4A864A02F0864A4A864A8991B65A494B874992CF7E4C885B494A885E498B494A88A249
+5C8D90B65A8D5A5E48217FA24892D1FC223FA25A5DA248211FA3485C7C5A9FC9FCA25AA4
+5DA3B6FCB27EA381A20A0FBB12F8A27EA46C80A36C98C96C02F8C7FCA2817EA36C81A27E
+827E827FA26D80A26D806D80A26D806D80A26D816D816E806E806E806E6E97B6FC6E806E
+806E03C0606E816F02F8606F02FE60030F6E606F03E0173F030103F85F6F03FF933801FF
+FC043F03E00307497E040F03FF033F497E040304FC0107B5EAE00F040093B8487E053FF2
+0001050F07FCEB007F050107F0141FDD003F06C01407060795C81201DE007F04F8ED0070
+0703048093C8FCDF000302E0CDFC>157 146 115 271 183 I[<BC12C0A9C7000103E0C8
+FCB3B3B3B3B3B3B0BC12C0A9>74 142 122 269 87 73 D[<B900E04EB912F884848484
+A2848585C700037094C7000302FCC7FC73DF000F90C8FC7C5A85858585A2708170817081
+7081868270817081708187837181718171817181A2718171817181728188847281728172
+817281A272817281738173818985738173817381898573817481748174818A8674817481
+74818A8675817581758175818B877581758175818C887681768176817681A27681768176
+8177158021C0897715E07715F07715F87715FCA27715FE7715FF7815877815C722E78A78
+15F77815FF8AA28A8A8B8B8BA28B8B8B8BA28B8C8C8C8CA28C8C8C8CA28D8D8D8D8DA24A
+6D8849B500FE88B900FC86227FA2223F221F220F2207A27C5A>165
+142 120 269 182 78 D[<97B512F0077FECFFE00607B712FE067FEEFFE00503B912FC05
+1FF0FF80057F19E00403BB12FC040F9226E0007F14FF043F02FCC7000315C04C02E0DA00
+7F804BB60080031F14F8030702FCC9000314FE4B4A70804B02E0706C80037F0280051F14
+E092B6CB6C804A4A72804A4A72804A02F00600804A4A737F4A4A73804A8B4A4A738091B6
+CD6C80494A7480A2494A7480494A7480498C4C86498D4C87498D494A7580A290B68B4C87
+488EA24892CF6C80A3488E4B88A2488EA3484A761580A34823C0A5484A7615E0A7B621F0
+B36C23E0A26F64A56C23C0A46F646C2380A36C23006F64A26C6AA270636C6AA26C6A7063
+6C6A70636D69A26D6E98B65AA26D6E505DA26D6E5092C7FC6D6870626D6E505C6D686D6F
+4F5C6E6E4F5C6E6E4F5CA26E6E96B65A6E6E4E92C8FC6E6E4E5C020102FF060F14F86E6F
+4D5C6F6E4D5C6F02F094B65A030F6E4C92C9FC6F02FE04075C03016E6C031F14F86F03F0
+92B65A043F02FE020715C0040FDAFFF090B7CAFC040392B812FC04001AF0051F19800507
+4ECBFCDD007F17E0060F94CCFCDE007F15E0070002F0CDFC>148
+146 115 271 175 I[<BE12F8F5FFF01EFF1FE01FFCF7FF8020E020F820FEC700030380
+C8000781E2003F15C00B03810B00810C3F8078800C07807880788178818E8B8E8B8E8B8E
+A28EA28B8EA42380AC2300A46A67A26AA26A676A676A9CB65A6A665492C7FC545C0C1F5C
+545C9BB612E00B075D0B3F5D0A07B648C8FC95BB12F820E0208055C9FC1FF09CCAFC1EF0
+0BF8CBFC06C0D0FCB3B3B2BCFCA9>137 142 120 269 159 I[<BD12FCF4FFFCF5FFE01E
+FCF6FFC01FF01FFE797E20E0C700030380C86C15F80A0181E2003F14FF0B07810B0115E0
+776C8078807880788078808A78818E7881A28E8B8EA37980A48EAA6AA3676AA26AA29CB6
+5AA26A545D9FCAFC66545C545C545C545C9BB612C0535D0B074ACBFC0B3F5C52B612F00A
+7F15C095BBCCFC1FF81FC054CDFC66F6FF801FE00680C7000315F8E1003F14FE0A0F800A
+0315C07681766C807780778077808C7781898D898D898DA38A8DAD8DACA1EB1FC0A1EB3F
+E08D8AA37880A1137FA114C078817818FF7C1580785F786F1500BB00FE6F6F5B796E495A
+7902FEEB1FFC799139FFC07FF80D0792B55A0D015F796C5E0E1F5E0E034BC7FCD4001F14
+F8E7003F13C0>163 144 120 269 173 82 D[<93260FFFF8163E4BB600E0153F031F03
+FE5D037FDBFFC05C0203B800F05B020F05FC5B4A05FF5B027FF0C00F91B526FE000FECF0
+1F010302C0D9007F6D5A4991C800076D5A4901FC030090B6FC4901F0163F4949160F4901
+808290B5170192CBFC4849844849181F87484984A2484984874886A248498588A24887A3
+88A2B58680A36E85A280A26E8580A2818103F0725A6C6E96C7FC15FE8116E06C15FEEEFF
+E017FF6C17F0F0FF806C18F8F1FFC06C19FCF2FF806C1AE01BF86C1AFE6C747E6D1AE088
+6D866D866D1AFF6D876D87010087806E86020F86020386020086153F030F851501DB001F
+19801601DC000F18C0EF007F060717E0F0003F070316F0F1003F1A0F080315F81A00871B
+1F877514FCA287007F86486C85A288A388A36D86A31EF87FA37F1EF0A26D626D1CE0A27F
+6D5013C0A26E1B806E96B5FC6E1B0002F8606E4E5B6E626E6C5F03E04D5B03F84D5B03FE
+057F5BDBFFC093B55A04F803035C496CD9FF80021F91C7FCD9FC1F02FF49B55AD9F80792
+B75A496C19F049C66149011F18804901074DC8FC90C817F848031F16C048030003FCC9FC
+007C04011480>102 146 115 271 129 I[<000FC312F8A6488EA304C0C7001F4AC71201
+03F8C8F0000F03C01C0192C9737E02FC1E1F4A1E0702E08A4A8A4A8A4890CA757EA24920
+3F49201FA349200FA2492007A4492003007F8EA4498CA848487A1380A6CC99C7FCB3B3B3
+B3AA030FBD12FCA9>145 140 120 267 162 I[<BC040FB912C0A9C7000303C0CD001F02
+E0C7FC9E26007FF8C8FC7C5AB3B3B3B3B36E555AA3848022FF6BA26F65726481696F9CC9
+FC72626F66210F6F6E505AA26F6E505A6F535A6F6E1AFF734E5B706E4E5B70637002F04E
+5B706E063F90CAFC706E4E5A7002FF4D485A04006F04075B7102E0043F5B7102FC4BB55A
+050FDAFF80020F14807103FC0103B6CBFC050192B812FC716C61061F19E0060319800600
+06FCCCFC071F17F007011780DF001F03F8CDFCE0001F49CEFC>162
+144 120 269 179 I<93B512FC037FECFFF00207B8FC023F17E091B912F84918FE010772
+7E499126C0007F14E04901E0C7000F80496D020380496D020014FE6F6F7F90B570806F6F
+8085486E6F807380A27380A28885886C5CA26D4982886D5B6D5B010713C0010190CAFC90
+CCFCA90603B7FC050FB8FC0403B9FC167F0307BAFC153F4AB7EA807F020FEDE000023F02
+FCC7FC91B612E0010392C8FC4914FC011F14F04914C0495C90B548C9FC485C485C485C48
+5C5A5D485CA24891CAFCA3B6FC5CA397B6FCA461806C60F107EF6C6E150F6F16CF6C183F
+6FDB7F8F806C6EDBFF0F14E06C02FCDA03FE15FE6C6E91260FFC0791B5FC6C6E6CD93FF8
+17806C923AF803FFF003013F91B6487E010FEF8000010394C77E010004FC141F021F03F0
+140702010380DA007F1400DA000701F8CDFC695F79DD71>97 D[<ED1FF0017FB5FCB7FC
+A9EA003F1307A27FB3B296383FFFC00607B512FE063FECFFE04DB712F8050716FF051F17
+C0057F17F094B5D8C00F8004F301FCC714FE04F701E0023F7F93B50080020F804DC86C14
+E005F80301804D6F804D707F05808294CA804C717F4C7180A24C71808BA27680A28B88A2
+8BA28BA3888BA52080B02000A56764A267A3676467A2525CA267647062704D91C7FC704D
+5BA2714C5B7193B55A05F04B5CDCBFF84B5CDC1FFC030F5C4B6CB44B91C8FC7001C0027F
+5B4B6C01F00103B55A4BC601FF013F14F04B6D90B712C04B011F94C9FC4B6D16FC4B0103
+16F092C86C15804A030F02F8CAFC90CB49CBFC>113 144 121 270
+129 I<94387FFFF0041FB612E093B712FE0307707E031F17F092B97E4A18FE020784021F
+9126F8000F14804A0280010014C04A49C74814E049B500F85C494A17F0494A5C495C494A
+4A14F84991C8FC5D495B90B5FC5D5A485C7314F05A4B6F14E05A7314C0487214804B9338
+3FFE00F20FF84896C8FCA4485CA5B6FCB07EA281A37EA36C80A37E6F18FE6CF201FFA26C
+6E5F1CFE6C801B076C6EEF0FFC6D7F70EE1FF86DF13FF06D6E167F6D6EEEFFE06D02F84B
+13C06D6E5D6D02FF030F13806D03C0023F1300023F02F0903801FFFC6E9126FF801F5B02
+0792B65A6E18C0020060033F4CC7FC030716F8030016C0041F4AC8FCDC007F13C0585F78
+DD67>I[<F53FE098B6FC4FB7FCA996C77E1B0FA287B3B294383FFF80040FB512FC93B712
+80030716E0031F16F8037F16FE4AB9128702074AC66C13C7021F02E0010713F74A91C890
+B6FC4A01FC153F49B548150F4902E081494A81494A814991CA7E495B8749498390B54883
+5A5D5AA2485CA25A5D5AA35AA25D5AA5B6FCB07EA57E81A37EA27EA2817EA26C80A26C62
+6C6E5F636D7F6D6D94B6FC6D606D6D1607705D6D6E4B81010102F0157F6D6E92B712FE6E
+01FE020301EF91B512806E6D6C011F13CF020FDAF801B5120F020391B612FE6E17F86E6C
+16E0030F16800301EDFC00DB003F14E0040049C74AC8FC>113 144
+120 270 129 I<94387FFFC0040FB6FC93B712E0030716FC031F16FF037F17C04AB912F0
+0207DAF80380021F912680003F13FE4A49C7000F7F4A01F802038049B5486E804902C06E
+6C7F494A6F7F4991C9FC49727F4949707F4B84498490B548707F5A4B198048855D481CC0
+86481CE05D5A871DF05AA25D5AA21DF887A2B6FCA392BBFCA51DF00380CDFCA77EA4817E
+A37EA2817EA26CF307F06FF00FF87E816C1B1F6F19F06C1B3F6D6DF07FE06D7FF4FFC06D
+6E4C13806D6E5E6D02F04C13006D6EEE1FFE6D6E4C5A6D6C01FFEEFFF86E02E002035B6E
+02FC021F5B02079126FFC003B55A6E92B7C7FC020060033F17F8030F17E003011780DB00
+3F03FCC8FC040315C0DC000F01F8C9FC5D5F7ADD6A>I[<95383FFF80050FB512F094B612
+FE040781041F16C0047F824BB87E0307DAF8077F031FDAC00F7F4B49C6487F4B495B92B5
+00F0814A4A5B4A5C4A93B612805F4A91C7FC5C5E5C5E5C731400A24C6E5B91B56F5BA273
+5B070313E00700138097C8FCB3A4BA12F8A9C702FCCBFCB3B3B3B3A2003FB9FCA9>81
+144 121 271 71 I<F5FFC093260FFFFC030F13F04BB600E0027F7F031F03FE49B512FE
+037F9226FF8007800203B8EAF01F020FDDFC3F15804A7148133F027FDA003F90B500F014
+C091B500F80107ED807F4902E00101ECFC00010702806D6C5B93C87E49496F7F49496F7F
+49496F6D6D1380491A8077130090B5486F6E6C5AF503F84875C8FCA2484A6F80A44887AB
+6C63A46C6E4B5CA26C63A26D6D4B5CA26D97C9FC6D6D4B5B6D6D4B5B6D6D4B5B705C0101
+02E049B512E06D02F801075C4902FF013F5C4992B648CAFC496002F317F090260FE07F16
+80031F4BCBFC90261FC00115E0DB000F01FCCCFC013F91CFFCA3137FA280A380A2808080
+6E7E15F092B812F06DF0FFE01BFEF3FFC06D1AF81CFE767E6D1BE06D87896D1BFE6D877F
+6E878A0103BD7E130F013F8890BEFC4802E0C9003F814891CBFC4801FC180F4849060180
+4849727E484985884849737F88A2B55A88A66E616C65A26E616C6D4F5B6C656E616C6D4F
+5B6C6D96B55A6C6D6C05035C6F5FC602F0051F49C7FC6D01FC057F5B6DD9FF800303B55A
+010F02F8033F14E06DDAFFE0010FB65A010192B9C8FCD9003F19F8020F19E0020196C9FC
+DA001F17F0030194CAFCDB000192CBFC6A887ADD74>I[<ED1FF0017FB5FCB7FCA9EA003F
+1307A27FB3B2963803FFFC073FEBFFE096B612F8060715FE061F6F7E4E16E095B87E4DD9
+FC03804DD9C000804D48C76C7FDD0FF880DD1FE0824D486E804D5A05FEC881DCF1FC815F
+04F385EEF7F04D81EEFFC0A24D84A294C9FCA25EA35EA45EB3B3AFB9D8E001B912C0A9>
+114 143 119 270 129 I[<EC3FC0ECFFF0010313FC497F497F498049804980A290B67E
+A24881A86C5DA26D5CA26D5C6D5C6D91C8FC6D5B6D5B010013F0EC3FC091CAFCB3A3ED1F
+F0017FB5FCB7FCA9EA003F1307A27FB3B3B3B0B91280A9>49 144
+119 271 65 I[<ED1FF0017FB5FCB7FCA9EA003F1307A27FB3B3B3B3B3B3ACB912C0A9>
+50 143 119 270 65 108 D<DB3FE0912601FFFC943801FFFC017FB5031FD9FFE0041FEB
+FFE0B792B600FC93B612FC060303FF030315FF060F04C0020F16C0063F04F0023F16F095
+B86C91B87E4DD9FC036E49D9FC03804DD9C0006E49D9C000804D48C7003F6D4948C7003F
+7FDD0FF86EDB0FF880D8003F4B48714848830107DB3FC06E9126C03FC06E804D484E5A6D
+4BC86F48C881DCE1FE6FDAE1FE814D61DCE3F8DEF3F884DCE7F0F0F7F04D6F4B81DCEFC0
+F0FFC0A2DCFF804F84A294C993C9FCA24C61A34C61A44C61B3B3AFB900E090B900E090B9
+12E0A9B35D77DCC2>I<DB3FE0913803FFFC017FB5033FEBFFE0B792B612F8060715FE06
+1F6F7E4E16E095B87E4DD9FC03804DD9C000804D48C76C7FDD0FF880D8003FDB1FE08201
+074B486E804D5A6D03FEC881DCE1FC815F04E385EEE7F04D81EEEFC0A2DCFF8084A294C9
+FCA25EA35EA45EB3B3AFB9D8E001B912C0A9725D77DC81>I<94381FFFF00407B612C004
+7F15FC0303B87E030F17E0037F17FC4ABAFC4A9126FC007F80020F02C0010714E04A49C8
+80027F01F8033F13FC91B5486F7F4902C003077F494A6F804991C96C8049497080494971
+7F49874949717FA290B548717F48884B83481D80A2481DC04B83481DE0A2481DF0A3484A
+7114F8A4481DFCA5B61BFEAF6C1DFCA56C6E4D14F8A36C1DF0A36C1DE06F5F6C1DC0A26C
+6E4D1480A26C1D006F5F6C646D6D4D5B6F94B5FC6D636D6D4C5C6D6E4B5C6D6E4B5C6D02
+F0031F5C6D6E4B91C7FC6D6C01FE92B512FC6ED9FFC001075C6E02FC017F5C020791B812
+C0020196C8FC6E6C17FC031F17F003031780DB007F03FCC9FC040715C0DC001F01F0CAFC
+675F7ADD74>I<DB1FF091381FFFC0017FB50203B6FCB7021F15E095B712FC050316FF05
+0F17C0053F17F094B912FC04F1DAC01F8004F79026FC00018093B500E06D6C14C0D8003F
+93C86C8001074B030F8005F86F806D03E06F804D6F804D8194CA6C7F4C864C71805E7680
+A27680A27680A28B88A28BA288A28BA4882080B0200064A467A26467A3525CA267646764
+67647062704D91C7FC7094B55AA2714B5C714B5C714B5C05F84B5C71033F5C05FF4B91C8
+FC06C049B55A04FB01F001075C04F801FF017F14F07190B712C0051F94C9FC7116FC0503
+16F0DD007F1580060F02F8CAFC060049CBFC96CDFCB3ACB912E0A9718579DC81>I<DB7F
+C049B47E90B6021F13F8B7027F13FE4DB67E4D15E04D814D814D01077F94263FF00F7F94
+387FC01F4D48487FD8003F16000107DAC1FE491480EEC3FC6D5DEEC7F05F16CF5F16DF4D
+6D1400A204FFC76C5BA2735B4C6E5B735B070013C04C92C8FCA45EA65EB3B3AAB912FCA9
+515D79DC5F>114 D<92261FFFF814F80203B638C001FC023FEDFC0791B8121F010317FF
+130F013F9038F8001F4990C8FCD9FFF8153F4801E0150F484915034849814890CAFC197F
+4848173F191F485AA2007F180FA31907487EA27FA28002E0705A6E93C8FC14FC14FF15F0
+6CECFF8016FCEEFFF06CEEFF8018F06C17FE727E6C18E0856C18FC6C846C727E6C856D84
+011F846D841303010084023F83140F020183EC001FDB007F16801603DC000F15C0170018
+3F060F14E0007F1703486C82727E857F85857FA2857F1BC07FA27F1B806D5F7F1B006E5E
+6E5F6E163F6E4C5A02FC4C5A6E03035B6E6C4A5B03F0023F5B03FF0107B55A01F991B7C7
+FCD9F07F16FCD9E01F16F0D9800716C0D9000193C8FC48D9003F14F8007C020349C9FC4B
+5F78DD5C>I[<ED03FEA81507A5150FA4151FA3153FA2157FA215FFA25CA25C5CA25C5C5C
+5C91B5FC13035B131F017F91B712F00007BAFCBBFCA7C74AC9FCB3B3AAF101FFB1616E17
+FE82A219076E17FC836EEE0FF871131F6E6EEB3FF071137F6E6EEBFFE06EDAFF0313C06E
+92B512806E1700033F5D6F5D03075D030015E0041F1480040001FCC7FC>72
+132 124 258 90 I<DB0FF8F01FF0017FB594B6FCB74BB7FCA9D8003F94C77E0107190F
+A26D85B3B3B063A463A263A27F6398B6FCA26DF001FB7015036EEF07F3E00FE3806E6D15
+1FE07FC314FF6E6D6CDAFF83EDFFC06E6E010313036E02FCEB3FFE6E91B612FC020017F8
+6F16E0031F16800303EDFE00DB007F14F8040102C093C8FC725E77DC81>I<B90303B7FC
+A9D8000702F8CA000FEBFE006D6E050013E0666D6E6164826D5090C7FC836E4F5AA26E6E
+4C5AA26E6E4C5AA26E6E5F1C3F836E4F5A836E4F5AA26E6E4B5BA26E6E4B90C8FCA26F6E
+5D1B07846F4D5A846F4D5AA26F6E4A5AA26F6E4A5AA26F6E5D1BFF846F4C5B846F4C90C9
+FCA2706E485AA27002C05B1A0F7002E05B1A1F19F0704B5A19F8704B5AA2706E485AA270
+6E5B96B5FC7093CAFCA3715CA2715CA2715CA2715CA3715CA2715CA2715CA27191CBFCA2
+725AA3725A725A725A705D7BDB7B>I<007FB86C49B712FEA9C792C9000F02C0C7FC6E6E
+030101F0C8FC715F6E6E4B5B6E6E4B5B6E4E90C9FC6E6E5E71151F6E6E4B5A6E6E4B5A6E
+4E5A6F6E495B72495B6F6E495B6F806F6E4990CAFC6F4C5A72495A6F6E495A6F6E495A6F
+03815B705E7014C307E75B7091B5CBFC705D705D705D6282705D715C8386718071807180
+837180864D814D815F4D81874D814D81DDFFF3804C13E14C01C1804C0180814E6C804C6E
+804C487F4C48824C486D804C486D804B496D804B497F73804B49834B90C86C804B486F80
+4B48814B486F804B48844C6F804A71804A496F804A49814A90CA814A487180023F728001
+0FB500E07080B8031FB812E0A9735C7CDB7B>120 D<007FB800C04AB71280A9D800034A
+CA000791C7FC6D080013F0775A6D6E4E5AA26E6E6064836E4F90C8FC836E4F5A836E4F5A
+A26E6E4C5AA26E6E5F1C3F6E6E5F1C7F836E4F5A846F4D5B846F4D90C9FCA26F6E4A5AA2
+6F6E5D1B0F846F4D5A846F4D5A846F4D5AA26F6E4A5AA2706E5C627002C091CAFC6219E0
+704B5A19F0704B5AA2706E485AA2706E485AA27002FE5B1A7F19FF704B5AA2715DA27192
+CBFCA2715CA2715CA3715CA2715CA2715CA2715CA2725BA27290CCFCA3725AA2725AA24E
+5AA24E5AA261187FA24E5AA24D5B13FE2603FF804A90CDFC000F13E0486D4A5A487F486D
+4A5AA260B56C141F4D5AA24D5A17FF604C5B4A4990CEFC6C5D4C5A6C49EB3FFC4A495A6C
+4948485A9026FE80075B270FFFC03F5B6C90B6CFFC6C5D6C15F86C6C5C011F14C0010749
+D0FC9038007FE071857CDB7B>I E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 861 1940 a Fl(FITSIO)76 b(User's)g(Guide)356
+2399 y Fk(A)54 b(Subroutine)e(In)l(terface)h(to)g(FITS)h(F)-13
+b(ormat)53 b(Files)1055 2659 y(for)h(F)-13 b(ortran)53
+b(Programmers)1667 3155 y Fj(V)-10 b(ersion)38 b(2.5)1727
+4058 y Fi(HEASAR)m(C)1764 4170 y(Co)s(de)30 b(662)1363
+4283 y(Go)s(ddard)f(Space)i(Fligh)m(t)f(Cen)m(ter)1522
+4396 y(Green)m(b)s(elt,)g(MD)i(20771)1857 4509 y(USA)1704
+5298 y Fj(July)38 b(2004)p eop
+%%Page: 2 2
+2 1 bop 0 299 a Fi(ii)p eop
+%%Page: 3 3
+3 2 bop 0 1267 a Fl(Con)-6 b(ten)g(ts)0 1858 y Fh(1)84
+b(In)m(tro)s(duction)3136 b(1)0 2118 y(2)119 b(Creating)34
+b(FITSIO/CFITSIO)2405 b(3)136 2280 y Fi(2.1)94 b(Building)28
+b(the)i(Library)57 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)f(.)131 b(3)136 2442 y(2.2)94 b(T)-8
+b(esting)31 b(the)f(Library)i(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)131 b(6)136 2604
+y(2.3)94 b(Linking)29 b(Programs)h(with)f(FITSIO)40 b(.)46
+b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)131 b(7)136
+2766 y(2.4)94 b(Getting)31 b(Started)g(with)e(FITSIO)55
+b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)
+f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)131
+b(8)136 2928 y(2.5)94 b(Example)30 b(Program)86 b(.)46
+b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+f(.)131 b(8)136 3090 y(2.6)94 b(Legal)31 b(Stu\013)92
+b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)f(.)131 b(9)136 3252 y(2.7)94
+b(Ac)m(kno)m(wledgemen)m(ts)60 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(10)0 3511
+y Fh(3)119 b(A)35 b(FITS)f(Primer)2917 b(13)0 3771 y(4)119
+b(Extended)35 b(File)f(Name)g(Syn)m(tax)2330 b(15)136
+3933 y Fi(4.1)94 b(Ov)m(erview)83 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)
+g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(15)136 4095 y(4.2)94 b(Filet)m(yp)s(e)60 b(.)45 b(.)h(.)g(.)g(.)f(.)h
+(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)
+g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g
+(.)f(.)85 b(18)345 4257 y(4.2.1)106 b(Notes)32 b(ab)s(out)e(HTTP)g(pro)
+m(xy)g(serv)m(ers)k(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h
+(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(18)345 4419 y(4.2.2)106 b(Notes)32 b(ab)s(out)e(the)h(ro)s(ot)f
+(\014let)m(yp)s(e)67 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g
+(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(18)345 4581 y(4.2.3)106 b(Notes)32 b(ab)s(out)e(the)h(shmem)e
+(\014let)m(yp)s(e:)69 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(20)136 4742 y(4.3)94 b(Base)32 b(Filename)88 b(.)45
+b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)f(.)85 b(21)136 4904 y(4.4)94 b(Output)30 b(File)f(Name)i(when)
+f(Op)s(ening)e(an)i(Existing)f(File)79 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(23)136
+5066 y(4.5)94 b(T)-8 b(emplate)31 b(File)f(Name)h(when)e(Creating)h(a)h
+(New)f(File)55 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g
+(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(24)136 5228 y(4.6)94
+b(HDU)32 b(Lo)s(cation)e(Sp)s(eci\014cation)45 b(.)g(.)h(.)g(.)f(.)h(.)
+g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g
+(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(24)136 5390 y(4.7)94
+b(Image)32 b(Section)38 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(25)136
+5552 y(4.8)94 b(Column)29 b(and)h(Keyw)m(ord)g(Filtering)e(Sp)s
+(eci\014cation)89 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(26)136 5714
+y(4.9)94 b(Ro)m(w)31 b(Filtering)e(Sp)s(eci\014cation)80
+b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(28)1912 5942 y(iii)p eop
+%%Page: 4 4
+4 3 bop 0 299 a Fi(iv)3310 b Fg(CONTENTS)345 555 y Fi(4.9.1)106
+b(General)31 b(Syn)m(tax)44 b(.)i(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f
+(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)
+f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(28)345 716 y(4.9.2)106
+b(Bit)31 b(Masks)43 b(.)j(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(30)345 876 y(4.9.3)106
+b(V)-8 b(ector)32 b(Columns)91 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f
+(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)
+f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(31)345 1037 y(4.9.4)106
+b(Go)s(o)s(d)30 b(Time)g(In)m(terv)-5 b(al)30 b(Filtering)59
+b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(33)345 1197
+y(4.9.5)106 b(Spatial)29 b(Region)i(Filtering)56 b(.)46
+b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(33)345
+1358 y(4.9.6)106 b(Example)30 b(Ro)m(w)h(Filters)f(.)45
+b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(36)136 1518 y(4.10)80 b(Binning)28 b(or)i(Histogramming)g(Sp)s
+(eci\014cation)f(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(37)0
+1771 y Fh(5)f(T)-9 b(emplate)34 b(Files)2985 b(41)136
+1931 y Fi(5.1)94 b(Detailed)31 b(T)-8 b(emplate)30 b(Line)g(F)-8
+b(ormat)48 b(.)e(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(41)136 2092 y(5.2)94 b(Auto-indexing)29 b(of)i(Keyw)m(ords)73
+b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(42)136 2252 y(5.3)94 b(T)-8 b(emplate)31 b(P)m(arser)g(Directiv)m(es)
+85 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g
+(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(43)136 2412 y(5.4)94 b(F)-8 b(ormal)31 b(T)-8 b(emplate)31
+b(Syn)m(tax)j(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)f(.)85 b(43)136 2573 y(5.5)94 b(Errors)63 b(.)46
+b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(44)136 2733 y(5.6)94
+b(Examples)71 b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)
+f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(44)0
+2986 y Fh(6)f(FITSIO)34 b(Con)m(v)m(en)m(tions)h(and)g(Guidelines)1993
+b(47)136 3146 y Fi(6.1)94 b(CFITSIO)29 b(Size)h(Limitations)39
+b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)
+g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(47)136 3307 y(6.2)94 b(Multiple)29 b(Access)i(to)g(the)g(Same)f(FITS)
+g(File)f(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f
+(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(48)136
+3467 y(6.3)94 b(Curren)m(t)30 b(Header)h(Data)h(Unit)d(\(CHDU\))87
+b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(48)136 3628
+y(6.4)94 b(Subroutine)28 b(Names)79 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(48)136
+3788 y(6.5)94 b(Subroutine)28 b(F)-8 b(amilies)30 b(and)f(Datat)m(yp)s
+(es)44 b(.)i(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)
+g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(49)136
+3949 y(6.6)94 b(Implicit)28 b(Data)k(T)m(yp)s(e)e(Con)m(v)m(ersion)64
+b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(50)136 4109 y(6.7)94 b(Data)32 b(Scaling)87 b(.)46
+b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g
+(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)
+f(.)h(.)g(.)f(.)85 b(50)136 4270 y(6.8)94 b(Error)30
+b(Status)g(V)-8 b(alues)31 b(and)e(the)i(Error)e(Message)j(Stac)m(k)44
+b(.)i(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)f(.)85 b(51)136 4430 y(6.9)94 b(V)-8 b(ariable-Length)31
+b(Arra)m(y)f(F)-8 b(acilit)m(y)31 b(in)e(Binary)g(T)-8
+b(ables)25 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(51)136 4591 y(6.10)49
+b(Supp)s(ort)29 b(for)h(IEEE)g(Sp)s(ecial)e(V)-8 b(alues)67
+b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)
+g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(52)136
+4751 y(6.11)49 b(When)31 b(the)f(Final)f(Size)h(of)h(the)f(FITS)g(HDU)h
+(is)e(Unkno)m(wn)34 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)
+f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(53)136 4912 y(6.12)49
+b(Lo)s(cal)31 b(FITS)e(Con)m(v)m(en)m(tions)i(supp)s(orted)d(b)m(y)j
+(FITSIO)72 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(53)345 5072 y(6.12.1)61
+b(Supp)s(ort)29 b(for)h(Long)g(String)f(Keyw)m(ord)h(V)-8
+b(alues.)61 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)f(.)85 b(54)345 5232 y(6.12.2)61
+b(Arra)m(ys)31 b(of)f(Fixed-Length)g(Strings)f(in)g(Binary)h(T)-8
+b(ables)69 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g
+(.)f(.)85 b(54)345 5393 y(6.12.3)61 b(Keyw)m(ord)30 b(Units)g(Strings)i
+(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(55)345 5553 y(6.12.4)61 b(HIERAR)m(CH)31 b(Con)m(v)m(en)m(tion)g(for)
+f(Extended)g(Keyw)m(ord)g(Names)83 b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f
+(.)h(.)g(.)f(.)85 b(55)136 5714 y(6.13)49 b(Optimizing)28
+b(Co)s(de)i(for)g(Maxim)m(um)g(Pro)s(cessing)g(Sp)s(eed)44
+b(.)i(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)f(.)85 b(56)p eop
+%%Page: 5 5
+5 4 bop 0 299 a Fg(CONTENTS)3334 b Fi(v)345 555 y(6.13.1)61
+b(Bac)m(kground)31 b(Information:)40 b(Ho)m(w)31 b(CFITSIO)e(Manages)j
+(Data)g(I/O)91 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(57)0 816 y Fh(7)119 b(The)35 b(CFITSIO)e(Iterator)g(F)-9
+b(unction)2154 b(61)0 1077 y(8)119 b(Basic)36 b(In)m(terface)e
+(Routines)2504 b(63)136 1239 y Fi(8.1)94 b(FITSIO)30
+b(Error)f(Status)h(Routines)83 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)f(.)85 b(63)136 1401 y(8.2)94 b(File)30 b(I/O)g(Routines)d(.)46
+b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h
+(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)
+g(.)f(.)85 b(64)136 1563 y(8.3)94 b(Keyw)m(ord)31 b(I/O)f(Routines)35
+b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)
+f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f
+(.)85 b(66)136 1725 y(8.4)94 b(Data)32 b(I/O)f(Routines)52
+b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)f(.)85 b(66)0 1986 y Fh(9)119 b(Adv)-6 b(anced)36
+b(In)m(terface)e(Subroutines)2159 b(69)136 2148 y Fi(9.1)94
+b(FITS)30 b(File)g(Op)s(en)f(and)g(Close)h(Subroutines:)75
+b(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(69)136 2310 y(9.2)94
+b(HDU-Lev)m(el)32 b(Op)s(erations)107 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)
+g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(72)136 2472
+y(9.3)94 b(De\014ne)31 b(or)f(Rede\014ne)g(the)h(structure)f(of)g(the)h
+(CHDU)99 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(75)136 2634 y(9.4)94
+b(FITS)30 b(Header)h(I/O)f(Subroutines)h(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)f(.)85 b(76)345 2796 y(9.4.1)106
+b(Header)31 b(Space)g(and)f(P)m(osition)f(Routines)59
+b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)f(.)85 b(76)345 2958 y(9.4.2)106
+b(Read)31 b(or)f(W)-8 b(rite)31 b(Standard)e(Header)i(Routines)66
+b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)f(.)85 b(77)345 3120 y(9.4.3)106 b(W)-8 b(rite)31
+b(Keyw)m(ord)f(Subroutines)115 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f
+(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)
+85 b(78)345 3283 y(9.4.4)106 b(Insert)30 b(Keyw)m(ord)g(Subroutines)107
+b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(80)345 3445
+y(9.4.5)106 b(Read)31 b(Keyw)m(ord)f(Subroutines)63 b(.)46
+b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h
+(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(81)345 3607
+y(9.4.6)106 b(Mo)s(dify)29 b(Keyw)m(ord)i(Subroutines)54
+b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(82)345 3769
+y(9.4.7)106 b(Up)s(date)31 b(Keyw)m(ord)f(Subroutines)115
+b(.)45 b(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)
+g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(83)345 3931
+y(9.4.8)106 b(Delete)32 b(Keyw)m(ord)e(Subroutines)86
+b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)
+h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(84)136 4093
+y(9.5)94 b(Data)32 b(Scaling)e(and)f(Unde\014ned)g(Pixel)g(P)m
+(arameters)113 b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g
+(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(84)136 4255 y(9.6)94
+b(FITS)30 b(Primary)f(Arra)m(y)i(or)f(IMA)m(GE)h(Extension)f(I/O)g
+(Subroutines)116 b(.)46 b(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f
+(.)85 b(85)136 4417 y(9.7)94 b(FITS)30 b(ASCI)s(I)f(and)h(Binary)f(T)-8
+b(able)30 b(Data)i(I/O)e(Subroutines)c(.)46 b(.)g(.)g(.)f(.)h(.)g(.)f
+(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(88)345
+4579 y(9.7.1)106 b(Column)29 b(Information)g(Subroutines)120
+b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)
+f(.)h(.)g(.)f(.)h(.)g(.)f(.)85 b(88)345 4741 y(9.7.2)106
+b(Lo)m(w-Lev)m(el)32 b(T)-8 b(able)30 b(Access)h(Subroutines)59
+b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)
+h(.)g(.)f(.)h(.)g(.)f(.)85 b(91)345 4903 y(9.7.3)106
+b(Edit)30 b(Ro)m(ws)g(or)h(Columns)105 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)g
+(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)
+g(.)f(.)h(.)g(.)f(.)85 b(92)345 5066 y(9.7.4)106 b(Read)31
+b(and)f(W)-8 b(rite)30 b(Column)f(Data)j(Routines)65
+b(.)46 b(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)
+f(.)h(.)g(.)f(.)85 b(93)136 5228 y(9.8)94 b(Ro)m(w)31
+b(Selection)f(and)g(Calculator)g(Routines)94 b(.)46 b(.)g(.)g(.)f(.)h
+(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)
+g(.)f(.)85 b(96)136 5390 y(9.9)94 b(Celestial)30 b(Co)s(ordinate)f
+(System)h(Subroutines)97 b(.)46 b(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f
+(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(98)136 5552 y(9.10)49 b(File)30 b(Chec)m(ksum)g(Subroutines)74
+b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)85
+b(99)136 5714 y(9.11)80 b(Date)32 b(and)d(Time)h(Utilit)m(y)f(Routines)
+68 b(.)45 b(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h
+(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)40
+b(101)p eop
+%%Page: 6 6
+6 5 bop 0 299 a Fi(vi)3310 b Fg(CONTENTS)136 555 y Fi(9.12)49
+b(General)31 b(Utilit)m(y)e(Subroutines)60 b(.)45 b(.)h(.)g(.)f(.)h(.)g
+(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)g(.)f(.)h(.)g(.)f(.)h(.)g(.)
+g(.)f(.)h(.)g(.)f(.)h(.)g(.)f(.)40 b(102)0 806 y Fh(10)67
+b(Summary)34 b(of)h(all)f(FITSIO)g(User-In)m(terface)h(Subroutines)1215
+b(109)0 1057 y(11)67 b(P)m(arameter)34 b(De\014nitions)2563
+b(117)0 1308 y(12)67 b(FITSIO)33 b(Error)i(Status)g(Co)s(des)2295
+b(123)p eop
+%%Page: 1 7
+1 6 bop 0 1225 a Ff(Chapter)65 b(1)0 1687 y Fl(In)-6
+b(tro)6 b(duction)0 2180 y Fi(This)32 b(do)s(cumen)m(t)j(describ)s(es)d
+(the)i(F)-8 b(ortran-callable)35 b(subroutine)d(in)m(terface)j(that)g
+(is)e(pro)m(vided)g(as)h(part)g(of)h(the)0 2293 y(CFITSIO)f(library)f
+(\(whic)m(h)i(is)g(written)g(in)f(ANSI)h(C\).)h(This)e(is)h(a)h
+(companion)f(do)s(cumen)m(t)g(to)i(the)e(CFITSIO)0 2406
+y(User's)k(Guide)e(whic)m(h)h(should)e(b)s(e)i(consulted)g(for)g
+(further)g(information)f(ab)s(out)h(the)h(underlying)c(CFITSIO)0
+2518 y(library)-8 b(.)48 b(In)32 b(the)i(remainder)e(of)h(this)g(do)s
+(cumen)m(t,)h(the)g(terms)f(FITSIO)f(and)h(CFITSIO)f(are)i(in)m(terc)m
+(hangeable)0 2631 y(and)c(refer)g(to)h(the)g(same)f(library)-8
+b(.)0 2791 y(FITSIO/CFITSIO)31 b(is)i(a)g(mac)m(hine-indep)s(enden)m(t)
+e(library)g(of)j(routines)e(for)h(reading)g(and)g(writing)e(data)j
+(\014les)0 2904 y(in)29 b(the)h(FITS)g(\(Flexible)f(Image)i(T)-8
+b(ransp)s(ort)29 b(System\))h(data)h(format.)41 b(It)31
+b(can)f(also)g(read)h(IRAF)f(format)h(image)0 3017 y(\014les)39
+b(and)f(ra)m(w)i(binary)e(data)i(arra)m(ys)g(b)m(y)g(con)m(v)m(erting)g
+(them)f(on)h(the)g(\015y)f(in)m(to)g(a)h(virtual)e(FITS)h(format)h
+(\014le.)0 3130 y(This)31 b(library)g(w)m(as)i(written)f(to)i(pro)m
+(vide)e(a)i(p)s(o)m(w)m(erful)e(y)m(et)i(simple)d(in)m(terface)i(for)g
+(accessing)h(FITS)e(\014les)g(whic)m(h)0 3243 y(will)h(run)h(on)h(most)
+h(commonly)f(used)f(computers)h(and)g(w)m(orkstations.)56
+b(FITSIO)34 b(supp)s(orts)g(all)g(the)i(features)0 3356
+y(describ)s(ed)20 b(in)i(the)g(o\016cial)g(NOST)g(de\014nition)e(of)j
+(the)f(FITS)g(format)h(and)f(can)h(read)f(and)g(write)g(all)f(the)i
+(curren)m(tly)0 3469 y(de\014ned)40 b(t)m(yp)s(es)h(of)g(extensions,)i
+(including)38 b(ASCI)s(I)h(tables)i(\(T)-8 b(ABLE\),)42
+b(Binary)e(tables)h(\(BINT)-8 b(ABLE\))43 b(and)0 3582
+y(IMA)m(GE)36 b(extensions.)55 b(The)34 b(FITSIO)g(subroutines)f
+(insulate)h(the)h(programmer)g(from)g(ha)m(ving)g(to)h(deal)e(with)0
+3695 y(the)25 b(complicated)f(formatting)h(details)e(in)g(the)i(FITS)f
+(\014le,)h(ho)m(w)m(ev)m(er,)j(it)c(is)f(assumed)h(that)h(users)f(ha)m
+(v)m(e)i(a)f(general)0 3808 y(kno)m(wledge)30 b(ab)s(out)g(the)h
+(structure)f(and)g(usage)h(of)f(FITS)g(\014les.)0 3968
+y(The)20 b(CFITSIO)f(pac)m(k)-5 b(age)23 b(w)m(as)e(initially)d(dev)m
+(elop)s(ed)i(b)m(y)g(the)h(HEASAR)m(C)g(\(High)g(Energy)f(Astroph)m
+(ysics)g(Science)0 4081 y(Arc)m(hiv)m(e)34 b(Researc)m(h)h(Cen)m(ter\))
+f(at)h(the)f(NASA)g(Go)s(ddard)e(Space)j(Fligh)m(t)e(Cen)m(ter)h(to)h
+(con)m(v)m(ert)g(v)-5 b(arious)33 b(existing)0 4194 y(and)25
+b(newly)g(acquired)g(astronomical)h(data)g(sets)h(in)m(to)f(FITS)f
+(format)h(and)f(to)i(further)e(analyze)h(data)h(already)e(in)0
+4307 y(FITS)i(format.)41 b(New)28 b(features)g(con)m(tin)m(ue)g(to)h(b)
+s(e)e(added)h(to)g(CFITSIO)f(in)f(large)i(part)g(due)g(to)g(con)m
+(tributions)f(of)0 4419 y(ideas)32 b(or)h(actual)g(co)s(de)g(from)f
+(users)g(of)h(the)g(pac)m(k)-5 b(age.)49 b(The)33 b(In)m(tegral)g
+(Science)f(Data)i(Cen)m(ter)f(in)f(Switzerland,)0 4532
+y(and)h(the)g(XMM/ESTEC)h(pro)5 b(ject)34 b(in)e(The)h(Netherlands)f
+(made)h(esp)s(ecially)f(signi\014can)m(t)g(con)m(tributions)g(that)0
+4645 y(resulted)d(in)g(man)m(y)i(of)f(the)h(new)f(features)g(that)h
+(app)s(eared)f(in)f(v2.0)j(of)e(CFITSIO.)0 4805 y(The)22
+b(latest)h(v)m(ersion)f(of)h(the)f(CFITSIO)f(source)i(co)s(de,)h(do)s
+(cumen)m(tation,)h(and)c(example)i(programs)f(are)h(a)m(v)-5
+b(ailable)0 4918 y(on)30 b(the)h(W)-8 b(orld-Wide)30
+b(W)-8 b(eb)31 b(or)f(via)g(anon)m(ymous)g(ftp)g(from:)382
+5178 y Fe(http://heasarc.gsfc.nasa)o(.go)o(v/fi)o(tsio)382
+5291 y(ftp://legacy.gsfc.nasa.g)o(ov/)o(soft)o(ware)o(/fi)o(tsio)o(/c)
+1927 5942 y Fi(1)p eop
+%%Page: 2 8
+2 7 bop 0 299 a Fi(2)2452 b Fg(CHAPTER)30 b(1.)71 b(INTR)m(ODUCTION)0
+555 y Fi(An)m(y)28 b(questions,)f(bug)g(rep)s(orts,)h(or)f(suggested)i
+(enhancemen)m(ts)f(related)f(to)i(the)e(CFITSIO)f(pac)m(k)-5
+b(age)30 b(should)c(b)s(e)0 668 y(sen)m(t)31 b(to)g(the)g(primary)d
+(author:)382 928 y Fe(Dr.)47 b(William)f(Pence)810 b(Telephone:)92
+b(\(301\))47 b(286-4599)382 1041 y(HEASARC,)e(Code)i(662)811
+b(E-mail:)45 b(pence@tetra.gsfc.nasa.gov)382 1154 y(NASA/Goddard)f
+(Space)j(Flight)f(Center)382 1267 y(Greenbelt,)f(MD)i(20771,)f(USA)0
+1526 y Fi(This)39 b(User's)j(Guide)e(assumes)h(that)h(readers)f
+(already)f(ha)m(v)m(e)j(a)f(general)f(understanding)d(of)k(the)f
+(de\014nition)0 1639 y(and)31 b(structure)g(of)h(FITS)e(format)i
+(\014les.)43 b(F)-8 b(urther)32 b(information)d(ab)s(out)j(FITS)f
+(formats)g(is)g(a)m(v)-5 b(ailable)31 b(from)g(the)0
+1752 y(FITS)h(Supp)s(ort)f(O\016ce)i(at)g Fe(http://fits.gsfc.nasa.gov)
+o Fi(.)42 b(In)32 b(particular,)g(the)h('NOST)f(FITS)g(Standard')0
+1865 y(giv)m(es)i(the)h(authoritativ)m(e)f(de\014nition)e(of)i(the)g
+(FITS)g(data)h(format,)g(and)f(the)g(`FITS)g(User's)g(Guide')f(pro)m
+(vides)0 1978 y(additional)28 b(historical)h(bac)m(kground)h(and)g
+(practical)g(advice)g(on)g(using)f(FITS)h(\014les.)0
+2138 y(CFITSIO)j(users)g(ma)m(y)h(also)g(b)s(e)g(in)m(terested)g(in)f
+(the)h(FTOOLS)f(pac)m(k)-5 b(age)36 b(of)e(programs)g(that)g(can)h(b)s
+(e)e(used)g(to)0 2251 y(manipulate)i(and)g(analyze)i(FITS)f(format)g
+(\014les.)58 b(Information)35 b(ab)s(out)h(FTOOLS)f(can)i(b)s(e)f
+(obtained)f(on)i(the)0 2364 y(W)-8 b(eb)31 b(or)f(via)g(anon)m(ymous)h
+(ftp)f(at:)382 2624 y Fe(http://heasarc.gsfc.nasa)o(.go)o(v/ft)o(ools)
+382 2737 y(ftp://legacy.gsfc.nasa.g)o(ov/)o(soft)o(ware)o(/ft)o(ools)o
+(/rel)o(eas)o(e)p eop
+%%Page: 3 9
+3 8 bop 0 1225 a Ff(Chapter)65 b(2)0 1687 y Fl(Creating)77
+b(FITSIO/CFITSIO)0 2216 y Fd(2.1)135 b(Building)45 b(the)h(Library)0
+2467 y Fi(T)-8 b(o)43 b(use)g(the)g(FITSIO)f(subroutines)e(one)k(m)m
+(ust)e(\014rst)g(build)e(the)j(CFITSIO)f(library)-8 b(,)44
+b(whic)m(h)e(requires)f(a)i(C)0 2580 y(compiler.)71 b(gcc)43
+b(is)d(ideal,)i(or)f(most)h(other)f(ANSI-C)g(compilers)e(will)g(also)i
+(w)m(ork.)73 b(The)40 b(CFITSIO)g(co)s(de)h(is)0 2692
+y(con)m(tained)24 b(in)f(ab)s(out)g(40)i(C)f(source)g(\014les)e
+(\(*.c\))k(and)d(header)h(\014les)f(\(*.h\).)39 b(On)23
+b(V)-10 b(AX/VMS)25 b(systems)f(2)g(assem)m(bly-)0 2805
+y(co)s(de)31 b(\014les)e(\(vmsieeed.mar)h(and)g(vmsieeer.mar\))g(are)h
+(also)f(needed.)0 2965 y(The)45 b(F)-8 b(ortran)46 b(in)m(terface)f
+(subroutines)e(to)j(the)f(C)g(CFITSIO)f(routines)g(are)h(lo)s(cated)h
+(in)e(the)h(f77)p 3538 2965 28 4 v 33 w(wrap1.c,)0 3078
+y(through)22 b(f77)p 459 3078 V 33 w(wrap4.c)h(\014les.)37
+b(These)22 b(are)h(relativ)m(ely)f(simple)e('wrapp)s(ers')h(that)i
+(translate)g(the)g(argumen)m(ts)g(in)e(the)0 3191 y(F)-8
+b(ortran)26 b(subroutine)d(in)m(to)j(the)f(appropriate)g(format)h(for)f
+(the)g(corresp)s(onding)f(C)h(routine.)38 b(This)23 b(translation)i(is)
+0 3304 y(p)s(erformed)19 b(transparen)m(tly)h(to)h(the)g(user)f(b)m(y)g
+(a)h(set)h(of)e(C)h(macros)g(lo)s(cated)g(in)e(the)i(cfortran.h)f
+(\014le.)37 b(Unfortunately)0 3417 y(cfortran.h)28 b(do)s(es)g(not)g
+(supp)s(ort)f(ev)m(ery)h(com)m(bination)g(of)g(C)g(and)f(F)-8
+b(ortran)29 b(compilers)e(so)h(the)h(F)-8 b(ortran)28
+b(in)m(terface)0 3530 y(is)h(not)i(supp)s(orted)e(on)h(all)f
+(platforms.)40 b(\(see)31 b(further)e(notes)i(b)s(elo)m(w\).)0
+3690 y(A)f(standard)f(com)m(bination)h(of)g(C)f(and)h(F)-8
+b(ortran)30 b(compilers)f(will)e(b)s(e)i(assumed)h(b)m(y)f(default,)h
+(but)f(one)h(ma)m(y)h(also)0 3803 y(sp)s(ecify)e(a)i(particular)d(F)-8
+b(ortran)32 b(compiler)c(b)m(y)j(doing:)48 4064 y Fe(>)95
+b(setenv)46 b(CFLAGS)g(-DcompilerName=1)0 4324 y Fi(\(where)33
+b('compilerName')f(is)g(the)h(name)f(of)h(the)g(compiler\))f(b)s(efore)
+g(running)e(the)j(con\014gure)f(command.)47 b(The)0 4437
+y(curren)m(tly)29 b(recognized)i(compiler)e(names)h(are:)48
+4698 y Fe(g77Fortran)48 4811 y(IBMR2Fortran)48 4924 y(CLIPPERFortran)48
+5036 y(pgiFortran)48 5149 y(NAGf90Fortran)48 5262 y(f2cFortran)48
+5375 y(hpuxFortran)48 5488 y(apolloFortran)48 5601 y(sunFortran)48
+5714 y(CRAYFortran)1927 5942 y Fi(3)p eop
+%%Page: 4 10
+4 9 bop 0 299 a Fi(4)1896 b Fg(CHAPTER)30 b(2.)111 b(CREA)-8
+b(TING)31 b(FITSIO/CFITSIO)48 555 y Fe(mipsFortran)48
+668 y(DECFortran)48 781 y(vmsFortran)48 894 y(CONVEXFortran)48
+1007 y(PowerStationFortran)48 1120 y(AbsoftUNIXFortran)48
+1233 y(AbsoftProFortran)48 1346 y(SXFortran)0 1580 y
+Fi(Alternativ)m(ely)-8 b(,)39 b(one)f(ma)m(y)g(edit)f(the)g(CFLA)m(GS)h
+(line)d(in)i(the)g(Mak)m(e\014le)h(to)g(add)f(the)h('-DcompilerName')g
+(\015ag)0 1692 y(after)31 b(running)d(the)i('./con\014gure')h(command.)
+0 1853 y(The)f(CFITSIO)f(library)f(is)h(built)f(on)j(Unix)e(systems)h
+(b)m(y)g(t)m(yping:)48 2087 y Fe(>)95 b(./configure)45
+b([--prefix=/target/insta)o(llat)o(ion)o(/pat)o(h])48
+2199 y(>)95 b(make)476 b(\(or)95 b('make)46 b(shared'\))48
+2312 y(>)95 b(make)47 b(install)93 b(\(this)46 b(step)h(is)g
+(optional\))0 2546 y Fi(at)24 b(the)g(op)s(erating)f(system)h(prompt.)
+38 b(The)23 b(con\014gure)g(command)g(customizes)h(the)g(Mak)m(e\014le)
+g(for)g(the)g(particular)0 2659 y(system,)g(then)d(the)g(`mak)m(e')i
+(command)e(compiles)f(the)h(source)h(\014les)e(and)h(builds)d(the)j
+(library)-8 b(.)36 b(T)m(yp)s(e)21 b(`./con\014gure')0
+2772 y(and)34 b(not)h(simply)d(`con\014gure')j(to)h(ensure)e(that)h
+(the)g(con\014gure)g(script)e(in)h(the)h(curren)m(t)f(directory)g(is)g
+(run)g(and)0 2885 y(not)29 b(some)g(other)g(system-wide)f(con\014gure)g
+(script.)39 b(The)29 b(optional)f('pre\014x')g(argumen)m(t)h(to)g
+(con\014gure)g(giv)m(es)g(the)0 2998 y(path)f(to)i(the)f(directory)f
+(where)g(the)h(CFITSIO)f(library)e(and)i(include)f(\014les)g(should)g
+(b)s(e)h(installed)f(via)h(the)h(later)0 3111 y('mak)m(e)j(install')c
+(command.)41 b(F)-8 b(or)31 b(example,)143 3345 y Fe(>)48
+b(./configure)c(--prefix=/usr1/local)0 3579 y Fi(will)22
+b(cause)k(the)f('mak)m(e)h(install')d(command)i(to)h(cop)m(y)g(the)f
+(CFITSIO)e(lib)s(c\014tsio)f(\014le)j(to)g(/usr1/lo)s(cal/lib)e(and)i
+(the)0 3692 y(necessary)36 b(include)c(\014le)j(to)h(/usr1/lo)s
+(cal/include)d(\(assuming)h(of)h(course)g(that)h(the)f(pro)s(cess)g
+(has)g(p)s(ermission)0 3805 y(to)c(write)f(to)h(these)g(directories\).)
+0 3965 y(By)d(default)g(this)f(also)h(builds)c(the)29
+b(set)f(of)h(F)-8 b(ortran-callable)28 b(wrapp)s(er)e(routines)h(whose)
+h(calling)e(sequences)j(are)0 4078 y(describ)s(ed)f(later)j(in)e(this)g
+(do)s(cumen)m(t.)0 4238 y(The)f('mak)m(e)h(shared')f(option)g(builds)d
+(a)k(shared)e(or)i(dynamic)e(v)m(ersion)h(of)g(the)h(CFITSIO)d(library)
+-8 b(.)38 b(When)28 b(using)0 4351 y(the)f(shared)f(library)f(the)i
+(executable)g(co)s(de)g(is)f(not)h(copied)f(in)m(to)h(y)m(our)g
+(program)g(at)g(link)e(time)h(and)h(instead)f(the)0 4464
+y(program)h(lo)s(cates)h(the)g(necessary)g(library)d(co)s(de)j(at)g
+(run)e(time,)i(normally)e(through)g(LD)p 3065 4464 28
+4 v 33 w(LIBRAR)-8 b(Y)p 3514 4464 V 34 w(P)g(A)g(TH)28
+b(or)0 4577 y(some)j(other)f(metho)s(d.)41 b(The)29 b(adv)-5
+b(an)m(tages)33 b(of)d(using)f(a)i(shared)e(library)f(are:)143
+4811 y Fe(1.)95 b(Less)47 b(disk)f(space)h(if)g(you)g(build)f(more)h
+(than)f(1)i(program)143 4924 y(2.)95 b(Less)47 b(memory)f(if)h(more)g
+(than)f(one)h(copy)g(of)g(a)g(program)f(using)h(the)g(shared)334
+5036 y(library)f(is)h(running)f(at)h(the)g(same)g(time)f(since)h(the)g
+(system)f(is)h(smart)334 5149 y(enough)f(to)h(share)g(copies)f(of)h
+(the)g(shared)f(library)g(at)h(run)g(time.)143 5262 y(3.)95
+b(Possibly)46 b(easier)g(maintenance)e(since)j(a)g(new)g(version)f(of)h
+(the)g(shared)334 5375 y(library)f(can)h(be)g(installed)e(without)h
+(relinking)f(all)i(the)g(software)334 5488 y(that)g(uses)f(it)i(\(as)e
+(long)h(as)g(the)g(subroutine)e(names)i(and)f(calling)334
+5601 y(sequences)f(remain)h(unchanged\).)143 5714 y(4.)95
+b(No)47 b(run-time)f(penalty.)p eop
+%%Page: 5 11
+5 10 bop 0 299 a Fg(2.1.)72 b(BUILDING)31 b(THE)f(LIBRAR)-8
+b(Y)2507 b Fi(5)0 555 y(The)30 b(disadv)-5 b(an)m(tages)31
+b(are:)143 819 y Fe(1.)47 b(More)g(hassle)f(at)h(runtime.)94
+b(You)46 b(have)h(to)g(either)f(build)h(the)g(programs)286
+932 y(specially)f(or)h(have)f(LD_LIBRARY_PATH)e(set)j(right.)143
+1045 y(2.)g(There)g(may)g(be)g(a)g(slight)f(start)h(up)g(penalty,)e
+(depending)h(on)h(where)f(you)h(are)286 1158 y(reading)f(the)h(shared)f
+(library)g(and)h(the)g(program)f(from)g(and)h(if)g(your)g(CPU)g(is)286
+1271 y(either)f(really)h(slow)f(or)h(really)f(heavily)g(loaded.)0
+1535 y Fi(On)30 b(HP/UX)i(systems,)g(the)f(en)m(vironmen)m(t)g(v)-5
+b(ariable)30 b(CFLA)m(GS)h(should)e(b)s(e)i(set)g(to)h(-Ae)g(b)s(efore)
+f(running)d(con-)0 1648 y(\014gure)i(to)h(enable)f("extended)h(ANSI")f
+(features.)0 1808 y(It)f(ma)m(y)h(not)f(b)s(e)f(p)s(ossible)f(to)i
+(staticly)g(link)e(programs)i(that)g(use)g(CFITSIO)e(on)i(some)h
+(platforms)d(\(namely)-8 b(,)30 b(on)0 1921 y(Solaris)k(2.6\))j(due)e
+(to)i(the)e(net)m(w)m(ork)i(driv)m(ers)d(\(whic)m(h)h(pro)m(vide)g(FTP)
+g(and)g(HTTP)g(access)i(to)g(FITS)e(\014les\).)56 b(It)0
+2034 y(is)32 b(p)s(ossible)e(to)k(mak)m(e)f(b)s(oth)g(a)g(dynamic)e
+(and)h(a)i(static)f(v)m(ersion)f(of)h(the)g(CFITSIO)e(library)-8
+b(,)32 b(but)g(net)m(w)m(ork)i(\014le)0 2147 y(access)e(will)27
+b(not)k(b)s(e)f(p)s(ossible)e(using)h(the)h(static)h(v)m(ersion.)0
+2307 y(On)d(V)-10 b(AX/VMS)31 b(and)d(ALPHA/VMS)i(systems)f(the)h(mak)m
+(e)p 2100 2307 28 4 v 34 w(g\015oat.com)h(command)e(\014le)f(ma)m(y)i
+(b)s(e)f(executed)h(to)0 2420 y(build)j(the)k(c\014tsio.olb)e(ob)5
+b(ject)37 b(library)d(using)h(the)h(default)g(G-\015oating)g(p)s(oin)m
+(t)g(option)f(for)h(double)f(v)-5 b(ariables.)0 2533
+y(The)37 b(mak)m(e)p 405 2533 V 33 w(d\015oat.com)i(and)d(mak)m(e)p
+1279 2533 V 34 w(ieee.com)i(\014les)f(ma)m(y)g(b)s(e)g(used)f(instead)h
+(to)h(build)c(the)j(library)e(with)h(the)0 2646 y(other)26
+b(\015oating)h(p)s(oin)m(t)e(options.)38 b(Note)28 b(that)f(the)f
+(getcwd)h(function)e(that)i(is)e(used)g(in)g(the)i(group.c)f(mo)s(dule)
+e(ma)m(y)0 2758 y(require)43 b(that)j(programs)e(using)f(CFITSIO)g(b)s
+(e)h(link)m(ed)g(with)f(the)i(ALPHA$LIBRAR)-8 b(Y:V)e(AX)m(CR)i(TL.OLB)
+0 2871 y(library)g(.)39 b(See)30 b(the)h(example)f(link)e(line)h(in)g
+(the)i(next)f(section)h(of)f(this)g(do)s(cumen)m(t.)0
+3032 y(On)25 b(Windo)m(ws)g(IBM-PC)h(t)m(yp)s(e)g(platforms)e(the)i
+(situation)f(is)f(more)i(complicated)g(b)s(ecause)f(of)h(the)g(wide)f
+(v)-5 b(ariet)m(y)0 3144 y(of)43 b(F)-8 b(ortran)43 b(compilers)f(that)
+h(are)g(a)m(v)-5 b(ailable)42 b(and)g(b)s(ecause)h(of)g(the)g(inheren)m
+(t)f(complexities)g(of)g(calling)g(the)0 3257 y(CFITSIO)25
+b(C)g(routines)g(from)h(F)-8 b(ortran.)40 b(Tw)m(o)26
+b(di\013eren)m(t)g(v)m(ersions)f(of)h(the)h(CFITSIO)d(dll)g(library)g
+(are)i(a)m(v)-5 b(ailable,)0 3370 y(compiled)26 b(with)f(the)j(Borland)
+e(C++)g(compiler)g(and)g(the)i(Microsoft)f(Visual)f(C++)g(compiler,)g
+(resp)s(ectiv)m(ely)-8 b(,)28 b(in)0 3483 y(the)i(\014les)f(c\014tsio)s
+(dll)p 682 3483 V 30 w(2xxx)p 901 3483 V 34 w(b)s(orland.zip)e(and)i
+(c\014tsio)s(dll)p 1927 3483 V 30 w(2xxx)p 2146 3483
+V 33 w(v)m(cc.zip,)i(where)f('2xxx')h(represen)m(ts)f(the)g(curren)m(t)
+0 3596 y(release)43 b(n)m(um)m(b)s(er.)76 b(Both)43 b(these)g(dll)e
+(libraries)f(con)m(tain)j(a)g(set)g(of)f(F)-8 b(ortran)44
+b(wrapp)s(er)d(routines)g(whic)m(h)g(ma)m(y)0 3709 y(b)s(e)c
+(compatible)g(with)f(some,)k(but)d(probably)f(not)h(all,)i(a)m(v)-5
+b(ailable)37 b(F)-8 b(ortran)38 b(compilers.)61 b(T)-8
+b(o)38 b(test)g(if)f(they)h(are)0 3822 y(compatible,)27
+b(compile)f(the)h(program)g(testf77.f)h(and)f(try)f(linking)f(to)i
+(these)h(dll)c(libraries.)37 b(If)27 b(these)g(libraries)d(do)0
+3935 y(not)29 b(w)m(ork)g(with)e(a)i(particular)e(F)-8
+b(ortran)30 b(compiler,)e(then)g(there)h(are)g(2)g(p)s(ossible)e
+(solutions.)38 b(The)28 b(\014rst)g(solution)0 4048 y(w)m(ould)g(b)s(e)
+i(to)g(mo)s(dify)e(the)i(\014le)e(cfortran.h)i(for)f(that)i(particular)
+d(com)m(bination)h(of)h(C)f(and)g(F)-8 b(ortran)30 b(compilers,)0
+4161 y(and)k(then)g(rebuild)d(the)k(CFITSIO)d(dll)h(library)-8
+b(.)50 b(This)33 b(will)f(require,)i(ho)m(w)m(ev)m(er,)j(a)e(some)f
+(exp)s(ertise)g(in)f(mixed)0 4274 y(language)e(programming.)39
+b(The)30 b(other)h(solution)d(is)i(to)h(use)f(the)g(older)g(v5.03)i(F)
+-8 b(ortran-77)32 b(implemen)m(tation)d(of)0 4386 y(FITSIO)c(that)h(is)
+f(still)f(a)m(v)-5 b(ailable)25 b(from)g(the)h(FITSIO)f(w)m(eb-site.)39
+b(This)24 b(v)m(ersion)h(is)g(no)h(longer)f(supp)s(orted,)g(but)g(it)0
+4499 y(do)s(es)k(pro)m(vide)g(the)h(basic)g(functions)e(for)h(reading)g
+(and)g(writing)f(FITS)h(\014les)g(and)g(should)f(b)s(e)h(compatible)g
+(with)0 4612 y(most)i(F)-8 b(ortran)31 b(compilers.)0
+4772 y(CFITSIO)e(has)h(curren)m(tly)f(b)s(een)h(tested)h(on)f(the)h
+(follo)m(wing)e(platforms:)95 5036 y Fe(OPERATING)46
+b(SYSTEM)523 b(COMPILER)143 5149 y(Sun)47 b(OS)1002 b(gcc)47
+b(and)g(cc)g(\(3.0.1\))143 5262 y(Sun)g(Solaris)762 b(gcc)47
+b(and)g(cc)143 5375 y(Silicon)f(Graphics)g(IRIX)285 b(gcc)47
+b(and)g(cc)143 5488 y(Silicon)f(Graphics)g(IRIX64)189
+b(MIPS)143 5601 y(Dec)47 b(Alpha)f(OSF/1)572 b(gcc)47
+b(and)g(cc)143 5714 y(DECstation)93 b(Ultrix)428 b(gcc)p
+eop
+%%Page: 6 12
+6 11 bop 0 299 a Fi(6)1896 b Fg(CHAPTER)30 b(2.)111 b(CREA)-8
+b(TING)31 b(FITSIO/CFITSIO)143 555 y Fe(Dec)47 b(Alpha)f(OpenVMS)476
+b(cc)143 668 y(DEC)47 b(VAX/VMS)762 b(gcc)47 b(and)g(cc)143
+781 y(HP-UX)1049 b(gcc)143 894 y(IBM)47 b(AIX)954 b(gcc)143
+1007 y(Linux)1049 b(gcc)143 1120 y(MkLinux)953 b(DR3)143
+1233 y(Windows)46 b(95/98/NT)523 b(Borland)46 b(C++)h(V4.5)143
+1346 y(Windows)f(95/98/NT/ME/XP)235 b(Microsoft/Compaq)43
+b(Visual)j(C++)h(v5.0,)g(v6.0)143 1458 y(Windows)f(95/98/NT)523
+b(Cygwin)46 b(gcc)143 1571 y(OS/2)1097 b(gcc)47 b(+)g(EMX)143
+1684 y(MacOS)g(7.1)f(or)i(greater)332 b(Metrowerks)45
+b(10.+)0 1949 y Fi(CFITSIO)26 b(will)g(probably)g(run)g(on)i(most)g
+(other)h(Unix)d(platforms.)39 b(Cra)m(y)28 b(sup)s(ercomputers)e(are)j
+(curren)m(tly)e(not)0 2061 y(supp)s(orted.)0 2400 y Fd(2.2)135
+b(T)-11 b(esting)46 b(the)f(Library)0 2652 y Fi(The)40
+b(CFITSIO)e(library)g(should)g(b)s(e)h(tested)i(b)m(y)f(building)c(and)
+j(running)f(the)i(testprog.c)h(program)f(that)h(is)0
+2765 y(included)28 b(with)h(the)h(release.)41 b(On)30
+b(Unix)f(systems)h(t)m(yp)s(e:)191 3029 y Fe(\045)47
+b(make)g(testprog)191 3142 y(\045)g(testprog)f(>)h(testprog.lis)191
+3255 y(\045)g(diff)g(testprog.lis)d(testprog.out)191
+3368 y(\045)j(cmp)g(testprog.fit)e(testprog.std)0 3632
+y Fi(On)30 b(VMS)g(systems,)g(\(assuming)g(cc)h(is)e(the)i(name)f(of)h
+(the)f(C)g(compiler)f(command\),)i(t)m(yp)s(e:)191 3896
+y Fe($)47 b(cc)h(testprog.c)191 4009 y($)f(link)g(testprog,)e
+(cfitsio/lib,)g(alpha$library:vaxcrtl/l)o(ib)191 4122
+y($)i(run)g(testprog)0 4386 y Fi(The)30 b(testprog)h(program)g(should)d
+(pro)s(duce)h(a)i(FITS)f(\014le)f(called)h(`testprog.\014t')i(that)f
+(is)e(iden)m(tical)h(to)h(the)f(`test-)0 4499 y(prog.std')25
+b(FITS)f(\014le)f(included)f(with)h(this)h(release.)39
+b(The)24 b(diagnostic)g(messages)i(\(whic)m(h)d(w)m(ere)i(pip)s(ed)e
+(to)i(the)g(\014le)0 4612 y(testprog.lis)f(in)f(the)i(Unix)e(example\))
+i(should)d(b)s(e)i(iden)m(tical)g(to)h(the)g(listing)d(con)m(tained)j
+(in)e(the)i(\014le)e(testprog.out.)0 4725 y(The)30 b('di\013)7
+b(')30 b(and)f('cmp')i(commands)f(sho)m(wn)g(ab)s(o)m(v)m(e)h(should)e
+(not)h(rep)s(ort)g(an)m(y)h(di\013erences)f(in)f(the)h(\014les.)40
+b(\(There)0 4838 y(ma)m(y)35 b(b)s(e)e(some)h(minor)f(formatting)g
+(di\013erences,)i(suc)m(h)e(as)i(the)f(presence)g(or)g(absence)g(of)g
+(leading)f(zeros,)j(or)e(3)0 4951 y(digit)29 b(exp)s(onen)m(ts)h(in)f
+(n)m(um)m(b)s(ers,)h(whic)m(h)f(can)h(b)s(e)g(ignored\).)0
+5111 y(The)f(F)-8 b(ortran)31 b(wrapp)s(ers)d(in)g(CFITSIO)g(ma)m(y)j
+(b)s(e)e(tested)h(with)f(the)h(testf77)h(program.)40
+b(On)29 b(Unix)g(systems)h(the)0 5224 y(fortran)g(compilation)f(and)h
+(link)e(command)i(ma)m(y)h(b)s(e)f(called)f('f77')j(or)e('g77',)j(dep)s
+(ending)28 b(on)i(the)g(system.)143 5488 y Fe(\045)48
+b(f77)f(-o)g(testf77)f(testf77.f)f(-L.)i(-lcfitsio)e(-lnsl)h(-lsocket)
+48 5601 y(or)143 5714 y(\045)i(f77)f(-f)g(-o)g(testf77)f(testf77.f)f
+(-L.)i(-lcfitsio)188 b(\(under)46 b(SUN)h(O/S\))p eop
+%%Page: 7 13
+7 12 bop 0 299 a Fg(2.3.)72 b(LINKING)30 b(PR)m(OGRAMS)h(WITH)f(FITSIO)
+2041 b Fi(7)48 555 y Fe(or)143 668 y(\045)48 b(f77)f(-o)g(testf77)f
+(testf77.f)f(-Wl,-L.)h(-lcfitsio)f(-lm)i(-lnsl)f(-lsocket)g(\(HP/UX\))
+48 781 y(or)143 894 y(\045)i(g77)f(-o)g(testf77)f(-s)h(testf77.f)e
+(-lcfitsio)g(-lcc_dynamic)g(-lncurses)g(\(Mac)i(OS-X\))143
+1120 y(\045)h(testf77)d(>)j(testf77.lis)143 1233 y(\045)g(diff)e
+(testf77.lis)f(testf77.out)143 1346 y(\045)j(cmp)f(testf77.fit)d
+(testf77.std)0 1591 y Fi(On)31 b(mac)m(hines)g(running)f(SUN)h(O/S,)h
+(F)-8 b(ortran)33 b(programs)e(m)m(ust)h(b)s(e)f(compiled)f(with)h(the)
+h('-f)7 b(')32 b(option)g(to)g(force)0 1704 y(double)24
+b(precision)g(v)-5 b(ariables)24 b(to)i(b)s(e)f(aligned)f(on)i(8-b)m
+(yte)h(b)s(oundarys)c(to)j(mak)m(e)h(the)e(fortran-declared)g(v)-5
+b(ariables)0 1817 y(compatible)32 b(with)f(C.)h(A)h(similar)d(compiler)
+h(option)h(ma)m(y)h(b)s(e)f(required)f(on)h(other)h(platforms.)47
+b(F)-8 b(ailing)31 b(to)i(use)0 1930 y(this)25 b(option)g(ma)m(y)h
+(cause)h(the)f(program)f(to)i(crash)e(on)h(FITSIO)f(routines)f(that)j
+(read)f(or)f(write)g(double)g(precision)0 2043 y(v)-5
+b(ariables.)0 2203 y(Also)30 b(note)h(that)f(on)g(some)h(systems,)f
+(the)h(output)e(listing)f(of)j(the)f(testf77)i(program)d(ma)m(y)i
+(di\013er)e(sligh)m(tly)f(from)0 2316 y(the)j(testf77.std)h(template,)f
+(if)f(leading)f(zeros)i(are)g(not)g(prin)m(ted)e(b)m(y)i(default)f(b)s
+(efore)g(the)h(decimal)e(p)s(oin)m(t)h(when)0 2429 y(using)f(F)i
+(format.)0 2589 y(A)f(few)h(other)f(utilit)m(y)f(programs)h(are)h
+(included)c(with)i(CFITSIO:)191 2835 y Fe(speed)46 b(-)i(measures)d
+(the)i(maximum)f(throughput)f(\(in)i(MB)g(per)g(second\))668
+2947 y(for)g(writing)f(and)h(reading)f(FITS)g(files)h(with)f(CFITSIO)
+191 3173 y(listhead)f(-)j(lists)e(all)h(the)g(header)f(keywords)g(in)h
+(any)g(FITS)f(file)191 3399 y(fitscopy)f(-)j(copies)e(any)h(FITS)g
+(file)f(\(especially)f(useful)h(in)h(conjunction)811
+3512 y(with)g(the)g(CFITSIO's)e(extended)h(input)g(filename)g(syntax\))
+191 3738 y(cookbook)f(-)j(a)f(sample)f(program)g(that)h(peforms)f
+(common)g(read)g(and)811 3851 y(write)h(operations)e(on)i(a)g(FITS)g
+(file.)191 4077 y(iter_a,)f(iter_b,)g(iter_c)g(-)h(examples)f(of)h(the)
+g(CFITSIO)f(iterator)f(routine)0 4322 y Fi(The)30 b(\014rst)f(4)i(of)g
+(these)g(utilit)m(y)d(programs)i(can)h(b)s(e)f(compiled)f(and)g(link)m
+(ed)g(b)m(y)h(t)m(yping)143 4568 y Fe(\045)95 b(make)47
+b(program_name)0 4899 y Fd(2.3)135 b(Linking)45 b(Programs)h(with)f
+(FITSIO)0 5149 y Fi(When)31 b(linking)d(applications)i(soft)m(w)m(are)i
+(with)e(the)h(FITSIO)f(library)-8 b(,)30 b(sev)m(eral)i(system)f
+(libraries)d(usually)h(need)0 5262 y(to)d(b)s(e)f(sp)s(eci\014ed)f(on)h
+(the)h(link)e(comman)h(Unix)g(systems,)i(the)e(most)h(reliable)e(w)m(a)
+m(y)i(to)h(determine)d(what)i(libraries)0 5375 y(are)32
+b(required)e(is)g(to)j(t)m(yp)s(e)e('mak)m(e)i(testprog')g(and)e(see)h
+(what)f(libraries)e(the)j(con\014gure)f(script)g(has)g(added.)43
+b(The)0 5488 y(t)m(ypical)23 b(libraries)e(that)j(ma)m(y)g(need)f(to)h
+(b)s(e)f(added)g(are)g(-lm)g(\(the)h(math)f(library\))f(and)h(-lnsl)e
+(and)i(-lso)s(c)m(k)m(et)i(\(needed)0 5601 y(only)h(for)g(FTP)g(and)g
+(HTTP)g(\014le)g(access\).)41 b(These)26 b(latter)h(2)g(libraries)d
+(are)j(not)g(needed)f(on)g(VMS)h(and)f(Windo)m(ws)0 5714
+y(platforms,)k(b)s(ecause)g(FTP)g(\014le)g(access)h(is)f(not)g(curren)m
+(tly)g(supp)s(orted)e(on)i(those)h(platforms.)p eop
+%%Page: 8 14
+8 13 bop 0 299 a Fi(8)1896 b Fg(CHAPTER)30 b(2.)111 b(CREA)-8
+b(TING)31 b(FITSIO/CFITSIO)0 555 y Fi(Note)36 b(that)f(when)e
+(upgrading)f(to)j(a)g(new)m(er)f(v)m(ersion)g(of)h(CFITSIO)d(it)i(is)g
+(usually)e(necessa)m(y)j(to)g(recompile,)g(as)0 668 y(w)m(ell)29
+b(as)i(relink,)e(the)h(programs)g(that)h(use)f(CFITSIO,)f(b)s(ecause)i
+(the)f(de\014nitions)e(in)h(\014tsio.h)h(often)g(c)m(hange.)0
+1001 y Fd(2.4)135 b(Getting)46 b(Started)g(with)f(FITSIO)0
+1251 y Fi(In)32 b(order)h(to)h(e\013ectiv)m(ely)g(use)f(the)g(FITSIO)f
+(library)f(as)j(quic)m(kly)e(as)h(p)s(ossible,)f(it)h(is)f(recommended)
+h(that)g(new)0 1364 y(users)d(follo)m(w)f(these)i(steps:)0
+1524 y(1.)62 b(Read)38 b(the)f(follo)m(wing)f(`FITS)h(Primer')f(c)m
+(hapter)i(for)g(a)f(brief)f(o)m(v)m(erview)i(of)g(the)g(structure)e(of)
+i(FITS)f(\014les.)0 1637 y(This)24 b(is)h(esp)s(ecially)f(imp)s(ortan)m
+(t)i(for)f(users)h(who)f(ha)m(v)m(e)i(not)g(previously)c(dealt)j(with)f
+(the)h(FITS)f(table)h(and)g(image)0 1750 y(extensions.)0
+1910 y(2.)41 b(W)-8 b(rite)31 b(a)g(simple)d(program)i(to)h(read)g(or)f
+(write)f(a)i(FITS)f(\014le)f(using)g(the)i(Basic)f(In)m(terface)i
+(routines.)0 2071 y(3.)41 b(Refer)28 b(to)i(the)f(co)s(okb)s(o)s(ok.f)g
+(program)f(that)i(is)e(included)e(with)h(this)h(release)h(for)f
+(examples)h(of)g(routines)e(that)0 2183 y(p)s(erform)i(v)-5
+b(arious)29 b(common)i(FITS)f(\014le)f(op)s(erations.)0
+2344 y(4.)52 b(Read)34 b(Chapters)g(4)g(and)f(5)i(to)g(b)s(ecome)f
+(familiar)e(with)g(the)j(con)m(v)m(en)m(tions)g(and)e(adv)-5
+b(anced)34 b(features)h(of)f(the)0 2457 y(FITSIO)29 b(in)m(terface.)0
+2617 y(5.)47 b(Scan)32 b(through)f(the)h(more)h(extensiv)m(e)f(set)h
+(of)g(routines)e(that)h(are)h(pro)m(vided)e(in)g(the)h(`Adv)-5
+b(anced)32 b(In)m(terface'.)0 2730 y(These)22 b(routines)e(p)s(erform)h
+(more)h(sp)s(ecialized)e(functions)g(than)h(are)i(pro)m(vided)d(b)m(y)i
+(the)g(Basic)g(In)m(terface)h(routines.)0 3063 y Fd(2.5)135
+b(Example)46 b(Program)0 3313 y Fi(The)32 b(follo)m(wing)f(listing)f
+(sho)m(ws)i(an)g(example)h(of)f(ho)m(w)h(to)g(use)f(the)g(FITSIO)g
+(routines)f(in)g(a)i(F)-8 b(ortran)33 b(program.)0 3426
+y(Refer)38 b(to)h(the)g(co)s(okb)s(o)s(ok.f)f(program)g(that)h(is)e
+(included)e(with)i(the)i(FITSIO)e(distribution)d(for)k(examples)g(of)0
+3539 y(other)31 b(FITS)e(programs.)286 3794 y Fe(program)46
+b(writeimage)0 4020 y(C)238 b(Create)46 b(a)i(FITS)f(primary)e(array)i
+(containing)e(a)i(2-D)g(image)286 4246 y(integer)f
+(status,unit,blocksize,bit)o(pix,)o(nax)o(is,n)o(axes)o(\(2\))286
+4359 y(integer)g(i,j,group,fpixel,nelement)o(s,ar)o(ray)o(\(300)o(,200)
+o(\))286 4472 y(character)g(filename*80)286 4585 y(logical)g
+(simple,extend)286 4811 y(status=0)0 4924 y(C)238 b(Name)47
+b(of)g(the)g(FITS)g(file)f(to)i(be)f(created:)286 5036
+y(filename='ATESTFILE.FITS')0 5262 y(C)238 b(Get)47 b(an)g(unused)g
+(Logical)e(Unit)i(Number)f(to)h(use)g(to)g(create)f(the)h(FITS)g(file)
+286 5375 y(call)g(ftgiou\(unit,status\))0 5601 y(C)238
+b(create)46 b(the)h(new)g(empty)g(FITS)f(file)286 5714
+y(blocksize=1)p eop
+%%Page: 9 15
+9 14 bop 0 299 a Fg(2.6.)72 b(LEGAL)30 b(STUFF)2995 b
+Fi(9)286 555 y Fe(call)47 b(ftinit\(unit,filename,blo)o(cksi)o(ze,s)o
+(tat)o(us\))0 781 y(C)238 b(initialize)45 b(parameters)g(about)i(the)g
+(FITS)f(image)h(\(300)f(x)i(200)f(16-bit)f(integers\))286
+894 y(simple=.true.)286 1007 y(bitpix=16)286 1120 y(naxis=2)286
+1233 y(naxes\(1\)=300)286 1346 y(naxes\(2\)=200)286 1458
+y(extend=.true.)0 1684 y(C)238 b(write)47 b(the)g(required)e(header)h
+(keywords)286 1797 y(call)h(ftphpr\(unit,simple,bitpi)o(x,na)o(xis,)o
+(nax)o(es,0)o(,1,e)o(xte)o(nd,s)o(tatu)o(s\))0 2023 y(C)238
+b(initialize)45 b(the)i(values)f(in)i(the)e(image)h(with)f(a)i(linear)e
+(ramp)h(function)286 2136 y(do)h(j=1,naxes\(2\))477 2249
+y(do)f(i=1,naxes\(1\))668 2362 y(array\(i,j\)=i+j)477
+2475 y(end)g(do)286 2588 y(end)g(do)0 2813 y(C)238 b(write)47
+b(the)g(array)f(to)h(the)g(FITS)g(file)286 2926 y(group=1)286
+3039 y(fpixel=1)286 3152 y(nelements=naxes\(1\)*naxes\(2)o(\))286
+3265 y(call)g(ftpprj\(unit,group,fpixel)o(,nel)o(emen)o(ts,)o(arra)o
+(y,st)o(atu)o(s\))0 3491 y(C)238 b(write)47 b(another)f(optional)f
+(keyword)h(to)h(the)g(header)286 3604 y(call)g
+(ftpkyj\(unit,'EXPOSURE',1)o(500,)o('Tot)o(al)41 b(Exposure)46
+b(Time',status\))0 3830 y(C)238 b(close)47 b(the)g(file)f(and)h(free)g
+(the)g(unit)f(number)286 3942 y(call)h(ftclos\(unit,)d(status\))286
+4055 y(call)j(ftfiou\(unit,)d(status\))286 4168 y(end)0
+4527 y Fd(2.6)135 b(Legal)46 b(Stu\013)0 4782 y Fi(Cop)m(yrigh)m(t)36
+b(\(Unpublished{all)d(righ)m(ts)j(reserv)m(ed)h(under)e(the)i(cop)m
+(yrigh)m(t)g(la)m(ws)f(of)h(the)g(United)f(States\),)k(U.S.)0
+4895 y(Go)m(v)m(ernmen)m(t)30 b(as)g(represen)m(ted)e(b)m(y)h(the)g
+(Administrator)e(of)i(the)g(National)f(Aeronautics)h(and)f(Space)h
+(Adminis-)0 5008 y(tration.)41 b(No)31 b(cop)m(yrigh)m(t)f(is)g
+(claimed)f(in)g(the)i(United)e(States)i(under)e(Title)h(17,)h(U.S.)f
+(Co)s(de.)0 5168 y(P)m(ermission)e(to)i(freely)e(use,)i(cop)m(y)-8
+b(,)31 b(mo)s(dify)-8 b(,)28 b(and)h(distribute)e(this)h(soft)m(w)m
+(are)j(and)e(its)g(do)s(cumen)m(tation)g(without)0 5281
+y(fee)g(is)e(hereb)m(y)h(gran)m(ted,)i(pro)m(vided)d(that)i(this)e(cop)
+m(yrigh)m(t)i(notice)f(and)g(disclaimer)e(of)i(w)m(arran)m(t)m(y)i(app)
+s(ears)d(in)g(all)0 5394 y(copies.)41 b(\(Ho)m(w)m(ev)m(er,)33
+b(see)e(the)f(restriction)f(on)i(the)f(use)g(of)h(the)f(gzip)g
+(compression)g(co)s(de,)h(b)s(elo)m(w\).)0 5554 y(DISCLAIMER:)0
+5714 y(THE)i(SOFTW)-10 b(ARE)32 b(IS)g(PR)m(O)m(VIDED)i('AS)f(IS')g
+(WITHOUT)f(ANY)i(W)-10 b(ARRANTY)33 b(OF)g(ANY)h(KIND,)f(EI-)p
+eop
+%%Page: 10 16
+10 15 bop 0 299 a Fi(10)1851 b Fg(CHAPTER)30 b(2.)111
+b(CREA)-8 b(TING)31 b(FITSIO/CFITSIO)0 555 y Fi(THER)42
+b(EXPRESSED,)f(IMPLIED,)i(OR)e(ST)-8 b(A)g(TUTOR)g(Y,)43
+b(INCLUDING,)f(BUT)h(NOT)e(LIMITED)h(TO,)0 668 y(ANY)33
+b(W)-10 b(ARRANTY)33 b(THA)-8 b(T)32 b(THE)g(SOFTW)-10
+b(ARE)32 b(WILL)g(CONF)m(ORM)g(TO)g(SPECIFICA)-8 b(TIONS,)30
+b(ANY)0 781 y(IMPLIED)38 b(W)-10 b(ARRANTIES)37 b(OF)h(MER)m(CHANT)-8
+b(ABILITY,)38 b(FITNESS)f(F)m(OR)h(A)g(P)-8 b(AR)g(TICULAR)38
+b(PUR-)0 894 y(POSE,)24 b(AND)i(FREEDOM)f(FR)m(OM)h(INFRINGEMENT,)g
+(AND)f(ANY)h(W)-10 b(ARRANTY)25 b(THA)-8 b(T)25 b(THE)g(DOC-)0
+1007 y(UMENT)-8 b(A)g(TION)31 b(WILL)f(CONF)m(ORM)h(TO)e(THE)h(SOFTW)
+-10 b(ARE,)30 b(OR)g(ANY)h(W)-10 b(ARRANTY)31 b(THA)-8
+b(T)30 b(THE)0 1120 y(SOFTW)-10 b(ARE)31 b(WILL)h(BE)g(ERR)m(OR)g
+(FREE.)g(IN)g(NO)f(EVENT)h(SHALL)f(NASA)h(BE)g(LIABLE)g(F)m(OR)g(ANY)0
+1233 y(D)m(AMA)m(GES,)26 b(INCLUDING,)e(BUT)f(NOT)g(LIMITED)h(TO,)f
+(DIRECT,)g(INDIRECT,)g(SPECIAL)f(OR)h(CON-)0 1346 y(SEQUENTIAL)28
+b(D)m(AMA)m(GES,)k(ARISING)d(OUT)g(OF,)h(RESUL)-8 b(TING)29
+b(FR)m(OM,)h(OR)f(IN)h(ANY)g(W)-10 b(A)i(Y)30 b(CON-)0
+1458 y(NECTED)25 b(WITH)g(THIS)f(SOFTW)-10 b(ARE,)25
+b(WHETHER)g(OR)g(NOT)g(BASED)g(UPON)g(W)-10 b(ARRANTY,)26
+b(CON-)0 1571 y(TRA)m(CT,)d(TOR)-8 b(T)23 b(,)g(OR)g(OTHER)-10
+b(WISE,)22 b(WHETHER)i(OR)f(NOT)f(INJUR)-8 b(Y)24 b(W)-10
+b(AS)23 b(SUST)-8 b(AINED)23 b(BY)h(PER-)0 1684 y(SONS)h(OR)i(PR)m
+(OPER)-8 b(TY)26 b(OR)g(OTHER)-10 b(WISE,)26 b(AND)h(WHETHER)g(OR)f
+(NOT)g(LOSS)f(W)-10 b(AS)26 b(SUST)-8 b(AINED)0 1797
+y(FR)m(OM,)37 b(OR)e(AR)m(OSE)h(OUT)f(OF)h(THE)g(RESUL)-8
+b(TS)35 b(OF,)h(OR)f(USE)h(OF,)g(THE)g(SOFTW)-10 b(ARE)35
+b(OR)g(SER-)0 1910 y(VICES)29 b(PR)m(O)m(VIDED)j(HEREUNDER.")0
+2070 y(The)i(\014le)h(compress.c)g(con)m(tains)g(\(sligh)m(tly)f(mo)s
+(di\014ed\))f(source)i(co)s(de)g(that)h(originally)c(came)k(from)f
+(gzip-1.2.4,)0 2183 y(cop)m(yrigh)m(t)26 b(\(C\))g(1992-1993)k(b)m(y)c
+(Jean-loup)f(Gailly)-8 b(.)38 b(This)24 b(gzip)h(co)s(de)h(is)f
+(distributed)e(under)i(the)h(GNU)g(General)0 2296 y(Public)k(License)i
+(and)f(th)m(us)h(requires)f(that)i(an)m(y)f(soft)m(w)m(are)i(that)f
+(uses)f(the)g(CFITSIO)f(library)f(\(whic)m(h)h(in)g(turn)0
+2409 y(uses)e(the)g(gzip)g(co)s(de\))h(m)m(ust)f(conform)g(to)h(the)f
+(pro)m(visions)e(in)h(the)i(GNU)g(General)f(Public)e(License.)40
+b(A)29 b(cop)m(y)h(of)0 2522 y(the)h(GNU)g(license)e(is)g(included)f
+(at)j(the)g(b)s(eginning)c(of)k(compress.c)g(\014le.)0
+2682 y(An)h(alternate)i(v)m(ersion)e(of)h(the)g(compress.c)g(\014le)f
+(\(called)g(compress)p 2381 2682 28 4 v 33 w(alternate.c\))i(is)e(pro)m
+(vided)f(for)i(users)e(who)0 2795 y(w)m(an)m(t)24 b(to)g(use)e(the)i
+(CFITSIO)d(library)g(but)h(are)h(un)m(willing)d(or)j(unable)e(to)j
+(publicly)c(release)j(their)f(soft)m(w)m(are)i(under)0
+2908 y(the)i(terms)g(of)g(the)g(GNU)h(General)e(Public)f(License.)39
+b(This)24 b(alternate)i(v)m(ersion)g(con)m(tains)g(non-functional)e
+(stubs)0 3021 y(for)g(the)h(\014le)e(compression)h(and)f(uncompression)
+g(routines)g(used)h(b)m(y)g(CFITSIO.)f(Replace)i(the)f(\014le)g
+(`compress.c')0 3134 y(with)32 b(`compress)p 600 3134
+V 33 w(alternate.c')j(b)s(efore)e(compiling)e(the)i(CFITSIO)f(library)
+-8 b(.)48 b(This)31 b(will)g(pro)s(duce)h(a)i(v)m(ersion)f(of)0
+3247 y(CFITSIO)20 b(whic)m(h)h(do)s(es)g(not)h(supp)s(ort)e(reading)h
+(or)h(writing)e(compressed)h(FITS)g(\014les)g(but)g(is)g(otherwise)g
+(iden)m(tical)0 3360 y(to)31 b(the)g(standard)e(v)m(ersion.)0
+3733 y Fd(2.7)135 b(Ac)l(kno)l(wledgemen)l(ts)0 3991
+y Fi(The)29 b(dev)m(elopmen)m(t)g(of)h(man)m(y)f(of)h(the)f(p)s(o)m(w)m
+(erful)f(features)h(in)f(CFITSIO)g(w)m(as)i(made)f(p)s(ossible)e
+(through)h(collab-)0 4104 y(orations)34 b(with)f(man)m(y)i(p)s(eople)e
+(or)i(organizations)f(from)g(around)f(the)i(w)m(orld.)51
+b(The)34 b(follo)m(wing,)g(in)f(particular,)0 4217 y(ha)m(v)m(e)f(made)
+e(esp)s(ecially)f(signi\014can)m(t)g(con)m(tributions:)0
+4377 y(Programmers)c(from)h(the)f(In)m(tegral)h(Science)g(Data)h(Cen)m
+(ter,)g(Switzerland)d(\(namely)-8 b(,)27 b(Jurek)d(Bork)m(o)m(wski,)k
+(Bruce)0 4490 y(O'Neel,)33 b(and)f(Don)h(Jennings\),)e(designed)g(the)i
+(concept)g(for)f(the)h(plug-in)d(I/O)i(driv)m(ers)f(that)i(w)m(as)g(in)
+m(tro)s(duced)0 4603 y(with)h(CFITSIO)f(2.0.)56 b(The)34
+b(use)h(of)g(`driv)m(ers')f(greatly)h(simpli\014ed)d(the)j(lo)m(w-lev)m
+(el)g(I/O,)g(whic)m(h)e(in)h(turn)g(made)0 4716 y(other)40
+b(new)f(features)i(in)d(CFITSIO)g(\(e.g.,)45 b(supp)s(ort)38
+b(for)h(compressed)h(FITS)f(\014les)g(and)g(supp)s(ort)f(for)i(IRAF)0
+4829 y(format)32 b(image)f(\014les\))g(m)m(uc)m(h)g(easier)h(to)g
+(implemen)m(t.)42 b(Jurek)31 b(Bork)m(o)m(wski)g(wrote)h(the)g(Shared)e
+(Memory)i(driv)m(er,)0 4942 y(and)23 b(Bruce)i(O'Neel)f(wrote)g(the)g
+(driv)m(ers)f(for)g(accessing)i(FITS)e(\014les)g(o)m(v)m(er)i(the)f
+(net)m(w)m(ork)h(using)d(the)j(FTP)-8 b(,)24 b(HTTP)-8
+b(,)0 5055 y(and)30 b(R)m(OOT)g(proto)s(cols.)0 5215
+y(The)45 b(ISDC)g(also)g(pro)m(vided)f(the)i(template)g(parsing)e
+(routines)g(\(written)h(b)m(y)g(Jurek)g(Bork)m(o)m(wski\))h(and)f(the)0
+5328 y(hierarc)m(hical)36 b(grouping)f(routines)h(\(written)h(b)m(y)g
+(Don)h(Jennings\).)59 b(The)37 b(ISDC)f(D)m(AL)i(\(Data)h(Access)f(La)m
+(y)m(er\))0 5441 y(routines)29 b(are)i(la)m(y)m(ered)g(on)f(top)h(of)f
+(CFITSIO)f(and)h(mak)m(e)h(extensiv)m(e)g(use)f(of)h(these)g(features.)
+0 5601 y(Uw)m(e)25 b(Lammers)e(\(XMM/ESA/ESTEC,)h(The)g(Netherlands\))f
+(designed)g(the)h(high-p)s(erformance)e(lexical)h(pars-)0
+5714 y(ing)41 b(algorithm)g(that)h(is)f(used)g(to)i(do)e(on-the-\015y)h
+(\014ltering)e(of)i(FITS)f(tables.)75 b(This)40 b(algorithm)h(essen)m
+(tially)p eop
+%%Page: 11 17
+11 16 bop 0 299 a Fg(2.7.)72 b(A)m(CKNO)m(WLEDGEMENTS)2515
+b Fi(11)0 555 y(pre-compiles)34 b(the)i(user-supplied)c(selection)k
+(expression)e(in)m(to)i(a)g(form)g(that)g(can)g(b)s(e)f(rapidly)e(ev)-5
+b(aluated)36 b(for)0 668 y(eac)m(h)31 b(ro)m(w.)40 b(P)m(eter)31
+b(Wilson)d(\(RSTX,)h(NASA/GSF)m(C\))i(then)e(wrote)h(the)g(parsing)e
+(routines)g(used)h(b)m(y)g(CFITSIO)0 781 y(based)i(on)f(Lammers')h
+(design,)f(com)m(bined)g(with)g(other)h(tec)m(hniques)f(suc)m(h)h(as)g
+(the)g(CFITSIO)f(iterator)h(routine)0 894 y(to)h(further)e(enhance)h
+(the)h(data)g(pro)s(cessing)e(throughput.)42 b(This)30
+b(e\013ort)i(also)f(b)s(ene\014ted)f(from)h(a)h(m)m(uc)m(h)f(earlier)0
+1007 y(lexical)22 b(parsing)h(routine)f(that)i(w)m(as)g(dev)m(elop)s
+(ed)f(b)m(y)h(Ken)m(t)g(Blac)m(kburn)e(\(NASA/GSF)m(C\).)j(More)g
+(recen)m(tly)-8 b(,)26 b(Craig)0 1120 y(Markw)m(ardt)j(\(NASA/GSF)m
+(C\))g(implemen)m(ted)e(additional)f(functions)h(\(median,)h(a)m(v)m
+(erage,)k(stddev\))c(and)g(other)0 1233 y(enhancemen)m(ts)j(to)g(the)g
+(lexical)e(parser.)0 1393 y(The)40 b(CFITSIO)g(iterator)h(function)e
+(is)h(lo)s(osely)g(based)h(on)f(similar)f(ideas)h(dev)m(elop)s(ed)g
+(for)h(the)g(XMM)g(Data)0 1506 y(Access)31 b(La)m(y)m(er.)0
+1666 y(P)m(eter)25 b(Wilson)e(\(RSTX,)h(NASA/GSF)m(C\))h(wrote)g(the)f
+(complete)h(set)f(of)h(F)-8 b(ortran-callable)24 b(wrapp)s(ers)e(for)i
+(all)f(the)0 1779 y(CFITSIO)29 b(routines,)g(whic)m(h)g(in)g(turn)h
+(rely)f(on)i(the)f(CF)m(OR)-8 b(TRAN)31 b(macro)g(dev)m(elop)s(ed)f(b)m
+(y)g(Burkhard)f(Buro)m(w.)0 1939 y(The)h(syn)m(tax)i(used)e(b)m(y)h
+(CFITSIO)f(for)g(\014ltering)g(or)h(binning)c(input)i(FITS)i(\014les)f
+(is)g(based)g(on)h(ideas)g(dev)m(elop)s(ed)0 2052 y(for)41
+b(the)g(AXAF)h(Science)f(Cen)m(ter)h(Data)h(Mo)s(del)d(b)m(y)h
+(Jonathan)g(McDo)m(w)m(ell,)k(An)m(tonella)c(F)-8 b(ruscione,)44
+b(Aneta)0 2165 y(Siemigino)m(wsk)-5 b(a)24 b(and)h(Bill)f(Jo)m(y)m(e.)
+41 b(See)26 b(h)m(ttp://heasarc.gsfc.nasa.go)m(v/do)s
+(cs/journal/axaf7.h)m(t)q(ml)31 b(for)25 b(further)0
+2278 y(description)j(of)j(the)g(AXAF)g(Data)h(Mo)s(del.)0
+2438 y(The)j(\014le)f(decompression)g(co)s(de)h(w)m(ere)h(tak)m(en)g
+(directly)e(from)g(the)i(gzip)e(\(GNU)i(zip\))f(program)g(dev)m(elop)s
+(ed)f(b)m(y)0 2551 y(Jean-loup)29 b(Gailly)g(and)h(others.)0
+2711 y(Doug)h(Mink,)f(SA)m(O,)g(pro)m(vided)f(the)i(routines)e(for)h
+(con)m(v)m(erting)h(IRAF)g(format)g(images)f(in)m(to)g(FITS)g(format.)0
+2871 y(In)d(addition,)g(man)m(y)h(other)g(p)s(eople)f(ha)m(v)m(e)i
+(made)f(v)-5 b(aluable)27 b(con)m(tributions)f(to)j(the)f(dev)m
+(elopmen)m(t)g(of)g(CFITSIO.)0 2984 y(These)i(include)e(\(with)i(ap)s
+(ologies)g(to)h(others)f(that)h(ma)m(y)g(ha)m(v)m(e)h(inadv)m(erten)m
+(tly)e(b)s(een)f(omitted\):)0 3144 y(Stev)m(e)g(Allen,)e(Carl)g(Ak)m
+(erlof,)h(Keith)f(Arnaud,)h(Morten)g(Krabb)s(e)e(Barfo)s(ed,)j(Ken)m(t)
+f(Blac)m(kburn,)g(G)g(Bo)s(dammer,)0 3257 y(Romk)m(e)h(Bon)m(tek)m(o)s
+(e,)i(Lucio)c(Chiapp)s(etti,)f(Keith)h(Costorf,)h(Robin)f(Corb)s(et,)h
+(John)e(Da)m(vis,)j(Ric)m(hard)e(Fink,)h(Ning)0 3370
+y(Gan,)h(Emily)c(Greene,)k(Jo)s(e)f(Harrington,)g(Cheng)f(Ho,)i(Phil)c
+(Ho)s(dge,)k(Jim)e(Ingham,)h(Y)-8 b(oshitak)j(a)28 b(Ishisaki,)e(Diab)0
+3483 y(Jerius,)k(Mark)i(Levine,)f(T)-8 b(o)s(dd)30 b(Karak)-5
+b(askian,)31 b(Edw)m(ard)g(King,)f(Scott)j(Ko)s(c)m(h,)e(Claire)f
+(Larkin,)g(Rob)i(Managan,)0 3596 y(Eric)37 b(Mandel,)i(John)e(Matto)m
+(x,)43 b(Carsten)37 b(Mey)m(er,)42 b(Emi)36 b(Miy)m(ata,)42
+b(Stefan)c(Mo)s(c)m(hnac)m(ki,)i(Mik)m(e)f(Noble,)g(Oliv)m(er)0
+3709 y(Ob)s(erdorf,)d(Cliv)m(e)g(P)m(age,)k(Arvind)34
+b(P)m(armar,)k(Je\013)f(P)m(edelt)m(y)-8 b(,)39 b(Tim)c(P)m(earson,)k
+(Maren)e(Purv)m(es,)h(Scott)f(Randall,)0 3822 y(Chris)c(Rogers,)k
+(Arnold)d(Rots,)j(Barry)f(Sc)m(hlesinger,)f(Robin)f(Stebbins,)g(Andrew)
+g(Szymk)m(o)m(wiak,)j(Allyn)d(T)-8 b(en-)0 3934 y(nan)m(t,)31
+b(P)m(eter)g(T)-8 b(eub)s(en,)30 b(James)g(Theiler,)f(Doug)i(T)-8
+b(o)s(dy)g(,)31 b(Shiro)d(Ueno,)k(Stev)m(e)f(W)-8 b(alton,)32
+b(Arc)m(hie)e(W)-8 b(arno)s(c)m(k,)32 b(Alan)0 4047 y(W)-8
+b(atson,)32 b(Dan)f(Whipple,)d(Wim)i(Wimmers,)g(P)m(eter)h(Y)-8
+b(oung,)31 b(Jianjun)d(Xu,)i(and)g(Nelson)g(Zarate.)p
+eop
+%%Page: 12 18
+12 17 bop 0 299 a Fi(12)1851 b Fg(CHAPTER)30 b(2.)111
+b(CREA)-8 b(TING)31 b(FITSIO/CFITSIO)p eop
+%%Page: 13 19
+13 18 bop 0 1225 a Ff(Chapter)65 b(3)0 1687 y Fl(A)78
+b(FITS)f(Primer)0 2180 y Fi(This)22 b(section)j(giv)m(es)f(a)h(brief)d
+(o)m(v)m(erview)j(of)f(the)h(structure)e(of)i(FITS)e(\014les.)37
+b(Users)24 b(should)f(refer)g(to)i(the)g(do)s(cumen-)0
+2293 y(tation)i(a)m(v)-5 b(ailable)27 b(from)g(the)g(NOST,)f(as)i
+(describ)s(ed)d(in)h(the)h(in)m(tro)s(duction,)f(for)h(more)g(detailed)
+g(information)e(on)0 2406 y(FITS)30 b(formats.)0 2566
+y(FITS)37 b(w)m(as)g(\014rst)g(dev)m(elop)s(ed)g(in)f(the)h(late)h
+(1970's)h(as)f(a)f(standard)g(data)h(in)m(terc)m(hange)g(format)g(b)s
+(et)m(w)m(een)g(v)-5 b(ar-)0 2679 y(ious)37 b(astronomical)g(observ)-5
+b(atories.)63 b(Since)36 b(then)h(FITS)g(has)h(b)s(ecome)g(the)g
+(defacto)g(standard)f(data)i(format)0 2791 y(supp)s(orted)29
+b(b)m(y)h(most)h(astronomical)f(data)h(analysis)e(soft)m(w)m(are)i(pac)
+m(k)-5 b(ages.)0 2952 y(A)34 b(FITS)f(\014le)f(consists)h(of)h(one)g
+(or)g(more)g(Header)g(+)f(Data)i(Units)e(\(HDUs\),)j(where)d(the)h
+(\014rst)f(HDU)h(is)f(called)0 3065 y(the)k(`Primary)e(HDU',)j(or)f
+(`Primary)e(Arra)m(y'.)60 b(The)36 b(primary)f(arra)m(y)i(con)m(tains)g
+(an)f(N-dimensional)f(arra)m(y)i(of)0 3177 y(pixels,)28
+b(suc)m(h)g(as)h(a)h(1-D)g(sp)s(ectrum,)e(a)h(2-D)h(image,)g(or)f(a)g
+(3-D)h(data)g(cub)s(e.)39 b(Fiv)m(e)30 b(di\013eren)m(t)e(primary)f
+(datat)m(yp)s(es)0 3290 y(are)f(supp)s(orted:)37 b(Unsigned)24
+b(8-bit)i(b)m(ytes,)h(16)g(and)e(32-bit)h(signed)e(in)m(tegers,)j(and)f
+(32)g(and)f(64-bit)h(\015oating)g(p)s(oin)m(t)0 3403
+y(reals.)40 b(FITS)29 b(also)h(has)g(a)g(con)m(v)m(en)m(tion)i(for)d
+(storing)h(16)h(and)e(32-bit)h(unsigned)e(in)m(tegers)j(\(see)g(the)f
+(later)g(section)0 3516 y(en)m(titled)d(`Unsigned)g(In)m(tegers')i(for)
+e(more)h(details\).)39 b(The)27 b(primary)f(HDU)j(ma)m(y)f(also)g
+(consist)f(of)h(only)f(a)h(header)0 3629 y(with)h(a)i(n)m(ull)d(arra)m
+(y)j(con)m(taining)f(no)g(data)h(pixels.)0 3789 y(An)m(y)i(n)m(um)m(b)s
+(er)e(of)h(additional)f(HDUs)i(ma)m(y)g(follo)m(w)f(the)g(primary)f
+(arra)m(y;)j(these)f(additional)e(HDUs)i(are)g(called)0
+3902 y(FITS)d(`extensions'.)40 b(There)30 b(are)h(curren)m(tly)e(3)i(t)
+m(yp)s(es)g(of)f(extensions)g(de\014ned)f(b)m(y)h(the)h(FITS)f
+(standard:)136 4171 y Fc(\017)46 b Fi(Image)31 b(Extension)f(-)h(a)f
+(N-dimensional)e(arra)m(y)j(of)g(pixels,)e(lik)m(e)g(in)g(a)i(primary)d
+(arra)m(y)136 4368 y Fc(\017)46 b Fi(ASCI)s(I)29 b(T)-8
+b(able)30 b(Extension)g(-)g(ro)m(ws)h(and)e(columns)g(of)i(data)g(in)e
+(ASCI)s(I)g(c)m(haracter)j(format)136 4564 y Fc(\017)46
+b Fi(Binary)30 b(T)-8 b(able)30 b(Extension)f(-)i(ro)m(ws)f(and)g
+(columns)f(of)i(data)g(in)e(binary)f(represen)m(tation)0
+4833 y(In)33 b(eac)m(h)i(case)g(the)f(HDU)h(consists)f(of)g(an)g(ASCI)s
+(I)e(Header)i(Unit)g(follo)m(w)m(ed)f(b)m(y)h(an)g(optional)f(Data)i
+(Unit.)51 b(F)-8 b(or)0 4946 y(historical)34 b(reasons,)j(eac)m(h)f
+(Header)g(or)g(Data)h(unit)d(m)m(ust)h(b)s(e)g(an)g(exact)i(m)m
+(ultiple)c(of)j(2880)h(8-bit)e(b)m(ytes)h(long.)0 5059
+y(An)m(y)30 b(un)m(used)g(space)g(is)g(padded)f(with)g(\014ll)f(c)m
+(haracters)k(\(ASCI)s(I)d(blanks)g(or)i(zeros\).)0 5219
+y(Eac)m(h)i(Header)f(Unit)g(consists)g(of)g(an)m(y)g(n)m(um)m(b)s(er)f
+(of)i(80-c)m(haracter)i(k)m(eyw)m(ord)d(records)g(or)g(`card)h(images')
+f(whic)m(h)0 5332 y(ha)m(v)m(e)g(the)e(general)h(form:)95
+5601 y Fe(KEYNAME)46 b(=)i(value)e(/)i(comment)d(string)95
+5714 y(NULLKEY)h(=)334 b(/)48 b(comment:)d(This)i(keyword)f(has)g(no)i
+(value)1905 5942 y Fi(13)p eop
+%%Page: 14 20
+14 19 bop 0 299 a Fi(14)2398 b Fg(CHAPTER)30 b(3.)112
+b(A)30 b(FITS)g(PRIMER)0 555 y Fi(The)35 b(k)m(eyw)m(ord)i(names)f(ma)m
+(y)g(b)s(e)g(up)f(to)h(8)h(c)m(haracters)g(long)f(and)f(can)h(only)g
+(con)m(tain)g(upp)s(ercase)f(letters,)j(the)0 668 y(digits)23
+b(0-9,)k(the)e(h)m(yphen,)g(and)f(the)h(underscore)e(c)m(haracter.)41
+b(The)24 b(k)m(eyw)m(ord)h(name)g(is)e(\(usually\))g(follo)m(w)m(ed)i
+(b)m(y)f(an)0 781 y(equals)k(sign)g(and)g(a)g(space)i(c)m(haracter)g
+(\(=)e(\))h(in)e(columns)h(9)h(-)f(10)i(of)f(the)f(record,)h(follo)m(w)
+m(ed)g(b)m(y)f(the)h(v)-5 b(alue)28 b(of)h(the)0 894
+y(k)m(eyw)m(ord)34 b(whic)m(h)f(ma)m(y)h(b)s(e)f(either)g(an)h(in)m
+(teger,)h(a)f(\015oating)f(p)s(oin)m(t)g(n)m(um)m(b)s(er,)h(a)g(c)m
+(haracter)h(string)d(\(enclosed)i(in)0 1007 y(single)26
+b(quotes\),)k(or)e(a)g(b)s(o)s(olean)f(v)-5 b(alue)27
+b(\(the)h(letter)g(T)g(or)f(F\).)i(A)f(k)m(eyw)m(ord)g(ma)m(y)h(also)e
+(ha)m(v)m(e)i(a)g(n)m(ull)c(or)j(unde\014ned)0 1120 y(v)-5
+b(alue)30 b(if)f(there)i(is)e(no)h(sp)s(eci\014ed)f(v)-5
+b(alue)30 b(string,)g(as)g(in)f(the)i(second)f(example.)0
+1280 y(The)42 b(last)g(k)m(eyw)m(ord)h(in)e(the)i(header)f(is)f(alw)m
+(a)m(ys)i(the)g(`END')g(k)m(eyw)m(ord)g(whic)m(h)e(has)h(no)h(v)-5
+b(alue)41 b(or)i(commen)m(t)0 1393 y(\014elds.)c(There)30
+b(are)h(man)m(y)f(rules)f(go)m(v)m(erning)i(the)f(exact)i(format)f(of)f
+(a)h(k)m(eyw)m(ord)f(record)h(\(see)g(the)f(NOST)g(FITS)0
+1506 y(Standard\))h(so)h(it)f(is)f(b)s(etter)i(to)g(rely)f(on)g
+(standard)g(in)m(terface)h(soft)m(w)m(are)h(lik)m(e)e(FITSIO)f(to)j
+(correctly)f(construct)0 1619 y(or)e(to)h(parse)g(the)f(k)m(eyw)m(ord)h
+(records)f(rather)g(than)h(try)f(to)h(deal)f(directly)f(with)g(the)h
+(ra)m(w)h(FITS)f(formats.)0 1779 y(Eac)m(h)37 b(Header)g(Unit)e(b)s
+(egins)g(with)g(a)h(series)g(of)g(required)f(k)m(eyw)m(ords)h(whic)m(h)
+f(dep)s(end)g(on)h(the)g(t)m(yp)s(e)h(of)f(HDU.)0 1892
+y(These)31 b(required)f(k)m(eyw)m(ords)i(sp)s(ecify)f(the)g(size)h(and)
+f(format)h(of)g(the)g(follo)m(wing)e(Data)j(Unit.)44
+b(The)31 b(header)g(ma)m(y)0 2005 y(con)m(tain)g(other)g(optional)e(k)m
+(eyw)m(ords)i(to)h(describ)s(e)d(other)h(asp)s(ects)h(of)g(the)g(data,)
+g(suc)m(h)g(as)g(the)f(units)f(or)i(scaling)0 2118 y(v)-5
+b(alues.)43 b(Other)31 b(COMMENT)g(or)g(HISTOR)-8 b(Y)30
+b(k)m(eyw)m(ords)i(are)g(also)f(frequen)m(tly)g(added)f(to)i(further)e
+(do)s(cumen)m(t)0 2230 y(the)h(data)g(\014le.)0 2391
+y(The)36 b(optional)f(Data)j(Unit)e(immediately)e(follo)m(ws)i(the)g
+(last)g(2880-b)m(yte)j(blo)s(c)m(k)d(in)f(the)h(Header)h(Unit.)58
+b(Some)0 2503 y(HDUs)31 b(do)f(not)h(ha)m(v)m(e)g(a)g(Data)h(Unit)e
+(and)g(only)f(consist)h(of)h(the)f(Header)h(Unit.)0 2664
+y(If)24 b(there)i(is)e(more)h(than)f(one)h(HDU)h(in)e(the)h(FITS)f
+(\014le,)h(then)g(the)g(Header)h(Unit)e(of)h(the)g(next)g(HDU)h
+(immediately)0 2777 y(follo)m(ws)e(the)g(last)h(2880-b)m(yte)i(blo)s(c)
+m(k)d(of)h(the)f(previous)f(Data)k(Unit)c(\(or)i(Header)g(Unit)f(if)f
+(there)i(is)f(no)g(Data)i(Unit\).)0 2937 y(The)k(main)f(required)g(k)m
+(eyw)m(ords)h(in)f(FITS)h(primary)f(arra)m(ys)h(or)h(image)f
+(extensions)g(are:)136 3172 y Fc(\017)46 b Fi(BITPIX)25
+b({)h(de\014nes)f(the)g(datat)m(yp)s(e)i(of)e(the)h(arra)m(y:)39
+b(8,)27 b(16,)g(32,)h(-32,)g(-64)e(for)f(unsigned)f(8{bit)h(b)m(yte,)j
+(16{bit)227 3284 y(signed)38 b(in)m(teger,)j(32{bit)e(signed)e(in)m
+(teger,)k(32{bit)e(IEEE)f(\015oating)g(p)s(oin)m(t,)i(and)e(64{bit)h
+(IEEE)e(double)227 3397 y(precision)29 b(\015oating)h(p)s(oin)m(t,)g
+(resp)s(ectiv)m(ely)-8 b(.)136 3585 y Fc(\017)46 b Fi(NAXIS)30
+b({)h(the)g(n)m(um)m(b)s(er)e(of)h(dimensions)e(in)h(the)i(arra)m(y)-8
+b(,)31 b(usually)d(0,)j(1,)g(2,)g(3,)g(or)g(4.)136 3773
+y Fc(\017)46 b Fi(NAXISn)30 b({)h(\(n)f(ranges)g(from)g(1)h(to)g
+(NAXIS\))g(de\014nes)e(the)i(size)f(of)h(eac)m(h)g(dimension.)0
+4008 y(FITS)e(tables)h(start)h(with)e(the)h(k)m(eyw)m(ord)g(XTENSION)g
+(=)f(`T)-8 b(ABLE')31 b(\(for)f(ASCI)s(I)f(tables\))h(or)g(XTENSION)f
+(=)0 4120 y(`BINT)-8 b(ABLE')32 b(\(for)e(binary)f(tables\))h(and)g(ha)
+m(v)m(e)i(the)e(follo)m(wing)f(main)g(k)m(eyw)m(ords:)136
+4355 y Fc(\017)46 b Fi(TFIELDS)30 b({)h(n)m(um)m(b)s(er)e(of)h
+(\014elds)f(or)i(columns)e(in)g(the)h(table)136 4543
+y Fc(\017)46 b Fi(NAXIS2)31 b({)g(n)m(um)m(b)s(er)e(of)h(ro)m(ws)h(in)e
+(the)h(table)136 4731 y Fc(\017)46 b Fi(TTYPEn)29 b({)i(for)f(eac)m(h)i
+(column)d(\(n)h(ranges)h(from)f(1)g(to)h(TFIELDS\))g(giv)m(es)f(the)h
+(name)f(of)h(the)f(column)136 4918 y Fc(\017)46 b Fi(TF)m(ORMn)31
+b({)f(the)h(datat)m(yp)s(e)g(of)g(the)f(column)136 5106
+y Fc(\017)46 b Fi(TUNITn)30 b({)g(the)h(ph)m(ysical)e(units)g(of)h(the)
+h(column)e(\(optional\))0 5341 y(Users)e(should)e(refer)i(to)g(the)h
+(FITS)e(Supp)s(ort)f(O\016ce)i(at)h Fe(http://fits.gsfc.nasa.go)o(v)21
+b Fi(for)27 b(futher)f(informa-)0 5454 y(tion)k(ab)s(out)g(the)h(FITS)e
+(format)i(and)f(related)g(soft)m(w)m(are)i(pac)m(k)-5
+b(ages.)p eop
+%%Page: 15 21
+15 20 bop 0 1225 a Ff(Chapter)65 b(4)0 1687 y Fl(Extended)77
+b(File)g(Name)g(Syn)-6 b(tax)0 2216 y Fd(4.1)135 b(Ov)l(erview)0
+2466 y Fi(CFITSIO)30 b(supp)s(orts)f(an)j(extended)f(syn)m(tax)h(when)f
+(sp)s(ecifying)e(the)j(name)f(of)h(the)g(data)g(\014le)e(to)i(b)s(e)f
+(op)s(ened)g(or)0 2579 y(created)g(that)g(includes)d(the)j(follo)m
+(wing)e(features:)136 2813 y Fc(\017)46 b Fi(CFITSIO)40
+b(can)i(read)f(IRAF)h(format)g(images)f(whic)m(h)f(ha)m(v)m(e)j(header)
+e(\014le)g(names)g(that)h(end)f(with)f(the)227 2926 y('.imh')d
+(extension,)i(as)f(w)m(ell)e(as)i(reading)e(and)h(writing)e(FITS)i
+(\014les,)h(This)e(feature)i(is)e(implemen)m(ted)g(in)227
+3039 y(CFITSIO)29 b(b)m(y)i(\014rst)e(con)m(v)m(erting)j(the)e(IRAF)h
+(image)g(in)m(to)f(a)h(temp)s(orary)f(FITS)g(format)h(\014le)e(in)g
+(memory)-8 b(,)227 3152 y(then)35 b(op)s(ening)e(the)i(FITS)f(\014le.)
+53 b(An)m(y)35 b(of)g(the)g(usual)e(CFITSIO)h(routines)f(then)i(ma)m(y)
+g(b)s(e)f(used)g(to)i(read)227 3265 y(the)31 b(image)f(header)g(or)h
+(data.)41 b(Similarly)-8 b(,)27 b(ra)m(w)j(binary)f(data)i(arra)m(ys)f
+(can)h(b)s(e)f(read)g(b)m(y)g(con)m(v)m(erting)h(them)227
+3378 y(on)g(the)f(\015y)g(in)m(to)g(virtual)f(FITS)h(images.)136
+3557 y Fc(\017)46 b Fi(FITS)37 b(\014les)g(on)g(the)h(in)m(ternet)g
+(can)g(b)s(e)f(read)g(\(and)g(sometimes)h(written\))f(using)f(the)i
+(FTP)-8 b(,)38 b(HTTP)-8 b(,)38 b(or)227 3670 y(R)m(OOT)30
+b(proto)s(cols.)136 3849 y Fc(\017)46 b Fi(FITS)30 b(\014les)f(can)i(b)
+s(e)f(pip)s(ed)e(b)s(et)m(w)m(een)j(tasks)f(on)h(the)f(stdin)f(and)h
+(stdout)g(streams.)136 4028 y Fc(\017)46 b Fi(FITS)20
+b(\014les)g(can)h(b)s(e)f(read)g(and)g(written)g(in)f(shared)h(memory)
+-8 b(.)38 b(This)19 b(can)i(p)s(oten)m(tially)e(ac)m(hiev)m(e)j(m)m(uc)
+m(h)f(b)s(etter)227 4141 y(data)26 b(I/O)e(p)s(erformance)g(compared)h
+(to)h(reading)e(and)g(writing)e(the)j(same)h(FITS)e(\014les)f(on)i
+(magnetic)g(disk.)136 4320 y Fc(\017)46 b Fi(Compressed)30
+b(FITS)f(\014les)h(in)f(gzip)h(or)g(Unix)f(COMPRESS)g(format)h(can)h(b)
+s(e)f(directly)f(read.)136 4499 y Fc(\017)46 b Fi(Output)28
+b(FITS)h(\014les)f(can)h(b)s(e)g(written)f(directly)g(in)f(compressed)i
+(gzip)g(format,)h(th)m(us)e(sa)m(ving)h(disk)f(space.)136
+4678 y Fc(\017)46 b Fi(FITS)26 b(table)g(columns)f(can)i(b)s(e)f
+(created,)i(mo)s(di\014ed,)e(or)g(deleted)g('on-the-\015y')h(as)g(the)g
+(table)f(is)f(op)s(ened)h(b)m(y)227 4791 y(CFITSIO.)32
+b(This)g(creates)j(a)e(virtual)f(FITS)h(\014le)f(con)m(taining)h(the)h
+(mo)s(di\014cations)d(that)j(is)f(then)g(op)s(ened)227
+4904 y(b)m(y)e(the)f(application)f(program.)136 5083
+y Fc(\017)46 b Fi(T)-8 b(able)28 b(ro)m(ws)f(ma)m(y)i(b)s(e)e
+(selected,)i(or)f(\014ltered)f(out,)h(on)g(the)g(\015y)f(when)g(the)h
+(table)g(is)f(op)s(ened)g(b)m(y)g(CFITSIO,)227 5196 y(based)f(on)h(an)f
+(arbitrary)g(user-sp)s(eci\014ed)e(expression.)38 b(Only)25
+b(ro)m(ws)i(for)f(whic)m(h)f(the)i(expression)e(ev)-5
+b(aluates)227 5309 y(to)31 b('TR)m(UE')g(are)g(retained)f(in)f(the)h
+(cop)m(y)i(of)e(the)h(table)f(that)h(is)e(op)s(ened)h(b)m(y)g(the)h
+(application)d(program.)136 5488 y Fc(\017)46 b Fi(Histogram)27
+b(images)g(ma)m(y)g(b)s(e)f(created)h(on)f(the)h(\015y)f(b)m(y)g
+(binning)e(the)i(v)-5 b(alues)26 b(in)f(table)i(columns,)f(resulting)
+227 5601 y(in)35 b(a)h(virtual)f(N-dimensional)e(FITS)j(image.)58
+b(The)35 b(application)f(program)i(then)g(only)f(sees)h(the)h(FITS)227
+5714 y(image)31 b(\(in)e(the)i(primary)d(arra)m(y\))k(instead)d(of)i
+(the)f(original)f(FITS)g(table.)1905 5942 y(15)p eop
+%%Page: 16 22
+16 21 bop 0 299 a Fi(16)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)0 555 y Fi(The)43
+b(latter)h(3)g(features)g(in)e(particular)g(add)h(v)m(ery)h(p)s(o)m(w)m
+(erful)e(data)i(pro)s(cessing)e(capabilities)g(directly)g(in)m(to)0
+668 y(CFITSIO,)29 b(and)g(hence)h(in)m(to)g(ev)m(ery)g(task)h(that)f
+(uses)g(CFITSIO)e(to)j(read)f(or)g(write)f(FITS)g(\014les.)39
+b(F)-8 b(or)31 b(example,)0 781 y(these)d(features)f(transform)f(a)i(v)
+m(ery)f(simple)e(program)i(that)h(just)f(copies)g(an)g(input)e(FITS)h
+(\014le)g(to)i(a)g(new)e(output)0 894 y(\014le)35 b(\(lik)m(e)g(the)h
+(`\014tscop)m(y')h(program)f(that)g(is)f(distributed)e(with)h
+(CFITSIO\))h(in)m(to)h(a)g(m)m(ultipurp)s(ose)d(FITS)i(\014le)0
+1007 y(pro)s(cessing)23 b(to)s(ol.)39 b(By)25 b(app)s(ending)e(fairly)f
+(simple)h(quali\014ers)g(on)m(to)i(the)g(name)g(of)g(the)g(input)e
+(FITS)h(\014le,)h(the)g(user)0 1120 y(can)37 b(p)s(erform)f(quite)h
+(complex)g(table)g(editing)f(op)s(erations)g(\(e.g.,)41
+b(create)e(new)d(columns,)i(or)f(\014lter)g(out)g(ro)m(ws)0
+1233 y(in)f(a)h(table\))g(or)g(create)h(FITS)f(images)g(b)m(y)g
+(binning)c(or)k(histogramming)f(the)h(v)-5 b(alues)36
+b(in)g(table)h(columns.)59 b(In)0 1346 y(addition,)31
+b(these)i(functions)d(ha)m(v)m(e)k(b)s(een)d(co)s(ded)h(using)e(new)i
+(state-of-the)i(art)f(algorithms)e(that)i(are,)g(in)e(some)0
+1458 y(cases,)h(10)f(-)f(100)i(times)e(faster)h(than)f(previous)f
+(widely)f(used)i(implemen)m(tations.)0 1619 y(Before)k(describing)d
+(the)j(complete)g(syn)m(tax)g(for)f(the)h(extended)f(FITS)g(\014le)f
+(names)h(in)f(the)i(next)g(section,)g(here)0 1732 y(are)d(a)g(few)f
+(examples)g(of)g(FITS)g(\014le)f(names)i(that)f(giv)m(e)h(a)g(quic)m(k)
+f(o)m(v)m(erview)h(of)g(the)f(allo)m(w)m(ed)g(syn)m(tax:)136
+1960 y Fc(\017)46 b Fe('myfile.fits')p Fi(:)37 b(the)31
+b(simplest)d(case)k(of)e(a)h(FITS)f(\014le)f(on)i(disk)d(in)i(the)g
+(curren)m(t)g(directory)-8 b(.)136 2137 y Fc(\017)46
+b Fe('myfile.imh')p Fi(:)37 b(op)s(ens)28 b(an)h(IRAF)g(format)g(image)
+h(\014le)e(and)g(con)m(v)m(erts)i(it)f(on)g(the)g(\015y)f(in)m(to)h(a)g
+(temp)s(orary)227 2250 y(FITS)h(format)h(image)f(in)f(memory)i(whic)m
+(h)e(can)h(then)g(b)s(e)g(read)g(with)f(an)m(y)i(other)g(CFITSIO)e
+(routine.)136 2427 y Fc(\017)46 b Fe(rawfile.dat[i512,512])p
+Fi(:)35 b(op)s(ens)30 b(a)g(ra)m(w)h(binary)d(data)j(arra)m(y)g(\(a)g
+(512)g(x)f(512)i(short)e(in)m(teger)g(arra)m(y)h(in)227
+2540 y(this)h(case\))j(and)d(con)m(v)m(erts)j(it)d(on)h(the)g(\015y)g
+(in)m(to)g(a)g(temp)s(orary)g(FITS)f(format)h(image)h(in)d(memory)i
+(whic)m(h)227 2652 y(can)e(then)f(b)s(e)g(read)g(with)f(an)m(y)i(other)
+f(CFITSIO)f(routine.)136 2830 y Fc(\017)46 b Fe(myfile.fits.gz)p
+Fi(:)d(if)32 b(this)g(is)g(the)h(name)g(of)h(a)f(new)g(output)g
+(\014le,)g(the)g('.gz')i(su\016x)d(will)e(cause)k(it)f(to)h(b)s(e)227
+2942 y(compressed)c(in)f(gzip)h(format)h(when)e(it)h(is)g(written)f(to)
+i(disk.)136 3120 y Fc(\017)46 b Fe('myfile.fits.gz[events,)c(2]')p
+Fi(:)59 b(op)s(ens)40 b(and)f(uncompresses)g(the)i(gzipp)s(ed)d(\014le)
+i(m)m(y\014le.\014ts)f(then)227 3232 y(mo)m(v)m(es)34
+b(to)f(the)f(extension)g(whic)m(h)f(has)g(the)i(k)m(eyw)m(ords)f
+(EXTNAME)g(=)g('EVENTS')g(and)g(EXTVER)f(=)227 3345 y(2.)136
+3522 y Fc(\017)46 b Fe('-')p Fi(:)40 b(a)31 b(dash)f(\(min)m(us)f
+(sign\))h(signi\014es)e(that)j(the)g(input)e(\014le)g(is)h(to)h(b)s(e)f
+(read)g(from)g(the)h(stdin)e(\014le)g(stream,)227 3635
+y(or)i(that)g(the)f(output)g(\014le)g(is)f(to)i(b)s(e)f(written)f(to)i
+(the)g(stdout)f(stream.)136 3812 y Fc(\017)46 b Fe
+('ftp://legacy.gsfc.nasa.g)o(ov/t)o(est/)o(vel)o(a.fi)o(ts')p
+Fi(:)33 b(FITS)28 b(\014les)f(in)g(an)m(y)h(ftp)g(arc)m(hiv)m(e)h(site)
+f(on)g(the)227 3925 y(in)m(ternet)i(ma)m(y)h(b)s(e)f(directly)f(op)s
+(ened)h(with)f(read-only)h(access.)136 4102 y Fc(\017)46
+b Fe('http://legacy.gsfc.nasa.)o(gov/)o(soft)o(war)o(e/te)o(st.f)o(its)
+o(')p Fi(:)d(an)m(y)34 b(v)-5 b(alid)33 b(URL)h(to)h(a)f(FITS)g(\014le)
+f(on)227 4215 y(the)e(W)-8 b(eb)31 b(ma)m(y)g(b)s(e)f(op)s(ened)f(with)
+g(read-only)h(access.)136 4392 y Fc(\017)46 b Fe
+('root://legacy.gsfc.nasa.)o(gov/)o(test)o(/ve)o(la.f)o(its')o
+Fi(:)32 b(similar)21 b(to)j(ftp)f(access)i(except)g(that)f(it)f(pro-)
+227 4505 y(vides)29 b(write)h(as)g(w)m(ell)f(as)i(read)f(access)h(to)g
+(the)f(\014les)g(across)g(the)h(net)m(w)m(ork.)41 b(This)28
+b(uses)i(the)h(ro)s(ot)f(proto)s(col)227 4618 y(dev)m(elop)s(ed)g(at)h
+(CERN.)136 4795 y Fc(\017)46 b Fe('shmem://h2[events]')p
+Fi(:)35 b(op)s(ens)30 b(the)g(FITS)f(\014le)h(in)f(a)h(shared)f(memory)
+i(segmen)m(t)g(and)e(mo)m(v)m(es)j(to)f(the)227 4908
+y(EVENTS)f(extension.)136 5085 y Fc(\017)46 b Fe('mem://')p
+Fi(:)52 b(creates)39 b(a)e(scratc)m(h)i(output)d(\014le)h(in)e(core)j
+(computer)f(memory)-8 b(.)62 b(The)37 b(resulting)e('\014le')i(will)227
+5198 y(disapp)s(ear)24 b(when)g(the)i(program)f(exits,)h(so)g(this)e
+(is)h(mainly)e(useful)h(for)h(testing)h(purp)s(oses)d(when)i(one)g(do)s
+(es)227 5311 y(not)31 b(w)m(an)m(t)g(a)g(p)s(ermanen)m(t)f(cop)m(y)h
+(of)f(the)h(output)f(\014le.)136 5488 y Fc(\017)46 b
+Fe('myfile.fits[3;)e(Images\(10\)]')p Fi(:)49 b(op)s(ens)35
+b(a)i(cop)m(y)g(of)f(the)g(image)h(con)m(tained)f(in)f(the)i(10th)f(ro)
+m(w)h(of)227 5601 y(the)26 b('Images')i(column)c(in)h(the)h(binary)f
+(table)g(in)g(the)h(3th)h(extension)e(of)h(the)h(FITS)e(\014le.)38
+b(The)26 b(application)227 5714 y(just)k(sees)h(this)e(single)g(image)i
+(as)f(the)h(primary)d(arra)m(y)-8 b(.)p eop
+%%Page: 17 23
+17 22 bop 0 299 a Fg(4.1.)72 b(O)m(VER)-10 b(VIEW)3086
+b Fi(17)136 555 y Fc(\017)46 b Fe('myfile.fits[1:512:2,)c(1:512:2]')p
+Fi(:)49 b(op)s(ens)35 b(a)h(section)g(of)f(the)h(input)e(image)i
+(ranging)f(from)g(the)227 668 y(1st)26 b(to)g(the)f(512th)h(pixel)e(in)
+f(X)j(and)e(Y,)i(and)e(selects)i(ev)m(ery)f(second)h(pixel)d(in)h(b)s
+(oth)g(dimensions,)g(resulting)227 781 y(in)29 b(a)i(256)h(x)e(256)i
+(pixel)c(image)j(in)e(this)g(case.)136 981 y Fc(\017)46
+b Fe('myfile.fits[EVENTS][col)41 b(Rad)47 b(=)h(sqrt\(X**2)d(+)j
+(Y**2\)]')p Fi(:)38 b(creates)30 b(and)f(op)s(ens)f(a)h(temp)s(orary)
+227 1094 y(\014le)e(on)g(the)g(\015y)g(\(in)f(memory)h(or)g(on)h
+(disk\))e(that)h(is)g(iden)m(tical)f(to)i(m)m(y\014le.\014ts)e(except)i
+(that)g(it)f(will)e(con)m(tain)227 1207 y(a)41 b(new)f(column)f(in)h
+(the)g(EVENTS)g(extension)g(called)g('Rad')h(whose)f(v)-5
+b(alue)40 b(is)f(computed)i(using)e(the)227 1320 y(indicated)29
+b(expresson)h(whic)m(h)f(is)h(a)g(function)f(of)i(the)g(v)-5
+b(alues)29 b(in)g(the)i(X)f(and)g(Y)h(columns.)136 1520
+y Fc(\017)46 b Fe('myfile.fits[EVENTS][PHA)41 b(>)48
+b(5]')p Fi(:)37 b(creates)27 b(and)e(op)s(ens)g(a)h(temp)s(orary)f
+(FITS)g(\014les)f(that)i(is)f(iden)m(ti-)227 1633 y(cal)k(to)h('m)m
+(y\014le.\014ts')e(except)i(that)f(the)g(EVENTS)f(table)h(will)d(only)i
+(con)m(tain)h(the)g(ro)m(ws)g(that)h(ha)m(v)m(e)g(v)-5
+b(alues)227 1746 y(of)28 b(the)g(PHA)f(column)f(greater)j(than)e(5.)40
+b(In)27 b(general,)h(an)m(y)g(arbitrary)e(b)s(o)s(olean)h(expression)f
+(using)g(a)i(C)f(or)227 1859 y(F)-8 b(ortran-lik)m(e)29
+b(syn)m(tax,)g(whic)m(h)e(ma)m(y)i(com)m(bine)f(AND)h(and)f(OR)f(op)s
+(erators,)i(ma)m(y)g(b)s(e)f(used)f(to)i(select)g(ro)m(ws)227
+1972 y(from)h(a)h(table.)136 2172 y Fc(\017)46 b Fe
+('myfile.fits[EVENTS][bin)41 b(\(X,Y\)=1,2048,4]')p Fi(:)46
+b(creates)37 b(a)e(temp)s(orary)g(FITS)f(primary)f(arra)m(y)227
+2285 y(image)c(whic)m(h)f(is)g(computed)g(on)h(the)g(\015y)f(b)m(y)g
+(binning)e(\(i.e,)k(computing)d(the)i(2-dimensional)e(histogram\))227
+2398 y(of)34 b(the)f(v)-5 b(alues)33 b(in)f(the)i(X)g(and)e(Y)i
+(columns)e(of)i(the)f(EVENTS)g(extension.)49 b(In)33
+b(this)f(case)j(the)e(X)h(and)f(Y)227 2511 y(co)s(ordinates)g(range)h
+(from)f(1)h(to)g(2048)h(and)e(the)h(image)f(pixel)f(size)h(is)g(4)g
+(units)f(in)g(b)s(oth)h(dimensions,)f(so)227 2624 y(the)f(resulting)d
+(image)j(is)e(512)j(x)e(512)i(pixels)d(in)g(size.)136
+2824 y Fc(\017)46 b Fi(The)31 b(\014nal)f(example)i(com)m(bines)f(man)m
+(y)g(of)h(these)g(feature)g(in)m(to)f(one)h(complex)f(expression)f
+(\(it)i(is)e(brok)m(en)227 2937 y(in)m(to)h(sev)m(eral)f(lines)f(for)h
+(clarit)m(y\):)323 3206 y Fe('ftp://legacy.gsfc.nasa)o(.gov)o(/dat)o
+(a/s)o(ampl)o(e.fi)o(ts.)o(gz[E)o(VENT)o(S])370 3319
+y([col)47 b(phacorr)f(=)h(pha)g(*)h(1.1)f(-)g(0.3][phacorr)e(>=)i(5.0)g
+(&&)g(phacorr)f(<=)h(14.0])370 3432 y([bin)g(\(X,Y\)=32]')227
+3701 y Fi(In)37 b(this)g(case,)k(CFITSIO)36 b(\(1\))j(copies)f(and)f
+(uncompresses)g(the)h(FITS)f(\014le)g(from)g(the)h(ftp)f(site)h(on)g
+(the)227 3814 y(legacy)f(mac)m(hine,)h(\(2\))f(mo)m(v)m(es)g(to)g(the)g
+('EVENTS')f(extension,)h(\(3\))g(calculates)g(a)f(new)g(column)f
+(called)227 3927 y('phacorr',)30 b(\(4\))f(selects)g(the)g(ro)m(ws)g
+(in)e(the)i(table)g(that)g(ha)m(v)m(e)h(phacorr)e(in)f(the)i(range)g(5)
+g(to)h(14,)g(and)e(\014nally)227 4040 y(\(5\))35 b(bins)c(the)i
+(remaining)e(ro)m(ws)i(on)h(the)f(X)g(and)g(Y)g(column)f(co)s
+(ordinates,)i(using)d(a)j(pixel)d(size)i(=)g(32)h(to)227
+4153 y(create)d(a)f(2D)g(image.)41 b(All)28 b(this)g(pro)s(cessing)g
+(is)h(completely)g(transparen)m(t)g(to)i(the)e(application)f(program,)
+227 4266 y(whic)m(h)h(simply)f(sees)j(the)g(\014nal)e(2-D)i(image)g(in)
+e(the)h(primary)f(arra)m(y)i(of)f(the)h(op)s(ened)f(\014le.)0
+4538 y(The)c(full)f(extended)i(CFITSIO)e(FITS)h(\014le)g(name)h(can)g
+(con)m(tain)g(sev)m(eral)g(di\013eren)m(t)g(comp)s(onen)m(ts)g(dep)s
+(ending)d(on)0 4651 y(the)31 b(con)m(text.)42 b(These)30
+b(comp)s(onen)m(ts)h(are)g(describ)s(ed)d(in)h(the)h(follo)m(wing)f
+(sections:)0 4924 y Fe(When)47 b(creating)e(a)j(new)f(file:)143
+5036 y(filetype://BaseFilename\(t)o(empl)o(ate)o(Name)o(\))0
+5262 y(When)g(opening)e(an)j(existing)d(primary)h(array)g(or)i(image)e
+(HDU:)143 5375 y(filetype://BaseFilename\(o)o(utNa)o(me\))o([HDU)o
+(loca)o(tio)o(n][I)o(mage)o(Sec)o(tion)o(])0 5601 y(When)h(opening)e
+(an)j(existing)d(table)i(HDU:)143 5714 y(filetype://BaseFilename\(o)o
+(utNa)o(me\))o([HDU)o(loca)o(tio)o(n][c)o(olFi)o(lte)o(r][r)o(owFi)o
+(lte)o(r][b)o(inSp)o(ec])p eop
+%%Page: 18 24
+18 23 bop 0 299 a Fi(18)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)0 555 y Fi(The)41
+b(\014let)m(yp)s(e,)j(BaseFilename,)h(outName,)g(HDUlo)s(cation,)g(and)
+c(ImageSection)h(comp)s(onen)m(ts,)j(if)c(presen)m(t,)0
+668 y(m)m(ust)30 b(b)s(e)g(giv)m(en)h(in)e(that)i(order,)g(but)f(the)g
+(colFilter,)g(ro)m(wFilter,)h(and)e(binSp)s(ec)g(sp)s(eci\014ers)f(ma)m
+(y)k(follo)m(w)d(in)h(an)m(y)0 781 y(order.)39 b(Regardless)28
+b(of)h(the)f(order,)g(ho)m(w)m(ev)m(er,)i(the)f(colFilter)e(sp)s
+(eci\014er,)g(if)g(presen)m(t,)i(will)d(b)s(e)h(pro)s(cessed)h(\014rst)
+f(b)m(y)0 894 y(CFITSIO,)i(follo)m(w)m(ed)h(b)m(y)g(the)h(ro)m(wFilter)
+f(sp)s(eci\014er,)f(and)g(\014nally)g(b)m(y)h(the)g(binSp)s(ec)e(sp)s
+(eci\014er.)0 1221 y Fd(4.2)135 b(Filet)l(yp)t(e)0 1471
+y Fi(The)37 b(t)m(yp)s(e)g(of)g(\014le)f(determines)g(the)h(medium)e
+(on)i(whic)m(h)f(the)h(\014le)f(is)h(lo)s(cated)g(\(e.g.,)j(disk)c(or)h
+(net)m(w)m(ork\))h(and,)0 1584 y(hence,)f(whic)m(h)d(in)m(ternal)g
+(device)h(driv)m(er)f(is)g(used)g(b)m(y)h(CFITSIO)f(to)i(read)f(and/or)
+g(write)f(the)h(\014le.)55 b(Curren)m(tly)0 1697 y(supp)s(orted)29
+b(t)m(yp)s(es)h(are)382 1913 y Fe(file://)93 b(-)48 b(file)e(on)i
+(local)e(magnetic)g(disk)g(\(default\))382 2026 y(ftp://)141
+b(-)48 b(a)f(readonly)f(file)g(accessed)g(with)h(the)g(anonymous)e(FTP)
+i(protocol.)907 2139 y(It)g(also)g(supports)93 b
+(ftp://username:password@)o(host)o(nam)o(e/..)o(.)907
+2252 y(for)47 b(accessing)e(password-protected)e(ftp)k(sites.)382
+2365 y(http://)93 b(-)48 b(a)f(readonly)f(file)g(accessed)g(with)h(the)
+g(HTTP)f(protocol.)93 b(It)907 2478 y(does)46 b(not)95
+b(support)46 b(username:password)d(like)k(the)g(ftp)f(driver.)907
+2591 y(Proxy)g(HTTP)h(servers)f(are)h(supported)e(using)h(the)h
+(http_proxy)907 2704 y(environment)e(variable.)382 2817
+y(root://)93 b(-)48 b(uses)e(the)h(CERN)g(root)g(protocol)e(for)i
+(writing)f(as)h(well)g(as)907 2930 y(reading)f(files)g(over)h(the)g
+(network.)382 3042 y(shmem://)e(-)j(opens)e(or)h(creates)f(a)i(file)e
+(which)h(persists)e(in)i(the)g(computer's)907 3155 y(shared)f(memory.)
+382 3268 y(mem://)141 b(-)48 b(opens)e(a)i(temporary)d(file)i(in)g
+(core)f(memory.)94 b(The)47 b(file)907 3381 y(disappears)e(when)h(the)h
+(program)f(exits)h(so)g(this)f(is)i(mainly)907 3494 y(useful)e(for)h
+(test)f(purposes)g(when)h(a)g(permanent)e(output)h(file)907
+3607 y(is)h(not)g(desired.)0 3824 y Fi(If)35 b(the)h(\014let)m(yp)s(e)f
+(is)f(not)i(sp)s(eci\014ed,)g(then)f(t)m(yp)s(e)h(\014le://)g(is)e
+(assumed.)56 b(The)35 b(double)f(slashes)h('//')i(are)f(optional)0
+3937 y(and)30 b(ma)m(y)h(b)s(e)e(omitted)i(in)e(most)i(cases.)0
+4220 y Fb(4.2.1)112 b(Notes)37 b(ab)s(out)i(HTTP)d(pro)m(xy)i(serv)m
+(ers)0 4439 y Fi(A)32 b(pro)m(xy)g(HTTP)f(serv)m(er)h(ma)m(y)h(b)s(e)e
+(used)g(b)m(y)h(de\014ning)e(the)i(address)f(\(URL\))i(and)e(p)s(ort)g
+(n)m(um)m(b)s(er)g(of)h(the)g(pro)m(xy)0 4552 y(serv)m(er)f(with)e(the)
+h(h)m(ttp)p 801 4552 28 4 v 33 w(pro)m(xy)g(en)m(vironmen)m(t)g(v)-5
+b(ariable.)40 b(F)-8 b(or)31 b(example)191 4769 y Fe(setenv)46
+b(http_proxy)f(http://heasarc.gsfc.nasa)o(.gov)o(:312)o(8)0
+4985 y Fi(will)35 b(cause)j(CFITSIO)f(to)h(use)g(p)s(ort)f(3128)i(on)f
+(the)g(heasarc)g(pro)m(xy)g(serv)m(er)g(whenev)m(er)g(reading)f(a)h
+(FITS)f(\014le)0 5098 y(with)29 b(HTTP)-8 b(.)0 5382
+y Fb(4.2.2)112 b(Notes)37 b(ab)s(out)i(the)e(ro)s(ot)g(\014let)m(yp)s
+(e)0 5601 y Fi(The)20 b(original)g(ro)s(otd)g(serv)m(er)h(can)h(b)s(e)e
+(obtained)g(from:)36 b Fe(ftp://root.cern.ch/root)o(/roo)o(td.t)o(ar.)o
+(gz)15 b Fi(but,)22 b(for)0 5714 y(it)32 b(to)i(w)m(ork)f(correctly)g
+(with)e(CFITSIO)h(one)h(has)f(to)i(use)e(a)i(mo)s(di\014ed)c(v)m
+(ersion)j(whic)m(h)e(supp)s(orts)g(a)i(command)p eop
+%%Page: 19 25
+19 24 bop 0 299 a Fg(4.2.)72 b(FILETYPE)3128 b Fi(19)0
+555 y(to)41 b(return)d(the)j(length)e(of)h(the)g(\014le.)69
+b(This)38 b(mo)s(di\014ed)f(v)m(ersion)j(is)f(a)m(v)-5
+b(ailable)39 b(in)g(ro)s(otd)g(sub)s(directory)f(in)h(the)0
+668 y(CFITSIO)29 b(ftp)h(area)h(at)286 928 y Fe
+(ftp://legacy.gsfc.nasa.gov)o(/so)o(ftwa)o(re/f)o(its)o(io/c)o(/roo)o
+(t/r)o(ootd)o(.tar)o(.gz)o(.)0 1187 y Fi(This)i(small)f(serv)m(er)j(is)
+f(started)g(either)g(b)m(y)h(inetd)e(when)g(a)i(clien)m(t)f(requests)g
+(a)h(connection)g(to)g(a)f(ro)s(otd)h(serv)m(er)0 1300
+y(or)30 b(b)m(y)g(hand)f(\(i.e.)41 b(from)30 b(the)g(command)g(line\).)
+40 b(The)29 b(ro)s(otd)h(serv)m(er)h(w)m(orks)f(with)f(the)h(R)m(OOT)g
+(TNetFile)g(class.)0 1413 y(It)g(allo)m(ws)e(remote)j(access)f(to)h(R)m
+(OOT)e(database)h(\014les)e(in)g(either)h(read)h(or)f(write)g(mo)s(de.)
+40 b(By)30 b(default)e(TNetFile)0 1526 y(assumes)38 b(p)s(ort)g(432)h
+(\(whic)m(h)e(requires)g(ro)s(otd)h(to)h(b)s(e)f(started)h(as)f(ro)s
+(ot\).)65 b(T)-8 b(o)39 b(run)e(ro)s(otd)h(via)g(inetd)f(add)h(the)0
+1639 y(follo)m(wing)29 b(line)g(to)i(/etc/services:)95
+1898 y Fe(rootd)238 b(432/tcp)0 2158 y Fi(and)30 b(to)h
+(/etc/inetd.conf,)h(add)e(the)g(follo)m(wing)f(line:)95
+2417 y Fe(rootd)47 b(stream)f(tcp)h(nowait)f(root)h
+(/user/rdm/root/bin/root)o(d)42 b(rootd)k(-i)0 2677 y
+Fi(F)-8 b(orce)34 b(inetd)d(to)j(reread)e(its)g(conf)g(\014le)g(with)f
+("kill)f(-HUP)j(<pid)e(inetd>".)46 b(Y)-8 b(ou)33 b(can)g(also)f(start)
+h(ro)s(otd)g(b)m(y)f(hand)0 2790 y(running)i(directly)h(under)f(y)m
+(our)j(priv)-5 b(ate)36 b(accoun)m(t)h(\(no)g(ro)s(ot)g(system)f
+(privileges)e(needed\).)59 b(F)-8 b(or)37 b(example)f(to)0
+2903 y(start)f(ro)s(otd)e(listening)f(on)i(p)s(ort)f(5151)j(just)d(t)m
+(yp)s(e:)49 b Fe(rootd)d(-p)h(5151)33 b Fi(Notice:)49
+b(no)34 b(&)f(is)g(needed.)51 b(Ro)s(otd)35 b(will)0
+3016 y(go)c(in)m(to)g(bac)m(kground)f(b)m(y)g(itself.)95
+3275 y Fe(Rootd)47 b(arguments:)191 3388 y(-i)763 b(says)47
+b(we)g(were)f(started)g(by)h(inetd)191 3501 y(-p)g(port#)476
+b(specifies)45 b(a)j(different)d(port)i(to)g(listen)f(on)191
+3614 y(-d)h(level)476 b(level)46 b(of)i(debug)e(info)h(written)e(to)j
+(syslog)1050 3727 y(0)f(=)h(no)f(debug)f(\(default\))1050
+3840 y(1)h(=)h(minimum)1050 3953 y(2)f(=)h(medium)1050
+4066 y(3)f(=)h(maximum)0 4325 y Fi(Ro)s(otd)29 b(can)f(also)g(b)s(e)g
+(con\014gured)g(for)g(anon)m(ymous)g(usage)h(\(lik)m(e)f(anon)m(ymous)g
+(ftp\).)40 b(T)-8 b(o)29 b(setup)f(ro)s(otd)g(to)h(accept)0
+4438 y(anon)m(ymous)h(logins)f(do)i(the)f(follo)m(wing)f(\(while)g(b)s
+(eing)g(logged)i(in)e(as)h(ro)s(ot\):)143 4698 y Fe(-)48
+b(Add)f(the)f(following)g(line)g(to)i(/etc/passwd:)239
+4924 y(rootd:*:71:72:Anonymous)41 b(rootd:/var/spool/rootd:/b)o(in/)o
+(fals)o(e)239 5149 y(where)46 b(you)h(may)g(modify)f(the)h(uid,)f(gid)h
+(\(71,)g(72\))g(and)g(the)g(home)f(directory)239 5262
+y(to)h(suite)f(your)h(system.)143 5488 y(-)h(Add)f(the)f(following)g
+(line)g(to)i(/etc/group:)239 5714 y(rootd:*:72:rootd)p
+eop
+%%Page: 20 26
+20 25 bop 0 299 a Fi(20)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)239 668 y
+Fe(where)46 b(the)h(gid)g(must)f(match)h(the)g(gid)g(in)g(/etc/passwd.)
+143 894 y(-)h(Create)e(the)h(directories:)239 1120 y(mkdir)f
+(/var/spool/rootd)239 1233 y(mkdir)g(/var/spool/rootd/tmp)239
+1346 y(chmod)g(777)h(/var/spool/rootd/tmp)239 1571 y(Where)f
+(/var/spool/rootd)d(must)k(match)f(the)h(rootd)g(home)f(directory)g(as)
+239 1684 y(specified)f(in)i(the)g(rootd)f(/etc/passwd)f(entry.)143
+1910 y(-)j(To)f(make)f(writeable)g(directories)e(for)j(anonymous)f(do,)
+h(for)f(example:)239 2136 y(mkdir)g(/var/spool/rootd/pub)239
+2249 y(chown)g(rootd:rootd)f(/var/spool/rootd/pub)0 2492
+y Fi(That's)d(all.)74 b(Sev)m(eral)42 b(additional)e(remarks:)64
+b(y)m(ou)42 b(can)g(login)f(to)i(an)f(anon)m(ymous)f(serv)m(er)i
+(either)e(with)g(the)0 2605 y(names)31 b("anon)m(ymous")h(or)f("ro)s
+(otd".)43 b(The)31 b(passw)m(ord)f(should)f(b)s(e)i(of)g(t)m(yp)s(e)g
+(user@host.do.main.)42 b(Only)29 b(the)i(@)0 2718 y(is)d(enforced)g
+(for)h(the)f(time)h(b)s(eing.)38 b(In)28 b(anon)m(ymous)h(mo)s(de)f
+(the)g(top)h(of)g(the)g(\014le)e(tree)j(is)d(set)i(to)h(the)e(ro)s(otd)
+h(home)0 2831 y(directory)-8 b(,)38 b(therefore)f(only)e(\014les)h(b)s
+(elo)m(w)f(the)i(home)f(directory)g(can)g(b)s(e)g(accessed.)60
+b(Anon)m(ymous)36 b(mo)s(de)g(only)0 2944 y(w)m(orks)30
+b(when)g(the)g(serv)m(er)h(is)e(started)i(via)f(inetd.)0
+3232 y Fb(4.2.3)112 b(Notes)37 b(ab)s(out)i(the)e(shmem)g(\014let)m(yp)
+s(e:)0 3451 y Fi(Shared)d(memory)h(\014les)f(are)h(curren)m(tly)f(supp)
+s(orted)f(on)i(most)h(Unix)e(platforms,)h(where)g(the)g(shared)f
+(memory)0 3564 y(segmen)m(ts)d(are)g(managed)g(b)m(y)f(the)g(op)s
+(erating)g(system)h(k)m(ernel)e(and)h(`liv)m(e')g(indep)s(enden)m(tly)d
+(of)k(pro)s(cesses.)40 b(They)0 3677 y(are)34 b(not)g(deleted)g(\(b)m
+(y)g(default\))f(when)g(the)h(pro)s(cess)f(whic)m(h)g(created)i(them)f
+(terminates,)g(although)g(they)g(will)0 3790 y(disapp)s(ear)d(if)h(the)
+i(system)f(is)f(reb)s(o)s(oted.)49 b(Applications)31
+b(can)j(create)h(shared)d(memory)h(\014les)f(in)g(CFITSIO)g(b)m(y)0
+3903 y(calling:)143 4146 y Fe(fit_create_file\(&fitsfile)o(ptr,)41
+b("shmem://h2",)j(&status\);)0 4389 y Fi(where)22 b(the)g(ro)s(ot)h
+(`\014le')f(names)g(are)g(curren)m(tly)g(restricted)g(to)h(b)s(e)e
+('h0',)k('h1',)f('h2',)h('h3',)f(etc.,)i(up)21 b(to)i(a)g(maxim)m(umn)0
+4502 y(n)m(um)m(b)s(er)d(de\014ned)f(b)m(y)i(the)g(the)g(v)-5
+b(alue)21 b(of)g(SHARED)p 1746 4502 28 4 v 33 w(MAXSEG)g(\(equal)g(to)g
+(16)h(b)m(y)f(default\).)37 b(This)19 b(is)h(a)h(protot)m(yp)s(e)0
+4615 y(implemen)m(tation)27 b(of)i(the)g(shared)f(memory)g(in)m
+(terface)h(and)f(a)h(more)g(robust)f(in)m(terface,)i(whic)m(h)d(will)f
+(ha)m(v)m(e)k(few)m(er)0 4728 y(restrictions)f(on)h(the)h(n)m(um)m(b)s
+(er)e(of)i(\014les)e(and)h(on)g(their)f(names,)i(ma)m(y)g(b)s(e)f(dev)m
+(elop)s(ed)f(in)g(the)i(future.)0 4888 y(When)23 b(op)s(ening)g(an)g
+(already)g(existing)g(FITS)g(\014le)g(in)f(shared)h(memory)h(one)g
+(calls)e(the)i(usual)f(CFITSIO)f(routine:)143 5132 y
+Fe(fits_open_file\(&fitsfilep)o(tr,)41 b("shmem://h7",)j(mode,)j
+(&status\))0 5375 y Fi(The)26 b(\014le)g(mo)s(de)h(can)g(b)s(e)f(READ)m
+(WRITE)h(or)g(READONL)-8 b(Y)28 b(just)e(as)h(with)e(disk)h(\014les.)38
+b(More)28 b(than)e(one)h(pro)s(cess)0 5488 y(can)35 b(op)s(erate)g(on)f
+(READONL)-8 b(Y)35 b(mo)s(de)f(\014les)g(at)h(the)f(same)h(time.)53
+b(CFITSIO)33 b(supp)s(orts)f(prop)s(er)h(\014le)h(lo)s(c)m(king)0
+5601 y(\(b)s(oth)27 b(in)g(READONL)-8 b(Y)29 b(and)e(READ)m(WRITE)h(mo)
+s(des\),)h(so)f(calls)f(to)h(\014ts)p 2572 5601 V 33
+w(op)s(en)p 2795 5601 V 32 w(\014le)f(ma)m(y)h(b)s(e)f(lo)s(c)m(k)m(ed)
+i(out)f(un)m(til)0 5714 y(another)j(other)f(pro)s(cess)g(closes)h(the)f
+(\014le.)p eop
+%%Page: 21 27
+21 26 bop 0 299 a Fg(4.3.)72 b(BASE)30 b(FILENAME)2830
+b Fi(21)0 555 y(When)30 b(an)g(application)f(is)g(\014nished)f
+(accessing)j(a)f(FITS)g(\014le)f(in)g(a)i(shared)e(memory)h(segmen)m
+(t,)i(it)e(ma)m(y)h(close)f(it)0 668 y(\(and)k(the)g(\014le)f(will)e
+(remain)h(in)h(the)h(system\))g(with)f(\014ts)p 1955
+668 28 4 v 32 w(close)p 2174 668 V 33 w(\014le,)h(or)g(delete)g(it)g
+(with)e(\014ts)p 3191 668 V 33 w(delete)p 3456 668 V
+33 w(\014le.)50 b(Ph)m(ys-)0 781 y(ical)34 b(deletion)g(is)g(p)s(ostp)s
+(oned)f(un)m(til)h(the)h(last)f(pro)s(cess)h(calls)f
+(\013clos/\013delt.)54 b(\014ts)p 2801 781 V 32 w(delete)p
+3065 781 V 33 w(\014le)34 b(tries)h(to)g(obtain)g(a)0
+894 y(READ)m(WRITE)f(lo)s(c)m(k)f(on)g(the)g(\014le)g(to)h(b)s(e)e
+(deleted,)i(th)m(us)f(it)g(can)g(b)s(e)g(blo)s(c)m(k)m(ed)g(if)f(the)i
+(ob)5 b(ject)34 b(w)m(as)f(not)h(op)s(ened)0 1007 y(in)29
+b(READ)m(WRITE)i(mo)s(de.)0 1167 y(A)i(shared)f(memory)h(managemen)m(t)
+h(utilit)m(y)d(program)i(called)f(`smem',)h(is)f(included)e(with)i(the)
+h(CFITSIO)e(dis-)0 1280 y(tribution.)37 b(It)27 b(can)g(b)s(e)f(built)f
+(b)m(y)i(t)m(yping)f(`mak)m(e)i(smem';)g(then)f(t)m(yp)s(e)g(`smem)f
+(-h')h(to)h(get)g(a)f(list)e(of)i(v)-5 b(alid)25 b(options.)0
+1393 y(Executing)36 b(smem)g(without)f(an)m(y)i(options)f(causes)g(it)g
+(to)h(list)e(all)g(the)i(shared)e(memory)i(segmen)m(ts)g(curren)m(tly)0
+1506 y(residing)31 b(in)h(the)h(system)h(and)e(managed)i(b)m(y)f(the)h
+(shared)e(memory)h(driv)m(er.)48 b(T)-8 b(o)34 b(get)g(a)g(list)e(of)h
+(all)f(the)i(shared)0 1619 y(memory)c(ob)5 b(jects,)32
+b(run)d(the)h(system)h(utilit)m(y)d(program)i(`ip)s(cs)g([-a]'.)0
+1978 y Fd(4.3)135 b(Base)46 b(Filename)0 2233 y Fi(The)31
+b(base)g(\014lename)g(is)f(the)i(name)f(of)h(the)f(\014le)g(optionally)
+e(including)f(the)k(director/sub)s(directory)d(path,)j(and)0
+2346 y(in)d(the)i(case)g(of)g(`ftp',)f(`h)m(ttp',)i(and)d(`ro)s(ot')j
+(\014let)m(yp)s(es,)d(the)i(mac)m(hine)f(iden)m(ti\014er.)39
+b(Examples:)191 2628 y Fe(myfile.fits)191 2741 y(!data.fits)191
+2854 y(/data/myfile.fits)191 2967 y(fits.gsfc.nasa.gov/ftp/s)o(ampl)o
+(eda)o(ta/m)o(yfil)o(e.f)o(its.)o(gz)0 3248 y Fi(When)29
+b(creating)g(a)g(new)f(output)h(\014le)f(on)h(magnetic)g(disk)e(\(of)j
+(t)m(yp)s(e)f(\014le://\))g(if)f(the)h(base)g(\014lename)f(b)s(egins)f
+(with)0 3361 y(an)34 b(exclamation)h(p)s(oin)m(t)e(\(!\))54
+b(then)34 b(an)m(y)g(existing)g(\014le)f(with)g(that)i(same)g(basename)
+g(will)d(b)s(e)h(deleted)h(prior)f(to)0 3474 y(creating)h(the)g(new)g
+(FITS)f(\014le.)50 b(Otherwise)33 b(if)g(the)h(\014le)f(to)h(b)s(e)g
+(created)h(already)e(exists,)i(then)e(CFITSIO)g(will)0
+3587 y(return)g(an)h(error)f(and)g(will)f(not)i(o)m(v)m(erwrite)g(the)g
+(existing)f(\014le.)51 b(Note)35 b(that)g(the)f(exclamation)g(p)s(oin)m
+(t,)g(')10 b(!',)36 b(is)d(a)0 3700 y(sp)s(ecial)26 b(UNIX)i(c)m
+(haracter,)j(so)d(if)e(it)i(is)f(used)g(on)g(the)h(command)g(line)e
+(rather)i(than)f(en)m(tered)h(at)h(a)f(task)h(prompt,)0
+3813 y(it)i(m)m(ust)g(b)s(e)g(preceded)g(b)m(y)h(a)g(bac)m(kslash)f(to)
+h(force)g(the)g(UNIX)g(shell)d(to)j(pass)f(it)h(v)m(erbatim)f(to)h(the)
+g(application)0 3926 y(program.)0 4086 y(If)24 b(the)i(output)e(disk)g
+(\014le)g(name)h(ends)f(with)f(the)i(su\016x)f('.gz',)k(then)d(CFITSIO)
+e(will)f(compress)j(the)g(\014le)f(using)g(the)0 4199
+y(gzip)g(compression)f(algorithm)g(b)s(efore)h(writing)e(it)i(to)h
+(disk.)37 b(This)22 b(can)j(reduce)f(the)g(amoun)m(t)h(of)f(disk)f
+(space)i(used)0 4312 y(b)m(y)34 b(the)h(\014le.)52 b(Note)36
+b(that)f(this)f(feature)h(requires)e(that)i(the)f(uncompressed)g
+(\014le)f(b)s(e)h(constructed)h(in)e(memory)0 4425 y(b)s(efore)d(it)g
+(is)f(compressed)h(and)g(written)g(to)h(disk,)e(so)h(it)g(can)h(fail)e
+(if)g(there)i(is)e(insu\016cien)m(t)g(a)m(v)-5 b(ailable)30
+b(memory)-8 b(.)0 4585 y(An)45 b(input)f(FITS)g(\014le)h(ma)m(y)h(b)s
+(e)f(compressed)g(with)g(the)g(gzip)g(or)h(Unix)e(compress)i
+(algorithms,)i(in)c(whic)m(h)0 4698 y(case)38 b(CFITSIO)e(will)f
+(uncompress)h(the)i(\014le)f(on)g(the)h(\015y)e(in)m(to)i(a)g(temp)s
+(orary)f(\014le)f(\(in)h(memory)g(or)g(on)h(disk\).)0
+4811 y(Compressed)32 b(\014les)h(ma)m(y)h(only)e(b)s(e)h(op)s(ened)f
+(with)g(read-only)h(p)s(ermission.)47 b(When)33 b(sp)s(ecifying)e(the)j
+(name)f(of)h(a)0 4924 y(compressed)h(FITS)g(\014le)g(it)g(is)g(not)h
+(necessary)g(to)g(app)s(end)e(the)i(\014le)f(su\016x)f(\(e.g.,)39
+b(`.gz')e(or)f(`.Z'\).)g(If)f(CFITSIO)0 5036 y(cannot)24
+b(\014nd)e(the)h(input)e(\014le)i(name)g(without)f(the)h(su\016x,)h
+(then)f(it)g(will)e(automatically)i(searc)m(h)h(for)f(a)g(compressed)0
+5149 y(\014le)35 b(with)f(the)i(same)g(ro)s(ot)g(name.)57
+b(In)35 b(the)h(case)h(of)f(reading)f(ftp)g(and)g(h)m(ttp)h(t)m(yp)s(e)
+g(\014les,)g(CFITSIO)f(generally)0 5262 y(lo)s(oks)i(for)h(a)g
+(compressed)g(v)m(ersion)f(of)h(the)g(\014le)f(\014rst,)i(b)s(efore)e
+(trying)g(to)i(op)s(en)e(the)h(uncompressed)e(\014le.)63
+b(By)0 5375 y(default,)36 b(CFITSIO)f(copies)g(\(and)h(uncompressed)e
+(if)h(necessary\))h(the)g(ftp)f(or)h(h)m(ttp)g(FITS)f(\014le)f(in)m(to)
+i(memory)0 5488 y(on)g(the)g(lo)s(cal)f(mac)m(hine)g(b)s(efore)h(op)s
+(ening)e(it.)57 b(This)34 b(will)f(fail)h(if)h(the)h(lo)s(cal)f(mac)m
+(hine)h(do)s(es)f(not)h(ha)m(v)m(e)h(enough)0 5601 y(memory)g(to)h
+(hold)e(the)h(whole)g(FITS)f(\014le,)j(so)e(in)f(this)g(case,)41
+b(the)c(output)g(\014lename)f(sp)s(eci\014er)g(\(see)i(the)g(next)0
+5714 y(section\))31 b(can)g(b)s(e)e(used)h(to)h(further)e(con)m(trol)i
+(ho)m(w)f(CFITSIO)f(reads)h(ftp)g(and)g(h)m(ttp)g(\014les.)p
+eop
+%%Page: 22 28
+22 27 bop 0 299 a Fi(22)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)0 555 y Fi(If)32
+b(the)h(input)e(\014le)h(is)g(an)h(IRAF)g(image)g(\014le)f(\(*.imh)g
+(\014le\))h(then)f(CFITSIO)f(will)g(automatically)h(con)m(v)m(ert)j(it)
+d(on)0 668 y(the)27 b(\015y)g(in)m(to)g(a)h(virtual)d(FITS)h(image)i(b)
+s(efore)f(it)f(is)g(op)s(ened)h(b)m(y)g(the)g(application)f(program.)39
+b(IRAF)27 b(images)h(can)0 781 y(only)h(b)s(e)h(op)s(ened)g(with)f
+(READONL)-8 b(Y)31 b(\014le)e(access.)0 941 y(Similarly)-8
+b(,)28 b(if)i(the)h(input)e(\014le)i(is)f(a)h(ra)m(w)g(binary)e(data)j
+(arra)m(y)-8 b(,)33 b(then)d(CFITSIO)g(will)e(con)m(v)m(ert)33
+b(it)d(on)h(the)h(\015y)e(in)m(to)0 1054 y(a)38 b(virtual)e(FITS)i
+(image)g(with)e(the)i(basic)g(set)g(of)g(required)e(header)i(k)m(eyw)m
+(ords)g(b)s(efore)g(it)f(is)g(op)s(ened)g(b)m(y)h(the)0
+1167 y(application)29 b(program)i(\(with)f(READONL)-8
+b(Y)31 b(access\).)44 b(In)30 b(this)g(case)i(the)f(data)g(t)m(yp)s(e)g
+(and)g(dimensions)d(of)j(the)0 1280 y(image)c(m)m(ust)g(b)s(e)f(sp)s
+(eci\014ed)f(in)h(square)h(brac)m(k)m(ets)h(follo)m(wing)d(the)i
+(\014lename)f(\(e.g.)41 b(ra)m(w\014le.dat[ib512,512]\).)h(The)0
+1393 y(\014rst)30 b(c)m(haracter)i(\(case)f(insensitiv)m(e\))e
+(de\014nes)h(the)g(datat)m(yp)s(e)h(of)g(the)g(arra)m(y:)239
+1671 y Fe(b)429 b(8-bit)46 b(unsigned)g(byte)239 1784
+y(i)381 b(16-bit)46 b(signed)g(integer)239 1897 y(u)381
+b(16-bit)46 b(unsigned)g(integer)239 2010 y(j)381 b(32-bit)46
+b(signed)g(integer)239 2123 y(r)h(or)g(f)143 b(32-bit)46
+b(floating)g(point)239 2235 y(d)381 b(64-bit)46 b(floating)g(point)0
+2514 y Fi(An)40 b(optional)f(second)h(c)m(haracter)i(sp)s(eci\014es)d
+(the)i(b)m(yte)f(order)g(of)g(the)h(arra)m(y)g(v)-5 b(alues:)59
+b(b)40 b(or)g(B)h(indicates)e(big)0 2626 y(endian)g(\(as)i(in)e(FITS)g
+(\014les)h(and)g(the)g(nativ)m(e)h(format)f(of)h(SUN)f(UNIX)h(w)m
+(orkstations)f(and)g(Mac)i(PCs\))e(and)0 2739 y(l)g(or)h(L)g(indicates)
+e(little)h(endian)g(\(nativ)m(e)h(format)h(of)f(DEC)f(OSF)h(w)m
+(orkstations)g(and)f(IBM)i(PCs\).)72 b(If)40 b(this)0
+2852 y(c)m(haracter)32 b(is)d(omitted)i(then)f(the)g(arra)m(y)h(is)f
+(assumed)f(to)i(ha)m(v)m(e)h(the)f(nativ)m(e)f(b)m(yte)h(order)f(of)h
+(the)f(lo)s(cal)g(mac)m(hine.)0 2965 y(These)f(datat)m(yp)s(e)h(c)m
+(haracters)h(are)e(then)g(follo)m(w)m(ed)g(b)m(y)g(a)h(series)e(of)h
+(one)h(or)f(more)g(in)m(teger)h(v)-5 b(alues)28 b(separated)i(b)m(y)0
+3078 y(commas)h(whic)m(h)f(de\014ne)f(the)i(size)g(of)f(eac)m(h)i
+(dimension)c(of)j(the)g(ra)m(w)f(arra)m(y)-8 b(.)43 b(Arra)m(ys)30
+b(with)g(up)f(to)j(5)f(dimensions)0 3191 y(are)f(curren)m(tly)f(supp)s
+(orted.)38 b(Finally)-8 b(,)29 b(a)h(b)m(yte)g(o\013set)g(to)h(the)e(p)
+s(osition)f(of)i(the)g(\014rst)e(pixel)g(in)h(the)g(data)i(\014le)d(ma)
+m(y)0 3304 y(b)s(e)e(sp)s(eci\014ed)f(b)m(y)i(separating)g(it)f(with)g
+(a)h(':')39 b(from)27 b(the)g(last)f(dimension)f(v)-5
+b(alue.)39 b(If)26 b(omitted,)i(it)e(is)g(assumed)g(that)0
+3417 y(the)35 b(o\013set)h(=)f(0.)54 b(This)34 b(parameter)h(ma)m(y)h
+(b)s(e)e(used)g(to)i(skip)d(o)m(v)m(er)j(an)m(y)g(header)e(information)
+g(in)f(the)i(\014le)f(that)0 3530 y(precedes)c(the)h(binary)e(data.)41
+b(F)-8 b(urther)30 b(examples:)95 3808 y Fe(raw.dat[b10000])521
+b(1-dimensional)45 b(10000)h(pixel)g(byte)h(array)95
+3921 y(raw.dat[rb400,400,12])233 b(3-dimensional)45 b(floating)g(point)
+h(big-endian)f(array)95 4034 y(img.fits[ib512,512:2880])89
+b(reads)47 b(the)g(512)g(x)g(512)g(short)f(integer)g(array)g(in)1336
+4147 y(a)i(FITS)e(file,)h(skipping)e(over)i(the)g(2880)g(byte)f(header)
+0 4425 y Fi(One)25 b(sp)s(ecial)e(case)j(of)f(input)e(\014le)h(is)g
+(where)h(the)g(\014lename)f(=)h(`-')h(\(a)f(dash)g(or)g(min)m(us)e
+(sign\))h(or)h('stdin')f(or)h('stdout',)0 4538 y(whic)m(h)c
+(signi\014es)g(that)j(the)f(input)d(\014le)i(is)g(to)i(b)s(e)e(read)g
+(from)h(the)g(stdin)e(stream,)k(or)e(written)e(to)j(the)f(stdout)g
+(stream)0 4650 y(if)33 b(a)h(new)g(output)f(\014le)g(is)g(b)s(eing)g
+(created.)52 b(In)33 b(the)h(case)h(of)f(reading)g(from)f(stdin,)g
+(CFITSIO)g(\014rst)g(copies)h(the)0 4763 y(whole)g(stream)i(in)m(to)f
+(a)g(temp)s(orary)g(FITS)f(\014le)h(\(in)f(memory)h(or)g(on)g(disk\),)g
+(and)g(subsequen)m(t)f(reading)g(of)i(the)0 4876 y(FITS)c(\014le)g(o)s
+(ccurs)h(in)e(this)h(cop)m(y)-8 b(.)49 b(When)33 b(writing)e(to)i
+(stdout,)h(CFITSIO)d(\014rst)h(constructs)h(the)g(whole)f(\014le)g(in)0
+4989 y(memory)i(\(since)h(random)e(access)j(is)d(required\),)i(then)f
+(\015ushes)f(it)h(out)h(to)g(the)f(stdout)h(stream)g(when)e(the)i
+(\014le)0 5102 y(is)29 b(closed.)41 b(In)29 b(addition,)g(if)g(the)h
+(output)g(\014lename)f(=)h('-.gz')i(or)e('stdout.gz')h(then)f(it)g
+(will)d(b)s(e)j(gzip)f(compressed)0 5215 y(b)s(efore)h(b)s(eing)f
+(written)g(to)i(stdout.)0 5375 y(This)24 b(abilit)m(y)h(to)h(read)g
+(and)f(write)g(on)h(the)g(stdin)f(and)g(stdout)h(steams)g(allo)m(ws)g
+(FITS)f(\014les)g(to)h(b)s(e)g(pip)s(ed)d(b)s(et)m(w)m(een)0
+5488 y(tasks)42 b(in)e(memory)h(rather)g(than)h(ha)m(ving)f(to)h
+(create)h(temp)s(orary)e(in)m(termediate)g(FITS)f(\014les)h(on)g(disk.)
+72 b(F)-8 b(or)0 5601 y(example)27 b(if)e(task1)j(creates)h(an)e
+(output)f(FITS)g(\014le,)h(and)g(task2)g(reads)g(an)g(input)e(FITS)h
+(\014le,)h(the)g(FITS)f(\014le)g(ma)m(y)0 5714 y(b)s(e)k(pip)s(ed)e(b)s
+(et)m(w)m(een)j(the)f(2)h(tasks)g(b)m(y)f(sp)s(ecifying)p
+eop
+%%Page: 23 29
+23 28 bop 0 299 a Fg(4.4.)72 b(OUTPUT)30 b(FILE)g(NAME)h(WHEN)g
+(OPENING)f(AN)h(EXISTING)e(FILE)967 b Fi(23)143 555 y
+Fe(task1)47 b(-)g(|)g(task2)g(-)0 793 y Fi(where)30 b(the)h(v)m
+(ertical)g(bar)g(is)e(the)i(Unix)f(piping)e(sym)m(b)s(ol.)41
+b(This)29 b(assumes)h(that)i(the)f(2)g(tasks)g(read)g(the)g(name)g(of)0
+906 y(the)g(FITS)e(\014le)h(o\013)g(of)h(the)g(command)f(line.)0
+1236 y Fd(4.4)135 b(Output)45 b(File)g(Name)h(when)f(Op)t(ening)g(an)g
+(Existing)h(File)0 1486 y Fi(An)36 b(optional)g(output)g(\014lename)g
+(ma)m(y)i(b)s(e)e(sp)s(eci\014ed)f(in)g(paren)m(theses)i(immediately)e
+(follo)m(wing)g(the)i(base)g(\014le)0 1599 y(name)28
+b(to)h(b)s(e)f(op)s(ened.)39 b(This)27 b(is)g(mainly)f(useful)h(in)g
+(those)h(cases)i(where)d(CFITSIO)g(creates)j(a)e(temp)s(orary)g(cop)m
+(y)0 1712 y(of)i(the)f(input)f(FITS)g(\014le)h(b)s(efore)g(it)g(is)f
+(op)s(ened)h(and)f(passed)h(to)h(the)g(application)e(program.)40
+b(This)27 b(happ)s(ens)h(b)m(y)0 1825 y(default)h(when)h(op)s(ening)f
+(a)h(net)m(w)m(ork)h(FTP)g(or)f(HTTP-t)m(yp)s(e)g(\014le,)g(when)f
+(reading)g(a)i(compressed)f(FITS)g(\014le)f(on)0 1938
+y(a)36 b(lo)s(cal)f(disk,)h(when)f(reading)g(from)h(the)g(stdin)e
+(stream,)k(or)d(when)g(a)i(column)d(\014lter,)j(ro)m(w)f(\014lter,)g
+(or)g(binning)0 2051 y(sp)s(eci\014er)28 b(is)g(included)f(as)j(part)f
+(of)g(the)h(input)e(\014le)g(sp)s(eci\014cation.)39 b(By)30
+b(default)f(this)f(temp)s(orary)h(\014le)f(is)h(created)0
+2164 y(in)g(memory)-8 b(.)41 b(If)29 b(there)h(is)f(not)h(enough)g
+(memory)g(to)h(create)g(the)g(\014le)e(cop)m(y)-8 b(,)31
+b(then)f(CFITSIO)e(will)f(exit)j(with)f(an)0 2277 y(error.)45
+b(In)32 b(these)g(cases)h(one)g(can)f(force)h(a)f(p)s(ermanen)m(t)g
+(\014le)f(to)i(b)s(e)e(created)i(on)f(disk,)f(instead)h(of)g(a)g(temp)s
+(orary)0 2390 y(\014le)37 b(in)f(memory)-8 b(,)40 b(b)m(y)d(supplying)d
+(the)k(name)g(in)e(paren)m(theses)i(immediately)e(follo)m(wing)g(the)h
+(base)h(\014le)f(name.)0 2503 y(The)30 b(output)g(\014lename)f(can)i
+(include)d(the)j(')10 b(!')41 b(clobb)s(er)29 b(\015ag.)0
+2663 y(Th)m(us,)48 b(if)c(the)h(input)e(\014lename)h(to)h(CFITSIO)f
+(is:)69 b Fe(file1.fits.gz\(file2.fit)o(s\))39 b Fi(then)44
+b(CFITSIO)g(will)0 2776 y(uncompress)39 b(`\014le1.\014ts.gz')i(in)m
+(to)f(the)g(lo)s(cal)f(disk)f(\014le)h(`\014le2.\014ts')h(b)s(efore)g
+(op)s(ening)e(it.)69 b(CFITSIO)38 b(do)s(es)i(not)0 2889
+y(automatically)30 b(delete)h(the)f(output)g(\014le,)g(so)h(it)f(will)d
+(still)i(exist)h(after)h(the)f(application)f(program)h(exits.)0
+3049 y(In)35 b(some)i(cases,)h(sev)m(eral)e(di\013eren)m(t)g(temp)s
+(orary)f(FITS)h(\014les)f(will)e(b)s(e)i(created)i(in)e(sequence,)j
+(for)e(instance,)h(if)0 3162 y(one)g(op)s(ens)g(a)g(remote)h(\014le)e
+(using)g(FTP)-8 b(,)37 b(then)g(\014lters)f(ro)m(ws)h(in)f(a)i(binary)d
+(table)i(extension,)i(then)d(create)j(an)0 3275 y(image)e(b)m(y)g
+(binning)d(a)j(pair)f(of)h(columns.)59 b(In)36 b(this)g(case,)k(the)d
+(remote)h(\014le)e(will)e(b)s(e)i(copied)g(to)i(a)f(temp)s(orary)0
+3388 y(lo)s(cal)h(\014le,)i(then)e(a)h(second)f(temp)s(orary)h(\014le)e
+(will)f(b)s(e)i(created)i(con)m(taining)e(the)g(\014ltered)g(ro)m(ws)g
+(of)h(the)g(table,)0 3500 y(and)c(\014nally)e(a)j(third)d(temp)s(orary)
+i(\014le)g(con)m(taining)f(the)i(binned)d(image)i(will)e(b)s(e)i
+(created.)57 b(In)34 b(cases)i(lik)m(e)f(this)0 3613
+y(where)28 b(m)m(ultiple)e(\014les)h(are)i(created,)h(the)e(out\014le)g
+(sp)s(eci\014er)f(will)e(b)s(e)j(in)m(terpreted)g(the)g(name)g(of)h
+(the)f(\014nal)f(\014le)h(as)0 3726 y(describ)s(ed)g(b)s(elo)m(w,)i(in)
+f(descending)g(priorit)m(y:)136 3964 y Fc(\017)46 b Fi(as)29
+b(the)g(name)g(of)g(the)g(\014nal)e(image)i(\014le)f(if)f(an)i(image)g
+(within)d(a)j(single)e(binary)g(table)i(cell)f(is)f(op)s(ened)h(or)h
+(if)227 4077 y(an)i(image)f(is)g(created)h(b)m(y)f(binning)e(a)i(table)
+h(column.)136 4257 y Fc(\017)46 b Fi(as)33 b(the)f(name)h(of)f(the)h
+(\014le)e(con)m(taining)h(the)g(\014ltered)f(table)i(if)e(a)i(column)e
+(\014lter)g(and/or)h(a)h(ro)m(w)f(\014lter)g(are)227
+4370 y(sp)s(eci\014ed.)136 4551 y Fc(\017)46 b Fi(as)31
+b(the)f(name)h(of)f(the)h(lo)s(cal)f(cop)m(y)h(of)f(the)h(remote)g(FTP)
+f(or)h(HTTP)e(\014le.)136 4731 y Fc(\017)46 b Fi(as)31
+b(the)g(name)g(of)g(the)f(uncompressed)g(v)m(ersion)g(of)h(the)f(FITS)g
+(\014le,)g(if)g(a)h(compressed)f(FITS)g(\014le)g(on)h(lo)s(cal)227
+4844 y(disk)e(has)h(b)s(een)g(op)s(ened.)136 5024 y Fc(\017)46
+b Fi(otherwise,)30 b(the)h(output)f(\014lename)f(is)h(ignored.)0
+5262 y(The)f(output)f(\014le)g(sp)s(eci\014er)g(is)g(useful)f(when)h
+(reading)g(FTP)h(or)g(HTTP-t)m(yp)s(e)g(FITS)f(\014les)g(since)g(it)h
+(can)g(b)s(e)g(used)0 5375 y(to)34 b(create)i(a)e(lo)s(cal)f(disk)f
+(cop)m(y)j(of)f(the)g(\014le)e(that)j(can)f(b)s(e)f(reused)g(in)f(the)i
+(future.)50 b(If)33 b(the)h(output)g(\014le)e(name)i(=)0
+5488 y(`*')i(then)f(a)g(lo)s(cal)f(\014le)g(with)g(the)h(same)g(name)g
+(as)g(the)h(net)m(w)m(ork)f(\014le)f(will)f(b)s(e)h(created.)56
+b(Note)36 b(that)f(CFITSIO)0 5601 y(will)27 b(b)s(eha)m(v)m(e)j
+(di\013eren)m(tly)f(dep)s(ending)e(on)j(whether)f(the)h(remote)g
+(\014le)f(is)g(compressed)g(or)h(not)g(as)g(sho)m(wn)f(b)m(y)h(the)0
+5714 y(follo)m(wing)f(examples:)p eop
+%%Page: 24 30
+24 29 bop 0 299 a Fi(24)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)136 555 y
+Fc(\017)46 b Fi(`ftp://remote.mac)m(hine/tmp/m)m
+(y\014le.\014ts.gz\(*\)')i(-)43 b(the)g(remote)h(compressed)f(\014le)f
+(is)g(copied)h(to)h(the)227 668 y(lo)s(cal)24 b(compressed)g(\014le)f
+(`m)m(y\014le.\014ts.gz',)k(whic)m(h)c(is)g(then)i(uncompressed)e(in)g
+(lo)s(cal)g(memory)h(b)s(efore)g(b)s(eing)227 781 y(op)s(ened)30
+b(and)g(passed)g(to)h(the)f(application)f(program.)136
+979 y Fc(\017)46 b Fi(`ftp://remote.mac)m(hine/tmp/m)m
+(y\014le.\014ts.gz\(m)m(y\014le.\014ts\)')40 b(-)d(the)g(remote)g
+(compressed)f(\014le)g(is)f(copied)227 1092 y(and)i(uncompressed)g(in)m
+(to)g(the)h(lo)s(cal)f(\014le)g(`m)m(y\014le.\014ts'.)63
+b(This)35 b(example)j(requires)e(less)h(lo)s(cal)g(memory)227
+1205 y(than)30 b(the)h(previous)e(example)h(since)g(the)g(\014le)g(is)f
+(uncompressed)g(on)h(disk)f(instead)h(of)g(in)g(memory)-8
+b(.)136 1403 y Fc(\017)46 b Fi(`ftp://remote.mac)m(hine/tmp/m)m
+(y\014le.\014ts\(m)m(y\014le.\014ts.gz\)')25 b(-)c(this)f(will)f
+(usually)g(pro)s(duce)h(an)h(error)g(since)227 1516 y(CFITSIO)29
+b(itself)g(cannot)i(compress)f(\014les.)0 1759 y(The)36
+b(exact)i(b)s(eha)m(vior)d(of)i(CFITSIO)e(in)g(the)i(latter)f(case)i
+(dep)s(ends)c(on)j(the)f(t)m(yp)s(e)h(of)g(ftp)f(serv)m(er)g(running)e
+(on)0 1872 y(the)d(remote)g(mac)m(hine)f(and)g(ho)m(w)g(it)g(is)f
+(con\014gured.)40 b(In)30 b(some)h(cases,)g(if)e(the)i(\014le)e(`m)m
+(y\014le.\014ts.gz')j(exists)e(on)g(the)0 1985 y(remote)38
+b(mac)m(hine,)g(then)f(the)g(serv)m(er)g(will)e(cop)m(y)i(it)g(to)g
+(the)h(lo)s(cal)e(mac)m(hine.)60 b(In)36 b(other)h(cases)h(the)f(ftp)g
+(serv)m(er)0 2098 y(will)c(automatically)j(create)h(and)f(transmit)f(a)
+h(compressed)g(v)m(ersion)f(of)h(the)g(\014le)f(if)g(only)g(the)h
+(uncompressed)0 2211 y(v)m(ersion)26 b(exists.)40 b(This)25
+b(can)i(get)h(rather)f(confusing,)g(so)g(users)f(should)f(use)i(a)g
+(certain)g(amoun)m(t)h(of)f(caution)g(when)0 2324 y(using)33
+b(the)i(output)f(\014le)g(sp)s(eci\014er)f(with)h(FTP)g(or)h(HTTP)f
+(\014le)g(t)m(yp)s(es,)i(to)f(mak)m(e)h(sure)e(they)h(get)h(the)f(b)s
+(eha)m(vior)0 2437 y(that)c(they)g(exp)s(ect.)0 2783
+y Fd(4.5)135 b(T)-11 b(emplate)46 b(File)g(Name)f(when)g(Creating)h(a)g
+(New)f(File)0 3035 y Fi(When)38 b(a)h(new)f(FITS)g(\014le)g(is)g
+(created)h(with)f(a)g(call)g(to)i(\014ts)p 2101 3035
+28 4 v 32 w(create)p 2369 3035 V 35 w(\014le,)f(the)g(name)g(of)g(a)g
+(template)g(\014le)e(ma)m(y)0 3148 y(b)s(e)i(supplied)e(in)i(paren)m
+(theses)h(immediately)e(follo)m(wing)g(the)j(name)f(of)g(the)g(new)f
+(\014le)g(to)i(b)s(e)e(created.)71 b(This)0 3261 y(template)26
+b(is)e(used)h(to)h(de\014ne)f(the)h(structure)f(of)h(one)f(or)h(more)g
+(HDUs)g(in)e(the)i(new)f(\014le.)38 b(The)25 b(template)h(\014le)e(ma)m
+(y)0 3374 y(b)s(e)32 b(another)h(FITS)f(\014le,)h(in)f(whic)m(h)f(case)
+j(the)f(newly)f(created)i(\014le)e(will)e(ha)m(v)m(e)k(exactly)g(the)f
+(same)g(k)m(eyw)m(ords)g(in)0 3487 y(eac)m(h)25 b(HDU)g(as)g(in)e(the)h
+(template)h(FITS)e(\014le,)i(but)e(all)h(the)g(data)h(units)d(will)g(b)
+s(e)i(\014lled)e(with)g(zeros.)40 b(The)24 b(template)0
+3600 y(\014le)h(ma)m(y)i(also)f(b)s(e)f(an)h(ASCI)s(I)e(text)j(\014le,)
+f(where)g(eac)m(h)h(line)d(\(in)h(general\))i(describ)s(es)d(one)i
+(FITS)f(k)m(eyw)m(ord)i(record.)0 3713 y(The)j(format)h(of)f(the)h
+(ASCI)s(I)e(template)h(\014le)g(is)f(describ)s(ed)f(b)s(elo)m(w.)0
+4059 y Fd(4.6)135 b(HDU)46 b(Lo)t(cation)f(Sp)t(eci\014cation)0
+4312 y Fi(The)c(optional)f(HDU)j(lo)s(cation)e(sp)s(eci\014er)e
+(de\014nes)i(whic)m(h)f(HDU)i(\(Header-Data)i(Unit,)g(also)d(kno)m(wn)g
+(as)h(an)0 4425 y(`extension'\))35 b(within)c(the)k(FITS)e(\014le)g(to)
+i(initially)c(op)s(en.)51 b(It)34 b(m)m(ust)g(immediately)f(follo)m(w)g
+(the)h(base)h(\014le)e(name)0 4538 y(\(or)h(the)g(output)g(\014le)f
+(name)g(if)g(presen)m(t\).)52 b(If)33 b(it)g(is)g(not)h(sp)s(eci\014ed)
+f(then)g(the)h(\014rst)f(HDU)i(\(the)f(primary)e(arra)m(y\))0
+4650 y(is)g(op)s(ened.)46 b(The)32 b(HDU)h(lo)s(cation)f(sp)s
+(eci\014er)f(is)h(required)f(if)g(the)i(colFilter,)f(ro)m(wFilter,)h
+(or)g(binSp)s(ec)d(sp)s(eci\014ers)0 4763 y(are)g(presen)m(t,)f(b)s
+(ecause)h(the)f(primary)e(arra)m(y)j(is)e(not)i(a)f(v)-5
+b(alid)28 b(HDU)i(for)f(these)g(op)s(erations.)40 b(The)29
+b(HDU)h(ma)m(y)g(b)s(e)0 4876 y(sp)s(eci\014ed)d(either)i(b)m(y)f
+(absolute)h(p)s(osition)e(n)m(um)m(b)s(er,)h(starting)h(with)e(0)j(for)
+e(the)h(primary)e(arra)m(y)-8 b(,)31 b(or)e(b)m(y)f(reference)0
+4989 y(to)h(the)g(HDU)g(name,)g(and)f(optionally)-8 b(,)28
+b(the)h(v)m(ersion)f(n)m(um)m(b)s(er)f(and)h(the)h(HDU)g(t)m(yp)s(e)g
+(of)f(the)h(desired)e(extension.)0 5102 y(The)32 b(lo)s(cation)f(of)h
+(an)g(image)h(within)c(a)k(single)d(cell)i(of)g(a)g(binary)f(table)h
+(ma)m(y)g(also)g(b)s(e)g(sp)s(eci\014ed,)f(as)h(describ)s(ed)0
+5215 y(b)s(elo)m(w.)0 5375 y(The)26 b(absolute)g(p)s(osition)e(of)i
+(the)h(extension)f(is)f(sp)s(eci\014ed)f(either)i(b)m(y)g(enclosed)g
+(the)h(n)m(um)m(b)s(er)e(in)g(square)g(brac)m(k)m(ets)0
+5488 y(\(e.g.,)k(`[1]')g(=)d(the)h(\014rst)f(extension)g(follo)m(wing)g
+(the)h(primary)d(arra)m(y\))k(or)f(b)m(y)f(preceded)h(the)g(n)m(um)m(b)
+s(er)e(with)h(a)h(plus)0 5601 y(sign)36 b(\(`+1'\).)63
+b(T)-8 b(o)38 b(sp)s(ecify)e(the)h(HDU)h(b)m(y)g(name,)h(giv)m(e)f(the)
+f(name)h(of)f(the)h(desired)e(HDU)i(\(the)f(v)-5 b(alue)37
+b(of)h(the)0 5714 y(EXTNAME)e(or)g(HDUNAME)h(k)m(eyw)m(ord\))g(and)f
+(optionally)e(the)i(extension)g(v)m(ersion)f(n)m(um)m(b)s(er)g(\(v)-5
+b(alue)36 b(of)g(the)p eop
+%%Page: 25 31
+25 30 bop 0 299 a Fg(4.7.)72 b(IMA)m(GE)31 b(SECTION)2835
+b Fi(25)0 555 y(EXTVER)27 b(k)m(eyw)m(ord\))i(and)e(the)h(extension)g
+(t)m(yp)s(e)f(\(v)-5 b(alue)28 b(of)g(the)g(XTENSION)f(k)m(eyw)m(ord:)
+40 b(IMA)m(GE,)29 b(ASCI)s(I)d(or)0 668 y(T)-8 b(ABLE,)36
+b(or)f(BINT)-8 b(ABLE\),)36 b(separated)f(b)m(y)g(commas)h(and)e(all)g
+(enclosed)h(in)f(square)h(brac)m(k)m(ets.)56 b(If)34
+b(the)h(v)-5 b(alue)0 781 y(of)34 b(EXTVER)f(and)f(XTENSION)h(are)h
+(not)f(sp)s(eci\014ed,)g(then)g(the)h(\014rst)e(extension)i(with)e(the)
+h(correct)i(v)-5 b(alue)33 b(of)0 894 y(EXTNAME)39 b(is)f(op)s(ened.)67
+b(The)38 b(extension)h(name)g(and)f(t)m(yp)s(e)i(are)f(not)h(case)g
+(sensitiv)m(e,)h(and)d(the)h(extension)0 1007 y(t)m(yp)s(e)29
+b(ma)m(y)g(b)s(e)f(abbreviated)g(to)h(a)g(single)e(letter)i(\(e.g.,)i
+(I)d(=)g(IMA)m(GE)i(extension)e(or)g(primary)f(arra)m(y)-8
+b(,)30 b(A)f(or)f(T)g(=)0 1120 y(ASCI)s(I)d(table)h(extension,)h(and)f
+(B)h(=)f(binary)f(table)h(BINT)-8 b(ABLE)27 b(extension\).)40
+b(If)26 b(the)g(HDU)h(lo)s(cation)g(sp)s(eci\014er)0
+1233 y(is)i(equal)h(to)h(`[PRIMAR)-8 b(Y]')32 b(or)f(`[P]',)g(then)f
+(the)h(primary)d(arra)m(y)j(\(the)g(\014rst)f(HDU\))h(will)d(b)s(e)i
+(op)s(ened.)0 1393 y(FITS)k(images)h(are)g(most)h(commonly)e(stored)h
+(in)f(the)h(primary)e(arra)m(y)i(or)g(an)g(image)g(extension,)h(but)e
+(images)0 1506 y(can)d(also)g(b)s(e)f(stored)h(as)h(a)f(v)m(ector)h(in)
+e(a)h(single)f(cell)g(of)h(a)h(binary)d(table)i(\(i.e.)42
+b(eac)m(h)32 b(ro)m(w)f(of)g(the)h(v)m(ector)g(column)0
+1619 y(con)m(tains)c(a)h(di\013eren)m(t)e(image\).)41
+b(Suc)m(h)27 b(an)h(image)h(can)f(b)s(e)g(op)s(ened)f(with)g(CFITSIO)f
+(b)m(y)i(sp)s(ecifying)e(the)i(desired)0 1732 y(column)j(name)h(and)f
+(the)h(ro)m(w)g(n)m(um)m(b)s(er)f(after)h(the)g(binary)e(table)i(HDU)h
+(sp)s(eci\014er)d(as)i(sho)m(wn)g(in)e(the)i(follo)m(wing)0
+1844 y(examples.)70 b(The)40 b(column)f(name)i(is)e(separated)i(from)f
+(the)h(HDU)g(sp)s(eci\014er)e(b)m(y)h(a)h(semicolon)e(and)h(the)h(ro)m
+(w)0 1957 y(n)m(um)m(b)s(er)29 b(is)g(enclosed)h(in)e(paren)m(theses.)
+41 b(In)30 b(this)f(case)i(CFITSIO)d(copies)i(the)g(image)h(from)e(the)
+i(table)f(cell)f(in)m(to)0 2070 y(a)j(temp)s(orary)e(primary)g(arra)m
+(y)h(b)s(efore)g(it)g(is)f(op)s(ened.)43 b(The)30 b(application)g
+(program)h(then)g(just)g(sees)g(the)h(image)0 2183 y(in)h(the)i
+(primary)d(arra)m(y)-8 b(,)37 b(without)c(an)m(y)i(extensions.)52
+b(The)34 b(particular)e(ro)m(w)j(to)g(b)s(e)e(op)s(ened)h(ma)m(y)h(b)s
+(e)f(sp)s(eci\014ed)0 2296 y(either)27 b(b)m(y)g(giving)f(an)h
+(absolute)g(in)m(teger)h(ro)m(w)g(n)m(um)m(b)s(er)e(\(starting)h(with)f
+(1)i(for)f(the)g(\014rst)g(ro)m(w\),)i(or)e(b)m(y)g(sp)s(ecifying)0
+2409 y(a)33 b(b)s(o)s(olean)e(expression)g(that)i(ev)-5
+b(aluates)33 b(to)g(TR)m(UE)g(for)f(the)g(desired)f(ro)m(w.)47
+b(The)32 b(\014rst)f(ro)m(w)i(that)g(satis\014es)f(the)0
+2522 y(expression)27 b(will)e(b)s(e)j(used.)39 b(The)28
+b(ro)m(w)g(selection)g(expression)f(has)h(the)g(same)g(syn)m(tax)h(as)f
+(describ)s(ed)e(in)h(the)h(Ro)m(w)0 2635 y(Filter)i(Sp)s(eci\014er)e
+(section,)j(b)s(elo)m(w.)0 2795 y(Examples:)143 3051
+y Fe(myfile.fits[3])44 b(-)k(open)e(the)h(3rd)g(HDU)g(following)e(the)i
+(primary)f(array)143 3164 y(myfile.fits+3)92 b(-)48 b(same)e(as)h
+(above,)f(but)h(using)g(the)g(FTOOLS-style)d(notation)143
+3277 y(myfile.fits[EVENTS])f(-)k(open)g(the)g(extension)e(that)i(has)g
+(EXTNAME)e(=)j('EVENTS')143 3390 y(myfile.fits[EVENTS,)43
+b(2])95 b(-)47 b(same)g(as)g(above,)f(but)h(also)g(requires)e(EXTVER)h
+(=)i(2)143 3503 y(myfile.fits[events,2,b])42 b(-)47 b(same,)f(but)h
+(also)g(requires)f(XTENSION)f(=)j('BINTABLE')143 3616
+y(myfile.fits[3;)c(images\(17\)])h(-)i(opens)g(the)g(image)f(in)h(row)g
+(17)g(of)g(the)g('images')1527 3728 y(column)f(in)i(the)e(3rd)h
+(extension)f(of)h(the)g(file.)143 3841 y(myfile.fits[3;)d
+(images\(exposure)g(>)j(100\)])g(-)g(as)g(above,)f(but)h(opens)g(the)f
+(image)907 3954 y(in)h(the)g(first)f(row)h(that)g(has)g(an)g
+('exposure')e(column)h(value)907 4067 y(greater)g(than)g(100.)0
+4400 y Fd(4.7)135 b(Image)46 b(Section)0 4650 y Fi(A)41
+b(virtual)e(\014le)g(con)m(taining)h(a)h(rectangular)g(subsection)e(of)
+i(an)g(image)f(can)h(b)s(e)f(extracted)i(and)e(op)s(ened)g(b)m(y)0
+4763 y(sp)s(ecifying)30 b(the)j(range)g(of)g(pixels)e(\(start:end\))i
+(along)g(eac)m(h)h(axis)e(to)h(b)s(e)f(extracted)i(from)e(the)h
+(original)d(image.)0 4876 y(One)g(can)h(also)g(sp)s(ecify)e(an)i
+(optional)f(pixel)f(incremen)m(t)h(\(start:end:step\))i(for)f(eac)m(h)h
+(axis)e(of)h(the)g(input)d(image.)0 4989 y(A)g(pixel)d(step)j(=)f(1)h
+(will)d(b)s(e)i(assumed)f(if)h(it)g(is)f(not)i(sp)s(eci\014ed.)38
+b(If)27 b(the)h(start)g(pixel)e(is)g(larger)i(then)f(the)h(end)e
+(pixel,)0 5102 y(then)32 b(the)g(image)g(will)d(b)s(e)i(\015ipp)s(ed)e
+(\(pro)s(ducing)h(a)i(mirror)f(image\))h(along)g(that)g(dimension.)43
+b(An)32 b(asterisk,)g('*',)0 5215 y(ma)m(y)39 b(b)s(e)e(used)h(to)h(sp)
+s(ecify)e(the)h(en)m(tire)g(range)h(of)f(an)h(axis,)h(and)d('-*')j
+(will)35 b(\015ip)i(the)h(en)m(tire)g(axis.)64 b(The)38
+b(input)0 5328 y(image)30 b(can)g(b)s(e)f(in)f(the)i(primary)e(arra)m
+(y)-8 b(,)31 b(in)d(an)h(image)h(extension,)g(or)g(con)m(tained)f(in)g
+(a)h(v)m(ector)h(cell)e(of)h(a)g(binary)0 5441 y(table.)39
+b(In)25 b(the)h(later)g(2)g(cases)h(the)f(extension)g(name)g(or)f(n)m
+(um)m(b)s(er)g(m)m(ust)h(b)s(e)f(sp)s(eci\014ed)f(b)s(efore)i(the)g
+(image)g(section)0 5554 y(sp)s(eci\014er.)0 5714 y(Examples:)p
+eop
+%%Page: 26 32
+26 31 bop 0 299 a Fi(26)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)95 555 y Fe
+(myfile.fits[1:512:2,)43 b(2:512:2])i(-)95 b(open)47
+b(a)h(256x256)d(pixel)i(image)668 668 y(consisting)e(of)i(the)g(odd)g
+(numbered)f(columns)g(\(1st)g(axis\))h(and)668 781 y(the)g(even)g
+(numbered)e(rows)i(\(2nd)g(axis\))f(of)h(the)g(image)f(in)i(the)668
+894 y(primary)e(array)g(of)i(the)e(file.)95 1120 y(myfile.fits[*,)e
+(512:256])i(-)h(open)g(an)g(image)g(consisting)e(of)i(all)g(the)g
+(columns)668 1233 y(in)g(the)g(input)g(image,)f(but)h(only)f(rows)h
+(256)g(through)f(512.)668 1346 y(The)h(image)f(will)h(be)g(flipped)f
+(along)g(the)h(2nd)g(axis)g(since)668 1458 y(the)g(starting)f(pixel)g
+(is)h(greater)f(than)h(the)g(ending)f(pixel.)95 1684
+y(myfile.fits[*:2,)e(512:256:2])h(-)i(same)g(as)g(above)f(but)h
+(keeping)f(only)668 1797 y(every)h(other)f(row)h(and)g(column)f(in)h
+(the)g(input)f(image.)95 2023 y(myfile.fits[-*,)e(*])j(-)h(copy)e(the)h
+(entire)f(image,)g(flipping)g(it)h(along)668 2136 y(the)g(first)f
+(axis.)95 2362 y(myfile.fits[3][1:256,1:256)o(])c(-)47
+b(opens)g(a)g(subsection)e(of)i(the)g(image)g(that)668
+2475 y(is)g(in)h(the)e(3rd)h(extension)f(of)h(the)g(file.)95
+2700 y(myfile.fits[4;)d(images\(12\)][1:10,1:10])e(-)48
+b(open)e(an)h(image)g(consisting)286 2813 y(of)h(the)e(first)h(10)g
+(pixels)f(in)h(both)g(dimensions.)e(The)i(original)286
+2926 y(image)g(resides)f(in)h(the)g(12th)f(row)h(of)g(the)g('images')f
+(vector)286 3039 y(column)g(in)i(the)f(table)f(in)h(the)g(4th)g
+(extension)e(of)i(the)g(file.)0 3336 y Fi(When)23 b(CFITSIO)f(op)s(ens)
+h(an)g(image)g(section)h(it)f(\014rst)g(creates)h(a)g(temp)s(orary)f
+(\014le)g(con)m(taining)g(the)g(image)h(section)0 3449
+y(plus)31 b(a)j(cop)m(y)g(of)g(an)m(y)g(other)f(HDUs)h(in)e(the)i
+(\014le.)49 b(This)31 b(temp)s(orary)i(\014le)g(is)f(then)h(op)s(ened)g
+(b)m(y)g(the)h(application)0 3562 y(program,)28 b(so)g(it)f(is)f(not)i
+(p)s(ossible)d(to)j(write)f(to)h(or)g(mo)s(dify)e(the)h(input)f(\014le)
+g(when)h(sp)s(ecifying)e(an)j(image)g(section.)0 3675
+y(Note)39 b(that)f(CFITSIO)e(automatically)h(up)s(dates)g(the)g(w)m
+(orld)g(co)s(ordinate)g(system)h(k)m(eyw)m(ords)f(in)f(the)i(header)0
+3788 y(of)33 b(the)h(image)f(section,)h(if)e(they)i(exist,)g(so)f(that)
+h(the)f(co)s(ordinate)g(asso)s(ciated)h(with)e(eac)m(h)i(pixel)d(in)h
+(the)i(image)0 3901 y(section)d(will)c(b)s(e)j(computed)g(correctly)-8
+b(.)0 4279 y Fd(4.8)135 b(Column)45 b(and)g(Keyw)l(ord)h(Filtering)g
+(Sp)t(eci\014cation)0 4538 y Fi(The)27 b(optional)g(column/k)m(eyw)m
+(ord)h(\014ltering)e(sp)s(eci\014er)g(is)h(used)g(to)i(mo)s(dify)d(the)
+i(column)f(structure)g(and/or)h(the)0 4650 y(header)38
+b(k)m(eyw)m(ords)h(in)e(the)i(HDU)g(that)h(w)m(as)f(selected)g(with)e
+(the)i(previous)e(HDU)i(lo)s(cation)f(sp)s(eci\014er.)64
+b(This)0 4763 y(\014ltering)40 b(sp)s(eci\014er)g(m)m(ust)i(b)s(e)f
+(enclosed)h(in)e(square)i(brac)m(k)m(ets)h(and)e(can)h(b)s(e)f
+(distinguished)d(from)k(a)g(general)0 4876 y(ro)m(w)d(\014lter)f(sp)s
+(eci\014er)f(\(describ)s(ed)g(b)s(elo)m(w\))h(b)m(y)h(the)g(fact)h
+(that)f(it)f(b)s(egins)f(with)h(the)h(string)f('col)h(')g(and)f(is)g
+(not)0 4989 y(immediately)27 b(follo)m(w)m(ed)h(b)m(y)g(an)g(equals)g
+(sign.)39 b(The)28 b(original)e(\014le)h(is)h(not)g(c)m(hanged)h(b)m(y)
+f(this)g(\014ltering)e(op)s(eration,)0 5102 y(and)40
+b(instead)g(the)h(mo)s(di\014cations)e(are)i(made)f(on)h(a)g(cop)m(y)g
+(of)g(the)g(input)e(FITS)h(\014le)f(\(usually)g(in)g(memory\),)0
+5215 y(whic)m(h)32 b(also)h(con)m(tains)g(a)g(cop)m(y)h(of)f(all)f(the)
+i(other)f(HDUs)h(in)d(the)i(\014le.)48 b(This)32 b(temp)s(orary)g
+(\014le)g(is)g(passed)h(to)h(the)0 5328 y(application)c(program)i(and)f
+(will)e(p)s(ersist)h(only)h(un)m(til)f(the)i(\014le)f(is)g(closed)h(or)
+g(un)m(til)e(the)i(program)f(exits,)i(unless)0 5441 y(the)e(out\014le)e
+(sp)s(eci\014er)g(\(see)i(ab)s(o)m(v)m(e\))h(is)e(also)g(supplied.)0
+5601 y(The)h(column/k)m(eyw)m(ord)g(\014lter)f(can)h(b)s(e)g(used)f(to)
+i(p)s(erform)e(the)i(follo)m(wing)d(op)s(erations.)43
+b(More)32 b(than)f(one)g(op)s(er-)0 5714 y(ation)f(ma)m(y)h(b)s(e)f(sp)
+s(eci\014ed)f(b)m(y)h(separating)g(them)g(with)g(semi-colons.)p
+eop
+%%Page: 27 33
+27 32 bop 0 299 a Fg(4.8.)72 b(COLUMN)30 b(AND)h(KEYW)m(ORD)g(FIL)-8
+b(TERING)31 b(SPECIFICA)-8 b(TION)1120 b Fi(27)136 555
+y Fc(\017)46 b Fi(Cop)m(y)36 b(only)f(a)h(sp)s(eci\014ed)f(list)f(of)i
+(columns)f(columns)f(to)j(the)f(\014ltered)f(input)f(\014le.)56
+b(The)36 b(list)e(of)i(column)227 668 y(name)c(should)e(b)s(e)i
+(separated)g(b)m(y)g(semi-colons.)46 b(Wild)30 b(card)i(c)m(haracters)i
+(ma)m(y)e(b)s(e)g(used)f(in)g(the)h(column)227 781 y(names)37
+b(to)h(matc)m(h)g(m)m(ultiple)d(columns.)60 b(If)37 b(the)g(expression)
+f(con)m(tains)i(b)s(oth)e(a)i(list)d(of)j(columns)e(to)i(b)s(e)227
+894 y(included)f(and)h(columns)g(to)h(b)s(e)g(deleted,)i(then)d(all)g
+(the)h(columns)f(in)g(the)h(original)e(table)i(except)h(the)227
+1007 y(explicitly)28 b(deleted)i(columns)f(will)e(app)s(ear)j(in)f(the)
+h(\014ltered)f(table)h(\(i.e.,)h(there)f(is)g(no)g(need)f(to)i
+(explicitly)227 1120 y(list)e(the)i(columns)e(to)i(b)s(e)f(included)d
+(if)j(an)m(y)g(columns)f(are)i(b)s(eing)e(deleted\).)136
+1295 y Fc(\017)46 b Fi(Delete)31 b(a)e(column)f(or)h(k)m(eyw)m(ord)h(b)
+m(y)f(listing)e(the)i(name)g(preceded)g(b)m(y)g(a)g(min)m(us)f(sign)g
+(or)h(an)g(exclamation)227 1408 y(mark)c(\(!\),)h(e.g.,)i('-TIME')d
+(will)d(delete)j(the)f(TIME)h(column)e(if)g(it)i(exists,)g(otherwise)f
+(the)h(TIME)f(k)m(eyw)m(ord.)227 1520 y(An)35 b(error)f(is)g(returned)f
+(if)h(neither)f(a)j(column)d(nor)h(k)m(eyw)m(ord)h(with)f(this)f(name)i
+(exists.)53 b(Note)36 b(that)g(the)227 1633 y(exclamation)25
+b(p)s(oin)m(t,)h(')10 b(!',)27 b(is)d(a)h(sp)s(ecial)f(UNIX)h(c)m
+(haracter,)j(so)d(if)f(it)h(is)f(used)g(on)h(the)g(command)g(line)e
+(rather)227 1746 y(than)33 b(en)m(tered)h(at)g(a)g(task)g(prompt,)f(it)
+g(m)m(ust)g(b)s(e)g(preceded)g(b)m(y)g(a)h(bac)m(kslash)f(to)h(force)g
+(the)f(UNIX)h(shell)227 1859 y(to)d(ignore)f(it.)136
+2034 y Fc(\017)46 b Fi(Rename)29 b(an)g(existing)e(column)g(or)i(k)m
+(eyw)m(ord)g(with)e(the)i(syn)m(tax)g('NewName)h(==)e(OldName'.)39
+b(An)28 b(error)227 2147 y(is)i(returned)f(if)g(neither)h(a)g(column)f
+(nor)h(k)m(eyw)m(ord)h(with)e(this)h(name)g(exists.)136
+2322 y Fc(\017)46 b Fi(App)s(end)37 b(a)j(new)f(column)e(or)j(k)m(eyw)m
+(ord)f(to)h(the)f(table.)67 b(T)-8 b(o)40 b(create)g(a)g(column,)g(giv)
+m(e)g(the)f(new)g(name,)227 2435 y(optionally)34 b(follo)m(w)m(ed)h(b)m
+(y)g(the)g(datat)m(yp)s(e)h(in)e(paren)m(theses,)j(follo)m(w)m(ed)e(b)m
+(y)g(a)h(single)e(equals)g(sign)g(and)h(an)227 2548 y(expression)f(to)i
+(b)s(e)e(used)g(to)i(compute)f(the)g(v)-5 b(alue)34 b(\(e.g.,)k('new)m
+(col\(1J\))e(=)f(0')g(will)e(create)j(a)f(new)g(32-bit)227
+2661 y(in)m(teger)j(column)e(called)h('new)m(col')g(\014lled)f(with)g
+(zeros\).)62 b(The)37 b(datat)m(yp)s(e)h(is)f(sp)s(eci\014ed)e(using)h
+(the)i(same)227 2774 y(syn)m(tax)28 b(that)h(is)d(allo)m(w)m(ed)i(for)f
+(the)h(v)-5 b(alue)27 b(of)h(the)g(FITS)f(TF)m(ORMn)g(k)m(eyw)m(ord)h
+(\(e.g.,)i('I',)f('J',)f('E',)g('D',)h(etc.)227 2886
+y(for)37 b(binary)e(tables,)k(and)d('I8',)k(F12.3',)h('E20.12',)g(etc.)
+62 b(for)37 b(ASCI)s(I)e(tables\).)61 b(If)37 b(the)g(datat)m(yp)s(e)h
+(is)e(not)227 2999 y(sp)s(eci\014ed)23 b(then)g(an)h(appropriate)g
+(datat)m(yp)s(e)h(will)c(b)s(e)j(c)m(hosen)g(dep)s(ending)e(on)i(the)g
+(form)g(of)g(the)g(expression)227 3112 y(\(ma)m(y)f(b)s(e)d(a)i(c)m
+(haracter)h(string,)g(logical,)f(bit,)h(long)e(in)m(teger,)j(or)d
+(double)f(column\).)37 b(An)21 b(appropriate)f(v)m(ector)227
+3225 y(coun)m(t)31 b(\(in)f(the)g(case)i(of)e(binary)f(tables\))h(will)
+e(also)i(b)s(e)g(added)g(if)f(not)i(explicitly)d(sp)s(eci\014ed.)227
+3369 y(When)e(creating)g(a)g(new)f(k)m(eyw)m(ord,)j(the)e(k)m(eyw)m
+(ord)g(name)g(m)m(ust)g(b)s(e)f(preceded)g(b)m(y)h(a)g(p)s(ound)e(sign)
+g('#',)k(and)227 3482 y(the)h(expression)e(m)m(ust)h(ev)-5
+b(aluate)29 b(to)g(a)g(scalar)f(\(i.e.,)h(cannot)g(ha)m(v)m(e)h(a)f
+(column)e(name)h(in)f(the)i(expression\).)227 3595 y(The)j(commen)m(t)i
+(string)e(for)g(the)h(k)m(eyw)m(ord)h(ma)m(y)f(b)s(e)f(sp)s(eci\014ed)f
+(in)g(paren)m(theses)i(immediately)e(follo)m(wing)227
+3708 y(the)e(k)m(eyw)m(ord)f(name)g(\(instead)g(of)g(supplying)d(a)j
+(datat)m(yp)s(e)h(as)g(in)d(the)j(case)g(of)f(creating)g(a)h(new)f
+(column\).)136 3883 y Fc(\017)46 b Fi(Recompute)f(\(o)m(v)m(erwrite\))h
+(the)e(v)-5 b(alues)43 b(in)g(an)h(existing)g(column)f(or)h(k)m(eyw)m
+(ord)g(b)m(y)g(giving)g(the)g(name)227 3996 y(follo)m(w)m(ed)30
+b(b)m(y)h(an)f(equals)g(sign)f(and)h(an)g(arithmetic)g(expression.)0
+4217 y(The)23 b(expression)f(that)j(is)d(used)h(when)g(app)s(ending)e
+(or)i(recomputing)g(columns)f(or)i(k)m(eyw)m(ords)g(can)g(b)s(e)f
+(arbitrarily)0 4330 y(complex)35 b(and)h(ma)m(y)g(b)s(e)f(a)h(function)
+f(of)h(other)g(header)g(k)m(eyw)m(ord)g(v)-5 b(alues)35
+b(and)g(other)h(columns)f(\(in)g(the)h(same)0 4443 y(ro)m(w\).)63
+b(The)37 b(full)e(syn)m(tax)k(and)e(a)m(v)-5 b(ailable)37
+b(functions)f(for)h(the)h(expression)e(are)i(describ)s(ed)e(b)s(elo)m
+(w)h(in)f(the)i(ro)m(w)0 4556 y(\014lter)29 b(sp)s(eci\014cation)h
+(section.)0 4716 y(If)d(the)h(expression)f(con)m(tains)g(b)s(oth)g(a)h
+(list)f(of)h(columns)e(to)i(b)s(e)g(included)c(and)k(columns)e(to)i(b)s
+(e)f(deleted,)i(then)e(all)0 4829 y(the)34 b(columns)f(in)g(the)h
+(original)e(table)i(except)h(the)f(explicitly)e(deleted)i(columns)e
+(will)g(app)s(ear)h(in)g(the)h(\014ltered)0 4942 y(table.)0
+5102 y(F)-8 b(or)30 b(complex)g(or)f(commonly)g(used)g(op)s(erations,)h
+(one)f(can)h(also)g(place)g(the)f(op)s(erations)g(in)m(to)h(an)f
+(external)h(text)0 5215 y(\014le)g(and)g(imp)s(ort)f(it)h(in)m(to)h
+(the)g(column)f(\014lter)f(using)h(the)h(syn)m(tax)g('[col)g
+(@\014lename.txt]'.)42 b(The)31 b(op)s(erations)f(can)0
+5328 y(extend)c(o)m(v)m(er)i(m)m(ultiple)c(lines)h(of)h(the)h(\014le,)g
+(but)e(m)m(ultiple)f(op)s(erations)i(m)m(ust)g(still)f(b)s(e)g
+(separated)i(b)m(y)g(semicolons.)0 5441 y(An)m(y)h(lines)f(in)g(the)h
+(external)h(text)g(\014le)e(that)i(b)s(egin)e(with)g(2)i(slash)e(c)m
+(haracters)j(\('//'\))g(will)c(b)s(e)h(ignored)h(and)f(ma)m(y)0
+5554 y(b)s(e)j(used)f(to)i(add)f(commen)m(ts)h(in)m(to)g(the)f(\014le.)
+0 5714 y(Examples:)p eop
+%%Page: 28 34
+28 33 bop 0 299 a Fi(28)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)143 555 y
+Fe([col)47 b(Time;rate])713 b(-)47 b(only)g(the)g(Time)g(and)g(rate)f
+(columns)g(will)1670 668 y(appear)h(in)g(the)g(filtered)e(input)i
+(file.)143 894 y([col)g(Time;*raw])713 b(-)47 b(include)f(the)h(Time)g
+(column)f(and)h(any)g(other)1670 1007 y(columns)f(whose)h(name)f(ends)h
+(with)g('raw'.)143 1233 y([col)g(-TIME;)f(Good)h(==)g(STATUS])141
+b(-)47 b(deletes)f(the)h(TIME)g(column)f(and)1670 1346
+y(renames)g(the)h(status)f(column)g(to)i('Good')143 1571
+y([col)f(PI=PHA)f(*)h(1.1)g(+)h(0.2])285 b(-)47 b(creates)f(new)h(PI)g
+(column)f(from)h(PHA)g(values)143 1797 y([col)g(rate)f(=)i
+(rate/exposure])139 b(-)48 b(recomputes)d(the)i(rate)f(column)g(by)i
+(dividing)1670 1910 y(it)g(by)f(the)g(EXPOSURE)e(keyword)h(value.)0
+2252 y Fd(4.9)135 b(Ro)l(w)46 b(Filtering)g(Sp)t(eci\014cation)0
+2503 y Fi(When)29 b(en)m(tering)g(the)g(name)g(of)g(a)g(FITS)f(table)h
+(that)h(is)d(to)j(b)s(e)e(op)s(ened)h(b)m(y)f(a)i(program,)f(an)g
+(optional)f(ro)m(w)h(\014lter)0 2616 y(ma)m(y)i(b)s(e)g(sp)s(eci\014ed)
+e(to)i(select)g(a)h(subset)e(of)h(the)g(ro)m(ws)f(in)g(the)h(table.)42
+b(A)31 b(temp)s(orary)f(new)g(FITS)g(\014le)g(is)g(created)0
+2729 y(on)25 b(the)h(\015y)e(whic)m(h)g(con)m(tains)h(only)g(those)h
+(ro)m(ws)f(for)g(whic)m(h)f(the)h(ro)m(w)g(\014lter)g(expression)f(ev)
+-5 b(aluates)25 b(to)h(true.)39 b(\(The)0 2842 y(primary)25
+b(arra)m(y)i(and)f(an)m(y)g(other)h(extensions)f(in)f(the)i(input)e
+(\014le)g(are)i(also)g(copied)f(to)h(the)f(temp)s(orary)h(\014le\).)38
+b(The)0 2955 y(original)27 b(FITS)i(\014le)f(is)g(closed)h(and)f(the)i
+(new)e(virtual)g(\014le)g(is)g(op)s(ened)g(b)m(y)h(the)h(application)d
+(program.)40 b(The)29 b(ro)m(w)0 3068 y(\014lter)36 b(expression)g(is)h
+(enclosed)g(in)f(square)h(brac)m(k)m(ets)i(follo)m(wing)d(the)h(\014le)
+g(name)g(and)g(extension)g(name)g(\(e.g.,)0 3181 y('\014le.\014ts[ev)m
+(en)m(ts][GRADE==50]')28 b(selects)d(only)f(those)i(ro)m(ws)f(where)f
+(the)h(GRADE)h(column)e(v)-5 b(alue)24 b(equals)g(50\).)0
+3294 y(When)33 b(dealing)f(with)g(tables)g(where)h(eac)m(h)h(ro)m(w)f
+(has)g(an)g(asso)s(ciated)h(time)f(and/or)g(2D)g(spatial)g(p)s
+(osition,)f(the)0 3407 y(ro)m(w)g(\014lter)g(expression)e(can)j(also)f
+(b)s(e)g(used)f(to)i(select)g(ro)m(ws)f(based)g(on)g(the)g(times)g(in)f
+(a)h(Go)s(o)s(d)g(Time)f(In)m(terv)-5 b(als)0 3520 y(\(GTI\))31
+b(extension,)f(or)g(on)h(spatial)e(p)s(osition)g(as)h(giv)m(en)h(in)e
+(a)h(SA)m(O-st)m(yle)h(region)f(\014le.)0 3818 y Fb(4.9.1)112
+b(General)38 b(Syn)m(tax)0 4039 y Fi(The)32 b(ro)m(w)h(\014ltering)e
+(expression)h(can)h(b)s(e)f(an)h(arbitrarily)d(complex)i(series)g(of)h
+(op)s(erations)f(p)s(erformed)g(on)g(con-)0 4152 y(stan)m(ts,)39
+b(k)m(eyw)m(ord)e(v)-5 b(alues,)37 b(and)f(column)f(data)j(tak)m(en)f
+(from)f(the)h(sp)s(eci\014ed)d(FITS)i(T)-8 b(ABLE)37
+b(extension.)58 b(The)0 4264 y(expression)36 b(m)m(ust)i(ev)-5
+b(aluate)38 b(to)h(a)f(b)s(o)s(olean)f(v)-5 b(alue)37
+b(for)g(eac)m(h)i(ro)m(w)f(of)g(the)f(table,)j(where)d(a)h(v)-5
+b(alue)38 b(of)f(F)-10 b(ALSE)0 4377 y(means)30 b(that)h(the)g(ro)m(w)f
+(will)e(b)s(e)i(excluded.)0 4538 y(F)-8 b(or)34 b(complex)f(or)h
+(commonly)e(used)h(\014lters,)g(one)h(can)g(place)f(the)h(expression)e
+(in)m(to)h(a)h(text)g(\014le)f(and)g(imp)s(ort)e(it)0
+4650 y(in)m(to)37 b(the)f(ro)m(w)h(\014lter)f(using)f(the)i(syn)m(tax)g
+('[@\014lename.txt]'.)60 b(The)36 b(expression)g(can)g(b)s(e)g
+(arbitrarily)e(complex)0 4763 y(and)27 b(extend)i(o)m(v)m(er)g(m)m
+(ultiple)d(lines)g(of)i(the)h(\014le.)39 b(An)m(y)28
+b(lines)e(in)h(the)h(external)g(text)h(\014le)e(that)i(b)s(egin)e(with)
+g(2)h(slash)0 4876 y(c)m(haracters)k(\('//'\))g(will)c(b)s(e)i(ignored)
+f(and)h(ma)m(y)h(b)s(e)f(used)f(to)i(add)f(commen)m(ts)h(in)m(to)g(the)
+f(\014le.)0 5036 y(Keyw)m(ord)37 b(and)f(column)f(data)j(are)f
+(referenced)g(b)m(y)g(name.)60 b(An)m(y)37 b(string)e(of)i(c)m
+(haracters)i(not)e(surrounded)d(b)m(y)0 5149 y(quotes)41
+b(\(ie,)i(a)e(constan)m(t)h(string\))e(or)g(follo)m(w)m(ed)g(b)m(y)h
+(an)f(op)s(en)g(paren)m(theses)h(\(ie,)i(a)e(function)e(name\))i(will)d
+(b)s(e)0 5262 y(initially)33 b(in)m(terpreted)i(as)i(a)g(column)e(name)
+h(and)g(its)g(con)m(ten)m(ts)i(for)e(the)h(curren)m(t)f(ro)m(w)g
+(inserted)f(in)m(to)i(the)f(ex-)0 5375 y(pression.)j(If)28
+b(no)h(suc)m(h)g(column)f(exists,)h(a)h(k)m(eyw)m(ord)f(of)h(that)f
+(name)g(will)e(b)s(e)h(searc)m(hed)i(for)f(and)f(its)h(v)-5
+b(alue)28 b(used,)0 5488 y(if)35 b(found.)55 b(T)-8 b(o)36
+b(force)g(the)g(name)g(to)h(b)s(e)e(in)m(terpreted)g(as)h(a)g(k)m(eyw)m
+(ord)g(\(in)f(case)h(there)g(is)f(b)s(oth)g(a)h(column)f(and)0
+5601 y(k)m(eyw)m(ord)41 b(with)d(the)j(same)f(name\),)j(precede)d(the)h
+(k)m(eyw)m(ord)f(name)g(with)f(a)i(single)d(p)s(ound)g(sign,)k('#',)h
+(as)d(in)0 5714 y('#NAXIS2'.)g(Due)27 b(to)g(the)f(generalities)g(of)g
+(FITS)g(column)f(and)h(k)m(eyw)m(ord)h(names,)g(if)e(the)i(column)e(or)
+h(k)m(eyw)m(ord)p eop
+%%Page: 29 35
+29 34 bop 0 299 a Fg(4.9.)72 b(R)m(O)m(W)31 b(FIL)-8
+b(TERING)31 b(SPECIFICA)-8 b(TION)2072 b Fi(29)0 555
+y(name)34 b(con)m(tains)g(a)g(space)h(or)e(a)i(c)m(haracter)g(whic)m(h)
+e(migh)m(t)g(app)s(ear)g(as)i(an)e(arithmetic)g(term)h(then)g(inclose)f
+(the)0 668 y(name)d(in)f('$')j(c)m(haracters)g(as)e(in)f($MAX)j(PHA$)f
+(or)f(#$MAX-PHA$.)43 b(Names)31 b(are)f(case)i(insensitiv)m(e.)0
+828 y(T)-8 b(o)32 b(access)g(a)g(table)f(en)m(try)h(in)e(a)i(ro)m(w)f
+(other)h(than)f(the)g(curren)m(t)g(one,)h(follo)m(w)f(the)g(column's)g
+(name)g(with)f(a)i(ro)m(w)0 941 y(o\013set)37 b(within)c(curly)h
+(braces.)57 b(F)-8 b(or)36 b(example,)h('PHA)p Fc(f)p
+Fi(-3)p Fc(g)p Fi(')h(will)33 b(ev)-5 b(aluate)37 b(to)f(the)g(v)-5
+b(alue)35 b(of)h(column)e(PHA,)j(3)0 1054 y(ro)m(ws)28
+b(ab)s(o)m(v)m(e)i(the)e(ro)m(w)h(curren)m(tly)e(b)s(eing)g(pro)s
+(cessed.)40 b(One)28 b(cannot)h(sp)s(ecify)e(an)h(absolute)g(ro)m(w)g
+(n)m(um)m(b)s(er,)g(only)g(a)0 1167 y(relativ)m(e)i(o\013set.)42
+b(Ro)m(ws)31 b(that)g(fall)e(outside)h(the)g(table)g(will)e(b)s(e)i
+(treated)h(as)g(unde\014ned,)d(or)j(NULLs.)0 1327 y(Bo)s(olean)g(op)s
+(erators)g(can)g(b)s(e)f(used)f(in)h(the)g(expression)g(in)f(either)h
+(their)g(F)-8 b(ortran)31 b(or)f(C)h(forms.)40 b(The)30
+b(follo)m(wing)0 1440 y(b)s(o)s(olean)f(op)s(erators)i(are)g(a)m(v)-5
+b(ailable:)191 1666 y Fe("equal")428 b(.eq.)46 b(.EQ.)h(==)95
+b("not)46 b(equal")476 b(.ne.)94 b(.NE.)h(!=)191 1779
+y("less)46 b(than")238 b(.lt.)46 b(.LT.)h(<)143 b("less)46
+b(than/equal")188 b(.le.)94 b(.LE.)h(<=)47 b(=<)191 1892
+y("greater)e(than")95 b(.gt.)46 b(.GT.)h(>)143 b("greater)45
+b(than/equal")g(.ge.)94 b(.GE.)h(>=)47 b(=>)191 2005
+y("or")572 b(.or.)46 b(.OR.)h(||)95 b("and")762 b(.and.)46
+b(.AND.)h(&&)191 2118 y("negation")236 b(.not.)46 b(.NOT.)h(!)95
+b("approx.)45 b(equal\(1e-7\)")92 b(~)0 2344 y Fi(Note)32
+b(that)g(the)f(exclamation)g(p)s(oin)m(t,)f(')10 b(!',)33
+b(is)d(a)h(sp)s(ecial)e(UNIX)j(c)m(haracter,)h(so)e(if)f(it)g(is)g
+(used)g(on)h(the)g(command)0 2457 y(line)g(rather)h(than)h(en)m(tered)g
+(at)g(a)g(task)g(prompt,)g(it)f(m)m(ust)g(b)s(e)g(preceded)h(b)m(y)f(a)
+h(bac)m(kslash)f(to)i(force)f(the)g(UNIX)0 2570 y(shell)c(to)i(ignore)f
+(it.)0 2730 y(The)i(expression)f(ma)m(y)j(also)e(include)e(arithmetic)i
+(op)s(erators)h(and)f(functions.)46 b(T)-8 b(rigonometric)32
+b(functions)f(use)0 2843 y(radians,)22 b(not)h(degrees.)38
+b(The)22 b(follo)m(wing)e(arithmetic)h(op)s(erators)i(and)e(functions)f
+(can)j(b)s(e)e(used)g(in)g(the)h(expression)0 2956 y(\(function)37
+b(names)g(are)h(case)g(insensitiv)m(e\).)61 b(A)37 b(n)m(ull)f(v)-5
+b(alue)37 b(will)d(b)s(e)j(returned)g(in)f(case)i(of)g(illegal)e(op)s
+(erations)0 3069 y(suc)m(h)30 b(as)h(divide)d(b)m(y)i(zero,)i
+(sqrt\(negativ)m(e\))g(log\(negativ)m(e\),)g(log10\(negativ)m(e\),)i
+(arccos\(.gt.)43 b(1\),)32 b(arcsin\(.gt.)41 b(1\).)191
+3295 y Fe("addition")522 b(+)477 b("subtraction")d(-)191
+3408 y("multiplication")234 b(*)477 b("division")618
+b(/)191 3521 y("negation")522 b(-)477 b("exponentiation")330
+b(**)143 b(^)191 3634 y("absolute)45 b(value")237 b(abs\(x\))g
+("cosine")714 b(cos\(x\))191 3747 y("sine")g(sin\(x\))237
+b("tangent")666 b(tan\(x\))191 3860 y("arc)47 b(cosine")427
+b(arccos\(x\))93 b("arc)47 b(sine")619 b(arcsin\(x\))191
+3973 y("arc)47 b(tangent")379 b(arctan\(x\))93 b("arc)47
+b(tangent")475 b(arctan2\(x,y\))191 4085 y("hyperbolic)45
+b(cos")237 b(cosh\(x\))189 b("hyperbolic)45 b(sin")333
+b(sinh\(x\))191 4198 y("hyperbolic)45 b(tan")237 b(tanh\(x\))189
+b("round)46 b(to)h(nearest)f(int")h(round\(x\))191 4311
+y("round)f(down)h(to)g(int")94 b(floor\(x\))141 b("round)46
+b(up)h(to)h(int")285 b(ceil\(x\))191 4424 y("exponential")378
+b(exp\(x\))237 b("square)46 b(root")476 b(sqrt\(x\))191
+4537 y("natural)45 b(log")381 b(log\(x\))237 b("common)46
+b(log")524 b(log10\(x\))191 4650 y("modulus")570 b(i)48
+b(\045)f(j)286 b("random)46 b(#)h([0.0,1.0\)")141 b(random\(\))191
+4763 y("minimum")570 b(min\(x,y\))141 b("maximum")666
+b(max\(x,y\))191 4876 y("cumulative)45 b(sum")189 b(accum\(x\))141
+b("sequential)45 b(difference")g(seqdiff\(x\))191 4989
+y("if-then-else")330 b(b?x:y)0 5215 y Fi(An)31 b(alternate)h(syn)m(tax)
+g(for)f(the)g(min)f(and)h(max)g(functions)f(has)h(only)f(a)i(single)e
+(argumen)m(t)i(whic)m(h)e(should)f(b)s(e)i(a)0 5328 y(v)m(ector)g(v)-5
+b(alue)29 b(\(see)h(b)s(elo)m(w\).)40 b(The)29 b(result)f(will)f(b)s(e)
+h(the)i(minim)m(um/maxim)m(um)c(elemen)m(t)j(con)m(tained)h(within)d
+(the)0 5441 y(v)m(ector.)0 5601 y(The)35 b(accum\(x\))i(function)e
+(forms)g(the)h(cum)m(ulativ)m(e)g(sum)f(of)h(x,)h(elemen)m(t)g(b)m(y)f
+(elemen)m(t.)57 b(V)-8 b(ector)38 b(columns)d(are)0 5714
+y(supp)s(orted)i(simply)f(b)m(y)i(p)s(erforming)e(the)j(summation)f
+(pro)s(cess)g(through)f(all)h(the)h(v)-5 b(alues.)64
+b(Null)37 b(v)-5 b(alues)38 b(are)p eop
+%%Page: 30 36
+30 35 bop 0 299 a Fi(30)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)0 555 y Fi(treated)30
+b(as)f(0.)41 b(The)29 b(seqdi\013\(x\))g(function)e(forms)i(the)g
+(sequen)m(tial)g(di\013erence)f(of)i(x,)f(elemen)m(t)h(b)m(y)f(elemen)m
+(t.)40 b(The)0 668 y(\014rst)c(v)-5 b(alue)37 b(of)g(seqdi\013)f(is)g
+(the)h(\014rst)g(v)-5 b(alue)36 b(of)h(x.)61 b(A)37 b(single)f(n)m(ull)
+f(v)-5 b(alue)37 b(in)e(x)i(causes)h(a)f(pair)f(of)h(n)m(ulls)e(in)h
+(the)0 781 y(output.)55 b(The)35 b(seqdi\013)f(and)h(accum)g(functions)
+f(are)i(functional)d(in)m(v)m(erses,)k(i.e.,)g(seqdi\013\(accum\(x\)\))
+f(==)f(x)g(as)0 894 y(long)30 b(as)h(no)f(n)m(ull)e(v)-5
+b(alues)30 b(are)h(presen)m(t.)0 1054 y(The)38 b(follo)m(wing)f(t)m(yp)
+s(e)i(casting)g(op)s(erators)g(are)g(a)m(v)-5 b(ailable,)41
+b(where)d(the)h(inclosing)e(paren)m(theses)i(are)g(required)0
+1167 y(and)30 b(tak)m(en)h(from)f(the)h(C)f(language)g(usage.)42
+b(Also,)30 b(the)h(in)m(teger)f(to)i(real)e(casts)h(v)-5
+b(alues)29 b(to)j(double)d(precision:)764 1398 y Fe("real)46
+b(to)h(integer")189 b(\(int\))46 b(x)239 b(\(INT\))46
+b(x)764 1510 y("integer)f(to)i(real")190 b(\(float\))46
+b(i)143 b(\(FLOAT\))45 b(i)0 1741 y Fi(In)30 b(addition,)e(sev)m(eral)j
+(constan)m(ts)h(are)f(built)d(in)h(for)h(use)g(in)f(n)m(umerical)g
+(expressions:)382 1972 y Fe(#pi)667 b(3.1415...)284 b(#e)620
+b(2.7182...)382 2085 y(#deg)f(#pi/180)380 b(#row)524
+b(current)46 b(row)h(number)382 2197 y(#null)428 b(undefined)45
+b(value)142 b(#snull)428 b(undefined)45 b(string)0 2428
+y Fi(A)40 b(string)e(constan)m(t)j(m)m(ust)e(b)s(e)g(enclosed)g(in)g
+(quotes)h(as)f(in)g('Crab'.)67 b(The)39 b("n)m(ull")g(constan)m(ts)h
+(are)g(useful)e(for)0 2541 y(conditionally)d(setting)j(table)g(v)-5
+b(alues)37 b(to)h(a)g(NULL,)g(or)g(unde\014ned,)f(v)-5
+b(alue)38 b(\(eg.,)j("col1==-99)e(?)62 b(#NULL)38 b(:)0
+2654 y(col1"\).)0 2814 y(There)27 b(is)f(also)i(a)f(function)f(for)i
+(testing)f(if)f(t)m(w)m(o)j(v)-5 b(alues)27 b(are)h(close)f(to)i(eac)m
+(h)f(other,)h(i.e.,)f(if)e(they)i(are)g("near")g(eac)m(h)0
+2927 y(other)c(to)h(within)c(a)j(user)g(sp)s(eci\014ed)e(tolerance.)39
+b(The)24 b(argumen)m(ts,)h(v)-5 b(alue)p 2503 2927 28
+4 v 33 w(1)24 b(and)f(v)-5 b(alue)p 2980 2927 V 32 w(2)25
+b(can)f(b)s(e)f(in)m(teger)h(or)g(real)0 3040 y(and)32
+b(represen)m(t)h(the)g(t)m(w)m(o)h(v)-5 b(alues)32 b(who's)g(pro)m
+(ximit)m(y)g(is)g(b)s(eing)f(tested)i(to)h(b)s(e)e(within)e(the)j(sp)s
+(eci\014ed)e(tolerance,)0 3153 y(also)f(an)h(in)m(teger)f(or)h(real:)
+955 3383 y Fe(near\(value_1,)44 b(value_2,)h(tolerance\))0
+3614 y Fi(When)24 b(a)i(NULL,)e(or)h(unde\014ned,)f(v)-5
+b(alue)24 b(is)g(encoun)m(tered)h(in)f(the)g(FITS)g(table,)i(the)f
+(expression)f(will)e(ev)-5 b(aluate)25 b(to)0 3727 y(NULL)31
+b(unless)e(the)i(unde\014ned)e(v)-5 b(alue)30 b(is)g(not)h(actually)f
+(required)f(for)i(ev)-5 b(aluation,)31 b(e.g.)43 b("TR)m(UE)31
+b(.or.)43 b(NULL")0 3840 y(ev)-5 b(aluates)31 b(to)g(TR)m(UE.)g(The)f
+(follo)m(wing)e(t)m(w)m(o)k(functions)d(allo)m(w)h(some)h(NULL)f
+(detection)h(and)f(handling:)430 4070 y Fe("a)47 b(null)f(value?")667
+b(ISNULL\(x\))430 4183 y("define)45 b(a)j(value)e(for)h(null")190
+b(DEFNULL\(x,y\))0 4414 y Fi(The)36 b(former)h(returns)e(a)i(b)s(o)s
+(olean)f(v)-5 b(alue)36 b(of)h(TR)m(UE)g(if)f(the)h(argumen)m(t)g(x)g
+(is)f(NULL.)h(The)f(later)h("de\014nes")g(a)0 4527 y(v)-5
+b(alue)34 b(to)h(b)s(e)e(substituted)g(for)h(NULL)g(v)-5
+b(alues;)36 b(it)e(returns)f(the)h(v)-5 b(alue)34 b(of)g(x)g(if)f(x)i
+(is)e(not)h(NULL,)h(otherwise)e(it)0 4640 y(returns)c(the)i(v)-5
+b(alue)30 b(of)g(y)-8 b(.)0 4926 y Fb(4.9.2)112 b(Bit)36
+b(Masks)0 5145 y Fi(Bit)f(masks)g(can)h(b)s(e)f(used)f(to)i(select)g
+(out)f(ro)m(ws)h(from)e(bit)h(columns)f(\(TF)m(ORMn)h(=)g(#X\))h(in)e
+(FITS)g(\014les.)54 b(T)-8 b(o)0 5257 y(represen)m(t)30
+b(the)h(mask,)g(binary)-8 b(,)29 b(o)s(ctal,)i(and)f(hex)g(formats)g
+(are)h(allo)m(w)m(ed:)811 5488 y Fe(binary:)142 b
+(b0110xx1010000101xxxx00)o(01)811 5601 y(octal:)190 b(o720x1)46
+b(->)h(\(b111010000xxx001\))811 5714 y(hex:)286 b(h0FxD)94
+b(->)47 b(\(b00001111xxxx1101\))p eop
+%%Page: 31 37
+31 36 bop 0 299 a Fg(4.9.)72 b(R)m(O)m(W)31 b(FIL)-8
+b(TERING)31 b(SPECIFICA)-8 b(TION)2072 b Fi(31)0 555
+y(In)22 b(all)g(the)h(represen)m(tations,)i(an)d(x)h(or)g(X)g(is)f
+(allo)m(w)m(ed)h(in)e(the)i(mask)g(as)g(a)h(wild)c(card.)38
+b(Note)25 b(that)e(the)g(x)g(represen)m(ts)0 668 y(a)k(di\013eren)m(t)g
+(n)m(um)m(b)s(er)f(of)h(wild)d(card)j(bits)f(in)g(eac)m(h)i(represen)m
+(tation.)40 b(All)25 b(represen)m(tations)i(are)h(case)g(insensitiv)m
+(e.)0 828 y(T)-8 b(o)28 b(construct)g(the)g(b)s(o)s(olean)e(expression)
+h(using)f(the)i(mask)f(as)h(the)g(b)s(o)s(olean)e(equal)h(op)s(erator)h
+(describ)s(ed)e(ab)s(o)m(v)m(e)0 941 y(on)34 b(a)h(bit)f(table)h
+(column.)52 b(F)-8 b(or)35 b(example,)h(if)d(y)m(ou)i(had)f(a)h(7)g
+(bit)f(column)f(named)h(\015ags)h(in)e(a)i(FITS)f(table)h(and)0
+1054 y(w)m(an)m(ted)c(all)e(ro)m(ws)i(ha)m(ving)f(the)g(bit)g(pattern)g
+(0010011,)k(the)c(selection)h(expression)e(w)m(ould)g(b)s(e:)1336
+1301 y Fe(flags)47 b(==)g(b0010011)191 1414 y(or)1336
+1526 y(flags)g(.eq.)f(b10011)0 1773 y Fi(It)35 b(is)f(also)h(p)s
+(ossible)d(to)k(test)g(if)e(a)h(range)g(of)g(bits)f(is)g(less)g(than,)i
+(less)e(than)h(equal,)h(greater)g(than)e(and)h(greater)0
+1886 y(than)30 b(equal)g(to)h(a)g(particular)e(b)s(o)s(olean)g(v)-5
+b(alue:)1336 2132 y Fe(flags)47 b(<=)g(bxxx010xx)1336
+2245 y(flags)g(.gt.)f(bxxx100xx)1336 2358 y(flags)h(.le.)f(b1xxxxxxx)0
+2605 y Fi(Notice)31 b(the)g(use)f(of)h(the)f(x)g(bit)g(v)-5
+b(alue)30 b(to)h(limit)d(the)i(range)h(of)g(bits)e(b)s(eing)g
+(compared.)0 2765 y(It)j(is)g(not)g(necessary)h(to)g(sp)s(ecify)e(the)i
+(leading)e(\(most)i(signi\014can)m(t\))f(zero)h(\(0\))g(bits)e(in)g
+(the)i(mask,)g(as)g(sho)m(wn)e(in)0 2878 y(the)g(second)f(expression)f
+(ab)s(o)m(v)m(e.)0 3038 y(Bit)43 b(wise)f(AND,)i(OR)e(and)g(NOT)h(op)s
+(erations)f(are)h(also)g(p)s(ossible)d(on)j(t)m(w)m(o)h(or)f(more)g
+(bit)f(\014elds)f(using)h(the)0 3151 y('&'\(AND\),)35
+b(')p Fc(j)p Fi('\(OR\),)g(and)e(the)h(')10 b(!'\(NOT\))34
+b(op)s(erators.)51 b(All)32 b(of)h(these)h(op)s(erators)g(result)e(in)h
+(a)h(bit)e(\014eld)g(whic)m(h)0 3264 y(can)f(then)f(b)s(e)f(used)h
+(with)f(the)i(equal)f(op)s(erator.)41 b(F)-8 b(or)31
+b(example:)1241 3510 y Fe(\(!flags\))45 b(==)j(b1101100)1241
+3623 y(\(flags)e(&)h(b1000001\))f(==)h(bx000001)0 3870
+y Fi(Bit)34 b(\014elds)f(can)h(b)s(e)f(app)s(ended)g(as)h(w)m(ell)f
+(using)g(the)h('+')g(op)s(erator.)53 b(Strings)32 b(can)j(b)s(e)e
+(concatenated)j(this)d(w)m(a)m(y)-8 b(,)0 3983 y(to)s(o.)0
+4271 y Fb(4.9.3)112 b(V)-9 b(ector)36 b(Columns)0 4490
+y Fi(V)-8 b(ector)37 b(columns)d(can)i(also)f(b)s(e)g(used)f(in)g
+(building)e(the)j(expression.)55 b(No)36 b(sp)s(ecial)e(syn)m(tax)h(is)
+g(required)e(if)i(one)0 4603 y(w)m(an)m(ts)46 b(to)f(op)s(erate)h(on)f
+(all)f(elemen)m(ts)h(of)g(the)h(v)m(ector.)86 b(Simply)42
+b(use)j(the)g(column)f(name)h(as)g(for)g(a)g(scalar)0
+4716 y(column.)c(V)-8 b(ector)32 b(columns)e(can)h(b)s(e)f(freely)g(in)
+m(termixed)g(with)f(scalar)i(columns)e(or)i(constan)m(ts)h(in)e
+(virtually)e(all)0 4829 y(expressions.)39 b(The)29 b(result)f(will)e(b)
+s(e)j(of)g(the)g(same)h(dimension)c(as)k(the)f(v)m(ector.)42
+b(Tw)m(o)29 b(v)m(ectors)i(in)d(an)h(expression,)0 4942
+y(though,)f(need)e(to)i(ha)m(v)m(e)g(the)f(same)g(n)m(um)m(b)s(er)f(of)
+h(elemen)m(ts)g(and)f(ha)m(v)m(e)j(the)e(same)g(dimensions.)37
+b(The)26 b(only)g(places)0 5055 y(a)35 b(v)m(ector)h(column)d(cannot)i
+(b)s(e)f(used)f(\(for)i(no)m(w,)g(an)m(yw)m(a)m(y\))h(are)f(the)g(SA)m
+(O)f(region)g(functions)f(and)g(the)i(NEAR)0 5168 y(b)s(o)s(olean)29
+b(function.)0 5328 y(Arithmetic)22 b(and)g(logical)h(op)s(erations)f
+(are)i(all)e(p)s(erformed)f(on)i(an)g(elemen)m(t)g(b)m(y)g(elemen)m(t)h
+(basis.)37 b(Comparing)22 b(t)m(w)m(o)0 5441 y(v)m(ector)32
+b(columns,)d(eg)i("COL1)f(==)g(COL2",)g(th)m(us)g(results)f(in)g
+(another)h(v)m(ector)i(of)e(b)s(o)s(olean)g(v)-5 b(alues)29
+b(indicating)0 5554 y(whic)m(h)g(elemen)m(ts)i(of)f(the)h(t)m(w)m(o)h
+(v)m(ectors)f(are)g(equal.)0 5714 y(Eigh)m(t)f(functions)f(are)i(a)m(v)
+-5 b(ailable)30 b(that)h(op)s(erate)g(on)f(a)h(v)m(ector)h(and)d
+(return)h(a)g(scalar)h(result:)p eop
+%%Page: 32 38
+32 37 bop 0 299 a Fi(32)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)191 555 y
+Fe("minimum")284 b(MIN\(V\))475 b("maximum")714 b(MAX\(V\))191
+668 y("average")284 b(AVERAGE\(V\))f("median")762 b(MEDIAN\(V\))191
+781 y("sumation")236 b(SUM\(V\))475 b("standard)46 b(deviation")188
+b(STDDEV\(V\))191 894 y("#)47 b(of)g(values")94 b(NELEM\(V\))379
+b("#)48 b(of)f(non-null)e(values")94 b(NVALID\(V\))0
+1217 y Fi(where)40 b(V)h(represen)m(ts)g(the)g(name)g(of)h(a)f(v)m
+(ector)h(column)e(or)h(a)h(man)m(ually)d(constructed)i(v)m(ector)i
+(using)c(curly)0 1330 y(brac)m(k)m(ets)27 b(as)f(describ)s(ed)d(b)s
+(elo)m(w.)38 b(The)25 b(\014rst)g(6)h(of)g(these)g(functions)e(ignore)h
+(an)m(y)h(n)m(ull)d(v)-5 b(alues)25 b(in)f(the)i(v)m(ector)h(when)0
+1443 y(computing)i(the)i(result.)0 1603 y(The)h(SUM)h(function)e
+(literally)g(sums)g(all)h(the)h(elemen)m(ts)g(in)f(x,)h(returning)e(a)i
+(scalar)g(v)-5 b(alue.)47 b(If)32 b(x)h(is)f(a)h(b)s(o)s(olean)0
+1716 y(v)m(ector,)40 b(SUM)c(returns)f(the)h(n)m(um)m(b)s(er)f(of)i(TR)
+m(UE)f(elemen)m(ts.)59 b(The)36 b(NELEM)g(function)f(returns)g(the)h(n)
+m(um)m(b)s(er)0 1829 y(of)i(elemen)m(ts)g(in)f(v)m(ector)i(x)f(whereas)
+f(NV)-10 b(ALID)39 b(return)d(the)i(n)m(um)m(b)s(er)f(of)h(non-n)m(ull)
+d(elemen)m(ts)k(in)d(the)i(v)m(ector.)0 1942 y(\(NELEM)28
+b(also)g(op)s(erates)g(on)g(bit)e(and)h(string)g(columns,)g(returning)f
+(their)h(column)f(widths.\))39 b(As)27 b(an)h(example,)0
+2055 y(to)42 b(test)g(whether)f(all)f(elemen)m(ts)i(of)g(t)m(w)m(o)g(v)
+m(ectors)h(satisfy)e(a)h(giv)m(en)f(logical)g(comparison,)i(one)f(can)g
+(use)f(the)0 2168 y(expression)668 2492 y Fe(SUM\()47
+b(COL1)f(>)i(COL2)f(\))g(==)g(NELEM\()f(COL1)h(\))0 2815
+y Fi(whic)m(h)31 b(will)e(return)i(TR)m(UE)h(if)f(all)g(elemen)m(ts)h
+(of)g(COL1)g(are)g(greater)h(than)f(their)f(corresp)s(onding)f(elemen)m
+(ts)i(in)0 2928 y(COL2.)0 3088 y(T)-8 b(o)32 b(sp)s(ecify)e(a)j(single)
+d(elemen)m(t)i(of)g(a)g(v)m(ector,)i(giv)m(e)e(the)g(column)e(name)i
+(follo)m(w)m(ed)f(b)m(y)h(a)g(comma-separated)h(list)0
+3201 y(of)c(co)s(ordinates)f(enclosed)h(in)e(square)i(brac)m(k)m(ets.)
+41 b(F)-8 b(or)30 b(example,)f(if)e(a)i(v)m(ector)i(column)c(named)i
+(PHAS)f(exists)g(in)0 3314 y(the)f(table)f(as)h(a)g(one)g(dimensional,)
+e(256)j(comp)s(onen)m(t)f(list)e(of)i(n)m(um)m(b)s(ers)e(from)h(whic)m
+(h)g(y)m(ou)h(w)m(an)m(ted)g(to)g(select)h(the)0 3427
+y(57th)k(comp)s(onen)m(t)g(for)f(use)g(in)f(the)i(expression,)e(then)i
+(PHAS[57])g(w)m(ould)e(do)i(the)f(tric)m(k.)44 b(Higher)31
+b(dimensional)0 3540 y(arra)m(ys)41 b(of)h(data)f(ma)m(y)h(app)s(ear)f
+(in)e(a)j(column.)72 b(But)41 b(in)f(order)g(to)i(in)m(terpret)e(them,)
+k(the)e(TDIMn)e(k)m(eyw)m(ord)0 3653 y(m)m(ust)34 b(app)s(ear)g(in)f
+(the)h(header.)52 b(Assuming)33 b(that)i(a)f(\(4,4,4,4\))k(arra)m(y)c
+(is)g(pac)m(k)m(ed)h(in)m(to)f(eac)m(h)i(ro)m(w)e(of)g(a)h(column)0
+3766 y(named)26 b(ARRA)-8 b(Y4D,)28 b(the)f(\(1,2,3,4\))i(comp)s(onen)m
+(t)e(elemen)m(t)f(of)h(eac)m(h)g(ro)m(w)g(is)e(accessed)j(b)m(y)e(ARRA)
+-8 b(Y4D[1,2,3,4].)0 3878 y(Arra)m(ys)33 b(up)e(to)j(dimension)c(5)j
+(are)f(curren)m(tly)g(supp)s(orted.)46 b(Eac)m(h)33 b(v)m(ector)h
+(index)d(can)i(itself)e(b)s(e)h(an)h(expression,)0 3991
+y(although)38 b(it)g(m)m(ust)h(ev)-5 b(aluate)39 b(to)g(an)g(in)m
+(teger)g(v)-5 b(alue)38 b(within)e(the)j(b)s(ounds)d(of)j(the)g(v)m
+(ector.)67 b(V)-8 b(ector)40 b(columns)0 4104 y(whic)m(h)30
+b(con)m(tain)h(spaces)h(or)f(arithmetic)f(op)s(erators)i(m)m(ust)f(ha)m
+(v)m(e)h(their)e(names)h(enclosed)g(in)f("$")i(c)m(haracters)h(as)0
+4217 y(with)c($ARRA)-8 b(Y-4D$[1,2,3,4].)0 4377 y(A)45
+b(more)f(C-lik)m(e)g(syn)m(tax)i(for)e(sp)s(ecifying)e(v)m(ector)47
+b(indices)42 b(is)i(also)h(a)m(v)-5 b(ailable.)82 b(The)45
+b(elemen)m(t)g(used)e(in)h(the)0 4490 y(preceding)27
+b(example)h(alternativ)m(ely)g(could)f(b)s(e)h(sp)s(eci\014ed)f(with)f
+(the)j(syn)m(tax)g(ARRA)-8 b(Y4D[4][3][2][1].)45 b(Note)30
+b(the)0 4603 y(rev)m(erse)40 b(order)f(of)h(indices)d(\(as)j(in)e(C\),)
+i(as)f(w)m(ell)g(as)g(the)h(fact)g(that)g(the)g(v)-5
+b(alues)39 b(are)g(still)f(ones-based)h(\(as)h(in)0 4716
+y(F)-8 b(ortran)39 b({)g(adopted)g(to)g(a)m(v)m(oid)g(am)m(biguit)m(y)f
+(for)h(1D)g(v)m(ectors\).)67 b(With)38 b(this)g(syn)m(tax,)j(one)e(do)s
+(es)f(not)h(need)f(to)0 4829 y(sp)s(ecify)29 b(all)g(of)i(the)f
+(indices.)39 b(T)-8 b(o)31 b(extract)h(a)f(3D)g(slice)e(of)i(this)e(4D)
+i(arra)m(y)-8 b(,)32 b(use)e(ARRA)-8 b(Y4D[4].)0 4989
+y(V)g(ariable-length)30 b(v)m(ector)i(columns)d(are)h(not)h(supp)s
+(orted.)0 5149 y(V)-8 b(ectors)24 b(can)e(b)s(e)f(man)m(ually)f
+(constructed)j(within)c(the)j(expression)f(using)f(a)i(comma-separated)
+i(list)d(of)h(elemen)m(ts)0 5262 y(surrounded)35 b(b)m(y)j(curly)f
+(braces)i(\(')p Fc(fg)p Fi('\).)66 b(F)-8 b(or)38 b(example,)i(')p
+Fc(f)p Fi(1,3,6,1)p Fc(g)p Fi(')i(is)c(a)g(4-elemen)m(t)h(v)m(ector)h
+(con)m(taining)e(the)0 5375 y(v)-5 b(alues)25 b(1,)i(3,)g(6,)g(and)e
+(1.)40 b(The)25 b(v)m(ector)i(can)f(con)m(tain)g(only)f(b)s(o)s(olean,)
+g(in)m(teger,)j(and)d(real)g(v)-5 b(alues)25 b(\(or)h(expressions\).)0
+5488 y(The)e(elemen)m(ts)g(will)e(b)s(e)i(promoted)g(to)h(the)g
+(highest)e(datat)m(yp)s(e)i(presen)m(t.)39 b(An)m(y)24
+b(elemen)m(ts)h(whic)m(h)e(are)i(themselv)m(es)0 5601
+y(v)m(ectors,)40 b(will)34 b(b)s(e)i(expanded)g(out)h(with)f(eac)m(h)h
+(of)g(its)f(elemen)m(ts)i(b)s(ecoming)d(an)i(elemen)m(t)g(in)f(the)h
+(constructed)0 5714 y(v)m(ector.)p eop
+%%Page: 33 39
+33 38 bop 0 299 a Fg(4.9.)72 b(R)m(O)m(W)31 b(FIL)-8
+b(TERING)31 b(SPECIFICA)-8 b(TION)2072 b Fi(33)0 555
+y Fb(4.9.4)112 b(Go)s(o)s(d)38 b(Time)e(In)m(terv)-6
+b(al)37 b(Filtering)0 774 y Fi(A)44 b(common)g(\014ltering)f(metho)s(d)
+g(in)m(v)m(olv)m(es)h(selecting)g(ro)m(ws)g(whic)m(h)e(ha)m(v)m(e)k(a)e
+(time)g(v)-5 b(alue)43 b(whic)m(h)g(lies)f(within)0 887
+y(what)37 b(is)f(called)h(a)h(Go)s(o)s(d)f(Time)f(In)m(terv)-5
+b(al)37 b(or)g(GTI.)g(The)g(time)g(in)m(terv)-5 b(als)36
+b(are)i(de\014ned)e(in)g(a)h(separate)i(FITS)0 1000 y(table)h
+(extension)g(whic)m(h)e(con)m(tains)i(2)h(columns)e(giving)f(the)j
+(start)f(and)g(stop)g(time)f(of)h(eac)m(h)i(go)s(o)s(d)e(in)m(terv)-5
+b(al.)0 1113 y(The)34 b(\014ltering)f(op)s(eration)i(accepts)h(only)d
+(those)j(ro)m(ws)e(of)h(the)g(input)e(table)i(whic)m(h)e(ha)m(v)m(e)j
+(an)f(asso)s(ciated)g(time)0 1226 y(whic)m(h)f(falls)h(within)e(one)j
+(of)g(the)g(time)f(in)m(terv)-5 b(als)35 b(de\014ned)g(in)f(the)i(GTI)g
+(extension.)56 b(A)36 b(high)f(lev)m(el)g(function,)0
+1339 y(gti\014lter\(a,b,c,d\),)42 b(is)d(a)m(v)-5 b(ailable)39
+b(whic)m(h)f(ev)-5 b(aluates)40 b(eac)m(h)h(ro)m(w)e(of)h(the)f(input)f
+(table)h(and)g(returns)f(TR)m(UE)i(or)0 1452 y(F)-10
+b(ALSE)30 b(dep)s(ending)e(whether)i(the)g(ro)m(w)h(is)e(inside)f(or)i
+(outside)g(the)h(go)s(o)s(d)f(time)g(in)m(terv)-5 b(al.)40
+b(The)30 b(syn)m(tax)h(is)286 1696 y Fe(gtifilter\()45
+b([)j("gtifile")d([,)i(expr)g([,)g("STARTCOL",)e("STOPCOL")g(])j(])f(])
+g(\))0 1941 y Fi(where)20 b(eac)m(h)h("[]")h(demarks)e(optional)f
+(parameters.)38 b(Note)21 b(that)g(the)g(quotes)f(around)g(the)g
+(gti\014le)g(and)f(ST)-8 b(AR)g(T/STOP)0 2054 y(column)32
+b(are)i(required.)49 b(Either)33 b(single)f(or)i(double)e(quotes)i(ma)m
+(y)g(b)s(e)f(used.)50 b(In)33 b(cases)h(where)g(this)e(expression)0
+2167 y(is)d(en)m(tered)h(on)g(the)g(Unix)f(command)h(line,)e(enclose)i
+(the)g(en)m(tire)g(expression)f(in)f(double)h(quotes,)h(and)g(then)f
+(use)0 2280 y(single)23 b(quotes)i(within)c(the)k(expression)e(to)i
+(enclose)f(the)h('gti\014le')f(and)f(other)i(terms.)38
+b(It)25 b(is)e(also)h(usually)e(p)s(ossible)0 2393 y(to)38
+b(do)e(the)h(rev)m(erse,)j(and)c(enclose)h(the)g(whole)f(expression)g
+(in)f(single)h(quotes)h(and)f(then)h(use)f(double)f(quotes)0
+2506 y(within)c(the)i(expression.)49 b(The)33 b(gti\014le,)g(if)g(sp)s
+(eci\014ed,)f(can)i(b)s(e)f(blank)f(\(""\))j(whic)m(h)d(will)e(mean)k
+(to)g(use)f(the)h(\014rst)0 2619 y(extension)f(with)g(the)g(name)h
+("*GTI*")h(in)e(the)g(curren)m(t)h(\014le,)g(a)g(plain)d(extension)i
+(sp)s(eci\014er)f(\(eg,)k("+2",)g("[2]",)0 2731 y(or)30
+b("[STDGTI]"\))i(whic)m(h)d(will)f(b)s(e)i(used)f(to)j(select)f(an)f
+(extension)g(in)f(the)i(curren)m(t)f(\014le,)g(or)g(a)h(regular)f
+(\014lename)0 2844 y(with)f(or)i(without)e(an)i(extension)f(sp)s
+(eci\014er)f(whic)m(h)g(in)g(the)i(latter)g(case)g(will)d(mean)i(to)i
+(use)e(the)h(\014rst)e(extension)0 2957 y(with)36 b(an)h(extension)f
+(name)i("*GTI*".)62 b(Expr)36 b(can)h(b)s(e)g(an)m(y)g(arithmetic)g
+(expression,)g(including)d(simply)h(the)0 3070 y(time)g(column)g(name.)
+57 b(A)36 b(v)m(ector)h(time)f(expression)e(will)f(pro)s(duce)i(a)h(v)m
+(ector)h(b)s(o)s(olean)e(result.)56 b(ST)-8 b(AR)g(TCOL)0
+3183 y(and)27 b(STOPCOL)f(are)i(the)g(names)g(of)g(the)g(ST)-8
+b(AR)g(T/STOP)26 b(columns)h(in)f(the)i(GTI)g(extension.)40
+b(If)27 b(one)h(of)g(them)0 3296 y(is)h(sp)s(eci\014ed,)g(they)i(b)s
+(oth)f(m)m(ust)g(b)s(e.)0 3456 y(In)21 b(its)g(simplest)f(form,)k(no)d
+(parameters)h(need)g(to)h(b)s(e)e(pro)m(vided)f({)i(default)f(v)-5
+b(alues)21 b(will)f(b)s(e)h(used.)37 b(The)21 b(expression)0
+3569 y("gti\014lter\(\)")31 b(is)f(equiv)-5 b(alen)m(t)29
+b(to)334 3814 y Fe(gtifilter\()45 b("",)i(TIME,)f("*START*",)f
+("*STOP*")h(\))0 4059 y Fi(This)30 b(will)e(searc)m(h)k(the)g(curren)m
+(t)f(\014le)f(for)h(a)h(GTI)f(extension,)g(\014lter)g(the)g(TIME)g
+(column)f(in)g(the)i(curren)m(t)f(table,)0 4172 y(using)i(ST)-8
+b(AR)g(T/STOP)34 b(times)h(tak)m(en)g(from)g(columns)e(in)h(the)h(GTI)g
+(extension)f(with)g(names)g(con)m(taining)h(the)0 4284
+y(strings)c("ST)-8 b(AR)g(T")33 b(and)e("STOP".)46 b(The)32
+b(wildcards)d(\('*'\))34 b(allo)m(w)e(sligh)m(t)f(v)-5
+b(ariations)31 b(in)g(naming)g(con)m(v)m(en)m(tions)0
+4397 y(suc)m(h)38 b(as)g("TST)-8 b(AR)g(T")39 b(or)f("ST)-8
+b(AR)g(TTIME".)65 b(The)37 b(same)i(default)f(v)-5 b(alues)37
+b(apply)g(for)h(unsp)s(eci\014ed)e(parame-)0 4510 y(ters)g(when)f(the)h
+(\014rst)f(one)i(or)f(t)m(w)m(o)h(parameters)f(are)h(sp)s(eci\014ed.)55
+b(The)36 b(function)e(automatically)i(searc)m(hes)h(for)0
+4623 y(TIMEZER)m(O/I/F)g(k)m(eyw)m(ords)f(in)f(the)i(curren)m(t)f(and)g
+(GTI)g(extensions,)h(applying)e(a)h(relativ)m(e)h(time)f(o\013set,)j
+(if)0 4736 y(necessary)-8 b(.)0 5024 y Fb(4.9.5)112 b(Spatial)37
+b(Region)g(Filtering)0 5243 y Fi(Another)h(common)g(\014ltering)e
+(metho)s(d)h(selects)h(ro)m(ws)g(based)g(on)f(whether)h(the)g(spatial)f
+(p)s(osition)e(asso)s(ciated)0 5356 y(with)c(eac)m(h)j(ro)m(w)e(is)g
+(lo)s(cated)h(within)d(a)j(giv)m(en)f(2-dimensional)e(region.)47
+b(The)32 b(syn)m(tax)h(for)f(this)g(high-lev)m(el)f(\014lter)0
+5469 y(is)334 5714 y Fe(regfilter\()45 b("regfilename")f([)k(,)f
+(Xexpr,)f(Yexpr)h([)g(,)h("wcs)e(cols")h(])g(])g(\))p
+eop
+%%Page: 34 40
+34 39 bop 0 299 a Fi(34)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)0 555 y Fi(where)22
+b(eac)m(h)i("[]")g(demarks)e(optional)g(parameters.)38
+b(The)22 b(region)g(\014le)g(name)g(is)g(required)f(and)h(m)m(ust)g(b)s
+(e)g(enclosed)0 668 y(in)38 b(quotes.)70 b(The)39 b(remaining)f
+(parameters)i(are)g(optional.)68 b(The)39 b(region)g(\014le)g(is)g(an)g
+(ASCI)s(I)g(text)h(\014le)f(whic)m(h)0 781 y(con)m(tains)30
+b(a)f(list)f(of)i(one)f(or)h(more)f(geometric)i(shap)s(es)d(\(circle,)i
+(ellipse,)d(b)s(o)m(x,)j(etc.\))42 b(whic)m(h)28 b(de\014nes)g(a)i
+(region)f(on)0 894 y(the)i(celestial)f(sphere)g(or)h(an)g(area)g
+(within)d(a)j(particular)f(2D)h(image.)42 b(The)30 b(region)h(\014le)f
+(is)f(t)m(ypically)h(generated)0 1007 y(using)21 b(an)i(image)g(displa)
+m(y)e(program)i(suc)m(h)f(as)h(fv/PO)m(W)h(\(distribute)c(b)m(y)j(the)g
+(HEASAR)m(C\),)g(or)g(ds9)g(\(distributed)0 1120 y(b)m(y)k(the)g
+(Smithsonian)d(Astroph)m(ysical)i(Observ)-5 b(atory\).)39
+b(Users)27 b(should)e(refer)h(to)i(the)f(do)s(cumen)m(tation)f(pro)m
+(vided)0 1233 y(with)j(these)i(programs)f(for)g(more)h(details)e(on)h
+(the)h(syn)m(tax)g(used)e(in)g(the)i(region)f(\014les.)0
+1393 y(In)44 b(its)g(simpliest)e(form,)47 b(\(e.g.,)j
+(reg\014lter\("region.reg"\))c(\))f(the)g(co)s(ordinates)f(in)f(the)i
+(default)e('X')i(and)f('Y')0 1506 y(columns)32 b(will)e(b)s(e)i(used)g
+(to)i(determine)e(if)f(eac)m(h)j(ro)m(w)f(is)f(inside)f(or)i(outside)f
+(the)h(area)h(sp)s(eci\014ed)d(in)g(the)i(region)0 1619
+y(\014le.)40 b(Alternate)31 b(p)s(osition)d(column)h(names,)i(or)f
+(expressions,)f(ma)m(y)i(b)s(e)f(en)m(tered)h(if)e(needed,)i(as)f(in)
+382 1867 y Fe(regfilter\("region.reg",)41 b(XPOS,)47
+b(YPOS\))0 2116 y Fi(Region)36 b(\014ltering)e(can)i(b)s(e)f(applied)e
+(most)j(unam)m(biguously)d(if)i(the)h(p)s(ositions)e(in)g(the)i(region)
+f(\014le)g(and)g(in)g(the)0 2229 y(table)g(to)h(b)s(e)e(\014ltered)g
+(are)i(b)s(oth)e(giv)m(e)i(in)e(terms)h(of)g(absolute)g(celestial)g(co)
+s(ordinate)g(units.)53 b(In)35 b(this)f(case)i(the)0
+2342 y(lo)s(cations)24 b(and)f(sizes)h(of)h(the)f(geometric)h(shap)s
+(es)f(in)f(the)h(region)g(\014le)f(are)i(sp)s(eci\014ed)e(in)g(angular)
+g(units)g(on)h(the)g(sky)0 2455 y(\(e.g.,)32 b(p)s(ositions)c(giv)m(en)
+j(in)e(R.A.)h(and)g(Dec.)42 b(and)30 b(sizes)g(in)f(arcseconds)h(or)h
+(arcmin)m(utes\).)40 b(Similarly)-8 b(,)27 b(eac)m(h)32
+b(ro)m(w)0 2568 y(of)h(the)h(\014ltered)e(table)h(will)d(ha)m(v)m(e)35
+b(a)e(celestial)g(co)s(ordinate)g(asso)s(ciated)g(with)f(it.)49
+b(This)31 b(asso)s(ciation)i(is)f(usually)0 2681 y(implemen)m(ted)37
+b(using)f(a)j(set)g(of)f(so-called)g('W)-8 b(orld)38
+b(Co)s(ordinate)g(System')g(\(or)h(W)m(CS\))f(FITS)g(k)m(eyw)m(ords)g
+(that)0 2794 y(de\014ne)27 b(the)g(co)s(ordinate)g(transformation)g
+(that)h(m)m(ust)f(b)s(e)f(applied)f(to)j(the)g(v)-5 b(alues)26
+b(in)g(the)i('X')g(and)e('Y')i(columns)0 2906 y(to)j(calculate)g(the)f
+(co)s(ordinate.)0 3067 y(Alternativ)m(ely)-8 b(,)27 b(one)g(can)g(p)s
+(erform)e(spatial)h(\014ltering)e(using)h(unitless)g('pixel')g(co)s
+(ordinates)i(for)f(the)h(regions)f(and)0 3180 y(ro)m(w)33
+b(p)s(ositions.)47 b(In)33 b(this)f(case)i(the)f(user)g(m)m(ust)g(b)s
+(e)f(careful)g(to)i(ensure)f(that)g(the)h(p)s(ositions)d(in)h(the)h(2)g
+(\014les)g(are)0 3292 y(self-consisten)m(t.)52 b(A)34
+b(t)m(ypical)g(problem)e(is)h(that)i(the)f(region)g(\014le)f(ma)m(y)i
+(b)s(e)e(generated)j(using)c(a)j(binned)c(image,)0 3405
+y(but)h(the)h(un)m(binned)d(co)s(ordinates)i(are)h(giv)m(en)g(in)e(the)
+i(ev)m(en)m(t)i(table.)47 b(The)32 b(R)m(OSA)-8 b(T)33
+b(ev)m(en)m(ts)h(\014les,)f(for)f(example,)0 3518 y(ha)m(v)m(e)f(X)f
+(and)f(Y)g(pixel)f(co)s(ordinates)h(that)i(range)f(from)f(1)h(-)g
+(15360.)42 b(These)30 b(co)s(ordinates)f(are)h(t)m(ypically)e(binned)0
+3631 y(b)m(y)33 b(a)h(factor)g(of)f(32)h(to)g(pro)s(duce)e(a)i(480x480)
+i(pixel)31 b(image.)50 b(If)32 b(one)i(then)f(uses)g(a)g(region)g
+(\014le)f(generated)i(from)0 3744 y(this)29 b(image)i(\(in)f(image)g
+(pixel)f(units\))h(to)h(\014lter)e(the)i(R)m(OSA)-8 b(T)30
+b(ev)m(en)m(ts)i(\014le,)e(then)g(the)h(X)g(and)f(Y)g(column)g(v)-5
+b(alues)0 3857 y(m)m(ust)30 b(b)s(e)g(con)m(v)m(erted)i(to)f(corresp)s
+(onding)d(pixel)h(units)g(as)h(in:)382 4106 y Fe
+(regfilter\("rosat.reg",)42 b(X/32.+.5,)j(Y/32.+.5\))0
+4354 y Fi(Note)h(that)f(this)e(binning)e(con)m(v)m(ersion)k(is)e(not)i
+(necessary)g(if)e(the)i(region)f(\014le)f(is)h(sp)s(eci\014ed)e(using)h
+(celestial)0 4467 y(co)s(ordinate)h(units)f(instead)g(of)h(pixel)f
+(units)g(b)s(ecause)h(CFITSIO)e(is)i(then)f(able)h(to)h(directly)e
+(compare)i(the)0 4580 y(celestial)27 b(co)s(ordinate)h(of)f(eac)m(h)i
+(ro)m(w)f(in)e(the)i(table)f(with)g(the)g(celestial)h(co)s(ordinates)f
+(in)f(the)i(region)f(\014le)g(without)0 4693 y(ha)m(ving)j(to)h(kno)m
+(w)f(an)m(ything)g(ab)s(out)g(ho)m(w)h(the)f(image)h(ma)m(y)g(ha)m(v)m
+(e)g(b)s(een)f(binned.)0 4853 y(The)f(last)g("w)m(cs)h(cols")g
+(parameter)g(should)d(rarely)h(b)s(e)h(needed.)40 b(If)29
+b(supplied,)d(this)j(string)f(con)m(tains)i(the)f(names)0
+4966 y(of)37 b(the)g(2)h(columns)e(\(space)i(or)f(comma)g(separated\))h
+(whic)m(h)e(ha)m(v)m(e)i(the)g(asso)s(ciated)f(W)m(CS)g(k)m(eyw)m
+(ords.)61 b(If)37 b(not)0 5079 y(supplied,)d(the)i(\014lter)f(will)f
+(scan)i(the)g(X)g(and)f(Y)h(expressions)f(for)h(column)e(names.)58
+b(If)35 b(only)g(one)i(is)e(found)f(in)0 5192 y(eac)m(h)e(expression,)d
+(those)i(columns)e(will)f(b)s(e)h(used,)h(otherwise)g(an)g(error)g
+(will)e(b)s(e)i(returned.)0 5352 y(These)g(region)g(shap)s(es)g(are)g
+(supp)s(orted)f(\(names)h(are)h(case)h(insensitiv)m(e\):)334
+5601 y Fe(Point)428 b(\()48 b(X1,)f(Y1)g(\))715 b(<-)48
+b(One)f(pixel)f(square)g(region)334 5714 y(Line)476 b(\()48
+b(X1,)f(Y1,)g(X2,)f(Y2)i(\))333 b(<-)48 b(One)f(pixel)f(wide)h(region)p
+eop
+%%Page: 35 41
+35 40 bop 0 299 a Fg(4.9.)72 b(R)m(O)m(W)31 b(FIL)-8
+b(TERING)31 b(SPECIFICA)-8 b(TION)2072 b Fi(35)334 555
+y Fe(Polygon)332 b(\()48 b(X1,)f(Y1,)g(X2,)f(Y2,)h(...)g(\))95
+b(<-)48 b(Rest)e(are)h(interiors)e(with)334 668 y(Rectangle)236
+b(\()48 b(X1,)f(Y1,)g(X2,)f(Y2,)h(A)h(\))334 b(|)47 b(boundaries)e
+(considered)334 781 y(Box)524 b(\()48 b(Xc,)f(Yc,)g(Wdth,)f(Hght,)g(A)i
+(\))143 b(V)47 b(within)f(the)h(region)334 894 y(Diamond)332
+b(\()48 b(Xc,)f(Yc,)g(Wdth,)f(Hght,)g(A)i(\))334 1007
+y(Circle)380 b(\()48 b(Xc,)f(Yc,)g(R)g(\))334 1120 y(Annulus)332
+b(\()48 b(Xc,)f(Yc,)g(Rin,)f(Rout)h(\))334 1233 y(Ellipse)332
+b(\()48 b(Xc,)f(Yc,)g(Rx,)f(Ry,)h(A)h(\))334 1346 y(Elliptannulus)c(\()
+k(Xc,)f(Yc,)g(Rinx,)f(Riny,)g(Routx,)g(Routy,)g(Ain,)h(Aout)g(\))334
+1458 y(Sector)380 b(\()48 b(Xc,)f(Yc,)g(Amin,)f(Amax)h(\))0
+1732 y Fi(where)28 b(\(Xc,Yc\))j(is)c(the)i(co)s(ordinate)g(of)f(the)h
+(shap)s(e's)f(cen)m(ter;)j(\(X#,Y#\))e(are)g(the)g(co)s(ordinates)f(of)
+h(the)g(shap)s(e's)0 1845 y(edges;)39 b(Rxxx)c(are)g(the)h(shap)s(es')f
+(v)-5 b(arious)34 b(Radii)g(or)h(semima)5 b(jor/minor)34
+b(axes;)k(and)d(Axxx)g(are)h(the)g(angles)f(of)0 1958
+y(rotation)d(\(or)f(b)s(ounding)e(angles)i(for)g(Sector\))h(in)e
+(degrees.)44 b(F)-8 b(or)32 b(rotated)h(shap)s(es,)e(the)g(rotation)h
+(angle)f(can)h(b)s(e)0 2071 y(left)f(o\013,)i(indicating)c(no)i
+(rotation.)45 b(Common)31 b(alternate)h(names)f(for)h(the)f(regions)g
+(can)h(also)g(b)s(e)e(used:)43 b(rotb)s(o)m(x)0 2184
+y(=)29 b(b)s(o)m(x;)g(rotrectangle)h(=)f(rectangle;)h(\(rot\)rhom)m
+(bus)f(=)f(\(rot\)diamond;)i(and)e(pie)g(=)g(sector.)42
+b(When)28 b(a)i(shap)s(e's)0 2297 y(name)e(is)f(preceded)g(b)m(y)h(a)g
+(min)m(us)f(sign,)g('-',)j(the)e(de\014ned)e(region)i(is)f(instead)g
+(the)h(area)h(*outside*)f(its)f(b)s(oundary)0 2410 y(\(ie,)35
+b(the)f(region)g(is)f(in)m(v)m(erted\).)52 b(All)32 b(the)i(shap)s(es)f
+(within)f(a)i(single)f(region)g(\014le)h(are)g(OR'd)f(together)j(to)e
+(create)0 2523 y(the)29 b(region,)h(and)e(the)i(order)f(is)f
+(signi\014can)m(t.)39 b(The)29 b(o)m(v)m(erall)g(w)m(a)m(y)i(of)e(lo)s
+(oking)f(at)i(region)f(\014les)f(is)g(that)i(if)e(the)i(\014rst)0
+2636 y(region)e(is)g(an)h(excluded)f(region)g(then)g(a)i(dumm)m(y)d
+(included)f(region)j(of)g(the)g(whole)f(detector)i(is)e(inserted)f(in)h
+(the)0 2749 y(fron)m(t.)40 b(Then)25 b(eac)m(h)j(region)e(sp)s
+(eci\014cation)g(as)h(it)f(is)g(pro)s(cessed)g(o)m(v)m(errides)g(an)m
+(y)h(selections)g(inside)d(of)j(that)g(region)0 2861
+y(sp)s(eci\014ed)35 b(b)m(y)h(previous)f(regions.)58
+b(Another)37 b(w)m(a)m(y)g(of)g(thinking)d(ab)s(out)i(this)f(is)h(that)
+h(if)e(a)i(previous)e(excluded)0 2974 y(region)30 b(is)f(completely)h
+(inside)f(of)h(a)h(subsequen)m(t)e(included)f(region)i(the)h(excluded)e
+(region)h(is)f(ignored.)0 3135 y(The)44 b(p)s(ositional)f(co)s
+(ordinates)i(ma)m(y)g(b)s(e)g(giv)m(en)g(either)f(in)g(pixel)f(units,)k
+(decimal)d(degrees)i(or)f(hh:mm:ss.s,)0 3247 y(dd:mm:ss.s)25
+b(units.)37 b(The)26 b(shap)s(e)f(sizes)h(ma)m(y)g(b)s(e)g(giv)m(en)g
+(in)e(pixels,)i(degrees,)h(arcmin)m(utes,)g(or)f(arcseconds.)40
+b(Lo)s(ok)0 3360 y(at)31 b(examples)f(of)g(region)g(\014le)g(pro)s
+(duced)e(b)m(y)i(fv/PO)m(W)h(or)g(ds9)f(for)g(further)f(details)g(of)i
+(the)f(region)g(\014le)f(format.)0 3521 y(There)37 b(are)g(three)g
+(functions)f(that)h(are)h(primarily)c(for)i(use)h(with)f(SA)m(O)h
+(region)f(\014les)g(and)h(the)g(FSA)m(OI)g(task,)0 3633
+y(but)e(they)h(can)h(b)s(e)e(used)g(directly)-8 b(.)57
+b(They)36 b(return)f(a)h(b)s(o)s(olean)f(true)h(or)g(false)f(dep)s
+(ending)f(on)i(whether)f(a)i(t)m(w)m(o)0 3746 y(dimensional)28
+b(p)s(oin)m(t)h(is)g(in)g(the)i(region)f(or)g(not:)191
+4020 y Fe("point)46 b(in)h(a)h(circular)d(region")477
+4133 y(circle\(xcntr,ycntr,radius)o(,Xco)o(lumn)o(,Yc)o(olum)o(n\))191
+4359 y("point)h(in)h(an)g(elliptical)e(region")430 4472
+y(ellipse\(xcntr,ycntr,xhl)o(f_w)o(dth,)o(yhlf)o(_wd)o(th,r)o(otat)o
+(ion)o(,Xco)o(lumn)o(,Yc)o(olum)o(n\))191 4698 y("point)h(in)h(a)h
+(rectangular)c(region")620 4811 y(box\(xcntr,ycntr,xfll_wdth,)o(yfll)o
+(_wd)o(th,r)o(otat)o(ion)o(,Xco)o(lumn)o(,Yc)o(olum)o(n\))191
+5036 y(where)334 5149 y(\(xcntr,ycntr\))g(are)j(the)g(\(x,y\))f
+(position)g(of)h(the)g(center)f(of)h(the)g(region)334
+5262 y(\(xhlf_wdth,yhlf_wdth\))42 b(are)47 b(the)g(\(x,y\))f(half)h
+(widths)f(of)h(the)g(region)334 5375 y(\(xfll_wdth,yfll_wdth\))42
+b(are)47 b(the)g(\(x,y\))f(full)h(widths)f(of)h(the)g(region)334
+5488 y(\(radius\))f(is)h(half)f(the)h(diameter)f(of)h(the)g(circle)334
+5601 y(\(rotation\))e(is)i(the)g(angle\(degrees\))d(that)j(the)g
+(region)f(is)h(rotated)f(with)620 5714 y(respect)g(to)h
+(\(xcntr,ycntr\))p eop
+%%Page: 36 42
+36 41 bop 0 299 a Fi(36)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)334 555 y
+Fe(\(Xcoord,Ycoord\))44 b(are)j(the)g(\(x,y\))f(coordinates)f(to)i
+(test,)f(usually)g(column)620 668 y(names)334 781 y(NOTE:)g(each)h
+(parameter)e(can)i(itself)f(be)i(an)f(expression,)d(not)j(merely)f(a)
+620 894 y(column)h(name)f(or)h(constant.)0 1201 y Fb(4.9.6)112
+b(Example)37 b(Ro)m(w)g(Filters)191 1423 y Fe([)47 b(binary)f(&&)i(mag)
+f(<=)g(5.0])380 b(-)48 b(Extract)e(all)h(binary)f(stars)g(brighter)1766
+1536 y(than)94 b(fifth)47 b(magnitude)e(\(note)h(that)1766
+1649 y(the)h(initial)f(space)g(is)h(necessary)e(to)1766
+1762 y(prevent)h(it)h(from)g(being)f(treated)g(as)h(a)1766
+1875 y(binning)f(specification\))191 2101 y([#row)g(>=)h(125)g(&&)h
+(#row)e(<=)h(175])142 b(-)48 b(Extract)e(row)h(numbers)e(125)i(through)
+f(175)191 2327 y([IMAGE[4,5])f(.gt.)h(100])476 b(-)48
+b(Extract)e(all)h(rows)f(that)h(have)g(the)1766 2439
+y(\(4,5\))f(component)g(of)h(the)g(IMAGE)f(column)1766
+2552 y(greater)g(than)g(100)191 2778 y([abs\(sin\(theta)e(*)j(#deg\)\))
+f(<)i(0.5])e(-)i(Extract)e(all)h(rows)f(having)g(the)1766
+2891 y(absolute)f(value)i(of)g(the)g(sine)g(of)g(theta)1766
+3004 y(less)94 b(than)47 b(a)g(half)g(where)f(the)h(angles)1766
+3117 y(are)g(tabulated)e(in)i(degrees)191 3343 y([SUM\()f(SPEC)h(>)g
+(3*BACKGRND)e(\)>=1])94 b(-)48 b(Extract)e(all)h(rows)f(containing)f(a)
+1766 3456 y(spectrum,)g(held)i(in)g(vector)f(column)1766
+3569 y(SPEC,)g(with)h(at)g(least)f(one)h(value)g(3)1766
+3681 y(times)f(greater)g(than)h(the)g(background)1766
+3794 y(level)f(held)h(in)g(a)h(keyword,)d(BACKGRND)191
+4020 y([VCOL=={1,4,2}])759 b(-)48 b(Extract)e(all)h(rows)f(whose)h
+(vector)f(column)1766 4133 y(VCOL)h(contains)e(the)i(3-elements)e(1,)i
+(4,)g(and)1766 4246 y(2.)191 4472 y([@rowFilter.txt])711
+b(-)48 b(Extract)e(rows)g(using)h(the)g(expression)1766
+4585 y(contained)e(within)h(the)h(text)g(file)1766 4698
+y(rowFilter.txt)191 4924 y([gtifilter\(\)])855 b(-)48
+b(Search)e(the)h(current)f(file)g(for)h(a)h(GTI)239 5036
+y(extension,)92 b(filter)i(the)47 b(TIME)239 5149 y(column)f(in)h(the)g
+(current)f(table,)g(using)239 5262 y(START/STOP)f(times)h(taken)g(from)
+239 5375 y(columns)f(in)j(the)f(GTI)94 b(extension)191
+5601 y([regfilter\("pow.reg"\)])423 b(-)48 b(Extract)e(rows)g(which)h
+(have)f(a)i(coordinate)1766 5714 y(\(as)f(given)f(in)h(the)g(X)h(and)f
+(Y)g(columns\))p eop
+%%Page: 37 43
+37 42 bop 0 299 a Fg(4.10.)113 b(BINNING)31 b(OR)f(HISTOGRAMMING)h
+(SPECIFICA)-8 b(TION)1313 b Fi(37)1766 555 y Fe(within)46
+b(the)h(spatial)f(region)g(specified)1766 668 y(in)h(the)g(pow.reg)f
+(region)g(file.)191 894 y([regfilter\("pow.reg",)c(Xs,)47
+b(Ys\)])f(-)i(Same)f(as)g(above,)f(except)g(that)h(the)1766
+1007 y(Xs)g(and)g(Ys)g(columns)f(will)h(be)g(used)f(to)1766
+1120 y(determine)f(the)i(coordinate)e(of)i(each)1766
+1233 y(row)g(in)g(the)g(table.)0 1560 y Fd(4.10)180 b(Binning)45
+b(or)g(Histogramming)i(Sp)t(eci\014cation)0 1810 y Fi(The)22
+b(optional)g(binning)e(sp)s(eci\014er)h(is)h(enclosed)h(in)f(square)g
+(brac)m(k)m(ets)j(and)d(can)h(b)s(e)f(distinguished)d(from)k(a)g
+(general)0 1923 y(ro)m(w)32 b(\014lter)g(sp)s(eci\014cation)f(b)m(y)h
+(the)h(fact)g(that)g(it)f(b)s(egins)f(with)g(the)h(k)m(eyw)m(ord)h
+('bin')e(not)i(immediately)d(follo)m(w)m(ed)0 2036 y(b)m(y)41
+b(an)f(equals)h(sign.)71 b(When)41 b(binning)c(is)j(sp)s(eci\014ed,)i
+(a)f(temp)s(orary)g(N-dimensional)d(FITS)i(primary)f(arra)m(y)0
+2149 y(is)j(created)i(b)m(y)f(computing)g(the)g(histogram)g(of)g(the)g
+(v)-5 b(alues)43 b(in)e(the)j(sp)s(eci\014ed)d(columns)h(of)h(a)h(FITS)
+e(table)0 2262 y(extension.)e(After)30 b(the)f(histogram)g(is)g
+(computed)g(the)h(input)d(FITS)i(\014le)g(con)m(taining)g(the)g(table)h
+(is)e(then)h(closed)0 2375 y(and)34 b(the)h(temp)s(orary)f(FITS)g
+(primary)f(arra)m(y)i(is)f(op)s(ened)g(and)g(passed)g(to)h(the)g
+(application)e(program.)54 b(Th)m(us,)0 2488 y(the)39
+b(application)e(program)i(nev)m(er)g(sees)g(the)g(original)e(FITS)h
+(table)h(and)f(only)g(sees)i(the)f(image)g(in)e(the)i(new)0
+2601 y(temp)s(orary)32 b(\014le)g(\(whic)m(h)g(has)g(no)h(additional)d
+(extensions\).)48 b(Ob)m(viously)-8 b(,)32 b(the)h(application)e
+(program)h(m)m(ust)h(b)s(e)0 2714 y(exp)s(ecting)d(to)h(op)s(en)f(a)h
+(FITS)e(image)i(and)f(not)g(a)h(FITS)f(table)g(in)f(this)g(case.)0
+2874 y(The)h(data)h(t)m(yp)s(e)f(of)h(the)f(FITS)g(histogram)f(image)i
+(ma)m(y)g(b)s(e)f(sp)s(eci\014ed)e(b)m(y)i(app)s(ending)e('b')i(\(for)h
+(8-bit)f(b)m(yte\),)h('i')0 2987 y(\(for)g(16-bit)f(in)m(tegers\),)h
+('j')g(\(for)g(32-bit)f(in)m(teger\),)i('r')e(\(for)h(32-bit)f
+(\015oating)h(p)s(oin)m(ts\),)e(or)i('d')f(\(for)h(64-bit)f(double)0
+3100 y(precision)c(\015oating)i(p)s(oin)m(t\))g(to)g(the)h('bin')d(k)m
+(eyw)m(ord)j(\(e.g.)41 b('[binr)27 b(X]')h(creates)i(a)e(real)g
+(\015oating)g(p)s(oin)m(t)f(image\).)40 b(If)0 3212 y(the)26
+b(datat)m(yp)s(e)h(is)e(not)h(explicitly)e(sp)s(eci\014ed)g(then)i(a)g
+(32-bit)g(in)m(teger)h(image)f(will)d(b)s(e)i(created)i(b)m(y)f
+(default,)h(unless)0 3325 y(the)i(w)m(eigh)m(ting)f(option)g(is)g(also)
+h(sp)s(eci\014ed)e(in)g(whic)m(h)h(case)h(the)g(image)g(will)d(ha)m(v)m
+(e)k(a)f(32-bit)g(\015oating)g(p)s(oin)m(t)e(data)0 3438
+y(t)m(yp)s(e)k(b)m(y)f(default.)0 3598 y(The)24 b(histogram)f(image)i
+(ma)m(y)g(ha)m(v)m(e)g(from)f(1)g(to)h(4)g(dimensions)c(\(axes\),)27
+b(dep)s(ending)22 b(on)i(the)g(n)m(um)m(b)s(er)f(of)h(columns)0
+3711 y(that)31 b(are)g(sp)s(eci\014ed.)39 b(The)30 b(general)g(form)g
+(of)g(the)h(binning)c(sp)s(eci\014cation)i(is:)48 3931
+y Fe([bin{bijrd})92 b(Xcol=min:max:binsize,)42 b(Ycol=)47
+b(...,)f(Zcol=...,)f(Tcol=...;)h(weight])0 4152 y Fi(in)38
+b(whic)m(h)g(up)g(to)i(4)g(columns,)g(eac)m(h)g(corresp)s(onding)d(to)j
+(an)g(axis)e(of)i(the)f(image,)j(are)e(listed.)65 b(The)39
+b(column)0 4264 y(names)27 b(are)h(case)h(insensitiv)m(e,)d(and)h(the)h
+(column)e(n)m(um)m(b)s(er)g(ma)m(y)i(b)s(e)f(giv)m(en)g(instead)g(of)h
+(the)g(name,)g(preceded)f(b)m(y)0 4377 y(a)32 b(p)s(ound)e(sign)h
+(\(e.g.,)j([bin)c(#4=1:512]\).)47 b(If)31 b(the)h(column)f(name)h(is)e
+(not)i(sp)s(eci\014ed,)f(then)g(CFITSIO)g(will)e(\014rst)0
+4490 y(try)37 b(to)h(use)f(the)g('preferred)f(column')h(as)g(sp)s
+(eci\014ed)f(b)m(y)h(the)g(CPREF)g(k)m(eyw)m(ord)h(if)e(it)g(exists)h
+(\(e.g.,)k('CPREF)0 4603 y(=)i('DETX,DETY'\),)h(otherwise)f(column)f
+(names)h('X',)h('Y',)g('Z',)f(and)f('T')i(will)c(b)s(e)i(assumed)h(for)
+g(eac)m(h)h(of)0 4716 y(the)37 b(4)h(axes,)i(resp)s(ectiv)m(ely)-8
+b(.)60 b(In)37 b(cases)h(where)e(the)i(column)e(name)h(could)f(b)s(e)g
+(confused)h(with)f(an)h(arithmetic)0 4829 y(expression,)29
+b(enclose)i(the)g(column)e(name)h(in)f(paren)m(theses)i(to)g(force)g
+(the)f(name)h(to)g(b)s(e)f(in)m(terpreted)f(literally)-8
+b(.)0 4989 y(Eac)m(h)33 b(column)e(name)h(ma)m(y)h(b)s(e)f(follo)m(w)m
+(ed)f(b)m(y)i(an)f(equals)f(sign)h(and)f(then)h(the)g(lo)m(w)m(er)h
+(and)f(upp)s(er)e(range)i(of)h(the)0 5102 y(histogram,)e(and)f(the)h
+(size)g(of)g(the)g(histogram)g(bins,)e(separated)i(b)m(y)g(colons.)42
+b(Spaces)31 b(are)g(allo)m(w)m(ed)g(b)s(efore)g(and)0
+5215 y(after)e(the)g(equals)f(sign)f(but)h(not)h(within)d(the)j
+('min:max:binsize')d(string.)39 b(The)29 b(min,)e(max)i(and)f(binsize)f
+(v)-5 b(alues)0 5328 y(ma)m(y)32 b(b)s(e)e(in)m(teger)h(or)g
+(\015oating)g(p)s(oin)m(t)f(n)m(um)m(b)s(ers,)g(or)h(they)g(ma)m(y)g(b)
+s(e)g(the)g(names)g(of)g(k)m(eyw)m(ords)g(in)f(the)h(header)g(of)0
+5441 y(the)g(table.)40 b(If)30 b(the)h(latter,)g(then)f(the)g(v)-5
+b(alue)30 b(of)h(that)g(k)m(eyw)m(ord)f(is)g(substituted)f(in)m(to)h
+(the)h(expression.)0 5601 y(Default)36 b(v)-5 b(alues)35
+b(for)h(the)g(min,)g(max)g(and)g(binsize)e(quan)m(tities)h(will)e(b)s
+(e)i(used)h(if)e(not)j(explicitly)c(giv)m(en)j(in)f(the)0
+5714 y(binning)27 b(expression)i(as)i(sho)m(wn)f(in)f(these)i
+(examples:)p eop
+%%Page: 38 44
+38 43 bop 0 299 a Fi(38)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)191 555 y
+Fe([bin)47 b(x)g(=)g(:512:2])94 b(-)47 b(use)g(default)f(minimum)g
+(value)191 668 y([bin)h(x)g(=)g(1::2])190 b(-)47 b(use)g(default)f
+(maximum)g(value)191 781 y([bin)h(x)g(=)g(1:512])142
+b(-)47 b(use)g(default)f(bin)h(size)191 894 y([bin)g(x)g(=)g(1:])286
+b(-)47 b(use)g(default)f(maximum)g(value)g(and)h(bin)g(size)191
+1007 y([bin)g(x)g(=)g(:512])190 b(-)47 b(use)g(default)f(minimum)g
+(value)g(and)h(bin)g(size)191 1120 y([bin)g(x)g(=)g(2])334
+b(-)47 b(use)g(default)f(minimum)g(and)h(maximum)f(values)191
+1233 y([bin)h(x])524 b(-)47 b(use)g(default)f(minimum,)g(maximum)g(and)
+g(bin)h(size)191 1346 y([bin)g(4])524 b(-)47 b(default)f(2-D)h(image,)f
+(bin)h(size)g(=)g(4)h(in)f(both)g(axes)191 1458 y([bin])619
+b(-)47 b(default)f(2-D)h(image)0 1713 y Fi(CFITSIO)31
+b(will)f(use)i(the)h(v)-5 b(alue)32 b(of)h(the)g(TLMINn,)f(TLMAXn,)h
+(and)f(TDBINn)h(k)m(eyw)m(ords,)h(if)d(they)i(exist,)g(for)0
+1826 y(the)k(default)e(min,)i(max,)h(and)e(binsize,)g(resp)s(ectiv)m
+(ely)-8 b(.)59 b(If)36 b(they)h(do)f(not)h(exist)f(then)g(CFITSIO)f
+(will)f(use)i(the)0 1939 y(actual)c(minim)m(um)d(and)j(maxim)m(um)f(v)
+-5 b(alues)31 b(in)g(the)h(column)e(for)i(the)g(histogram)g(min)e(and)i
+(max)g(v)-5 b(alues.)44 b(The)0 2052 y(default)33 b(binsize)e(will)g(b)
+s(e)i(set)h(to)h(1,)g(or)e(\(max)h(-)g(min\))e(/)i(10.,)i(whic)m(hev)m
+(er)d(is)g(smaller,)g(so)g(that)i(the)e(histogram)0 2165
+y(will)28 b(ha)m(v)m(e)j(at)g(least)g(10)g(bins)e(along)h(eac)m(h)i
+(axis.)0 2325 y(A)41 b(shortcut)g(notation)g(is)f(allo)m(w)m(ed)h(if)f
+(all)g(the)h(columns/axes)g(ha)m(v)m(e)h(the)f(same)g(binning)d(sp)s
+(eci\014cation.)72 b(In)0 2438 y(this)32 b(case)h(all)f(the)h(column)e
+(names)i(ma)m(y)g(b)s(e)f(listed)f(within)f(paren)m(theses,)k(follo)m
+(w)m(ed)f(b)m(y)f(the)h(\(single\))f(binning)0 2551 y(sp)s
+(eci\014cation,)d(as)i(in:)191 2805 y Fe([bin)47 b(\(X,Y\)=1:512:2])191
+2918 y([bin)g(\(X,Y\))f(=)h(5])0 3172 y Fi(The)31 b(optional)g(w)m
+(eigh)m(ting)h(factor)g(is)f(the)h(last)f(item)h(in)e(the)i(binning)d
+(sp)s(eci\014er)h(and,)i(if)e(presen)m(t,)j(is)d(separated)0
+3285 y(from)38 b(the)g(list)f(of)h(columns)f(b)m(y)h(a)h(semi-colon.)63
+b(As)39 b(the)f(histogram)g(is)f(accum)m(ulated,)k(this)c(w)m(eigh)m(t)
+i(is)e(used)0 3398 y(to)e(incremen)m(ted)e(the)h(v)-5
+b(alue)34 b(of)g(the)g(appropriated)e(bin)h(in)f(the)i(histogram.)51
+b(If)34 b(the)g(w)m(eigh)m(ting)g(factor)h(is)e(not)0
+3511 y(sp)s(eci\014ed,)23 b(then)g(the)g(default)f(w)m(eigh)m(t)i(=)e
+(1)i(is)e(assumed.)37 b(The)23 b(w)m(eigh)m(ting)g(factor)h(ma)m(y)f(b)
+s(e)g(a)g(constan)m(t)i(in)m(teger)e(or)0 3624 y(\015oating)29
+b(p)s(oin)m(t)f(n)m(um)m(b)s(er,)g(or)h(the)g(name)g(of)g(a)g(k)m(eyw)m
+(ord)h(con)m(taining)e(the)i(w)m(eigh)m(ting)e(v)-5 b(alue.)40
+b(Or)28 b(the)h(w)m(eigh)m(ting)0 3737 y(factor)g(ma)m(y)g(b)s(e)e(the)
+h(name)g(of)h(a)f(table)g(column)f(in)g(whic)m(h)f(case)k(the)e(v)-5
+b(alue)27 b(in)g(that)i(column,)e(on)h(a)h(ro)m(w)f(b)m(y)g(ro)m(w)0
+3850 y(basis,)h(will)f(b)s(e)i(used.)0 4010 y(In)35 b(some)h(cases,)i
+(the)d(column)g(or)g(k)m(eyw)m(ord)h(ma)m(y)g(giv)m(e)g(the)g(recipro)s
+(cal)e(of)i(the)g(actual)g(w)m(eigh)m(t)g(v)-5 b(alue)35
+b(that)h(is)0 4123 y(needed.)49 b(In)32 b(this)g(case,)j(precede)e(the)
+h(w)m(eigh)m(t)f(k)m(eyw)m(ord)h(or)f(column)f(name)h(b)m(y)g(a)g
+(slash)f('/')i(to)g(tell)e(CFITSIO)0 4236 y(to)f(use)f(the)h(recipro)s
+(cal)e(of)h(the)h(v)-5 b(alue)30 b(when)f(constructing)h(the)h
+(histogram.)0 4396 y(F)-8 b(or)35 b(complex)e(or)h(commonly)f(used)g
+(histograms,)i(one)f(can)g(also)g(place)g(its)f(description)f(in)m(to)i
+(a)g(text)h(\014le)e(and)0 4509 y(imp)s(ort)43 b(it)g(in)m(to)i(the)f
+(binning)d(sp)s(eci\014cation)i(using)g(the)i(syn)m(tax)f('[bin)f
+(@\014lename.txt]'.)83 b(The)44 b(\014le's)f(con-)0 4622
+y(ten)m(ts)37 b(can)e(extend)h(o)m(v)m(er)h(m)m(ultiple)c(lines,)j
+(although)f(it)g(m)m(ust)g(still)f(conform)i(to)g(the)g(no-spaces)g
+(rule)e(for)i(the)0 4735 y(min:max:binsize)e(syn)m(tax)k(and)e(eac)m(h)
+i(axis)f(sp)s(eci\014cation)f(m)m(ust)h(still)d(b)s(e)j
+(comma-separated.)62 b(An)m(y)37 b(lines)e(in)0 4848
+y(the)d(external)g(text)h(\014le)e(that)i(b)s(egin)d(with)h(2)h(slash)f
+(c)m(haracters)i(\('//'\))h(will)29 b(b)s(e)j(ignored)f(and)g(ma)m(y)i
+(b)s(e)e(used)g(to)0 4961 y(add)f(commen)m(ts)h(in)m(to)f(the)h
+(\014le.)0 5121 y(Examples:)191 5375 y Fe([bini)46 b(detx,)h(dety])762
+b(-)47 b(2-D,)g(16-bit)f(integer)g(histogram)1861 5488
+y(of)i(DETX)e(and)h(DETY)g(columns,)e(using)1861 5601
+y(default)h(values)g(for)h(the)g(histogram)1861 5714
+y(range)g(and)g(binsize)p eop
+%%Page: 39 45
+39 44 bop 0 299 a Fg(4.10.)113 b(BINNING)31 b(OR)f(HISTOGRAMMING)h
+(SPECIFICA)-8 b(TION)1313 b Fi(39)191 668 y Fe([bin)47
+b(\(detx,)f(dety\)=16;)f(/exposure])g(-)i(2-D,)g(32-bit)f(real)h
+(histogram)e(of)i(DETX)1861 781 y(and)g(DETY)g(columns)f(with)g(a)i
+(bin)f(size)f(=)i(16)1861 894 y(in)g(both)e(axes.)h(The)f(histogram)g
+(values)1861 1007 y(are)h(divided)f(by)h(the)g(EXPOSURE)f(keyword)1861
+1120 y(value.)191 1346 y([bin)h(time=TSTART:TSTOP:0.1])280
+b(-)47 b(1-D)g(lightcurve,)e(range)h(determined)f(by)1861
+1458 y(the)i(TSTART)f(and)h(TSTOP)g(keywords,)1861 1571
+y(with)g(0.1)g(unit)g(size)f(bins.)191 1797 y([bin)h(pha,)f
+(time=8000.:8100.:0.1])90 b(-)47 b(2-D)g(image)g(using)f(default)g
+(binning)1861 1910 y(of)i(the)e(PHA)h(column)f(for)h(the)g(X)h(axis,)
+1861 2023 y(and)f(1000)g(bins)g(in)g(the)g(range)1861
+2136 y(8000.)g(to)g(8100.)f(for)h(the)g(Y)h(axis.)191
+2362 y([bin)f(@binFilter.txt])616 b(-)47 b(Use)g(the)g(contents)f(of)h
+(the)g(text)f(file)1861 2475 y(binFilter.txt)f(for)h(the)h(binning)1861
+2588 y(specifications.)p eop
+%%Page: 40 46
+40 45 bop 0 299 a Fi(40)1618 b Fg(CHAPTER)30 b(4.)112
+b(EXTENDED)30 b(FILE)h(NAME)f(SYNT)-8 b(AX)p eop
+%%Page: 41 47
+41 46 bop 0 1225 a Ff(Chapter)65 b(5)0 1687 y Fl(T)-19
+b(emplate)76 b(Files)0 2180 y Fi(When)38 b(a)h(new)f(FITS)g(\014le)g
+(is)g(created)h(with)f(a)g(call)g(to)i(\014ts)p 2101
+2180 28 4 v 32 w(create)p 2369 2180 V 35 w(\014le,)f(the)g(name)g(of)g
+(a)g(template)g(\014le)e(ma)m(y)0 2293 y(b)s(e)i(supplied)e(in)i(paren)
+m(theses)h(immediately)e(follo)m(wing)g(the)j(name)f(of)g(the)g(new)f
+(\014le)g(to)i(b)s(e)e(created.)71 b(This)0 2406 y(template)26
+b(is)e(used)h(to)h(de\014ne)f(the)h(structure)f(of)h(one)f(or)h(more)g
+(HDUs)g(in)e(the)i(new)f(\014le.)38 b(The)25 b(template)h(\014le)e(ma)m
+(y)0 2518 y(b)s(e)32 b(another)h(FITS)f(\014le,)h(in)f(whic)m(h)f(case)
+j(the)f(newly)f(created)i(\014le)e(will)e(ha)m(v)m(e)k(exactly)g(the)f
+(same)g(k)m(eyw)m(ords)g(in)0 2631 y(eac)m(h)25 b(HDU)g(as)g(in)e(the)h
+(template)h(FITS)e(\014le,)i(but)e(all)h(the)g(data)h(units)d(will)g(b)
+s(e)i(\014lled)e(with)g(zeros.)40 b(The)24 b(template)0
+2744 y(\014le)h(ma)m(y)i(also)f(b)s(e)f(an)h(ASCI)s(I)e(text)j(\014le,)
+f(where)g(eac)m(h)h(line)d(\(in)h(general\))i(describ)s(es)d(one)i
+(FITS)f(k)m(eyw)m(ord)i(record.)0 2857 y(The)j(format)h(of)f(the)h
+(ASCI)s(I)e(template)h(\014le)g(is)f(describ)s(ed)f(in)i(the)g(follo)m
+(wing)f(sections.)0 3188 y Fd(5.1)135 b(Detailed)47 b(T)-11
+b(emplate)46 b(Line)f(F)-11 b(ormat)0 3438 y Fi(The)30
+b(format)h(of)f(eac)m(h)i(ASCI)s(I)c(template)j(line)e(closely)h(follo)
+m(ws)f(the)i(format)g(of)f(a)h(FITS)f(k)m(eyw)m(ord)g(record:)95
+3682 y Fe(KEYWORD)46 b(=)i(KEYVALUE)d(/)j(COMMENT)0 3926
+y Fi(except)22 b(that)g(free)g(format)f(ma)m(y)h(b)s(e)f(used)f
+(\(e.g.,)25 b(the)d(equals)e(sign)h(ma)m(y)g(app)s(ear)g(at)h(an)m(y)g
+(p)s(osition)d(in)h(the)i(line\))e(and)0 4039 y(T)-8
+b(AB)34 b(c)m(haracters)g(are)g(allo)m(w)m(ed)f(and)g(are)g(treated)h
+(the)g(same)f(as)h(space)f(c)m(haracters.)51 b(The)33
+b(KEYV)-10 b(ALUE)33 b(and)0 4152 y(COMMENT)d(\014elds)f(are)i
+(optional.)41 b(The)30 b(equals)g(sign)f(c)m(haracter)k(is)c(also)i
+(optional,)f(but)g(it)g(is)f(recommended)0 4264 y(that)42
+b(it)e(b)s(e)h(included)d(for)j(clarit)m(y)-8 b(.)73
+b(An)m(y)41 b(template)h(line)d(that)j(b)s(egins)e(with)f(the)j(p)s
+(ound)d('#')i(c)m(haracter)i(is)0 4377 y(ignored)29 b(b)m(y)i(the)f
+(template)h(parser)f(and)g(ma)m(y)h(b)s(e)e(use)h(to)h(insert)f(commen)
+m(ts)h(in)m(to)f(the)h(template)g(\014le)e(itself.)0
+4538 y(The)d(KEYW)m(ORD)g(name)g(\014eld)f(is)g(limited)f(to)j(8)f(c)m
+(haracters)h(in)e(length)h(and)f(only)g(the)h(letters)h(A-Z,)f(digits)f
+(0-9,)0 4650 y(and)j(the)g(h)m(yphen)f(and)h(underscore)g(c)m
+(haracters)h(ma)m(y)g(b)s(e)f(used,)g(without)g(an)m(y)g(em)m(b)s
+(edded)g(spaces.)40 b(Lo)m(w)m(ercase)0 4763 y(letters)21
+b(in)f(the)i(template)f(k)m(eyw)m(ord)h(name)f(will)d(b)s(e)j(con)m(v)m
+(erted)i(to)f(upp)s(ercase.)36 b(Leading)21 b(spaces)g(in)f(the)i
+(template)0 4876 y(line)i(preceding)h(the)g(k)m(eyw)m(ord)h(name)g(are)
+g(generally)f(ignored,)h(except)g(if)f(the)h(\014rst)f(8)h(c)m
+(haracters)h(of)f(a)g(template)0 4989 y(line)d(are)j(all)e(blank,)h
+(then)g(the)g(en)m(tire)g(line)f(is)g(treated)i(as)f(a)h(FITS)e(commen)
+m(t)i(k)m(eyw)m(ord)g(\(with)e(a)i(blank)d(k)m(eyw)m(ord)0
+5102 y(name\))31 b(and)f(is)f(copied)h(v)m(erbatim)g(in)m(to)g(the)h
+(FITS)e(header.)0 5262 y(The)37 b(KEYV)-10 b(ALUE)37
+b(\014eld)f(ma)m(y)i(ha)m(v)m(e)g(an)m(y)g(allo)m(w)m(ed)f(FITS)g(data)
+h(t)m(yp)s(e:)54 b(c)m(haracter)39 b(string,)g(logical,)f(in)m(teger,)0
+5375 y(real,)33 b(complex)f(in)m(teger,)i(or)e(complex)h(real.)46
+b(The)32 b(c)m(haracter)j(string)c(v)-5 b(alues)32 b(need)g(not)h(b)s
+(e)f(enclosed)g(in)f(single)0 5488 y(quote)e(c)m(haracters)h(unless)d
+(they)h(are)h(necessary)g(to)g(distinguish)24 b(the)29
+b(string)e(from)h(a)h(di\013eren)m(t)f(data)h(t)m(yp)s(e)f(\(e.g.)0
+5601 y(2.0)h(is)d(a)i(real)g(but)f('2.0')i(is)e(a)h(string\).)39
+b(The)27 b(k)m(eyw)m(ord)h(has)f(an)h(unde\014ned)d(\(n)m(ull\))h(v)-5
+b(alue)28 b(if)e(the)i(template)g(record)0 5714 y(only)h(con)m(tains)i
+(blanks)e(follo)m(wing)g(the)h("=")h(or)g(b)s(et)m(w)m(een)g(the)f("=")
+h(and)f(the)g("/")i(commen)m(t)g(\014eld)c(delimiter.)1905
+5942 y(41)p eop
+%%Page: 42 48
+42 47 bop 0 299 a Fi(42)2340 b Fg(CHAPTER)30 b(5.)71
+b(TEMPLA)-8 b(TE)30 b(FILES)0 555 y Fi(String)25 b(k)m(eyw)m(ord)i(v)-5
+b(alues)26 b(longer)g(than)g(68)h(c)m(haracters)h(\(the)f(maxim)m(um)e
+(length)h(that)h(will)d(\014t)i(in)f(a)i(single)e(FITS)0
+668 y(k)m(eyw)m(ord)41 b(record\))g(are)g(p)s(ermitted)e(using)g(the)i
+(CFITSIO)e(long)h(string)g(con)m(v)m(en)m(tion.)73 b(They)40
+b(can)h(either)f(b)s(e)0 781 y(sp)s(eci\014ed)27 b(as)j(a)f(single)f
+(long)g(line)g(in)f(the)j(template,)g(or)f(b)m(y)f(using)g(m)m(ultiple)
+f(lines)g(where)h(the)i(con)m(tin)m(uing)e(lines)0 894
+y(con)m(tain)j(the)f('CONTINUE')g(k)m(eyw)m(ord,)h(as)g(in)e(this)g
+(example:)95 1139 y Fe(LONGKEY)46 b(=)i('This)e(is)h(a)h(long)e(string)
+g(value)h(that)f(is)i(contin&')95 1252 y(CONTINUE)94
+b('ued)46 b(over)h(2)g(records')f(/)h(comment)f(field)h(goes)f(here)0
+1497 y Fi(The)29 b(format)h(of)g(template)g(lines)d(with)i(CONTINUE)f
+(k)m(eyw)m(ord)i(is)f(v)m(ery)h(strict:)40 b(3)30 b(spaces)g(m)m(ust)f
+(follo)m(w)g(CON-)0 1610 y(TINUE)h(and)g(the)g(rest)h(of)f(the)h(line)e
+(is)g(copied)h(v)m(erbatim)g(to)h(the)g(FITS)e(\014le.)0
+1771 y(The)i(start)h(of)g(the)f(optional)g(COMMENT)g(\014eld)f(m)m(ust)
+i(b)s(e)e(preceded)i(b)m(y)f("/",)i(whic)m(h)d(is)h(used)g(to)h
+(separate)g(it)0 1883 y(from)e(the)g(k)m(eyw)m(ord)h(v)-5
+b(alue)29 b(\014eld.)40 b(Exceptions)29 b(are)i(if)e(the)i(KEYW)m(ORD)g
+(name)f(\014eld)f(con)m(tains)h(COMMENT,)0 1996 y(HISTOR)-8
+b(Y,)30 b(CONTINUE,)g(or)g(if)f(the)i(\014rst)f(8)g(c)m(haracters)i(of)
+f(the)f(template)h(line)e(are)i(blanks.)0 2157 y(More)c(than)f(one)h
+(Header-Data)i(Unit)d(\(HDU\))h(ma)m(y)g(b)s(e)f(de\014ned)f(in)g(the)i
+(template)g(\014le.)38 b(The)26 b(start)h(of)g(an)f(HDU)0
+2269 y(de\014nition)i(is)h(denoted)i(with)e(a)i(SIMPLE)e(or)i(XTENSION)
+e(template)i(line:)0 2430 y(1\))j(SIMPLE)f(b)s(egins)f(a)i(Primary)f
+(HDU)h(de\014nition.)48 b(SIMPLE)33 b(ma)m(y)h(only)f(app)s(ear)g(as)h
+(the)g(\014rst)f(k)m(eyw)m(ord)h(in)0 2543 y(the)e(template)h(\014le.)
+44 b(If)32 b(the)g(template)h(\014le)e(b)s(egins)f(with)h(XTENSION)g
+(instead)g(of)h(SIMPLE,)g(then)f(a)i(default)0 2655 y(empt)m(y)d
+(Primary)d(HDU)j(is)f(created,)i(and)d(the)i(template)g(is)e(then)h
+(assumed)f(to)i(de\014ne)f(the)h(k)m(eyw)m(ords)f(starting)0
+2768 y(with)g(the)i(\014rst)e(extension)h(follo)m(wing)f(the)i(Primary)
+e(HDU.)0 2928 y(2\))35 b(XTENSION)e(marks)g(the)i(b)s(eginning)c(of)j
+(a)h(new)e(extension)h(HDU)g(de\014nition.)50 b(The)33
+b(previous)g(HDU)i(will)0 3041 y(b)s(e)30 b(closed)g(at)h(this)e(p)s
+(oin)m(t)h(and)f(pro)s(cessing)h(of)g(the)h(next)f(extension)g(b)s
+(egins.)0 3373 y Fd(5.2)135 b(Auto-indexing)45 b(of)h(Keyw)l(ords)0
+3623 y Fi(If)31 b(a)h(template)f(k)m(eyw)m(ord)h(name)f(ends)g(with)f
+(a)h("#")h(c)m(haracter,)i(it)d(is)f(said)g(to)i(b)s(e)f
+('auto-indexed'.)43 b(Eac)m(h)32 b("#")0 3736 y(c)m(haracter)i(will)c
+(b)s(e)i(replaced)h(b)m(y)f(the)h(curren)m(t)g(in)m(teger)g(index)e(v)
+-5 b(alue,)33 b(whic)m(h)f(gets)h(reset)h(=)e(1)h(at)h(the)e(start)i
+(of)0 3849 y(eac)m(h)h(new)f(HDU)g(in)f(the)h(\014le)f(\(or)h(7)h(in)d
+(the)i(sp)s(ecial)f(case)i(of)f(a)g(GR)m(OUP)h(de\014nition\).)49
+b(The)33 b(FIRST)g(indexed)0 3962 y(k)m(eyw)m(ord)c(in)e(eac)m(h)i
+(template)g(HDU)g(de\014nition)d(is)h(used)g(as)i(the)f('incremen)m
+(tor';)i(eac)m(h)f(subsequen)m(t)f(o)s(ccurrence)0 4075
+y(of)k(this)e(SAME)h(k)m(eyw)m(ord)h(will)d(cause)j(the)g(index)e(v)-5
+b(alue)31 b(to)h(b)s(e)f(incremen)m(ted.)43 b(This)30
+b(b)s(eha)m(vior)g(can)i(b)s(e)f(rather)0 4188 y(subtle,)c(as)h
+(illustrated)e(in)g(the)i(follo)m(wing)e(examples)h(in)f(whic)m(h)h
+(the)h(TTYPE)e(k)m(eyw)m(ord)i(is)f(the)h(incremen)m(tor)f(in)0
+4300 y(b)s(oth)j(cases:)95 4546 y Fe(TTYPE#)47 b(=)g(TIME)95
+4659 y(TFORM#)g(=)g(1D)95 4772 y(TTYPE#)g(=)g(RATE)95
+4884 y(TFORM#)g(=)g(1E)0 5130 y Fi(will)23 b(create)28
+b(TTYPE1,)e(TF)m(ORM1,)i(TTYPE2,)f(and)e(TF)m(ORM2)i(k)m(eyw)m(ords.)40
+b(But)26 b(if)f(the)h(template)g(lo)s(oks)f(lik)m(e,)95
+5375 y Fe(TTYPE#)47 b(=)g(TIME)95 5488 y(TTYPE#)g(=)g(RATE)95
+5601 y(TFORM#)g(=)g(1D)95 5714 y(TFORM#)g(=)g(1E)p eop
+%%Page: 43 49
+43 48 bop 0 299 a Fg(5.3.)72 b(TEMPLA)-8 b(TE)30 b(P)-8
+b(ARSER)30 b(DIRECTIVES)2073 b Fi(43)0 555 y(this)30
+b(results)f(in)h(a)h(FITS)f(\014les)g(with)f(TTYPE1,)i(TTYPE2,)g(TF)m
+(ORM2,)h(and)e(TF)m(ORM2,)i(whic)m(h)e(is)g(probably)0
+668 y(not)h(what)f(w)m(as)h(in)m(tended!)0 1000 y Fd(5.3)135
+b(T)-11 b(emplate)46 b(P)l(arser)g(Directiv)l(es)0 1251
+y Fi(In)29 b(addition)g(to)h(the)g(template)h(lines)d(whic)m(h)h
+(de\014ne)g(individual)d(k)m(eyw)m(ords,)k(the)g(template)h(parser)e
+(recognizes)0 1363 y(3)h(sp)s(ecial)f(directiv)m(es)g(whic)m(h)g(are)h
+(eac)m(h)h(preceded)f(b)m(y)f(the)h(bac)m(kslash)g(c)m(haracter:)90
+b Fe(\\include,)45 b(\\group)p Fi(,)29 b(and)48 1476
+y Fe(\\end)p Fi(.)0 1637 y(The)37 b('include')f(directiv)m(e)i(m)m(ust)
+f(b)s(e)h(follo)m(w)m(ed)f(b)m(y)h(a)g(\014lename.)62
+b(It)38 b(forces)g(the)g(parser)f(to)i(temp)s(orarily)d(stop)0
+1749 y(reading)e(the)h(curren)m(t)g(template)g(\014le)f(and)g(b)s(egin)
+g(reading)g(the)h(include)d(\014le.)54 b(Once)35 b(the)g(parser)f(reac)
+m(hes)i(the)0 1862 y(end)f(of)h(the)g(include)d(\014le)i(it)g(con)m
+(tin)m(ues)g(parsing)g(the)g(curren)m(t)h(template)g(\014le.)55
+b(Include)34 b(\014les)h(can)h(b)s(e)f(nested,)0 1975
+y(and)30 b(HDU)h(de\014nitions)d(can)i(span)g(m)m(ultiple)e(template)j
+(\014les.)0 2135 y(The)g(start)h(of)g(a)g(GR)m(OUP)h(de\014nition)c(is)
+i(denoted)h(with)e(the)i('group')g(directiv)m(e,)f(and)h(the)f(end)h
+(of)f(a)i(GR)m(OUP)0 2248 y(de\014nition)i(is)i(denoted)g(with)f(the)i
+('end')f(directiv)m(e.)61 b(Eac)m(h)39 b(GR)m(OUP)e(con)m(tains)h(0)g
+(or)f(more)h(mem)m(b)s(er)f(blo)s(c)m(ks)0 2361 y(\(HDUs)44
+b(or)f(GR)m(OUPs\).)79 b(Mem)m(b)s(er)42 b(blo)s(c)m(ks)h(of)g(t)m(yp)s
+(e)g(GR)m(OUP)g(can)g(con)m(tain)g(their)f(o)m(wn)h(mem)m(b)s(er)f(blo)
+s(c)m(ks.)0 2474 y(The)32 b(GR)m(OUP)g(de\014nition)e(itself)h(o)s
+(ccupies)h(one)g(FITS)g(\014le)f(HDU)i(of)f(sp)s(ecial)f(t)m(yp)s(e)h
+(\(GR)m(OUP)h(HDU\),)h(so)e(if)g(a)0 2587 y(template)f(sp)s(eci\014es)e
+(1)i(group)e(with)g(1)i(mem)m(b)s(er)f(HDU)h(lik)m(e:)0
+2838 y Fe(\\group)0 2951 y(grpdescr)46 b(=)h('demo')0
+3064 y(xtension)f(bintable)0 3177 y(#)h(this)g(bintable)f(has)h(0)g
+(cols,)f(0)i(rows)0 3290 y(\\end)0 3541 y Fi(then)30
+b(the)h(parser)e(creates)j(a)f(FITS)f(\014le)f(with)g(3)i(HDUs)g(:)0
+3792 y Fe(1\))47 b(dummy)g(PHDU)0 3905 y(2\))g(GROUP)g(HDU)f(\(has)h(1)
+h(member,)d(which)i(is)g(bintable)e(in)j(HDU)f(number)f(3\))0
+4018 y(3\))h(bintable)f(\(member)g(of)h(GROUP)f(in)h(HDU)g(number)f
+(2\))0 4269 y Fi(T)-8 b(ec)m(hnically)29 b(sp)s(eaking,)g(the)g(GR)m
+(OUP)i(HDU)f(is)f(a)h(BINT)-8 b(ABLE)30 b(with)f(6)h(columns.)39
+b(Applications)28 b(can)i(de\014ne)0 4382 y(additional)20
+b(columns)h(in)f(a)j(GR)m(OUP)f(HDU)h(using)e(TF)m(ORMn)g(and)h(TTYPEn)
+f(\(where)g(n)h(is)f(7,)j(8,)h(....\))39 b(k)m(eyw)m(ords)0
+4494 y(or)30 b(their)g(auto-indexing)f(equiv)-5 b(alen)m(ts.)0
+4655 y(F)d(or)26 b(a)f(more)g(complicated)f(example)g(of)h(a)h
+(template)f(\014le)f(using)f(the)i(group)f(directiv)m(es,)i(lo)s(ok)e
+(at)h(the)g(sample.tpl)0 4767 y(\014le)k(that)i(is)f(included)d(in)j
+(the)g(CFITSIO)f(distribution.)0 5100 y Fd(5.4)135 b(F)-11
+b(ormal)46 b(T)-11 b(emplate)45 b(Syn)l(tax)0 5350 y
+Fi(The)30 b(template)h(syn)m(tax)g(can)f(formally)f(b)s(e)h(de\014ned)f
+(as)i(follo)m(ws:)191 5601 y Fe(TEMPLATE)45 b(=)j(BLOCK)e([)i(BLOCK)e
+(...)h(])p eop
+%%Page: 44 50
+44 49 bop 0 299 a Fi(44)2340 b Fg(CHAPTER)30 b(5.)71
+b(TEMPLA)-8 b(TE)30 b(FILES)334 555 y Fe(BLOCK)46 b(=)i({)f(HDU)g(|)h
+(GROUP)e(})334 781 y(GROUP)g(=)i(\\GROUP)e([)h(BLOCK)g(...)g(])g(\\END)
+430 1007 y(HDU)f(=)i(XTENSION)d([)j(LINE)f(...)f(])i({)f(XTENSION)f(|)h
+(\\GROUP)f(|)i(\\END)f(|)g(EOF)g(})382 1233 y(LINE)f(=)i([)f(KEYWORD)f
+([)i(=)f(])h(])f([)g(VALUE)g(])g([)h(/)f(COMMENT)f(])191
+1458 y(X)h(...)238 b(-)48 b(X)f(can)g(be)g(present)f(1)h(or)h(more)e
+(times)191 1571 y({)h(X)h(|)f(Y)h(})f(-)h(X)f(or)g(Y)191
+1684 y([)g(X)h(])238 b(-)48 b(X)f(is)g(optional)0 1937
+y Fi(A)m(t)34 b(the)f(topmost)g(lev)m(el,)g(the)g(template)h(de\014nes)
+d(1)j(or)e(more)h(template)g(blo)s(c)m(ks.)48 b(Blo)s(c)m(ks)33
+b(can)g(b)s(e)f(either)g(HDU)0 2050 y(\(Header)27 b(Data)h(Unit\))f(or)
+f(a)h(GR)m(OUP)-8 b(.)28 b(F)-8 b(or)27 b(eac)m(h)g(blo)s(c)m(k)f(the)h
+(parser)f(creates)i(1)f(\(or)g(more)f(for)h(GR)m(OUPs\))g(FITS)0
+2163 y(\014le)i(HDUs.)0 2495 y Fd(5.5)135 b(Errors)0
+2745 y Fi(In)24 b(general)g(the)g(\014ts)p 692 2745 28
+4 v 33 w(execute)p 1019 2745 V 34 w(template\(\))h(function)e(tries)h
+(to)h(b)s(e)f(as)g(atomic)h(as)g(p)s(ossible,)e(so)h(either)g(ev)m
+(erything)0 2858 y(is)f(done)h(or)g(nothing)e(is)h(done.)39
+b(If)23 b(an)h(error)f(o)s(ccurs)h(during)e(parsing)g(of)i(the)g
+(template,)i(\014ts)p 3125 2858 V 33 w(execute)p 3452
+2858 V 34 w(template\(\))0 2971 y(will)i(\(try)j(to\))h(delete)f(the)g
+(top)g(lev)m(el)f(BLOCK)g(\(with)g(all)f(its)i(c)m(hildren)d(if)i(an)m
+(y\))h(in)f(whic)m(h)f(the)i(error)f(o)s(ccurred,)0 3084
+y(then)g(it)g(will)e(stop)i(reading)g(the)g(template)h(\014le)e(and)h
+(it)g(will)e(return)h(with)g(an)h(error.)0 3417 y Fd(5.6)135
+b(Examples)0 3667 y Fi(1.)54 b(This)33 b(template)i(\014le)f(will)e
+(create)k(a)f(200)h(x)e(300)i(pixel)d(image,)k(with)c(4-b)m(yte)j(in)m
+(teger)f(pixel)e(v)-5 b(alues,)35 b(in)f(the)0 3780 y(primary)28
+b(HDU:)95 4032 y Fe(SIMPLE)47 b(=)g(T)95 4145 y(BITPIX)g(=)g(32)95
+4258 y(NAXIS)g(=)g(2)239 b(/)47 b(number)f(of)h(dimensions)95
+4371 y(NAXIS1)g(=)g(100)95 b(/)47 b(length)f(of)h(first)g(axis)95
+4484 y(NAXIS2)g(=)g(200)95 b(/)47 b(length)f(of)h(second)f(axis)95
+4597 y(OBJECT)h(=)g(NGC)g(253)g(/)g(name)g(of)g(observed)f(object)0
+4850 y Fi(The)35 b(allo)m(w)m(ed)g(v)-5 b(alues)35 b(of)g(BITPIX)g(are)
+h(8,)h(16,)h(32,)g(-32,)g(or)d(-64,)j(represen)m(ting,)e(resp)s(ectiv)m
+(ely)-8 b(,)37 b(8-bit)e(in)m(teger,)0 4962 y(16-bit)c(in)m(teger,)g
+(32-bit)f(in)m(teger,)h(32-bit)g(\015oating)f(p)s(oin)m(t,)g(or)g(64)h
+(bit)f(\015oating)g(p)s(oin)m(t)f(pixels.)0 5123 y(2.)39
+b(T)-8 b(o)23 b(create)h(a)f(FITS)e(table,)k(the)d(template)h(\014rst)f
+(needs)g(to)i(include)c(XTENSION)i(=)g(T)-8 b(ABLE)23
+b(or)f(BINT)-8 b(ABLE)0 5235 y(to)31 b(de\014ne)e(whether)g(it)g(is)g
+(an)g(ASCI)s(I)g(or)g(binary)f(table,)i(and)g(NAXIS2)g(to)g(de\014ne)f
+(the)h(n)m(um)m(b)s(er)f(of)h(ro)m(ws)f(in)g(the)0 5348
+y(table.)49 b(Tw)m(o)34 b(template)f(lines)f(are)i(then)f(needed)f(to)i
+(de\014ne)f(the)g(name)h(\(TTYPEn\))e(and)h(FITS)g(data)h(format)0
+5461 y(\(TF)m(ORMn\))d(of)f(the)h(columns,)e(as)i(in)e(this)g(example:)
+95 5714 y Fe(xtension)46 b(=)h(bintable)p eop
+%%Page: 45 51
+45 50 bop 0 299 a Fg(5.6.)72 b(EXAMPLES)3084 b Fi(45)95
+555 y Fe(naxis2)47 b(=)g(40)95 668 y(ttype#)g(=)g(Name)95
+781 y(tform#)g(=)g(10a)95 894 y(ttype#)g(=)g(Npoints)95
+1007 y(tform#)g(=)g(j)95 1120 y(ttype#)g(=)g(Rate)95
+1233 y(tunit#)g(=)g(counts/s)95 1346 y(tform#)g(=)g(e)0
+1605 y Fi(The)26 b(ab)s(o)m(v)m(e)j(example)d(de\014nes)g(a)i(n)m(ull)d
+(primary)g(arra)m(y)i(follo)m(w)m(ed)g(b)m(y)g(a)g(40-ro)m(w)h(binary)d
+(table)i(extension)g(with)f(3)0 1718 y(columns)h(called)g('Name',)j
+('Np)s(oin)m(ts',)e(and)g('Rate',)i(with)d(data)i(formats)f(of)g('10A')
+i(\(ASCI)s(I)d(c)m(haracter)i(string\),)0 1831 y('1J')k(\(in)m(teger\))
+h(and)e('1E')i(\(\015oating)e(p)s(oin)m(t\),)h(resp)s(ectiv)m(ely)-8
+b(.)48 b(Note)34 b(that)f(the)g(other)g(required)e(FITS)h(k)m(eyw)m
+(ords)0 1944 y(\(BITPIX,)37 b(NAXIS,)g(NAXIS1,)h(PCOUNT,)e(GCOUNT,)h
+(TFIELDS,)f(and)g(END\))h(do)g(not)g(need)f(to)h(b)s(e)f(ex-)0
+2057 y(plicitly)f(de\014ned)h(in)h(the)g(template)h(b)s(ecause)g(their)
+f(v)-5 b(alues)37 b(can)h(b)s(e)f(inferred)e(from)j(the)f(other)h(k)m
+(eyw)m(ords)g(in)0 2170 y(the)d(template.)54 b(This)33
+b(example)i(also)g(illustrates)d(that)k(the)f(templates)g(are)g
+(generally)f(case-insensitiv)m(e)g(\(the)0 2283 y(k)m(eyw)m(ord)29
+b(names)g(and)g(TF)m(ORMn)f(v)-5 b(alues)29 b(are)g(con)m(v)m(erted)i
+(to)e(upp)s(er-case)g(in)e(the)i(FITS)g(\014le\))f(and)g(that)i(string)
+0 2396 y(k)m(eyw)m(ord)h(v)-5 b(alues)30 b(generally)f(do)h(not)h(need)
+f(to)h(b)s(e)f(enclosed)g(in)f(quotes.)p eop
+%%Page: 46 52
+46 51 bop 0 299 a Fi(46)2340 b Fg(CHAPTER)30 b(5.)71
+b(TEMPLA)-8 b(TE)30 b(FILES)p eop
+%%Page: 47 53
+47 52 bop 0 1225 a Ff(Chapter)65 b(6)0 1687 y Fl(FITSIO)76
+b(Con)-6 b(v)g(en)g(tions)76 b(and)h(Guidelines)0 2216
+y Fd(6.1)135 b(CFITSIO)44 b(Size)h(Limitations)0 2476
+y Fi(CFITSIO)31 b(places)h(few)h(restrictions)e(on)i(the)f(size)h(of)f
+(FITS)g(\014les)g(that)h(it)f(reads)g(or)h(writes.)46
+b(There)32 b(are)h(a)g(few)0 2589 y(limits,)28 b(ho)m(w)m(ev)m(er,)k
+(whic)m(h)d(ma)m(y)i(a\013ect)h(some)f(extreme)g(cases:)0
+2749 y(1.)43 b(The)31 b(maxim)m(um)f(n)m(um)m(b)s(er)g(of)h(FITS)f
+(\014les)g(that)i(ma)m(y)g(b)s(e)e(sim)m(ultaneously)f(op)s(ened)i(b)m
+(y)g(CFITSIO)e(is)h(set)i(b)m(y)0 2862 y(NMAXFILES)i(as)g(de\014ned)f
+(in)g(\014tsio2.h.)51 b(It)34 b(is)f(curren)m(tly)g(set)i(=)f(300)h(b)m
+(y)f(default.)51 b(CFITSIO)32 b(will)f(allo)s(cate)0
+2975 y(ab)s(out)i(80)g(*)h(NMAXFILES)f(b)m(ytes)g(of)g(memory)g(for)g
+(in)m(ternal)e(use.)48 b(Note)34 b(that)g(the)f(underlying)d(C)i
+(compiler)0 3088 y(or)39 b(op)s(erating)g(system,)k(ma)m(y)d(ha)m(v)m
+(e)g(a)g(smaller)e(limit)g(on)h(the)h(n)m(um)m(b)s(er)e(of)i(op)s(ened)
+e(\014les.)67 b(The)39 b(C)h(sym)m(b)s(olic)0 3201 y(constan)m(t)31
+b(F)m(OPEN)p 690 3201 28 4 v 34 w(MAX)f(is)f(in)m(tended)g(to)i
+(de\014ne)e(the)i(maxim)m(um)e(n)m(um)m(b)s(er)f(of)j(\014les)e(that)h
+(ma)m(y)h(op)s(en)e(at)i(once)0 3314 y(\(including)d(an)m(y)j(other)g
+(text)h(or)f(binary)e(\014les)h(that)i(ma)m(y)f(b)s(e)g(op)s(en,)f(not)
+h(just)g(FITS)f(\014les\).)42 b(On)30 b(some)h(systems)0
+3427 y(it)f(has)g(b)s(een)g(found)f(that)i(gcc)g(supp)s(orts)e(a)h
+(maxim)m(um)g(of)g(255)i(op)s(ened)e(\014les.)0 3587
+y(Note)d(that)e(op)s(ening)f(and)h(op)s(erating)g(on)g(man)m(y)g(FITS)g
+(\014les)f(sim)m(ultaneously)f(in)h(parallel)f(ma)m(y)j(b)s(e)f(less)f
+(e\016cien)m(t)0 3700 y(than)k(op)s(erating)g(on)g(smaller)f(groups)h
+(of)h(\014les)e(in)g(series.)40 b(CFITSIO)27 b(only)g(has)h(NIOBUF)h(n)
+m(um)m(b)s(er)f(of)g(in)m(ternal)0 3813 y(bu\013ers)j(\(set)j(=)e(40)i
+(b)m(y)e(default\))h(that)g(are)g(used)f(for)g(temp)s(orary)g(storage)i
+(of)f(the)g(most)g(recen)m(t)h(data)f(records)0 3926
+y(that)40 b(ha)m(v)m(e)g(b)s(een)e(read)h(or)g(written)f(in)f(the)i
+(FITS)f(\014les.)66 b(If)38 b(the)h(n)m(um)m(b)s(er)f(of)h(op)s(ened)f
+(\014les)g(is)g(greater)i(than)0 4039 y(NIOBUF,)j(then)f(CFITSIO)e(ma)m
+(y)j(w)m(aste)h(more)e(time)g(\015ushing)d(and)j(re-reading)g(or)g
+(re-writing)e(the)j(same)0 4152 y(records)30 b(in)f(the)i(FITS)e
+(\014les.)0 4312 y(2.)54 b(By)35 b(default,)g(CFITSIO)e(can)i(handle)f
+(FITS)g(\014les)f(up)h(to)h(2.1)h(GB)g(in)d(size)i(\(2**31)i(b)m
+(ytes\).)54 b(This)33 b(\014le)h(size)0 4425 y(limit)k(is)i(often)g
+(imp)s(osed)f(b)m(y)h(32-bit)h(op)s(erating)e(systems.)71
+b(More)41 b(recen)m(tly)-8 b(,)44 b(as)d(64-bit)f(op)s(erating)g
+(systems)0 4538 y(b)s(ecome)33 b(more)g(common,)g(an)g(industry-wide)c
+(standard)j(\(at)i(least)e(on)h(Unix)e(systems\))i(has)g(b)s(een)f(dev)
+m(elop)s(ed)0 4650 y(to)39 b(supp)s(ort)d(larger)h(sized)h(\014les)f
+(\(see)h(h)m(ttp://ftp.sas.com/standards/large.\014le/\).)66
+b(Starting)38 b(with)e(v)m(ersion)0 4763 y(2.1)45 b(of)e(CFITSIO,)f
+(larger)h(FITS)g(\014les)f(up)h(to)h(6)g(terab)m(ytes)h(in)d(size)h(ma)
+m(y)h(b)s(e)f(read)g(and)g(written)g(on)g(sup-)0 4876
+y(p)s(orted)f(platforms.)75 b(In)42 b(order)g(to)h(supp)s(ort)e(these)h
+(larger)g(\014les,)j(CFITSIO)c(m)m(ust)h(b)s(e)g(compiled)f(with)g(the)
+0 4989 y('-D)p 129 4989 V 34 w(LAR)m(GEFILE)p 696 4989
+V 33 w(SOUR)m(CE')h(and)g(`-D)p 1491 4989 V 34 w(FILE)p
+1736 4989 V 33 w(OFFSET)p 2137 4989 V 32 w(BITS=64')h(compiler)e
+(\015ags.)78 b(Some)43 b(platforms)0 5102 y(ma)m(y)c(also)f(require)f
+(the)h(`-D)p 1002 5102 V 34 w(LAR)m(GE)p 1358 5102 V
+33 w(FILES')g(compiler)f(\015ag.)64 b(This)37 b(causes)h(the)h
+(compiler)e(to)i(allo)s(cate)f(8-)0 5215 y(b)m(ytes)44
+b(instead)f(of)h(4-b)m(ytes)h(for)f(the)g(`o\013)p 1473
+5215 V 33 w(t')g(datat)m(yp)s(e)h(whic)m(h)e(is)f(used)h(to)i(store)f
+(\014le)f(o\013set)i(p)s(ositions.)79 b(It)0 5328 y(app)s(ears)31
+b(that)i(in)d(most)j(cases)g(it)e(is)g(not)h(necessary)h(to)f(also)g
+(include)e(these)i(compiler)f(\015ags)h(when)f(compiling)0
+5441 y(programs)f(that)h(link)d(to)j(the)g(CFITSIO)e(library)-8
+b(.)0 5601 y(If)21 b(CFITSIO)e(is)h(compiled)g(with)g(the)h(-D)p
+1386 5601 V 33 w(LAR)m(GEFILE)p 1952 5601 V 34 w(SOUR)m(CE)f(and)g(-D)p
+2654 5601 V 34 w(FILE)p 2899 5601 V 33 w(OFFSET)p 3300
+5601 V 32 w(BITS=64)h(\015ags)0 5714 y(on)36 b(a)g(platform)f(that)h
+(supp)s(orts)e(large)i(\014les,)h(then)e(it)h(can)g(read)g(and)f(write)
+g(FITS)g(\014les)g(that)h(con)m(tain)g(up)f(to)1905 5942
+y(47)p eop
+%%Page: 48 54
+48 53 bop 0 299 a Fi(48)1277 b Fg(CHAPTER)29 b(6.)72
+b(FITSIO)29 b(CONVENTIONS)g(AND)i(GUIDELINES)0 555 y
+Fi(2**31)39 b(2880-b)m(yte)g(FITS)d(records,)j(or)d(appro)m(ximately)g
+(6)h(terab)m(ytes)h(in)e(size.)59 b(It)37 b(is)f(still)f(required)f
+(that)k(the)0 668 y(v)-5 b(alue)29 b(of)g(the)g(NAXISn)f(and)h(PCOUNT)f
+(k)m(eyw)m(ords)h(in)f(eac)m(h)i(extension)f(b)s(e)f(within)f(the)i
+(range)h(of)f(a)g(signed)f(4-)0 781 y(b)m(yte)d(in)m(teger)g(\(max)g(v)
+-5 b(alue)25 b(=)f(2,147,483,648\).)44 b(Th)m(us,)25
+b(eac)m(h)h(dimension)c(of)j(an)f(image)h(\(giv)m(en)g(b)m(y)g(the)g
+(NAXISn)0 894 y(k)m(eyw)m(ords\),)32 b(the)f(total)h(width)d(of)i(a)g
+(table)g(\(NAXIS1)h(k)m(eyw)m(ord\),)g(the)f(n)m(um)m(b)s(er)f(of)h(ro)
+m(ws)g(in)e(a)i(table)g(\(NAXIS2)0 1007 y(k)m(eyw)m(ord\),)d(and)d(the)
+h(total)h(size)f(of)g(the)g(v)-5 b(ariable-length)25
+b(arra)m(y)h(heap)g(in)f(binary)f(tables)i(\(PCOUNT)f(k)m(eyw)m(ord\))0
+1120 y(m)m(ust)30 b(b)s(e)g(less)g(than)g(this)f(limit.)0
+1280 y(Curren)m(tly)-8 b(,)30 b(supp)s(ort)f(for)i(large)g(\014les)f
+(within)e(CFITSIO)h(has)i(b)s(een)f(tested)i(on)f(the)g(Lin)m(ux,)f
+(Solaris,)f(and)h(IBM)0 1393 y(AIX)g(op)s(erating)g(systems.)0
+1750 y Fd(6.2)135 b(Multiple)46 b(Access)e(to)i(the)f(Same)g(FITS)f
+(File)0 2005 y Fi(CFITSIO)35 b(supp)s(orts)g(sim)m(ultaneous)g(read)h
+(and)g(write)g(access)h(to)h(m)m(ultiple)c(HDUs)j(in)e(the)i(same)g
+(FITS)f(\014le.)0 2118 y(Th)m(us,)43 b(one)e(can)h(op)s(en)e(the)h
+(same)h(FITS)e(\014le)g(t)m(wice)i(within)c(a)k(single)d(program)i(and)
+g(mo)m(v)m(e)h(to)g(2)f(di\013eren)m(t)0 2231 y(HDUs)30
+b(in)e(the)i(\014le,)f(and)g(then)g(read)h(and)e(write)h(data)h(or)g(k)
+m(eyw)m(ords)g(to)g(the)g(2)f(extensions)h(just)e(as)i(if)f(one)g(w)m
+(ere)0 2344 y(accessing)e(2)g(completely)f(separate)h(FITS)f(\014les.)
+38 b(Since)26 b(in)f(general)h(it)g(is)g(not)h(p)s(ossible)d(to)j(ph)m
+(ysically)d(op)s(en)i(the)0 2457 y(same)36 b(\014le)f(t)m(wice)h(and)f
+(then)g(exp)s(ect)h(to)g(b)s(e)f(able)g(to)i(sim)m(ultaneously)c(\(or)j
+(in)e(alternating)h(succession\))h(write)0 2570 y(to)f(2)f(di\013eren)m
+(t)g(lo)s(cations)g(in)e(the)j(\014le,)f(CFITSIO)f(recognizes)i(when)e
+(the)h(\014le)f(to)i(b)s(e)f(op)s(ened)f(\(in)g(the)i(call)e(to)0
+2683 y(\014ts)p 127 2683 28 4 v 32 w(op)s(en)p 349 2683
+V 33 w(\014le\))28 b(has)g(already)g(b)s(een)g(op)s(ened)g(and)g
+(instead)g(of)h(actually)f(op)s(ening)f(the)i(\014le)f(again,)h(just)f
+(logically)0 2796 y(links)g(the)j(new)f(\014le)g(to)h(the)g(old)e
+(\014le.)41 b(\(This)29 b(only)h(applies)e(if)i(the)h(\014le)e(is)h(op)
+s(ened)g(more)g(than)g(once)i(within)c(the)0 2908 y(same)g(program,)g
+(and)f(do)s(es)h(not)f(prev)m(en)m(t)i(the)f(same)g(\014le)e(from)h(b)s
+(eing)g(sim)m(ultaneously)e(op)s(ened)i(b)m(y)g(more)h(than)0
+3021 y(one)h(program\).)40 b(Then)28 b(b)s(efore)g(CFITSIO)f(reads)h
+(or)h(writes)f(to)h(either)f(\(logical\))h(\014le,)f(it)g(mak)m(es)i
+(sure)d(that)j(an)m(y)0 3134 y(mo)s(di\014cations)g(made)h(to)h(the)g
+(other)g(\014le)e(ha)m(v)m(e)j(b)s(een)e(completely)g(\015ushed)e(from)
+i(the)h(in)m(ternal)e(bu\013ers)h(to)h(the)0 3247 y(\014le.)43
+b(Th)m(us,)30 b(in)g(principle,)f(one)i(could)f(op)s(en)h(a)h(\014le)e
+(t)m(wice,)i(in)e(one)i(case)g(p)s(oin)m(ting)e(to)i(the)f(\014rst)g
+(extension)g(and)0 3360 y(in)i(the)i(other)g(p)s(oin)m(ting)d(to)k(the)
+e(2nd)g(extension)h(and)e(then)i(write)e(data)j(to)f(b)s(oth)f
+(extensions,)h(in)e(an)m(y)i(order,)0 3473 y(without)24
+b(danger)i(of)f(corrupting)g(the)g(\014le,)h(There)f(ma)m(y)h(b)s(e)f
+(some)h(e\016ciency)f(p)s(enalties)f(in)g(doing)h(this)f(ho)m(w)m(ev)m
+(er,)0 3586 y(since)j(CFITSIO)g(has)h(to)h(\015ush)d(all)h(the)h(in)m
+(ternal)f(bu\013ers)g(related)h(to)h(one)f(\014le)f(b)s(efore)h(switc)m
+(hing)e(to)j(the)f(other,)0 3699 y(so)i(it)g(w)m(ould)f(still)f(b)s(e)i
+(pruden)m(t)f(to)i(minimize)d(the)i(n)m(um)m(b)s(er)f(of)i(times)e(one)
+i(switc)m(hes)f(bac)m(k)h(and)e(forth)h(b)s(et)m(w)m(een)0
+3812 y(doing)f(I/O)i(to)g(di\013eren)m(t)f(HDUs)h(in)e(the)h(same)h
+(\014le.)0 4169 y Fd(6.3)135 b(Curren)l(t)46 b(Header)f(Data)h(Unit)g
+(\(CHDU\))0 4424 y Fi(In)32 b(general,)i(a)g(FITS)e(\014le)h(can)g(con)
+m(tain)g(m)m(ultiple)e(Header)j(Data)h(Units,)e(also)g(called)f
+(extensions.)48 b(CFITSIO)0 4537 y(only)37 b(op)s(erates)i(within)d
+(one)i(HDU)h(at)g(an)m(y)g(giv)m(en)f(time,)i(and)e(the)g(curren)m(tly)
+f(selected)i(HDU)g(is)e(called)h(the)0 4650 y(Curren)m(t)h(Header)h
+(Data)h(Unit)e(\(CHDU\).)i(When)f(a)g(FITS)f(\014le)g(is)f(\014rst)h
+(created)i(or)f(op)s(ened)f(the)h(CHDU)g(is)0 4763 y(automatically)25
+b(de\014ned)e(to)j(b)s(e)e(the)h(\014rst)f(HDU)i(\(i.e.,)g(the)f
+(primary)e(arra)m(y\).)40 b(CFITSIO)23 b(routines)h(are)h(pro)m(vided)0
+4876 y(to)36 b(mo)m(v)m(e)h(to)g(and)e(op)s(en)g(an)m(y)h(other)g
+(existing)e(HDU)j(within)c(the)j(FITS)f(\014le)f(or)i(to)g(app)s(end)e
+(or)i(insert)e(a)i(new)0 4989 y(HDU)31 b(in)e(the)i(FITS)e(\014le)h
+(whic)m(h)f(then)h(b)s(ecomes)h(the)f(CHDU.)0 5346 y
+Fd(6.4)135 b(Subroutine)45 b(Names)0 5601 y Fi(All)24
+b(FITSIO)h(subroutine)f(names)i(b)s(egin)e(with)h(the)h(letters)g('ft')
+g(to)h(distinguish)22 b(them)k(from)f(other)h(subroutines)0
+5714 y(and)34 b(are)h(5)g(or)f(6)h(c)m(haracters)h(long.)53
+b(Users)34 b(should)f(not)h(name)h(their)f(o)m(wn)g(subroutines)e(b)s
+(eginning)g(with)h('ft')p eop
+%%Page: 49 55
+49 54 bop 0 299 a Fg(6.5.)72 b(SUBR)m(OUTINE)30 b(F)-10
+b(AMILIES)30 b(AND)h(D)m(A)-8 b(T)g(A)g(TYPES)1697 b
+Fi(49)0 555 y(to)32 b(a)m(v)m(oid)h(con\015icts.)44 b(\(The)32
+b(SPP)f(in)m(terface)h(routines)e(all)h(b)s(egin)f(with)h('fs'\).)45
+b(Subroutines)29 b(whic)m(h)h(read)i(or)g(get)0 668 y(information)c
+(from)i(the)h(FITS)e(\014le)g(ha)m(v)m(e)j(names)e(b)s(eginning)d(with)
+i('ftg...'.)43 b(Subroutines)27 b(whic)m(h)i(write)g(or)i(put)0
+781 y(information)e(in)m(to)h(the)h(FITS)e(\014le)h(ha)m(v)m(e)h(names)
+g(b)s(eginning)c(with)i('ftp...'.)0 1274 y Fd(6.5)135
+b(Subroutine)45 b(F)-11 b(amilies)46 b(and)f(Datat)l(yp)t(es)0
+1556 y Fi(Man)m(y)h(of)g(the)g(subroutines)d(come)k(in)d(families)f
+(whic)m(h)i(di\013er)f(only)h(in)f(the)i(datat)m(yp)s(e)g(of)g(the)f
+(asso)s(ciated)0 1669 y(parameter\(s\))34 b(.)47 b(The)32
+b(datat)m(yp)s(e)i(of)f(these)g(subroutines)d(is)i(indicated)f(b)m(y)i
+(the)g(last)f(letter)h(of)g(the)g(subroutine)0 1781 y(name)d(\(e.g.,)j
+('j')d(in)f('ftpkyj'\))i(as)f(follo)m(ws:)382 2176 y
+Fe(x)47 b(-)h(bit)382 2289 y(b)f(-)h(character*1)c(\(unsigned)i(byte\))
+382 2402 y(i)h(-)h(short)e(integer)g(\(I*2\))382 2515
+y(j)h(-)h(integer)e(\(I*4\))382 2628 y(e)h(-)h(real)e(exponential)f
+(floating)h(point)g(\(R*4\))382 2741 y(f)h(-)h(real)e(fixed-format)f
+(floating)g(point)i(\(R*4\))382 2854 y(d)g(-)h(double)e(precision)f
+(real)i(floating-point)d(\(R*8\))382 2967 y(g)j(-)h(double)e(precision)
+f(fixed-format)g(floating)g(point)h(\(R*8\))382 3079
+y(c)h(-)h(complex)e(reals)g(\(pairs)g(of)h(R*4)g(values\))382
+3192 y(m)g(-)h(double)e(precision)f(complex)h(\(pairs)g(of)h(R*8)g
+(values\))382 3305 y(l)g(-)h(logical)e(\(L*4\))382 3418
+y(s)h(-)h(character)d(string)0 3813 y Fi(When)23 b(dealing)f(with)g
+(the)h(FITS)g(b)m(yte)g(datat)m(yp)s(e,)j(it)d(is)f(imp)s(ortan)m(t)h
+(to)g(remem)m(b)s(er)g(that)h(the)f(ra)m(w)g(v)-5 b(alues)23
+b(\(b)s(efore)0 3926 y(an)m(y)i(scaling)e(b)m(y)h(the)h(BSCALE)e(and)h
+(BZER)m(O,)g(or)h(TSCALn)d(and)i(TZER)m(On)f(k)m(eyw)m(ord)i(v)-5
+b(alues\))24 b(in)f(b)m(yte)i(arra)m(ys)0 4039 y(\(BITPIX)37
+b(=)f(8\))h(or)f(b)m(yte)i(columns)d(\(TF)m(ORMn)i(=)f('B'\))h(are)g
+(in)m(terpreted)f(as)h(unsigned)d(b)m(ytes)j(with)f(v)-5
+b(alues)0 4152 y(ranging)39 b(from)g(0)i(to)f(255.)71
+b(Some)40 b(F)-8 b(ortran)40 b(compilers)f(supp)s(ort)f(a)i
+(non-standard)f(b)m(yte)h(datat)m(yp)s(e)h(suc)m(h)f(as)0
+4264 y(INTEGER*1,)34 b(LOGICAL*1,)g(or)f(BYTE,)g(whic)m(h)e(can)i
+(sometimes)g(b)s(e)f(used)g(instead)g(of)h(CHARA)m(CTER*1)0
+4377 y(v)-5 b(ariables.)37 b(Man)m(y)23 b(mac)m(hines)f(p)s(ermit)g
+(passing)f(a)i(n)m(umeric)f(datat)m(yp)s(e)h(\(suc)m(h)g(as)g
+(INTEGER*1\))h(to)f(the)g(FITSIO)0 4490 y(subroutines)40
+b(whic)m(h)i(are)h(exp)s(ecting)f(a)h(CHARA)m(CTER*1)h(datat)m(yp)s(e,)
+j(but)42 b(this)f(tec)m(hnically)h(violates)h(the)0 4603
+y(F)-8 b(ortran-77)29 b(standard)d(and)g(is)g(not)h(supp)s(orted)e(on)i
+(all)f(mac)m(hines)g(\(e.g.,)k(on)c(a)i(V)-10 b(AX/VMS)27
+b(mac)m(hine)g(one)g(m)m(ust)0 4716 y(use)j(the)h(V)-10
+b(AX-sp)s(eci\014c)30 b(\045DESCR)f(function\).)0 4876
+y(One)22 b(feature)h(of)g(the)g(CFITSIO)e(routines)h(is)f(that)j(they)f
+(can)g(op)s(erate)g(on)f(a)h(`X')h(\(bit\))e(column)g(in)f(a)i(binary)e
+(table)0 4989 y(as)35 b(though)e(it)h(w)m(ere)h(a)g(`B')g(\(b)m(yte\))g
+(column.)52 b(F)-8 b(or)35 b(example)f(a)g(`11X')i(datat)m(yp)s(e)f
+(column)e(can)i(b)s(e)f(in)m(terpreted)0 5102 y(the)28
+b(same)h(as)f(a)g(`2B')i(column)d(\(i.e.,)i(2)f(unsigned)e(8-bit)i(b)m
+(ytes\).)41 b(In)27 b(some)i(instances,)f(it)f(can)i(b)s(e)e(more)h
+(e\016cien)m(t)0 5215 y(to)j(read)f(and)g(write)g(whole)f(b)m(ytes)i
+(at)g(a)g(time,)f(rather)h(than)f(reading)f(or)i(writing)d(eac)m(h)k
+(individual)25 b(bit.)0 5375 y(The)41 b(double)g(precision)f(complex)h
+(datat)m(yp)s(e)i(is)e(not)h(a)g(standard)f(F)-8 b(ortran-77)43
+b(datat)m(yp)s(e.)76 b(If)41 b(a)i(particular)0 5488
+y(F)-8 b(ortran)35 b(compiler)e(do)s(es)h(not)h(directly)e(supp)s(ort)g
+(this)h(datat)m(yp)s(e,)i(then)f(one)f(ma)m(y)h(instead)f(pass)g(an)h
+(arra)m(y)g(of)0 5601 y(pairs)c(of)i(double)e(precision)g(v)-5
+b(alues)31 b(to)j(these)f(subroutines.)44 b(The)33 b(\014rst)e(v)-5
+b(alue)32 b(in)f(eac)m(h)j(pair)d(is)h(the)h(real)f(part,)0
+5714 y(and)e(the)g(second)h(is)e(the)i(imaginary)e(part.)p
+eop
+%%Page: 50 56
+50 55 bop 0 299 a Fi(50)1277 b Fg(CHAPTER)29 b(6.)72
+b(FITSIO)29 b(CONVENTIONS)g(AND)i(GUIDELINES)0 555 y
+Fd(6.6)135 b(Implicit)46 b(Data)g(T)l(yp)t(e)f(Con)l(v)l(ersion)0
+816 y Fi(The)22 b(FITSIO)g(routines)g(that)i(read)e(and)h(write)f(n)m
+(umerical)f(data)j(can)f(p)s(erform)f(implicit)e(data)j(t)m(yp)s(e)g
+(con)m(v)m(ersion.)0 929 y(This)h(means)h(that)h(the)g(data)g(t)m(yp)s
+(e)g(of)g(the)g(v)-5 b(ariable)24 b(or)i(arra)m(y)g(in)e(the)i(program)
+f(do)s(es)g(not)h(need)g(to)g(b)s(e)f(the)h(same)0 1042
+y(as)i(the)f(data)h(t)m(yp)s(e)g(of)f(the)h(v)-5 b(alue)27
+b(in)f(the)h(FITS)g(\014le.)39 b(Data)28 b(t)m(yp)s(e)g(con)m(v)m
+(ersion)g(is)e(supp)s(orted)g(for)h(n)m(umerical)f(and)0
+1155 y(string)32 b(data)i(t)m(yp)s(es)f(\(if)g(the)h(string)e(con)m
+(tains)h(a)h(v)-5 b(alid)31 b(n)m(um)m(b)s(er)h(enclosed)h(in)f
+(quotes\))i(when)f(reading)f(a)i(FITS)0 1268 y(header)d(k)m(eyw)m(ord)g
+(v)-5 b(alue)30 b(and)h(for)f(n)m(umeric)g(v)-5 b(alues)30
+b(when)g(reading)g(or)h(writing)e(v)-5 b(alues)30 b(in)f(the)i(primary)
+e(arra)m(y)0 1381 y(or)40 b(a)h(table)g(column.)69 b(CFITSIO)39
+b(returns)h(status)g(=)h(NUM)p 2185 1381 28 4 v 33 w(O)m(VERFLO)m(W)g
+(if)f(the)g(con)m(v)m(erted)i(data)f(v)-5 b(alue)0 1493
+y(exceeds)33 b(the)g(range)g(of)g(the)f(output)g(data)i(t)m(yp)s(e.)47
+b(Implicit)30 b(data)j(t)m(yp)s(e)g(con)m(v)m(ersion)g(is)e(not)i(supp)
+s(orted)d(within)0 1606 y(binary)f(tables)h(for)g(string,)f(logical,)i
+(complex,)f(or)g(double)f(complex)h(data)h(t)m(yp)s(es.)0
+1767 y(In)g(addition,)f(an)m(y)h(table)g(column)f(ma)m(y)i(b)s(e)f
+(read)g(as)h(if)e(it)h(con)m(tained)g(string)f(v)-5 b(alues.)43
+b(In)31 b(the)g(case)i(of)e(n)m(umeric)0 1879 y(columns)e(the)i
+(returned)e(string)g(will)f(b)s(e)i(formatted)h(using)d(the)j(TDISPn)e
+(displa)m(y)g(format)h(if)g(it)g(exists.)0 2266 y Fd(6.7)135
+b(Data)46 b(Scaling)0 2527 y Fi(When)38 b(reading)e(n)m(umerical)h
+(data)h(v)-5 b(alues)37 b(in)f(the)i(primary)e(arra)m(y)i(or)g(a)g
+(table)g(column,)h(the)e(v)-5 b(alues)37 b(will)f(b)s(e)0
+2640 y(scaled)h(automatically)h(b)m(y)f(the)h(BSCALE)f(and)g(BZER)m(O)h
+(\(or)g(TSCALn)d(and)i(TZER)m(On\))g(header)g(k)m(eyw)m(ord)0
+2753 y(v)-5 b(alues)32 b(if)f(they)h(are)h(presen)m(t)g(in)e(the)h
+(header.)47 b(The)31 b(scaled)i(data)g(that)g(is)e(returned)g(to)i(the)
+g(reading)e(program)0 2866 y(will)d(ha)m(v)m(e)382 3171
+y Fe(output)46 b(value)g(=)i(\(FITS)e(value\))g(*)i(BSCALE)e(+)h(BZERO)
+0 3476 y Fi(\(a)30 b(corresp)s(onding)d(form)m(ula)h(using)g(TSCALn)f
+(and)i(TZER)m(On)e(is)h(used)h(when)f(reading)g(from)h(table)g
+(columns\).)0 3589 y(In)i(the)i(case)g(of)f(in)m(teger)g(output)g(v)-5
+b(alues)31 b(the)i(\015oating)f(p)s(oin)m(t)f(scaled)g(v)-5
+b(alue)32 b(is)f(truncated)h(to)h(an)f(in)m(teger)g(\(not)0
+3702 y(rounded)38 b(to)i(the)g(nearest)g(in)m(teger\).)69
+b(The)39 b(ftpscl)f(and)h(fttscl)h(subroutines)d(ma)m(y)j(b)s(e)f(used)
+g(to)h(o)m(v)m(erride)g(the)0 3815 y(scaling)28 b(parameters)h
+(de\014ned)e(in)g(the)i(header)f(\(e.g.,)j(to)e(turn)f(o\013)h(the)f
+(scaling)g(so)h(that)g(the)g(program)f(can)h(read)0 3928
+y(the)i(ra)m(w)f(unscaled)f(v)-5 b(alues)30 b(from)g(the)g(FITS)g
+(\014le\).)0 4088 y(When)44 b(writing)f(n)m(umerical)g(data)i(to)g(the)
+g(primary)e(arra)m(y)i(or)f(to)h(a)g(table)g(column)e(the)i(data)g(v)-5
+b(alues)44 b(will)0 4201 y(generally)27 b(b)s(e)h(automatically)g(in)m
+(v)m(ersely)g(scaled)g(b)m(y)g(the)g(v)-5 b(alue)28 b(of)g(the)h
+(BSCALE)e(and)h(BZER)m(O)g(\(or)h(TSCALn)0 4314 y(and)h(TZER)m(On\))g
+(header)g(k)m(eyw)m(ord)h(v)-5 b(alues)30 b(if)g(they)h(they)g(exist)f
+(in)f(the)i(header.)42 b(These)30 b(k)m(eyw)m(ords)h(m)m(ust)g(ha)m(v)m
+(e)0 4426 y(b)s(een)f(written)g(to)i(the)g(header)e(b)s(efore)h(an)m(y)
+h(data)f(is)f(written)h(for)f(them)i(to)f(ha)m(v)m(e)i(an)m(y)e
+(e\013ect.)44 b(Otherwise,)31 b(one)0 4539 y(ma)m(y)j(use)f(the)g
+(ftpscl)f(and)h(fttscl)g(subroutines)d(to)k(de\014ne)f(or)g(o)m(v)m
+(erride)g(the)g(scaling)g(k)m(eyw)m(ords)g(in)f(the)h(header)0
+4652 y(\(e.g.,)h(to)f(turn)d(o\013)j(the)f(scaling)f(so)h(that)g(the)g
+(program)g(can)g(write)f(the)h(ra)m(w)g(unscaled)f(v)-5
+b(alues)31 b(in)m(to)h(the)g(FITS)0 4765 y(\014le\).)42
+b(If)30 b(scaling)g(is)g(p)s(erformed,)f(the)i(in)m(v)m(erse)g(scaled)g
+(output)f(v)-5 b(alue)31 b(that)g(is)f(written)g(in)m(to)h(the)g(FITS)f
+(\014le)g(will)0 4878 y(ha)m(v)m(e)430 5183 y Fe(FITS)46
+b(value)h(=)g(\(\(input)f(value\))g(-)h(BZERO\))f(/)i(BSCALE)0
+5488 y Fi(\(a)39 b(corresp)s(onding)c(form)m(ula)i(using)g(TSCALn)f
+(and)h(TZER)m(On)g(is)g(used)g(when)f(writing)g(to)j(table)f
+(columns\).)0 5601 y(Rounding)18 b(to)j(the)g(nearest)g(in)m(teger,)h
+(rather)f(than)f(truncation,)i(is)d(p)s(erformed)g(when)g(writing)f(in)
+m(teger)j(datat)m(yp)s(es)0 5714 y(to)31 b(the)g(FITS)e(\014le.)p
+eop
+%%Page: 51 57
+51 56 bop 0 299 a Fg(6.8.)72 b(ERR)m(OR)30 b(ST)-8 b(A)g(TUS)30
+b(V)-10 b(ALUES)30 b(AND)h(THE)f(ERR)m(OR)g(MESSA)m(GE)h(ST)-8
+b(A)m(CK)848 b Fi(51)0 555 y Fd(6.8)135 b(Error)46 b(Status)f(V)-11
+b(alues)45 b(and)g(the)g(Error)g(Message)h(Stac)l(k)0
+809 y Fi(The)33 b(last)h(parameter)g(in)f(nearly)g(ev)m(ery)h(FITSIO)f
+(subroutine)f(is)h(the)h(error)f(status)h(v)-5 b(alue)34
+b(whic)m(h)e(is)h(b)s(oth)g(an)0 922 y(input)i(and)g(an)i(output)f
+(parameter.)60 b(A)36 b(returned)f(p)s(ositiv)m(e)h(v)-5
+b(alue)36 b(for)g(this)g(parameter)h(indicates)e(an)h(error)0
+1035 y(w)m(as)31 b(detected.)42 b(A)30 b(listing)e(of)j(all)e(the)i
+(FITSIO)e(status)i(co)s(de)f(v)-5 b(alues)30 b(is)f(giv)m(en)i(at)g
+(the)f(end)g(of)h(this)e(do)s(cumen)m(t.)0 1195 y(The)22
+b(FITSIO)g(library)e(uses)j(an)f(`inherited)f(status')i(con)m(v)m(en)m
+(tion)h(for)f(the)g(status)g(parameter)g(whic)m(h)f(means)g(that)0
+1308 y(if)h(a)i(subroutine)e(is)g(called)h(with)f(a)i(p)s(ositiv)m(e)e
+(input)g(v)-5 b(alue)24 b(of)h(the)f(status)h(parameter,)h(then)f(the)f
+(subroutine)f(will)0 1421 y(exit)i(immediately)d(without)i(c)m(hanging)
+h(the)f(v)-5 b(alue)24 b(of)h(the)g(status)g(parameter.)39
+b(Th)m(us,)25 b(if)f(one)g(passes)h(the)g(status)0 1533
+y(v)-5 b(alue)30 b(returned)f(from)h(eac)m(h)i(FITSIO)d(routine)g(as)i
+(input)e(to)i(the)f(next)h(FITSIO)e(subroutine,)g(then)h(whenev)m(er)0
+1646 y(an)39 b(error)g(is)g(detected)h(all)f(further)f(FITSIO)g(pro)s
+(cessing)g(will)f(cease.)69 b(This)38 b(con)m(v)m(en)m(tion)i(can)g
+(simplify)c(the)0 1759 y(error)30 b(c)m(hec)m(king)i(in)d(application)g
+(programs)i(b)s(ecause)g(it)f(is)g(not)h(necessary)g(to)g(c)m(hec)m(k)i
+(the)e(v)-5 b(alue)30 b(of)h(the)g(status)0 1872 y(parameter)j(after)g
+(ev)m(ery)g(single)f(FITSIO)f(subroutine)f(call.)50 b(If)33
+b(a)h(program)f(con)m(tains)h(a)g(sequence)g(of)g(sev)m(eral)0
+1985 y(FITSIO)23 b(calls,)h(one)g(can)g(just)g(c)m(hec)m(k)h(the)f
+(status)g(v)-5 b(alue)23 b(after)i(the)f(last)f(call.)38
+b(Since)23 b(the)h(returned)e(status)j(v)-5 b(alues)0
+2098 y(are)36 b(generally)f(distinctiv)m(e,)h(it)f(should)f(b)s(e)h(p)s
+(ossible)e(to)j(determine)f(whic)m(h)f(subroutine)g(originally)f
+(returned)0 2211 y(the)e(error)f(status.)0 2371 y(FITSIO)i(also)h(main)
+m(tains)e(an)i(in)m(ternal)f(stac)m(k)i(of)f(error)g(messages)h(\(80-c)
+m(haracter)i(maxim)m(um)c(length\))g(whic)m(h)0 2484
+y(in)j(man)m(y)h(cases)h(pro)m(vide)e(a)h(more)g(detailed)g
+(explanation)f(of)h(the)g(cause)h(of)f(the)g(error)g(than)f(is)g(pro)m
+(vided)g(b)m(y)0 2597 y(the)40 b(error)e(status)i(n)m(um)m(b)s(er)e
+(alone.)68 b(It)39 b(is)g(recommended)g(that)g(the)h(error)f(message)h
+(stac)m(k)h(b)s(e)e(prin)m(ted)f(out)0 2710 y(whenev)m(er)31
+b(a)h(program)g(detects)g(a)g(FITSIO)e(error.)44 b(T)-8
+b(o)32 b(do)f(this,)g(call)g(the)h(FTGMSG)g(routine)e(rep)s(eatedly)h
+(to)0 2823 y(get)i(the)g(successiv)m(e)f(messages)i(on)e(the)g(stac)m
+(k.)48 b(When)32 b(the)h(stac)m(k)g(is)f(empt)m(y)g(FTGMSG)h(will)d
+(return)h(a)h(blank)0 2936 y(string.)40 b(Note)31 b(that)g(this)e(is)g
+(a)h(`First)g(In)f({)i(First)e(Out')h(stac)m(k,)i(so)e(the)h(oldest)f
+(error)f(message)j(is)d(returned)g(\014rst)0 3049 y(b)m(y)h(ftgmsg.)0
+3399 y Fd(6.9)135 b(V)-11 b(ariable-Length)46 b(Arra)l(y)f(F)-11
+b(acilit)l(y)46 b(in)f(Binary)g(T)-11 b(ables)0 3653
+y Fi(FITSIO)38 b(pro)m(vides)h(easy-to-use)i(supp)s(ort)d(for)h
+(reading)f(and)h(writing)f(data)i(in)e(v)-5 b(ariable)38
+b(length)h(\014elds)f(of)i(a)0 3766 y(binary)34 b(table.)55
+b(The)35 b(v)-5 b(ariable)34 b(length)g(columns)g(ha)m(v)m(e)j(TF)m
+(ORMn)e(k)m(eyw)m(ord)h(v)-5 b(alues)34 b(of)i(the)f(form)g
+(`1Pt\(len\)')0 3878 y(where)27 b(`t')g(is)f(the)i(datat)m(yp)s(e)g(co)
+s(de)f(\(e.g.,)j(I,)d(J,)g(E,)g(D,)g(etc.\))41 b(and)27
+b(`len')f(is)h(an)f(in)m(teger)i(sp)s(ecifying)d(the)i(maxim)m(um)0
+3991 y(length)f(of)h(the)h(v)m(ector)g(in)e(the)h(table.)39
+b(If)27 b(the)g(v)-5 b(alue)26 b(of)h(`len')g(is)f(not)h(sp)s
+(eci\014ed)e(when)h(the)h(table)g(is)f(created)i(\(e.g.,)0
+4104 y(if)e(the)i(TF)m(ORM)f(k)m(eyw)m(ord)h(v)-5 b(alue)27
+b(is)f(simply)f(sp)s(eci\014ed)h(as)h('1PE')h(instead)f(of)g
+('1PE\(400\))j(\),)e(then)f(FITSIO)g(will)0 4217 y(automatically)i
+(scan)g(the)g(table)g(when)f(it)h(is)f(closed)h(to)h(determine)e(the)h
+(maxim)m(um)f(length)g(of)i(the)f(v)m(ector)i(and)0 4330
+y(will)d(app)s(end)g(this)i(v)-5 b(alue)30 b(to)h(the)f(TF)m(ORMn)g(v)
+-5 b(alue.)0 4490 y(The)25 b(same)h(routines)f(whic)m(h)f(read)i(and)f
+(write)g(data)h(in)e(an)i(ordinary)e(\014xed)h(length)g(binary)f(table)
+h(extension)h(are)0 4603 y(also)k(used)f(for)h(v)-5 b(ariable)29
+b(length)h(\014elds,)e(ho)m(w)m(ev)m(er,)k(the)e(subroutine)e
+(parameters)j(tak)m(e)h(on)e(a)g(sligh)m(tly)e(di\013eren)m(t)0
+4716 y(in)m(terpretation)i(as)g(describ)s(ed)f(b)s(elo)m(w.)0
+4876 y(All)35 b(the)h(data)h(in)e(a)i(v)-5 b(ariable)35
+b(length)g(\014eld)g(is)g(written)h(in)m(to)g(an)g(area)h(called)f(the)
+g(`heap')g(whic)m(h)f(follo)m(ws)h(the)0 4989 y(main)25
+b(\014xed-length)g(FITS)g(binary)g(table.)39 b(The)25
+b(size)h(of)h(the)f(heap,)h(in)e(b)m(ytes,)i(is)e(sp)s(eci\014ed)g
+(with)f(the)j(PCOUNT)0 5102 y(k)m(eyw)m(ord)21 b(in)e(the)i(FITS)f
+(header.)37 b(When)20 b(creating)h(a)g(new)f(binary)f(table,)j(the)f
+(initial)d(v)-5 b(alue)20 b(of)g(PCOUNT)g(should)0 5215
+y(usually)29 b(b)s(e)h(set)i(to)g(zero.)44 b(FITSIO)30
+b(will)e(recompute)k(the)f(size)g(of)h(the)f(heap)g(as)g(the)h(data)g
+(is)e(written)g(and)h(will)0 5328 y(automatically)25
+b(up)s(date)f(the)i(PCOUNT)e(k)m(eyw)m(ord)h(v)-5 b(alue)25
+b(when)f(the)h(table)g(is)f(closed.)39 b(When)25 b(writing)e(v)-5
+b(ariable)0 5441 y(length)33 b(data)h(to)g(a)g(table,)h(CFITSIO)d(will)
+e(automatically)k(extend)f(the)h(size)f(of)h(the)g(heap)f(area)h(if)f
+(necessary)-8 b(,)0 5554 y(so)31 b(that)g(an)m(y)f(follo)m(wing)f(HDUs)
+i(do)f(not)h(get)h(o)m(v)m(erwritten.)0 5714 y(By)e(default)e(the)i
+(heap)f(data)i(area)f(starts)g(immediately)e(after)i(the)f(last)h(ro)m
+(w)f(of)h(the)g(\014xed-length)e(table.)41 b(This)p eop
+%%Page: 52 58
+52 57 bop 0 299 a Fi(52)1277 b Fg(CHAPTER)29 b(6.)72
+b(FITSIO)29 b(CONVENTIONS)g(AND)i(GUIDELINES)0 555 y
+Fi(default)26 b(starting)g(lo)s(cation)h(ma)m(y)g(b)s(e)f(o)m(v)m
+(erridden)g(b)m(y)h(the)g(THEAP)f(k)m(eyw)m(ord,)i(but)f(this)e(is)h
+(not)h(recommended.)0 668 y(If)34 b(additional)e(ro)m(ws)i(of)g(data)h
+(are)g(added)e(to)i(the)f(table,)i(CFITSIO)c(will)g(automatically)i
+(shift)e(the)j(the)f(heap)0 781 y(do)m(wn)g(to)i(mak)m(e)f(ro)s(om)g
+(for)f(the)h(new)f(ro)m(ws,)i(but)e(it)h(is)e(ob)m(viously)h(b)s(e)g
+(more)h(e\016cien)m(t)g(to)g(initially)c(create)37 b(the)0
+894 y(table)30 b(with)e(the)i(necessary)g(n)m(um)m(b)s(er)f(of)h(blank)
+e(ro)m(ws,)i(so)g(that)g(the)g(heap)g(do)s(es)f(not)h(needed)g(to)g(b)s
+(e)f(constan)m(tly)0 1007 y(mo)m(v)m(ed.)0 1167 y(When)40
+b(writing)f(to)i(a)g(v)-5 b(ariable)39 b(length)h(\014eld,)i(the)f(en)m
+(tire)g(arra)m(y)g(of)f(v)-5 b(alues)40 b(for)g(a)h(giv)m(en)g(ro)m(w)g
+(of)f(the)h(table)0 1280 y(m)m(ust)36 b(b)s(e)g(written)f(with)g(a)h
+(single)f(call)h(to)h(FTPCLx.)57 b(The)36 b(total)h(length)f(of)g(the)g
+(arra)m(y)h(is)e(calculated)h(from)0 1393 y(\(NELEM+FELEM-1\).)44
+b(One)30 b(cannot)i(app)s(end)d(more)i(elemen)m(ts)g(to)h(an)e
+(existing)g(\014eld)g(at)h(a)h(later)f(time;)g(an)m(y)0
+1506 y(attempt)k(to)f(do)g(so)g(will)d(simply)g(o)m(v)m(erwrite)k(all)d
+(the)i(data)h(whic)m(h)d(w)m(as)i(previously)e(written.)50
+b(Note)35 b(also)e(that)0 1619 y(the)h(new)g(data)g(will)e(b)s(e)h
+(written)g(to)i(a)f(new)g(area)g(of)g(the)h(heap)e(and)h(the)g(heap)g
+(space)g(used)f(b)m(y)h(the)g(previous)0 1732 y(write)i(cannot)i(b)s(e)
+e(reclaimed.)60 b(F)-8 b(or)38 b(this)e(reason)h(it)g(is)f(advised)g
+(that)i(eac)m(h)g(ro)m(w)f(of)h(a)f(v)-5 b(ariable)36
+b(length)g(\014eld)0 1844 y(only)c(b)s(e)h(written)f(once.)50
+b(An)33 b(exception)g(to)h(this)e(general)h(rule)f(o)s(ccurs)h(when)f
+(setting)h(elemen)m(ts)h(of)f(an)g(arra)m(y)0 1957 y(as)38
+b(unde\014ned.)63 b(One)37 b(m)m(ust)i(\014rst)e(write)g(a)i(dumm)m(y)e
+(v)-5 b(alue)38 b(in)m(to)g(the)h(arra)m(y)f(with)f(FTPCLx,)j(and)e
+(then)g(call)0 2070 y(FTPCLU)33 b(to)i(\015ag)f(the)f(desired)g(elemen)
+m(ts)h(as)f(unde\014ned.)49 b(\(Do)35 b(not)f(use)f(the)h(FTPCNx)f
+(family)f(of)i(routines)0 2183 y(with)27 b(v)-5 b(ariable)28
+b(length)g(\014elds\).)39 b(Note)30 b(that)f(the)g(ro)m(ws)g(of)g(a)g
+(table,)g(whether)f(\014xed)g(or)h(v)-5 b(ariable)27
+b(length,)i(do)g(not)0 2296 y(ha)m(v)m(e)j(to)f(b)s(e)e(written)h
+(consecutiv)m(ely)g(and)g(ma)m(y)h(b)s(e)f(written)f(in)g(an)m(y)i
+(order.)0 2456 y(When)40 b(writing)f(to)i(a)g(v)-5 b(ariable)39
+b(length)h(ASCI)s(I)f(c)m(haracter)j(\014eld)d(\(e.g.,)45
+b(TF)m(ORM)c(=)f('1P)-8 b(A'\))43 b(only)c(a)i(single)0
+2569 y(c)m(haracter)33 b(string)e(written.)43 b(FTPCLS)30
+b(writes)h(the)h(whole)e(length)h(of)h(the)g(input)d(string)i(\(min)m
+(us)f(an)m(y)i(trailing)0 2682 y(blank)k(c)m(haracters\),)42
+b(th)m(us)37 b(the)h(NELEM)f(and)g(FELEM)h(parameters)g(are)g(ignored.)
+61 b(If)37 b(the)h(input)d(string)i(is)0 2795 y(completely)26
+b(blank)g(then)g(FITSIO)g(will)e(write)i(one)h(blank)e(c)m(haracter)k
+(to)e(the)g(FITS)f(\014le.)39 b(Similarly)-8 b(,)24 b(FTGCVS)0
+2908 y(and)35 b(FTGCFS)g(read)g(the)h(en)m(tire)f(string)g(\(truncated)
+g(to)i(the)e(width)f(of)h(the)h(c)m(haracter)h(string)d(argumen)m(t)i
+(in)0 3021 y(the)31 b(subroutine)d(call\))i(and)g(also)g(ignore)g(the)g
+(NELEM)h(and)f(FELEM)g(parameters.)0 3181 y(The)35 b(FTPDES)h
+(subroutine)d(is)i(useful)f(in)g(situations)h(where)g(m)m(ultiple)f(ro)
+m(ws)h(of)h(a)g(v)-5 b(ariable)35 b(length)g(column)0
+3294 y(ha)m(v)m(e)d(the)e(iden)m(tical)f(arra)m(y)i(of)g(v)-5
+b(alues.)40 b(One)30 b(can)g(simply)e(write)i(the)g(arra)m(y)h(once)g
+(for)g(the)f(\014rst)g(ro)m(w,)g(and)g(then)0 3407 y(use)36
+b(FTPDES)g(to)h(write)f(the)g(same)h(descriptor)f(v)-5
+b(alues)35 b(in)m(to)i(the)f(other)h(ro)m(ws)f(\(use)h(the)f(FTGDES)h
+(routine)0 3520 y(to)f(read)f(the)h(\014rst)f(descriptor)f(v)-5
+b(alue\);)38 b(all)c(the)i(ro)m(ws)f(will)e(then)i(p)s(oin)m(t)f(to)i
+(the)g(same)f(storage)i(lo)s(cation)e(th)m(us)0 3633
+y(sa)m(ving)30 b(disk)f(space.)0 3793 y(When)35 b(reading)f(from)g(a)i
+(v)-5 b(ariable)33 b(length)i(arra)m(y)g(\014eld)f(one)h(can)g(only)g
+(read)f(as)i(man)m(y)f(elemen)m(ts)g(as)g(actually)0
+3906 y(exist)h(in)e(that)j(ro)m(w)e(of)h(the)g(table;)j(reading)c(do)s
+(es)h(not)g(automatically)f(con)m(tin)m(ue)h(with)f(the)h(next)g(ro)m
+(w)g(of)g(the)0 4019 y(table)28 b(as)g(o)s(ccurs)g(when)f(reading)g(an)
+h(ordinary)f(\014xed)g(length)g(table)h(\014eld.)39 b(A)m(ttempts)29
+b(to)g(read)f(more)g(than)g(this)0 4131 y(will)h(cause)k(an)e(error)h
+(status)g(to)g(b)s(e)f(returned.)44 b(One)32 b(can)g(determine)f(the)h
+(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)g(in)f(eac)m(h)i(ro)m(w)0
+4244 y(of)e(a)f(v)-5 b(ariable)29 b(column)h(with)f(the)h(FTGDES)h
+(subroutine.)0 4657 y Fd(6.10)136 b(Supp)t(ort)44 b(for)h(IEEE)g(Sp)t
+(ecial)h(V)-11 b(alues)0 4924 y Fi(The)26 b(ANSI/IEEE-754)h
+(\015oating-p)s(oin)m(t)f(n)m(um)m(b)s(er)f(standard)g(de\014nes)h
+(certain)g(sp)s(ecial)f(v)-5 b(alues)25 b(that)i(are)g(used)e(to)0
+5036 y(represen)m(t)j(suc)m(h)g(quan)m(tities)f(as)h(Not-a-Num)m(b)s
+(er)h(\(NaN\),)h(denormalized,)d(under\015o)m(w,)g(o)m(v)m(er\015o)m
+(w,)j(and)d(in\014nit)m(y)-8 b(.)0 5149 y(\(See)29 b(the)f(App)s(endix)
+d(in)i(the)h(NOST)g(FITS)f(standard)g(or)h(the)g(NOST)g(FITS)f(User's)h
+(Guide)f(for)h(a)g(list)f(of)h(these)0 5262 y(v)-5 b(alues\).)40
+b(The)30 b(FITSIO)f(subroutines)f(that)j(read)f(\015oating)h(p)s(oin)m
+(t)e(data)i(in)e(FITS)g(\014les)h(recognize)h(these)g(IEEE)0
+5375 y(sp)s(ecial)38 b(v)-5 b(alues)38 b(and)h(b)m(y)g(default)f(in)m
+(terpret)h(the)g(o)m(v)m(er\015o)m(w)i(and)d(in\014nit)m(y)f(v)-5
+b(alues)39 b(as)g(b)s(eing)f(equiv)-5 b(alen)m(t)39 b(to)h(a)0
+5488 y(NaN,)35 b(and)e(con)m(v)m(ert)i(the)f(under\015o)m(w)e(and)h
+(denormalized)f(v)-5 b(alues)33 b(in)m(to)h(zeros.)51
+b(In)33 b(some)h(cases)h(programmers)0 5601 y(ma)m(y)d(w)m(an)m(t)g
+(access)g(to)g(the)g(ra)m(w)f(IEEE)g(v)-5 b(alues,)31
+b(without)f(an)m(y)i(mo)s(di\014cation)d(b)m(y)i(FITSIO.)g(This)e(can)j
+(b)s(e)e(done)0 5714 y(b)m(y)k(calling)g(the)g(FTGPVx)h(or)g(FTGCVx)g
+(routines)e(while)g(sp)s(ecifying)f(0.0)k(as)f(the)f(v)-5
+b(alue)34 b(of)h(the)g(NULL)-10 b(V)g(AL)p eop
+%%Page: 53 59
+53 58 bop 0 299 a Fg(6.11.)73 b(WHEN)31 b(THE)f(FINAL)g(SIZE)f(OF)i
+(THE)f(FITS)f(HDU)i(IS)f(UNKNO)m(WN)978 b Fi(53)0 555
+y(parameter.)72 b(This)38 b(will)g(force)j(FITSIO)e(to)j(simply)c(pass)
+i(the)g(IEEE)g(v)-5 b(alues)40 b(through)g(to)h(the)g(application)0
+668 y(program,)30 b(without)f(an)m(y)h(mo)s(di\014cation.)39
+b(This)29 b(do)s(es)g(not)h(w)m(ork)g(for)g(double)f(precision)f(v)-5
+b(alues)29 b(on)h(V)-10 b(AX/VMS)0 781 y(mac)m(hines,)37
+b(ho)m(w)m(ev)m(er,)i(where)d(there)g(is)f(no)h(easy)g(w)m(a)m(y)h(to)g
+(b)m(ypass)f(the)g(default)f(in)m(terpretation)g(of)h(the)h(IEEE)0
+894 y(sp)s(ecial)29 b(v)-5 b(alues.)0 1393 y Fd(6.11)136
+b(When)44 b(the)h(Final)h(Size)f(of)g(the)g(FITS)f(HDU)h(is)g(Unkno)l
+(wn)0 1676 y Fi(It)27 b(is)g(not)g(required)e(to)j(kno)m(w)f(the)h
+(total)g(size)f(of)g(a)h(FITS)e(data)i(arra)m(y)g(or)f(table)g(b)s
+(efore)g(b)s(eginning)d(to)k(write)f(the)0 1789 y(data)32
+b(to)f(the)g(FITS)f(\014le.)42 b(In)30 b(the)h(case)h(of)f(the)g
+(primary)e(arra)m(y)i(or)g(an)f(image)i(extension,)e(one)i(should)c
+(initially)0 1902 y(create)j(the)e(arra)m(y)h(with)d(the)j(size)f(of)g
+(the)g(highest)f(dimension)f(\(largest)j(NAXISn)e(k)m(eyw)m(ord\))i
+(set)g(to)g(a)f(dumm)m(y)0 2015 y(v)-5 b(alue,)25 b(suc)m(h)f(as)g(1.)
+39 b(Then)23 b(after)i(all)e(the)i(data)f(ha)m(v)m(e)i(b)s(een)d
+(written)g(and)h(the)g(true)g(dimensions)e(are)i(kno)m(wn,)h(then)0
+2128 y(the)31 b(NAXISn)e(v)-5 b(alue)30 b(should)f(b)s(e)h(up)s(dated)f
+(using)g(the)i(\014ts)p 2051 2128 28 4 v 62 w(up)s(date)p
+2389 2128 V 32 w(k)m(ey)h(routine)d(b)s(efore)h(mo)m(ving)h(to)g
+(another)0 2240 y(extension)f(or)g(closing)g(the)g(FITS)g(\014le.)0
+2401 y(When)f(writing)e(to)i(FITS)g(tables,)g(CFITSIO)e(automatically)i
+(k)m(eeps)h(trac)m(k)g(of)f(the)g(highest)g(ro)m(w)g(n)m(um)m(b)s(er)e
+(that)0 2514 y(is)k(written)g(to,)i(and)e(will)e(increase)j(the)g(size)
+g(of)g(the)g(table)f(if)g(necessary)-8 b(.)46 b(CFITSIO)30
+b(will)f(also)j(automatically)0 2626 y(insert)j(space)i(in)e(the)h
+(FITS)f(\014le)h(if)f(necessary)-8 b(,)39 b(to)e(ensure)e(that)i(the)f
+(data)h('heap',)h(if)d(it)h(exists,)h(and/or)g(an)m(y)0
+2739 y(additional)26 b(HDUs)j(that)g(follo)m(w)e(the)i(table)f(do)g
+(not)h(get)g(o)m(v)m(erwritten)g(as)f(new)g(ro)m(ws)g(are)h(written)e
+(to)i(the)g(table.)0 2900 y(As)37 b(a)h(general)f(rule)f(it)h(is)f(b)s
+(est)h(to)h(sp)s(ecify)e(the)i(initial)c(n)m(um)m(b)s(er)i(of)i(ro)m
+(ws)f(=)g(0)g(when)g(the)g(table)g(is)g(created,)0 3012
+y(then)h(let)g(CFITSIO)f(k)m(eep)i(trac)m(k)g(of)g(the)f(n)m(um)m(b)s
+(er)f(of)i(ro)m(ws)f(that)h(are)f(actually)g(written.)64
+b(The)38 b(application)0 3125 y(program)e(should)e(not)j(man)m(ually)e
+(up)s(date)g(the)i(n)m(um)m(b)s(er)e(of)h(ro)m(ws)g(in)f(the)i(table)f
+(\(as)h(giv)m(en)f(b)m(y)g(the)h(NAXIS2)0 3238 y(k)m(eyw)m(ord\))j
+(since)e(CFITSIO)f(do)s(es)i(this)f(automatically)-8
+b(.)66 b(If)38 b(a)i(table)e(is)g(initially)e(created)k(with)d(more)i
+(than)0 3351 y(zero)i(ro)m(ws,)j(then)c(this)g(will)d(usually)i(b)s(e)h
+(considered)f(as)i(the)g(minim)m(um)d(size)i(of)h(the)g(table,)i(ev)m
+(en)e(if)f(few)m(er)0 3464 y(ro)m(ws)30 b(are)g(actually)f(written)g
+(to)i(the)f(table.)40 b(Th)m(us,)30 b(if)e(a)j(table)e(is)g(initially)d
+(created)31 b(with)e(NAXIS2)h(=)f(20,)j(and)0 3577 y(CFITSIO)f(only)h
+(writes)f(10)j(ro)m(ws)e(of)h(data)g(b)s(efore)f(closing)g(the)h
+(table,)g(then)f(NAXIS2)h(will)d(remain)h(equal)h(to)0
+3690 y(20.)50 b(If)33 b(ho)m(w)m(ev)m(er,)i(30)g(ro)m(ws)e(of)g(data)h
+(are)g(written)e(to)i(this)e(table,)i(then)f(NAXIS2)h(will)c(b)s(e)j
+(increased)f(from)h(20)0 3803 y(to)f(30.)44 b(The)31
+b(one)g(exception)h(to)g(this)e(automatic)i(up)s(dating)d(of)i(the)h
+(NAXIS2)f(k)m(eyw)m(ord)h(is)e(if)g(the)i(application)0
+3916 y(program)c(directly)e(mo)s(di\014es)g(the)j(v)-5
+b(alue)27 b(of)h(NAXIS2)g(\(up)f(or)h(do)m(wn\))g(itself)f(just)g(b)s
+(efore)h(closing)f(the)h(table.)40 b(In)0 4029 y(this)27
+b(case,)j(CFITSIO)d(do)s(es)h(not)h(up)s(date)e(NAXIS2)i(again,)g
+(since)f(it)g(assumes)g(that)h(the)f(application)f(program)0
+4142 y(m)m(ust)32 b(ha)m(v)m(e)h(had)f(a)g(go)s(o)s(d)g(reason)h(for)f
+(c)m(hanging)g(the)g(v)-5 b(alue)32 b(directly)-8 b(.)45
+b(This)30 b(is)h(not)i(recommended,)f(ho)m(w)m(ev)m(er,)0
+4254 y(and)j(is)g(only)g(pro)m(vided)g(for)g(bac)m(kw)m(ard)h
+(compatibilit)m(y)e(with)h(soft)m(w)m(are)i(that)g(initially)32
+b(creates)37 b(a)f(table)g(with)0 4367 y(a)e(large)g(n)m(um)m(b)s(er)f
+(of)h(ro)m(ws,)h(than)f(decreases)g(the)h(NAXIS2)f(v)-5
+b(alue)33 b(to)i(the)f(actual)g(smaller)f(v)-5 b(alue)33
+b(just)g(b)s(efore)0 4480 y(closing)c(the)i(table.)0
+4979 y Fd(6.12)136 b(Lo)t(cal)45 b(FITS)e(Con)l(v)l(en)l(tions)k(supp)t
+(orted)d(b)l(y)h(FITSIO)0 5262 y Fi(CFITSIO)25 b(supp)s(orts)g(sev)m
+(eral)i(lo)s(cal)e(FITS)h(con)m(v)m(en)m(tions)i(whic)m(h)d(are)i(not)g
+(de\014ned)e(in)g(the)i(o\016cial)f(NOST)g(FITS)0 5375
+y(standard)k(and)g(whic)m(h)g(are)h(not)g(necessarily)e(recognized)i
+(or)g(supp)s(orted)e(b)m(y)i(other)g(FITS)f(soft)m(w)m(are)i(pac)m(k)-5
+b(ages.)0 5488 y(Programmers)36 b(should)e(b)s(e)h(cautious)h(ab)s(out)
+f(using)g(these)h(features,)i(esp)s(ecially)c(if)h(the)h(FITS)f
+(\014les)g(that)i(are)0 5601 y(pro)s(duced)31 b(are)i(exp)s(ected)g(to)
+g(b)s(e)f(pro)s(cessed)g(b)m(y)h(other)f(soft)m(w)m(are)i(systems)f
+(whic)m(h)e(do)i(not)f(use)h(the)f(CFITSIO)0 5714 y(in)m(terface.)p
+eop
+%%Page: 54 60
+54 59 bop 0 299 a Fi(54)1277 b Fg(CHAPTER)29 b(6.)72
+b(FITSIO)29 b(CONVENTIONS)g(AND)i(GUIDELINES)0 555 y
+Fb(6.12.1)113 b(Supp)s(ort)37 b(for)h(Long)g(String)e(Keyw)m(ord)i(V)-9
+b(alues.)0 774 y Fi(The)23 b(length)h(of)g(a)g(standard)f(FITS)g
+(string)g(k)m(eyw)m(ord)h(is)f(limited)f(to)i(68)h(c)m(haracters)g(b)s
+(ecause)f(it)f(m)m(ust)h(\014t)g(en)m(tirely)0 887 y(within)33
+b(a)j(single)f(FITS)g(header)h(k)m(eyw)m(ord)g(record.)57
+b(In)35 b(some)h(instances)f(it)h(is)e(necessary)j(to)f(enco)s(de)g
+(strings)0 1000 y(longer)26 b(than)g(this)f(limit,)g(so)h(FITSIO)f
+(supp)s(orts)f(a)j(lo)s(cal)e(con)m(v)m(en)m(tion)i(in)e(whic)m(h)g
+(the)h(string)f(v)-5 b(alue)26 b(is)f(con)m(tin)m(ued)0
+1113 y(o)m(v)m(er)34 b(m)m(ultiple)d(k)m(eyw)m(ords.)49
+b(This)31 b(con)m(tin)m(uation)i(con)m(v)m(en)m(tion)i(uses)d(an)h(amp)
+s(ersand)f(c)m(haracter)i(at)g(the)f(end)g(of)0 1226
+y(eac)m(h)c(substring)c(to)j(indicate)f(that)h(it)f(is)g(con)m(tin)m
+(ued)g(on)g(the)h(next)g(k)m(eyw)m(ord,)h(and)d(the)i(con)m(tin)m
+(uation)g(k)m(eyw)m(ords)0 1339 y(all)42 b(ha)m(v)m(e)j(the)f(name)f
+(CONTINUE)g(without)f(an)i(equal)f(sign)f(in)g(column)h(9.)80
+b(The)43 b(string)g(v)-5 b(alue)42 b(ma)m(y)j(b)s(e)0
+1452 y(con)m(tin)m(ued)28 b(in)f(this)h(w)m(a)m(y)h(o)m(v)m(er)h(as)e
+(man)m(y)h(additional)d(CONTINUE)i(k)m(eyw)m(ords)g(as)h(is)e
+(required.)39 b(The)27 b(follo)m(wing)0 1564 y(lines)i(illustrate)f
+(this)h(con)m(tin)m(uation)i(con)m(v)m(en)m(tion)g(whic)m(h)e(is)h
+(used)f(in)g(the)i(v)-5 b(alue)30 b(of)g(the)h(STRKEY)e(k)m(eyw)m(ord:)
+0 1802 y Fe(LONGSTRN=)45 b('OGIP)i(1.0')524 b(/)47 b(The)g(OGIP)g(Long)
+f(String)g(Convention)f(may)i(be)g(used.)0 1915 y(STRKEY)94
+b(=)47 b('This)g(is)g(a)g(very)g(long)g(string)f(keyword&')93
+b(/)47 b(Optional)f(Comment)0 2028 y(CONTINUE)93 b(')48
+b(value)e(that)h(is)g(continued)e(over)i(3)g(keywords)f(in)h(the)g(&)95
+b(')0 2141 y(CONTINUE)e('FITS)47 b(header.')e(/)j(This)e(is)h(another)f
+(optional)g(comment.)0 2379 y Fi(It)29 b(is)f(recommended)g(that)h(the)
+g(LONGSTRN)f(k)m(eyw)m(ord,)i(as)f(sho)m(wn)f(here,)h(alw)m(a)m(ys)h(b)
+s(e)e(included)e(in)h(an)m(y)i(HDU)0 2492 y(that)f(uses)e(this)g
+(longstring)g(con)m(v)m(en)m(tion.)41 b(A)27 b(subroutine)e(called)h
+(FTPLSW)h(has)g(b)s(een)f(pro)m(vided)g(in)f(CFITSIO)0
+2605 y(to)31 b(write)f(this)f(k)m(eyw)m(ord)i(if)e(it)h(do)s(es)g(not)h
+(already)f(exist.)0 2765 y(This)22 b(long)i(string)g(con)m(v)m(en)m
+(tion)h(is)e(supp)s(orted)g(b)m(y)h(the)g(follo)m(wing)f(FITSIO)g
+(subroutines)f(that)j(deal)f(with)f(string-)0 2878 y(v)-5
+b(alued)29 b(k)m(eyw)m(ords:)286 3116 y Fe(ftgkys)46
+b(-)i(read)f(a)g(string)f(keyword)286 3229 y(ftpkls)g(-)i(write)e
+(\(append\))g(a)h(string)f(keyword)286 3342 y(ftikls)g(-)i(insert)e(a)h
+(string)g(keyword)286 3455 y(ftmkls)f(-)i(modify)e(the)h(value)f(of)h
+(an)h(existing)d(string)h(keyword)286 3568 y(ftukls)g(-)i(update)e(an)h
+(existing)f(keyword,)f(or)i(write)g(a)g(new)g(keyword)286
+3681 y(ftdkey)f(-)i(delete)e(a)h(keyword)0 3919 y Fi(These)41
+b(routines)e(will)f(transparen)m(tly)i(read,)k(write,)f(or)e(delete)g
+(a)g(long)f(string)g(v)-5 b(alue)40 b(in)g(the)h(FITS)f(\014le,)j(so)0
+4031 y(programmers)36 b(in)f(general)h(do)g(not)h(ha)m(v)m(e)g(to)g(b)s
+(e)f(concerned)g(ab)s(out)g(the)g(details)g(of)g(the)h(con)m(v)m(en)m
+(tion)g(that)g(is)0 4144 y(used)32 b(to)i(enco)s(de)f(the)g(long)f
+(string)g(in)g(the)h(FITS)f(header.)48 b(When)33 b(reading)f(a)h(long)g
+(string,)g(one)g(m)m(ust)g(ensure)0 4257 y(that)h(the)f(c)m(haracter)i
+(string)e(parameter)h(used)e(in)g(these)i(subroutine)d(calls)i(has)g(b)
+s(een)f(declared)h(long)g(enough)0 4370 y(to)e(hold)e(the)i(en)m(tire)f
+(string,)g(otherwise)f(the)i(returned)e(string)g(v)-5
+b(alue)30 b(will)e(b)s(e)i(truncated.)0 4530 y(Note)d(that)e(the)h
+(more)f(commonly)g(used)f(FITSIO)g(subroutine)g(to)i(write)e(string)g
+(v)-5 b(alued)24 b(k)m(eyw)m(ords)i(\(FTPKYS\))0 4643
+y(do)s(es)38 b(NOT)g(supp)s(ort)f(this)g(long)h(string)g(con)m(v)m(en)m
+(tion)h(and)f(only)g(supp)s(orts)e(strings)h(up)h(to)h(68)g(c)m
+(haracters)h(in)0 4756 y(length.)h(This)29 b(has)h(b)s(een)g(done)h
+(delib)s(erately)d(to)k(prev)m(en)m(t)f(programs)g(from)f(inadv)m
+(erten)m(tly)g(writing)f(k)m(eyw)m(ords)0 4869 y(using)37
+b(this)h(non-standard)f(con)m(v)m(en)m(tion)j(without)e(the)g(explicit)
+f(in)m(ten)m(t)i(of)g(the)g(programmer)f(or)h(user.)64
+b(The)0 4982 y(FTPKLS)28 b(subroutine)f(m)m(ust)i(b)s(e)g(called)f
+(instead)h(to)h(write)e(long)h(strings.)39 b(This)27
+b(routine)i(can)g(also)g(b)s(e)g(used)f(to)0 5095 y(write)i(ordinary)e
+(string)i(v)-5 b(alues)29 b(less)h(than)g(68)h(c)m(haracters)h(in)d
+(length.)0 5382 y Fb(6.12.2)113 b(Arra)m(ys)37 b(of)g(Fixed-Length)i
+(Strings)e(in)f(Binary)h(T)-9 b(ables)0 5601 y Fi(The)29
+b(de\014nition)e(of)j(the)f(FITS)g(binary)e(table)j(extension)f(format)
+g(do)s(es)h(not)f(pro)m(vide)g(a)g(simple)f(w)m(a)m(y)i(to)g(sp)s
+(ecify)0 5714 y(that)f(a)f(c)m(haracter)i(column)d(con)m(tains)h(an)g
+(arra)m(y)h(of)f(\014xed-length)f(strings.)39 b(T)-8
+b(o)29 b(supp)s(ort)d(this)h(feature,)i(FITSIO)p eop
+%%Page: 55 61
+55 60 bop 0 299 a Fg(6.12.)73 b(LOCAL)29 b(FITS)h(CONVENTIONS)f(SUPPOR)
+-8 b(TED)29 b(BY)i(FITSIO)1168 b Fi(55)0 555 y(uses)31
+b(a)h(lo)s(cal)f(con)m(v)m(en)m(tion)h(for)f(the)h(format)g(of)g(the)f
+(TF)m(ORMn)g(k)m(eyw)m(ord)h(v)-5 b(alue)31 b(of)h(the)g(form)f('rAw')g
+(where)g('r')0 668 y(is)c(an)g(in)m(teger)h(sp)s(ecifying)d(the)j
+(total)g(width)e(in)g(c)m(haracters)j(of)f(the)g(column,)f(and)g('w')g
+(is)g(an)g(in)m(teger)h(sp)s(ecifying)0 781 y(the)c(\(\014xed\))g
+(length)g(of)g(an)g(individual)19 b(unit)k(string)g(within)e(the)j(v)m
+(ector.)41 b(F)-8 b(or)24 b(example,)i(TF)m(ORM1)e(=)g('120A10')0
+894 y(w)m(ould)k(indicate)g(that)h(the)h(binary)d(table)i(column)f(is)g
+(120)i(c)m(haracters)g(wide)e(and)h(consists)f(of)h(12)h(10-c)m
+(haracter)0 1007 y(length)e(strings.)39 b(This)27 b(con)m(v)m(en)m
+(tion)j(is)d(recognized)i(b)m(y)g(the)f(FITSIO)g(subroutines)e(that)j
+(read)g(or)f(write)g(strings)0 1120 y(in)37 b(binary)f(tables.)64
+b(The)37 b(Binary)g(T)-8 b(able)38 b(de\014nition)e(do)s(cumen)m(t)i
+(sp)s(eci\014es)e(that)j(other)f(optional)f(c)m(haracters)0
+1233 y(ma)m(y)f(follo)m(w)f(the)g(datat)m(yp)s(e)i(co)s(de)e(in)g(the)g
+(TF)m(ORM)h(k)m(eyw)m(ord,)i(so)d(this)g(lo)s(cal)f(con)m(v)m(en)m
+(tion)j(is)d(in)h(compliance)0 1346 y(with)23 b(the)i(FITS)f(standard,)
+i(although)e(other)h(FITS)f(readers)g(are)h(not)g(required)e(to)i
+(recognize)h(this)e(con)m(v)m(en)m(tion.)0 1506 y(The)h(Binary)g(T)-8
+b(able)26 b(de\014nition)d(do)s(cumen)m(t)j(that)h(w)m(as)f(appro)m(v)m
+(ed)g(b)m(y)g(the)g(IA)m(U)g(in)f(1994)j(con)m(tains)e(an)f(app)s
+(endix)0 1619 y(describing)20 b(an)j(alternate)g(con)m(v)m(en)m(tion)h
+(for)f(sp)s(ecifying)d(arra)m(ys)j(of)g(\014xed)f(or)h(v)-5
+b(ariable)22 b(length)g(strings)f(in)h(a)h(binary)0 1732
+y(table)34 b(c)m(haracter)h(column)e(\(with)g(the)i(form)e
+('rA:SSTRw/nnn\)'.)50 b(This)32 b(app)s(endix)f(w)m(as)k(not)f
+(o\016cially)f(v)m(oted)0 1844 y(on)d(b)m(y)h(the)f(IA)m(U)h(and)f
+(hence)g(is)g(still)e(pro)m(visional.)39 b(FITSIO)29
+b(do)s(es)h(not)h(curren)m(tly)e(supp)s(ort)g(this)g(prop)s(osal.)0
+2147 y Fb(6.12.3)113 b(Keyw)m(ord)37 b(Units)g(Strings)0
+2368 y Fi(One)g(de\014ciency)g(of)h(the)g(curren)m(t)g(FITS)f(Standard)
+f(is)h(that)i(it)e(do)s(es)g(not)h(de\014ne)f(a)i(sp)s(eci\014c)d(con)m
+(v)m(en)m(tion)j(for)0 2481 y(recording)29 b(the)h(ph)m(ysical)f(units)
+g(of)h(a)g(k)m(eyw)m(ord)h(v)-5 b(alue.)40 b(The)30 b(TUNITn)f(k)m(eyw)
+m(ord)h(can)g(b)s(e)g(used)f(to)i(sp)s(ecify)e(the)0
+2594 y(ph)m(ysical)34 b(units)g(of)h(the)h(v)-5 b(alues)35
+b(in)f(a)h(table)h(column,)f(but)g(there)g(is)g(no)g(analogous)h(con)m
+(v)m(en)m(tion)g(for)f(k)m(eyw)m(ord)0 2707 y(v)-5 b(alues.)41
+b(The)30 b(commen)m(t)h(\014eld)f(of)g(the)h(k)m(eyw)m(ord)g(is)f
+(often)h(used)f(for)g(this)f(purp)s(ose,)h(but)f(the)i(units)e(are)i
+(usually)0 2819 y(not)g(sp)s(eci\014ed)d(in)h(a)i(w)m(ell)e(de\014ned)h
+(format)g(that)h(FITS)f(readers)g(can)h(easily)e(recognize)i(and)f
+(extract.)0 2980 y(T)-8 b(o)28 b(solv)m(e)g(this)e(de\014ciency)-8
+b(,)29 b(FITSIO)d(uses)h(a)h(lo)s(cal)f(con)m(v)m(en)m(tion)i(in)d
+(whic)m(h)g(the)i(k)m(eyw)m(ord)g(units)e(are)i(enclosed)f(in)0
+3093 y(square)20 b(brac)m(k)m(ets)j(as)e(the)f(\014rst)g(tok)m(en)i(in)
+e(the)g(k)m(eyw)m(ord)i(commen)m(t)f(\014eld;)i(more)e(sp)s
+(eci\014cally)-8 b(,)21 b(the)g(op)s(ening)e(square)0
+3205 y(brac)m(k)m(et)28 b(immediately)d(follo)m(ws)g(the)i(slash)e('/')
+i(commen)m(t)h(\014eld)d(delimiter)f(and)i(a)g(single)f(space)i(c)m
+(haracter.)41 b(The)0 3318 y(follo)m(wing)29 b(examples)h(illustrate)e
+(k)m(eyw)m(ords)j(that)g(use)f(this)f(con)m(v)m(en)m(tion:)0
+3588 y Fe(EXPOSURE=)713 b(1800.0)47 b(/)g([s])g(elapsed)f(exposure)f
+(time)0 3701 y(V_HELIO)h(=)763 b(16.23)47 b(/)g([km)g(s**\(-1\)])e
+(heliocentric)g(velocity)0 3814 y(LAMBDA)94 b(=)763 b(5400.)47
+b(/)g([angstrom])e(central)h(wavelength)0 3927 y(FLUX)190
+b(=)47 b(4.9033487787637465E-30)42 b(/)47 b([J/cm**2/s])e(average)h
+(flux)0 4196 y Fi(In)28 b(general,)g(the)h(units)d(named)i(in)f(the)i
+(IA)m(U\(1988\))i(St)m(yle)d(Guide)f(are)i(recommended,)f(with)f(the)i
+(main)e(excep-)0 4309 y(tion)j(that)h(the)f(preferred)g(unit)e(for)j
+(angle)f(is)f('deg')j(for)e(degrees.)0 4469 y(The)24
+b(FTPUNT)g(and)g(FTGUNT)h(subroutines)e(in)g(FITSIO)g(write)h(and)g
+(read,)i(resp)s(ectiv)m(ely)-8 b(,)26 b(the)e(k)m(eyw)m(ord)h(unit)0
+4582 y(strings)k(in)g(an)i(existing)e(k)m(eyw)m(ord.)0
+4884 y Fb(6.12.4)113 b(HIERAR)m(CH)34 b(Con)m(v)m(en)m(tion)j(for)g
+(Extended)h(Keyw)m(ord)f(Names)0 5106 y Fi(CFITSIO)k(supp)s(orts)g(the)
+i(HIERAR)m(CH)g(k)m(eyw)m(ord)g(con)m(v)m(en)m(tion)h(whic)m(h)e(allo)m
+(ws)g(k)m(eyw)m(ord)h(names)g(that)h(are)0 5218 y(longer)33
+b(then)f(8)i(c)m(haracters)g(and)f(ma)m(y)h(con)m(tain)f(the)g(full)e
+(range)i(of)h(prin)m(table)d(ASCI)s(I)g(text)j(c)m(haracters.)51
+b(This)0 5331 y(con)m(v)m(en)m(tion)38 b(w)m(as)g(dev)m(elop)s(ed)e(at)
+i(the)f(Europ)s(ean)f(Southern)g(Observ)-5 b(atory)37
+b(\(ESO\))f(to)i(supp)s(ort)d(hierarc)m(hical)0 5444
+y(FITS)30 b(k)m(eyw)m(ord)g(suc)m(h)h(as:)0 5714 y Fe(HIERARCH)46
+b(ESO)g(INS)h(FOCU)g(POS)g(=)g(-0.00002500)e(/)j(Focus)e(position)p
+eop
+%%Page: 56 62
+56 61 bop 0 299 a Fi(56)1277 b Fg(CHAPTER)29 b(6.)72
+b(FITSIO)29 b(CONVENTIONS)g(AND)i(GUIDELINES)0 555 y
+Fi(Basically)-8 b(,)52 b(this)46 b(con)m(v)m(en)m(tion)j(uses)e(the)h
+(FITS)f(k)m(eyw)m(ord)h('HIERAR)m(CH')h(to)f(indicate)f(that)h(this)e
+(con)m(v)m(en-)0 668 y(tion)e(is)f(b)s(eing)g(used,)k(then)d(the)g
+(actual)h(k)m(eyw)m(ord)f(name)h(\()p Fe('ESO)i(INS)f(FOCU)h(POS')c
+Fi(in)g(this)g(example\))h(b)s(e-)0 781 y(gins)39 b(in)f(column)g(10)j
+(and)e(can)h(con)m(tain)f(an)m(y)h(prin)m(table)e(ASCI)s(I)g(text)j(c)m
+(haracters,)i(including)37 b(spaces.)68 b(The)0 894 y(equals)43
+b(sign)h(marks)f(the)h(end)g(of)g(the)g(k)m(eyw)m(ord)h(name)f(and)f
+(is)h(follo)m(w)m(ed)f(b)m(y)h(the)g(usual)f(v)-5 b(alue)44
+b(and)f(com-)0 1007 y(men)m(t)31 b(\014elds)e(just)h(as)h(in)e
+(standard)h(FITS)g(k)m(eyw)m(ords.)41 b(F)-8 b(urther)30
+b(details)g(of)h(this)e(con)m(v)m(en)m(tion)j(are)f(describ)s(ed)d(at)0
+1120 y(h)m(ttp://arcdev.hq.eso.org/dicb/dicd/dic-1-1.4.h)m(tml)33
+b(\(searc)m(h)f(for)e(HIERAR)m(CH\).)0 1280 y(This)42
+b(con)m(v)m(en)m(tion)k(allo)m(ws)e(a)g(m)m(uc)m(h)h(broader)e(range)i
+(of)f(k)m(eyw)m(ord)h(names)f(than)h(is)e(allo)m(w)m(ed)h(b)m(y)g(the)h
+(FITS)0 1393 y(Standard.)40 b(Here)30 b(are)h(more)g(examples)f(of)g
+(suc)m(h)g(k)m(eyw)m(ords:)0 1655 y Fe(HIERARCH)46 b(LongKeyword)e(=)k
+(47.5)e(/)i(Keyword)e(has)h(>)g(8)g(characters,)e(and)i(mixed)f(case)0
+1768 y(HIERARCH)g(XTE$TEMP)f(=)j(98.6)e(/)i(Keyword)d(contains)h(the)h
+('$')g(character)0 1881 y(HIERARCH)f(Earth)g(is)h(a)h(star)e(=)i(F)f(/)
+h(Keyword)d(contains)h(embedded)f(spaces)0 2143 y Fi(CFITSIO)40
+b(will)f(transparen)m(tly)i(read)h(and)f(write)f(these)j(k)m(eyw)m
+(ords,)i(so)d(application)e(programs)h(do)g(not)h(in)0
+2256 y(general)32 b(need)g(to)h(kno)m(w)f(an)m(ything)g(ab)s(out)g(the)
+g(sp)s(eci\014c)f(implemen)m(tation)g(details)g(of)i(the)f(HIERAR)m(CH)
+g(con-)0 2369 y(v)m(en)m(tion.)49 b(In)32 b(particular,)h(application)e
+(programs)h(do)h(not)h(need)e(to)i(sp)s(ecify)e(the)h(`HIERAR)m(CH')h
+(part)f(of)g(the)0 2482 y(k)m(eyw)m(ord)g(name)f(when)g(reading)f(or)h
+(writing)f(k)m(eyw)m(ords)h(\(although)g(it)g(ma)m(y)h(b)s(e)f
+(included)d(if)j(desired\).)45 b(When)0 2595 y(writing)33
+b(a)i(k)m(eyw)m(ord,)h(CFITSIO)d(\014rst)h(c)m(hec)m(ks)i(to)f(see)g
+(if)f(the)h(k)m(eyw)m(ord)g(name)f(is)g(legal)g(as)h(a)g(standard)f
+(FITS)0 2708 y(k)m(eyw)m(ord)k(\(no)g(more)f(than)h(8)g(c)m(haracters)h
+(long)e(and)g(con)m(taining)g(only)f(letters,)k(digits,)e(or)g(a)g(min)
+m(us)d(sign)i(or)0 2821 y(underscore\).)68 b(If)39 b(so)h(it)f(writes)g
+(it)g(as)g(a)h(standard)f(FITS)g(k)m(eyw)m(ord,)k(otherwise)c(it)g
+(uses)g(the)h(hierarc)m(h)e(con-)0 2934 y(v)m(en)m(tion)33
+b(to)g(write)f(the)g(k)m(eyw)m(ord.)48 b(The)32 b(maxim)m(um)f(k)m(eyw)
+m(ord)i(name)f(length)g(is)g(67)h(c)m(haracters,)i(whic)m(h)c(lea)m(v)m
+(es)0 3047 y(only)c(1)i(space)g(for)f(the)h(v)-5 b(alue)28
+b(\014eld.)38 b(A)29 b(more)f(practical)g(limit)e(is)i(ab)s(out)g(40)h
+(c)m(haracters,)i(whic)m(h)c(lea)m(v)m(es)i(enough)0
+3160 y(ro)s(om)f(for)h(most)f(k)m(eyw)m(ord)h(v)-5 b(alues.)40
+b(CFITSIO)27 b(returns)g(an)h(error)h(if)e(there)i(is)e(not)i(enough)f
+(ro)s(om)h(for)f(b)s(oth)g(the)0 3273 y(k)m(eyw)m(ord)k(name)f(and)f
+(the)i(k)m(eyw)m(ord)f(v)-5 b(alue)31 b(on)g(the)h(80-c)m(haracter)h
+(card,)f(except)g(for)f(string-v)-5 b(alued)30 b(k)m(eyw)m(ords)0
+3385 y(whic)m(h)i(are)h(simply)d(truncated)j(so)g(that)h(the)f(closing)
+f(quote)i(c)m(haracter)g(falls)d(in)h(column)g(80.)49
+b(In)32 b(the)h(curren)m(t)0 3498 y(implemen)m(tation,)28
+b(CFITSIO)f(preserv)m(es)i(the)g(case)h(of)f(the)g(letters)g(when)f
+(writing)f(the)i(k)m(eyw)m(ord)g(name,)g(but)f(it)0 3611
+y(is)c(case-insensitiv)m(e)g(when)g(reading)g(or)h(searc)m(hing)g(for)g
+(a)g(k)m(eyw)m(ord.)40 b(The)24 b(curren)m(t)h(implemen)m(tation)e
+(allo)m(ws)i(an)m(y)0 3724 y(ASCI)s(I)k(text)j(c)m(haracter)h(\(ASCI)s
+(I)c(32)j(to)f(ASCI)s(I)f(126\))i(in)e(the)h(k)m(eyw)m(ord)g(name)g
+(except)h(for)e(the)h('=')g(c)m(haracter.)0 3837 y(A)f(space)h(is)f
+(also)g(required)f(on)h(either)g(side)f(of)i(the)f(equal)g(sign.)0
+4174 y Fd(6.13)136 b(Optimizing)45 b(Co)t(de)g(for)h(Maxim)l(um)f(Pro)t
+(cessing)g(Sp)t(eed)0 4425 y Fi(CFITSIO)22 b(has)h(b)s(een)f(carefully)
+g(designed)g(to)i(obtain)f(the)g(highest)g(p)s(ossible)d(sp)s(eed)j
+(when)f(reading)g(and)h(writing)0 4538 y(FITS)33 b(\014les.)50
+b(In)33 b(order)h(to)g(ac)m(hiev)m(e)h(the)f(b)s(est)g(p)s(erformance,)
+g(ho)m(w)m(ev)m(er,)i(application)d(programmers)g(m)m(ust)h(b)s(e)0
+4650 y(careful)23 b(to)i(call)e(the)h(CFITSIO)f(routines)f
+(appropriately)h(and)g(in)g(an)g(e\016cien)m(t)i(sequence;)i
+(inappropriate)21 b(usage)0 4763 y(of)31 b(CFITSIO)d(routines)i(can)g
+(greatly)h(slo)m(w)f(do)m(wn)g(the)h(execution)f(sp)s(eed)g(of)g(a)h
+(program.)0 4924 y(The)f(maxim)m(um)g(p)s(ossible)e(I/O)j(sp)s(eed)f
+(of)h(CFITSIO)e(dep)s(ends)g(of)i(course)g(on)f(the)h(t)m(yp)s(e)g(of)g
+(computer)g(system)0 5036 y(that)g(it)e(is)g(running)e(on.)41
+b(As)30 b(a)g(rough)g(guide,)f(the)h(curren)m(t)g(generation)g(of)g(w)m
+(orkstations)g(can)h(ac)m(hiev)m(e)g(sp)s(eeds)0 5149
+y(of)k(2)g({)g(10)g(MB/s)h(when)e(reading)g(or)g(writing)f(FITS)h
+(images)h(and)f(similar,)f(or)i(sligh)m(tly)e(slo)m(w)m(er)i(sp)s(eeds)
+e(with)0 5262 y(FITS)c(binary)g(tables.)40 b(Reading)30
+b(of)g(FITS)g(\014les)f(can)i(o)s(ccur)f(at)h(ev)m(en)f(higher)f(rates)
+i(\(30MB/s)i(or)d(more\))h(if)e(the)0 5375 y(FITS)d(\014le)g(is)f
+(still)g(cac)m(hed)j(in)d(system)i(memory)f(follo)m(wing)g(a)h
+(previous)e(read)h(or)h(write)f(op)s(eration)g(on)h(the)g(same)0
+5488 y(\014le.)43 b(T)-8 b(o)32 b(more)g(accurately)g(predict)e(the)i
+(b)s(est)f(p)s(erformance)g(that)h(is)e(p)s(ossible)f(on)j(an)m(y)g
+(particular)d(system,)k(a)0 5601 y(diagnostic)f(program)h(called)f
+(\\sp)s(eed.c")h(is)f(included)e(with)i(the)h(CFITSIO)e(distribution)e
+(whic)m(h)j(can)h(b)s(e)f(run)0 5714 y(to)f(appro)m(ximately)f(measure)
+g(the)h(maxim)m(um)e(p)s(ossible)f(sp)s(eed)h(of)i(writing)d(and)i
+(reading)g(a)g(test)i(FITS)d(\014le.)p eop
+%%Page: 57 63
+57 62 bop 0 299 a Fg(6.13.)73 b(OPTIMIZING)29 b(CODE)h(F)m(OR)h
+(MAXIMUM)g(PR)m(OCESSING)f(SPEED)971 b Fi(57)0 555 y(The)33
+b(follo)m(wing)e(2)j(sections)f(pro)m(vide)g(some)g(bac)m(kground)g(on)
+h(ho)m(w)f(CFITSIO)f(in)m(ternally)f(manages)j(the)f(data)0
+668 y(I/O)g(and)g(describ)s(es)e(some)j(strategies)g(that)g(ma)m(y)g(b)
+s(e)e(used)h(to)h(optimize)e(the)i(pro)s(cessing)e(sp)s(eed)g(of)h
+(soft)m(w)m(are)0 781 y(that)e(uses)f(CFITSIO.)0 1080
+y Fb(6.13.1)113 b(Bac)m(kground)38 b(Information:)48
+b(Ho)m(w)37 b(CFITSIO)h(Manages)h(Data)f(I/O)0 1300 y
+Fi(Man)m(y)22 b(CFITSIO)e(op)s(erations)h(in)m(v)m(olv)m(e)h
+(transferring)e(only)h(a)h(small)e(n)m(um)m(b)s(er)h(of)h(b)m(ytes)g
+(to)g(or)g(from)f(the)h(FITS)f(\014le)0 1413 y(\(e.g,)31
+b(reading)d(a)h(k)m(eyw)m(ord,)h(or)f(writing)e(a)i(ro)m(w)g(in)e(a)i
+(table\);)h(it)f(w)m(ould)e(b)s(e)h(v)m(ery)i(ine\016cien)m(t)e(to)h
+(ph)m(ysically)e(read)0 1526 y(or)32 b(write)g(suc)m(h)g(small)e(blo)s
+(c)m(ks)i(of)g(data)h(directly)e(in)g(the)h(FITS)g(\014le)f(on)h(disk,)
+g(therefore)g(CFITSIO)f(main)m(tains)0 1639 y(a)38 b(set)g(of)g(in)m
+(ternal)f(Input{Output)e(\(IO\))j(bu\013ers)f(in)f(RAM)i(memory)g(that)
+g(eac)m(h)h(con)m(tain)f(one)g(FITS)f(blo)s(c)m(k)0 1752
+y(\(2880)27 b(b)m(ytes\))f(of)f(data.)40 b(Whenev)m(er)25
+b(CFITSIO)f(needs)g(to)i(access)g(data)g(in)e(the)h(FITS)f(\014le,)i
+(it)e(\014rst)g(transfers)h(the)0 1865 y(FITS)30 b(blo)s(c)m(k)g(con)m
+(taining)g(those)h(b)m(ytes)g(in)m(to)f(one)h(of)f(the)h(IO)f
+(bu\013ers)f(in)g(memory)-8 b(.)42 b(The)30 b(next)g(time)g(CFITSIO)0
+1977 y(needs)36 b(to)g(access)i(b)m(ytes)e(in)f(the)h(same)h(blo)s(c)m
+(k)e(it)h(can)g(then)g(go)h(to)f(the)h(fast)f(IO)f(bu\013er)g(rather)h
+(than)g(using)f(a)0 2090 y(m)m(uc)m(h)d(slo)m(w)m(er)h(system)f(disk)f
+(access)i(routine.)45 b(The)32 b(n)m(um)m(b)s(er)f(of)h(a)m(v)-5
+b(ailable)32 b(IO)g(bu\013ers)f(is)g(determined)g(b)m(y)h(the)0
+2203 y(NIOBUF)f(parameter)g(\(in)e(\014tsio2.h\))h(and)g(is)g(curren)m
+(tly)f(set)i(to)g(40.)0 2363 y(Whenev)m(er)24 b(CFITSIO)f(reads)g(or)h
+(writes)f(data)h(it)g(\014rst)f(c)m(hec)m(ks)i(to)g(see)f(if)f(that)h
+(blo)s(c)m(k)g(of)g(the)g(FITS)f(\014le)f(is)h(already)0
+2476 y(loaded)32 b(in)m(to)g(one)g(of)g(the)g(IO)g(bu\013ers.)44
+b(If)32 b(not,)h(and)e(if)g(there)h(is)f(an)h(empt)m(y)h(IO)e(bu\013er)
+g(a)m(v)-5 b(ailable,)32 b(then)g(it)g(will)0 2589 y(load)g(that)i(blo)
+s(c)m(k)e(in)m(to)g(the)h(IO)g(bu\013er)e(\(when)h(reading)g(a)h(FITS)f
+(\014le\))g(or)h(will)d(initialize)g(a)j(new)f(blo)s(c)m(k)h(\(when)0
+2702 y(writing)i(to)j(a)g(FITS)f(\014le\).)61 b(If)37
+b(all)f(the)i(IO)e(bu\013ers)h(are)g(already)g(full,)g(it)g(m)m(ust)h
+(decide)e(whic)m(h)g(one)i(to)g(reuse)0 2815 y(\(generally)32
+b(the)h(one)g(that)g(has)f(b)s(een)g(accessed)i(least)e(recen)m(tly\),)
+i(and)e(\015ush)f(the)i(con)m(ten)m(ts)h(bac)m(k)g(to)f(disk)e(if)g(it)
+0 2928 y(has)f(b)s(een)g(mo)s(di\014ed)e(b)s(efore)i(loading)f(the)i
+(new)f(blo)s(c)m(k.)0 3088 y(The)g(one)g(ma)5 b(jor)30
+b(exception)h(to)g(the)f(ab)s(o)m(v)m(e)h(pro)s(cess)f(o)s(ccurs)g
+(whenev)m(er)g(a)g(large)h(con)m(tiguous)f(set)h(of)f(b)m(ytes)h(are)0
+3201 y(accessed,)37 b(as)d(migh)m(t)h(o)s(ccur)f(when)f(reading)h(or)g
+(writing)e(a)j(FITS)f(image.)53 b(In)34 b(this)f(case)i(CFITSIO)e(b)m
+(ypasses)0 3314 y(the)i(in)m(ternal)f(IO)h(bu\013ers)f(and)g(simply)f
+(reads)i(or)g(writes)g(the)g(desired)f(b)m(ytes)h(directly)f(in)g(the)h
+(disk)f(\014le)g(with)0 3427 y(a)j(single)e(call)g(to)i(a)g(lo)m(w-lev)
+m(el)f(\014le)f(read)h(or)h(write)e(routine.)57 b(The)36
+b(minim)m(um)e(threshold)g(for)i(the)h(n)m(um)m(b)s(er)e(of)0
+3540 y(b)m(ytes)40 b(to)g(read)f(or)g(write)f(this)h(w)m(a)m(y)h(is)e
+(set)i(b)m(y)f(the)g(MINDIRECT)g(parameter)h(and)e(is)h(curren)m(tly)f
+(set)i(to)g(3)0 3653 y(FITS)28 b(blo)s(c)m(ks)f(=)h(8640)i(b)m(ytes.)41
+b(This)27 b(is)g(the)h(most)h(e\016cien)m(t)g(w)m(a)m(y)g(to)g(read)g
+(or)f(write)g(large)g(c)m(h)m(unks)g(of)g(data)i(and)0
+3766 y(can)37 b(ac)m(hiev)m(e)h(IO)e(transfer)g(rates)h(of)g(5)g({)g
+(10MB/s)i(or)d(greater.)61 b(Note)38 b(that)f(this)f(fast)h(direct)f
+(IO)g(pro)s(cess)g(is)0 3878 y(not)29 b(applicable)d(when)h(accessing)i
+(columns)f(of)g(data)h(in)e(a)i(FITS)f(table)g(b)s(ecause)h(the)f(b)m
+(ytes)h(are)g(generally)f(not)0 3991 y(con)m(tiguous)h(since)f(they)h
+(are)h(in)m(terlea)m(v)m(ed)f(b)m(y)g(the)g(other)g(columns)f(of)h
+(data)g(in)f(the)h(table.)40 b(This)27 b(explains)g(wh)m(y)0
+4104 y(the)k(sp)s(eed)e(for)h(accessing)h(FITS)f(tables)g(is)f
+(generally)h(slo)m(w)m(er)g(than)h(accessing)f(FITS)g(images.)0
+4264 y(Giv)m(en)h(this)g(bac)m(kground)g(information,)f(the)i(general)f
+(strategy)i(for)e(e\016cien)m(tly)g(accessing)h(FITS)f(\014les)f
+(should)0 4377 y(no)m(w)36 b(b)s(e)g(apparen)m(t:)52
+b(when)35 b(dealing)g(with)g(FITS)h(images,)i(read)e(or)g(write)f
+(large)i(c)m(h)m(unks)f(of)g(data)h(at)g(a)f(time)0 4490
+y(so)30 b(that)h(the)f(direct)g(IO)f(mec)m(hanism)g(will)f(b)s(e)h(in)m
+(v)m(ok)m(ed;)i(when)e(accessing)i(FITS)e(headers)h(or)g(FITS)f
+(tables,)h(on)0 4603 y(the)35 b(other)g(hand,)g(once)g(a)g(particular)f
+(FITS)g(blo)s(c)m(k)g(has)g(b)s(een)g(loading)g(in)m(to)h(one)g(of)g
+(the)f(IO)h(bu\013ers,)g(try)f(to)0 4716 y(access)39
+b(all)d(the)h(needed)g(information)f(in)g(that)i(blo)s(c)m(k)f(b)s
+(efore)g(it)g(gets)h(\015ushed)d(out)j(of)g(the)f(IO)g(bu\013er.)60
+b(It)38 b(is)0 4829 y(imp)s(ortan)m(t)30 b(to)i(a)m(v)m(oid)f(the)g
+(situation)f(where)h(the)g(same)g(FITS)f(blo)s(c)m(k)h(is)f(b)s(eing)f
+(read)i(then)g(\015ushed)e(from)h(a)h(IO)0 4942 y(bu\013er)e(m)m
+(ultiple)f(times.)0 5102 y(The)i(follo)m(wing)f(section)h(giv)m(es)h
+(more)f(sp)s(eci\014c)g(suggestions)g(for)g(optimizing)f(the)h(use)g
+(of)h(CFITSIO.)0 5262 y(1.)54 b(When)34 b(dealing)f(with)h(a)h(FITS)e
+(primary)g(arra)m(y)i(or)g(IMA)m(GE)g(extension,)h(it)e(is)f(more)i
+(e\016cien)m(t)g(to)g(read)g(or)0 5375 y(write)30 b(large)g(c)m(h)m
+(unks)g(of)g(the)h(image)f(at)i(a)e(time)g(\(at)i(least)e(3)h(FITS)f
+(blo)s(c)m(ks)f(=)h(8640)i(b)m(ytes\))f(so)g(that)g(the)f(direct)0
+5488 y(IO)j(mec)m(hanism)g(will)d(b)s(e)j(used)g(as)g(describ)s(ed)f
+(in)g(the)h(previous)f(section.)50 b(Smaller)32 b(c)m(h)m(unks)h(of)g
+(data)h(are)g(read)0 5601 y(or)d(written)f(via)h(the)g(IO)f(bu\013ers,)
+g(whic)m(h)g(is)g(somewhat)h(less)f(e\016cien)m(t)i(b)s(ecause)f(of)g
+(the)g(extra)h(cop)m(y)f(op)s(eration)0 5714 y(and)26
+b(additional)e(b)s(o)s(okk)m(eeping)i(steps)h(that)g(are)g(required.)38
+b(In)26 b(principle)d(it)j(is)g(more)g(e\016cien)m(t)h(to)h(read)e(or)h
+(write)p eop
+%%Page: 58 64
+58 63 bop 0 299 a Fi(58)1277 b Fg(CHAPTER)29 b(6.)72
+b(FITSIO)29 b(CONVENTIONS)g(AND)i(GUIDELINES)0 555 y
+Fi(as)e(big)f(an)h(arra)m(y)h(of)f(image)g(pixels)e(at)j(one)f(time)f
+(as)i(p)s(ossible,)d(ho)m(w)m(ev)m(er,)j(if)e(the)i(arra)m(y)f(b)s
+(ecomes)g(so)g(large)g(that)0 668 y(the)j(op)s(erating)f(system)g
+(cannot)h(store)g(it)f(all)g(in)f(RAM,)i(then)f(the)h(p)s(erformance)f
+(ma)m(y)h(b)s(e)f(degraded)g(b)s(ecause)0 781 y(of)g(the)f(increased)g
+(sw)m(apping)f(of)h(virtual)f(memory)h(to)h(disk.)0 941
+y(2.)51 b(When)33 b(dealing)g(with)f(FITS)h(tables,)i(the)f(most)g(imp)
+s(ortan)m(t)f(e\016ciency)g(factor)i(in)d(the)i(soft)m(w)m(are)h
+(design)e(is)0 1054 y(to)k(read)f(or)g(write)f(the)h(data)h(in)e(the)h
+(FITS)g(\014le)f(in)g(a)h(single)f(pass)h(through)f(the)h(\014le.)57
+b(An)36 b(example)g(of)g(p)s(o)s(or)0 1167 y(program)g(design)g(w)m
+(ould)f(b)s(e)h(to)h(read)g(a)f(large,)j(3-column)d(table)g(b)m(y)h
+(sequen)m(tially)e(reading)h(the)g(en)m(tire)h(\014rst)0
+1280 y(column,)24 b(then)g(going)g(bac)m(k)g(to)h(read)e(the)h(2nd)g
+(column,)g(and)f(\014nally)f(the)i(3rd)f(column;)i(this)e(ob)m(viously)
+f(requires)0 1393 y(3)j(passes)f(through)f(the)i(\014le)e(whic)m(h)g
+(could)h(triple)e(the)j(execution)f(time)g(of)h(an)f(I/O)g(limited)e
+(program.)38 b(F)-8 b(or)25 b(small)0 1506 y(tables)30
+b(this)f(is)h(not)g(imp)s(ortan)m(t,)g(but)g(when)f(reading)g(m)m
+(ulti-megab)m(yte)i(sized)f(tables)g(these)h(ine\016ciencies)e(can)0
+1619 y(b)s(ecome)g(signi\014can)m(t.)39 b(The)28 b(more)h(e\016cien)m
+(t)g(pro)s(cedure)e(in)h(this)f(case)j(is)d(to)j(read)e(or)h(write)f
+(only)f(as)i(man)m(y)g(ro)m(ws)0 1732 y(of)g(the)g(table)g(as)g(will)e
+(\014t)h(in)m(to)h(the)h(a)m(v)-5 b(ailable)28 b(in)m(ternal)g(I/O)h
+(bu\013ers,)f(then)h(access)h(all)e(the)h(necessary)g(columns)0
+1844 y(of)i(data)h(within)c(that)k(range)f(of)g(ro)m(ws.)43
+b(Then)29 b(after)j(the)f(program)g(is)f(completely)g(\014nished)f
+(with)g(the)j(data)f(in)0 1957 y(those)i(ro)m(ws)e(it)h(can)g(mo)m(v)m
+(e)i(on)e(to)g(the)h(next)f(range)g(of)g(ro)m(ws)g(that)h(will)c(\014t)
+j(in)f(the)h(bu\013ers,)f(con)m(tin)m(uing)g(in)g(this)0
+2070 y(w)m(a)m(y)d(un)m(til)d(the)h(en)m(tire)h(\014le)f(has)g(b)s(een)
+g(pro)s(cessed.)39 b(By)27 b(using)e(this)h(pro)s(cedure)f(of)i
+(accessing)g(all)f(the)g(columns)g(of)0 2183 y(a)k(table)f(in)f
+(parallel)f(rather)i(than)g(sequen)m(tially)-8 b(,)29
+b(eac)m(h)h(blo)s(c)m(k)f(of)h(the)f(FITS)g(\014le)f(will)e(only)j(b)s
+(e)f(read)i(or)f(written)0 2296 y(once.)0 2456 y(The)g(optimal)f(n)m
+(um)m(b)s(er)g(of)i(ro)m(ws)f(to)i(read)e(or)g(write)g(at)h(one)g(time)
+f(in)f(a)i(giv)m(en)f(table)h(dep)s(ends)d(on)j(the)f(width)f(of)0
+2569 y(the)k(table)g(ro)m(w,)h(on)f(the)g(n)m(um)m(b)s(er)f(of)h(I/O)g
+(bu\013ers)f(that)i(ha)m(v)m(e)g(b)s(een)e(allo)s(cated)h(in)f(FITSIO,)
+g(and)h(also)g(on)g(the)0 2682 y(n)m(um)m(b)s(er)27 b(of)i(other)f
+(FITS)g(\014les)f(that)i(are)g(op)s(en)f(at)h(the)g(same)g(time)f
+(\(since)g(one)h(I/O)f(bu\013er)f(is)h(alw)m(a)m(ys)h(reserv)m(ed)0
+2795 y(for)34 b(eac)m(h)h(op)s(en)f(FITS)f(\014le\).)52
+b(F)-8 b(ortunately)g(,)36 b(a)f(FITSIO)e(routine)g(is)h(a)m(v)-5
+b(ailable)33 b(that)i(will)c(return)j(the)g(optimal)0
+2908 y(n)m(um)m(b)s(er)e(of)i(ro)m(ws)g(for)g(a)g(giv)m(en)f(table:)48
+b(call)33 b(ftgrsz\(unit,)h(nro)m(ws,)g(status\).)52
+b(It)34 b(is)f(not)h(critical)e(to)j(use)e(exactly)0
+3021 y(the)f(v)-5 b(alue)31 b(of)g(nro)m(ws)g(returned)g(b)m(y)g(this)f
+(routine,)h(as)h(long)f(as)h(one)g(do)s(es)f(not)h(exceed)g(it.)44
+b(Using)31 b(a)h(v)m(ery)f(small)0 3134 y(v)-5 b(alue)31
+b(ho)m(w)m(ev)m(er)j(can)e(also)g(lead)f(to)i(p)s(o)s(or)e(p)s
+(erformance)g(b)s(ecause)h(of)g(the)g(o)m(v)m(erhead)h(from)f(the)g
+(larger)f(n)m(um)m(b)s(er)0 3247 y(of)g(subroutine)d(calls.)0
+3407 y(The)36 b(optimal)f(n)m(um)m(b)s(er)h(of)g(ro)m(ws)h(returned)e
+(b)m(y)h(ftgrsz)h(is)f(v)-5 b(alid)35 b(only)g(as)i(long)f(as)h(the)f
+(application)f(program)0 3520 y(is)e(only)h(reading)g(or)g(writing)e
+(data)j(in)f(the)g(sp)s(eci\014ed)f(table.)53 b(An)m(y)34
+b(other)h(calls)e(to)i(access)h(data)f(in)e(the)i(table)0
+3633 y(header)e(or)h(in)e(an)m(y)i(other)g(FITS)f(\014le)g(w)m(ould)f
+(cause)i(additional)e(blo)s(c)m(ks)h(of)h(data)g(to)g(b)s(e)f(loaded)h
+(in)m(to)f(the)h(I/O)0 3745 y(bu\013ers)i(displacing)f(data)j(from)f
+(the)g(original)f(table,)j(and)e(should)e(b)s(e)i(a)m(v)m(oided)g
+(during)e(the)j(critical)e(p)s(erio)s(d)0 3858 y(while)28
+b(the)j(table)f(is)g(b)s(eing)f(read)h(or)g(written.)0
+4019 y(Occasionally)f(it)g(is)f(necessary)i(to)h(sim)m(ultaneously)c
+(access)k(more)f(than)f(one)h(FITS)f(table,)h(for)g(example)f(when)0
+4131 y(transferring)41 b(v)-5 b(alues)42 b(from)g(an)h(input)d(table)j
+(to)g(an)g(output)f(table.)78 b(In)42 b(cases)h(lik)m(e)f(this,)j(one)e
+(should)e(call)0 4244 y(ftgrsz)28 b(to)h(get)g(the)f(optimal)f(n)m(um)m
+(b)s(er)g(of)h(ro)m(ws)g(for)f(eac)m(h)j(table)d(separately)-8
+b(,)30 b(than)d(reduce)h(the)g(n)m(um)m(b)s(er)f(of)h(ro)m(ws)0
+4357 y(prop)s(ortionally)-8 b(.)42 b(F)-8 b(or)33 b(example,)f(if)f
+(the)h(optimal)f(n)m(um)m(b)s(er)f(of)i(ro)m(ws)g(in)e(the)i(input)e
+(table)i(is)f(3600)i(and)e(is)g(1400)0 4470 y(in)h(the)h(output)f
+(table,)i(then)f(these)g(v)-5 b(alues)33 b(should)e(b)s(e)h(cut)h(in)f
+(half)g(to)i(1800)g(and)f(700,)i(resp)s(ectiv)m(ely)-8
+b(,)34 b(if)e(b)s(oth)0 4583 y(tables)e(are)h(going)f(to)h(b)s(e)f
+(accessed)i(at)f(the)f(same)h(time.)0 4743 y(3.)39 b(Use)24
+b(binary)e(table)h(extensions)g(rather)g(than)h(ASCI)s(I)e(table)h
+(extensions)g(for)g(b)s(etter)h(e\016ciency)g(when)e(dealing)0
+4856 y(with)36 b(tabular)h(data.)62 b(The)37 b(I/O)g(to)h(ASCI)s(I)e
+(tables)h(is)g(slo)m(w)m(er)g(b)s(ecause)h(of)f(the)h(o)m(v)m(erhead)h
+(in)d(formatting)h(or)0 4969 y(parsing)29 b(the)i(ASCI)s(I)f(data)h
+(\014elds,)f(and)g(b)s(ecause)h(ASCI)s(I)e(tables)h(are)h(ab)s(out)g(t)
+m(wice)g(as)g(large)g(as)g(binary)e(tables)0 5082 y(with)g(the)i(same)f
+(information)f(con)m(ten)m(t.)0 5242 y(4.)64 b(Design)38
+b(soft)m(w)m(are)h(so)g(that)f(it)g(reads)g(the)g(FITS)f(header)h(k)m
+(eyw)m(ords)g(in)f(the)h(same)h(order)e(in)g(whic)m(h)g(they)0
+5355 y(o)s(ccur)c(in)f(the)h(\014le.)48 b(When)32 b(reading)h(k)m(eyw)m
+(ords,)h(FITSIO)e(searc)m(hes)i(forw)m(ard)e(starting)h(from)f(the)i(p)
+s(osition)d(of)0 5468 y(the)e(last)h(k)m(eyw)m(ord)f(that)h(w)m(as)g
+(read.)40 b(If)29 b(it)f(reac)m(hes)j(the)e(end)g(of)g(the)h(header)f
+(without)f(\014nding)f(the)i(k)m(eyw)m(ord,)h(it)0 5581
+y(then)j(go)s(es)h(bac)m(k)g(to)h(the)e(start)h(of)g(the)g(header)f
+(and)g(con)m(tin)m(ues)g(the)h(searc)m(h)g(do)m(wn)f(to)h(the)g(p)s
+(osition)d(where)i(it)0 5694 y(started.)41 b(In)30 b(practice,)h(as)f
+(long)g(as)h(the)f(en)m(tire)h(FITS)e(header)h(can)h(\014t)f(at)h(one)g
+(time)f(in)f(the)h(a)m(v)-5 b(ailable)30 b(in)m(ternal)p
+eop
+%%Page: 59 65
+59 64 bop 0 299 a Fg(6.13.)73 b(OPTIMIZING)29 b(CODE)h(F)m(OR)h
+(MAXIMUM)g(PR)m(OCESSING)f(SPEED)971 b Fi(59)0 555 y(I/O)33
+b(bu\013ers,)h(then)f(the)h(header)f(k)m(eyw)m(ord)h(access)h(will)30
+b(b)s(e)j(v)m(ery)h(fast)g(and)f(it)g(mak)m(es)h(little)e(di\013erence)
+h(whic)m(h)0 668 y(order)d(they)g(are)h(accessed.)0 828
+y(5.)40 b(Av)m(oid)28 b(the)f(use)h(of)f(scaling)g(\(b)m(y)h(using)e
+(the)i(BSCALE)e(and)h(BZER)m(O)h(or)f(TSCAL)g(and)g(TZER)m(O)f(k)m(eyw)
+m(ords\))0 941 y(in)34 b(FITS)g(\014les)f(since)i(the)g(scaling)f(op)s
+(erations)g(add)g(to)i(the)f(pro)s(cessing)e(time)i(needed)f(to)i(read)
+f(or)g(write)f(the)0 1054 y(data.)60 b(In)36 b(some)i(cases)f(it)f(ma)m
+(y)i(b)s(e)e(more)h(e\016cien)m(t)g(to)g(temp)s(orarily)e(turn)h(o\013)
+h(the)g(scaling)f(\(using)f(ftpscl)h(or)0 1167 y(fttscl\))31
+b(and)e(then)h(read)h(or)f(write)g(the)g(ra)m(w)h(unscaled)e(v)-5
+b(alues)30 b(in)f(the)h(FITS)g(\014le.)0 1327 y(6.)40
+b(Av)m(oid)26 b(using)g(the)h('implicit)d(datat)m(yp)s(e)j(con)m(v)m
+(ersion')g(capabilit)m(y)f(in)f(FITSIO.)h(F)-8 b(or)28
+b(instance,)f(when)f(reading)0 1440 y(a)f(FITS)e(image)i(with)e(BITPIX)
+h(=)g(-32)i(\(32-bit)f(\015oating)f(p)s(oin)m(t)f(pixels\),)i(read)f
+(the)h(data)g(in)m(to)f(a)h(single)e(precision)0 1553
+y(\015oating)f(p)s(oin)m(t)e(data)j(arra)m(y)f(in)f(the)h(program.)37
+b(F)-8 b(orcing)22 b(FITSIO)f(to)h(con)m(v)m(ert)i(the)e(data)g(to)h(a)
+f(di\013eren)m(t)f(datat)m(yp)s(e)0 1666 y(can)31 b(signi\014can)m(tly)
+d(slo)m(w)i(the)h(program.)0 1826 y(7.)57 b(Where)36
+b(feasible,)g(design)f(FITS)g(binary)f(tables)h(using)f(v)m(ector)k
+(column)c(elemen)m(ts)i(so)g(that)g(the)g(data)h(are)0
+1939 y(written)29 b(as)h(a)g(con)m(tiguous)g(set)g(of)g(b)m(ytes,)g
+(rather)g(than)f(as)h(single)e(elemen)m(ts)i(in)f(m)m(ultiple)e(ro)m
+(ws.)41 b(F)-8 b(or)30 b(example,)0 2052 y(it)35 b(is)g(faster)h(to)g
+(access)h(the)f(data)h(in)d(a)i(table)g(that)g(con)m(tains)g(a)g
+(single)e(ro)m(w)i(and)f(2)h(columns)e(with)h(TF)m(ORM)0
+2165 y(k)m(eyw)m(ords)e(equal)g(to)h('10000E')h(and)e('10000J',)j(than)
+d(it)f(is)g(to)i(access)g(the)g(same)f(amoun)m(t)h(of)f(data)h(in)e(a)h
+(table)0 2278 y(with)39 b(10000)k(ro)m(ws)d(whic)m(h)g(has)g(columns)f
+(with)g(the)i(TF)m(ORM)g(k)m(eyw)m(ords)g(equal)f(to)h('1E')h(and)e
+('1J'.)h(In)f(the)0 2391 y(former)27 b(case)i(the)f(10000)i(\015oating)
+e(p)s(oin)m(t)f(v)-5 b(alues)27 b(in)g(the)h(\014rst)f(column)g(are)h
+(all)f(written)g(in)f(a)i(con)m(tiguous)g(blo)s(c)m(k)0
+2503 y(of)e(the)f(\014le)g(whic)m(h)f(can)i(b)s(e)f(read)g(or)g
+(written)g(quic)m(kly)-8 b(,)26 b(whereas)f(in)f(the)i(second)f(case)i
+(eac)m(h)g(\015oating)e(p)s(oin)m(t)f(v)-5 b(alue)0 2616
+y(in)33 b(the)h(\014rst)f(column)f(is)h(in)m(terlea)m(v)m(ed)i(with)d
+(the)i(in)m(teger)h(v)-5 b(alue)33 b(in)g(the)h(second)g(column)e(of)i
+(the)g(same)h(ro)m(w)f(so)0 2729 y(CFITSIO)29 b(has)h(to)h(explicitly)d
+(mo)m(v)m(e)k(to)f(the)g(p)s(osition)d(of)j(eac)m(h)g(elemen)m(t)g(to)g
+(b)s(e)f(read)g(or)g(written.)0 2889 y(8.)52 b(Av)m(oid)34
+b(the)h(use)e(of)i(v)-5 b(ariable)32 b(length)i(v)m(ector)i(columns)c
+(in)h(binary)g(tables,)i(since)e(an)m(y)i(reading)e(or)h(writing)0
+3002 y(of)f(these)g(data)g(requires)e(that)i(CFITSIO)f(\014rst)f(lo)s
+(ok)i(up)e(or)i(compute)g(the)f(starting)h(address)f(of)g(eac)m(h)i(ro)
+m(w)f(of)0 3115 y(data)e(in)e(the)i(heap.)0 3275 y(9.)40
+b(When)26 b(cop)m(ying)g(data)i(from)e(one)g(FITS)g(table)g(to)h
+(another,)h(it)e(is)g(faster)g(to)i(transfer)e(the)g(ra)m(w)h(b)m(ytes)
+g(instead)0 3388 y(of)f(reading)f(then)h(writing)e(eac)m(h)j(column)d
+(of)j(the)f(table.)39 b(The)25 b(FITSIO)g(subroutines)f(FTGTBS)h(and)h
+(FTPTBS)0 3501 y(\(for)i(ASCI)s(I)f(tables\),)i(and)e(FTGTBB)i(and)e
+(FTPTBB)i(\(for)f(binary)e(tables\))i(will)e(p)s(erform)g(lo)m(w-lev)m
+(el)i(reads)g(or)0 3614 y(writes)33 b(of)i(an)m(y)f(con)m(tiguous)h
+(range)g(of)f(b)m(ytes)h(in)e(a)i(table)f(extension.)52
+b(These)34 b(routines)f(can)i(b)s(e)e(used)h(to)h(read)0
+3727 y(or)29 b(write)f(a)h(whole)f(ro)m(w)g(\(or)i(m)m(ultiple)c(ro)m
+(ws\))j(of)g(a)g(table)g(with)e(a)i(single)e(subroutine)g(call.)39
+b(These)29 b(routines)f(are)0 3840 y(fast)38 b(b)s(ecause)f(they)h(b)m
+(ypass)f(all)f(the)i(usual)e(data)i(scaling,)h(error)e(c)m(hec)m(king)h
+(and)f(mac)m(hine)g(dep)s(enden)m(t)f(data)0 3953 y(con)m(v)m(ersion)k
+(that)h(is)d(normally)h(done)g(b)m(y)h(FITSIO,)f(and)g(they)h(allo)m(w)
+f(the)h(program)g(to)h(write)e(the)h(data)g(to)0 4066
+y(the)34 b(output)g(\014le)f(in)g(exactly)i(the)f(same)h(b)m(yte)g
+(order.)51 b(F)-8 b(or)35 b(these)g(same)f(reasons,)i(use)e(of)g(these)
+h(routines)e(can)0 4179 y(b)s(e)g(somewhat)h(risky)e(b)s(ecause)h(no)g
+(v)-5 b(alidation)32 b(or)i(mac)m(hine)f(dep)s(enden)m(t)f(con)m(v)m
+(ersion)i(is)e(p)s(erformed)g(b)m(y)h(these)0 4292 y(routines.)39
+b(In)27 b(general)g(these)i(routines)d(are)i(only)f(recommended)g(for)h
+(optimizing)e(critical)g(pieces)i(of)g(co)s(de)g(and)0
+4405 y(should)d(only)i(b)s(e)g(used)f(b)m(y)i(programmers)e(who)h
+(thoroughly)g(understand)e(the)j(in)m(ternal)e(b)m(yte)i(structure)f
+(of)h(the)0 4517 y(FITS)i(tables)g(they)g(are)h(reading)f(or)g
+(writing.)0 4678 y(10.)41 b(Another)30 b(strategy)g(for)g(impro)m(ving)
+d(the)j(sp)s(eed)e(of)i(writing)e(a)h(FITS)g(table,)h(similar)d(to)j
+(the)f(previous)f(one,)0 4791 y(is)j(to)h(directly)f(construct)h(the)f
+(en)m(tire)h(b)m(yte)g(stream)g(for)g(a)g(whole)f(table)g(ro)m(w)h
+(\(or)g(m)m(ultiple)e(ro)m(ws\))i(within)d(the)0 4903
+y(application)j(program)i(and)g(then)f(write)h(it)f(to)i(the)f(FITS)f
+(\014le)h(with)e(ftptbb.)51 b(This)32 b(a)m(v)m(oids)j(all)e(the)h(o)m
+(v)m(erhead)0 5016 y(normally)e(presen)m(t)i(in)e(the)i(column-orien)m
+(ted)f(CFITSIO)f(write)h(routines.)50 b(This)32 b(tec)m(hnique)h
+(should)f(only)h(b)s(e)0 5129 y(used)26 b(for)h(critical)f
+(applications,)g(b)s(ecause)g(it)h(mak)m(es)h(the)f(co)s(de)g(more)g
+(di\016cult)e(to)i(understand)e(and)i(main)m(tain,)0
+5242 y(and)d(it)g(mak)m(es)i(the)f(co)s(de)g(more)f(system)h(dep)s
+(enden)m(t)f(\(e.g.,)k(do)c(the)h(b)m(ytes)g(need)g(to)g(b)s(e)f(sw)m
+(app)s(ed)g(b)s(efore)g(writing)0 5355 y(to)31 b(the)g(FITS)e
+(\014le?\).)0 5515 y(11.)53 b(Finally)-8 b(,)34 b(external)g(factors)i
+(suc)m(h)e(as)g(the)h(t)m(yp)s(e)f(of)h(magnetic)f(disk)f(con)m
+(troller)h(\(SCSI)f(or)i(IDE\),)g(the)f(size)0 5628 y(of)h(the)g(disk)f
+(cac)m(he,)k(the)d(a)m(v)m(erage)i(seek)f(sp)s(eed)e(of)h(the)g(disk,)g
+(the)g(amoun)m(t)h(of)f(disk)e(fragmen)m(tation,)k(and)e(the)p
+eop
+%%Page: 60 66
+60 65 bop 0 299 a Fi(60)1277 b Fg(CHAPTER)29 b(6.)72
+b(FITSIO)29 b(CONVENTIONS)g(AND)i(GUIDELINES)0 555 y
+Fi(amoun)m(t)e(of)g(RAM)f(a)m(v)-5 b(ailable)28 b(on)h(the)f(system)h
+(can)g(all)e(ha)m(v)m(e)j(a)f(signi\014can)m(t)e(impact)i(on)f(o)m(v)m
+(erall)h(I/O)f(e\016ciency)-8 b(.)0 668 y(F)g(or)36 b(critical)e
+(applications,)g(a)i(system)f(administrator)e(should)g(review)h(the)i
+(prop)s(osed)d(system)j(hardw)m(are)e(to)0 781 y(iden)m(tify)29
+b(an)m(y)i(p)s(oten)m(tial)e(I/O)i(b)s(ottlenec)m(ks.)p
+eop
+%%Page: 61 67
+61 66 bop 0 1225 a Ff(Chapter)65 b(7)0 1687 y Fl(The)77
+b(CFITSIO)f(Iterator)i(F)-19 b(unction)0 2180 y Fi(The)41
+b(\014ts)p 325 2180 28 4 v 33 w(iterate)p 615 2180 V
+33 w(data)i(function)d(in)h(CFITSIO)f(pro)m(vides)h(a)h(unique)d(metho)
+s(d)j(of)g(executing)g(an)f(arbitrary)0 2293 y(user-supplied)33
+b(`w)m(ork')k(function)e(that)i(op)s(erates)g(on)g(ro)m(ws)f(of)h(data)
+g(in)e(FITS)h(tables)g(or)g(on)h(pixels)d(in)i(FITS)0
+2406 y(images.)i(Rather)24 b(than)e(explicitly)f(reading)h(and)h
+(writing)e(the)i(FITS)g(images)g(or)g(columns)f(of)h(data,)i(one)f
+(instead)0 2518 y(calls)34 b(the)i(CFITSIO)d(iterator)j(routine,)g
+(passing)e(to)i(it)f(the)g(name)g(of)h(the)f(user's)g(w)m(ork)g
+(function)f(that)i(is)e(to)0 2631 y(b)s(e)c(executed)h(along)f(with)f
+(a)i(list)e(of)h(all)f(the)i(table)f(columns)f(or)h(image)g(arra)m(ys)h
+(that)g(are)f(to)h(b)s(e)f(passed)g(to)h(the)0 2744 y(w)m(ork)37
+b(function.)60 b(The)37 b(CFITSIO)e(iterator)j(function)e(then)h(do)s
+(es)g(all)f(the)h(w)m(ork)g(of)h(allo)s(cating)e(memory)h(for)0
+2857 y(the)28 b(arra)m(ys,)h(reading)e(the)h(input)d(data)k(from)e(the)
+h(FITS)f(\014le,)g(passing)g(them)h(to)g(the)g(w)m(ork)g(function,)f
+(and)g(then)0 2970 y(writing)34 b(an)m(y)j(output)f(data)h(bac)m(k)h
+(to)f(the)f(FITS)g(\014le)f(after)i(the)g(w)m(ork)g(function)e(exits.)
+58 b(Because)38 b(it)e(is)g(often)0 3083 y(more)h(e\016cien)m(t)h(to)g
+(pro)s(cess)f(only)f(a)i(subset)f(of)g(the)g(total)h(table)g(ro)m(ws)f
+(at)h(one)f(time,)i(the)f(iterator)f(function)0 3196
+y(can)f(determine)f(the)i(optim)m(um)e(amoun)m(t)h(of)g(data)h(to)g
+(pass)e(in)g(eac)m(h)i(iteration)f(and)f(rep)s(eatly)g(call)h(the)g(w)m
+(ork)0 3309 y(function)29 b(un)m(til)g(the)h(en)m(tire)h(table)f(b)s
+(een)f(pro)s(cessed.)0 3469 y(F)-8 b(or)37 b(man)m(y)f(applications)e
+(this)g(single)h(CFITSIO)f(iterator)j(function)d(can)i(e\013ectiv)m
+(ely)h(replace)f(all)f(the)h(other)0 3582 y(CFITSIO)g(routines)h(for)g
+(reading)g(or)g(writing)f(data)i(in)e(FITS)h(images)h(or)f(tables.)63
+b(Using)36 b(the)i(iterator)g(has)0 3695 y(sev)m(eral)31
+b(imp)s(ortan)m(t)e(adv)-5 b(an)m(tages)32 b(o)m(v)m(er)g(the)f
+(traditional)d(metho)s(d)i(of)h(reading)e(and)h(writing)e(FITS)i(data)h
+(\014les:)136 3961 y Fc(\017)46 b Fi(It)33 b(cleanly)f(separates)i(the)
+f(data)h(I/O)f(from)f(the)h(routine)f(that)i(op)s(erates)f(on)g(the)g
+(data.)49 b(This)31 b(leads)h(to)227 4074 y(a)f(more)g(mo)s(dular)d
+(and)i(`ob)5 b(ject)31 b(orien)m(ted')g(programming)e(st)m(yle.)136
+4268 y Fc(\017)46 b Fi(It)27 b(simpli\014es)c(the)k(application)e
+(program)i(b)m(y)f(eliminating)e(the)j(need)g(to)g(allo)s(cate)g
+(memory)g(for)f(the)h(data)227 4381 y(arra)m(ys)e(and)f(eliminates)f
+(most)h(of)h(the)f(calls)g(to)h(the)g(CFITSIO)d(routines)i(that)h
+(explicitly)d(read)i(and)g(write)227 4494 y(the)31 b(data.)136
+4689 y Fc(\017)46 b Fi(It)32 b(ensures)e(that)i(the)g(data)g(are)g(pro)
+s(cessed)f(as)h(e\016cien)m(tly)f(as)g(p)s(ossible.)42
+b(This)30 b(is)g(esp)s(ecially)g(imp)s(ortan)m(t)227
+4801 y(when)44 b(pro)s(cessing)f(tabular)h(data)i(since)e(the)h
+(iterator)g(function)e(will)f(calculate)j(the)g(most)g(e\016cien)m(t)
+227 4914 y(n)m(um)m(b)s(er)36 b(of)i(ro)m(ws)g(in)e(the)i(table)f(to)h
+(b)s(e)f(passed)g(at)i(one)e(time)h(to)g(the)g(user's)e(w)m(ork)i
+(function)e(on)i(eac)m(h)227 5027 y(iteration.)136 5222
+y Fc(\017)46 b Fi(Mak)m(es)39 b(it)d(p)s(ossible)f(for)i(larger)g(pro)5
+b(jects)37 b(to)h(dev)m(elop)f(a)h(library)c(of)k(w)m(ork)f(functions)f
+(that)h(all)f(ha)m(v)m(e)j(a)227 5335 y(uniform)28 b(calling)h
+(sequence)i(and)f(are)h(all)e(indep)s(enden)m(t)f(of)j(the)f(details)g
+(of)g(the)h(FITS)e(\014le)h(format.)0 5601 y(There)g(are)h(basically)e
+(2)j(steps)e(in)g(using)f(the)i(CFITSIO)e(iterator)i(function.)41
+b(The)30 b(\014rst)g(step)h(is)f(to)h(design)f(the)0
+5714 y(w)m(ork)c(function)e(itself)g(whic)m(h)g(m)m(ust)i(ha)m(v)m(e)g
+(a)g(prescrib)s(ed)d(set)j(of)g(input)e(parameters.)39
+b(One)25 b(of)h(these)g(parameters)1905 5942 y(61)p eop
+%%Page: 62 68
+62 67 bop 0 299 a Fi(62)1455 b Fg(CHAPTER)30 b(7.)112
+b(THE)30 b(CFITSIO)e(ITERA)-8 b(TOR)30 b(FUNCTION)0 555
+y Fi(is)e(a)h(structure)g(con)m(taining)g(p)s(oin)m(ters)e(to)j(the)f
+(arra)m(ys)h(of)f(data;)h(the)f(w)m(ork)h(function)d(can)j(p)s(erform)d
+(an)m(y)i(desired)0 668 y(op)s(erations)j(on)i(these)f(arra)m(ys)h(and)
+e(do)s(es)h(not)g(need)g(to)h(w)m(orry)f(ab)s(out)g(ho)m(w)g(the)h
+(input)d(data)j(w)m(ere)f(read)g(from)0 781 y(the)e(\014le)e(or)h(ho)m
+(w)h(the)f(output)g(data)h(get)h(written)d(bac)m(k)i(to)h(the)e
+(\014le.)0 941 y(The)24 b(second)h(step)g(is)e(to)j(design)d(the)i
+(driv)m(er)f(routine)f(that)j(op)s(ens)e(all)f(the)i(necessary)g(FITS)f
+(\014les)g(and)g(initializes)0 1054 y(the)41 b(input)f(parameters)h(to)
+h(the)g(iterator)f(function.)72 b(The)41 b(driv)m(er)f(program)h(calls)
+f(the)i(CFITSIO)e(iterator)0 1167 y(function)29 b(whic)m(h)g(then)h
+(reads)g(the)h(data)g(and)f(passes)g(it)g(to)h(the)g(user's)e(w)m(ork)i
+(function.)0 1327 y(F)-8 b(urther)41 b(details)g(on)h(using)e(the)i
+(iterator)g(function)f(can)h(b)s(e)f(found)f(in)h(the)h(companion)f
+(CFITSIO)f(User's)0 1440 y(Guide,)30 b(and)f(in)g(the)i(iter)p
+875 1440 28 4 v 32 w(a.f,)g(iter)p 1198 1440 V 33 w(b.f)f(and)f(iter)p
+1678 1440 V 33 w(c.f)h(example)g(programs.)p eop
+%%Page: 63 69
+63 68 bop 0 1225 a Ff(Chapter)65 b(8)0 1687 y Fl(Basic)77
+b(In)-6 b(terface)77 b(Routines)0 2180 y Fi(This)26 b(section)h
+(de\014nes)g(a)h(basic)f(set)h(of)g(subroutines)d(that)j(can)g(b)s(e)f
+(used)g(to)h(p)s(erform)e(the)i(most)g(common)g(t)m(yp)s(es)0
+2293 y(of)d(read)g(and)f(write)g(op)s(erations)g(on)h(FITS)f(\014les.)
+38 b(New)25 b(users)f(should)f(start)i(with)f(these)h(subroutines)e
+(and)h(then,)0 2406 y(as)33 b(needed,)h(explore)e(the)i(more)f(adv)-5
+b(ance)33 b(routines)f(describ)s(ed)f(in)h(the)h(follo)m(wing)f(c)m
+(hapter)h(to)h(p)s(erform)e(more)0 2518 y(complex)e(or)g(sp)s
+(ecialized)f(op)s(erations.)0 2679 y(A)h(righ)m(t)f(arro)m(w)h(sym)m(b)
+s(ol)e(\()p Fa(>)p Fi(\))i(is)f(used)g(to)h(separate)h(the)e(input)f
+(parameters)i(from)f(the)h(output)f(parameters)h(in)0
+2791 y(the)i(de\014nition)d(of)i(eac)m(h)i(routine.)43
+b(This)29 b(sym)m(b)s(ol)i(is)f(not)i(actually)f(part)g(of)h(the)f
+(calling)f(sequence.)45 b(Note)32 b(that)0 2904 y(the)f(status)h
+(parameter)g(is)e(b)s(oth)h(an)g(input)e(and)i(an)g(output)g(parameter)
+h(and)e(m)m(ust)h(b)s(e)g(initialized)d(=)j(0)h(prior)0
+3017 y(to)f(calling)e(the)i(FITSIO)e(subroutines.)0 3177
+y(Refer)h(to)i(Chapter)d(9)i(for)f(the)h(de\014nition)d(of)i(all)g(the)
+g(parameters)h(used)e(b)m(y)i(these)g(in)m(terface)f(routines.)0
+3525 y Fd(8.1)135 b(FITSIO)44 b(Error)h(Status)h(Routines)0
+3773 y Fh(1)81 b Fi(Return)24 b(the)i(curren)m(t)f(v)m(ersion)g(n)m(um)
+m(b)s(er)f(of)i(the)f(\014tsio)g(library)-8 b(.)37 b(The)25
+b(v)m(ersion)g(n)m(um)m(b)s(er)f(will)f(b)s(e)h(incremen)m(ted)227
+3886 y(with)29 b(eac)m(h)j(new)e(release)g(of)h(CFITSIO.)382
+4157 y Fe(FTVERS\()46 b(>)h(version\))0 4429 y Fh(2)81
+b Fi(Return)45 b(the)i(descriptiv)m(e)e(text)i(string)f(corresp)s
+(onding)e(to)j(a)g(FITSIO)e(error)h(status)h(co)s(de.)89
+b(The)46 b(30-)227 4541 y(c)m(haracter)32 b(length)e(string)f(con)m
+(tains)i(a)g(brief)e(description)f(of)i(the)h(cause)g(of)f(the)h
+(error.)382 4813 y Fe(FTGERR\(status,)44 b(>)j(errtext\))0
+5084 y Fh(3)81 b Fi(Return)40 b(the)h(top)g(\(oldest\))g(80-c)m
+(haracter)j(error)c(message)i(from)f(the)g(in)m(ternal)e(FITSIO)h(stac)
+m(k)i(of)f(error)227 5197 y(messages)29 b(and)f(shift)f(an)m(y)h
+(remaining)e(messages)j(on)f(the)g(stac)m(k)i(up)d(one)h(lev)m(el.)40
+b(An)m(y)28 b(FITSIO)f(error)h(will)227 5310 y(generate)h(one)e(or)g
+(more)h(messages)g(on)f(the)g(stac)m(k.)41 b(Call)26
+b(this)g(routine)g(rep)s(eatedly)g(to)i(get)h(eac)m(h)f(message)227
+5422 y(in)h(sequence.)41 b(The)30 b(error)g(stac)m(k)i(is)e(empt)m(y)g
+(when)g(a)g(blank)f(string)h(is)f(returned.)382 5694
+y Fe(FTGMSG\()46 b(>)h(errmsg\))1905 5942 y Fi(63)p eop
+%%Page: 64 70
+64 69 bop 0 299 a Fi(64)1747 b Fg(CHAPTER)30 b(8.)111
+b(BASIC)30 b(INTERF)-10 b(A)m(CE)30 b(R)m(OUTINES)0 555
+y Fh(4)81 b Fi(The)33 b(FTPMRK)h(routine)f(puts)h(an)g(in)m(visible)d
+(mark)m(er)j(on)g(the)h(CFITSIO)d(error)i(stac)m(k.)54
+b(The)33 b(FTCMRK)227 668 y(routine)40 b(can)h(then)g(b)s(e)f(used)g
+(to)h(delete)g(an)m(y)g(more)g(recen)m(t)h(error)e(messages)i(on)f(the)
+g(stac)m(k,)k(bac)m(k)c(to)227 781 y(the)32 b(p)s(osition)d(of)i(the)g
+(mark)m(er.)43 b(This)30 b(preserv)m(es)h(an)m(y)g(older)g(error)f
+(messages)i(on)f(the)h(stac)m(k.)44 b(FTCMSG)227 894
+y(simply)21 b(clears)h(the)h(en)m(tire)g(error)f(message)i(stac)m(k.)40
+b(These)23 b(routines)e(are)i(called)f(without)g(an)m(y)h(argumen)m
+(ts.)382 1152 y Fe(FTPMRK)382 1265 y(FTCMRK)382 1378
+y(FTCMSG)0 1637 y Fh(5)81 b Fi(Prin)m(t)29 b(out)i(the)g(error)f
+(message)i(corresp)s(onding)d(to)i(the)g(input)e(status)i(v)-5
+b(alue)30 b(and)g(all)g(the)h(error)f(messages)227 1750
+y(on)g(the)h(FITSIO)e(stac)m(k)i(to)g(the)g(sp)s(eci\014ed)d(\014le)i
+(stream)g(\(stream)h(can)g(b)s(e)e(either)h(the)g(string)f('STDOUT')227
+1863 y(or)i('STDERR'\).)f(If)g(the)h(input)d(status)j(v)-5
+b(alue)30 b(=)g(0)h(then)f(this)f(routine)g(do)s(es)h(nothing.)334
+2121 y Fe(FTRPRT)46 b(\(stream,)g(>)h(status\))0 2380
+y Fh(6)81 b Fi(W)-8 b(rite)38 b(an)g(80-c)m(haracter)j(message)e(to)g
+(the)f(FITSIO)f(error)h(stac)m(k.)65 b(Application)36
+b(programs)i(should)e(not)227 2493 y(normally)29 b(write)g(to)j(the)e
+(stac)m(k,)i(but)e(there)g(ma)m(y)h(b)s(e)f(some)h(situations)e(where)h
+(this)f(is)h(desirable.)382 2751 y Fe(FTPMSG\(errmsg\))0
+3085 y Fd(8.2)135 b(File)46 b(I/O)f(Routines)0 3325 y
+Fh(1)81 b Fi(Op)s(en)34 b(an)h(existing)g(FITS)f(\014le)h(with)f
+(readonly)h(or)g(readwrite)g(access.)58 b(This)33 b(routine)i(alw)m(a)m
+(ys)h(op)s(ens)f(the)227 3438 y(primary)29 b(arra)m(y)j(\(the)f
+(\014rst)f(HDU\))i(of)f(the)h(\014le,)e(and)g(do)s(es)h(not)g(mo)m(v)m
+(e)h(to)g(a)f(follo)m(wing)f(extension,)h(if)f(one)227
+3551 y(w)m(as)d(sp)s(eci\014ed)e(as)h(part)h(of)f(the)h(\014lename.)38
+b(Use)27 b(the)g(FTNOPN)f(routine)f(to)i(automatically)g(mo)m(v)m(e)h
+(to)f(the)227 3664 y(extension.)43 b(This)30 b(routine)g(will)f(also)i
+(op)s(en)g(IRAF)g(images)h(\(.imh)e(format)i(\014les\))f(and)f(ra)m(w)i
+(binary)d(data)227 3776 y(arra)m(ys)f(with)e(READONL)-8
+b(Y)28 b(access)h(b)m(y)e(\014rst)g(con)m(v)m(erting)h(them)f(on)g(the)
+h(\015y)f(in)m(to)g(virtual)f(FITS)h(images.)227 3889
+y(See)36 b(the)g(`Extended)f(File)g(Name)i(Syn)m(tax')f(c)m(hapter)g
+(for)f(more)h(details.)56 b(The)35 b(second)h(routine)e(simply)227
+4002 y(op)s(ens)e(the)g(sp)s(eci\014ed)f(\014le)h(without)f(trying)h
+(to)h(in)m(terpret)f(the)g(\014lename)g(using)f(the)h(extended)h
+(\014lename)227 4115 y(syn)m(tax.)382 4374 y Fe
+(FTOPEN\(unit,filename,rwm)o(ode)o(,)42 b(>)47 b(blocksize,status\))382
+4487 y(FTDKOPEN\(unit,filename,r)o(wmo)o(de,)41 b(>)48
+b(blocksize,status\))0 4745 y Fh(2)81 b Fi(Op)s(en)24
+b(an)i(existing)f(FITS)g(\014le)g(with)f(readonly)h(or)h(readwrite)f
+(access)i(and)f(mo)m(v)m(e)h(to)f(a)h(follo)m(wing)d(extension,)227
+4858 y(if)37 b(one)h(w)m(as)g(sp)s(eci\014ed)f(as)h(part)f(of)h(the)h
+(\014lename.)62 b(\(e.g.,)42 b('\014lename.\014ts+2')37
+b(or)h('\014lename.\014ts[2]')h(will)227 4971 y(mo)m(v)m(e)f(to)g(the)e
+(3rd)g(HDU)i(in)d(the)i(\014le\).)59 b(Note)37 b(that)h(this)d(routine)
+h(di\013ers)f(from)h(FTOPEN)g(in)f(that)i(it)227 5084
+y(do)s(es)30 b(not)h(ha)m(v)m(e)h(the)e(redundan)m(t)f(blo)s(c)m(ksize)
+h(argumen)m(t.)382 5342 y Fe(FTNOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))0 5601 y Fh(3)81 b Fi(Op)s(en)31 b(an)h(existing)f
+(FITS)h(\014le)f(with)g(readonly)h(or)g(readwrite)g(access)h(and)f
+(then)g(mo)m(v)m(e)i(to)f(the)g(\014rst)e(HDU)227 5714
+y(con)m(taining)25 b(signi\014can)m(t)g(data,)i(if)d(a\))j(an)e(HDU)h
+(name)g(or)f(n)m(um)m(b)s(er)f(to)i(op)s(en)f(w)m(as)h(not)g
+(explicitly)d(sp)s(eci\014ed)p eop
+%%Page: 65 71
+65 70 bop 0 299 a Fg(8.2.)72 b(FILE)30 b(I/O)h(R)m(OUTINES)2693
+b Fi(65)227 555 y(as)31 b(part)g(of)g(the)g(\014lename,)g(and)f(b\))h
+(if)f(the)h(FITS)f(\014le)g(con)m(tains)h(a)h(n)m(ull)c(primary)h(arra)
+m(y)j(\(i.e.,)g(NAXIS)e(=)227 668 y(0\).)41 b(In)26 b(this)h(case,)i
+(it)e(will)e(lo)s(ok)i(for)g(the)h(\014rst)e(IMA)m(GE)j(HDU)f(with)e
+(NAXIS)h(>)h(0,)g(or)g(the)f(\014rst)g(table)g(that)227
+781 y(do)s(es)h(not)g(con)m(tain)f(the)h(strings)f(`GTI')h(\(Go)s(o)s
+(d)f(Time)g(In)m(terv)-5 b(al\))28 b(or)g(`OBST)-8 b(ABLE')28
+b(in)e(the)i(EXTNAME)227 894 y(k)m(eyw)m(ord)37 b(v)-5
+b(alue.)60 b(FTTOPN)36 b(is)f(similar,)h(except)i(it)e(will)e(mo)m(v)m
+(e)39 b(to)e(the)g(\014rst)f(signi\014can)m(t)g(table)g(HDU)227
+1007 y(\(skipping)24 b(o)m(v)m(er)i(an)m(y)g(image)g(HDUs\))h(in)d(the)
+i(\014le)f(if)f(a)i(sp)s(eci\014c)f(HDU)h(name)g(or)g(n)m(um)m(b)s(er)e
+(is)h(not)g(sp)s(eci\014ed.)227 1120 y(FTIOPN)30 b(will)e(mo)m(v)m(e)k
+(to)f(the)f(\014rst)g(non-n)m(ull)e(image)j(HDU,)g(skipping)d(o)m(v)m
+(er)j(an)m(y)g(tables.)382 1372 y Fe(FTDOPN\(unit,filename,rwm)o(ode)o
+(,)42 b(>)47 b(status\))382 1485 y(FTTOPN\(unit,filename,rwm)o(ode)o(,)
+42 b(>)47 b(status\))382 1598 y(FTIOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))0 1851 y Fh(4)81 b Fi(Op)s(en)30 b(and)h(initialize)e
+(a)j(new)f(empt)m(y)h(FITS)e(\014le.)44 b(A)31 b(template)h(\014le)f
+(ma)m(y)h(also)g(b)s(e)f(sp)s(eci\014ed)f(to)i(de\014ne)f(the)227
+1964 y(structure)h(of)h(the)g(new)f(\014le)f(\(see)j(section)e
+(4.2.4\).)50 b(The)32 b(second)g(routine)g(simply)e(creates)k(the)f(sp)
+s(eci\014ed)227 2077 y(\014le)d(without)f(trying)h(to)h(in)m(terpret)e
+(the)i(\014lename)f(using)e(the)j(extended)f(\014lename)g(syn)m(tax.)
+382 2330 y Fe(FTINIT\(unit,filename,blo)o(cks)o(ize,)41
+b(>)48 b(status\))382 2442 y(FTDKINIT\(unit,filename,b)o(loc)o(ksiz)o
+(e,)42 b(>)47 b(status\))0 2695 y Fh(5)81 b Fi(Close)30
+b(a)g(FITS)g(\014le)f(previously)f(op)s(ened)i(with)f(ftop)s(en)h(or)g
+(ftinit)382 2948 y Fe(FTCLOS\(unit,)44 b(>)k(status\))0
+3201 y Fh(6)81 b Fi(Mo)m(v)m(e)32 b(to)f(a)g(sp)s(eci\014ed)e
+(\(absolute\))h(HDU)h(in)f(the)g(FITS)g(\014le)f(\(nhdu)g(=)h(1)h(for)f
+(the)g(FITS)g(primary)e(arra)m(y\))382 3453 y Fe(FTMAHD\(unit,nhdu,)43
+b(>)k(hdutype,status\))0 3706 y Fh(7)81 b Fi(Create)30
+b(a)f(primary)e(arra)m(y)j(\(if)f(none)g(already)f(exists\),)i(or)f
+(insert)f(a)i(new)f(IMA)m(GE)h(extension)f(immediately)227
+3819 y(follo)m(wing)22 b(the)h(CHDU,)g(or)g(insert)f(a)h(new)g(Primary)
+e(Arra)m(y)i(at)h(the)f(b)s(eginning)d(of)j(the)g(\014le.)37
+b(An)m(y)23 b(follo)m(wing)227 3932 y(extensions)28 b(in)g(the)h
+(\014le)e(will)f(b)s(e)i(shifted)g(do)m(wn)g(to)h(mak)m(e)h(ro)s(om)e
+(for)h(the)g(new)f(extension.)39 b(If)29 b(the)g(CHDU)227
+4045 y(is)g(the)h(last)f(HDU)h(in)f(the)g(\014le)g(then)g(the)h(new)f
+(image)h(extension)f(will)e(simply)g(b)s(e)i(app)s(ended)f(to)i(the)g
+(end)227 4158 y(of)k(the)h(\014le.)51 b(One)33 b(can)h(force)h(a)g(new)
+e(primary)f(arra)m(y)j(to)g(b)s(e)e(inserted)g(at)i(the)f(b)s(eginning)
+d(of)j(the)h(FITS)227 4271 y(\014le)29 b(b)m(y)g(setting)g(status)h(=)f
+(-9)h(prior)e(to)i(calling)d(the)j(routine.)39 b(In)29
+b(this)f(case)i(the)g(old)e(primary)g(arra)m(y)i(will)227
+4384 y(b)s(e)c(con)m(v)m(erted)j(to)e(an)g(IMA)m(GE)g(extension.)39
+b(The)27 b(new)f(extension)g(\(or)h(primary)e(arra)m(y\))j(will)c(b)s
+(ecome)j(the)227 4496 y(CHDU.)382 4749 y Fe(FTIIMG\(unit,bitpix,naxis)o
+(,na)o(xes,)41 b(>)48 b(status\))0 5002 y Fh(8)81 b Fi(Insert)30
+b(a)i(new)f(ASCI)s(I)f(T)-8 b(ABLE)31 b(extension)g(immediately)f
+(follo)m(wing)f(the)j(CHDU.)g(An)m(y)f(follo)m(wing)f(exten-)227
+5115 y(sions)25 b(will)e(b)s(e)i(shifted)f(do)m(wn)h(to)h(mak)m(e)h(ro)
+s(om)e(for)h(the)f(new)g(extension.)39 b(If)25 b(there)h(are)g(no)g
+(other)f(follo)m(wing)227 5228 y(extensions)31 b(then)g(the)h(new)f
+(table)g(extension)g(will)e(simply)g(b)s(e)i(app)s(ended)f(to)i(the)f
+(end)g(of)h(the)f(\014le.)43 b(The)227 5341 y(new)30
+b(extension)g(will)e(b)s(ecome)j(the)f(CHDU.)382 5593
+y Fe(FTITAB\(unit,rowlen,nrows)o(,tf)o(ield)o(s,tt)o(ype)o(,tbc)o(ol,t)
+o(for)o(m,tu)o(nit,)o(ext)o(name)o(,)42 b(>)716 5706
+y(status\))p eop
+%%Page: 66 72
+66 71 bop 0 299 a Fi(66)1747 b Fg(CHAPTER)30 b(8.)111
+b(BASIC)30 b(INTERF)-10 b(A)m(CE)30 b(R)m(OUTINES)0 555
+y Fh(9)81 b Fi(Insert)26 b(a)h(new)g(binary)e(table)h(extension)h
+(immediately)e(follo)m(wing)h(the)h(CHDU.)g(An)m(y)g(follo)m(wing)e
+(extensions)227 668 y(will)36 b(b)s(e)i(shifted)f(do)m(wn)h(to)h(mak)m
+(e)g(ro)s(om)g(for)f(the)g(new)g(extension.)65 b(If)38
+b(there)h(are)f(no)h(other)f(follo)m(wing)227 781 y(extensions)e(then)h
+(the)f(new)g(bin)m(table)f(extension)i(will)d(simply)g(b)s(e)i(app)s
+(ended)e(to)k(the)e(end)g(of)h(the)g(\014le.)227 894
+y(The)30 b(new)g(extension)g(will)e(b)s(ecome)j(the)f(CHDU.)382
+1137 y Fe(FTIBIN\(unit,nrows,tfield)o(s,t)o(type)o(,tfo)o(rm,)o(tuni)o
+(t,ex)o(tna)o(me,v)o(arid)o(at)41 b(>)48 b(status\))0
+1468 y Fd(8.3)135 b(Keyw)l(ord)46 b(I/O)f(Routines)0
+1705 y Fh(1)81 b Fi(Put)30 b(\(app)s(end\))f(an)h(80-c)m(haracter)j
+(record)e(in)m(to)f(the)h(CHU.)382 1948 y Fe(FTPREC\(unit,card,)43
+b(>)k(status\))0 2191 y Fh(2)81 b Fi(Put)28 b(\(app)s(end\))g(a)h(new)g
+(k)m(eyw)m(ord)g(of)g(the)g(appropriate)f(datat)m(yp)s(e)i(in)m(to)f
+(the)g(CHU.)g(The)f(E)h(and)f(D)i(v)m(ersions)227 2304
+y(of)24 b(this)e(routine)g(ha)m(v)m(e)i(the)g(added)e(feature)i(that)g
+(if)e(the)h('decimals')g(parameter)h(is)e(negativ)m(e,)k(then)d(the)g
+('G')227 2417 y(displa)m(y)28 b(format)i(rather)f(then)g(the)h('E')f
+(format)h(will)d(b)s(e)i(used)f(when)h(constructing)g(the)g(k)m(eyw)m
+(ord)h(v)-5 b(alue,)227 2530 y(taking)26 b(the)h(absolute)f(v)-5
+b(alue)25 b(of)i('decimals')e(for)h(the)h(precision.)37
+b(This)25 b(will)e(suppress)h(trailing)h(zeros,)j(and)227
+2643 y(will)34 b(use)j(a)g(\014xed)f(format)h(rather)g(than)f(an)h(exp)
+s(onen)m(tial)e(format,)k(dep)s(ending)34 b(on)j(the)g(magnitude)f(of)
+227 2755 y(the)31 b(v)-5 b(alue.)382 2998 y Fe
+(FTPKY[JLS]\(unit,keyword,)o(key)o(val,)o(comm)o(ent)o(,)42
+b(>)47 b(status\))382 3111 y(FTPKY[EDFG]\(unit,keyword)o(,ke)o(yval)o
+(,dec)o(ima)o(ls,c)o(omme)o(nt,)41 b(>)48 b(status\))0
+3354 y Fh(3)81 b Fi(Get)37 b(the)f(n)m(th)f(80-c)m(haracter)k(header)d
+(record)g(from)f(the)h(CHU.)h(The)e(\014rst)g(k)m(eyw)m(ord)i(in)d(the)
+i(header)g(is)f(at)227 3467 y(k)m(ey)p 365 3467 28 4
+v 34 w(no)42 b(=)f(1;)49 b(if)41 b(k)m(ey)p 996 3467
+V 34 w(no)h(=)f(0)i(then)e(this)g(subroutine)f(simple)g(mo)m(v)m(es)k
+(the)e(in)m(ternal)f(p)s(oin)m(ter)g(to)i(the)227 3580
+y(b)s(eginning)33 b(of)j(the)g(header)f(so)h(that)g(subsequen)m(t)f(k)m
+(eyw)m(ord)h(op)s(erations)f(will)e(start)j(at)g(the)g(top)g(of)g(the)
+227 3693 y(header;)31 b(it)f(also)g(returns)f(a)i(blank)e(card)h(v)-5
+b(alue)30 b(in)f(this)g(case.)382 3936 y Fe(FTGREC\(unit,key_no,)42
+b(>)48 b(card,status\))0 4178 y Fh(4)81 b Fi(Get)31 b(a)g(k)m(eyw)m
+(ord)g(v)-5 b(alue)29 b(\(with)h(the)g(appropriate)g(datat)m(yp)s(e\))h
+(and)f(commen)m(t)i(from)e(the)g(CHU)382 4421 y Fe
+(FTGKY[EDJLS]\(unit,keywor)o(d,)41 b(>)48 b(keyval,comment,status\))0
+4664 y Fh(5)81 b Fi(Delete)31 b(an)f(existing)g(k)m(eyw)m(ord)h
+(record.)382 4907 y Fe(FTDKEY\(unit,keyword,)42 b(>)48
+b(status\))0 5238 y Fd(8.4)135 b(Data)46 b(I/O)g(Routines)0
+5488 y Fi(The)32 b(follo)m(wing)f(routines)g(read)i(or)f(write)g(data)h
+(v)-5 b(alues)32 b(in)f(the)i(curren)m(t)f(HDU)i(of)e(the)h(FITS)f
+(\014le.)46 b(Automatic)0 5601 y(datat)m(yp)s(e)28 b(con)m(v)m(ersion)g
+(will)c(b)s(e)j(attempted)h(for)g(n)m(umerical)d(datat)m(yp)s(es)k(if)d
+(the)h(sp)s(eci\014ed)f(datat)m(yp)s(e)i(is)e(di\013eren)m(t)0
+5714 y(from)k(the)g(actual)h(datat)m(yp)s(e)h(of)e(the)h(FITS)e(arra)m
+(y)i(or)f(table)h(column.)p eop
+%%Page: 67 73
+67 72 bop 0 299 a Fg(8.4.)72 b(D)m(A)-8 b(T)g(A)32 b(I/O)f(R)m(OUTINES)
+2650 b Fi(67)0 555 y Fh(1)81 b Fi(W)-8 b(rite)30 b(elemen)m(ts)h(in)m
+(to)f(the)h(primary)d(data)k(arra)m(y)e(or)h(image)f(extension.)382
+771 y Fe(FTPPR[BIJED]\(unit,group,)o(fpi)o(xel,)o(nele)o(men)o(ts,v)o
+(alue)o(s,)41 b(>)48 b(status\))0 987 y Fh(2)81 b Fi(Read)30
+b(elemen)m(ts)i(from)e(the)h(primary)d(data)k(arra)m(y)f(or)g(image)g
+(extension.)41 b(Unde\014ned)29 b(arra)m(y)j(elemen)m(ts)f(will)227
+1100 y(b)s(e)g(returned)f(with)g(a)i(v)-5 b(alue)30 b(=)h(n)m(ullv)-5
+b(al,)30 b(unless)f(n)m(ullv)-5 b(al)29 b(=)i(0)h(in)e(whic)m(h)g(case)
+i(no)f(c)m(hec)m(ks)i(for)e(unde\014ned)227 1213 y(pixels)f(will)e(b)s
+(e)i(p)s(erformed.)42 b(The)30 b(an)m(yf)i(parameter)f(is)f(set)i(to)g
+(true)f(\(=)g(.true.\))43 b(if)30 b(an)m(y)i(of)f(the)g(returned)227
+1326 y(elemen)m(ts)g(w)m(ere)g(unde\014ned.)382 1542
+y Fe(FTGPV[BIJED]\(unit,group,)o(fpi)o(xel,)o(nele)o(men)o(ts,n)o(ullv)
+o(al,)41 b(>)48 b(values,anyf,status\))0 1758 y Fh(3)81
+b Fi(W)-8 b(rite)35 b(elemen)m(ts)h(in)m(to)f(an)g(ASCI)s(I)e(or)i
+(binary)f(table)h(column.)53 b(The)35 b(`felem')g(parameter)h(applies)d
+(only)h(to)227 1871 y(v)m(ector)e(columns)d(in)g(binary)g(tables)h(and)
+g(is)f(ignored)h(when)f(writing)g(to)i(ASCI)s(I)d(tables.)382
+2087 y Fe(FTPCL[SLBIJEDCM]\(unit,co)o(lnu)o(m,fr)o(ow,f)o(ele)o(m,ne)o
+(leme)o(nts)o(,val)o(ues,)41 b(>)47 b(status\))0 2303
+y Fh(4)81 b Fi(Read)22 b(elemen)m(ts)g(from)f(an)g(ASCI)s(I)g(or)g
+(binary)f(table)i(column.)37 b(Unde\014ned)20 b(arra)m(y)i(elemen)m(ts)
+g(will)d(b)s(e)i(returned)227 2416 y(with)31 b(a)i(v)-5
+b(alue)32 b(=)g(n)m(ullv)-5 b(al,)31 b(unless)g(n)m(ullv)-5
+b(al)29 b(=)k(0)f(\(or)h(=)f(')h(')f(for)g(ftgcvs\))i(in)d(whic)m(h)g
+(case)j(no)e(c)m(hec)m(king)h(for)227 2529 y(unde\014ned)23
+b(v)-5 b(alues)24 b(will)e(b)s(e)j(p)s(erformed.)37 b(The)24
+b(ANYF)i(parameter)f(is)f(set)i(to)f(true)g(if)f(an)m(y)h(of)g(the)g
+(returned)227 2642 y(elemen)m(ts)31 b(are)g(unde\014ned.)227
+2785 y(An)m(y)d(column,)g(regardless)f(of)h(it's)g(in)m(trinsic)d
+(datat)m(yp)s(e,)30 b(ma)m(y)e(b)s(e)f(read)h(as)g(a)h(string.)39
+b(It)28 b(should)d(b)s(e)j(noted)227 2898 y(ho)m(w)m(ev)m(er)k(that)f
+(reading)e(a)i(n)m(umeric)e(column)g(as)i(a)g(string)e(is)g(10)j(-)e
+(100)i(times)e(slo)m(w)m(er)g(than)g(reading)g(the)227
+3011 y(same)36 b(column)e(as)i(a)g(n)m(um)m(b)s(er)e(due)g(to)j(the)e
+(large)h(o)m(v)m(erhead)g(in)e(constructing)h(the)h(formatted)g
+(strings.)227 3124 y(The)i(displa)m(y)e(format)i(of)g(the)g(returned)f
+(strings)f(will)f(b)s(e)j(determined)e(b)m(y)i(the)g(TDISPn)f(k)m(eyw)m
+(ord,)j(if)227 3237 y(it)c(exists,)h(otherwise)f(b)m(y)g(the)g(datat)m
+(yp)s(e)h(of)f(the)h(column.)56 b(The)36 b(length)f(of)i(the)f
+(returned)f(strings)g(can)227 3350 y(b)s(e)29 b(determined)e(with)h
+(the)h(ftgcdw)g(routine.)39 b(The)28 b(follo)m(wing)g(TDISPn)f(displa)m
+(y)h(formats)h(are)g(curren)m(tly)227 3463 y(supp)s(orted:)418
+3661 y Fe(Iw.m)142 b(Integer)418 3774 y(Ow.m)g(Octal)47
+b(integer)418 3887 y(Zw.m)142 b(Hexadecimal)45 b(integer)418
+4000 y(Fw.d)142 b(Fixed)47 b(floating)e(point)418 4113
+y(Ew.d)142 b(Exponential)45 b(floating)h(point)418 4226
+y(Dw.d)142 b(Exponential)45 b(floating)h(point)418 4339
+y(Gw.d)142 b(General;)46 b(uses)g(Fw.d)h(if)g(significance)e(not)i
+(lost,)f(else)h(Ew.d)227 4538 y Fi(where)24 b(w)h(is)e(the)i(width)e
+(in)g(c)m(haracters)j(of)f(the)g(displa)m(y)m(ed)e(v)-5
+b(alues,)26 b(m)e(is)g(the)g(minim)m(um)e(n)m(um)m(b)s(er)i(of)g
+(digits)227 4651 y(displa)m(y)m(ed,)29 b(and)g(d)h(is)e(the)j(n)m(um)m
+(b)s(er)d(of)i(digits)e(to)j(the)f(righ)m(t)g(of)g(the)g(decimal.)39
+b(The)29 b(.m)h(\014eld)f(is)g(optional.)382 4867 y Fe
+(FTGCV[SBIJEDCM]\(unit,col)o(num)o(,fro)o(w,fe)o(lem)o(,nel)o(emen)o
+(ts,)o(null)o(val,)41 b(>)1098 4980 y(values,anyf,status\))0
+5196 y Fh(5)81 b Fi(Get)42 b(the)g(table)g(column)e(n)m(um)m(b)s(er)h
+(and)g(full)e(name)j(of)g(the)f(column)g(whose)g(name)h(matc)m(hes)h
+(the)f(input)227 5309 y(template)34 b(string.)47 b(See)33
+b(the)h(`Adv)-5 b(anced)33 b(In)m(terface)h(Routines')e(c)m(hapter)i
+(for)f(a)g(full)e(description)g(of)i(this)227 5422 y(routine.)382
+5638 y Fe(FTGCNN\(unit,casesen,colt)o(emp)o(late)o(,)42
+b(>)47 b(colname,colnum,status\))p eop
+%%Page: 68 74
+68 73 bop 0 299 a Fi(68)1747 b Fg(CHAPTER)30 b(8.)111
+b(BASIC)30 b(INTERF)-10 b(A)m(CE)30 b(R)m(OUTINES)p eop
+%%Page: 69 75
+69 74 bop 0 1225 a Ff(Chapter)65 b(9)0 1687 y Fl(Adv)-13
+b(anced)78 b(In)-6 b(terface)77 b(Subroutines)0 2180
+y Fi(This)30 b(c)m(hapter)i(de\014nes)f(all)f(the)i(a)m(v)-5
+b(ailable)31 b(subroutines)f(in)g(the)i(FITSIO)e(user)h(in)m(terface.)
+45 b(F)-8 b(or)33 b(completeness,)0 2293 y(the)43 b(basic)f
+(subroutines)e(describ)s(ed)g(in)i(the)g(previous)g(c)m(hapter)h(are)g
+(also)f(rep)s(eated)h(here.)77 b(A)43 b(righ)m(t)f(arro)m(w)0
+2406 y(sym)m(b)s(ol)28 b(is)f(used)h(here)h(to)g(separate)h(the)f
+(input)e(parameters)i(from)f(the)h(output)g(parameters)g(in)e(the)i
+(de\014nition)0 2518 y(of)k(eac)m(h)h(subroutine.)46
+b(This)31 b(sym)m(b)s(ol)h(is)g(not)h(actually)g(part)f(of)h(the)h
+(calling)d(sequence.)49 b(An)32 b(alphab)s(etical)f(list)0
+2631 y(and)f(de\014nition)e(of)i(all)g(the)g(parameters)h(is)e(giv)m
+(en)i(at)g(the)f(end)g(of)h(this)e(section.)0 2961 y
+Fd(9.1)135 b(FITS)44 b(File)i(Op)t(en)e(and)h(Close)h(Subroutines:)0
+3197 y Fh(1)81 b Fi(Op)s(en)39 b(an)h(existing)f(FITS)h(\014le)f(with)g
+(readonly)h(or)g(readwrite)g(access.)72 b(FTDOPN)41 b(also)f(mo)m(v)m
+(es)i(to)f(the)227 3310 y(\014rst)30 b(HDU)h(con)m(taining)f
+(signi\014can)m(t)f(data,)j(if)d(no)h(sp)s(eci\014c)f(HDU)i(is)f(sp)s
+(eci\014ed)f(as)h(part)g(of)h(the)f(\014lename.)227 3423
+y(FTTOPN)39 b(and)h(FTIOPN)f(are)h(similar)d(except)k(that)g(they)f
+(will)d(mo)m(v)m(e)k(to)g(the)f(\014rst)f(table)g(HDU)i(or)227
+3536 y(image)31 b(HDU,)g(resp)s(ectiv)m(ely)-8 b(,)31
+b(if)e(a)i(HDU)g(name)f(or)h(n)m(um)m(b)s(er)e(is)g(not)i(sp)s
+(eci\014ed)d(as)j(part)f(of)h(the)f(\014lename.)382 3770
+y Fe(FTOPEN\(unit,filename,rwm)o(ode)o(,)42 b(>)47 b
+(blocksize,status\))382 3883 y(FTDOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))382 3996 y(FTTOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))382 4108 y(FTIOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))0 4343 y Fh(2)81 b Fi(Op)s(en)24 b(an)i(existing)f
+(FITS)g(\014le)g(with)f(readonly)h(or)h(readwrite)f(access)i(and)f(mo)m
+(v)m(e)h(to)f(a)h(follo)m(wing)d(extension,)227 4455
+y(if)37 b(one)h(w)m(as)g(sp)s(eci\014ed)f(as)h(part)f(of)h(the)h
+(\014lename.)62 b(\(e.g.,)42 b('\014lename.\014ts+2')37
+b(or)h('\014lename.\014ts[2]')h(will)227 4568 y(mo)m(v)m(e)f(to)g(the)e
+(3rd)g(HDU)i(in)d(the)i(\014le\).)59 b(Note)37 b(that)h(this)d(routine)
+h(di\013ers)f(from)h(FTOPEN)g(in)f(that)i(it)227 4681
+y(do)s(es)30 b(not)h(ha)m(v)m(e)h(the)e(redundan)m(t)f(blo)s(c)m(ksize)
+h(argumen)m(t.)382 4915 y Fe(FTNOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))0 5149 y Fh(3)81 b Fi(Reop)s(en)38
+b(a)i(FITS)e(\014le)h(that)g(w)m(as)h(previously)d(op)s(ened)h(with)g
+(FTOPEN,)h(FTNOPN,)g(or)h(FTINIT.)e(The)227 5262 y(newunit)e(n)m(um)m
+(b)s(er)g(ma)m(y)j(then)e(b)s(e)g(treated)i(as)f(a)g(separate)g
+(\014le,)h(and)e(one)h(ma)m(y)h(sim)m(ultaneously)c(read)227
+5375 y(or)h(write)f(to)h(2)g(\(or)g(more\))g(di\013eren)m(t)f
+(extensions)g(in)f(the)i(same)g(\014le.)55 b(The)35 b(FTOPEN)g(and)g
+(FTNOPN)227 5488 y(routines)e(\(ab)s(o)m(v)m(e\))i(automatically)e
+(detects)i(cases)g(where)e(a)g(previously)f(op)s(ened)g(\014le)h(is)g
+(b)s(eing)f(op)s(ened)227 5601 y(again,)c(and)f(then)g(in)m(ternally)e
+(call)h(FTREOPEN,)h(so)h(programs)e(should)g(rarely)g(need)h(to)h
+(explicitly)d(call)227 5714 y(this)30 b(routine.)1905
+5942 y(69)p eop
+%%Page: 70 76
+70 75 bop 0 299 a Fi(70)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)334
+555 y Fe(FTREOPEN\(unit,)44 b(>)j(newunit,)f(status\))0
+804 y Fh(4)81 b Fi(Op)s(en)29 b(and)g(initialize)f(a)j(new)f(empt)m(y)g
+(FITS)g(\014le)334 1054 y Fe(FTINIT\(unit,filename,bloc)o(ksi)o(ze,)41
+b(>)48 b(status\))0 1303 y Fh(5)81 b Fi(Create)24 b(a)g(new)f(FITS)g
+(\014le,)h(using)e(a)i(template)g(\014le)e(to)j(de\014ne)d(its)h
+(initial)e(size)j(and)f(structure.)37 b(The)24 b(template)227
+1416 y(ma)m(y)39 b(b)s(e)f(another)h(FITS)e(HDU)i(or)g(an)f(ASCI)s(I)f
+(template)i(\014le.)63 b(If)38 b(the)h(input)d(template)j(\014le)e
+(name)i(is)227 1529 y(blank,)27 b(then)g(this)f(routine)g(b)s(eha)m(v)m
+(es)i(the)f(same)h(as)f(FTINIT.)g(The)f(curren)m(tly)h(supp)s(orted)e
+(format)i(of)h(the)227 1641 y(ASCI)s(I)c(template)i(\014le)f(is)f
+(describ)s(ed)g(under)g(the)i(\014ts)p 2037 1641 28 4
+v 32 w(parse)p 2277 1641 V 33 w(template)f(routine)g(\(in)g(the)g
+(general)h(Utilities)227 1754 y(section\),)31 b(but)f(this)f(ma)m(y)i
+(c)m(hange)h(sligh)m(tly)d(later)h(releases)g(of)h(CFITSIO.)334
+2004 y Fe(FTTPLT\(unit,)45 b(filename,)g(tplfilename,)f(>)k(status\))0
+2253 y Fh(6)81 b Fi(Flush)32 b(in)m(ternal)g(bu\013ers)h(of)h(data)g
+(to)g(the)g(output)g(FITS)f(\014le)g(previously)e(op)s(ened)i(with)f
+(ftop)s(en)i(or)f(ftinit.)227 2366 y(The)j(routine)g(usually)e(nev)m
+(er)j(needs)f(to)i(b)s(e)e(called,)h(but)f(doing)g(so)h(will)d(ensure)i
+(that)h(if)e(the)i(program)227 2479 y(subsequen)m(tly)29
+b(ab)s(orts,)h(then)h(the)f(FITS)g(\014le)f(will)f(ha)m(v)m(e)k(at)f
+(least)f(b)s(een)g(closed)g(prop)s(erly)-8 b(.)382 2728
+y Fe(FTFLUS\(unit,)44 b(>)k(status\))0 2977 y Fh(7)81
+b Fi(Close)30 b(a)g(FITS)g(\014le)f(previously)f(op)s(ened)i(with)f
+(ftop)s(en)h(or)g(ftinit)382 3226 y Fe(FTCLOS\(unit,)44
+b(>)k(status\))0 3475 y Fh(8)81 b Fi(Close)33 b(and)g(DELETE)g(a)h
+(FITS)f(\014le)g(previously)e(op)s(ened)i(with)f(ftop)s(en)h(or)h
+(ftinit.)49 b(This)32 b(routine)g(ma)m(y)j(b)s(e)227
+3588 y(useful)28 b(in)h(cases)h(where)g(a)g(FITS)f(\014le)f(is)h
+(created,)i(but)e(an)h(error)f(o)s(ccurs)h(whic)m(h)e(prev)m(en)m(ts)j
+(the)e(complete)227 3701 y(\014le)h(from)g(b)s(eing)f(written.)382
+3950 y Fe(FTDELT\(unit,)44 b(>)k(status\))0 4199 y Fh(9)81
+b Fi(Get)31 b(the)g(v)-5 b(alue)30 b(of)g(an)g(un)m(used)g(I/O)g(unit)f
+(n)m(um)m(b)s(er)g(whic)m(h)g(ma)m(y)i(then)f(b)s(e)g(used)g(as)g
+(input)f(to)i(FTOPEN)f(or)227 4312 y(FTINIT.)36 b(This)e(routine)h
+(searc)m(hes)i(for)f(the)g(\014rst)f(un)m(used)g(unit)f(n)m(um)m(b)s
+(er)h(in)f(the)j(range)f(from)f(with)g(99)227 4425 y(do)m(wn)e(to)h
+(50.)50 b(This)31 b(routine)h(just)h(k)m(eeps)h(an)f(in)m(ternal)f
+(list)f(of)j(the)f(allo)s(cated)g(unit)f(n)m(um)m(b)s(ers)g(and)g(do)s
+(es)227 4538 y(not)26 b(ph)m(ysically)d(c)m(hec)m(k)j(that)g(the)g(F)-8
+b(ortran)25 b(unit)f(is)g(a)m(v)-5 b(ailable)25 b(\(to)h(b)s(e)f
+(compatible)f(with)g(the)h(SPP)f(v)m(ersion)227 4651
+y(of)35 b(FITSIO\).)g(Th)m(us)f(users)g(m)m(ust)h(not)g(indep)s(enden)m
+(tly)d(allo)s(cate)j(an)m(y)h(unit)d(n)m(um)m(b)s(ers)h(in)g(the)h
+(range)g(50)227 4764 y(-)42 b(99)g(if)e(this)g(routine)g(is)g(also)h
+(to)h(b)s(e)f(used)f(in)g(the)h(same)h(program.)73 b(This)39
+b(routine)h(is)g(pro)m(vided)g(for)227 4877 y(con)m(v)m(enience)33
+b(only)-8 b(,)31 b(and)f(it)h(is)f(not)i(required)d(that)j(the)f(unit)f
+(n)m(um)m(b)s(ers)g(used)g(b)m(y)h(FITSIO)f(b)s(e)h(allo)s(cated)227
+4990 y(b)m(y)g(this)e(routine.)382 5239 y Fe(FTGIOU\()46
+b(>)h(iounit,)f(status\))0 5488 y Fh(10)g Fi(F)-8 b(ree)34
+b(\(deallo)s(cate\))g(an)f(I/O)g(unit)e(n)m(um)m(b)s(er)h(whic)m(h)f(w)
+m(as)i(previously)e(allo)s(cated)i(with)f(FTGIOU.)h(All)e(pre-)227
+5601 y(viously)26 b(allo)s(cated)i(unit)e(n)m(um)m(b)s(ers)g(ma)m(y)i
+(b)s(e)f(deallo)s(cated)h(at)g(once)h(b)m(y)e(calling)f(FTFIOU)i(with)e
+(iounit)g(=)227 5714 y(-1.)p eop
+%%Page: 71 77
+71 76 bop 0 299 a Fg(9.1.)72 b(FITS)30 b(FILE)g(OPEN)g(AND)h(CLOSE)e
+(SUBR)m(OUTINES:)1561 b Fi(71)382 555 y Fe(FTFIOU\(iounit,)44
+b(>)j(status\))0 788 y Fh(11)f Fi(Return)30 b(the)h(F)-8
+b(ortran)31 b(unit)f(n)m(um)m(b)s(er)f(that)i(corresp)s(onds)f(to)h
+(the)g(C)g(\014ts\014le)e(p)s(oin)m(ter)h(v)-5 b(alue,)31
+b(or)f(vice)h(v)m(ersa.)227 901 y(These)37 b(2)h(C)f(routines)f(ma)m(y)
+h(b)s(e)g(useful)e(in)h(mixed)g(language)i(programs)f(where)f(b)s(oth)h
+(C)g(and)f(F)-8 b(ortran)227 1014 y(subroutines)24 b(need)h(to)i
+(access)g(the)f(same)g(\014le.)39 b(F)-8 b(or)26 b(example,)h(if)e(a)h
+(FITS)f(\014le)g(is)g(op)s(ened)g(with)f(unit)g(12)j(b)m(y)227
+1127 y(a)k(F)-8 b(ortran)31 b(subroutine,)e(then)h(a)h(C)f(routine)g
+(within)e(the)i(same)h(program)g(could)e(get)j(the)e(\014t\014le)g(p)s
+(oin)m(ter)227 1240 y(v)-5 b(alue)38 b(to)g(access)h(the)f(same)h
+(\014le)e(b)m(y)g(calling)g('fptr)g(=)h(CUnit2FITS\(12\)'.)63
+b(These)38 b(routines)f(return)g(a)227 1353 y(v)-5 b(alue)30
+b(of)h(zero)g(if)e(an)h(error)g(o)s(ccurs.)286 1586 y
+Fe(int)334 b(CFITS2Unit\(fitsfile)42 b(*ptr\);)286 1698
+y(fitsfile*)k(CUnit2FITS\(int)e(unit\);)0 1931 y Fh(11)i
+Fi(P)m(arse)32 b(the)g(input)d(\014lename)i(and)g(return)f(the)i(HDU)g
+(n)m(um)m(b)s(er)e(that)i(w)m(ould)e(b)s(e)h(mo)m(v)m(ed)i(to)f(if)e
+(the)i(\014le)e(w)m(ere)227 2044 y(op)s(ened)j(with)f(FTNOPN.)h(The)f
+(returned)g(HDU)i(n)m(um)m(b)s(er)e(b)s(egins)g(with)g(1)h(for)g(the)g
+(primary)f(arra)m(y)-8 b(,)35 b(so)227 2157 y(for)d(example,)f(if)g
+(the)h(input)e(\014lename)g(=)i(`m)m(y\014le.\014ts[2]')g(then)f(hdun)m
+(um)e(=)j(3)g(will)d(b)s(e)i(returned.)43 b(FIT-)227
+2270 y(SIO)35 b(do)s(es)h(not)g(op)s(en)g(the)g(\014le)f(to)i(c)m(hec)m
+(k)h(if)d(the)h(extension)g(actually)g(exists)f(if)h(an)f(extension)h
+(n)m(um)m(b)s(er)227 2383 y(is)42 b(sp)s(eci\014ed.)74
+b(If)42 b(an)g(extension)g(*name*)h(is)e(included)f(in)h(the)h(\014le)f
+(name)i(sp)s(eci\014cation)e(\(e.g.)77 b(`m)m(y-)227
+2496 y(\014le.\014ts[EVENTS]')29 b(then)g(this)g(routine)g(will)e(ha)m
+(v)m(e)k(to)f(op)s(en)f(the)h(FITS)f(\014le)g(and)g(lo)s(ok)g(for)h
+(the)g(p)s(osition)227 2609 y(of)38 b(the)h(named)e(extension,)j(then)e
+(close)g(\014le)f(again.)63 b(This)37 b(is)g(not)h(p)s(ossible)d(if)i
+(the)h(\014le)f(is)g(b)s(eing)g(read)227 2722 y(from)f(the)g(stdin)e
+(stream,)k(and)d(an)h(error)f(will)e(b)s(e)j(returned)e(in)h(this)g
+(case.)58 b(If)35 b(the)h(\014lename)f(do)s(es)h(not)227
+2835 y(sp)s(ecify)28 b(an)h(explicit)e(extension)i(\(e.g.)42
+b('m)m(y\014le.\014ts'\))29 b(then)g(hdun)m(um)e(=)h(-99)j(will)26
+b(b)s(e)j(returned,)f(whic)m(h)g(is)227 2948 y(functionally)j(equiv)-5
+b(alen)m(t)33 b(to)i(hdun)m(um)c(=)i(1.)50 b(This)32
+b(routine)g(is)h(mainly)f(used)g(for)i(bac)m(kw)m(ard)g(compati-)227
+3060 y(bilit)m(y)d(in)g(the)h(fto)s(ols)g(soft)m(w)m(are)i(pac)m(k)-5
+b(age)34 b(and)e(is)f(not)h(recommended)g(for)g(general)h(use.)46
+b(It)32 b(is)g(generally)227 3173 y(b)s(etter)j(and)g(more)g(e\016cien)
+m(t)g(to)h(\014rst)e(op)s(en)g(the)h(FITS)f(\014le)g(with)g(FTNOPN,)h
+(then)g(use)f(FTGHDN)i(to)227 3286 y(determine)29 b(whic)m(h)g(HDU)h
+(in)e(the)i(\014le)f(has)h(b)s(een)f(op)s(ened,)g(rather)g(than)h
+(calling)e(FTEXTN)i(follo)m(w)m(ed)f(b)m(y)227 3399 y(a)i(call)f(to)h
+(FTNOPN.)382 3632 y Fe(FTEXTN\(filename,)43 b(>)48 b(nhdu,)e(status\))0
+3865 y Fh(12)g Fi(Return)30 b(the)g(name)h(of)f(the)h(op)s(ened)e(FITS)
+h(\014le.)382 4098 y Fe(FTFLNM\(unit,)44 b(>)k(filename,)d(status\))0
+4331 y Fh(13)h Fi(Return)30 b(the)g(I/O)g(mo)s(de)g(of)h(the)g(op)s(en)
+e(FITS)h(\014le)f(\(READONL)-8 b(Y)32 b(=)e(0,)h(READ)m(WRITE)g(=)f
+(1\).)382 4564 y Fe(FTFLMD\(unit,)44 b(>)k(iomode,)e(status\))0
+4796 y Fh(14)g Fi(Return)30 b(the)g(\014le)g(t)m(yp)s(e)g(of)h(the)f
+(op)s(ened)g(FITS)g(\014le)f(\(e.g.)42 b('\014le://',)31
+b('ftp://',)h(etc.\).)382 5029 y Fe(FTURLT\(unit,)44
+b(>)k(urltype,)d(status\))0 5262 y Fh(15)h Fi(P)m(arse)27
+b(the)f(input)e(\014lename)i(or)g(URL)g(in)m(to)g(its)g(comp)s(onen)m
+(t)g(parts:)39 b(the)26 b(\014le)f(t)m(yp)s(e)i(\(\014le://,)g(ftp://,)
+h(h)m(ttp://,)227 5375 y(etc\),)34 b(the)e(base)g(input)d(\014le)i
+(name,)h(the)g(name)g(of)g(the)g(output)f(\014le)g(that)h(the)g(input)e
+(\014le)g(is)h(to)h(b)s(e)f(copied)227 5488 y(to)38 b(prior)d(to)i(op)s
+(ening,)g(the)g(HDU)g(or)f(extension)h(sp)s(eci\014cation,)g(the)g
+(\014ltering)d(sp)s(eci\014er,)j(the)g(binning)227 5601
+y(sp)s(eci\014er,)d(and)f(the)i(column)e(sp)s(eci\014er.)50
+b(Blank)33 b(strings)g(will)f(b)s(e)h(returned)g(for)h(an)m(y)g(comp)s
+(onen)m(ts)g(that)227 5714 y(are)d(not)g(presen)m(t)f(in)f(the)i(input)
+d(\014le)i(name.)p eop
+%%Page: 72 78
+72 77 bop 0 299 a Fi(72)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)334
+555 y Fe(FTIURL\(filename,)43 b(>)48 b(filetype,)d(infile,)h(outfile,)g
+(extspec,)f(filter,)716 668 y(binspec,)g(colspec,)h(status\))0
+913 y Fh(16)g Fi(P)m(arse)e(the)g(input)e(\014le)h(name)g(and)g(return)
+g(the)h(ro)s(ot)g(\014le)e(name.)81 b(The)43 b(ro)s(ot)h(name)g
+(includes)d(the)j(\014le)227 1025 y(t)m(yp)s(e)35 b(if)f(sp)s
+(eci\014ed,)h(\(e.g.)56 b('ftp://')37 b(or)e('h)m(ttp://'\))i(and)d
+(the)h(full)e(path)i(name,)h(to)g(the)f(exten)m(t)i(that)e(it)g(is)227
+1138 y(sp)s(eci\014ed)25 b(in)f(the)j(input)d(\014lename.)38
+b(It)26 b(do)s(es)g(not)g(include)e(the)i(HDU)h(name)f(or)g(n)m(um)m(b)
+s(er,)g(or)g(an)m(y)h(\014ltering)227 1251 y(sp)s(eci\014cations.)334
+1496 y Fe(FTRTNM\(filename,)43 b(>)48 b(rootname,)d(status\))0
+1740 y Fh(16)h Fi(T)-8 b(est)36 b(if)f(the)h(input)e(\014le)h(or)g(a)i
+(compressed)e(v)m(ersion)g(of)h(the)g(\014le)f(\(with)g(a)h(.gz,)i(.Z,)
+e(.z,)i(or)e(.zip)f(extension\))227 1853 y(exists)j(on)g(disk.)62
+b(The)37 b(returned)g(v)-5 b(alue)37 b(of)h(the)h('exists')f(parameter)
+g(will)d(ha)m(v)m(e)40 b(1)e(of)g(the)g(4)g(follo)m(wing)227
+1966 y(v)-5 b(alues:)370 2198 y Fe(2:)95 b(the)47 b(file)g(does)g(not)f
+(exist,)h(but)f(a)i(compressed)d(version)h(does)g(exist)370
+2311 y(1:)95 b(the)47 b(disk)g(file)g(does)f(exist)370
+2424 y(0:)95 b(neither)46 b(the)h(file)g(nor)g(a)g(compressed)e
+(version)h(of)h(the)g(file)g(exist)323 2537 y(-1:)94
+b(the)47 b(input)g(file)f(name)h(is)g(not)g(a)g(disk)g(file)g(\(could)f
+(be)h(a)g(ftp,)g(http,)561 2650 y(smem,)g(or)g(mem)g(file,)f(or)h(a)h
+(file)e(piped)h(in)g(on)g(the)g(STDIN)f(stream\))286
+2894 y(FTEXIST\(filename,)d(>)48 b(exists,)e(status\);)0
+3225 y Fd(9.2)135 b(HDU-Lev)l(el)47 b(Op)t(erations)0
+3475 y Fi(When)30 b(a)h(FITS)f(\014le)f(is)h(\014rst)f(op)s(ened)h(or)g
+(created,)i(the)f(in)m(ternal)e(bu\013ers)g(in)g(FITSIO)g
+(automatically)i(p)s(oin)m(t)e(to)0 3588 y(the)h(\014rst)g(HDU)h(in)e
+(the)h(\014le.)40 b(The)29 b(follo)m(wing)g(routines)g(ma)m(y)i(b)s(e)e
+(used)h(to)h(mo)m(v)m(e)g(to)g(another)f(HDU)h(in)e(the)i(\014le.)0
+3701 y(Note)j(that)f(the)g(HDU)g(n)m(um)m(b)s(ering)e(con)m(v)m(en)m
+(tion)i(used)f(in)f(FITSIO)h(denotes)h(the)f(primary)f(arra)m(y)i(as)g
+(the)g(\014rst)0 3814 y(HDU,)e(the)g(\014rst)f(extension)g(in)f(a)h
+(FITS)g(\014le)f(is)h(the)g(second)h(HDU,)g(and)f(so)h(on.)0
+4059 y Fh(1)81 b Fi(Mo)m(v)m(e)32 b(to)f(a)g(sp)s(eci\014ed)e
+(\(absolute\))h(HDU)h(in)f(the)g(FITS)g(\014le)f(\(nhdu)g(=)h(1)h(for)f
+(the)g(FITS)g(primary)e(arra)m(y\))382 4303 y Fe(FTMAHD\(unit,nhdu,)43
+b(>)k(hdutype,status\))0 4548 y Fh(2)81 b Fi(Mo)m(v)m(e)32
+b(to)f(a)g(new)f(\(existing\))g(HDU)h(forw)m(ard)f(or)g(bac)m(kw)m
+(ards)h(relativ)m(e)f(to)h(the)g(CHDU)382 4792 y Fe
+(FTMRHD\(unit,nmove,)43 b(>)k(hdutype,status\))0 5036
+y Fh(3)81 b Fi(Mo)m(v)m(e)22 b(to)f(the)f(\(\014rst\))h(HDU)g(whic)m(h)
+e(has)h(the)g(sp)s(eci\014ed)f(extension)h(t)m(yp)s(e)g(and)g(EXTNAME)g
+(\(or)h(HDUNAME\))227 5149 y(and)32 b(EXTVER)g(k)m(eyw)m(ord)h(v)-5
+b(alues.)47 b(The)32 b(hdut)m(yp)s(e)f(parameter)i(ma)m(y)h(ha)m(v)m(e)
+f(a)g(v)-5 b(alue)32 b(of)h(IMA)m(GE)p 3640 5149 28 4
+v 34 w(HDU,)227 5262 y(ASCI)s(I)p 486 5262 V 32 w(TBL,)f(BINAR)-8
+b(Y)p 1122 5262 V 34 w(TBL,)32 b(or)h(ANY)p 1718 5262
+V 33 w(HDU)g(where)f(ANY)p 2458 5262 V 33 w(HDU)i(means)e(that)h(only)f
+(the)g(extname)227 5375 y(and)k(extv)m(er)h(v)-5 b(alues)35
+b(will)e(b)s(e)i(used)g(to)i(lo)s(cate)g(the)f(correct)h(extension.)57
+b(If)35 b(the)h(input)e(v)-5 b(alue)36 b(of)g(extv)m(er)227
+5488 y(is)c(0)h(then)f(the)g(EXTVER)h(k)m(eyw)m(ord)g(is)e(ignored)h
+(and)g(the)g(\014rst)g(HDU)h(with)e(a)i(matc)m(hing)g(EXTNAME)227
+5601 y(\(or)j(HDUNAME\))h(k)m(eyw)m(ord)f(will)c(b)s(e)j(found.)55
+b(If)34 b(no)i(matc)m(hing)f(HDU)h(is)f(found)f(in)g(the)h(\014le)g
+(then)g(the)227 5714 y(curren)m(t)27 b(HDU)g(will)d(remain)h(unc)m
+(hanged)i(and)f(a)h(status)g(=)f(BAD)p 2501 5714 V 34
+w(HDU)p 2740 5714 V 33 w(NUM)h(\(301\))i(will)24 b(b)s(e)i(returned.)p
+eop
+%%Page: 73 79
+73 78 bop 0 299 a Fg(9.2.)72 b(HDU-LEVEL)31 b(OPERA)-8
+b(TIONS)2414 b Fi(73)382 555 y Fe(FTMNHD\(unit,)44 b(hdutype,)i
+(extname,)f(extver,)h(>)i(status\))0 804 y Fh(4)81 b
+Fi(Get)31 b(the)g(n)m(um)m(b)s(er)e(of)h(the)h(curren)m(t)f(HDU)h(in)e
+(the)i(FITS)e(\014le)h(\(primary)f(arra)m(y)h(=)g(1\))382
+1054 y Fe(FTGHDN\(unit,)44 b(>)k(nhdu\))0 1303 y Fh(5)81
+b Fi(Return)39 b(the)i(t)m(yp)s(e)g(of)g(the)g(curren)m(t)f(HDU)i(in)d
+(the)i(FITS)f(\014le.)70 b(The)41 b(p)s(ossible)d(v)-5
+b(alues)40 b(for)g(hdut)m(yp)s(e)g(are)227 1416 y(IMA)m(GE)p
+546 1416 28 4 v 34 w(HDU)31 b(\(0\),)h(ASCI)s(I)p 1242
+1416 V 31 w(TBL)e(\(1\),)i(or)e(BINAR)-8 b(Y)p 2133 1416
+V 34 w(TBL)30 b(\(2\).)382 1665 y Fe(FTGHDT\(unit,)44
+b(>)k(hdutype,)d(status\))0 1914 y Fh(6)81 b Fi(Return)29
+b(the)i(total)g(n)m(um)m(b)s(er)e(of)i(HDUs)f(in)g(the)g(FITS)g
+(\014le.)40 b(The)29 b(CHDU)i(remains)e(unc)m(hanged.)382
+2163 y Fe(FTTHDU\(unit,)44 b(>)k(hdunum,)e(status\))0
+2412 y Fh(7)81 b Fi(Create)36 b(\(app)s(end\))e(a)h(new)g(empt)m(y)g
+(HDU)h(follo)m(wing)e(the)h(last)g(extension)g(that)h(has)f(b)s(een)f
+(previously)f(ac-)227 2525 y(cessed)41 b(b)m(y)f(the)g(program.)70
+b(This)39 b(will)e(o)m(v)m(erwrite)k(an)m(y)g(extensions)f(in)e(an)j
+(existing)e(FITS)g(\014le)h(if)f(the)227 2638 y(program)31
+b(has)g(not)g(already)g(mo)m(v)m(ed)h(to)f(that)h(\(or)f(a)h(later\))f
+(extension)g(using)e(the)i(FTMAHD)h(or)f(FTM-)227 2751
+y(RHD)24 b(routines.)37 b(F)-8 b(or)25 b(example,)f(if)f(an)g(existing)
+f(FITS)h(\014le)f(con)m(tains)i(a)g(primary)d(arra)m(y)j(and)f(5)g
+(extensions)227 2864 y(and)31 b(a)h(program)f(\(1\))h(op)s(ens)f(the)g
+(FITS)g(\014le,)g(\(2\))h(mo)m(v)m(es)h(to)f(extension)f(4,)h(\(3\))g
+(mo)m(v)m(es)h(bac)m(k)f(to)g(the)f(pri-)227 2977 y(mary)36
+b(arra)m(y)-8 b(,)38 b(and)e(\(4\))h(then)e(calls)g(FTCRHD,)h(then)g
+(the)g(new)g(extension)f(will)e(b)s(e)j(written)e(follo)m(wing)227
+3090 y(the)d(4th)f(extension,)h(o)m(v)m(erwriting)f(the)g(existing)f
+(5th)i(extension.)382 3339 y Fe(FTCRHD\(unit,)44 b(>)k(status\))0
+3588 y Fh(8)81 b Fi(Insert)41 b(a)h(new)f(IMA)m(GE)i(extension)f
+(immediately)e(follo)m(wing)g(the)i(CHDU.)g(An)m(y)g(follo)m(wing)e
+(extensions)227 3701 y(will)c(b)s(e)i(shifted)f(do)m(wn)h(to)h(mak)m(e)
+g(ro)s(om)g(for)f(the)g(new)g(extension.)65 b(If)38 b(there)h(are)f(no)
+h(other)f(follo)m(wing)227 3814 y(extensions)29 b(then)g(the)h(new)e
+(image)i(extension)f(will)e(simply)f(b)s(e)j(app)s(ended)f(to)i(the)f
+(end)g(of)g(the)h(\014le.)39 b(The)227 3927 y(new)30
+b(extension)g(will)e(b)s(ecome)j(the)f(CHDU.)382 4176
+y Fe(FTIIMG\(unit,bitpix,naxis)o(,na)o(xes,)41 b(>)48
+b(status\))0 4425 y Fh(9)81 b Fi(Insert)30 b(a)i(new)f(ASCI)s(I)f(T)-8
+b(ABLE)31 b(extension)g(immediately)f(follo)m(wing)f(the)j(CHDU.)g(An)m
+(y)f(follo)m(wing)f(exten-)227 4538 y(sions)25 b(will)e(b)s(e)i
+(shifted)f(do)m(wn)h(to)h(mak)m(e)h(ro)s(om)e(for)h(the)f(new)g
+(extension.)39 b(If)25 b(there)h(are)g(no)g(other)f(follo)m(wing)227
+4651 y(extensions)31 b(then)g(the)h(new)f(table)g(extension)g(will)e
+(simply)g(b)s(e)i(app)s(ended)f(to)i(the)f(end)g(of)h(the)f(\014le.)43
+b(The)227 4764 y(new)30 b(extension)g(will)e(b)s(ecome)j(the)f(CHDU.)
+382 5013 y Fe(FTITAB\(unit,rowlen,nrows)o(,tf)o(ield)o(s,tt)o(ype)o
+(,tbc)o(ol,t)o(for)o(m,tu)o(nit,)o(ext)o(name)o(,)42
+b(>)716 5126 y(status\))0 5375 y Fh(10)k Fi(Insert)25
+b(a)h(new)f(binary)e(table)j(extension)f(immediately)e(follo)m(wing)h
+(the)i(CHDU.)g(An)m(y)g(follo)m(wing)d(extensions)227
+5488 y(will)36 b(b)s(e)i(shifted)f(do)m(wn)h(to)h(mak)m(e)g(ro)s(om)g
+(for)f(the)g(new)g(extension.)65 b(If)38 b(there)h(are)f(no)h(other)f
+(follo)m(wing)227 5601 y(extensions)e(then)h(the)f(new)g(bin)m(table)f
+(extension)i(will)d(simply)g(b)s(e)i(app)s(ended)e(to)k(the)e(end)g(of)
+h(the)g(\014le.)227 5714 y(The)30 b(new)g(extension)g(will)e(b)s(ecome)
+j(the)f(CHDU.)p eop
+%%Page: 74 80
+74 79 bop 0 299 a Fi(74)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)382
+555 y Fe(FTIBIN\(unit,nrows,tfield)o(s,t)o(type)o(,tfo)o(rm,)o(tuni)o
+(t,ex)o(tna)o(me,v)o(arid)o(at)41 b(>)48 b(status\))0
+777 y Fh(11)e Fi(Resize)25 b(an)f(image)h(b)m(y)f(mo)s(di\014ng)e(the)j
+(size,)h(dimensions,)d(and/or)h(datat)m(yp)s(e)h(of)g(the)g(curren)m(t)
+f(primary)e(arra)m(y)227 890 y(or)29 b(image)h(extension.)39
+b(If)29 b(the)g(new)g(image,)h(as)f(sp)s(eci\014ed)e(b)m(y)i(the)g
+(input)e(argumen)m(ts,)j(is)e(larger)h(than)g(the)227
+1003 y(curren)m(t)34 b(existing)f(image)h(in)f(the)h(FITS)f(\014le)g
+(then)g(zero)i(\014ll)d(data)j(will)c(b)s(e)i(inserted)g(at)h(the)g
+(end)g(of)g(the)227 1116 y(curren)m(t)25 b(image)g(and)f(an)m(y)i
+(follo)m(wing)d(extensions)i(will)d(b)s(e)i(mo)m(v)m(ed)i(further)e
+(bac)m(k)h(in)f(the)h(\014le.)38 b(Similarly)-8 b(,)23
+b(if)227 1229 y(the)28 b(new)e(image)i(is)e(smaller)g(than)h(the)g
+(curren)m(t)g(image)g(then)g(an)m(y)h(follo)m(wing)e(extensions)g(will)
+f(b)s(e)h(shifted)227 1342 y(up)32 b(to)m(w)m(ards)i(the)g(b)s
+(eginning)c(of)j(the)h(FITS)e(\014le)g(and)h(the)g(image)g(data)h(will)
+d(b)s(e)h(truncated)h(to)h(the)f(new)227 1455 y(size.)40
+b(This)24 b(routine)h(rewrites)h(the)g(BITPIX,)h(NAXIS,)f(and)g(NAXISn)
+g(k)m(eyw)m(ords)g(with)f(the)i(appropriate)227 1567
+y(v)-5 b(alues)30 b(for)g(new)g(image.)382 1789 y Fe
+(FTRSIM\(unit,bitpix,naxis)o(,na)o(xes,)o(stat)o(us\))0
+2011 y Fh(12)46 b Fi(Delete)33 b(the)g(CHDU)g(in)e(the)h(FITS)f
+(\014le.)46 b(An)m(y)32 b(follo)m(wing)f(HDUs)i(will)d(b)s(e)h(shifted)
+g(forw)m(ard)h(in)f(the)h(\014le,)g(to)227 2124 y(\014ll)k(in)g(the)h
+(gap)h(created)g(b)m(y)g(the)f(deleted)g(HDU.)i(In)d(the)i(case)g(of)g
+(deleting)e(the)i(primary)d(arra)m(y)j(\(the)227 2237
+y(\014rst)30 b(HDU)h(in)e(the)i(\014le\))f(then)g(the)h(curren)m(t)f
+(primary)e(arra)m(y)j(will)d(b)s(e)i(replace)g(b)m(y)h(a)g(n)m(ull)d
+(primary)g(arra)m(y)227 2350 y(con)m(taining)j(the)h(minim)m(um)c(set)k
+(of)g(required)d(k)m(eyw)m(ords)j(and)e(no)i(data.)44
+b(If)31 b(there)g(are)h(more)f(extensions)227 2463 y(in)e(the)h(\014le)
+f(follo)m(wing)g(the)h(one)g(that)h(is)e(deleted,)h(then)g(the)g(the)g
+(CHDU)h(will)c(b)s(e)j(rede\014ned)e(to)j(p)s(oin)m(t)e(to)227
+2576 y(the)e(follo)m(wing)e(extension.)40 b(If)26 b(there)h(are)g(no)g
+(follo)m(wing)e(extensions)h(then)h(the)g(CHDU)g(will)d(b)s(e)i
+(rede\014ned)227 2689 y(to)35 b(p)s(oin)m(t)e(to)i(the)f(previous)e
+(HDU.)j(The)e(output)h(HDUTYPE)g(parameter)h(indicates)d(the)j(t)m(yp)s
+(e)f(of)g(the)227 2802 y(new)c(CHDU)h(after)g(the)f(previous)f(CHDU)i
+(has)f(b)s(een)g(deleted.)382 3024 y Fe(FTDHDU\(unit,)44
+b(>)k(hdutype,status\))0 3245 y Fh(13)e Fi(Cop)m(y)36
+b(all)f(or)h(part)g(of)g(the)g(input)e(FITS)h(\014le)g(and)h(app)s(end)
+e(it)h(to)i(the)f(end)g(of)g(the)g(output)g(FITS)f(\014le.)56
+b(If)227 3358 y('previous')27 b(is)g(true)h(\(not)g(0\),)i(then)d(an)m
+(y)h(HDUs)h(preceding)e(the)h(curren)m(t)f(HDU)i(in)d(the)i(input)e
+(\014le)h(will)f(b)s(e)227 3471 y(copied)33 b(to)h(the)g(output)f
+(\014le.)50 b(Similarly)-8 b(,)31 b('curren)m(t')j(and)e('follo)m
+(wing')h(determine)g(whether)f(the)i(curren)m(t)227 3584
+y(HDU,)g(and/or)e(an)m(y)h(follo)m(wing)e(HDUs)i(in)e(the)h(input)f
+(\014le)g(will)f(b)s(e)i(copied)g(to)h(the)f(output)g(\014le.)46
+b(If)32 b(all)g(3)227 3697 y(parameters)j(are)h(true,)g(then)e(the)h
+(en)m(tire)g(input)e(\014le)h(will)e(b)s(e)i(copied.)54
+b(On)33 b(return,)j(the)f(curren)m(t)f(HDU)227 3810 y(in)29
+b(the)g(input)f(\014le)h(will)e(b)s(e)i(unc)m(hanged,)h(and)f(the)h
+(last)f(copied)g(HDU)i(will)c(b)s(e)i(the)h(curren)m(t)f(HDU)h(in)f
+(the)227 3923 y(output)h(\014le.)382 4145 y Fe(FTCPFL\(iunit,)44
+b(ounit,)i(previous,)f(current,)h(following,)f(>)i(status\))0
+4367 y Fh(14)f Fi(Cop)m(y)35 b(the)f(en)m(tire)h(CHDU)g(from)f(the)g
+(FITS)g(\014le)g(asso)s(ciated)h(with)e(IUNIT)h(to)i(the)e(CHDU)h(of)g
+(the)g(FITS)227 4480 y(\014le)f(asso)s(ciated)h(with)e(OUNIT.)h(The)g
+(output)g(HDU)h(m)m(ust)f(b)s(e)g(empt)m(y)h(and)e(not)i(already)f(con)
+m(tain)h(an)m(y)227 4593 y(k)m(eyw)m(ords.)41 b(Space)29
+b(will)d(b)s(e)j(reserv)m(ed)g(for)g(MOREKEYS)f(additional)e(k)m(eyw)m
+(ords)k(in)d(the)j(output)e(header)227 4706 y(if)i(there)g(is)g(not)g
+(already)g(enough)g(space.)382 4927 y Fe(FTCOPY\(iunit,ounit,morek)o
+(eys)o(,)42 b(>)47 b(status\))0 5149 y Fh(15)f Fi(Cop)m(y)27
+b(the)h(header)f(\(and)g(not)g(the)g(data\))i(from)d(the)i(CHDU)g(asso)
+s(ciated)f(with)f(in)m(unit)f(to)j(the)f(CHDU)h(asso-)227
+5262 y(ciated)e(with)e(outunit.)38 b(If)25 b(the)g(curren)m(t)h(output)
+f(HDU)h(is)e(not)i(completely)f(empt)m(y)-8 b(,)27 b(then)e(the)h(CHDU)
+g(will)227 5375 y(b)s(e)e(closed)h(and)f(a)i(new)e(HDU)h(will)e(b)s(e)h
+(app)s(ended)f(to)j(the)f(output)f(\014le.)38 b(This)23
+b(routine)h(will)e(automatically)227 5488 y(transform)31
+b(the)g(necessary)h(k)m(eyw)m(ords)f(when)g(cop)m(ying)g(a)g(primary)f
+(arra)m(y)i(to)f(and)g(image)h(extension,)f(or)227 5601
+y(an)c(image)g(extension)f(to)h(a)h(primary)c(arra)m(y)-8
+b(.)41 b(An)26 b(empt)m(y)h(output)f(data)i(unit)d(will)f(b)s(e)i
+(created)i(\(all)e(v)-5 b(alues)227 5714 y(=)30 b(0\).)p
+eop
+%%Page: 75 81
+75 80 bop 0 299 a Fg(9.3.)72 b(DEFINE)31 b(OR)f(REDEFINE)h(THE)f(STR)m
+(UCTURE)f(OF)h(THE)g(CHDU)1042 b Fi(75)382 555 y Fe(FTCPHD\(inunit,)44
+b(outunit,)h(>)j(status\))0 819 y Fh(16)e Fi(Cop)m(y)d(just)g(the)g
+(data)h(from)f(the)g(CHDU)h(asso)s(ciated)f(with)f(IUNIT)h(to)h(the)f
+(CHDU)h(asso)s(ciated)f(with)227 932 y(OUNIT.)26 b(This)e(will)f(o)m(v)
+m(erwrite)j(an)m(y)g(data)g(previously)e(in)g(the)i(OUNIT)f(CHDU.)h
+(This)e(lo)m(w)i(lev)m(el)f(routine)227 1045 y(is)h(used)f(b)m(y)i
+(FTCOPY,)f(but)g(it)f(ma)m(y)j(also)e(b)s(e)g(useful)e(in)i(certain)g
+(application)f(programs)h(whic)m(h)f(w)m(an)m(t)i(to)227
+1158 y(cop)m(y)j(the)f(data)h(from)f(one)g(FITS)f(\014le)g(to)i
+(another)f(but)g(also)g(w)m(an)m(t)h(to)g(mo)s(dify)d(the)i(header)g(k)
+m(eyw)m(ords)g(in)227 1271 y(the)j(pro)s(cess.)44 b(all)31
+b(the)h(required)e(header)h(k)m(eyw)m(ords)h(m)m(ust)g(b)s(e)f(written)
+g(to)h(the)g(OUNIT)f(CHDU)h(b)s(efore)227 1383 y(calling)d(this)g
+(routine)382 1647 y Fe(FTCPDT\(iunit,ounit,)42 b(>)48
+b(status\))0 1985 y Fd(9.3)135 b(De\014ne)45 b(or)g(Rede\014ne)h(the)f
+(structure)g(of)g(the)g(CHDU)0 2237 y Fi(It)32 b(should)e(rarely)h(b)s
+(e)h(necessary)g(to)h(call)e(the)h(subroutines)e(in)g(this)h(section.)
+46 b(FITSIO)30 b(in)m(ternally)g(calls)h(these)0 2350
+y(routines)i(whenev)m(er)h(necessary)-8 b(,)36 b(so)e(an)m(y)g(calls)f
+(to)i(these)f(routines)f(b)m(y)h(application)e(programs)i(will)d(lik)m
+(ely)i(b)s(e)0 2462 y(redundan)m(t.)0 2726 y Fh(1)81
+b Fi(This)35 b(routine)h(forces)i(FITSIO)e(to)i(scan)f(the)g(curren)m
+(t)g(header)g(k)m(eyw)m(ords)h(that)f(de\014ne)g(the)g(structure)g(of)
+227 2839 y(the)31 b(HDU)f(\(suc)m(h)g(as)h(the)f(NAXISn,)g(PCOUNT)f
+(and)g(GCOUNT)h(k)m(eyw)m(ords\))h(so)f(that)h(it)e(can)i(initialize)
+227 2952 y(the)36 b(in)m(ternal)e(bu\013ers)g(that)i(describ)s(e)e(the)
+i(HDU)g(structure.)55 b(This)34 b(routine)h(ma)m(y)h(b)s(e)e(used)h
+(instead)g(of)227 3065 y(the)k(more)g(complicated)g(calls)f(to)h(ftp)s
+(def,)h(ftadef)f(or)g(ftb)s(def.)65 b(This)37 b(routine)h(is)g(also)h
+(v)m(ery)g(useful)e(for)227 3178 y(reinitializing)30
+b(the)k(structure)g(of)g(an)f(HDU,)i(if)e(the)h(n)m(um)m(b)s(er)e(of)i
+(ro)m(ws)g(in)f(a)h(table,)h(as)f(sp)s(eci\014ed)e(b)m(y)i(the)227
+3291 y(NAXIS2)d(k)m(eyw)m(ord,)g(has)f(b)s(een)g(mo)s(di\014ed)e(from)i
+(its)g(initial)d(v)-5 b(alue.)382 3554 y Fe(FTRDEF\(unit,)44
+b(>)k(status\))141 b(\(DEPRECATED\))0 3818 y Fh(2)81
+b Fi(De\014ne)27 b(the)g(structure)g(of)g(the)g(primary)e(arra)m(y)j
+(or)f(IMA)m(GE)h(extension.)39 b(When)27 b(writing)e(GR)m(OUP)m(ed)j
+(FITS)227 3931 y(\014les)42 b(that)i(b)m(y)e(con)m(v)m(en)m(tion)j(set)
+e(the)g(NAXIS1)g(k)m(eyw)m(ord)h(equal)e(to)i(0,)i(ftp)s(def)c(m)m(ust)
+h(b)s(e)f(called)g(with)227 4044 y(naxes\(1\))27 b(=)e(1,)i(NOT)e(0,)i
+(otherwise)e(FITSIO)f(will)f(rep)s(ort)i(an)g(error)g(status=308)i
+(when)d(trying)h(to)h(write)227 4157 y(data)31 b(to)g(a)g(group.)40
+b(Note:)i(it)30 b(is)g(usually)e(simpler)g(to)j(call)f(FTRDEF)g(rather)
+h(than)f(this)f(routine.)382 4421 y Fe(FTPDEF\(unit,bitpix,naxis)o(,na)
+o(xes,)o(pcou)o(nt,)o(gcou)o(nt,)41 b(>)48 b(status\))93
+b(\(DEPRECATED\))0 4684 y Fh(3)81 b Fi(De\014ne)32 b(the)h(structure)f
+(of)g(an)h(ASCI)s(I)e(table)h(\(T)-8 b(ABLE\))33 b(extension.)47
+b(Note:)f(it)32 b(is)f(usually)f(simpler)g(to)k(call)227
+4797 y(FTRDEF)d(rather)f(than)h(this)e(routine.)382 5061
+y Fe(FTADEF\(unit,rowlen,tfiel)o(ds,)o(tbco)o(l,tf)o(orm)o(,nro)o(ws)42
+b(>)47 b(status\))f(\(DEPRECATED\))0 5325 y Fh(4)81 b
+Fi(De\014ne)35 b(the)h(structure)f(of)g(a)h(binary)e(table)h(\(BINT)-8
+b(ABLE\))37 b(extension.)55 b(Note:)e(it)35 b(is)f(usually)f(simpler)g
+(to)227 5438 y(call)d(FTRDEF)h(rather)f(than)g(this)f(routine.)382
+5701 y Fe(FTBDEF\(unit,tfields,tfor)o(m,v)o(arid)o(at,n)o(row)o(s)42
+b(>)47 b(status\))f(\(DEPRECATED\))p eop
+%%Page: 76 82
+76 81 bop 0 299 a Fi(76)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fh(5)81 b Fi(De\014ne)34 b(the)g(size)g(of)g(the)g(Curren)m(t)f
+(Data)i(Unit,)g(o)m(v)m(erriding)d(the)i(length)g(of)g(the)g(data)h
+(unit)d(as)i(previously)227 668 y(de\014ned)e(b)m(y)h(ftp)s(def,)g
+(ftadef,)i(or)e(ftb)s(def.)48 b(This)32 b(is)g(useful)f(if)i(one)g(do)s
+(es)g(not)h(kno)m(w)f(the)g(total)h(size)f(of)h(the)227
+781 y(data)f(unit)e(un)m(til)g(after)h(the)h(data)g(ha)m(v)m(e)g(b)s
+(een)f(written.)45 b(The)32 b(size)g(\(in)f(b)m(ytes\))i(of)g(an)f
+(ASCI)s(I)f(or)h(Binary)227 894 y(table)26 b(is)f(giv)m(en)g(b)m(y)h
+(NAXIS1)g(*)g(NAXIS2.)40 b(\(Note)27 b(that)f(to)h(determine)e(the)g(v)
+-5 b(alue)26 b(of)g(NAXIS1)f(it)h(is)f(often)227 1007
+y(more)32 b(con)m(v)m(enien)m(t)g(to)g(read)f(the)g(v)-5
+b(alue)31 b(of)g(the)h(NAXIS1)f(k)m(eyw)m(ord)h(from)e(the)i(output)e
+(\014le,)h(rather)g(than)227 1120 y(computing)e(the)h(ro)m(w)g(length)g
+(directly)e(from)h(all)g(the)h(TF)m(ORM)h(k)m(eyw)m(ord)f(v)-5
+b(alues\).)40 b(Note:)i(it)29 b(is)g(usually)227 1233
+y(simpler)f(to)j(call)f(FTRDEF)h(rather)f(than)g(this)f(routine.)382
+1454 y Fe(FTDDEF\(unit,bytlen,)42 b(>)48 b(status\))e(\(DEPRECATED\))0
+1676 y Fh(6)81 b Fi(De\014ne)22 b(the)g(zero)i(indexed)c(b)m(yte)j
+(o\013set)g(of)g(the)f('heap')h(measured)e(from)h(the)h(start)g(of)f
+(the)g(binary)f(table)h(data.)227 1789 y(By)30 b(default)f(the)g(heap)h
+(is)e(assumed)h(to)h(start)g(immediately)e(follo)m(wing)g(the)i
+(regular)e(table)i(data,)g(i.e.,)g(at)227 1902 y(lo)s(cation)36
+b(NAXIS1)h(x)g(NAXIS2.)59 b(This)35 b(routine)g(is)h(only)f(relev)-5
+b(an)m(t)37 b(for)f(binary)f(tables)h(whic)m(h)g(con)m(tain)227
+2015 y(v)-5 b(ariable)34 b(length)h(arra)m(y)g(columns)f(\(with)h(TF)m
+(ORMn)g(=)f('Pt'\).)57 b(This)33 b(subroutine)g(also)i(automatically)
+227 2128 y(writes)22 b(the)h(v)-5 b(alue)22 b(of)h(theap)g(to)h(a)f(k)m
+(eyw)m(ord)g(in)f(the)h(extension)f(header.)38 b(This)21
+b(subroutine)g(m)m(ust)i(b)s(e)f(called)227 2241 y(after)27
+b(the)f(required)e(k)m(eyw)m(ords)j(ha)m(v)m(e)g(b)s(een)e(written)g
+(\(with)g(ftph)m(bn\))g(and)h(after)g(the)h(table)f(structure)f(has)227
+2354 y(b)s(een)30 b(de\014ned)f(\(with)g(ftb)s(def)7
+b(\))30 b(but)g(b)s(efore)g(an)m(y)g(data)h(is)f(written)f(to)i(the)g
+(table.)382 2575 y Fe(FTPTHP\(unit,theap,)43 b(>)k(status\))0
+2903 y Fd(9.4)135 b(FITS)44 b(Header)i(I/O)f(Subroutines)0
+3156 y Fb(9.4.1)112 b(Header)38 b(Space)h(and)f(P)m(osition)d(Routines)
+0 3359 y Fh(1)81 b Fi(Reserv)m(e)37 b(space)g(in)e(the)i(CHU)f(for)h
+(MOREKEYS)e(more)i(header)f(k)m(eyw)m(ords.)59 b(This)35
+b(subroutine)f(ma)m(y)k(b)s(e)227 3472 y(called)c(to)i(reserv)m(e)g
+(space)f(for)g(k)m(eyw)m(ords)g(whic)m(h)f(are)h(to)h(b)s(e)e(written)g
+(at)h(a)h(later)f(time,)h(after)f(the)g(data)227 3585
+y(unit)g(or)h(subsequen)m(t)f(extensions)g(ha)m(v)m(e)i(b)s(een)e
+(written)g(to)i(the)f(FITS)f(\014le.)57 b(If)35 b(this)g(subroutine)f
+(is)h(not)227 3698 y(explicitly)25 b(called,)i(then)g(the)g(initial)e
+(size)h(of)i(the)f(FITS)f(header)h(will)e(b)s(e)h(limited)f(to)j(the)f
+(space)h(a)m(v)-5 b(ailable)227 3811 y(at)24 b(the)g(time)f(that)h(the)
+g(\014rst)f(data)h(is)f(written)f(to)i(the)g(asso)s(ciated)g(data)g
+(unit.)37 b(FITSIO)22 b(has)i(the)f(abilit)m(y)f(to)227
+3924 y(dynamically)g(add)h(more)h(space)h(to)g(the)f(header)g(if)f
+(needed,)i(ho)m(w)m(ev)m(er)g(it)f(is)f(more)h(e\016cien)m(t)g(to)h
+(preallo)s(cate)227 4037 y(the)31 b(required)d(space)j(if)f(the)g(size)
+g(is)g(kno)m(wn)g(in)f(adv)-5 b(ance.)382 4258 y Fe
+(FTHDEF\(unit,morekeys,)42 b(>)47 b(status\))0 4480 y
+Fh(2)81 b Fi(Return)23 b(the)i(n)m(um)m(b)s(er)e(of)h(existing)g(k)m
+(eyw)m(ords)g(in)g(the)g(CHU)g(\(NOT)h(including)c(the)j(END)h(k)m(eyw)
+m(ord)g(whic)m(h)e(is)227 4593 y(not)h(considered)e(a)h(real)g(k)m(eyw)
+m(ord\))h(and)f(the)g(remaining)f(space)h(a)m(v)-5 b(ailable)23
+b(to)h(write)e(additional)g(k)m(eyw)m(ords)227 4706 y(in)38
+b(the)i(CHU.)f(\(returns)f(KEYSADD)i(=)f(-1)h(if)e(the)h(header)g(has)g
+(not)h(y)m(et)g(b)s(een)e(closed\).)68 b(Note)40 b(that)227
+4819 y(FITSIO)23 b(will)f(attempt)j(to)g(dynamically)d(add)h(space)i
+(for)f(more)g(k)m(eyw)m(ords)h(if)e(required)f(when)h(app)s(ending)227
+4932 y(new)30 b(k)m(eyw)m(ords)h(to)g(a)g(header.)382
+5153 y Fe(FTGHSP\(iunit,)44 b(>)j(keysexist,keysadd,status\))0
+5375 y Fh(3)81 b Fi(Return)38 b(the)i(n)m(um)m(b)s(er)e(of)h(k)m(eyw)m
+(ords)h(in)e(the)h(header)g(and)g(the)g(curren)m(t)h(p)s(osition)d(in)h
+(the)h(header.)68 b(This)227 5488 y(returns)37 b(the)g(n)m(um)m(b)s(er)
+f(of)i(the)g(k)m(eyw)m(ord)g(record)f(that)h(will)d(b)s(e)i(read)g
+(next)h(\(or)g(one)g(greater)g(than)g(the)227 5601 y(p)s(osition)27
+b(of)h(the)h(last)f(k)m(eyw)m(ord)h(that)g(w)m(as)f(read)g(or)h
+(written\).)39 b(A)29 b(v)-5 b(alue)27 b(of)i(1)g(is)e(returned)g(if)g
+(the)i(p)s(oin)m(ter)227 5714 y(is)h(p)s(ositioned)e(at)j(the)g(b)s
+(eginning)c(of)k(the)g(header.)p eop
+%%Page: 77 83
+77 82 bop 0 299 a Fg(9.4.)72 b(FITS)30 b(HEADER)h(I/O)f(SUBR)m(OUTINES)
+2086 b Fi(77)382 555 y Fe(FTGHPS\(iunit,)44 b(>)j
+(keysexist,key_no,status\))0 845 y Fb(9.4.2)112 b(Read)38
+b(or)f(W)-9 b(rite)36 b(Standard)j(Header)e(Routines)0
+1064 y Fi(These)31 b(subroutines)d(pro)m(vide)i(a)h(simple)e(metho)s(d)
+h(of)h(reading)f(or)h(writing)e(most)i(of)g(the)g(k)m(eyw)m(ord)g(v)-5
+b(alues)30 b(that)0 1177 y(are)e(normally)e(required)g(in)h(a)h(FITS)f
+(\014les.)39 b(These)27 b(subroutines)f(are)i(pro)m(vided)e(for)i(con)m
+(v)m(enience)g(only)f(and)h(are)0 1290 y(not)36 b(required)d(to)j(b)s
+(e)f(used.)55 b(If)35 b(preferred,)h(users)e(ma)m(y)i(call)f(the)h(lo)m
+(w)m(er-lev)m(el)f(subroutines)e(describ)s(ed)h(in)g(the)0
+1402 y(previous)29 b(section)i(to)h(individually)26 b(read)k(or)h
+(write)f(the)h(required)e(k)m(eyw)m(ords.)43 b(Note)32
+b(that)g(in)d(most)j(cases,)g(the)0 1515 y(required)25
+b(k)m(eyw)m(ords)i(suc)m(h)g(as)g(NAXIS,)f(TFIELD,)h(TTYPEn,)g(etc,)i
+(whic)m(h)c(de\014ne)h(the)h(structure)f(of)h(the)g(HDU)0
+1628 y(m)m(ust)j(b)s(e)g(written)f(to)j(the)e(header)g(b)s(efore)g(an)m
+(y)h(data)g(can)g(b)s(e)e(written)h(to)h(the)g(image)f(or)h(table.)0
+1881 y Fh(1)81 b Fi(Put)37 b(the)i(primary)d(header)i(or)g(IMA)m(GE)h
+(extension)e(k)m(eyw)m(ords)i(in)m(to)f(the)g(CHU.)g(There)g(are)g(2)h
+(a)m(v)-5 b(ailable)227 1994 y(routines:)38 b(The)27
+b(simpler)d(FTPHPS)j(routine)f(is)g(equiv)-5 b(alen)m(t)27
+b(to)g(calling)f(ftphpr)f(with)h(the)h(default)g(v)-5
+b(alues)227 2107 y(of)35 b(SIMPLE)f(=)g(true,)i(p)s(coun)m(t)e(=)g(0,)i
+(gcoun)m(t)g(=)e(1,)i(and)e(EXTEND)h(=)f(true.)53 b(PCOUNT,)34
+b(GCOUNT)227 2220 y(and)23 b(EXTEND)h(k)m(eyw)m(ords)g(are)h(not)f
+(required)e(in)g(the)i(primary)e(header)h(and)h(are)g(only)f(written)g
+(if)f(p)s(coun)m(t)227 2333 y(is)30 b(not)h(equal)g(to)h(zero,)g(gcoun)
+m(t)g(is)e(not)h(equal)f(to)i(zero)g(or)f(one,)g(and)g(if)f(extend)h
+(is)f(TR)m(UE,)h(resp)s(ectiv)m(ely)-8 b(.)227 2446 y(When)30
+b(writing)f(to)i(an)f(IMA)m(GE)i(extension,)e(the)g(SIMPLE)g(and)g
+(EXTEND)g(parameters)h(are)g(ignored.)382 2699 y Fe
+(FTPHPS\(unit,bitpix,naxis)o(,na)o(xes,)41 b(>)48 b(status\))382
+2925 y(FTPHPR\(unit,simple,bitpi)o(x,n)o(axis)o(,nax)o(es,)o(pcou)o
+(nt,g)o(cou)o(nt,e)o(xten)o(d,)41 b(>)48 b(status\))0
+3178 y Fh(2)81 b Fi(Get)44 b(primary)d(header)i(or)h(IMA)m(GE)g
+(extension)f(k)m(eyw)m(ords)h(from)f(the)g(CHU.)h(When)f(reading)f
+(from)h(an)227 3291 y(IMA)m(GE)32 b(extension)e(the)g(SIMPLE)g(and)f
+(EXTEND)i(parameters)g(are)f(ignored.)382 3544 y Fe
+(FTGHPR\(unit,maxdim,)42 b(>)48 b(simple,bitpix,naxis,naxe)o(s,p)o
+(coun)o(t,gc)o(oun)o(t,ex)o(tend)o(,)716 3657 y(status\))0
+3911 y Fh(3)81 b Fi(Put)34 b(the)h(ASCI)s(I)f(table)h(header)g(k)m(eyw)
+m(ords)g(in)m(to)g(the)g(CHU.)h(The)e(optional)g(TUNITn)g(and)h
+(EXTNAME)227 4024 y(k)m(eyw)m(ords)c(are)g(written)e(only)h(if)f(the)i
+(input)d(string)h(v)-5 b(alues)30 b(are)h(not)f(blank.)382
+4277 y Fe(FTPHTB\(unit,rowlen,nrows)o(,tf)o(ield)o(s,tt)o(ype)o(,tbc)o
+(ol,t)o(for)o(m,tu)o(nit,)o(ext)o(name)o(,)42 b(>)716
+4390 y(status\))0 4643 y Fh(4)81 b Fi(Get)31 b(the)g(ASCI)s(I)d(table)j
+(header)f(k)m(eyw)m(ords)h(from)e(the)i(CHU)382 4896
+y Fe(FTGHTB\(unit,maxdim,)42 b(>)48 b(rowlen,nrows,tfields,tty)o(pe,)o
+(tbco)o(l,tf)o(orm)o(,tun)o(it,)716 5009 y(extname,status\))0
+5262 y Fh(5)81 b Fi(Put)34 b(the)h(binary)e(table)i(header)f(k)m(eyw)m
+(ords)i(in)m(to)e(the)h(CHU.)g(The)g(optional)f(TUNITn)g(and)g(EXTNAME)
+227 5375 y(k)m(eyw)m(ords)i(are)g(written)e(only)g(if)h(the)g(input)e
+(string)i(v)-5 b(alues)34 b(are)i(not)f(blank.)54 b(The)35
+b(p)s(coun)m(t)g(parameter,)227 5488 y(whic)m(h)e(sp)s(eci\014es)g(the)
+i(size)f(of)h(the)f(v)-5 b(ariable)33 b(length)h(arra)m(y)h(heap,)g
+(should)e(initially)d(=)k(0;)j(FITSIO)d(will)227 5601
+y(automatically)24 b(up)s(date)f(the)h(PCOUNT)f(k)m(eyw)m(ord)h(v)-5
+b(alue)23 b(if)g(an)m(y)h(v)-5 b(ariable)23 b(length)g(arra)m(y)i(data)
+f(is)f(written)227 5714 y(to)31 b(the)e(heap.)41 b(The)29
+b(TF)m(ORM)g(k)m(eyw)m(ord)h(v)-5 b(alue)29 b(for)h(v)-5
+b(ariable)28 b(length)h(v)m(ector)i(columns)d(should)g(ha)m(v)m(e)j
+(the)p eop
+%%Page: 78 84
+78 83 bop 0 299 a Fi(78)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)227
+555 y Fi(form)d('Pt\(len\)')i(or)e('1Pt\(len\)')i(where)e(`t')h(is)f
+(the)h(data)g(t)m(yp)s(e)g(co)s(de)f(letter)h(\(A,I,J,E,D,)h(etc.\))42
+b(and)27 b(`len')g(is)227 668 y(an)h(in)m(teger)h(sp)s(ecifying)d(the)i
+(maxim)m(um)f(length)g(of)i(the)f(v)m(ectors)h(in)e(that)i(column)e
+(\(len)g(m)m(ust)h(b)s(e)g(greater)227 781 y(than)j(or)h(equal)e(to)j
+(the)e(longest)h(v)m(ector)g(in)e(the)i(column\).)43
+b(If)30 b(`len')h(is)g(not)g(sp)s(eci\014ed)f(when)g(the)i(table)f(is)
+227 894 y(created)c(\(e.g.,)i(the)d(input)e(TF)m(ORMn)i(v)-5
+b(alue)25 b(is)g(just)g('1Pt'\))j(then)d(FITSIO)g(will)e(scan)j(the)g
+(column)f(when)227 1007 y(the)30 b(table)f(is)f(\014rst)h(closed)g(and)
+g(will)d(app)s(end)i(the)h(maxim)m(um)g(length)f(to)i(the)g(TF)m(ORM)f
+(k)m(eyw)m(ord)h(v)-5 b(alue.)227 1120 y(Note)28 b(that)e(if)f(the)h
+(table)g(is)f(subsequen)m(tly)g(mo)s(di\014ed)f(to)j(increase)e(the)i
+(maxim)m(um)e(length)g(of)h(the)g(v)m(ectors)227 1233
+y(then)k(the)h(mo)s(difying)d(program)i(is)f(resp)s(onsible)f(for)i
+(also)g(up)s(dating)e(the)j(TF)m(ORM)g(k)m(eyw)m(ord)g(v)-5
+b(alue.)382 1462 y Fe(FTPHBN\(unit,nrows,tfield)o(s,t)o(type)o(,tfo)o
+(rm,)o(tuni)o(t,ex)o(tna)o(me,v)o(arid)o(at,)41 b(>)48
+b(status\))0 1691 y Fh(6)81 b Fi(Get)31 b(the)g(binary)d(table)i
+(header)h(k)m(eyw)m(ords)f(from)g(the)h(CHU)382 1921
+y Fe(FTGHBN\(unit,maxdim,)42 b(>)48 b(nrows,tfields,ttype,tfor)o(m,t)o
+(unit)o(,ext)o(nam)o(e,va)o(rida)o(t,)716 2034 y(status\))0
+2320 y Fb(9.4.3)112 b(W)-9 b(rite)36 b(Keyw)m(ord)h(Subroutines)0
+2524 y Fh(1)81 b Fi(Put)30 b(\(app)s(end\))f(an)h(80-c)m(haracter)j
+(record)e(in)m(to)f(the)h(CHU.)382 2753 y Fe(FTPREC\(unit,card,)43
+b(>)k(status\))0 2982 y Fh(2)81 b Fi(Put)36 b(\(app)s(end\))g(a)i
+(COMMENT)f(k)m(eyw)m(ord)g(in)m(to)g(the)h(CHU.)f(Multiple)e(COMMENT)i
+(k)m(eyw)m(ords)g(will)e(b)s(e)227 3095 y(written)30
+b(if)f(the)i(input)d(commen)m(t)j(string)f(is)f(longer)h(than)g(72)i(c)
+m(haracters.)382 3325 y Fe(FTPCOM\(unit,comment,)42 b(>)48
+b(status\))0 3554 y Fh(3)81 b Fi(Put)24 b(\(app)s(end\))g(a)h(HISTOR)-8
+b(Y)25 b(k)m(eyw)m(ord)g(in)m(to)g(the)g(CHU.)g(Multiple)e(HISTOR)-8
+b(Y)24 b(k)m(eyw)m(ords)h(will)e(b)s(e)h(written)227
+3667 y(if)30 b(the)g(input)f(history)g(string)g(is)h(longer)g(than)g
+(72)h(c)m(haracters.)382 3897 y Fe(FTPHIS\(unit,history,)42
+b(>)48 b(status\))0 4126 y Fh(4)81 b Fi(Put)36 b(\(app)s(end\))f(the)h
+(D)m(A)-8 b(TE)38 b(k)m(eyw)m(ord)f(in)m(to)f(the)g(CHU.)h(The)f(k)m
+(eyw)m(ord)g(v)-5 b(alue)36 b(will)e(con)m(tain)j(the)f(curren)m(t)227
+4239 y(system)c(date)g(as)g(a)f(c)m(haracter)i(string)e(in)f
+('dd/mm/yy')h(format.)44 b(If)31 b(a)h(D)m(A)-8 b(TE)32
+b(k)m(eyw)m(ord)g(already)f(exists)227 4352 y(in)j(the)h(header,)i
+(then)d(this)g(subroutine)f(will)g(simply)f(up)s(date)j(the)g(k)m(eyw)m
+(ord)g(v)-5 b(alue)35 b(in-place)f(with)g(the)227 4465
+y(curren)m(t)c(date.)382 4694 y Fe(FTPDAT\(unit,)44 b(>)k(status\))0
+4924 y Fh(5)81 b Fi(Put)22 b(\(app)s(end\))f(a)i(new)f(k)m(eyw)m(ord)h
+(of)g(the)f(appropriate)g(datat)m(yp)s(e)h(in)m(to)g(the)f(CHU.)h(Note)
+h(that)f(FTPKYS)f(will)227 5036 y(only)32 b(write)g(string)f(v)-5
+b(alues)32 b(up)f(to)j(68)f(c)m(haracters)h(in)d(length;)i(longer)f
+(strings)g(will)d(b)s(e)j(truncated.)47 b(The)227 5149
+y(FTPKLS)27 b(routine)g(can)i(b)s(e)f(used)f(to)i(write)e(longer)h
+(strings,)g(using)e(a)j(non-standard)e(FITS)h(con)m(v)m(en)m(tion.)227
+5262 y(The)23 b(E)h(and)f(D)h(v)m(ersions)f(of)h(this)e(routine)h(ha)m
+(v)m(e)i(the)f(added)f(feature)h(that)g(if)f(the)h('decimals')f
+(parameter)h(is)227 5375 y(negativ)m(e,)h(then)20 b(the)i('G')g(displa)
+m(y)d(format)i(rather)g(then)g(the)g('E')h(format)f(will)e(b)s(e)h
+(used)g(when)g(constructing)227 5488 y(the)25 b(k)m(eyw)m(ord)f(v)-5
+b(alue,)25 b(taking)f(the)h(absolute)f(v)-5 b(alue)23
+b(of)i('decimals')e(for)h(the)g(precision.)37 b(This)22
+b(will)g(suppress)227 5601 y(trailing)32 b(zeros,)k(and)d(will)f(use)h
+(a)i(\014xed)e(format)h(rather)g(than)f(an)h(exp)s(onen)m(tial)f
+(format,)j(dep)s(ending)31 b(on)227 5714 y(the)g(magnitude)e(of)i(the)f
+(v)-5 b(alue.)p eop
+%%Page: 79 85
+79 84 bop 0 299 a Fg(9.4.)72 b(FITS)30 b(HEADER)h(I/O)f(SUBR)m(OUTINES)
+2086 b Fi(79)382 555 y Fe(FTPKY[JLS]\(unit,keyword,)o(key)o(val,)o
+(comm)o(ent)o(,)42 b(>)47 b(status\))382 668 y
+(FTPKY[EDFG]\(unit,keyword)o(,ke)o(yval)o(,dec)o(ima)o(ls,c)o(omme)o
+(nt,)41 b(>)48 b(status\))0 915 y Fh(6)81 b Fi(Put)33
+b(\(app)s(end\))h(a)g(string)f(v)-5 b(alued)33 b(k)m(eyw)m(ord)i(in)m
+(to)f(the)h(CHU)f(whic)m(h)f(ma)m(y)h(b)s(e)g(longer)g(than)f(68)i(c)m
+(haracters)227 1028 y(in)i(length.)63 b(This)36 b(uses)i(the)g(Long)g
+(String)f(Keyw)m(ord)h(con)m(v)m(en)m(tion)h(that)f(is)f(describ)s(ed)f
+(in)h(the)h("Usage)227 1141 y(Guidelines)30 b(and)h(Suggestions")i
+(section)f(of)h(this)e(do)s(cumen)m(t.)46 b(Since)32
+b(this)f(uses)h(a)g(non-standard)g(FITS)227 1254 y(con)m(v)m(en)m(tion)
+37 b(to)e(enco)s(de)h(the)f(long)g(k)m(eyw)m(ord)g(string,)h(programs)e
+(whic)m(h)g(use)h(this)f(routine)g(should)f(also)227
+1367 y(call)d(the)g(FTPLSW)g(routine)g(to)h(add)e(some)i(COMMENT)f(k)m
+(eyw)m(ords)h(to)g(w)m(arn)f(users)f(of)i(the)f(FITS)g(\014le)227
+1480 y(that)36 b(this)e(con)m(v)m(en)m(tion)j(is)d(b)s(eing)g(used.)55
+b(FTPLSW)35 b(also)g(writes)g(a)g(k)m(eyw)m(ord)h(called)f(LONGSTRN)f
+(to)227 1593 y(record)c(the)h(v)m(ersion)e(of)i(the)f(longstring)f(con)
+m(v)m(en)m(tion)i(that)g(has)f(b)s(een)g(used,)f(in)g(case)i(a)g(new)f
+(con)m(v)m(en)m(tion)227 1705 y(is)e(adopted)h(at)g(some)g(p)s(oin)m(t)
+e(in)h(the)g(future.)40 b(If)28 b(the)g(LONGSTRN)g(k)m(eyw)m(ord)h(is)f
+(already)g(presen)m(t)g(in)g(the)227 1818 y(header,)j(then)f(FTPLSW)g
+(will)d(simply)h(return)i(and)f(will)f(not)j(write)e(duplicate)g(k)m
+(eyw)m(ords.)382 2065 y Fe(FTPKLS\(unit,keyword,keyv)o(al,)o(comm)o
+(ent,)41 b(>)47 b(status\))382 2178 y(FTPLSW\(unit,)d(>)k(status\))0
+2425 y Fh(7)81 b Fi(Put)30 b(\(app)s(end\))g(a)h(new)f(k)m(eyw)m(ord)h
+(with)e(an)i(unde\014ned,)e(or)h(n)m(ull,)f(v)-5 b(alue)30
+b(in)m(to)h(the)g(CHU.)g(The)f(v)-5 b(alue)30 b(string)227
+2538 y(of)h(the)f(k)m(eyw)m(ord)h(is)f(left)g(blank)f(in)g(this)g
+(case.)382 2785 y Fe(FTPKYU\(unit,keyword,comm)o(ent)o(,)42
+b(>)47 b(status\))0 3032 y Fh(8)81 b Fi(Put)41 b(\(app)s(end\))g(a)i(n)
+m(um)m(b)s(ered)d(sequence)j(of)f(k)m(eyw)m(ords)g(in)m(to)g(the)h
+(CHU.)f(One)f(ma)m(y)i(app)s(end)d(the)j(same)227 3145
+y(commen)m(t)37 b(to)g(ev)m(ery)g(k)m(eyw)m(ord)g(\(and)f(eliminate)e
+(the)j(need)f(to)h(ha)m(v)m(e)g(an)f(arra)m(y)h(of)f(iden)m(tical)f
+(commen)m(t)227 3258 y(strings,)i(one)f(for)g(eac)m(h)h(k)m(eyw)m
+(ord\))g(b)m(y)f(including)d(the)j(amp)s(ersand)e(c)m(haracter)k(as)e
+(the)h(last)f(non-blank)227 3371 y(c)m(haracter)h(in)d(the)i
+(\(\014rst\))f(COMMENTS)f(string)g(parameter.)56 b(This)34
+b(same)h(string)g(will)d(then)j(b)s(e)g(used)227 3484
+y(for)30 b(the)g(commen)m(t)h(\014eld)e(in)f(all)h(the)h(k)m(eyw)m
+(ords.)41 b(\(Note)32 b(that)e(the)g(SPP)f(v)m(ersion)h(of)g(these)g
+(routines)f(only)227 3597 y(supp)s(orts)g(a)i(single)e(commen)m(t)i
+(string\).)382 3844 y Fe(FTPKN[JLS]\(unit,keyroot,)o(sta)o(rtno)o(,no_)
+o(key)o(s,ke)o(yval)o(s,c)o(omme)o(nts,)41 b(>)47 b(status\))382
+3957 y(FTPKN[EDFG]\(unit,keyroot)o(,st)o(artn)o(o,no)o(_ke)o(ys,k)o
+(eyva)o(ls,)o(deci)o(mals)o(,co)o(mmen)o(ts,)41 b(>)907
+4070 y(status\))0 4317 y Fh(9)81 b Fi(Cop)m(y)21 b(an)h(indexed)e(k)m
+(eyw)m(ord)j(from)e(one)h(HDU)h(to)f(another,)i(mo)s(difying)c(the)i
+(index)e(n)m(um)m(b)s(er)g(of)i(the)g(k)m(eyw)m(ord)227
+4430 y(name)37 b(in)e(the)h(pro)s(cess.)58 b(F)-8 b(or)37
+b(example,)h(this)d(routine)h(could)f(read)h(the)h(TLMIN3)f(k)m(eyw)m
+(ord)h(from)f(the)227 4542 y(input)27 b(HDU)i(\(b)m(y)f(giving)f(k)m
+(eyro)s(ot)j(=)d("TLMIN")i(and)f(inn)m(um)e(=)i(3\))h(and)f(write)f(it)
+h(to)h(the)f(output)g(HDU)227 4655 y(with)35 b(the)h(k)m(eyw)m(ord)h
+(name)f(TLMIN4)g(\(b)m(y)g(setting)h(outn)m(um)e(=)h(4\).)58
+b(If)36 b(the)g(input)e(k)m(eyw)m(ord)j(do)s(es)f(not)227
+4768 y(exist,)31 b(then)f(this)f(routine)g(simply)f(returns)h(without)h
+(indicating)e(an)i(error.)382 5015 y Fe(FTCPKYinunit,)44
+b(outunit,)i(innum,)g(outnum,)f(keyroot,)h(>)h(status\))0
+5262 y Fh(10)f Fi(Put)33 b(\(app)s(end\))f(a)h('triple)f(precision')g
+(k)m(eyw)m(ord)h(in)m(to)g(the)h(CHU)f(in)f(F28.16)j(format.)49
+b(The)33 b(\015oating)g(p)s(oin)m(t)227 5375 y(k)m(eyw)m(ord)d(v)-5
+b(alue)29 b(is)f(constructed)i(b)m(y)f(concatenating)i(the)e(input)f
+(in)m(teger)i(v)-5 b(alue)28 b(with)g(the)i(input)d(double)227
+5488 y(precision)20 b(fraction)i(v)-5 b(alue)22 b(\(whic)m(h)f(m)m(ust)
+h(ha)m(v)m(e)h(a)f(v)-5 b(alue)22 b(b)s(et)m(w)m(een)h(0.0)g(and)e
+(1.0\).)40 b(The)21 b(FTGKYT)h(routine)227 5601 y(should)34
+b(b)s(e)i(used)f(to)i(read)f(this)e(k)m(eyw)m(ord)j(v)-5
+b(alue,)37 b(b)s(ecause)f(the)g(other)h(k)m(eyw)m(ord)f(reading)f
+(subroutines)227 5714 y(will)28 b(not)j(preserv)m(e)f(the)h(full)d
+(precision)g(of)j(the)f(v)-5 b(alue.)p eop
+%%Page: 80 86
+80 85 bop 0 299 a Fi(80)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)382
+555 y Fe(FTPKYT\(unit,keyword,intv)o(al,)o(dblv)o(al,c)o(omm)o(ent,)41
+b(>)48 b(status\))0 850 y Fh(11)e Fi(W)-8 b(rite)35 b(k)m(eyw)m(ords)h
+(to)f(the)h(CHDU)f(that)h(are)f(de\014ned)f(in)f(an)i(ASCI)s(I)f
+(template)h(\014le.)54 b(The)34 b(format)i(of)f(the)227
+963 y(template)c(\014le)f(is)f(describ)s(ed)f(under)h(the)i(ftgthd)f
+(routine)f(b)s(elo)m(w.)382 1258 y Fe(FTPKTP\(unit,)44
+b(filename,)i(>)h(status\))0 1552 y Fh(12)f Fi(App)s(end)28
+b(the)i(ph)m(ysical)e(units)h(string)g(to)h(an)g(existing)f(k)m(eyw)m
+(ord.)41 b(This)28 b(routine)h(uses)g(a)h(lo)s(cal)g(con)m(v)m(en)m
+(tion,)227 1665 y(sho)m(wn)i(in)f(the)i(follo)m(wing)e(example,)i(in)e
+(whic)m(h)g(the)i(k)m(eyw)m(ord)g(units)e(are)i(enclosed)f(in)f(square)
+h(brac)m(k)m(ets)227 1778 y(in)d(the)i(b)s(eginning)d(of)i(the)h(k)m
+(eyw)m(ord)g(commen)m(t)g(\014eld.)239 2073 y Fe(VELOCITY=)809
+b(12.3)46 b(/)i([km/s])e(orbital)g(speed)382 2299 y
+(FTPUNT\(unit,keyword,unit)o(s,)41 b(>)48 b(status\))0
+2630 y Fb(9.4.4)112 b(Insert)38 b(Keyw)m(ord)f(Subroutines)0
+2865 y Fh(1)81 b Fi(Insert)26 b(a)h(new)f(k)m(eyw)m(ord)h(record)g(in)m
+(to)f(the)h(CHU)g(at)g(the)g(sp)s(eci\014ed)e(p)s(osition)g(\(i.e.,)j
+(immediately)d(preceding)227 2978 y(the)34 b(\(k)m(eyno\)th)g(k)m(eyw)m
+(ord)g(in)e(the)i(header.\))49 b(This)32 b('insert)g(record')i
+(subroutine)d(is)h(somewhat)i(less)f(e\016-)227 3091
+y(cien)m(t)27 b(then)g(the)g('app)s(end)e(record')i(subroutine)e
+(\(FTPREC\))h(describ)s(ed)f(ab)s(o)m(v)m(e)j(b)s(ecause)f(the)g
+(remaining)227 3204 y(k)m(eyw)m(ords)k(in)e(the)i(header)f(ha)m(v)m(e)h
+(to)g(b)s(e)f(shifted)f(do)m(wn)h(one)h(slot.)382 3499
+y Fe(FTIREC\(unit,key_no,card,)41 b(>)47 b(status\))0
+3793 y Fh(2)81 b Fi(Insert)36 b(a)h(new)f(k)m(eyw)m(ord)i(in)m(to)f
+(the)g(CHU.)g(The)f(new)g(k)m(eyw)m(ord)i(is)e(inserted)f(immediately)g
+(follo)m(wing)h(the)227 3906 y(last)26 b(k)m(eyw)m(ord)h(that)f(has)g
+(b)s(een)g(read)g(from)f(the)h(header.)40 b(The)25 b(FTIKLS)g
+(subroutine)f(w)m(orks)i(the)g(same)h(as)227 4019 y(the)h(FTIKYS)e
+(subroutine,)g(except)j(it)e(also)g(supp)s(orts)f(long)h(string)f(v)-5
+b(alues)27 b(greater)h(than)f(68)h(c)m(haracters)227
+4132 y(in)35 b(length.)58 b(These)36 b('insert)f(k)m(eyw)m(ord')i
+(subroutines)d(are)j(somewhat)g(less)e(e\016cien)m(t)i(then)f(the)g
+('app)s(end)227 4245 y(k)m(eyw)m(ord')30 b(subroutines)d(describ)s(ed)g
+(ab)s(o)m(v)m(e)j(b)s(ecause)f(the)g(remaining)f(k)m(eyw)m(ords)h(in)f
+(the)h(header)g(ha)m(v)m(e)h(to)227 4358 y(b)s(e)g(shifted)f(do)m(wn)h
+(one)h(slot.)382 4653 y Fe(FTIKEY\(unit,)44 b(card,)j(>)g(status\))382
+4766 y(FTIKY[JLS]\(unit,keyword,)o(key)o(val,)o(comm)o(ent)o(,)42
+b(>)47 b(status\))382 4878 y(FTIKLS\(unit,keyword,keyv)o(al,)o(comm)o
+(ent,)41 b(>)47 b(status\))382 4991 y(FTIKY[EDFG]\(unit,keyword)o(,ke)o
+(yval)o(,dec)o(ima)o(ls,c)o(omme)o(nt,)41 b(>)48 b(status\))0
+5286 y Fh(3)81 b Fi(Insert)32 b(a)i(new)f(k)m(eyw)m(ord)h(with)e(an)h
+(unde\014ned,)g(or)g(n)m(ull,)f(v)-5 b(alue)33 b(in)m(to)h(the)f(CHU.)h
+(The)f(v)-5 b(alue)33 b(string)f(of)i(the)227 5399 y(k)m(eyw)m(ord)d
+(is)f(left)g(blank)f(in)g(this)g(case.)382 5694 y Fe
+(FTIKYU\(unit,keyword,comm)o(ent)o(,)42 b(>)47 b(status\))p
+eop
+%%Page: 81 87
+81 86 bop 0 299 a Fg(9.4.)72 b(FITS)30 b(HEADER)h(I/O)f(SUBR)m(OUTINES)
+2086 b Fi(81)0 555 y Fb(9.4.5)112 b(Read)38 b(Keyw)m(ord)g(Subroutines)
+0 774 y Fi(These)29 b(routines)e(return)h(the)h(v)-5
+b(alue)28 b(of)h(the)g(sp)s(eci\014ed)e(k)m(eyw)m(ord\(s\).)41
+b(Wild)28 b(card)g(c)m(haracters)i(\(*,)h(?,)e(or)g(#\))f(ma)m(y)0
+887 y(b)s(e)f(used)h(when)f(sp)s(ecifying)f(the)i(name)g(of)g(the)g(k)m
+(eyw)m(ord)h(to)g(b)s(e)e(read:)39 b(a)29 b(')10 b(?')40
+b(will)25 b(matc)m(h)k(an)m(y)g(single)d(c)m(haracter)0
+1000 y(at)38 b(that)g(p)s(osition)d(in)h(the)i(k)m(eyw)m(ord)g(name)f
+(and)g(a)g('*')i(will)34 b(matc)m(h)k(an)m(y)g(length)f(\(including)d
+(zero\))k(string)f(of)0 1113 y(c)m(haracters.)65 b(The)37
+b('#')h(c)m(haracter)h(will)c(matc)m(h)k(an)m(y)f(consecutiv)m(e)h
+(string)e(of)h(decimal)f(digits)f(\(0)j(-)f(9\).)64 b(Note)0
+1226 y(that)30 b(when)f(a)g(wild)e(card)j(is)e(used)h(in)f(the)i(input)
+d(k)m(eyw)m(ord)j(name,)g(the)g(routine)e(will)f(only)i(searc)m(h)h
+(for)f(a)h(matc)m(h)0 1339 y(from)h(the)h(curren)m(t)g(header)g(p)s
+(osition)e(to)i(the)h(end)e(of)h(the)g(header.)45 b(It)32
+b(will)d(not)j(resume)g(the)g(searc)m(h)g(from)g(the)0
+1452 y(top)i(of)h(the)f(header)g(bac)m(k)h(to)g(the)f(original)e
+(header)i(p)s(osition)e(as)j(is)e(done)h(when)f(no)h(wildcards)d(are)k
+(included)0 1564 y(in)e(the)h(k)m(eyw)m(ord)h(name.)52
+b(If)33 b(the)h(desired)f(k)m(eyw)m(ord)i(string)e(is)g(8-c)m
+(haracters)j(long)e(\(the)g(maxim)m(um)f(length)h(of)0
+1677 y(a)i(k)m(eyw)m(ord)g(name\))g(then)g(a)g('*')g(ma)m(y)h(b)s(e)e
+(app)s(ended)f(as)h(the)h(nin)m(th)f(c)m(haracter)i(of)f(the)f(input)f
+(name)i(to)g(force)0 1790 y(the)31 b(k)m(eyw)m(ord)g(searc)m(h)h(to)f
+(stop)g(at)g(the)g(end)f(of)h(the)g(header)g(\(e.g.,)i('COMMENT)d(*')i
+(will)c(searc)m(h)j(for)g(the)g(next)0 1903 y(COMMENT)37
+b(k)m(eyw)m(ord\).)64 b(The)37 b(\013grec)i(routine)e(ma)m(y)h(b)s(e)f
+(used)g(to)i(set)f(the)g(starting)f(p)s(osition)f(when)h(doing)0
+2016 y(wild)28 b(card)i(searc)m(hes.)0 2264 y Fh(1)81
+b Fi(Get)37 b(the)f(n)m(th)f(80-c)m(haracter)k(header)d(record)g(from)f
+(the)h(CHU.)h(The)e(\014rst)g(k)m(eyw)m(ord)i(in)d(the)i(header)g(is)f
+(at)227 2377 y(k)m(ey)p 365 2377 28 4 v 34 w(no)42 b(=)f(1;)49
+b(if)41 b(k)m(ey)p 996 2377 V 34 w(no)h(=)f(0)i(then)e(this)g
+(subroutine)f(simple)g(mo)m(v)m(es)k(the)e(in)m(ternal)f(p)s(oin)m(ter)
+g(to)i(the)227 2490 y(b)s(eginning)33 b(of)j(the)g(header)f(so)h(that)g
+(subsequen)m(t)f(k)m(eyw)m(ord)h(op)s(erations)f(will)e(start)j(at)g
+(the)g(top)g(of)g(the)227 2603 y(header;)31 b(it)f(also)g(returns)f(a)i
+(blank)e(card)h(v)-5 b(alue)30 b(in)f(this)g(case.)382
+2850 y Fe(FTGREC\(unit,key_no,)42 b(>)48 b(card,status\))0
+3098 y Fh(2)81 b Fi(Get)31 b(the)g(name,)f(v)-5 b(alue)30
+b(\(as)h(a)g(string\),)f(and)g(commen)m(t)i(of)e(the)h(n)m(th)f(k)m
+(eyw)m(ord)h(in)e(CHU.)i(This)e(routine)g(also)227 3211
+y(c)m(hec)m(ks)i(that)f(the)g(returned)e(k)m(eyw)m(ord)i(name)f(\(KEYW)
+m(ORD\))i(con)m(tains)f(only)e(legal)h(ASCI)s(I)f(c)m(haracters.)227
+3324 y(Call)h(FTGREC)h(and)g(FTPSV)m(C)g(to)h(b)m(ypass)f(this)f(error)
+h(c)m(hec)m(k.)382 3572 y Fe(FTGKYN\(unit,key_no,)42
+b(>)48 b(keyword,value,comment,st)o(atu)o(s\))0 3819
+y Fh(3)81 b Fi(Get)31 b(the)g(80-c)m(haracter)i(header)d(record)g(for)g
+(the)h(named)f(k)m(eyw)m(ord)382 4067 y Fe(FTGCRD\(unit,keyword,)42
+b(>)48 b(card,status\))0 4315 y Fh(4)81 b Fi(Get)26 b(the)f(next)h(k)m
+(eyw)m(ord)f(whose)g(name)h(matc)m(hes)g(one)f(of)h(the)f(strings)f(in)
+g('inclist')g(but)g(do)s(es)h(not)g(matc)m(h)i(an)m(y)227
+4428 y(of)32 b(the)f(strings)f(in)g('exclist'.)43 b(The)30
+b(strings)g(in)g(inclist)f(and)i(exclist)f(ma)m(y)i(con)m(tain)g(wild)c
+(card)j(c)m(haracters)227 4541 y(\(*,)38 b(?,)e(and)e(#\))i(as)f
+(describ)s(ed)e(at)j(the)f(b)s(eginning)d(of)k(this)e(section.)55
+b(This)33 b(routine)h(searc)m(hes)i(from)f(the)227 4654
+y(curren)m(t)28 b(header)f(p)s(osition)f(to)i(the)g(end)f(of)h(the)g
+(header,)g(only)-8 b(,)28 b(and)f(do)s(es)g(not)h(con)m(tin)m(ue)g(the)
+g(searc)m(h)g(from)227 4767 y(the)41 b(top)g(of)g(the)g(header)g(bac)m
+(k)h(to)f(the)g(original)e(p)s(osition.)71 b(The)40 b(curren)m(t)h
+(header)f(p)s(osition)f(ma)m(y)j(b)s(e)227 4880 y(reset)33
+b(with)d(the)i(ftgrec)h(routine.)43 b(Note)33 b(that)g(nexc)f(ma)m(y)g
+(b)s(e)f(set)h(=)g(0)g(if)e(there)i(are)g(no)g(k)m(eyw)m(ords)g(to)h(b)
+s(e)227 4993 y(excluded.)40 b(This)28 b(routine)i(returns)f(status)i(=)
+f(202)h(if)f(a)g(matc)m(hing)h(k)m(eyw)m(ord)g(is)e(not)i(found.)382
+5240 y Fe(FTGNXK\(unit,inclist,ninc)o(,ex)o(clis)o(t,ne)o(xc,)41
+b(>)48 b(card,status\))0 5488 y Fh(5)81 b Fi(Get)30 b(the)g(literal)f
+(k)m(eyw)m(ord)h(v)-5 b(alue)29 b(as)h(a)g(c)m(haracter)i(string.)39
+b(Regardless)30 b(of)g(the)g(datat)m(yp)s(e)g(of)g(the)g(k)m(eyw)m
+(ord,)227 5601 y(this)36 b(routine)g(simply)f(returns)h(the)h(string)f
+(of)h(c)m(haracters)i(in)c(the)j(v)-5 b(alue)36 b(\014eld)g(of)h(the)g
+(k)m(eyw)m(ord)h(along)227 5714 y(with)29 b(the)i(commen)m(t)g
+(\014eld.)p eop
+%%Page: 82 88
+82 87 bop 0 299 a Fi(82)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)382
+555 y Fe(FTGKEY\(unit,keyword,)42 b(>)48 b(value,comment,status\))0
+817 y Fh(6)81 b Fi(Get)31 b(a)g(k)m(eyw)m(ord)g(v)-5
+b(alue)29 b(\(with)h(the)g(appropriate)g(datat)m(yp)s(e\))h(and)f
+(commen)m(t)i(from)e(the)g(CHU)382 1079 y Fe(FTGKY[EDJLS]\(unit,keywor)
+o(d,)41 b(>)48 b(keyval,comment,status\))0 1341 y Fh(7)81
+b Fi(Get)24 b(a)g(sequence)g(of)g(n)m(um)m(b)s(ered)e(k)m(eyw)m(ord)i
+(v)-5 b(alues.)37 b(These)24 b(routines)e(do)h(not)h(supp)s(ort)e(wild)
+f(card)i(c)m(haracters)227 1454 y(in)29 b(the)i(ro)s(ot)g(name.)382
+1716 y Fe(FTGKN[EDJLS]\(unit,keyroo)o(t,s)o(tart)o(no,m)o(ax_)o(keys)o
+(,)42 b(>)47 b(keyvals,nfound,status\))0 1977 y Fh(8)81
+b Fi(Get)27 b(the)f(v)-5 b(alue)25 b(of)i(a)f(\015oating)g(p)s(oin)m(t)
+f(k)m(eyw)m(ord,)j(returning)c(the)i(in)m(teger)g(and)g(fractional)f
+(parts)h(of)g(the)g(v)-5 b(alue)227 2090 y(in)31 b(separate)h
+(subroutine)e(argumen)m(ts.)45 b(This)30 b(subroutine)f(ma)m(y)k(b)s(e)
+e(used)g(to)h(read)g(an)m(y)g(k)m(eyw)m(ord)g(but)f(is)227
+2203 y(esp)s(ecially)e(useful)f(for)j(reading)e(the)i('triple)e
+(precision')f(k)m(eyw)m(ords)j(written)f(b)m(y)g(FTPKYT.)382
+2465 y Fe(FTGKYT\(unit,keyword,)42 b(>)48 b(intval,dblval,comment,s)o
+(tat)o(us\))0 2727 y Fh(9)81 b Fi(Get)24 b(the)g(ph)m(ysical)f(units)f
+(string)g(in)h(an)g(existing)g(k)m(eyw)m(ord.)39 b(This)22
+b(routine)h(uses)g(a)h(lo)s(cal)f(con)m(v)m(en)m(tion,)k(sho)m(wn)227
+2840 y(in)32 b(the)i(follo)m(wing)d(example,)j(in)e(whic)m(h)g(the)h(k)
+m(eyw)m(ord)h(units)e(are)h(enclosed)g(in)f(square)h(brac)m(k)m(ets)i
+(in)d(the)227 2953 y(b)s(eginning)g(of)j(the)g(k)m(eyw)m(ord)g(commen)m
+(t)h(\014eld.)52 b(A)35 b(blank)f(string)f(is)h(returned)g(if)f(no)i
+(units)e(are)i(de\014ned)227 3066 y(for)30 b(the)h(k)m(eyw)m(ord.)191
+3328 y Fe(VELOCITY=)809 b(12.3)46 b(/)i([km/s])e(orbital)g(speed)382
+3553 y(FTGUNT\(unit,keyword,)c(>)48 b(units,status\))0
+3846 y Fb(9.4.6)112 b(Mo)s(dify)38 b(Keyw)m(ord)f(Subroutines)0
+4066 y Fi(Wild)30 b(card)h(c)m(haracters,)j(as)e(describ)s(ed)d(in)h
+(the)i(Read)g(Keyw)m(ord)f(section,)h(ab)s(o)m(v)m(e,)h(ma)m(y)g(b)s(e)
+d(used)h(when)g(sp)s(eci-)0 4179 y(fying)e(the)i(name)f(of)h(the)f(k)m
+(eyw)m(ord)h(to)g(b)s(e)f(mo)s(di\014ed.)0 4441 y Fh(1)81
+b Fi(Mo)s(dify)29 b(\(o)m(v)m(erwrite\))i(the)g(n)m(th)f(80-c)m
+(haracter)j(header)d(record)h(in)e(the)h(CHU)382 4702
+y Fe(FTMREC\(unit,key_no,card,)41 b(>)47 b(status\))0
+4964 y Fh(2)81 b Fi(Mo)s(dify)36 b(\(o)m(v)m(erwrite\))j(the)f(80-c)m
+(haracter)j(header)c(record)h(for)f(the)h(named)f(k)m(eyw)m(ord)h(in)f
+(the)h(CHU.)g(This)227 5077 y(can)31 b(b)s(e)f(used)f(to)i(o)m(v)m
+(erwrite)g(the)g(name)f(of)h(the)f(k)m(eyw)m(ord)h(as)g(w)m(ell)e(as)i
+(its)f(v)-5 b(alue)29 b(and)h(commen)m(t)i(\014elds.)382
+5339 y Fe(FTMCRD\(unit,keyword,card)o(,)42 b(>)47 b(status\))0
+5601 y Fh(3)81 b Fi(Mo)s(dify)32 b(\(o)m(v)m(erwrite\))k(the)e(name)g
+(of)h(an)f(existing)f(k)m(eyw)m(ord)h(in)f(the)i(CHU)f(preserving)e
+(the)j(curren)m(t)e(v)-5 b(alue)227 5714 y(and)30 b(commen)m(t)h
+(\014elds.)p eop
+%%Page: 83 89
+83 88 bop 0 299 a Fg(9.4.)72 b(FITS)30 b(HEADER)h(I/O)f(SUBR)m(OUTINES)
+2086 b Fi(83)382 555 y Fe(FTMNAM\(unit,oldkey,keywo)o(rd,)41
+b(>)48 b(status\))0 823 y Fh(4)81 b Fi(Mo)s(dify)29 b(\(o)m(v)m
+(erwrite\))i(the)g(commen)m(t)g(\014eld)e(of)i(an)f(existing)f(k)m(eyw)
+m(ord)i(in)e(the)i(CHU)382 1091 y Fe(FTMCOM\(unit,keyword,comm)o(ent)o
+(,)42 b(>)47 b(status\))0 1358 y Fh(5)81 b Fi(Mo)s(dify)23
+b(the)i(v)-5 b(alue)24 b(and)g(commen)m(t)i(\014elds)d(of)i(an)f
+(existing)g(k)m(eyw)m(ord)h(in)e(the)i(CHU.)g(The)f(FTMKLS)g(subrou-)
+227 1471 y(tine)34 b(w)m(orks)f(the)h(same)h(as)f(the)g(FTMKYS)f
+(subroutine,)g(except)i(it)f(also)f(supp)s(orts)f(long)i(string)f(v)-5
+b(alues)227 1584 y(greater)38 b(than)f(68)h(c)m(haracters)g(in)e
+(length.)59 b(Optionally)-8 b(,)37 b(one)g(ma)m(y)h(mo)s(dify)d(only)h
+(the)h(v)-5 b(alue)36 b(\014eld)g(and)227 1697 y(lea)m(v)m(e)31
+b(the)e(commen)m(t)i(\014eld)d(unc)m(hanged)h(b)m(y)g(setting)g(the)h
+(input)d(COMMENT)i(parameter)h(equal)f(to)h(the)227 1810
+y(amp)s(ersand)f(c)m(haracter)k(\(&\).)42 b(The)30 b(E)g(and)g(D)h(v)m
+(ersions)f(of)h(this)f(routine)f(ha)m(v)m(e)j(the)f(added)f(feature)h
+(that)227 1923 y(if)25 b(the)i('decimals')e(parameter)i(is)e(negativ)m
+(e,)k(then)d(the)g('G')h(displa)m(y)d(format)j(rather)f(then)g(the)g
+('E')h(format)227 2036 y(will)f(b)s(e)i(used)f(when)h(constructing)g
+(the)g(k)m(eyw)m(ord)h(v)-5 b(alue,)29 b(taking)f(the)h(absolute)f(v)-5
+b(alue)28 b(of)g('decimals')g(for)227 2149 y(the)37 b(precision.)58
+b(This)34 b(will)g(suppress)h(trailing)f(zeros,)39 b(and)d(will)e(use)j
+(a)g(\014xed)e(format)i(rather)g(than)f(an)227 2262 y(exp)s(onen)m
+(tial)30 b(format,)h(dep)s(ending)c(on)k(the)f(magnitude)g(of)g(the)h
+(v)-5 b(alue.)382 2530 y Fe(FTMKY[JLS]\(unit,keyword,)o(key)o(val,)o
+(comm)o(ent)o(,)42 b(>)47 b(status\))382 2642 y
+(FTMKLS\(unit,keyword,keyv)o(al,)o(comm)o(ent,)41 b(>)47
+b(status\))382 2755 y(FTMKY[EDFG]\(unit,keyword)o(,ke)o(yval)o(,dec)o
+(ima)o(ls,c)o(omme)o(nt,)41 b(>)48 b(status\))0 3023
+y Fh(6)81 b Fi(Mo)s(dify)21 b(the)h(v)-5 b(alue)22 b(of)g(an)g
+(existing)g(k)m(eyw)m(ord)g(to)h(b)s(e)f(unde\014ned,)g(or)g(n)m(ull.)
+36 b(The)22 b(v)-5 b(alue)21 b(string)h(of)g(the)g(k)m(eyw)m(ord)227
+3136 y(is)29 b(set)i(to)g(blank.)39 b(Optionally)-8 b(,)28
+b(one)i(ma)m(y)h(lea)m(v)m(e)g(the)g(commen)m(t)g(\014eld)d(unc)m
+(hanged)i(b)m(y)g(setting)g(the)g(input)227 3249 y(COMMENT)g(parameter)
+h(equal)f(to)h(the)g(amp)s(ersand)e(c)m(haracter)j(\(&\).)382
+3517 y Fe(FTMKYU\(unit,keyword,comm)o(ent)o(,)42 b(>)47
+b(status\))0 3817 y Fb(9.4.7)112 b(Up)s(date)39 b(Keyw)m(ord)e
+(Subroutines)0 4032 y Fh(1)81 b Fi(Up)s(date)36 b(an)g(80-c)m(haracter)
+j(record)d(in)f(the)i(CHU.)f(If)g(the)g(sp)s(eci\014ed)f(k)m(eyw)m(ord)
+i(already)e(exists)h(then)g(that)227 4144 y(header)j(record)f(will)e(b)
+s(e)i(replaced)h(with)e(the)i(input)e(CARD)h(string.)65
+b(If)38 b(it)h(do)s(es)f(not)h(exist)f(then)h(the)227
+4257 y(new)f(record)g(will)d(b)s(e)i(added)h(to)g(the)g(header.)64
+b(The)37 b(FTUKLS)g(subroutine)f(w)m(orks)i(the)g(same)h(as)f(the)227
+4370 y(FTUKYS)28 b(subroutine,)f(except)j(it)e(also)h(supp)s(orts)d
+(long)i(string)g(v)-5 b(alues)28 b(greater)i(than)e(68)h(c)m(haracters)
+h(in)227 4483 y(length.)382 4751 y Fe(FTUCRD\(unit,keyword,card)o(,)42
+b(>)47 b(status\))0 5019 y Fh(2)81 b Fi(Up)s(date)44
+b(the)i(v)-5 b(alue)44 b(and)h(commen)m(t)h(\014elds)d(of)i(a)h(k)m
+(eyw)m(ord)f(in)f(the)h(CHU.)h(The)e(sp)s(eci\014ed)f(k)m(eyw)m(ord)j
+(is)227 5132 y(mo)s(di\014ed)37 b(if)g(it)h(already)g(exists)g(\(b)m(y)
+h(calling)e(FTMKYx\))i(otherwise)e(a)i(new)f(k)m(eyw)m(ord)h(is)f
+(created)h(b)m(y)227 5245 y(calling)c(FTPKYx.)58 b(The)36
+b(E)g(and)f(D)i(v)m(ersions)e(of)i(this)e(routine)g(ha)m(v)m(e)i(the)g
+(added)e(feature)i(that)g(if)e(the)227 5357 y('decimals')30
+b(parameter)i(is)e(negativ)m(e,)i(then)e(the)h('G')h(displa)m(y)d
+(format)i(rather)g(then)f(the)h('E')g(format)h(will)227
+5470 y(b)s(e)41 b(used)f(when)h(constructing)g(the)g(k)m(eyw)m(ord)h(v)
+-5 b(alue,)44 b(taking)d(the)g(absolute)g(v)-5 b(alue)41
+b(of)h('decimals')e(for)227 5583 y(the)d(precision.)58
+b(This)34 b(will)g(suppress)h(trailing)f(zeros,)39 b(and)d(will)e(use)j
+(a)g(\014xed)e(format)i(rather)g(than)f(an)227 5696 y(exp)s(onen)m
+(tial)30 b(format,)h(dep)s(ending)c(on)k(the)f(magnitude)g(of)g(the)h
+(v)-5 b(alue.)p eop
+%%Page: 84 90
+84 89 bop 0 299 a Fi(84)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)382
+555 y Fe(FTUKY[JLS]\(unit,keyword,)o(key)o(val,)o(comm)o(ent)o(,)42
+b(>)47 b(status\))382 668 y(FTUKLS\(unit,keyword,keyv)o(al,)o(comm)o
+(ent,)41 b(>)47 b(status\))382 781 y(FTUKY[EDFG]\(unit,keyword)o(,ke)o
+(yval)o(,dec)o(ima)o(ls,c)o(omme)o(nt,)41 b(>)48 b(status\))0
+1044 y Fh(3)81 b Fi(Up)s(date)23 b(the)g(v)-5 b(alue)23
+b(of)h(an)f(existing)g(k)m(eyw)m(ord)h(to)g(b)s(e)f(unde\014ned,)f(or)i
+(n)m(ull,)f(or)g(insert)g(a)g(new)g(unde\014ned-v)-5
+b(alue)227 1157 y(k)m(eyw)m(ord)30 b(if)e(it)h(do)s(esn't)g(already)g
+(exist.)40 b(The)29 b(v)-5 b(alue)29 b(string)f(of)h(the)h(k)m(eyw)m
+(ord)f(is)g(left)g(blank)f(in)f(this)i(case.)382 1420
+y Fe(FTUKYU\(unit,keyword,comm)o(ent)o(,)42 b(>)47 b(status\))0
+1715 y Fb(9.4.8)112 b(Delete)37 b(Keyw)m(ord)g(Subroutines)0
+1927 y Fh(1)81 b Fi(Delete)31 b(an)f(existing)f(k)m(eyw)m(ord)i
+(record.)40 b(The)30 b(space)h(previously)d(o)s(ccupied)h(b)m(y)h(the)g
+(k)m(eyw)m(ord)h(is)e(reclaimed)227 2040 y(b)m(y)d(mo)m(ving)g(all)f
+(the)h(follo)m(wing)f(header)h(records)g(up)f(one)h(ro)m(w)h(in)d(the)j
+(header.)39 b(The)25 b(\014rst)h(routine)f(deletes)227
+2153 y(a)34 b(k)m(eyw)m(ord)f(at)h(a)g(sp)s(eci\014ed)d(p)s(osition)g
+(in)h(the)h(header)g(\(the)h(\014rst)e(k)m(eyw)m(ord)i(is)e(at)i(p)s
+(osition)d(1\),)k(whereas)227 2266 y(the)d(second)g(routine)f(deletes)h
+(a)g(sp)s(eci\014cally)d(named)i(k)m(eyw)m(ord.)46 b(Wild)30
+b(card)h(c)m(haracters,)j(as)e(describ)s(ed)227 2378
+y(in)e(the)h(Read)g(Keyw)m(ord)f(section,)h(ab)s(o)m(v)m(e,)h(ma)m(y)g
+(b)s(e)e(used)g(when)f(sp)s(ecifying)g(the)i(name)g(of)g(the)f(k)m(eyw)
+m(ord)227 2491 y(to)h(b)s(e)f(deleted)g(\(b)s(e)g(careful!\).)382
+2755 y Fe(FTDREC\(unit,key_no,)42 b(>)48 b(status\))382
+2867 y(FTDKEY\(unit,keyword,)42 b(>)48 b(status\))0 3205
+y Fd(9.5)135 b(Data)46 b(Scaling)g(and)e(Unde\014ned)h(Pixel)h(P)l
+(arameters)0 3456 y Fi(These)24 b(subroutines)e(de\014ne)i(or)h(mo)s
+(dify)d(the)j(in)m(ternal)e(parameters)i(used)f(b)m(y)g(FITSIO)g(to)h
+(either)f(scale)h(the)f(data)0 3569 y(or)33 b(to)i(represen)m(t)e
+(unde\014ned)e(pixels.)48 b(Generally)33 b(FITSIO)f(will)f(scale)i(the)
+h(data)g(according)f(to)h(the)g(v)-5 b(alues)33 b(of)0
+3682 y(the)f(BSCALE)g(and)f(BZER)m(O)h(\(or)h(TSCALn)d(and)i(TZER)m
+(On\))f(k)m(eyw)m(ords,)i(ho)m(w)m(ev)m(er)h(these)e(subroutines)e(ma)m
+(y)0 3795 y(b)s(e)i(used)h(to)h(o)m(v)m(erride)f(the)g(k)m(eyw)m(ord)h
+(v)-5 b(alues.)48 b(This)31 b(ma)m(y)j(b)s(e)f(useful)e(when)h(one)i(w)
+m(an)m(ts)f(to)h(read)f(or)g(write)g(the)0 3908 y(ra)m(w)d(unscaled)e
+(v)-5 b(alues)28 b(in)h(the)g(FITS)g(\014le.)39 b(Similarly)-8
+b(,)27 b(FITSIO)h(generally)h(uses)g(the)g(v)-5 b(alue)29
+b(of)h(the)f(BLANK)h(or)0 4021 y(TNULLn)35 b(k)m(eyw)m(ord)h(to)g
+(signify)d(an)j(unde\014ned)d(pixel,)i(but)g(these)h(routines)f(ma)m(y)
+h(b)s(e)e(used)h(to)h(o)m(v)m(erride)g(this)0 4134 y(v)-5
+b(alue.)40 b(These)30 b(subroutines)e(do)j(not)f(create)i(or)f(mo)s
+(dify)d(the)j(corresp)s(onding)d(header)i(k)m(eyw)m(ord)h(v)-5
+b(alues.)0 4397 y Fh(1)81 b Fi(Reset)26 b(the)g(scaling)e(factors)i(in)
+e(the)i(primary)e(arra)m(y)i(or)f(image)h(extension;)h(do)s(es)e(not)g
+(c)m(hange)i(the)f(BSCALE)227 4510 y(and)i(BZER)m(O)g(k)m(eyw)m(ord)h
+(v)-5 b(alues)27 b(and)h(only)f(a\013ects)j(the)e(automatic)i(scaling)d
+(p)s(erformed)g(when)g(the)h(data)227 4623 y(elemen)m(ts)e(are)g
+(written/read)f(to/from)h(the)g(FITS)f(\014le.)38 b(When)25
+b(reading)g(from)g(a)h(FITS)f(\014le)f(the)i(returned)227
+4736 y(data)i(v)-5 b(alue)27 b(=)g(\(the)h(v)-5 b(alue)27
+b(giv)m(en)h(in)e(the)h(FITS)g(arra)m(y\))h(*)g(BSCALE)f(+)g(BZER)m(O.)
+g(The)g(in)m(v)m(erse)h(form)m(ula)227 4849 y(is)33 b(used)g(when)g
+(writing)f(data)j(v)-5 b(alues)33 b(to)h(the)g(FITS)g(\014le.)50
+b(\(NOTE:)34 b(BSCALE)f(and)g(BZER)m(O)h(m)m(ust)g(b)s(e)227
+4962 y(declared)c(as)h(Double)f(Precision)f(v)-5 b(ariables\).)382
+5225 y Fe(FTPSCL\(unit,bscale,bzero)o(,)42 b(>)47 b(status\))0
+5488 y Fh(2)81 b Fi(Reset)39 b(the)f(scaling)g(parameters)g(for)h(a)f
+(table)g(column;)k(do)s(es)c(not)g(c)m(hange)i(the)e(TSCALn)f(or)h
+(TZER)m(On)227 5601 y(k)m(eyw)m(ord)29 b(v)-5 b(alues)28
+b(and)f(only)h(a\013ects)h(the)g(automatic)g(scaling)e(p)s(erformed)g
+(when)g(the)i(data)g(elemen)m(ts)g(are)227 5714 y(written/read)i
+(to/from)h(the)g(FITS)f(\014le.)43 b(When)31 b(reading)f(from)h(a)h
+(FITS)f(\014le)f(the)i(returned)e(data)i(v)-5 b(alue)p
+eop
+%%Page: 85 91
+85 90 bop 0 299 a Fg(9.6.)72 b(FITS)30 b(PRIMAR)-8 b(Y)31
+b(ARRA)-8 b(Y)31 b(OR)f(IMA)m(GE)h(EXTENSION)e(I/O)i(SUBR)m(OUTINES)589
+b Fi(85)227 555 y(=)40 b(\(the)h(v)-5 b(alue)39 b(giv)m(en)h(in)f(the)h
+(FITS)g(arra)m(y\))g(*)h(TSCAL)e(+)g(TZER)m(O.)h(The)f(in)m(v)m(erse)h
+(form)m(ula)g(is)f(used)227 668 y(when)33 b(writing)f(data)j(v)-5
+b(alues)34 b(to)g(the)h(FITS)e(\014le.)51 b(\(NOTE:)34
+b(TSCAL)f(and)g(TZER)m(O)g(m)m(ust)h(b)s(e)f(declared)227
+781 y(as)e(Double)f(Precision)f(v)-5 b(ariables\).)382
+1041 y Fe(FTTSCL\(unit,colnum,tscal)o(,tz)o(ero,)41 b(>)48
+b(status\))0 1300 y Fh(3)81 b Fi(De\014ne)36 b(the)g(in)m(teger)h(v)-5
+b(alue)35 b(to)i(b)s(e)e(used)h(to)h(signify)d(unde\014ned)g(pixels)g
+(in)h(the)h(primary)e(arra)m(y)j(or)f(image)227 1413
+y(extension.)53 b(This)33 b(is)g(only)h(used)g(if)f(BITPIX)h(=)h(8,)h
+(16,)g(or)f(32.)54 b(This)33 b(do)s(es)h(not)h(create)h(or)e(c)m(hange)
+i(the)227 1526 y(v)-5 b(alue)30 b(of)h(the)f(BLANK)h(k)m(eyw)m(ord)g
+(in)e(the)h(header.)382 1786 y Fe(FTPNUL\(unit,blank,)43
+b(>)k(status\))0 2046 y Fh(4)81 b Fi(De\014ne)36 b(the)g(string)f(to)h
+(b)s(e)f(used)g(to)i(signify)d(unde\014ned)g(pixels)g(in)g(a)i(column)f
+(in)g(an)g(ASCI)s(I)g(table.)57 b(This)227 2158 y(do)s(es)30
+b(not)h(create)h(or)e(c)m(hange)i(the)e(v)-5 b(alue)30
+b(of)h(the)f(TNULLn)g(k)m(eyw)m(ord.)382 2418 y Fe
+(FTSNUL\(unit,colnum,snull)41 b(>)47 b(status\))0 2678
+y Fh(5)81 b Fi(De\014ne)34 b(the)h(v)-5 b(alue)33 b(to)i(b)s(e)f(used)g
+(to)h(signify)d(unde\014ned)g(pixels)h(in)g(an)h(in)m(teger)h(column)e
+(in)g(a)h(binary)f(table)227 2791 y(\(where)c(TF)m(ORMn)f(=)g('B',)i
+('I',)f(or)f('J'\).)i(This)c(do)s(es)j(not)f(create)j(or)d(c)m(hange)i
+(the)e(v)-5 b(alue)28 b(of)h(the)g(TNULLn)227 2904 y(k)m(eyw)m(ord.)382
+3163 y Fe(FTTNUL\(unit,colnum,tnull)41 b(>)47 b(status\))0
+3497 y Fd(9.6)135 b(FITS)44 b(Primary)h(Arra)l(y)g(or)g(IMA)l(GE)g
+(Extension)h(I/O)f(Subroutines)0 3747 y Fi(These)26 b(subroutines)e
+(put)i(or)h(get)g(data)h(v)-5 b(alues)25 b(in)h(the)g(primary)f(data)i
+(arra)m(y)g(\(i.e.,)h(the)f(\014rst)f(HDU)h(in)e(the)i(FITS)0
+3860 y(\014le\))34 b(or)h(an)f(IMA)m(GE)i(extension.)53
+b(The)34 b(data)i(arra)m(y)f(is)e(represen)m(ted)i(as)g(a)g(single)e
+(one-dimensional)g(arra)m(y)i(of)0 3973 y(pixels)f(regardless)i(of)g
+(the)g(actual)g(dimensionalit)m(y)d(of)k(the)f(arra)m(y)-8
+b(,)38 b(and)e(the)g(FPIXEL)g(parameter)g(giv)m(es)h(the)0
+4086 y(p)s(osition)26 b(within)e(this)j(1-D)h(arra)m(y)g(of)g(the)g
+(\014rst)e(pixel)g(to)i(read)g(or)f(write.)39 b(Automatic)28
+b(data)g(t)m(yp)s(e)g(con)m(v)m(ersion)g(is)0 4199 y(p)s(erformed)h
+(for)i(n)m(umeric)f(data)h(\(except)i(for)d(complex)h(data)g(t)m(yp)s
+(es\))h(if)e(the)h(data)g(t)m(yp)s(e)g(of)g(the)g(primary)e(arra)m(y)0
+4312 y(\(de\014ned)f(b)m(y)g(the)h(BITPIX)f(k)m(eyw)m(ord\))h
+(di\013ers)f(from)g(the)g(data)i(t)m(yp)s(e)e(of)h(the)g(arra)m(y)g(in)
+e(the)i(calling)e(subroutine.)0 4425 y(The)41 b(data)i(v)-5
+b(alues)41 b(are)h(also)g(scaled)f(b)m(y)h(the)g(BSCALE)f(and)g(BZER)m
+(O)h(header)f(v)-5 b(alues)41 b(as)h(they)g(are)g(b)s(eing)0
+4538 y(written)31 b(or)h(read)g(from)g(the)g(FITS)g(arra)m(y)-8
+b(.)47 b(The)31 b(ftpscl)h(subroutine)e(MUST)h(b)s(e)h(called)f(to)i
+(de\014ne)e(the)i(scaling)0 4650 y(parameters)h(when)e(writing)g(data)i
+(to)g(the)g(FITS)f(arra)m(y)h(or)f(to)h(o)m(v)m(erride)g(the)g(default)
+e(scaling)h(v)-5 b(alue)33 b(giv)m(en)g(in)0 4763 y(the)e(header)f
+(when)f(reading)h(the)g(FITS)g(arra)m(y)-8 b(.)0 4924
+y(Tw)m(o)41 b(sets)f(of)h(subroutines)d(are)j(pro)m(vided)e(to)i(read)g
+(the)f(data)i(arra)m(y)f(whic)m(h)e(di\013er)g(in)g(the)i(w)m(a)m(y)g
+(unde\014ned)0 5036 y(pixels)33 b(are)j(handled.)54 b(The)35
+b(\014rst)f(set)i(of)g(routines)e(\(FTGPVx\))i(simply)d(return)h(an)h
+(arra)m(y)h(of)g(data)g(elemen)m(ts)0 5149 y(in)31 b(whic)m(h)g
+(unde\014ned)f(pixels)g(are)j(set)f(equal)g(to)h(a)g(v)-5
+b(alue)31 b(sp)s(eci\014ed)g(b)m(y)h(the)g(user)g(in)f(the)h('n)m(ullv)
+-5 b(al')30 b(parameter.)0 5262 y(An)k(additional)f(feature)i(of)f
+(these)h(subroutines)e(is)g(that)j(if)d(the)i(user)f(sets)h(n)m(ullv)-5
+b(al)32 b(=)i(0,)i(then)f(no)f(c)m(hec)m(ks)i(for)0 5375
+y(unde\014ned)d(pixels)h(will)f(b)s(e)h(p)s(erformed,)i(th)m(us)f
+(increasing)f(the)i(sp)s(eed)e(of)i(the)g(program.)55
+b(The)35 b(second)h(set)g(of)0 5488 y(routines)30 b(\(FTGPFx\))j
+(returns)d(the)i(data)g(elemen)m(t)g(arra)m(y)g(and,)f(in)g(addition,)f
+(a)i(logical)f(arra)m(y)h(whic)m(h)e(de\014nes)0 5601
+y(whether)40 b(the)g(corresp)s(onding)e(data)j(pixel)e(is)g
+(unde\014ned.)69 b(The)39 b(latter)i(set)g(of)f(subroutines)e(ma)m(y)j
+(b)s(e)f(more)0 5714 y(con)m(v)m(enien)m(t)32 b(to)h(use)e(in)f(some)h
+(circumstances,)h(ho)m(w)m(ev)m(er,)h(it)e(requires)f(an)h(additional)e
+(arra)m(y)j(of)g(logical)f(v)-5 b(alues)p eop
+%%Page: 86 92
+86 91 bop 0 299 a Fi(86)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fi(whic)m(h)35 b(can)h(b)s(e)g(un)m(wieldy)d(when)j(w)m(orking)f
+(with)g(large)h(data)h(arra)m(ys.)58 b(Also)36 b(for)g(programmer)g
+(con)m(v)m(enience,)0 668 y(sets)j(of)g(subroutines)e(to)i(directly)f
+(read)g(or)h(write)f(2)h(and)g(3)g(dimensional)d(arra)m(ys)j(ha)m(v)m
+(e)h(b)s(een)e(pro)m(vided,)i(as)0 781 y(w)m(ell)29 b(as)h(a)g(set)g
+(of)g(subroutines)d(to)j(read)g(or)g(write)e(an)m(y)i(con)m(tiguous)g
+(rectangular)g(subset)f(of)h(pixels)e(within)f(the)0
+894 y(n-dimensional)g(arra)m(y)-8 b(.)0 1150 y Fh(1)81
+b Fi(Get)30 b(the)g(data)g(t)m(yp)s(e)f(of)h(the)g(image)f(\(=)h
+(BITPIX)f(v)-5 b(alue\).)40 b(P)m(ossible)28 b(returned)g(v)-5
+b(alues)29 b(are:)41 b(8,)30 b(16,)h(32,)g(-32,)227 1263
+y(or)f(-64)h(corresp)s(onding)d(to)j(unsigned)d(b)m(yte,)j(signed)e
+(2-b)m(yte)i(in)m(teger,)g(signed)e(4-b)m(yte)i(in)m(teger,)g(real,)f
+(and)227 1376 y(double.)227 1525 y(The)c(second)f(subroutine)f(is)h
+(similar)e(to)j(FTGIDT,)h(except)f(that)h(if)e(the)g(image)i(pixel)d(v)
+-5 b(alues)25 b(are)h(scaled,)227 1638 y(with)g(non-default)g(v)-5
+b(alues)26 b(for)h(the)h(BZER)m(O)f(and)f(BSCALE)g(k)m(eyw)m(ords,)j
+(then)e(this)f(routine)g(will)e(return)227 1751 y(the)32
+b('equiv)-5 b(alen)m(t')31 b(data)g(t)m(yp)s(e)h(that)f(is)f(needed)h
+(to)h(store)g(the)f(scaled)g(v)-5 b(alues.)42 b(F)-8
+b(or)32 b(example,)f(if)f(BITPIX)227 1864 y(=)39 b(16)g(and)g(BSCALE)f
+(=)g(0.1)i(then)f(the)g(equiv)-5 b(alen)m(t)38 b(data)h(t)m(yp)s(e)g
+(is)f(\015oating)h(p)s(oin)m(t,)h(and)e(-32)i(will)d(b)s(e)227
+1977 y(returned.)65 b(There)39 b(are)g(2)g(sp)s(ecial)f(cases:)58
+b(if)38 b(the)h(image)g(con)m(tains)g(unsigned)e(2-b)m(yte)j(in)m
+(teger)f(v)-5 b(alues,)227 2090 y(with)39 b(BITPIX)h(=)f(16,)44
+b(BSCALE)39 b(=)h(1,)j(and)c(BZER)m(O)h(=)g(32768,)45
+b(then)39 b(this)g(routine)g(will)f(return)h(a)227 2203
+y(non-standard)26 b(v)-5 b(alue)26 b(of)h(20)h(for)f(the)g(bitpix)e(v)
+-5 b(alue.)39 b(Similarly)23 b(if)i(the)j(image)f(con)m(tains)g
+(unsigned)e(4-b)m(yte)227 2316 y(in)m(tegers,)31 b(then)f(bitpix)e
+(will)g(b)s(e)i(returned)f(with)g(a)i(v)-5 b(alue)30
+b(of)g(40.)382 2571 y Fe(FTGIDT\(unit,)44 b(>)k(bitpix,status\))382
+2684 y(FTGIET\(unit,)c(>)k(bitpix,status\))0 2940 y Fh(2)81
+b Fi(Get)31 b(the)g(dimension)c(\(n)m(um)m(b)s(er)j(of)g(axes)h(=)f
+(NAXIS\))h(of)f(the)h(image)382 3196 y Fe(FTGIDM\(unit,)44
+b(>)k(naxis,status\))0 3452 y Fh(3)81 b Fi(Get)31 b(the)g(size)f(of)g
+(all)g(the)g(dimensions)e(of)i(the)h(image)382 3707 y
+Fe(FTGISZ\(unit,)44 b(maxdim,)i(>)i(naxes,status\))0
+3963 y Fh(4)81 b Fi(Get)35 b(the)f(parameters)g(that)h(de\014ne)e(the)h
+(t)m(yp)s(e)g(and)g(size)f(of)i(the)f(image.)52 b(This)32
+b(routine)h(simply)e(com)m(bines)227 4076 y(calls)f(to)h(the)f(ab)s(o)m
+(v)m(e)i(3)f(routines.)382 4332 y Fe(FTGIPR\(unit,)44
+b(maxdim,)i(>)i(bitpix,)d(naxis,)h(naxes,)h(int)f(*status\))0
+4588 y Fh(5)81 b Fi(Put)30 b(elemen)m(ts)g(in)m(to)h(the)f(data)h(arra)
+m(y)382 4843 y Fe(FTPPR[BIJED]\(unit,group,)o(fpi)o(xel,)o(nele)o(men)o
+(ts,v)o(alue)o(s,)41 b(>)48 b(status\))0 5099 y Fh(6)81
+b Fi(Put)30 b(elemen)m(ts)h(in)m(to)f(the)h(data)g(arra)m(y)-8
+b(,)32 b(substituting)c(the)i(appropriate)g(FITS)g(n)m(ull)e(v)-5
+b(alue)30 b(for)g(all)g(elemen)m(ts)227 5212 y(whic)m(h)d(are)g(equal)h
+(to)g(the)f(v)-5 b(alue)27 b(of)h(NULL)-10 b(V)g(AL.)28
+b(F)-8 b(or)28 b(in)m(teger)g(FITS)f(arra)m(ys,)i(the)e(n)m(ull)f(v)-5
+b(alue)27 b(de\014ned)f(b)m(y)227 5325 y(the)k(previous)e(call)h(to)i
+(FTPNUL)e(will)e(b)s(e)i(substituted;)g(for)g(\015oating)h(p)s(oin)m(t)
+f(FITS)g(arra)m(ys)h(\(BITPIX)f(=)227 5438 y(-32)j(or)e(-64\))i(then)e
+(the)h(sp)s(ecial)e(IEEE)g(NaN)i(\(Not-a-Num)m(b)s(er\))h(v)-5
+b(alue)30 b(will)e(b)s(e)i(substituted.)382 5694 y Fe
+(FTPPN[BIJED]\(unit,group,)o(fpi)o(xel,)o(nele)o(men)o(ts,v)o(alue)o
+(s,n)o(ullv)o(al)42 b(>)47 b(status\))p eop
+%%Page: 87 93
+87 92 bop 0 299 a Fg(9.6.)72 b(FITS)30 b(PRIMAR)-8 b(Y)31
+b(ARRA)-8 b(Y)31 b(OR)f(IMA)m(GE)h(EXTENSION)e(I/O)i(SUBR)m(OUTINES)589
+b Fi(87)0 555 y Fh(7)81 b Fi(Set)30 b(data)h(arra)m(y)g(elemen)m(ts)g
+(as)f(unde\014ned)382 808 y Fe(FTPPRU\(unit,group,fpixel)o(,ne)o(leme)o
+(nts,)41 b(>)47 b(status\))0 1060 y Fh(8)81 b Fi(Get)36
+b(elemen)m(ts)f(from)g(the)g(data)h(arra)m(y)-8 b(.)55
+b(Unde\014ned)34 b(arra)m(y)h(elemen)m(ts)h(will)c(b)s(e)j(returned)f
+(with)f(a)j(v)-5 b(alue)34 b(=)227 1173 y(n)m(ullv)-5
+b(al,)28 b(unless)h(n)m(ullv)-5 b(al)28 b(=)i(0)h(in)e(whic)m(h)g(case)
+i(no)g(c)m(hec)m(ks)g(for)g(unde\014ned)d(pixels)g(will)g(b)s(e)i(p)s
+(erformed.)382 1425 y Fe(FTGPV[BIJED]\(unit,group,)o(fpi)o(xel,)o(nele)
+o(men)o(ts,n)o(ullv)o(al,)41 b(>)48 b(values,anyf,status\))0
+1678 y Fh(9)81 b Fi(Get)32 b(elemen)m(ts)f(and)g(n)m(ull\015ags)e(from)
+i(data)h(arra)m(y)-8 b(.)44 b(An)m(y)32 b(unde\014ned)d(arra)m(y)i
+(elemen)m(ts)h(will)c(ha)m(v)m(e)33 b(the)e(corre-)227
+1791 y(sp)s(onding)d(\015agv)-5 b(als)30 b(elemen)m(t)h(set)g(equal)f
+(to)h(.TR)m(UE.)382 2043 y Fe(FTGPF[BIJED]\(unit,group,)o(fpi)o(xel,)o
+(nele)o(men)o(ts,)41 b(>)48 b(values,flagvals,anyf,sta)o(tus)o(\))0
+2295 y Fh(10)e Fi(Put)30 b(v)-5 b(alues)30 b(in)m(to)g(group)g
+(parameters)382 2548 y Fe(FTPGP[BIJED]\(unit,group,)o(fpa)o(rm,n)o
+(parm)o(,va)o(lues)o(,)42 b(>)47 b(status\))0 2800 y
+Fh(11)f Fi(Get)31 b(v)-5 b(alues)30 b(from)g(group)g(parameters)382
+3053 y Fe(FTGGP[BIJED]\(unit,group,)o(fpa)o(rm,n)o(parm)o(,)42
+b(>)47 b(values,status\))0 3305 y Fi(The)32 b(follo)m(wing)e(4)j
+(subroutines)d(transfer)h(FITS)h(images)g(with)f(2)h(or)g(3)h
+(dimensions)c(to)k(or)f(from)g(a)h(data)f(arra)m(y)0
+3418 y(whic)m(h)g(has)h(b)s(een)g(declared)f(in)g(the)i(calling)e
+(program.)49 b(The)33 b(dimensionalit)m(y)d(of)k(the)f(FITS)g(image)g
+(is)f(passed)0 3531 y(b)m(y)26 b(the)g(naxis1,)g(naxis2,)h(and)e
+(naxis3)h(parameters)g(and)f(the)h(declared)g(dimensions)d(of)j(the)g
+(program)g(arra)m(y)h(are)0 3644 y(passed)k(in)e(the)j(dim1)d(and)i
+(dim2)f(parameters.)43 b(Note)32 b(that)g(the)f(program)g(arra)m(y)g
+(do)s(es)g(not)g(ha)m(v)m(e)i(to)e(ha)m(v)m(e)i(the)0
+3757 y(same)28 b(dimensions)d(as)j(the)g(FITS)e(arra)m(y)-8
+b(,)30 b(but)d(m)m(ust)g(b)s(e)g(at)i(least)e(as)h(big.)39
+b(F)-8 b(or)29 b(example)e(if)f(a)i(FITS)f(image)h(with)0
+3870 y(NAXIS1)j(=)f(NAXIS2)h(=)f(400)i(is)d(read)i(in)m(to)f(a)h
+(program)f(arra)m(y)h(whic)m(h)e(is)h(dimensioned)e(as)i(512)i(x)f(512)
+g(pixels,)0 3983 y(then)d(the)g(image)h(will)c(just)j(\014ll)e(the)j
+(lo)m(w)m(er)f(left)g(corner)g(of)h(the)f(arra)m(y)h(with)e(pixels)f
+(in)h(the)i(range)f(1)h(-)f(400)i(in)d(the)0 4095 y(X)32
+b(an)g(Y)h(directions.)45 b(This)30 b(has)i(the)h(e\013ect)g(of)g
+(taking)f(a)h(con)m(tiguous)f(set)h(of)f(pixel)f(v)-5
+b(alue)32 b(in)e(the)j(FITS)e(arra)m(y)0 4208 y(and)k(writing)e(them)i
+(to)h(a)g(non-con)m(tiguous)f(arra)m(y)g(in)f(program)h(memory)g
+(\(i.e.,)i(there)f(are)f(no)m(w)h(some)f(blank)0 4321
+y(pixels)29 b(around)g(the)h(edge)i(of)e(the)h(image)f(in)f(the)i
+(program)f(arra)m(y\).)0 4574 y Fh(11)46 b Fi(Put)30
+b(2-D)i(image)e(in)m(to)h(the)f(data)h(arra)m(y)382 4826
+y Fe(FTP2D[BIJED]\(unit,group,)o(dim)o(1,na)o(xis1)o(,na)o(xis2)o(,ima)
+o(ge,)41 b(>)48 b(status\))0 5078 y Fh(12)e Fi(Put)30
+b(3-D)i(cub)s(e)d(in)m(to)i(the)f(data)h(arra)m(y)382
+5331 y Fe(FTP3D[BIJED]\(unit,group,)o(dim)o(1,di)o(m2,n)o(axi)o(s1,n)o
+(axis)o(2,n)o(axis)o(3,cu)o(be,)41 b(>)48 b(status\))0
+5583 y Fh(13)e Fi(Get)29 b(2-D)f(image)g(from)g(the)f(data)i(arra)m(y)
+-8 b(.)41 b(Unde\014ned)26 b(pixels)f(in)i(the)h(arra)m(y)g(will)d(b)s
+(e)i(set)h(equal)f(to)i(the)e(v)-5 b(alue)227 5696 y(of)31
+b('n)m(ullv)-5 b(al',)28 b(unless)h(n)m(ullv)-5 b(al=0)28
+b(in)h(whic)m(h)g(case)j(no)e(testing)h(for)f(unde\014ned)e(pixels)g
+(will)g(b)s(e)i(p)s(erformed.)p eop
+%%Page: 88 94
+88 93 bop 0 299 a Fi(88)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)382
+555 y Fe(FTG2D[BIJED]\(unit,group,)o(nul)o(lval)o(,dim)o(1,n)o(axis)o
+(1,na)o(xis)o(2,)42 b(>)47 b(image,anyf,status\))0 766
+y Fh(14)f Fi(Get)31 b(3-D)h(cub)s(e)e(from)g(the)g(data)h(arra)m(y)-8
+b(.)42 b(Unde\014ned)29 b(pixels)g(in)g(the)h(arra)m(y)h(will)d(b)s(e)i
+(set)h(equal)f(to)h(the)f(v)-5 b(alue)227 879 y(of)31
+b('n)m(ullv)-5 b(al',)28 b(unless)h(n)m(ullv)-5 b(al=0)28
+b(in)h(whic)m(h)g(case)j(no)e(testing)h(for)f(unde\014ned)e(pixels)g
+(will)g(b)s(e)i(p)s(erformed.)382 1089 y Fe(FTG3D[BIJED]\(unit,group,)o
+(nul)o(lval)o(,dim)o(1,d)o(im2,)o(naxi)o(s1,)o(naxi)o(s2,n)o(axi)o(s3,)
+41 b(>)1002 1202 y(cube,anyf,status\))0 1413 y Fi(The)i(follo)m(wing)e
+(subroutines)g(transfer)i(a)h(rectangular)f(subset)f(of)i(the)f(pixels)
+e(in)h(a)i(FITS)e(N-dimensional)0 1525 y(image)30 b(to)h(or)f(from)f
+(an)h(arra)m(y)g(whic)m(h)f(has)h(b)s(een)f(declared)g(in)g(the)h
+(calling)f(program.)40 b(The)29 b(fpixels)f(and)h(lpixels)0
+1638 y(parameters)e(are)h(in)m(teger)f(arra)m(ys)h(whic)m(h)e(sp)s
+(ecify)f(the)j(starting)f(and)f(ending)g(pixels)f(in)h(eac)m(h)i
+(dimension)c(of)k(the)0 1751 y(FITS)36 b(image)h(that)g(are)g(to)h(b)s
+(e)e(read)g(or)h(written.)59 b(\(Note)38 b(that)g(these)f(are)g(the)g
+(starting)f(and)g(ending)g(pixels)0 1864 y(in)d(the)i(FITS)f(image,)j
+(not)e(in)e(the)i(declared)f(arra)m(y\).)55 b(The)34
+b(arra)m(y)i(parameter)f(is)f(treated)h(simply)e(as)i(a)g(large)0
+1977 y(one-dimensional)28 b(arra)m(y)i(of)h(the)f(appropriate)f(datat)m
+(yp)s(e)i(con)m(taining)f(the)g(pixel)e(v)-5 b(alues;)30
+b(The)f(pixel)g(v)-5 b(alues)29 b(in)0 2090 y(the)d(FITS)f(arra)m(y)i
+(are)f(read/written)f(from/to)i(this)e(program)g(arra)m(y)i(in)d
+(strict)i(sequence)g(without)f(an)m(y)i(gaps;)g(it)0
+2203 y(is)h(up)f(to)j(the)f(calling)e(routine)h(to)h(correctly)g(in)m
+(terpret)f(the)h(dimensionalit)m(y)d(of)j(this)f(arra)m(y)-8
+b(.)41 b(The)28 b(t)m(w)m(o)i(families)0 2316 y(of)d(FITS)g(reading)f
+(routines)g(\(FTGSVx)h(and)g(FTGSFx)g(subroutines\))e(also)j(ha)m(v)m
+(e)g(an)f('incs')g(parameter)g(whic)m(h)0 2429 y(de\014nes)j(the)h
+(data)h(sampling)c(in)m(terv)-5 b(al)30 b(in)g(eac)m(h)i(dimension)c
+(of)j(the)g(FITS)f(arra)m(y)-8 b(.)43 b(F)-8 b(or)32
+b(example,)f(if)f(incs\(1\)=2)0 2542 y(and)j(incs\(2\)=3)g(when)g
+(reading)f(a)i(2-dimensional)d(FITS)i(image,)h(then)f(only)g(ev)m(ery)h
+(other)f(pixel)f(in)g(the)i(\014rst)0 2655 y(dimension)c(and)j(ev)m
+(ery)h(3rd)e(pixel)g(in)g(the)h(second)g(dimension)d(will)h(b)s(e)h
+(returned)g(in)g(the)h('arra)m(y')h(parameter.)0 2767
+y([Note:)39 b(the)25 b(FTGSSx)f(family)g(of)g(routines)g(whic)m(h)g(w)m
+(ere)h(presen)m(t)g(in)e(previous)g(v)m(ersions)h(of)h(FITSIO)f(ha)m(v)
+m(e)i(b)s(een)0 2880 y(sup)s(erseded)i(b)m(y)j(the)f(more)h(general)f
+(FTGSVx)g(family)f(of)i(routines.])0 3091 y Fh(15)46
+b Fi(Put)30 b(an)g(arbitrary)f(data)i(subsection)f(in)m(to)g(the)h
+(data)g(arra)m(y)-8 b(.)382 3301 y Fe(FTPSS[BIJED]\(unit,group,)o(nax)o
+(is,n)o(axes)o(,fp)o(ixel)o(s,lp)o(ixe)o(ls,a)o(rray)o(,)42
+b(>)47 b(status\))0 3512 y Fh(16)f Fi(Get)30 b(an)e(arbitrary)f(data)j
+(subsection)d(from)h(the)h(data)g(arra)m(y)-8 b(.)42
+b(Unde\014ned)27 b(pixels)f(in)i(the)g(arra)m(y)i(will)25
+b(b)s(e)j(set)227 3625 y(equal)j(to)i(the)e(v)-5 b(alue)32
+b(of)f('n)m(ullv)-5 b(al',)30 b(unless)g(n)m(ullv)-5
+b(al=0)30 b(in)g(whic)m(h)g(case)j(no)e(testing)h(for)f(unde\014ned)f
+(pixels)227 3738 y(will)e(b)s(e)i(p)s(erformed.)382 3948
+y Fe(FTGSV[BIJED]\(unit,group,)o(nax)o(is,n)o(axes)o(,fp)o(ixel)o(s,lp)
+o(ixe)o(ls,i)o(ncs,)o(nul)o(lval)o(,)42 b(>)1002 4061
+y(array,anyf,status\))0 4272 y Fh(17)k Fi(Get)34 b(an)f(arbitrary)f
+(data)h(subsection)f(from)h(the)g(data)g(arra)m(y)-8
+b(.)50 b(An)m(y)33 b(Unde\014ned)e(pixels)g(in)h(the)h(arra)m(y)h(will)
+227 4384 y(ha)m(v)m(e)e(the)e(corresp)s(onding)f('\015agv)-5
+b(als')30 b(elemen)m(t)h(set)g(equal)f(to)h(.TR)m(UE.)382
+4595 y Fe(FTGSF[BIJED]\(unit,group,)o(nax)o(is,n)o(axes)o(,fp)o(ixel)o
+(s,lp)o(ixe)o(ls,i)o(ncs,)41 b(>)1002 4708 y(array,flagvals,anyf,statu)
+o(s\))0 5034 y Fd(9.7)135 b(FITS)44 b(ASCI)t(I)g(and)h(Binary)g(T)-11
+b(able)45 b(Data)h(I/O)f(Subroutines)0 5287 y Fb(9.7.1)112
+b(Column)37 b(Information)f(Subroutines)0 5488 y Fh(1)81
+b Fi(Get)30 b(the)g(n)m(um)m(b)s(er)e(of)i(ro)m(ws)g(or)f(columns)f(in)
+h(the)h(curren)m(t)f(FITS)g(table.)40 b(The)29 b(n)m(um)m(b)s(er)f(of)i
+(ro)m(ws)g(is)e(giv)m(en)i(b)m(y)227 5601 y(the)k(NAXIS2)f(k)m(eyw)m
+(ord)h(and)e(the)i(n)m(um)m(b)s(er)e(of)h(columns)f(is)g(giv)m(en)h(b)m
+(y)g(the)h(TFIELDS)e(k)m(eyw)m(ord)i(in)e(the)227 5714
+y(header)e(of)h(the)g(table.)p eop
+%%Page: 89 95
+89 94 bop 0 299 a Fg(9.7.)72 b(FITS)30 b(ASCI)s(I)f(AND)i(BINAR)-8
+b(Y)31 b(T)-8 b(ABLE)31 b(D)m(A)-8 b(T)g(A)32 b(I/O)e(SUBR)m(OUTINES)
+979 b Fi(89)382 555 y Fe(FTGNRW\(unit,)44 b(>)k(nrows,)e(status\))382
+668 y(FTGNCL\(unit,)e(>)k(ncols,)e(status\))0 921 y Fh(2)81
+b Fi(Get)25 b(the)f(table)h(column)e(n)m(um)m(b)s(er)g(\(and)h(name\))h
+(of)f(the)h(column)e(whose)h(name)g(matc)m(hes)i(an)e(input)f(template)
+227 1034 y(name.)38 b(The)21 b(table)h(column)e(names)i(are)g
+(de\014ned)e(b)m(y)i(the)g(TTYPEn)e(k)m(eyw)m(ords)i(in)e(the)i(FITS)f
+(header.)37 b(If)22 b(a)227 1147 y(column)h(do)s(es)h(not)g(ha)m(v)m(e)
+h(a)f(TTYPEn)f(k)m(eyw)m(ord,)j(then)d(these)h(routines)f(assume)h
+(that)g(the)h(name)e(consists)227 1260 y(of)i(all)f(blank)g(c)m
+(haracters.)40 b(These)25 b(2)g(subroutines)d(p)s(erform)i(the)h(same)g
+(function)f(except)i(that)f(FTGCNO)227 1373 y(only)i(returns)f(the)h(n)
+m(um)m(b)s(er)f(of)h(the)g(matc)m(hing)h(column)e(whereas)h(FTGCNN)g
+(also)g(returns)f(the)i(name)f(of)227 1486 y(the)k(column.)39
+b(If)30 b(CASESEN)f(=)h(.true.)41 b(then)30 b(the)h(column)e(name)h
+(matc)m(h)i(will)27 b(b)s(e)j(case-sensitiv)m(e.)227
+1635 y(The)41 b(input)d(column)i(name)h(template)g(\(COL)-8
+b(TEMPLA)g(TE\))41 b(is)f(\(1\))h(either)g(the)g(exact)h(name)f(of)g
+(the)227 1748 y(column)35 b(to)j(b)s(e)d(searc)m(hed)i(for,)h(or)e
+(\(2\))i(it)e(ma)m(y)h(con)m(tain)f(wild)e(cards)i(c)m(haracters)i
+(\(*,)h(?,)f(or)e(#\),)i(or)f(\(3\))227 1861 y(it)c(ma)m(y)h(con)m
+(tain)f(the)g(n)m(um)m(b)s(er)f(of)h(the)g(desired)f(column)g(\(where)h
+(the)g(n)m(um)m(b)s(er)f(is)g(expressed)g(as)h(ASCI)s(I)227
+1974 y(digits\).)39 b(The)28 b(\014rst)g(2)h(wild)d(cards)i(b)s(eha)m
+(v)m(e)h(similarly)c(to)k(UNIX)g(\014lename)f(matc)m(hing:)39
+b(the)29 b('*')g(c)m(haracter)227 2087 y(matc)m(hes)e(an)m(y)g
+(sequence)f(of)h(c)m(haracters)g(\(including)c(zero)k(c)m(haracters\))h
+(and)d(the)i(')10 b(?')39 b(c)m(haracter)28 b(matc)m(hes)227
+2199 y(an)m(y)40 b(single)f(c)m(haracter.)71 b(The)39
+b(#)h(wildcard)d(will)g(matc)m(h)k(an)m(y)f(consecutiv)m(e)h(string)e
+(of)h(decimal)e(digits)227 2312 y(\(0-9\).)45 b(As)31
+b(an)g(example,)g(the)g(template)g(strings)f('AB?DE',)i('AB*E',)h(and)d
+('AB*CDE')j(will)28 b(all)i(matc)m(h)227 2425 y(the)c(string)f
+('ABCDE'.)j(If)d(more)h(than)g(one)g(column)f(name)h(in)f(the)h(table)g
+(matc)m(hes)h(the)f(template)h(string,)227 2538 y(then)33
+b(the)h(\014rst)f(matc)m(h)h(is)e(returned)h(and)f(the)i(status)g(v)-5
+b(alue)33 b(will)d(b)s(e)j(set)h(to)g(237)h(as)f(a)f(w)m(arning)g(that)
+h(a)227 2651 y(unique)f(matc)m(h)j(w)m(as)f(not)g(found.)53
+b(T)-8 b(o)35 b(\014nd)f(the)h(other)g(cases)g(that)h(matc)m(h)g(the)f
+(template,)h(simply)d(call)227 2764 y(the)27 b(subroutine)e(again)i
+(lea)m(ving)g(the)g(input)e(status)i(v)-5 b(alue)27 b(equal)f(to)i(237)
+g(and)f(the)g(next)g(matc)m(hing)g(name)227 2877 y(will)i(then)j(b)s(e)
+f(returned.)43 b(Rep)s(eat)32 b(this)f(pro)s(cess)g(un)m(til)f(a)i
+(status)g(=)g(219)h(\(column)d(name)i(not)g(found\))f(is)227
+2990 y(returned.)40 b(If)30 b(these)h(subroutines)d(fail)h(to)i(matc)m
+(h)g(the)g(template)g(to)g(an)m(y)g(of)f(the)h(columns)e(in)g(the)i
+(table,)227 3103 y(they)i(lastly)e(c)m(hec)m(k)j(if)e(the)g(template)h
+(can)g(b)s(e)e(in)m(terpreted)h(as)h(a)g(simple)d(p)s(ositiv)m(e)h(in)m
+(teger)i(\(e.g.,)i('7',)f(or)227 3216 y('512'\))i(and)d(if)f(so,)j
+(they)f(return)e(that)j(column)d(n)m(um)m(b)s(er.)49
+b(If)33 b(no)g(matc)m(hes)i(are)f(found)e(then)h(a)h(status)g(=)227
+3329 y(219)e(error)e(is)f(returned.)227 3478 y(Note)i(that)e(the)h
+(FITS)e(Standard)g(recommends)g(that)i(only)e(letters,)i(digits,)e(and)
+h(the)g(underscore)f(c)m(har-)227 3591 y(acter)44 b(b)s(e)e(used)g(in)g
+(column)f(names)i(\(with)f(no)g(em)m(b)s(edded)g(spaces)h(in)f(the)h
+(name\).)78 b(T)-8 b(railing)40 b(blank)227 3704 y(c)m(haracters)32
+b(are)f(not)g(signi\014can)m(t.)40 b(It)31 b(is)e(recommended)i(that)g
+(the)g(column)e(names)h(in)g(a)h(giv)m(en)f(table)h(b)s(e)227
+3816 y(unique)e(within)f(the)i(\014rst)g(8)h(c)m(haracters.)382
+4070 y Fe(FTGCNO\(unit,casesen,colt)o(emp)o(late)o(,)42
+b(>)47 b(colnum,status\))382 4182 y(FTGCNN\(unit,casesen,colt)o(emp)o
+(late)o(,)42 b(>)47 b(colname,colnum,status\))0 4436
+y Fh(3)81 b Fi(Get)39 b(the)g(datat)m(yp)s(e)h(of)e(a)h(column)f(in)f
+(an)h(ASCI)s(I)g(or)g(binary)f(table.)65 b(This)37 b(routine)h(returns)
+f(an)i(in)m(teger)227 4549 y(co)s(de)34 b(v)-5 b(alue)32
+b(corresp)s(onding)f(to)j(the)g(datat)m(yp)s(e)g(of)f(the)g(column.)48
+b(\(See)34 b(the)f(FTBNFM)i(and)d(FT)-8 b(ASFM)227 4661
+y(subroutines)26 b(in)h(the)h(Utilities)f(section)h(of)g(this)f(do)s
+(cumen)m(t)h(for)g(a)h(list)e(of)h(the)h(co)s(de)f(v)-5
+b(alues\).)40 b(The)27 b(v)m(ector)227 4774 y(rep)s(eat)38
+b(coun)m(t)g(\(whic)m(h)f(is)g(alw)m(a)m(y)h(1)g(for)g(ASCI)s(I)e
+(table)h(columns\))g(is)g(also)g(returned.)62 b(If)37
+b(the)h(sp)s(eci\014ed)227 4887 y(column)31 b(has)g(an)g(ASCI)s(I)f(c)m
+(haracter)j(datat)m(yp)s(e)g(\(co)s(de)f(=)f(16\))i(then)e(the)h(width)
+d(of)j(a)g(unit)e(string)h(in)f(the)227 5000 y(column)i(is)g(also)h
+(returned.)48 b(Note)34 b(that)g(this)d(routine)h(supp)s(orts)g(the)h
+(lo)s(cal)f(con)m(v)m(en)m(tion)i(for)f(sp)s(ecifying)227
+5113 y(arra)m(ys)f(of)f(strings)f(within)e(a)k(binary)d(table)i(c)m
+(haracter)h(column,)f(using)e(the)i(syn)m(tax)h(TF)m(ORM)f(=)g('rAw')
+227 5226 y(where)f('r')g(is)g(the)g(total)h(n)m(um)m(b)s(er)e(of)i(c)m
+(haracters)g(\(=)g(the)f(width)f(of)h(the)g(column\))g(and)g('w')g(is)f
+(the)i(width)227 5339 y(of)39 b(a)f(unit)f(string)g(within)f(the)i
+(column.)63 b(Th)m(us)37 b(if)g(the)h(column)f(has)h(TF)m(ORM)h(=)f
+('60A12')i(then)e(this)227 5452 y(routine)30 b(will)d(return)j(dataco)s
+(de)h(=)f(16,)h(rep)s(eat)g(=)f(60,)i(and)d(width)g(=)h(12.)227
+5601 y(The)h(second)h(routine,)f(FTEQTY)g(is)f(similar)f(except)k(that)
+f(in)e(the)i(case)g(of)g(scaled)f(in)m(teger)h(columns)e(it)227
+5714 y(returns)23 b(the)h('equiv)-5 b(alen)m(t')23 b(data)h(t)m(yp)s(e)
+g(that)h(is)d(needed)i(to)g(store)g(the)g(scaled)f(v)-5
+b(alues,)25 b(and)e(not)h(necessarily)p eop
+%%Page: 90 96
+90 95 bop 0 299 a Fi(90)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)227
+555 y Fi(the)38 b(ph)m(ysical)f(data)h(t)m(yp)s(e)g(of)g(the)g
+(unscaled)f(v)-5 b(alues)37 b(as)h(stored)g(in)f(the)h(FITS)f(table.)63
+b(F)-8 b(or)38 b(example)g(if)227 668 y(a)d('1I')g(column)e(in)g(a)h
+(binary)f(table)h(has)g(TSCALn)f(=)g(1)i(and)f(TZER)m(On)f(=)g(32768,)
+38 b(then)c(this)f(column)227 781 y(e\013ectiv)m(ely)25
+b(con)m(tains)f(unsigned)e(short)h(in)m(teger)i(v)-5
+b(alues,)24 b(and)g(th)m(us)f(the)h(returned)f(v)-5 b(alue)23
+b(of)h(t)m(yp)s(eco)s(de)h(will)227 894 y(b)s(e)32 b(the)h(co)s(de)g
+(for)g(an)f(unsigned)f(short)h(in)m(teger,)i(not)f(a)g(signed)f(short)g
+(in)m(teger.)48 b(Similarly)-8 b(,)30 b(if)i(a)h(column)227
+1007 y(has)d(TTYPEn)g(=)g('1I')h(and)f(TSCALn)e(=)i(0.12,)j(then)d(the)
+g(returned)g(t)m(yp)s(eco)s(de)g(will)e(b)s(e)i(the)h(co)s(de)f(for)h
+(a)227 1120 y('real')g(column.)382 1382 y Fe(FTGTCL\(unit,colnum,)42
+b(>)48 b(datacode,repeat,width,st)o(atu)o(s\))382 1495
+y(FTEQTY\(unit,colnum,)42 b(>)48 b(datacode,repeat,width,st)o(atu)o
+(s\))0 1758 y Fh(4)81 b Fi(Return)22 b(the)i(displa)m(y)e(width)g(of)h
+(a)h(column.)38 b(This)21 b(is)i(the)h(length)f(of)g(the)h(string)f
+(that)h(will)d(b)s(e)i(returned)f(when)227 1871 y(reading)32
+b(the)h(column)f(as)h(a)g(formatted)g(string.)47 b(The)32
+b(displa)m(y)f(width)g(is)h(determined)g(b)m(y)g(the)h(TDISPn)227
+1984 y(k)m(eyw)m(ord,)e(if)f(presen)m(t,)g(otherwise)g(b)m(y)g(the)h
+(data)g(t)m(yp)s(e)g(of)f(the)h(column.)382 2246 y Fe(FTGCDW\(unit,)44
+b(colnum,)i(>)i(dispwidth,)d(status\))0 2509 y Fh(5)81
+b Fi(Get)29 b(information)d(ab)s(out)i(an)g(existing)f(ASCI)s(I)g
+(table)h(column.)39 b(\(NOTE:)28 b(TSCAL)f(and)g(TZER)m(O)h(m)m(ust)g
+(b)s(e)227 2622 y(declared)i(as)h(Double)f(Precision)f(v)-5
+b(ariables\).)39 b(All)29 b(the)i(returned)e(parameters)i(are)f(scalar)
+h(quan)m(tities.)382 2884 y Fe(FTGACL\(unit,colnum,)42
+b(>)716 2997 y(ttype,tbcol,tunit,tform,)o(tsca)o(l,t)o(zero)o(,snu)o
+(ll,)o(tdis)o(p,st)o(atu)o(s\))0 3259 y Fh(6)81 b Fi(Get)29
+b(information)d(ab)s(out)h(an)h(existing)f(binary)f(table)i(column.)39
+b(\(NOTE:)28 b(TSCAL)e(and)i(TZER)m(O)f(m)m(ust)h(b)s(e)227
+3372 y(declared)i(as)g(Double)f(Precision)g(v)-5 b(ariables\).)39
+b(D)m(A)-8 b(T)g(A)g(TYPE)32 b(is)d(a)h(c)m(haracter)i(string)c(whic)m
+(h)h(returns)g(the)227 3485 y(datat)m(yp)s(e)35 b(of)g(the)f(column)f
+(as)h(de\014ned)f(b)m(y)h(the)g(TF)m(ORMn)g(k)m(eyw)m(ord)h(\(e.g.,)i
+('I',)e('J','E',)g('D',)g(etc.\).)54 b(In)227 3598 y(the)27
+b(case)g(of)g(an)f(ASCI)s(I)f(c)m(haracter)j(column,)e(D)m(A)-8
+b(T)g(A)g(TYPE)29 b(will)23 b(ha)m(v)m(e)28 b(a)f(v)-5
+b(alue)26 b(of)g(the)h(form)f('An')g(where)227 3711 y('n')34
+b(is)f(an)h(in)m(teger)h(expressing)e(the)h(width)e(of)i(the)h(\014eld)
+d(in)h(c)m(haracters.)53 b(F)-8 b(or)35 b(example,)g(if)e(TF)m(ORM)h(=)
+227 3824 y('160A8')39 b(then)e(FTGBCL)f(will)e(return)i(D)m(A)-8
+b(T)g(A)g(TYPE='A8')39 b(and)d(REPEA)-8 b(T=20.)60 b(All)35
+b(the)i(returned)227 3937 y(parameters)31 b(are)g(scalar)f(quan)m
+(tities.)382 4199 y Fe(FTGBCL\(unit,colnum,)42 b(>)716
+4312 y(ttype,tunit,datatype,rep)o(eat,)o(tsc)o(al,t)o(zero)o(,tn)o
+(ull,)o(tdis)o(p,s)o(tatu)o(s\))0 4575 y Fh(7)81 b Fi(Put)31
+b(\(app)s(end\))g(a)i(TDIMn)f(k)m(eyw)m(ord)g(whose)g(v)-5
+b(alue)32 b(has)g(the)g(form)g('\(l,m,n...\)')46 b(where)32
+b(l,)g(m,)g(n...)46 b(are)33 b(the)227 4688 y(dimensions)28
+b(of)i(a)h(m)m(ultidimension)c(arra)m(y)j(column)g(in)f(a)h(binary)f
+(table.)382 4950 y Fe(FTPTDM\(unit,colnum,naxis)o(,na)o(xes,)41
+b(>)48 b(status\))0 5213 y Fh(8)81 b Fi(Return)29 b(the)h(n)m(um)m(b)s
+(er)e(of)i(and)g(size)f(of)h(the)g(dimensions)e(of)i(a)g(table)g
+(column.)39 b(Normally)29 b(this)g(information)227 5326
+y(is)h(giv)m(en)h(b)m(y)g(the)g(TDIMn)f(k)m(eyw)m(ord,)i(but)e(if)g
+(this)g(k)m(eyw)m(ord)h(is)f(not)h(presen)m(t)g(then)g(this)e(routine)h
+(returns)227 5439 y(NAXIS)g(=)g(1)h(and)f(NAXES\(1\))h(equal)f(to)h
+(the)g(rep)s(eat)g(coun)m(t)g(in)e(the)h(TF)m(ORM)h(k)m(eyw)m(ord.)382
+5701 y Fe(FTGTDM\(unit,colnum,maxdi)o(m,)41 b(>)48 b
+(naxis,naxes,status\))p eop
+%%Page: 91 97
+91 96 bop 0 299 a Fg(9.7.)72 b(FITS)30 b(ASCI)s(I)f(AND)i(BINAR)-8
+b(Y)31 b(T)-8 b(ABLE)31 b(D)m(A)-8 b(T)g(A)32 b(I/O)e(SUBR)m(OUTINES)
+979 b Fi(91)0 555 y Fh(9)81 b Fi(Deco)s(de)33 b(the)g(input)e(TDIMn)i
+(k)m(eyw)m(ord)g(string)e(\(e.g.)50 b('\(100,200\)'\))37
+b(and)32 b(return)g(the)h(n)m(um)m(b)s(er)e(of)i(and)f(size)227
+668 y(of)c(the)g(dimensions)d(of)j(a)g(binary)e(table)h(column.)39
+b(If)27 b(the)h(input)e(tdimstr)g(c)m(haracter)j(string)e(is)g(n)m
+(ull,)f(then)227 781 y(this)e(routine)f(returns)g(naxis)g(=)i(1)f(and)g
+(naxes[0])i(equal)d(to)j(the)e(rep)s(eat)h(coun)m(t)g(in)e(the)h(TF)m
+(ORM)h(k)m(eyw)m(ord.)227 894 y(This)k(routine)g(is)h(called)f(b)m(y)h
+(FTGTDM.)382 1147 y Fe(FTDTDM\(unit,tdimstr,coln)o(um,)o(maxd)o(im,)41
+b(>)48 b(naxis,naxes,)c(status\))0 1400 y Fh(10)i Fi(Return)32
+b(the)h(optimal)f(n)m(um)m(b)s(er)g(of)h(ro)m(ws)g(to)h(read)f(or)g
+(write)f(at)i(one)f(time)g(for)f(maxim)m(um)g(I/O)h(e\016ciency)-8
+b(.)227 1513 y(Refer)31 b(to)g(the)g(\\Optimizing)d(Co)s(de")i(section)
+h(in)e(Chapter)h(5)g(for)h(more)f(discussion)e(on)i(ho)m(w)h(to)g(use)f
+(this)227 1626 y(routine.)382 1879 y Fe(FFGRSZ\(unit,)44
+b(>)k(nrows,status\))0 2169 y Fb(9.7.2)112 b(Lo)m(w-Lev)m(el)38
+b(T)-9 b(able)37 b(Access)g(Subroutines)0 2388 y Fi(The)d(follo)m(wing)
+e(subroutines)g(pro)m(vide)i(lo)m(w-lev)m(el)g(access)h(to)g(the)g
+(data)g(in)e(ASCI)s(I)f(or)i(binary)f(tables)h(and)g(are)0
+2501 y(mainly)27 b(useful)g(as)j(an)f(e\016cien)m(t)g(w)m(a)m(y)h(to)g
+(cop)m(y)g(all)e(or)h(part)g(of)g(a)g(table)g(from)g(one)g(lo)s(cation)
+g(to)h(another.)40 b(These)0 2614 y(routines)23 b(simply)f(read)i(or)h
+(write)e(the)i(sp)s(eci\014ed)d(n)m(um)m(b)s(er)h(of)i(consecutiv)m(e)g
+(b)m(ytes)g(in)e(an)h(ASCI)s(I)f(or)h(binary)f(table,)0
+2727 y(without)36 b(regard)h(for)f(column)g(b)s(oundaries)e(or)j(the)g
+(ro)m(w)g(length)g(in)e(the)i(table.)60 b(The)37 b(\014rst)f(t)m(w)m(o)
+i(subroutines)0 2840 y(read)29 b(or)h(write)f(consecutiv)m(e)h(b)m
+(ytes)g(in)e(a)i(table)f(to)i(or)e(from)g(a)h(c)m(haracter)h(string)d
+(v)-5 b(ariable,)29 b(while)f(the)h(last)h(t)m(w)m(o)0
+2953 y(subroutines)f(read)j(or)g(write)f(consecutiv)m(e)h(b)m(ytes)h
+(to)f(or)g(from)f(a)h(v)-5 b(ariable)31 b(declared)g(as)h(a)g(n)m
+(umeric)e(data)j(t)m(yp)s(e)0 3065 y(\(e.g.,)40 b(INTEGER,)d
+(INTEGER*2,)i(REAL,)d(DOUBLE)h(PRECISION\).)f(These)g(routines)g(do)g
+(not)h(p)s(erform)0 3178 y(an)m(y)c(mac)m(hine)f(dep)s(enden)m(t)g
+(data)i(con)m(v)m(ersion)f(or)f(b)m(yte)i(sw)m(apping,)e(except)i(that)
+f(con)m(v)m(ersion)g(to/from)g(ASCI)s(I)0 3291 y(format)d(is)f(p)s
+(erformed)f(b)m(y)h(the)h(FTGTBS)f(and)g(FTPTBS)g(routines)g(on)g(mac)m
+(hines)g(whic)m(h)g(do)g(not)h(use)f(ASCI)s(I)0 3404
+y(c)m(haracter)j(co)s(des)e(in)f(the)i(in)m(ternal)e(data)i(represen)m
+(tations)g(\(e.g.,)h(on)e(IBM)h(mainframe)e(computers\).)0
+3657 y Fh(1)81 b Fi(Read)26 b(a)h(consecutiv)m(e)g(string)f(of)g(c)m
+(haracters)i(from)e(an)g(ASCI)s(I)f(table)h(in)m(to)h(a)f(c)m(haracter)
+i(v)-5 b(ariable)26 b(\(spanning)227 3770 y(columns)31
+b(and)h(m)m(ultiple)e(ro)m(ws)i(if)f(necessary\))i(This)e(routine)g
+(should)f(not)j(b)s(e)e(used)h(with)f(binary)f(tables)227
+3883 y(b)s(ecause)h(of)f(complications)f(related)i(to)g(passing)e
+(string)g(v)-5 b(ariables)29 b(b)s(et)m(w)m(een)i(C)f(and)g(F)-8
+b(ortran.)382 4136 y Fe(FTGTBS\(unit,frow,startch)o(ar,)o(ncha)o(rs,)41
+b(>)48 b(string,status\))0 4390 y Fh(2)81 b Fi(W)-8 b(rite)30
+b(a)h(consecutiv)m(e)g(string)e(of)i(c)m(haracters)g(to)g(an)f(ASCI)s
+(I)f(table)h(from)g(a)h(c)m(haracter)h(v)-5 b(ariable)29
+b(\(spanning)227 4503 y(columns)i(and)h(m)m(ultiple)e(ro)m(ws)i(if)f
+(necessary\))i(This)e(routine)g(should)f(not)j(b)s(e)e(used)h(with)f
+(binary)f(tables)227 4615 y(b)s(ecause)h(of)f(complications)f(related)i
+(to)g(passing)e(string)g(v)-5 b(ariables)29 b(b)s(et)m(w)m(een)i(C)f
+(and)g(F)-8 b(ortran.)382 4869 y Fe(FTPTBS\(unit,frow,startch)o(ar,)o
+(ncha)o(rs,s)o(tri)o(ng,)41 b(>)48 b(status\))0 5122
+y Fh(3)81 b Fi(Read)27 b(a)h(consecutiv)m(e)h(arra)m(y)f(of)g(b)m(ytes)
+g(from)f(an)g(ASCI)s(I)f(or)i(binary)d(table)j(in)m(to)f(a)h(n)m
+(umeric)f(v)-5 b(ariable)26 b(\(span-)227 5235 y(ning)31
+b(columns)f(and)i(m)m(ultiple)d(ro)m(ws)j(if)f(necessary\).)46
+b(The)32 b(arra)m(y)g(parameter)g(ma)m(y)h(b)s(e)e(declared)g(as)i(an)m
+(y)227 5348 y(n)m(umerical)g(datat)m(yp)s(e)i(as)g(long)f(as)h(the)f
+(arra)m(y)h(is)e(at)i(least)g('nc)m(hars')g(b)m(ytes)f(long,)i(e.g.,)g
+(if)e(nc)m(hars)g(=)g(17,)227 5461 y(then)c(declare)h(the)f(arra)m(y)h
+(as)g(INTEGER*4)g(ARRA)-8 b(Y\(5\).)382 5714 y Fe
+(FTGTBB\(unit,frow,startch)o(ar,)o(ncha)o(rs,)41 b(>)48
+b(array,status\))p eop
+%%Page: 92 98
+92 97 bop 0 299 a Fi(92)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fh(4)81 b Fi(W)-8 b(rite)31 b(a)g(consecutiv)m(e)h(arra)m(y)g(of)
+f(b)m(ytes)g(to)h(an)e(ASCI)s(I)g(or)h(binary)e(table)i(from)f(a)i(n)m
+(umeric)d(v)-5 b(ariable)30 b(\(span-)227 668 y(ning)k(columns)f(and)h
+(m)m(ultiple)e(ro)m(ws)j(if)e(necessary\))j(The)e(arra)m(y)h(parameter)
+g(ma)m(y)h(b)s(e)e(declared)g(as)h(an)m(y)227 781 y(n)m(umerical)e
+(datat)m(yp)s(e)i(as)g(long)f(as)h(the)f(arra)m(y)h(is)e(at)i(least)g
+('nc)m(hars')g(b)m(ytes)f(long,)i(e.g.,)g(if)e(nc)m(hars)g(=)g(17,)227
+894 y(then)c(declare)h(the)f(arra)m(y)h(as)g(INTEGER*4)g(ARRA)-8
+b(Y\(5\).)382 1161 y Fe(FTPTBB\(unit,frow,startch)o(ar,)o(ncha)o(rs,a)o
+(rra)o(y,)42 b(>)47 b(status\))0 1461 y Fb(9.7.3)112
+b(Edit)36 b(Ro)m(ws)h(or)h(Columns)0 1676 y Fh(1)81 b
+Fi(Insert)26 b(blank)g(ro)m(ws)i(in)m(to)f(an)g(existing)f(ASCI)s(I)g
+(or)h(binary)f(table)h(\(in)g(the)g(CDU\).)h(All)e(the)i(ro)m(ws)f(F)m
+(OLLO)m(W-)227 1789 y(ING)32 b(ro)m(w)f(FR)m(O)m(W)i(are)e(shifted)f
+(do)m(wn)h(b)m(y)g(NR)m(O)m(WS)h(ro)m(ws.)43 b(If)31
+b(FR)m(O)m(W)i(=)d(0)i(then)f(the)g(blank)f(ro)m(ws)i(are)227
+1902 y(inserted)e(at)i(the)f(b)s(eginning)e(of)i(the)g(table.)43
+b(This)29 b(routine)h(mo)s(di\014es)f(the)j(NAXIS2)f(k)m(eyw)m(ord)h
+(to)f(re\015ect)227 2015 y(the)g(new)f(n)m(um)m(b)s(er)f(of)h(ro)m(ws)h
+(in)e(the)h(table.)382 2282 y Fe(FTIROW\(unit,frow,nrows,)41
+b(>)48 b(status\))0 2550 y Fh(2)81 b Fi(Delete)26 b(ro)m(ws)g(from)f
+(an)g(existing)g(ASCI)s(I)f(or)h(binary)f(table)h(\(in)g(the)h(CDU\).)g
+(The)f(NR)m(O)m(WS)h(n)m(um)m(b)s(er)e(of)i(ro)m(ws)227
+2663 y(are)k(deleted,)g(starting)f(with)g(ro)m(w)g(FR)m(O)m(W,)j(and)d
+(an)m(y)h(remaining)d(ro)m(ws)j(in)e(the)i(table)f(are)h(shifted)f(up)f
+(to)227 2775 y(\014ll)35 b(in)h(the)h(space.)61 b(This)35
+b(routine)h(mo)s(di\014es)f(the)j(NAXIS2)f(k)m(eyw)m(ord)g(to)h
+(re\015ect)f(the)h(new)e(n)m(um)m(b)s(er)g(of)227 2888
+y(ro)m(ws)31 b(in)e(the)h(table.)382 3156 y Fe
+(FTDROW\(unit,frow,nrows,)41 b(>)48 b(status\))0 3423
+y Fh(3)81 b Fi(Delete)25 b(a)g(list)e(of)i(ro)m(ws)f(from)g(an)h(ASCI)s
+(I)e(or)h(binary)f(table)h(\(in)g(the)g(CDU\).)i(In)e(the)g(\014rst)g
+(routine,)h('ro)m(wrange')227 3536 y(is)i(a)h(c)m(haracter)h(string)e
+(listing)f(the)i(ro)m(ws)f(or)h(ro)m(w)g(ranges)g(to)g(delete)g
+(\(e.g.,)j('2-4,)e(5,)g(8-9'\).)42 b(In)27 b(the)h(second)227
+3649 y(routine,)36 b('ro)m(wlist')e(is)g(an)g(in)m(teger)i(arra)m(y)f
+(of)g(ro)m(w)g(n)m(um)m(b)s(ers)e(to)j(b)s(e)e(deleted)h(from)f(the)h
+(table.)55 b(nro)m(ws)34 b(is)227 3762 y(the)e(n)m(um)m(b)s(er)e(of)h
+(ro)m(w)h(n)m(um)m(b)s(ers)e(in)g(the)h(list.)43 b(The)31
+b(\014rst)f(ro)m(w)i(in)e(the)h(table)h(is)e(1)i(not)f(0.)44
+b(The)31 b(list)f(of)i(ro)m(w)227 3875 y(n)m(um)m(b)s(ers)d(m)m(ust)h
+(b)s(e)g(sorted)h(in)e(ascending)g(order.)382 4142 y
+Fe(FTDRRG\(unit,rowrange,)42 b(>)47 b(status\))382 4255
+y(FTDRWS\(unit,rowlist,nrow)o(s,)41 b(>)48 b(status\))0
+4523 y Fh(4)81 b Fi(Insert)43 b(a)i(blank)e(column)h(\(or)g(columns\))g
+(in)m(to)g(an)g(existing)g(ASCI)s(I)f(or)h(binary)f(table)h(\(in)g(the)
+g(CDU\).)227 4636 y(COLNUM)c(sp)s(eci\014es)f(the)i(column)e(n)m(um)m
+(b)s(er)g(that)i(the)f(\(\014rst\))g(new)g(column)f(should)f(o)s(ccup)m
+(y)j(in)e(the)227 4749 y(table.)57 b(NCOLS)34 b(sp)s(eci\014es)g(ho)m
+(w)i(man)m(y)g(columns)e(are)i(to)g(b)s(e)f(inserted.)56
+b(An)m(y)35 b(existing)g(columns)f(from)227 4862 y(this)k(p)s(osition)e
+(and)i(higher)f(are)i(mo)m(v)m(ed)g(o)m(v)m(er)h(to)f(allo)m(w)f(ro)s
+(om)g(for)h(the)f(new)g(column\(s\).)64 b(The)38 b(index)227
+4975 y(n)m(um)m(b)s(er)j(on)h(all)f(the)h(follo)m(wing)e(k)m(eyw)m
+(ords)j(will)c(b)s(e)i(incremen)m(ted)h(if)f(necessary)h(to)h
+(re\015ect)f(the)g(new)227 5087 y(p)s(osition)30 b(of)h(the)g
+(column\(s\))g(in)f(the)h(table:)42 b(TBCOLn,)30 b(TF)m(ORMn,)i
+(TTYPEn,)e(TUNITn,)h(TNULLn,)227 5200 y(TSCALn,)22 b(TZER)m(On,)g
+(TDISPn,)g(TDIMn,)h(TLMINn,)g(TLMAXn,)f(TDMINn,)i(TDMAXn,)f(TCTYPn,)227
+5313 y(TCRPXn,)30 b(TCR)-10 b(VLn,)29 b(TCDL)-8 b(Tn,)30
+b(TCR)m(OTn,)f(and)g(TCUNIn.)382 5581 y Fe(FTICOL\(unit,colnum,ttype)o
+(,tf)o(orm,)41 b(>)48 b(status\))382 5694 y(FTICLS\(unit,colnum,ncols)o
+(,tt)o(ype,)o(tfor)o(m,)41 b(>)48 b(status\))p eop
+%%Page: 93 99
+93 98 bop 0 299 a Fg(9.7.)72 b(FITS)30 b(ASCI)s(I)f(AND)i(BINAR)-8
+b(Y)31 b(T)-8 b(ABLE)31 b(D)m(A)-8 b(T)g(A)32 b(I/O)e(SUBR)m(OUTINES)
+979 b Fi(93)0 555 y Fh(5)81 b Fi(Mo)s(dify)36 b(the)h(v)m(ector)i
+(length)e(of)g(a)h(binary)d(table)i(column)f(\(e.g.,)41
+b(c)m(hange)e(a)e(column)f(from)h(TF)m(ORMn)g(=)227 668
+y('1E')31 b(to)h('20E'\).)g(The)e(v)m(ector)i(length)d(ma)m(y)i(b)s(e)f
+(increased)g(or)g(decreased)h(from)f(the)g(curren)m(t)h(v)-5
+b(alue.)382 924 y Fe(FTMVEC\(unit,colnum,newve)o(cle)o(n,)42
+b(>)47 b(status\))0 1180 y Fh(6)81 b Fi(Delete)28 b(a)g(column)f(from)g
+(an)g(existing)g(ASCI)s(I)f(or)i(binary)d(table)j(\(in)f(the)g(CDU\).)i
+(The)e(index)f(n)m(um)m(b)s(er)g(of)i(all)227 1293 y(the)k(k)m(eyw)m
+(ords)h(listed)d(ab)s(o)m(v)m(e)k(\(for)e(FTICOL\))f(will)e(b)s(e)j
+(decremen)m(ted)g(if)f(necessary)i(to)g(re\015ect)f(the)g(new)227
+1406 y(p)s(osition)24 b(of)i(the)g(column\(s\))f(in)f(the)i(table.)39
+b(Those)26 b(index)e(k)m(eyw)m(ords)i(that)g(refer)f(to)i(the)f
+(deleted)f(column)227 1519 y(will)30 b(also)i(b)s(e)g(deleted.)46
+b(Note)33 b(that)g(the)g(ph)m(ysical)e(size)h(of)g(the)h(FITS)e(\014le)
+h(will)d(not)k(b)s(e)e(reduced)h(b)m(y)g(this)227 1632
+y(op)s(eration,)d(and)f(the)h(empt)m(y)g(FITS)f(blo)s(c)m(ks)g(if)g(an)
+m(y)h(at)g(the)g(end)f(of)h(the)g(\014le)f(will)e(b)s(e)i(padded)g
+(with)f(zeros.)382 1888 y Fe(FTDCOL\(unit,colnum,)42
+b(>)48 b(status\))0 2144 y Fh(7)81 b Fi(Cop)m(y)30 b(a)g(column)f(from)
+h(one)g(HDU)h(to)g(another)f(\(or)h(to)g(the)f(same)h(HDU\).)g(If)f
+(createcol)i(=)d(TR)m(UE,)i(then)f(a)227 2257 y(new)20
+b(column)f(will)f(b)s(e)i(inserted)f(in)g(the)i(output)f(table,)j(at)e
+(p)s(osition)d(`outcolumn',)k(otherwise)e(the)h(existing)227
+2370 y(output)29 b(column)e(will)f(b)s(e)i(o)m(v)m(erwritten)h(\(in)f
+(whic)m(h)f(case)j(it)e(m)m(ust)g(ha)m(v)m(e)i(a)f(compatible)f(datat)m
+(yp)s(e\).)42 b(Note)227 2483 y(that)31 b(the)g(\014rst)e(column)h(in)f
+(a)h(table)h(is)e(at)i(coln)m(um)f(=)g(1.)382 2739 y
+Fe(FTCPCL\(inunit,outunit,in)o(col)o(num,)o(outc)o(oln)o(um,c)o(reat)o
+(eco)o(l,)42 b(>)47 b(status\);)0 3029 y Fb(9.7.4)112
+b(Read)38 b(and)h(W)-9 b(rite)35 b(Column)i(Data)g(Routines)0
+3248 y Fi(These)22 b(subroutines)e(put)i(or)g(get)i(data)f(v)-5
+b(alues)21 b(in)g(the)i(curren)m(t)f(ASCI)s(I)f(or)h(Binary)f(table)i
+(extension.)37 b(Automatic)0 3361 y(data)21 b(t)m(yp)s(e)g(con)m(v)m
+(ersion)f(is)f(p)s(erformed)g(for)h(n)m(umerical)f(data)i(t)m(yp)s(es)g
+(\(B,I,J,E,D\))h(if)d(the)i(data)g(t)m(yp)s(e)f(of)h(the)f(column)0
+3474 y(\(de\014ned)32 b(b)m(y)i(the)f(TF)m(ORM)h(k)m(eyw)m(ord\))g
+(di\013ers)e(from)g(the)i(data)g(t)m(yp)s(e)f(of)h(the)f(calling)f
+(subroutine.)47 b(The)33 b(data)0 3587 y(v)-5 b(alues)29
+b(are)i(also)f(scaled)f(b)m(y)h(the)g(TSCALn)f(and)g(TZER)m(On)g
+(header)h(v)-5 b(alues)29 b(as)h(they)g(are)h(b)s(eing)d(written)h(to)i
+(or)0 3700 y(read)j(from)f(the)h(FITS)f(arra)m(y)-8 b(.)51
+b(The)33 b(fttscl)h(subroutine)d(MUST)j(b)s(e)f(used)g(to)h(de\014ne)f
+(the)h(scaling)f(parameters)0 3813 y(when)f(writing)f(data)j(to)g(the)f
+(table)g(or)g(to)h(o)m(v)m(erride)f(the)h(default)e(scaling)g(v)-5
+b(alues)33 b(giv)m(en)g(in)f(the)h(header)g(when)0 3926
+y(reading)c(from)h(the)h(table.)0 4086 y(In)h(the)i(case)g(of)f(binary)
+f(tables)h(with)f(v)m(ector)i(elemen)m(ts,)h(the)e('felem')g(parameter)
+h(de\014nes)e(the)i(starting)f(pixel)0 4199 y(within)j(the)i(elemen)m
+(t)h(v)m(ector.)65 b(This)37 b(parameter)h(is)f(ignored)h(with)e(ASCI)s
+(I)h(tables.)64 b(Similarly)-8 b(,)37 b(in)g(the)h(case)0
+4312 y(of)45 b(binary)d(tables)i(the)h('nelemen)m(ts')g(parameter)g(sp)
+s(eci\014es)e(the)h(total)h(n)m(um)m(b)s(er)e(of)i(v)m(ector)h(v)-5
+b(alues)44 b(read)g(or)0 4425 y(written)35 b(\(con)m(tin)m(uing)g(on)h
+(subsequen)m(t)f(ro)m(ws)g(if)g(required\))f(and)i(not)g(the)g(n)m(um)m
+(b)s(er)e(of)i(table)g(elemen)m(ts.)57 b(Tw)m(o)0 4538
+y(sets)36 b(of)f(subroutines)f(are)h(pro)m(vided)f(to)j(get)f(the)g
+(column)e(data)i(whic)m(h)e(di\013er)g(in)h(the)g(w)m(a)m(y)i
+(unde\014ned)c(pixels)0 4650 y(are)f(handled.)41 b(The)31
+b(\014rst)g(set)h(of)f(routines)g(\(FTGCV\))h(simply)d(return)h(an)h
+(arra)m(y)h(of)f(data)h(elemen)m(ts)g(in)e(whic)m(h)0
+4763 y(unde\014ned)41 b(pixels)h(are)i(set)g(equal)f(to)i(a)f(v)-5
+b(alue)43 b(sp)s(eci\014ed)f(b)m(y)h(the)h(user)f(in)f(the)i('n)m(ullv)
+-5 b(al')41 b(parameter.)81 b(An)0 4876 y(additional)41
+b(feature)j(of)g(these)g(subroutines)d(is)i(that)h(if)e(the)i(user)e
+(sets)i(n)m(ullv)-5 b(al)41 b(=)i(0,)48 b(then)43 b(no)g(c)m(hec)m(ks)i
+(for)0 4989 y(unde\014ned)33 b(pixels)h(will)f(b)s(e)h(p)s(erformed,)i
+(th)m(us)f(increasing)f(the)i(sp)s(eed)e(of)i(the)g(program.)55
+b(The)35 b(second)h(set)g(of)0 5102 y(routines)g(\(FTGCF\))i(returns)d
+(the)i(data)h(elemen)m(t)f(arra)m(y)h(and)e(in)g(addition)f(a)i
+(logical)g(arra)m(y)g(of)g(\015ags)g(whic)m(h)0 5215
+y(de\014nes)29 b(whether)h(the)h(corresp)s(onding)d(data)j(pixel)e(is)g
+(unde\014ned.)0 5375 y(An)m(y)41 b(column,)h(regardless)e(of)h(it's)f
+(in)m(trinsic)e(datat)m(yp)s(e,)45 b(ma)m(y)c(b)s(e)f(read)h(as)g(a)g
+(string.)70 b(It)41 b(should)e(b)s(e)h(noted)0 5488 y(ho)m(w)m(ev)m(er)
+32 b(that)f(reading)e(a)i(n)m(umeric)e(column)g(as)i(a)f(string)g(is)f
+(10)i(-)g(100)g(times)f(slo)m(w)m(er)h(than)f(reading)f(the)i(same)0
+5601 y(column)f(as)i(a)g(n)m(um)m(b)s(er)e(due)h(to)h(the)g(large)g(o)m
+(v)m(erhead)g(in)f(constructing)g(the)h(formatted)g(strings.)43
+b(The)31 b(displa)m(y)0 5714 y(format)26 b(of)g(the)h(returned)d
+(strings)h(will)e(b)s(e)j(determined)e(b)m(y)i(the)g(TDISPn)f(k)m(eyw)m
+(ord,)j(if)c(it)i(exists,)h(otherwise)e(b)m(y)p eop
+%%Page: 94 100
+94 99 bop 0 299 a Fi(94)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fi(the)e(datat)m(yp)s(e)h(of)g(the)f(column.)39
+b(The)28 b(length)f(of)i(the)f(returned)f(strings)g(can)h(b)s(e)g
+(determined)f(with)f(the)j(ftgcdw)0 668 y(routine.)40
+b(The)30 b(follo)m(wing)e(TDISPn)i(displa)m(y)e(formats)j(are)f(curren)
+m(tly)g(supp)s(orted:)191 923 y Fe(Iw.m)142 b(Integer)191
+1036 y(Ow.m)g(Octal)46 b(integer)191 1149 y(Zw.m)142
+b(Hexadecimal)45 b(integer)191 1262 y(Fw.d)142 b(Fixed)46
+b(floating)g(point)191 1375 y(Ew.d)142 b(Exponential)45
+b(floating)g(point)191 1488 y(Dw.d)142 b(Exponential)45
+b(floating)g(point)191 1600 y(Gw.d)142 b(General;)46
+b(uses)g(Fw.d)h(if)g(significance)d(not)j(lost,)g(else)f(Ew.d)0
+1855 y Fi(where)37 b(w)h(is)f(the)h(width)e(in)h(c)m(haracters)i(of)f
+(the)h(displa)m(y)m(ed)d(v)-5 b(alues,)40 b(m)d(is)g(the)h(minim)m(um)e
+(n)m(um)m(b)s(er)g(of)i(digits)0 1968 y(displa)m(y)m(ed,)29
+b(and)h(d)g(is)f(the)i(n)m(um)m(b)s(er)e(of)h(digits)f(to)i(the)g(righ)
+m(t)f(of)h(the)f(decimal.)40 b(The)30 b(.m)g(\014eld)f(is)g(optional.)0
+2223 y Fh(1)81 b Fi(Put)30 b(elemen)m(ts)h(in)m(to)g(an)f(ASCI)s(I)f
+(or)i(binary)e(table)i(column)e(\(in)h(the)h(CDU\).)g(\(The)g(SPP)f
+(FSPCLS)f(routine)227 2336 y(has)38 b(an)f(additional)f(in)m(teger)i
+(argumen)m(t)g(after)h(the)f(V)-10 b(ALUES)37 b(c)m(haracter)i(string)e
+(whic)m(h)f(sp)s(eci\014es)h(the)227 2449 y(size)30 b(of)h(the)g(1st)g
+(dimension)c(of)k(this)e(2-D)j(CHAR)e(arra)m(y\).)382
+2704 y Fe(FTPCL[SLBIJEDCM]\(unit,co)o(lnu)o(m,fr)o(ow,f)o(ele)o(m,ne)o
+(leme)o(nts)o(,val)o(ues,)41 b(>)47 b(status\))0 2959
+y Fh(2)81 b Fi(Put)29 b(elemen)m(ts)h(in)m(to)g(an)g(ASCI)s(I)e(or)i
+(binary)e(table)i(column)e(\(in)h(the)h(CDU\))g(substituting)e(the)i
+(appropriate)227 3072 y(FITS)i(n)m(ull)e(v)-5 b(alue)31
+b(for)h(an)m(y)h(elemen)m(ts)f(that)h(are)f(equal)g(to)h(NULL)-10
+b(V)g(AL.)32 b(This)e(family)h(of)h(routines)f(m)m(ust)227
+3185 y(NOT)h(b)s(e)g(used)f(to)i(write)f(to)h(v)-5 b(ariable)31
+b(length)g(arra)m(y)i(columns.)45 b(F)-8 b(or)33 b(ASCI)s(I)e(T)-8
+b(ABLE)32 b(extensions,)h(the)227 3298 y(n)m(ull)39 b(v)-5
+b(alue)41 b(de\014ned)f(b)m(y)h(the)g(previous)f(call)g(to)i(FTSNUL)e
+(will)f(b)s(e)h(substituted;)45 b(F)-8 b(or)42 b(in)m(teger)g(FITS)227
+3410 y(columns,)c(in)e(a)i(binary)e(table)h(the)g(n)m(ull)f(v)-5
+b(alue)36 b(de\014ned)h(b)m(y)g(the)g(previous)f(call)h(to)h(FTTNUL)f
+(will)e(b)s(e)227 3523 y(substituted;)27 b(F)-8 b(or)28
+b(\015oating)g(p)s(oin)m(t)e(FITS)g(columns)g(a)i(sp)s(ecial)e(IEEE)h
+(NaN)h(\(Not-a-Num)m(b)s(er\))h(v)-5 b(alue)27 b(will)227
+3636 y(b)s(e)j(substituted.)382 3891 y Fe(FTPCN[BIJED]\(unit,colnum)o
+(,fr)o(ow,f)o(elem)o(,ne)o(leme)o(nts,)o(val)o(ues,)o(null)o(val)41
+b(>)48 b(status\))0 4146 y Fh(3)81 b Fi(Put)37 b(bit)g(v)-5
+b(alues)37 b(in)m(to)h(a)g(binary)e(b)m(yte)i(\('B'\))i(or)d(bit)g
+(\('X'\))i(table)f(column)f(\(in)f(the)i(CDU\).)h(LRA)-8
+b(Y)38 b(is)f(an)227 4259 y(arra)m(y)d(of)g(logical)e(v)-5
+b(alues)33 b(corresp)s(onding)e(to)j(the)g(sequence)f(of)h(bits)e(to)i
+(b)s(e)f(written.)48 b(If)33 b(LRA)-8 b(Y)34 b(is)e(true)227
+4372 y(then)g(the)g(corresp)s(onding)e(bit)h(is)g(set)h(to)h(1,)g
+(otherwise)e(the)h(bit)f(is)g(set)i(to)g(0.)45 b(Note)34
+b(that)e(in)f(the)h(case)h(of)227 4485 y('X')g(columns,)f(FITSIO)f
+(will)f(write)h(to)i(all)e(8)i(bits)e(of)h(eac)m(h)i(b)m(yte)f(whether)
+e(they)i(are)g(formally)d(v)-5 b(alid)31 b(or)227 4598
+y(not.)46 b(Th)m(us)31 b(if)g(the)h(column)f(is)f(de\014ned)h(as)h
+('4X',)i(and)d(one)h(calls)f(FTPCLX)h(with)e(fbit=1)h(and)g(n)m(bit=8,)
+227 4711 y(then)j(all)f(8)h(bits)f(will)e(b)s(e)i(written)g(in)m(to)h
+(the)g(\014rst)g(b)m(yte)g(\(as)h(opp)s(osed)e(to)i(writing)c(the)k
+(\014rst)e(4)h(bits)f(in)m(to)227 4824 y(the)e(\014rst)f(ro)m(w)g(and)g
+(then)g(the)h(next)f(4)h(bits)e(in)m(to)i(the)f(next)h(ro)m(w\),)g(ev)m
+(en)g(though)f(the)h(last)f(4)h(bits)e(of)i(eac)m(h)227
+4937 y(b)m(yte)g(are)g(formally)e(not)i(de\014ned.)382
+5191 y Fe(FTPCLX\(unit,colnum,frow,)o(fbi)o(t,nb)o(it,l)o(ray)o(,)42
+b(>)47 b(status\))0 5446 y Fh(4)81 b Fi(Set)30 b(table)g(elemen)m(ts)h
+(in)e(a)i(column)e(as)i(unde\014ned)382 5701 y Fe
+(FTPCLU\(unit,colnum,frow,)o(fel)o(em,n)o(elem)o(ent)o(s,)42
+b(>)47 b(status\))p eop
+%%Page: 95 101
+95 100 bop 0 299 a Fg(9.7.)72 b(FITS)30 b(ASCI)s(I)f(AND)i(BINAR)-8
+b(Y)31 b(T)-8 b(ABLE)31 b(D)m(A)-8 b(T)g(A)32 b(I/O)e(SUBR)m(OUTINES)
+979 b Fi(95)0 555 y Fh(5)81 b Fi(Get)34 b(elemen)m(ts)f(from)g(an)g
+(ASCI)s(I)f(or)h(binary)f(table)h(column)f(\(in)g(the)h(CDU\).)i(These)
+e(routines)f(return)g(the)227 668 y(v)-5 b(alues)29 b(of)h(the)g(table)
+g(column)f(arra)m(y)h(elemen)m(ts.)41 b(Unde\014ned)28
+b(arra)m(y)j(elemen)m(ts)f(will)d(b)s(e)i(returned)g(with)g(a)227
+781 y(v)-5 b(alue)25 b(=)h(n)m(ullv)-5 b(al,)24 b(unless)g(n)m(ullv)-5
+b(al)23 b(=)i(0)h(\(or)g(=)f(')h(')g(for)f(ftgcvs\))i(in)d(whic)m(h)g
+(case)j(no)e(c)m(hec)m(king)i(for)e(unde\014ned)227 894
+y(v)-5 b(alues)27 b(will)e(b)s(e)i(p)s(erformed.)39 b(The)27
+b(ANYF)h(parameter)g(is)f(set)h(to)g(true)g(if)f(an)m(y)g(of)h(the)g
+(returned)f(elemen)m(ts)227 1007 y(are)f(unde\014ned.)37
+b(\(Note:)i(the)26 b(ftgcl)f(routine)f(simple)f(gets)j(an)g(arra)m(y)f
+(of)g(logical)g(data)h(v)-5 b(alues)24 b(without)h(an)m(y)227
+1120 y(c)m(hec)m(ks)39 b(for)e(unde\014ned)e(v)-5 b(alues;)40
+b(use)d(the)g(ftgc\015)h(routine)e(to)i(c)m(hec)m(k)g(for)f
+(unde\014ned)e(logical)i(elemen)m(ts\).)227 1233 y(\(The)29
+b(SPP)f(FSGCVS)g(routine)f(has)i(an)f(additional)f(in)m(teger)i
+(argumen)m(t)g(after)g(the)g(V)-10 b(ALUES)28 b(c)m(haracter)227
+1346 y(string)i(whic)m(h)f(sp)s(eci\014es)g(the)h(size)h(of)f(the)h
+(1st)g(dimension)c(of)k(this)e(2-D)j(CHAR)e(arra)m(y\).)382
+1595 y Fe(FTGCL\(unit,colnum,frow,f)o(ele)o(m,ne)o(leme)o(nts)o(,)42
+b(>)47 b(values,status\))382 1708 y(FTGCV[SBIJEDCM]\(unit,col)o(num)o
+(,fro)o(w,fe)o(lem)o(,nel)o(emen)o(ts,)o(null)o(val,)41
+b(>)1098 1821 y(values,anyf,status\))0 2071 y Fh(6)81
+b Fi(Get)44 b(elemen)m(ts)g(and)e(n)m(ull)g(\015ags)h(from)g(an)h(ASCI)
+s(I)d(or)j(binary)d(table)j(column)e(\(in)g(the)i(CHDU\).)g(These)227
+2184 y(routines)28 b(return)f(the)i(v)-5 b(alues)28 b(of)h(the)g(table)
+g(column)e(arra)m(y)j(elemen)m(ts.)40 b(An)m(y)29 b(unde\014ned)d(arra)
+m(y)k(elemen)m(ts)227 2297 y(will)k(ha)m(v)m(e)k(the)f(corresp)s
+(onding)e(\015agv)-5 b(als)36 b(elemen)m(t)i(set)f(equal)f(to)i(.TR)m
+(UE.)f(The)f(ANYF)i(parameter)f(is)227 2409 y(set)30
+b(to)g(true)g(if)e(an)m(y)i(of)f(the)h(returned)e(elemen)m(ts)i(are)g
+(unde\014ned.)38 b(\(The)29 b(SPP)f(FSGCFS)h(routine)g(has)g(an)227
+2522 y(additional)24 b(in)m(teger)j(argumen)m(t)f(after)h(the)f(V)-10
+b(ALUES)26 b(c)m(haracter)i(string)d(whic)m(h)f(sp)s(eci\014es)h(the)i
+(size)e(of)i(the)227 2635 y(1st)k(dimension)d(of)j(this)e(2-D)i(CHAR)g
+(arra)m(y\).)382 2885 y Fe(FTGCF[SLBIJEDCM]\(unit,co)o(lnu)o(m,fr)o
+(ow,f)o(ele)o(m,ne)o(leme)o(nts)o(,)42 b(>)1193 2998
+y(values,flagvals,anyf,stat)o(us\))0 3247 y Fh(7)81 b
+Fi(Get)29 b(an)f(arbitrary)f(data)i(subsection)e(from)h(an)g
+(N-dimensional)e(arra)m(y)j(in)e(a)h(binary)f(table)h(v)m(ector)i
+(column.)227 3360 y(Unde\014ned)k(pixels)f(in)h(the)i(arra)m(y)g(will)c
+(b)s(e)j(set)h(equal)e(to)i(the)g(v)-5 b(alue)35 b(of)g('n)m(ullv)-5
+b(al',)35 b(unless)e(n)m(ullv)-5 b(al=0)33 b(in)227 3473
+y(whic)m(h)f(case)j(no)e(testing)h(for)f(unde\014ned)e(pixels)h(will)e
+(b)s(e)j(p)s(erformed.)49 b(The)32 b(\014rst)h(and)g(last)g(ro)m(ws)h
+(in)e(the)227 3586 y(table)27 b(to)g(b)s(e)f(read)g(are)h(sp)s
+(eci\014ed)d(b)m(y)j(fpixels\(naxis+1\))d(and)i(lpixels\(naxis+1\),)f
+(and)h(hence)g(are)h(treated)227 3699 y(as)f(the)f(next)h(higher)e
+(dimension)f(of)i(the)h(FITS)e(N-dimensional)f(arra)m(y)-8
+b(.)40 b(The)25 b(INCS)f(parameter)i(sp)s(eci\014es)227
+3812 y(the)31 b(sampling)d(in)m(terv)-5 b(al)30 b(in)f(eac)m(h)i
+(dimension)d(b)s(et)m(w)m(een)j(the)g(data)g(elemen)m(ts)f(that)h(will)
+d(b)s(e)i(returned.)382 4062 y Fe(FTGSV[BIJED]\(unit,colnum)o(,na)o
+(xis,)o(naxe)o(s,f)o(pixe)o(ls,l)o(pix)o(els,)o(incs)o(,nu)o(llva)o(l,)
+42 b(>)1002 4175 y(array,anyf,status\))0 4424 y Fh(8)81
+b Fi(Get)29 b(an)f(arbitrary)f(data)i(subsection)e(from)h(an)g
+(N-dimensional)e(arra)m(y)j(in)e(a)h(binary)f(table)h(v)m(ector)i
+(column.)227 4537 y(An)m(y)39 b(Unde\014ned)e(pixels)g(in)h(the)h(arra)
+m(y)g(will)d(ha)m(v)m(e)k(the)f(corresp)s(onding)e('\015agv)-5
+b(als')39 b(elemen)m(t)g(set)g(equal)227 4650 y(to)d(.TR)m(UE.)f(The)f
+(\014rst)g(and)g(last)h(ro)m(ws)g(in)e(the)i(table)g(to)g(b)s(e)g(read)
+f(are)h(sp)s(eci\014ed)e(b)m(y)i(fpixels\(naxis+1\))227
+4763 y(and)k(lpixels\(naxis+1\),)g(and)f(hence)i(are)f(treated)i(as)e
+(the)g(next)h(higher)e(dimension)e(of)k(the)f(FITS)g(N-)227
+4876 y(dimensional)d(arra)m(y)-8 b(.)66 b(The)38 b(INCS)g(parameter)h
+(sp)s(eci\014es)e(the)h(sampling)f(in)m(terv)-5 b(al)38
+b(in)f(eac)m(h)j(dimension)227 4989 y(b)s(et)m(w)m(een)31
+b(the)g(data)g(elemen)m(ts)g(that)g(will)c(b)s(e)j(returned.)382
+5238 y Fe(FTGSF[BIJED]\(unit,colnum)o(,na)o(xis,)o(naxe)o(s,f)o(pixe)o
+(ls,l)o(pix)o(els,)o(incs)o(,)42 b(>)1002 5351 y
+(array,flagvals,anyf,statu)o(s\))0 5601 y Fh(9)81 b Fi(Get)33
+b(bit)f(v)-5 b(alues)33 b(from)f(a)h(b)m(yte)h(\('B'\))g(or)f(bit)f
+(\(`X`\))i(table)f(column)f(\(in)g(the)h(CDU\).)g(LRA)-8
+b(Y)34 b(is)e(an)g(arra)m(y)i(of)227 5714 y(logical)k(v)-5
+b(alues)38 b(corresp)s(onding)f(to)i(the)g(sequence)f(of)h(bits)f(to)h
+(b)s(e)f(read.)65 b(If)38 b(LRA)-8 b(Y)39 b(is)e(true)i(then)f(the)p
+eop
+%%Page: 96 102
+96 101 bop 0 299 a Fi(96)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)227
+555 y Fi(corresp)s(onding)j(bit)g(w)m(as)h(set)h(to)g(1,)h(otherwise)e
+(the)g(bit)g(w)m(as)g(set)h(to)g(0.)53 b(Note)35 b(that)g(in)e(the)i
+(case)g(of)f('X')227 668 y(columns,)40 b(FITSIO)e(will)e(read)i(all)g
+(8)h(bits)f(of)h(eac)m(h)h(b)m(yte)f(whether)f(they)h(are)g(formally)f
+(v)-5 b(alid)37 b(or)h(not.)227 781 y(Th)m(us)c(if)f(the)i(column)e(is)
+g(de\014ned)g(as)i('4X',)h(and)d(one)i(calls)f(FTGCX)g(with)f(fbit=1)h
+(and)f(n)m(bit=8,)i(then)227 894 y(all)28 b(8)i(bits)e(will)e(b)s(e)j
+(read)g(from)g(the)g(\014rst)f(b)m(yte)i(\(as)g(opp)s(osed)e(to)i
+(reading)e(the)i(\014rst)e(4)i(bits)e(from)g(the)i(\014rst)227
+1007 y(ro)m(w)g(and)e(then)h(the)h(\014rst)e(4)i(bits)e(from)h(the)g
+(next)g(ro)m(w\),)i(ev)m(en)f(though)f(the)g(last)g(4)h(bits)e(of)h
+(eac)m(h)i(b)m(yte)f(are)227 1120 y(formally)f(not)i(de\014ned.)382
+1385 y Fe(FTGCX\(unit,colnum,frow,f)o(bit)o(,nbi)o(t,)42
+b(>)47 b(lray,status\))0 1650 y Fh(10)f Fi(Read)31 b(an)m(y)g
+(consecutiv)m(e)g(set)g(of)g(bits)f(from)g(an)g('X')i(or)e('B')i
+(column)d(and)h(in)m(terpret)g(them)h(as)g(an)f(unsigned)227
+1763 y(n-bit)j(in)m(teger.)53 b(NBIT)35 b(m)m(ust)f(b)s(e)f(less)h
+(than)g(or)g(equal)g(to)h(16)g(when)f(calling)e(FTGCXI,)j(and)f(less)f
+(than)227 1876 y(or)f(equal)f(to)h(32)g(when)e(calling)g(FTGCXJ;)i
+(there)f(is)g(no)g(limit)e(on)j(the)f(v)-5 b(alue)31
+b(of)h(NBIT)f(for)g(FTGCXD,)227 1989 y(but)38 b(the)h(returned)e
+(double)h(precision)e(v)-5 b(alue)38 b(only)g(has)g(48)i(bits)d(of)i
+(precision)e(on)h(most)h(32-bit)g(w)m(ord)227 2102 y(mac)m(hines.)63
+b(The)37 b(NBITS)g(bits)g(are)h(in)m(terpreted)f(as)h(an)g(unsigned)d
+(in)m(teger)k(unless)d(NBITS)h(=)g(16)i(\(in)227 2215
+y(FTGCXI\))e(or)g(32)g(\(in)f(FTGCXJ\))g(in)f(whic)m(h)h(case)h(the)g
+(string)f(of)g(bits)g(are)h(in)m(terpreted)e(as)i(16-bit)g(or)227
+2328 y(32-bit)j(2's)g(complemen)m(t)g(signed)e(in)m(tegers.)68
+b(If)39 b(NR)m(O)m(WS)i(is)d(greater)j(than)e(1)h(then)f(the)h(same)g
+(set)g(of)227 2441 y(bits)33 b(will)e(b)s(e)i(read)h(from)f(sequen)m
+(tial)g(ro)m(ws)h(in)e(the)i(table)f(starting)h(with)e(ro)m(w)i(FR)m(O)
+m(W.)h(Note)g(that)g(the)227 2554 y(n)m(um)m(b)s(ering)26
+b(con)m(v)m(en)m(tion)j(used)e(here)g(for)h(the)g(FBIT)f(parameter)i
+(adopts)e(1)h(for)g(the)g(\014rst)f(elemen)m(t)h(of)g(the)227
+2667 y(v)m(ector)k(of)f(bits;)e(this)h(is)f(the)i(Most)g(Signi\014can)m
+(t)e(Bit)h(of)h(the)f(in)m(teger)h(v)-5 b(alue.)382 2932
+y Fe(FTGCX[IJD]\(unit,colnum,f)o(row)o(,nro)o(ws,f)o(bit)o(,nbi)o(t,)42
+b(>)47 b(array,status\))0 3197 y Fh(11)f Fi(Get)37 b(the)e(descriptor)g
+(for)g(a)h(v)-5 b(ariable)35 b(length)g(column)f(in)g(a)i(binary)e
+(table.)56 b(The)35 b(descriptor)g(consists)g(of)227
+3310 y(2)d(in)m(teger)f(parameters:)42 b(the)31 b(n)m(um)m(b)s(er)f(of)
+h(elemen)m(ts)h(in)d(the)i(arra)m(y)h(and)e(the)h(starting)g(o\013set)h
+(relativ)m(e)f(to)227 3423 y(the)d(start)f(of)g(the)h(heap.)39
+b(The)27 b(\014rst)f(routine)g(returns)g(a)h(single)f(descriptor)g
+(whereas)h(the)g(second)g(routine)227 3536 y(returns)i(the)i
+(descriptors)e(for)h(a)h(range)g(of)f(ro)m(ws)h(in)e(the)h(table.)382
+3801 y Fe(FTGDES\(unit,colnum,rownu)o(m,)41 b(>)48 b
+(nelements,offset,status\))382 3914 y(FFGDESSunit,colnum,first)o(row)o
+(,nro)o(ws)42 b(>)47 b(nelements,offset,)c(status\))0
+4179 y Fh(12)j Fi(Put)29 b(the)g(descriptor)f(for)h(a)h(v)-5
+b(ariable)28 b(length)h(column)f(in)g(a)h(binary)f(table.)40
+b(This)27 b(subroutine)h(can)h(b)s(e)g(used)227 4292
+y(in)23 b(conjunction)h(with)f(FTGDES)h(to)h(enable)f(2)h(or)f(more)g
+(arra)m(ys)h(to)g(p)s(oin)m(t)e(to)i(the)g(same)g(storage)g(lo)s
+(cation)227 4405 y(to)31 b(sa)m(v)m(e)h(storage)g(space)f(if)e(the)i
+(arra)m(ys)g(are)g(iden)m(tical.)382 4671 y Fe
+(FTPDES\(unit,colnum,rownu)o(m,n)o(elem)o(ents)o(,of)o(fset)o(,)42
+b(>)47 b(status\))0 5011 y Fd(9.8)135 b(Ro)l(w)46 b(Selection)g(and)f
+(Calculator)h(Routines)0 5262 y Fi(These)21 b(routines)e(all)h(parse)h
+(and)f(ev)-5 b(aluate)22 b(an)e(input)f(string)h(con)m(taining)h(a)g
+(user)f(de\014ned)g(arithmetic)g(expression.)0 5375 y(The)29
+b(\014rst)f(3)i(routines)e(select)i(ro)m(ws)f(in)f(a)i(FITS)e(table,)i
+(based)f(on)g(whether)g(the)g(expression)f(ev)-5 b(aluates)30
+b(to)g(true)0 5488 y(\(not)e(equal)e(to)i(zero\))g(or)f(false)g
+(\(zero\).)41 b(The)27 b(other)g(routines)f(ev)-5 b(aluate)28
+b(the)f(expression)f(and)g(calculate)i(a)f(v)-5 b(alue)0
+5601 y(for)35 b(eac)m(h)h(ro)m(w)g(of)f(the)h(table.)55
+b(The)35 b(allo)m(w)m(ed)g(expression)f(syn)m(tax)h(is)g(describ)s(ed)e
+(in)h(the)h(ro)m(w)h(\014lter)e(section)h(in)0 5714 y(the)i(earlier)f
+(`Extended)g(File)g(Name)h(Syn)m(tax')g(c)m(hapter)h(of)f(this)e(do)s
+(cumen)m(t.)60 b(The)36 b(expression)g(ma)m(y)h(also)g(b)s(e)p
+eop
+%%Page: 97 103
+97 102 bop 0 299 a Fg(9.8.)72 b(R)m(O)m(W)31 b(SELECTION)e(AND)i
+(CALCULA)-8 b(TOR)29 b(R)m(OUTINES)1382 b Fi(97)0 555
+y(written)27 b(to)j(a)e(text)i(\014le,)e(and)g(the)h(name)f(of)h(the)f
+(\014le,)g(prep)s(ended)f(with)g(a)i('@')f(c)m(haracter)i(ma)m(y)f(b)s
+(e)f(supplied)d(for)0 668 y(the)34 b('expr')g(parameter)g(\(e.g.)53
+b('@\014lename.txt'\).)e(The)34 b(expression)e(in)h(the)h(\014le)f(can)
+h(b)s(e)f(arbitrarily)e(complex)0 781 y(and)k(extend)h(o)m(v)m(er)h(m)m
+(ultiple)c(lines)h(of)i(the)f(\014le.)56 b(Lines)35 b(that)h(b)s(egin)e
+(with)g(2)i(slash)f(c)m(haracters)i(\('//'\))h(will)33
+b(b)s(e)0 894 y(ignored)c(and)h(ma)m(y)h(b)s(e)f(used)g(to)h(add)e
+(commen)m(ts)j(to)f(the)f(\014le.)0 1171 y Fh(1)81 b
+Fi(Ev)-5 b(aluate)37 b(a)g(b)s(o)s(olean)f(expression)g(o)m(v)m(er)i
+(the)g(indicated)d(ro)m(ws,)k(returning)c(an)i(arra)m(y)h(of)f(\015ags)
+g(indicating)227 1284 y(whic)m(h)29 b(ro)m(ws)i(ev)-5
+b(aluated)30 b(to)h(TR)m(UE/F)-10 b(ALSE)430 1560 y Fe
+(FTFROW\(unit,expr,firstr)o(ow,)41 b(nrows,)46 b(>)i(n_good_rows,)c
+(row_status,)h(status\))0 1837 y Fh(2)81 b Fi(Find)28
+b(the)j(\014rst)f(ro)m(w)g(whic)m(h)f(satis\014es)h(the)h(input)d(b)s
+(o)s(olean)h(expression)430 2114 y Fe(FTFFRW\(unit,)44
+b(expr,)i(>)i(rownum,)e(status\))0 2391 y Fh(3)81 b Fi(Ev)-5
+b(aluate)34 b(an)g(expression)g(on)g(all)f(ro)m(ws)i(of)f(a)h(table.)53
+b(If)34 b(the)g(input)f(and)h(output)g(\014les)f(are)i(not)g(the)f
+(same,)227 2503 y(cop)m(y)39 b(the)f(TR)m(UE)g(ro)m(ws)h(to)f(the)h
+(output)e(\014le.)63 b(If)38 b(the)g(\014les)f(are)i(the)f(same,)j
+(delete)d(the)g(F)-10 b(ALSE)38 b(ro)m(ws)227 2616 y(\(preserv)m(e)31
+b(the)g(TR)m(UE)f(ro)m(ws\).)430 2893 y Fe(FTSROW\(inunit,)43
+b(outunit,)j(expr,)g(>)i(status\))0 3170 y Fh(4)81 b
+Fi(Calculate)26 b(an)h(expression)e(for)i(the)f(indicated)g(ro)m(ws)g
+(of)h(a)g(table,)h(returning)d(the)i(results,)f(cast)i(as)f(datat)m(yp)
+s(e)227 3283 y(\(TSHOR)-8 b(T,)32 b(TDOUBLE,)h(etc\),)h(in)d(arra)m(y)
+-8 b(.)48 b(If)31 b(n)m(ulv)-5 b(al==NULL,)31 b(UNDEFs)i(will)c(b)s(e)j
+(zero)s(ed)g(out.)47 b(F)-8 b(or)227 3396 y(v)m(ector)37
+b(results,)e(the)g(n)m(um)m(b)s(er)e(of)i(elemen)m(ts)h(returned)d(ma)m
+(y)j(b)s(e)e(less)g(than)h(nelemen)m(ts)f(if)g(nelemen)m(ts)h(is)227
+3509 y(not)30 b(an)g(ev)m(en)h(m)m(ultiple)c(of)j(the)g(result)f
+(dimension.)38 b(Call)28 b(FTTEXP)i(to)g(obtain)g(the)g(dimensions)d
+(of)j(the)227 3621 y(results.)430 3898 y Fe(FTCROW\(unit,datatype,ex)o
+(pr,)o(firs)o(trow)o(,ne)o(leme)o(nts,)o(nul)o(val,)41
+b(>)620 4011 y(array,anynul,status\))0 4288 y Fh(5)81
+b Fi(Ev)-5 b(aluate)32 b(an)h(expression)e(and)i(write)e(the)i(result)f
+(either)g(to)i(a)f(column)e(\(if)h(the)h(expression)e(is)h(a)h
+(function)227 4401 y(of)d(other)g(columns)f(in)f(the)i(table\))g(or)g
+(to)g(a)h(k)m(eyw)m(ord)f(\(if)f(the)h(expression)e(ev)-5
+b(aluates)31 b(to)f(a)g(constan)m(t)i(and)227 4514 y(is)e(not)g(a)h
+(function)e(of)i(other)f(columns)g(in)f(the)h(table\).)41
+b(In)30 b(the)h(former)e(case,)j(the)f(parName)f(parameter)227
+4627 y(is)39 b(the)h(name)f(of)h(the)g(column)e(\(whic)m(h)h(ma)m(y)h
+(or)f(ma)m(y)h(not)g(already)f(exist\))h(in)m(to)f(whic)m(h)g(to)h
+(write)f(the)227 4739 y(results,)e(and)g(parInfo)e(con)m(tains)i(an)g
+(optional)e(TF)m(ORM)i(k)m(eyw)m(ord)g(v)-5 b(alue)37
+b(if)e(a)i(new)f(column)g(is)f(b)s(eing)227 4852 y(created.)42
+b(If)28 b(a)h(TF)m(ORM)h(v)-5 b(alue)28 b(is)g(not)h(sp)s(eci\014ed)f
+(then)g(a)i(default)e(format)h(will)e(b)s(e)h(used,)h(dep)s(ending)d
+(on)227 4965 y(the)35 b(expression.)53 b(If)34 b(the)h(expression)e(ev)
+-5 b(aluates)36 b(to)f(a)g(constan)m(t,)i(then)e(the)g(result)e(will)f
+(b)s(e)i(written)g(to)227 5078 y(the)28 b(k)m(eyw)m(ord)g(name)f(giv)m
+(en)g(b)m(y)h(the)f(parName)h(parameter,)h(and)d(the)i(parInfo)e
+(parameter)i(ma)m(y)g(b)s(e)f(used)227 5191 y(to)k(supply)d(an)i
+(optional)g(commen)m(t)h(for)f(the)g(k)m(eyw)m(ord.)42
+b(If)29 b(the)i(k)m(eyw)m(ord)g(do)s(es)f(not)g(already)g(exist,)g
+(then)227 5304 y(the)g(name)f(of)h(the)g(k)m(eyw)m(ord)g(m)m(ust)f(b)s
+(e)g(preceded)g(with)f(a)i('#')f(c)m(haracter,)j(otherwise)d(the)g
+(result)g(will)e(b)s(e)227 5417 y(written)j(to)h(a)g(column)e(with)g
+(that)i(name.)430 5694 y Fe(FTCALC\(inunit,)43 b(expr,)k(outunit,)e
+(parName,)h(parInfo,)f(>)j(status\))p eop
+%%Page: 98 104
+98 103 bop 0 299 a Fi(98)1319 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fh(6)81 b Fi(This)37 b(calculator)j(routine)f(is)f(similar)f(to)j
+(the)g(previous)e(routine,)j(except)g(that)f(the)g(expression)e(is)h
+(only)227 668 y(ev)-5 b(aluated)41 b(o)m(v)m(er)g(the)f(sp)s(eci\014ed)
+f(ro)m(w)h(ranges.)70 b(nranges)39 b(sp)s(eci\014es)g(the)h(n)m(um)m(b)
+s(er)f(of)h(ro)m(w)h(ranges,)i(and)227 781 y(\014rstro)m(w)30
+b(and)g(lastro)m(w)g(giv)m(e)h(the)g(starting)f(and)g(ending)f(ro)m(w)h
+(n)m(um)m(b)s(er)f(of)i(eac)m(h)g(range.)430 1031 y Fe
+(FTCALC_RNG\(inunit,)42 b(expr,)47 b(outunit,)e(parName,)h(parInfo,)573
+1144 y(nranges,)f(firstrow,)h(lastrow,)f(>)j(status\))0
+1394 y Fh(7)81 b Fi(Ev)-5 b(aluate)30 b(the)h(giv)m(en)f(expression)f
+(and)h(return)f(information)g(on)h(the)h(result.)430
+1643 y Fe(FTTEXP\(unit,)44 b(expr,)i(>)i(datatype,)d(nelem,)h(naxis,)g
+(naxes,)g(status\))0 1976 y Fd(9.9)135 b(Celestial)48
+b(Co)t(ordinate)e(System)f(Subroutines)0 2226 y Fi(The)36
+b(FITS)g(comm)m(unit)m(y)g(has)g(adopted)h(a)g(set)g(of)g(k)m(eyw)m
+(ord)g(con)m(v)m(en)m(tions)g(that)g(de\014ne)f(the)h(transformations)0
+2339 y(needed)30 b(to)i(con)m(v)m(ert)g(b)s(et)m(w)m(een)f(pixel)e(lo)s
+(cations)h(in)f(an)i(image)g(and)f(the)g(corresp)s(onding)f(celestial)h
+(co)s(ordinates)0 2452 y(on)25 b(the)h(sky)-8 b(,)27
+b(or)e(more)g(generally)-8 b(,)27 b(that)f(de\014ne)e(w)m(orld)g(co)s
+(ordinates)i(that)f(are)h(to)g(b)s(e)f(asso)s(ciated)h(with)e(an)m(y)i
+(pixel)0 2564 y(lo)s(cation)34 b(in)f(an)i(n-dimensional)c(FITS)j(arra)
+m(y)-8 b(.)54 b(CFITSIO)33 b(is)g(distributed)f(with)h(a)i(couple)e(of)
+i(self-con)m(tained)0 2677 y(W)-8 b(orld)27 b(Co)s(ordinate)f(System)g
+(\(W)m(CS\))i(routines,)f(ho)m(w)m(ev)m(er,)i(these)f(routines)e(DO)h
+(NOT)f(supp)s(ort)f(all)h(the)h(latest)0 2790 y(W)m(CS)38
+b(con)m(v)m(en)m(tions,)j(so)e(it)f(is)f(STR)m(ONGL)-8
+b(Y)38 b(RECOMMENDED)h(that)f(soft)m(w)m(are)i(dev)m(elop)s(ers)d(use)h
+(a)h(more)0 2903 y(robust)30 b(external)g(W)m(CS)g(library)-8
+b(.)39 b(Sev)m(eral)30 b(recommended)g(libraries)e(are:)95
+3153 y Fe(WCSLIB)47 b(-)95 b(supported)45 b(by)i(Mark)g(Calabretta)95
+3266 y(WCSTools)f(-)h(supported)f(by)h(Doug)g(Mink)95
+3379 y(AST)g(library)f(-)i(developed)d(by)i(the)g(U.K.)g(Starlink)e
+(project)0 3629 y Fi(More)30 b(information)d(ab)s(out)i(the)g(W)m(CS)g
+(k)m(eyw)m(ord)h(con)m(v)m(en)m(tions)g(and)e(links)f(to)j(all)e(of)h
+(these)g(W)m(CS)g(libraries)e(can)0 3742 y(b)s(e)j(found)f(on)h(the)h
+(FITS)e(Supp)s(ort)g(O\016ce)h(w)m(eb)g(site)h(at)g(h)m
+(ttp://\014ts.gsfc.nasa.go)m(v)j(under)29 b(the)h(W)m(CS)h(link.)0
+3902 y(The)i(functions)g(pro)m(vided)g(in)f(these)j(external)e(W)m(CS)h
+(libraries)e(will)f(need)j(access)h(to)g(the)f(W)m(CS)g(information)0
+4015 y(con)m(tained)g(in)e(the)i(FITS)f(\014le)g(headers.)51
+b(One)33 b(con)m(v)m(enien)m(t)i(w)m(a)m(y)g(to)f(pass)g(this)e
+(information)g(to)j(the)f(extermal)0 4128 y(library)j(is)i(to)i(use)e
+(FITSIO)g(to)h(cop)m(y)h(the)f(header)f(k)m(eyw)m(ords)h(in)m(to)g(one)
+g(long)f(c)m(haracter)j(string,)f(and)e(then)0 4240 y(pass)29
+b(this)g(string)g(to)h(an)g(in)m(terface)g(routine)f(in)g(the)h
+(external)f(library)f(that)i(will)d(extract)32 b(the)e(necessary)g(W)m
+(CS)0 4353 y(information)f(\(e.g.,)j(see)f(the)f(astFitsChan)g(and)g
+(astPutCards)g(routines)f(in)g(the)i(Starlink)d(AST)i(library\).)0
+4514 y(The)24 b(follo)m(wing)g(FITSIO)f(routines)h(DO)h(NOT)f(supp)s
+(ort)f(the)i(more)g(recen)m(t)h(W)m(CS)f(con)m(v)m(en)m(tions)h(that)g
+(ha)m(v)m(e)g(b)s(een)0 4626 y(appro)m(v)m(ed)37 b(as)h(part)f(of)g
+(the)h(FITS)e(standard.)61 b(Consequen)m(tly)-8 b(,)38
+b(the)g(follo)m(wing)d(routines)i(ARE)g(NO)m(W)h(DEP-)0
+4739 y(RECA)-8 b(TED.)29 b(It)f(is)g(STR)m(ONGL)-8 b(Y)28
+b(RECOMMENDED)h(that)g(soft)m(w)m(are)h(dev)m(elop)s(ers)e(not)h(use)f
+(these)h(routines,)0 4852 y(and)h(instead)f(use)h(an)h(external)f(W)m
+(CS)g(library)-8 b(,)29 b(as)i(describ)s(ed)d(ab)s(o)m(v)m(e.)0
+5012 y(These)21 b(routines)f(are)h(included)d(mainly)h(for)i(bac)m(kw)m
+(ard)g(compatibilit)m(y)f(with)f(existing)h(soft)m(w)m(are.)39
+b(They)21 b(supp)s(ort)0 5125 y(the)30 b(follo)m(wing)f(standard)g(map)
+g(pro)5 b(jections:)40 b(-SIN,)30 b(-T)-8 b(AN,)31 b(-AR)m(C,)g(-NCP)-8
+b(,)30 b(-GLS,)g(-MER,)h(and)e(-AIT)h(\(these)0 5238
+y(are)f(the)g(legal)f(v)-5 b(alues)28 b(for)g(the)h(co)s(ordt)m(yp)s(e)
+f(parameter\).)41 b(These)28 b(routines)g(are)h(based)f(on)g(similar)e
+(functions)h(in)0 5351 y(Classic)i(AIPS.)h(All)f(the)i(angular)e(quan)m
+(tities)h(are)h(giv)m(en)f(in)f(units)g(of)h(degrees.)0
+5601 y Fh(1)81 b Fi(Get)22 b(the)g(v)-5 b(alues)20 b(of)i(all)e(the)i
+(standard)f(FITS)f(celestial)h(co)s(ordinate)h(system)f(k)m(eyw)m(ords)
+h(from)f(the)h(header)f(of)h(a)227 5714 y(FITS)j(image)h(\(i.e.,)h(the)
+e(primary)f(arra)m(y)i(or)f(an)h(image)f(extension\).)39
+b(These)26 b(v)-5 b(alues)24 b(ma)m(y)i(then)g(b)s(e)e(passed)p
+eop
+%%Page: 99 105
+99 104 bop 0 299 a Fg(9.10.)73 b(FILE)30 b(CHECKSUM)f(SUBR)m(OUTINES)
+2080 b Fi(99)227 555 y(to)39 b(the)e(subroutines)f(that)i(p)s(erform)e
+(the)i(co)s(ordinate)f(transformations.)62 b(If)37 b(an)m(y)h(or)g(all)
+e(of)i(the)g(W)m(CS)227 668 y(k)m(eyw)m(ords)32 b(are)f(not)g(presen)m
+(t,)h(then)f(default)f(v)-5 b(alues)30 b(will)f(b)s(e)h(returned.)41
+b(If)31 b(the)g(\014rst)g(co)s(ordinate)f(axis)h(is)227
+781 y(the)e(declination-lik)m(e)e(co)s(ordinate,)i(then)f(this)f
+(routine)h(will)e(sw)m(ap)i(them)h(so)g(that)g(the)g(longitudinal-lik)m
+(e)227 894 y(co)s(ordinate)h(is)g(returned)f(as)i(the)f(\014rst)g
+(axis.)227 1045 y(If)35 b(the)h(\014le)e(uses)h(the)g(new)m(er)h('CDj)p
+1454 1045 28 4 v 32 w(i')f(W)m(CS)g(transformation)g(matrix)g(k)m(eyw)m
+(ords)g(instead)g(of)g(old)g(st)m(yle)227 1158 y('CDEL)-8
+b(Tn')37 b(and)f('CR)m(OT)-8 b(A2')38 b(k)m(eyw)m(ords,)h(then)e(this)e
+(routine)h(will)e(calculate)k(and)e(return)g(the)h(v)-5
+b(alues)227 1271 y(of)33 b(the)g(equiv)-5 b(alen)m(t)33
+b(old-st)m(yle)f(k)m(eyw)m(ords.)49 b(Note)34 b(that)g(the)f(con)m(v)m
+(ersion)g(from)f(the)i(new-st)m(yle)f(k)m(eyw)m(ords)227
+1383 y(to)f(the)f(old-st)m(yle)f(v)-5 b(alues)30 b(is)g(sometimes)g
+(only)g(an)h(appro)m(ximation,)f(so)g(if)g(the)h(appro)m(ximation)f(is)
+f(larger)227 1496 y(than)37 b(an)h(in)m(ternally)d(de\014ned)h
+(threshold)g(lev)m(el,)j(then)e(CFITSIO)f(will)f(still)g(return)h(the)i
+(appro)m(ximate)227 1609 y(W)m(CS)f(k)m(eyw)m(ord)g(v)-5
+b(alues,)38 b(but)e(will)e(also)j(return)e(with)h(status)h(=)f(506,)k
+(to)e(w)m(arn)e(the)h(calling)e(program)227 1722 y(that)30
+b(appro)m(ximations)d(ha)m(v)m(e)j(b)s(een)e(made.)40
+b(It)29 b(is)f(then)g(up)g(to)h(the)g(calling)f(program)g(to)h(decide)g
+(whether)227 1835 y(the)34 b(appro)m(ximations)e(are)i(su\016cien)m
+(tly)e(accurate)k(for)d(the)h(particular)d(application,)i(or)h(whether)
+f(more)227 1948 y(precise)d(W)m(CS)g(transformations)g(m)m(ust)g(b)s(e)
+g(p)s(erformed)f(using)g(new-st)m(yle)h(W)m(CS)h(k)m(eyw)m(ords)f
+(directly)-8 b(.)382 2209 y Fe(FTGICS\(unit,)44 b(>)k
+(xrval,yrval,xrpix,yrpix)o(,xin)o(c,yi)o(nc,)o(rot,)o(coor)o(dty)o
+(pe,s)o(tatu)o(s\))0 2470 y Fh(2)81 b Fi(Get)34 b(the)f(v)-5
+b(alues)32 b(of)h(all)f(the)h(standard)f(FITS)h(celestial)f(co)s
+(ordinate)h(system)g(k)m(eyw)m(ords)g(from)g(the)g(header)227
+2583 y(of)j(a)h(FITS)e(table)g(where)h(the)g(X)g(and)f(Y)h(\(or)g(RA)g
+(and)g(DEC)f(co)s(ordinates)h(are)g(stored)g(in)f(2)h(separate)227
+2695 y(columns)31 b(of)h(the)g(table.)45 b(These)31 b(v)-5
+b(alues)31 b(ma)m(y)i(then)e(b)s(e)h(passed)f(to)h(the)g(subroutines)e
+(that)i(p)s(erform)f(the)227 2808 y(co)s(ordinate)f(transformations.)
+382 3069 y Fe(FTGTCS\(unit,xcol,ycol,)42 b(>)716 3182
+y(xrval,yrval,xrpix,yrpix,)o(xinc)o(,yi)o(nc,r)o(ot,c)o(oor)o(dtyp)o
+(e,st)o(atu)o(s\))0 3443 y Fh(3)81 b Fi(Calculate)40
+b(the)i(celestial)e(co)s(ordinate)h(corresp)s(onding)e(to)j(the)f
+(input)e(X)i(and)g(Y)g(pixel)e(lo)s(cation)i(in)f(the)227
+3556 y(image.)382 3817 y Fe(FTWLDP\(xpix,ypix,xrval,y)o(rva)o(l,xr)o
+(pix,)o(yrp)o(ix,x)o(inc,)o(yin)o(c,ro)o(t,)1241 3929
+y(coordtype,)45 b(>)i(xpos,ypos,status\))0 4190 y Fh(4)81
+b Fi(Calculate)40 b(the)i(X)f(and)f(Y)h(pixel)f(lo)s(cation)g(corresp)s
+(onding)f(to)j(the)f(input)e(celestial)i(co)s(ordinate)g(in)f(the)227
+4303 y(image.)382 4564 y Fe(FTXYPX\(xpos,ypos,xrval,y)o(rva)o(l,xr)o
+(pix,)o(yrp)o(ix,x)o(inc,)o(yin)o(c,ro)o(t,)1241 4677
+y(coordtype,)45 b(>)i(xpix,ypix,status\))0 5012 y Fd(9.10)136
+b(File)45 b(Chec)l(ksum)g(Subroutines)0 5262 y Fi(The)33
+b(follo)m(wing)e(routines)h(either)h(compute)g(or)h(v)-5
+b(alidate)32 b(the)i(c)m(hec)m(ksums)f(for)g(the)h(CHDU.)g(The)e(D)m(A)
+-8 b(T)g(ASUM)0 5375 y(k)m(eyw)m(ord)33 b(is)e(used)g(to)i(store)f(the)
+h(n)m(umerical)d(v)-5 b(alue)32 b(of)g(the)g(32-bit,)h(1's)g(complemen)
+m(t)f(c)m(hec)m(ksum)h(for)f(the)g(data)0 5488 y(unit)25
+b(alone.)39 b(If)25 b(there)h(is)g(no)f(data)i(unit)e(then)g(the)h(v)-5
+b(alue)26 b(is)f(set)h(to)h(zero.)40 b(The)26 b(n)m(umerical)e(v)-5
+b(alue)26 b(is)f(stored)h(as)g(an)0 5601 y(ASCI)s(I)20
+b(string)h(of)i(digits,)f(enclosed)g(in)e(quotes,)25
+b(b)s(ecause)d(the)g(v)-5 b(alue)22 b(ma)m(y)g(b)s(e)f(to)s(o)i(large)f
+(to)h(represen)m(t)f(as)g(a)h(32-bit)0 5714 y(signed)k(in)m(teger.)40
+b(The)27 b(CHECKSUM)g(k)m(eyw)m(ord)i(is)e(used)g(to)h(store)h(the)f
+(ASCI)s(I)e(enco)s(ded)i(COMPLEMENT)f(of)p eop
+%%Page: 100 106
+100 105 bop 0 299 a Fi(100)1274 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fi(the)c(c)m(hec)m(ksum)h(for)f(the)h(en)m(tire)f(HDU.)h(Storing)
+e(the)i(complemen)m(t,)g(rather)f(than)g(the)h(actual)f(c)m(hec)m
+(ksum,)i(forces)0 668 y(the)k(c)m(hec)m(ksum)h(for)f(the)h(whole)e(HDU)
+i(to)g(equal)f(zero.)47 b(If)31 b(the)i(\014le)e(has)h(b)s(een)f(mo)s
+(di\014ed)f(since)i(the)g(c)m(hec)m(ksums)0 781 y(w)m(ere)39
+b(computed,)i(then)e(the)g(HDU)g(c)m(hec)m(ksum)h(will)c(usually)g(not)
+j(equal)g(zero.)66 b(These)39 b(c)m(hec)m(ksum)g(k)m(eyw)m(ord)0
+894 y(con)m(v)m(en)m(tions)33 b(are)g(based)f(on)g(a)g(pap)s(er)f(b)m
+(y)h(Rob)g(Seaman)g(published)d(in)i(the)h(pro)s(ceedings)f(of)h(the)h
+(AD)m(ASS)f(IV)0 1007 y(conference)f(in)e(Baltimore)h(in)g(No)m(v)m(em)
+m(b)s(er)h(1994)h(and)e(a)h(later)f(revision)f(in)g(June)g(1995.)0
+1237 y Fh(1)81 b Fi(Compute)33 b(and)g(write)g(the)h(D)m(A)-8
+b(T)g(ASUM)35 b(and)e(CHECKSUM)g(k)m(eyw)m(ord)h(v)-5
+b(alues)33 b(for)g(the)h(CHDU)g(in)m(to)g(the)227 1350
+y(curren)m(t)25 b(header.)38 b(The)24 b(D)m(A)-8 b(T)g(ASUM)27
+b(v)-5 b(alue)24 b(is)f(the)i(32-bit)g(c)m(hec)m(ksum)g(for)f(the)h
+(data)g(unit,)g(expressed)f(as)h(a)227 1463 y(decimal)30
+b(in)m(teger)g(enclosed)g(in)f(single)g(quotes.)41 b(The)30
+b(CHECKSUM)g(k)m(eyw)m(ord)g(v)-5 b(alue)30 b(is)f(a)i(16-c)m(haracter)
+227 1576 y(string)i(whic)m(h)f(is)h(the)g(ASCI)s(I-enco)s(ded)f(v)-5
+b(alue)33 b(for)h(the)f(complemen)m(t)h(of)g(the)f(c)m(hec)m(ksum)i
+(for)e(the)h(whole)227 1689 y(HDU.)h(If)e(these)g(k)m(eyw)m(ords)h
+(already)f(exist,)h(their)e(v)-5 b(alues)33 b(will)e(b)s(e)i(up)s
+(dated)f(only)g(if)g(necessary)i(\(i.e.,)h(if)227 1802
+y(the)c(\014le)e(has)h(b)s(een)g(mo)s(di\014ed)e(since)i(the)h
+(original)d(k)m(eyw)m(ord)j(v)-5 b(alues)30 b(w)m(ere)h(computed\).)382
+2033 y Fe(FTPCKS\(unit,)44 b(>)k(status\))0 2263 y Fh(2)81
+b Fi(Up)s(date)28 b(the)h(CHECKSUM)e(k)m(eyw)m(ord)i(v)-5
+b(alue)28 b(in)f(the)i(CHDU,)g(assuming)e(that)i(the)f(D)m(A)-8
+b(T)g(ASUM)30 b(k)m(eyw)m(ord)227 2376 y(exists)35 b(and)g(already)g
+(has)g(the)h(correct)g(v)-5 b(alue.)55 b(This)34 b(routine)g
+(calculates)i(the)g(new)f(c)m(hec)m(ksum)h(for)f(the)227
+2489 y(curren)m(t)40 b(header)g(unit,)i(adds)d(it)h(to)h(the)f(data)h
+(unit)e(c)m(hec)m(ksum,)44 b(enco)s(des)c(the)g(v)-5
+b(alue)40 b(in)m(to)g(an)g(ASCI)s(I)227 2602 y(string,)30
+b(and)g(writes)f(the)i(string)e(to)i(the)g(CHECKSUM)e(k)m(eyw)m(ord.)
+382 2833 y Fe(FTUCKS\(unit,)44 b(>)k(status\))0 3063
+y Fh(3)81 b Fi(V)-8 b(erify)34 b(the)g(CHDU)h(b)m(y)g(computing)e(the)i
+(c)m(hec)m(ksums)g(and)f(comparing)g(them)g(with)f(the)i(k)m(eyw)m
+(ords.)53 b(The)227 3176 y(data)34 b(unit)e(is)g(v)m(eri\014ed)g
+(correctly)h(if)f(the)i(computed)f(c)m(hec)m(ksum)g(equals)g(the)g(v)-5
+b(alue)33 b(of)g(the)g(D)m(A)-8 b(T)g(ASUM)227 3289 y(k)m(eyw)m(ord.)64
+b(The)37 b(c)m(hec)m(ksum)i(for)f(the)g(en)m(tire)f(HDU)i(\(header)f
+(plus)e(data)j(unit\))d(is)h(correct)i(if)e(it)h(equals)227
+3402 y(zero.)55 b(The)34 b(output)g(D)m(A)-8 b(T)g(A)m(OK)37
+b(and)d(HDUOK)h(parameters)g(in)e(this)h(subroutine)e(are)j(in)m
+(tegers)g(whic)m(h)227 3515 y(will)24 b(ha)m(v)m(e)j(a)f(v)-5
+b(alue)26 b(=)g(1)g(if)f(the)i(data)f(or)g(HDU)h(is)e(v)m(eri\014ed)h
+(correctly)-8 b(,)28 b(a)e(v)-5 b(alue)26 b(=)f(0)i(if)e(the)h(D)m(A)-8
+b(T)g(ASUM)28 b(or)227 3628 y(CHECKSUM)h(k)m(eyw)m(ord)g(is)g(not)g
+(presen)m(t,)h(or)f(v)-5 b(alue)29 b(=)g(-1)h(if)e(the)i(computed)f(c)m
+(hec)m(ksum)h(is)e(not)i(correct.)382 3858 y Fe(FTVCKS\(unit,)44
+b(>)k(dataok,hduok,status\))0 4089 y Fh(4)81 b Fi(Compute)25
+b(and)h(return)f(the)i(c)m(hec)m(ksum)g(v)-5 b(alues)25
+b(for)h(the)h(CHDU)f(\(as)h(double)e(precision)g(v)-5
+b(ariables\))25 b(without)227 4202 y(creating)45 b(or)f(mo)s(difying)e
+(the)j(CHECKSUM)e(and)h(D)m(A)-8 b(T)g(ASUM)46 b(k)m(eyw)m(ords.)83
+b(This)43 b(routine)g(is)h(used)227 4315 y(in)m(ternally)29
+b(b)m(y)h(FTV)m(CKS,)g(but)g(ma)m(y)h(b)s(e)e(useful)g(in)g(other)i
+(situations)e(as)h(w)m(ell.)382 4545 y Fe(FTGCKS\(unit,)44
+b(>)k(datasum,hdusum,status\))0 4776 y Fh(5)81 b Fi(Enco)s(de)33
+b(a)h(c)m(hec)m(ksum)h(v)-5 b(alue)33 b(\(stored)h(in)f(a)h(double)f
+(precision)f(v)-5 b(ariable\))33 b(in)m(to)g(a)i(16-c)m(haracter)h
+(string.)50 b(If)227 4889 y(COMPLEMENT)30 b(=)g(.true.)41
+b(then)30 b(the)g(32-bit)h(sum)e(v)-5 b(alue)30 b(will)e(b)s(e)i
+(complemen)m(ted)g(b)s(efore)g(enco)s(ding.)382 5120
+y Fe(FTESUM\(sum,complement,)42 b(>)47 b(checksum\))0
+5350 y Fh(6)81 b Fi(Deco)s(de)39 b(a)f(16)h(c)m(haracter)h(c)m(hec)m
+(ksum)e(string)f(in)m(to)h(a)h(double)d(precision)g(v)-5
+b(alue.)64 b(If)37 b(COMPLEMENT)g(=)227 5463 y(.true.)k(then)30
+b(the)h(32-bit)f(sum)g(v)-5 b(alue)30 b(will)d(b)s(e)j(complemen)m(ted)
+h(after)f(deco)s(ding.)382 5694 y Fe(FTDSUM\(checksum,compleme)o(nt,)41
+b(>)48 b(sum\))p eop
+%%Page: 101 107
+101 106 bop 0 299 a Fg(9.11.)113 b(D)m(A)-8 b(TE)31 b(AND)g(TIME)f
+(UTILITY)g(R)m(OUTINES)1767 b Fi(101)0 555 y Fd(9.11)180
+b(Date)46 b(and)f(Time)g(Utilit)l(y)i(Routines)0 805
+y Fi(The)29 b(follo)m(wing)f(routines)h(help)f(to)j(construct)f(or)f
+(parse)h(the)g(FITS)f(date/time)h(strings.)40 b(Starting)29
+b(in)f(the)i(y)m(ear)0 918 y(2000,)k(the)d(FITS)g(D)m(A)-8
+b(TE)32 b(k)m(eyw)m(ord)g(v)-5 b(alues)30 b(\(and)i(the)f(v)-5
+b(alues)31 b(of)g(other)h(`D)m(A)-8 b(TE-')33 b(k)m(eyw)m(ords\))f(m)m
+(ust)f(ha)m(v)m(e)i(the)0 1031 y(form)j('YYYY-MM-DD')k(\(date)e(only\))
+e(or)h('YYYY-MM-DDThh:mm:ss.ddd...')61 b(\(date)38 b(and)e(time\))g
+(where)0 1144 y(the)30 b(n)m(um)m(b)s(er)f(of)i(decimal)e(places)h(in)f
+(the)h(seconds)g(v)-5 b(alue)30 b(is)f(optional.)40 b(These)30
+b(times)g(are)g(in)f(UTC.)h(The)g(older)0 1257 y('dd/mm/yy')g(date)h
+(format)g(ma)m(y)g(not)g(b)s(e)e(used)h(for)g(dates)h(after)g(01)g(Jan)
+m(uary)f(2000.)0 1486 y Fh(1)81 b Fi(Get)31 b(the)g(curren)m(t)f
+(system)g(date.)42 b(The)29 b(returned)h(y)m(ear)h(has)f(4)h(digits)e
+(\(1999,)j(2000,)h(etc.\))382 1714 y Fe(FTGSDT\()46 b(>)h(day,)g
+(month,)f(year,)g(status)g(\))0 1943 y Fh(2)81 b Fi(Get)34
+b(the)g(curren)m(t)g(system)f(date)i(and)e(time)g(string)g
+(\('YYYY-MM-DDThh:mm:ss'\).)53 b(The)33 b(time)h(will)d(b)s(e)227
+2056 y(in)25 b(UTC/GMT)h(if)f(a)m(v)-5 b(ailable,)26
+b(as)h(indicated)d(b)m(y)i(a)g(returned)f(timeref)g(v)-5
+b(alue)26 b(=)f(0.)40 b(If)26 b(the)g(returned)e(v)-5
+b(alue)227 2169 y(of)31 b(timeref)f(=)h(1)g(then)f(this)g(indicates)f
+(that)j(it)e(w)m(as)h(not)g(p)s(ossible)d(to)j(con)m(v)m(ert)i(the)d
+(lo)s(cal)g(time)h(to)g(UTC,)227 2281 y(and)f(th)m(us)g(the)h(lo)s(cal)
+e(time)h(w)m(as)h(returned.)382 2510 y Fe(FTGSTM\(>)45
+b(datestr,)h(timeref,)f(status\))0 2739 y Fh(3)81 b Fi(Construct)26
+b(a)i(date)g(string)e(from)h(the)g(input)e(date)j(v)-5
+b(alues.)39 b(If)27 b(the)g(y)m(ear)h(is)f(b)s(et)m(w)m(een)g(1900)i
+(and)e(1998,)j(inclu-)227 2852 y(siv)m(e,)37 b(then)d(the)i(returned)d
+(date)j(string)e(will)e(ha)m(v)m(e)37 b(the)e(old)f(FITS)g(format)i
+(\('dd/mm/yy'\),)h(otherwise)227 2964 y(the)32 b(date)g(string)e(will)e
+(ha)m(v)m(e)33 b(the)e(new)g(FITS)g(format)g(\('YYYY-MM-DD'\).)36
+b(Use)c(FTTM2S)f(instead)f(to)227 3077 y(alw)m(a)m(ys)h(return)e(a)i
+(date)g(string)f(using)e(the)j(new)f(FITS)g(format.)382
+3306 y Fe(FTDT2S\()46 b(year,)g(month,)g(day,)h(>)g(datestr,)f
+(status\))0 3535 y Fh(4)81 b Fi(Construct)34 b(a)i(new-format)f(date)h
+(+)f(time)g(string)f(\('YYYY-MM-DDThh:mm:ss.ddd...'\).)57
+b(If)34 b(the)i(y)m(ear,)227 3647 y(mon)m(th,)d(and)e(da)m(y)h(v)-5
+b(alues)31 b(all)g(=)g(0)h(then)g(only)f(the)h(time)f(is)g(enco)s(ded)g
+(with)g(format)h('hh:mm:ss.ddd...'.)227 3760 y(The)j(decimals)f
+(parameter)i(sp)s(eci\014es)d(ho)m(w)j(man)m(y)f(decimal)f(places)h(of)
+g(fractional)g(seconds)g(to)h(include)227 3873 y(in)29
+b(the)i(string.)40 b(If)29 b(`decimals')h(is)g(negativ)m(e,)h(then)g
+(only)e(the)i(date)g(will)c(b)s(e)j(return)f(\('YYYY-MM-DD'\).)382
+4102 y Fe(FTTM2S\()46 b(year,)g(month,)g(day,)h(hour,)f(minute,)g
+(second,)g(decimals,)764 4215 y(>)h(datestr,)f(status\))0
+4443 y Fh(5)81 b Fi(Return)44 b(the)g(date)i(as)f(read)f(from)h(the)g
+(input)d(string,)48 b(where)c(the)h(string)f(ma)m(y)h(b)s(e)f(in)g
+(either)g(the)h(old)227 4556 y(\('dd/mm/yy'\))31 b(or)g(new)e
+(\('YYYY-MM-DDThh:mm:ss')k(or)d('YYYY-MM-DD'\))k(FITS)c(format.)382
+4785 y Fe(FTS2DT\(datestr,)43 b(>)48 b(year,)e(month,)g(day,)h
+(status\))0 5013 y Fh(6)81 b Fi(Return)30 b(the)h(date)h(and)f(time)g
+(as)g(read)g(from)g(the)h(input)d(string,)h(where)h(the)h(string)e(ma)m
+(y)i(b)s(e)e(in)g(either)h(the)227 5126 y(old)d(or)g(new)g(FITS)g
+(format.)40 b(The)28 b(returned)f(hours,)h(min)m(utes,)g(and)g(seconds)
+g(v)-5 b(alues)28 b(will)d(b)s(e)j(set)h(to)g(zero)227
+5239 y(if)j(the)i(input)d(string)h(do)s(es)h(not)h(include)d(the)i
+(time)g(\('dd/mm/yy')g(or)h('YYYY-MM-DD'\))j(.)c(Similarly)-8
+b(,)227 5352 y(the)36 b(returned)e(y)m(ear,)j(mon)m(th,)g(and)d(date)i
+(v)-5 b(alues)35 b(will)d(b)s(e)j(set)h(to)g(zero)g(if)e(the)h(date)h
+(is)e(not)i(included)c(in)227 5465 y(the)f(input)d(string)i
+(\('hh:mm:ss.ddd...'\).)382 5694 y Fe(FTS2TM\(datestr,)43
+b(>)48 b(year,)e(month,)g(day,)h(hour,)f(minute,)g(second,)g(status\))p
+eop
+%%Page: 102 108
+102 107 bop 0 299 a Fi(102)1274 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fd(9.12)136 b(General)45 b(Utilit)l(y)i(Subroutines)0
+805 y Fi(The)30 b(follo)m(wing)f(utilit)m(y)f(subroutines)h(ma)m(y)i(b)
+s(e)e(useful)g(for)h(certain)g(applications:)0 1060 y
+Fh(1)81 b Fi(Return)29 b(the)i(starting)f(b)m(yte)h(address)e(of)i(the)
+f(CHDU)h(and)f(the)h(next)f(HDU.)382 1315 y Fe(FTGHAD\(iunit,)44
+b(>)j(curaddr,nextaddr\))0 1569 y Fh(2)81 b Fi(Con)m(v)m(ert)31
+b(a)g(c)m(haracter)h(string)d(to)i(upp)s(ercase)e(\(op)s(erates)j(in)d
+(place\).)382 1824 y Fe(FTUPCH\(string\))0 2078 y Fh(3)81
+b Fi(Compare)43 b(the)i(input)d(template)i(string)f(against)h(the)h
+(reference)f(string)f(to)i(see)g(if)e(they)h(matc)m(h.)82
+b(The)227 2191 y(template)35 b(string)f(ma)m(y)h(con)m(tain)f(wildcard)
+e(c)m(haracters:)51 b('*')35 b(will)d(matc)m(h)j(an)m(y)g(sequence)g
+(of)f(c)m(haracters)227 2304 y(\(including)f(zero)j(c)m(haracters\))h
+(and)e('reference)h(string.)55 b(If)35 b(CASESN)f(=)h(.true.)56
+b(then)35 b(the)g(matc)m(h)i(will)227 2417 y(b)s(e)29
+b(case)h(sensitiv)m(e.)40 b(The)29 b(returned)f(MA)-8
+b(TCH)30 b(parameter)g(will)d(b)s(e)h(.true.)41 b(if)28
+b(the)i(2)g(strings)e(matc)m(h,)j(and)227 2530 y(EXA)m(CT)i(will)e(b)s
+(e)h(.true.)49 b(if)32 b(the)i(matc)m(h)g(is)e(exact)i(\(i.e.,)h(if)d
+(no)h(wildcard)e(c)m(haracters)j(w)m(ere)g(used)e(in)g(the)227
+2643 y(matc)m(h\).)42 b(Both)31 b(strings)e(m)m(ust)i(b)s(e)e(68)j(c)m
+(haracters)f(or)g(less)f(in)f(length.)382 2898 y Fe
+(FTCMPS\(str_template,stri)o(ng,)o(case)o(sen,)41 b(>)47
+b(match,exact\))0 3152 y Fh(4)81 b Fi(T)-8 b(est)31 b(that)g(the)f(k)m
+(eyw)m(ord)h(name)f(con)m(tains)h(only)e(legal)i(c)m(haracters:)42
+b(A-Z,0-9,)32 b(h)m(yphen,)d(and)h(underscore.)382 3407
+y Fe(FTTKEY\(keyword,)43 b(>)48 b(status\))0 3662 y Fh(5)81
+b Fi(T)-8 b(est)31 b(that)g(the)f(k)m(eyw)m(ord)h(record)f(con)m(tains)
+h(only)e(legal)h(prin)m(table)f(ASCI)s(I)g(c)m(haracters)382
+3916 y Fe(FTTREC\(card,)44 b(>)k(status\))0 4171 y Fh(6)81
+b Fi(T)-8 b(est)25 b(whether)f(the)h(curren)m(t)f(header)h(con)m(tains)
+f(an)m(y)h(NULL)g(\(ASCI)s(I)e(0\))j(c)m(haracters.)40
+b(These)24 b(c)m(haracters)j(are)227 4284 y(illegal)33
+b(in)g(the)i(header,)g(but)f(they)g(will)e(go)j(undetected)g(b)m(y)f
+(most)h(of)g(the)f(CFITSIO)f(k)m(eyw)m(ord)i(header)227
+4397 y(routines,)28 b(b)s(ecause)g(the)h(n)m(ull)d(is)h(in)m(terpreted)
+g(as)i(the)f(normal)f(end-of-string)h(terminator.)40
+b(This)26 b(routine)227 4509 y(returns)i(the)g(p)s(osition)f(of)i(the)g
+(\014rst)f(n)m(ull)e(c)m(haracter)k(in)e(the)g(header,)h(or)g(zero)g
+(if)f(there)h(are)g(no)f(n)m(ulls.)38 b(F)-8 b(or)227
+4622 y(example)36 b(a)g(returned)f(v)-5 b(alue)36 b(of)g(110)h(w)m
+(ould)e(indicate)g(that)i(the)f(\014rst)f(NULL)h(is)f(lo)s(cated)h(in)f
+(the)h(30th)227 4735 y(c)m(haracter)28 b(of)f(the)g(second)f(k)m(eyw)m
+(ord)h(in)e(the)i(header)f(\(recall)g(that)h(eac)m(h)h(header)e(record)
+h(is)e(80)i(c)m(haracters)227 4848 y(long\).)55 b(Note)36
+b(that)g(this)e(is)g(one)h(of)g(the)g(few)g(FITSIO)f(routines)g(in)f
+(whic)m(h)h(the)h(returned)f(v)-5 b(alue)35 b(is)f(not)227
+4961 y(necessarily)c(equal)f(to)j(the)e(status)h(v)-5
+b(alue\).)382 5216 y Fe(FTNCHK\(unit,)44 b(>)k(status\))0
+5470 y Fh(7)81 b Fi(P)m(arse)27 b(a)f(header)h(k)m(eyw)m(ord)g(record)f
+(and)g(return)f(the)i(name)f(of)h(the)f(k)m(eyw)m(ord)h(and)f(the)h
+(length)e(of)i(the)g(name.)227 5583 y(The)34 b(k)m(eyw)m(ord)h(name)f
+(normally)f(o)s(ccupies)g(the)i(\014rst)e(8)i(c)m(haracters)g(of)g(the)
+f(record,)i(except)f(under)e(the)227 5696 y(HIERAR)m(CH)e(con)m(v)m(en)
+m(tion)g(where)f(the)h(name)f(can)h(b)s(e)f(up)f(to)i(70)g(c)m
+(haracters)h(in)d(length.)p eop
+%%Page: 103 109
+103 108 bop 0 299 a Fg(9.12.)73 b(GENERAL)30 b(UTILITY)g(SUBR)m
+(OUTINES)1934 b Fi(103)382 555 y Fe(FTGKNM\(card,)44
+b(>)k(keyname,)d(keylength,)g(status\))0 811 y Fh(8)81
+b Fi(P)m(arse)34 b(a)h(header)f(k)m(eyw)m(ord)h(record.)52
+b(This)32 b(subroutine)g(parses)i(the)g(input)f(header)h(record)g(to)h
+(return)e(the)227 924 y(v)-5 b(alue)26 b(\(as)h(a)g(c)m(haracter)g
+(string\))f(and)g(commen)m(t)h(strings.)38 b(If)26 b(the)g(k)m(eyw)m
+(ord)h(has)f(no)g(v)-5 b(alue)26 b(\(columns)f(9-10)227
+1037 y(not)i(equal)e(to)i('=)f('\),)i(then)e(the)g(v)-5
+b(alue)26 b(string)f(is)g(returned)g(blank)g(and)g(the)h(commen)m(t)i
+(string)d(is)g(set)h(equal)227 1150 y(to)31 b(column)f(9)g(-)h(80)g(of)
+g(the)f(input)f(string.)382 1406 y Fe(FTPSVC\(card,)44
+b(>)k(value,comment,status\))0 1662 y Fh(9)81 b Fi(Construct)35
+b(a)i(sequence)f(k)m(eyw)m(ord)h(name)f(\(R)m(OOT)g(+)g(nnn\).)57
+b(This)34 b(subroutine)g(app)s(ends)g(the)j(sequence)227
+1775 y(n)m(um)m(b)s(er)29 b(to)i(the)g(ro)s(ot)g(string)e(to)i(create)h
+(a)f(k)m(eyw)m(ord)g(name)f(\(e.g.,)i('NAXIS')f(+)f(2)h(=)f('NAXIS2'\))
+382 2032 y Fe(FTKEYN\(keyroot,seq_no,)42 b(>)47 b(keyword,status\))0
+2288 y Fh(10)f Fi(Construct)30 b(a)g(sequence)g(k)m(eyw)m(ord)h(name)f
+(\(n)f(+)h(R)m(OOT\).)g(This)e(subroutine)g(concatenates)k(the)f
+(sequence)227 2401 y(n)m(um)m(b)s(er)20 b(to)j(the)e(fron)m(t)h(of)g
+(the)f(ro)s(ot)h(string)f(to)h(create)h(a)f(k)m(eyw)m(ord)g(name)g
+(\(e.g.,)j(1)d(+)f('CTYP')g(=)g('1CTYP'\))382 2657 y
+Fe(FTNKEY\(seq_no,keyroot,)42 b(>)47 b(keyword,status\))0
+2913 y Fh(11)f Fi(Determine)34 b(the)g(datat)m(yp)s(e)g(of)g(a)g(k)m
+(eyw)m(ord)h(v)-5 b(alue)33 b(string.)49 b(This)32 b(subroutine)g
+(parses)h(the)h(k)m(eyw)m(ord)g(v)-5 b(alue)227 3026
+y(string)30 b(\(usually)e(columns)h(11-30)k(of)d(the)h(header)f
+(record\))g(to)i(determine)d(its)h(datat)m(yp)s(e.)382
+3282 y Fe(FTDTYP\(value,)44 b(>)j(dtype,status\))0 3538
+y Fh(11)f Fi(Return)c(the)i(class)f(of)g(input)e(header)i(record.)79
+b(The)43 b(record)g(is)f(classi\014ed)f(in)m(to)i(one)h(of)f(the)g
+(follo)m(wing)227 3651 y(categories)35 b(\(the)f(class)e(v)-5
+b(alues)33 b(are)g(de\014ned)f(in)g(\014tsio.h\).)48
+b(Note)35 b(that)e(this)f(is)g(one)i(of)f(the)g(few)g(FITSIO)227
+3764 y(routines)d(that)g(do)s(es)h(not)f(return)f(a)i(status)g(v)-5
+b(alue.)334 4020 y Fe(Class)94 b(Value)619 b(Keywords)95
+4133 y(TYP_STRUC_KEY)92 b(10)j(SIMPLE,)46 b(BITPIX,)g(NAXIS,)g(NAXISn,)
+g(EXTEND,)g(BLOCKED,)1002 4246 y(GROUPS,)g(PCOUNT,)g(GCOUNT,)g(END)1002
+4359 y(XTENSION,)g(TFIELDS,)f(TTYPEn,)h(TBCOLn,)g(TFORMn,)g(THEAP,)1002
+4472 y(and)h(the)g(first)f(4)i(COMMENT)e(keywords)f(in)i(the)g(primary)
+f(array)1002 4585 y(that)h(define)f(the)h(FITS)g(format.)95
+4698 y(TYP_CMPRS_KEY)92 b(20)j(The)47 b(experimental)e(keywords)g(used)
+i(in)g(the)g(compressed)1002 4811 y(image)g(format)f(ZIMAGE,)g
+(ZCMPTYPE,)f(ZNAMEn,)h(ZVALn,)1002 4924 y(ZTILEn,)g(ZBITPIX,)g
+(ZNAXISn,)f(ZSCALE,)h(ZZERO,)g(ZBLANK)95 5036 y(TYP_SCAL_KEY)140
+b(30)95 b(BSCALE,)46 b(BZERO,)g(TSCALn,)g(TZEROn)95 5149
+y(TYP_NULL_KEY)140 b(40)95 b(BLANK,)46 b(TNULLn)95 5262
+y(TYP_DIM_KEY)188 b(50)95 b(TDIMn)95 5375 y(TYP_RANG_KEY)140
+b(60)95 b(TLMINn,)46 b(TLMAXn,)g(TDMINn,)g(TDMAXn,)g(DATAMIN,)f
+(DATAMAX)95 5488 y(TYP_UNIT_KEY)140 b(70)95 b(BUNIT,)46
+b(TUNITn)95 5601 y(TYP_DISP_KEY)140 b(80)95 b(TDISPn)95
+5714 y(TYP_HDUID_KEY)d(90)j(EXTNAME,)46 b(EXTVER,)g(EXTLEVEL,)f
+(HDUNAME,)g(HDUVER,)h(HDULEVEL)p eop
+%%Page: 104 110
+104 109 bop 0 299 a Fi(104)1274 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)95
+555 y Fe(TYP_CKSUM_KEY)45 b(100)94 b(CHECKSUM,)46 b(DATASUM)95
+668 y(TYP_WCS_KEY)141 b(110)94 b(CTYPEn,)46 b(CUNITn,)g(CRVALn,)g
+(CRPIXn,)g(CROTAn,)f(CDELTn)1002 781 y(CDj_is,)h(PVj_ms,)g(LONPOLEs,)f
+(LATPOLEs)1002 894 y(TCTYPn,)h(TCTYns,)g(TCUNIn,)g(TCUNns,)g(TCRVLn,)f
+(TCRVns,)h(TCRPXn,)1002 1007 y(TCRPks,)g(TCDn_k,)g(TCn_ks,)g(TPVn_m,)g
+(TPn_ms,)f(TCDLTn,)h(TCROTn)1002 1120 y(jCTYPn,)g(jCTYns,)g(jCUNIn,)g
+(jCUNns,)g(jCRVLn,)f(jCRVns,)h(iCRPXn,)1002 1233 y(iCRPns,)g(jiCDn,)94
+b(jiCDns,)46 b(jPVn_m,)g(jPn_ms,)f(jCDLTn,)h(jCROTn)1002
+1346 y(\(i,j,m,n)g(are)h(integers,)e(s)i(is)h(any)f(letter\))95
+1458 y(TYP_REFSYS_KEY)d(120)j(EQUINOXs,)f(EPOCH,)g(MJD-OBSs,)f
+(RADECSYS,)g(RADESYSs)95 1571 y(TYP_COMM_KEY)140 b(130)47
+b(COMMENT,)f(HISTORY,)f(\(blank)h(keyword\))95 1684 y(TYP_CONT_KEY)140
+b(140)47 b(CONTINUE)95 1797 y(TYP_USER_KEY)140 b(150)47
+b(all)g(other)g(keywords)430 2023 y(class)f(=)h(FTGKCL)f(\(char)h
+(*card\))0 2275 y Fh(12)f Fi(P)m(arse)f(the)g('TF)m(ORM')h(binary)d
+(table)i(column)e(format)i(string.)83 b(This)43 b(subroutine)g(parses)h
+(the)h(input)227 2388 y(TF)m(ORM)27 b(c)m(haracter)g(string)e(and)h
+(returns)f(the)h(in)m(teger)g(datat)m(yp)s(e)h(co)s(de,)h(the)e(rep)s
+(eat)g(coun)m(t)h(of)f(the)g(\014eld,)227 2501 y(and,)f(in)d(the)i
+(case)g(of)g(c)m(haracter)h(string)d(\014elds,)i(the)f(length)g(of)h
+(the)g(unit)e(string.)37 b(The)23 b(follo)m(wing)f(datat)m(yp)s(e)227
+2613 y(co)s(des)h(are)h(returned)e(\(the)h(negativ)m(e)h(of)g(the)f(v)
+-5 b(alue)22 b(is)g(returned)g(if)g(the)h(column)f(con)m(tains)h(v)-5
+b(ariable-length)227 2726 y(arra)m(ys\):)764 2978 y Fe(Datatype)761
+b(DATACODE)46 b(value)764 3091 y(bit,)g(X)907 b(1)764
+3204 y(byte,)46 b(B)811 b(11)764 3317 y(logical,)45 b(L)668
+b(14)764 3430 y(ASCII)46 b(character,)f(A)286 b(16)764
+3543 y(short)46 b(integer,)g(I)381 b(21)764 3656 y(integer,)45
+b(J)668 b(41)764 3768 y(real,)46 b(E)811 b(42)764 3881
+y(double)46 b(precision,)f(D)238 b(82)764 3994 y(complex)809
+b(83)764 4107 y(double)46 b(complex)475 b(163)382 4333
+y(FTBNFM\(tform,)44 b(>)j(datacode,repeat,width,stat)o(us\))0
+4585 y Fh(13)f Fi(P)m(arse)38 b(the)f('TF)m(ORM')h(k)m(eyw)m(ord)g(v)-5
+b(alue)36 b(that)i(de\014nes)e(the)h(column)f(format)i(in)d(an)i(ASCI)s
+(I)f(table.)61 b(This)227 4698 y(routine)30 b(parses)h(the)g(input)f
+(TF)m(ORM)h(c)m(haracter)i(string)d(and)g(returns)g(the)i(datat)m(yp)s
+(e)g(co)s(de,)f(the)h(width)227 4811 y(of)40 b(the)h(column,)g(and)f
+(\(if)f(it)g(is)h(a)g(\015oating)g(p)s(oin)m(t)f(column\))g(the)h(n)m
+(um)m(b)s(er)f(of)h(decimal)f(places)h(to)h(the)227 4924
+y(righ)m(t)27 b(of)h(the)f(decimal)f(p)s(oin)m(t.)39
+b(The)27 b(returned)f(datat)m(yp)s(e)i(co)s(des)f(are)h(the)g(same)f
+(as)h(for)f(the)g(binary)f(table,)227 5036 y(listed)39
+b(ab)s(o)m(v)m(e,)44 b(with)39 b(the)h(follo)m(wing)f(additional)f
+(rules:)59 b(in)m(teger)41 b(columns)e(that)h(are)h(b)s(et)m(w)m(een)g
+(1)g(and)227 5149 y(4)36 b(c)m(haracters)i(wide)c(are)j(de\014ned)d(to)
+j(b)s(e)e(short)h(in)m(tegers)g(\(co)s(de)g(=)g(21\).)58
+b(Wider)35 b(in)m(teger)h(columns)f(are)227 5262 y(de\014ned)k(to)i(b)s
+(e)e(regular)g(in)m(tegers)i(\(co)s(de)f(=)g(41\).)71
+b(Similarly)-8 b(,)39 b(Fixed)g(decimal)g(p)s(oin)m(t)g(columns)g
+(\(with)227 5375 y(TF)m(ORM)30 b(=)g('Fw.d'\))g(are)g(de\014ned)f(to)h
+(b)s(e)g(single)e(precision)g(reals)h(\(co)s(de)i(=)e(42\))i(if)e(w)g
+(is)g(b)s(et)m(w)m(een)h(1)h(and)227 5488 y(7)i(c)m(haracters)h(wide,)e
+(inclusiv)m(e.)44 b(Wider)31 b('F')i(columns)e(will)f(return)h(a)i
+(double)e(precision)f(data)j(co)s(de)g(\(=)227 5601 y(82\).)54
+b('Ew.d')34 b(format)g(columns)f(will)f(ha)m(v)m(e)j(dataco)s(de)g(=)f
+(42,)j(and)c('Dw.d')i(format)f(columns)f(will)f(ha)m(v)m(e)227
+5714 y(dataco)s(de)g(=)e(82.)p eop
+%%Page: 105 111
+105 110 bop 0 299 a Fg(9.12.)73 b(GENERAL)30 b(UTILITY)g(SUBR)m
+(OUTINES)1934 b Fi(105)382 555 y Fe(FTASFM\(tform,)44
+b(>)j(datacode,width,decimals,st)o(atus)o(\))0 825 y
+Fh(14)f Fi(Calculate)30 b(the)h(starting)f(column)g(p)s(ositions)e(and)
+i(total)h(ASCI)s(I)e(table)i(width)d(based)j(on)f(the)h(input)d(arra)m
+(y)227 938 y(of)f(ASCI)s(I)e(table)h(TF)m(ORM)h(v)-5
+b(alues.)39 b(The)26 b(SP)-8 b(A)m(CE)27 b(input)d(parameter)j
+(de\014nes)f(ho)m(w)h(man)m(y)f(blank)g(spaces)227 1051
+y(to)40 b(lea)m(v)m(e)h(b)s(et)m(w)m(een)f(eac)m(h)g(column)f(\(it)g
+(is)f(recommended)h(to)h(ha)m(v)m(e)h(one)e(space)h(b)s(et)m(w)m(een)g
+(columns)e(for)227 1164 y(b)s(etter)31 b(h)m(uman)e(readabilit)m(y\).)
+382 1434 y Fe(FTGABC\(tfields,tform,spa)o(ce,)41 b(>)48
+b(rowlen,tbcol,status\))0 1704 y Fh(15)e Fi(P)m(arse)36
+b(a)f(template)g(string)f(and)h(return)f(a)h(formatted)h(80-c)m
+(haracter)h(string)d(suitable)g(for)h(app)s(ending)d(to)227
+1817 y(\(or)40 b(deleting)f(from\))g(a)h(FITS)f(header)h(\014le.)67
+b(This)38 b(subroutine)f(is)i(useful)f(for)h(parsing)f(lines)g(from)h
+(an)227 1930 y(ASCI)s(I)34 b(template)i(\014le)f(and)f(reformatting)i
+(them)f(in)m(to)h(legal)f(FITS)f(header)i(records.)55
+b(The)35 b(formatted)227 2043 y(string)30 b(ma)m(y)h(then)f(b)s(e)g
+(passed)g(to)i(the)e(FTPREC,)h(FTMCRD,)g(or)f(FTDKEY)h(subroutines)d
+(to)k(app)s(end)227 2156 y(or)f(mo)s(dify)d(a)j(FITS)f(header)g
+(record.)382 2426 y Fe(FTGTHD\(template,)43 b(>)48 b
+(card,hdtype,status\))0 2696 y Fi(The)23 b(input)g(TEMPLA)-8
+b(TE)23 b(c)m(haracter)j(string)d(generally)g(should)f(con)m(tain)i(3)h
+(tok)m(ens:)38 b(\(1\))25 b(the)f(KEYNAME,)h(\(2\))0
+2809 y(the)h(V)-10 b(ALUE,)26 b(and)f(\(3\))i(the)f(COMMENT)g(string.)
+38 b(The)25 b(TEMPLA)-8 b(TE)26 b(string)f(m)m(ust)g(adhere)h(to)g(the)
+g(follo)m(wing)0 2922 y(format:)0 3192 y Fh(-)80 b Fi(The)24
+b(KEYNAME)g(tok)m(en)h(m)m(ust)e(b)s(egin)g(in)f(columns)h(1-8)i(and)e
+(b)s(e)h(a)g(maxim)m(um)f(of)h(8)g(c)m(haracters)h(long.)38
+b(If)24 b(the)227 3305 y(\014rst)32 b(8)h(c)m(haracters)h(of)e(the)h
+(template)g(line)d(are)j(blank)e(then)h(the)h(remainder)e(of)h(the)h
+(line)e(is)g(considered)227 3418 y(to)42 b(b)s(e)e(a)h(FITS)f(commen)m
+(t)h(\(with)f(a)h(blank)e(k)m(eyw)m(ord)i(name\).)72
+b(A)41 b(legal)g(FITS)f(k)m(eyw)m(ord)h(name)f(ma)m(y)227
+3531 y(only)34 b(con)m(tain)i(the)f(c)m(haracters)h(A-Z,)f(0-9,)j(and)c
+('-')i(\(min)m(us)e(sign\))g(and)g(underscore.)54 b(This)33
+b(subroutine)227 3644 y(will)39 b(automatically)i(con)m(v)m(ert)i(an)m
+(y)f(lo)m(w)m(ercase)h(c)m(haracters)f(to)h(upp)s(ercase)d(in)g(the)i
+(output)f(string.)72 b(If)227 3757 y(KEYNAME)33 b(=)f('COMMENT')h(or)g
+('HISTOR)-8 b(Y')32 b(then)h(the)f(remainder)f(of)i(the)g(line)e(is)h
+(considered)f(to)227 3870 y(b)s(e)f(a)h(FITS)e(COMMENT)h(or)h(HISTOR)-8
+b(Y)30 b(record,)g(resp)s(ectiv)m(ely)-8 b(.)0 4140 y
+Fh(-)80 b Fi(The)26 b(V)-10 b(ALUE)26 b(tok)m(en)h(m)m(ust)e(b)s(e)h
+(separated)g(from)f(the)i(KEYNAME)f(tok)m(en)h(b)m(y)f(one)g(or)g(more)
+g(spaces)g(and/or)227 4253 y(an)i('=')g(c)m(haracter.)41
+b(The)27 b(datat)m(yp)s(e)i(of)f(the)g(V)-10 b(ALUE)27
+b(tok)m(en)i(\(n)m(umeric,)f(logical,)g(or)g(c)m(haracter)h(string\))e
+(is)227 4366 y(automatically)32 b(determined)e(and)i(the)g(output)f
+(CARD)h(string)f(is)g(formatted)h(accordingly)-8 b(.)45
+b(The)31 b(v)-5 b(alue)227 4478 y(tok)m(en)34 b(ma)m(y)f(b)s(e)f
+(forced)g(to)i(b)s(e)e(in)m(terpreted)f(as)i(a)g(string)f(\(e.g.)48
+b(if)32 b(it)g(is)f(a)i(string)f(of)g(n)m(umeric)g(digits\))f(b)m(y)227
+4591 y(enclosing)f(it)g(in)f(single)g(quotes.)0 4862
+y Fh(-)80 b Fi(The)37 b(COMMENT)f(tok)m(en)i(is)e(optional,)i(but)f(if)
+f(presen)m(t)h(m)m(ust)f(b)s(e)h(separated)g(from)g(the)g(V)-10
+b(ALUE)37 b(tok)m(en)227 4974 y(b)m(y)j(at)h(least)g(one)f(blank)f
+(space.)70 b(A)40 b(leading)f('/')i(c)m(haracter)h(ma)m(y)f(b)s(e)e
+(used)h(to)g(mark)g(the)h(b)s(eginning)227 5087 y(of)33
+b(the)f(commen)m(t)h(\014eld,)f(otherwise)f(the)i(commen)m(t)g(\014eld)
+e(b)s(egins)f(with)h(the)h(\014rst)g(non-blank)e(c)m(haracter)227
+5200 y(follo)m(wing)f(the)i(v)-5 b(alue)30 b(tok)m(en.)0
+5470 y Fh(-)80 b Fi(One)32 b(exception)h(to)g(the)g(ab)s(o)m(v)m(e)h
+(rules)d(is)g(that)i(if)f(the)g(\014rst)g(non-blank)f(c)m(haracter)j
+(in)d(the)i(template)g(string)227 5583 y(is)h(a)h(min)m(us)e(sign)h
+(\('-'\))i(follo)m(w)m(ed)e(b)m(y)h(a)g(single)e(tok)m(en,)k(or)e(a)g
+(single)e(tok)m(en)j(follo)m(w)m(ed)e(b)m(y)h(an)f(equal)h(sign,)227
+5696 y(then)29 b(it)f(is)g(in)m(terpreted)f(as)i(the)g(name)g(of)g(a)g
+(k)m(eyw)m(ord)g(whic)m(h)e(is)h(to)h(b)s(e)f(deleted)h(from)f(the)h
+(FITS)f(header.)p eop
+%%Page: 106 112
+106 111 bop 0 299 a Fi(106)1274 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)0
+555 y Fh(-)80 b Fi(The)40 b(second)g(exception)g(is)f(that)i(if)e(the)h
+(template)g(string)f(starts)h(with)f(a)i(min)m(us)d(sign)h(and)g(is)g
+(follo)m(w)m(ed)227 668 y(b)m(y)33 b(2)g(tok)m(ens)g(then)g(the)f
+(second)h(tok)m(en)h(is)d(in)m(terpreted)h(as)h(the)g(new)f(name)g(for)
+h(the)g(k)m(eyw)m(ord)g(sp)s(eci\014ed)227 781 y(b)m(y)h(\014rst)e(tok)
+m(en.)52 b(In)33 b(this)f(case)j(the)e(old)g(k)m(eyw)m(ord)h(name)g
+(\(\014rst)f(tok)m(en\))i(is)d(returned)h(in)f(c)m(haracters)j(1-8)227
+894 y(of)e(the)g(returned)e(CARD)i(string,)f(and)g(the)h(new)f(k)m(eyw)
+m(ord)h(name)g(\(the)g(second)f(tok)m(en\))i(is)e(returned)f(in)227
+1007 y(c)m(haracters)c(41-48)h(of)e(the)f(returned)g(CARD)g(string.)39
+b(These)25 b(old)g(and)g(new)g(names)g(ma)m(y)h(then)f(b)s(e)g(passed)
+227 1120 y(to)31 b(the)g(FTMNAM)g(subroutine)e(whic)m(h)g(will)e(c)m
+(hange)32 b(the)e(k)m(eyw)m(ord)h(name.)0 1361 y(The)f(HDTYPE)g(output)
+g(parameter)h(indicates)e(ho)m(w)i(the)f(returned)g(CARD)g(string)f
+(should)g(b)s(e)h(in)m(terpreted:)382 1602 y Fe(hdtype)857
+b(interpretation)382 1715 y(------)523 b(-------------------------)o
+(----)o(---)o(----)o(----)o(---)o(----)o(--)525 1828
+y(-2)572 b(Modify)46 b(the)h(name)g(of)g(the)g(keyword)f(given)g(in)h
+(CARD\(1:8\))1193 1941 y(to)g(the)g(new)g(name)g(given)f(in)h
+(CARD\(41:48\))525 2167 y(-1)572 b(CARD\(1:8\))45 b(contains)h(the)h
+(name)g(of)g(a)g(keyword)f(to)h(be)g(deleted)1193 2280
+y(from)g(the)g(FITS)f(header.)573 2506 y(0)572 b(append)46
+b(the)h(CARD)g(string)f(to)h(the)g(FITS)g(header)f(if)h(the)1193
+2619 y(keyword)f(does)h(not)g(already)e(exist,)h(otherwise)g(update)
+1193 2732 y(the)h(value/comment)d(if)j(the)g(keyword)f(is)h(already)f
+(present)1193 2844 y(in)h(the)g(header.)573 3070 y(1)572
+b(simply)46 b(append)g(this)h(keyword)f(to)h(the)g(FITS)g(header)f
+(\(CARD)1193 3183 y(is)h(either)f(a)i(HISTORY)e(or)h(COMMENT)f
+(keyword\).)573 3409 y(2)572 b(This)47 b(is)g(a)g(FITS)g(END)g(record;)
+f(it)h(should)f(not)h(be)g(written)1193 3522 y(to)g(the)g(FITS)g
+(header)f(because)g(FITSIO)g(automatically)1193 3635
+y(appends)g(the)h(END)g(record)f(when)h(the)f(header)h(is)g(closed.)0
+3876 y Fi(EXAMPLES:)30 b(The)g(follo)m(wing)f(lines)f(illustrate)h(v)-5
+b(alid)29 b(input)f(template)j(strings:)286 4118 y Fe(INTVAL)46
+b(7)i(This)f(is)g(an)g(integer)f(keyword)286 4231 y(RVAL)524
+b(34.6)142 b(/)239 b(This)46 b(is)i(a)f(floating)f(point)g(keyword)286
+4343 y(EVAL=-12.45E-03)92 b(This)46 b(is)i(a)f(floating)f(point)g
+(keyword)g(in)h(exponential)e(notation)286 4456 y(lval)i(F)g(This)g(is)
+g(a)h(boolean)e(keyword)859 4569 y(This)h(is)g(a)g(comment)f(keyword)g
+(with)h(a)g(blank)f(keyword)g(name)286 4682 y(SVAL1)h(=)g('Hello)f
+(world')142 b(/)95 b(this)47 b(is)g(a)g(string)f(keyword)286
+4795 y(SVAL2)94 b('123.5')g(this)47 b(is)g(also)f(a)i(string)e(keyword)
+286 4908 y(sval3)94 b(123+)h(/)g(this)47 b(is)g(also)f(a)i(string)e
+(keyword)g(with)g(the)h(value)g('123+)189 b(')286 5021
+y(#)48 b(the)f(following)e(template)h(line)g(deletes)g(the)h(DATE)g
+(keyword)286 5134 y(-)h(DATE)286 5247 y(#)g(the)f(following)e(template)
+h(line)g(modifies)g(the)h(NAME)f(keyword)g(to)h(OBJECT)286
+5360 y(-)h(NAME)e(OBJECT)0 5601 y Fh(16)g Fi(P)m(arse)35
+b(the)g(input)e(string)h(con)m(taining)g(a)h(list)f(of)h(ro)m(ws)f(or)h
+(ro)m(w)g(ranges,)h(and)e(return)g(in)m(teger)h(arra)m(ys)g(con-)227
+5714 y(taining)25 b(the)h(\014rst)f(and)g(last)h(ro)m(w)g(in)e(eac)m(h)
+j(range.)40 b(F)-8 b(or)26 b(example,)h(if)d(ro)m(wlist)h(=)g("3-5,)k
+(6,)e(8-9")h(then)d(it)h(will)p eop
+%%Page: 107 113
+107 112 bop 0 299 a Fg(9.12.)73 b(GENERAL)30 b(UTILITY)g(SUBR)m
+(OUTINES)1934 b Fi(107)227 555 y(return)34 b(n)m(umranges)h(=)g(3,)h
+(rangemin)e(=)h(3,)i(6,)g(8)e(and)g(rangemax)g(=)g(5,)i(6,)g(9.)55
+b(A)m(t)36 b(most,)h('maxranges')227 668 y(n)m(um)m(b)s(er)31
+b(of)h(ranges)f(will)e(b)s(e)j(returned.)43 b('maxro)m(ws')32
+b(is)f(the)h(maxim)m(um)f(n)m(um)m(b)s(er)f(of)i(ro)m(ws)g(in)e(the)i
+(table;)227 781 y(an)m(y)e(ro)m(ws)f(or)g(ranges)g(larger)g(than)g
+(this)f(will)e(b)s(e)j(ignored.)39 b(The)29 b(ro)m(ws)g(m)m(ust)g(b)s
+(e)f(sp)s(eci\014ed)g(in)f(increasing)227 894 y(order,)33
+b(and)f(the)g(ranges)h(m)m(ust)f(not)g(o)m(v)m(erlap.)47
+b(A)33 b(min)m(us)d(sign)i(ma)m(y)h(b)s(e)e(use)h(to)h(sp)s(ecify)e
+(all)g(the)i(ro)m(ws)f(to)227 1007 y(the)h(upp)s(er)d(or)j(lo)m(w)m(er)
+g(b)s(ound,)e(so)i("50-")h(means)e(all)g(the)h(ro)m(ws)f(from)g(50)h
+(to)h(the)e(end)g(of)h(the)f(table,)i(and)227 1120 y("-")e(means)e(all)
+f(the)i(ro)m(ws)f(in)f(the)i(table,)f(from)g(1)h(-)g(maxro)m(ws.)191
+1380 y Fe(FTRWRG\(rowlist,)44 b(maxrows,)h(maxranges,)g(>)525
+1492 y(numranges,)g(rangemin,)g(rangemax,)h(status\))p
+eop
+%%Page: 108 114
+108 113 bop 0 299 a Fi(108)1274 b Fg(CHAPTER)29 b(9.)112
+b(AD)m(V)-10 b(ANCED)32 b(INTERF)-10 b(A)m(CE)30 b(SUBR)m(OUTINES)p
+eop
+%%Page: 109 115
+109 114 bop 0 1225 a Ff(Chapter)65 b(10)0 1687 y Fl(Summary)76
+b(of)i(all)f(FITSIO)0 1937 y(User-In)-6 b(terface)77
+b(Subroutines)0 2429 y Fi(Error)29 b(Status)i(Routines)e(page)i(63)382
+2696 y Fe(FTVERS\()46 b(>)h(version\))382 2809 y(FTGERR\(status,)d(>)j
+(errtext\))382 2922 y(FTGMSG\()f(>)h(errmsg\))382 3035
+y(FTRPRT)f(\(stream,)f(>)j(status\))382 3147 y(FTPMSG\(errmsg\))382
+3260 y(FTPMRK)382 3373 y(FTCMSG)382 3486 y(FTCMRK)0 3753
+y Fi(FITS)30 b(File)f(Op)s(en)g(and)h(Close)g(Subroutines:)38
+b(page)31 b(69)382 4020 y Fe(FTOPEN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(blocksize,status\))382 4133 y(FTDKOPEN\(unit,filename,r)o(wmo)
+o(de,)41 b(>)48 b(blocksize,status\))382 4246 y
+(FTNOPN\(unit,filename,rwm)o(ode)o(,)42 b(>)47 b(status\))382
+4359 y(FTDOPN\(unit,filename,rwm)o(ode)o(,)42 b(>)47
+b(status\))382 4472 y(FTTOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))382 4585 y(FTIOPN\(unit,filename,rwm)o(ode)o(,)42
+b(>)47 b(status\))382 4698 y(FTREOPEN\(unit,)d(>)j(newunit,)f(status\))
+382 4811 y(FTINIT\(unit,filename,blo)o(cks)o(ize,)41
+b(>)48 b(status\))382 4924 y(FTDKINIT\(unit,filename,b)o(loc)o(ksiz)o
+(e,)42 b(>)47 b(status\))382 5036 y(FTTPLT\(unit,)d(filename,)i
+(tplfilename,)e(>)j(status\))382 5149 y(FTFLUS\(unit,)d(>)k(status\))
+382 5262 y(FTCLOS\(unit,)c(>)k(status\))382 5375 y(FTDELT\(unit,)c(>)k
+(status\))382 5488 y(FTGIOU\()e(>)h(iounit,)f(status\))382
+5601 y(FTFIOU\(iounit,)e(>)j(status\))0 5714 y(CFITS2Unit\(fitsfile)c
+(*ptr\))141 b(\(C)48 b(routine\))1882 5942 y Fi(109)p
+eop
+%%Page: 110 116
+110 115 bop 0 299 a Fi(110)281 b Fg(CHAPTER)30 b(10.)112
+b(SUMMAR)-8 b(Y)32 b(OF)e(ALL)g(FITSIO)f(USER-INTERF)-10
+b(A)m(CE)30 b(SUBR)m(OUTINES)382 555 y Fe(CUnit2FITS\(int)44
+b(unit\))380 b(\(C)47 b(routine\))382 668 y(FTEXTN\(filename,)c(>)48
+b(nhdu,)e(status\))382 781 y(FTFLNM\(unit,)e(>)k(filename,)d(status\))
+382 894 y(FTFLMD\(unit,)f(>)k(iomode,)e(status\))382
+1007 y(FFURLT\(unit,)e(>)k(urltype,)d(status\))382 1120
+y(FTIURL\(filename,)e(>)48 b(filetype,)d(infile,)h(outfile,)f(extspec,)
+h(filter,)716 1233 y(binspec,)f(colspec,)h(status\))382
+1346 y(FTRTNM\(filename,)d(>)48 b(rootname,)d(status\))382
+1458 y(FTEXIST\(filename,)e(>)k(exist,)f(status\))0 1695
+y Fi(HDU-Lev)m(el)32 b(Op)s(erations:)39 b(page)31 b(72)382
+1932 y Fe(FTMAHD\(unit,nhdu,)43 b(>)k(hdutype,status\))382
+2045 y(FTMRHD\(unit,nmove,)c(>)k(hdutype,status\))382
+2158 y(FTGHDN\(unit,)d(>)k(nhdu\))382 2271 y(FTMNHD\(unit,)c(hdutype,)i
+(extname,)f(extver,)h(>)i(status\))382 2384 y(FTGHDT\(unit,)c(>)k
+(hdutype,)d(status\))382 2497 y(FTTHDU\(unit,)f(>)k(hdunum,)e(status\))
+382 2610 y(FTCRHD\(unit,)e(>)k(status\))382 2723 y
+(FTIIMG\(unit,bitpix,naxis)o(,na)o(xes,)41 b(>)48 b(status\))382
+2836 y(FTITAB\(unit,rowlen,nrows)o(,tf)o(ield)o(s,tt)o(ype)o(,tbc)o
+(ol,t)o(for)o(m,tu)o(nit,)o(ext)o(name)o(,)42 b(>)716
+2949 y(status\))382 3061 y(FTIBIN\(unit,nrows,tfield)o(s,t)o(type)o
+(,tfo)o(rm,)o(tuni)o(t,ex)o(tna)o(me,v)o(arid)o(at)f(>)48
+b(status\))382 3174 y(FTRSIM\(unit,bitpix,naxis)o(,na)o(xes,)o(stat)o
+(us\))382 3287 y(FTDHDU\(unit,)c(>)k(hdutype,status\))382
+3400 y(FTCPFL\(iunit,ounit,previ)o(ous)o(,)42 b(current,)j(following,)g
+(>)j(status\))382 3513 y(FTCOPY\(iunit,ounit,morek)o(eys)o(,)42
+b(>)47 b(status\))382 3626 y(FTCPHD\(inunit,)d(outunit,)h(>)j(status\))
+382 3739 y(FTCPDT\(iunit,ounit,)42 b(>)48 b(status\))0
+3976 y Fi(Subroutines)28 b(to)j(sp)s(ecify)e(or)h(mo)s(dify)f(the)h
+(structure)g(of)h(the)f(CHDU:)h(page)h(75)382 4213 y
+Fe(FTRDEF\(unit,)44 b(>)k(status\))93 b(\(DEPRECATED\))382
+4326 y(FTPDEF\(unit,bitpix,naxis)o(,na)o(xes,)o(pcou)o(nt,)o(gcou)o
+(nt,)41 b(>)48 b(status\))93 b(\(DEPRECATED\))382 4439
+y(FTADEF\(unit,rowlen,tfiel)o(ds,)o(tbco)o(l,tf)o(orm)o(,nro)o(ws)42
+b(>)47 b(status\))94 b(\(DEPRECATED\))382 4551 y
+(FTBDEF\(unit,tfields,tfor)o(m,v)o(arid)o(at,n)o(row)o(s)42
+b(>)47 b(status\))94 b(\(DEPRECATED\))382 4664 y(FTDDEF\(unit,bytlen,)
+42 b(>)48 b(status\))93 b(\(DEPRECATED\))382 4777 y
+(FTPTHP\(unit,theap,)43 b(>)k(status\))0 5014 y Fi(Header)31
+b(Space)f(and)g(P)m(osition)g(Subroutines:)38 b(page)31
+b(76)382 5251 y Fe(FTHDEF\(unit,morekeys,)42 b(>)47 b(status\))382
+5364 y(FTGHSP\(iunit,)d(>)j(keysexist,keysadd,status\))382
+5477 y(FTGHPS\(iunit,)d(>)j(keysexist,key_no,status\))0
+5714 y Fi(Read)31 b(or)f(W)-8 b(rite)31 b(Standard)e(Header)i
+(Subroutines:)38 b(page)31 b(77)p eop
+%%Page: 111 117
+111 116 bop 3764 299 a Fi(111)382 555 y Fe(FTPHPS\(unit,bitpix,naxis)o
+(,na)o(xes,)41 b(>)48 b(status\))382 668 y(FTPHPR\(unit,simple,bitpi)o
+(x,n)o(axis)o(,nax)o(es,)o(pcou)o(nt,g)o(cou)o(nt,e)o(xten)o(d,)41
+b(>)48 b(status\))382 781 y(FTGHPR\(unit,maxdim,)42 b(>)48
+b(simple,bitpix,naxis,naxe)o(s,p)o(coun)o(t,gc)o(oun)o(t,ex)o(tend)o(,)
+716 894 y(status\))382 1007 y(FTPHTB\(unit,rowlen,nrows)o(,tf)o(ield)o
+(s,tt)o(ype)o(,tbc)o(ol,t)o(for)o(m,tu)o(nit,)o(ext)o(name)o(,)42
+b(>)716 1120 y(status\))382 1233 y(FTGHTB\(unit,maxdim,)g(>)48
+b(rowlen,nrows,tfields,tty)o(pe,)o(tbco)o(l,tf)o(orm)o(,tun)o(it,)716
+1346 y(extname,status\))382 1458 y(FTPHBN\(unit,nrows,tfield)o(s,t)o
+(type)o(,tfo)o(rm,)o(tuni)o(t,ex)o(tna)o(me,v)o(arid)o(at)41
+b(>)48 b(status\))382 1571 y(FTGHBN\(unit,maxdim,)42
+b(>)48 b(nrows,tfields,ttype,tfor)o(m,t)o(unit)o(,ext)o(nam)o(e,va)o
+(rida)o(t,)716 1684 y(status\))0 1942 y Fi(W)-8 b(rite)31
+b(Keyw)m(ord)f(Subroutines:)38 b(page)31 b(78)382 2199
+y Fe(FTPREC\(unit,card,)43 b(>)k(status\))382 2312 y
+(FTPCOM\(unit,comment,)42 b(>)48 b(status\))382 2425
+y(FTPHIS\(unit,history,)42 b(>)48 b(status\))382 2538
+y(FTPDAT\(unit,)c(>)k(status\))382 2651 y(FTPKY[JLS]\(unit,keyword,)o
+(key)o(val,)o(comm)o(ent)o(,)42 b(>)47 b(status\))382
+2764 y(FTPKY[EDFG]\(unit,keyword)o(,ke)o(yval)o(,dec)o(ima)o(ls,c)o
+(omme)o(nt,)41 b(>)48 b(status\))382 2877 y(FTPKLS\(unit,keyword,keyv)o
+(al,)o(comm)o(ent,)41 b(>)47 b(status\))382 2990 y(FTPLSW\(unit,)d(>)k
+(status\))382 3103 y(FTPKYU\(unit,keyword,comm)o(ent)o(,)42
+b(>)47 b(status\))382 3216 y(FTPKN[JLS]\(unit,keyroot,)o(sta)o(rtno)o
+(,no_)o(key)o(s,ke)o(yval)o(s,c)o(omme)o(nts,)41 b(>)47
+b(status\))382 3329 y(FTPKN[EDFG]\(unit,keyroot)o(,st)o(artn)o(o,no)o
+(_ke)o(ys,k)o(eyva)o(ls,)o(deci)o(mals)o(,co)o(mmen)o(ts,)41
+b(>)907 3441 y(status\))382 3554 y(FTCPKYinunit,)j(outunit,)i(innum,)g
+(outnum,)f(keyroot,)h(>)h(status\))382 3667 y
+(FTPKYT\(unit,keyword,intv)o(al,)o(dblv)o(al,c)o(omm)o(ent,)41
+b(>)48 b(status\))382 3780 y(FTPKTP\(unit,)c(filename,)i(>)h(status\))
+382 3893 y(FTPUNT\(unit,keyword,unit)o(s,)41 b(>)48 b(status\))0
+4151 y Fi(Insert)30 b(Keyw)m(ord)g(Subroutines:)38 b(page)31
+b(80)382 4408 y Fe(FTIREC\(unit,key_no,card,)41 b(>)47
+b(status\))382 4521 y(FTIKY[JLS]\(unit,keyword,)o(key)o(val,)o(comm)o
+(ent)o(,)42 b(>)47 b(status\))382 4634 y(FTIKLS\(unit,keyword,keyv)o
+(al,)o(comm)o(ent,)41 b(>)47 b(status\))382 4747 y
+(FTIKY[EDFG]\(unit,keyword)o(,ke)o(yval)o(,dec)o(ima)o(ls,c)o(omme)o
+(nt,)41 b(>)48 b(status\))382 4860 y(FTIKYU\(unit,keyword,comm)o(ent)o
+(,)42 b(>)47 b(status\))0 5118 y Fi(Read)31 b(Keyw)m(ord)f
+(Subroutines:)38 b(page)31 b(81)382 5375 y Fe(FTGREC\(unit,key_no,)42
+b(>)48 b(card,status\))382 5488 y(FTGKYN\(unit,key_no,)42
+b(>)48 b(keyword,value,comment,st)o(atu)o(s\))382 5601
+y(FTGCRD\(unit,keyword,)42 b(>)48 b(card,status\))382
+5714 y(FTGNXK\(unit,inclist,ninc)o(,ex)o(clis)o(t,ne)o(xc,)41
+b(>)48 b(card,status\))p eop
+%%Page: 112 118
+112 117 bop 0 299 a Fi(112)281 b Fg(CHAPTER)30 b(10.)112
+b(SUMMAR)-8 b(Y)32 b(OF)e(ALL)g(FITSIO)f(USER-INTERF)-10
+b(A)m(CE)30 b(SUBR)m(OUTINES)382 555 y Fe(FTGKEY\(unit,keyword,)42
+b(>)48 b(value,comment,status\))382 668 y(FTGKY[EDJLS]\(unit,keywor)o
+(d,)41 b(>)48 b(keyval,comment,status\))382 781 y
+(FTGKN[EDJLS]\(unit,keyroo)o(t,s)o(tart)o(no,m)o(ax_)o(keys)o(,)42
+b(>)47 b(keyvals,nfound,status\))382 894 y(FTGKYT\(unit,keyword,)42
+b(>)48 b(intval,dblval,comment,s)o(tat)o(us\))382 1007
+y(FTGUNT\(unit,keyword,)42 b(>)48 b(units,status\))0
+1263 y Fi(Mo)s(dify)29 b(Keyw)m(ord)h(Subroutines:)38
+b(page)31 b(82)382 1519 y Fe(FTMREC\(unit,key_no,card,)41
+b(>)47 b(status\))382 1632 y(FTMCRD\(unit,keyword,card)o(,)42
+b(>)47 b(status\))382 1745 y(FTMNAM\(unit,oldkey,keywo)o(rd,)41
+b(>)48 b(status\))382 1858 y(FTMCOM\(unit,keyword,comm)o(ent)o(,)42
+b(>)47 b(status\))382 1971 y(FTMKY[JLS]\(unit,keyword,)o(key)o(val,)o
+(comm)o(ent)o(,)42 b(>)47 b(status\))382 2084 y
+(FTMKLS\(unit,keyword,keyv)o(al,)o(comm)o(ent,)41 b(>)47
+b(status\))382 2197 y(FTMKY[EDFG]\(unit,keyword)o(,ke)o(yval)o(,dec)o
+(ima)o(ls,c)o(omme)o(nt,)41 b(>)48 b(status\))382 2310
+y(FTMKYU\(unit,keyword,comm)o(ent)o(,)42 b(>)47 b(status\))0
+2566 y Fi(Up)s(date)30 b(Keyw)m(ord)g(Subroutines:)38
+b(page)32 b(83)382 2822 y Fe(FTUCRD\(unit,keyword,card)o(,)42
+b(>)47 b(status\))382 2935 y(FTUKY[JLS]\(unit,keyword,)o(key)o(val,)o
+(comm)o(ent)o(,)42 b(>)47 b(status\))382 3048 y
+(FTUKLS\(unit,keyword,keyv)o(al,)o(comm)o(ent,)41 b(>)47
+b(status\))382 3161 y(FTUKY[EDFG]\(unit,keyword)o(,ke)o(yval)o(,dec)o
+(ima)o(ls,c)o(omme)o(nt,)41 b(>)48 b(status\))382 3274
+y(FTUKYU\(unit,keyword,comm)o(ent)o(,)42 b(>)47 b(status\))0
+3530 y Fi(Delete)32 b(Keyw)m(ord)e(Subroutines:)38 b(page)31
+b(84)382 3786 y Fe(FTDREC\(unit,key_no,)42 b(>)48 b(status\))382
+3899 y(FTDKEY\(unit,keyword,)42 b(>)48 b(status\))0 4155
+y Fi(De\014ne)31 b(Data)h(Scaling)d(P)m(arameters)i(and)f(Unde\014ned)f
+(Pixel)g(Flags:)41 b(page)31 b(84)382 4411 y Fe
+(FTPSCL\(unit,bscale,bzero)o(,)42 b(>)47 b(status\))382
+4524 y(FTTSCL\(unit,colnum,tscal)o(,tz)o(ero,)41 b(>)48
+b(status\))382 4637 y(FTPNUL\(unit,blank,)43 b(>)k(status\))382
+4750 y(FTSNUL\(unit,colnum,snull)41 b(>)47 b(status\))382
+4863 y(FTTNUL\(unit,colnum,tnull)41 b(>)47 b(status\))0
+5119 y Fi(FITS)30 b(Primary)e(Arra)m(y)j(or)f(IMA)m(GE)i(Extension)d
+(I/O)i(Subroutines:)38 b(page)31 b(85)382 5375 y Fe(FTGIDT\(unit,)44
+b(>)k(bitpix,status\))382 5488 y(FTGIET\(unit,)c(>)k(bitpix,status\))
+382 5601 y(FTGIDM\(unit,)c(>)k(naxis,status\))382 5714
+y(FTGISZ\(unit,)c(maxdim,)i(>)i(naxes,status\))p eop
+%%Page: 113 119
+113 118 bop 3764 299 a Fi(113)382 555 y Fe(FTGIPR\(unit,)44
+b(maxdim,)i(>)i(bitpix,naxis,naxes,stat)o(us\))382 668
+y(FTPPR[BIJED]\(unit,group,)o(fpi)o(xel,)o(nele)o(men)o(ts,v)o(alue)o
+(s,)41 b(>)48 b(status\))382 781 y(FTPPN[BIJED]\(unit,group,)o(fpi)o
+(xel,)o(nele)o(men)o(ts,v)o(alue)o(s,n)o(ullv)o(al)42
+b(>)47 b(status\))382 894 y(FTPPRU\(unit,group,fpixel)o(,ne)o(leme)o
+(nts,)41 b(>)47 b(status\))382 1007 y(FTGPV[BIJED]\(unit,group,)o(fpi)o
+(xel,)o(nele)o(men)o(ts,n)o(ullv)o(al,)41 b(>)48 b
+(values,anyf,status\))382 1120 y(FTGPF[BIJED]\(unit,group,)o(fpi)o
+(xel,)o(nele)o(men)o(ts,)41 b(>)48 b(values,flagvals,anyf,sta)o(tus)o
+(\))382 1233 y(FTPGP[BIJED]\(unit,group,)o(fpa)o(rm,n)o(parm)o(,va)o
+(lues)o(,)42 b(>)47 b(status\))382 1346 y(FTGGP[BIJED]\(unit,group,)o
+(fpa)o(rm,n)o(parm)o(,)42 b(>)47 b(values,status\))382
+1458 y(FTP2D[BIJED]\(unit,group,)o(dim)o(1,na)o(xis1)o(,na)o(xis2)o
+(,ima)o(ge,)41 b(>)48 b(status\))382 1571 y(FTP3D[BIJED]\(unit,group,)o
+(dim)o(1,di)o(m2,n)o(axi)o(s1,n)o(axis)o(2,n)o(axis)o(3,cu)o(be,)41
+b(>)48 b(status\))382 1684 y(FTG2D[BIJED]\(unit,group,)o(nul)o(lval)o
+(,dim)o(1,n)o(axis)o(1,na)o(xis)o(2,)42 b(>)47 b(image,anyf,status\))
+382 1797 y(FTG3D[BIJED]\(unit,group,)o(nul)o(lval)o(,dim)o(1,d)o(im2,)o
+(naxi)o(s1,)o(naxi)o(s2,n)o(axi)o(s3,)41 b(>)1002 1910
+y(cube,anyf,status\))382 2023 y(FTPSS[BIJED]\(unit,group,)o(nax)o(is,n)
+o(axes)o(,fp)o(ixel)o(s,lp)o(ixe)o(ls,a)o(rray)o(,)h(>)47
+b(status\))382 2136 y(FTGSV[BIJED]\(unit,group,)o(nax)o(is,n)o(axes)o
+(,fp)o(ixel)o(s,lp)o(ixe)o(ls,i)o(ncs,)o(nul)o(lval)o(,)42
+b(>)1002 2249 y(array,anyf,status\))382 2362 y
+(FTGSF[BIJED]\(unit,group,)o(nax)o(is,n)o(axes)o(,fp)o(ixel)o(s,lp)o
+(ixe)o(ls,i)o(ncs,)f(>)1002 2475 y(array,flagvals,anyf,statu)o(s\))0
+2739 y Fi(T)-8 b(able)30 b(Column)e(Information)i(Subroutines:)38
+b(page)31 b(88)382 3003 y Fe(FTGNRW\(unit,)44 b(>)k(nrows,)e(status\))
+382 3115 y(FTGNCL\(unit,)e(>)k(ncols,)e(status\))382
+3228 y(FTGCNO\(unit,casesen,colt)o(emp)o(late)o(,)c(>)47
+b(colnum,status\))382 3341 y(FTGCNN\(unit,casesen,colt)o(emp)o(late)o
+(,)42 b(>)47 b(colnam,colnum,status\))382 3454 y(FTGTCL\(unit,colnum,)
+42 b(>)48 b(datacode,repeat,width,st)o(atu)o(s\))382
+3567 y(FTEQTY\(unit,colnum,)42 b(>)48 b(datacode,repeat,width,st)o(atu)
+o(s\))382 3680 y(FTGCDW\(unit,colnum,)42 b(>)48 b(dispwidth,status\))
+382 3793 y(FTGACL\(unit,colnum,)42 b(>)716 3906 y
+(ttype,tbcol,tunit,tform,)o(tsca)o(l,t)o(zero)o(,snu)o(ll,)o(tdis)o
+(p,st)o(atu)o(s\))382 4019 y(FTGBCL\(unit,colnum,)g(>)716
+4132 y(ttype,tunit,datatype,rep)o(eat,)o(tsc)o(al,t)o(zero)o(,tn)o
+(ull,)o(tdis)o(p,s)o(tatu)o(s\))382 4245 y(FTPTDM\(unit,colnum,naxis)o
+(,na)o(xes,)f(>)48 b(status\))382 4357 y(FTGTDM\(unit,colnum,maxdi)o
+(m,)41 b(>)48 b(naxis,naxes,status\))382 4470 y
+(FTDTDM\(unit,tdimstr,coln)o(um,)o(maxd)o(im,)41 b(>)48
+b(naxis,naxes,)c(status\))382 4583 y(FFGRSZ\(unit,)g(>)k
+(nrows,status\))0 4847 y Fi(Lo)m(w-Lev)m(el)31 b(T)-8
+b(able)30 b(Access)i(Subroutines:)38 b(page)31 b(91)382
+5111 y Fe(FTGTBS\(unit,frow,startch)o(ar,)o(ncha)o(rs,)41
+b(>)48 b(string,status\))382 5224 y(FTPTBS\(unit,frow,startch)o(ar,)o
+(ncha)o(rs,s)o(tri)o(ng,)41 b(>)48 b(status\))382 5337
+y(FTGTBB\(unit,frow,startch)o(ar,)o(ncha)o(rs,)41 b(>)48
+b(array,status\))382 5450 y(FTPTBB\(unit,frow,startch)o(ar,)o(ncha)o
+(rs,a)o(rra)o(y,)42 b(>)47 b(status\))0 5714 y Fi(Edit)29
+b(Ro)m(ws)i(or)f(Columns)f(page)i(92)p eop
+%%Page: 114 120
+114 119 bop 0 299 a Fi(114)281 b Fg(CHAPTER)30 b(10.)112
+b(SUMMAR)-8 b(Y)32 b(OF)e(ALL)g(FITSIO)f(USER-INTERF)-10
+b(A)m(CE)30 b(SUBR)m(OUTINES)382 555 y Fe(FTIROW\(unit,frow,nrows,)41
+b(>)48 b(status\))382 668 y(FTDROW\(unit,frow,nrows,)41
+b(>)48 b(status\))382 781 y(FTDRRG\(unit,rowrange,)42
+b(>)47 b(status\))382 894 y(FTDRWS\(unit,rowlist,nrow)o(s,)41
+b(>)48 b(status\))382 1007 y(FTICOL\(unit,colnum,ttype)o(,tf)o(orm,)41
+b(>)48 b(status\))382 1120 y(FTICLS\(unit,colnum,ncols)o(,tt)o(ype,)o
+(tfor)o(m,)41 b(>)48 b(status\))382 1233 y(FTMVEC\(unit,colnum,newve)o
+(cle)o(n,)42 b(>)47 b(status\))382 1346 y(FTDCOL\(unit,colnum,)42
+b(>)48 b(status\))382 1458 y(FTCPCL\(inunit,outunit,in)o(col)o(num,)o
+(outc)o(oln)o(um,c)o(reat)o(eco)o(l,)42 b(>)47 b(status\);)0
+1716 y Fi(Read)31 b(and)e(W)-8 b(rite)31 b(Column)e(Data)j(Routines)d
+(page)i(93)382 1974 y Fe(FTPCL[SLBIJEDCM]\(unit,co)o(lnu)o(m,fr)o(ow,f)
+o(ele)o(m,ne)o(leme)o(nts)o(,val)o(ues,)41 b(>)47 b(status\))382
+2087 y(FTPCN[BIJED]\(unit,colnum)o(,fr)o(ow,f)o(elem)o(,ne)o(leme)o
+(nts,)o(val)o(ues,)o(null)o(val)41 b(>)48 b(status\))382
+2199 y(FTPCLX\(unit,colnum,frow,)o(fbi)o(t,nb)o(it,l)o(ray)o(,)42
+b(>)47 b(status\))382 2312 y(FTPCLU\(unit,colnum,frow,)o(fel)o(em,n)o
+(elem)o(ent)o(s,)42 b(>)47 b(status\))382 2425 y
+(FTGCL\(unit,colnum,frow,f)o(ele)o(m,ne)o(leme)o(nts)o(,)42
+b(>)47 b(values,status\))382 2538 y(FTGCV[SBIJEDCM]\(unit,col)o(num)o
+(,fro)o(w,fe)o(lem)o(,nel)o(emen)o(ts,)o(null)o(val,)41
+b(>)1098 2651 y(values,anyf,status\))382 2764 y
+(FTGCF[SLBIJEDCM]\(unit,co)o(lnu)o(m,fr)o(ow,f)o(ele)o(m,ne)o(leme)o
+(nts)o(,)h(>)1193 2877 y(values,flagvals,anyf,stat)o(us\))382
+2990 y(FTGSV[BIJED]\(unit,colnum)o(,na)o(xis,)o(naxe)o(s,f)o(pixe)o
+(ls,l)o(pix)o(els,)o(incs)o(,nu)o(llva)o(l,)g(>)1002
+3103 y(array,anyf,status\))382 3216 y(FTGSF[BIJED]\(unit,colnum)o(,na)o
+(xis,)o(naxe)o(s,f)o(pixe)o(ls,l)o(pix)o(els,)o(incs)o(,)g(>)1002
+3329 y(array,flagvals,anyf,statu)o(s\))382 3441 y
+(FTGCX\(unit,colnum,frow,f)o(bit)o(,nbi)o(t,)g(>)47 b(lray,status\))382
+3554 y(FTGCX[IJD]\(unit,colnum,f)o(row)o(,nro)o(ws,f)o(bit)o(,nbi)o(t,)
+42 b(>)47 b(array,status\))382 3667 y(FTGDES\(unit,colnum,rownu)o(m,)41
+b(>)48 b(nelements,offset,status\))382 3780 y
+(FTPDES\(unit,colnum,rownu)o(m,n)o(elem)o(ents)o(,of)o(fset)o(,)42
+b(>)47 b(status\))0 4038 y Fi(Ro)m(w)31 b(Selection)f(and)f(Calculator)
+h(Routines:)40 b(page)31 b(96)382 4295 y Fe(FTFROW\(unit,expr,firstro)o
+(w,)41 b(nrows,)47 b(>)g(n_good_rows,)d(row_status,)h(status\))382
+4408 y(FTFFRW\(unit,)f(expr,)j(>)g(rownum,)f(status\))382
+4521 y(FTSROW\(inunit,)e(outunit,)h(expr,)i(>)g(status)f(\))382
+4634 y(FTCROW\(unit,datatype,exp)o(r,f)o(irst)o(row,)o(nel)o(emen)o
+(ts,n)o(ulv)o(al,)41 b(>)620 4747 y(array,anynul,status\))382
+4860 y(FTCALC\(inunit,)j(expr,)i(outunit,)g(parName,)f(parInfo,)h(>)h
+(status\))382 4973 y(FTCALC_RNG\(inunit,)c(expr,)j(outunit,)g(parName,)
+f(parInfo,)573 5086 y(nranges,)g(firstrow,)h(lastrow,)f(>)j(status\))
+382 5199 y(FTTEXP\(unit,)c(expr,)j(>)g(datatype,)e(nelem,)h(naxis,)h
+(naxes,)f(status\))0 5456 y Fi(Celestial)29 b(Co)s(ordinate)h(System)g
+(Subroutines:)38 b(page)31 b(98)382 5714 y Fe(FTGICS\(unit,)44
+b(>)k(xrval,yrval,xrpix,yrpix)o(,xin)o(c,yi)o(nc,)o(rot,)o(coor)o(dty)o
+(pe,s)o(tatu)o(s\))p eop
+%%Page: 115 121
+115 120 bop 3764 299 a Fi(115)382 555 y Fe(FTGTCS\(unit,xcol,ycol,)42
+b(>)716 668 y(xrval,yrval,xrpix,yrpix,)o(xinc)o(,yi)o(nc,r)o(ot,c)o
+(oor)o(dtyp)o(e,st)o(atu)o(s\))382 781 y(FTWLDP\(xpix,ypix,xrval,y)o
+(rva)o(l,xr)o(pix,)o(yrp)o(ix,x)o(inc,)o(yin)o(c,ro)o(t,)1241
+894 y(coordtype,)j(>)i(xpos,ypos,status\))382 1007 y
+(FTXYPX\(xpos,ypos,xrval,y)o(rva)o(l,xr)o(pix,)o(yrp)o(ix,x)o(inc,)o
+(yin)o(c,ro)o(t,)1241 1120 y(coordtype,)e(>)i(xpix,ypix,status\))0
+1340 y Fi(File)30 b(Chec)m(ksum)f(Subroutines:)39 b(page)31
+b(99)382 1560 y Fe(FTPCKS\(unit,)44 b(>)k(status\))382
+1673 y(FTUCKS\(unit,)c(>)k(status\))382 1785 y(FTVCKS\(unit,)c(>)k
+(dataok,hduok,status\))382 1898 y(FTGCKS\(unit,)c(>)k
+(datasum,hdusum,status\))382 2011 y(FTESUM\(sum,complement,)42
+b(>)47 b(checksum\))382 2124 y(FTDSUM\(checksum,compleme)o(nt,)41
+b(>)48 b(sum\))0 2457 y Fi(Time)29 b(and)h(Date)i(Utilit)m(y)e
+(Subroutines:)38 b(page)31 b(101)382 2677 y Fe(FTGSDT\()46
+b(>)h(day,)g(month,)f(year,)g(status)g(\))382 2790 y(FTGSTM\(>)f
+(datestr,)h(timeref,)f(status\))382 2903 y(FTDT2S\()h(year,)g(month,)g
+(day,)h(>)g(datestr,)f(status\))382 3016 y(FTTM2S\()g(year,)g(month,)g
+(day,)h(hour,)f(minute,)g(second,)g(decimals,)764 3129
+y(>)h(datestr,)f(status\))382 3242 y(FTS2DT\(datestr,)d(>)48
+b(year,)e(month,)g(day,)h(status\))382 3354 y(FTS2TM\(datestr,)c(>)48
+b(year,)e(month,)g(day,)h(hour,)f(minute,)g(second,)g(status\))0
+3574 y Fi(General)30 b(Utilit)m(y)g(Subroutines:)38 b(page)31
+b(102)382 3794 y Fe(FTGHAD\(unit,)44 b(>)k(curaddr,nextaddr\))382
+3907 y(FTUPCH\(string\))382 4020 y(FTCMPS\(str_template,stri)o(ng,)o
+(case)o(sen,)41 b(>)47 b(match,exact\))382 4133 y(FTTKEY\(keyword,)c(>)
+48 b(status\))382 4246 y(FTTREC\(card,)c(>)k(status\))382
+4359 y(FTNCHK\(unit,)c(>)k(status\))382 4472 y(FTGKNM\(unit,)c(>)k
+(keyword,)d(keylength,)g(status\))382 4585 y(FTPSVC\(card,)f(>)k
+(value,comment,status\))382 4698 y(FTKEYN\(keyroot,seq_no,)42
+b(>)47 b(keyword,status\))382 4811 y(FTNKEY\(seq_no,keyroot,)42
+b(>)47 b(keyword,status\))382 4924 y(FTDTYP\(value,)d(>)j
+(dtype,status\))382 5036 y(class)f(=)i(FTGKCL\(card\))382
+5149 y(FTASFM\(tform,)c(>)j(datacode,width,decimals,st)o(atus)o(\))382
+5262 y(FTBNFM\(tform,)d(>)j(datacode,repeat,width,stat)o(us\))382
+5375 y(FTGABC\(tfields,tform,spa)o(ce,)41 b(>)48 b
+(rowlen,tbcol,status\))382 5488 y(FTGTHD\(template,)43
+b(>)48 b(card,hdtype,status\))382 5601 y(FTRWRG\(rowlist,)43
+b(maxrows,)j(maxranges,)f(>)i(numranges,)e(rangemin,)716
+5714 y(rangemax,)g(status\))p eop
+%%Page: 116 122
+116 121 bop 0 299 a Fi(116)281 b Fg(CHAPTER)30 b(10.)112
+b(SUMMAR)-8 b(Y)32 b(OF)e(ALL)g(FITSIO)f(USER-INTERF)-10
+b(A)m(CE)30 b(SUBR)m(OUTINES)p eop
+%%Page: 117 123
+117 122 bop 0 1225 a Ff(Chapter)65 b(11)0 1687 y Fl(P)-6
+b(arameter)77 b(De\014nitions)0 2180 y Fe(anyf)47 b(-)g(\(logical\))e
+(set)i(to)g(TRUE)g(if)g(any)g(of)g(the)g(returned)f(data)g(values)h
+(are)f(undefined)0 2293 y(array)g(-)i(\(any)e(datatype)g(except)g
+(character\))f(array)h(of)i(bytes)e(to)h(be)g(read)g(or)g(written.)0
+2406 y(bitpix)f(-)i(\(integer\))d(bits)h(per)h(pixel:)f(8,)i(16,)f(32,)
+f(-32,)h(or)g(-64)0 2518 y(blank)f(-)i(\(integer\))d(value)h(used)h
+(for)g(undefined)e(pixels)h(in)i(integer)d(primary)h(array)0
+2631 y(blocksize)f(-)j(\(integer\))d(2880-byte)g(logical)h(record)g
+(blocking)g(factor)477 2744 y(\(if)h(0)h(<)f(blocksize)e(<)j(11\))f(or)
+g(the)g(actual)f(block)g(size)h(in)g(bytes)477 2857 y(\(if)g(10)g(<)h
+(blocksize)d(<)j(28800\).)93 b(As)47 b(of)g(version)f(3.3)h(of)g
+(FITSIO,)477 2970 y(blocksizes)e(greater)h(than)h(2880)f(are)h(no)g
+(longer)g(supported.)0 3083 y(bscale)f(-)i(\(double)d(precision\))g
+(scaling)h(factor)g(for)h(the)g(primary)f(array)0 3196
+y(bytlen)g(-)i(\(integer\))d(length)h(of)h(the)g(data)g(unit,)f(in)h
+(bytes)0 3309 y(bzero)f(-)i(\(double)e(precision\))f(zero)h(point)h
+(for)g(primary)e(array)i(scaling)0 3422 y(card)g(-)g(\(character*80\))d
+(header)i(record)g(to)h(be)h(read)e(or)h(written)0 3535
+y(casesen)f(-)h(\(logical\))f(will)g(string)g(matching)g(be)h(case)g
+(sensitive?)0 3648 y(checksum)f(-)h(\(character*16\))d(encoded)i
+(checksum)f(string)0 3760 y(colname)h(-)h(\(character\))e(ASCII)h(name)
+h(of)g(the)g(column)0 3873 y(colnum)f(-)i(\(integer\))d(number)h(of)h
+(the)g(column)f(\(first)g(column)g(=)i(1\))0 3986 y(coltemplate)d(-)i
+(\(character\))e(template)g(string)i(to)g(be)g(matched)f(to)h(column)f
+(names)0 4099 y(comment)g(-)h(\(character\))e(the)i(keyword)f(comment)g
+(field)0 4212 y(comments)g(-)h(\(character)e(array\))h(keyword)g
+(comment)g(fields)0 4325 y(compid)g(-)i(\(integer\))d(the)i(type)f(of)i
+(computer)d(that)i(the)g(program)e(is)j(running)d(on)0
+4438 y(complement)g(-)i(\(logical\))f(should)g(the)h(checksum)e(be)i
+(complemented?)0 4551 y(coordtype)e(-)j(\(character\))c(type)j(of)g
+(coordinate)e(projection)g(\(-SIN,)h(-TAN,)h(-ARC,)477
+4664 y(-NCP,)g(-GLS,)f(-MER,)g(or)i(-AIT\))0 4777 y(cube)f(-)g(3D)g
+(data)g(cube)g(of)g(the)g(appropriate)d(datatype)0 4890
+y(curaddr)i(-)h(\(integer\))f(starting)f(address)h(\(in)h(bytes\))f(of)
+h(the)g(CHDU)0 5002 y(datacode)f(-)h(\(integer\))e(symbolic)h(code)g
+(of)i(the)f(binary)f(table)g(column)g(datatype)0 5115
+y(dataok)g(-)i(\(integer\))d(was)i(the)g(data)f(unit)h(verification)d
+(successful)h(\(=1\))i(or)430 5228 y(not)f(\(=)i(-1\).)94
+b(Equals)46 b(zero)h(if)g(the)g(DATASUM)f(keyword)f(is)j(not)f
+(present.)0 5341 y(datasum)f(-)h(\(double)f(precision\))f(32-bit)h(1's)
+h(complement)e(checksum)h(for)h(the)f(data)h(unit)0 5454
+y(datatype)f(-)h(\(character\))e(datatype)g(\(format\))h(of)h(the)g
+(binary)f(table)g(column)0 5567 y(datestr)94 b(-)47 b(\(string\))f
+(FITS)g(date/time)f(string:)h('YYYY-MM-DDThh:mm:ss.ddd')o(,)525
+5680 y('YYYY-MM-dd',)e(or)j('dd/mm/yy')1882 5942 y Fi(117)p
+eop
+%%Page: 118 124
+118 123 bop 0 299 a Fi(118)1779 b Fg(CHAPTER)30 b(11.)112
+b(P)-8 b(ARAMETER)30 b(DEFINITIONS)0 555 y Fe(day)47
+b(-)g(\(integer\))f(current)f(day)i(of)h(the)e(month)0
+668 y(dblval)g(-)i(\(double)d(precision\))g(fractional)g(part)i(of)g
+(the)g(keyword)f(value)0 781 y(decimals)g(-)h(\(integer\))e(number)h
+(of)i(decimal)d(places)h(to)i(be)f(displayed)0 894 y(dim1)g(-)g
+(\(integer\))e(actual)h(size)h(of)g(the)g(first)g(dimension)e(of)i(the)
+g(image)f(or)h(cube)g(array)0 1007 y(dim2)g(-)g(\(integer\))e(actual)h
+(size)h(of)g(the)g(second)f(dimension)g(of)h(the)g(cube)f(array)0
+1120 y(dispwidth)f(-)j(\(integer\))d(-)i(the)g(display)f(width)h
+(\(length)e(of)j(string\))d(for)i(a)h(column)0 1233 y(dtype)e(-)i
+(\(character\))d(datatype)g(of)i(the)g(keyword)f(\('C',)g('L',)h('I',)
+94 b(or)48 b('F'\))764 1346 y(C)f(=)h(character)d(string)764
+1458 y(L)i(=)h(logical)764 1571 y(I)f(=)h(integer)764
+1684 y(F)f(=)h(floating)d(point)h(number)0 1797 y(errmsg)g(-)i
+(\(character*80\))43 b(oldest)k(error)f(message)g(on)h(the)g(internal)e
+(stack)0 1910 y(errtext)h(-)h(\(character*30\))d(descriptive)h(error)h
+(message)g(corresponding)e(to)j(error)g(number)0 2023
+y(casesen)f(-)h(\(logical\))f(true)g(if)h(column)f(name)h(matching)f
+(is)h(case)f(sensitive)0 2136 y(exact)g(-)i(\(logical\))d(do)i(the)g
+(strings)f(match)g(exactly,)g(or)h(were)g(wildcards)e(used?)0
+2249 y(exclist)94 b(\(character)45 b(array\))h(list)g(of)h(names)g(to)g
+(be)g(excluded)f(from)g(search)0 2362 y(exists)142 b(-)47
+b(flag)g(indicating)e(whether)g(the)i(file)g(or)g(compressed)e(file)i
+(exists)f(on)h(disk)0 2475 y(extend)f(-)i(\(logical\))d(true)h(if)i
+(there)e(may)h(be)g(extensions)e(following)g(the)i(primary)f(data)0
+2588 y(extname)g(-)h(\(character\))e(value)h(of)i(the)e(EXTNAME)g
+(keyword)g(\(if)h(not)g(blank\))0 2700 y(fbit)g(-)g(\(integer\))e
+(first)i(bit)g(in)g(the)g(field)f(to)h(be)g(read)g(or)g(written)0
+2813 y(felem)f(-)i(\(integer\))d(first)h(pixel)h(of)g(the)g(element)f
+(vector)g(\(ignored)f(for)i(ASCII)g(tables\))0 2926 y(filename)f(-)h
+(\(character\))e(name)h(of)i(the)e(FITS)h(file)0 3039
+y(flagvals)f(-)h(\(logical)f(array\))g(True)g(if)h(corresponding)e
+(data)h(element)g(is)h(undefined)0 3152 y(fparm)f(-)i(\(integer\))d
+(sequence)h(number)g(of)h(the)g(first)f(group)h(parameter)e(to)i(read)g
+(or)g(write)0 3265 y(fpixel)f(-)i(\(integer\))d(the)i(first)f(pixel)g
+(position)0 3378 y(fpixels)g(-)h(\(integer)f(array\))g(the)h(first)f
+(included)g(pixel)g(in)h(each)g(dimension)0 3491 y(frow)g(-)g
+(\(integer\))e(beginning)h(row)h(number)f(\(first)g(row)h(of)g(table)f
+(=)i(1\))0 3604 y(gcount)e(-)i(\(integer\))d(value)h(of)h(the)g(GCOUNT)
+f(keyword)g(\(usually)g(=)h(1\))0 3717 y(group)f(-)i(\(integer\))d
+(sequence)h(number)g(of)h(the)g(data)f(group)h(\(=0)g(for)g
+(non-grouped)d(data\))0 3830 y(hdtype)i(-)i(\(integer\))d(header)h
+(record)g(type:)g(-1=delete;)93 b(0=append)46 b(or)h(replace;)907
+3942 y(1=append;)e(2=this)h(is)h(the)g(END)g(keyword)0
+4055 y(hduok)f(-)i(\(integer\))d(was)i(the)g(HDU)g(verification)d
+(successful)h(\(=1\))i(or)430 4168 y(not)f(\(=)i(-1\).)94
+b(Equals)46 b(zero)h(if)g(the)g(CHECKSUM)e(keyword)h(is)h(not)g
+(present.)0 4281 y(hdusum)f(-)i(\(double)d(precision\))g(32)j(bit)e
+(1's)h(complement)e(checksum)h(for)h(the)g(entire)f(CHDU)0
+4394 y(hdutype)g(-)h(\(integer\))f(type)g(of)h(HDU:)g(0)g(=)h(primary)e
+(array)g(or)h(IMAGE,)f(1)i(=)f(ASCII)g(table,)907 4507
+y(2)g(=)h(binary)e(table,)g(-1)h(=)h(unknown)0 4620 y(history)e(-)h
+(\(character\))e(the)i(HISTORY)f(keyword)g(comment)f(string)0
+4733 y(hour)i(-)g(\(integer\))e(hour)i(from)g(0)g(-)h(23)0
+4846 y(image)e(-)i(2D)f(image)f(of)i(the)e(appropriate)f(datatype)0
+4959 y(inclist)94 b(\(character)45 b(array\))h(list)g(of)h(names)g(to)g
+(be)g(included)f(in)h(search)0 5072 y(incs)g(-)g(\(integer)f(array\))g
+(sampling)f(interval)h(for)h(pixels)f(in)h(each)g(FITS)f(dimension)0
+5185 y(intval)g(-)i(\(integer\))d(integer)h(part)g(of)h(the)g(keyword)f
+(value)0 5297 y(iounit)g(-)i(\(integer\))d(value)h(of)h(an)h(unused)e
+(I/O)h(unit)f(number)0 5410 y(iunit)g(-)i(\(integer\))d(logical)h(unit)
+h(number)f(associated)f(with)h(the)h(input)g(FITS)f(file,)h(1-199)0
+5523 y(key_no)f(-)i(\(integer\))d(sequence)g(number)h(\(starting)g
+(with)g(1\))i(of)f(the)g(keyword)e(record)0 5636 y(keylength)g(-)j
+(\(integer\))d(length)h(of)h(the)g(keyword)f(name)p eop
+%%Page: 119 125
+119 124 bop 3764 299 a Fi(119)0 555 y Fe(keyroot)46 b(-)h
+(\(character\))e(root)i(string)f(for)h(the)g(keyword)e(name)0
+668 y(keysadd)h(-\(integer\))f(number)h(of)h(new)g(keyword)f(records)g
+(which)g(can)h(fit)g(in)g(the)g(CHU)0 781 y(keysexist)e(-)j
+(\(integer\))d(number)h(of)h(existing)f(keyword)g(records)f(in)j(the)f
+(CHU)0 894 y(keyval)f(-)i(value)e(of)h(the)g(keyword)f(in)h(the)g
+(appropriate)e(datatype)0 1007 y(keyvals)h(-)h(\(array\))f(value)g(of)i
+(the)f(keywords)e(in)i(the)g(appropriate)e(datatype)0
+1120 y(keyword)h(-)h(\(character*8\))d(name)j(of)g(a)h(keyword)0
+1233 y(lray)f(-)g(\(logical)f(array\))g(array)g(of)h(logical)f(values)g
+(corresponding)e(to)k(the)e(bit)h(array)0 1346 y(lpixels)f(-)h
+(\(integer)f(array\))g(the)h(last)f(included)g(pixel)g(in)i(each)e
+(dimension)0 1458 y(match)g(-)i(\(logical\))d(do)i(the)g(2)h(strings)d
+(match?)0 1571 y(maxdim)h(-)i(\(integer\))d(dimensioned)g(size)h(of)h
+(the)g(NAXES,)f(TTYPE,)g(TFORM)h(or)g(TUNIT)f(arrays)0
+1684 y(max_keys)g(-)h(\(integer\))e(maximum)h(number)g(of)h(keywords)f
+(to)h(search)f(for)0 1797 y(minute)g(-)i(\(integer\))d(minute)h(of)h
+(an)g(hour)g(\(0)g(-)h(59\))0 1910 y(month)e(-)i(\(integer\))d(current)
+h(month)g(of)h(the)g(year)g(\(1)g(-)h(12\))0 2023 y(morekeys)e(-)h
+(\(integer\))e(will)i(leave)f(space)h(in)g(the)g(header)f(for)h(this)f
+(many)h(more)g(keywords)0 2136 y(naxes)f(-)i(\(integer)d(array\))h
+(size)h(of)g(each)g(dimension)e(in)i(the)g(FITS)g(array)0
+2249 y(naxis)f(-)i(\(integer\))d(number)h(of)h(dimensions)e(in)j(the)e
+(FITS)h(array)0 2362 y(naxis1)f(-)i(\(integer\))d(length)h(of)h(the)g
+(X/first)f(axis)g(of)i(the)f(FITS)f(array)0 2475 y(naxis2)g(-)i
+(\(integer\))d(length)h(of)h(the)g(Y/second)f(axis)g(of)h(the)g(FITS)g
+(array)0 2588 y(naxis3)f(-)i(\(integer\))d(length)h(of)h(the)g(Z/third)
+f(axis)g(of)i(the)f(FITS)f(array)0 2700 y(nbit)h(-)g(\(integer\))e
+(number)h(of)i(bits)e(in)h(the)g(field)g(to)g(read)g(or)g(write)0
+2813 y(nchars)f(-)i(\(integer\))d(number)h(of)h(characters)e(to)i(read)
+g(and)g(return)0 2926 y(ncols)f(-)i(\(integer\))d(number)h(of)h
+(columns)0 3039 y(nelements)e(-)j(\(integer\))d(number)h(of)h(data)g
+(elements)e(to)j(read)e(or)h(write)0 3152 y(nexc)142
+b(\(integer\))93 b(number)46 b(of)h(names)g(in)g(the)g(exclusion)e
+(list)i(\(may)f(=)i(0\))0 3265 y(nhdu)f(-)g(\(integer\))e(absolute)h
+(number)g(of)h(the)g(HDU)g(\(1st)g(HDU)g(=)g(1\))0 3378
+y(ninc)142 b(\(integer\))93 b(number)46 b(of)h(names)g(in)g(the)g
+(inclusion)e(list)0 3491 y(nmove)h(-)i(\(integer\))d(number)h(of)h
+(HDUs)g(to)g(move)g(\(+)g(or)g(-\),)g(relative)f(to)h(current)f
+(position)0 3604 y(nfound)g(-)i(\(integer\))d(number)h(of)h(keywords)f
+(found)g(\(highest)g(keyword)f(number\))0 3717 y(no_keys)h(-)h
+(\(integer\))f(number)g(of)h(keywords)e(to)j(write)e(in)h(the)g
+(sequence)0 3830 y(nparm)f(-)i(\(integer\))d(number)h(of)h(group)g
+(parameters)e(to)i(read)g(or)g(write)0 3942 y(nrows)f(-)i(\(integer\))d
+(number)h(of)h(rows)g(in)g(the)g(table)0 4055 y(nullval)f(-)h(value)g
+(to)g(represent)e(undefined)g(pixels,)h(of)h(the)g(appropriate)e
+(datatype)0 4168 y(nextaddr)h(-)h(\(integer\))e(starting)h(address)g
+(\(in)h(bytes\))f(of)h(the)g(HDU)g(following)e(the)i(CHDU)0
+4281 y(offset)f(-)i(\(integer\))d(byte)h(offset)h(in)g(the)g(heap)f(to)
+h(the)g(first)g(element)f(of)h(the)g(array)0 4394 y(oldkey)f(-)i
+(\(character\))c(old)j(name)g(of)g(keyword)f(to)h(be)g(modified)0
+4507 y(ounit)f(-)i(\(integer\))d(logical)h(unit)h(number)f(associated)f
+(with)h(the)h(output)f(FITS)h(file)g(1-199)0 4620 y(pcount)f(-)i
+(\(integer\))d(value)h(of)h(the)g(PCOUNT)f(keyword)g(\(usually)g(=)h
+(0\))0 4733 y(repeat)f(-)i(\(integer\))d(length)h(of)h(element)f
+(vector)g(\(e.g.)g(12J\);)h(ignored)f(for)g(ASCII)h(table)0
+4846 y(rot)g(-)g(\(double)f(precision\))f(celestial)g(coordinate)g
+(rotation)h(angle)g(\(degrees\))0 4959 y(rowlen)g(-)i(\(integer\))d
+(length)h(of)h(a)h(table)e(row,)h(in)g(characters)e(or)i(bytes)0
+5072 y(rowlist)f(-)h(\(integer)f(array\))g(list)h(of)g(row)g(numbers)e
+(to)j(be)f(deleted)f(in)h(increasing)e(order)0 5185 y(rownum)h(-)i
+(\(integer\))d(number)h(of)h(the)g(row)g(\(first)f(row)h(=)g(1\))0
+5297 y(rowrange-)e(\(string\))h(list)g(of)i(rows)e(or)h(row)g(ranges)f
+(to)i(be)f(deleted)0 5410 y(rwmode)f(-)i(\(integer\))d(file)h(access)h
+(mode:)f(0)h(=)h(readonly,)d(1)j(=)f(readwrite)0 5523
+y(second)142 b(\(double\)-)45 b(second)h(within)g(minute)g(\(0)h(-)h
+(60.9999999999\))c(\(leap)i(second!\))0 5636 y(seq_no)g(-)i
+(\(integer\))d(the)i(sequence)e(number)h(to)i(append)e(to)h(the)g
+(keyword)f(root)g(name)p eop
+%%Page: 120 126
+120 125 bop 0 299 a Fi(120)1779 b Fg(CHAPTER)30 b(11.)112
+b(P)-8 b(ARAMETER)30 b(DEFINITIONS)0 555 y Fe(simple)46
+b(-)i(\(logical\))d(does)h(the)h(FITS)g(file)g(conform)e(to)j(all)f
+(the)f(FITS)h(standards)0 668 y(snull)f(-)i(\(character\))d(value)h
+(used)h(to)g(represent)e(undefined)g(values)h(in)i(ASCII)e(table)0
+781 y(space)g(-)i(\(integer\))d(number)h(of)h(blank)g(spaces)f(to)h
+(leave)f(between)g(ASCII)h(table)f(columns)0 894 y(startchar)f(-)j
+(\(integer\))d(first)h(character)g(in)h(the)g(row)g(to)g(be)g(read)0
+1007 y(startno)f(-)h(\(integer\))f(value)g(of)h(the)g(first)f(keyword)g
+(sequence)g(number)g(\(usually)f(1\))0 1120 y(status)h(-)i(\(integer\))
+d(returned)g(error)i(status)f(code)g(\(0)i(=)f(OK\))0
+1233 y(str_template)d(\(character\))h(template)h(string)g(to)h(be)g
+(matched)f(to)h(reference)e(string)0 1346 y(stream)h(-)i(\(character\))
+c(output)i(stream)g(for)h(the)g(report:)f(either)g('STDOUT')g(or)h
+('STDERR')0 1458 y(string)f(-)i(\(character\))c(character)i(string)0
+1571 y(sum)h(-)g(\(double)f(precision\))f(32)i(bit)g(unsigned)f
+(checksum)f(value)0 1684 y(tbcol)h(-)i(\(integer)d(array\))h(column)h
+(number)f(of)h(the)g(first)f(character)f(in)j(the)e(field\(s\))0
+1797 y(tdisp)g(-)i(\(character\))d(Fortran)g(type)i(display)f(format)g
+(for)h(the)g(table)f(column)0 1910 y(template-\(character\))c(template)
+k(string)g(for)h(a)g(FITS)g(header)f(record)0 2023 y(tfields)g(-)h
+(\(integer\))f(number)g(of)h(fields)f(\(columns\))f(in)i(the)g(table)0
+2136 y(tform)f(-)i(\(character)d(array\))h(format)g(of)h(the)g
+(column\(s\);)e(allowed)h(values)g(are:)430 2249 y(For)g(ASCII)h
+(tables:)93 b(Iw,)47 b(Aw,)g(Fww.dd,)f(Eww.dd,)g(or)h(Dww.dd)430
+2362 y(For)f(binary)h(tables:)e(rL,)i(rX,)g(rB,)g(rI,)g(rJ,)g(rA,)g
+(rAw,)f(rE,)h(rD,)g(rC,)g(rM)430 2475 y(where)f('w'=width)f(of)i(the)g
+(field,)f('d'=no.)g(of)h(decimals,)f('r'=repeat)f(count)430
+2588 y(Note)h(that)h(the)g('rAw')f(form)h(is)g(non-standard)d
+(extension)i(to)h(the)430 2700 y(TFORM)f(keyword)g(syntax)g(that)g(is)i
+(not)f(specifically)d(defined)i(in)h(the)430 2813 y(Binary)f(Tables)g
+(definition)f(document.)0 2926 y(theap)h(-)i(\(integer\))d(zero)i
+(indexed)f(byte)g(offset)g(of)h(starting)f(address)g(of)h(the)g(heap)
+430 3039 y(relative)e(to)i(the)g(beginning)e(of)j(the)f(binary)f(table)
+g(data)0 3152 y(tnull)g(-)i(\(integer\))d(value)h(used)h(to)g
+(represent)f(undefined)f(values)h(in)h(binary)f(table)0
+3265 y(ttype)g(-)i(\(character)d(array\))h(label)g(for)h(table)g
+(column\(s\))0 3378 y(tscal)f(-)i(\(double)e(precision\))f(scaling)g
+(factor)i(for)f(table)h(column)0 3491 y(tunit)f(-)i(\(character)d
+(array\))h(physical)f(unit)i(for)g(table)f(column\(s\))0
+3604 y(tzero)g(-)i(\(double)e(precision\))f(scaling)g(zero)i(point)f
+(for)h(table)g(column)0 3717 y(unit)94 b(-)48 b(\(integer\))d(logical)h
+(unit)h(number)f(associated)f(with)h(the)h(FITS)g(file)f(\(1-199\))0
+3830 y(units)g(-)i(\(character\))d(the)h(keyword)g(units)h(string)f
+(\(e.g.,)g('km/s'\))0 3942 y(value)g(-)i(\(character\))d(the)h(keyword)
+g(value)h(string)0 4055 y(values)f(-)i(array)e(of)h(data)g(values)f(of)
+h(the)g(appropriate)e(datatype)0 4168 y(varidat)h(-)h(\(integer\))f
+(size)g(in)h(bytes)g(of)g(the)g('variable)e(length)h(data)h(area')525
+4281 y(following)e(the)i(binary)f(table)h(data)f(\(usually)g(=)h(0\))0
+4394 y(version)f(-)h(\(real\))f(current)g(revision)g(number)g(of)h(the)
+g(library)0 4507 y(width)f(-)i(\(integer\))d(width)h(of)i(the)f
+(character)e(string)h(field)0 4620 y(xcol)h(-)g(\(integer\))e(number)h
+(of)i(the)f(column)f(containing)f(the)i(X)g(coordinate)e(values)0
+4733 y(xinc)i(-)g(\(double)f(precision\))f(X)i(axis)g(coordinate)e
+(increment)g(at)i(reference)f(pixel)g(\(deg\))0 4846
+y(xpix)h(-)g(\(double)f(precision\))f(X)i(axis)g(pixel)f(location)0
+4959 y(xpos)h(-)g(\(double)f(precision\))f(X)i(axis)g(celestial)e
+(coordinate)g(\(usually)h(RA\))h(\(deg\))0 5072 y(xrpix)f(-)i(\(double)
+e(precision\))f(X)i(axis)g(reference)e(pixel)h(array)h(location)0
+5185 y(xrval)f(-)i(\(double)e(precision\))f(X)i(axis)g(coordinate)e
+(value)h(at)h(the)g(reference)e(pixel)i(\(deg\))0 5297
+y(ycol)g(-)g(\(integer\))e(number)h(of)i(the)f(column)f(containing)f
+(the)i(X)g(coordinate)e(values)0 5410 y(year)i(-)g(\(integer\))e(last)i
+(2)g(digits)g(of)g(the)g(year)f(\(00)h(-)h(99\))0 5523
+y(yinc)f(-)g(\(double)f(precision\))f(Y)i(axis)g(coordinate)e
+(increment)g(at)i(reference)f(pixel)g(\(deg\))0 5636
+y(ypix)h(-)g(\(double)f(precision\))f(y)i(axis)g(pixel)f(location)p
+eop
+%%Page: 121 127
+121 126 bop 3764 299 a Fi(121)0 555 y Fe(ypos)47 b(-)g(\(double)f
+(precision\))f(y)i(axis)g(celestial)e(coordinate)g(\(usually)h(DEC\))g
+(\(deg\))0 668 y(yrpix)g(-)i(\(double)e(precision\))f(Y)i(axis)g
+(reference)e(pixel)h(array)h(location)0 781 y(yrval)f(-)i(\(double)e
+(precision\))f(Y)i(axis)g(coordinate)e(value)h(at)h(the)g(reference)e
+(pixel)i(\(deg\))p eop
+%%Page: 122 128
+122 127 bop 0 299 a Fi(122)1779 b Fg(CHAPTER)30 b(11.)112
+b(P)-8 b(ARAMETER)30 b(DEFINITIONS)p eop
+%%Page: 123 129
+123 128 bop 0 1225 a Ff(Chapter)65 b(12)0 1687 y Fl(FITSIO)76
+b(Error)h(Status)h(Co)6 b(des)0 2180 y Fe(Status)46 b(codes)g(in)i(the)
+f(range)f(-99)h(to)g(-999)94 b(and)47 b(1)h(to)f(999)g(are)g(reserved)e
+(for)i(future)0 2293 y(FITSIO)f(use.)95 2518 y(0)96 b(OK,)47
+b(no)g(error)0 2631 y(101)95 b(input)46 b(and)h(output)f(files)g(are)h
+(the)g(same)0 2744 y(103)95 b(too)47 b(many)f(FITS)h(files)f(open)h(at)
+g(once;)f(all)h(internal)f(buffers)g(full)0 2857 y(104)95
+b(error)46 b(opening)g(existing)f(file)0 2970 y(105)95
+b(error)46 b(creating)g(new)g(FITS)h(file;)f(\(does)h(a)g(file)g(with)g
+(this)f(name)h(already)f(exist?\))0 3083 y(106)95 b(error)46
+b(writing)g(record)g(to)h(FITS)g(file)0 3196 y(107)95
+b(end-of-file)44 b(encountered)h(while)h(reading)g(record)g(from)h
+(FITS)g(file)0 3309 y(108)95 b(error)46 b(reading)g(record)g(from)h
+(file)0 3422 y(110)95 b(error)46 b(closing)g(FITS)g(file)0
+3535 y(111)95 b(internal)45 b(array)i(dimensions)e(exceeded)0
+3648 y(112)95 b(Cannot)46 b(modify)g(file)g(with)h(readonly)f(access)0
+3760 y(113)95 b(Could)46 b(not)h(allocate)e(memory)0
+3873 y(114)95 b(illegal)45 b(logical)h(unit)h(number;)f(must)g(be)i
+(between)d(1)j(-)f(199,)g(inclusive)0 3986 y(115)95 b(NULL)46
+b(input)h(pointer)e(to)j(routine)0 4099 y(116)95 b(error)46
+b(seeking)g(position)f(in)j(file)0 4325 y(121)95 b(invalid)45
+b(URL)i(prefix)f(on)i(file)e(name)0 4438 y(122)95 b(tried)46
+b(to)h(register)f(too)h(many)f(IO)h(drivers)0 4551 y(123)95
+b(driver)46 b(initialization)e(failed)0 4664 y(124)95
+b(matching)45 b(driver)h(is)h(not)g(registered)0 4777
+y(125)95 b(failed)46 b(to)h(parse)f(input)h(file)f(URL)0
+4890 y(126)95 b(parse)46 b(error)g(in)i(range)e(list)0
+5115 y(151)95 b(bad)47 b(argument)e(in)i(shared)f(memory)g(driver)0
+5228 y(152)95 b(null)46 b(pointer)g(passed)g(as)h(an)h(argument)0
+5341 y(153)95 b(no)47 b(more)f(free)h(shared)f(memory)g(handles)0
+5454 y(154)95 b(shared)46 b(memory)g(driver)g(is)h(not)g(initialized)0
+5567 y(155)95 b(IPC)47 b(error)f(returned)f(by)j(a)f(system)f(call)0
+5680 y(156)95 b(no)47 b(memory)f(in)h(shared)f(memory)g(driver)1882
+5942 y Fi(123)p eop
+%%Page: 124 130
+124 129 bop 0 299 a Fi(124)1613 b Fg(CHAPTER)30 b(12.)112
+b(FITSIO)30 b(ERR)m(OR)g(ST)-8 b(A)g(TUS)30 b(CODES)0
+555 y Fe(157)95 b(resource)45 b(deadlock)h(would)g(occur)0
+668 y(158)95 b(attempt)45 b(to)j(open/create)c(lock)j(file)g(failed)0
+781 y(159)95 b(shared)46 b(memory)g(block)g(cannot)g(be)h(resized)f(at)
+h(the)g(moment)0 1120 y(201)95 b(header)46 b(not)h(empty;)f(can't)g
+(write)g(required)g(keywords)0 1233 y(202)95 b(specified)45
+b(keyword)h(name)g(was)h(not)g(found)g(in)g(the)g(header)0
+1346 y(203)95 b(specified)45 b(header)h(record)g(number)g(is)h(out)g
+(of)g(bounds)0 1458 y(204)95 b(keyword)45 b(value)i(field)f(is)h(blank)
+0 1571 y(205)95 b(keyword)45 b(value)i(string)f(is)h(missing)f(the)h
+(closing)f(quote)g(character)0 1684 y(207)95 b(illegal)45
+b(character)h(in)h(keyword)f(name)g(or)i(header)e(record)0
+1797 y(208)95 b(keyword)45 b(does)i(not)g(have)g(expected)e(name.)i
+(Keyword)e(out)i(of)g(sequence?)0 1910 y(209)95 b(keyword)45
+b(does)i(not)g(have)g(expected)e(integer)h(value)0 2023
+y(210)95 b(could)46 b(not)h(find)g(the)f(required)g(END)h(header)f
+(keyword)0 2136 y(211)95 b(illegal)45 b(BITPIX)i(keyword)e(value)0
+2249 y(212)95 b(illegal)45 b(NAXIS)i(keyword)f(value)0
+2362 y(213)95 b(illegal)45 b(NAXISn)i(keyword)e(value:)h(must)h(be)g(0)
+h(or)f(positive)e(integer)0 2475 y(214)95 b(illegal)45
+b(PCOUNT)i(keyword)e(value)0 2588 y(215)95 b(illegal)45
+b(GCOUNT)i(keyword)e(value)0 2700 y(216)95 b(illegal)45
+b(TFIELDS)h(keyword)g(value)0 2813 y(217)95 b(negative)45
+b(ASCII)i(or)g(binary)f(table)g(width)h(value)f(\(NAXIS1\))0
+2926 y(218)95 b(negative)45 b(number)h(of)h(rows)g(in)g(ASCII)g(or)g
+(binary)f(table)g(\(NAXIS2\))0 3039 y(219)95 b(column)46
+b(name)g(\(TTYPE)g(keyword\))g(not)h(found)0 3152 y(220)95
+b(illegal)45 b(SIMPLE)i(keyword)e(value)0 3265 y(221)95
+b(could)46 b(not)h(find)g(the)f(required)g(SIMPLE)g(header)g(keyword)0
+3378 y(222)95 b(could)46 b(not)h(find)g(the)f(required)g(BITPIX)g
+(header)g(keyword)0 3491 y(223)95 b(could)46 b(not)h(find)g(the)f
+(required)g(NAXIS)g(header)g(keyword)0 3604 y(224)95
+b(could)46 b(not)h(find)g(all)f(the)h(required)f(NAXISn)g(keywords)g
+(in)h(the)g(header)0 3717 y(225)95 b(could)46 b(not)h(find)g(the)f
+(required)g(XTENSION)g(header)g(keyword)0 3830 y(226)95
+b(the)47 b(CHDU)f(is)h(not)g(an)g(ASCII)g(table)f(extension)0
+3942 y(227)95 b(the)47 b(CHDU)f(is)h(not)g(a)h(binary)e(table)g
+(extension)0 4055 y(228)95 b(could)46 b(not)h(find)g(the)f(required)g
+(PCOUNT)g(header)g(keyword)0 4168 y(229)95 b(could)46
+b(not)h(find)g(the)f(required)g(GCOUNT)g(header)g(keyword)0
+4281 y(230)95 b(could)46 b(not)h(find)g(the)f(required)g(TFIELDS)g
+(header)g(keyword)0 4394 y(231)95 b(could)46 b(not)h(find)g(all)f(the)h
+(required)f(TBCOLn)g(keywords)g(in)h(the)g(header)0 4507
+y(232)95 b(could)46 b(not)h(find)g(all)f(the)h(required)f(TFORMn)g
+(keywords)g(in)h(the)g(header)0 4620 y(233)95 b(the)47
+b(CHDU)f(is)h(not)g(an)g(IMAGE)g(extension)0 4733 y(234)95
+b(illegal)45 b(TBCOL)i(keyword)f(value;)g(out)h(of)g(range)0
+4846 y(235)95 b(this)46 b(operation)g(only)g(allowed)g(for)h(ASCII)f
+(or)h(BINARY)g(table)f(extension)0 4959 y(236)95 b(column)46
+b(is)h(too)g(wide)f(to)i(fit)f(within)f(the)h(specified)e(width)h(of)h
+(the)g(ASCII)g(table)0 5072 y(237)95 b(the)47 b(specified)e(column)h
+(name)h(template)e(matched)h(more)h(than)f(one)h(column)f(name)0
+5185 y(241)95 b(binary)46 b(table)g(row)h(width)f(is)i(not)e(equal)h
+(to)g(the)g(sum)g(of)g(the)g(field)f(widths)0 5297 y(251)95
+b(unrecognizable)44 b(type)i(of)h(FITS)g(extension)0
+5410 y(252)95 b(unrecognizable)44 b(FITS)i(record)0 5523
+y(253)95 b(END)47 b(keyword)e(contains)h(non-blank)f(characters)g(in)i
+(columns)f(9-80)0 5636 y(254)95 b(Header)46 b(fill)g(area)h(contains)f
+(non-blank)f(characters)p eop
+%%Page: 125 131
+125 130 bop 3764 299 a Fi(125)0 555 y Fe(255)95 b(Data)46
+b(fill)h(area)g(contains)e(non-blank)g(on)j(non-zero)d(values)0
+668 y(261)95 b(unable)46 b(to)h(parse)f(the)h(TFORM)g(keyword)e(value)i
+(string)0 781 y(262)95 b(unrecognizable)44 b(TFORM)i(datatype)f(code)0
+894 y(263)95 b(illegal)45 b(TDIMn)i(keyword)f(value)0
+1120 y(301)95 b(illegal)45 b(HDU)i(number;)f(less)h(than)f(1)i(or)f
+(greater)f(than)h(internal)e(buffer)h(size)0 1233 y(302)95
+b(column)46 b(number)g(out)h(of)g(range)f(\(1)h(-)h(999\))0
+1346 y(304)95 b(attempt)45 b(to)j(move)e(to)h(negative)f(file)h(record)
+f(number)0 1458 y(306)95 b(attempted)45 b(to)i(read)g(or)g(write)f(a)i
+(negative)d(number)h(of)i(bytes)e(in)h(the)g(FITS)g(file)0
+1571 y(307)95 b(illegal)45 b(starting)h(row)h(number)f(for)h(table)f
+(read)h(or)g(write)f(operation)0 1684 y(308)95 b(illegal)45
+b(starting)h(element)g(number)g(for)h(table)f(read)h(or)g(write)f
+(operation)0 1797 y(309)95 b(attempted)45 b(to)i(read)g(or)g(write)f
+(character)g(string)g(in)h(non-character)d(table)i(column)0
+1910 y(310)95 b(attempted)45 b(to)i(read)g(or)g(write)f(logical)g
+(value)g(in)i(non-logical)c(table)j(column)0 2023 y(311)95
+b(illegal)45 b(ASCII)i(table)f(TFORM)h(format)f(code)g(for)h(attempted)
+e(operation)0 2136 y(312)95 b(illegal)45 b(binary)i(table)f(TFORM)g
+(format)g(code)h(for)g(attempted)e(operation)0 2249 y(314)95
+b(value)46 b(for)h(undefined)e(pixels)h(has)h(not)g(been)g(defined)0
+2362 y(317)95 b(attempted)45 b(to)i(read)g(or)g(write)f(descriptor)f
+(in)i(a)h(non-descriptor)c(field)0 2475 y(320)95 b(number)46
+b(of)h(array)f(dimensions)f(out)i(of)g(range)0 2588 y(321)95
+b(first)46 b(pixel)g(number)g(is)i(greater)d(than)i(the)g(last)g(pixel)
+f(number)0 2700 y(322)95 b(attempt)45 b(to)j(set)f(BSCALE)f(or)h
+(TSCALn)f(scaling)g(parameter)f(=)i(0)0 2813 y(323)95
+b(illegal)45 b(axis)i(length)f(less)h(than)f(1)0 3039
+y(340)h(NOT_GROUP_TABLE)d(340)142 b(Grouping)45 b(function)h(error)0
+3152 y(341)95 b(HDU_ALREADY_MEMBER)0 3265 y(342)47 b(MEMBER_NOT_FOUND)0
+3378 y(343)g(GROUP_NOT_FOUND)0 3491 y(344)g(BAD_GROUP_ID)0
+3604 y(345)g(TOO_MANY_HDUS_TRACKED)0 3717 y(346)g(HDU_ALREADY_TRACKED)0
+3830 y(347)g(BAD_OPTION)0 3942 y(348)g(IDENTICAL_POINTERS)0
+4055 y(349)g(BAD_GROUP_ATTACH)0 4168 y(350)g(BAD_GROUP_DETACH)0
+4394 y(360)g(NGP_NO_MEMORY)665 b(malloc)46 b(failed)0
+4507 y(361)h(NGP_READ_ERR)713 b(read)46 b(error)h(from)f(file)0
+4620 y(362)h(NGP_NUL_PTR)761 b(null)46 b(pointer)g(passed)g(as)h(an)g
+(argument.)1575 4733 y(Passing)f(null)g(pointer)g(as)h(a)h(name)f(of)
+1575 4846 y(template)f(file)g(raises)g(this)h(error)0
+4959 y(363)g(NGP_EMPTY_CURLINE)473 b(line)46 b(read)h(seems)f(to)h(be)h
+(empty)e(\(used)1575 5072 y(internally\))0 5185 y(364)h
+(NGP_UNREAD_QUEUE_FULL)281 b(cannot)46 b(unread)g(more)g(then)h(1)g
+(line)g(\(or)g(single)1575 5297 y(line)g(twice\))0 5410
+y(365)g(NGP_INC_NESTING)569 b(too)46 b(deep)h(include)f(file)h(nesting)
+e(\(infinite)1575 5523 y(loop,)h(template)g(includes)f(itself)i(?\))0
+5636 y(366)g(NGP_ERR_FOPEN)665 b(fopen\(\))45 b(failed,)h(cannot)g
+(open)h(template)e(file)p eop
+%%Page: 126 132
+126 131 bop 0 299 a Fi(126)1613 b Fg(CHAPTER)30 b(12.)112
+b(FITSIO)30 b(ERR)m(OR)g(ST)-8 b(A)g(TUS)30 b(CODES)0
+555 y Fe(367)47 b(NGP_EOF)953 b(end)46 b(of)i(file)e(encountered)f(and)
+i(not)g(expected)0 668 y(368)g(NGP_BAD_ARG)761 b(bad)46
+b(arguments)g(passed.)g(Usually)f(means)1575 781 y(internal)h(parser)g
+(error.)g(Should)g(not)h(happen)0 894 y(369)g(NGP_TOKEN_NOT_EXPECT)329
+b(token)46 b(not)h(expected)e(here)0 1120 y(401)95 b(error)46
+b(attempting)f(to)i(convert)f(an)h(integer)f(to)h(a)h(formatted)d
+(character)g(string)0 1233 y(402)95 b(error)46 b(attempting)f(to)i
+(convert)f(a)h(real)g(value)f(to)i(a)f(formatted)e(character)h(string)0
+1346 y(403)95 b(cannot)46 b(convert)g(a)h(quoted)f(string)g(keyword)g
+(to)h(an)g(integer)0 1458 y(404)95 b(attempted)45 b(to)i(read)g(a)g
+(non-logical)e(keyword)h(value)g(as)h(a)h(logical)e(value)0
+1571 y(405)95 b(cannot)46 b(convert)g(a)h(quoted)f(string)g(keyword)g
+(to)h(a)h(real)e(value)0 1684 y(406)95 b(cannot)46 b(convert)g(a)h
+(quoted)f(string)g(keyword)g(to)h(a)h(double)e(precision)f(value)0
+1797 y(407)95 b(error)46 b(attempting)f(to)i(read)g(character)e(string)
+h(as)h(an)h(integer)0 1910 y(408)95 b(error)46 b(attempting)f(to)i
+(read)g(character)e(string)h(as)h(a)h(real)e(value)0
+2023 y(409)95 b(error)46 b(attempting)f(to)i(read)g(character)e(string)
+h(as)h(a)h(double)e(precision)f(value)0 2136 y(410)95
+b(bad)47 b(keyword)e(datatype)h(code)0 2249 y(411)95
+b(illegal)45 b(number)i(of)g(decimal)f(places)g(while)g(formatting)f
+(floating)h(point)g(value)0 2362 y(412)95 b(numerical)45
+b(overflow)g(during)i(implicit)e(datatype)h(conversion)0
+2475 y(413)95 b(error)46 b(compressing)f(image)0 2588
+y(414)95 b(error)46 b(uncompressing)e(image)0 2700 y(420)95
+b(error)46 b(in)h(date)g(or)g(time)g(conversion)0 2926
+y(431)95 b(syntax)46 b(error)g(in)h(parser)f(expression)0
+3039 y(432)95 b(expression)45 b(did)i(not)f(evaluate)g(to)h(desired)f
+(type)0 3152 y(433)95 b(vector)46 b(result)g(too)h(large)f(to)h(return)
+f(in)i(array)0 3265 y(434)95 b(data)46 b(parser)g(failed)g(not)h(sent)g
+(an)g(out)g(column)0 3378 y(435)95 b(bad)47 b(data)f(encounter)f(while)
+i(parsing)f(column)0 3491 y(436)95 b(parse)46 b(error:)g(output)g(file)
+h(not)g(of)g(proper)f(type)0 3717 y(501)95 b(celestial)45
+b(angle)h(too)h(large)g(for)f(projection)0 3830 y(502)95
+b(bad)47 b(celestial)e(coordinate)g(or)i(pixel)f(value)0
+3942 y(503)95 b(error)46 b(in)h(celestial)e(coordinate)g(calculation)0
+4055 y(504)95 b(unsupported)44 b(type)j(of)g(celestial)e(projection)0
+4168 y(505)95 b(required)45 b(celestial)g(coordinate)g(keywords)h(not)h
+(found)0 4281 y(506)95 b(approximate)44 b(wcs)j(keyword)f(values)g
+(were)h(returned)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF